Rad bych se vratil k puvodnimu dotazu. Staci trochu pocitat a zjistime, ze nema smysl tim ztracet cas:
- Prodlouzeni desifrovaciho algoritmu je konstantni faktor. Dejme tomu, ze prodlouzime cas desifrovani 16x; o to zpomalime brute force utok.
- Volba hashovaciho algoritmu s delsim klicem je exponencialni faktor. To znamena, ze po pridani pouhych 4 bitu k vyslednemu hashi bude brute force utok trvat 16x dele take.
Jinak receno, zvolte delsi klic, bude to mnohem efektivnejsi, a hlavne (jak uz tu nekdo zminil) nezapomente na salt.
Stačí si zjistit úplné základy, a zjistíme, že šifrování a hashování jsou dvě zcela odlišné věci. Vzhledem k tomu, že původní dotaz se ptá na šifrování a dešifrování, jako hashovací algoritmus se klidně může zvolit CRC16, protože se nikde nepoužije.
To samé se týká soli, ta se používá proto, aby když dva uživatelé mají stejné heslo, nebyla stejná i zašifrované nebo zahashovaná podoba hesla (z čehož by uživatelé snadno poznali, že ten druhý má stejné heslo). Pokud by měli dva uživatelé stejný privátní klíč peněženky, nepotřebují privátní klíč toho druhého získávat louskáním nějakého hesla.
To heslo na čtyři písmenka nabídl z toho důvodu, aby dokázal, že po vyřazení už hotových nástrojů, jste bez dekompilace naprosto ze hry.
Za prvé, hotové nástroje nijak nevyřadil. Za druhé, dekompilace vůbec nemusí být potřeba. A za třetí, dekompilací se opravdu nikdo nebude zabývat kvůli 5 000 Kč. 3 BTC už by za to třeba stály.
Skoro stejnou funkci by plnil i program, který by za každé heslo přidával telefonní číslo na Billa Gatese.
Nebo program, který by z toho čtyřznakového hesla tři znaky zahodil a použil jen první.