KRIŽAN, V. Generátor náhodných čísel [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2015.

Posudky

Posudek vedoucího

Ležák, Petr

Student nastudoval generátor náhodných čísel Fortuna a následně jej implementoval. Naprogramoval přitom několik zdrojů entropie, jmenovitě pohyb myši, vstup z klávesnice, obraz z webkamery, zvuk z mikrofonu a systémový generátor náhodných čísel. Podle mých pokynů udělal generátor obecný, schopný pracovat s jakoukoli blokovou šifrou a jakoukoli hešovací funkcí. Generátor je rozšířitelný i o jiné zdroje entropie. I přes moje upozornění má však generátor jisté nedostatky, například velikost klíče v konstruktoru BlockCipherGenerator je pevně daná na 32 bytů (256 bitů) namísto toho, aby byla dána velikostí bloku použité šifry. Podobně, například ve vztahu ((2^q)%reseedCounter) == 0) ve třídě Fortuna je chyba, protože operátor ^ není v Javě umocňování. Dále student vytvořil grafické rozhraní pro ovládání generátoru pomocí nějž je možné generovat náhodná data do souboru a lze je tak využít například pro generování šifrovacích klíčů. Uvedené nedostatky ale lze snadno opravit. Celkově hodnotím práci jako zdařilou.

Navrhovaná známka
A
Body
93

Posudek oponenta

Burda, Karel

Cílem práce bylo sestrojit v jazyce Java generátor náhodných čísel Fortuna. Prvá kapitola je věnována ujasnění pojmů náhodná a pseudonáhodná čísla. Nedostatkem této kapitoly je chybný příklad výstupu generátoru LFSR v tab. 1.1. Pro n = 2 až 6 jsou v ní uvedeny chybné stavy. Druhá kapitola velmi vágně řeší problematiku entropie. Autor zde nepopisuje možnosti měření entropie, což by pro jím použité zdroje entropie mohlo být užitečné. Třetí kapitola popisuje samotný generátor Fortuna. Oceňuji pasáže věnované použitým zdrojům entropie, ale jejich místo je spíše ve druhé kapitole. Popis generátoru je vágní a nepřesný. Autor k popisu nepoužil pseudokód ani podrobná schémata, takže čtenář si nakonec musí generátor nastudovat z původního pramene. Příkladem nejasného popisu je rovnice (3.10) na s. 32, kde autor nevysvětlil, že index d u funkce SHA vyjadřuje dvojí vykonání hešovací funkce. Dále například autor na s. 31 tvrdí, že lze použít libovolnou blokovou šifru. To není pravda. Lze použít pouze ty šifry, které mají délku bloku 128 b a délku klíče 256 b. Čtvrtá kapitola je věnována popisu implementace generátoru v jazyku Java. Popis je logický, ale není zde jasné, proč autor použil na místo SHA-256 hešovací funkci SHA-512 (s. 34). Popisovaná implementace pak už není bezpečnostně uznávaným generátorem Fortuna, ale nezdůvodněnou a tedy i nedůvěryhodnou modifikací tohoto generátoru. Pátá kapitola popisuje použití naprogramovaného generátoru. Velmi závažným nedostatkem je, že autor neprovedl testy svého generátoru. Jeho generátor je tak nedůvěryhodný. Poslední kapitola je závěrečná, v níž autor svoji práci rekapituluje. Po formální stránce je práce na dobré úrovni. Celkově konstatuji, že cíle práce byly splněny. Nedostatkem práce je neúplný popis generátoru a skutečnost, že náhodnost generátoru nebyla otestována. Z těchto důvodů hodnotím práci 75 body (Dobře).

Navrhovaná známka
C
Body
75

Otázky

eVSKP id 85306