[Network] 암호화 (대칭 키, 비대칭 키, 해시)

Fabro·2021년 8월 27일
0

암호화

전송, 수신, 저장하는 데이터를 아무나 알 수 없도록 알고리즘을 이용하여 변환하는 프로세스
암호화 할 때 키 없이 알고리즘으로만 암호화를 한다면 쉽게 복호화 할 수 있지만 암호화 할 때 키를 사용하여 암호화를 하면 이를 방지 할 수 있다.
키를 사용하여 암호화를 할 경우 알고리즘을 알고 있어도 키를 가지고 있지 않으면 복호화가 불가능하다.

암호화 종류

  • 대칭 키 암호화
  • 비대칭 키 암호화
  • 해시 암호화

대칭 키 암호화

데이터를 암호화 / 복호화 할 때 같은 키를 사용하는 방식

장점

  • 암호화에 필요한 키의 길이가 비교적 짧다
  • 암호화 / 복호화에 필요한 계산이 비교적 간단하다

단점

  • 키 교환의 문제
    -> client와 server가 대칭키 방식으로 통신하려면 같은 키를 가지고 있어야하기 때문에 client 또는 server가 키를 전송해야 한다. 하지만 전송과정에서 암호화가 되어있지 않으면 키가 노출되어 제3자가 데이터를 열어볼 수 있다.

종류

  • DES
  • AES
  • SEED 등

비대칭 키 암호화

대칭키 암호화 방식과 달리 암호화 / 복호화에 사용하는 키가 각각 다른 방식
공개키(Public Key), 개인키(Private Key) 두개의 키가 필요
공개키로 암호화하면 개인키로 복호화, 개인키로 암호화하면 공개키로 복호화

장점

  • 대칭키 암호화보다 키 분배 및 관리가 쉽다
  • 대칭키 암호화보다 확장 가능성이 높다

단점

  • 암호화에 필요한 키의 길이가 길다
  • 암호화 / 복호화에 필요한 계산이 복잡하다
    -> 다수의 client로부터 전송된 암호화 데이터를 처리해야 하는 server의 입장에서는 계산이 복잡해지는 것은 서버의 성능을 저하시키는 원인이 될 수 있다

종류

  • 인수분해(ex: RSA,Robin)
  • 이산대수(ex: DH,DSA)
  • 타원곡선방정식(ex: ECC)

해시(Hash) 암호화

복호화를 위한 암호화 방식이 아님
해시 방식을 사용하면 원본 데이터의 길이와 상관없이 고정 길이의 해시 값을 얻게 됨
원본 데이터의 변경을 확인하는 무결성 검증에 사용
원본 데이터가 일부만 변경되어도 해시 값이 대폭 변경 됨
리눅스에서 사용자 암호 저장할 때 사용
사용자의 입력으로 해시 값을 생성하여 암호의 해시 값과 비교하여 일치 여부 확인
profile
엔지니어 유망주의 곡괭이질

0개의 댓글