1. Hashing이란?

먼저 해시(Hash)란 데이터를 다루는 기법 중 하나이며, 해시 함수(Hash function)는 데이터를 효율적으로 관리하기 위해서 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 매핑 전 원래 데이터의 값을 Key, 매핑 후 데이터의 값을 Hash Value 또는 해시 코드라고 하며 키와 값으로 매핑되는 과정 자체를 해싱(Hashing)이라고 한다.

Untitled

IT 시스템에서는 암호화를 통해 인가된 송신자와 수신자만 원본 메시지를 조회할 수 있는 장치를 만든다. 그렇지만 인가되지 않은 제삼자가 암호화된 메시지를 변조했는지는 복호화 과정에서 알 수 없다. 이를 해결하기 위해 해싱을 사용한다. 누군가 메시지를 변조했다면 해싱값도 변경되기 때문에 변조 여부를 파악할 수 있다. 이 특성을 이용하여 보안성이 필요한 데이터, 시스템, 통신 등에서 메시지 무결성을 위해 사용된다.

2. 해싱과 암호화는 어떻게 다를까?

해싱과 암호화 모두 데이터의 보안성을 높이기 위해 사용한다는 공통점이 있다. 좀 더 특성을 비교하자면, 암호화(encryption)는 수신자와 송신자 사이에 암호화와 복호화 두 단계가 있고, 인가되지 않은 제삼자에게 데이터 노출을 막는 것이 목적이다. 해싱은 해시값을 검사하여 데이터 변조가 없었는지 무결성을 확인하는 것이 주목적이다.

Untitled

3. 해싱의 특징

4. 해싱은 언제 사용하는가?