ČERNÝ, F. Paralelní implementace generátoru pravidel RuleForge [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.

Posudky

Posudek vedoucího

Hranický, Radek

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".

Dílčí hodnocení
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.
Navrhovaná známka
B
Body
85

Posudek oponenta

Veselý, Vladimír

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.

Dílčí hodnocení
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.
Navrhovaná známka
B
Body
80

Otázky

eVSKP id 162810