ROT13

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 16. listopadu 2016; kontroly vyžadují 14 úprav .

ROT13 ( anglicky  otočit ; "posun 13 pozic", někdy psáno s pomlčkou - ROT-13 ) je jednoduchá substituční šifra pro anglickou abecedu (standardní latinku), používaná na internetových fórech jako prostředek ke skrytí spoilerů . hlavní myšlenky, hádanka řešení a urážlivý materiál z běžného pohledu. ROT13 byl popsán jako „ online ekvivalent způsobu, jakým časopisy píší kvízové ​​odpovědi  vzhůru nohama“ [1] . ROT13 je variací Caesarovy šifry vyvinuté vStarověký Řím .

ROT13 je reverzibilní algoritmus , to znamená, že ROT13 můžete zrušit použitím stejného algoritmu; stejné akce lze použít pro kódování a dekódování. Algoritmus neposkytuje žádné skutečné kryptografické zabezpečení a nikdy by se k tomu neměl používat. Často se uvádí jako kanonický příklad slabé metody šifrování. Algoritmus ROT13 zplodil řadu online her s písmeny a slovy; Algoritmus se často používá v diskusních skupinách (Usenet).

Popis

Použití algoritmu ROT13 na kus textu vyžaduje jednoduše nahradit každý abecední znak jeho odpovídajícím posunem o 13 pozic v abecedě [2] . Z A se stane N , B se změní na O a tak dále až k M , které se změní na Z , a poté se postupně použijí písmena ze začátku abecedy: N se změní na A , O se změní na B a tak dále až do Z , které se změní na M. Pouze ta písmena, která jsou použita v anglické abecedě , jsou ovlivněna ; čísla, symboly, mezery a všechny ostatní znaky zůstávají nezměněny. Protože v anglické abecedě je pouze 26 písmen a 26 = 2 × 13, pak je funkce ROT13 inverzní sama k sobě [2] :

pro libovolný text x .

Jinými slovy, dvě po sobě jdoucí použití ROT13 obnoví původní text (v matematice se tomu někdy říká involuce ; v kryptografii vzájemné šifry ).

Transformace lze provádět pomocí vyhledávací tabulky , například:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm

Například v následujícím vtipu byla hlavní myšlenka uzavřena šifrou ROT13:

Jak v NSA rozeznáte extroverta od introverta ? Ubj pna lbh gryy na rkgebireg sebz na vagebireg ng AFN?

Převod textu pomocí šifry ROT13, odpověď na vtip:

Ve výtazích se extrovert dívá na boty DRUHÉHO chlápka. Va gur ryringbef, gur rkgebireg ybbxf ng gur BGURE thl'f ​​​​fubrf.

Opětovné použití algoritmu ROT13 obnoví původní.

Aplikace

ROT13 byl používán na fóru net.jokes news na začátku 80. let [3] . Používal se k zakrytí potenciálně urážlivých vtipů nebo v reakci na hádanku či spoiler. Třináctimístný posun byl zvolen před jinými hodnotami, jako jsou tři, jako v původní Caesarově šifře, protože třináctka je číslo, které poskytuje jak kódování, tak dekódování, čímž poskytuje jediné pohodlí pro oba příkazy [2] [4] . ROT13 je obecně podporován jako vestavěná funkce v softwarových funkcích čtečky novinek [4] . E-mailové adresy jsou také někdy zakódovány pomocí algoritmu ROT13, aby byly skryty před méně pokročilými spamovacími roboty .

ROT13 je speciální případ šifrovacího algoritmu známého jako Caesarova šifra , připisovaný Juliu Caesarovi v 1. století před naším letopočtem [5] . Konkrétnější použití šifrování má na mysli indický filozof Vatsyayana Mallanaga , autor sexuální příručky Kámasútra .

ROT13 není určen pro použití s ​​citlivými informacemi; použití konstantního posunu znamená, že šifrování je fakticky bezklíčové a k dešifrování není potřeba více znalostí než skutečnost, že lze použít ROT13. I bez těchto znalostí lze algoritmus snadno dešifrovat pomocí frekvenční analýzy [2] . Protože je zcela nekonzistentní se skutečnou tajnou ochranou, ROT13 se stal slangem pro jakékoli zjevně slabé šifrovací schéma; kritici by mohli namítnout, že "56bitový DES  je o něco lepší než ROT13 v minulosti." Kromě toho se často používají podobnosti s výrazy ze skutečného života, například „double DES“, se smyslem pro humor použijte „double ROT13“, „ROT26“ nebo „2ROT13“, včetně parodické akademické práce „On the 2ROT13 Encryption Algorithm“ [6 ] .

Použitím algoritmu ROT13 na již šifrovaný text ROT13 získáme původní text; ROT26 je ekvivalentem žádného šifrování jako takového. Navíc trojí použití ROT13 nebo 3ROT13 (použité v hravé analogii s 3DES) je ekvivalentní běžnému ROT13.

V prosinci 1999 bylo zjištěno, že Netscape Communicator používá ROT-13 jako součást nezabezpečeného schématu pro ukládání e-mailových hesel [7] . V roce 2001 ruský programátor Dmitrij Sklyarov ukázal, že dodavatel elektronických knih, New Paradigm Research Group (NPRG), používal ROT13 k šifrování jejich dokumentů; NPRG údajně zneužil ROT13 v hračce, například poskytnutý Adobe s eBook Software Development Kit pro vážné šifrování [8] Windows XP používá ROT13 pro některé ze svých klíčů registru [9] .

Dopisové hry a "síťová" kultura

abcdefghijklmnopqrstuvwxyz
NOPQRSTUVWXYZABCDEFGHIJKLM
aha ↔ jeptiška mravenec ↔ nag
balk ↔ onyx takt ↔ jedna
barf ↔ jedničky být ↔ nebo
bin ↔ vajíčka odliv ↔ střecha
závist ↔ kolej er ↔ re
errs ↔ útes klapka ↔ synchronizace
kožešina ↔ ona gel ↔ zkuste
komár ↔ tang irk ↔ vex
úředník ↔ pyrex ↔ cheryl _
PNG ↔ kat SHA ↔ zábava
furby ↔ šeol terra ↔ zelená
co ↔ Jung URL ↔ ahoj
purpura ↔ čečenská zářil ↔ FUBAR

ROT13 poskytuje příležitost pro „hry se slovy“. Některá slova transformovaná algoritmem ROT13 vytvářejí další známé slovo. Nejdelší příklady z angličtiny se skládají ze sedmi písmen: „abjurer“ (zříkající se své víry) ↔ „nikde“ (nikde) a „čečen“ ( Čečen ) ↔ „purpura“ ( purpura ). Další příklady slov jsou uvedeny v tabulce [10] .

V roce 1989 asociace International Obfuscated C Code Contest (IOCCC) přidala notaci Briana Westleyho. Počítačový program Westley dokáže správně zkompilovat prosté i ROT13 kódované zdroje. Program funguje buď tak, že provede kódování ROT13 nebo reverzní kódování zakódovaného vstupního textu [11] .

Diskusní skupina alt.folklore.urban přišla se slovem "furrfu", což je kód ROT13 pro běžně používané slovo "sheesh" (fuj!). “Furrfu” byl těžce používán v střední-1992 v odezvě na často odeslaná opakování městských mýtů na alt.folklore.urban, ke kterému mnoho stěžovalo si, že takové odezvy na nováčka pošty byly nadměrné [12] .

Ve webovém komiksu Darths and Droids [13] jedna postava (Jim, kterou hraje Qui-Gon Jinn ) uvádí, že v ROT13 je slovo „Jedi“ (Jedi) zakódováno jako „mnich“ (mnich). Další hrdina (Pete, hrající robota R2-D2 ) ho okamžitě opraví a poznamená, že „mnich“ v ROT13 odpovídá „Zbax“.

Varianty algoritmu

ROT47 je odvozen od algoritmu ROT13, kromě základní sady písmen používá i čísla a pomocné znaky. Místo použití abecední sekvence A–Z používá ROT47 větší znakovou sadu známou jako kódování ASCII . Zejména 7bitové znaky, které se mají vytisknout, kromě mezery, z desetinného 33. znaku '!' až do 126. znaku '~' - celkem 94 znaků v pořadí číselných hodnot jejich ASCII kódů je schopno posunout o 47 pozic bez zvláštních úprav. Například znak A je mapován na p , znak a je mapován na 2 . Použití větší abecedy vytváří důkladnější zmatek než ROT13, například není zřejmé, že Z`\c`d\gbh\eggd  je zakódované telefonní číslo +1-415-839-6885. Na druhou stranu, protože ROT47 zadává čísla a znaky ve směsi bez rozdílu, je zřejmější, že text byl zašifrován.

Příklad:

Rychlá hnědá liška skáče přes líného psa .

zašifrované v

%96 "F:4< qC@H? u@I yF>AD ~G6C %96 {2KJ s@8]

Knihovna GNU C , sada standardních rutin pro použití v počítačových programech, obsahuje funkci memfrob() [14] , která má podobné účely jako ROT13, i když je určena k použití s ​​libovolnými binárními daty. Tato funkce funguje tak, že pracuje na každém byte ve spojení s binárním vzorem 00101010 ( číslo 42 ) pomocí operace výhradního OR (XOR). Funguje to jako jednoduchá šifra XOR . Stejně jako ROT13 je memfrob() reciproční a poskytuje podobnou, téměř neexistující úroveň zabezpečení.

Příklady

V programovacím jazyce Python vypadá algoritmus takto:

def rot13 ( text ): rot13ed = '' pro písmeno v textu : byte = ord ( písmeno ) velké písmeno = ( byte & 32 ) byte &= ~ velké písmeno if ord ( 'A' ) <= byte <= ord ( 'Z' ): byte -= ord ( 'A' ) byte += 13 byte %= 26 byte += ord ( 'A' ) byte |= kapitál rot13ed += chr ( byte ) return rot13ed

Optimalizovaná verze:

def rot13 ( text ): sub = 'NOPQRSTUVWXYZABCDEFGHIJKLM[\]^_`nopqrstuvwxyzabcdefghijklm' res = [] pro písmeno v textu : res . append ( sub [ ord ( písmeno ) - 65 ]) return '' . připojit se ( res )

Příklad v programovacím jazyce Rust :

#[rustfmt::přeskočit] const NÁHRADY : [ u8 ; 58 ] = [ b'N' , b'O' , b'P' , b'Q' , b'R' , b'S' , b'T' , b'U' , b'V' , b'W' , b' X' , b'Y' , b'Z' , b'A' , b'B' , b'C' , b'D' , b'E' , b'F' , b'G' , b'H' , b'I' , b'J' , b'K' , b'L' , b'M' , 0 , 0 , 0 , 0 , 0 , 0 , b'n' , b'o' , b'p' , b'q' , b'r' , b's' , b't' , b'u' , b'v' , b'w' , b' x' , b'y' , b'z' , b'a' , b'b' , b'c' , b'd ' , b'e ' , b'f' , b'g' , b'h' , b'i' , b'j' , b'k' , b'l' , b'm' , ]; /// # Příklad /// /// ``` /// Claim_eq!("Uryyb, jbeyq!", rot13("Ahoj světe!")); /// ``` fn rot13 ( src : & str ) -> String { src _ bajtů () . mapa ( | byte | { nech hlavní_bajt = byte & ! 32 ; char :: from ( if velký_bajt >= b'A' && velký_bajt <= b'Z' { // bezpečnost: toto by mělo být bezpečné pro latinská písmena unsafe { * SUBSTITUTIONS . get_unchecked (( byte - b'A' ) as useize ) } } jinak { byte }) }) . sbírat () } fn main () { let src = "Ahoj světe!" ; println! ( "Originál: \" {} \" , Kódováno: \" {} \" " , src , rot13 ( src )); }

Viz také

Poznámky

  1. Horrocks, Bruce UCSM Cabal Circular #207-a . Usenet group uk.comp.sys.mac (ID zprávy [email protected]) (28. června 2003). Staženo 17. září 2007.
  2. 1 2 3 4 Schneier, Bruce . Aplikovaná kryptografie  (neopr.) . - Druhý. - John Wiley & Sons , 1996. - S.  11 . - ISBN 0-471-11709-9 .
  3. První použití ROT13 nalezené v archivu Google USENET se datují do 8. října 1982, zveřejněno v diskusní skupině net.jokes [1] [2]
  4. 1 2 Raymond, Eric S. (ed.) ROT13 . Soubor žargonu, 4.4.7 (29. prosince 2003). Získáno 19. září 2007. Archivováno z originálu 8. června 2012.
  5. Kahn, David . The Odebreakers: The Story of Secret Writing  (anglicky) . New York: Macmillan. — ISBN 0-684-83130-9 .
  6. O šifrovacím algoritmu 2ROT13 (PDF). Prüfziffernberechnung in der Praxis (25. září 2004). Získáno 20. září 2007. Archivováno z originálu 8. června 2012.
  7. Hollebeek, Tim; Viega, John. Špatná kryptografie v prohlížeči Netscape: případová studie . Spolehlivé softwarové technologie. Získáno 20. září 2007. Archivováno z originálu 8. června 2012.
  8. Perens, Bruce Dimitry Sklyarov: Nepřítel nebo přítel? (nedostupný odkaz) . Zprávy ZDNet (1. září 2001). Získáno 20. září 2007. Archivováno z originálu 8. února 2009. 
  9. Ferri, Vic Klíče počtu v registru Windows . ABC: All 'Bout Computers (4. ledna 2007). Získáno 20. září 2007. Archivováno z originálu 8. června 2012.
  10. De Mulder, Tom ROT13 Words . Furrfu! . Získáno 19. září 2007. Archivováno z originálu 8. června 2012.
  11. Westley, Brian westley.c . IOCCC (1989). Získáno 13. srpna 2007. Archivováno z originálu dne 8. června 2012.
  12. Furrfu . Foldoc (25. října 1995). Získáno 13. srpna 2007. Archivováno z originálu dne 8. června 2012.
  13. nepravidelný webcomic.net . Získáno 9. února 2009. Archivováno z originálu 10. února 2009.
  14. 5.10 Triviální šifrování . Referenční příručka knihovny GNU C . Free Software Foundation (3. prosince 2006). Získáno 20. září 2007. Archivováno z originálu 8. června 2012.

Odkazy