CSS Tutor Study Hub 메인으로

Computersystemsicherheit 2025/26

실제 시험 문제 13

단답형 · Krypto / Asymmetrische Kryptographie

단답형

문제

근거 신뢰도 높음실제 시험지 대조 완료단답형4점

독일어 원문

Beschreiben Sie einen Selective-Forgery-Under-Chosen-Message-Angriff im Kontext von digitalen Signaturen.

한국어 해석

digital signatures 문맥에서 Selective-Forgery-Under-Chosen-Message-Angriff를 설명하라.

직접 답안 작성

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

0/4 slots

답안은 브라우저에만 임시 저장됩니다. 채점 프레임과 비교해 스스로 판정하세요.

단계별 힌트

막혔을 때만 한 단계씩 여세요. 정답을 바로 읽는 것보다 기억을 꺼내는 시간이 중요합니다.

0/6
채점 기준으로 내 답안 점검하기
  • Chosen Message Attack: 선택 메시지에 대한 signature를 받을 수 있음을 쓴다.
  • Selective Forgery: target/new message가 공격 전에 정해져 있음을 쓴다.
  • Forgery는 target에 대한 valid signature이며 trivial replay가 아니어야 한다.
  • 위반되는 목표가 authenticity/integrity/unforgeability임을 언급한다.

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

0/4 slots

정답과 핵심 해설 확인하기
summary_ko

공격자는 chosen messages에 대한 signatures를 받을 수 있고, 사전에 정한 target message에 대해 새 valid signature를 위조하면 성공한다.

개념부터 다시 보는 상세 풀이

BEGINNER LESSON

3-(b) Selective Forgery under Chosen-Message Attack을 처음부터 이해하기

ZERO-BASE START

정말 아무것도 모른다고 가정하고 시작합니다

전문 용어를 알고 있다고 가정하지 않습니다. 먼저 일상적인 장면을 보고, 그 장면의 사람과 행동에 실제 보안 용어를 하나씩 붙인 뒤, 시스템에서 일어나는 순서를 따라갑니다.

기초 개념 01

Digital signature는 무엇을 증명하는가

1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다

편지 내용을 가리는 봉투가 encryption이라면 signature는 편지 내용에 연결된 위조하기 어려운 도장이다. 누구나 도장을 검사할 수 있지만 소유자만 새 도장을 만들 수 있어야 한다.

지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.

이제 실제 용어를 하나씩 붙여 봅시다

Digital signature는 메시지를 숨기는 기술이 아니라 메시지가 private key 소유자에게서 왔고 중간에 바뀌지 않았음을 검증하는 기술이다. 보통 긴 메시지 자체가 아니라 메시지의 hash에 서명한다. RSA의 단순 교재식 표현에서는 서명 s=h^d mod n을 만들고 검증자는 s^e mod n이 h와 같은지 확인한다.

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

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

Digital signature

private key 소유자가 특정 메시지에 서명했음을 검증하게 하는 값입니다.

Signing

메시지와 private key로 signature를 만드는 과정입니다.

Verification

메시지, signature, public key로 서명의 유효성을 검사하는 과정입니다.

Authenticity / Integrity

서명은 서명자와 메시지의 진위를 확인하지만 메시지 내용을 숨기는 confidentiality 기능은 아닙니다.

프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.

  1. 메시지를 hash해 고정 길이 digest h를 만든다.
  2. 서명자는 private key로 h에 대한 signature를 만든다.
  3. 검증자는 public key와 원래 메시지로 signature를 확인한다.
  4. Selective forgery에서는 공격 전에 정한 특정 새 메시지에 대한 유효 서명을 만드는 것이 목표다.

왜 여기서 많이 틀릴까요?

서명은 confidentiality를 제공하지 않는다. 또한 교재의 raw RSA 계산은 개념 연습이며 실제로는 안전한 signature encoding이 필요하다.

조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.

기초 개념 02

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

1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다

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

지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.

이제 실제 용어를 하나씩 붙여 봅시다

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

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

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

Attacker model

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

Oracle

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

Challenge

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

Advantage

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

프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.

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

왜 여기서 많이 틀릴까요?

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

조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.

기초 개념 03

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

1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다

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

지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.

이제 실제 용어를 하나씩 붙여 봅시다

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

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

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

Hash function

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

Digest

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

Collision

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

Preimage resistance

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

프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.

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

왜 여기서 많이 틀릴까요?

collision-free라는 절대 표현과 collision-resistant라는 계산적으로 찾기 어렵다는 표현을 구분해야 한다.

조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.

핵심부터 말하면 공격자는 공격을 시작하기 전에 위조하려는 특정 target message m*를 정한다. 그 뒤 다른 선택 메시지들에 대한 정상 서명을 signing oracle에서 받아 학습하고도, oracle에 m*의 서명을 요청하지 않은 채 검증을 통과하는 유효한 σ*를 m*에 대해 만들어 내면 selective forgery에 성공한다.

이 문제가 어려운 이유

Selective, forgery, chosen-message라는 세 수식어가 각각 다른 부분을 설명한다. Selective는 목표 메시지의 범위, chosen-message는 공격자의 oracle 권한, forgery는 최종 성공 조건이다. 세 단어를 분리하면 정의가 자연스럽게 조립된다.

이 글에서 익힐 것

  • 디지털 서명의 KeyGen·Sign·Verify를 설명한다.

  • 서명이 제공하는 authenticity/integrity와 encryption의 confidentiality를 구분한다.

  • signing oracle이 무엇인지 이해한다.

  • selective target과 existential target의 차이를 구분한다.

  • 단순 replay와 새로운 유효 위조를 구분한다.

개념부터 차근차근

  • Algorithm

    KeyGen

    Role

    서명용 private key sk와 검증용 public key pk를 만든다.

  • Algorithm

    Sign(sk,m)

    Role

    메시지 m에 대한 서명 σ를 private key로 만든다. 실제로는 보통 메시지 hash와 안전한 encoding을 서명한다.

  • Algorithm

    Verify(pk,m,σ)

    Role

    public key로 σ가 m에 대해 유효한지 확인해 accept/reject를 낸다.

  • Correctness

    정상 키와 정상 서명이라면 Verify(pk,m,Sign(sk,m))=accept여야 한다.

정확한 의미 짚기

  • Authentizität: 해당 private key 보유자가 서명을 만들었다는 근거를 준다.

  • Integrität: 서명 후 메시지가 바뀌면 검증이 실패해야 한다.

  • Non-repudiation은 키 관리·법적 맥락까지 필요하므로 수학적 검증만으로 무조건 보장된다고 과장하지 않는다.

  • 기밀성은 기본 서명의 목적이 아니다. 누구나 메시지를 읽을 수 있어도 서명은 유효할 수 있다. 비밀이 필요하면 별도 암호화가 필요하다.

Decode the name

  • Word

    Chosen-Message Attack (CMA)

    Meaning

    공격자가 자신에게 유리한 메시지 m₁,m₂,…를 골라 signing oracle에 보내고 각 정상 서명 σ_i=Sign(sk,m_i)를 받을 수 있다.

  • Word

    Forgery

    Meaning

    private key 없이도 검증식 Verify(pk,m*,σ*)=accept를 만족하는 메시지-서명 쌍을 새로 만드는 것.

  • Word

    Selective

    Meaning

    공격자가 oracle 답을 보기 전에 특정 target message m*를 미리 정한다. 아무 메시지 하나만 위조하면 되는 existential forgery보다 목표가 제한된다.

단계별로 따라가기

  1. 0. Target 선택

    공격자는 공격 시작 전에 'Überweise 10000 Euro an Eve' 같은 특정 m*를 위조하겠다고 정한다. 이것이 selective의 핵심이다.

  2. 1. Public key 획득

    검증용 pk는 공개되어 있으므로 공격자가 안다. private signing key sk는 모른다.

  3. 2. Chosen-message 질의

    공격자는 m₁,m₂,…를 자유롭게 골라 signing oracle에 보내 유효한 σ₁,σ₂,…를 받는다. 질의는 공격 전략에 유리하게 선택할 수 있고 adaptive 모델에서는 이전 서명을 보고 다음 메시지를 고른다.

  4. 3. Target 제외

    m* 자체의 정상 서명을 oracle에서 받아 그대로 제출하면 위조가 아니다. 따라서 target은 signing queries에 포함되지 않아야 한다.

  5. 4. 위조 출력

    공격자는 (m*,σ*)를 출력한다.

  6. 5. 성공 판정

    Verify(pk,m*,σ*)=accept이고 m*에 대한 서명을 oracle에서 받은 적이 없으면 selective forgery가 성공한다.

Easy analogy

Story

학생은 교무실의 도장 기계에 자신이 고른 연습 문서들을 넣어 진짜 도장을 받을 수 있다. 하지만 공격 시작 전에 목표로 정한 'Eve에게 졸업장을 발급한다' 문서는 기계에 넣을 수 없다. 연습 문서와 도장을 분석해 목표 졸업장에 통과 가능한 도장을 직접 만들면 selective forgery다.

Lesson

진짜 도장 샘플을 많이 가질 수 있다는 것이 chosen-message 권한이고, 특정 졸업장을 미리 목표로 삼는 것이 selective이며, 목표 문서의 새 도장을 만드는 것이 forgery다.

정확한 의미 짚기

  • oracle에서 m*와 σ*를 그대로 받아 다시 제출: 정상 서명의 replay이지 target에 대한 새 위조가 아니다.

  • 서명된 메시지 m과 σ를 함께 복사해 제3자에게 전달: 프로토콜의 replay 문제일 수 있지만 서명 알고리즘 위조는 아니다.

  • m*를 바꾸었는데 Verify가 reject: 유효한 forgery가 아니다.

  • private key를 정상적으로 소유한 서명자가 만든 σ: 공격자의 위조가 아니다.

  • hash collision을 찾았지만 유효한 target signature로 연결하지 못함: 공격 준비일 수 있으나 아직 성공 조건을 충족하지 않았다.

헷갈리는 개념 비교하기

  • private signing key 자체를 복구하거나 임의의 모든 서명을 만들 수 있음

    Total break

    가장 큰 성공

  • 공격자가 받은 임의의 메시지에 대해 위조 가능

    Universal forgery

    매우 강함

  • 사전에 지정한 특정 m*에 대해 위조

    Selective forgery

    목표가 정해져 있음

  • 공격자가 고른 새로운 메시지 하나라도 유효하게 위조

    Existential forgery

    성공하기 가장 쉬운 위조 목표

Security context

  • 현대 서명에서 표준적으로 원하는 강한 최소 목표는 EUF-CMA, 즉 existential unforgeability under chosen-message attack이다.

  • EUF-CMA에서 공격자는 signing oracle을 사용해도 이전에 서명을 요청하지 않은 어떤 새 메시지에 대해서도 유효한 서명을 만들지 못해야 한다.

  • Selective security는 target을 사전에 고정하므로 공격자에게 더 제한적인 게임이다. selective forgery조차 가능하면 시스템은 당연히 심각하게 취약하다.

  • Strong unforgeability에서는 이미 서명 질의한 메시지라도 기존 것과 다른 새 서명까지 만드는 것을 금지한다. 시험 4점 답안에는 보통 필요 없지만 replay와 새 서명을 구분할 때 유용하다.

Toy vulnerability intuition

  • 안전하지 않은 서명이 메시지의 각 부분에 독립적으로 서명하고 단순 결합한다고 가정하자.

  • 공격자는 chosen messages에 대한 서명을 받아 조각의 관계를 학습하거나 조합할 수 있다.

  • 그 결과 미리 목표로 한 m*의 유효 서명을 조립할 수 있다면 chosen-message 질의가 selective forgery로 이어진다.

  • 실제 안전한 서명은 전체 메시지의 안전한 hash·encoding과 검증된 서명 스킴을 사용해 이런 대수적 조작을 막아야 한다.

문제를 푸는 순서

  1. 1단계: target message m*를 공격 전에 정한다고 쓴다.

  2. 2단계: 공격자는 chosen messages에 대해 signing oracle에서 signatures를 받을 수 있다고 쓴다.

  3. 3단계: m* 자체는 질의하지 않았다고 명시한다.

  4. 4단계: 목표는 Verify(pk,m*,σ*)=accept인 새 σ* 생성이라고 쓴다.

  5. 5단계: private key 없이 성공한다는 점을 덧붙인다.

시험장에서는 이렇게 쓰기

Four point german

Bei einer Selective Forgery unter einem Chosen-Message-Angriff legt der Angreifer vor Beginn einen Zieltext m* fest. Er darf für selbst gewählte andere Nachrichten Signaturen von einem Signaturorakel erhalten. Anschließend gewinnt er, wenn er ohne Kenntnis des privaten Signaturschlüssels eine Signatur σ* ausgibt, für die Verify(pk,m*,σ*) akzeptiert, obwohl er m* nicht beim Orakel signieren ließ.

Compact german

Ziel m* vorher festlegen; Signaturen für gewählte andere Nachrichten abfragen; eine neue gültige Signatur für das nicht abgefragte m* erzeugen.

채점 포인트

  • target가 사전에 지정된다는 selective 요소를 썼는가?

  • 선택 메시지에 대한 signing oracle 권한을 썼는가?

  • target 자체를 oracle에 요청하지 않았다고 썼는가?

  • Verify가 accept하는 유효한 새 서명을 성공 조건으로 썼는가?

  • encryption/decryption oracle과 혼동하지 않았는가?

자주 틀리는 지점

  • selective를 공격 중 마음에 드는 메시지를 나중에 고른다는 뜻으로 쓰는 것. target은 사전에 고정한다.

  • chosen-message를 공격자가 암호화 메시지를 고르는 CPA와 혼동하는 것. 여기서는 signing oracle이다.

  • 목표 메시지의 서명을 oracle에서 받은 뒤 제출해도 위조라고 쓰는 것.

  • 서명의 목표를 confidentiality라고 쓰는 것. 핵심은 authenticity와 integrity다.

  • 공격 성공 조건을 private key 복구로만 제한하는 것. 유효한 target signature 하나를 만들면 selective forgery 성공이다.

  • signature와 hash를 완전히 같은 값이라고 생각하는 것. 실제 서명은 보통 hash/encoding에 private-key operation을 적용한 별도 값이다.

한 줄로 기억하기

S-C-F 순서로 기억한다: Select target first → Choose other messages for signatures → Forge the target signature.

스스로 확인하기

  • target m*는 언제 정하는가?

    공격 시작 전, oracle 답을 보기 전에 정한다.

  • chosen-message 공격자가 접근하는 oracle은?

    선택한 메시지의 정상 서명을 주는 signing oracle.

  • m*의 정상 서명을 oracle에서 받아 그대로 내면 forgery인가?

    아니다. target은 질의되지 않았어야 한다.

  • 최종 검증 조건은?

    Verify(pk,m*,σ*)=accept.

  • Selective와 existential 중 공격자가 목표를 더 늦게 자유롭게 고를 수 있는 것은?

    Existential forgery. selective에서는 target이 사전 고정된다.

설명의 근거

  • Gedächtnisprotokoll Computersystemsicherheit WS2025_26.md, Krypto / Asymmetrische Kryptographie, 3-(b), 4 Punkte.

  • Vorlesung 04 Asymmetrische Kryptographie, p.25-32 — digitale Signaturen, 검증 및 위조 보안 개념.

예제로 확인하기

  • Digital signature는 무엇을 증명하는가을 구체적인 순서로 보기

    편지 내용을 가리는 봉투가 encryption이라면 signature는 편지 내용에 연결된 위조하기 어려운 도장이다. 누구나 도장을 검사할 수 있지만 소유자만 새 도장을 만들 수 있어야 한다.

    1. 메시지를 hash해 고정 길이 digest h를 만든다.

    2. 서명자는 private key로 h에 대한 signature를 만든다.

    3. 검증자는 public key와 원래 메시지로 signature를 확인한다.

    4. Selective forgery에서는 공격 전에 정한 특정 새 메시지에 대한 유효 서명을 만드는 것이 목표다.

    각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.

  • 공격자 모델과 oracle을 게임처럼 읽는 법을 구체적인 순서로 보기

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

    1. 공격자가 처음에 알고 있는 정보를 적는다.

    2. 어떤 oracle에 언제 질의할 수 있는지 적는다.

    3. Challenger가 숨긴 값을 포함한 challenge를 만든다.

    4. 금지된 질의와 공격자의 최종 성공 조건을 적는다.

    각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.

  • Hash는 암호화가 아니라 고정 길이 지문이다을 구체적인 순서로 보기

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

    1. 출력 길이는 입력 문장 길이가 아니라 알고리즘이 정한 bit 수로 고정된다.

    2. Preimage resistance는 digest에서 원문을 찾기 어려운 성질이다.

    3. Collision resistance는 서로 다른 두 입력의 같은 digest를 찾기 어려운 성질이다.

    4. MD5처럼 실용적인 collision 공격이 알려진 알고리즘은 보안 용도로 사용하지 않는다.

    각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.

AI 구두시험용 프롬프트

한 문항만 풀어라. 먼저 정답을 열지 말고 90초 안에 답안을 말한 뒤, css-ws2025-26-crypto-asym-002의 채점 프레임으로 스스로 채점하라. 문제: digital signatures 문맥에서 Selective-Forgery-Under-Chosen-Message-Angriff를 설명하라.

학습 기록

이 문항을 얼마나 이해했나요?