Šifrovací knihovna s obtížným dešifrováním

v

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #75 kdy: 03. 02. 2014, 20:40:55 »
Jsem jediný komu přijde, že Bla zvolil podmínky sázky úmyslně tak, aby na ni žádný rozumný člověk nepřistoupil a mohl se tak tvářit, že jeho kritici jsou mluvky a/nebo srabové? Nepřijde mi jako kryptograf-amatér, ale jako čistokrevný trol.


Bla

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #76 kdy: 03. 02. 2014, 20:50:17 »
Pánové, na souboj jste mne vyzvali vy, proto opravdu předpokládám, že si za svým slovem stojíte a že za férových podmínek pro vás nebude sázka o peníze problém. Dokud se mele hubou, je to jen diskusní trollení, přejděme tedy k činnům. Ostatně zadarmo opravdu nepracuji, jak tu bylo někde výše řečeno. Tedy, jestliže moje práce nebude stát za nic, jistě ten program rozlousknete snadno s prstem v nose.

Navrhuji:

Heslo bude psáno Evropskými znaky a číslicemi, čtyři znaky dlouhé, žádné 日本の ani ελληνικά tam nebude, píšu Evropské, tedy bavíme se o všech Evropských znacích vycházejících z latinky, příkladem je písmeno Č nebo š, prostě cokoliv, kde hlavní písmeno pochází z latinky a lze ho napsat pomocí kódů UTF, nebude se jednat o nějaké runové písmo, ale možná si zapnu Německou, Polskou, Španělskou nebo jinou EVROPSKOU klávesnici a nějaké takové znaky tam napíšu, protože takové znaky se v heslech objevují, ale pořád se bavíme o 4 znacích.

Text na vstupu bude pocházet z jedno článku z Rootu, délka bude nejméně 250 znaků.

Vstup do programu bude text, výstup bude zašifrovaný text.
K vylepšení tohoto čtyřpísmenkového hesla použiji všechny techniky, které jsem Vám již popsal a další, které zkusím vymyslet.

Po uplynutí uvedené lhůty Vám poskytnu zdrojové kódy, abyste mohli provést kontrolu, že jsem nepodváděl.
Zdrojové kódy mohu poskytnout rovnou i s binárkou, ale předtím je zašifruji pomocí truecryptu, heslo Vám sdělím spolu s číslem mého účtu pro provedení platby ;)

Lehce bych s Vámi mohl vyběhnout tak, že udělám webovou komponentu, která bude překládat heslo, to neudělám.
Tedy nepoužiji žádný špinavý trik a to ani v kódu, zmatení a obfuskace se za špinavé triky nepovažují, jsou to standardní metody ukrytí citlivého kódu před zraky nepovolaných, ani jiné podobné metody určené k Vašemu zmatení. Buďte si jistí, že omezím počet spuštění programu na jedno zakódování za řekněme XY vteřin, tj. další zakódování/odkódování budete moci provést právě za XY vteřin, ale program cracknout a použít ho k bruteforce útoku, pokud to dokážete.

Po nějaké vhodné a zároveň jednoduše použitelné knihovně se podívám, nejspíš použiji takovou, která bude nejjednodušeji implementovatelná, nechci si s tím hrát příliš dlouho, abyste náhodou na svojí sázku nezapoměli.

Jak říkám, nabízím čistou a poctivou hru, můj jak mě urážíte, prázdný mozek, vůči vašim profesionálním prstům v nose.
Za mých 5000,- Kč máte šanci udělat velkolepou oslavu Vašeho triumfu. Dobrá, za 5000,- Kč až tak velkolepá nebude, ale šetřit taky nebudete muset a ukážete mi, jaká že to jsem nula, že.

Smlouvu, myslím rozumnou a gentlemanskou smlouvu samozřejmě připravím.

Bla

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #77 kdy: 03. 02. 2014, 20:54:06 »
Jsem jediný komu přijde, že Bla zvolil podmínky sázky úmyslně tak, aby na ni žádný rozumný člověk nepřistoupil a mohl se tak tvářit, že jeho kritici jsou mluvky a/nebo srabové? Nepřijde mi jako kryptograf-amatér, ale jako čistokrevný trol.

Podmínky jsou jasně dané a myslím příznivé, bohužel jsi napsal v době, kdy jsem to smolil.
Máš možnost dokázat, že jsi víc než jen malé písmenko představující roztažené nohy ležící ženy a připojit se k sázce ;)

v

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #78 kdy: 03. 02. 2014, 21:00:41 »

Mé připomínky stále platí, to co jste napsal je nezměnilo, vaše podmínky nejsou podmínky na které by příčetný člověk přistoupil, leccos naznačuje i to, že se od minule výrazně změnily. Jste trol, nic víc a já vás krmím, proto se teď raději odmlčím a dokud neukážete kód, nebudu mít důvod na vás měnit názor.

Mirage

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #79 kdy: 03. 02. 2014, 21:08:33 »
Přijde mi to naopak dobré a v souladu s tím, co tu tvrdil.
Mimo to, tím že vyloučil tu webovou část, nad kódem naprosto ztratil kontrolu.
Ale chtělo by to vyloučit například i časové zámky, tedy že to půjde rozšifrovat pouze od nějakého data a veškerou komunikaci po síti.
Program musí být od svého prvního spuštění naprosto neovlivnitelný, žádné stahování aktualizací nebo tak.
Ale to už vyloučil, když napsal, že nepoužije žádné špinavé triky.
Přijde mi to jako férová sázka.


Bla

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #80 kdy: 03. 02. 2014, 21:12:54 »
Tak ještě jednou: Nepoužiju žádné špinavé triky, žádný podvod ve smyslu podvodu, jen čtyři písmena na vstupu a veškerá možná kouzla šifrováním.

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #81 kdy: 03. 02. 2014, 21:58:56 »
Cílem původního dotazu je ztížit off-line louskání hesla hrubou silou. Původní požadavek byl na dlouhou dobu dešifrování, vy tvrdíte, že to není potřeba, že to lze nahradit nástavcem na heslo. Jako příklad jste uváděl čtyřznakové heslo složené z velkých písmen. Bral bych v úvahu jen malá a velká písmena anglické abecedy, číslice a třeba pomlčku a podtržítko, dohromady tedy kulatých 64 znaků - ať se zbytečně nedohadujeme, co všechno do té sady znaků patří. I kdybyste k té sadě přidal sto dalších znaků, pořád to bude dávat slabší hesla, než když z těch 64 znaků uděláte 5místné heslo.

Když budete takovéhle heslo (4 znaky ze 64znakové sady) louskat tempem 10 hesel za sekundu, získáte heslo průměrně za 10 dní, nejdéle za dvacet dní. Určitě nechcete tvrdit, že váš nástavec na heslo to louskání urychlí, takže byste měl poskytnout minimálně stejný čas - nebo kratší heslo nebo menší sadu znaků.

Šifrování nikoho nezajímá, to si pak řešte s Ondřejem Novákem, že mu ten šifrovací program prodáte. Nebo ho přihlašte do příští soutěže NIST o nástupce AES. Nás zajímá dešifrování, takže byste měl poskytnout program, který bude mít jako vstup zašifrovaný soubor a heslo a na výstupu dá text odšifrovaný tím heslem. Např. zašifrovaná data bude číst ze souboru encrypt.bin, hesla bude přijímat na vstupu (vždy jedno heslo na jednom řádku), a na výstup bude posílat text rozšifrovaný tím heslem -- pro každé zadané heslo jeden řádek, text v kódování UTF-8. Průměrný čas dešifrování nepřekročí 1/10 sekundy.

Součástí zadání budou dva vstupní texty + jejich zašifrovaná varianta, abychom si mohli ověřit, že ten dešifrovací program umí vůbec něco rozšifrovat. A pak třetí soubor encrypt.bin, zašifrovaný jiným heslem - to bude těch minimálně 250 znaků textu z nějakého článku na Rootu.

Takhle nějak bych si představoval férovou výzvu. Se mnou se nevsadíte, protože se nevsázím z principu, ale klidně vám to předvedu i bez té sázky. Akorát bych navrhoval tu sadu znaků v hesle omezit na velká písmena anglické abecedy, ať nečekáme měsíc na výsledek. Je snad každému jasné, že kdyby měl útočník nějakou motivaci, klidně bude místo na jednom počítači louskat na dvaceti a místo dvaceti dnů čekat den (a spíš by těch počítač přidal víc), tady ta motivace jaksi chybí, takže je zbytečné kvůli tomu pálit uhlí.

Buďte si jistí, že omezím počet spuštění programu na jedno zakódování za řekněme XY vteřin, tj. další zakódování/odkódování budete moci provést právě za XY vteřin
Tak jenom kvůli tomuhle bych ten program chtěl vidět. Kdybych ho chtěl spustit na 10 počítačích v 10 městech, které nebudou nijak připojeny do sítě, tak spolu ty instance budou komunikovat ultrazvukem vytvářeným vibracemi procesoru, nebo jak, aby jste zajistil jedno spuštění za XY sekund napříč všemi instancemi? Přidat do programu sleep není problém, ale Ondřej Novák chtěl něco odolného i proti tomu, že útočník ten sleep dokáže odstranit. Ostatně, pokud váš nastavovací algoritmus opravdu dokáže heslo prodloužit, tak nepotřebujete podvádět snadno odstranitelnými zdržovačkami. A vy jste chtěl přece ukázat, že zdržování rozšifrování není potřeba, že je lepší heslo nastavit.

Bla

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #82 kdy: 03. 02. 2014, 22:08:04 »
Tvrdím jen, přesně a POUZE toto:

Prakticky každá vlastní knihovna je "nenapadnutelná".

A dokonce i heslo dlouhé na 4 písmekna je NEZLOMITELNÉ!
(To vysvětlím dále.)

Co to znamená?
To znamená, že se nikdo nebude chtít drbat ani s jednoduše XORovaným textem, pokud to nebude dostatečně významné.

Příklad jednoduchého šifrování:
Komprese
Substituuješ písmenka za čísla, tj. nahradíš písmenka pozicí, víš že písmeno A je na pozici 1,20,40,80.
Substituuješ písmenka pomocí vložené tabulky klíčů
Substituuješ v hesle část řetězce
Provedeš XOR o daný počet bitů

Uživatel použil heslo: IVAN
Třeba podle třetího písmenka se rozhodneš že kroky provedeš v tomto pořadí:
Doplnění textu o náhodně vygenerované řetězce, tj. mezi písmena dáváš jiné znaky Ahoj -> Axhioaj 
Substituce z tabulky klíčů a to včetně znaků hesla
Substituce písmenek za čísla
XOR
Doplnění hesla o slovo a číslo: Tedy z IVAN uděláš I2007VANTYDLYDUMVYMRDAMTIzadek
Vtip je v tom, abys z primitivního hesla pomocí šifrovací tabulky vždy dokázal udělat to stejné heslo.
Tím výsledným heslem: I2007VANTYDLYDUMVYMRDAMTIzadek tebou zamotaný text zašifruješ.

Při rozšifrování postupuješ stejně.
Uživatel zadá heslo IVAN, z toho ty vygeneruješ doplněk hesla, tedy celý ten hrozně dlouhý klíč, kterým to je zašifrované: I2007VANTYDLYDUMVYMRDAMTIzadek

Tím to rozšifruješ a provedeš inverzi tvých primitivních metod.

Výhoda?
TVŮJ SOFTWARE NIKOHO NEZAJÍMÁ!
Aby to někdo dokázal rozlousknout, tak mu žádný slovník nepomůže, musí přijít na to, jak generuješ doplněk toho hesla a i kdyby se mu nakrásně povedlo to nějak rozšifrovat (třeba závadou v knihovně), substituce dohromady s XORem jsou pro běžné ignoranty dostatečně bezpečná metoda, aby se na to vykašlali.
Navíc ty provádíš substituci podle nějakého náhodného klíče a XORuješ to podle náhodného klíče.
Velmi pochybuji o tom, že budeš mít data natolik zajímavá, aby na to nasadili vlastní tým analytiků CIA.

Pokud se vsadíme, tedy dle mého požadavku na odměnu, napíšu to a dokonce se můžeme domluvit pouze na té sadě 64 znaků.
Také ostatní podmínky mi připadají naprosto přijatelné.
Na čem se nemůžeme domluvit je to, že to budu dělat zadarmo.

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #83 kdy: 03. 02. 2014, 22:29:23 »
Tak jenom kvůli tomuhle bych ten program chtěl vidět. Kdybych ho chtěl spustit na 10 počítačích v 10 městech, které nebudou nijak připojeny do sítě, tak spolu ty instance budou komunikovat ultrazvukem vytvářeným vibracemi procesoru, nebo jak, aby jste zajistil jedno spuštění za XY sekund napříč všemi instancemi? Přidat do programu sleep není problém, ale Ondřej Novák chtěl něco odolného i proti tomu, že útočník ten sleep dokáže odstranit. Ostatně, pokud váš nastavovací algoritmus opravdu dokáže heslo prodloužit, tak nepotřebujete podvádět snadno odstranitelnými zdržovačkami. A vy jste chtěl přece ukázat, že zdržování rozšifrování není potřeba, že je lepší heslo nastavit.

Já předpokládám, že útočníkovi se dostane do rukou binárka a zašifrované klíče a z mého pohledu (z uživatelského pohledu) téměř nekonečný výpočetní výkon (clustery grafáren v nějaké šílené farmě)

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #84 kdy: 03. 02. 2014, 22:29:59 »
Na čem se nemůžeme domluvit je to, že to budu dělat zadarmo.
To si ale musíte najít nějakého hlupáka, který vám zaplatí za algoritmus snadno prolomitelný kryptoanalýzou, když může mít zadarmo slušnou šifru jako AES nebo Blowfish. A před chvílí jste to nechtěl dělat zadarmo, ale chtěl jste ještě 5000 Kč odevzdat.

Že je váš algoritmus snadno prolomitelný kryptoanalýzou a po té se lze k heslům dostat rychleji než hrubou silou, to pro změnu nebudu dokazovat já vám (a pochybuju, že někdo jiný ano), protože to nestojí za tu námahu.

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #85 kdy: 03. 02. 2014, 22:32:40 »
Já předpokládám, že útočníkovi se dostane do rukou binárka a zašifrované klíče a z mého pohledu (z uživatelského pohledu) téměř nekonečný výpočetní výkon (clustery grafáren v nějaké šílené farmě)
To je rozumný předpoklad, pokud má jít o systém, ve kterém se budou pohybovat peníze. Akorát Bla to zřejmě nepředpokládal, protože sám navrhoval podmínky, aby takovéhoto útočníka vyloučil.

Bla

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #86 kdy: 03. 02. 2014, 23:00:56 »

Uzavřeme to, mám pravdu, měl jsem pravdu a vždy jí mít budu.
Vaše váhání a neschopnost se postavit za svá slova, hledání výmluv a tak dále, jen dokreslují charakter Internetového kecala.
Já, na rozdíl od Vás, nabídl, že pokud je to tak špatné, nejen že budu pracovat zadarmo, ale ještě Vám zaplatím, vy dva jste se na nic nezmohli, jen na pár prázdný frází, hromadu plků a žvanění, jaký že to jsem velký hlupák.
No, oba se vraťte, až budete vědět, jak se má chovat chlap.

Já si totiž nic dokazovat nepotřebuju, bezpečně vím, že moje postupy, aplikované jak jsem napsal a proti útokům, které jsem popsal, velmi dobře fungují. Urážky z Vaší strany na mojí adresu budu od teď brát jako dětský křik, mumlání idiotů a závist neschopných outsiderů, tedy jako něco zcela bezcenného. Až budete ochotní se za svá slova postavit ne jen kecy, ale i něčím hmatatelným a nést následky včetně případné prohry, dám vám šanci.

Docela by mě zajímalo, jestli máte otce, jestli s Vámi žil v jedné domácnosti a jaký s nimi máte vztah, přijde mi, že jste otce viděli asi jen občas a buď to byl bábovka, podpantoflák a nebo o Vás neměl nejmenší zájem. Slovo chlapa by mělo něco platit, moje slovo něco platí, zatím se mi nezdá, že to vaše má cenu alespoň elektronů spotřebovaných pro jejich zobrazení. Ve skutečnosti mě to nezajímá, ať tak nebo tak, nejste typ lidí, které bych chtěl mít po svém boku, kdyby šlo do tuhého.

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #87 kdy: 04. 02. 2014, 07:07:55 »
Už jste připravil tu smlouvu? Zajímalo by mne, jak tam chcete mít ošetřené, že se sázíte o něco, co zjevně musíte prohrát.

Při 4znakovém hesle ze 64 znaků a tempem louskání 10 hesel za sekundu to dává bez použití vašeho nástavce 64^4 kombinací nutných k vyzkoušení a projít všechny kombinace bude trvat 64^4/10 sekund, tedy skoro 20 dní. Při použití vašeho nástavce to je 64^4 kombinací k vyzkoušení a projít všechny kombinace bude trvat 64^4/10 sekund, tedy skoro 20 dní. Vidíte, že ta čísla jsou stejná?

Vaše slovo platí vždy jen do následujícího komentáře, pak to změníte. Já jsem jasně napsal, jak dlouho bude trvat louskání hesla bez vašeho nástavce i s ním, a je evidentní, že jsou to ty stejné hodnoty. To vy nemáte pro svá tvrzení žádné důkazy a jenom se vymlouváte, že kdyby tohleto a tamhleto, dokážete napsat program, pro který nebudou základní pravidla statistiky platit.

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #88 kdy: 04. 02. 2014, 08:28:54 »
Uzavřeme to, mám pravdu, měl jsem pravdu a vždy jí mít budu.

To tezko. Nejsi maminka.

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #89 kdy: 04. 02. 2014, 15:53:35 »
Omlouvám se, že se vám pletu do diskuse na kterou si stačíte jistě sami, ale tohle mě dostalo:

Evropské, tedy bavíme se o všech Evropských znacích vycházejících z latinky, příkladem je písmeno Č nebo š, prostě cokoliv, kde hlavní písmeno pochází z latinky a lze ho napsat pomocí kódů UTF

Skoro se mi to chce nechat bez dalšího komentáře a jen bych se zeptal, zda daný text může obsahovat také čísla?

K tomu zbytku. Vycházíte ze špatného předpokladu. Bezpečnost se nedělá tak, že útočník něco neví. Právě naopak, moderní kryptografie se dělá za předpokladu, že útočník ví úplně všechno (kromě soukromého / tajného klíče). Celkem dost algoritmů, které si autor / společnost někde sama pro sebe vymyslela, skončilo velmi neslavně. Proto i NIST dělá veřejné soutěže na nové standardy AES a SHA, do kterých se přihlásí spousta týmů (které už jsou sami o sobě na velmi vysoké úrovni), zveřejní vše, a celý svět se několik let pokouší o útoky. A i v těchto soutěžích spousta algoritmů neobstojí (a teď si představte, že si třeba takový tým najme soukromá firma pro své vnitrofiremní šifrování, bez soutěže je slušná pravděpodobnost, že ten alg je obecně vadný). Po mnoha letech se určí ten nejlepší.

Různé zesložiťování vstupního textu se dělalo před několika stoletími. S příchodem statistické kryptoanalýzy popadaly jako hrušky. Tyhle přístupy prostě nefungují. I mnohem modernější metody, založené nikoliv na práci s textem, ale čistě matematické postupy založené na grupách, také mají své slabiny. Proto se obecně také nedoporučuje skládání šifer (AES+Twofish), protože obecně nikdo neví co se stane. Jedna šifra může částečně dešifrovat druhou. To se stalo u DES. DES byl slabý, ale 2DES ještě slabší. 3DES je v pohodě použítelný dodnes (používá se 3x alg. DES s určitým způsobem upravenými klíči).

Připomínám, že šifra se má za prolomenou ve chvíli, kdy se prokáže její oslabení, tedy např. že místo síly 128b má například 90b; což je samo o sobě stále dost. Ale ta šifra už je nalomená a neměla by se používat -- a to i za stavu, že se nikomu reálně nepodařilo dostat k původním datům, 90b je stále moc. Proč? Protože už se našla cesta. Bylo to krásně vidět na případu md5, kdy se nalezla nějaká zranitelnost, která tu funkci lehce oslabila (celkem nic moc), ale za pár měsíců se na základě tohoto poznatku došlo do stavu, kdy to byla hračka i pro slabý NTB. Bohužel dodnes, po 10 letech, je md5 stále moc oblíbená u vývojárů.

Takže, bezpečnost svého algoritmu vůbec neprokážete tak, že se s někým vsadíte. Naopak tím (že to nikdo v této sázce nelouskne) pouze sám posílíte svůj falešný pocit bezpečí. A to není pro bezpečnost nikdy dobře.