대칭키와 비대칭키

문도연·2022년 8월 4일
0

💡 HTTPS는 대칭키와 비대칭키 방식을 이용해 데이터를 암호화한다!

대칭키와 비대칭키

대칭키(one key): 암/복호화 키가 동일한 키, 키가 1개
비대칭키(two key): 암호화, 복호화 키가 서로 다른 경우, 키가 2개

대칭키 방식의 문제점

  • 송수신자가 동일한 키를 가지고 있어야 한다
    • 이는 키 분배, 보관에 큰 문제가 있음
    • 당장 키 1개로 암/복호화가 다 가능하니 키가 탈취되거나 복사된다면 보안 측면에서 불안해짐
  • 개수가 무한정 발생할 수 있다.
    • 다양한 사람이 대칭키를 사용한다면, 송신자와 수신자간의 신뢰를 지키기 위해서라도 키가 서로 달라야하니 대칭키를 매번 새로 발급해야 함

이를 해결하기 위해 비대칭키 방식이 고안되었다.

암호화 예시:철수와 영희

철수와 영희는 오글거리는 내용이 담긴 러브레터를 둘이서만 주고받으려고 한다.
철수는 영희와 안전하게 편지를 주고받기 위해서는 5개의 키가 필요하다고 생각했다.

(1) 세션키

편지의 내용을 잠그는 데 사용하는 비밀번호를 누르는 방식의 키다.(대칭키 방식으로 쓰일 것임)

(2) 철수🚹의 공개키

역할1. 세션 키가 무엇인지 알 수 없도록 잠구는 데 사용한다. 소지자는 영희🚺다. 
역할2. 철수의 서명을 확인 할 때 사용한다.

(3) 영희🚺의 공개키

역할1. 세션 키가 무엇인지 알 수 없도록 잠구는 데 사용한다. 소지자는 철수🚹다.
역할2. 영희의 서명을 확인 할 때 사용한다.

(4) 철수의 개인키

역할1. 영희가 잠군 자물쇠를 풀기 위한 철수만의 개인 키. 
역할2. 철수 자신의 도장을 찍기 위해 필요한 키

(5) 영희의 개인키

역할1. 철수가 잠군 자물쇠를 풀기 위한 영희만의 개인 키. 
역할2. 영희 자신의 도장을 사용하기 위해 필요한 키

이제, 철수가 영희에게 편지를 보내고 영희가 이 편지를 읽고자 한다고 하자.

  1. 철수는 영희에게 철수의 공개키, 영희의 공개키와 개인키를 전달한다.
  2. 철수는 편지를 쓴 뒤, 철수 개인키를 활용해 서명을 포함하여 편지를 완성한다.
  3. 편지를 아무나 읽을 수 없도록 암호화하기 위한 세션키를 생성했다.
  4. 세션키를 가지고 대칭키 방식을 이용해 편지를 암호화 했다. 대칭키 알고리즘은 SAH-256을 채택했다.
  5. 이 세션키가 노출되지 않고, 영희만 볼 수 있도록 영희의 공개키로 세션키를 암호화한다. 이제 이 편지는 영희의 개인키로만 풀 수 있다. 비대칭키 방식을 사용했음을 알 수 있다.

  1. 이제 우편함에 편지를 넣었다.
  2. 영희는 편지의 내용을 확인하고자 한다. 철수가 영희의 공개키로 암호화했으니 영희는 영희개인키로 세션키가 담긴 보관함을 열었다.
  3. 이제 세션키로 편지가 담긴 보관함을 열었다.
  4. 편지가 철수가 쓴게 맞는지 보기위해 철수의 공개키로 서명을 확인했다.
  5. 이젠 영희가 똑같이 세션키와 철수의 공개키를 가지고 위처럼 철수에게 답장하면 되겠다.
  • 편지발신할때 : 철수개인키+서명+편지완성 -> 세션키로 편지 암호화 -> 영희공개키로 세션키를 암호화 -> 편지발송
  • 편지수신할때 : 발신 마지막단계에서 영희공개키로 암호화했으니, 영희개인키로 세션키가 담긴 보관함을 연다 -> 세션키로 편지가 담긴 보관함을 연다 -> 철수의 공개키로 철수의 서명을 확인한다.

Ref

https://m.blog.naver.com/ehcibear314/221992210012

profile
중요한건 꺾이지 않는 마음이 맞는 것 같습니다

0개의 댓글