본문 바로가기

📘 Computer Science

해시(Hash)와 암호화(Encryption)의 차이점?

결론을 먼저 말해보면 둘 다 암호화 기법이지만, 해시(Hash)는 단방향 암호화 기법이며, 암호화(Encryption)는 양방향 암호화 기법이다.

 

즉, Hash는 평문 데이터를 암호화된 데이터로 바꿀 수 있는 단방향 암호화 기법이고, Encryption은 평문을 암호화된 데이터로 바꾸는 암호화와 암호화된 데이터를 평문 데이터로 바꿀 수 있는 복호화가 존재합니다.

 

 

 

1. Hash


  • 해시 알고리즘은 특정 입력 값에 대해서 항상 동일한 결과 값을 리턴하게 됩니다.
  • 해시 입력 값은 다르지만, 해시 결과 값은 동일할 수 있습니다. (여기서 중복이 적게 생길수록 좋은 해시 함수입니다.)

해시만 적용하는 것으로 완벽한 보안이 될까?

사실 어떻게 보안을 해도 어떤 천재 해커나 집요한 해커들에게 뚫릴 가능성이 Zero는 아니기 때문에 더 튼튼한 보안을 결정해서 사용해야 합니다.

 

하지만, 평문 데이터를 단순히 해시함수 한 번만 거쳐 암호화를 했다고 완벽한 보안이 될 수 없습니다.

 

그래서 보통 해시 함수를 여러 번 돌리거나 Salt를 넣어서 사용하는 방법을 사용하곤 합니다.

 

여기서 솔트 값은 적용하는 방식에 따라서 많이 달라질 수 있는데, 임의로 정해둔 솔트 값을 비밀번호의 앞이나 뒤 또는 앞뒤에 모두 적용해서 해시 함수에 넣어 결과 값을 얻는 방식이다.

 

이렇게 하면 어떻게 막 해시 함수에 임의의 값을 막 넣다보니 해커가 평문 데이터를 알아냈다고 했을 때, 이 평문 데이터는 임의의 값인 Salt가 섞여있는 데이터이기 때문에 해커는 이 Salt 값까지 알아내야 실제 데이터를 얻어낼 수 있습니다.

 

대표적인 해시 함수에는 MD5, bcrypt, SHA가 존재합니다.

해시 함수별 보안과 속도 비교

 

 

2. Encryption


  • 양쪽에서 같은 암호화 키를 가지고 있는 암호화 방식을 "대칭키 방식"이라고 합니다.
  • 한쪽은 개인키(private key)를 가지고, 다른 한쪽은 개인키와 한 쌍인 공개키(public key)를 가지고 암호화 복호화하는 방식을 "비대칭키 방식"이라고 합니다.
  • "대칭키"와 "비대칭키"를 둘 다 사용하는 혼합 암호화 방식도 존재합니다.
  • 암호화 방식은 해시와는 다르게 양방향성을 가지게 됩니다.

 

 

 

🔗 Reference

암호학) 암호화와 해시(Hash), 해싱(Hashing)알고리즘, 해시 함수

 

암호학) 암호화와 해시(Hash), 해싱(Hashing)알고리즘, 해시 함수

암호화와 해싱, 해싱 알고리즘… 헷갈리는 용어를 정리해 보자.

medium.com