CSS Tutor Study Hub 메인으로

Computersystemsicherheit 2025/26

실제 시험 문제 04

Wahr/Falsch · Krypto / Multiple Choice

Wahr/Falsch

문제

근거 신뢰도 높음실제 시험지 대조 완료Wahr/Falsch2점

독일어 원문

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?

Wahr/Falsch 즉시 채점

확신도

선택 후 즉시 개념 함정을 확인하세요.

단계별 힌트

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

0/6
채점 기준으로 내 답안 점검하기
  • Wahr/Falsch를 Falsch로 표시한다.
  • Modulo-Operation의 의미를 산술 범위 제한으로 설명한다.
  • 복호화 시작 위치는 block cipher mode/chaining이 결정한다고 쓴다.
  • CBC는 이전 ciphertext block/IV 의존, CTR은 병렬 가능처럼 예시를 든다.

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

0/4 slots

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

Falsch

short_ko

Modulo 때문이 아니라 mode 구조가 병렬성/의존성을 결정한다.

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

BEGINNER LESSON

1-(d) Modulo 때문에 암호문 앞·뒤 어디서나 복호화를 시작할 수 있을까?

ZERO-BASE START

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

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

기초 개념 01

Modulo, 경우의 수, key space를 처음부터 계산하기

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

시계에서 15시는 3시로 돌아오는 것이 modulo다. 자물쇠 번호가 9칸이고 각 칸에 26개 문자를 넣을 수 있다면 첫 칸 26가지마다 둘째 칸도 26가지가 붙으므로 선택지가 계속 곱해진다.

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

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

Modulo는 나눗셈의 나머지를 구해 값을 일정 범위 안으로 되돌리는 연산이다. 29 mod 26은 3이다. Key space는 공격자가 고려해야 하는 가능한 키 전체의 집합이다. 독립적인 자리마다 선택지가 여러 개 있으면 곱셈 원리를 사용한다. 예를 들어 9자리 각각에 26개 문자를 고를 수 있으면 26을 9번 곱한 26^9개다.

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

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

Modulo

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

Key space

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

Entropy

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

Multiplication principle

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

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

  1. mod n의 결과 범위가 0부터 n-1임을 확인한다.
  2. 각 자리가 독립적으로 선택되는지 확인한다.
  3. 선택지 수를 자리 수만큼 곱하고 거듭제곱으로 적는다.
  4. Modulo 산술과 block mode의 데이터 의존성은 별개의 문제임을 기억한다.

왜 여기서 많이 틀릴까요?

알파벳 26개와 키 길이 9를 26×9로 계산하면 안 된다. 9개 자리마다 26개 선택이 반복되므로 26^9다.

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

기초 개념 02

Block cipher, mode, padding을 서로 구분하기

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

네 칸짜리 상자만 처리하는 기계가 block cipher다. 상자를 어떤 순서로 연결해 보낼지가 mode이고, 마지막 상자에 물건이 한 개만 있을 때 남은 칸을 약속된 재료로 채우는 것이 padding이다.

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

그림 읽는 법 같은 평문 블록이 반복될 때 ECB는 같은 암호문 패턴을 남기고, CBC는 직전 암호문을 다음 블록에 연결합니다. CTR은 필요한 길이만큼 keystream을 사용하므로 짧은 마지막 조각에 별도 padding이 필요하지 않습니다. 모바일에서는 그림 안을 좌우로 움직이며 각 mode를 읽으세요. AES·ECB·CBC·CTR 완전 초보 상세 강의로 이동 →

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

Block cipher는 AES처럼 정확히 정해진 길이의 데이터 블록 하나를 키로 변환하는 부품이다. 긴 메시지를 여러 블록으로 처리하는 사용 규칙을 mode of operation이라고 하며 ECB, CBC, CTR 등이 있다. 마지막 조각이 블록보다 짧을 때 규칙에 맞는 값을 덧붙여 길이를 맞추는 것이 padding이다. XOR는 두 bit, 즉 0 또는 1인 두 자리 값이 서로 다를 때 1을 만드는 연산이다. 모든 mode가 padding을 요구하는 것은 아니다.

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

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

Block cipher

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

Mode of operation

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

Padding

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

IV / Nonce

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

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

  1. 블록 크기와 키 길이는 서로 다른 값임을 구분한다.
  2. ECB와 CBC는 보통 완전한 마지막 블록이 필요하므로 짧으면 padding한다.
  3. CTR은 keystream의 필요한 부분만 평문과 XOR할 수 있어 별도 padding 없이 부분 블록을 처리할 수 있다.
  4. CBC에서 중간 블록을 복호화하려면 현재 암호문과 직전 암호문 또는 IV가 필요하다.

왜 여기서 많이 틀릴까요?

‘블록 암호를 쓴다’에서 곧바로 ‘항상 padding이 필요하다’ 또는 ‘어디서나 독립 복호화가 가능하다’로 넘어가면 안 된다. mode를 먼저 확인해야 한다.

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

핵심부터 말하면 정답은 Falsch(거짓). Modulo는 숫자를 일정 범위 안에서 순환시키는 산술 규칙일 뿐이고, 특정 암호문 블록을 독립적으로 복호화할 수 있는지는 ECB·CBC·CTR 같은 운영 모드의 의존관계가 결정한다.

이 글에서 익힐 것

  • Modulo 연산을 시계 예시와 나머지 연산으로 이해한다.

  • 산술 규칙과 블록 간 의존관계를 구분한다.

  • ECB, CBC, CTR의 임의 접근(random access) 조건을 비교한다.

  • 복기 문장의 모호한 표현을 시험에서 안전하게 반박한다.

개념부터 차근차근

  • Modulo는 시계 산술

    a mod n은 a를 n으로 나눈 나머지다. 29 mod 26=3이고, 알파벳을 0~25로 번호 붙이면 Z 다음에 다시 A로 돌아오게 만들 수 있다. 시계에서 10시+5시간=3시인 것도 mod 12의 직관이다. Modulo는 결과값의 범위를 0부터 n-1 안으로 되돌린다.

  • 복호화 가능 위치는 데이터 의존성 문제

    암호문 C_i에서 평문 P_i를 구할 때 C_i만 있으면 되는지, 이전 블록 C_{i-1}이나 IV·counter 같은 추가값이 필요한지를 묻는 것이 복호화 시작 위치 문제다. 이는 숫자가 범위를 도는지와 전혀 다른 층의 질문이다.

  • 운영 모드가 블록 연결 방식을 정한다

    ECB는 각 블록을 독립 처리한다. CBC는 현재 평문을 얻을 때 현재 암호문과 이전 암호문을 함께 쓴다. CTR은 블록 위치에 대응하는 nonce/counter로 keystream을 만들 수 있으면 원하는 위치를 직접 처리할 수 있다. 이 차이가 random access와 병렬성을 결정한다.

예제로 확인하기

  • Shift cipher에서 Modulo가 하는 일

    1. A=0,...,Z=25, key k=3이라고 하자.

    2. X=23을 암호화하면 (23+3) mod 26=0, 즉 A가 된다.

    3. 복호화는 (0-3) mod 26=23으로 X를 얻는다.

    4. Modulo는 알파벳 범위를 벗어나지 않게 했을 뿐 문장 뒤에서 먼저 해독할 수 있는지 여부를 보장하지 않았다.

  • CBC에서 중간 블록 P_i 구하기

    1. CBC 복호화 식은 P_i=D_k(C_i) XOR C_{i-1}이다.

    2. 따라서 C_i만 떼어 놓으면 P_i를 얻을 수 없고 직전 암호문 C_{i-1}도 필요하다.

    3. 첫 블록 P_1에는 이전 암호문 대신 IV가 필요하다.

    4. 다만 C_{i-1}과 C_i를 함께 갖고 있다면 앞 블록부터 순서대로 전부 복호화하지 않고도 P_i를 계산할 수 있다. 이 미묘한 점까지 말하면 정확하다.

  • CTR에서 원하는 위치 처리하기

    1. CTR 식은 P_i=C_i XOR E_k(ctr(nonce,i))이다.

    2. 키, nonce, 블록 번호 i를 알면 해당 위치의 keystream을 직접 계산할 수 있다.

    3. 이 성질은 Modulo 때문이 아니라 counter 기반 모드 설계 때문이다.

헷갈리는 개념 비교하기

  • ECB

    P_i=D_k(C_i)

    각 블록 독립. 원하는 블록부터 복호화 가능하지만 패턴 노출 때문에 일반 데이터 보호에는 안전하지 않다.

  • CBC

    P_i=D_k(C_i) XOR C_{i-1}

    현재와 이전 암호문 블록이 필요하다. 첫 블록은 IV 필요. 복호화 계산은 필요한 입력이 있으면 병렬화할 수 있다.

  • CTR

    P_i=C_i XOR E_k(ctr(nonce,i))

    해당 counter 값을 계산할 수 있으면 직접 접근 가능. nonce/counter 재사용은 심각한 보안 문제다.

문장을 하나씩 판별하기

  • 문장은 Modulo라는 원인과 임의 위치 복호화라는 결과를 연결한다.

  • 하지만 Modulo의 역할은 정수 범위 순환이고, 블록 간 선행정보 필요 여부는 운영 모드의 식에서 나온다.

  • CBC라는 반례를 들면 Modulo가 등장하는 암호 시스템이라도 이전 블록/IV 같은 문맥이 필요할 수 있다.

  • 복기 원문의 표현이 특이하므로 시험에서는 'mode-dependent, not caused by modulo'라고 핵심을 분명히 쓰는 것이 안전하다.

정답까지 사고 과정

  1. 1단계: Modulo의 정의를 나머지와 범위 순환으로 제한한다.

  2. 2단계: '어디서 시작 가능'을 현재 블록 복호화에 필요한 입력의 문제로 번역한다.

  3. 3단계: ECB/CBC/CTR 식을 비교한다.

  4. 4단계: 모드마다 답이 다르므로 Modulo가 보편적으로 보장한다는 주장을 Falsch로 판정한다.

시험장에서는 이렇게 쓰기

최소 답안

Falsch.

안전한 두 문장 답안

Falsch. Die Modulo-Operation beschränkt Rechenwerte auf einen Restklassenraum, bestimmt aber nicht die Abhängigkeiten zwischen Ciphertextblöcken. Ob ein Block unabhängig entschlüsselt werden kann, hängt vom Betriebsmodus ab; bei CBC benötigt man etwa C_i und C_{i-1} beziehungsweise den IV.

Bonus sentence

CTR erlaubt gezielten Zugriff, wenn Schlüssel, Nonce und Blockzähler bekannt sind, jedoch wegen seiner Modusstruktur und nicht wegen Modulo.

자주 틀리는 지점

  • Modulo가 역연산을 가능하게 하니 아무 위치나 된다고 비약하는 것.

  • CBC 복호화는 무조건 처음부터 순차 실행해야 한다고 쓰는 것. P_i에는 C_i와 C_{i-1}가 필요하지만 모든 앞 평문을 먼저 계산할 필요는 없다.

  • ECB의 임의 접근성을 안전성과 동일시하는 것. ECB는 독립적이지만 패턴을 노출한다.

  • CTR에서 nonce와 counter 정보를 무시하는 것. 키만으로 위치별 keystream을 정할 수 있는 것은 아니다.

한 줄로 기억하기

Modulo는 숫자가 경기장 밖으로 나가지 않게 하는 트랙이고, mode는 선수들이 손을 잡고 달릴지 각자 달릴지를 정하는 규칙이다. 어디서 출발할 수 있는지는 트랙이 아니라 연결 규칙이 정한다.

스스로 확인하기

  • CBC에서 P_5를 구하는 데 필요한 암호문 블록은?

    C_5와 C_4, 그리고 키가 필요하다.

  • 29 mod 26의 값과 이 계산이 복호화 순서를 보장하는지 답하라.

    값은 3이다. 이 연산 자체는 복호화 순서를 보장하지 않는다.

  • CTR이 random access를 허용하는 직접 이유는?

    블록 번호에 해당하는 counter의 암호화값을 독립적으로 계산해 keystream을 만들 수 있기 때문이다.

설명의 근거

  • Gedächtnisprotokoll Computersystemsicherheit WS2025_26.md — Krypto / Multiple Choice; 특이한 복기 표현을 함정 문장으로 보존.

  • Übung 2 Lösung, p.1-2 — ECB, CBC, CTR의 의존성과 병렬성.

  • Übung 1 Lösung, p.9-10 — Vigenère/Shift 계산에서 modulo 26의 역할.

이 문제가 어려운 이유

짧은 문제 문장 ‘Kryptographie에서 Modulo-Operation 때문에 ciphertext의 어느 위치, 즉 앞이나 뒤에서 복호화를 시작해도 상관없다. Wahr/Falsch?’ 안에 정의, 조건, 처리 순서가 압축되어 있습니다. 아래 예시에서는 이를 한 단계씩 펼쳐 확인합니다.

AI 구두시험용 프롬프트

한 문항만 풀어라. 먼저 정답을 열지 말고 90초 안에 답안을 말한 뒤, css-ws2025-26-crypto-mc-004의 채점 프레임으로 스스로 채점하라. 문제: Kryptographie에서 Modulo-Operation 때문에 ciphertext의 어느 위치, 즉 앞이나 뒤에서 복호화를 시작해도 상관없다. Wahr/Falsch?

학습 기록

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