Cryptology Academy · 강의

XOR 암호화 및 일회용 패드

간단한 XOR 암호를 만들고 완전한 비밀성을 지닌 그 변형을 알아봅니다.

레슨 2/413개 단계

XOR 암호화 및 일회용 패드은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

XOR 암호화는 간단합니다: 암호문 = 평문 XOR 키입니다. 키가 진정으로 무작위이고 한 번만 사용되면 일회용 패드가 되며, 이는 해독할 수 없다는 사실이 증명된 유일한 암호입니다.

XOR 암호화 기초

key = bytes([0x5A, 0xF2, 0x3C, 0x11]) plaintext = bytes([0x48, 0x65, 0x6C, 0x6C]) # 'Hell' ciphertext = bytes(p^k for p,k in zip(plaintext,key)) # Result: 0x12 0x97 0x50 0x7D

XOR 자기 역원 속성

복호화는 암호화와 같습니다: plain = cipher XOR key 증명: (P XOR K) XOR K = P XOR (K XOR K) = P XOR 0 = P 이 때문에 XOR 암호는 대칭 구조를 쉽게 구성할 수 있습니다.

일회용 패드 개념

일회용 패드(OTP)는 메시지와 길이가 같고 정확히 한 번만 사용하는 무작위 키를 사용합니다. 이론적으로 해독할 수 없습니다. 모든 암호문은 가능한 모든 평문으로 동일한 확률로 복호화될 수 있기 때문입니다.

Shannon의 완전한 비밀성 증명

Claude Shannon은 1949년에 다음을 증명했습니다. 키가 무작위이고 메시지 길이 이상이며 최대 한 번만 사용될 때 그리고 그럴 때에만 암호는 완전한 비밀성을 가집니다. OTP는 이러한 조건을 만족하는 유일한 실용적 암호입니다.

OTP의 실용적 한계

키는 메시지만큼 길어야 합니다. 키를 안전하게 배포해야 합니다. 키를 절대로 재사용해서는 안 됩니다. 이러한 제약 때문에 OTP는 대부분의 애플리케이션에서 실용적이지 않습니다.

키 재사용 공격: 다회용 패드

C1 = P1 XOR K이고 C2 = P2 XOR K라면 C1 XOR C2 = P1 XOR P2입니다. 키가 상쇄됩니다! 공격자는 두 개의 암호문만으로 P1 XOR P2를 얻을 수 있고, 이로 인해 패턴이 노출됩니다.

단서 문구 대입 공격

공격자가 P1의 일부를 추측하는 경우(예: ' the '와 같은 단서 문구), 각 위치에서 P1 XOR P2와 XOR 연산을 수행하면 그에 대응하는 P2의 텍스트가 드러납니다. 점차 전체 평문이 복구됩니다.

실제 키 재사용 실패 사례

Venona 프로젝트는 수천 개의 소련 일회용 패드 메시지를 해독했습니다. 전시 상황의 압박을 받은 KGB 요원들이 패드를 재사용했기 때문입니다. 키 재사용으로 수학적으로 완전한 암호화가 무너졌습니다.

스트림 암호에서의 XOR

현대의 스트림 암호(ChaCha20, RC4)는 의사 난수 키 스트림을 생성한 뒤 평문과 XOR합니다. 짧은 키를 CSPRNG로 확장하므로 일회용 패드와 비슷한 보안 특성을 내지만, 일회용 패드 자체는 아닙니다.

XOR 암호화 Python 데모

import os def otp_encrypt(plaintext: bytes) -> tuple: key = os.urandom(len(plaintext)) ciphertext = bytes(p^k for p,k in zip(plaintext,key)) return ciphertext, key ciphertext, key = otp_encrypt(b'Secret!')

확인 문제

일회용 패드 키를 재사용하면 왜 치명적으로 안전하지 않습니까?

복습

XOR와 일회용 패드는 암호학의 기본 요소입니다. 다음에는 단순한 XOR 방식이 실제로 실패하는 이유와 키 재사용을 악용하는 공격을 살펴봅니다.
무료로 시작

AI 튜터와 함께 Cryptology Academy을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
67
레슨
261

자주 묻는 질문

“XOR 암호화 및 일회용 패드” 강의는 무료인가요?

네 — “XOR 암호화 및 일회용 패드” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“XOR 암호화 및 일회용 패드”에서 뭘 배우나요?

간단한 XOR 암호를 만들고 완전한 비밀성을 지닌 그 변형을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“XOR 암호화 및 일회용 패드” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 비트 단위 연산 복습
  2. XOR 암호화 및 일회용 패드
  3. XOR만으로는 안전하지 않은 이유
  4. AES 및 스트림 암호 속 XOR
← Cryptology Academy(으)로 돌아가기