CSS Tutor Study Hub 메인으로

Computersystemsicherheit 2025/26

1.1. Multiple Choice

실제 시험 Abschnitt 1.1 · 8개 학습 항목 초보 해설

1. Kryptographie · 실제 시험 Abschnitt 1.1

1.1. Multiple Choice

암호학 문장 8개를 다른 Chapter의 MC와 섞지 않고 시험지의 a–h 순서 그대로 판정합니다.

이 페이지는 비슷한 주제를 임의로 다시 묶지 않고 실제 시험지의 Chapter → subsection → 소문제 순서를 그대로 따릅니다.

ACTUAL EXAM · VERBATIM TRANSCRIPT

시험지 원문 1:1 전사

아래 내용은 해설자가 바꿔 쓴 요약이 아닙니다. 실제 시험 전사본의 문장·순서·수치·배점·코드·표를 그대로 두고, Markdown 기호만 읽기 쉬운 제목·표·코드 모양으로 표시했습니다.

1.1. Multiple Choice (16 Punkte)

Bitte kreuzen Sie für jede der folgenden Aussagen „Wahr“ oder „Falsch“ an.

Nur eine der beiden Auswahlmöglichkeiten ist richtig.

Jede korrekte Antwort gibt zwei Punkte und erfordert keine weitere Begründung.

Nr.WahrFalschAussage
a)Bei Blockchiffren muss man eine Auffüllungsfunktion (padding function) benutzen, um alle Blöcke auf die gleiche Länge zu bringen.
b)Ein One-Time-Pad kann vollständig durch Bruteforcing gebrochen werden.
c)Hashwerte eines Hashingalgorithmus haben verschiedene Längen abhängig von der Länge des Eingabetexts.
d)Speziell in der Kryptographie sorgt die Modulo-Operation dafür, dass es egal ist von welcher Position man die Entschlüsselung beginnt (am Anfang oder Ende des Ciphertexts).
e)Vigenere-Chiffre: Wenn das Alphabet 26 Buchstaben hat, hat ein Schlüssel der Länge 9 genau 26^2 \cdot 9 Möglichkeiten.
f)Ein Shift-Chiffre kann nicht erfolgreich mit Häufigkeitsanalyse angegriffen werden.
g)Der MD5-Hashing-Algorithmus produziert garantiert keine Kollisionen.
h)TLS (HTTPS) benutzt nur assymetrische Kryptographie, damit E-Commerce Transaktionen schnell und absolut sicher bleiben.

근거: CSS_Altklausur_WiSe_2526.pdfcomputersystemsicherheit_wise25-26_questions_only.md · Abschnitt 1.1

VISUAL MAP

암호학 MC 판정 흐름 왼쪽에서 오른쪽으로 읽은 뒤 아래 실제 소문제에서 같은 순서를 반복합니다.
  1. 01 핵심 용어 표시
  2. 02 정의 떠올리기
  3. 03 절대 표현 확인
  4. 04 반례 대입
  5. 05 Wahr/Falsch

FIXED SOLVING METHOD

이 묶음의 고정 풀이 순서

  1. 문장에서 기술 이름과 주장 부분을 나눕니다.
  2. 그 기술이 실제로 보장하는 범위를 쉬운 말로 씁니다.
  3. muss, vollständig, garantiert, nur 같은 절대 표현을 찾습니다.
  4. 정의를 깨는 입력이나 상황 하나를 대입합니다.
  5. 시험에서는 요구대로 Wahr/Falsch만 표시하되 학습할 때는 이유까지 말합니다.

ZERO-BASE CONCEPT LESSONS

이 묶음을 풀기 전에 필요한 개념

카드를 열고 닫는 방식 대신 한 방향으로 이어지는 글로 구성했습니다. 비유 → 용어의 쉬운 뜻 → 실제 작동 → 시험에서의 경계 순서로 천천히 읽으세요.

기초 개념 01

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

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

이제 전문 용어를 붙이면 다음과 같습니다. Plaintext은(는) 암호화하기 전의 원래 메시지입니다. 사람이 읽는 문장뿐 아니라 파일의 byte도 plaintext가 될 수 있습니다. Ciphertext은(는) 암호화 결과입니다. 숨겨진 원문과 같은 말이 아니라, key 없이는 원문을 알아내기 어려워야 하는 출력입니다. Key은(는) 암호 알고리즘의 동작을 결정하는 값입니다. 알고리즘 자체가 아니라 key를 비밀로 관리하는 것이 현대 암호의 기본입니다. Encryption / Decryption은(는) Encryption은 plaintext를 ciphertext로, decryption은 올바른 key로 ciphertext를 다시 plaintext로 바꾸는 과정입니다.

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

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

여기서 넘지 말아야 할 경계: 암호화는 기본적으로 내용을 숨긴다. 누가 보냈는지, 내용이 바뀌지 않았는지, 서비스가 계속 동작하는지까지 저절로 보장하지는 않는다.

01. 평문·암호문·키 독립 강의 →

기초 개념 02

Hash는 암호화가 아니라 고정 길이 지문이다

먼저 장면으로 이해해 봅시다. 수많은 책을 짧은 서가 번호로 압축해 표시하면 언젠가 같은 번호가 겹친다. 좋은 hash는 공격자가 원하는 겹침을 일부러 찾기 매우 어렵게 만든다.

이제 전문 용어를 붙이면 다음과 같습니다. Hash function은(는) 임의 길이 입력을 고정 길이 digest로 바꾸는 단방향 함수입니다. 암호화처럼 복호화 key가 있는 기능이 아닙니다. Digest은(는) Hash function의 고정 길이 출력으로, 데이터의 짧은 지문처럼 사용됩니다. Collision은(는) 서로 다른 두 입력이 같은 digest를 만드는 경우입니다. 출력 공간이 유한하므로 존재 자체는 피할 수 없습니다. Preimage resistance은(는) 주어진 digest를 만드는 입력을 현실적인 시간에 찾기 어려워야 한다는 성질입니다.

실제 시스템에서는 이렇게 작동합니다. Cryptographic hash function은 길이가 제각각인 입력을 정해진 길이의 digest로 바꾼다. 같은 입력은 같은 digest를 만들지만 digest에서 원문을 되찾기는 어려워야 한다. 서로 다른 두 입력이 같은 digest를 만드는 상황을 collision이라고 한다. 입력 가능성은 사실상 무한하고 출력 종류는 유한하므로 collision은 수학적으로 반드시 존재하며, 보안 목표는 collision이 전혀 없게 하는 것이 아니라 현실적인 시간에 찾기 어렵게 하는 것이다.

  1. 출력 길이는 입력 문장 길이가 아니라 알고리즘이 정한 bit 수로 고정된다.
  2. Preimage resistance는 digest에서 원문을 찾기 어려운 성질이다.
  3. Collision resistance는 서로 다른 두 입력의 같은 digest를 찾기 어려운 성질이다.
  4. MD5처럼 실용적인 collision 공격이 알려진 알고리즘은 보안 용도로 사용하지 않는다.

여기서 넘지 말아야 할 경계: collision-free라는 절대 표현과 collision-resistant라는 계산적으로 찾기 어렵다는 표현을 구분해야 한다.

04. Hash·Collision 독립 강의 →

기초 개념 03

보안이란 무엇을 지키는 것인가

먼저 장면으로 이해해 봅시다. 봉투에 넣어 내용을 가리는 것은 기밀성, 봉인 스티커로 개봉 여부를 확인하는 것은 무결성, 발신인의 도장을 확인하는 것은 진위성, 우체국이 문을 열어 편지를 계속 전달하는 것은 가용성에 가깝다.

이제 전문 용어를 붙이면 다음과 같습니다. Asset은(는) 공격자로부터 지키려는 대상입니다. 파일, 비밀번호, 서비스 가용성, 사람의 개인정보가 모두 asset이 될 수 있습니다. Confidentiality은(는) 허가받지 않은 사람이 내용을 읽지 못하게 하는 기밀성입니다. Integrity은(는) 데이터나 시스템이 허가 없이 바뀌지 않았음을 보장하려는 무결성입니다. Availability은(는) 정당한 사용자가 필요할 때 서비스와 데이터에 접근할 수 있는 가용성입니다.

실제 시스템에서는 이렇게 작동합니다. 컴퓨터 보안은 막연히 ‘안전하게 만들기’가 아니라 지켜야 할 성질을 구분하는 일에서 시작한다. 기밀성(Vertraulichkeit, confidentiality)은 허가받지 않은 사람이 내용을 읽지 못하게 하는 것, 무결성(Integrität, integrity)은 내용이 몰래 바뀌지 않았음을 확인하는 것, 진위성(Authentizität, authenticity)은 상대나 데이터의 출처가 주장과 맞는지 확인하는 것이다. 서비스가 필요할 때 계속 동작하는 성질은 가용성(Verfügbarkeit, availability)이라고 한다.

  1. 문제에서 숨김, 변조 탐지, 신원 확인, 서비스 중단 중 무엇을 묻는지 찾는다.
  2. 한 기술이 네 목표를 모두 자동으로 제공한다고 가정하지 않는다.
  3. 공격자가 무엇을 할 수 있는지와 지켜야 할 목표를 한 문장씩 분리한다.

여기서 넘지 말아야 할 경계: TLS, 암호화, 서명, hash처럼 익숙한 단어가 나오더라도 그 기술이 제공하지 않는 목표까지 확대해서 쓰면 안 된다.

01. 평문·암호문·키 독립 강의 →

QUESTION-BY-QUESTION COMMENTARY

실제 시험 소문제별 해설

시험지의 번호와 순서를 그대로 유지했습니다. 각 항목을 열어 원문 → 쉬운 개념 설명 → 이번 문제의 단계별 풀이 → 답안 → 함정 순서로 읽으세요.

ACTUAL EXAM SUBSECTION 1.1

1.1. Multiple Choice

8개 학습 항목 · 16점

1.1 a) 블록 암호(Blockchiffren)에서는 모든 블록 길이를 같게 만들기 위해 padding function을 반드시 써야 한다. Wahr/Falsch? 기존 71문항 학습 번호 01 · 2점 Wahr/Falsch

1.1 a) · 실제 시험 원문

Bei Blockchiffren muss man eine Auffüllungsfunktion (padding function) benutzen, um alle Blöcke auf die gleiche Länge zu bringen.

한국어로 요구사항만 풀어 읽기

블록 암호(Blockchiffren)에서는 모든 블록 길이를 같게 만들기 위해 padding function을 반드시 써야 한다. Wahr/Falsch?

암호화의 가장 기본적인 등장인물Block cipher, mode, padding을 서로 구분하기

TERMS FOR 1.1 a)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01Plaintext

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

02Ciphertext

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

03Key

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

04Encryption / Decryption

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

05Block cipher

AES처럼 정해진 크기의 한 block을 key로 변환하는 암호 primitive입니다.

06Mode of operation

한 block짜리 암호를 긴 메시지에 안전하게 반복 적용하는 연결 규칙입니다. ECB, CBC, CTR 등이 있습니다.

07Padding

마지막 plaintext 조각이 block보다 짧을 때 필요한 길이를 채우는 규칙입니다.

08IV / Nonce

같은 key로 암호화해도 결과가 반복되지 않게 mode에 넣는 시작값입니다. mode에 따라 무작위성·유일성 요구가 다릅니다.

ZERO-BASE MINI LESSON · 1.1 a)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

암호화할 원래 자료를 평문(Klartext/Plaintext), 암호화된 결과를 암호문(Ciphertext), 변환을 제어하는 비밀값을 키(Schlüssel)라고 한다. 복호화(Entschlüsselung)는 올바른 키로 암호문을 다시 평문으로 되돌리는 과정이다.

블록 암호(Blockchiffre)는 임의 길이 문장을 한 번에 처리하지 않고, 정확히 정해진 길이의 블록 하나를 입력받아 같은 길이의 블록 하나를 출력하는 기본 부품이다. AES의 블록 크기는 128비트, 즉 16바이트이며, 이 블록 크기는 AES-128·AES-256에서 말하는 키 길이와 다른 값이다.

긴 메시지에 블록 암호를 반복 적용하는 연결 규칙을 운영 모드(Betriebsmodus)라고 한다. ECB와 CBC는 평문을 완전한 블록들로 나누어 처리하지만, CTR은 counter를 암호화해 만든 keystream을 필요한 길이만큼 평문과 XOR하므로 마지막 부분 블록도 그대로 처리할 수 있다.

Padding(Auffüllung)은 ECB/CBC처럼 완전한 입력 블록을 요구하는 모드에서 마지막 평문 조각이 짧을 때 규칙적인 바이트를 덧붙이는 절차다. 복호화 뒤 정확히 제거할 수 있어야 하므로 아무 0이나 붙이면 안 되며, PKCS#7 같은 규칙은 메시지가 이미 블록 크기에 맞아도 구별 가능성을 위해 완전한 padding 블록을 더 붙인다.

2 · 일상 장면으로 먼저 잡기

달걀 6개들이 상자만 통과시키는 포장 기계에 달걀 14개를 보내는 장면을 생각한다. 두 상자는 가득 차고 마지막 상자에는 2개뿐이므로, 그 기계가 완전한 상자만 받는다면 표시된 모형 달걀 4개를 채운다.

  • 6칸 달걀 상자 고정 길이 평문 블록
  • 표시된 모형 달걀 복호화 후 제거 가능한 padding 바이트
  • 상자를 하나씩 처리하는 포장 기계 ECB/CBC처럼 완전한 블록을 요구하는 운영 모드
  • 달걀을 필요한 개수만 컨베이어에 올리는 방식 마지막 부분만큼 keystream을 쓰는 CTR 모드

비유의 경계 실제 padding은 단순한 빈칸 채우기가 아니라 제거 규칙과 무결성 검증이 필요한 바이트 인코딩이다. 또한 PKCS#7에서는 길이가 이미 맞아도 padding을 추가하므로 ‘빈칸이 없으면 언제나 padding 없음’으로 비유를 확대하면 안 된다.

3 · 눈으로 관계 읽기 모드별 마지막 2바이트 처리
  1. 01 입력

    HELLO | !! — 블록 크기 5바이트

  2. 02 ECB/CBC

    HELLO | !! 03 03 03 — 완전한 블록이 필요

  3. 03 CTR

    HELLO | !! — 필요한 keystream 2바이트만 XOR

  4. 04 함정

    Blockchiffre라는 말만 보고 ‘항상 padding’으로 일반화하지 않는다.

같은 블록 암호를 내부에 사용해도 운영 모드가 다르면 마지막 부분 블록의 처리법이 달라진다는 비교다.

4 · TOY EXAMPLE

5바이트 장난감 블록으로 7바이트 메시지 처리하기

주어진 것과 목표 블록 크기는 5바이트이고 평문은 HELLO!! 7바이트라고 하자. 목표는 CBC형 처리와 CTR형 처리에서 마지막 2바이트가 어떻게 다른지 보는 것이다.

  1. 01
    평문을 5바이트씩 HELLO | !!로 나눈다.

    왜? 블록 경계를 먼저 표시해야 마지막 조각이 완전한지 판단할 수 있다.

    중간 결과 첫 블록은 5바이트, 마지막 조각은 2바이트이고 3바이트가 부족하다.

  2. 02
    CBC형 모드와 PKCS#7식 규칙을 가정해 !! 뒤에 값 03인 바이트를 세 번 붙인다.

    왜? 블록 입력을 5바이트로 만들고, 수신자가 마지막 값으로 제거할 바이트 수를 알게 해야 한다.

    중간 결과 마지막 블록은 !! 03 03 03이 되어 정확히 5바이트다.

  3. 03
    같은 7바이트를 CTR형 모드로 처리할 때는 두 번째 keystream 블록의 앞 2바이트만 !!와 XOR한다.

    왜? CTR은 평문 조각을 블록 암호 입력으로 직접 넣지 않고 keystream과 XOR하기 때문이다.

    중간 결과 별도 padding 없이 7바이트 암호문을 만들 수 있다.

  4. 04
    ‘블록 암호를 쓰면 항상 padding’이라는 문장에 CTR을 대입한다.

    왜? ‘반드시(muss)’라는 보편 명제는 반례 하나면 거짓이 된다.

    중간 결과 CTR이라는 반례가 있으므로 문장은 Falsch다.

예제 결론 Padding 필요 여부는 블록 암호라는 이름 하나가 아니라 메시지 길이, 구체적인 padding 규격, 운영 모드가 함께 결정한다.

실제 시험으로 옮기기 실제 문항에서는 계산 없이 Falsch를 고르고, 이유를 묻는다면 ‘ECB/CBC의 짧은 마지막 블록에는 필요하지만 CTR에서는 필요하지 않다’라고 조건을 붙인다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: 블록 암호(Blockchiffren)에서는 모든 블록 길이를 같게 만들기 위해 padding function을 반드시 써야 한다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 절대 표현 찾기 → 블록 암호와 padding 분리 → 필요한 경우 확인 → 반례 제시 → 판정 순서로 진행합니다. 마지막에는 ‘AES-ECB/CBC처럼 완전한 평문 블록을 요구하는 모드에서는 적절한 padding이 필요할 수 있지만 AES-CTR에서는 별도 padding 없이 임의 길이를 처리할 수 있다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 판정 대상

    Block cipher에서는 모든 block을 같은 길이로 만들기 위해 항상 padding이 필요하다는 주장

  • 숨은 조건

    Mode가 block 단위로 동작하는지, stream처럼 임의 길이를 처리하는지에 따라 padding 필요 여부가 달라진다.

최종적으로 구해야 하는 것
  • 최종 출력

    문장 전체의 Wahr/Falsch 판정

  • 판정 근거

    Padding이 필요한 mode와 필요하지 않은 mode의 반례

사용할 공식·판정 관계
  • Block 나머지 길이
    \[r = L \bmod B\]

    메시지 길이 L이 block 크기 B의 배수가 아니면 마지막 block에 남는 길이를 구한다.

  • 필요한 padding 길이
    \[p = B-r\]

    CBC처럼 완전한 block을 요구하는 mode에서만 이 padding 계산이 필요하다.

  1. 01

    절대 표현 찾기

    구체적으로 원문의 muss man ... benutzen은 모든 블록 암호 사용에서 padding이 필수라고 주장한다.

    여기서 검산 ‘경우에 따라’가 아니라 예외 없는 주장인지 확인한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘블록 암호와 padding 분리’ 단계의 출발점으로 사용합니다.

  2. 02

    블록 암호와 padding 분리

    구체적으로 블록 암호는 고정 길이 입력을 처리하고, padding은 그 입력에 넣을 마지막 평문 조각의 길이를 맞추는 별도 규칙이다.

    여기서 검산 padding이 암호문 블록 길이를 사후에 맞추는 절차라고 쓰지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘필요한 경우 확인’ 단계의 출발점으로 사용합니다.

  3. 03

    필요한 경우 확인

    구체적으로 ECB/CBC에서 평문 길이가 블록 크기의 배수가 아니면 마지막 조각을 완성해야 하므로 적절한 padding이 필요하다.

    여기서 검산 조건에 ‘모드가 완전한 평문 블록을 요구함’과 ‘길이가 맞지 않음’이 모두 들어갔는지 본다.

    다음 단계로 여기서 확인한 내용을 다음 ‘반례 제시’ 단계의 출발점으로 사용합니다.

  4. 04

    반례 제시

    구체적으로 CTR은 counter 암호화값을 keystream으로 사용하므로 마지막 평문이 2바이트라면 keystream도 2바이트만 XOR할 수 있다.

    여기서 검산 CTR이 블록 암호 기반이라는 사실과 스트림처럼 처리한다는 사실을 동시에 유지한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 예외가 있으므로 ‘반드시’라는 문장은 Falsch다.

    여기서 검산 답안 칸에는 Falsch 한 곳만 표시한다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch로 연습한다. 블록 암호 자체는 고정 길이 블록을 처리하므로 평문 길이가 블록 길이의 배수가 아니면 padding으로 마지막 블록을 맞춘다. 그러나 이미 블록 정렬된 입력이거나 CTR처럼 스트림 암호처럼 쓰는 모드에서는 별도 padding이 필요하지 않을 수 있다.

정답이 이렇게 되는 이유

정답은 Falsch다. 블록 암호는 고정 길이 블록을 처리하지만, padding은 특정 운영 모드가 완전한 평문 블록을 요구하면서 메시지 길이가 맞지 않을 때 필요한 별도 절차다. ECB나 CBC의 마지막 조각에는 일반적으로 필요하지만 CTR에서는 필요한 keystream 부분만 XOR할 수 있어 별도 padding이 필요 없다. 따라서 원문의 muss는 조건부 사실을 잘못 일반화한다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 AES는 16바이트 블록 암호이므로 AES를 쓰는 모든 메시지는 반드시 16바이트 배수로 padding해야 한다.

왜 틀렸나 AES라는 기본 부품과 AES를 사용하는 운영 모드를 구분하지 않았고, CTR처럼 부분 keystream을 사용할 수 있는 반례를 놓쳤다.

고쳐 말하면 AES-ECB/CBC처럼 완전한 평문 블록을 요구하는 모드에서는 적절한 padding이 필요할 수 있지만 AES-CTR에서는 별도 padding 없이 임의 길이를 처리할 수 있다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 AES 블록이 16바이트일 때 30바이트 평문을 AES-CTR로 암호화한다. 마지막 14바이트를 위해 padding 2바이트가 필요한가?

정답 필요 없다. 두 번째 counter에서 만든 keystream의 앞 14바이트만 평문 마지막 14바이트와 XOR하면 된다.

이 문제의 오답 함정

  • Blockchiffre라는 단어만 보고 항상 padding이라고 단정하기
  • CTR-Modus를 블록 암호 기반이지만 스트림처럼 동작한다는 점을 놓치기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    문장의 핵심 함정은 'muss'이다. Padding이 필요한 조건을 먼저 떠올려라.

  2. 02 · 90초 닫힌책 답안

    블록 암호(Blockchiffren)에서는 모든 블록 길이를 같게 만들기 위해 padding function을 반드시 써야 한다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • ECB/CBC에서 마지막 블록이 짧으면 어떤 처리가 필요한가?
    • CTR-Modus에서는 왜 padding 없이 임의 길이 bit string을 처리할 수 있는가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: Blockchiffre라는 단어만 보고 항상 padding이라고 단정하기

    복구 힌트: 문장의 핵심 함정은 'muss'이다. Padding이 필요한 조건을 먼저 떠올려라.

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch로 연습한다. 블록 암호 자체는 고정 길이 블록을 처리하므로 평문 길이가 블록 길이의 배수가 아니면 padding으로 마지막 블록을 맞춘다. 그러나 이미 블록 정렬된 입력이거나 CTR처럼 스트림 암호처럼 쓰는 모드에서는 별도 padding이 필요하지 않을 수 있다.

1.1 b) One-Time Pad(OTP)는 brute force로 완전히 깨질 수 있다. Wahr/Falsch? 기존 71문항 학습 번호 02 · 2점 Wahr/Falsch

1.1 b) · 실제 시험 원문

Ein One-Time-Pad kann vollständig durch Bruteforcing gebrochen werden.

한국어로 요구사항만 풀어 읽기

One-Time Pad(OTP)는 brute force로 완전히 깨질 수 있다. Wahr/Falsch?

암호화의 가장 기본적인 등장인물One-Time Pad와 brute force가 만나는 지점

TERMS FOR 1.1 b)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01Plaintext

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

02Ciphertext

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

03Key

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

04Encryption / Decryption

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

05One-Time Pad

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

06XOR

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

07Brute force

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

08Perfect secrecy

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

ZERO-BASE MINI LESSON · 1.1 b)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

XOR(배타적 논리합)은 두 비트가 다르면 1, 같으면 0이 되는 연산이다. 같은 키 비트를 두 번 XOR하면 사라지므로 m XOR k XOR k = m이며, 이 성질로 c=m XOR k, m=c XOR k가 성립한다.

One-Time Pad(OTP)는 평문과 같은 길이의 키를 준비해 비트별 XOR로 암호화한다. 이름의 One-Time은 키를 정확히 한 번만 써야 한다는 뜻이다.

완전한 OTP가 되려면 키가 균등한 진짜 난수이고, 메시지 이상 길이이며, 비밀로 보관되고, 단 한 번만 사용되어야 한다. 짧은 비밀번호를 늘리거나 같은 pad를 재사용한 것은 정의상 안전한 OTP가 아니다.

Brute force는 가능한 키를 모두 시험하는 방법이다. 일반 암호에서는 읽을 수 있는 평문 하나가 튀어나올 수 있지만, 올바른 OTP에서는 모든 같은 길이 평문이 정확히 하나의 키와 대응하므로 전수조사가 후보를 제거하지 못한다. 이는 계산량이 아니라 정보 부족에서 오는 정보이론적 안전성이다.

2 · 일상 장면으로 먼저 잡기

잠긴 상자를 열 후보 열쇠가 무한히 많은 것이 아니라, 열쇠를 하나씩 바꿀 때마다 상자 안 쪽지가 ‘회의’, ‘취소’, ‘송금’처럼 전부 그럴듯하게 달라지는 마술 상자를 떠올린다.

  • 관찰된 하나의 잠긴 상자 공격자가 본 OTP 암호문 c
  • 시험해 보는 모든 열쇠 모든 가능한 같은 길이 OTP 키 k
  • 각 열쇠마다 나타나는 서로 다른 쪽지 각 키에 대응하는 후보 평문 m=c XOR k

비유의 경계 실제 OTP에서 후보 평문은 언어 통계나 외부 상황 때문에 모두 같은 사전확률을 갖지는 않을 수 있다. 그러나 완전 안전성의 핵심은 암호문 자체가 그 사전확률을 바꾸는 추가 정보를 주지 않는다는 점이다.

3 · 눈으로 관계 읽기 OTP 전수조사의 결과
  1. 01 관찰

    암호문 c=101

  2. 02 전수조사

    000부터 111까지 XOR

  3. 03 출력

    평문 후보 000부터 111까지 모두 등장

  4. 04 남은 문제

    진짜 후보를 고를 암호문 내부 정보가 없음

계산을 끝냈다는 사실과 비밀을 알아냈다는 사실이 다름을 보여 주는 흐름이다.

4 · TOY EXAMPLE

3비트 암호문 101의 모든 후보 조사

주어진 것과 목표 공격자가 암호문 c=101만 보았고 3비트 키의 모든 8가지 값을 시험한다고 하자. 목표는 목록 완성이 실제 평문 식별과 같은지 확인하는 것이다.

  1. 01
    000111을 먼저 시험한다.

    왜? m=c XOR k로 양 끝 후보가 어떻게 달라지는지 보기 위해서다.

    중간 결과 101 XOR 000=101, 101 XOR 111=010이다.

  2. 02
    후보 평문 011이 가능할지 역으로 키를 계산한다.

    왜? 임의 평문마다 대응 키가 존재한다는 일반 성질을 확인하기 위해서다.

    중간 결과 k=c XOR m'=101 XOR 011=110이고, 실제로 011 XOR 110=101이다.

  3. 03
    나머지 키도 모두 대입한다.

    왜? brute force가 버리는 후보가 있는지 확인해야 한다.

    중간 결과 후보 평문은 000부터 111까지 모든 3비트 문자열을 정확히 한 번씩 포함한다.

  4. 04
    목록에서 진짜 평문을 고를 근거가 암호문에 있는지 묻는다.

    왜? ‘모든 후보 생성’과 ‘실제 후보 식별’을 구분해야 한다.

    중간 결과 암호문만으로는 어느 후보가 진짜인지 알 수 없으므로 완전히 깨지지 않는다.

예제 결론 OTP brute force는 모든 가능한 평문을 나열하지만 정답 하나를 선택하는 정보는 만들지 못한다.

실제 시험으로 옮기기 실제 문항은 Falsch이며, 키 재사용이나 약한 난수 때문에 깨지는 경우와 올바른 OTP 자체를 구분해야 한다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

  • Vorlesung/02_Grundlagen_Krypto_RMU_v2.pdf p.9 · Alice·Bob·Eve 통신 장면과 기밀성의 기본 등장인물 연결 개념 강의 열기
  • Vorlesung/02_Grundlagen_Krypto_RMU_v2.pdf p.37, p.39, p.43 · OTP 조건·XOR 계산·key reuse 실패 연결 개념 강의 열기

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: One-Time Pad(OTP)는 brute force로 완전히 깨질 수 있다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 문제의 OTP 조건 확정 → 핵심 식 쓰기 → brute force 결과 해석 → 깨짐의 의미 확인 → 판정 순서로 진행합니다. 마지막에는 ‘전수조사는 후보를 모두 생성하지만 올바른 OTP 암호문은 후보 중 진짜를 선택할 정보를 주지 않는다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 암호

    One-Time Pad

  • 주장

    가능한 key를 모두 brute force하면 plaintext를 완전히 알아낼 수 있다는 주장

최종적으로 구해야 하는 것
  • 최종 출력

    Wahr/Falsch와 perfect secrecy가 성립하는 이유

  • 핵심 확인

    한 ciphertext에 여러 plausible plaintext가 대응하는지

사용할 공식·판정 관계
  • 암호화
    \[C = M \oplus K\]

    Plaintext M과 같은 길이의 random key K를 XOR해 ciphertext C를 만든다.

  • 후보 key
    \[K' = C \oplus M'\]

    원하는 후보 plaintext M′마다 이를 설명하는 key K′가 존재한다.

  1. 01

    문제의 OTP 조건 확정

    구체적으로 별도 결함이 제시되지 않았으므로 진짜 난수·충분한 길이·일회 사용·비밀 보관을 만족하는 올바른 OTP를 뜻한다고 읽는다.

    여기서 검산 키 재사용 공격을 기본 조건에 몰래 추가하지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘핵심 식 쓰기’ 단계의 출발점으로 사용합니다.

  2. 02

    핵심 식 쓰기

    구체적으로 c=m XOR k이고 어떤 후보 평문 m'에 대해서도 k'=c XOR m'를 만들 수 있다.

    여기서 검산 XOR 역연산이 다시 XOR라는 점을 확인한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘brute force 결과 해석’ 단계의 출발점으로 사용합니다.

  3. 03

    brute force 결과 해석

    구체적으로 모든 키를 시험하면 가능한 모든 같은 길이 평문이 각각 하나의 키와 함께 나타난다.

    여기서 검산 그럴듯한 후보 하나만 나온다고 가정하지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘깨짐의 의미 확인’ 단계의 출발점으로 사용합니다.

  4. 04

    깨짐의 의미 확인

    구체적으로 ‘완전히 깨짐’은 실제 평문을 식별해야 하는데 전수조사 목록만으로는 식별할 수 없다.

    여기서 검산 후보 생성과 후보 판별을 별도로 쓴다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 완전한 brute force로도 유일한 평문을 얻지 못하므로 Falsch다.

    여기서 검산 OTP의 조건이 깨진 구현은 취약할 수 있다는 예외를 별도로 둔다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch이다. 올바른 OTP는 진짜 난수 키, 메시지 이상 길이, 단 한 번 사용, 비밀 보관 조건을 만족한다. 이때 brute force는 가능한 모든 같은 길이 평문을 만들어내므로 유일한 정답 평문을 식별하지 못한다.

정답이 이렇게 되는 이유

정답은 Falsch다. 올바른 OTP에서는 임의의 같은 길이 후보 평문마다 관찰된 암호문을 만드는 정확한 후보 키가 존재한다. 따라서 모든 키를 brute force하면 가능한 모든 평문이 나오며, 어느 것이 실제 평문인지 암호문만으로 구별할 수 없다. 다만 키 재사용, 예측 가능한 난수, 짧은 키는 OTP의 전제를 깨므로 실제 공격이 가능해진다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 키 공간이 유한하므로 컴퓨터가 모든 키를 시험하면 반드시 진짜 메시지를 찾는다.

왜 틀렸나 전수조사가 진짜 키에 도달하는 것과 그 키가 진짜라는 표지를 얻는 것을 혼동했다. OTP에서는 다른 모든 키도 각각 완전히 가능한 다른 평문을 만든다.

고쳐 말하면 전수조사는 후보를 모두 생성하지만 올바른 OTP 암호문은 후보 중 진짜를 선택할 정보를 주지 않는다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 암호문 c=110과 공격자가 원하는 후보 평문 m'=001이 함께 가능하게 하는 OTP 키는 무엇인가?

정답 k'=c XOR m'=110 XOR 001=111이다. 검산하면 001 XOR 111=110이다.

이 문제의 오답 함정

  • 무한한 계산능력과 정보부족을 혼동하기
  • 키 재사용된 OTP와 올바른 OTP를 섞기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    OTP에서 공격자가 ciphertext만 볼 때 가능한 plaintext가 몇 개인지 생각하라.

  2. 02 · 90초 닫힌책 답안

    One-Time Pad(OTP)는 brute force로 완전히 깨질 수 있다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • OTP에서 P(M | C) = P(M)는 어떤 의미인가?
    • 같은 OTP key를 두 메시지에 재사용하면 c1 xor c2에서 무엇이 드러나는가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: 무한한 계산능력과 정보부족을 혼동하기

    복구 힌트: OTP에서 공격자가 ciphertext만 볼 때 가능한 plaintext가 몇 개인지 생각하라.

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch이다. 올바른 OTP는 진짜 난수 키, 메시지 이상 길이, 단 한 번 사용, 비밀 보관 조건을 만족한다. 이때 brute force는 가능한 모든 같은 길이 평문을 만들어내므로 유일한 정답 평문을 식별하지 못한다.

1.1 c) Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch? 기존 71문항 학습 번호 03 · 2점 Wahr/Falsch

1.1 c) · 실제 시험 원문

Hashwerte eines Hashingalgorithmus haben verschiedene Längen abhängig von der Länge des Eingabetexts.

한국어로 요구사항만 풀어 읽기

Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch?

Hash는 암호화가 아니라 고정 길이 지문이다

TERMS FOR 1.1 c)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01Cryptographic Hash

입력 데이터에서 고정 길이 digest를 계산하는 함수입니다. 수집 전후 hash가 같으면 그 사이 byte가 바뀌지 않았다는 강한 근거가 됩니다.

작은 예: 원본과 forensic image의 SHA-256을 기록하고 비교합니다.

02Hash function

임의 길이 입력을 고정 길이 digest로 바꾸는 단방향 함수입니다. 암호화처럼 복호화 key가 있는 기능이 아닙니다.

03Digest

Hash function의 고정 길이 출력으로, 데이터의 짧은 지문처럼 사용됩니다.

04Collision

서로 다른 두 입력이 같은 digest를 만드는 경우입니다. 출력 공간이 유한하므로 존재 자체는 피할 수 없습니다.

05Preimage resistance

주어진 digest를 만드는 입력을 현실적인 시간에 찾기 어려워야 한다는 성질입니다.

ZERO-BASE MINI LESSON · 1.1 c)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

암호학적 해시 함수(Hashfunktion)는 임의 길이 입력을 정해진 길이의 짧은 값으로 바꾸는 함수 h=H(m)이다. 결과는 Hashwert, digest 또는 디지털 지문이라고 부른다.

해시는 암호화와 다르다. 일반적인 해시는 비밀키를 사용하지 않고 원문으로 되돌리는 복호화 연산도 제공하지 않으며, 입력이 같은지 효율적으로 비교하거나 무결성을 확인하는 데 사용한다.

출력 길이는 입력 길이가 아니라 선택한 함수가 정한다. SHA-256은 빈 문자열, 한 글자, 수 GB 파일을 입력해도 항상 256비트=32바이트를 출력하고, 16진수 표기에서는 한 글자가 4비트이므로 64글자다.

무한히 많은 입력을 유한한 출력 공간에 넣으므로 서로 다른 입력이 같은 digest를 갖는 collision은 수학적으로 반드시 존재한다. 좋은 해시의 목표는 collision이 없게 하는 것이 아니라 현실적인 자원으로 찾기 어렵게 하는 것이다.

2 · 일상 장면으로 먼저 잡기

크기가 제각각인 택배 상자마다 정확히 12자리인 배송 조회번호를 찍는 물류센터를 생각한다. 냉장고 상자도 편지 봉투도 내용과 번호는 다르지만 조회번호 칸 수는 같다.

  • 크기가 다른 택배 길이가 다른 입력 메시지나 파일
  • 항상 12자리인 조회번호 알고리즘이 고정한 길이의 digest
  • 서로 다른 택배가 우연히 같은 번호를 받는 경우 해시 collision

비유의 경계 배송번호는 중앙 시스템이 중복을 피하도록 발급할 수 있지만 해시는 중앙 장부 없이 입력에서 계산한다. 따라서 유한 출력의 collision을 완전히 없앨 수 있다는 뜻으로 비유하면 안 된다.

3 · 눈으로 관계 읽기 다양한 입력, 고정된 출력
  1. 01 입력 A

    빈 문자열 0바이트

  2. 02 입력 B

    Hallo 5바이트

  3. 03 SHA-256

    두 입력을 같은 해시 함수로 압축

  4. 04 출력

    서로 다른 값이지만 각각 256비트=64 hex 글자

입력 화살표의 폭은 달라도 SHA-256 뒤 출력 상자의 폭은 항상 같다고 읽는다.

4 · TOY EXAMPLE

SHA-512 출력 표시 길이 계산

주어진 것과 목표 SHA-512에 A 1바이트와 2MB 파일을 각각 넣는다고 하자. 목표는 두 출력의 비트·바이트·16진수 글자 수를 비교하는 것이다.

  1. 01
    알고리즘 이름에서 정해진 digest 길이 512비트를 확인한다.

    왜? 출력 길이는 입력 크기가 아니라 해시 함수 사양에서 결정되기 때문이다.

    중간 결과 두 입력 모두 digest가 512비트다.

  2. 02
    512비트를 8로 나눈다.

    왜? 1바이트는 8비트이므로 저장 크기를 구하기 위해서다.

    중간 결과 두 digest 모두 64바이트다.

  3. 03
    512비트를 4로 나눈다.

    왜? 16진수 한 글자는 4비트를 표현하기 때문이다.

    중간 결과 두 digest 모두 16진수로 128글자다.

  4. 04
    내용과 길이를 분리해 비교한다.

    왜? 고정 길이가 같은 digest 값을 뜻하지는 않기 때문이다.

    중간 결과 두 digest의 값은 보통 전혀 다르지만 길이는 모두 512비트다.

예제 결론 같은 해시 알고리즘 안에서는 입력 크기가 변해도 digest 길이는 고정되고 값만 달라진다.

실제 시험으로 옮기기 실제 문장은 입력 길이에 따라 Hashwert 길이가 달라진다고 했으므로 Falsch; SHA-256의 고정 256비트를 반례로 쓰면 된다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

  • Vorlesung/03 Symmetrische Kryptographie.pdf p.36, p.38, p.39 · Hash 정의·핵심 보안 성질·응용 연결 개념 강의 열기

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 함수 하나를 고정 → 정의 회상 → 구체 반례 → 길이와 값 분리 → 판정 순서로 진행합니다. 마지막에는 ‘SHA-256 digest는 입력 크기와 무관하게 항상 256비트이고, 큰 입력에서는 계산 시간과 처리 블록 수가 늘어날 뿐 출력 길이는 늘지 않는다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 실제 시험이 준 상황·문장

    Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch?

  • 이 문항의 첫 출발점

    문장은 하나의 Hashingalgorithmus 안에서 입력 길이와 출력 길이의 관계를 묻는다.

    SHA-256과 SHA-512처럼 서로 다른 알고리즘의 출력 길이 차이와 혼동하지 않는다.

최종적으로 구해야 하는 것
  • 마지막에 도달할 답안

    입력 길이에 따라 Hashwert 길이가 달라진다는 주장은 `Falsch`다.

  • 정답을 지탱하는 이유

    정답은 `Falsch`다. 하나의 암호학적 해시 함수는 길이가 제각각인 입력을 그 함수에 고정된 길이의 digest로 매핑한다. 예를 들어 SHA-256은 입력이 비어 있거나 매우 큰 파일이어도 항상 256비트를 출력한다. 알고리즘을 SHA-512로 바꾸면 출력 길이가 달라질 수 있지만, 그것은 입력 길이 때문이 아니라 선택한 함수가 달라졌기 때문이다.

사용할 공식·판정 관계
  • 이 소문제만의 풀이 사슬

    함수 하나를 고정 → 정의 회상 → 구체 반례 → 길이와 값 분리 → 판정

    입력 화살표의 폭은 달라도 SHA-256 뒤 출력 상자의 폭은 항상 같다고 읽는다.

  1. 01

    함수 하나를 고정

    구체적으로 문장은 하나의 Hashingalgorithmus 안에서 입력 길이와 출력 길이의 관계를 묻는다.

    여기서 검산 SHA-256과 SHA-512처럼 서로 다른 알고리즘의 출력 길이 차이와 혼동하지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘정의 회상’ 단계의 출발점으로 사용합니다.

  2. 02

    정의 회상

    구체적으로 암호학적 해시는 임의 길이 입력을 함수가 정한 고정 길이 digest로 매핑한다.

    여기서 검산 입력은 arbitrary, 출력은 fixed라고 짝지어 말한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘구체 반례’ 단계의 출발점으로 사용합니다.

  3. 03

    구체 반례

    구체적으로 SHA-256은 1바이트 입력도 1GB 입력도 모두 256비트 digest를 낸다.

    여기서 검산 256비트가 32바이트이자 64개 16진수 글자임을 필요하면 검산한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘길이와 값 분리’ 단계의 출발점으로 사용합니다.

  4. 04

    길이와 값 분리

    구체적으로 입력이 달라지면 digest 값은 크게 달라지는 것이 바람직하지만 digest의 자리 수는 유지된다.

    여기서 검산 ‘출력이 같다’가 아니라 ‘출력 길이가 같다’고 쓴다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 입력 길이에 따라 Hashwert 길이가 달라진다는 주장은 Falsch다.

    여기서 검산 선택한 함수가 출력 길이를 정한다는 이유를 붙일 수 있는지 확인한다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch이다. 선택된 hash function은 임의 길이 입력을 받아 고정된 길이의 digest로 매핑한다. 입력 길이가 길어져도 SHA-256이면 256 bit처럼 출력 길이는 함수가 정한 값으로 유지된다.

정답이 이렇게 되는 이유

정답은 Falsch다. 하나의 암호학적 해시 함수는 길이가 제각각인 입력을 그 함수에 고정된 길이의 digest로 매핑한다. 예를 들어 SHA-256은 입력이 비어 있거나 매우 큰 파일이어도 항상 256비트를 출력한다. 알고리즘을 SHA-512로 바꾸면 출력 길이가 달라질 수 있지만, 그것은 입력 길이 때문이 아니라 선택한 함수가 달라졌기 때문이다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 큰 파일은 더 많은 정보를 가지므로 작은 문자열보다 더 긴 SHA-256 hash를 만든다.

왜 틀렸나 digest가 입력 전체를 가역적으로 담는 압축 파일이라고 오해했다. 해시는 많은 입력을 고정된 유한 출력 공간으로 매핑하며 정보를 되살리는 압축이 아니다.

고쳐 말하면 SHA-256 digest는 입력 크기와 무관하게 항상 256비트이고, 큰 입력에서는 계산 시간과 처리 블록 수가 늘어날 뿐 출력 길이는 늘지 않는다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 SHA-256으로 10GB 파일을 해시한 값을 16진수로 표시하면 보통 몇 글자인가?

정답 64글자다. SHA-256은 256비트이고 16진수 한 글자가 4비트이므로 256÷4=64다.

이 문제의 오답 함정

  • 압축처럼 입력이 길면 출력도 길어진다고 생각하기
  • Hash table의 hashing과 cryptographic hash를 혼동하기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    Hash의 출력 크기는 메시지 크기가 아니라 알고리즘 이름이 정한다.

  2. 02 · 90초 닫힌책 답안

    Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • 고정 출력 길이가 collision 가능성과 어떤 관계가 있는가?
    • SHA-256과 SHA-512의 출력 길이는 무엇이 결정하는가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: 압축처럼 입력이 길면 출력도 길어진다고 생각하기

    복구 힌트: Hash의 출력 크기는 메시지 크기가 아니라 알고리즘 이름이 정한다.

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch이다. 선택된 hash function은 임의 길이 입력을 받아 고정된 길이의 digest로 매핑한다. 입력 길이가 길어져도 SHA-256이면 256 bit처럼 출력 길이는 함수가 정한 값으로 유지된다.

1.1 d) Kryptographie에서 Modulo-Operation 때문에 ciphertext의 어느 위치, 즉 앞이나 뒤에서 복호화를 시작해도 상관없다. Wahr/Falsch? 기존 71문항 학습 번호 04 · 2점 Wahr/Falsch

1.1 d) · 실제 시험 원문

Speziell in der Kryptographie sorgt die Modulo-Operation dafür, dass es egal ist von welcher Position man die Entschlüsselung beginnt (am Anfang oder Ende des Ciphertexts).

한국어로 요구사항만 풀어 읽기

Kryptographie에서 Modulo-Operation 때문에 ciphertext의 어느 위치, 즉 앞이나 뒤에서 복호화를 시작해도 상관없다. Wahr/Falsch?

Modulo, 경우의 수, key space를 처음부터 계산하기Block cipher, mode, padding을 서로 구분하기

TERMS FOR 1.1 d)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01Modulo

어떤 수를 나눈 나머지만 보는 연산입니다. 시계가 12 다음 1로 돌아가는 것과 비슷합니다.

02Key space

가능한 모든 key의 집합과 그 개수입니다.

03Entropy

공격자가 key를 예측하기 어려운 정도를 bit 단위로 나타내는 관점입니다. 단순 길이와 항상 같지는 않습니다.

04Multiplication principle

독립적으로 고르는 각 자리의 경우의 수를 곱해 전체 경우의 수를 계산하는 원리입니다.

05Block cipher

AES처럼 정해진 크기의 한 block을 key로 변환하는 암호 primitive입니다.

06Mode of operation

한 block짜리 암호를 긴 메시지에 안전하게 반복 적용하는 연결 규칙입니다. ECB, CBC, CTR 등이 있습니다.

07Padding

마지막 plaintext 조각이 block보다 짧을 때 필요한 길이를 채우는 규칙입니다.

08IV / Nonce

같은 key로 암호화해도 결과가 반복되지 않게 mode에 넣는 시작값입니다. mode에 따라 무작위성·유일성 요구가 다릅니다.

ZERO-BASE MINI LESSON · 1.1 d)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

Modulo 연산 a mod n은 a를 n으로 나눈 나머지를 구한다. 예를 들어 17 mod 5=2이며, 시계처럼 결과를 0부터 n−1 범위 안에서 순환시키는 산술 규칙이다.

긴 메시지는 여러 평문 블록 P1, P2, ...와 암호문 블록 C1, C2, ...로 나뉜다. 어떤 Pi를 구할 때 어떤 데이터가 필요한지가 블록 간 의존관계이며, 이 의존관계가 어느 위치부터 처리할 수 있는지를 결정한다.

ECB에서는 Pi=Dk(Ci)라서 각 블록이 독립적이다. CBC에서는 Pi=Dk(Ci) XOR C(i−1)이므로 현재 암호문뿐 아니라 바로 앞 암호문이 필요하고, 첫 블록에는 C0 대신 IV가 필요하다.

CTR에서는 블록 번호에 대응하는 nonce와 counter로 keystream을 직접 계산할 수 있어 해당 위치로 접근할 수 있다. 이 독립성은 운영 모드의 수식에서 생기며, 중간 계산에 modulo가 등장한다는 사실 자체에서 생기지 않는다.

2 · 일상 장면으로 먼저 잡기

아파트 호수가 1층부터 12층까지 반복되는 순환 번호표와, 기차 객차 문을 열 때 이전 객차의 열쇠가 필요한 연결 잠금장치를 비교한다.

  • 13층을 다시 1로 표시하는 순환 번호표 값을 나머지 범위로 돌리는 modulo
  • 현재 객차와 이전 객차 열쇠를 함께 요구 CBC에서 Ci와 C(i−1)가 필요한 의존성
  • 객차 번호만 알면 별도 열쇠를 발급받는 방식 CTR에서 block counter로 직접 keystream을 계산하는 random access

비유의 경계 Modulo는 암호 알고리즘의 여러 계산에 쓰이지만 접근 순서를 자동으로 정하지 않는다. 실제 모드의 보안과 병렬성은 IV·nonce 관리, 인증 여부, 구체 수식까지 봐야 한다.

3 · 눈으로 관계 읽기 블록 i를 복호화할 때 필요한 것
  1. 01 ECB

    Pi=Dk(Ci) — 현재 블록만 필요

  2. 02 CBC

    Pi=Dk(Ci) XOR C(i−1) — 이전 블록도 필요

  3. 03 CTR

    Pi=Ci XOR Ek(nonce,counter_i) — 위치 counter 계산 가능

  4. 04 Modulo

    17 mod 5=2 — 값의 범위만 제한

각 행의 오른쪽 입력 목록이 random access를 결정하며, modulo 행은 블록 연결 규칙을 제공하지 않는다.

4 · TOY EXAMPLE

나머지 계산과 CBC의 세 번째 블록 접근을 분리하기

주어진 것과 목표 숫자 17 mod 5를 계산할 수 있고 CBC 암호문 블록 C1, C2, C3C3만 받았다고 하자. 목표는 modulo 지식만으로 P3를 복호화할 수 있는지 판단하는 것이다.

  1. 01
    17=3×5+2를 써서 나머지를 계산한다.

    왜? Modulo가 실제로 제공하는 기능을 정확히 고정하기 위해서다.

    중간 결과 17 mod 5=2이며 값의 범위가 0~4로 줄었다.

  2. 02
    CBC 복호화 식 P3=Dk(C3) XOR C2를 적는다.

    왜? 세 번째 평문 블록에 필요한 입력은 모드 수식에서 확인해야 한다.

    중간 결과 키와 C3 외에 바로 앞 블록 C2도 필요하다.

  3. 03
    현재 가진 자료 목록과 식의 입력을 대조한다.

    왜? 산술을 할 수 있는 것과 필수 데이터가 있는 것은 별개이기 때문이다.

    중간 결과 C2가 없으므로 P3를 복원할 수 없다.

  4. 04
    같은 위치를 CTR과 비교한다.

    왜? 시작 위치를 결정하는 것이 모드임을 반례로 확인하기 위해서다.

    중간 결과 키, nonce, block counter 3을 알면 CTR은 세 번째 keystream 블록을 직접 만들 수 있다.

예제 결론 Modulo는 나머지를 만들 뿐이고, 임의 위치 복호화 가능성은 해당 운영 모드가 요구하는 입력에 달려 있다.

실제 시험으로 옮기기 실제 문장의 원인 표현 ‘Modulo-Operation 때문에’가 틀렸으므로 Falsch; CBC와 CTR의 의존성 차이를 이유로 든다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: Kryptographie에서 Modulo-Operation 때문에 ciphertext의 어느 위치, 즉 앞이나 뒤에서 복호화를 시작해도 상관없다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 Modulo 정의 제한 → 질문을 의존성 문제로 번역 → CBC 반례 → 모드 비교 → 판정 순서로 진행합니다. 마지막에는 ‘Modulo는 값의 범위를 정하고, 어느 암호문 블록에서 시작할 수 있는지는 ECB·CBC·CTR의 의존 수식이 정한다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 실제 시험이 준 상황·문장

    Kryptographie에서 Modulo-Operation 때문에 ciphertext의 어느 위치, 즉 앞이나 뒤에서 복호화를 시작해도 상관없다. Wahr/Falsch?

  • 이 문항의 첫 출발점

    Modulo는 나눗셈의 나머지를 취해 값을 정해진 residue class 범위에 놓는 연산이다.

    Modulo에 ‘순서를 없앤다’는 성질을 추가하지 않는다.

최종적으로 구해야 하는 것
  • 마지막에 도달할 답안

    모든 경우를 Modulo 하나로 설명한 문장은 `Falsch`다.

  • 정답을 지탱하는 이유

    정답은 `Falsch`다. Modulo는 계산값을 나머지 범위에 두는 산술 연산일 뿐, 암호문 블록 사이의 의존관계를 제거하지 않는다. 예를 들어 CBC에서 `Pi`를 얻으려면 `Ci`와 `C(i−1)`가 모두 필요하다. 반면 CTR의 직접 접근 가능성은 block counter로 keystream을 독립 생성하는 모드 구조에서 생기므로, 시작 위치는 Modulo가 아니라 Betriebsmodus가 결정한다.

사용할 공식·판정 관계
  • 이 소문제만의 풀이 사슬

    Modulo 정의 제한 → 질문을 의존성 문제로 번역 → CBC 반례 → 모드 비교 → 판정

    각 행의 오른쪽 입력 목록이 random access를 결정하며, modulo 행은 블록 연결 규칙을 제공하지 않는다.

  1. 01

    Modulo 정의 제한

    구체적으로 Modulo는 나눗셈의 나머지를 취해 값을 정해진 residue class 범위에 놓는 연산이다.

    여기서 검산 Modulo에 ‘순서를 없앤다’는 성질을 추가하지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘질문을 의존성 문제로 번역’ 단계의 출발점으로 사용합니다.

  2. 02

    질문을 의존성 문제로 번역

    구체적으로 ‘앞이나 뒤 어디서 시작해도 되는가’는 특정 Pi 계산에 Ci 외의 블록이 필요한지를 묻는다.

    여기서 검산 산술 범위와 데이터 의존성을 서로 다른 층으로 구분한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘CBC 반례’ 단계의 출발점으로 사용합니다.

  3. 03

    CBC 반례

    구체적으로 CBC에서 P5=Dk(C5) XOR C4이므로 C5만 갖고 끝에서 시작할 수 없고 C4도 필요하다.

    여기서 검산 첫 블록에는 이전 암호문 대신 IV가 필요함을 알고 있는지 본다.

    다음 단계로 여기서 확인한 내용을 다음 ‘모드 비교’ 단계의 출발점으로 사용합니다.

  4. 04

    모드 비교

    구체적으로 ECB는 독립적이고 CTR은 counter로 직접 접근할 수 있으므로 모드마다 답이 다르다.

    여기서 검산 CTR의 직접 접근을 modulo의 효과라고 쓰지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 모든 경우를 Modulo 하나로 설명한 문장은 Falsch다.

    여기서 검산 근거 문장에 Betriebsmodus 또는 chaining을 포함한다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch이다. Modulo는 값이 정해진 집합 안에 머물게 하는 산술 연산일 뿐, ciphertext block 사이의 의존관계를 없애지 않는다. 어느 위치부터 복호화할 수 있는지는 ECB, CBC, CTR 같은 Betriebsmodus와 chaining 구조에 달려 있다.

정답이 이렇게 되는 이유

정답은 Falsch다. Modulo는 계산값을 나머지 범위에 두는 산술 연산일 뿐, 암호문 블록 사이의 의존관계를 제거하지 않는다. 예를 들어 CBC에서 Pi를 얻으려면 CiC(i−1)가 모두 필요하다. 반면 CTR의 직접 접근 가능성은 block counter로 keystream을 독립 생성하는 모드 구조에서 생기므로, 시작 위치는 Modulo가 아니라 Betriebsmodus가 결정한다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 Modulo는 숫자를 순환시키므로 암호문도 원형처럼 어느 지점에서나 같은 방식으로 복호화할 수 있다.

왜 틀렸나 숫자 값의 순환과 블록 데이터의 연결 관계를 같은 것으로 취급했다. CBC처럼 이전 블록이 수식 입력이면 modulo 계산을 아무리 잘해도 누락 데이터를 만들 수 없다.

고쳐 말하면 Modulo는 값의 범위를 정하고, 어느 암호문 블록에서 시작할 수 있는지는 ECB·CBC·CTR의 의존 수식이 정한다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 CBC에서 평문 블록 P7을 복호화하려면 키 외에 어떤 암호문 블록이 필요한가?

정답 C7과 바로 이전 블록 C6가 필요하다. 식은 P7=Dk(C7) XOR C6이다.

이 문제의 오답 함정

  • mod n 계산이 나오면 모든 블록이 독립이라고 착각하기
  • ECB/CTR/CBC의 차이를 무시하기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    Modulo는 계산 규칙이고, block 간 순서 의존성은 mode가 만든다.

  2. 02 · 90초 닫힌책 답안

    Kryptographie에서 Modulo-Operation 때문에 ciphertext의 어느 위치, 즉 앞이나 뒤에서 복호화를 시작해도 상관없다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • CBC decrypt에서 P_i를 얻으려면 어떤 두 값이 필요한가?
    • CTR은 왜 encryption function만으로 병렬 처리할 수 있는가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: mod n 계산이 나오면 모든 블록이 독립이라고 착각하기

    복구 힌트: Modulo는 계산 규칙이고, block 간 순서 의존성은 mode가 만든다.

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch이다. Modulo는 값이 정해진 집합 안에 머물게 하는 산술 연산일 뿐, ciphertext block 사이의 의존관계를 없애지 않는다. 어느 위치부터 복호화할 수 있는지는 ECB, CBC, CTR 같은 Betriebsmodus와 chaining 구조에 달려 있다.

1.1 e) Vigenère 암호에서 알파벳이 26글자이고 키 길이가 9이면 키의 경우의 수가 정확히 26²×9개라는 주장이다. Wahr/Falsch? 기존 71문항 학습 번호 05 · 2점 Wahr/Falsch

1.1 e) · 실제 시험 원문

Vigenere-Chiffre: Wenn das Alphabet 26 Buchstaben hat, hat ein Schlüssel der Länge 9 genau $26^2 \cdot 9$ Möglichkeiten.

한국어로 요구사항만 풀어 읽기

Vigenère 암호에서 알파벳이 26글자이고 키 길이가 9이면 키의 경우의 수가 정확히 26²×9개라는 주장이다. Wahr/Falsch?

Modulo, 경우의 수, key space를 처음부터 계산하기Shift cipher, Vigenère cipher, frequency analysis

TERMS FOR 1.1 e)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01Plaintext Password

암호화나 password hashing 없이 원래 password를 그대로 저장한 상태입니다.

작은 예: DB가 유출되면 공격자가 추가 계산 없이 모든 password를 바로 읽을 수 있습니다.

02Modulo

어떤 수를 나눈 나머지만 보는 연산입니다. 시계가 12 다음 1로 돌아가는 것과 비슷합니다.

03Key space

가능한 모든 key의 집합과 그 개수입니다.

04Entropy

공격자가 key를 예측하기 어려운 정도를 bit 단위로 나타내는 관점입니다. 단순 길이와 항상 같지는 않습니다.

05Multiplication principle

독립적으로 고르는 각 자리의 경우의 수를 곱해 전체 경우의 수를 계산하는 원리입니다.

06Shift cipher

각 글자를 알파벳에서 같은 거리만큼 이동시키는 고전 암호입니다.

07Vigenère cipher

여러 shift 값을 key word에 따라 반복 적용하는 다중 알파벳 치환 암호입니다.

08Frequency analysis

언어에서 자주 나오는 글자와 패턴의 통계를 이용해 치환 관계를 추측하는 공격입니다.

ZERO-BASE MINI LESSON · 1.1 e)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

Vigenère-Chiffre는 알파벳 글자를 숫자로 바꾸고, 키의 각 글자가 정한 이동량을 평문 위치마다 반복 적용하는 고전 암호다. 예를 들어 A=0, B=1, ..., Z=25로 두면 각 위치에서 c=(p+k) mod 26을 계산한다.

키 길이가 9라는 말은 키를 이루는 독립적인 글자 칸이 9개라는 뜻이다. 각 칸에는 알파벳 26글자 중 하나를 넣을 수 있다.

경우의 수에서 연속된 독립 선택으로 완성품 하나를 만들 때는 곱의 법칙을 쓴다. 첫 칸 26가지 각각에 둘째 칸 26가지가 있고 이 선택이 아홉 번 이어지므로 26×26×...×26=26^9이다.

실제 시험 원문은 26^2·9를 주장한다. 이는 26^9와 전혀 다르며, 키 공간이 크다는 사실만으로 Vigenère가 현대적으로 안전해지는 것도 아니다. 반복 키는 주기와 언어 빈도를 노출할 수 있다.

2 · 일상 장면으로 먼저 잡기

서로 다른 26종류 스티커 중 하나를 골라 9칸짜리 이름표의 모든 칸을 채우는 장면을 생각한다. 완성된 이름표 하나는 아홉 칸 선택을 동시에 포함한다.

  • 9칸 이름표 길이 9인 Vigenère 키
  • 각 칸에 가능한 26종 스티커 각 키 위치의 알파벳 선택지
  • 모든 칸을 채운 하나의 이름표 하나의 완성된 키

비유의 경계 각 칸을 실제로 독립적이고 균등하게 고른다는 가정에서의 키 공간 계산이다. 사람이 단어를 키로 고르면 가능한 문자열은 형식상 26^9개여도 실제 분포는 훨씬 치우칠 수 있다.

3 · 눈으로 관계 읽기 9칸 키 공간
  1. 01

    _ _ _ _ _ _ _ _ _

  2. 02 각 칸

    각각 26가지 선택

  3. 03 곱의 법칙

    26×26×26×26×26×26×26×26×26

  4. 04 결과

    26^9=5,429,503,678,976

  5. 05 원문 값

    26^2·9=6,084 — 지수 구조가 아님

빈칸 하나마다 26을 한 번씩 곱하며, 9라는 수는 곱하는 횟수인 지수가 된다.

4 · TOY EXAMPLE

4글자 알파벳으로 길이 3 키 세기

주어진 것과 목표 알파벳이 {A,B,C,D} 네 글자이고 키 길이가 3인 축소판을 생각한다. 목표는 덧셈과 곱셈 중 어떤 규칙이 맞는지 직접 확인하는 것이다.

  1. 01
    첫 번째 칸에 A를 고정하고 나머지 두 칸의 조합 수를 센다.

    왜? 첫 선택 하나 아래에 몇 개의 완성 키가 매달리는지 보기 위해서다.

    중간 결과 둘째 칸 4가지와 셋째 칸 4가지가 결합해 4×4=16개다.

  2. 02
    첫 칸을 B, C, D로 바꿨을 때도 같은 수를 센다.

    왜? 첫 칸의 각 선택이 독립적으로 동일한 하위 조합을 갖기 때문이다.

    중간 결과 첫 칸 후보 네 개 각각에 16개가 있어 4×16=64개다.

  3. 03
    지수 형태로 정리한다.

    왜? 같은 수 4를 키 길이 3번 곱했기 때문이다.

    중간 결과 4^3=64이고 4^2·3=48이나 4·3=12가 아니다.

  4. 04
    원래 숫자로 치환한다.

    왜? 축소 예제의 구조를 시험 문항으로 옮기기 위해서다.

    중간 결과 알파벳 26개, 길이 9이면 26^9=5,429,503,678,976개다.

예제 결론 키 위치마다 선택지가 반복되므로 ‘알파벳 크기’를 ‘키 길이’만큼 거듭제곱한다.

실제 시험으로 옮기기 실제 주장 26^2·9=6,084는 정확한 26^9와 다르므로 Falsch를 선택한다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: Vigenère 암호에서 알파벳이 26글자이고 키 길이가 9이면 키의 경우의 수가 정확히 26²×9개라는 주장이다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 키 구조 그리기 → 한 칸의 선택지 → 곱의 법칙 적용 → 정확한 값 비교 → 판정 순서로 진행합니다. 마지막에는 ‘독립적인 9번의 선택이 연속되므로 `26×...×26=26^9`로 계산한다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • Alphabet 크기
    \[|\Sigma|=26\]
  • Key 길이
    \[\ell=9\]
  • 시험 문장의 주장
    \[26^2\cdot 9\]
최종적으로 구해야 하는 것
  • 최종 출력

    올바른 key space 크기를 구해 제시된 주장과 비교

  • 선택 이유

    9개 위치마다 26개 문자를 독립적으로 선택한다.

사용할 공식·판정 관계
  • 곱셈 원리
    \[|\mathcal{K}| = |\Sigma|^{\ell}\]

    각 자리의 선택지 수를 자리 수만큼 곱한다.

  • 이 문제에 대입
    \[|\mathcal{K}| = 26^9\]

    26을 9번 곱하므로 26²×9가 아니다.

  1. 01

    키 구조 그리기

    구체적으로 길이 9이므로 _ _ _ _ _ _ _ _ _ 아홉 칸을 그린다.

    여기서 검산 키 길이를 알파벳 개수와 바꾸지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘한 칸의 선택지’ 단계의 출발점으로 사용합니다.

  2. 02

    한 칸의 선택지

    구체적으로 각 위치에는 A부터 Z까지 독립적으로 26가지가 있다.

    여기서 검산 중복 글자를 금지한다는 조건이 없으므로 AAAAAAAAA도 유효한 문자열임을 확인한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘곱의 법칙 적용’ 단계의 출발점으로 사용합니다.

  3. 03

    곱의 법칙 적용

    구체적으로 완성 키 하나는 아홉 선택을 모두 포함하므로 26을 아홉 번 곱한다.

    여기서 검산 선택지 수를 더하거나 26^2까지만 곱하지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘정확한 값 비교’ 단계의 출발점으로 사용합니다.

  4. 04

    정확한 값 비교

    구체적으로 |K|=26^9=5,429,503,678,976, 원문의 26^2·9=6,084다.

    여기서 검산 26^9 계산은 반복 곱셈 또는 계산기로 재확인한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 두 값이 다르므로 Falsch다.

    여기서 검산 실제 시험 원문이 복기본의 26·9가 아니라 26^2·9임을 유지한다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch다. 길이 9인 키는 9개의 자리를 가지며 각 자리마다 26개를 독립적으로 고른다. 따라서 26을 아홉 번 곱한 26^9개다. 시험 원문은 복기본의 26·9가 아니라 26²·9였지만 어느 쪽도 26^9가 아니다.

정답이 이렇게 되는 이유

정답은 Falsch다. 길이 9인 키에는 독립적인 위치가 9개 있고 각 위치마다 26개 문자를 고를 수 있다. 따라서 곱의 법칙에 따라 키 공간은 26^9=5,429,503,678,976개다. 실제 시험에 적힌 26^2·9=6,084는 아홉 위치의 모든 조합을 세지 못한다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 26글자를 9칸에 배치하므로 26×9, 또는 문제처럼 26^2×9로 계산한다.

왜 틀렸나 각 위치의 후보 수를 세는 것과 모든 위치를 함께 채운 완성 조합의 수를 혼동했다.

고쳐 말하면 독립적인 9번의 선택이 연속되므로 26×...×26=26^9로 계산한다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 숫자 0~9를 중복 허용해 만드는 길이 4 PIN의 경우의 수는 몇 개인가?

정답 각 자리 10가지가 독립적으로 네 번 이어지므로 10^4=10,000개다.

이 문제의 오답 함정

  • key length를 alphabet size와 단순 곱하기
  • Vigenere key가 반복된다는 점과 key space 계산을 혼동하기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    길이 9 password의 경우 각 칸 선택지를 더하는가, 곱하는가?

  2. 02 · 90초 닫힌책 답안

    Vigenère 암호에서 알파벳이 26글자이고 키 길이가 9이면 키의 경우의 수가 정확히 26²×9개라는 주장이다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/3 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • alphabet size가 A이고 key length가 l이면 key space는 무엇인가?
    • Vigenere가 Shift-Chiffre보다 frequency analysis를 어렵게 만드는 이유는 무엇인가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: key length를 alphabet size와 단순 곱하기

    복구 힌트: 길이 9 password의 경우 각 칸 선택지를 더하는가, 곱하는가?

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch다. 길이 9인 키는 9개의 자리를 가지며 각 자리마다 26개를 독립적으로 고른다. 따라서 26을 아홉 번 곱한 26^9개다. 시험 원문은 복기본의 26·9가 아니라 26²·9였지만 어느 쪽도 26^9가 아니다.

1.1 f) Shift-Chiffre는 Häufigkeitsanalyse로 성공적으로 공격할 수 없다. Wahr/Falsch? 기존 71문항 학습 번호 06 · 2점 Wahr/Falsch

1.1 f) · 실제 시험 원문

Ein Shift-Chiffre kann nicht erfolgreich mit Häufigkeitsanalyse angegriffen werden.

한국어로 요구사항만 풀어 읽기

Shift-Chiffre는 Häufigkeitsanalyse로 성공적으로 공격할 수 없다. Wahr/Falsch?

Shift cipher, Vigenère cipher, frequency analysisModulo, 경우의 수, key space를 처음부터 계산하기

TERMS FOR 1.1 f)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01Shift cipher

각 글자를 알파벳에서 같은 거리만큼 이동시키는 고전 암호입니다.

02Vigenère cipher

여러 shift 값을 key word에 따라 반복 적용하는 다중 알파벳 치환 암호입니다.

03Frequency analysis

언어에서 자주 나오는 글자와 패턴의 통계를 이용해 치환 관계를 추측하는 공격입니다.

04Cryptanalysis

key를 모르는 상태에서 암호 구조나 구현의 약점을 분석해 정보를 얻는 작업입니다.

05Modulo

어떤 수를 나눈 나머지만 보는 연산입니다. 시계가 12 다음 1로 돌아가는 것과 비슷합니다.

06Key space

가능한 모든 key의 집합과 그 개수입니다.

07Entropy

공격자가 key를 예측하기 어려운 정도를 bit 단위로 나타내는 관점입니다. 단순 길이와 항상 같지는 않습니다.

08Multiplication principle

독립적으로 고르는 각 자리의 경우의 수를 곱해 전체 경우의 수를 계산하는 원리입니다.

ZERO-BASE MINI LESSON · 1.1 f)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

Shift-Chiffre는 알파벳을 A=0,...,Z=25로 놓고 모든 평문 글자에 같은 키 k를 더해 c=(p+k) mod 26으로 바꾸는 고전 암호다. 복호화는 같은 k를 빼는 것이다.

자연어의 글자는 균등하게 등장하지 않는다. 독일어에서는 E·N·I·S 등이 자주 나오고, EN, ER, CH 같은 조합과 단어 패턴도 편향되어 있다.

Shift 암호는 일대일 고정 치환이므로 평문의 같은 글자는 언제나 같은 암호문 글자가 된다. 따라서 글자 이름은 바뀌어도 각 글자의 등장 횟수와 통계적 모양은 보존된다.

Häufigkeitsanalyse(빈도분석)는 암호문에서 자주 나온 글자를 자연어의 흔한 글자와 대응시켜 키 후보를 얻고, 전체 문장이 자연스럽게 복호화되는지 검증한다. 알파벳 26개 Shift 키는 0~25의 26개뿐이어서 짧은 문장에서는 전수조사도 매우 쉽다.

2 · 일상 장면으로 먼저 잡기

학생들이 모두 같은 거리만큼 오른쪽 자리로 이동해도 원래 가장 사람이 많던 줄은 이동한 뒤에도 가장 사람이 많은 줄로 남는 교실을 떠올린다.

  • 모든 학생이 같은 칸 수만큼 이동 모든 글자에 동일한 shift key k 적용
  • 각 줄의 학생 수가 그대로 유지 글자 출현 빈도 보존
  • 가장 붐비던 줄을 보고 원래 위치 추정 암호문 최고 빈도 글자를 평문의 흔한 글자로 가정해 k 추정

비유의 경계 짧은 텍스트에서는 표본이 작아 가장 흔한 글자 추정이 빗나갈 수 있다. 그러나 키 후보가 26개뿐이므로 이는 공격을 불가능하게 만드는 보안 경계가 아니다.

3 · 눈으로 관계 읽기 빈도는 이동하지만 사라지지 않는다
  1. 01 평문 E

    4회 → key 2 → 암호문 G 4회

  2. 02 평문 A

    2회 → key 2 → 암호문 C 2회

  3. 03 공격자 추정

    G가 E였다고 보면 6−4=2

  4. 04 보조 공격

    가능한 key 0~25를 전부 출력 가능

각 행에서 출현 횟수가 보존되고 글자 라벨만 바뀐 것을 읽는다.

4 · TOY EXAMPLE

키 2가 남기는 빈도 흔적

주어진 것과 목표 평문 EEEEAA를 알파벳 Shift key k=2로 암호화했다고 하자. 목표는 공격자가 암호문만으로 이동량을 추정하는 과정을 보는 것이다.

  1. 01
    각 글자를 두 칸 이동한다.

    왜? Shift 암호의 고정 치환을 적용하기 위해서다.

    중간 결과 E→G, A→C이므로 암호문은 GGGGCC다.

  2. 02
    평문과 암호문의 빈도표를 만든다.

    왜? 치환이 출현 횟수를 숨기는지 확인하기 위해서다.

    중간 결과 평문 E:4, A:2가 암호문 G:4, C:2로 이름만 바뀌었다.

  3. 03
    공격자가 가장 잦은 G를 흔한 평문 E라고 가정한다.

    왜? 자연어 통계를 사용해 후보 키를 계산하기 위해서다.

    중간 결과 k=G(6)−E(4) mod 26=2를 얻는다.

  4. 04
    암호문 전체에서 2를 빼 검증한다.

    왜? 최고 빈도 하나의 우연한 추측인지 전체 결과로 확인해야 한다.

    중간 결과 GGGGCC→EEEEAA가 되어 후보 키가 일관되게 맞는다.

예제 결론 Shift는 빈도 분포를 제거하지 않고 알파벳 위에서 같은 거리만큼 옮길 뿐이다.

실제 시험으로 옮기기 ‘빈도분석으로 성공적으로 공격할 수 없다’는 부정문이므로 실제 답은 Falsch다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: Shift-Chiffre는 Häufigkeitsanalyse로 성공적으로 공격할 수 없다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 암호 종류 식별 → 보존되는 정보 찾기 → 공격 방법 연결 → 작은 키 공간 확인 → 판정 순서로 진행합니다. 마지막에는 ‘Shift 암호에서는 빈도 그래프가 좌우로 이동할 뿐 모양은 남으므로 빈도분석이 가능하다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 실제 시험이 준 상황·문장

    Shift-Chiffre는 Häufigkeitsanalyse로 성공적으로 공격할 수 없다. Wahr/Falsch?

  • 이 문항의 첫 출발점

    Shift-Chiffre는 모든 위치에 같은 k를 쓰는 monoalphabetic substitution의 특수한 경우다.

    위치마다 다른 키를 쓰는 Vigenère와 혼동하지 않는다.

최종적으로 구해야 하는 것
  • 마지막에 도달할 답안

    성공적으로 공격할 수 없다는 문장은 `Falsch`다.

  • 정답을 지탱하는 이유

    정답은 `Falsch`다. Shift-Chiffre는 모든 글자를 같은 양만큼 일대일로 이동시키므로 자연어의 상대적인 글자 빈도를 숨기지 못한다. 공격자는 암호문에서 가장 흔한 글자를 독일어의 E 같은 흔한 평문 글자와 맞춰 키를 추정하고 전체 복호문으로 검증할 수 있다. 게다가 키 후보가 26개뿐이라 brute force도 가능하다.

사용할 공식·판정 관계
  • 이 소문제만의 풀이 사슬

    암호 종류 식별 → 보존되는 정보 찾기 → 공격 방법 연결 → 작은 키 공간 확인 → 판정

    각 행에서 출현 횟수가 보존되고 글자 라벨만 바뀐 것을 읽는다.

  1. 01

    암호 종류 식별

    구체적으로 Shift-Chiffre는 모든 위치에 같은 k를 쓰는 monoalphabetic substitution의 특수한 경우다.

    여기서 검산 위치마다 다른 키를 쓰는 Vigenère와 혼동하지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘보존되는 정보 찾기’ 단계의 출발점으로 사용합니다.

  2. 02

    보존되는 정보 찾기

    구체적으로 평문 글자 하나는 항상 같은 암호문 글자로 가므로 출현 횟수와 반복 패턴이 보존된다.

    여기서 검산 글자 자체가 아니라 빈도의 모양이 보존된다고 표현한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘공격 방법 연결’ 단계의 출발점으로 사용합니다.

  3. 03

    공격 방법 연결

    구체적으로 암호문 최고 빈도 글자를 독일어 E 같은 흔한 평문 글자로 가정해 k=Cpos−Ppos mod 26을 계산한다.

    여기서 검산 후보 키로 전체 문장을 복호화해 검증하는 단계까지 포함한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘작은 키 공간 확인’ 단계의 출발점으로 사용합니다.

  4. 04

    작은 키 공간 확인

    구체적으로 빈도분석이 불안정한 짧은 문장도 26개 이동을 모두 시험할 수 있다.

    여기서 검산 짧은 텍스트가 자동으로 안전하다고 결론 내리지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 성공적으로 공격할 수 없다는 문장은 Falsch다.

    여기서 검산 부정문을 두 번 뒤집어 Wahr로 잘못 표시하지 않는다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch이다. Shift-Chiffre는 monoalphabetic substitution의 특수한 경우라 문자 빈도가 보존된다. 독일어의 E처럼 자주 나오는 문자를 ciphertext 빈도와 맞추면 key를 추정할 수 있고, key space도 작아 brute force가 쉽다.

정답이 이렇게 되는 이유

정답은 Falsch다. Shift-Chiffre는 모든 글자를 같은 양만큼 일대일로 이동시키므로 자연어의 상대적인 글자 빈도를 숨기지 못한다. 공격자는 암호문에서 가장 흔한 글자를 독일어의 E 같은 흔한 평문 글자와 맞춰 키를 추정하고 전체 복호문으로 검증할 수 있다. 게다가 키 후보가 26개뿐이라 brute force도 가능하다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 글자가 전부 다른 글자로 바뀌었으므로 원래 언어의 빈도 정보도 사라진다.

왜 틀렸나 문자 이름의 변화와 문자 출현 횟수의 변화를 혼동했다. 고정된 일대일 치환은 각 항목의 횟수를 그대로 보존한다.

고쳐 말하면 Shift 암호에서는 빈도 그래프가 좌우로 이동할 뿐 모양은 남으므로 빈도분석이 가능하다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 암호문에서 Q가 가장 자주 나오고 Q를 평문의 E로 추정한다. A=0일 때 후보 shift key는 얼마인가?

정답 Q=16, E=4이므로 k=(16−4) mod 26=12다. 이 키로 전체 문장을 복호화해 검증해야 한다.

이 문제의 오답 함정

  • 암호문 글자가 바뀌면 통계도 사라진다고 생각하기
  • Vigenere와 Shift의 차이를 흐리기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    Shift는 모든 문자를 같은 양만큼 민다. 빈도 순위가 바뀔까?

  2. 02 · 90초 닫힌책 답안

    Shift-Chiffre는 Häufigkeitsanalyse로 성공적으로 공격할 수 없다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • 독일어 plaintext에서 가장 흔한 문자가 ciphertext에서 H로 보이면 k를 어떻게 추정하는가?
    • Shift-Chiffre의 가능한 key 수는 왜 작다고 보는가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: 암호문 글자가 바뀌면 통계도 사라진다고 생각하기

    복구 힌트: Shift는 모든 문자를 같은 양만큼 민다. 빈도 순위가 바뀔까?

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch이다. Shift-Chiffre는 monoalphabetic substitution의 특수한 경우라 문자 빈도가 보존된다. 독일어의 E처럼 자주 나오는 문자를 ciphertext 빈도와 맞추면 key를 추정할 수 있고, key space도 작아 brute force가 쉽다.

1.1 g) MD5-Hashing-Algorithmus는 Kollisionen을 절대 만들지 않는다고 보장한다. Wahr/Falsch? 기존 71문항 학습 번호 07 · 2점 Wahr/Falsch

1.1 g) · 실제 시험 원문

Der MD5-Hashing-Algorithmus produziert garantiert keine Kollisionen.

한국어로 요구사항만 풀어 읽기

MD5-Hashing-Algorithmus는 Kollisionen을 절대 만들지 않는다고 보장한다. Wahr/Falsch?

Hash는 암호화가 아니라 고정 길이 지문이다

TERMS FOR 1.1 g)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01Cryptographic Hash

입력 데이터에서 고정 길이 digest를 계산하는 함수입니다. 수집 전후 hash가 같으면 그 사이 byte가 바뀌지 않았다는 강한 근거가 됩니다.

작은 예: 원본과 forensic image의 SHA-256을 기록하고 비교합니다.

02Hash function

임의 길이 입력을 고정 길이 digest로 바꾸는 단방향 함수입니다. 암호화처럼 복호화 key가 있는 기능이 아닙니다.

03Digest

Hash function의 고정 길이 출력으로, 데이터의 짧은 지문처럼 사용됩니다.

04Collision

서로 다른 두 입력이 같은 digest를 만드는 경우입니다. 출력 공간이 유한하므로 존재 자체는 피할 수 없습니다.

05Preimage resistance

주어진 digest를 만드는 입력을 현실적인 시간에 찾기 어려워야 한다는 성질입니다.

ZERO-BASE MINI LESSON · 1.1 g)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

Collision(충돌)은 서로 다른 두 입력 m1≠m2가 같은 해시값 H(m1)=H(m2)을 만드는 경우다. 동일한 파일을 두 번 해시해 같은 값이 나오는 것은 collision이라고 부르지 않는다.

n비트 해시의 출력은 2^n가지뿐이지만 입력 문자열은 그보다 훨씬 많다. 비둘기집 원리에 따라 고정 길이 해시에는 collision이 반드시 존재한다.

Kollisionsresistenz은 collision이 존재하지 않는다는 뜻이 아니라, 공격자가 현실적인 계산량으로 충돌하는 두 입력을 찾기 어려워야 한다는 보안 성질이다. 이상적인 n비트 해시도 birthday bound 때문에 대략 2^(n/2) 규모에서 generic collision을 기대한다.

MD5는 128비트 digest를 내며, 구조적 약점으로 실용적인 collision 생성 기법이 알려진 낡은 해시다. 공격자가 내용을 선택할 수 있는 디지털 서명·인증서·보안 무결성 용도로 MD5를 사용해서는 안 된다.

2 · 일상 장면으로 먼저 잡기

색깔이 8종뿐인 도장을 9명에게 하나씩 찍어 주는 행사장을 생각한다. 사람은 서로 달라도 적어도 두 명은 같은 색 도장을 받는다.

  • 서로 다른 9명 서로 다른 해시 입력
  • 가능한 8개 도장 색 3비트 해시의 8개 출력
  • 두 사람이 같은 색을 받음 서로 다른 입력의 collision

비유의 경계 단순 색 도장은 충돌한 두 사람을 쉽게 찾지만 실제 큰 해시 출력에서는 충돌의 존재와 찾기 쉬움이 다르다. MD5의 문제는 존재만이 아니라 알려진 공격으로 찾기도 너무 쉬워졌다는 점이다.

3 · 눈으로 관계 읽기 존재와 탐색 난이도 구분
  1. 01 Collision 조건

    m1≠m2 그리고 H(m1)=H(m2)

  2. 02 고정 출력

    MD5는 128비트, 즉 2^128개 출력

  3. 03 수학적 결론

    입력이 더 많으므로 collision은 반드시 존재

  4. 04 MD5 위험

    구조적 공격으로 collision resistance도 깨짐

‘존재하지 않음’과 ‘존재하지만 찾기 어려움’을 두 단계로 분리해 읽는다.

4 · TOY EXAMPLE

3비트 장난감 해시의 강제 collision

주어진 것과 목표 출력이 000부터 111까지 8개뿐인 장난감 해시 H에 서로 다른 입력 9개를 넣는다. 목표는 알고리즘 내용을 몰라도 collision 존재를 증명하는 것이다.

  1. 01
    3비트 출력의 가능한 개수를 계산한다.

    왜? 유한 출력 공간의 크기를 알아야 비둘기집 원리를 적용할 수 있다.

    중간 결과 2^3=8개의 digest 상자가 있다.

  2. 02
    서로 다른 입력 9개를 8개 출력 상자에 배치한다고 생각한다.

    왜? 각 입력은 정확히 한 digest를 갖기 때문이다.

    중간 결과 상자보다 입력이 하나 더 많다.

  3. 03
    비둘기집 원리를 적용한다.

    왜? 9개 물건을 8개 상자에 하나씩만 넣는 것은 불가능하다.

    중간 결과 적어도 한 출력에는 서로 다른 입력 두 개가 들어가 collision이 반드시 생긴다.

  4. 04
    MD5로 구조를 확대한다.

    왜? 출력 공간이 커져도 입력 가능성이 더 많다는 구조는 같기 때문이다.

    중간 결과 MD5에도 collision은 수학적으로 존재하며, 더구나 실제 생성 공격도 알려져 있다.

예제 결론 고정 길이 해시가 ‘collision이 전혀 없음’을 보장하는 것은 불가능하고, MD5는 찾기 어려움이라는 실용적 목표도 충족하지 못한다.

실제 시험으로 옮기기 실제 문장의 garantiert keine Kollisionen은 존재 자체를 부정하므로 곧바로 Falsch다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

  • Vorlesung/03 Symmetrische Kryptographie.pdf p.36, p.38, p.39 · Hash 정의·핵심 보안 성질·응용 연결 개념 강의 열기

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: MD5-Hashing-Algorithmus는 Kollisionen을 절대 만들지 않는다고 보장한다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 Collision 정의 → 유한 출력 확인 → 존재 판정 → MD5의 추가 약점 → 판정 순서로 진행합니다. 마지막에는 ‘모든 고정 길이 해시에는 collision이 존재하며, MD5는 그 충돌을 찾는 공격까지 실용적으로 알려져 있다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 실제 시험이 준 상황·문장

    MD5-Hashing-Algorithmus는 Kollisionen을 절대 만들지 않는다고 보장한다. Wahr/Falsch?

  • 이 문항의 첫 출발점

    서로 다른 입력 둘이 같은 digest를 만들 때 collision이다.

    `m1≠m2` 조건을 빠뜨리지 않는다.

최종적으로 구해야 하는 것
  • 마지막에 도달할 답안

    MD5가 collision을 절대 만들지 않는다는 주장은 `Falsch`다.

  • 정답을 지탱하는 이유

    정답은 `Falsch`다. MD5는 임의 길이 입력을 128비트의 유한 출력 공간으로 매핑하므로 비둘기집 원리상 collision이 반드시 존재한다. 안전한 해시도 collision이 전혀 없는 것이 아니라 찾기 어려워야 한다. MD5는 알려진 실용적 collision 공격 때문에 이 collision resistance마저 깨졌으므로 암호학적 보안 용도에 부적합하다.

사용할 공식·판정 관계
  • 이 소문제만의 풀이 사슬

    Collision 정의 → 유한 출력 확인 → 존재 판정 → MD5의 추가 약점 → 판정

    ‘존재하지 않음’과 ‘존재하지만 찾기 어려움’을 두 단계로 분리해 읽는다.

  1. 01

    Collision 정의

    구체적으로 서로 다른 입력 둘이 같은 digest를 만들 때 collision이다.

    여기서 검산 m1≠m2 조건을 빠뜨리지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘유한 출력 확인’ 단계의 출발점으로 사용합니다.

  2. 02

    유한 출력 확인

    구체적으로 MD5는 임의 길이 입력을 128비트의 2^128개 가능한 출력으로 보낸다.

    여기서 검산 128비트는 입력 길이가 아니라 출력 길이다.

    다음 단계로 여기서 확인한 내용을 다음 ‘존재 판정’ 단계의 출발점으로 사용합니다.

  3. 03

    존재 판정

    구체적으로 입력 가능성이 출력보다 많으므로 비둘기집 원리상 collision은 반드시 존재한다.

    여기서 검산 현대 해시도 collision 자체는 존재한다는 점을 유지한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘MD5의 추가 약점’ 단계의 출발점으로 사용합니다.

  4. 04

    MD5의 추가 약점

    구체적으로 MD5는 collision을 현실적으로 찾기 어렵게 하는 collision resistance도 이미 제공하지 못한다.

    여기서 검산 단지 ‘오래된 알고리즘’이라고만 하지 말고 깨진 보안 성질을 이름 붙인다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 MD5가 collision을 절대 만들지 않는다는 주장은 Falsch다.

    여기서 검산 garantiert라는 절대 표현을 확인한다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch이다. 고정 길이 hash function은 수학적으로 collision 가능성이 있고, 보안 목표는 collision을 찾기 어렵게 하는 Kollisionsresistenz이다. MD5는 이미 약한 hash로 다뤄지며 collision 관련 공격 벡터로 언급된다.

정답이 이렇게 되는 이유

정답은 Falsch다. MD5는 임의 길이 입력을 128비트의 유한 출력 공간으로 매핑하므로 비둘기집 원리상 collision이 반드시 존재한다. 안전한 해시도 collision이 전혀 없는 것이 아니라 찾기 어려워야 한다. MD5는 알려진 실용적 collision 공격 때문에 이 collision resistance마저 깨졌으므로 암호학적 보안 용도에 부적합하다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 해시값이 매우 길고 무작위처럼 보여서 서로 다른 입력은 절대로 같은 MD5를 만들 수 없다.

왜 틀렸나 확률이 작아 보이는 것과 수학적으로 불가능한 것을 혼동했고, 무한한 입력과 유한 출력의 크기 차이를 무시했다.

고쳐 말하면 모든 고정 길이 해시에는 collision이 존재하며, MD5는 그 충돌을 찾는 공격까지 실용적으로 알려져 있다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 256비트의 이상적인 해시에서 generic birthday collision 탐색 규모는 대략 몇 번인가?

정답 대략 2^128번이다. 이것은 collision이 없다는 뜻이 아니라 일반적인 탐색으로는 매우 찾기 어렵다는 뜻이다.

이 문제의 오답 함정

  • collision resistance를 collision-free와 동일시하기
  • MD5를 현대 안전 hash로 취급하기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    Hash output은 fixed length이다. 입력 공간과 출력 공간 크기를 비교해 보라.

  2. 02 · 90초 닫힌책 답안

    MD5-Hashing-Algorithmus는 Kollisionen을 절대 만들지 않는다고 보장한다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • 왜 kollisionsfreie Hashfunktion은 수학적으로 존재하기 어려운가?
    • TLS 강의에서 MD5가 어떤 문제 맥락으로 등장했는가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: collision resistance를 collision-free와 동일시하기

    복구 힌트: Hash output은 fixed length이다. 입력 공간과 출력 공간 크기를 비교해 보라.

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch이다. 고정 길이 hash function은 수학적으로 collision 가능성이 있고, 보안 목표는 collision을 찾기 어렵게 하는 Kollisionsresistenz이다. MD5는 이미 약한 hash로 다뤄지며 collision 관련 공격 벡터로 언급된다.

1.1 h) TLS(HTTPS)는 E-Commerce transactions를 빠르고 절대 안전하게 유지하기 위해 assymetrische Kryptographie만 사용한다. Wahr/Falsch? 기존 71문항 학습 번호 08 · 2점 Wahr/Falsch

1.1 h) · 실제 시험 원문

TLS (HTTPS) benutzt nur assymetrische Kryptographie, damit E-Commerce Transaktionen schnell und absolut sicher bleiben.

한국어로 요구사항만 풀어 읽기

TLS(HTTPS)는 E-Commerce transactions를 빠르고 절대 안전하게 유지하기 위해 assymetrische Kryptographie만 사용한다. Wahr/Falsch?

보안이란 무엇을 지키는 것인가TLS가 대칭키와 공개키를 함께 사용하는 이유공개키 암호와 RSA·ElGamal의 수학적 기반

TERMS FOR 1.1 h)

이 소문제의 중요한 용어부터 이해하기

전문 용어를 알고 있다고 가정하지 않습니다. 아래 정의의 굵은 용어를 문제 문장 속 같은 단어와 바꾸어 읽은 뒤 풀이로 넘어가세요.

01HTTPS / TLS

Browser와 server 사이 전송 내용을 암호화하고 변조를 탐지하며 보통 server를 인증하는 통신 보호입니다.

작은 예: HTTPS는 네트워크 도청을 줄이지만 URL이 browser history나 server log에 남는 문제까지 없애지는 않습니다.

02Asset

공격자로부터 지키려는 대상입니다. 파일, 비밀번호, 서비스 가용성, 사람의 개인정보가 모두 asset이 될 수 있습니다.

03Confidentiality

허가받지 않은 사람이 내용을 읽지 못하게 하는 기밀성입니다.

04Integrity

데이터나 시스템이 허가 없이 바뀌지 않았음을 보장하려는 무결성입니다.

05Availability

정당한 사용자가 필요할 때 서비스와 데이터에 접근할 수 있는 가용성입니다.

06TLS

Browser와 server 사이 통신의 기밀성·무결성 및 server 인증을 제공하는 protocol입니다.

07Hybrid encryption

공개키 기법으로 key를 합의하거나 보호하고, 실제 대량 데이터는 빠른 대칭키 암호로 처리하는 조합입니다.

08Session key

한 연결이나 제한된 기간 동안 실제 application data 암호화에 사용하는 대칭 key입니다.

ZERO-BASE MINI LESSON · 1.1 h)

이 소문제만을 위한 0부터 시작하는 미니 강의

아래 설명은 이 과목의 선행 지식을 가정하지 않습니다. 개념 → 비유의 대응 → 눈으로 읽는 구조 → 작은 예제 순서로 읽은 뒤 실제 시험 풀이로 넘어가세요.

1 · 먼저 알아야 할 개념

대칭 암호(symmetrische Kryptographie)는 통신 양쪽이 같은 비밀키를 사용한다. AES-GCM이나 ChaCha20-Poly1305 같은 방식은 많은 데이터를 빠르게 암호화하고 변조도 검출하는 AEAD를 제공하지만, 처음 만난 양쪽이 비밀키를 안전하게 합의해야 한다.

비대칭 암호(asymmetrische Kryptographie)는 공개키와 개인키 쌍을 사용한다. 디지털 서명으로 서버를 인증하거나 (EC)DHE 같은 공개키 기반 절차로 세션 비밀을 합의하기 좋지만, 대량 데이터를 모두 처리하기에는 대칭 암호보다 비싸다.

TLS는 두 종류를 결합한 hybrid protocol이다. handshake에서 인증서·서명과 키 합의를 사용해 세션키를 만들고, 그 뒤 HTTP 요청·응답 같은 application data는 그 대칭 세션키로 보호한다.

HTTPS의 자물쇠는 주로 브라우저와 접속한 도메인 서버 사이 전송 구간의 기밀성·무결성과 서버 인증을 뜻한다. 피싱, 서버 해킹, XSS·SQL injection, 사용자의 잘못된 송금까지 막아 E-Commerce 전체를 ‘절대 안전’하게 보장하지 않는다.

2 · 일상 장면으로 먼저 잡기

호텔 프런트에서 여권과 직원 신분을 확인한 뒤 투숙객 전용 전자 손목띠를 발급하고, 이후 수영장·식당에서는 매번 여권을 검사하지 않고 빠른 손목띠를 쓰는 장면을 생각한다.

  • 프런트의 신분 확인 인증서와 디지털 서명에 의한 서버 인증
  • 새 전자 손목띠 발급 절차 handshake의 키 합의와 세션키 파생
  • 시설에서 빠르게 쓰는 손목띠 대칭 세션키로 application data를 보호
  • 호텔 밖 사기 상점은 막지 못함 TLS가 endpoint compromise·phishing·웹 취약점을 해결하지 못하는 한계

비유의 경계 TLS handshake의 키 합의는 손목띠처럼 중앙에서 단순 전달되는 것만은 아니며 프로토콜 버전에 따라 세부 방식이 다르다. 비유는 역할 분담을 보여 줄 뿐 인증서 검증과 forward secrecy의 수학을 대신하지 않는다.

3 · 눈으로 관계 읽기 TLS의 하이브리드 층
  1. 01 1. 인증

    인증서·digital signature로 서버 신원 확인

  2. 02 2. 키 합의

    (EC)DHE 등으로 공유 비밀과 traffic key 파생

  3. 03 3. 데이터

    대칭 AEAD로 HTTP payload를 빠르게 보호

  4. 04 보호 밖

    피싱·감염된 endpoint·웹 애플리케이션 버그

위에서 신뢰와 키를 설정한 뒤 아래에서 대칭키로 실제 데이터를 운반한다고 읽는다.

4 · TOY EXAMPLE

온라인 서점 연결에서 역할 나누기

주어진 것과 목표 브라우저가 book.example에 접속해 페이지 3개와 결제 요청 1개를 전송한다고 하자. 목표는 어떤 단계가 비대칭이고 어떤 단계가 대칭인지 분류하는 것이다.

  1. 01
    서버가 보낸 인증서 체인과 도메인 이름, 유효기간, 서명을 브라우저가 검사한다.

    왜? 받은 공개키가 접속하려는 도메인의 서버와 연결된 것인지 인증해야 한다.

    중간 결과 공개키 기반 서버 인증이 이루어진다.

  2. 02
    양쪽이 ephemeral (EC)DHE 값을 교환하고 handshake transcript의 서명을 확인한다.

    왜? 도청자에게 세션 비밀을 직접 보내지 않고 공유 비밀을 합의하고 서버가 대화를 인증하게 하기 위해서다.

    중간 결과 양쪽만 계산할 수 있는 비밀에서 대칭 traffic key들이 파생된다.

  3. 03
    페이지와 결제 HTTP 데이터를 AES-GCM 같은 대칭 AEAD로 보호한다.

    왜? 대량 application data를 빠르게 암호화하면서 변조도 검출하기 위해서다.

    중간 결과 여러 요청·응답은 비대칭 연산만으로 처리되지 않는다.

  4. 04
    서점 서버 자체에 SQL injection이 있다고 가정한다.

    왜? TLS의 보호 범위를 E-Commerce 전체 보안과 구분하기 위해서다.

    중간 결과 전송은 안전해도 서버 애플리케이션 결함으로 데이터가 유출될 수 있어 ‘절대 안전’은 성립하지 않는다.

예제 결론 TLS의 속도와 보안은 비대칭과 대칭 기술의 역할 분담에서 나오며, 보호 범위에는 명확한 한계가 있다.

실제 시험으로 옮기기 원문의 nur asymmetrischeabsolut sicher가 모두 틀리므로 Falsch다.

개념 근거와 더 깊은 설명

시험 문구·배점은 실제 시험 PDF를 따르고, 위 개념 설명은 연결된 강의 자료의 해당 페이지를 기준으로 구성했습니다.

  • Vorlesung/02_Grundlagen_Krypto_RMU_v2.pdf p.9 · Alice·Bob·Eve 통신 장면과 기밀성의 기본 등장인물 연결 개념 강의 열기
  • Vorlesung/04 Asymmetrische Kryptographie.pdf p.12, p.17, p.22 · RSA key generation·ElGamal·digital signature 연결 개념 강의 열기

이번 문제는 이 단계로 풀어야 했습니다

먼저 문제에서 직접 주어진 값과 최종적으로 구할 값을 분리합니다. 그다음 각 값·용어·경로를 왜 선택했는지 확인하며, 앞 단계의 중간 결과를 다음 단계의 입력으로 사용합니다.

START HERE

먼저 문제를 식과 조건으로 정리하기

계산을 시작하기 전에 주어진 것구할 것을 분리합니다. 그다음 아래 관계식을 위에서 아래로 사용하면, 숫자가 어디서 왔는지 놓치지 않을 수 있습니다.

강사가 문제의 요구사항을 쉬운 말로 바꾸면

시험 문장이 요구하는 것: TLS(HTTPS)는 E-Commerce transactions를 빠르고 절대 안전하게 유지하기 위해 assymetrische Kryptographie만 사용한다. Wahr/Falsch?

이 문제의 풀이 전략: 이 소문제에서는 함정 단어 표시 → 비대칭 역할 → 대칭 역할 → 보호 범위 검토 → 판정 순서로 진행합니다. 마지막에는 ‘TLS는 공개키 기반 인증·키 합의와 대칭 AEAD 데이터 보호를 결합하며, 자물쇠는 E-Commerce 전체의 절대 안전 보증이 아니다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 실제 시험이 준 상황·문장

    TLS(HTTPS)는 E-Commerce transactions를 빠르고 절대 안전하게 유지하기 위해 assymetrische Kryptographie만 사용한다. Wahr/Falsch?

  • 이 문항의 첫 출발점

    원문에서 `nur`와 `absolut sicher` 두 절대 표현을 표시한다.

    두 주장 중 하나만 반박해도 거짓이지만 둘 다 설명할 수 있어야 한다.

최종적으로 구해야 하는 것
  • 마지막에 도달할 답안

    TLS는 asymmetric-only가 아닌 hybrid이며 절대 안전하지 않으므로 `Falsch`다.

  • 정답을 지탱하는 이유

    정답은 `Falsch`다. TLS는 비대칭 기술만 쓰지 않고, 인증과 키 합의에는 공개키 기반 기술을 사용한 뒤 실제 application data는 빠른 대칭 세션키로 보호하는 하이브리드 프로토콜이다. 또한 TLS는 통신 구간의 기밀성·무결성과 서버 인증을 제공할 뿐 피싱, 해킹된 endpoint, 웹 애플리케이션 취약점까지 제거하지 않는다. 따라서 ‘빠르기 때문에 비대칭만 사용’과 ‘절대 안전’이 모두 틀렸다.

사용할 공식·판정 관계
  • 이 소문제만의 풀이 사슬

    함정 단어 표시 → 비대칭 역할 → 대칭 역할 → 보호 범위 검토 → 판정

    위에서 신뢰와 키를 설정한 뒤 아래에서 대칭키로 실제 데이터를 운반한다고 읽는다.

  1. 01

    함정 단어 표시

    구체적으로 원문에서 nurabsolut sicher 두 절대 표현을 표시한다.

    여기서 검산 두 주장 중 하나만 반박해도 거짓이지만 둘 다 설명할 수 있어야 한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘비대칭 역할’ 단계의 출발점으로 사용합니다.

  2. 02

    비대칭 역할

    구체적으로 TLS handshake에서 인증서 서명 검증과 공개키 기반 키 합의·인증이 사용된다.

    여기서 검산 현대 TLS가 서버 공개키로 모든 payload를 직접 암호화한다고 쓰지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘대칭 역할’ 단계의 출발점으로 사용합니다.

  3. 03

    대칭 역할

    구체적으로 합의한 세션키로 AES-GCM 등 대칭 AEAD가 실제 HTTP application data를 보호한다.

    여기서 검산 속도상의 핵심이 대칭 데이터 암호화임을 명시한다.

    다음 단계로 여기서 확인한 내용을 다음 ‘보호 범위 검토’ 단계의 출발점으로 사용합니다.

  4. 04

    보호 범위 검토

    구체적으로 TLS는 전송 채널을 보호하지만 피싱, compromised endpoint, SQL injection 같은 위험은 남는다.

    여기서 검산 유효한 인증서가 사업자의 정직성을 보증한다고 쓰지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘판정’ 단계의 출발점으로 사용합니다.

  5. 05

    판정

    구체적으로 TLS는 asymmetric-only가 아닌 hybrid이며 절대 안전하지 않으므로 Falsch다.

    여기서 검산 하이브리드라는 핵심 용어를 포함한다.

    다음 단계로 앞 단계의 결과를 모아 채점 가능한 최종 답안으로 정리합니다.

정답과 해설

정답은 Falsch이다. TLS는 key exchange/authentication/signature에 asymmetric crypto를 쓰고, 실제 payload 보호에는 대칭 암호와 MAC/AEAD를 쓰는 hybrid 구조이다. 또한 어떤 현실 프로토콜도 'absolut sicher'라고 말하지 않는다.

정답이 이렇게 되는 이유

정답은 Falsch다. TLS는 비대칭 기술만 쓰지 않고, 인증과 키 합의에는 공개키 기반 기술을 사용한 뒤 실제 application data는 빠른 대칭 세션키로 보호하는 하이브리드 프로토콜이다. 또한 TLS는 통신 구간의 기밀성·무결성과 서버 인증을 제공할 뿐 피싱, 해킹된 endpoint, 웹 애플리케이션 취약점까지 제거하지 않는다. 따라서 ‘빠르기 때문에 비대칭만 사용’과 ‘절대 안전’이 모두 틀렸다.

초보자가 가장 자주 뒤집는 지점

잘못된 생각 HTTPS 자물쇠가 보이면 공개키로 웹 페이지 전체를 암호화하며 사이트와 거래도 모두 안전하다.

왜 틀렸나 handshake의 비대칭 역할과 payload의 대칭 역할을 합쳤고, 안전한 전송 채널을 안전한 사업자·서버 코드와 동일시했다.

고쳐 말하면 TLS는 공개키 기반 인증·키 합의와 대칭 AEAD 데이터 보호를 결합하며, 자물쇠는 E-Commerce 전체의 절대 안전 보증이 아니다.

한 문제만 더: 개념이 정말 연결됐는지 확인

질문 TLS handshake가 끝난 뒤 5MB 파일을 전송할 때 파일 내용을 주로 보호하는 것은 비대칭 암호인가 대칭 암호인가?

정답 협상된 traffic key를 사용하는 대칭 AEAD다. 비대칭 기술은 주로 handshake의 인증과 키 합의에 쓰인다.

이 문제의 오답 함정

  • certificate/RSA가 보인다고 모든 데이터가 RSA로 암호화된다고 착각하기
  • 빠름과 절대 안전을 같은 말로 취급하기
ACTIVE RECALL

이 소문제를 점수로 바꾸는 6개의 작은 훈련

해설을 닫은 상태에서 1번부터 수행하세요. 정답을 읽은 직후보다 직접 문제 지도를 만들고 답을 꺼낸 뒤 채점할 때 기억이 더 정확해집니다. 작성 내용과 복습 판정은 이 브라우저에 자동 저장됩니다.

  1. 01 · 30초 문제 지도

    해설을 보지 말고 주어진 정보 → 구할 것 → 사용할 공식·판정 관계를 한 줄씩 복원하세요.

    막힐 때만 첫 단서 열기

    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256에서 RSA와 AES가 각각 맡는 역할을 나눠 보라.

  2. 02 · 90초 닫힌책 답안

    TLS(HTTPS)는 E-Commerce transactions를 빠르고 절대 안전하게 유지하기 위해 assymetrische Kryptographie만 사용한다. Wahr/Falsch?

    정답 문장만 말하지 말고 근거·중간값·메시지 흐름 중 이 문항에 필요한 것을 빈 종이에 남기세요.

  3. 03 · 부분점수 자가채점

    작성한 뒤에만 아래 기준을 열고, 실제로 쓴 항목만 체크하세요.

    답안 작성 후 채점 기준 열기

    답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • TLS handshake 이후 payload encryption에 쓰는 key는 어떻게 생기는가?
    • TLS가 제공하는 Schutzziele 세 가지는 무엇인가?
    • 원문의 판정을 반대로 만들 수 있는 최소 조건 변경 하나를 제시하고, 바뀐 문장이 정의의 어느 조건을 만족하는지 설명하세요.

    조건 변형: 원문의 강한 표현(예: muss, immer, vollständig)을 조건부 표현으로 하나 고쳐 쓰고, 그 변경 뒤에는 판정이 왜 달라지거나 유지되는지 반례와 함께 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: certificate/RSA가 보인다고 모든 데이터가 RSA로 암호화된다고 착각하기

    복구 힌트: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256에서 RSA와 AES가 각각 맡는 역할을 나눠 보라.

    오답의 첫 잘못된 전제를 한 줄로 지우고, 올바른 조건과 결론을 두 줄로 다시 쓰세요.

  6. 06 · 확신도 보정·다음 복습 결정

    채점 전 예상과 실제 채점 결과가 달랐는지 확인한 뒤 상태를 남기세요. ‘숙달’은 근거와 중간 과정까지 무힌트로 재현했을 때만 선택합니다.

    현재 확신도
    아직 복습 판정을 남기지 않았습니다.
모든 훈련을 마친 뒤 핵심 정답 다시 확인

정답은 Falsch이다. TLS는 key exchange/authentication/signature에 asymmetric crypto를 쓰고, 실제 payload 보호에는 대칭 암호와 MAC/AEAD를 쓰는 hybrid 구조이다. 또한 어떤 현실 프로토콜도 'absolut sicher'라고 말하지 않는다.

ACTIVE RECALL

이 페이지를 닫기 전 확인

  1. Padding이 언제 필요한지 한 문장으로 말할 수 있나요?
  2. OTP가 안전하려면 어떤 조건이 필요한가요?
  3. TLS가 대칭키와 비대칭키를 함께 쓰는 이유는 무엇인가요?