ČERNÝ, F. Paralelní implementace generátoru pravidel RuleForge [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Zadání považuji za splněné ve všech bodech. Student zvládl vytvořit řešení s využitím GPU, což není pro bakalářského studenta zrovna jednoduchý úkol. Nad rámec zadání pan Černý také implementoval shlukovací algoritmus Leader-Follower a jeho modifikaci, kterou sám navrhl. Samotná technická zpráva by mohla být trochu obsáhlejší, zejména kapitola o návrhu. Na druhou stranu je popis řešení výstižný, jasně vysvětluje, jak student postupoval a neobsahuje zbytečnou "vatu". Pozitivně hodnotím studentovu schopnost samostudia technologie OpenCL a zvládnutí netriviální implementace pro GPU. S ohledem na značné množství netriviální implementační práce, nadprůměrnou aktivitu a rozšíření nad rámec zadání hodnotím stupněm "B".
| Kritérium | Známka | Body | Slovní hodnocení |
|---|---|---|---|
| Informace k zadání | Cílem práce bylo vyvinout rychlou paralelní alternativu nástroje RuleForge pro generování pravidel pro modifikaci hesel. Student se vydal náročnější cestou implementace s podporou akcelerace pomocí GPU, kterou zadání přímo nevyžadovalo, avšak pro daný problém se jeví jako velmi vhodná cesta. | ||
| Práce s literaturou | Student využil doporučené literatury a další relevantní zdroje si samostatně dohledal. | ||
| Aktivita během řešení, konzultace, komunikace | Aktivita studenta byla nadprůměrná, implementační část práce byla hotova ve výrazném předstihu a student zvládl implementoval i dva další algoritmy pro shlukování, které původní řešení neobsahovalo. Velmi oceňuji studentovu schopnost sebemotivace a samostudia i netriviální problematiky. | ||
| Aktivita při dokončování | Práce byla dokončena všas, její obsah jsem kontroloval a student následně obdržel připomínky k zapracování, které zohlednil. | ||
| Publikační činnost, ocenění | Zdrojové kódy realizačního výstupu student zveřejnil jako Open-source pod licencí GNU Free Documentation License v1.3 na portálu GitHub: https://github.com/fidulin/FastRuleForge . Forenzní analytici a výzkumníci v oblasti problematiky hesel jej tak mohou využít ke své práci. Na konferenci DFRWS, s jejíž realizací pan Černý pomáhal, také problematiku diskutoval s předními experty v oboru. |
Výslednou práci hodnotím jako velmi dobrou (tedy stupněm B). Jedná se o nadprůměrné softwarové dílo s pěknou technickou zprávou. Výsledek má přidanou hodnotu pro komunitu výzkumníků věnujících se obnově hesel.
| Kritérium | Známka | Body | Slovní hodnocení |
|---|---|---|---|
| Náročnost zadání | Práce je součástí dlouhodobých výzkumných aktivit dr. Hranického v oblasti lámání hesel a heslotvorby. Cílem práce bylo přepsat existující nástroj z Pythonu do C/C++, navrhnout, kde ještě by se funkce aplikace dala optimalizovat a na závěr důkladně otestovat. Za mě průměrné zadání. | ||
| Rozsah splnění požadavků zadání | Všechny body zadání byly splněny. Oceňuji i drobný přídavek ve vlastní modifikaci Leader-Follower clusterovacího algoritmu, který sice není pro potřeby práce lepší, demonstruje ale studentovy schopnosti softwarového inženýra. | ||
| Rozsah technické zprávy | Práce má 50 stran textu v husté LaTeXové šabloně, 54 stran i s pomocnými provozy. Dle nástroje https://app.fit.vut.cz/normostrany na počítání normostran, má dohromady 57,23 normostran, je tedy v obvyklém rozsahu. | ||
| Prezentační úroveň technické zprávy | 80 | Práce je logicky strukturovaná. Její kapitoly navazují a kopírují body zadání i pokroky studenta při řešení práce (včetně mezistavu implementace, který oceňuji). V práci mi chybí vhodné využití UML diagramů, alespoň class diagram by to chtěli. | |
| Formální úprava technické zprávy | 85 | Práce je psána v českém jazyce bez zásadnějších prohřešků vůči gramatice. Nelíbí se mi použití tečky jako oddělovače celých a desetinných čísel (např. tabulka 9.5 či "61.1485 vteřin"), taktéž u čísel by šlo pracovat s mezerou jako oddělovačem řádu tisíců (např. "15542") | |
| Práce s literaturou | 80 | Student v práci cituje z dostatečného (24 pramenů) množství bibliografických zdrojů. Oceňuji několik pěkných a k textu práce relevantních vědeckých článků, které student vhodně využívá. Nicméně [15] má dle mě špatně přijmení prvního autora, u [17] mi chybí typ a vedoucí práce, [5] a [24] mi přijdou nekonzistentní ve formátu, byť se jedná o tentýž typ. | |
| Realizační výstup | 75 | Realizační výstup představuje několik souborů v C/C++ a OpenCL. Zdrojové kódy jsou jen sporadicky komentované. Navíc se mi nelíbí, že student dává implementaci do hlavičkových souborů případně nevytváří pro každou třídu vlastní dvojici *.hh a *.cc souborů. Kód díky tomu není kdovíjak čitelný. Musím ale pochválit obsáhlou sekci testování, kde dochází nejen k porovnání mezi nástroji a různými clusterovacími algoritmy, ale i k výkonnostnímu testování, které dokazuje paměťovou a výpočetní optimalizaci za použití OpenMP. | |
| Využitelnost výsledků | Práce je pokračováním předchozí verze nástroje RuleForge, jehož využitelnost jsem v posudku v minulém roce pohaněl a která se úsilím právě tohoto studenta význačně posunula vpřed tak, aby byla použitelná. Přidanou hodnotu vidím ve dvou věcech: a) pro lámání rychlých hashů (např. MD5), které se nedaří dostatečně rychle "krmit" kandidáty ze slovníku; b) v úspoře místa pro skladování opravdu velkých slovníků, které by bylo možno substituovat menšími a k nim sadou derivačních pravidel z RuleForge. |
eVSKP id 162810