본문으로 건너뛰기

암호화의 종류(단방향 암호화, 양방향 암호화)


단방향 암호화

  • 단방향 암호화의 경우 암호화 후 복호화가 불가능한 암호화 방식이다.
  • 예시로는 Hash가 있다.
  • 보통 이러한 단방향 암호화를 유저 정보 저장에 이용한다.
  • 이러한 단방향 암호화로, 데이터베이스를 볼 수 있는 사람도 유저의 원래 비밀번호를 알 수 없다.
    • cf) 비밀번호의 해시 값이 노출되었을 때, Dictionary Attack과 같은 공격에 대비하기 위해 원본 비밀번호에 Salt를 사용해 원본 비밀번호를 해커가 알 수 없게 한다.

양방향 암호화

  • 양방향 암호화의 경우 암호화 및 복호화가 가능한 암호화 방식이다.
  • 양방향 암호화는 '키(Key)'를 사용하여 암호화, 복호화를 한다.
  • 키의 종류에는 '대칭키'와 '비대칭키'가 있다.

대칭키 암호화

  • 암호화와 복호화에 같은 키(Key)를 사용하는 암호화 방식이다.
  • 대표 알고리즘: AES, DES
  • 장점
    • 빠른 속도 - 비대칭키 암호화 방식에 비해 수백~수천 배 빠르다. 알고리즘이 간단하고 키의 길이가 짧기 때문이다.
  • 단점
    • 키 교환 문제 - 결국 암호화에 사용된 키를 복호화하는 대상에게 전달해야한다는 근본적인 문제가 있다. 즉, 모든 트래픽을 해커가 탈취하고 있다고 가정했을 때, 해커가 모든 데이터를 복호화하여 볼 수 있다.
    • 키 관리 복잡성 - 통신해야할 사용자 수가 NN명으로 증가할 경우, 필요한 키의 총 개수는 N(N1)/2N(N-1)/2개로 기하급수적으로 늘어나 관리가 매우 복잡해진다.

비대칭키 암호화

  • 암호화와 복호화에 다른 키(Key)를 사용하는 암호화 방식이다.
  • 대표 알고리즘: RSA
  • 장점
    • 안전한 키 교환 - 공개키는 누구나 가질 수 있도록 공개하고, 개인키는 소유자만 안전하게 보관하므로 안전한 키 교환이 가능하다.
    • 키 관리의 편의성 - 통신해야할 사용자의 수가 증가하더라도 2N2N개의 키만 관리하면 된다.
  • 단점
    • 느린 속도 - 알고리즘이 복잡한 수학적 연산(소인수 분해 등)에 기반하기 때문이다. 이에 대용량 데이터의 암호화에는 적합하지 않다.
경고

흔히 1가지의 사례만 보고, 공개키는 암호화, 개인키는 복호화에 쓰이는거 아닌가? 착각하는 경우가 많다. 하지만, 공개키를 암호화, 개인키를 복호화에 사용하는 경우(데이터를 암호화해야하는 경우)도 있고, 개인키를 암호화 공개키를 복호화(전자서명)에 사용하는 경우도 있다.