본문 바로가기
CS/보안

대칭키 / 비대칭키 양방향 암호화 기법

by 🌻♚ 2021. 10. 6.

양방향 암호화

이전 글에서는 봤던 단방향 암호화 기법과 반대로... 대칭키와 비대칭키는 양방향 암호화 방식 이다. Hash를 사용한 단방향 암호화 방식과는 다르게 암호화된 암호문을 복호화할 수 있는 알고리즘이다.

대칭키 : 암호화, 복호화에 사용되는 키가 동일하다.
비대칭키 : 암호화, 복호화에 사용되는 키가 다르다.

암호화와 복호화에 사용되는 키들의 실체는 대체로 파일형태로 되어있고 열어보면 암호화된 값이 있다.

대칭키 암호화

양방향 암호화 방식 중에 널리 사용하는 대칭키는 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘이다.

비교 예시

2차 세계대전 때 독일 스파이들은 모스부호를 이용해서 민감한 군사 정보를 암호화해서 서로 전달을 했다. 여기서 중간에 이 모스 부호로 암호화된 정보를 가로챈다고 하더라도 모스 부호를 해독하지 못하면 결국 이 정보를 알 수 없다. 즉, 모스 부호(대칭키)를 아는(갖는) 사람만 암호화된 정보를 복호화해서 알 수 있고… 동시에 모스 부호(대칭키)로 데이터를 암호화할 수 있다. 이것이 대칭키의 특징이다.

대칭키의 문제

어떻게 동일한 키를 애초에 양쪽이 공유할 수 있을까?

결국에 한번은 한쪽에서 다른 쪽으로 이 키를 전송해야하는데… 이때 중간에 누군가 이 암호화 키를 가로채면 암호화된 정보가 유출될 수 있다.
→ 이런 문제를 보완한 새로운 방식이 양방향 암호화의 비대칭키(공개키) 이다.

비대칭키(공개키) 암호화

비대칭키는 암호화할 때와 복호화할 때, 키를 서로 다른 키로 사용하는 암호화 알고리즘이다. 타인에게 절대 노출되어서는 안되는 개인키(Private key)와 공개적으로 개방되어 있는 공개키(Private key)를 쌍으로 이룬 형태이다.

비대칭키를 사용하여 두가지 암호학적 문제를 해결할 수 있다.

  • 데이터 보안
  • 인증

공개키 암호화 → 개인키 암호화 : 데이터를 안전하게 전송할 수 있는 보안 관점
개인키 암호화 → 공개키 암호화 : 신뢰할 수 있는 단체라는 것을 인증하는 관점

데이터 보안 관점

사용자가 데이터를 서버로 보내는 과정에서 개인정보과 같은 중요한 데이터는 그대로 보내면 안되고 암호화해서 보내야한다. 그래서 서버만 유일하게 갖고 있는 개인키로만 복호화할 수 있도록… 서버의 공개키로 암호화해서 데이터를 보내면 안전하게 데이터를 전송할 수 있다.
→ 제 3자가 클라이언트로부터 전송하는 데이터를 볼 수 없다.

인증 관점

  1. 클라이언트와 서버는 서로 확인하기 위해 Handshake 과정을 진행한다.
    1. 이 때 서버에서는 CA(공인 인증 기관)에서 인증받은 인증서(CA의 개인키로 암호화된 전자 서명)를 클라이언트로 보낸다.
  2. 사용자는 CA의 목록을 확인해서 공인 인증기관이 서명한 인증서인지 확인한다.
  3. CA의 공개키를 이용해서 해당 인증서를 복호화한다.
  4. 복호화에 성공하면 서버의 공캐키를 얻는다.

공인 인증 기관으로부터 서명 받은 서버의 인증서가 공인 인증 기관의 공개키로 복호화가 가능하다는 것이 해당 기관은 인증 받은 단체라는 것을 확인할 수 있다.

알고리즘 종류

  • 대칭키
    • 블록 암호 알고리즘
      • DES
      • 3-DES
      • AES
      • SEED
      • ARIA
    • 스트림 암호
      • RC-4
  • 비대칭키
    • 인수분해
      • RSA
    • 이산대수
      • DSA

댓글0