맨위로가기

ROT13

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

ROT13은 1980년대 초 유즈넷 뉴스그룹에서 유래한 간단한 문자열 암호화 방식이다. 영어 알파벳을 13자리씩 밀어 다른 문자로 치환하는 방식으로, 암호화와 복호화가 동일하다. 기밀성 유지를 위한 목적보다는 가벼운 정보 숨김에 주로 사용되며, 스포일러 방지 등에 활용된다. 암호학적으로는 보안성이 매우 낮아 약한 암호의 대명사로 사용되기도 하며, ROT47, ROT5, ROT18 등의 변형도 존재한다. 유닉스, Emacs, Vim 등 다양한 환경에서 구현되어 사용된다.

더 읽어볼만한 페이지

  • 고전 암호 - 치환 암호
    치환 암호는 평문의 글자를 다른 글자나 기호로 대체하는 암호화 방식으로, 고대부터 사용되었으며 명칭 암호와 동음이의 암호 등의 형태로 발전해 왔고, 현대에는 스포일러 방지 용도로 사용되기도 한다.
  • 고전 암호 - M-94
    M-94는 제2차 세계 대전 초기에 미국에서 사용된 수동 암호 장치로, 25개의 알파벳 원반이 부착된 막대 형태로 메시지를 암호화하고 해독하는 데 사용되었으나, 후에 운용상 허점과 암호 분석 기술 발전으로 기계식 로터 머신으로 대체되었다.
  • 인터넷 문화 - 틱톡
    틱톡은 2016년에 시작된 짧은 동영상 공유 플랫폼으로, 다양한 기능과 챌린지를 통해 사용자 참여를 유도하며 사회적 영향력을 확대하는 한편, 중독성, 유해 콘텐츠, 개인 정보 보호 문제 등 논란이 제기되기도 한다.
  • 인터넷 문화 - 이모지
    이모지는 1999년 NTT 도코모에서 처음 도입된 그림 문자로, 유니코드 표준 제정 후 전 세계적으로 확산되어 다양한 언어적 기능을 수행하며 대중문화에 영향을 미치지만, 플랫폼별 표현 방식 차이와 의미 해석 논란도 존재한다.
ROT13
ROT13
유형시저 암호의 일종
암호 유형환자 암호
키 크기1 (상수)
발명 시기1960년대 이전
세부 정보
설명ROT13은 문자를 13자리씩 이동시키는 간단한 환자 암호 기법이다.
사용Usenet 포럼에서 농담, 퍼즐 해답, 스포일러, 모욕적인 자료 등을 숨기는 데 사용됨.
보안 방법으로는 부적절함.
암호화 예시
평문Why did the chicken cross the road?
암호문Jul qvq gur puvpxra pebff gur ebnq?
복호문Why did the chicken cross the road?
변형
ROT5숫자만 암호화 (0-9를 5-9, 0-4로 순환)
ROT47ASCII 문자 집합의 처음 94자 순환
추가 정보
특징ROT13은 자체 역함수이다.
동일한 알고리즘을 적용하여 암호화와 복호화를 수행할 수 있다.

2. 역사

ROT13은 1980년대 초반 [http://groups.google.com/group/net.jokes net.jokes] 뉴스그룹에서 유래하였다. 원래 목적은 보기에 따라 모욕적일 수 있는 내용이나, 유머의 핵심 내용을 실수로 미리 보지 않도록 하는 것이었다. 처음에는 모욕적인 농담을 다른 뉴스그룹에 올려 분류하려 했으나, 관리자들은 그런 뉴스그룹을 만드는 것이 그러한 내용을 해당 그룹에 올리면 문제가 없다는 식으로 보일 수 있다는 이유로 반대했다.

ROT13이 선택된 이유는 단순하면서도 효과적이었기 때문이다. 영어 알파벳 26글자를 13자리씩 밀어내는 방식은 암호화와 복호화를 동일한 과정으로 수행할 수 있게 해주었다. 이는 폴란드어처럼 알파벳이 26자가 넘거나 하와이어처럼 더 적은 언어에서는 불가능한 방식이었다.

손으로 메시지를 암호화하고 복호화할 수도 있지만, 자동으로 암호화나 복호화를 하는 것이 더 편리했다. 유닉스 계열 시스템들은 tr이라는 표준 유틸리티를 지원하여 ROT13 암호화 및 복호화를 쉽게 할 수 있었다. 얼마 지나지 않아 뉴스리더 소프트웨어들도 자동 복호화 기능을 지원하게 되었다.

1989년 국제 난해한 C 코드 경연대회(IOCCC)에는 브라이언 웨슬리의 출품작이 포함되었는데, 이 컴퓨터 프로그램은 ROT13으로 인코딩되거나 반전되어도 여전히 올바르게 컴파일되었다. 1999년 12월, 넷스케이프 커뮤니케이터가 이메일 비밀번호를 저장하기 위한 안전하지 않은 방식의 일부로 ROT13을 사용한 것이 발견되었다.[5] 2001년, 러시아 프로그래머 드미트리 스클랴로프는 전자책 판매업체가 문서를 암호화하기 위해 ROT13을 사용했음을 시연했다.[6] 윈도우 XP는 일부 레지스트리 키에 ROT13을 사용한다.[7]

18세기 시계 제작자이자 영구 기관 기계 제작자인 요한 에른스트 엘리아스 베슬러는 ROT13으로 자신의 성을 ''Orffyre''로 인코딩했다. 그는 자신의 필명으로 이 성의 라틴화된 형태인 ''Orffyreus''를 사용했다.[8]

2. 1. 유즈넷과 초기 활용

1980년대 초반 [http://groups.google.com/group/net.jokes net.jokes] 뉴스그룹에서 유래하였다.[2] 모욕적이거나 부적절한 내용, 또는 유머의 핵심 내용을 가리기 위해 사용되었다. 관리자들은 별도의 뉴스그룹을 만드는 대신 ROT13 사용을 권장했다.

ROT13은 영어 알파벳만을 치환하기 때문에, 알파벳 이외의 문자를 처리하지 못하는 뉴스리더에서도 문제를 일으키지 않았다.[3] 이는 당시 뉴스리더 소프트웨어와의 호환성을 높였다. 25가지의 가능한 카이사르 암호 중 암호화와 복호화가 같은 유일한 방법이 ROT13이었기 때문에 선택되었다.

유닉스 계열 시스템에서는 tr 유틸리티를 사용하여 ROT13 암호화 및 복호화를 할 수 있었다. 1990년대 초부터 FidoNet의 포럼에서도 ROT13이 사용되면서, FidoNet의 메일러에도 ROT13 자동 암호화/복호화 기능이 포함되는 경우가 많았다.

2. 2. 현대의 사용

ROT13은 현대에는 기밀성을 보장하는 용도로는 사용되지 않으며, 주로 가벼운 수준의 정보 숨김에 사용된다.[2] 예를 들어, 온라인 포럼이나 게시판 등에서 스포일러를 방지하거나, 특정 내용을 숨기는 용도로 활용된다.[3]

유닉스 계열 시스템에서는 tr 명령어를 통해 ROT13 암호화 및 복호화를 쉽게 수행할 수 있다.[4] 또한, Emacs, Vim과 같은 텍스트 편집기에서도 ROT13 기능을 지원한다.

1999년 12월에는 넷스케이프 커뮤니케이터가 이메일 비밀번호를 저장하는 데 ROT13을 사용한 것이 발견되기도 하였다.[5] 2001년에는 러시아 프로그래머 드미트리 스클랴로프가 전자책 판매업체인 뉴 패러다임 리서치 그룹(NPRG)이 문서를 암호화하기 위해 ROT13을 사용했음을 시연하기도 했다.[6] 윈도우 XP의 일부 레지스트리 키에도 ROT13이 사용된다.[7]

3. 암호학적 관점

ROT13은 카이사르 암호의 일종으로, 키값이 13으로 공개되어 있어 암호학적으로 매우 취약하다. 빈도 분석과 같은 기본적인 암호 해독 기법으로 쉽게 해독할 수 있으며, 기밀성 보장은 불가능하여 약한 암호화의 예시로 자주 언급된다.

ROT13은 현대에 사용될 의도가 없으며, 고대 로마 기술 시대에 처음 고안되었을 때 수학적 구조로 표현되지 않았다. 메시지 해독을 위한 키는 ROT13이 사용된다는 사실 외에 다른 정보를 요구하지 않는다. 메시지를 가로챌 수 있는 외부 단체나 개인은 기밀성이 유지되지 않더라도 빈도 분석[2]을 통해 해독하거나 다른 패턴을 찾아 해독할 수 있다.

"On the 2ROT13 Encryption Algorithm"([http://phoenix.clifford.at/~ak/2rot13.pdf (PDF)])이라는 가짜 학술 논문이 조작되기도 했다. ROT26은 미국의 디지털 밀레니엄 저작권법(DMCA)을 조롱하기 위해 사용되기도 했는데, 일부 네트워크 사용자들은 포럼에 게시하는 문서에 "이 문서는 ROT26으로 암호화되어 있습니다. 회피 행위는 고발 대상입니다"라는 경고문을 붙이기도 했다. DMCA는 복제 방지 시스템 회피를 금지했지만, 복제 방지 시스템 중에는 보안상 취약한 암호를 사용한 경우가 있었다. 트리플 DES와 관련하여 "삼중 ROT13"도 가끔 볼 수 있는데, 이는 ROT13 자체를 의미한다.

1999년 12월, 넷스케이프 커뮤니케이터가 이메일 비밀번호를 저장하기 위한 안전하지 않은 방식의 일부로 ROT13을 사용한 것이 발견되었다.[5] 2001년, 러시아 프로그래머 드미트리 스클랴로프는 전자책 판매업체인 뉴 패러다임 리서치 그룹(NPRG)이 문서를 암호화하기 위해 ROT13을 사용했음을 시연했다. NPRG가 어도비 시스템즈 전자책 소프트웨어 개발 키트와 함께 제공된 ROT13 장난감 예시를 심각한 암호화 방식으로 오해했을 수 있다는 추측이 있다.[6] 윈도우 XP는 일부 레지스트리 키에 ROT13을 사용하며,[7] 유닉스 fortune 프로그램에서도 잠재적으로 불쾌한 격언을 숨기기 위해 사용된다.

18세기 시계 제작자이자 영구 기관 기계 제작자인 요한 에른스트 엘리아스 베슬러는 자신의 성을 ROT13으로 인코딩하면 ''Orffyre''가 된다고 지적했다. 그는 자신의 필명으로 이 성의 라틴화된 형태인 ''Orffyreus''를 사용했다.[8]

3. 1. 보안 취약성

ROT13은 열쇠값이 없는 암호화 방법이므로, ROT13을 사용했다는 사실만 알면 누구라도 메시지를 복호화할 수 있다. ROT13 사용 여부를 모르더라도 카이사르 암호 해독에 쓰이는 빈도 분석 등을 사용하면 쉽게 복호화할 수 있다. 따라서 암호학적으로 기밀성을 전혀 보장하지 못하며, 약한 암호화 방법을 비유할 때 사용된다.[2]

ROT13은 암호로 보면 고전 암호인 "카이사르 암호"라는 단일 치환 암호의 일종이다. 보안을 중요하게 생각하는 경우에는 사용되지 않는다. 일정한 시프트 값(13)을 사용하기 때문에, 암호 키 없이 쉽게 해독할 수 있다. 해독하려면 ROT13이 사용되었다는 것만 알면 된다. ROT13 사용 여부를 모르더라도, 에드거 앨런 포의 《황금충》에 나오는 것과 같이, 빈도 분석이나 패턴 단어 추구만으로 해독할 수 있다.

보안을 추구하는 용도로는 부적합하기 때문에, ROT13은 약한 암호의 대명사로 사용된다. 예를 들어 "오늘날 56비트 DES는 ROT13 수준이다"와 같이 사용된다. "이중 ROT13", "ROT26", "2ROT13"(암호화하지 않은 평문)이라는 용어도 유머를 담아 사용된다.

3. 2. 스포일러 방지 등 활용

ROT13은 메시지를 보는 사람이 암호화된 메시지를 해독할 것인지 선택할 수 있게 한다. 이는 스포일러처럼 의도치 않게 내용을 보게 되는 상황을 막아준다.[2] 즉, 비밀 메시지를 숨기는 것이 아니라, 독자가 내용을 확인하기 전에 한 번 더 생각하게 만드는 것이다.

1980년대 초, ROT13은 유즈넷 뉴스 그룹 서버에서 불쾌한 농담을 숨기거나, 퍼즐 또는 스포일러의 답을 가리는 데 사용되었다.[3]

보안이 중요한 경우에는 ROT13을 사용하지 않지만, 가벼운 정보 숨김에는 효과적이다. 예를 들어, 책이나 영화의 스포일러를 포함한 비평을 ROT13으로 암호화하여 독자가 실수로 내용을 보는 것을 방지할 수 있다.

ROT13은 약한 암호의 대명사로도 사용된다. 예를 들어, "오늘날 56비트 DES는 ROT13 수준이다"와 같이 사용된다. "이중 ROT13", "ROT26", "2ROT13"과 같은 용어는 유머를 담아 사용되는데, 실제로는 전혀 암호화되지 않은 평문을 의미한다.[2]

4. 작동 원리

ROT13은 텍스트의 알파벳 문자를 알파벳에서 13자리 뒤의 문자로 대체하는 방식으로 작동한다. 예를 들어, A는 N으로, B는 O로 바뀌는 식이다. M까지는 Z로 끝나고, N부터는 다시 A로 돌아가 A, O는 B로, Z는 M으로 순환한다.[2] 숫자, 기호, 공백 등은 변경되지 않고 그대로 유지된다.[2]

ROT13은 라틴 알파벳 26글자를 사용하므로, ROT13 암호화를 두 번 적용하면 원래의 평문을 얻을 수 있다. 이를 수학적으로 표현하면 다음과 같다.[2]

:\mbox{ROT}_{13}(\mbox{ROT}_{13}(x))=x (여기서 x는 임의의 기본 라틴 알파벳 텍스트이다.)

이는 ROT13 함수가 자체 역함수임을 의미한다.[2]

4. 1. 룩업 테이블

ROT13 변환은 다음과 같은 룩업 테이블을 사용하여 수행할 수 있다.

입력ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
출력NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm



예를 들어, "닭은 왜 길을 건넜을까?"라는 농담의 결론을 ROT13으로 암호화하면 "Jul qvq gur puvpxra pebff gur ebnq?"가 된다. 이 암호문을 다시 ROT13으로 변환하면 원래의 문장인 "Gb trg gb gur bgure fvqr!"이 드러난다. 이처럼 ROT13을 두 번 적용하면 원본 텍스트가 복원된다.[2]

4. 2. 수학적 표현

ROT13은 라틴 알파벳 26글자를 이용하므로, ROT13 암호화를 두 번 적용하면 원래의 평문을 얻을 수 있다. 수학적으로 표현하면 다음과 같다.[2]

:\mbox{ROT}_{13}(\mbox{ROT}_{13}(x))=x (여기서 x는 임의의 기본 라틴 알파벳 텍스트이다.)

즉, ROT13을 두 번 연속 적용하면 원본 텍스트가 복원된다. 수학에서는 이러한 성질을 가진 변환을 ''대합''이라고 부른다.[2]

4. 3. 언어 유희

ROT13은 문자 게임의 기회를 제공한다. 몇몇 단어들은 ROT13으로 변환될 때 다른 단어를 생성한다. 영어에서 7글자 쌍의 예로는 ''abjurer''와 ''nowhere'', ''Chechen''과 ''purpura''가 있다. ''gnat''과 ''tang'' 쌍은 ROT13 상호 변환과 반전이 모두 적용되는 단어의 예이다.[11]

ROT13은 언어 유희의 소재로도 사용할 수 있다. 단어에 따라 ROT13 변환 결과가 다시 의미를 갖는 단어가 될 수 있다. 영어로 알려진 가장 긴 것은 7글자인 abjurer 와 nowhere의 조합, chechen 과 purpura 의 조합이다.

{| class="wikitable"

|+ ROT13 변환 쌍

|-

|

ahanunantnag
balkonyxbarone
barfonesbeor
binovaebbsroof
envyrailerre
errsreefflapsync
furshegeltry
gnattangirkvex
clerkpyrexpurelycheryl
PNGcatSHAfun
furbysheolterragreen
whatJungURLhey
purpuraChechenshoneFUBAR
AresNerfabjurernowhere



|}

4. 4. 인터넷 문화

ROT13은 보안이 취약한 암호의 대명사로 사용되기도 한다. 예를 들어, "오늘날 56비트 DES는 ROT13 수준이다"와 같이 사용된다. 이와 관련하여 "double ROT13", "ROT26", "2ROT13" (사실상 암호화하지 않은 평문)과 같은 용어들이 유머를 담아 사용된다.[9] "2ROT13 암호화 알고리즘에 관하여"라는 가짜 학술 논문도 만들어졌다. ROT26은 미국의 디지털 밀레니엄 저작권법 (DMCA)을 조롱하기 위해 사용되기도 한다.

뉴스그룹 alt.folklore.urban에서는 sheesh"를 ROT13으로 인코딩한 "''furrfu''"라는 단어가 만들어졌다.[10] 이는 1992년 중반, 해당 그룹에서 도시 전설을 반복하는 게시물에 대한 반응으로, 일부 게시자들이 "Sheesh!"라는 표현을 과도하게 사용한다고 불평한 후 생겨났다.

오늘날에도 공개 소셜 네트워크에서 검색 엔진을 사용하면 ROT13을 사용한 농담을 쉽게 찾아볼 수 있다.

4. 5. ROT47

ROT47은 ROT13의 변형으로, 기본 문자뿐만 아니라 숫자와 일반적인 기호도 함께 처리한다. ROT47은 ASCII라는 일반적인 문자 인코딩에서 더 큰 문자 집합을 사용한다. 구체적으로는 공백을 제외한 십진수 33 '!'부터 126 '~'까지의 7비트 인쇄 가능한 문자 총 94개를 ASCII 코드의 숫자 값 순서대로 47자리씩 회전하며, 대소문자를 특별히 고려하지 않는다.[12] 예를 들어, 문자 Ap로, a2로 매핑된다.

더 큰 알파벳을 사용하면 ROT13보다 더 철저하게 난독화된다. 예를 들어 +1-415-839-6885와 같은 전화번호는 뒤섞인 결과인 Z'\c`d\gbh\eggd에서 처음에는 쉽게 파악되지 않는다. 반면에 ROT47은 숫자와 기호를 차별 없이 혼합하기 때문에 텍스트가 인코딩되었다는 것을 즉시 알 수 있다.[12]

ROT47은 로테이트할 때 A-Z 범위뿐만 아니라 ASCII로 정의된 문자 코드 중 더 넓은 범위를 사용한다. ASCII에서는 0 - 127 사이의 숫자를 사용하여 알파벳 문자, 숫자, 구두점 등 일반적으로 사용되는 기호를 매핑한다. ASCII 코드에서 보면 ROT13은 65 - 90 및 97 - 122 범위를 커버한다. 반면 ROT47은 ! (느낌표, ASCII 코드 33)에서 ~ (물결표, ASCII 코드 126)까지를 커버하며, 47문자를 로테이트한다. 사용되는 문자 코드의 범위가 넓기 때문에, ROT47의 결과는 ROT13보다 훨씬 더 알 수 없는 인상을 준다. 그러나 ROT47은 ROT13에 비해 덜 지원된다.[12]

예시:

:The Quick Brown Fox Jumps Over The Lazy Dog.

는 암호화되어

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

가 된다.

앞서의 예를 ROT47로 변환하면 다음과 같다.

w@H 42? J@F E6== 2? 6IEC@G6CE 7C@> 2?

:?EC@G6CE 2E }$pn x? E96 6=6G2E@CD[

E96 6IEC@G6CED =@@< 2E E96 ~%wt# 8FJVD D9@6D]

가 된다. UNIX 명령어 '''tr'''을 사용하여 ROT47 변환을 하려면:

:tr '!-~' 'P-~!-O'

를 사용한다.

4. 6. ROT5, ROT18

ROT5는 숫자(0~9)에 적용되는 ROT13과 유사한 방식이다. ROT13과 ROT5는 같은 메시지에서 함께 사용될 수 있으며, 이를 ROT18(18 = 13 + 5) 또는 ROT13.5라고 부르기도 한다.[12]

4. 7. 프로그래밍 구현

유닉스 계열 시스템에서는 tr(transliterate의 약자)이라는 표준 유틸리티를 사용하여 ROT13 암호화 및 복호화를 할 수 있다.[2]

```bash

$ echo "Or fher gb qevax lbhe Binygvar" | tr 'A-Za-z' 'N-ZA-Mn-za-m'

Be sure to drink your Ovaltine

```

ROT13과 ROT47은 유닉스 터미널 응용 프로그램인 tr를 사용하여 구현하기가 매우 쉽다.

  • ROT13으로 문자열 "Pack My Box With Five Dozen Liquor Jugs"를 암호화하는 방법은 다음과 같다.


```bash

$ # 대문자 A-Z를 N-ZA-M으로, 소문자 a-z를 n-za-m으로 매핑합니다.

$ tr 'A-Za-z' 'N-ZA-Mn-za-m' <<< "Pack My Box With Five Dozen Liquor Jugs"

Cnpx Zl Obk Jvgu Svir Qbmra Yvdhbe Whtf

```

  • ROT47으로 문자열 "The Quick Brown Fox Jumps Over The Lazy Dog"를 암호화하는 방법은 다음과 같다.


```bash

$ echo "The Quick Brown Fox Jumps Over The Lazy Dog" | tr '\!-~' 'P-~\!-O'

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

```

Emacs에서는 `M-x toggle-rot13-mode`, `M-x rot13-other-window` 또는 `M-x rot13-region` 명령어를 사용하여 버퍼 또는 선택 영역을 ROT13 할 수 있다.[13]

Vim 텍스트 편집기에서는 `ggg?G` 명령어를 사용하여 버퍼를 ROT13 할 수 있다.[14]

파이썬에서는 `codecs` 모듈의 `'rot13'` 텍스트 변환을 이용할 수 있다.[15]

```python

>>> import codecs

>>> print(codecs.encode('The Quick Brown Fox Jumps Over The Lazy Dog', 'rot13'))

Gur Dhvpx Oebja Sbk Whzcf Bire Gur Ynml Qbt

```

라이브러리를 가져오지 않고도 두 줄의 리스트 컴프리헨션으로 수행할 수 있다.

```python

string = "Quartz glyph job vext cwm porshrop finks?!"

for abcd in ["abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]:

string = ''.join([abcd[(abcd.index(char) + 13) % 26] if char in abcd else char for char in string])

print(string)

# Dhnegm tylcu wbo irkg pjz cbefuebc svaxf?!

```

파이썬 3의 경우, `str.maketrans()` 메서드를 사용할 수 있다.

```python

text = "this is an example without capital letters"

my_rot13 = str.maketrans(

"abcdefghijklmnopqrstuvwxyz", "nopqrstuvwxyzabcdefghijklm"

)

print(text.translate(my_rot13))

# guvf vf na rknzcyr jvgubhg pncvgny yrggref

```

다음은 변환 알고리즘에 따라 파스칼로 작성된 ROT47 예시이다. 문자 코드는 ASCII를 전제로 한다.

```pascal

procedure ROT47Codec(var s : CharString; len : integer);

var i : integer;

function ROT47(c : char) : char;

var ic : integer;

begin

if c in ['!'..'~'] then begin

ic := ord(c) - ord('!');

ic := (ic + 47) mod 94 + ord('!');

ROT47 := chr(ic)

end else

ROT47 := c

end;

begin

for i := 1 to len do s[i] := ROT47(s[i])

end;

```

`CharString`형은 문자열을 저장하기 위한 첨자가 1부터 시작하는 적당한 길이의 `char`형 변수 배열이다. `s`에는 문자열 자체, `len`에는 문자열의 길이를 넣는다. 이 프로시저는 암호화, 복호화 모두에 사용할 수 있다.

GNU C 라이브러리에는 '''`memfrob()`''' 이라는 이름의 함수가 있다([http://www.gnu.org/software/libc/manual/html_node/Trivial-Encryption.html]). 이 루틴은 ROT13과 같은 목적으로 사용되지만, 임의의 이진 데이터에 이용 가능하다 (유머를 담아 "의미 불명화" (:en:frobnicate) 함수라고 불린다). 이 루틴은 데이터의 각 8비트 바이트를 취하여 이진수 00101010 (10진 표기로는 42. 생명, 우주, 그리고 모든 것에 대한 궁극의 질문의 답 참조)과의 비트별 배타적 논리합 (XOR)을 계산한다. 이 기법은 단순한 배타적 논리합 암호:en:simple XOR cipher이며, 역시 약하다. ROT13과 마찬가지로, 다시 적용하면 원래의 데이터를 얻을 수 있다.

참조

[1] 서적 The Codebreakers: The Story of Secret Writing Macmillan
[2] 서적 Applied Cryptography https://archive.org/[...] John Wiley & Sons
[3] 웹사이트 ROT13 http://www.catb.org/[...] 2007-09-19
[4] 웹사이트 westley.c http://www.ioccc.org[...] 2007-08-13
[5] 간행물 Bad Cryptography in the Netscape Browser: A Case Study
[6] 웹사이트 Dimitry Sklyarov: Enemy or friend? https://www.zdnet.co[...] ZDNet News 2011-02-03
[7] 웹사이트 ROT13 is used in Windows https://blog.didiers[...] 2016-12-15
[8] 웹사이트 Perpetual Futility: A short history of the search for perpetual motion https://lockhaven.ed[...] 2020-10-28
[9] 웹사이트 On the 2ROT13 Encryption Algorithm http://www.pruefziff[...] Prüfziffernberechnung in der Praxis 2007-09-20
[10] 웹사이트 Furrfu http://foldoc.org/fu[...] Foldoc 2016-10-03
[11] 웹사이트 ROT13 Words http://www.furrfu.or[...] 2007-09-19
[12] 웹사이트 5.13 Obfuscating Data https://www.gnu.org/[...] Free Software Foundation 2019-08-02
[13] 웹사이트 Rmail Rot13 – GNU Emacs Manual https://www.gnu.org/[...] 2016-03-24
[14] 웹사이트 Best of VIM Tips, gVIM's Key Features zzapper http://rayninfo.co.u[...] 2016-03-03
[15] 웹사이트 codecs – Codec registry and base classes – Python 3.9.6 documentation https://docs.python.[...] 2020-10-07



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com