Pro jeden z pracovních úkolů bylo nezbytné rozchodit podepisování a ověřování sadou klíčů. Aby vývoj probíhal hladce a bez zbytečných zádrhelů tak z mého subjektivního pohledu je nejlepší, když vývojářům dáte jasné zadání k jaké hodnotě se mají dopočíst.
Rozhodnutí sestavit referenční způsob výpočtu s hodnotami mezivýsledků jsem učinil i s vědomím, že kolegové vývojáři budou reálné výpočty dělat ve třech jazycích jako Swift, Kotlin a Java.
V neposlední řadě byla jednodušší komunikace s kolegy z týmu zabývající se zabezpečením. Validace probíhala na hmatatelných výsledcích místo slovního zadání, které může zejména v oblasti kryptografie trpět v důsledku řady možných parametrů - od zvolených šifer, jejich verzí, přes vybraná schémata, standardy, etc.
Za předpokladu, že máte instalovanou Anacondu tak v hlavní nabídce Windows vyhledejte její příkazovou řádku - Anaconda Prompt a tu spusťte. Nyní příkazem spusťte Jupyter Lab.
jupyter lab
V něm vytvořte nový notebook ve kterém celou referenční implementaci provedeme.
Pro jednoduchost jsem připravil Gist na Githubu, kde si můžete celý postup stáhnout a importovat.
Princip výpočtu je jednoduchý a v Gistu popsaný, ale i tak ho stručně popíši ještě sem s nějakými vedlejšími poznámkami pokud budou potřeba.
Na začátku jsem si nebyl zcela jistý tím, že někdo mou ukázku, jak to vypočítat, ocení. Se svou ukázkou v Pythonu jsem vlastně pořídil dost muziky. Soubor jsem k zadání přikládal jen jakoby navíc, ale nakonec se stal primárním zdrojem inspirace pro faktickou implementaci.