1. 대칭키 암호
- 암/복호화에 같은 암호키를 사용
- 비대칭키(공개키) 암호에 비해 속도가 빠름
- 암/복호화에 같은 암호키를 사용하기 때문에 사전에 송,수신자간 키를 교환해야함(키 배송 문제)
- 기밀성 제공
- 대상이 증가할수록 많은 키 관리가 필요함
키의 개수 : n(n-1)/2
송신사 수신자가 각각 동일한 비밀키를 공유하여 문서를 암/복호화 수행
● 블록 암호(Block Cipher)
- 평문을 고정된 크기의 블록 단위로 암/복호화를 수행
- 각 블록마다 동일한 키 사용
- 원하는 길이를 맞추기 위하여 패딩(padding)이라는 기법을 이용
- SEED, ARIA, LEA, HIGHT, DES, AES 등
● 스트림 암호(Stream Cipher)
- 평문과 동일한 길이의 키스트림 수열을 생성하여 평문과의 XOR 연산을 통하여 암/복호화를 수행
- 키스트림 수열을 생성할 때, 평문과 독립적으로 생성하는 경우를 동기식 스트림 암호, 평문이 키스트림 수열에 영향을 미치는 경우를 비동기식(혹은 자기동기) 스트림 암호
- RC4
* 키 배송 문제를 해결하기 위한 방법 4가지
① 키의 사전 공유에 의한 해결
② 키 배포센터에 의한 해결
③ Diffie-Hellman 키 교환에 의한 해결
④ 공개키 암호에 의한 해결
2. 비대칭키(공개키) 암호
- 암/복호화에 서로 다른 키를 사용
- 송신자는 수신자의 공개키를 이용하여 암호화, 수신자는 자신의 개인키로 복호화 가능
- 수학적 난제를 기반으로 설계
- 대칭키 암호에 비해 속도가 느림
- 키 교환이 필요없음
- 기밀성/인증/부인방지 기능 제공
- 여러 송신자가 하나의 공개키로 암호화를 수행하기 때문에 사용자가 많더라도 키 관리에는 유리함
키의 개수 : 2n
- RSA, Elgamal, ECC 등
① 수신자는 공개키, 개인키 중 공개키를 공개함
② 송신자는 수신자의 공개키를 획득
③ 송신자는 문서를 수신자의 공개키로 암호화하여 수신자에게 전송
④ 수신자는 자신의 개인키로 암호화된 문서를 복호화함