오호츠크해 기단 2022. 8. 7. 16:07
728x90

해시

해시 함수(Hash Function)는 임의 크기의 데이터를 입력으로 받아서, 고정된 크기의 데이터를 반환하는 함수이며, 해시 함수의 반환값은 해시 값(Hash Value)이라고 부릅니다. 암호학적 해시 함수(Cryptographic Hash Function)는 해시 함수 중에서 특정 성질을 만족하는 함수를 의미합니다.

암호학적 해시 함수(Cryptographic Hash Function)는 다음 성질을 만족하는 해시 함수를 말합니다.
+추가로, 현대에는 눈사태 효과(Avalanche Effect)를 이상적인 해시 함수의 조건 중 하나로 보기도 합니다.

일방향함수(One-way Function)

임의의 인자에 대한 함수 값은 쉽게 계산할 수 있지만, 함수 값으로 부터 함수의 인자를 알아내기 어려운 함수를 일방향함수라고 부릅니다.

MD5

MD5는 Ronald Lorin Rivest가 1991년에 만들어낸 해시 함수입니다. MD5 해시 함수는 임의 입력으로부터 128비트(=16바이트)의 값을 생성하는 함수입니다. 임의 길이의 입력을 블록 암호와 비슷하게 512비트 단위로 쪼갠 후 연산을 거쳐 값을 생성합니다.

SHA25

SHA256은 미국 표준 기술 연구소(NIST)에서 만들어낸 해시 함수입니다. SHA256은 256비트(=32바이트)의 출력을 내는 함수입니다. MD5에 비해 길이가 2배로 늘어나 충돌 저항성이 크게 증가했습니다. 실제로 SHA256이 만들어진 이후로 지금까지 수많은 데이터들의 해시 값이 생성되었으나 충돌이 발생한 사례는 알려지지 않고있습니다.

메세지 인증 코드(Message Authentication Code, MAC)


MAC을 만들어내기 위해서는 메시지와 키가 필요합니다. 이때 는 송신자와 수신자 사이에서 사전에 공유되어있어야 합니다.
송신자는 수신자에게 메시지를 보낼 때, 메시지와 키를 이용해 계산된 MAC 값을 같이 보냅니다. 수신자는 기존에 알고 있던 키를 이용해 수신한 메세지의 MAC을 계산하고, 이를 전송받은 MAC과 일치하는지 비교합니다.
공격자가 메시지를 위조하고 싶으면 위조된 메시지에 대한 올바른 MAC값을 알아야 하는데 키를 모르는 공격자로서는 MAC을 계산할 수 없습니다.

HMAC

HMAC은 해시 함수를 기반으로 하는 MAC입니다.