CSS Tutor Study Hub 메인으로

Computersystemsicherheit 2025/26

03. One-Time Pad 완전 초보 강의

비유, 단계별 예시, 자체 흐름도, 강의 스크립트 원본, 시험 답안까지 한 페이지에서 연결합니다.

CSS 1타 강사 · CONCEPT 03/25

One-Time Pad는 왜 계산 능력이 무한한 공격자에게도 안전할까요?

OTP는 메시지와 같은 길이의 완전한 난수 키를 딱 한 번 사용하고 XOR합니다. 조건을 지키면 모든 평문 후보에 대응하는 키가 존재하므로 ciphertext만 보고 진짜 평문을 고를 정보가 없습니다.

전문 용어를 보기 전에 이 장면부터 잡으세요

정답 후보마다 정확히 맞는 별도의 가림막이 존재해, 가림막만 보고 원래 답을 하나로 고를 수 없는 상황입니다.

계산 능력이 아니라 정보가 부족해서 안전합니다

00

한 장면으로 문제를 시작해 봅시다

이번 페이지에서 끝까지 따라갈 예시

8-bit 평문 10101001과 완전히 무작위인 8-bit key 01100110을 딱 한 번만 사용한다고 가정합니다.

비유와 실제 시스템을 정확히 연결하기

  • 각 칸마다 한 번 쓰는 비밀 동전plaintext와 같은 길이의 random key bit
  • 두 색이 다르면 켜지는 전등XOR 연산
  • 사용 후 폐기하는 암호표one-time 조건

이 예시에서 사람·장치·데이터·화살표를 먼저 찾습니다. 아직 용어를 완벽히 몰라도 “누가 무엇을 가지고, 어떤 처리를 거쳐, 무엇이 달라지는가”를 말할 수 있으면 출발점은 충분합니다.

01

긴 이름을 작은 용어로 분리하기

한 제목에 여러 단어가 들어 있어도 같은 기능을 뜻하지 않습니다. 아래 카드를 하나씩 읽고 각 용어의 대상과 역할을 따로 잡으세요.

One-Time Pad와 brute force가 만나는 지점

One-Time Pad(OTP)는 메시지와 같은 길이의 완전한 난수 키를 만들고 평문과 XOR한 뒤 그 키를 딱 한 번만 쓰는 암호다. XOR는 0과 1로 표현한 두 값이 서로 다르면 1, 같으면 0을 만드는 연산이며 같은 키로 다시 XOR하면 원래 값이 돌아온다. 이 조건을 모두 지키면 완전 비밀성(perfect secrecy)을 얻는다. Brute force는 가능한 키를 전부 시험하는 공격이지만, OTP에서는 각 평문 후보마다 그것을 설명하는 키가 하나씩 존재하므로 모든 키를 시험해도 어느 평문이 진짜인지 고를 정보가 없다.

TERMS FROM ZERO

One-Time Pad와 brute force가 만나는 지점 핵심 용어

아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.

One-Time Pad

평문과 같은 길이의 완전 무작위 key를 정확히 한 번만 사용하는 암호입니다.

XOR

두 bit가 다르면 1, 같으면 0이 되는 연산입니다. 같은 key를 두 번 XOR하면 원래 값이 복원됩니다.

Brute force

가능한 key를 하나씩 모두 시험하는 공격 방법입니다.

Perfect secrecy

계산 능력이 무한해도 ciphertext만으로 plaintext 정보를 얻지 못하는 정보이론적 안전성입니다.

암호화의 가장 기본적인 등장인물

평문(plaintext)은 보호하기 전의 원래 데이터이고 암호문(ciphertext)은 암호화 후 읽기 어렵게 바뀐 데이터다. 암호화(encryption)는 평문과 키(key)를 알고리즘에 넣어 암호문을 만드는 과정이고 복호화(decryption)는 올바른 키를 이용해 평문을 되찾는 과정이다. 키는 문을 여는 실제 열쇠에 해당하며, 현대 암호에서는 알고리즘 자체가 공개되어도 키가 비밀이면 안전해야 한다고 본다.

TERMS FROM ZERO

암호화의 가장 기본적인 등장인물 핵심 용어

아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.

Plaintext

암호화하기 전의 원래 메시지입니다. 사람이 읽는 문장뿐 아니라 파일의 byte도 plaintext가 될 수 있습니다.

Ciphertext

암호화 결과입니다. 숨겨진 원문과 같은 말이 아니라, key 없이는 원문을 알아내기 어려워야 하는 출력입니다.

Key

암호 알고리즘의 동작을 결정하는 값입니다. 알고리즘 자체가 아니라 key를 비밀로 관리하는 것이 현대 암호의 기본입니다.

Encryption / Decryption

Encryption은 plaintext를 ciphertext로, decryption은 올바른 key로 ciphertext를 다시 plaintext로 바꾸는 과정입니다.

02

실제 시스템에서는 이 순서로 움직입니다

모바일에서는 그림 안을 좌우로 움직이며 번호 순서대로 읽으세요.

예시를 단계별로 해체하기

  1. 1단계평문과 정확히 같은 길이의 random key를 만듭니다.
  2. 2단계각 bit를 XOR하여 ciphertext를 계산합니다.
  3. 3단계수신자는 같은 key를 다시 XOR해 원문을 복원합니다.
  4. 4단계ciphertext 하나에는 가능한 모든 plaintext와 대응하는 key가 존재합니다.
  5. 5단계key를 재사용하면 두 ciphertext의 XOR에서 key가 사라지므로 완전 안전성이 깨집니다.

이 단계들은 시험 답안에서 원인과 결과가 빠지지 않도록 만든 설명 순서입니다.

손으로 따라가는 초보 예제

8-bit OTP를 손으로 XOR하고 다시 복호화하기

Plaintext `10101001`, 무작위 key `01100110`을 정확히 한 번만 사용합니다.

  1. 1단계첫 bit는 `1 XOR 0 = 1`, 둘째는 `0 XOR 1 = 1`처럼 위치별로 계산합니다.
  2. 2단계여덟 bit를 모두 계산하면 ciphertext는 `11001111`입니다.
  3. 3단계Bob은 `11001111 XOR 01100110`을 계산해 원래 `10101001`을 얻습니다.
  4. 4단계Eve가 ciphertext만 보면 임의의 plaintext 후보마다 그 후보를 설명하는 key가 하나씩 존재합니다.
  5. 5단계같은 key를 두 메시지에 재사용하면 `C1 XOR C2 = P1 XOR P2`가 되어 key가 사라지고 plaintext 관계가 노출됩니다.

그래서 무엇을 배웠나? 완전 안전성은 key가 평문과 같은 길이, 완전 무작위, 비밀, 단 한 번 사용이라는 네 조건을 모두 만족할 때만 성립합니다.

03

관련 개념도 하나씩 따로 이해하기

One-Time Pad와 brute force가 만나는 지점

비유에서 실제 시스템으로 옮겨 보기

먼저 떠올릴 장면 · 상자 안에 고양이, 책, 사과 중 무엇이 들어 있는지 맞히려는데 각 답마다 완벽히 맞는 별도의 가림막이 존재하는 상황이다. 가림막을 전부 찾아도 진짜 답을 선택할 단서가 없다.

정확한 뜻 · One-Time Pad(OTP)는 메시지와 같은 길이의 완전한 난수 키를 만들고 평문과 XOR한 뒤 그 키를 딱 한 번만 쓰는 암호다. XOR는 0과 1로 표현한 두 값이 서로 다르면 1, 같으면 0을 만드는 연산이며 같은 키로 다시 XOR하면 원래 값이 돌아온다. 이 조건을 모두 지키면 완전 비밀성(perfect secrecy)을 얻는다. Brute force는 가능한 키를 전부 시험하는 공격이지만, OTP에서는 각 평문 후보마다 그것을 설명하는 키가 하나씩 존재하므로 모든 키를 시험해도 어느 평문이 진짜인지 고를 정보가 없다.

  1. 1단계키가 정말 무작위인지 확인한다.
  2. 2단계키 길이가 메시지 길이 이상인지 확인한다.
  3. 3단계같은 키를 두 번 사용하지 않았는지 확인한다.
  4. 4단계공격자가 후보를 생성하는 것과 진짜 후보를 식별하는 것을 구분한다.

암호화의 가장 기본적인 등장인물

비유에서 실제 시스템으로 옮겨 보기

먼저 떠올릴 장면 · 누구나 자물쇠의 설계도를 볼 수 있지만 실제 열쇠가 없으면 열지 못하는 자물쇠를 생각하면 된다. 설계도를 숨기는 것이 아니라 열쇠를 관리하는 것이 핵심이다.

정확한 뜻 · 평문(plaintext)은 보호하기 전의 원래 데이터이고 암호문(ciphertext)은 암호화 후 읽기 어렵게 바뀐 데이터다. 암호화(encryption)는 평문과 키(key)를 알고리즘에 넣어 암호문을 만드는 과정이고 복호화(decryption)는 올바른 키를 이용해 평문을 되찾는 과정이다. 키는 문을 여는 실제 열쇠에 해당하며, 현대 암호에서는 알고리즘 자체가 공개되어도 키가 비밀이면 안전해야 한다고 본다.

  1. 1단계누가 평문을 가지고 있는지 확인한다.
  2. 2단계어떤 키로 암호화하고 누가 복호화 키를 가지는지 확인한다.
  3. 3단계암호문이 노출되어도 공격자가 어떤 정보를 얻지 못해야 하는지 적는다.

04

강의 스크립트 원본과 연결하기

OTP 조건·XOR 계산·key reuse 실패를 보여 주는 대표 슬라이드입니다. 먼저 위의 초보 설명을 읽고, 원본에서는 같은 개념이 어떤 기호와 독일어·영어 용어로 표현되는지 확인하세요.

One-Time Pad 관련 강의 스크립트 대표 슬라이드
원본 Vorlesung/02_Grundlagen_Krypto_RMU_v2.pdf · p.37, p.39, p.43 · OTP 조건·XOR 계산·key reuse 실패
  • 02_Grundlagen_Krypto_RMU_v2.pdf · p.37, p.39, p.43

05

시험 함정과 답안에 적용하기

  • One-Time Pad와 brute force가 만나는 지점 · OTP 키를 재사용하면 두 암호문을 XOR할 때 키가 사라져 평문 관계가 노출된다. 올바른 OTP와 키 재사용 사고를 같은 것으로 보면 안 된다.
  • 암호화의 가장 기본적인 등장인물 · 암호화는 기본적으로 내용을 숨긴다. 누가 보냈는지, 내용이 바뀌지 않았는지, 서비스가 계속 동작하는지까지 저절로 보장하지는 않는다.

서술형 답안 골격

random, message-length, one-time이라는 세 조건과 ‘brute force 후에도 후보를 식별할 수 없음’을 씁니다.

정의 → 등장 주체 또는 입력 → 작동 순서 → 보안 효과 → 조건과 한계 순서로 쓰고, 위 단계별 예시에서 필요한 문장을 골라 붙이세요.

30초 자가 확인

책을 덮고 “One-Time Pad는 왜 계산 능력이 무한한 공격자에게도 안전할까요?”에 대해 핵심 용어 두 개, 작동 단계 세 개, 대표 함정 하나를 말해 보세요.

다음 개념으로 넘어가기 전 확인

  1. `1 XOR 1`과 `0 XOR 1`의 결과는?
  2. 같은 값을 두 번 XOR하면 원래 값이 돌아오는 이유는?
  3. OTP key 재사용 시 어떤 식에서 key가 사라지는가?