본문 바로가기
Computer Science/Network

암호화 알고리즘 (대칭키 암호 vs 공개키 암호)

by weero 2020. 8. 17.

암호화 알고리즘

1) 대칭 키 암호(Symmetic-key algorithm) = 비밀키 암호

- 암호화와 복호화에 같은 암호키를 쓰는 알고리즘 (비밀 키 하나만을 가짐)

- 하나의 비밀키를 양쪽(Client & Server)가 모두 같이 사용

- 암호화를 하는 측과 복호화를 하는 측이 같은 암호 키를 공유해야 한다.

   (공개키 암호에서 공개키와 비밀키를 별도로 가지는 것과 구별됨)

- 대부분의 대칭 키 암호는 공개키 암호와 비교하여 계산 속도가 빠르다.

- 비밀키 하나만 알아내면 암호화된 내용을 해독 가능 (안전하지 X)

- 대칭키 기법을 사용하는 암호 알고리즘 방식 : DES, 3-DES, AES, SEED, ARIA, MASK 등

 

2) 공개 키 암호(public-key cryptography) = 비대칭 암호

- 사전에 비밀 키를 나눠가지지 않은 사용자들이 안전하게 통신할 수 있도록 한다.

- 공개키 + 비밀키 두 개가 존재

  • 공개키(public key) : 누구나 알 수 있다. 암호화에 쓰인다.
  • 비밀키(private key) : 키의 소유자만이 알 수 있다. 복호화에 쓰인다. (키의 소유자만 내용을 열어볼 수 있음)

- 암호화와 복호화에 사용하는 키가 서로 다르다.

- 사용

송신자는 수신자의 공개키를 받아 데이터를 암호화하고 네트워크를 통해 원격지로 전달한다.

수신자는 공개키로 암호화된 데이터를 자신의 개인키로 데이터를 복호하해서 평문을 복원한다.

- 공개키로 암호화한 메세지는 수신자의 개인키로만 해독할 수 있으므로 안전하게 상대방에게 메세지를 전달해 줄 수 있다.

- 대칭키(비밀키)알고리즘에 비하여 속도가 느리다.

- 속도가 느리기 때문에 긴 문서를 암호화하기보단 대칭키 알고리즘의 키값에 대한 암호에 사용한다.

- 공개키 알고리즘을 사용하는 암호 알고리즘 : RSA, Elgamal