공개키와 하이브리드 암호
공개키·개인키의 역할과 키 운반·키 합의·데이터 암호화의 관계를 구분합니다.
1. 대칭키와 공개키의 역할 분담
대칭키 방식에서는 통신할 두 주체가 비밀키를 공유해야 한다. n명 모두가 서로 다른 쌍별 키를 미리 가지면 필요한 키 수는 n(n-1)/2다. 10명은 45개, 100명은 4,950개다. 키 분배센터를 사용하는 경우에 그대로 적용하는 수식은 아니다.
공개키 방식에서는 각 주체가 공개키와 개인키의 쌍을 가진다. n명이 한 쌍씩 가진다는 조건이면 n개의 키쌍, 개별 키는 2n개다. 공개키는 공개해도 되지만 실제 누구의 키인지 검증해야 한다. 공격자가 바꿔 놓은 키를 사용하면 강한 알고리즘도 통신 상대를 보호하지 못한다.
| 구분 | 대칭키 | 공개키 |
|---|---|---|
| 비밀 | 공유키 | 각 주체의 개인키 |
| 대표 역할 | 대용량 암호화·MAC | 키 설정·전자서명·인증 |
| 관리 문제 | 비밀키를 안전하게 공유 | 공개키와 소유자의 신뢰 연결 |
| 키 길이 비교 | 전수조사 비용 등이 기준 | 수학적 문제와 공격 방식이 다름 |
두 계열의 키 비트 수를 그대로 비교해 더 안전하다고 판단하지 않는다.
2. 키 운반과 키 합의
키 운반(Key Transport)은 한쪽이 만든 비밀키 재료를 다른 쪽에 안전하게 전달하는 방식이다. 예를 들어 송신자가 생성한 세션키를 수신자의 공개키로 보호하고 수신자가 자신의 개인키로 복구한다.
키 합의(Key Agreement)는 양쪽의 비밀값이 기여해 공통 비밀을 만드는 방식이다. DH·ECDH가 대표다. 완성된 세션키 자체를 암호화해 보내는 과정과 구분한다. 자세한 계산은 DH 키 합의와 타원곡선 기초에서 다룬다.
3. 하이브리드 암호의 흐름
큰 파일을 보낼 때 공개키 연산으로 파일 전체를 처리하기보다 데이터는 효율적인 대칭키로 보호하고, 공개키 기술로 그 키를 운반하거나 합의한다.
키 운반을 사용하는 전자봉투의 단순한 예는 다음과 같다.
송신자: 세션키 K 생성
데이터 보호: K로 메시지 암호화·인증
키 보호: 수신자 공개키로 K 보호
전달: 보호된 K + 데이터 암호문 + 필요한 초기값·태그
수신자: 개인키로 K 복구 → 태그 확인·데이터 복호화
여러 수신자에게 같은 데이터를 전달하는 구조라면 데이터키를 수신자별로 따로 보호할 수도 있다. 여기서 세션키는 데이터의 대칭키이고 수신자의 개인키와 같지 않다. DH 기반 하이브리드는 키 보호 단계 대신 인증된 합의와 KDF로 데이터키를 만든다.
4. 기밀성과 서명자를 구별하기
- 기밀성을 위한 공개키 암호화: 수신자 공개키로 보호 → 수신자 개인키로 복구
- 전자서명: 서명자 개인키로 생성 → 서명자 공개키로 검증
수신자의 공개키는 누구나 알 수 있으므로 그것으로 암호문을 만들었다는 사실만으로 송신자 신원이 인증되지는 않는다. 전자봉투에도 송신자 확인이 필요하면 서명 등 별도 인증을 결합한다. 공개키의 소유자 확인은 인증서·PKI·신뢰와 폐지 확인에서 다룬다.
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
0110명이 모든 사용자 쌍마다 독립적인 대칭키 하나를 미리 공유하면 키가 몇 개 필요한가?
10×9÷2=45개다. 각 사용자가 KDC와 장기키 하나만 공유하는 조건과 다르다.
02한쪽이 만든 세션키를 상대 공개키로 보호해 전달하는 것과 양쪽 비밀값으로 공통값을 만드는 것은 각각 무엇인가?
앞은 키 운반, 뒤는 키 합의다. 하이브리드 암호는 이런 키 설정과 대칭키 데이터 보호를 결합한다.