Herní doupě

Symetrická šifra S47

S47 je kostičková šifra, obstojí proti síle výkonného počítače, lze šifrovat a dešifrovat zcela ručně. Vychází ze šifry ElsieFour (LC4) popsaná Alanem Kaminsky. Šifra se Vám může hodit, když nemáte u sebe počítat, či když mu nedůvěřujete, přesto potřebujete zajistit maximální soukromí. S47 je mírně vylepšená, jsou přidané znaky, původní velikost pole bylo 6×6, a v této rozšířené verzi je pole 7×7, aby bylo možné šifrovat některé strukturované informace.

V Pythonu je napsaný kód, který umí šifrovat a dešifrovat zprávy S47, spustit jej můžete na  repl.it.

Skript spustíte zeleným tlačítkem „run“.

Podrobný návod najdete na GitLabu, je k němu přiložená tabulka na vytisknutí a na rozstříhání: https://gitlab.com/AGPL/ls47/tree/master

Strohý návod na ruční šifrování

K ručnímu šifrování je zapotřebí ještě takzvaný „Marker“ značka, může to být libovolný předmět, kamínek či kroužek.

Jak na to

Kostičky si rozložíme před sebe do čtverce, jejich permutace je tajný klíč k zašifrování a dešifrování. Tudíš kostičky můžete libovolně zamíchat, ale znalost rozložení kostiček je klíčové k dešifrování zprávy, proto si permutaci poznamenejte. Další možností je využít expanzní klíč, to je algoritmus, který funguje na bázi hesla, aby jste si nemuseli pamatovat rozložení kostiček, o tom až na konci článku.

Vstupní písmena: Yes
První vstupní písmeno je „Y“

Jak zašifrovat zprávu

  1. Vstupní písmeno + offset [značky] = šifrované písmeno
  2. Řádek se vstupním písmenem rotujeme o 1 doprava
  3. Sloupec se zašifrovaným písmenem o 1 dolů
  4. [Značku] posuneme o offset z kostičky se zašifrovaným písmenem

Jak dešifrovat zprávu

Proces dešifrování je podobný, především offset se odečítá.

  1. Od pozice vstupního písmene odečti offset z pozice značky = pozice dešifrovaného písmena
  2. Řádek s rozluštěným písmenem rotujeme o 1 doprava
  3. Sloupec se vstupním písmenem o 1 dolů
  4. Značku (Marker) posuneme o offset na kostičce se nerozluštěným písmenem

Již brzy plánuji vytvořit video návod.

Expanzní klíč – heslo

Kostičky si rozložíme před sebe do čtverce, jejich permutace je tajný klíč k zašifrování a dešifrování. Můžete využít algoritmus, který funguje na bázi hesla, aby jste si nemuseli pamatovat rozložení kostiček. Heslo šifry = nástroj na vytvoření klíče. Podle pozice (offsetu) na vstupním písmeni, posuň první řádek do prava a sloupec se vstupním písmenem dolů.

Heslo: ahoj
První vstupní písmeno = „A“, jeho původní pozice (offset) = 1,0

  • Podívám se se na první písmeno A a zjistím z něj offset
  • Posunu první řádek a sloupec o offset na písmeni A (do prava a pak dolů)
  • Podívám se na druhé písmeno H a zjistím z něj offset
  • Posunu druhý řádek a sloupec o offset na písmeni B
  • Podívám se na třetí písmeno O a zjistím z něj offset
  • Posunu třetí řádek a sloupec o offset na písmeni O
  • Posouváte se ze šikma dolů…

Heslo by mělo mít alespoň dvacet znaků abychom dosáhli dostatečné entropie.

Jeden komentář

Diskuze je uzavřena.