icon

안동민 개발노트

5장 : 정보보안일반

대칭키·공개키 암호

암호학의 핵심 축인 대칭키 암호와 공개키 암호를 구체적으로 정리합니다.

암호학의 핵심 축인 대칭키 암호와 공개키 암호를 구체적으로 정리합니다.

암호학의 목적
기밀성
무결성
인증
부인방지
대칭키 암호
공개키 암호
해시
전자서명
하이브리드 암호

이번 절은 정보보안기사 필기에서 자주 출제됩니다. 실기에서도 다음 형태로 나올 수 있습니다.

대칭키 암호와 공개키 암호의 차이를 설명하시오.
블록암호와 스트림암호의 차이를 설명하시오.
ECB 모드의 보안상 문제점을 설명하시오.
CBC 모드에서 IV가 필요한 이유를 설명하시오.
RSA와 ECC의 특징을 비교하시오.
Diffie-Hellman 키 교환의 목적과 한계를 설명하시오.
하이브리드 암호 방식을 설명하시오.

학습 목표

이번 절가 끝나면 다음 질문에 답할 수 있어야 합니다.

질문목표
대칭키 암호란 무엇인가?같은 비밀키로 암호화와 복호화를 수행한다고 설명
블록암호란 무엇인가?데이터를 고정 크기 블록 단위로 암호화한다고 설명
스트림암호란 무엇인가?키스트림을 생성해 평문과 결합한다고 설명
AES는 무엇인가?대표적인 안전한 대칭키 블록암호라고 설명
DES는 왜 취약한가?키 길이가 짧아 현대 환경에서 안전하지 않다고 설명
ECB 모드는 왜 위험한가?같은 평문 블록이 같은 암호문 블록으로 나타나 패턴이 노출된다고 설명
CBC 모드는 어떤 특징이 있는가?이전 암호문 블록과 XOR 후 암호화하며 IV가 필요하다고 설명
CTR 모드는 어떤 특징이 있는가?카운터 값을 암호화해 키스트림처럼 사용한다고 설명
공개키 암호란 무엇인가?공개키와 개인키 쌍을 사용하는 암호 방식이라고 설명
RSA는 무엇인가?대표적인 공개키 암호 방식이라고 설명
ECC는 무엇인가?짧은 키로 높은 보안성을 제공하는 타원곡선 기반 공개키 암호라고 설명
Diffie-Hellman은 무엇인가?안전하지 않은 채널에서 공유 비밀값을 합의하는 키 교환 방식이라고 설명
하이브리드 암호란?공개키로 대칭키를 교환하고 실제 데이터는 대칭키로 암호화하는 방식이라고 설명

학습 내용의 큰 그림

암호 방식은 크게 두 축으로 나눌 수 있습니다.

대칭키 암호
공개키 암호

둘의 핵심 차이는 키입니다.

구분핵심
대칭키 암호같은 키로 암호화와 복호화
공개키 암호공개키와 개인키 한 쌍 사용

간단히 보면 다음과 같습니다.

대칭키 암호 = 빠르다, 대량 데이터 암호화에 적합하다, 키 분배가 어렵다.
공개키 암호 = 키 분배에 유리하다, 전자서명과 인증에 사용된다, 느리다.

실제 보안 통신에서는 둘 중 하나만 쓰기보다 함께 사용합니다.

공개키 암호로 대칭키를 안전하게 교환한다.
이후 실제 데이터는 빠른 대칭키 암호로 암호화한다.

이것이 하이브리드 암호 방식입니다.


대칭키 암호 복습

대칭키 암호란?

대칭키 암호는 암호화와 복호화에 같은 키를 사용하는 방식입니다.

시험식 정의는 다음입니다.

대칭키 암호는 송신자와 수신자가 동일한 비밀키를 공유하고, 해당 키로 암호화와 복호화를 수행하는 암호 방식이다.
핵심 의미
같은 키로 잠그고, 같은 키로 푼다.

예를 들어 A와 B가 같은 비밀키를 공유합니다.

A: 비밀키 K로 평문을 암호화
B: 같은 비밀키 K로 암호문을 복호화

대칭키 암호의 특징

항목내용
키 구조같은 비밀키 사용
속도빠름
용도대량 데이터 암호화
장점효율적이고 빠름
단점키 분배와 키 관리가 어려움
대표 알고리즘AES, SEED, ARIA, DES, 3DES
시험식 답안
대칭키 암호는 암호화와 복호화에 동일한 비밀키를 사용하는 방식으로, 속도가 빠르고 대량 데이터 암호화에 적합하다. 그러나 송신자와 수신자가 같은 키를 안전하게 공유해야 하므로 키 분배와 키 관리가 어렵다.

블록암호와 스트림암호

대칭키 암호는 처리 방식에 따라 크게 두 가지로 나눌 수 있습니다.

블록암호
스트림암호

블록암호

블록암호란?

블록암호는 평문을 일정한 크기의 블록으로 나누어 암호화하는 방식입니다.

시험식 정의
블록암호는 평문을 고정된 크기의 블록 단위로 나누어 각 블록을 대칭키로 암호화하는 방식이다.

예를 들어 블록 크기가 128비트라면 데이터를 128비트 단위로 나누어 처리합니다.

평문 → 블록1 / 블록2 / 블록3 / ...
각 블록을 암호화

대표적인 블록암호는 다음입니다.

알고리즘설명
AES대표적인 현대 블록암호
DES오래된 블록암호, 키 길이가 짧아 취약
3DESDES를 세 번 적용한 방식
SEED국내에서 개발된 블록암호
ARIA국내에서 개발된 블록암호

블록암호의 특징

특징설명
고정 블록 단위 처리예: 64비트, 128비트 등
운영모드 필요긴 데이터를 안전하게 암호화하려면 운영모드 사용
패딩 필요 가능마지막 블록 크기가 부족하면 패딩 사용
대표 용도파일 암호화, 디스크 암호화, 통신 암호화

블록암호에서 매우 중요한 개념이 운영모드입니다.

블록암호 자체는 한 블록을 암호화하는 함수이다.
여러 블록으로 이루어진 긴 데이터를 안전하게 암호화하려면 운영모드가 필요하다.

스트림암호

스트림암호란?

스트림암호는 키를 이용해 키스트림을 생성하고, 평문과 결합하여 암호문을 만드는 방식입니다.

시험식 정의
스트림암호는 비밀키로 생성한 키스트림을 평문과 비트 또는 바이트 단위로 결합하여 암호문을 생성하는 대칭키 암호 방식이다.
핵심 의미
스트림암호 = 흐르는 데이터에 키스트림을 섞어 암호화

보통 XOR 연산을 사용한다고 이해하면 됩니다.

평문 XOR 키스트림 = 암호문
암호문 XOR 키스트림 = 평문

스트림암호의 특징

특징설명
처리 단위비트 또는 바이트 단위
속도빠름
장점실시간 통신에 적합
주의점키스트림 재사용 시 매우 위험
대표 예RC4, ChaCha20 등

시험 수준에서는 다음 문장을 기억하면 됩니다.

스트림암호는 키스트림을 생성하여 평문과 결합하는 방식이며, 동일한 키스트림을 재사용하면 평문이 노출될 수 있어 주의해야 한다.

블록암호와 스트림암호 비교

구분블록암호스트림암호
처리 방식고정 크기 블록 단위비트·바이트 단위
운영모드필요상대적으로 단순
패딩필요할 수 있음일반적으로 불필요
용도파일, 디스크, 일반 데이터 암호화실시간 통신, 스트리밍
대표 예AES, SEED, ARIARC4, ChaCha20
주의점운영모드 선택 중요키스트림 재사용 금지
실기형 답안
블록암호는 평문을 고정된 크기의 블록 단위로 나누어 암호화하는 방식이고, 스트림암호는 키스트림을 생성하여 평문과 비트 또는 바이트 단위로 결합하는 방식이다. 블록암호는 운영모드와 패딩이 필요할 수 있으며, 스트림암호는 실시간 처리에 적합하지만 동일 키스트림 재사용 시 보안상 위험하다.

주요 대칭키 알고리즘

AES

AES는 Advanced Encryption Standard입니다.

시험식 정의
AES는 128비트 블록을 사용하고 128, 192, 256비트 키 길이를 지원하는 대표적인 대칭키 블록암호이다.

시험에서는 이렇게 기억하면 됩니다.

AES = 대표적인 안전한 현대 대칭키 블록암호
항목내용
종류대칭키 블록암호
블록 크기128비트
키 길이128, 192, 256비트
특징속도와 보안성이 우수
용도파일 암호화, 통신 암호화, 디스크 암호화 등

DES

DES는 Data Encryption Standard입니다.

과거에 널리 사용된 대칭키 블록암호입니다.

하지만 현재는 키 길이가 짧아 안전하지 않은 것으로 봅니다.

항목내용
종류대칭키 블록암호
블록 크기64비트
키 길이실질적으로 56비트
문제점키 길이가 짧아 무차별 대입 공격에 취약
현재 평가안전하지 않음
시험식 문장
DES는 56비트 키를 사용하는 오래된 대칭키 블록암호로, 현대 환경에서는 키 길이가 짧아 무차별 대입 공격에 취약하다.

3DES

3DES는 DES를 세 번 적용하여 보안성을 높이려는 방식입니다.

3DES = DES를 3회 적용

DES보다 강하지만 AES보다 느리고 효율성이 떨어집니다.

시험에서는 이렇게 기억하면 됩니다.

3DES는 DES의 취약한 키 길이를 보완하기 위해 DES를 세 번 적용한 방식이지만, AES에 비해 효율성이 낮다.

SEED와 ARIA

SEED와 ARIA는 국내에서 개발된 대칭키 블록암호입니다.

알고리즘특징
SEED국내 개발 대칭키 블록암호
ARIA국내 개발 대칭키 블록암호, 다양한 키 길이 지원

시험에서는 세부 구조보다 다음 정도를 기억하면 충분합니다.

SEED와 ARIA는 국내에서 개발된 대칭키 블록암호이다.

블록암호 운영모드

블록암호 운영모드는 긴 데이터를 여러 블록으로 나누어 암호화할 때 사용하는 방식입니다.

시험에서 매우 중요합니다.

주요 운영모드는 다음입니다.

ECB
CBC
CFB
OFB
CTR
GCM

이번 절에서는 정보보안기사에서 자주 나오는 수준으로 정리합니다.


ECB 모드

ECB란?

ECB는 Electronic Codebook 모드입니다.

각 평문 블록을 독립적으로 암호화합니다.

평문 블록1 → 암호화 → 암호문 블록1
평문 블록2 → 암호화 → 암호문 블록2
평문 블록3 → 암호화 → 암호문 블록3

ECB의 문제점

ECB의 가장 큰 문제는 다음입니다.

같은 평문 블록은 항상 같은 암호문 블록이 된다.

따라서 데이터의 반복 패턴이 암호문에 남을 수 있습니다.

예를 들어 같은 내용이 반복되는 이미지나 파일을 ECB로 암호화하면 구조적 패턴이 드러날 수 있습니다.

시험식 답안
ECB 모드는 각 블록을 독립적으로 암호화하므로 같은 평문 블록이 항상 같은 암호문 블록으로 변환된다. 이로 인해 데이터의 반복 패턴이 노출될 수 있어 보안상 안전하지 않으며, 일반적인 데이터 암호화에는 사용을 피하는 것이 바람직하다.
핵심 암기
ECB = 패턴 노출

CBC 모드

CBC란?

CBC는 Cipher Block Chaining 모드입니다.

각 평문 블록을 암호화하기 전에 이전 암호문 블록과 XOR합니다.

첫 번째 블록에는 이전 암호문이 없기 때문에 IV가 필요합니다.

첫 번째 평문 블록 XOR IV → 암호화
두 번째 평문 블록 XOR 이전 암호문 블록 → 암호화
세 번째 평문 블록 XOR 이전 암호문 블록 → 암호화

IV란?

IV는 Initialization Vector, 초기화 벡터입니다.

CBC 모드에서는 같은 평문을 같은 키로 암호화하더라도 매번 다른 암호문이 나오도록 IV를 사용합니다.

시험식 정의
IV는 블록암호 운영모드에서 같은 평문이 같은 암호문으로 반복되는 것을 방지하기 위해 사용하는 초기값이다.

IV는 보통 비밀일 필요는 없지만, 예측 불가능하거나 적절히 관리되어야 합니다.


CBC의 특징

특징설명
이전 암호문 블록 사용블록 간 연쇄 구조
IV 필요첫 번째 블록 암호화에 사용
패턴 은닉ECB보다 안전
패딩 필요 가능마지막 블록 크기 맞춤
오류 전파한 블록 오류가 다음 블록에 영향 가능
시험식 답안
CBC 모드는 각 평문 블록을 이전 암호문 블록과 XOR한 뒤 암호화하는 방식으로, 첫 번째 블록에는 IV가 사용된다. 같은 평문이라도 IV가 다르면 암호문이 달라져 ECB 모드의 패턴 노출 문제를 줄일 수 있다.
핵심 암기
CBC = 이전 암호문 블록과 연결, IV 필요

CFB 모드

CFB는 Cipher Feedback 모드입니다.

블록암호를 스트림암호처럼 사용할 수 있게 하는 운영모드입니다.

특징설명
구조이전 암호문을 암호화해 평문과 결합
IV필요
패딩일반적으로 불필요
용도스트림 처리에 활용 가능
특징블록암호를 스트림 형태로 운용

시험에서는 깊은 내부 구조보다 다음 정도를 기억하면 됩니다.

CFB 모드는 블록암호를 스트림암호처럼 사용할 수 있게 하며 IV를 사용한다.

OFB 모드

OFB는 Output Feedback 모드입니다.

블록암호를 이용해 키스트림을 생성하고, 이를 평문과 결합하는 방식입니다.

특징설명
구조암호 알고리즘 출력값을 다시 입력으로 사용
IV필요
패딩일반적으로 불필요
장점전송 오류가 다른 블록으로 크게 확산되지 않음
주의같은 키와 IV 재사용 시 위험
시험식 정리
OFB 모드는 블록암호로 키스트림을 생성하여 평문과 결합하는 방식이며, 같은 키와 IV를 재사용하면 보안상 위험하다.

CTR 모드

CTR이란?

CTR은 Counter 모드입니다.

카운터 값을 암호화하여 키스트림을 만들고, 이를 평문과 XOR하여 암호문을 생성합니다.

Counter 값 → 암호화 → 키스트림
평문 XOR 키스트림 → 암호문

CTR의 특징

특징설명
카운터 사용매 블록마다 다른 카운터 값 사용
병렬 처리 가능각 블록 독립 처리 가능
패딩 불필요스트림처럼 동작
속도효율적
주의같은 키와 nonce/counter 조합 재사용 금지

CTR에서 가장 중요한 보안 주의점은 다음입니다.

같은 키와 같은 카운터 값을 재사용하면 키스트림이 재사용되어 매우 위험하다.
시험식 답안
CTR 모드는 카운터 값을 암호화하여 생성한 키스트림을 평문과 결합하는 운영모드로, 병렬 처리가 가능하고 패딩이 필요하지 않다는 장점이 있다. 그러나 같은 키와 같은 nonce 또는 카운터 조합을 재사용하면 키스트림이 재사용되어 보안상 매우 위험하다.
핵심 암기
CTR = 카운터, 병렬 처리, nonce 재사용 금지

GCM 모드

GCM은 Galois/Counter Mode입니다.

CTR 모드를 기반으로 하면서 인증 기능을 함께 제공합니다.

시험 수준에서는 이렇게 이해하면 됩니다.

GCM = 암호화와 무결성 검증을 함께 제공하는 인증 암호 운영모드

GCM은 AEAD 방식으로 자주 설명됩니다.

AEAD = Authenticated Encryption with Associated Data

즉, 단순히 기밀성만 제공하는 것이 아니라 무결성과 인증도 함께 제공합니다.

특징설명
기반CTR 모드
제공기밀성 + 무결성 + 인증
장점빠르고 병렬 처리 가능
주의nonce 재사용 금지
시험식 답안
GCM은 CTR 모드를 기반으로 하면서 데이터의 기밀성과 무결성, 인증을 함께 제공하는 인증 암호 운영모드이다. 다만 nonce를 재사용하면 보안상 심각한 문제가 발생할 수 있으므로 고유한 nonce 관리가 중요하다.

운영모드 비교 정리

모드핵심 특징장점주의점
ECB각 블록 독립 암호화단순함패턴 노출, 사용 지양
CBC이전 암호문 블록과 XORECB보다 안전IV 필요, 패딩 필요 가능
CFB블록암호를 스트림처럼 사용스트림 처리 가능IV 필요
OFB키스트림 생성 후 결합오류 전파 적음키+IV 재사용 위험
CTR카운터 암호화로 키스트림 생성병렬 처리 가능, 빠름nonce/counter 재사용 위험
GCMCTR 기반 인증 암호기밀성+무결성 제공nonce 재사용 금지

시험에서 특히 중요한 것은 다음입니다.

ECB = 같은 평문 블록이 같은 암호문 블록이 되어 패턴 노출
CBC = IV 필요
CTR = 카운터 사용, 병렬 처리, nonce 재사용 금지
GCM = 기밀성뿐 아니라 무결성·인증 제공

운영모드와 무결성

중요한 시험 포인트입니다.

일반적인 암호화 모드는 주로 기밀성을 제공합니다.

암호화 = 기밀성 중심

하지만 데이터가 변조되었는지 확인하려면 무결성 검증이 필요합니다.

대책
MAC
HMAC
전자서명
GCM 같은 인증 암호 모드
시험식 문장
단순 암호화만으로는 데이터 변조 여부를 충분히 검증할 수 없으므로, 무결성 보호를 위해 MAC, HMAC, 전자서명 또는 GCM과 같은 인증 암호 방식을 함께 사용해야 한다.

공개키 암호 복습

공개키 암호란?

공개키 암호는 공개키와 개인키 한 쌍을 사용하는 방식입니다.

시험식 정의
공개키 암호는 공개키와 개인키 한 쌍을 사용하여 암호화, 복호화, 전자서명, 키 교환 등에 활용되는 암호 방식이다.
핵심 의미
공개키 = 남에게 공개 가능
개인키 = 본인만 안전하게 보관

공개키 암호의 용도

용도설명
키 교환대칭키를 안전하게 공유
암호화수신자의 공개키로 암호화
전자서명송신자의 개인키로 서명
인증인증서와 전자서명을 통해 신원 확인
부인방지개인키 소유자의 서명 사실 부인 방지

RSA

RSA란?

RSA는 대표적인 공개키 암호 방식입니다.

시험식 정의
RSA는 공개키와 개인키 한 쌍을 사용하며, 큰 수의 소인수분해가 어렵다는 성질에 기반한 대표적인 공개키 암호 알고리즘이다.

시험에서는 수학을 깊게 묻기보다 용도를 묻는 경우가 많습니다.

RSA = 공개키 암호, 암호화·전자서명에 사용

RSA의 사용 방식

암호화 용도

기밀성을 위해 사용할 때는 다음 흐름입니다.

송신자: 수신자의 공개키로 암호화
수신자: 자신의 개인키로 복호화

즉, 수신자만 복호화할 수 있습니다.

전자서명 용도

전자서명에서는 다음 흐름입니다.

송신자: 자신의 개인키로 서명
수신자: 송신자의 공개키로 검증

즉, 송신자가 서명했다는 것을 검증할 수 있습니다.


RSA 주의점

RSA는 반드시 안전한 패딩과 함께 사용해야 합니다.

시험 수준에서는 다음 정도를 기억하면 됩니다.

RSA는 공개키 암호 방식이지만 대칭키보다 느리므로 대량 데이터 암호화보다는 키 교환이나 전자서명에 주로 사용된다.

ECC

ECC란?

ECC는 Elliptic Curve Cryptography입니다.
한국어로는 타원곡선 암호입니다.

시험식 정의
ECC는 타원곡선 이산로그 문제의 어려움에 기반한 공개키 암호 방식으로, RSA보다 짧은 키 길이로 유사한 보안 강도를 제공할 수 있다.
핵심 의미
ECC = 짧은 키로 강한 보안을 제공하는 공개키 암호

ECC의 특징

특징설명
키 길이RSA보다 짧은 키로 유사 보안 강도 가능
성능모바일, IoT 등 자원 제한 환경에 유리
용도전자서명, 키 교환, 인증서
ECDSA, ECDH
시험식 답안
ECC는 타원곡선 기반 공개키 암호 방식으로, RSA보다 짧은 키 길이로 유사한 보안 강도를 제공할 수 있어 모바일이나 IoT 같은 자원 제한 환경에 유리하다.

RSA와 ECC 비교

구분RSAECC
기반 문제큰 수의 소인수분해 어려움타원곡선 이산로그 문제
키 길이상대적으로 김상대적으로 짧음
성능키 길이가 길어질수록 부담 증가짧은 키로 효율적
용도암호화, 전자서명, 키 교환전자서명, 키 교환, 인증
대표 예RSAECDSA, ECDH
시험식 답안
RSA는 큰 수의 소인수분해 어려움에 기반한 공개키 암호이고, ECC는 타원곡선 이산로그 문제에 기반한 공개키 암호이다. ECC는 RSA보다 짧은 키 길이로 유사한 보안 강도를 제공할 수 있어 성능과 저장공간 측면에서 유리하다.

Diffie-Hellman 키 교환

Diffie-Hellman이란?

Diffie-Hellman은 안전하지 않은 통신 채널에서 두 사용자가 공유 비밀값을 합의하기 위한 키 교환 방식입니다.

시험식 정의
Diffie-Hellman은 공개된 통신 채널을 통해 직접 비밀키를 전송하지 않고, 양 당사자가 동일한 공유 비밀값을 계산할 수 있도록 하는 키 교환 방식이다.
핵심 의미
Diffie-Hellman = 비밀키를 직접 보내지 않고 둘만 아는 공통 비밀값을 만드는 방식

Diffie-Hellman의 목적

Diffie-Hellman의 목적은 암호화 자체가 아니라 키 교환입니다.

Diffie-Hellman은 데이터를 암호화하는 알고리즘이라기보다, 대칭키를 만들기 위한 키 교환 방식이다.

생성된 공유 비밀값은 이후 대칭키 암호에 사용할 수 있습니다.


Diffie-Hellman의 한계

중요한 점이 있습니다.

기본 Diffie-Hellman은 상대방이 진짜 누구인지 확인하지 못하면 중간자 공격에 취약할 수 있습니다.

즉, 인증이 없는 DH는 MITM 공격을 받을 수 있습니다.

대응
인증서
전자서명
인증된 키 교환
TLS에서 인증서와 함께 사용
시험식 답안
Diffie-Hellman은 비밀키를 직접 전송하지 않고 공유 비밀값을 합의할 수 있는 키 교환 방식이다. 그러나 상대방 인증 없이 사용하면 중간자 공격에 취약할 수 있으므로 인증서나 전자서명 등을 통해 상대방을 인증해야 한다.

ECDH

ECDH는 Elliptic Curve Diffie-Hellman입니다.

타원곡선 기반 Diffie-Hellman 키 교환 방식입니다.

시험 수준에서는 이렇게 기억하면 됩니다.

ECDH는 ECC 기반의 Diffie-Hellman 키 교환 방식으로, 짧은 키 길이로 효율적인 키 교환을 제공한다.

하이브리드 암호 방식

왜 필요한가?

대칭키와 공개키는 각각 장단점이 있습니다.

구분장점단점
대칭키빠름키 분배 어려움
공개키키 분배에 유리느림

그래서 실제 보안 통신에서는 두 방식을 결합합니다.

공개키 암호 또는 키 교환 방식으로 대칭키를 안전하게 합의한다.
실제 데이터는 대칭키 암호로 빠르게 암호화한다.

하이브리드 암호 흐름

예를 들어 HTTPS/TLS의 기본 아이디어는 다음과 유사합니다.

1. 서버가 인증서를 제시한다.
2. 클라이언트가 서버 인증서를 검증한다.
3. 공개키 암호 또는 키 교환 방식으로 세션키를 만든다.
4. 이후 실제 데이터는 세션키를 이용한 대칭키 암호로 암호화한다.
5. 메시지 인증 또는 인증 암호 방식으로 무결성을 확인한다.
시험식 답안
하이브리드 암호 방식은 공개키 암호나 키 교환 방식으로 대칭키를 안전하게 공유하고, 실제 데이터는 속도가 빠른 대칭키 암호로 암호화하는 방식이다. 이를 통해 공개키 암호의 키 분배 장점과 대칭키 암호의 빠른 처리 속도를 함께 활용할 수 있다.

전방향 안전성 기초

이 내용은 심화지만 시험에서 용어로 나올 수 있습니다.

전방향 안전성, 즉 Forward Secrecy는 장기 개인키가 나중에 유출되더라도 과거 통신 내용이 복호화되지 않도록 하는 성질입니다.

시험식으로는 이렇게 이해하면 됩니다.

Forward Secrecy는 서버의 장기 개인키가 유출되더라도 과거 세션키가 보호되어 과거 통신 내용을 복호화하기 어렵게 하는 보안 성질이다.

임시 Diffie-Hellman 키 교환을 사용하면 전방향 안전성을 제공할 수 있습니다.

Ephemeral DH
Ephemeral ECDH

이번 절에서는 깊게 외우지 말고 다음만 기억하면 됩니다.

임시 키 교환을 사용하면 과거 세션 보호에 유리하다.

키와 IV, Nonce 구분

암호학에서 자주 헷갈리는 용어입니다.

용어의미비밀 여부
암호화·복호화에 사용하는 핵심 비밀값비밀 유지 필요
IV운영모드의 초기값보통 비밀은 아니지만 적절한 관리 필요
Nonce한 번만 사용하는 값보통 비밀은 아니지만 재사용 금지
Salt해시 계산에 추가하는 임의 값비밀일 필요는 없지만 고유해야 함
핵심 구분
키는 비밀이어야 한다.
IV와 Nonce는 보통 비밀일 필요는 없지만 재사용하면 위험할 수 있다.
Salt는 비밀번호 해시에서 동일 비밀번호의 같은 해시값 생성을 막기 위해 사용한다.
시험식 답안
키는 암호화와 복호화에 사용되는 비밀값으로 안전하게 보호해야 한다. IV와 Nonce는 보통 비밀일 필요는 없지만 운영모드에 따라 예측 불가능성이나 유일성이 필요하며, 특히 CTR이나 GCM에서는 같은 키와 Nonce 조합을 재사용하면 보안상 심각한 문제가 발생할 수 있다.

암호 알고리즘 선택 시 고려사항

시험에서는 “어떤 암호를 써야 하는가?”보다 원칙을 묻는 경우가 있습니다.

암호 알고리즘 선택 시 고려할 점은 다음입니다.

고려사항설명
검증된 알고리즘 사용자체 개발 암호 사용 지양
충분한 키 길이무차별 대입 공격 방지
안전한 운영모드ECB 지양, 적절한 IV/Nonce 사용
무결성 보장MAC, HMAC, GCM 등 적용
키 관리생성, 저장, 교체, 폐기 관리
성능시스템 환경에 맞는 방식 선택
표준 준수검증된 표준 알고리즘과 프로토콜 사용
시험식 문장
암호 알고리즘은 자체 개발 방식보다 검증된 표준 알고리즘을 사용해야 하며, 충분한 키 길이와 안전한 운영모드를 선택해야 한다. 또한 암호화만으로는 무결성을 보장하기 어려우므로 MAC, HMAC, GCM 등 무결성 검증 수단과 안전한 키 관리를 함께 적용해야 한다.

내용 연결 정리

파일을 안전하게 전송하는 상황을 예로 들면 다음과 같다.

1. 송신자와 수신자가 통신을 시작한다.
2. 공개키 암호 또는 Diffie-Hellman으로 세션키를 안전하게 합의한다.
3. 실제 파일 데이터는 AES 같은 대칭키 암호로 빠르게 암호화한다.
4. 운영모드는 ECB가 아니라 CBC, CTR, GCM 등 안전한 방식을 사용한다.
5. IV 또는 Nonce를 올바르게 관리한다.
6. 데이터가 변조되지 않았는지 MAC, HMAC 또는 GCM으로 검증한다.
7. 필요한 경우 전자서명으로 송신자 인증과 부인방지를 제공한다.

이 흐름에서 사용된 기술은 다음입니다.

목적기술
대칭키 공유공개키 암호, Diffie-Hellman
빠른 데이터 암호화AES
패턴 노출 방지안전한 운영모드
무결성 검증HMAC, GCM
송신자 증명전자서명
키 보호키 관리 정책

시험에 나오는 포인트

주제시험 포인트
대칭키 암호같은 키 사용, 빠름, 키 분배 어려움
블록암호고정 크기 블록 단위 암호화
스트림암호키스트림과 평문 결합
AES대표적인 현대 대칭키 블록암호
DES56비트 키, 현대 환경에서 취약
3DESDES를 세 번 적용
SEED/ARIA국내 개발 대칭키 블록암호
ECB같은 평문 블록이 같은 암호문, 패턴 노출
CBC이전 암호문 블록과 연결, IV 필요
CTR카운터 사용, 병렬 처리 가능, nonce 재사용 금지
GCM기밀성·무결성·인증 제공
공개키 암호공개키·개인키 쌍 사용
RSA소인수분해 어려움 기반 공개키 암호
ECC짧은 키로 높은 보안성 제공
Diffie-Hellman공유 비밀값 합의, 키 교환
DH 한계인증 없으면 MITM 취약
하이브리드 암호공개키로 키 교환, 대칭키로 데이터 암호화
IV/Nonce비밀은 아니지만 재사용 주의
무결성단순 암호화만으로는 부족, MAC/HMAC/GCM 필요

필기형 문제풀이

문제 1

대칭키 암호의 설명으로 가장 적절한 것은?

A. 암호화와 복호화에 같은 비밀키를 사용한다
B. 공개키 검증값만 저장한다
C. 평문을 항상 해시값으로만 변환한다
D. 전자서명 검증만 수행한다

정답: A

대칭키 암호는 같은 비밀키로 암호화와 복호화를 수행합니다.


문제 2

블록암호의 설명으로 적절한 것은?

A. 키스트림을 비트 단위로 생성해 평문과 결합한다
B. 평문을 고정 크기 블록 단위로 나누어 암호화한다
C. 공개키와 개인키 쌍으로만 동작한다
D. 해시값을 만들어 원문 복원을 방지한다

정답: B

블록암호는 데이터를 일정한 크기의 블록으로 나누어 암호화합니다.

정답 이유: 블록암호는 평문을 정해진 블록 크기로 나누고, 운영모드를 통해 여러 블록을 처리한다. 오답 이유: A는 스트림암호의 설명이고, C는 공개키 암호의 설명이다. 블록암호와 스트림암호는 처리 단위와 키스트림 사용 여부로 구분한다.


문제 3

스트림암호의 설명으로 적절한 것은?

A. 평문을 항상 128비트 블록으로만 나누어 처리한다
B. 공개키로 세션키를 교환하는 데만 사용된다
C. 키스트림을 생성하여 평문과 결합한다
D. 인증서 체인의 유효성을 검증한다

정답: C

스트림암호는 키스트림을 평문과 결합하여 암호문을 생성합니다.

정답 이유: 스트림암호는 연속적인 키스트림을 생성해 평문 비트나 바이트와 결합하는 방식이다. 오답 이유: A는 블록암호의 처리 방식에 가깝고, B는 공개키 기반 키 교환의 설명이다. 스트림암호는 인증서 검증 기능이 아니다.


문제 4

AES에 대한 설명으로 적절한 것은?

A. 공개키 기반 전자서명 알고리즘이다
B. 오래된 56비트 키 블록암호이다
C. 키 교환 전용 프로토콜이다
D. 대표적인 대칭키 블록암호이다

정답: D

AES는 대표적인 현대 대칭키 블록암호입니다.


문제 5

DES가 현대 환경에서 안전하지 않은 주된 이유는?

A. 키 길이가 짧아 무차별 대입 공격에 취약하다
B. 키 길이가 너무 길어 구현이 불가능하기 때문이다
C. 타원곡선 연산만 지원하기 때문이다
D. 인증 태그를 항상 생성하기 때문이다

정답: A

DES는 실질적으로 56비트 키를 사용하여 현대 환경에서는 안전하지 않습니다.


문제 6

ECB 모드의 보안상 문제점은?

A. IV를 사용해 매번 다른 암호문을 만들기 때문이다
B. 같은 평문 블록이 같은 암호문 블록으로 나타나 패턴이 노출될 수 있다
C. 카운터 값을 재사용할 수 없기 때문이다
D. 인증 태그 검증에 실패하기 때문이다

정답: B

ECB 모드는 패턴 노출 문제가 있어 일반적인 데이터 암호화에는 적합하지 않다.

정답 이유: ECB는 같은 키에서 같은 평문 블록이 항상 같은 암호문 블록이 되므로 반복 패턴이 드러날 수 있다. 오답 이유: A는 IV를 사용하는 CBC 등의 장점에 가깝고, C는 CTR/GCM에서 nonce나 counter 재사용 금지와 관련된다. ECB는 IV 없이 블록을 독립 처리하는 점이 핵심 약점이다.


문제 7

CBC 모드에 대한 설명으로 적절한 것은?

A. 각 평문 블록을 독립적으로 암호화해 패턴이 그대로 노출된다
B. 카운터 값을 암호화해 병렬 처리에 최적화된다
C. 이전 암호문 블록과 연쇄하여 암호화하며 IV가 필요하다
D. 인증 태그만 생성하고 암호화는 수행하지 않는다

정답: C

CBC는 이전 암호문 블록과 연쇄하며 첫 블록에는 IV가 필요합니다.


문제 8

CTR 모드의 특징으로 적절한 것은?

A. 이전 암호문 블록과 XOR한 뒤 암호화한다
B. 같은 평문 블록을 항상 같은 암호문으로 만든다
C. 인증서 폐지 여부만 확인한다
D. 카운터 값을 암호화하여 키스트림처럼 사용한다

정답: D

CTR 모드는 카운터 기반 키스트림을 사용하며 병렬 처리가 가능합니다.


문제 9

GCM 모드의 특징으로 적절한 것은?

A. 기밀성과 무결성, 인증을 함께 제공할 수 있다
B. 패딩 오류 검출만 제공한다
C. 공개키 서명 검증 전용 방식이다
D. 같은 nonce 재사용을 안전하게 허용한다

정답: A

GCM은 인증 암호 모드로 기밀성과 무결성 검증을 함께 제공합니다.

정답 이유: GCM은 CTR 기반 암호화에 인증 태그를 결합한 AEAD 방식으로, 암호화와 변조 검출을 함께 제공한다. 오답 이유: D처럼 같은 nonce 재사용을 허용하지 않는다. CTR/GCM 계열은 같은 키와 nonce 조합이 반복되면 키스트림이 재사용되어 보안이 크게 약화된다.


문제 10

RSA에 대한 설명으로 적절한 것은?

A. 타원곡선 이산로그 문제만 사용하는 대칭키 암호이다
B. 큰 수의 소인수분해 어려움에 기반한 공개키 암호이다
C. 블록암호의 카운터 운영모드이다
D. 인증서 폐지 목록을 배포하는 프로토콜이다

정답: B

RSA는 대표적인 공개키 암호입니다.

정답 이유: RSA는 큰 수의 소인수분해 어려움에 기반하며 공개키와 개인키 쌍을 사용하는 공개키 암호 방식이다. 오답 이유: A는 ECC의 기반 문제를 섞은 잘못된 설명이고, C는 블록암호 운영모드이다. RSA는 대칭키 블록암호가 아니다.


문제 11

ECC의 특징으로 적절한 것은?

A. 같은 평문 블록을 항상 같은 암호문으로 만드는 운영모드이다
B. 56비트 키 길이를 사용하는 오래된 블록암호이다
C. RSA보다 짧은 키 길이로 유사한 보안 강도를 제공할 수 있다
D. 키스트림 재사용을 전제로 안전성을 얻는다

정답: C

ECC는 타원곡선 기반 공개키 암호로, 짧은 키 길이로 효율적인 보안성을 제공합니다.


문제 12

Diffie-Hellman의 주요 목적은?

A. 암호문의 반복 패턴을 의도적으로 노출하는 운영모드
B. 인증서 폐지 목록을 주기적으로 배포하는 기능
C. 저장된 비밀번호를 단방향 해시로 변환하는 절차
D. 안전하지 않은 채널에서 공유 비밀값을 합의하는 키 교환

정답: D

Diffie-Hellman은 대칭키를 직접 보내지 않고 공유 비밀값을 합의하는 키 교환 방식입니다.

정답 이유: Diffie-Hellman의 목적은 공개된 통신 경로에서 양측이 동일한 공유 비밀값을 계산하도록 하는 것이다. 오답 이유: 해시 저장, CRL 배포, ECB 운영모드와는 목적이 다르다. DH는 데이터 암호화 알고리즘이라기보다 키 합의 절차로 이해해야 한다.


문제 13

기본 Diffie-Hellman의 보안상 한계로 적절한 것은?

A. 상대방 인증이 없으면 중간자 공격에 취약할 수 있다
B. 공개키와 개인키를 전혀 사용하지 못한다
C. 모든 암호문에 인증 태그를 자동으로 붙인다
D. 같은 평문 블록을 항상 같은 암호문으로 만든다

정답: A

DH는 인증 없이 사용하면 MITM 공격에 취약할 수 있습니다.


문제 14

하이브리드 암호 방식의 설명으로 적절한 것은?

A. 모든 데이터를 전자서명만으로 보호한다
B. 공개키 방식으로 대칭키를 교환하고 실제 데이터는 대칭키로 암호화한다
C. 같은 nonce를 반복 사용해 속도를 높인다
D. 해시값만 저장해 통신 내용을 복원한다

정답: B

하이브리드 방식은 공개키의 키 분배 장점과 대칭키의 속도 장점을 결합합니다.


실기형 답안 훈련

실기 예제 1

문제: 블록암호와 스트림암호의 차이를 설명하시오.

좋은 답안

블록암호는 평문을 고정된 크기의 블록 단위로 나누어 대칭키로 암호화하는 방식이고, 스트림암호는 비밀키로 생성한 키스트림을 평문과 비트 또는 바이트 단위로 결합하여 암호문을 생성하는 방식이다. 블록암호는 운영모드와 패딩이 필요할 수 있으며, 스트림암호는 실시간 처리에 적합하지만 동일 키스트림 재사용 시 보안상 위험하다.

채점 포인트

요소포함 여부
블록암호 = 고정 블록 단위필수
스트림암호 = 키스트림 결합필수
운영모드좋음
실시간 처리좋음
키스트림 재사용 위험중요

실기 예제 2

문제: ECB 모드의 보안상 문제점을 설명하시오.

좋은 답안

ECB 모드는 각 평문 블록을 독립적으로 암호화하므로 같은 평문 블록은 항상 같은 암호문 블록으로 변환된다. 이로 인해 암호문에서 데이터의 반복 패턴이 노출될 수 있어 일반적인 데이터 암호화에는 사용을 피하는 것이 바람직하다.

채점 포인트

요소포함 여부
각 블록 독립 암호화필요
같은 평문 → 같은 암호문필수
패턴 노출필수
사용 지양중요

실기 예제 3

문제: CBC 모드에서 IV가 필요한 이유를 설명하시오.

좋은 답안

CBC 모드는 각 평문 블록을 이전 암호문 블록과 XOR한 뒤 암호화하는 방식인데, 첫 번째 블록에는 이전 암호문 블록이 없으므로 IV가 필요하다. IV를 사용하면 같은 평문을 같은 키로 암호화하더라도 매번 다른 암호문이 생성되어 ECB 모드의 패턴 노출 문제를 줄일 수 있다.

채점 포인트

요소포함 여부
이전 암호문 블록과 XOR중요
첫 블록에 IV 필요필수
같은 평문 암호문 반복 방지필수
패턴 노출 완화중요

실기 예제 4

문제: CTR 모드의 특징과 주의사항을 설명하시오.

좋은 답안

CTR 모드는 카운터 값을 암호화하여 생성한 키스트림을 평문과 결합하는 운영모드로, 병렬 처리가 가능하고 패딩이 필요하지 않다는 장점이 있다. 그러나 같은 키와 같은 nonce 또는 카운터 조합을 재사용하면 키스트림이 재사용되어 평문 노출 위험이 커지므로 재사용을 금지해야 한다.

채점 포인트

요소포함 여부
카운터 사용필수
키스트림 생성중요
병렬 처리 가능좋음
패딩 불필요좋음
nonce/counter 재사용 금지필수

실기 예제 5

문제: RSA와 ECC의 차이를 설명하시오.

좋은 답안

RSA는 큰 수의 소인수분해 어려움에 기반한 대표적인 공개키 암호이고, ECC는 타원곡선 이산로그 문제에 기반한 공개키 암호이다. ECC는 RSA보다 짧은 키 길이로 유사한 보안 강도를 제공할 수 있어 모바일이나 IoT 같은 자원 제한 환경에서 효율적이다.

채점 포인트

요소포함 여부
RSA = 소인수분해 기반필수
ECC = 타원곡선 기반필수
ECC 짧은 키중요
유사 보안 강도중요
자원 제한 환경 유리좋음

실기 예제 6

문제: Diffie-Hellman 키 교환의 목적과 한계를 설명하시오.

좋은 답안

Diffie-Hellman은 공개된 통신 채널에서 비밀키를 직접 전송하지 않고 두 당사자가 동일한 공유 비밀값을 계산할 수 있도록 하는 키 교환 방식이다. 그러나 상대방 인증 없이 사용하면 중간자 공격에 취약할 수 있으므로 인증서나 전자서명 등을 이용해 상대방을 인증해야 한다.

채점 포인트

요소포함 여부
비밀키 직접 전송 안 함필수
공유 비밀값 합의필수
키 교환 방식중요
MITM 취약 가능필수
인증서·전자서명 필요중요

실기 예제 7

문제: 하이브리드 암호 방식의 필요성을 설명하시오.

좋은 답안

대칭키 암호는 빠르고 대량 데이터 암호화에 적합하지만 키 분배가 어렵고, 공개키 암호는 키 분배에 유리하지만 대칭키보다 속도가 느리다. 하이브리드 암호 방식은 공개키 암호나 키 교환 방식으로 대칭키를 안전하게 공유하고 실제 데이터는 대칭키로 암호화하여 두 방식의 장점을 함께 활용한다.

채점 포인트

요소포함 여부
대칭키 빠름필수
대칭키 키 분배 어려움필수
공개키 키 분배 유리필수
공개키 느림중요
공개키로 대칭키 공유필수
실제 데이터는 대칭키필수

핵심 요약

개념한 줄 요약
대칭키 암호같은 비밀키로 암호화와 복호화
블록암호고정 크기 블록 단위 암호화
스트림암호키스트림과 평문을 결합
AES대표적인 현대 대칭키 블록암호
DES키 길이가 짧아 현대 환경에서 취약
3DESDES를 세 번 적용한 방식
SEED/ARIA국내 개발 대칭키 블록암호
운영모드긴 데이터를 블록암호로 안전하게 처리하는 방식
ECB패턴 노출 위험
CBC이전 암호문 블록과 연결, IV 필요
CFB블록암호를 스트림처럼 사용
OFB키스트림 생성, IV 재사용 주의
CTR카운터 사용, 병렬 처리 가능
GCM기밀성·무결성·인증 제공
공개키 암호공개키와 개인키 쌍 사용
RSA소인수분해 어려움 기반 공개키 암호
ECC타원곡선 기반 공개키 암호
Diffie-Hellman공유 비밀값 합의 키 교환
ECDHECC 기반 DH 키 교환
하이브리드 암호공개키로 키 교환, 대칭키로 데이터 암호화
IV/Nonce비밀은 아니지만 재사용 주의
Forward Secrecy장기키 유출 시에도 과거 세션 보호

필수 암기 문장

아래 문장들은 필기와 실기 모두 중요합니다.

블록암호는 평문을 고정된 크기의 블록 단위로 나누어 암호화하는 방식이고, 스트림암호는 키스트림을 평문과 결합하여 암호화하는 방식이다.

AES는 대표적인 현대 대칭키 블록암호이고, DES는 56비트 키를 사용하여 현대 환경에서는 안전하지 않다.

ECB 모드는 같은 평문 블록이 같은 암호문 블록으로 변환되어 패턴이 노출될 수 있으므로 사용을 피하는 것이 바람직하다.

CBC 모드는 이전 암호문 블록과 평문 블록을 결합하여 암호화하며 첫 번째 블록에는 IV가 필요하다.

CTR 모드는 카운터 값을 암호화하여 키스트림을 생성하며 병렬 처리가 가능하지만 nonce와 counter 재사용은 금지해야 한다.

GCM은 기밀성뿐 아니라 무결성과 인증을 함께 제공하는 인증 암호 운영모드이다.

단순 암호화만으로는 데이터 변조 여부를 충분히 검증할 수 없으므로 MAC, HMAC, 전자서명 또는 인증 암호 모드를 함께 사용해야 한다.

RSA는 큰 수의 소인수분해 어려움에 기반한 공개키 암호이고, ECC는 타원곡선 기반 공개키 암호이다.

ECC는 RSA보다 짧은 키 길이로 유사한 보안 강도를 제공할 수 있어 자원 제한 환경에 유리하다.

Diffie-Hellman은 비밀키를 직접 전송하지 않고 공유 비밀값을 합의하는 키 교환 방식이다.

Diffie-Hellman은 상대방 인증 없이 사용하면 중간자 공격에 취약할 수 있으므로 인증서나 전자서명과 함께 사용해야 한다.

하이브리드 암호 방식은 공개키 암호나 키 교환으로 대칭키를 안전하게 공유하고 실제 데이터는 대칭키 암호로 암호화하는 방식이다.

키는 비밀로 보호해야 하며, IV와 Nonce는 보통 비밀일 필요는 없지만 재사용하면 위험할 수 있다.

연습 과제

다음 문제를 풀고 정답 및 해설과 대조한다.

A. 단답형

1. 대칭키 암호란 무엇인가?
2. 대칭키 암호의 장점과 단점을 쓰시오.
3. 블록암호란 무엇인가?
4. 스트림암호란 무엇인가?
5. 블록암호와 스트림암호의 차이를 쓰시오.
6. AES란 무엇인가?
7. DES가 현대 환경에서 취약한 이유는 무엇인가?
8. 3DES란 무엇인가?
9. SEED와 ARIA는 어떤 종류의 암호인가?
10. 블록암호 운영모드가 필요한 이유는 무엇인가?
11. ECB 모드의 보안상 문제점은 무엇인가?
12. CBC 모드에서 IV가 필요한 이유는 무엇인가?
13. CTR 모드의 특징과 주의사항을 쓰시오.
14. GCM 모드의 특징을 쓰시오.
15. 단순 암호화만으로 무결성을 보장하기 어려운 이유는 무엇인가?
16. 공개키 암호란 무엇인가?
17. RSA란 무엇인가?
18. ECC란 무엇인가?
19. RSA와 ECC의 차이를 쓰시오.
20. Diffie-Hellman 키 교환이란 무엇인가?
21. Diffie-Hellman이 중간자 공격에 취약할 수 있는 이유는 무엇인가?
22. ECDH란 무엇인가?
23. 하이브리드 암호 방식이란 무엇인가?
24. 키, IV, Nonce, Salt의 차이를 쓰시오.
25. Forward Secrecy란 무엇인가?

B. 상황 매칭 문제

아래 상황에 적합한 암호 개념이나 기술을 쓴다.

26. 대용량 파일을 빠르게 암호화하고 싶다.
27. 같은 평문 블록이 같은 암호문 블록으로 나타나 패턴이 노출되었다.
28. 첫 번째 블록 암호화에 초기값이 필요하다.
29. 카운터 값을 이용해 병렬 처리가 가능한 운영모드를 사용하고 싶다.
30. 암호화와 무결성 검증을 함께 제공하는 운영모드를 사용하고 싶다.
31. 공개된 통신 채널에서 비밀키를 직접 보내지 않고 공유 비밀값을 합의하고 싶다.
32. 상대방 인증 없이 키 교환을 했더니 중간자 공격 가능성이 생겼다.
33. 짧은 키 길이로 RSA와 유사한 보안 강도를 얻고 싶다.
34. 공개키 방식으로 대칭키를 교환하고 실제 데이터는 대칭키로 암호화하고 싶다.
35. 같은 키와 Nonce 조합이 다시 사용되어 키스트림 재사용 위험이 발생했다.

C. 실기형 답안 작성

다음 7문제는 2~3문장으로 답안을 작성한다.

36. 블록암호와 스트림암호의 차이를 설명하시오.

37. ECB 모드의 보안상 문제점을 설명하시오.

38. CBC 모드에서 IV가 필요한 이유를 설명하시오.

39. CTR 모드의 특징과 주의사항을 설명하시오.

40. RSA와 ECC의 차이를 설명하시오.

41. Diffie-Hellman 키 교환의 목적과 한계를 설명하시오.

42. 하이브리드 암호 방식의 필요성을 설명하시오.

보완 학습 및 연습 과제 정답

AEAD, GCM, RSA 패딩 보강

AEAD는 암호화와 무결성 검증을 함께 제공하는 인증 암호 방식이다. AES-GCM은 대표적인 AEAD 모드로 기밀성과 인증 태그를 함께 제공하지만, 같은 키에서 Nonce를 재사용하면 보안성이 크게 깨진다. CBC를 사용할 때는 임의 IV와 별도의 MAC을 안전한 순서로 결합해야 하며, 단순 CBC만으로는 무결성을 보장하지 못한다.

RSA 암호화에는 OAEP 패딩을 사용하고, RSA 전자서명에는 PSS 패딩을 사용하는 것이 바람직하다. PKCS#1 v1.5 등 오래된 패딩은 환경과 구현에 따라 취약할 수 있으므로 최신 기준 확인이 필요하다.

정답 및 해설

A. 단답형 예시 정답: 대칭키는 같은 키로 암복호화하고 공개키는 공개키·개인키 쌍을 사용한다. AES는 현재 널리 쓰이는 대칭키 알고리즘이고 DES와 3DES는 보안 목적 신규 사용을 지양한다. ECB는 같은 평문 블록이 같은 암호문으로 나타나므로 부적절하고, CBC는 IV가 필요하며 무결성은 별도 보장해야 한다. CTR과 GCM은 Nonce 재사용 금지가 핵심이고, GCM은 인증 태그로 무결성까지 제공한다. RSA는 암호화와 서명 용도가 다르며, ECDH는 키 교환에 사용된다.

B. 상황 매칭 정답: 반복 패턴 노출은 ECB, IV가 필요한 모드는 CBC, Nonce 재사용 위험은 CTR/GCM, 인증 태그가 필요한 경우는 GCM 같은 AEAD, 안전한 RSA 암호화는 OAEP, 안전한 RSA 서명은 PSS, 대량 데이터와 키 교환 결합은 하이브리드 암호 방식이다.

C. 실기형 채점 기준: 핵심 키워드는 AES, ECB 금지, CBC+MAC 주의, IV/Nonce 재사용 금지, AEAD, GCM 인증 태그, RSA-OAEP, RSA-PSS, 하이브리드 암호이다. 부분점은 알고리즘 구분 25%, 운영모드 위험 35%, 공개키 사용법 25%, 최신 기준 확인 15%로 부여한다. GCM에서 Nonce 재사용을 허용하거나 RSA 개인키로 암호화한다고 단순화하면 감점한다.

목차

학습 목표
학습 내용의 큰 그림
대칭키 암호 복습
대칭키 암호란?
대칭키 암호의 특징
블록암호와 스트림암호
블록암호
블록암호란?
블록암호의 특징
스트림암호
스트림암호란?
스트림암호의 특징
블록암호와 스트림암호 비교
주요 대칭키 알고리즘
AES
DES
3DES
SEED와 ARIA
블록암호 운영모드
ECB 모드
ECB란?
ECB의 문제점
CBC 모드
CBC란?
IV란?
CBC의 특징
CFB 모드
OFB 모드
CTR 모드
CTR이란?
CTR의 특징
GCM 모드
운영모드 비교 정리
운영모드와 무결성
공개키 암호 복습
공개키 암호란?
공개키 암호의 용도
RSA
RSA란?
RSA의 사용 방식
암호화 용도
전자서명 용도
RSA 주의점
ECC
ECC란?
ECC의 특징
RSA와 ECC 비교
Diffie-Hellman 키 교환
Diffie-Hellman이란?
Diffie-Hellman의 목적
Diffie-Hellman의 한계
ECDH
하이브리드 암호 방식
왜 필요한가?
하이브리드 암호 흐름
전방향 안전성 기초
키와 IV, Nonce 구분
암호 알고리즘 선택 시 고려사항
내용 연결 정리
시험에 나오는 포인트
필기형 문제풀이
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
문제 7
문제 8
문제 9
문제 10
문제 11
문제 12
문제 13
문제 14
실기형 답안 훈련
실기 예제 1
좋은 답안
채점 포인트
실기 예제 2
좋은 답안
채점 포인트
실기 예제 3
좋은 답안
채점 포인트
실기 예제 4
좋은 답안
채점 포인트
실기 예제 5
좋은 답안
채점 포인트
실기 예제 6
좋은 답안
채점 포인트
실기 예제 7
좋은 답안
채점 포인트
핵심 요약
필수 암기 문장
연습 과제
A. 단답형
B. 상황 매칭 문제
C. 실기형 답안 작성
보완 학습 및 연습 과제 정답
AEAD, GCM, RSA 패딩 보강
정답 및 해설