본문 바로가기
Security & IT terms

[Day 7] Encryption, Encoding, Hashing

by minimalist_2022 2020. 8. 16.

Encoding

  • Data Encoding은 Scheme를 이용하여 데이터를 새로운 포맷으로 변경하는 것(Base64, ASCII Code 등)
  • 현재의 포맷으로는 데이터 전송이 불가능할 경우 사용함
  • 원래의 데이터로 복원하는 것(Decoding)이 쉽기 때문에 암호화 목적으로 사용하지 않음. 

Hashing

  • Hashing은 입력값을 고정된 길이의 출력값으로 변경하는 것
  • 해싱된 데이터는 원래의 데이터로 복원 불가(일방향 암호화)
  • 보통 데이터 무결성 체크를 위해 사용
    • 원본과 사본을 동일한 해시 알고리즘(ex. SHA256) 으로 해싱했을 때 값이 같으면, 원본과 사본이 같다는 것이 증명됨

Encryption

  • Encryption은 Key 또는 Password를 가지고 있는 경우에만 원본을 볼 수 있도록 데이터를 '안전하게' 인코딩한 것
  • Encryption은 Symmetric Key(대칭키), Public Key(공개키) 방식이 있음
    • Symmetric Key 방식
      • 암호화, 복호화 키가 동일
      • 암호화 속도가 빨라 대용량 데이터 암호화에 적합
    • Publick Key 방식
      • 암호화, 복호화 키가 다름
      • 암호화 속도가 느리지만, 대칭키보다는 확장성이 좋음(본인의 개인키만 관리하면 되니까.대칭키방식은 키를 공유핼 사람이 많아지만 키관리가 어려워짐)
      • 송신자 개인키로 암호화하고, 송신자 공개키로 복호화 : 부인 방지 목적(송신자만 개인키 갖고 있으니 그사람이 보낸 것이 확실)
      • 수신자 공개키로 암호화하고, 수신자 개인키로 복호화 : 기밀성 목적. 암호화 느려서 대칭키 암호화하여 전송할 경우에 사용함.

 

참고

https://www.packetlabs.net/encryption-encoding-and-hashing/

 

Encryption, Encoding and Hashing: Explained | Packetlabs

Often misunderstood, there are crucial differences between encryption, encoding and hashing and there are specific use cases for each.

www.packetlabs.net