1. 공개 키 암호화 방식 소개
공개 키 암호화 방식(Public Key Cryptography)은 암호화와 복호화에 서로 다른 키를 사용하는 암호화 기법으로, 비대칭 키 암호화 방식이라고도 불린다. 이 방식의 핵심 원리는 두 개의 수학적으로 연결된 키를 사용하는 데 있다. 따라서 하나의 키로 암호화된 데이터는 다른 키로만 복호화될 수 있다. 공개 키 암호화 방식으로 HTTPS를 기반으로 안전한 통신을 가능하게 하며, 공개 키 기반 구조(PKI:Public Key Infrastructure)를 활용한 인증도 지원한다. 공개 키 암호화 방식의 대표적인 알고리즘으로는 RSA, ECC 등이 있으며, 주로 데이터 암호화, 디지털 서명, 키 교환 등과 같은 용도로 사용된다.
2. 암복호화 기본 개념
다음은 암호학에서 사용되는 기본 개념에 대한 설명이다.
- 메시지(Plaintext) : 일반적으로 암호화되지 않고 전송 또는 저장된 데이터를 의미한다.
- 암호화(Encryption) : 특별한 지식을 소유한 사람들을 제외하고는 누구든지 읽어볼 수 없도록 알고리즘을 이용하여 처리하는 방식을 말한다.
- 암호문(Ciphertext) : 암호 알고리즘을 이용하여 평문에 수행한 암호화의 결과이다.
- 복호화(Decryption) : 암호화된 정보를 원래의 형태로 되돌리는 처리 방식을 말한다.
3. 공개 키 암호화 방식의 원리
공개 키 암호화 방식의 이해를 돕기 위해 다음과 같이 두 가지의 과정으로 나누어 설명한다.
3-1. 키쌍 생성
- 카리나와 윈터는 수학적으로 연결된 한쌍의 열쇠(AB)를 생성한다.
- 한쌍의 열쇠를 둘로 나눠 카리나(A)와 윈터(B)가 하나씩 가져간다.
- 이후 한국에 있는 카리나는 해외에 있는 윈터에게 메시지를 보내려고 한다. 단, 메시지는 유출되선 안된다.
3-2. 암호화 및 복호화 과정
- 카리나는 메시지를 작성한다.
- 카리나는 메시지를 A열쇠로 암호화한다.
- 카리나는 윈터에게 암호문을 전송한다.
- 윈터는 암호문을 B열쇠로 복호화한다.
- 윈터는 메시지를 확인한다.
4. 공개 키 암호화 과정 상세 설명
위에서 살펴보았다시피 공개 키 암호화 방식의 원리는 간단해 보인다. 하지만 큰 개념을 이해한 후 구체적인 것들을 살펴보기 시작하면 그렇지 않을 수도 있다. 우선, 카리나와 윈터가 생성한 한쌍의 열쇠(AB)에 대해 알아보자.
4-1. 키쌍
- 키쌍(Key Pair) : 카리나와 윈터가가 생성한 한쌍의 열쇠(AB)를 의미한다.
- 공개 키(Public Key) : 카리나가 암호화하기 위해 가져간 A 열쇠를 의미한다.
- 개인 키(Private Key) : 윈터가 복호화하기 위해 가져간 B 열쇠를 의미한다.
키쌍 생성 시 공개 키와 개인 키는 수학적으로 연결되어 있어서, 공개 키로 암호화하였다면 반드시 연결된 개인 키로만 복호화할 수 있다. 만약 ☠️ 해킹범이 전송 중인 암호문을 획득하여도 무슨 내용인지 알 수 없을 뿐 아니라 복호화할 수 없다. 윈터만이 유일하게 개인 키를 가지고 있기 때문이다.
다음은 A열쇠 → 공개 키, B열쇠 → 개인 키로 치환하여 표현한 그림이다.
4-2. 개인 키 및 공개 키
키를 부르는 명칭 또한 나름대로의 의미가 존재한다.
- 공개 키(Public Key) : 누구에게나 공개하는 키.
- 개인 키(Private Key) : 반드시 소유자만이 안전하게 보관해야 하는 키.
그럼 이렇게도 생각해 볼 수 있다. 닝닝이와 지젤도 각자 전달하고 싶은 메시지가 있는데 카리나가 소유한 공개 키를 전달받아 윈터에게 암호문을 전송할 수 있지 않을까? 대답은 '그렇다'이다.
- 카리나는 닝닝, 지젤에게 공개 키를 공유한다.
- 2명의 멤버는 각자 메시지를 작성한다.
- 2명의 멤버는 공유받은 공개 키로 각각의 메시지를 암호화한다.
- 2명의 멤버는 윈터에게 암호문을 전송한다.
- 윈터는 자신이 소유한 개인 키로 각각의 암호문을 복호화한다.
- 윈터는 닝닝, 지젤의 메시지를 확인한다.
여기서 중요한 것은 '윈터는 보유 중인 개인 키를 잃어버려서는 안 된다는 것'이다. 개인 키를 안전하게 관리하는 것이 가장 중요하며, 만약 유출됐다면 해당 개인 키는 더 이상 유효하지 않으므로 즉시 폐기해야 한다. 만약 유출된 개인 키를 해킹범이 획득하였다면 암호화된 내용을 복호화하여 확인할 수 있기 때문이다.
5. 암호화와 서명
지금까지 살펴본 내용을 한 줄로 요약하자면, '공개 키로 암호화한다.'라고 표현할 수 있다. 이쯤 되면 한 가지 의문이 들 수도 있다.
지금까지와는 반대로 개인 키로 암호화하고 공개 키로 복호화한다면 어떻게 될 것인가?
우리는 이것을 '개인 키로 서명한다.'라고 표현한다. 즉, '개인 키로 서명한다면, 해당 서명은 개인 키의 소유자가 작성한 것임을 증명할 수 있다.'는 것이다.
해당 개념을 연구하신 분들이 서명(Signature)이라고 명칭을 붙인 이유를 짐작해 보면 단 한 명만이 소유한 개인 키로 암호화 시 수학적으로 연결된 공개 키로만 복호화되기 때문에 '개인 키 소유자가 보낸 내용이구나(=진위성)'를 판별할 수 있어서가 아닐까 생각한다. 이는 PKI의 기본 개념으로 사용된다.
내용을 정리하면, 공개 키 암호화 방식으로 암호화와 서명을 수행할 수 있다는 것이다. 전자 서명에 대해 자세히 알고 싶다면 링크를 활용한다.
6. 마무리
이번 글을 정리하면 다음과 같다.
- 공개 키 암호화 방식을 사용하기 위해서는 키쌍을 생성해야 한다.
- 생성된 키쌍은 공개 키와 개인 키로 나뉘며, 수학적으로 연결되어 있다. 연결되지 않은 키는 서로 사용할 수 없다.
- 공개 키 암호화 방식으로 암호화 혹은 서명을 수행할 수 있다.
- 암호화 : 공개 키로 암호화하면 개인 키로 복호화를 수행한다.
- 서명 : 개인 키로 서명하면 공개 키로 검증할 수 있다.
개인 키는 유출되지 않도록 유의해야 하지만, 공개 키는 누구에게나 공개할 수 있다.
'보안 > 암호학' 카테고리의 다른 글
RSA 동작 원리 이해: 키쌍 생성부터 암호화, 복호화까지 (0) | 2025.01.12 |
---|---|
RSA와 ECC 소개 및 비교 (0) | 2025.01.12 |
해시 함수란? 원리, 특징, 활용 사례까지 (0) | 2025.01.11 |
대칭 키 암호화 방식 정리 : 원리, 과정, 장단점까지 (0) | 2025.01.11 |