Gae Ko's Blog

[암호] 대칭키 암호 vs 공개키 암호 본문

암호

[암호] 대칭키 암호 vs 공개키 암호

Gae Ko 2018. 1. 24. 20:19


개인키 = 비밀키 = 비공개키

공개키 기법 = 비대칭키 기법 


암호화와 복호화에 사용하는 암호키가 같은지 다른지에 따라 암호화 기법이 대칭키 기법과 비대칭키 기법으로 나뉘어 진다.

 

1. 대칭키 암호


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

- 암호화와 복호화에 사용하는 키가 같은 암호화 알고리즘

- 공개키와 비밀키를 별도로 가지는 것과 구별되는데, 이와 비교하면 계산속도가 빠르다는 장점 

- 비밀키 하나만 알아내면 암호화된 내용을 해독 가능 → 해커로부터 안전 X

- 대킹키 암호는 암호화하는 단위에 따라 스트림암호와 블록암호로 나눌 수 있음

º 스트림암호는 연속적인 비트/바이트를 계속해서 입력받아, 그에 대응하는 암호화 비트/마이트를 생성하는 방식

º 블록암호는 정해진 한 단위(블록)을 입력받아 그에 대응하는 암호화 블록을 생성하는 방식 

º 블록암호의 경우 적절한 운용모드를 조합하면 블록 단위보다 큰 입력을 처리할 수 있음. 또한 스트림암호와 유사하게 지속적인 입력에 대해 동작할 수 있음. (대신 입출력 단위는 스트림암호보다 큰 블록 단위가 됨)

- 대킹키 기법을 사용하는 암호 알고리즘 방식으로 DES, 3-DES, AES, SEED, ARIA, MASK 등이 있다. 


2. 공개키 암호 


- 비밀키 하나 만 가지는 대칭키 암호 방법과 달리, 공개키와 비밀키 두 개가 존재

- 공개키 암호를 구성하는 알고리즘을 대칭키 암호 방식과 비교하여 비대칭 암호라고 불림

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

- 암호화할 때의 키는 공개키(public key), 복호화할 때의 키는 개인키(private key)

- 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만이 알 수 있어서 

   특정한 비밀키를 가지는 사용자만이 내용을 열어볼 수 있도록 하는 방식.


송신자는 수신자의 공개키를 받아 데이터를 암호화하여 

네트워크를 통해 원격지에 전달.

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




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

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

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

- 대표적인 공개키 알고리즘으로 RSA, Elgamal 등이 있음.


공개키 암호화 개념도





※ 비밀키 암호화와 공개키 암호화의 비교 




https://technet.microsoft.com/ko-kr/library/aa998077(v=exchg.65).aspx