IT/Network

[Network] 대칭키/비대칭키 암호화

wakelight23 2025. 1. 9. 21:44

대칭키 암호화 (Symmetric Key Encryption)

● 암호화와 복호화에 같은 키를 사용하는 방식

  → 암호화와 복호화 과정이 빠르고, 구현이 간단하다.

  → Why? 단일 키를 사용하기에 암호화와 복호화 과정에서 발생하는 연산 비용이 낮기 때문!

 

● 대표적인 알고리즘 : AES, DES, 3DES, SEED

 

AES(Advanced Encryption Standard, 고급 암호화 표준)

 - 128bit, 192bit, 256bit 길이의 키를 지원

 - 키가 길수록 보안성이 좋다

 - 블록 크기 : 한 번에 처리되는 데이터의 크기

 - AES의 블록 크기는 128bit로 고정

 

● 단점 :
  - 키를 안전하게 공유하고 저장해야 하는 어려움이 있다.

    → 유출되면 보안이 취약해짐

  - 사용자 수가 증가할수록 관리해야 할 키의 개수가 늘어난다.

 

 

비대칭키 암호화 (Asymmetric Key Encryption)

● 암호화와 복호화에 서로 다른 키를 사용하는 방식

  - 공개키(Public Key) 개인키(Private Key), 두 가지 Key가 사용된다.

  - 공개키(Public Key)는 누구에게나 공개될 수 있고, 개인키(Private Key)는 소유자만 보유

 

공개키(Public Key)로 데이터를 암호화하고,
   개인키(Private Key)로만 데이터를 복호화할 수 있기 때문에 보안성이 높다.

 

● 키 교환이 필요 없기 때문에 안전한 통신 채널에서의 키 분배가 문제가 없다.

 

● 인증 및 부인 방지 기능을 제공하여 신뢰성이 높다.

 

● 대표적인 알고리즘 : RSA, ECC(Elliptic CurveCryptography), Diffie-Hellman

 

RSA (Rivest Shamir Adleman) → 개발자들의 성으로 지어진 이름

  - 데이터 암호화, 복호화뿐만 아니라 전자서명에도 활용

  - 소인수분해의 난해함을 기반으로 설계되어 높은 보안성을 제공

 

● 단점 :

  - 계산 속도가 느리고, 더 많은 자원을 소모한다

   → 소인수분해 난해함을 기반으로 설계되었기 때문에 숫자가 커질수록 계산이 느리다.

  - 즉, 대량의 데이터를 처리하기에는 비효율적이다.

 

 

단점을 보완할 방법은 없을까?

● 대칭키와 비대칭키를 적절하게 섞어서 사용하면 된다!

 

● RSA로 서로만 알 수 있는 암호키 자체를 하나 만들어서 송수신,

   그 후에 속도가 빠른 대칭키 방식으로 암/복호화를 하는 것

 

=> 이 방법은 SSL (HTTPS)에서 사용되고 있다.