공개 열쇠 암호
위키백과 ― 우리 모두의 백과사전.
공개 열쇠 암호(公開 - 暗號)는 암호의 한 종류로 사전에 비밀 열쇠를 나눠가지지 않은 사용자들이 안전하게 통신할 수 있도록 해준다. 일반적으로 공개 열쇠는 잠그는 기능을 하고 개인 열쇠는 잠근 것을 여는 기능을 한다. 개인열쇠는 각 사용자가 안전하게 보관하지만 공개열쇠는 외부에 공개한다. 그렇기 때문에 공개열쇠로부터 개인열쇠를 알아내는 것이 어려워야 한다. 이 두 열쇠는 서로 수학적으로 연관되어 있지만 별개의 열쇠이므로, 이런 암호방식을 비대칭 암호(非對稱暗號)라고 부르기도 한다.
공개열쇠암호에는 여러 종류가 있다.
- 공개 열쇠 암호 — 특정한 비밀열쇠를 가지고 있는 사용자만 내용을 열어볼 수 있음.
- 공개 열쇠 서명 — 특정한 비밀열쇠로 만들었다는 것을 누구나 확인할 수 있음.
- 열쇠 합의 — 최소 두 명의 사용자들이 사전에 비밀값을 나누어 가지지 않았어도 암호열쇠를 합의하여 만들 수 있음.
일반적으로, 공개열쇠암호는 비밀 열쇠 암호보다 계산이 복잡한 단점이 있지만, 현명하게 사용한다면 여러 분야에 유용하게 적용할 수 있다.
[편집] 역사
최근까지 암호를 사용하는 데 있어서, 암호열쇠를 미리 만들고 사용자들이 나누어가지는 방식을 주로 사용했다. 예를 들어서, 암호를 사용할 사람들이 미리 모여서 암호열쇠를 나누어가진다든지, 신뢰할 수 있는 전령을 시켜서 보내는 방식등이었다. 이러한 열쇠 분배 방식에는 여러 문제가 있기 때문에 공개열쇠암호가 제안되었다. 공개열쇠암호를 이용하면, 사전에 미리 비밀값을 나누어가지지 않은 사용자들이라도 전령과 같은 안전한 채널이 없는 상황에서도 안전하게 통신할 수 있다.
공개열쇠암호는 1970년대 영국 GCHQ의 클리포드 콕스가 최초로 만들었으나. 이 사실은 1997년까지 비밀에 부쳐졌기 때문에 널리 알려지지는 않았다. 1976년에 휘트필드 디피와 마틴 헬만이 공개열쇠암호에 대한 최초의 논문을 썼으며, 이를 바탕으로 랄프 머클이 1978년에 지수승 연산을 이용하여 암호열쇠를 합의할 수 있는 암호열쇠분배 방식을 제안했다. 이 방식은 디피-헬만 열쇠교환방식이라고 부르며, 안전하지 않은 채널에서 비밀열쇠를 나누어 가질 수 있는 최초의 방법이었다.
로널드 라이베스트, 아디 샤미르, 레너드 에이들먼 세 명은 MIT에서 콕스가 제안했던 것과 거의 같은 암호방식을 재발견하고 이것을 1978년에 논문으로 썼다. 이들은 자신들의 머리글자를 따서 이 암호방식을 RSA라고 이름 지었다. 두 개의 큰 소수를 곱한 값 n을 이용하여 모듈로 지수승연산한 것을 각각 암호화와 복호화에 이용하는 방식이었고, n을 소인수분해하는 효율적인 알고리즘이 없는 한 안전한 공개열쇠에서 비밀열쇠를 알아낼 수 없다고 가정하고 만들었다.
1970년대이후로 암호, 서명, 열쇠합의등과 관련된 수많은 기술이 개발되었다. 타헤르 엘가말은 이산로그문제의 어려움에 기반한 ElGamal 암호을 제안했고, 이것은 NSA와 NIST가 개발한 DSA도 이와 비슷한 개념을 적용했다. 닐 코블리츠와 빅터 밀러가 1980년대 중반에 타원곡선암호를 제안한 이후에는 이와 관련된 수많은 공개열쇠 알고리즘이 제안되었다. 특히 타원곡선을 이용하면 짧은 열쇠를 사용해도 원래 이산로그문제와 비슷한 안전성을 제공할 수 있는 장점이 있다.
[편집] 같이보기
- 열쇠합의
- GNU Privacy Guard
- Pretty Good Privacy
- Secure Sockets Layer
- Secure Shell
- 양자암호
- 공개열쇠기반구조 (PKI).
공개 열쇠 암호 |
---|
알고리즘: Cramer-Shoup | DH | DSA | ECDH | ECDSA | EKE | ElGamal | GMR | MQV | NTRUEncrypt | NTRUSign | Paillier | 라빈 | Rabin-Williams | RSA | Schnorr | SPEKE | SRP | XTR |
이론: 이산 로그 | 타원곡선 암호 | RSA 문제 |
표준: ANS X9F1 | CRYPTREC | IEEE P1363 | NESSIE |
기타: 전자 서명 | 공개키 기반 구조(PKI) | Web of trust | 키 크기 |