« 1 2 »
Autor Zpráva
l564
Profil
Zdravím tak dnes jsem dodělal šifrovací algoritmus pro můj redakční systém.
Šifrovací algoritmus je 6 fázový.

1 fáze) Zrušení diakritiky
2 fáze) Zašifrování hesla bez diakritiky
3 fáze) Zašifrování hesla z 1-ní fáze
4 fáze) Zašifrování hesla z 2-hé fáze
5 fáze) Převedení vše na malá písmenka
6 fáze) Odebrání mezer

Celý algoritmus je k vyzkoušení zde.
V tom redakčním systému by to mělo ty šifry porovnávat.

A můj dotaz je : Myslíte že tato šifra je neprolomitelná jako dřív bývala MD5 či SHA1?
Doplnění: Zdrojový kód zatím nemohu sem přiložit protože je laděn. Kdyby jste našli nějaký BUGy tak napište sem.
panther
Profil
l564:
šifra je obousměrná, hesla se hashují.

Příklad tvé „šifry“
„a“ -> „m“
„aa“ -> „mm“
„aaa“ -> „mmm“

Tím pro mě test skončil.
shaggy
Profil
l564:
Išiel som napísať niečo v tom duchu ako panther.
Preto sa len opýtam - v čom by mala byť tá tvoja "šifra" lepšia ako napríklad sha1 (ktoré ak prelomíš, tak si fakt dobrý)?
yFang
Profil
l564:
Tam jenom prohazuješ znaky?
Např. d → h → 2 → d

Myslíte že tato šifra je neprolomitelná jako dřív bývala MD5 či SHA1?
Ne.
l564
Profil
shaggy:
(ktoré ak prelomíš, tak si fakt dobrý)?
sha1 crack
Stano
Profil *
Nepočul som o tom že by md5 alebo sha1 niekto prelomil. To že niekde beží mašina ktorá generuje postupne všetky kombinácie a-zA-Z0-9 nepovažujem za prelomenie. Tomu by si zabránil len tak že by si nedovolil šifrovať tvojim algoritmom.
Louka
Profil
l564:
Tomu se říká rainbow tables. Mimojiné jsem slyšel, že generování tohoto je ilegální. (zkusím dohledat zdroj)

Hashovací fce, kterými bezpochyby md5 i sha1 jsou se vyznačují jednosměrností - prolomení je v podstatě nemožné, protože může existovat více čistopisů, které mají identický otisk - jak to chceš dešifrovat ;)?

Tvá fce je bohužel poměrně krátkozraká (viz pantherův test) a s využitím pro ukládání hesel bych rozhodně počkal.
sajgon
Profil *
Myslím, že vymýšlet vymyšlené je zbytečné. Stávající funkce k hashování jsou určitě lepším řešením, než tvůj algoritmus.
Pakliže se bojíš prolomení, o kterém mluví Louka, tak ještě to hesla něco přisol, jak o tom pěkně píše např. Jakub Vrána na svém webu.
Bubák
Profil
Louka:
Mimojiné jsem slyšel, že generování tohoto je ilegální.
Možná v některých státech, u ČR naštěstí ne.

l564:
I kdybys použil kvalitní šifru nebo hash, tak je bezpečnostní riziko, pokud stejné heslo různých uživatelů dá týž výstup.
To, co jsi předvedl, je hračka:
11aa11 > eemmee
Takže z "a" je vždy "m", oddobně ostatní znaky.
__construct
Profil
l564:
Čo je to prosím Ťa podľa Teba „algometer“?

Predtým ako sa pustíš do vynalizania nejakej „super-neprelomiteľnej šifry“ tak sa nauč aspoň základy - ten Tvoj tester je náchylný na XSS.
Chro
Profil
<§#¥¿> zašifruje do <§#¥¿>

Něco je špatně.
DoubleThink
Profil *
l564:
Nastuduj si základy kryptografie, pak něco zkoušej. Tvoje "šifra" je k smíchu.

Louka:
prolomení je v podstatě nemožné, protože může existovat více čistopisů, které mají identický otisk - jak to chceš dešifrovat
Nalezením (jiného) kolizního vstupu. Toho se právě týká zranitelnost MD5, že údajně jde rychle nalézt kolizní vstup. Tento problém (nejen u MD5) lze vyřešit tak, že se přidá salt, který zároveň znemožňuje použít rainbow table.
Louka
Profil
DoubleThink:
Ano, kolizní vstup. Já to myslel jinak: nelze dešifrovat, protože pro jeden otisk nalezneš vícero vstupů a nevíš, který je správný. Tento problém se netýká ověření hesla, protože tam jde jen o otisk, chtěl jsem tím říct, že neexistuje reverzní funkce, která by vrátila původně zadaný řetězec (s jistotou).
Joker
Profil
l564:
Viz předřečníci ohledně rozdílu mezi hashem a šifrou.

Tohle ovšem není ani jedno.
- Hash to není. Jelikož každý znak se překóduje pokaždé na tentýž jiný znak, je celkem triviální podle „otisku“ získat kolizní řetězec, jde to i z hlavy.
- Nebýt těch kroků 1, 2 a 6, byla by to primitivní šifra- monoalfabetická substituce (viz také Caesarova šifra). Ale takhle to nejde stoprocentně dešifrovat, tj. získat stejný text jako byl na vstupu

Poznámka: To je docela… řekněme „odvážné“ předpokládat, že když algoritmy jako MD5 nebo SHA1 jsou výsledkem několika let práce špičkových kryptografů, zvládne to samé začátečník který danou problematiku viděl sotva z rychlíku (bez urážky) za pár hodin.

Vykašlal bych se na tvorbu vlastního hashovacího algoritmu a použil ty co jsou vyzkoušené. Nemyslím si, že někdo kdo není odborník na kryptografii by měl nějakou šanci navrhnout fungující hashovací algoritmus.
Stano
Profil *
ja by som jedno riešenie mal:
generoval by som napríklad 50 náhodných znakov a do nich by som zamiešal na rôzne pozície dákym spôsobom zašifrované heslo. tak by som mal trebárs "ahoj" -> [5nahodnych_znakov]b[5nahodnych_znakov]i[5nahodnych_znakov]p[5nahodnych_znakov]k[5nahodnych_znakov]

povolené vstupné hodnoty by boli len písmená a tu šifru by som použil trocha inteligentnejšiu a potom by už stačilo to len nikomu neukázať a nedovoliť sa stým moc hrať. chech.

Ale v každom prípade by to bola zbytočná práca, ktorá okrem pobavenia nemá zmysel.
Medvídek
Profil
Stano:
Pokud nevěřís samotný md5, tak už je lepší něco jako:

$hash=substr(md5($heslo."Y5T96@<>k!20"),6,28);
Stano
Profil *
Medvídek:
Ja md5 verím išlo čisto len o pobavenie sa vymyslením dačoho čo by sa nedalo spätne rozlúštiť v priebehu pár minút. Tamto by sa malo používať bežne. rainbow tables by nemali zmysel potom.
Joker
Profil
Stano:
potom by už stačilo to len nikomu neukázať a nedovoliť sa stým moc hrať.
Tenhle koncept taky není nic nového, říká se tomu security by (through) obscurity (= bezpečnost skrze utajení)

Jen tak pro zajímavost, ten navržený koncept by se dal poměrně snadno prolomit i když se nedostanu ke zdrojáku; Stačí si vygenerovat 2x hash téhož řetězce- nebude stejný a přesto oba otisky budou fungovat. Čili části otisku nezávisejí jen na vstupním řetězci. Vezmu pozice co jsou v těch otiscích různé, zkusím je sám změnit a zjistím, že části otisku jsou jen nedůležitá vata. Po pár pokusech mám odfiltrovanou vatu od částí na kterých opravdu záleží.
Timy
Profil
Louka:
Hashovací fce, kterými bezpochyby md5 i sha1 jsou se vyznačují jednosměrností - prolomení je v podstatě nemožné, protože může existovat více čistopisů, které mají identický otisk - jak to chceš dešifrovat ;)?
To, že existuje více vstupů, které mají stejný výstup, mi nemusí zaručovat bezpečnost. Pokud jsem teoreticky schopný vygenerovat všechny vstupy, které mají požadovaný výstup, pak se stačí omezit na nějakou vhodnou množinu vstupů. Takže pokud by šlo o hashovaná hesla, tak se můžu omezit na ty vstupy, které jsou kratší než 20 znaků, například. Správnost hesla si pak můžu ověřit například někde na serveru tím, že se zkusím přihlásit.

Bezpečnost je založena především na tom, že z hashe nejsem schopný vypočítat vůbec žádný původní vstup.
Louka
Profil
Timy:
Kdybys četl i další můj příspěvek, víš, že jsem se nezaobíral použitím pro hesla a přihlašování, ale pro šifrování - když uděláš MD5/SHA1 otisk, nikdy nedostaneš původní vstup, ale jen množinu možností = nevíš, co chtěl původce čistopisu říct. Reagoval jsem na rozdíl hash/šifra s tím, že hash se nedá použít jako šifra, jelikož je jednosměrný. To je celé.
Timy
Profil
Louka:
když uděláš MD5/SHA1 otisk, nikdy nedostaneš původní vstup, ale jen množinu možností = nevíš, co chtěl původce čistopisu říct.
A já s tímhle nesouhlasím, protože v některých případech, pokud vím, co zhruba má být čistopis, tak můžu z té množiny vybrat ideálního kandidáta, který s největší pravděpodobností bude tím tvým čistopisem. V některých speciálních případech si svůj výběr můžu i ověřit. Zkrátka to nikdy je tam příliš silné.
Louka
Profil
Timy:
můžu z té množiny vybrat ideálního kandidáta, který s největší pravděpodobností bude
To je pravda. Ale máš tam (správně) napsáno "s největší pravděpodobností" - ale nikdy nebudeš mít 100% jistotu, chceš-li se bavit o vhodnosti kvantifikátorů.

V některých speciálních případech si svůj výběr můžu i ověřit.
A já znovu říkám, že se bavím o obecné rovině, ne o přihlašování. Oprosti se od ověřování: najdeš v lese kus papíru s hashem. Šlo mi jen o to říct, že se ta operace nedá vrátit :).

Ale jinak máš pravdu, že za normálních okolností (pokud je vůbec snaha určit původní sdělení z otisku normální) jde a) tipnout, co tam mohlo být b) z množiny kandidátů určit správného zkoušením, pokud je možnost ověření.
Timy
Profil
Opravdu 100% jistota právě není potřeba, to bychom pak mohli říct, že posunovací šifra není prolomitelná, protože nikdy nejsme 100% schopni určit, který z těch 25 nesmyslných jednoho smysluplného textu uživatel původně poslal :-).

Ok, rozumíme si.
Louka
Profil
Timy:
:D jo máš pravdu, moc jsem slovíčkařil, až jsem to zeslovíčkařil...
Spectator
Profil
Takhle jsem se dlouho nenasmál.....

abcdefghijklmnopqrstuvwxyz1234567890
mjdhze0231w86456qweroitjvked1zj3hm20

je tam pár duplicit, ale to je třeba dobře - to já nemůžu vědět =)
snake.aas
Profil
Pravidlo 23: Nevytvářejte vlastní kryptografické algoritmy, používejte existující (Sverre H. Huseby - Zranitelný kód, str.132)
impakt
Profil *
Každopadne mi tym nasadil chrobaka aj tie vaše ostatne komentare. Myslim si že to nie je až také ťažke vytvorit šifrovaci algoritmus, stači len trochu numerologie a konverzie medzi číselnymi zakladmi napriklad a to je to prve čo ma napadlo, tzv. vystrel od pasa...
petr 6
Profil
impakt:
stači len trochu numerologie
Určitě jsi chtěl napsat numerologie? Nemyslíš spíš matematiku?
nightfish_
Profil *
impakt:
Myslim si že to nie je až také ťažke vytvorit šifrovaci algoritmus
To je pochopitelně jednoduché.

Složité je vytvořit jej tak, aby nikdo se znalostí (pouze) šifrovacího algoritmu nebyl schopen (v rozumném čase) zašifrovaný text převést na otevřený text bez znalosti šifrovacího klíče.
DoubleThink
Profil *
impakt:
Myslim si že to nie je až také ťažke vytvorit šifrovaci algoritmus
Radši nemysli.

Ty nevymýšlíš šifru, jenom volíš algoritmy jednoduché symetrické substituce. Rozbít takovou šifru běžnou kryptoanalýzou je triviálně jednoduché. A je jedno, kolik kroků použiješ.
« 1 2 »

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0