공든탑앱 열기

암호 알고리즘

정보처리기사 · 소프트웨어 개발 보안 · 약 15분

쉽게 말하면

암호화는 남이 못 읽게 데이터를 바꾸는 거예요. 잠그는 열쇠와 여는 열쇠가 같으면 대칭 키(빠르지만 열쇠를 안전하게 건네기 어려워요), 다르면 비대칭 키예요. 비대칭은 누구나 아는 공개 키로 잠그고 나만 가진 개인 키로 열어요. 해시는 데이터를 짧은 고정 길이 값으로 바꾸는데, 되돌릴 수 없어서 비밀번호 저장과 위·변조 확인에 써요.

시험용 정의

대칭 키(비밀 키) 암호는 암호화와 복호화에 같은 키를 쓴다. 빠르고 효율적이지만 키 배송·관리가 어렵다. 데이터를 일정 크기 블록으로 나눠 처리하는 블록 암호(DES 64비트 블록·56비트 키, 3DES, AES 128비트 블록·128/192/256비트 키, SEED 한국인터넷진흥원 개발, ARIA 국가보안기술연구소 주도, IDEA)와 비트 단위로 처리하는 스트림 암호(RC4, LFSR)가 있다. 비대칭 키(공개 키) 암호는 공개 키로 암호화하고 개인 키로 복호화하며 키 관리가 쉽지만 느리다: RSA(큰 수의 소인수분해), ECC(타원 곡선), 디피-헬만(키 교환, 이산 대수), ElGamal(이산 대수). 해시는 임의 길이 입력을 고정 길이 값으로 바꾸는 일방향 함수로 SHA 계열, MD5(128비트), HAVAL 등이 있다. 같은 비밀번호도 다른 해시값이 나오게 덧붙이는 무작위 값을 솔트라 한다. 전자 서명은 보낸 사람의 개인 키로 서명하고 공개 키로 검증해 인증·무결성·부인 방지를 준다. PKI는 인증 기관(CA)이 공개 키 인증서를 발급·관리하는 기반 구조다.

비유로 이해하기

대칭 키는 같은 열쇠 두 개를 나눠 갖는 집 열쇠다. 비대칭 키는 누구나 넣을 수 있지만 주인만 여는 우체통이다. 해시는 지문과 같다. 지문으로 사람을 확인할 수는 있지만 지문으로 사람을 다시 만들 수는 없다.

자세히

먼저 알아 둘 말

말뜻
평문 / 암호문읽을 수 있는 원래 데이터 / 암호화한 데이터
복호화암호문을 평문으로 되돌리는 것
공개 키 / 개인 키누구에게나 공개하는 키 / 본인만 보관하는 키
일방향한쪽으로만 계산되고 거꾸로 되돌릴 수 없는 성질
솔트해시 전에 비밀번호에 덧붙이는 무작위 값
부인 방지보낸 사람이 보내지 않았다고 잡아뗄 수 없게 하는 것

대칭 키 vs 비대칭 키

구분대칭 키비대칭 키
키암·복호화 키 같음 (비밀 키)공개 키로 암호화, 개인 키로 복호화
속도빠름느림
키 개수 (n명)n(n−1)/22n
키 관리배송·관리 어려움쉬움
알고리즘DES, 3DES, AES, SEED, ARIA, IDEA, RC4RSA, ECC, 디피-헬만, ElGamal

블록 암호 정리

알고리즘블록키메모
DES64비트56비트미국 표준, 현재는 취약
3DES64비트DES를 세 번DES 강화
AES128비트128·192·256비트DES 후속 미국 표준
SEED128비트128·256비트한국인터넷진흥원(KISA) 개발
ARIA128비트128·192·256비트국가보안기술연구소 중심 학·연·관 개발
IDEA64비트128비트스위스 개발, PGP에 사용

해시와 전자 서명

  • 해시는 복호화할 수 없다. 비밀번호는 해시(+솔트)로 저장해 원문을 보관하지 않는다
  • 해시 함수 예: SHA-1, SHA-256(SHA-2), MD5, HAVAL, N-NASH, SNEFRU
  • 전자 서명: 문서 해시를 보낸 사람의 개인 키로 서명 → 받는 사람이 공개 키로 검증

기출에서 더 나온 것

말뜻
복호화암호문을 평문으로 되돌리는 작업 (평문 → 암호문은 암호화)
스트림 암호평문을 비트·바이트 단위로 차례로 암호화하는 대칭키 방식 (예: RC4). 해시를 쓰는 것이 아니다
대칭키의 단점같은 키를 양쪽이 나눠 가져야 해서 키 교환이 필요하다. 대신 속도가 빠르다
HSM하드웨어 보안 모듈. 암호 키를 만들고 안전하게 보관하는 전용 장치. 클라우드 HSM도 하드웨어 기반이다
해시 함수MD4·MD5·SHA 계열. 같은 입력엔 늘 같은 고정 길이 값이 나와 무결성 확인에 쓴다. 되돌릴 수 없고 키를 만드는 용도가 아니다

시험에 이렇게 나와요

확인 문제

Q1. 사용자 10명이 서로 대칭 키로 통신하려면 키가 몇 개 필요할까요?

  1. 20개
  2. 10개
  3. 100개
  4. 45개
정답 보기

4번 45개

대칭 키는 두 사람마다 키 하나: n(n−1)/2 = 10 × 9 / 2 = 45개. 비대칭 키는 사람마다 공개 키·개인 키 한 쌍이라 2n = 20개.

Q2. 비대칭 키 암호 알고리즘은?

  1. ARIA
  2. SEED
  3. RSA
  4. AES
정답 보기

3번 RSA

RSA는 공개 키 암호. 나머지는 대칭 키 블록 암호.

Q3. 큰 숫자를 소인수분해하기 어렵다는 점을 이용한 공개 키 암호는?

  1. DES
  2. ECC
  3. MD5
  4. RSA
정답 보기

4번 RSA

Rivest, Shamir, Adleman.

Q4. 한국인터넷진흥원(KISA)이 개발한 128비트 블록 암호는?

  1. ARIA
  2. AES
  3. IDEA
  4. SEED
정답 보기

4번 SEED

ARIA는 국가보안기술연구소가 주도했다.

Q5. 사용자 20명이 비대칭 키 방식으로 통신할 때 필요한 키 개수는?

  1. 20
  2. 40
  3. 190
  4. 380
정답 보기

2번 40

2n = 40. 대칭 키면 20 × 19 / 2 = 190.

헷갈리기 쉬운 O·X

해시 함수는 해시값으로 원래 데이터를 복원할 수 있다.

정답 보기

X 일방향이라 복원할 수 없다.

대칭 키 암호는 비대칭 키 암호보다 일반적으로 처리 속도가 빠르다.

정답 보기

O

공개 키 암호에서 받는 사람의 공개 키로 암호화한 데이터는 받는 사람의 개인 키로 복호화한다.

정답 보기

O

함께 보면 좋은 개념