Vernamova šifra

Vernamova šifra je symetrická proudová šifra spočívající v binární operací XOR nad otevřeným textem a předem smluveným náhodným klíčem (šumem).

Klíč se za žádných okolností nesmí recykovat - na každou komunikaci se použije vždy nový - protože jinak by útočník mohl XORovat obě zašifrované zprávy, čímž by získal XOR obou nezašifrovaných zpráv, z čehož lze statistickými metodami získat otevřený text obou zpráv. Pokud se dodrží tato zásada a klíč je vygenerován skutečně náhodným způsobem (nikoliv pseudonáhodným), pak šifru nelze prolomit.

Příklad

Otevřený text: EMAMAMASO
Převedeme do ASCII.

OT:   01000101 01001101 01000001 01001101 01000001 01001101 01000001 01010011 01001111 
Klíč: 10111001 01110100 00111010 00010101 01101010 11010100 10101010 10001110 10101010 
--------------------------------------------------------------------------------------
ŠT:   11111100 00111001 01111011 01011000 00101011 10011001 11101011 11011101 11100101 

Příjemce zprávu rozšifruje stejným předem smluveným klíčem.


ŠT:   11111100 00111001 01111011 01011000 00101011 10011001 11101011 11011101 11100101 
Klíč: 10111001 01110100 00111010 00010101 01101010 11010100 10101010 10001110 10101010 
--------------------------------------------------------------------------------------
OT:   01000101 01001101 01000001 01001101 01000001 01001101 01000001 01010011 01001111 

Dekódujeme z ASCII.
Otevřený text: EMAMAMASO
{ zpětná vazba }
Delicious Delicious
Sdílet
Hodnocení (7): 3,71

Přečtěte si také

Diskuse





thezeminem@gmail.com3.2.2011
Jo to myslím, že je výstižné.. :-) Nic to však nemění na tom, že zapamatovat si tyto kombinace není tak težké, jelikož stále vychází, že počet písmene ve znakové abecedě (myšle bez písmen s háčky a bez CH) se rovná převodu do binární soustavy a tedy teď už je mi jasné, že se musí zachovat tento formát (s jedničkou na druhé pozici z leva) protože je to dáno ASCII. Díky moc, doufám, že se zde časem najdou další zajímavé věci.. Ještě u něčeho mi bylo něco nejasného tak se ještě asi ozvu.. snad to nevadí_ ;-)
Pavel Mička3.2.2011
Ahoj,

jsem rád, že se ti stránky líbí :-). Nyní k Tvé otázce (pokud jsem ji dobře pochopil). Převod do binárky není prosté pořadí znaků (ač by to s ním samozřejmě také fungovalo), jedná se o ASCII kód. Jeho tabulku najdeš zde: http://www.algoritmy.net/article/89/ASCII-tabulka
thezeminem@gmail.com3.2.2011
Ahoj,
prvně bych chtěl pochválit velice kvalitní a pěkně zpracovaný web. Moc se mi líbí, je zde spoustu zajímavých věcí ke čtení a z programátorského hlediska je myslím na dost dobré úrovni.. :-) Je tedy pravda, že je to spíše čtení pro někoho jiného, než jsem já (středoškolák). Teď k věci.. Možná se trápím hloupostí, nebo jsem na to prostě nepřišel, ale pokud koukám na tuto Vernamovu šifru, tak jestli to chápu dobře tak jednotlivým písmenům se přiřazuje číslo dle umístění v abecedě, vyjma CH (bigram) a písmen s háčky. Toto číslo se následně převede do binárního tvaru. Nyní mě však nedá spát, proč je ve výsledném převodu ta jednička (druhá z leva: x1xxxxxxx). V samotném převodu nijak nefiguruje. Napadlo mě, že je tam pouze pro zmatení nepřítele a pro složitější ŠT. Ovšem toto podle mě ztrácí zcela smysl při exkluzivním součtu XOR pokud použiji náhodně uspořádaný klíč. Je má myšlenka pravdivá, nebo jsem to celé špatně pochopil?? Doufám, že je tato stránka ještě aktivní, rád bych se to dozvěděl.. :-)