본문 바로가기
정보 보안/보안 기본 개념

공개키 대칭키 암호화 기법

by tryotto 2020. 3. 9.

# 대칭키 알고리즘 (=비공개키 알고리즘)


- 정의 : 암호화와 복호화 각각을 "똑같은" 키를 이용해서 한다는 의미에서 "대칭키" 보안기법이라 한다.


- 키의 갯수 : 1개 

    

1) 비밀 키



- 매커니즘 : 


    1) A 가 B 에게 정보를 전달하고 싶을때


    2) A 가 가진 비밀키를 이용해서 암호화를 한 뒤


    3) B 에게 A 의 비밀키를 전달한다


    4) B 는 전달받은 비밀키를 이용해서 복호화를 한다


> 쉽게 말하자면, 자전거를 전달하고 싶을때,

   a 의 모양과 일치하는 자물쇠로 자전거를 잠근 뒤

   전달하고싶은 사람에게 해당 자물쇠와 맞는 a의 열쇠를 전달한다


> 자물쇠와 열쇠를 동시에 전달하는 기법이라고 보면 제일 쉽다



- 의의 :


    1) 암호학의 시초. 초기버전


    2) 암호화, 전달, 복호화 과정을 모두 고려했을때, 걸리는 시간이 짧다 (공개키의 1000배 속도)



- 단점 :


    1) 비밀키를 전달하는 과정 중에서 탈취가 일어날 가능성이 높다


> 꼬리가 길면 밟힌다! 당연한 이유.



- 활용 : 대부분의 간단한 보안 프로그램들이 대칭키 방식을 활용한다 (간단하고 빠르기 때문)







# 공개키 알고리즘 (=비대칭키 알고리즘)



- 정의 : 말 그대로, 키를 전체적으로 "공개" 하는 보안 기법이다.


- 키의 갯수 : 2개 


     1) 공개키


     2) 개인키 (=보안키) : 본인(나) 만 갖고 있는 암호 키


> 이런 성질때문에 안정성이 급증. 

   타인에게 나의 비밀키를 전달해줄 필요가 없다.


> 또한, 개인키가 자기 자신을 의미하는 증명 수단으로 사용될 수도 있다.

   그 어떠한 타인도 나의 비밀키를 소유할 수 없기 때문.



- [타인 -> 나] 매커니즘 : 


     1) 처음 알고리즘을 구현할때, 여러 사람들에게 공개키를 알려준다


     2) 전달받은 공개키를 이용해서, 타인은 본인이 전달하고싶은 내용을 암호화 하여 나에게 전달한다


     3) 나는 개인키를 이용해서, 전달받은 내용을 복호화 한다


> 의의 :

     - 처음 이 알고리즘이 실행될떄, 나는 여러 명의 타인에게 공개키를 전달해야 한다

     - 이 과정에서 해커가 공개키를 탈취했다고 하자

     - 그럴 경우, 타인이 내게 전달하는 과정에서 공개키로 암호화한 내용을 훔쳐보고싶다 하더라도

       해커는 개인키를 갖고있지 않기 때문에, 문서를 해독 불가능하다(복호화 불가)



- [나 -> 타인] 매커니즘 :


     1) 내가 갖고 있는 개인키를 이용, 전달하고싶은 내용을 암호화한다


     2) 해당 내용을 공개하면, 나의 공개키를 갖고 있는 사람들이 내용을 복호화 하여 판단한다


> 의의 :

     - 만약에 어떤 사람이 나 라고 사기를 친다고 하자

     - 이 사람은 나 인것처럼 위장해서 본인의 정보를 전달한다

     - 그러나, 이 해커가 어떤 정보를 보내든지, 공개키로 복호화를 해보면 모두 엉뚱한 내용으로 복호화 된다

     - 결국, 이 성질을 이용해서, 전달된 내용이 "진짜 나"로부터 온 것인지를 정확하게 판별할 수 있다.

> 이런 성질을 이용해서 공인인증서나 은행 전자 거래가 가능하게 됐다.