[CS] Network - 대칭키 & 공개키

ZenTechie·2023년 5월 9일
0

CS

목록 보기
10/16

대칭키 & 공개키

대칭키(Symmetric Key)

암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘

장점

  • 동일한 키를 주고받기 때문에, 암호화 및 복호화가 빠르다.

단점

  • 대칭키 전달과정에서 해킹 위험에 노출
    • 암호를 주고 받는 사람들 사이에 대칭키를 전달하는 것이 어렵고,
      대칭키가 유출되면 키를 획득한 공격자는 암호의 내용을 복호화 할 수 있기 때문에 암호가 무용지물이 된다.

공개키(Public-Key)

암호화와 복호화에 사용하는 암호키를 분리하여 사용하는 방식

공개키 (Public Key) 로 정보를 암호화하고,
자신이 가지고 있는 비공개키 (비밀키 : Private Key) 로 복호화한다.

장점

  • 공개키가 유출된다고 해도 비공개키를 모르면 정보를 복호화할 수 없기 때문에 안전하다.

단점

  • 키가 서로 다르기 때문에 암호화 & 복호화 연산 작업이 복잡하다.

진행 과정

1. A가 웹 상에 공개된 'B의 공개키'를 이용해 평문을 암호화하여 B에게 보냄
2. B는 자신의 비밀키로 복호화한 평문을 확인, A의 공개키로 응답을 암호화하여 A에게 보냄
3. A는 자신의 비밀키로 암호화된 응답문을 복호화함

하지만 이 방식은 기밀성만 보장해줄 뿐, 진실성과 확실성은 보장해주지 않는다.

→ 이는 MAC(Message Authentication Code)나 전자 서명(Digital Signature)으로 해결한다. (MAC은 공개키 방식이 아니라 대칭키 방식임을 유의! T=MAC(K,M) 형식)

공개키 (Public Key) 로 암호화 한 경우

데이터 보안에 중점을 두는 것이다.

상대방의 공개키로 데이터를 암호화하고 전송하면, 데이터를 수신한 사람은 자신의 비밀키로 데이터를 복호화 한다.

공개키는 널리 배포될 수 있기 때문에 많은 사람들이 비밀키를 소유한 사람에게 데이터를 보낼 수 있다.

비밀키 (Private Key) 로 암호화 한 경우

인증 과정에 중점을 두는 것이다.

공개키를 소유한 사람이 비밀키로 데이터를 암호화하고 공개키와 함께 전달한다.
이 과정에서 공개키와 데이터를 획득한 사람은 공개키를 이용하여 복호화할 수 있다.

데이터가 노출되는 위험에도 불구하고 이 방법을 사용하는 이유?

데이터 보호 목적보다는 공개키 데이터 제공자의 신원을 보장해주기 때문이다.

암호화된 데이터가 공개키로 복호화 된다는 것은 공개키와 쌍을 이루는 비밀키에 의해서 암호화 되었다는 것을 의미하며 즉, 데이터 제공자의 신원 확인이 보장된다는 것이다.

이 방법이 공인인증체계의 바탕인 '전자 서명'이다.

대칭키와 공개키 암호화 방식을 적절히 혼합한다면 (하이브리드 방식)

SSL 탄생의 시초가 된다.

1. A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하고 B에게 보냄
2. B는 암호문을 받고, 자신의 비밀키로 복호화함
3. B는 A로부터 얻은 대칭키로 A에게 보낼 평문을 암호화하여 A에게 보냄
4. A는 자신의 대칭키로 암호문을 복호화함
5. 앞으로 이 대칭키로 암호화를 통신함

→ 대칭키를 주고받을 때만 공개키 암호화 방식을 사용하고 이후에는 계속 대칭키 암호화 방식으로 통신한다.

profile
데브코스 진행 중.. ~ 2024.03

0개의 댓글