[Encryption] 공개키 비밀키 암호화 방식
공개키와 개인키는 비대칭 암호화 방식에 사용되는 한 쌍의 디지털 키입니다. 데이터를 안전하게 주고받기 위해 만들어졌으며, 두 키는 수학적으로 연결되어 있지만 하나를 통해 다른 하나를 알아낼 수는 없습니다.
가장 중요한 핵심은 “개인키는 나만 갖고, 공개키는 누구에게나 준다” 입니다.
자물쇠와 열쇠 비유 🔑
가장 쉽게 이해하는 방법은 자물쇠(공개키) 와 열쇠(개인키) 에 비유하는 것입니다.
공개키 (Public Key) = 자물쇠: 이 자물쇠는 누구나 가져갈 수 있도록 여러 개 복사해서 사람들에게 나눠줍니다. 다른 사람이 나에게 중요한 물건을 보내고 싶을 때, 이 자물쇠로 상자를 잠가서 보냅니다.
개인키 (Private Key) = 열쇠: 이 열쇠는 세상에 단 하나만 존재하며, 오직 나만 가지고 있습니다. 자물쇠로 잠긴 상자는 오직 이 개인 열쇠로만 열 수 있습니다.
따라서 누군가 나에게 비밀 메시지를 보내고 싶다면, 나의 공개키(자물쇠) 로 메시지를 암호화합니다. 암호화된 메시지는 오직 나의 개인키(열쇠) 를 가진 나만 열어볼 수 있습니다.
공개키만 가지고는 절대 내용을 볼 수 없습니다.
주요 기능
공개키와 개인키는 두 가지 핵심 기능을 수행합니다.
- 데이터 암호화 및 복호화 (비밀 보장)
암호화 (Encryption): 공개키(자물쇠) 로 데이터를 잠급니다.
누군가 나에게 민감한 정보를 보낼 때 내 공개키를 사용합니다.
복호화 (Decryption): 개인키(열쇠) 로 암호화된 데이터를 풉니다.
오직 나만 내 개인키를 가지고 있으므로, 나만 그 정보를 볼 수 있습니다. - 전자 서명 (신원 증명 및 부인 방지)
반대로 내가 보낸 데이터가 진짜 내 것이 맞다는 것을 증명할 때도 사용합니다.
서명 (Signing): 내가 보낸다는 것을 증명하기 위해 개인키(열쇠) 로 데이터에 서명합니다. (실제로는 데이터의 해시값을 암호화)
검증 (Verification): 다른 사람들은 내가 나눠준 공개키(자물쇠) 로 그 서명이 맞는지 검증합니다. 서명이 내 공개키로 풀린다면, 그 데이터는 나의 개인키를 가진 내가 보낸 것이 확실하다는 것을 증명하는 셈입니다.
정리
| 구분 | 공개키 (Public Key) | 개인키 (Private Key) |
|---|---|---|
| 소유 | 모두에게 공개 | 나 자신만 비밀리에 보관 |
| 주요 역할 | 데이터 암호화 / 서명 검증 | 데이터 복호화 / 서명 생성 |
댓글남기기