정보통신기사 필기

🔐 암호화 — 대칭키 · 비대칭키 · AES-256

🛡️ 정보보안 3대 요소 (CIA)
요소의미깨지면
기밀성
Confidentiality
인가된 사람만 정보를 볼 수 있음도청 · 유출
무결성
Integrity
인가된 사람만 수정 가능하고, 전송 중 변조되지 않음 기출 2회위조 · 변조
가용성
Availability
필요할 때 언제든 사용 가능서비스 중단 · DDoS
여기에 인증(Authentication) 과 부인방지(Non-repudiation) 를 더해 5요소로 보기도 한다.
🔑 대칭키 vs 비대칭키
구분대칭키 (비밀키)비대칭키 (공개키)
키암호화·복호화에 같은 키암호화·복호화에 다른 키 (공개키 / 개인키)
속도빠름 대용량 데이터에 적합느림 (수백~수천 배)
키 배송문제 있음 — 키를 안전하게 전달해야 함해결 — 공개키는 공개해도 됨
필요한 키 개수
n명이 통신할 때
n(n−1)2 개
10명 → 45개
2n 개
10명 → 20개
대표 알고리즘AES · DES · 3DES · IDEA
SEED · ARIA · RC4
RSA · ECC · DSA
ElGamal · Diffie-Hellman
주 용도실제 데이터 암호화키 교환 · 전자서명 · 인증
⚠ 기출 — "암호화·복호화 종류가 다른 것은?" → RSA. IDEA · DES · AES는 모두 대칭키, RSA만 비대칭키 다.
실제로는 둘을 섞어 쓴다 (하이브리드) — HTTPS/TLS는 비대칭키로 세션키를 안전하게 주고받은 뒤, 실제 데이터는 빠른 대칭키(AES) 로 암호화한다. 비대칭의 안전성과 대칭의 속도를 모두 취하는 방식.
🔁 동작 방식 — 버튼을 눌러 흐름을 비교해 보세요
🎯 어느 키로 잠그느냐에 따라 목적이 달라진다 — 시험 최다 출제
암호화에 쓴 키복호화할 수 있는 키얻는 것의미
받는 사람의 공개키 받는 사람의 개인키 기밀성 그 사람만 열 수 있다
→ 비밀 전송 기출
보내는 사람의 개인키 보내는 사람의 공개키
= 누구나 열 수 있음
인증 · 부인방지 · 무결성 그 사람이 보낸 게 증명된다
→ 전자서명
① 내 개인키로 서명 → ② 상대 공개키로 암호화 기밀성 + 부인방지 둘 다 필요할 때. 서명 먼저, 암호화 나중 기출
💡 헷갈리지 않는 법 — "잠그는 키의 짝만 열 수 있다" 는 원칙 하나만 기억하면 된다.
· 비밀로 보내고 싶다 → 받는 사람만 열 수 있어야 하니 받는 사람의 공개키로 잠근다
· 내가 보냈다고 증명하고 싶다 → 나만 잠글 수 있어야 하니 내 개인키로 잠근다
🧮 필요한 키 개수 계산기
🔑 대칭키 — 블록 암호 vs 스트림 암호
구분블록 암호스트림 암호
단위일정 크기 블록 단위 (64 · 128비트)비트 / 바이트 단위
방식치환·전치를 반복(라운드)키 스트림을 만들어 평문과 XOR
속도보통매우 빠름
예AES · DES · 3DES · IDEA
SEED · ARIA
RC4 · A5/1 · LFSR 기반
주 용도파일 · 데이터 저장 암호화무선 통신 · 실시간 스트리밍
🔐 비대칭키 알고리즘 4종
알고리즘수학적 근거암호화전자서명키 교환특징
RSA소인수분해의 어려움 OOO 가장 널리 쓰임. 이름은 설계자 3인(Rivest·Shamir·Adleman)의 머리글자
ECC타원곡선 이산대수 OOO 짧은 키로 같은 안전성 → 모바일 · IoT · 스마트카드에 유리
Diffie-Hellman이산대수 XXO 키 교환 전용 — 안전하지 않은 경로로 공통 비밀키를 만들어 내는 최초의 방식
DSA이산대수 XOX 전자서명 전용 표준 (미국 DSS)
⚠ 자주 나오는 함정 — Diffie-Hellman은 "키 교환" 이지 암호화 알고리즘이 아니고, DSA는 "전자서명" 전용이라 암호화에 못 쓴다. 셋 다 되는 것은 RSA와 ECC 뿐이다.
📏 같은 안전성을 내려면 키가 얼마나 필요한가
비대칭키는 대칭키보다 훨씬 긴 키 가 있어야 같은 수준의 안전성을 낸다. 그래서 대칭키 128비트(AES-128)와 맞먹으려면 RSA는 3072비트 가 필요하다.
대칭키 (AES)RSAECC비고
80비트1,024160현재 부적합
112비트2,048224현재 최소 권장
128비트 (AES-128)3,072256표준 권장
192비트7,680384상위 등급
256비트 (AES-256)15,360512최고 등급 — RSA는 사실상 비현실적
💡 ECC가 뜨는 이유 — 같은 128비트 안전성에 RSA는 3,072비트가 필요한데 ECC는 256비트면 된다. 키가 1/12 로 짧아 연산량·전력·저장공간이 적게 들어 모바일과 IoT 에 적합하다.
⭐ AES — Advanced Encryption Standard
AES 는 노후화된 DES를 대체하기 위해 미국 NIST가 공모해 2001년 표준(FIPS 197) 으로 채택한 대칭키 블록 암호. 원래 알고리즘 이름은 Rijndael(라인달) 로, 벨기에의 Joan Daemen과 Vincent Rijmen이 설계했다. 현재 전 세계에서 사실상 표준 으로 쓰인다.
항목내용
블록 크기128비트 (16바이트) 고정 — 키 길이와 무관하게 항상 128비트
키 길이128 / 192 / 256 비트 세 가지
라운드 수10 / 12 / 14 회 (키 길이에 따라)
구조SPN (Substitution-Permutation Network)
DES는 Feistel 구조 — 자주 비교 출제
상태(State)4 × 4 바이트 행렬로 데이터를 놓고 변환
표준NIST FIPS 197 (2001년)
🧮 키 길이별 비교 — 버튼을 눌러 확인해 보세요
🔄 한 라운드에서 일어나는 일 — 4단계

① SubBytes

바이트 치환
S-box 표를 보고 각 바이트를 다른 값으로 바꾼다

비선형성 확보

② ShiftRows

행 이동
2·3·4행을 각각 1·2·3칸 왼쪽으로 순환 이동

확산(Diffusion)

③ MixColumns

열 혼합
각 열을 행렬 연산으로 섞는다

마지막 라운드에서는 생략

④ AddRoundKey

라운드 키 XOR
키 스케줄로 만든 라운드 키와 XOR

실제 비밀이 개입하는 단계

💡 암기 — 치환 → 행 이동 → 열 섞기 → 키 XOR 을 라운드 수만큼 반복한다. 마지막 라운드에서만 MixColumns를 생략하는 것이 포인트. 라운드 키는 키 스케줄로 (라운드 수 + 1)개 만들어진다 → AES-256이면 15개.
⚙️ 블록 암호 운영 모드
AES는 128비트씩 만 암호화한다. 그보다 긴 데이터를 어떻게 이어 붙일지 정한 것이 운영 모드 다. 같은 AES-256이라도 모드를 잘못 고르면 안전하지 않다.
모드방식특징평가
ECB
Electronic Codebook
블록마다 독립적으로 암호화같은 평문 블록 → 같은 암호문 → 원본 패턴이 그대로 드러남사용 금지
CBC
Cipher Block Chaining
앞 블록 암호문과 XOR 후 암호화. IV 필요패턴 노출 없음. 순차 처리라 병렬 불가널리 쓰임
CTR
Counter
카운터를 암호화해 평문과 XOR병렬 처리 가능, 스트림처럼 동작, 길이 제약 없음우수
GCM
Galois/Counter
CTR + 인증 태그(GMAC)기밀성 + 무결성 + 인증을 동시에 제공. TLS 1.3 표준현재 권장
CFB / OFB블록 암호를 스트림처럼 사용블록 단위로 맞출 필요 없음제한적
⚠ ECB를 쓰면 안 되는 이유 — 같은 평문이 항상 같은 암호문이 되므로, 이미지를 ECB로 암호화하면 원본 윤곽이 그대로 보인다. 실무·시험 모두 "ECB는 안전하지 않다"가 정답.
📉 DES → 3DES → AES
알고리즘키 길이블록구조상태
DES (1977)56비트
실제 키 56 / 표기 64
64비트Feistel
16라운드
폐기 — 전수조사로 해독 가능
3DES112 / 168비트64비트Feistel
DES 3회
느림 — 과도기 대안
AES (2001)128 / 192 / 256128비트SPN
10/12/14라운드
현재 표준
🇰🇷 국산 암호 알고리즘
알고리즘블록 / 키특징
SEED블록 128 / 키 128KISA 개발. 국내 금융·공공에서 오래 사용된 국가 표준
ARIA블록 128 / 키 128·192·256국가보안기술연구소. AES와 같은 파라미터, SPN 구조. 국가 표준(KS)
HIGHT블록 64 / 키 128경량 암호 — RFID·센서 등 저사양 기기용
LEA블록 128 / 키 128·192·256고속 경량 암호. 모바일·IoT 환경
✍ 해시 함수와 전자서명
해시출력 길이상태
MD5128비트충돌 발견 — 사용 금지
SHA-1160비트충돌 발견 — 폐기
SHA-256256비트현재 표준 (SHA-2 계열)
SHA-3가변차세대 표준
해시는 단방향 — 복호화가 불가능하다. 무결성 검증과 비밀번호 저장에 쓴다. 암호화(양방향)와 혼동하지 말 것.
📖 기출 2022-1회 — A가 B에게 전자서명 + 암호화해서 보낼 때 순서는?
① 서명 : A의 비밀키 로 서명  →  누가 보냈는지 증명(부인방지)
② 암호화 : B의 공개키 로 암호화  →  B만 열 수 있음(기밀성)
정답 : A의 비밀키 → B의 공개키
키 선택 한 줄 정리
• 상대의 공개키로 암호화 → 기밀성 (상대만 열 수 있다) 기출
• 내 개인키로 암호화(서명) → 부인방지 · 인증 (내가 보낸 게 증명된다)
📝 시험 포인트
• AES = 대칭키, RSA = 비대칭키 (DES · 3DES · IDEA · SEED · ARIA도 대칭키)
• AES 블록은 항상 128비트, 키만 128/192/256으로 달라진다
• 키 길이별 라운드 = 10 / 12 / 14 — AES-256은 14라운드
• AES는 SPN 구조, DES는 Feistel 구조
• 마지막 라운드는 MixColumns 생략
• ECB 모드는 사용 금지, 현재 권장은 GCM
• 대칭키 개수 n(n−1)2, 비대칭키 개수 2n
• 전자서명 후 암호화 = A의 비밀키 → B의 공개키