Šifra s heslem od Trejpy

Zakódovat / rozkódovat text:

Návod na použití

Do políčka „Vstupní pole“ zadejte text, který chcete zakódovat. Do políčka „Heslo“ zadejte soukromé heslo, podle kterého se má zpráva zakódovat. Klikněte na tlačítko „Kódovat“ a program zprávu zakóduje do políčka „Výsledek“.

Za vstupní text a heslo lze použít všechny znaky abecedy (diakritika se odstraní), mezeru, pomlčku, čárku, tečku, otazník a vykřičník. Ostatní znaky (včetně čísel) jsou převedeny na pomlčku. Na velikosti písmen nezáleží.

Výslednou šifru je třeba zachovat přesně včetně mezer, tzn. žádné mezery nepřidávat. Kód lze dělit pomocí odřádkování nebo tabulátorů.

Heslo si vždy dobře zapamatujte. Neexistuje žádný způsob, jak bez něj text dešifrovat.

Popis kódování

Program je postaven na Vernerově šifře. Je to jediná šifra, u které bylo matematicky prokázáno, že je nerozluštitelná a to žádným způsobem (při hesle dlouhém jako šifrovaný text). U hesel přiměřených délek je i počítačové dešifrování nemyslitelné.

Funguje na principu exkluzivního logického součtu binárních hodnot tisknutelných znaků. V praxi to znamená toto: každému znaku (písmenu) je přiřazeno číslo. Celkem může být použito vždy tolik tisknutelných znaků, kolik jich odpovídá násobku druhé mocniny (tedy 32, 64, 128, atd.). Číslo každého znaku z textu i hesla je převedeno je převedeno na binární kód (jedničky a nuly). Je-li heslo kratší, než text, tak se opakuje. Po sobě jdoucí jedničky a nuly z textu a hesla se dají k sobě a provede se operace exkluzivní součet (XOR). Po této operaci se výsledný binární kód převede na text a ten je šifrou.

Jak funguje exkluzivní logický součet ukáži na příkladu. Šifrovaným textem bude písmeno „J“, je desáté v abecedě, dostane tedy číslo deset, což je v pětibitové binární soustavě číslo 010102. Heslem bude písmeno „X“, je dvacáté čtvrté a tomu odpovídá kód 110002. Exkluzivní logický součet porovná dva znaky (jedničky, nuly). Jsou-li znaky rozdílné (0 a 1 nebo 1 a 0), výsledkem je jedna; jsou-li znaky shodné (0 a 0 nebo 1 a 1), výsledkem je nula.

J (10)  01010
X (24)  11000
-------------
R (18)  10010

V příkladu je výsledkem kód 100102. To je číslo 18, kterému odpovídá písmeno „R“, což je zašifrovaný text, který někomu pošleme. Dotyčný dosud zná jen dohodnuté heslo („X“). Přijde-li mu tento kód, provede stejný postup, jako při šifrování. Výsledkem bude správný text („J“).

R (18)  10010
X (24)  11000
-------------
J (10)  01010

Popis programu

Program pracuje s 32 znaky. Diakritiku a velikost písmen zruší, čísla a neznámé znaky převede na pomlčky.

  A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z , . - ? !

Program obsahuje několik vylepšení:

  1. Zadané heslo je upravováno, aby se omezil nežádoucí vliv dvou až tří shodných znaků po sobě (to by snižovalo účinnost hesla).
  2. Nulová délka hesla je nahrazena heslem jiným.
  3. Je-li výsledkem kód, je automaticky odřádkovaný po 24 znacích.
  4. Je-li výsledkem text, mají nové věty první písmeno velké.

Licence:

Tento program a jeho výsledky je možno zdarma nekomerčně využívat. Autor však nepřebírá záruky za jeho funkčnost a správnost výsledků. Kopírování je dovoleno pouze v nezměněné podobě pro domácí použití. Zveřejňování programu je zakázáno. Podléhá licenci by-nc-nd.

JavaScript je nyní vypnut, program nefunguje.


Trejpa – www.rikovsky.cz – 2009

Trejpa > programy > binarni.htm