단답형
문제
독일어 원문
Welche zwei anderen Angreifermodelle als IND-CCA und IND-CPA kennen Sie? Beschreiben Sie diese kurz.
한국어 해석
IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라.
직접 답안 작성
답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.
0/4 slots
답안은 브라우저에만 임시 저장됩니다. 채점 프레임과 비교해 스스로 판정하세요.
단계별 힌트
막혔을 때만 한 단계씩 여세요. 정답을 바로 읽는 것보다 기억을 꺼내는 시간이 중요합니다.
- 첫 힌트: oracle이 없는 더 약한 모델 두 개를 떠올려라.
- 계산형 문항이 아니다.
- 답안 템플릿: model name -> attacker information -> goal.
- 함정: CPA나 CCA를 다시 쓰기
- 함정: 공격 목표만 말하고 공격자가 가진 정보를 빼먹기
- 후속 점검: COA, KPA, CPA, CCA를 약한 순서에서 강한 순서로 배열해 보라.
채점 기준으로 내 답안 점검하기
- IND-CPA/IND-CCA가 아닌 두 모델 이름을 쓴다.
- Ciphertext-Only Attack: ciphertext collection only, goal key/plaintext recovery.
- Known-Plaintext Attack: known plaintext-ciphertext pairs, goal key or future plaintext.
- 각 모델의 공격자 capability를 한 문장씩 구분한다.
답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.
0/4 slots
정답과 핵심 해설 확인하기
두 모델: Ciphertext-Only Attack은 ciphertext만 가진 가장 약한 모델, Known-Plaintext Attack은 일부 plaintext/ciphertext pair를 아는 모델이다.
개념부터 다시 보는 상세 풀이
BEGINNER LESSON
2-(c) COA와 KPA: 다른 두 공격자 모델을 처음부터 설명하기
ZERO-BASE START
정말 아무것도 모른다고 가정하고 시작합니다
전문 용어를 알고 있다고 가정하지 않습니다. 먼저 일상적인 장면을 보고, 그 장면의 사람과 행동에 실제 보안 용어를 하나씩 붙인 뒤, 시스템에서 일어나는 순서를 따라갑니다.
기초 개념 01
공격자 모델과 oracle을 게임처럼 읽는 법
1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다
시험장에서 계산기는 허용하지만 인터넷은 금지하는 것처럼, 공격자에게 허용되는 도구를 정확히 적어야 난이도와 성공 조건을 말할 수 있다.
지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.
이제 실제 용어를 하나씩 붙여 봅시다
공격자 모델(Angreifermodell)은 공격자가 어떤 정보를 보고 어떤 기능을 사용할 수 있는지 정한 규칙이다. Oracle은 공격자가 질문을 보내면 정해진 계산 결과를 돌려주는 가상의 상자다. Encryption oracle은 공격자가 고른 평문을 암호화해 주고, decryption oracle은 고른 암호문을 복호화해 준다. 보안 정의는 강한 공격자에게 이런 기능을 허용해도 목표를 달성하지 못하는지 시험한다.
TERMS FROM ZERO
전문 용어를 한 단어씩 풀기
아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.
Attacker model
공격자가 무엇을 보고, 선택하고, 질문하고, 바꿀 수 있는지를 정확히 정한 가정입니다.
Oracle
보안 게임에서 공격자가 정해진 형식으로 질의하고 답을 받을 수 있는 가상 인터페이스입니다.
Challenge
공격자가 구별하거나 위조해야 하는 중심 시험값입니다.
Advantage
공격자의 성공 확률이 무작위 추측보다 얼마나 높은지를 나타내는 값입니다.
프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.
- 공격자가 처음에 알고 있는 정보를 적는다.
- 어떤 oracle에 언제 질의할 수 있는지 적는다.
- Challenger가 숨긴 값을 포함한 challenge를 만든다.
- 금지된 질의와 공격자의 최종 성공 조건을 적는다.
왜 여기서 많이 틀릴까요?
공격자가 ‘강하다’라고만 쓰면 정의가 되지 않는다. 질의 가능 대상, 시점, 금지 조건을 구체적으로 써야 한다.
조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.
기초 개념 02
Ciphertext-only와 Known-plaintext 공격
1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다
COA는 자물쇠로 잠긴 상자만 보는 상황, KPA는 몇 개 상자의 잠그기 전 내용과 잠근 뒤 모습을 함께 본 상황, CPA는 원하는 물건을 골라 상자에 넣어 잠근 결과를 요청할 수 있는 상황이다.
지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.
이제 실제 용어를 하나씩 붙여 봅시다
Ciphertext-only attack(COA)은 공격자가 암호문만 가지고 평문이나 키에 대한 정보를 찾는 모델이다. Known-plaintext attack(KPA)은 일부 평문과 그에 대응하는 암호문 쌍을 이미 알고 있는 모델이다. 공격자가 원하는 평문을 직접 고를 수 있는 CPA는 KPA보다 더 큰 능력을 준다.
TERMS FROM ZERO
전문 용어를 한 단어씩 풀기
아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.
Ciphertext-only attack
공격자가 ciphertext들만 알고 분석하는 공격 상황입니다.
Known-plaintext attack
일부 plaintext와 그에 대응하는 ciphertext 쌍을 공격자가 알고 있는 상황입니다.
Chosen-plaintext attack
공격자가 plaintext를 직접 골라 그 암호문을 받을 수 있는 더 강한 상황입니다.
Known pair
서로 대응하는 plaintext와 ciphertext 한 쌍입니다.
프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.
- 공격자가 평문을 전혀 모르는지 일부 쌍을 아는지 구분한다.
- 알려진 평문을 공격자가 선택했는지 우연히 관찰했는지 구분한다.
- 더 많은 능력을 가진 모델을 견디면 보통 더 약한 모델도 견딘다는 방향을 확인한다.
왜 여기서 많이 틀릴까요?
Known plaintext와 chosen plaintext를 같은 말로 쓰지 않는다. KPA에서는 공격자가 그 평문을 선택할 권한이 없을 수 있다.
조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.
기초 개념 03
IND-CPA와 IND-CCA를 0부터 구분하기
1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다
두 상자 중 하나를 잠가 보여 주고 어느 상자인지 맞히는 게임이다. CCA에서는 다른 잠긴 상자를 열어 달라고 물을 수 있지만 바로 시험에 나온 상자 c*를 열어 달라고 할 수는 없다.
지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.
이제 실제 용어를 하나씩 붙여 봅시다
IND는 indistinguishability, 즉 두 메시지 중 어느 것이 암호화됐는지 구별하기 어렵다는 뜻이다. 공격자는 같은 길이의 메시지 m0와 m1을 제출하고 Challenger는 무작위 bit b를 골라 mb의 암호문 c*를 준다. 공격자가 b를 1/2보다 의미 있게 높은 확률로 맞히지 못하면 안전하다고 본다. CPA에서는 encryption oracle을, CCA에서는 decryption oracle까지 허용한다.
TERMS FROM ZERO
전문 용어를 한 단어씩 풀기
아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.
CPA
Chosen-Plaintext Attack입니다. 공격자가 고른 plaintext의 암호문을 받아볼 수 있습니다.
CCA
Chosen-Ciphertext Attack입니다. 제한 아래 공격자가 고른 ciphertext의 복호 결과까지 질의할 수 있습니다.
IND
Indistinguishability입니다. 두 후보 plaintext 중 어느 것이 암호화됐는지 구별하기 어려워야 한다는 목표입니다.
Challenge ciphertext
보안 게임에서 숨겨진 bit에 따라 두 후보 중 하나를 암호화한 시험 암호문입니다.
프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.
- m0와 m1의 길이를 같게 해 길이만으로 답을 맞히지 못하게 한다.
- Challenger가 b를 무작위로 선택하고 c*=Enc(mb)를 만든다.
- IND-CCA2에서는 challenge 이후에도 다른 암호문의 복호화를 질의할 수 있다.
- c* 자체의 복호화는 금지하고 마지막에 b'를 추측한다.
왜 여기서 많이 틀릴까요?
CPA와 CCA의 차이는 평문 종류가 아니라 공격자가 사용할 수 있는 oracle의 차이다.
조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.
핵심부터 말하면 두 모델은 Ciphertext-Only Attack(COA)과 Known-Plaintext Attack(KPA)이다. COA 공격자는 암호문만 가지고 평문이나 키를 추정하며, KPA 공격자는 일부 알려진 평문-암호문 쌍까지 가지고 이를 이용해 키 또는 아직 모르는 암호문을 공격한다.
왜 그런지 이해하기
이 문제는 약어 두 개를 나열하는 문제가 아니라 공격자에게 주어진 정보량의 차이를 설명하는 문제다. '공격자가 무엇을 가지고 시작하는가?', '그 자료를 스스로 선택했는가?', '최종 목표는 무엇인가?' 세 질문으로 모델을 구분하면 CPA·CCA까지 한 줄로 정리된다.
이 글에서 익힐 것
COA와 KPA의 영어·독일어 명칭을 정확히 쓴다.
각 모델에서 공격자가 가진 입력 자료와 목표를 설명한다.
known plaintext와 chosen plaintext의 차이를 구분한다.
Shift 빈도분석과 고정 메시지 헤더를 현실 예시로 연결한다.
COA·KPA·CPA·CCA의 정보/권한 증가 관계를 이해한다.
Model one coa
Full name
Ciphertext-Only Attack (COA), 독일어로 Angriff nur mit Chiffretexten
공격 과정을 따라가기
공격자는 같은 키로 암호화된 하나 이상의 암호문 C₁,C₂,…만 가진다. 대응 평문, 키, encryption/decryption oracle은 주어지지 않는다.
공격 과정을 따라가기
어떤 암호문이 어떤 평문에서 왔는지 알려진 쌍이 없고, 자신이 고른 평문을 암호화해 달라고 요청할 수도 없다.
Typical goal
암호문의 통계·형식·반복을 분석해 평문 M_i 또는 비밀키 K를 알아내는 것. 항상 키 전체를 복구해야만 공격 성공인 것은 아니며 의미 있는 평문 정보를 얻는 것도 실패로 볼 수 있다.
Strength
여기서 비교하는 고전적 네 모델 중 공격자에게 주어진 능력이 가장 약하다. 따라서 암호가 COA만 견딘다는 사실은 능동적 공격자에 대한 충분한 안전성을 뜻하지 않는다.
시험 답안으로 정리하기
Shift cipher 빈도분석
공격자는 독일어 암호문 KAW ZSTWF ...만 얻었고 평문이나 키는 모른다고 하자.
각 암호문 문자의 빈도를 세고 가장 자주 나오는 문자를 독일어의 흔한 E 등과 대응해 본다.
Shift key 후보를 계산해 전체 문장을 되돌리고 자연스러운 독일어인지 확인한다.
공격자는 암호문만으로 작업했으므로 COA의 전형적인 사례다.
Shift key space가 작으면 26개 이동을 모두 시험하는 brute force도 ciphertext-only 상황에서 할 수 있다.
Model two kpa
Full name
Known-Plaintext Attack (KPA), 독일어로 Angriff mit bekannten Klartexten
공격 과정을 따라가기
공격자는 암호문 C_i뿐 아니라 그에 정확히 대응하는 일부 평문 M_i도 안다. 즉 (M₁,C₁),(M₂,C₂),… 쌍을 가진다.
공격 과정을 따라가기
CPA와 달리 평문을 마음대로 선택해 새 암호화를 요청하는 권한은 없다. 알려진 평문 쌍은 우연히 유출됐거나 메시지 형식을 추측해 얻은 것이다.
Typical goal
알려진 쌍에서 키나 암호 구조의 정보를 찾아, 아직 평문을 모르는 새로운 암호문 C_new를 해독하거나 미래 통신을 공격하는 것.
Strength
암호문만 가진 COA보다 더 많은 정보를 가진다. 하지만 원하는 입력을 능동적으로 고를 수 있는 CPA보다는 약하다.
시험 답안으로 정리하기
-
고정 헤더
매일 암호화된 보고서가 항상 'WETTERBERICHT:'로 시작한다는 것을 공격자가 안다. 첫 부분의 평문과 암호문이 대응하므로 known plaintext pair가 생긴다. 공격자는 이 쌍으로 키나 keystream 반복을 분석해 나머지·미래 메시지를 공격한다.
-
예측 가능한 파일 형식
PNG, PDF, 프로토콜 패킷에는 고정 magic bytes나 구조가 있다. 암호화된 파일의 특정 위치 평문을 예측할 수 있으면 대응 평문-암호문 쌍을 얻게 된다. 단, 추측이 틀릴 수 있으므로 known/guessed plaintext를 구분해 검증해야 한다.
-
OTP/stream key 재사용
c=m XOR k에서 평문 m과 암호문 c 한 쌍을 알면 해당 구간 keystream k=m XOR c를 계산할 수 있다. 같은 keystream이 다른 메시지에 재사용되었다면 그 구간을 복호화할 수 있다. 이는 재사용 금지가 중요한 이유다.
헷갈리는 개념 비교하기
-
Known-Plaintext에서 평문은 누가 정하는가?
정상 통신에서 이미 사용된 평문 중 일부를 공격자가 알게 된 것이다. 공격자가 시험에 유리한 값을 마음대로 고른다는 보장은 없다.
-
Chosen-Plaintext에서 평문은 누가 정하는가?
공격자가 분석에 유리한 평문을 직접 선택하고 encryption oracle에서 암호문을 받는다.
-
왜 CPA가 더 강한가?
공격자는 000…0, 서로 한 비트만 다른 메시지, 반복 블록처럼 구조를 드러내기 좋은 입력을 의도적으로 선택할 수 있기 때문이다.
Capability ladder
Level
1. COA
Knowledge
Ciphertexts only
Intuition
봉인된 편지만 여러 장 주움.
Level
2. KPA
Knowledge
일부 known (plaintext,ciphertext) pairs
Intuition
몇 장은 원문 복사본도 우연히 가지고 있음.
Level
3. CPA
Knowledge
선택한 plaintext의 encryption을 요청
Intuition
내가 쓴 편지를 봉인해 달라고 할 수 있음.
Level
4. CCA
Knowledge
선택한 ciphertext의 decryption을 요청, challenge 자체 제외
Intuition
내가 만든 봉투를 열어 읽어 달라고 할 수 있음.
Important precision about ladder
이 사다리는 공격자의 정보·oracle 권한을 이해하기 위한 일반적인 강도 순서다.
현대의 IND-CPA/IND-CCA는 정식 game-based security 정의이고, 고전적인 COA/KPA의 '키나 평문 찾기' 설명과 승리 조건 표현이 완전히 동일한 것은 아니다.
시험에서는 강의 자료가 제시한 네 모델의 권한 차이를 정확히 쓰는 것이 우선이다. 과도한 수학적 세부사항보다 입력 자료와 목표를 분명히 한다.
문제를 푸는 순서
1단계: IND-CPA와 IND-CCA를 제외하라는 조건을 확인하고 COA·KPA를 선택한다.
2단계: COA에는 'nur Ciphertexte'와 목표 'Klartext oder Schlüssel'를 쓴다.
3단계: KPA에는 'bekannte Klartext-Ciphertext-Paare'를 쓴다.
4단계: KPA의 목표로 알려진 쌍을 이용해 key 또는 새로운 암호문을 공격한다고 쓴다.
5단계: 시간이 있으면 KPA의 plaintext는 known이지 attacker-chosen이 아니라는 차이를 덧붙인다.
시험장에서는 이렇게 쓰기
Four point german
Ciphertext-Only Attack (COA): Der Angreifer kennt nur einen oder mehrere Ciphertexte, die etwa mit demselben Schlüssel erzeugt wurden, und versucht daraus die Klartexte oder den Schlüssel zu bestimmen. Known-Plaintext Attack (KPA): Der Angreifer kennt zusätzlich einige zusammengehörige Klartext-Ciphertext-Paare (M_i,C_i) und nutzt diese, um den Schlüssel oder unbekannte beziehungsweise zukünftige Ciphertexte anzugreifen.
Compact german
COA: nur Ciphertexte; Ziel ist Klartext- oder Schlüsselgewinnung. KPA: bekannte (M_i,C_i)-Paare; daraus sollen Schlüssel oder neue Klartexte gewonnen werden.
Bonus difference
Bei KPA wählt der Angreifer die bekannten Klartexte nicht notwendigerweise selbst; genau das unterscheidet KPA von CPA.
채점 포인트
서로 다른 두 모델 이름을 정확히 썼는가?
COA에서 ciphertext만 있다고 명시했는가?
KPA에서 대응하는 plaintext-ciphertext pair를 안다고 명시했는가?
각 모델의 목표를 짧게라도 설명했는가?
KPA를 chosen plaintext로 잘못 설명하지 않았는가?
자주 틀리는 지점
COA를 ciphertext를 공격자가 선택하는 모델이라고 해석하는 것. 여기서 only는 공격자가 가진 자료가 암호문뿐이라는 뜻이다.
KPA는 모든 평문을 이미 안다고 쓰는 것. 일부 대응 쌍을 알고, 아직 모르는 암호문이나 키를 공격한다.
known과 chosen을 같은 뜻으로 쓰는 것. KPA에는 임의의 새 평문을 oracle에 넣을 권한이 없다.
목표가 반드시 키 복구뿐이라고 쓰는 것. 평문 복원이나 의미 있는 정보 누출도 공격 성공이 될 수 있다.
brute force를 공격자 모델 이름으로 답하는 것. brute force는 방법이고 COA/KPA는 공격자에게 주어진 정보 환경이다.
Dolev-Yao, passive attacker 같은 다른 모델을 아무 설명 없이 적는 것. 문제의 직접 근거 자료가 요구하는 정답은 COA와 KPA다.
한 줄로 기억하기
Only는 암호문만, Known은 정답지 몇 쌍을 우연히 앎, Chosen은 내가 시험문제를 고름. COA → KPA → CPA → CCA로 공격자의 손에 도구가 하나씩 늘어난다.
스스로 확인하기
-
암호문만 모아 문자 빈도를 분석한다. 어떤 모델인가?
Ciphertext-Only Attack(COA).
-
메시지가 항상 'WETTERBERICHT:'로 시작함을 알고 대응 암호문을 분석한다. 어떤 모델인가?
Known-Plaintext Attack(KPA).
-
공격자가 원하는 평문 0000을 암호화해 달라고 요청할 수 있다. KPA인가?
아니다. 이는 Chosen-Plaintext Attack(CPA) 권한이다.
-
COA와 KPA 중 누가 더 많은 정보를 갖는가?
KPA 공격자. 암호문에 더해 일부 대응 평문도 안다.
-
KPA에서 알려진 쌍 하나로 항상 키가 즉시 복구되는가?
아니다. 모델은 공격자에게 주어진 정보를 정의할 뿐, 모든 안전한 암호가 자동으로 깨진다는 뜻은 아니다.
설명의 근거
Gedächtnisprotokoll Computersystemsicherheit WS2025_26.md, Krypto / Angreifermodelle, 2-(c), 4 Punkte.
Übung 1 Lösung, p.11-12 — COA: ciphertext collection only; KPA: known plaintext-ciphertext pairs; CPA·CCA와의 구분.
Übung 1 Lösung, p.12 Bonus — Shift cipher의 빈도분석과 전수조사를 COA 직관으로 연결.
예제로 확인하기
-
공격자 모델과 oracle을 게임처럼 읽는 법을 구체적인 순서로 보기
시험장에서 계산기는 허용하지만 인터넷은 금지하는 것처럼, 공격자에게 허용되는 도구를 정확히 적어야 난이도와 성공 조건을 말할 수 있다.
공격자가 처음에 알고 있는 정보를 적는다.
어떤 oracle에 언제 질의할 수 있는지 적는다.
Challenger가 숨긴 값을 포함한 challenge를 만든다.
금지된 질의와 공격자의 최종 성공 조건을 적는다.
각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.
-
Ciphertext-only와 Known-plaintext 공격을 구체적인 순서로 보기
COA는 자물쇠로 잠긴 상자만 보는 상황, KPA는 몇 개 상자의 잠그기 전 내용과 잠근 뒤 모습을 함께 본 상황, CPA는 원하는 물건을 골라 상자에 넣어 잠근 결과를 요청할 수 있는 상황이다.
공격자가 평문을 전혀 모르는지 일부 쌍을 아는지 구분한다.
알려진 평문을 공격자가 선택했는지 우연히 관찰했는지 구분한다.
더 많은 능력을 가진 모델을 견디면 보통 더 약한 모델도 견딘다는 방향을 확인한다.
각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.
-
IND-CPA와 IND-CCA를 0부터 구분하기을 구체적인 순서로 보기
두 상자 중 하나를 잠가 보여 주고 어느 상자인지 맞히는 게임이다. CCA에서는 다른 잠긴 상자를 열어 달라고 물을 수 있지만 바로 시험에 나온 상자 c*를 열어 달라고 할 수는 없다.
m0와 m1의 길이를 같게 해 길이만으로 답을 맞히지 못하게 한다.
Challenger가 b를 무작위로 선택하고 c*=Enc(mb)를 만든다.
IND-CCA2에서는 challenge 이후에도 다른 암호문의 복호화를 질의할 수 있다.
c* 자체의 복호화는 금지하고 마지막에 b'를 추측한다.
각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.
이 문제가 어려운 이유
짧은 문제 문장 ‘IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라.’ 안에 정의, 조건, 처리 순서가 압축되어 있습니다. 아래 예시에서는 이를 한 단계씩 펼쳐 확인합니다.
AI 구두시험용 프롬프트
한 문항만 풀어라. 먼저 정답을 열지 말고 90초 안에 답안을 말한 뒤, css-ws2025-26-crypto-ang-003의 채점 프레임으로 스스로 채점하라. 문제: IND-CCA와 IND-CPA 이외의 Angreifermodelle 두 가지를 들고 짧게 설명하라.
학습 기록