공개키 암호화
IT위키
더 많은 작업
자신만 알고 있는 비밀키와 외부에 노출되어도 되는 공개키 두가지를 이용하는 암호화 구조
- A의 공개키는 누구나 알고 있다.
- 누군가가 A의 공개키로 암호화할 경우 그 암호문은 A의 비밀키로만 복호화할 수 있다.
- A는 공개 키/개인 키로 이루어진 한 쌍의 키를 만든다.
- A는 자신의 공개 키를 B에게 보낸다.
- B는 A의 공개 키를 써서 메시지를 암호화한다.
- B는 암호문을 A에게 보낸다.
- A은 자신의 개인 키를 써서 암호문을 복호화한다.
공개키 암호는 한쪽 방향으로는 계산이 쉽고 거꾸로는 매우 어려운 수학 문제에 안전성을 둔다.
| 알고리즘 | 바탕이 되는 어려운 문제 | 쓰임 |
|---|---|---|
| RSA | 큰 수의 소인수분해 | 암호화, 전자서명, 키 교환 |
| 라빈(Rabin) | 소인수분해(합성수 법의 제곱근) | 암호화 |
| 엘가말(ElGamal) | 이산대수 | 암호화, 전자서명 |
| 디피-헬만 | 이산대수 | 키 교환(암호화 자체는 하지 않는다) |
| DSA | 이산대수 | 전자서명 전용 |
| ECC(Elliptic Curve Cryptosystem) | 타원 곡선 위의 이산대수 | 짧은 키로 RSA 와 같은 강도 |
| Knapsack | 배낭 문제 | 초기 공개키 암호. 지금은 깨져 쓰지 않는다 |