[정보처리기사 실기] 대칭키 비대칭키 (상세)
✔ 비대칭키 암호화 → 공개키 + 개인키 (서로 다른 2개의 키)
✔ 대칭키 암호화 → 하나의 동일한 키 (비밀키 사용)
대칭키 및 비대칭키 암호화 동작 원리
1. 개요
암호화는 정보 보호를 위한 핵심 기술이며, 크게 **대칭키 암호화(Symmetric Key Encryption)**와 **비대칭키 암호화(Asymmetric Key Encryption)**로 나뉜다.
각각의 방식은 키의 사용 방식, 암호화 및 복호화 과정, 보안성과 성능 측면에서 차이를 가지며, 특정 환경에 따라 적절한 암호화 기법이 선택된다.
본 글에서는 두 암호화 방식의 수학적 수식과 숫자 연산을 포함하여 상세한 동작 과정을 분석한다.
2. 대칭키 암호화(Symmetric Key Encryption)
대칭키 암호화는 암호화와 복호화에 동일한 키를 사용하는 방식이다.
송신자와 수신자가 같은 암호화 키를 공유하며, 빠른 연산 속도를 제공하지만 키 관리가 어렵다.
2.1. 키 생성 및 공유 (Key Generation & Distribution)
✔ 암호화 키 ( K_s ) 생성
- 예시: ( K_s = 101110110001 ) (128비트 키)
✔ 수신자에게 키를 안전하게 전달
- 공개된 네트워크에서는 키 교환 과정이 보안상 위험할 수 있음
- 보안 강화를 위해 Diffie-Hellman 키 교환 방식 등을 사용할 수 있음
2.2. 암호화 과정 (Encryption)
평문(P) → 암호문(C) 변환
✔ 평문 블록: ( P = (10110100, 11001100, 11100011) )
✔ 암호화 함수 적용:
- ( C_i = P_i \oplus K_s ) (XOR 연산 예제)
✔ 결과 암호문: ( C = (00001110, 00110010, 01011001) )
✔ AES(128비트 기준) 암호화 과정 예제
- SubBytes: S-Box 치환
- ShiftRows: 행을 순환 이동
- MixColumns: 열별 선형 변환
- AddRoundKey: 키와 XOR 연산 수행
- 반복: 10라운드 수행
2.3. 복호화 과정 (Decryption)
암호문(C) → 평문(P) 복원
✔ 복호화 함수 적용:
- ( P_i = C_i \oplus K_s )
✔ 복호화된 평문: ( P = (10110100, 11001100, 11100011) )
📌
대칭키 암호화는 속도가 빠르고 효율적이지만, 키 공유 과정에서 보안 문제 발생 가능
3. 비대칭키 암호화(Asymmetric Key Encryption)
비대칭키 암호화는 암호화와 복호화에 서로 다른 키(공개키, 개인키)를 사용하는 방식이다.
**공개키(Public Key)**로 암호화하고, **개인키(Private Key)**로 복호화하여 높은 보안성을 제공한다.
3.1. 키 생성 (Key Generation)
✔ 소수 두 개 ( p, q ) 선택
- ( p = 61 ), ( q = 53 )
✔ 모듈러스 ( n ) 계산
- ( n = p \times q = 61 \times 53 = 3233 )
✔ 오일러 함수 ( \varphi(n) ) 계산
- ( \varphi(n) = (p-1) \times (q-1) = 3120 )
✔ 공개키 지수 ( e ) 선택
- ( e = 17 )
✔ 개인키 ( d ) 계산
- ( d \times e \equiv 1 \mod \varphi(n) )
- ( d = 2753 ) (모듈러 연산으로 역원 계산)
3.2. 암호화 과정 (Encryption)
✔ 평문 ( M = 123 )를 암호화
✔ 암호문 ( C ) 계산:
- ( C \equiv M{17} \mod 3233 )
- ( C = 855 )
3.3. 복호화 과정 (Decryption)
✔ 암호문 ( C = 855 )를 복호화
✔ 평문 복호화 계산:
- ( M \equiv C{2753} \mod 3233 )
- ( M = 123 )
📌
비대칭키 암호화는 높은 보안성을 제공하지만, 연산 속도가 느림
4. 비교 및 결론
방식대칭키 암호화비대칭키 암호화
키 개수 | 하나의 동일한 키 | 공개키 + 개인키 (2개) |
암호화 속도 | 빠름 | 느림 |
보안성 | 키 공유 위험 존재 | 높은 보안성 |
사용 예시 | 파일 암호화, VPN | 디지털 서명, SSL/TLS 인증 |
✔ 대칭키는 속도가 빠르고 효율적이지만 키 공유 문제 존재
✔ 비대칭키는 보안성이 뛰어나지만 연산 속도가 느림
✔ 실제 환경에서는 두 방식의 장점을 조합하여 사용 (예: SSL/TLS에서는 공개키로 세션 키 교환 후 대칭키로 통신)
📌
암호화 방식은 시스템의 요구 사항과 보안 수준에 맞추어 적절하게 선택해야 하며, 실제 환경에서는 두 방식의 장점을 결합하여 사용하는 것이 일반적이다 ?