ROT13

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 16. november 2016; checks kræver 14 redigeringer .

ROT13 ( engelsk  rotere ; "skift 13 positioner", nogle gange stavet med en bindestreg - ROT-13 ) er en simpel substitutionskryptering for det engelske alfabet (Standard Latin), brugt i internetfora som et middel til at skjule spoilere . hovedtanker, puslespil løsninger og stødende materiale fra et afslappet blik. ROT13 er blevet beskrevet som " online -ækvivalenten til den måde, magasiner skriver quiz - svar  på hovedet" [1] . ROT13 er en variation af Cæsar-chifferet udviklet iDet gamle Rom .

ROT13 er en reversibel algoritme , det vil sige, du kan annullere ROT13 ved at anvende den samme algoritme; de samme handlinger kan bruges til kodning og afkodning. Algoritmen giver ikke nogen reel kryptografisk sikkerhed og bør aldrig bruges til dette. Det nævnes ofte som det kanoniske eksempel på en svag krypteringsmetode. ROT13-algoritmen har affødt en række online bogstav- og ordspil; Algoritmen bruges ofte i nyhedsgrupper (Usenet).

Beskrivelse

Anvendelse af ROT13-algoritmen på et stykke tekst kræver blot at erstatte hvert alfabetisk tegn med dets tilsvarende skift med 13 positioner i alfabetet [2] . A bliver til N , B bliver til O , og så videre op til M , som bliver Z , og derefter påføres bogstaver fra begyndelsen af ​​alfabetet successivt: N bliver A , O bliver til B , og så videre indtil Z , som bliver til M. Kun de bogstaver, der bruges i det engelske alfabet , er berørt ; tal, symboler, mellemrum og alle andre tegn forbliver uændrede. Da der kun er 26 bogstaver i det engelske alfabet, og 26 = 2 × 13, så er ROT13-funktionen omvendt til sig selv [2] :

for enhver tekst x .

Med andre ord, to på hinanden følgende anvendelser af ROT13 gendanner den originale tekst (i matematik kaldes dette nogle gange involution ; i kryptografi, gensidige cifre ).

Transformationer kan udføres ved hjælp af en opslagstabel , såsom:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm

For eksempel, i den følgende joke, blev hovedideen lukket med chifferen ROT13:

Hvordan kan du skelne en udadvendt fra en introvert hos NSA ? Vil du være sikker på, at du skal bruge AFN?

Tekstkonvertering via ROT13-chiffer, svar på joken:

I elevatorerne kigger den udadvendte på den ANDEN fyrs sko. Va gur ryringbef, gur rkgebireg ybbxf ng gur BGURE thl'f ​​​​fubrf.

Genanvendelse af ROT13-algoritmen vil gendanne originalen.

Ansøgning

ROT13 blev brugt af net.jokes nyhedsforum i begyndelsen af ​​1980'erne [3] . Det blev brugt til at dække over potentielt stødende vittigheder eller som svar på et puslespil eller en spoiler. Det trettencifrede skift blev valgt frem for andre værdier, såsom tre, som i den oprindelige Cæsar-chiffer, fordi tretten er et tal, der giver både kodning og afkodning, og dermed giver en enkelt bekvemmelighed for begge kommandoer [2] [4] . ROT13 understøttes generelt som en indbygget funktion i nyhedsfeed-læsersoftwarefunktioner [4] . E-mail-adresser er også nogle gange kodet med ROT13-algoritmen for at skjule dem fra mindre avancerede spambots .

ROT13 er et specialtilfælde af krypteringsalgoritmen kendt som Cæsar-chifferet , tilskrevet Julius Cæsar i det 1. århundrede f.Kr. [5] . En mere specifik brug af kryptering er af den indiske filosof Vatsyayana Mallanaga , forfatter til sexmanualen Kama Sutra .

ROT13 er ikke beregnet til brug med følsomme oplysninger; at bruge et konstant skift betyder, at krypteringen reelt er nøglefri , og der skal ikke mere viden til at dekryptere end det faktum, at ROT13 kan bruges. Selv uden denne viden kan algoritmen let dechifreres gennem frekvensanalyse [2] . Da det er fuldstændig inkonsistent med egentlig hemmelig beskyttelse, er ROT13 blevet slang for enhver tilsyneladende svag krypteringsordning; kritikere vil måske hævde, at "56-bit DES  er lidt bedre end ROT13 i fortiden." Derudover bruges ofte ligheder med udtryk fra det virkelige liv, for eksempel "dobbelt DES", brug med humoristisk sans "dobbelt ROT13", "ROT26" eller "2ROT13", herunder i det parodi akademiske værk "On the 2ROT13". Krypteringsalgoritme” [6] .

Ved at anvende ROT13-algoritmen på den allerede ROT13-chiffertekst, får vi den originale tekst; ROT26 svarer til ingen kryptering i sig selv. Derudover svarer den tredobbelte brug af ROT13 eller 3ROT13 (brugt i en legende analogi med 3DES) til almindelig ROT13.

I december 1999 blev det konstateret, at Netscape Communicator brugte ROT-13 som en del af en usikker ordning til at gemme e-mail-adgangskoder [7] . I 2001 demonstrerede den russiske programmør Dmitry Sklyarov , at en e-bogsleverandør, New Paradigm Research Group (NPRG), brugte ROT13 til at kryptere deres dokumenter; NPRG har angiveligt misbrugt ROT13 i et legetøj, for eksempel leveret af Adobe med eBook Software Development Kit til seriøs kryptering [8] Windows XP bruger ROT13 til nogle af dets registreringsnøgler [9] .

Bogstavspil og "netværkskultur"

abcdefghijklmnopqrstuvwxyz
NOPQRSTUVWXYZABCDEFGHIJKLM
aha ↔ nonne myre ↔ nag
balk ↔ onyx takt ↔ en
barf ↔ dem være ↔ eller
bin ↔ æg ebbe ↔ tag
misundelse ↔ skinne er ↔ vedr
fejler ↔ rev flap ↔ sync
pels ↔ hun gel ↔ prøv
myg ↔ tang irk ↔ vex
kontorist ↔ pyrex ↔ cheryl _
PNG ↔ kat SHA ↔ sjovt
furby ↔ sheol terra ↔ grøn
hvad ↔ Jung URL ↔ hej
purpura ↔ tjetjensk lyste ↔ FUBAR

ROT13 giver mulighed for "ordspil". Nogle ord transformeret af ROT13-algoritmen producerer et andet kendt ord. De længste eksempler fra det engelske sprog består af syv bogstaver: "abjurer" (som giver afkald på sin tro) ↔ "nowhere" (ingensteds) og "Chechen" ( tjetjensk ) ↔ "purpura" ( purpura ). Andre eksempler på ord er givet i tabellen [10] .

I 1989 tilføjede International Obfuscated C Code Contest (IOCCC) sammenslutningen Brian Westley notation. Westley -computerprogrammet kan korrekt kompilere både almindelige og ROT13-kodede kilder. Programmet fungerer enten for at udføre ROT13-kodning eller omvendt kodning af den kodede inputtekst [11] .

Alt.folklore.urban-nyhedsgruppen fandt på ordet "furrfu", som er ROT13-kodet for det almindeligt brugte ord "sheesh" (ugh!). "Furrfu" blev flittigt brugt i midten af ​​1992 som svar på de hyppigt udsendte gentagelser af bymyter på alt.folklore.urban, hvortil mange klagede over, at sådanne svar på nye indlæg var overdrevne [12] .

I Darths and Droids [13] webcomic, siger en karakter (Jim, spillet af Qui-Gon Jinn ), at i ROT13 er ordet "Jedi" (Jedi) kodet som "munk" (munk). En anden helt (Pete, der spiller robot R2-D2 ) retter ham straks og bemærker, at "munk" i ROT13 svarer til "Zbax".

Varianter af algoritmen

ROT47 er afledt af ROT13-algoritmen, udover det grundlæggende sæt af bogstaver, bruger den også tal og hjælpetegn. I stedet for at bruge den alfabetiske sekvens A–Z , bruger ROT47 et større tegnsæt kendt som ASCII -kodning . Især 7-bit tegn, der skal udskrives, eksklusive mellemrum, fra decimal 33. tegn '!' op til det 126. tegn '~' - 94 tegn i alt, taget i rækkefølgen af ​​de numeriske værdier af deres ASCII-koder, er i stand til at flytte 47 positioner uden særlige arrangementer. For eksempel er tegn A knyttet til p , tegn a er afbildet til 2 . Brug af et større alfabet giver mere grundig tilsløring end ROT13, for eksempel er det ikke indlysende, at Z`\c`d\gbh\eggd  er det kodede telefonnummer +1-415-839-6885. På den anden side, da ROT47 indtaster tal og tegn i en blanding uden nogen skelnen, er det mere indlysende, at teksten er blevet krypteret.

Eksempel:

Den hurtige brune ræv hopper over den dovne hund .

krypteret ind

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

GNU C Library , et sæt standardrutiner til brug i computerprogrammer, indeholder memfrob()- funktionen [14] , som har lignende formål som ROT13, selvom den er beregnet til at blive brugt med vilkårlige binære data. Denne funktion fungerer ved at operere på hver byte i forbindelse med det binære mønster 00101010 ( tallet 42 ) ved at bruge den eksklusive ELLER (XOR) operation. Dette fungerer som en simpel XOR-chiffer . Ligesom ROT13 er memfrob() gensidig og giver et lignende, næsten ikke-eksisterende, sikkerhedsniveau.

Eksempler

I programmeringssproget Python ser algoritmen sådan ud:

def rot13 ( tekst ): rot13ed = '' for bogstav i tekst : byte = ord ( bogstav ) kapital = ( byte & 32 ) byte &= ~ kapital hvis ord ( 'A' ) <= byte <= ord ( 'Z' ): byte -= ord ( 'A' ) byte += 13 byte %= 26 byte += ord ( 'A' ) byte |= kapital rot13ed += chr ( byte ) return rot13ed

Optimeret version:

def rot13 ( tekst ): sub = 'NOPQRSTUVWXYZABCDEFGHIJKLM[\]^_`nopqrstuvwxyzabcdefghijklm' res = [] for bogstav i tekst : res . tilføje ( under [ ord ( bogstav ) - 65 ] ) returnere '' . deltage ( res )

Et eksempel i Rust -programmeringssproget :

#[rustfmt::spring] const SUBSTITUTIONER : [ 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' , ]; /// # Eksempel /// /// ``` /// assert_eq!("Uryyb, jbeyq!", rot13("Hej, verden!")); /// ``` fn rot13 ( src : & str ) -> String { src . bytes () . kort ( | byte | { lad capital_byte = byte & ! 32 ; char :: fra ( if capital_byte >= b'A' && capital_byte <= b'Z' { // sikkerhed: dette burde være sikkert for latinske bogstaver usikre { * SUBSTITUTIONER . get_unchecked (( byte - b'A' ) som usize ) } } andet { byte }) }) . samle () } fn main () { let src = "Hej verden!" ; println! ( "Original: \" {} \" , kodet: \" {} \" " , src , rot13 ( src )); }

Se også

Noter

  1. Horrocks, Bruce UCSM Cabal Circular #207-a . Usenet -gruppen uk.comp.sys.mac (Meddelelses-id [email protected]) (28. juni 2003). Hentet 17. september 2007.
  2. 1 2 3 4 Schneier, Bruce . Anvendt kryptografi  (neopr.) . - Sekund. - John Wiley & Sons , 1996. - S.  11 . - ISBN 0-471-11709-9 .
  3. Tidlige anvendelser af ROT13 fundet i Google USENET-arkivet går tilbage til 8. oktober 1982, sendt til net.jokes- nyhedsgruppen [1] [2]
  4. 1 2 Raymond, Eric S. (red.) ROT13 . The Jargon File, 4.4.7 (29. december 2003). Hentet 19. september 2007. Arkiveret fra originalen 8. juni 2012.
  5. Kahn, David . Odebreakers: The Story of Secret Writing  (engelsk) . New York: Macmillan. — ISBN 0-684-83130-9 .
  6. På 2ROT13 Encryption Algorithm (PDF). Prüfziffernberechnung in der Praxis (25. september 2004). Hentet 20. september 2007. Arkiveret fra originalen 8. juni 2012.
  7. Hollebeek, Tim; Viega, John. Dårlig kryptografi i Netscape-browseren: et casestudie . Pålidelige softwareteknologier. Hentet 20. september 2007. Arkiveret fra originalen 8. juni 2012.
  8. Perens, Bruce Dimitry Sklyarov: Fjende eller ven? (utilgængeligt link) . ZDNet News (1. september 2001). Hentet 20. september 2007. Arkiveret fra originalen 8. februar 2009. 
  9. Ferri, Vic Tællenøglerne i Windows-registreringsdatabasen . ABC: Alle 'Bout Computers' (4. januar 2007). Hentet 20. september 2007. Arkiveret fra originalen 8. juni 2012.
  10. De Mulder, Tom ROT13 Ord . Furrfu! . Hentet 19. september 2007. Arkiveret fra originalen 8. juni 2012.
  11. Westley, Brian westley.c . IOCCC (1989). Hentet 13. august 2007. Arkiveret fra originalen 8. juni 2012.
  12. Furrfu . Foldoc (25. oktober 1995). Hentet 13. august 2007. Arkiveret fra originalen 8. juni 2012.
  13. irregularwebcomic.net . Hentet 9. februar 2009. Arkiveret fra originalen 10. februar 2009.
  14. 5.10 Triviel kryptering . GNU C Library Reference Manual . Free Software Foundation (3. december 2006). Hentet 20. september 2007. Arkiveret fra originalen 8. juni 2012.

Links