문서 읽는 데 56분 · 48강 · 5과목 · 정보시스템 구축관리

열쇠가 두 개라고?: 비대칭키와 해시, 그리고 암호 공격

목차 24
전체 59강 중 48강 · 5과목 · 정보시스템 구축관리

5과목(정보시스템 구축 관리) 정보보호 영역의 두 번째 강. 47강 대칭키가 풀지 못한 "키를 어떻게 안전하게 나눌까(키 분배 문제)"를 비대칭키(공개키)가 어떻게 해결하는지에서 출발한다. 비대칭키 두 사용 방식 ★상공나개★, 5인방(RSA·ECC·DH·ElGamal·DSA)과 안전성 근거 — ★RSA=리·샤·아·인수★(소인수분해)·★ECC=짧·강·모바일★(타원곡선 이산대수), 무결성을 지키는 해시 4대 특성 ★해시=일·충·고·눈★, 해시+비밀키 MAC, 둘이 결합한 디지털 서명 3대 보장 ★디서=무인부★(기밀성 X 함정), 공개키 신뢰 인프라 ★PKI=CA·RA·저·인·사★와 X.509, 마지막으로 암호 공격 5분류와 평문 기반 공격 ★K=알·P=골·C=고른암호문★(KPA·CPA·CCA)·MITM·Birthday까지 여섯 묶음으로 정리한다. RSA·해시 4대 특성·디지털 서명이 매 회차 2~3문제 나오는 5과목 최대 빈출 단원이다.


대단원 1 — 비대칭키(공개키) 암호 개요

비대칭키 등장 배경 + 공개키·개인키 쌍 ·비대칭키 정의·시험 1순위·

[정의] 비대칭키(Asymmetric Key, 공개키 암호) = 암호화 키와 복호화 키가 다른 한 쌍(공개키 + 개인키)으로 동작하는 암호. 47강 대칭키의 최대 한계인 키 분배 문제(같은 비밀키를 안전하게 어떻게 나누나)를 해결하려고 등장했다. 한 줄 압축은 47강에서 본 ★비=속느·키안★ — 느리지만 키 분배가 안전하다.

[표] 대칭키 vs 비대칭키 (47강 회수 — 핵심만)

항목 대칭키 비대칭키
1개 (공유 비밀키) 2개 (공개키 + 개인키 쌍)
속도 빠름 느림 (100배 이상)
키 분배 위험 안전 (공개키만 공개)
키 관리량 N(N-1)/2 폭증 2N 절감
대표 DES·AES·SEED·ARIA RSA·ECC·DH·ElGamal·DSA

[표] 공개키 vs 개인키 — 누가 가지고 무엇에 쓰나

누가 가지나 용도
공개키 Public 누구나 (공개해도 안전) 암호화 · 서명 검증
개인키 Private 본인만 (절대 비공개) 복호화 · 서명 생성

🔑 암기 비대칭키 = 공개키 암호 = 키 쌍(공개키 + 개인키). 해결한 문제 = 키 분배. 최초 제안 = 1976 Diffie·Hellman, 첫 실제 구현 = 1977 RSA. 안전성 근거 = 수학적 난제(곱하긴 쉽고 인수분해는 어렵다 / 거듭제곱은 쉽고 로그 역산은 어렵다). ⚠️ 함정 "공개키만 알면 개인키를 역산할 수 있다" ❌ → 절대 불가. "비대칭키는 한 쪽 키만 있으면 된다" ❌ → 반드시 한 쌍이 함께 생성·동작. "비대칭키가 대칭키보다 빠르다" ❌ → 대칭키가 100배 이상 빠르다. 🎯 빈출 대칭/비대칭 속도·키 분배 대비, 키 쌍 개념, 최초(DH 1976)·첫 구현(RSA 1977) 연도가 매 회차 출발점. 💡 우체통 비유 — 투입구(공개키)는 누구나 편지를 넣을 수 있지만, 꺼내는 열쇠(개인키)는 주인 한 명뿐. 47강 케르크호프스 분류 지도의 [2] 비대칭키가 여기서부터 본격이다.

★상공나개★ — 비대칭키 두 가지 사용 방식 ·비대칭키 활용·시험 1순위·

[정의] 비대칭키는 누구의 어느 키로 암호화하느냐에 따라 완전히 다른 두 목적으로 쓰인다. 이 두 방식을 ★상공나개★로 잡는다 — 개키로 암호화하면 기밀성, 인키로 암호화(서명)하면 인증·부인방지.

[표] ★상공나개★ — 두 사용 방식

방식 두음 누가 무엇으로 보장 예시
기밀성 상·공 송신자가 개키로 암호화 기밀성 비밀 메시지 ("너만 봐")
인증·서명 나·개 송신자가 인키로 서명 인증·부인방지 송금·코드 서명 ("내가 보낸 거 맞아")

[흐름] 암호화 방향 vs 서명 방향 (정반대)

목적 키 사용 핵심
기밀성(상공) 송신자 → 수신자 공개키로 암호화 → 수신자 개인키로 복호화 수신자만 열람 가능
인증(나개) 송신자 → 나의 개인키로 서명 → 누구나 송신자 공개키로 검증 보낸 사람 증명

🔑 암기 ★상공나개★ — 수신자 공개키로 암호화 = 기밀성, 송신자 개인키로 서명 = 인증 + 부인방지. 암호화와 서명은 쓰는 키의 주인이 정반대. ⚠️ 함정 "기밀성을 위해 송신자가 자기 공개키로 암호화" ❌ → 상대(수신자) 공개키로. "서명을 위해 상대 개인키로" ❌ → 나(송신자)의 개인키로. 키의 주인을 뒤바꾸는 게 단골. 🎯 빈출 "수신자 공개키로 암호화하면?" → 기밀성, "송신자 개인키로 서명하면?" → 인증·부인방지. 이 두 쌍이 비대칭키 응용 문제의 핵심. 💡 ★상공나개★는 RSA·ECC 어느 알고리즘에든 똑같이 적용된다.


대단원 2 — 비대칭키 5인방

★RSA=리·샤·아·인수★ — 비대칭키 1순위 ·RSA·시험 1순위·

[정의] RSA = 1977년 MIT의 Rivest·Shamir·Adleman이 발표한 비대칭키 1순위 알고리즘. 안전성 근거는 소인수분해의 어려움이다. 핵심을 ★RSA=리·샤·아·인수★로 잡는다 — 리베스트·샤미르·애들먼 + 인수분해.

[표] RSA 핵심 5스펙

항목 내용
개발 1977 MIT · Rivest·Shamir·Adleman
안전성 근거 소인수분해 (큰 소수 두 개의 곱을 되돌리기 어려움)
키 길이 2048비트 현재 표준 (1024비트 폐기)
용도 암호화 · 디지털 서명 · 키 교환 (만능)
단점 대칭키 대비 매우 느림 + 양자컴퓨터 위협

[흐름] RSA 키 생성 — 공개키 = (N, e) / 개인키 = (N, d)

  1. 큰 소수 p, q 선택
  2. N = p × q 계산
  3. 공개 지수 e 선택 (보통 65537)
  4. 개인 지수 d 계산
  • 공개키 = (N, e) 공개 / 개인키 = (N, d) 비밀
  • 안전성: N을 인수분해해야 d를 얻는데, 그게 사실상 불가능

🔑 암기 ★RSA=리·샤·아·인수★ — Rivest·Shamir·Adleman·인수분해. 1977년·2048비트·만능(암호화+서명+키교환). 공개키 = (N, e), 개인키 = (N, d) — N = 두 소수 p×q의 곱. ⚠️ 함정 "RSA 안전성 근거 = 이산대수" ❌ → 소인수분해(이산대수는 ECC·DH 쪽). 이 함정이 거의 매 회차. "RSA 권장 키 = 1024" ❌ → 2048(1024는 폐기). "RSA는 서명만 가능" ❌ → 만능. 🎯 빈출 RSA 안전성 근거(소인수분해)·개발자·연도(1977)·키 길이(2048)·만능 여부가 매 회차 1순위. "안전성 근거가 다른 것"으로 RSA만 골라내는 유형도 단골. 📝 기출 기출 2 (RSA 안전성 근거) 💡 2024년 NIST가 양자컴퓨터 대비 양자내성암호(PQC) 표준 FIPS 203/204/205를 확정했고 RSA·ECC는 2030년 이후 점진 폐기 권고다. 다만 현 시험은 RSA·ECC 자체가 출제 범위이고 PQC는 트렌드 인지 수준으로 충분하다.

하이브리드 암호 + TLS 4단계 — RSA의 실무 활용 ·실무 종합·간헐·

[정의] 실무에서는 비대칭키와 대칭키를 함께 쓴다(47강 하이브리드 암호 회수). 비대칭키로 세션 키만 안전하게 교환하고, 본문은 빠른 대칭키(AES)로 암호화한다. HTTPS 자물쇠 뒤에서 도는 TLS가 대표 사례로, 47강의 AES·SHA와 48강의 RSA·ECC가 한 흐름에서 모두 협력한다.

[표] TLS 4단계 — 47강 + 48강 기술이 한 흐름에

단계 담당 기술 출처
① 서버 인증 RSA/ECDSA 인증서(X.509) 검증 48강
② 세션 키 교환 RSA 또는 ECDHE로 공통 키 협상 48강
③ 본문 암호화 AES-256-GCM 47강
④ 무결성 검증 SHA-256 / HMAC-SHA256 47·48강

🔑 암기 하이브리드 = 비대칭(키 교환·인증) + 대칭(본문·속도). TLS 본체 = 대칭키 AES(속도) + 비대칭키 RSA·ECC(키 교환·인증) + 해시 SHA(무결성). ⚠️ 함정 "하이브리드는 본문을 비대칭키로 암호화" ❌ → 본문은 빠른 대칭키(AES), 비대칭은 키 교환·인증용. 🎯 빈출 하이브리드의 역할 분담(비대칭=키 교환, 대칭=본문)·TLS가 하이브리드라는 진술이 간헐. RSA가 TLS에서 서버 인증·세션 키 교환을 맡는다는 점이 단골. 💡 참고로 TLS 1.3부터 키 교환은 ECDHE가 표준이지만 서버 인증서는 여전히 RSA-2048 또는 ECDSA-P256이 주류다. 클라우드 KMS 등 제품군은 도메인 일반화로만 본다.

★ECC=짧·강·모바일★ — 짧은 키, 모바일 시대 표준 ·ECC·시험 1순위·

[정의] ECC(Elliptic Curve Cryptography, 타원곡선 암호) = 짧은 키로 RSA와 동급 안전성을 내는 비대칭키. 안전성 근거는 타원곡선 이산대수(ECDLP)다. 3대 특징을 ★ECC=짧·강·모바일★로 잡는다 — 짧은 키·강한 안전성·모바일 친화.

[표] ECC vs RSA 키 길이 (같은 안전성)

RSA 키 ECC 키 비율
2048비트 224비트 약 9 : 1
3072비트 256비트 약 12 : 1

[표] ECC 핵심

항목 내용
안전성 근거 타원곡선 이산대수(ECDLP)
키 길이 160~521비트 (보통 256)
주 용도 서명(ECDSA) · 키 교환(ECDHE) · 암호화(ECIES)
강점 짧은 키 + 빠른 연산 + 낮은 자원 = 모바일·IoT 최적
등장 1985년

🔑 암기 ★ECC=짧·강·모바일★ — 짧은 키·강한 안전성·모바일 친화. 안전성 근거 = 타원곡선 이산대수. RSA(소인수분해)와 근거가 다르다. ⚠️ 함정 "ECC 안전성 근거 = 소인수분해" ❌ → 타원곡선 이산대수(소인수분해는 RSA). "ECC가 RSA보다 긴 키를 쓴다" ❌ → 더 짧은 키로 동급 안전성. 🎯 빈출 ECC를 RSA보다 선호하는 이유(짧은 키·모바일/IoT)와 안전성 근거(타원곡선 이산대수)가 단골. 보기에 "이산대수" + "타원곡선"이 함께 보이면 ECC. 💡 ★상공나개★ 두 방식은 RSA·ECC에 동일하게 적용된다. ECDSA(서명)·ECDHE(키 교환)는 "ECC 기반의 DSA·DH" 정도로 알아두면 충분하다.

Diffie-Hellman·ElGamal·DSA + 5인방 종합 ·비대칭키 분류·시험 1순위·

[정의] 비대칭키 5인방을 한 장에 묶는다. 안전성 근거는 RSA만 소인수분해, 나머지 4종은 이산대수. 용도는 DH는 키 교환 전용, DSA는 서명 전용, 나머지는 만능이다. DH(1976)는 RSA(1977)보다 1년 앞선 최초의 비대칭키이며 키 교환 전용(메시지 직접 암호화 불가)이라는 점이 함정이다.

[표] 비대칭키 5인방

알고리즘 안전성 근거 주 용도 등장
RSA 소인수분해 만능 1977
ECC 타원곡선 이산대수 만능 1985
DH 이산대수 키 교환 전용 1976 (최초)
ElGamal 이산대수 만능 (DH 확장) 1985
DSA 이산대수 서명 전용 1991 (NIST)

🔑 암기 5인방 = RSA·ECC·DH·ElGamal·DSA. 두 축 — 근거는 RSA 소인수분해·나머지 이산대수 / 용도는 DH=키교환만·DSA=서명만·나머지 만능. DH = 1976 최초 비대칭키. ⚠️ 함정 "최초 비대칭키 = RSA" ❌ → DH(1976). "DH로 메시지를 직접 암호화" ❌ → DH는 키 교환 전용. DH는 MITM에 취약해 인증서(PKI)·서명과 반드시 함께 써야 안전. 🎯 빈출 "비대칭키가 아닌 것?" → 보기에 DES·AES·SEED·ARIA 같은 대칭키가 섞이면 그게 정답. 5인방을 통째로 외우면 어느 방향으로 물어도 즉답. 📝 기출 기출 1 (비대칭키 식별) 💡 ElGamal = DH를 메시지 암호화까지 확장한 변형, DSA = ECDSA로 진화해 블록체인 서명에 쓰인다. 페인트 섞기 비유 — 섞긴 쉽고 분리는 어렵다(이산대수).


대단원 3 — 해시 함수

해시 정의 + ★해시=일·충·고·눈★ — 4대 특성 ·해시·시험 1순위·

[정의] 해시 함수(Hash Function) = 임의 길이 입력 → 고정 길이 출력(다이제스트)으로 변환하는 일방향 함수. 암호화와 달리 키가 없고 되돌릴 수 없다. 암호학적으로 안전한 해시가 갖춰야 할 4대 특성을 ★해시=일·충·고·눈★으로 잡는다 — 일방향성·충돌저항성·고정 길이·눈사태 효과. 47강 케르크호프스 분류 지도의 [3] 해시가 여기서 본격이다.

[표] ★해시=일·충·고·눈★ — 4대 특성

두음 특성 의미
일방향성 해시값 → 원본 복원 불가
충돌저항성 같은 해시값을 갖는 다른 입력 찾기 어려움
고정 길이 입력 크기와 무관하게 출력 길이 일정
눈사태 효과 입력 1비트 변경 → 출력 절반 이상 변경

[표] 입력이 달라도 출력 길이는 같다 (고정 길이)

입력 SHA-256 출력
"안녕" (2글자) 256비트 (16진수 64자리)
1GB 영화 파일 256비트 (16진수 64자리)

🔑 암기 ★해시=일·충·고·눈★ — 일방향·충돌저항·고정길이·눈사태. 별칭 = 다이제스트(Digest)·메시지 다이제스트(MD)·체크섬. 주 용도 = 무결성·비밀번호 저장·디지털 서명·블록체인. ⚠️ 함정 "해시 4대 특성"에 가역성·양방향성·키 사용·복원 가능이 보이면 그게 오답 → 모두 암호화 설명. ★일·충·고·눈★ 네 글자에 없는 것이 정답. 🎯 빈출 "해시 특성으로 옳지 않은 것?"이 매 회차. 비밀번호를 해시값만 저장해 DB 유출에도 원본이 안 새는 것이 일방향성의 실제 활용. 📝 기출 기출 3 (해시 4대 특성) 💡 믹서기 비유 — 무엇을 넣어도 같은 크기 컵의 주스가 나오고(고정 길이), 갈아버린 주스에서 원래 과일은 못 되돌린다(일방향).

해시 알고리즘 비트 수 — SHA 뒤 숫자가 곧 비트 ·해시 알고리즘·시험 1순위·

[정의] 해시 알고리즘은 출력 비트 수와 안전성이 시험 단골이다. 규칙은 단순하다 — SHA 뒤 숫자 = 출력 비트 수(SHA-256→256, SHA-512→512). 단 MD5는 128, SHA-1은 160으로 이름의 숫자와 비트가 다른 두 예외만 따로 외운다.

[표] 해시 알고리즘 출력 비트·안전성

알고리즘 출력 비트 안전성 비고
MD5 128 취약·사용 금지 2004 충돌 발견
SHA-1 160 권장 안 함 2017 SHAttered 충돌
SHA-256 256 현재 표준 HTTPS·블록체인
SHA-512 512 매우 안전 장기 보관
SHA-3 가변 안전 Keccak 구조·2015 NIST 표준

🔑 암기 SHA 뒤 숫자 = 출력 비트. 예외 둘 — MD5=128, SHA-1=160. 현재 표준 = SHA-256. SHA-3은 SHA-2와 내부 구조가 완전히 다른(Keccak) 백업 표준. ⚠️ 함정 "MD5=5비트", "SHA-1=1비트" ❌ → 128·160. "SHA-256은 256비트 키를 쓴다" ❌ → 해시는 키가 없고 256은 출력 길이. "SHA-3 = SHA-2 개선판" ❌ → 구조가 완전히 다른 별도 표준. 🎯 빈출 알고리즘-비트 매칭에서 한 값만 틀리게 끼운 "잘못 짝지어진 것" 유형이 매 회차. MD5·SHA-1의 폐기 사유(충돌 발견)도 출제. 📝 기출 기출 4 (SHA 출력 비트) 💡 MD5는 2004년, SHA-1은 2017년 SHAttered 공격으로 충돌이 실증돼 폐기됐다. 충돌 = 다른 입력이 같은 해시값을 갖는 사건.

해시 vs 암호화 — 일방향 vs 양방향 ·해시 구분·시험 1순위·

[정의] 학생이 가장 헷갈리는 구분. 해시는 키 없는 일방향(무결성), 암호화는 키 있는 양방향(기밀성)이다. 목적부터 다르다 — 해시는 변조 감지, 암호화는 내용 보호.

[표] 해시 vs 암호화

구분 해시 암호화
방향 일방향 양방향
없음 필수
출력 고정 길이 입력에 비례
주 용도 무결성 기밀성

🔑 암기 해시 = 일방향·키 없음·무결성. 암호화 = 양방향·키 필수·기밀성. "비밀번호를 암호화해 저장"은 틀린 표현 → 정확히는 해시해 저장. ⚠️ 함정 "키를 사용하지 않는 것 = 암호화" ❌ → 해시. "비밀번호 저장 = 암호화" ❌ → 해시(bcrypt·Argon2). 양방향·키 사용이 보이면 암호화다. 🎯 빈출 "키를 사용하지 않는 것?"·"양방향 변환 가능한 것?"·"비밀번호 저장 기술?"이 간헐. 한 글자(키 유무)로 답이 갈린다. 💡 택배 비유 — 암호화 = 자물쇠(내용 보호), 해시 = 봉인 스티커(열면 찢어져 변조가 드러남). 실무는 Salt + bcrypt/Argon2 같은 느린 해시로 무차별 대입을 지연시킨다.


대단원 4 — MAC · 디지털 서명

MAC — 해시 + 비밀키 = 무결성 + 인증 ·MAC·시험 1순위·

[정의] MAC(Message Authentication Code, 메시지 인증 코드) = 해시 계산에 공유 비밀키를 섞어 무결성 + 인증을 동시에 보장하는 기법. 일반 해시는 해커가 메시지와 해시값을 함께 바꿔치기하면 들키지 않지만, 비밀키를 모르면 올바른 MAC을 못 만들어 변조가 드러난다. 대표는 HMAC(Hash-based MAC).

[표] 해시 vs MAC

구분 해시 MAC
비밀키 X O (공유)
보장 무결성만 무결성 + 인증
부인방지 X X
대표 SHA-256 HMAC-SHA256

[표] HMAC 실무 두 영역

영역 동작
OpenAPI 서명 비밀키 + 요청 본문 → HMAC-SHA256 → 헤더로 전송
TOTP (30초 OTP) HMAC(비밀키, 현재시각/30초) → 6자리 숫자

🔑 암기 MAC = 해시 + 비밀키(대칭) → 무결성 + 인증. 부인방지는 X(송수신자가 키를 공유해 누가 만들었는지 못 가림). HMAC = Hash 기반 MAC. ⚠️ 함정 "MAC이 부인방지를 보장" ❌ → 디지털 서명만 가능. "HMAC은 비밀키가 필요 없다" ❌ → 공유 비밀키 필수. 🎯 빈출 "해시에 비밀키를 결합한 것?" → MAC. "MAC이 보장 못하는 것?" → 부인방지. 비밀키(MAC) vs 개인키(디지털 서명) 구분이 핵심. 📝 기출 기출 6 (MAC 매트릭스) 💡 금융 앱 OTP가 30초마다 바뀌는 것이 TOTP = HMAC + 시간. 한 번 노출돼도 30초 뒤 무효라 재전송 공격(Replay)이 안 통한다.

디지털 서명 + ★디서=무인부★ — 기밀성 X 함정 ·디지털 서명·시험 1순위·

[정의] 디지털 서명(Digital Signature, 전자서명) = 비대칭키 + 해시를 결합해 "누가 보냈는지(인증)·변조되지 않았는지(무결성)·부인할 수 없는지(부인방지)"를 증명하는 기술. 3대 보장을 ★디서=무인부★로 잡는다 — 무결성·인증·부인방지. 기밀성은 보장하지 않는다(평문 전송)는 것이 함정 1순위.

[표] 디지털 서명 흐름 (해시값만 서명)

단계 송신자 수신자
1 메시지 해시 → H(M) 받은 메시지 해시 → H(M)′
2 H(M)을 나의 개인키로 서명 → S S를 송신자 공개키로 복호화 → H(M)
3 메시지 + S 전송 H(M) == H(M)′ ? → 검증 성공

[표] ★디서=무인부★ — 3대 보장 (기밀성 X)

두음 보장 요소 근거
무결성 해시값으로 변조 확인
인증 개인키 소유자만 서명 가능
부인방지 개인키는 본인만 소유 → 부인 불가
기밀성 보장 안 함 (메시지는 평문 전송)

🔑 암기 ★디서=무인부★ — 무결성·인증·부인방지. 기밀성 X. 47강 CIA(★기무가★)와 공통은 무결성 하나뿐. 전체 메시지가 아니라 짧은 해시값만 서명(속도·효율). ⚠️ 함정 "디지털 서명이 기밀성을 보장" ❌ → 무인부만(기밀성 필요하면 별도 암호화 병행). "부인방지는 MAC도 가능" ❌ → 디지털 서명만(MAC은 비밀키 공유라 불가). 🎯 빈출 "디서가 보장하지 않는 것?" → 기밀성(또는 가용성·인가). "부인방지를 보장하는 유일한 기술?" → 디지털 서명. 거의 매 회차. 📝 기출 기출 5 (디서 보장 요소) 💡 서명과 암호화는 방향이 정반대 — 서명 = 개인키 → 공개키, 암호화 = 공개키 → 개인키. ★상공나개★의 나개(서명) vs 상공(암호화) 대비 그대로.

해시 vs MAC vs 디지털 서명 — 계단식 매트릭스 ·종합 매트릭스·시험 1순위·

[정의] 해시·MAC·디지털 서명·암호화를 한 장에 매핑하는 5과목 골격 카드. 오른쪽으로 갈수록 보장 요소가 하나씩 추가되는 계단식 구조다. 기밀성은 어느 단계에도 없어 별도 암호화가 필요하다.

[표] 보장 요소 매트릭스

구분 무결성 인증 부인방지 기밀성
해시 없음 O X X X
MAC 비밀키(대칭) O O X X
디지털 서명 개인키(비대칭) O O O X
암호화 대칭/비대칭 키 X X X O

[흐름] 계단식 — 보장 요소가 하나씩 추가

💡 해시(무결성) → MAC(무결성+인증) → 디지털 서명(무결성+인증+부인방지). 기밀성은 어디에도 없어 별도 암호화가 필요.

🔑 암기 키워드로 즉답 — 비밀키 → MAC / 개인키 → 디지털 서명 / 공개키 → 암호화·서명 검증 / 키 없음 → 해시. 계단 = 해시(무) → MAC(무+인) → 디서(무+인+부). ⚠️ 함정 보장 요소를 한 칸씩 밀거나 당겨 끼우는 변형이 단골. 부인방지 O는 디지털 서명 한 곳뿐, 기밀성 O는 암호화 한 곳뿐. 🎯 빈출 "무결성과 인증만 보장(부인방지 X)하는 것?" → MAC. "부인방지까지?" → 디지털 서명. 표 5열에 매핑하면 자동 정리. 💡 한 글자 차이로 답이 갈린다 — 비밀키냐 개인키냐, 키가 있냐 없냐.


대단원 5 — PKI

★PKI=CA·RA·저·인·사★ — 공개키 신뢰 인프라 + X.509 ·PKI·시험 1순위·

[정의] PKI(Public Key Infrastructure, 공개키 기반 구조) = "이 공개키가 진짜 그 사람 것인가(공개키 진위 문제)"를 해결하는 신뢰 인프라. 5대 구성요소를 ★PKI=CA·RA·저·인·사★로 잡는다 — CA(발급)·RA(신원확인)·저장소·인증서·사용자. 핵심 산출물인 인증서는 X.509(현재 v3) 표준을 따른다.

[표] ★PKI=CA·RA·저·인·사★ — 5대 구성요소

구성요소 역할 비유
CA (Certificate Authority) 인증서 발급·서명 정부
RA (Registration Authority) 신원 확인 동사무소
저장소 (Repository) 인증서·폐기목록 공개 보관 게시판
인증서 (Certificate) 공개키 + 소유자 묶음 (X.509) 신분증
사용자 (End Entity) 인증서 사용 주체 시민

[표] X.509 핵심 필드 + 인증서 폐기 2방식

X.509 주요 필드 인증서 폐기
버전(v3)·일련번호·발급자(CA) CRL — 주기적 폐기 목록 다운로드
유효기간·주체(소유자)·공개키 OCSP — 실시간 개별 상태 조회
CA 디지털 서명 (위 전체 봉인) (현재 OCSP Stapling 방식이 표준)

[흐름] 신뢰 사슬 (Chain of Trust)

  1. 루트 CA가 중간 CA에 서명
  2. 중간 CA가 End Entity(서버) 인증서에 서명
  3. 브라우저에 루트 CA 목록이 내장 → 사슬을 따라 검증

🔑 암기 ★PKI=CA·RA·저·인·사★ — CA(발급)·RA(신원확인)·저장소·인증서·사용자. 인증서 표준 = X.509 v3. 폐기 = CRL(목록)·OCSP(실시간). ⚠️ 함정 "RA가 인증서를 발급" ❌ → 발급은 CA, RA는 신원 확인만(함정 1순위). "PKI 구성요소"에 AES·HMAC·SHA 같은 암호 알고리즘이 보이면 오답 → PKI는 기관·저장소·인증서·사용자로 구성된 인프라. "공인인증서 폐지 = PKI 폐지" ❌ → PKI는 살아있고 민간 인증서로 다양화. 🎯 빈출 PKI 구성요소 식별(암호 알고리즘 골라내기)·RA vs CA 역할·X.509 버전(v3)·폐기 용어(CRL/OCSP)가 매 회차. 📝 기출 기출 8 (PKI 구성요소) 💡 신분증 비유 — CA는 정부, 인증서는 신분증. 위조하려 해도 CA 개인키 없이는 서명할 수 없다.


대단원 6 — 암호 공격

암호 공격 5분류 + 키 추측 공격 ·암호 공격·시험 1순위·

[정의] 알고리즘 자체를 노리는 암호 공격은 5분류로 나뉜다 — ① 키 추측 ② 평문 기반 ③ 프로토콜 ④ 확률 ⑤ 구현. 인프라 레벨(시스템·네트워크) 공격과는 결이 다르다. 그중 키 추측 공격 3종(Brute-force·사전·Rainbow Table)은 Salt 한 줄로 대부분 막힌다.

[표] 암호 공격 5분류

분류 대표 공격 방어
① 키 추측 Brute-force·사전·Rainbow Table 긴 키·Salt
② 평문 기반 KPA·CPA·CCA CCA-안전 설계
③ 프로토콜 MITM·Replay PKI·Nonce
④ 확률 Birthday Attack 해시 ≥ 256비트
⑤ 구현 부채널(Side-channel) 보안 칩·더미 연산

[표] 키 추측 공격 3종

공격 정의 방어
Brute-force 가능한 모든 키 시도 키 길이 늘리기
사전 공격 자주 쓰는 비밀번호 사전 시도 강한 PW + Salt
Rainbow Table 미리 계산된 PW-해시 표로 역추적 Salt

🔑 암기 5분류 = 키 추측·평문 기반·프로토콜·확률·구현. Rainbow Table 방어 = Salt(같은 비밀번호도 Salt가 다르면 해시가 완전히 달라져 미리 만든 표가 무력화). ⚠️ 함정 "Rainbow Table 방어 = 긴 키" ❌ → Salt. 암호 공격(알고리즘 레벨)과 시스템 공격(인프라 레벨)을 섞어 분류시키는 유형 주의. 🎯 빈출 이름·정의·방어법 매칭이 주류. 깊은 수학은 안 나오니 한 줄 정의만 정확히 잡으면 충분. 💡 bcrypt·scrypt·Argon2 같은 느린 해시는 Salt를 자동 포함하고 의도적으로 느려 Brute-force도 지연시킨다.

평문 기반 공격 ★K=알·P=골·C=고른암호문★ + 프로토콜 공격 ·암호 공격·시험 1순위·

[정의] 평문 기반 공격 3종은 공격자가 가진 정보량에 따라 강도가 갈린다. ★K=알·P=골·C=고른암호문★ — KPA는 평문-암호문 쌍을 고 있음, CPA(P=골)는 평문을 라 암호화 가능, CCA는 고른 암호문을 복호화 가능. 강도는 CCA > CPA > KPA. 프로토콜 공격(MITM·Replay)은 알고리즘이 멀쩡해도 프로토콜 약점을 노린다.

[표] ★K=알·P=골·C=고른암호문★ — 평문 기반 공격 3종

공격 공격자 정보 강도
KPA (Known Plaintext) 평문-암호문 쌍을 고 있음
CPA (Chosen Plaintext) 평문을 라 암호화 가능
CCA (Chosen Ciphertext) 고른 암호문을 복호화 가능

[표] 프로토콜 공격 2종 — MITM·Replay

공격 정의 방어
MITM 두 통신자 사이에 끼어 양쪽을 속임 PKI 인증서·디지털 서명
Replay 가로챈 정상 메시지를 나중에 재전송 Nonce·타임스탬프

🔑 암기 ★K=알·P=골·C=고른암호문★ — KPA(알려진)·CPA(평문 골라 암호화)·CCA(암호문 골라 복호화). 강도 CCA>CPA>KPA. MITM 방어 = PKI, Replay 방어 = Nonce·타임스탬프. ⚠️ 함정 "강도 KPA > CCA" ❌ → CCA가 가장 강함. "MITM = 나중에 재전송" ❌ → 그건 Replay. MITM은 중간에 끼어드는 것. 🎯 빈출 "평문을 골라 암호화 가능?" → CPA, "암호문을 골라 복호화?" → CCA. "중간에 끼어 양쪽을 속이는 공격?" → MITM이 매 회차. 📝 기출 기출 7 (MITM 공격) 💡 MITM은 DH 키 교환에 끼어드는 시나리오가 대표 — 그래서 DH는 PKI와 함께 써야 안전. MITM은 알고리즘 레벨뿐 아니라 인프라 레벨(ARP·DNS Spoofing)에도 걸쳐 있어, 시스템·네트워크 공격은 49강에서 본격으로 다룬다.

Birthday Attack + 부채널 — 확률·구현 공격 ·암호 공격·시험 단골·

[정의] 마지막 두 공격은 알고리즘 자체는 안전한데 확률구현 환경을 노린다. Birthday Attack은 생일 역설로 해시 충돌을 빠르게 찾고, 부채널(Side-channel) 공격은 전력·시간·전자파를 분석해 키를 추정한다.

[표] 확률·구현 공격

공격 정의 방어
Birthday 생일 역설로 해시 충돌을 빠르게 발견 해시 ≥ 256비트
부채널 전력·시간·전자파 분석으로 키 추정 보안 칩·더미 연산

🔑 암기 Birthday = 충돌저항성(★해시=일·충·고·눈★의 )을 노림 — n비트 해시 충돌이 2ⁿ이 아니라 2^(n/2) 시도면 절반 확률로 발견. 부채널 = 구현 환경(전력·시간) 분석으로 키 추정. ⚠️ 함정 "Birthday는 일방향성을 노린다" ❌ → 충돌저항성. "부채널은 알고리즘 수학을 깬다" ❌ → 구현 환경(물리 정보)을 노림. 🎯 빈출 "Birthday Attack이 노리는 특성?" → 충돌저항성. "전력 분석으로 키를 빼내는 공격?" → 부채널. MD5·SHA-1 폐기의 결정적 이유가 Birthday Attack이라는 점도 출제. 💡 23명만 모여도 생일이 겹칠 확률이 50% — n비트 해시도 2^(n/2)면 충돌이 보인다. 그래서 해시는 충돌 여유를 둬 256비트 이상을 쓴다.


기출 다지기

[기출 1 출제] 다음 중 비대칭키(공개키) 암호 알고리즘이 아닌 것은? (해당하지 않는 것 고르기)

  • ① RSA
  • ② ECC
  • ③ Diffie-Hellman
  • ④ SEED
정답 및 해설 보기

정답: ④ SEED

보기 분류 판정
① RSA 비대칭키 옳음
② ECC 비대칭키 옳음
③ Diffie-Hellman 비대칭키 (최초·키 교환) 옳음
④ SEED 국산 대칭키(47강 ★세아리히★) ✅ 정답

🔑 암기 비대칭키 5인방 = RSA·ECC·DH·ElGamal·DSA. SEED·DES·AES·ARIA는 대칭키. 보기에 대칭키가 섞이면 그게 정답이다.

[기출 2 출제] RSA 알고리즘의 안전성 근거로 옳은 것은? (옳은 것 고르기)

  • ① 큰 두 소수의 곱을 인수분해하기 어려움
  • ② 이산대수 문제
  • ③ 타원곡선 이산대수
  • ④ 해시 일방향성
정답 및 해설 보기

정답: ① 큰 두 소수의 곱을 인수분해하기 어려움

보기 해당 판정
① 인수분해 RSA ✅ 정답
② 이산대수 DH·ElGamal·DSA
③ 타원곡선 이산대수 ECC
④ 일방향성 해시

🔑 암기 ★RSA=리·샤·아·인수★ — RSA만 유일하게 소인수분해, 나머지 4종은 이산대수. "이산대수"로 답하면 함정에 걸린다(ECC·DH 쪽).

[기출 3 출제] 해시 함수의 특성으로 옳지 않은 것은? (옳지 않은 것 고르기)

  • ① 일방향성
  • ② 충돌 저항성
  • ③ 고정 길이 출력
  • ④ 가역성(키로 원본 복원)
정답 및 해설 보기

정답: ④ 가역성(키로 원본 복원)

보기 ★해시=일·충·고·눈★ 대입 판정
① 일방향성 옳음
② 충돌 저항성 옳음
③ 고정 길이 옳음
④ 가역성 해시는 비가역 ✅ 정답(틀림)

🔑 암기 ★해시=일·충·고·눈★ 네 글자에 없는 것이 오답. "가역·양방향·키로 복호화·원본 복원"은 모두 암호화 설명이다.

[기출 4 출제] 해시 알고리즘과 출력 비트 수가 잘못 짝지어진 것은? (잘못 짝지어진 것 고르기)

  • ① MD5 — 128비트
  • ② SHA-1 — 160비트
  • ③ SHA-256 — 256비트
  • ④ SHA-512 — 256비트
정답 및 해설 보기

정답: ④ SHA-512 — 256비트 (실제 512비트)

보기 실제 출력 판정
① MD5 128 옳음
② SHA-1 160 옳음
③ SHA-256 256 옳음
④ SHA-512 512 ✅ 정답(틀림)

🔑 암기 SHA 뒤 숫자 = 출력 비트(SHA-512→512). 예외는 MD5(128)·SHA-1(160) 둘뿐. "SHA-256은 256비트 키 사용"류도 오답 — 해시는 키가 없다.

[기출 5 출제] 디지털 서명이 보장하는 보안 요소가 아닌 것은? (해당하지 않는 것 고르기)

  • ① 무결성
  • ② 인증
  • ③ 부인방지
  • ④ 기밀성
정답 및 해설 보기

정답: ④ 기밀성

보기 ★디서=무인부★ 대입 판정
① 무결성 옳음
② 인증 옳음
③ 부인방지 옳음
④ 기밀성 보장 안 함(평문 전송) ✅ 정답

🔑 암기 ★디서=무인부★ — 무결성·인증·부인방지. 기밀성은 보장하지 않는다(필요하면 별도 암호화 병행). 47강 CIA(★기무가★)와 공통은 무결성 하나뿐.

[기출 6 출제] 해시 함수와 비밀키를 결합하여 무결성과 인증을 동시에 보장하는 기법은? (해당하는 것 고르기)

  • ① 일반 해시(SHA-256)
  • ② MAC(HMAC)
  • ③ 디지털 서명
  • ④ 대칭키 암호
정답 및 해설 보기

정답: ② MAC(HMAC)

보기 판정 해설
① 일반 해시 무결성만(비밀키 없음)
② MAC(HMAC) ✅ 정답 해시 + 비밀키 = 무결성 + 인증
③ 디지털 서명 개인키 사용(무결성+인증+부인방지)
④ 대칭키 암호 기밀성 보장 기술

🔑 암기 비밀키 → MAC / 개인키 → 디지털 서명. 계단식 — 해시(무) → MAC(무+인) → 디서(무+인+부). MAC은 부인방지 X.

[기출 7 출제] 두 통신자 사이에 끼어들어 양쪽이 직접 통신한다고 믿게 만드는 공격은? (해당하는 것 고르기)

  • ① Brute-force
  • ② Birthday
  • ③ MITM
  • ④ Replay
정답 및 해설 보기

정답: ③ MITM

보기 정의 판정
① Brute-force 모든 키 시도
② Birthday 해시 충돌 발견
③ MITM 중간에 끼어 양쪽 속임 ✅ 정답
④ Replay 가로챈 메시지 재전송

🔑 암기 "중간에 끼어든다" → MITM(방어 = PKI·디지털 서명). "나중에 다시 보낸다" → Replay(방어 = Nonce·타임스탬프). DH 키 교환 끼어들기가 MITM의 대표 시나리오.

[기출 8 출제] PKI(공개키 기반 구조)의 구성요소가 아닌 것은? (해당하지 않는 것 고르기)

  • ① CA (인증기관)
  • ② RA (등록기관)
  • ③ 인증서 저장소
  • ④ AES (암호 알고리즘)
정답 및 해설 보기

정답: ④ AES (암호 알고리즘)

보기 ★PKI=CA·RA·저·인·사★ 대입 판정
① CA 발급 기관 구성요소
② RA 신원 확인 구성요소
③ 저장소 인증서·폐기목록 보관 구성요소
④ AES 대칭키 암호 알고리즘 ✅ 정답

🔑 암기 ★PKI=CA·RA·저·인·사★ — 기관·저장소·인증서·사용자로 구성된 인프라. AES·HMAC·SHA 같은 암호 알고리즘이 보이면 그게 정답이다. RA(신원확인) vs CA(발급) 구분도 함정 1순위.


한 장 요약

시험장 1분 받아쓰기 — 핵심 두음

두음 풀이
★상공나개★ 상대 공개키=기밀성 / 나의 개인키=인증·서명
★RSA=리·샤·아·인수★ Rivest·Shamir·Adleman + 소인수분해 (1977·2048비트·만능)
★ECC=짧·강·모바일★ 짧은 키·강한 안전성·모바일 (타원곡선 이산대수)
★해시=일·충·고·눈★ 일방향·충돌저항·고정길이·눈사태
★디서=무인부★ 무결성·인증·부인방지 (기밀성 X)
★PKI=CA·RA·저·인·사★ CA발급·RA신원·저장소·인증서(X.509 v3)·사용자
★K=알·P=골·C=고른암호문★ KPA(알려진)·CPA(평문 골라)·CCA(암호문 골라) — 강도 CCA>CPA>KPA

비대칭키 5인방 — 근거 · 용도

알고리즘 안전성 근거 용도
RSA 소인수분해 만능
ECC 타원곡선 이산대수 만능
DH 이산대수 키 교환 전용 (1976 최초)
ElGamal 이산대수 만능
DSA 이산대수 서명 전용

핵심 수치·매핑

질문 즉답
최초 비대칭키 / 첫 구현 DH 1976 / RSA 1977
RSA 안전성 / 키 소인수분해 / 2048비트
해시 비트 MD5=128 · SHA-1=160 · SHA-256=256 · SHA-512=512
계단식 보장 해시(무) → MAC(무+인) → 디서(무+인+부)
키 구분 비밀키=MAC · 개인키=디지털서명 · 공개키=암호화·검증 · 키없음=해시
공격 5분류 키추측·평문기반·프로토콜·확률·구현

핵심 함정 (매년 1회 이상)

오답 ❌ 정답 ✅
RSA = 이산대수 기반 소인수분해 (이산대수는 ECC·DH)
최초 비대칭키 = RSA DH(1976)
DH로 메시지 직접 암호화 DH = 키 교환 전용
비대칭키가 더 빠름 대칭키가 100배 이상 빠름
해시가 키를 사용 / 가역 해시 = 키 없음·일방향
MD5 = 5비트 / SHA-256 = 256비트 키 MD5=128 / 256은 출력 길이(키 아님)
디지털 서명이 기밀성 보장 무인부만(기밀성 X)
MAC이 부인방지 보장 디지털 서명만 가능
RA가 인증서 발급 발급은 CA, RA는 신원 확인
Rainbow Table 방어 = 긴 키 Salt
Birthday가 일방향성을 노림 충돌저항성

이름 헷갈림 3쌍: DSA(비대칭 서명) ↔ DES(대칭) · MD5(해시) ↔ AES(대칭) · SHA(해시) ↔ RSA(비대칭).

핵심 수치 (1): 비대칭키 = 공개키 암호(키 분배 해결) · 5인방 RSA·ECC·DH·ElGamal·DSA · RSA=소인수분해·2048 · ECC=타원곡선 이산대수·짧은 키 · 해시=일충고눈 · MD5 128·SHA-1 160.

핵심 수치 (2): MAC=해시+비밀키(부인방지 X) · 디서=무인부(기밀성 X) · PKI=CA·RA·저·인·사·X.509 v3 · 공격 5분류 · KPA<CPA<CCA · MITM=중간 끼어듦·Replay=재전송 · Birthday=충돌.

전체 목록 필기 이론

합격까지

정처기, 혼자 막막하다면

초개인화 학습앱 Klue와 에듀윌 온라인강의로 합격까지 이어가세요.