Wahr/Falsch
문제
독일어 원문
Hashwerte eines Hashingalgorithmus haben verschiedene Längen abhängig von der Länge des Eingabetexts.
한국어 해석
Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch?
Wahr/Falsch 즉시 채점
선택 후 즉시 개념 함정을 확인하세요.
단계별 힌트
막혔을 때만 한 단계씩 여세요. 정답을 바로 읽는 것보다 기억을 꺼내는 시간이 중요합니다.
- 첫 힌트: Hash의 출력 크기는 메시지 크기가 아니라 알고리즘 이름이 정한다.
- 계산형 문항이 아니다.
- 판단 절차: chosen hash function의 digest length를 확인한다.
- 함정: 압축처럼 입력이 길면 출력도 길어진다고 생각하기
- 함정: Hash table의 hashing과 cryptographic hash를 혼동하기
- 후속 점검: 고정 출력 길이가 collision 가능성과 어떤 관계가 있는가?
채점 기준으로 내 답안 점검하기
- Wahr/Falsch를 Falsch로 표시한다.
- Hashfunktion은 arbitrary input을 fixed-length digest로 보낸다고 쓴다.
- 입력 길이와 digest 길이를 분리해서 설명한다.
- 예시로 SHA-256의 256-bit output처럼 함수별 출력 길이를 든다.
답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.
0/4 slots
정답과 핵심 해설 확인하기
Falsch
입력은 beliebige Größe일 수 있지만 출력 Hashwert는 feste, konstante Länge이다.
개념부터 다시 보는 상세 풀이
BEGINNER LESSON
1-(c) 입력이 길어지면 Hashwert도 길어질까?
ZERO-BASE START
정말 아무것도 모른다고 가정하고 시작합니다
전문 용어를 알고 있다고 가정하지 않습니다. 먼저 일상적인 장면을 보고, 그 장면의 사람과 행동에 실제 보안 용어를 하나씩 붙인 뒤, 시스템에서 일어나는 순서를 따라갑니다.
기초 개념 01
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를 만드는 입력을 현실적인 시간에 찾기 어려워야 한다는 성질입니다.
프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.
- 출력 길이는 입력 문장 길이가 아니라 알고리즘이 정한 bit 수로 고정된다.
- Preimage resistance는 digest에서 원문을 찾기 어려운 성질이다.
- Collision resistance는 서로 다른 두 입력의 같은 digest를 찾기 어려운 성질이다.
- MD5처럼 실용적인 collision 공격이 알려진 알고리즘은 보안 용도로 사용하지 않는다.
왜 여기서 많이 틀릴까요?
collision-free라는 절대 표현과 collision-resistant라는 계산적으로 찾기 어렵다는 표현을 구분해야 한다.
조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.
핵심부터 말하면 정답은 Falsch(거짓). 하나의 해시 알고리즘을 정하면 입력 길이와 무관하게 출력 digest 길이는 고정된다. SHA-256은 빈 문자열이든 거대한 파일이든 항상 256비트를 출력한다.
이 글에서 익힐 것
암호학적 해시 함수의 입력과 출력을 구분한다.
고정 출력 길이가 충돌 가능성과 모순되지 않는 이유를 설명한다.
SHA-256의 256과 입력 길이를 혼동하지 않는다.
해시·암호화·압축의 목적 차이를 구분한다.
개념부터 차근차근
-
해시는 디지털 지문 생성기
해시 함수 H는 임의 길이 입력 m을 짧은 고정 길이 값 h=H(m)으로 바꾼다. 출력은 Hashwert, digest 또는 fingerprint라고 부른다. 파일이 조금만 달라져도 digest가 크게 달라지는 성질을 이용해 무결성 검사 등에 쓴다.
-
해시는 암호화가 아니다
암호화는 키를 사용하고 허가된 사람이 복호화할 수 있어야 한다. 암호학적 해시는 보통 키 없이 계산하며 원래 입력으로 되돌리는 복호화 연산을 제공하지 않는다. 비밀번호 저장에서 해시를 쓰는 이유도 원문 비밀번호를 복원하지 않고 입력이 맞는지 비교하기 위해서다.
-
함수가 출력 크기를 정한다
SHA-256의 출력은 256비트=32바이트이고, 보통 16진수로는 64글자다. SHA-512는 512비트=64바이트, 16진수 128글자다. 입력 크기가 아니라 선택한 알고리즘과 출력 변형이 길이를 결정한다.
-
임의 길이 입력을 고정 길이에 넣으면 충돌은 반드시 존재
가능한 입력은 사실상 무한하지만 n비트 출력은 2^n개뿐이다. 비둘기집 원리(Pigeonhole Principle)에 따라 서로 다른 두 입력이 같은 출력으로 가는 collision은 수학적으로 반드시 존재한다. 안전한 해시는 충돌이 없다고 보장하는 것이 아니라 현실적인 계산으로 찾기 매우 어렵게 만든다.
예제로 확인하기
상황 설정
SHA-256에 길이가 전혀 다른 세 입력을 넣는다고 하자.
풀이 순서
입력 A: 빈 문자열, 길이 0바이트.
입력 B: 'Hallo', 길이 5바이트.
입력 C: 10GB짜리 파일.
세 입력의 digest 내용은 서로 다르겠지만 각각 정확히 256비트다.
화면에서 16진수로 표시하면 1개의 16진수 문자가 4비트를 나타내므로 256/4=64글자가 된다. 입력이 커져도 64글자라는 표시 길이는 변하지 않는다.
Nearby concepts
고정 길이는 모든 해시 알고리즘이 서로 같은 길이를 낸다는 뜻이 아니다. SHA-256과 SHA-512처럼 알고리즘마다 정한 길이는 다르다.
일부 API가 digest를 Base64나 16진수로 표현하면 화면의 문자 수는 인코딩에 따라 달라진다. 그러나 digest의 비트 길이는 그대로다.
XOF(extendable-output function)인 SHAKE처럼 호출자가 출력 길이를 요청하는 특수 함수도 있다. 그러나 일반적인 시험 문맥의 고정 출력 암호학적 해시와 구분한다.
파일을 조각내 해시 목록을 만들거나 Merkle tree를 쓰면 전체 자료 구조의 길이는 커질 수 있지만, 개별 해시 출력 길이가 입력 길이에 비례해 바뀌는 것은 아니다.
문장을 하나씩 판별하기
문장은 'Hashwerte ... verschiedene Längen abhängig von der Länge des Eingabetexts', 즉 입력이 길면 출력도 달라진다고 주장한다.
이는 압축 파일이나 일반 데이터 변환의 직관을 해시에 잘못 적용한 함정이다.
암호학적 해시의 정의는 임의 길이 입력을 정해진 고정 길이 출력으로 매핑하는 것이므로 Falsch다.
정답까지 사고 과정
1단계: 입력은 beliebige Länge, 출력은 feste Länge라는 정의를 떠올린다.
2단계: SHA-256은 어떤 입력에도 256비트라는 반례를 든다.
3단계: 따라서 출력 길이가 입력 길이에 의존한다는 문장을 Falsch로 판정한다.
4단계: 여유가 있으면 알고리즘마다 출력 길이가 다를 수 있지만 같은 알고리즘 내에서는 고정이라고 명확히 쓴다.
시험장에서는 이렇게 쓰기
최소 답안
Falsch.
안전한 두 문장 답안
Falsch. Eine kryptographische Hashfunktion bildet Eingaben beliebiger Länge auf Hashwerte einer für die Funktion festgelegten Länge ab. SHA-256 liefert zum Beispiel unabhängig von der Eingabelänge stets 256 Bit.
Bonus sentence
Da der Ausgaberaum endlich ist, existieren Kollisionen mathematisch trotzdem; sie sollen nur praktisch schwer zu finden sein.
자주 틀리는 지점
입력 파일이 길면 hash 문자열도 길 것이라고 압축과 혼동하는 것.
SHA-256의 출력이 256바이트라고 쓰는 것. 256비트=32바이트다.
16진수 64글자를 64비트라고 보는 것. 한 글자가 4비트이므로 256비트다.
고정 길이이므로 collision이 없다고 결론 내리는 것. 오히려 유한한 출력 공간 때문에 collision은 반드시 존재한다.
해시는 복호화 키가 없는 암호화라고만 설명하는 것. 해시는 본질적으로 일방향 요약 함수다.
한 줄로 기억하기
해시는 문서의 축소판이 아니라 규격이 정해진 지문 카드다. 책 한 페이지도, 도서관 전체도 SHA-256 카드에는 늘 256비트 지문 하나가 찍힌다.
스스로 확인하기
-
SHA-256 digest를 16진수로 표시하면 보통 몇 글자인가?
64글자. 256비트 ÷ 4비트/글자 = 64다.
-
입력이 무한히 많은데 출력이 2^256개라면 collision은 존재하는가?
반드시 존재한다. 보안 목표는 존재하지 않음이 아니라 찾기 어려움이다.
-
SHA-256과 SHA-512의 출력 길이가 다른 것은 입력 길이 때문인가?
아니다. 선택한 해시 함수가 출력 길이를 정하기 때문이다.
설명의 근거
Gedächtnisprotokoll Computersystemsicherheit WS2025_26.md — Krypto / Multiple Choice.
Übung 2 Lösung, p.3-4 — Hashfunktionen과 고정 길이 출력.
Vorlesung 03 Symmetrische Kryptographie, p.35-40 — kryptographische Hashfunktionen.
이 문제가 어려운 이유
짧은 문제 문장 ‘Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch?’ 안에 정의, 조건, 처리 순서가 압축되어 있습니다. 아래 예시에서는 이를 한 단계씩 펼쳐 확인합니다.
AI 구두시험용 프롬프트
한 문항만 풀어라. 먼저 정답을 열지 말고 90초 안에 답안을 말한 뒤, css-ws2025-26-crypto-mc-003의 채점 프레임으로 스스로 채점하라. 문제: Hashingalgorithmus의 Hashwert 길이는 입력 텍스트 길이에 따라 달라진다. Wahr/Falsch?
학습 기록