Chodzi mi o tę prezentację: Wordlists: from statistics to genetic. W skrócie - wykorzystanie algorytmów genetycznych do stworzenia słownika (kombinacji istniejących słowników), który jest "lepszy". Ta "lepszość" słownika ma przejawiać się większą skutecznością przy mniejszym rozmiarze, a więc i czasie łamania hashy haseł.
O ile sam temat i zastosowanie podejście jest ciekawe, mam pewien problem z implementacją. Pytanie - względem czego była sprawdzana skuteczność słowników? Z odpowiedzi udzielonej przez prowadzącego - skuteczność słownika była ewaluowana na hasłach (hashe), które można znaleźć w sieci (wyniki wycieków).
Super. A na jakiej podstawie tworzone są słowniki? Czy przypadkiem nie na podstawie tych samych wycieków i haseł, które udało się złamać?
O co mi chodzi? Z prezentacji wynika, że "mutacje" odbywały się na poziomie całego słownika (docelowy słownik składał się z N słowników, np. 500 worst passwords, rockyou, (...)). Co z tego wynika? Jeśli jako materiał testowy wykorzystane są hashe z wycieku X siłą rzeczy najlepsze będą te kombinacje słowników, które zawierają listy powstałe na podstawie tego wycieku. Dlaczego? Dlatego, że standardowym podejściem przy łamaniu hashy z wycieku X jest wykorzystanie (wszystkich) dostępnych słowników. W efekcie nowa lista jest najbardziej efektywna dla tej populacji hashy.
Podsumowując - ciekawszym podejściem byłoby użycie jako danych testowych/referencyjnych populacji hashy, które na pewno nie były użyte do stworzenia słowników użytych w eksperymencie. Najlepiej dwóch takich populacji - jednej w trakcie "ewolucji" słowników, a drugiej - do sprawdzenia skuteczności otrzymanego słownika. Bardzo jestem ciekawy wyników tego porównania.