암호 영역은 계산 문제와 개념 문제가 함께 나와서 준비한 만큼 점수가 나오는 구간입니다. 이번에는 RSA와 디피-헬만 계산, 해시, 전자서명, 인증서 폐지, TLS까지 8문제를 묶었습니다.
이 문제들은 학습용으로 직접 만든 예상문제이며 실제 시험과 다를 수 있습니다. 최신 출제 범위와 일정은 KISA 등 공식 공지를 확인하세요. 정답과 해설은 접혀 있으니, 먼저 스스로 답을 적어 본 뒤 눌러서 확인하세요.
이 글의 구성
- 대칭·비대칭 구분과 RSA, 디피-헬만 계산(문제 1~3)
- 해시, 전자서명, 전자봉투(문제 4~5)
- 인증서 폐지, 블록암호 운용 모드, TLS(문제 6~8)
문제 1. 암호 알고리즘 분류
AES, RSA, ARIA, ECDSA, SEED, DSA 중 대칭키 알고리즘을 모두 고르고, 이 중 블록 크기가 64비트인 것이 있는지 답하시오.
정답 및 해설 보기
정답 대칭키: AES, ARIA, SEED. 이 중 64비트 블록은 없다.
AES, ARIA, SEED는 모두 128비트 블록을 쓰는 대칭키 블록 암호입니다. RSA는 비대칭 암호, ECDSA와 DSA는 전자서명 알고리즘입니다. 64비트 블록의 대표는 DES와 3DES인데, DES는 키가 56비트로 짧아 현재는 안전하지 않다고 봅니다.
문제 2. RSA 암호화·복호화 계산
p=11, q=13, e=7 인 RSA에서 (1) n과 φ(n) (2) 개인키 d (3) 평문 M=9의 암호문 C를 구하시오.
정답 및 해설 보기
정답 (1) n=143, φ(n)=120 (2) d=103 (3) C=48
n=p×q=143, φ(n)=(p-1)(q-1)=10×12=120 입니다. d는 e×d ≡ 1 (mod 120)을 만족해야 하는데 7×103=721=6×120+1 이므로 d=103입니다. 암호문은 9^7 mod 143 = 48 이고, 48^103 mod 143 = 9 로 복호화가 맞는지도 확인했습니다. (파이썬으로 검산)
문제 3. 디피-헬만 키 교환
소수 p=23, 원시근 g=5 를 공개하고 앨리스의 비밀값 a=6, 밥의 비밀값 b=15 를 쓴다. 각자 보내는 공개값과 공유 비밀키를 구하시오. 또 이 방식이 취약한 공격 하나를 쓰시오.
정답 및 해설 보기
정답 앨리스 공개값 A=5^6 mod 23=8, 밥 공개값 B=5^15 mod 23=19, 공유키 K=19^6 mod 23=8^15 mod 23=2. 취약한 공격: 중간자 공격(MITM)
공개값 교환 과정에 인증이 없어서 공격자가 양쪽과 각각 키를 맺고 중간에서 가로챌 수 있습니다. 그래서 실제 프로토콜에서는 인증서나 서명으로 상대를 확인합니다. (계산은 파이썬으로 검산)
문제 4. 해시 함수의 성질
(1) 해시 함수가 갖춰야 할 3가지 저항성을 쓰시오. (2) SHA-256의 출력 길이와, 생일 공격으로 충돌을 찾는 데 필요한 대략적인 시도 횟수를 쓰시오.
정답 및 해설 보기
정답 (1) 역상 저항성(일방향성), 제2 역상 저항성, 충돌 저항성 (2) 출력 256비트(16진수 64자리), 충돌 탐색은 약 2^128번
n비트 해시의 충돌은 생일 역설 때문에 약 2^(n/2)번 시도로 찾을 수 있습니다. MD5는 128비트, SHA-1은 160비트라서 이미 충돌 공격이 현실화되어 무결성 검증에는 SHA-256 이상을 권장합니다.
문제 5. 전자서명과 전자봉투
(1) 전자서명이 제공하는 보안 서비스 3가지를 쓰시오. (2) 전자봉투가 어떻게 만들어지는지 설명하시오.
정답 및 해설 보기
정답 (1) 무결성, 인증(신원 확인), 부인방지 (2) 평문은 빠른 대칭키로 암호화하고, 그 대칭키를 수신자의 공개키로 암호화해서 함께 보낸다.
서명은 송신자가 메시지 해시를 자신의 개인키로 암호화해서 만들고, 수신자는 송신자 공개키로 검증합니다. 전자봉투는 대칭키의 속도와 공개키의 키 분배 편의성을 함께 얻는 구조이며, 기밀성을 위한 것입니다.
문제 6. 인증서 폐지 확인: CRL과 OCSP
인증서 폐지 여부를 확인하는 CRL과 OCSP를 비교하고, OCSP를 쓰는 이유를 쓰시오.
정답 및 해설 보기
정답 CRL은 인증기관이 주기적으로 발행하는 폐지 인증서 목록이고, OCSP는 인증서 하나의 상태를 실시간으로 질의하는 프로토콜이다.
CRL은 목록이 커질수록 내려받기 부담이 크고 발행 주기 사이에는 폐지 사실을 알 수 없습니다. OCSP는 응답이 작고 최신 상태를 확인할 수 있지만 질의 서버에 부하와 개인정보 노출 문제가 생겨, 서버가 응답을 미리 받아 붙여 주는 OCSP Stapling을 함께 씁니다.
문제 7. 블록암호 운용 모드
ECB 모드의 가장 큰 문제점을 쓰고, 대안이 되는 모드 두 가지와 그 특징을 쓰시오.
정답 및 해설 보기
정답 ECB는 같은 평문 블록이 항상 같은 암호문 블록이 되어 패턴이 드러난다. 대안: CBC(이전 암호문 블록과 XOR, IV 필요), CTR(카운터로 키 스트림을 만들어 병렬 처리 가능)
인증까지 한 번에 제공하는 GCM 같은 AEAD 모드도 널리 쓰입니다. CBC는 IV를 예측할 수 없게 매번 새로 만들어야 하고, CTR은 같은 키에서 카운터 값이 겹치지 않게 해야 합니다.
문제 8. TLS 1.3의 변화
TLS 1.3이 이전 버전보다 보안과 성능 면에서 개선된 점 두 가지를 쓰시오.
정답 및 해설 보기
정답 ① 핸드셰이크가 1-RTT로 단축되었다. ② RSA 키 교환을 없애고 (EC)DHE를 필수로 해서 전방 비밀성을 보장한다.
1.3에서는 SHA-1, RC4, CBC 모드 같은 취약한 알고리즘도 제거되었습니다. 전방 비밀성은 서버 개인키가 나중에 유출되더라도 과거 세션 키는 복구할 수 없게 해 주는 성질입니다.
공부 팁 3가지
- 계산 문제는 풀이 과정을 단계별로 적는 연습을 하세요. 중간 단계에도 부분 점수가 걸립니다.
- 알고리즘은 이름만 외우지 말고 블록 크기, 키 길이, 용도(대칭·비대칭·서명·해시)를 표로 정리해 두세요.
- “A와 B를 비교하시오” 유형이 자주 나오니 CRL·OCSP, CBC·CTR처럼 짝으로 묶어 외우면 효율적입니다.
면책: 이 글의 문제는 학습용으로 직접 만든 예상문제이며 실제 시험과 다를 수 있습니다. 시험 범위, 일정, 합격 기준은 KISA 등 공식 공지를 확인하세요.