Pripada mi, ze v tom, co Bla navrhuje, je jeden zasadni podfuk. Nikde nerika nic o tom, jak vypadaji zasifrovana data. Takze pokud zasifruje neco nahodneho (treba ani ne nahodne znaky, ale vylozene nahodne byty), nemate jak zjistit, ze jste opravdu nasli spravne heslo a rozsifrovali to, nebo to jen "jakorozsifrovali" spatnym heslem.
Pokud bude algoritmus šifrování vypadat tak, jak Bla popisuje, může klidně zašifrovat náhodná data – a o správnosti rozšifrování nebude pochyb díky tomu, že ten odvozený algoritmus bude dávat stejné výsledky pro jiná vstupní data, jako by dával jeho program. A protože ty jeho algoritmy jsou tak triviální, nemůže existovat jiný algoritmus, který by dával pro testovací data stejné výsledky, ale pro jeho náhodná data jiný výsledek. Samozřejmě pokud by v té aplikaci neměl podfuk a ta by jeho vstup nešifrovala jiným způsobem, než jiné vstupy.
Jinak to, zda vstup do šifrování je náhodný, nebo zda pro pokusu o rozšifrování dokážu určit, zda heslo mohlo být správné, nebo je určitě špatné, je jedno z kritérií pro návrh bezpečnostního modelu. Tohle kritérium je klíčové pro útok hrubou silou. Pokud by útočník nedokázal z rozšifrovaného výstupu poznat, zda může jít o privátní klíč, dostal by po tom útoku hrubou silou na čtyřznaková hesla necelý půl milionu potenciálních klíčů, a musel by všemi podepsat transakci, přičemž jenom jedna z toho půl milion transakcí by prošla – a teprve pak by věděl, který je ten správný klíč. Což by ale zrovna v tomhle případě útočníkovi nevadilo, protože ty transakce by vytvořil prakticky zadarmo. Druhý problém je v tom, že privátní klíč není náhodná směs znaků, naopak musí splňovat určité požadavky. Takže útočník může po rozšifrování otestovat, jestli to, co mu vyšlo, vůbec může být privátní klíč – pro těch půl milionu kandidátů myslím rychle vyloučí všechny až na jeden. Z toho důvodu by ani nebylo potřeba ten Blaův nástavcový algoritmus nijak zkoumat. Prostě by se ten jeho program spustil pro půl milionu různých hesel, a půl milionu výstupů by se otestovalo, zda to může být privátní klíč.
Jestli ho chápu správně, netvrdí, že tím primitivním postupem udělá ze slabé šifry silnou, ale že jednoduchou úpravou podstatně ztíží dešifrování, což je přesně to, o com v tomhle vláknu jde.
Nikoli, v tomhle vlákně jde o řešení případu, když má útočník dostatek výkonu na to, aby zkoušel jedno heslo po druhém. Zatímco u jednoduchého algoritmu s heslem ze čtyř velkých písmen velké abecedy musí útočník vyzkoušet skoro půl milionu různých hesel, s použitím Blaova nástavcového algoritmu musí vyzkoušet skoro půl milionu různých hesel – tedy úplně to samé.
Mě se ten jeho postup líbí, vezme šifru třeba AES+Twofish a přidáním další vrstvy, bez změny vlastní knihovny, vyřadí ze hry všechny standardní dešifrovací nástroje pro AES+Twofish.
Ty nástroje nevyřadí ze hry, jenom bude muset těm nástrojům předhodit jiný slovník. Ještě jednodušší, než řešit nějaké standardní dešifrovací nástroje (nevím, co to je), bude použít přímo ten program, který chce Ondřej napsat. To bylo další kritérium, které jsem napsal – zda ten šifrovací program bude k dispozici uživatelům, nebo zda se počítá s tím, že poběží někde na nedobytném serveru.
To není o penězích, netvrdil, že ty šifry bude někdo louskat za 5kkč, tvrdí, že to funguje, ty tvrdíš, že ne, sázka je o tom, jestli si dokážete stát za svým slovem. PTÁM SE TEDY, PROČ SE S NÍM NEVSADÍŠ? Pokud se s ním nechceš vsadit, je na místě tuším velmi slušná omluva a pořádná halda popela nasypaná na tvou hlavu. V opačném případě bys tu sázku měl přijít, pokud má tvoje slovo tedy alespoň nějakou cenu.
Nevsadím se s ním proto, protože zatím nenavrhl žádné přijatelné podmínky. Zatím navrhl jenom že dodá nějaký blackbox, kde klidně může být
if (muj_tajny_vstup) then {
muj_tajny_vystup
}
Na to, aby se něčím takovým někdo zabýval, je 5 000 Kč slabá motivace. Proč asi Bla nenavrhl, že ten program zveřejní i se zdrojovým kódem?
Bla má u mě bod za odvahu!
Ano, když o tématu vůbec nic neví, je odvaha o tom psát a ještě se sázet. Naštěstí měl Bla tolik rozumu, aby podmínky sázky nastavil tak, že on může klidně podvádět. Bohužel je taková sázka nezajímavá.