CSS Tutor Study Hub 메인으로

Computersystemsicherheit 2025/26

1.2. Angreifermodelle

실제 시험 Abschnitt 1.2 · 3개 학습 항목 초보 해설

1. Kryptographie · 실제 시험 Abschnitt 1.2

1.2. Angreifermodelle

IND-CCA, IND-CPA와 두 기초 공격자 모델을 시험지의 1–3번 순서로 학습합니다.

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

ACTUAL EXAM · VERBATIM TRANSCRIPT

시험지 원문 1:1 전사

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

1.2. Angreifermodelle (8 Punkte)

1. Beschreiben Sie das Angreifermodell IND-CCA (Chosen Ciphertext Attack). (2 Punkte)

2. Was unterscheidet den IND-CCA (Chosen Ciphertext Attack) vom IND-CPA (Chosen Plaintext Attack)? (2 Punkte)

3. Welche zwei anderen Angreifermodelle als IND-CCA und IND-CPA kennen Sie? Beschreiben Sie diese kurz. (4 Punkte)

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

VISUAL MAP

Challenge game의 순서 왼쪽에서 오른쪽으로 읽은 뒤 아래 실제 소문제에서 같은 순서를 반복합니다.
  1. 01 공격자 권한
  2. 02 m0·m1 제출
  3. 03 c* 수신
  4. 04 허용 질의
  5. 05 b 추측

FIXED SOLVING METHOD

이 묶음의 고정 풀이 순서

  1. 공격자가 처음부터 가진 정보와 oracle을 적습니다.
  2. 같은 길이의 두 메시지 m0, m1을 둡니다.
  3. Challenger가 무작위 b로 c*=Enc(k,mb)를 만드는 과정을 씁니다.
  4. Challenge 전후에 허용되는 질의와 금지되는 질의를 구분합니다.
  5. 성공 조건을 무작위 추측 1/2보다 유의미하게 높은 확률로 설명합니다.

ZERO-BASE CONCEPT LESSONS

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

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

기초 개념 01

공격자 모델과 oracle을 게임처럼 읽는 법

먼저 장면으로 이해해 봅시다. 시험장에서 계산기는 허용하지만 인터넷은 금지하는 것처럼, 공격자에게 허용되는 도구를 정확히 적어야 난이도와 성공 조건을 말할 수 있다.

이제 전문 용어를 붙이면 다음과 같습니다. Attacker model은(는) 공격자가 무엇을 보고, 선택하고, 질문하고, 바꿀 수 있는지를 정확히 정한 가정입니다. Oracle은(는) 보안 게임에서 공격자가 정해진 형식으로 질의하고 답을 받을 수 있는 가상 인터페이스입니다. Challenge은(는) 공격자가 구별하거나 위조해야 하는 중심 시험값입니다. Advantage은(는) 공격자의 성공 확률이 무작위 추측보다 얼마나 높은지를 나타내는 값입니다.

실제 시스템에서는 이렇게 작동합니다. 공격자 모델(Angreifermodell)은 공격자가 어떤 정보를 보고 어떤 기능을 사용할 수 있는지 정한 규칙이다. Oracle은 공격자가 질문을 보내면 정해진 계산 결과를 돌려주는 가상의 상자다. Encryption oracle은 공격자가 고른 평문을 암호화해 주고, decryption oracle은 고른 암호문을 복호화해 준다. 보안 정의는 강한 공격자에게 이런 기능을 허용해도 목표를 달성하지 못하는지 시험한다.

  1. 공격자가 처음에 알고 있는 정보를 적는다.
  2. 어떤 oracle에 언제 질의할 수 있는지 적는다.
  3. Challenger가 숨긴 값을 포함한 challenge를 만든다.
  4. 금지된 질의와 공격자의 최종 성공 조건을 적는다.

여기서 넘지 말아야 할 경계: 공격자가 ‘강하다’라고만 쓰면 정의가 되지 않는다. 질의 가능 대상, 시점, 금지 조건을 구체적으로 써야 한다.

06. IND-CPA·IND-CCA 독립 강의 →

기초 개념 02

IND-CPA와 IND-CCA를 0부터 구분하기

먼저 장면으로 이해해 봅시다. 두 상자 중 하나를 잠가 보여 주고 어느 상자인지 맞히는 게임이다. CCA에서는 다른 잠긴 상자를 열어 달라고 물을 수 있지만 바로 시험에 나온 상자 c*를 열어 달라고 할 수는 없다.

이제 전문 용어를 붙이면 다음과 같습니다. CPA은(는) Chosen-Plaintext Attack입니다. 공격자가 고른 plaintext의 암호문을 받아볼 수 있습니다. CCA은(는) Chosen-Ciphertext Attack입니다. 제한 아래 공격자가 고른 ciphertext의 복호 결과까지 질의할 수 있습니다. IND은(는) Indistinguishability입니다. 두 후보 plaintext 중 어느 것이 암호화됐는지 구별하기 어려워야 한다는 목표입니다. Challenge ciphertext은(는) 보안 게임에서 숨겨진 bit에 따라 두 후보 중 하나를 암호화한 시험 암호문입니다.

실제 시스템에서는 이렇게 작동합니다. IND는 indistinguishability, 즉 두 메시지 중 어느 것이 암호화됐는지 구별하기 어렵다는 뜻이다. 공격자는 같은 길이의 메시지 m0와 m1을 제출하고 Challenger는 무작위 bit b를 골라 mb의 암호문 c*를 준다. 공격자가 b를 1/2보다 의미 있게 높은 확률로 맞히지 못하면 안전하다고 본다. CPA에서는 encryption oracle을, CCA에서는 decryption oracle까지 허용한다.

  1. m0와 m1의 길이를 같게 해 길이만으로 답을 맞히지 못하게 한다.
  2. Challenger가 b를 무작위로 선택하고 c*=Enc(mb)를 만든다.
  3. IND-CCA2에서는 challenge 이후에도 다른 암호문의 복호화를 질의할 수 있다.
  4. c* 자체의 복호화는 금지하고 마지막에 b'를 추측한다.

여기서 넘지 말아야 할 경계: CPA와 CCA의 차이는 평문 종류가 아니라 공격자가 사용할 수 있는 oracle의 차이다.

06. IND-CPA·IND-CCA 독립 강의 →

기초 개념 03

Ciphertext-only와 Known-plaintext 공격

먼저 장면으로 이해해 봅시다. COA는 자물쇠로 잠긴 상자만 보는 상황, KPA는 몇 개 상자의 잠그기 전 내용과 잠근 뒤 모습을 함께 본 상황, CPA는 원하는 물건을 골라 상자에 넣어 잠근 결과를 요청할 수 있는 상황이다.

이제 전문 용어를 붙이면 다음과 같습니다. Ciphertext-only attack은(는) 공격자가 ciphertext들만 알고 분석하는 공격 상황입니다. Known-plaintext attack은(는) 일부 plaintext와 그에 대응하는 ciphertext 쌍을 공격자가 알고 있는 상황입니다. Chosen-plaintext attack은(는) 공격자가 plaintext를 직접 골라 그 암호문을 받을 수 있는 더 강한 상황입니다. Known pair은(는) 서로 대응하는 plaintext와 ciphertext 한 쌍입니다.

실제 시스템에서는 이렇게 작동합니다. Ciphertext-only attack(COA)은 공격자가 암호문만 가지고 평문이나 키에 대한 정보를 찾는 모델이다. Known-plaintext attack(KPA)은 일부 평문과 그에 대응하는 암호문 쌍을 이미 알고 있는 모델이다. 공격자가 원하는 평문을 직접 고를 수 있는 CPA는 KPA보다 더 큰 능력을 준다.

  1. 공격자가 평문을 전혀 모르는지 일부 쌍을 아는지 구분한다.
  2. 알려진 평문을 공격자가 선택했는지 우연히 관찰했는지 구분한다.
  3. 더 많은 능력을 가진 모델을 견디면 보통 더 약한 모델도 견딘다는 방향을 확인한다.

여기서 넘지 말아야 할 경계: Known plaintext와 chosen plaintext를 같은 말로 쓰지 않는다. KPA에서는 공격자가 그 평문을 선택할 권한이 없을 수 있다.

06. IND-CPA·IND-CCA 독립 강의 →

QUESTION-BY-QUESTION COMMENTARY

실제 시험 소문제별 해설

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

ACTUAL EXAM SUBSECTION 1.2

1.2. Angreifermodelle

3개 학습 항목 · 8점

1.2.1 IND-CCA(Chosen Ciphertext Attack) Angreifermodell을 설명하라. 기존 71문항 학습 번호 09 · 2점 단답형

1.2.1 · 실제 시험 원문

1. Beschreiben Sie das Angreifermodell IND-CCA (Chosen Ciphertext Attack). **(2 Punkte)**

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

IND-CCA(Chosen Ciphertext Attack) Angreifermodell을 설명하라.

공격자 모델과 oracle을 게임처럼 읽는 법IND-CPA와 IND-CCA를 0부터 구분하기

TERMS FOR 1.2.1

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

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

01Attacker model

공격자가 무엇을 보고, 선택하고, 질문하고, 바꿀 수 있는지를 정확히 정한 가정입니다.

02Oracle

보안 게임에서 공격자가 정해진 형식으로 질의하고 답을 받을 수 있는 가상 인터페이스입니다.

03Challenge

공격자가 구별하거나 위조해야 하는 중심 시험값입니다.

04Advantage

공격자의 성공 확률이 무작위 추측보다 얼마나 높은지를 나타내는 값입니다.

05CPA

Chosen-Plaintext Attack입니다. 공격자가 고른 plaintext의 암호문을 받아볼 수 있습니다.

06CCA

Chosen-Ciphertext Attack입니다. 제한 아래 공격자가 고른 ciphertext의 복호 결과까지 질의할 수 있습니다.

07IND

Indistinguishability입니다. 두 후보 plaintext 중 어느 것이 암호화됐는지 구별하기 어려워야 한다는 목표입니다.

08Challenge ciphertext

보안 게임에서 숨겨진 bit에 따라 두 후보 중 하나를 암호화한 시험 암호문입니다.

ZERO-BASE MINI LESSON · 1.2.1

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

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

1 · 먼저 알아야 할 개념

암호 스키마는 보통 키 생성 Gen, 암호화 Enc, 복호화 Dec 세 알고리즘으로 설명한다. 정상적인 키와 메시지에서는 Dec(sk, Enc(pk,m))=m이 되어야 한다.

‘암호가 안전하다’는 말은 공격자가 무엇을 보고 무엇을 질문할 수 있는지 정해야 의미가 생긴다. Angreifermodell은 공격자에게 주는 정보, oracle 질의 권한, 금지된 행동, 승리 조건을 하나의 게임으로 정리한 것이다.

Oracle은 내부 키를 보여 주지 않고 질문에 답하는 검은 상자다. Decryption oracle에 암호문 c를 넣으면 Dec(sk,c) 결과를 받고, 현실에서는 복호화 API·스마트카드·서로 다른 오류 반응이 oracle과 비슷한 정보를 줄 수 있다.

IND는 indistinguishability, 즉 두 후보 메시지의 암호화를 구별하지 못해야 한다는 목표다. 공격자가 같은 길이의 m0,m1을 내면 challenger가 비밀 bit b를 골라 c*=Enc(mb)를 주고, 공격자는 b를 맞힌다.

IND-CCA2에서는 공격자가 challenge 전후로 자신이 고른 암호문을 decryption oracle에 질의할 수 있지만 c* 자체는 질의할 수 없다. 무작위 성공률 1/2보다 유의미하게 높은 advantage를 효율적으로 얻지 못해야 안전하다.

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

봉인된 두 종류의 문서 중 하나가 든 도전 봉투를 받고, 다른 봉투들은 감정소에 가져가 열어 볼 수 있는 경연을 생각한다. 도전 봉투 자체만 감정소에 맡기는 것은 금지된다.

  • 공격자가 미리 고른 같은 두께의 문서 두 장 길이가 같은 challenge 메시지 m0와 m1
  • 동전 던지기로 하나를 넣은 도전 봉투 비밀 bit b와 challenge ciphertext c*
  • 다른 봉투를 열어 주는 감정소 chosen ciphertext에 답하는 decryption oracle
  • 도전 봉투 접수 금지 c* 자체의 복호화 질의 금지

비유의 경계 형식적 oracle은 보통 평문 또는 실패 기호를 정확히 돌려주지만 현실 공격은 timing·오류 종류처럼 일부 정보만 얻기도 한다. 비유는 공격 권한을 설명할 뿐 모든 현실 CCA가 완전한 복호문을 받는다는 뜻은 아니다.

3 · 눈으로 관계 읽기 IND-CCA 게임 순서
  1. 01 1. 후보

    공격자 → 같은 길이 m0,m1

  2. 02 2. Challenge

    challenger: b←{0,1}, c*=Enc(mb)

  3. 03 3. CCA 질의

    공격자 ↔ Dec oracle, 단 c* 금지

  4. 04 4. 추측

    공격자 출력 b'; b'=b이면 승리

화살표 순서대로 읽고, 세 번째 단계의 유일한 핵심 금지사항이 challenge ciphertext 자체임을 표시한다.

4 · TOY EXAMPLE

두 결제 지시를 구별하는 IND-CCA 게임

주어진 것과 목표 공격자가 길이가 같은 m0='PAY 10', m1='PAY 90'을 고르고 challenger가 무작위 하나를 암호화해 c*를 준다. 목표는 허용·금지 질의를 구분하고 승리 조건을 쓰는 것이다.

  1. 01
    challenger가 숨은 bit b∈{0,1}를 균등하게 고른다.

    왜? 공격자가 어느 후보가 암호화되는지 미리 알 수 없게 하기 위해서다.

    중간 결과 c*=Enc(mb)가 만들어지며 공격자는 b를 모른다.

  2. 02
    공격자가 challenge와 다른 암호문 x를 decryption oracle에 보낸다.

    왜? CCA 모델은 공격 목적에 맞게 선택한 암호문의 복호화 결과를 학습하도록 허용하기 때문이다.

    중간 결과 질의가 x≠c*이면 모델 규칙상 Dec(x) 또는 실패 기호를 받을 수 있다.

  3. 03
    공격자가 c* 자체를 oracle에 보내려 한다.

    왜? 금지 규칙이 왜 필요한지 확인하기 위해서다.

    중간 결과 그 질의는 거부된다. 허용하면 oracle이 곧바로 PAY 10 또는 PAY 90을 알려 게임이 무의미해진다.

  4. 04
    허용된 모든 관찰 뒤 공격자가 추측 bit b'를 출력한다.

    왜? IND 게임의 목표는 키나 전체 평문 복구가 아니라 어느 후보인지 구별하는 것이기 때문이다.

    중간 결과 b'=b이면 해당 실행에서 승리하며, 안전하면 장기간 성공률이 1/2에서 무시할 정도만 벗어난다.

예제 결론 IND-CCA는 강한 복호화 질의 권한 아래에서도 challenge 메시지를 구별하지 못해야 한다는 보안 게임이다.

실제 시험으로 옮기기 2점 답안에는 ‘decryption oracle’, ‘challenge 자체 질의 금지’, ‘두 후보 중 어느 것이 암호화됐는지 구별’ 세 요소를 압축해 넣는다.

개념 근거와 더 깊은 설명

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

  • Vorlesung/02_Grundlagen_Krypto_RMU_v2.pdf p.56, p.57, p.60 · IND-CPA challenge game과 oracle capability 연결 개념 강의 열기

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

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

START HERE

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

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

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

시험 문장이 요구하는 것: IND-CCA(Chosen Ciphertext Attack) Angreifermodell을 설명하라.

이 문제의 풀이 전략: 이 소문제에서는 목표 정의 → Challenge 생성 → 공격자 권한 → 금지 질의 → 안전성 판정 순서로 진행합니다. 마지막에는 ‘공격자는 선택한 다른 ciphertext들을 복호화 질의할 수 있지만 challenge ciphertext 자체는 질의할 수 없다.’라는 교정 기준으로 답을 다시 확인합니다.

문제에서 주어진 정보
  • 보안 목표

    IND-CCA에서 challenge ciphertext가 어느 message의 암호문인지 구별하기 어렵게 해야 한다.

  • 공격자 권한

    선택한 ciphertext에 대한 decryption oracle 접근이 허용되지만 challenge 자체는 질의할 수 없다.

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

    참여자, oracle 권한, challenge 순서, 금지 조건, 성공 기준을 포함한 정의

사용할 공식·판정 관계
  • Challenge 생성
    \[c^* = \operatorname{Enc}_k(m_b),\quad b\xleftarrow{\$}\{0,1\}\]

    같은 길이의 m₀, m₁ 중 random bit b가 고른 message를 암호화한다.

  • 공격자 advantage
    \[\operatorname{Adv}=\left|\Pr[b'=b]-\frac12\right|\]

    무작위 추측 1/2보다 유의미하게 잘 맞히는지를 측정한다.

  1. 01

    목표 정의

    구체적으로 공격자는 같은 길이의 두 후보 m0,m1 중 어느 것이 challenge ciphertext에 들어 있는지 구별하려 한다.

    여기서 검산 목표를 반드시 private key 완전 복구라고 쓰지 않는다.

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

  2. 02

    Challenge 생성

    구체적으로 challenger가 무작위 b를 고르고 c*=Enc(mb)를 공격자에게 준다.

    여기서 검산 b가 균등한 bit이고 공격자에게 숨겨졌는지 확인한다.

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

  3. 03

    공격자 권한

    구체적으로 공격자는 자신이 선택한 ciphertext들을 decryption oracle에 넣어 복호화 결과를 받을 수 있다.

    여기서 검산 Chosen Ciphertext의 입력이 plaintext가 아니라 ciphertext임을 확인한다.

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

  4. 04

    금지 질의

    구체적으로 challenge c* 자체는 decryption oracle에 물을 수 없지만, 모델 규칙 안에서 다른 암호문은 질의할 수 있다.

    여기서 검산 모든 challenge 이후 질의가 금지된다고 과도하게 제한하지 않는다.

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

  5. 05

    안전성 판정

    구체적으로 공격자의 추측 성공률이 1/2보다 무시할 수 없을 만큼 높지 않아야 IND-CCA secure다.

    여기서 검산 무작위 기준선 1/2와 advantage를 함께 언급한다.

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

정답과 해설

공격자는 decryption oracle을 이용할 수 있지만 challenge ciphertext 자체 질의는 금지되고, 목표는 challenge ciphertext의 plaintext 후보를 구별하는 것이다.

정답이 이렇게 되는 이유

IND-CCA에서 공격자는 자신이 고른 ciphertext들을 decryption oracle로 복호화해 볼 수 있다. 그는 같은 길이의 두 메시지 m0,m1 중 무작위 하나의 암호문 c*를 받고 어느 메시지가 들어 있는지 맞히려 한다. 단, c* 자체를 복호화 질의하는 것은 금지된다. 이 강한 권한 아래에서도 효율적인 공격자가 무작위 1/2보다 유의미하게 잘 구별하지 못하면 암호 스키마가 IND-CCA secure하다고 한다.

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

잘못된 생각 Chosen Ciphertext Attack은 공격자가 challenge ciphertext도 oracle에 넣어 평문을 직접 받는 모델이다.

왜 틀렸나 그 질의를 허용하면 답이 즉시 공개되어 indistinguishability 실험이 아무 보안도 측정하지 못한다.

고쳐 말하면 공격자는 선택한 다른 ciphertext들을 복호화 질의할 수 있지만 challenge ciphertext 자체는 질의할 수 없다.

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

질문 IND-CCA에서 공격자가 c*의 한 비트를 바꾼 c'를 만들었다. c'≠c*라면 decryption oracle 질의가 원칙적으로 허용되는가?

정답 표준 adaptive IND-CCA 게임에서는 c'c*와 동일하지 않으면 허용된다. 바로 이런 강한 변형 질의를 견디도록 요구하며, 구체 게임의 다른 제한도 따라야 한다.

이 문제의 오답 함정

  • challenge ciphertext를 oracle에 그대로 넣어도 된다고 쓰기
  • CCA를 ciphertext-only와 혼동하기
ACTIVE RECALL

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

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

  1. 01 · 30초 문제 지도

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

    막힐 때만 첫 단서 열기

    CCA에서 CPA보다 추가되는 oracle이 무엇인지 먼저 말하라.

  2. 02 · 90초 닫힌책 답안

    IND-CCA(Chosen Ciphertext Attack) Angreifermodell을 설명하라.

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

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

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

    답안 작성 후 채점 기준 열기

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

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • IND-CCA game에서 challenger가 공격자에게 주는 challenge는 무엇인가?
    • Padding Oracle Attack은 왜 adaptive chosen-ciphertext attack으로 볼 수 있는가?
    • 정답의 핵심 조건 하나를 일부러 빼고 생기는 잘못된 결론을 쓴 뒤, 그 조건을 다시 넣어 시험 답안 한 문장으로 복구하세요.

    조건 변형: 원문의 핵심 조건 하나를 반대로 바꾸고, 기존 정답에서 어느 문장과 근거를 수정해야 하는지 두 문장으로 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: challenge ciphertext를 oracle에 그대로 넣어도 된다고 쓰기

    복구 힌트: CCA에서 CPA보다 추가되는 oracle이 무엇인지 먼저 말하라.

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

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

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

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

공격자는 decryption oracle을 이용할 수 있지만 challenge ciphertext 자체 질의는 금지되고, 목표는 challenge ciphertext의 plaintext 후보를 구별하는 것이다.

1.2.2 IND-CCA(Chosen Ciphertext Attack)와 IND-CPA(Chosen Plaintext Attack)의 차이를 설명하라. 기존 71문항 학습 번호 10 · 2점 정의 비교

1.2.2 · 실제 시험 원문

2. Was unterscheidet den IND-CCA (Chosen Ciphertext Attack) vom IND-CPA (Chosen Plaintext Attack)? **(2 Punkte)**

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

IND-CCA(Chosen Ciphertext Attack)와 IND-CPA(Chosen Plaintext Attack)의 차이를 설명하라.

공격자 모델과 oracle을 게임처럼 읽는 법IND-CPA와 IND-CCA를 0부터 구분하기

TERMS FOR 1.2.2

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

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

01Attacker model

공격자가 무엇을 보고, 선택하고, 질문하고, 바꿀 수 있는지를 정확히 정한 가정입니다.

02Oracle

보안 게임에서 공격자가 정해진 형식으로 질의하고 답을 받을 수 있는 가상 인터페이스입니다.

03Challenge

공격자가 구별하거나 위조해야 하는 중심 시험값입니다.

04Advantage

공격자의 성공 확률이 무작위 추측보다 얼마나 높은지를 나타내는 값입니다.

05CPA

Chosen-Plaintext Attack입니다. 공격자가 고른 plaintext의 암호문을 받아볼 수 있습니다.

06CCA

Chosen-Ciphertext Attack입니다. 제한 아래 공격자가 고른 ciphertext의 복호 결과까지 질의할 수 있습니다.

07IND

Indistinguishability입니다. 두 후보 plaintext 중 어느 것이 암호화됐는지 구별하기 어려워야 한다는 목표입니다.

08Challenge ciphertext

보안 게임에서 숨겨진 bit에 따라 두 후보 중 하나를 암호화한 시험 암호문입니다.

ZERO-BASE MINI LESSON · 1.2.2

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

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

1 · 먼저 알아야 할 개념

CPA는 Chosen-Plaintext Attack의 약자다. 공격자는 원하는 plaintext를 encryption oracle에 넣고 대응 ciphertext를 받아 암호화가 입력에 어떻게 반응하는지 학습할 수 있다.

CCA는 Chosen-Ciphertext Attack의 약자다. 공격자는 원하는 ciphertext를 decryption oracle에 넣고 복호 결과나 실패 반응을 학습할 수 있다.

IND-CPA와 IND-CCA는 둘 다 같은 길이의 두 후보 메시지 중 무작위 하나를 암호화한 challenge를 구별하지 못해야 한다는 indistinguishability 목표를 사용한다. 길이를 같게 하는 이유는 암호문 길이만 보고 맞히는 사소한 승리를 제외하기 위해서다.

핵심 차이는 IND-CCA 공격자에게 decryption oracle 권한이 추가된다는 점이다. challenge ciphertext 자체는 금지되지만 다른 조작 ciphertext의 복호화를 물을 수 있어 IND-CPA보다 강한 공격자다.

따라서 IND-CCA security는 일반적으로 IND-CPA security를 함의하지만 역은 자동으로 성립하지 않는다. CPA에 안전한 결정적이지 않은 암호라도 ciphertext 변형과 복호화 반응에는 취약할 수 있다.

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

한 공장에는 원료를 넣으면 포장품을 주는 창구만 있고, 다른 공장에는 그 창구에 더해 포장품을 넣으면 내용물을 꺼내 주는 검사 창구도 있다고 생각한다.

  • 원료를 골라 포장 요청 CPA의 chosen plaintext → encryption oracle
  • 포장품을 골라 개봉 요청 CCA의 chosen ciphertext → decryption oracle
  • 시험용 포장품은 개봉 창구 접수 금지 CCA에서 challenge ciphertext 자체 질의 금지
  • 두 창구를 상대해야 하는 더 엄격한 품질 기준 IND-CCA가 IND-CPA보다 강한 security notion

비유의 경계 공개키 암호에서는 public key로 누구나 암호화할 수 있어 별도 encryption oracle이 실질적으로 필요 없을 수 있다. 그래도 CPA와 CCA의 개념 차이는 복호화 oracle 권한의 유무로 정확히 유지된다.

3 · 눈으로 관계 읽기 IND-CPA 대 IND-CCA
  1. 01 IND-CPA

    선택 plaintext → Enc oracle → ciphertext

  2. 02 IND-CCA

    위 권한 + 선택 ciphertext → Dec oracle → plaintext/실패

  3. 03 공통 목표

    c*=Enc(mb)에서 b 구별

  4. 04 CCA 제한

    c* 자체의 Dec 질의는 금지

  5. 05 강도

    IND-CCA secure ⇒ IND-CPA secure

CCA 행은 CPA 권한에 복호화 질의를 더한 것으로 읽되 challenge 예외를 함께 기억한다.

4 · TOY EXAMPLE

요청 내용으로 CPA와 CCA 분류하기

주어진 것과 목표 공격자 Eve가 서비스에 네 가지 요청을 보낸다고 하자. 목표는 각 요청이 어느 모델의 추가 권한인지 분류하는 것이다.

  1. 01
    Eve가 평문 AAAA를 보내 암호문을 요청한다.

    왜? 공격자가 입력 plaintext를 직접 고른 경우를 식별하기 위해서다.

    중간 결과 chosen plaintext를 암호화하는 CPA/Enc-oracle 질의다.

  2. 02
    Eve가 임의 ciphertext 0xA17C를 보내 평문을 요청한다.

    왜? 공격자가 입력 ciphertext를 직접 고른 경우를 식별하기 위해서다.

    중간 결과 chosen ciphertext를 복호화하는 CCA/Dec-oracle 질의다.

  3. 03
    challenge c*를 받은 뒤 Eve가 c* 자체를 복호화 요청한다.

    왜? 두 모델 비교에서 CCA의 금지사항을 확인하기 위해서다.

    중간 결과 IND-CCA에서도 이 요청은 금지된다.

  4. 04
    Eve가 c*와 다른 조작 암호문을 질의할 수 있는지를 비교한다.

    왜? CPA 공격자에게 없는 CCA의 강한 능력을 드러내기 위해서다.

    중간 결과 IND-CCA에서는 허용될 수 있지만 IND-CPA에는 decryption oracle 자체가 없다.

예제 결론 CPA는 선택 평문의 암호화 관찰, CCA는 거기에 선택 암호문의 복호화 관찰까지 더한 모델이다.

실제 시험으로 옮기기 2점 답안은 CPA=Enc oracle, CCA=추가 Dec oracle(c* 제외), CCA가 더 강함을 한두 문장으로 비교한다.

개념 근거와 더 깊은 설명

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

  • Vorlesung/02_Grundlagen_Krypto_RMU_v2.pdf p.56, p.57, p.60 · IND-CPA challenge game과 oracle capability 연결 개념 강의 열기

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

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

START HERE

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

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

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

시험 문장이 요구하는 것: IND-CCA(Chosen Ciphertext Attack)와 IND-CPA(Chosen Plaintext Attack)의 차이를 설명하라.

이 문제의 풀이 전략: 이 소문제에서는 공통 목표 먼저 고정 → CPA 권한 → CCA 추가 권한 → Challenge 예외 → 강도 결론 순서로 진행합니다. 마지막에는 ‘IND-CCA는 IND-CPA형 공격 능력에 challenge 자체를 제외한 decryption oracle 능력까지 고려하는 더 강한 모델이다.’라는 교정 기준으로 답을 다시 확인합니다.

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

    IND-CCA(Chosen Ciphertext Attack)와 IND-CPA(Chosen Plaintext Attack)의 차이를 설명하라.

  • 이 문항의 첫 출발점

    두 모델 모두 같은 길이의 `m0,m1` 중 어느 것이 challenge에서 암호화됐는지 구별하는 IND 게임이다.

    CPA와 CCA를 단순히 키 복구 공격 이름으로만 설명하지 않는다.

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

    더 강한 CCA 공격자를 견디면 CPA도 견디지만 CPA 안전성만으로 CCA 안전성이 보장되지는 않는다.

  • 정답을 지탱하는 이유

    IND-CPA에서는 공격자가 선택한 plaintext를 encryption oracle에 넣어 ciphertext를 받을 수 있다. IND-CCA에서는 이보다 강하게 선택한 ciphertext를 decryption oracle에 질의할 수 있으며, challenge ciphertext 자체만은 복호화할 수 없다. 두 모델의 목표는 challenge가 두 후보 메시지 중 어느 것을 암호화했는지 구별하는 것이다. 따라서 IND-CCA는 IND-CPA보다 강한 보안 요구이며, CCA 안전성은 CPA 안전성을 함의하지만 그 역은 일반적으로 성립하지 않는다.

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

    공통 목표 먼저 고정 → CPA 권한 → CCA 추가 권한 → Challenge 예외 → 강도 결론

    CCA 행은 CPA 권한에 복호화 질의를 더한 것으로 읽되 challenge 예외를 함께 기억한다.

  1. 01

    공통 목표 먼저 고정

    구체적으로 두 모델 모두 같은 길이의 m0,m1 중 어느 것이 challenge에서 암호화됐는지 구별하는 IND 게임이다.

    여기서 검산 CPA와 CCA를 단순히 키 복구 공격 이름으로만 설명하지 않는다.

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

  2. 02

    CPA 권한

    구체적으로 IND-CPA 공격자는 자신이 고른 plaintext의 암호화를 encryption oracle에서 받을 수 있다.

    여기서 검산 oracle 입력과 출력의 방향을 plaintext→ciphertext로 확인한다.

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

  3. 03

    CCA 추가 권한

    구체적으로 IND-CCA 공격자는 자신이 고른 ciphertext를 decryption oracle에 넣어 결과를 얻을 수 있다.

    여기서 검산 CCA가 CPA와 완전히 별개가 아니라 더 강한 질의 권한을 가진다는 점을 쓴다.

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

  4. 04

    Challenge 예외

    구체적으로 IND-CCA에서도 c* 자체의 복호화 질의는 금지된다.

    여기서 검산 금지사항이 없으면 게임이 자명하게 깨진다는 이유를 설명할 수 있다.

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

  5. 05

    강도 결론

    구체적으로 더 강한 CCA 공격자를 견디면 CPA도 견디지만 CPA 안전성만으로 CCA 안전성이 보장되지는 않는다.

    여기서 검산 함의 방향을 CCA→CPA로 확인한다.

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

정답과 해설

CPA는 encryption oracle 중심, CCA는 decryption oracle까지 허용하는 더 강한 모델이다.

정답이 이렇게 되는 이유

IND-CPA에서는 공격자가 선택한 plaintext를 encryption oracle에 넣어 ciphertext를 받을 수 있다. IND-CCA에서는 이보다 강하게 선택한 ciphertext를 decryption oracle에 질의할 수 있으며, challenge ciphertext 자체만은 복호화할 수 없다. 두 모델의 목표는 challenge가 두 후보 메시지 중 어느 것을 암호화했는지 구별하는 것이다. 따라서 IND-CCA는 IND-CPA보다 강한 보안 요구이며, CCA 안전성은 CPA 안전성을 함의하지만 그 역은 일반적으로 성립하지 않는다.

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

잘못된 생각 CPA는 암호화만 공격하고 CCA는 복호화만 공격하므로 서로 강도를 비교할 수 없는 별개 모델이다.

왜 틀렸나 두 모델이 같은 IND challenge 목표를 공유하고 CCA가 더 강한 oracle 능력을 준다는 포함 관계를 놓쳤다.

고쳐 말하면 IND-CCA는 IND-CPA형 공격 능력에 challenge 자체를 제외한 decryption oracle 능력까지 고려하는 더 강한 모델이다.

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

질문 어떤 암호가 IND-CPA secure라는 사실만 증명됐다. 이 사실만으로 조작 ciphertext를 복호화하는 API가 있어도 IND-CCA secure라고 결론 내릴 수 있는가?

정답 아니다. IND-CPA는 decryption oracle을 고려하지 않으므로 별도의 IND-CCA 안전성 증명이나 인증된 암호 구조가 필요하다.

이 문제의 오답 함정

  • IND-CCA와 IND-CPA를 단순히 공격 대상 메시지 종류 차이로만 설명하기
  • CCA가 challenge ciphertext 직접 복호화를 허용한다고 쓰기
ACTIVE RECALL

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

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

  1. 01 · 30초 문제 지도

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

    막힐 때만 첫 단서 열기

    두 약어에서 Plaintext와 Ciphertext가 각각 어떤 oracle을 뜻하는지 연결하라.

  2. 02 · 90초 닫힌책 답안

    IND-CCA(Chosen Ciphertext Attack)와 IND-CPA(Chosen Plaintext Attack)의 차이를 설명하라.

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

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

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

    답안 작성 후 채점 기준 열기

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

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • IND-CPA secure이면 항상 IND-CCA secure인가?
    • decryption oracle이 있으면 어떤 종류의 padding error 공격이 가능해지는가?
    • 두 개념의 이름을 가리고 권한·관찰 정보·금지 조건·성공 조건만 읽었을 때도 구별할 수 있도록, 결정적인 차이 한 줄을 작성하세요.

    조건 변형: 두 개념을 권한, oracle/관찰 정보, 금지 조건, 성공 조건의 네 행으로 다시 비교하세요. 이름을 가려도 어느 쪽이 더 강한 모델인지 판별할 수 있어야 합니다.

  5. 05 · 대표 오답 복구

    고칠 답안: IND-CCA와 IND-CPA를 단순히 공격 대상 메시지 종류 차이로만 설명하기

    복구 힌트: 두 약어에서 Plaintext와 Ciphertext가 각각 어떤 oracle을 뜻하는지 연결하라.

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

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

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

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

CPA는 encryption oracle 중심, CCA는 decryption oracle까지 허용하는 더 강한 모델이다.

1.2.3 IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라. 기존 71문항 학습 번호 11 · 4점 단답형

1.2.3 · 실제 시험 원문

3. Welche zwei anderen Angreifermodelle als IND-CCA und IND-CPA kennen Sie? Beschreiben Sie diese kurz. **(4 Punkte)**

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

IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라.

공격자 모델과 oracle을 게임처럼 읽는 법Ciphertext-only와 Known-plaintext 공격IND-CPA와 IND-CCA를 0부터 구분하기

TERMS FOR 1.2.3

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

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

01Attacker model

공격자가 무엇을 보고, 선택하고, 질문하고, 바꿀 수 있는지를 정확히 정한 가정입니다.

02Oracle

보안 게임에서 공격자가 정해진 형식으로 질의하고 답을 받을 수 있는 가상 인터페이스입니다.

03Challenge

공격자가 구별하거나 위조해야 하는 중심 시험값입니다.

04Advantage

공격자의 성공 확률이 무작위 추측보다 얼마나 높은지를 나타내는 값입니다.

05Ciphertext-only attack

공격자가 ciphertext들만 알고 분석하는 공격 상황입니다.

06Known-plaintext attack

일부 plaintext와 그에 대응하는 ciphertext 쌍을 공격자가 알고 있는 상황입니다.

07Chosen-plaintext attack

공격자가 plaintext를 직접 골라 그 암호문을 받을 수 있는 더 강한 상황입니다.

08Known pair

서로 대응하는 plaintext와 ciphertext 한 쌍입니다.

ZERO-BASE MINI LESSON · 1.2.3

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

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

1 · 먼저 알아야 할 개념

공격자 모델은 ‘암호가 무조건 깨진다’는 선언이 아니라 공격자가 출발할 때 가진 정보와 할 수 있는 행동을 정의한다. 같은 암호도 공격자 정보가 늘어나면 분석이 쉬워질 수 있다.

Ciphertext-Only Attack(COA)에서는 공격자가 하나 이상의 암호문만 가지고 시작한다. 그는 언어 통계, 반복 패턴, 프로토콜 구조 등을 이용해 평문이나 키를 추정하려 한다.

Known-Plaintext Attack(KPA)에서는 공격자가 일부 대응쌍 (Mi,Ci)를 이미 알고 있다. 예를 들어 메시지의 고정 헤더나 공개된 문서와 그 암호문을 함께 얻은 경우이며, 이 쌍으로 키 또는 아직 모르는 암호문을 공격한다.

KPA의 known plaintext는 공격자가 원하는 값을 oracle에 골라 넣은 것이 아닐 수 있다. 원하는 plaintext를 직접 골라 암호화 결과를 받는 CPA와 이 점이 다르다.

정보량만 비교하면 KPA 공격자는 ciphertext뿐 아니라 일부 평문 대응도 아니까 COA 공격자보다 강하다. 그러나 KPA 쌍 하나가 모든 현대 암호의 키를 즉시 복구한다는 뜻은 아니다.

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

외국어로 쓰인 봉인 주문서들을 가로챈 경우와, 그중 한 주문서가 ‘상품번호 17, 수량 2’라는 사실까지 영수증으로 확인한 경우를 비교한다.

  • 내용을 모르는 봉인 주문서만 수집 COA의 ciphertext-only 자료
  • 한 주문서의 원문 영수증까지 확보 KPA의 known plaintext-ciphertext pair
  • 반복 문양과 주문 형식으로 추측 COA의 통계·구조 분석
  • 확인된 대응으로 번역 규칙 추론 KPA가 쌍을 이용해 키·미지 평문 공격

비유의 경계 현대 암호에서 알려진 평문 일부가 있다는 사실만으로 키가 복구되지는 않아야 한다. 비유는 KPA가 가진 추가 정보를 설명할 뿐 공격 성공을 보장하지 않는다.

3 · 눈으로 관계 읽기 COA와 KPA의 정보 차이
  1. 01 COA 입력

    C1,C2,... 암호문만 보유

  2. 02 COA 목표

    통계·패턴으로 plaintext 또는 key 추정

  3. 03 KPA 입력

    (M1,C1),... 일부 대응쌍 + 미지 ciphertext

  4. 04 KPA 목표

    대응쌍으로 key 또는 새 plaintext 공격

  5. 05 CPA 경계

    공격자가 M을 직접 선택해 Enc 결과를 요청하면 CPA

KPA 행에는 COA 자료에 평문 대응 정보가 하나 더 들어 있고, 직접 선택 권한은 아직 없다고 읽는다.

4 · TOY EXAMPLE

Shift 암호문 KHOOR로 COA와 KPA 비교

주어진 것과 목표 같은 암호문 KHOOR를 두 공격자가 받는다. 공격자 A는 암호문만, 공격자 B는 첫 평문 글자가 H라는 사실과 대응 암호문 K를 함께 안다.

  1. 01
    공격자 A가 KHOOR의 반복과 가능한 26개 shift를 분석한다.

    왜? 평문 대응쌍 없이 암호문 자료만 사용할 수 있기 때문이다.

    중간 결과 이는 COA이며, 후보 중 HELLO처럼 읽히는 결과를 찾을 수 있다.

  2. 02
    공격자 B가 알려진 쌍 H→K를 숫자로 바꾼다.

    왜? KPA가 가진 실제 평문-암호문 대응을 키 계산에 쓰기 위해서다.

    중간 결과 H=7, K=10이므로 k=(10−7) mod 26=3이다.

  3. 03
    B가 모든 암호문 글자에서 3을 뺀다.

    왜? 알려진 쌍에서 얻은 키 후보로 미지 부분을 복호화하기 위해서다.

    중간 결과 KHOOR→HELLO가 된다.

  4. 04
    B가 H를 직접 암호화해 달라고 요청했는지 확인한다.

    왜? KPA와 CPA를 구분하기 위해서다.

    중간 결과 이미 우연히 알려진 대응을 사용했으므로 KPA이며, 직접 고른 질의였다면 CPA다.

예제 결론 COA는 암호문만, KPA는 이미 알려진 평문-암호문 쌍까지 사용하며 목표는 키나 다른 평문의 획득이다.

실제 시험으로 옮기기 4점 답안은 모델 이름 두 개와 각 모델의 ‘보유 정보 → 목표’를 한 문장씩 명확히 적는다.

개념 근거와 더 깊은 설명

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

  • Vorlesung/02_Grundlagen_Krypto_RMU_v2.pdf p.56, p.57, p.60 · IND-CPA challenge game과 oracle capability 연결 개념 강의 열기

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

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

START HERE

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

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

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

시험 문장이 요구하는 것: IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라.

이 문제의 풀이 전략: 이 소문제에서는 첫 모델 이름 → COA 능력과 목표 → 둘째 모델 이름 → KPA 능력과 목표 → 두 모델 대비 순서로 진행합니다. 마지막에는 ‘KPA는 일부 `(plaintext,ciphertext)` 쌍을 이미 알고 사용하는 모델이고, 직접 고른 plaintext를 암호화 oracle에 넣을 수 있으면 CPA다.’라는 교정 기준으로 답을 다시 확인합니다.

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

    IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라.

  • 이 문항의 첫 출발점

    `Ciphertext-Only Attack (COA)`를 IND-CPA·IND-CCA와 다른 모델로 제시한다.

    약어만 쓰지 말고 영문 또는 독문 의미를 풀어 쓴다.

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

    KPA는 ciphertext 외에 대응 plaintext 정보를 더 가지므로 COA보다 강한 출발 정보를 가진다.

  • 정답을 지탱하는 이유

    첫째, Ciphertext-Only Attack에서는 공격자가 암호문들만 가지고 평문이나 키를 알아내려 한다. 둘째, Known-Plaintext Attack에서는 일부 평문과 그에 대응하는 암호문 쌍을 이미 알고, 이를 이용해 키나 다른 암호문의 평문을 공격한다. KPA는 COA보다 더 많은 정보를 가진다. 다만 KPA에서는 알려진 평문을 공격자가 직접 선택할 필요가 없다는 점이 CPA와 다르다.

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

    첫 모델 이름 → COA 능력과 목표 → 둘째 모델 이름 → KPA 능력과 목표 → 두 모델 대비

    KPA 행에는 COA 자료에 평문 대응 정보가 하나 더 들어 있고, 직접 선택 권한은 아직 없다고 읽는다.

  1. 01

    첫 모델 이름

    구체적으로 Ciphertext-Only Attack (COA)를 IND-CPA·IND-CCA와 다른 모델로 제시한다.

    여기서 검산 약어만 쓰지 말고 영문 또는 독문 의미를 풀어 쓴다.

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

  2. 02

    COA 능력과 목표

    구체적으로 공격자는 하나 이상의 ciphertext만 알고 그 자료로 plaintext나 key를 추정한다.

    여기서 검산 known plaintext나 oracle 권한을 COA에 추가하지 않는다.

    다음 단계로 여기서 확인한 내용을 다음 ‘둘째 모델 이름’ 단계의 출발점으로 사용합니다.

  3. 03

    둘째 모델 이름

    구체적으로 Known-Plaintext Attack (KPA)를 제시한다.

    여기서 검산 Chosen-Plaintext Attack과 이름을 섞지 않는다.

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

  4. 04

    KPA 능력과 목표

    구체적으로 공격자는 일부 대응하는 (Mi,Ci) 쌍을 알고 이를 이용해 key 또는 아직 모르는 ciphertext의 plaintext를 공격한다.

    여기서 검산 알려진 쌍의 plaintext를 공격자가 반드시 직접 선택한 것은 아니라고 구분한다.

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

  5. 05

    두 모델 대비

    구체적으로 KPA는 ciphertext 외에 대응 plaintext 정보를 더 가지므로 COA보다 강한 출발 정보를 가진다.

    여기서 검산 모델이 강하다는 말이 모든 암호가 즉시 깨진다는 뜻은 아님을 유지한다.

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

정답과 해설

두 모델: Ciphertext-Only Attack은 ciphertext만 가진 가장 약한 모델, Known-Plaintext Attack은 일부 plaintext/ciphertext pair를 아는 모델이다.

정답이 이렇게 되는 이유

첫째, Ciphertext-Only Attack에서는 공격자가 암호문들만 가지고 평문이나 키를 알아내려 한다. 둘째, Known-Plaintext Attack에서는 일부 평문과 그에 대응하는 암호문 쌍을 이미 알고, 이를 이용해 키나 다른 암호문의 평문을 공격한다. KPA는 COA보다 더 많은 정보를 가진다. 다만 KPA에서는 알려진 평문을 공격자가 직접 선택할 필요가 없다는 점이 CPA와 다르다.

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

잘못된 생각 Known-Plaintext Attack은 공격자가 알고 싶은 plaintext를 골라 서버에 암호화해 달라고 하는 공격이다.

왜 틀렸나 이미 확보한 대응쌍을 아는 KPA와 선택한 입력의 암호화를 질의하는 CPA를 혼동했다.

고쳐 말하면 KPA는 일부 (plaintext,ciphertext) 쌍을 이미 알고 사용하는 모델이고, 직접 고른 plaintext를 암호화 oracle에 넣을 수 있으면 CPA다.

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

질문 암호화된 네트워크 패킷 여러 개와 그중 하나의 고정 헤더 원문·암호문 대응을 알고 있다. COA와 KPA 중 어느 모델인가?

정답 KPA다. ciphertext뿐 아니라 적어도 하나의 known plaintext-ciphertext pair를 가지고 있기 때문이다.

이 문제의 오답 함정

  • CPA나 CCA를 다시 쓰기
  • 공격 목표만 말하고 공격자가 가진 정보를 빼먹기
ACTIVE RECALL

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

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

  1. 01 · 30초 문제 지도

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

    막힐 때만 첫 단서 열기

    oracle이 없는 더 약한 모델 두 개를 떠올려라.

  2. 02 · 90초 닫힌책 답안

    IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라.

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

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

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

    답안 작성 후 채점 기준 열기

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

    0/4 slots

  4. 04 · 문항별 후속 질문·조건 전이
    • COA, KPA, CPA, CCA를 약한 순서에서 강한 순서로 배열해 보라.
    • Shift-Chiffre frequency analysis는 어느 모델의 예로 볼 수 있는가?
    • 정답의 핵심 조건 하나를 일부러 빼고 생기는 잘못된 결론을 쓴 뒤, 그 조건을 다시 넣어 시험 답안 한 문장으로 복구하세요.

    조건 변형: 원문의 핵심 조건 하나를 반대로 바꾸고, 기존 정답에서 어느 문장과 근거를 수정해야 하는지 두 문장으로 설명하세요.

  5. 05 · 대표 오답 복구

    고칠 답안: CPA나 CCA를 다시 쓰기

    복구 힌트: oracle이 없는 더 약한 모델 두 개를 떠올려라.

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

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

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

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

두 모델: Ciphertext-Only Attack은 ciphertext만 가진 가장 약한 모델, Known-Plaintext Attack은 일부 plaintext/ciphertext pair를 아는 모델이다.

ACTIVE RECALL

이 페이지를 닫기 전 확인

  1. CCA의 추가 권한은 무엇인가요?
  2. 왜 c* 복호 질의는 금지되나요?
  3. COA와 KPA의 차이는 무엇인가요?