728x90
반응형
오늘은 해시 함수의 특징과 속성에 대해 설명해보겠습니다.
해시함수란?
해시함수는 숫자로 된 입력값을 다른 압축된 숫자 값으로 변환시키는 함수입니다.
해시함수에 대한 입력은 임의의 길이이지만, 출력은 항상 고정된 길이입니다.
해시 함수에 의해 반환되는 값을 메시지 다이제스트(message digest) 또는 단순히 해시 값(hash value)이라고 합니다.
Features of Hash Functions
해시 함수의 특징은 크게 네 가지로 나눌 수 있습니다.
1) 고정된 길이의 출력 값(Hash value)
n-bit 출력 값을 갖는 해시 함수를 n-bit 해시 함수라고 하고, 자주 사용되는 함수(sha, MD)는 160-bit와 512-bit사이의 값을 출력합니다.
2) 효율성
일반적으로 입력 메시지 m을 갖는 해시 함수 h에 대해, h(m) 계산은 빠른 연산으로 처리됩니다. 또한, 해시 함수는 대칭 암호화보다 훨씬 빠릅니다.
3) 쇄도 효과 (The avalanche effect)
(암호) 알고리즘에 미세한 입력 값 변화를 줄 경우, 출력 값에 상당한 변화가 일어나는 성질을 의미합니다. 해시함수도 대표적인 쇄도 효과를 가진 함수입니다.
4) 결정적 (Deterministic)
동일한 입력 값이라면 10년 후, 100년 후라도 동일한 해시 값이 출력됩니다.
이 사이트(https://tools.superdatascience.com/blockchain/hash/)를 이용하여 SHA256을 사용해보겠습니다.
1bit의 변화만 줘도 결과 값은 완전히 달라지는 걸 확인할 수 있습니다.
Properties of Hash Functions
해시함수가 안전한 암호화 도구가 되기 위해서는 다음과 같은 속성을 가져야 합니다.
우선, 해시 함수는 임의의 입력 값을 가지고, 고정된 값을 출력하기 때문에 아래 그림처럼 입력 값 도메인이 출력 값 도메인보다 더 큽니다.
1) Pre-Image Resistance (역상 저항성)
이 속성은 해시 함수를 되돌리기가 계산적으로 어렵다는 것을 의미합니다.
즉, 해시 값만 보고 입력 값을 찾으려고 하는 공격자를 막을 수 있습니다.
다시 말해 h(m)을 보고, m을 계산하는 것은 어려운 과정이어야 합니다.
2) Second Pre-Image Resistance (제 2 역상 저항성)
이 속성은 입력과 입력에 대한 해시값이 주어질 때, 동일한 해시값을 가진 다른 입력을 찾기가 어려울 것을 의미합니다.
즉, 입력 값 m에 대해 h(m)을 생성한다면, h(m) = h(m')와 같은 다른 입력 값 m'을 찾기 어려워야 합니다.
이 속성은 입력 값과 해시 값을 가진 공격자로 부터 원래의 입력 값 대신 다른 값으로 대체하는 것을 막을 수 있습니다.
3) Collision Resistance (충돌 저항성)
이 속성은 임의의 두 개의 입력 m과 m'에 대해 h(m) = h(m')을 찾는 것이 어려워야 한다는 것을 의미합니다.
여기서 임의의 두 입력 값이 중요한데, 제 2역상 저항성 같은 경우는 고정된 입력 m에 대해 h(m)과 동일한 결과를 출력하는 입력 m'을 찾는 것이 어려워야 합니다.
반면, 충돌 저항성은 동일한 해시 값을 생성하는 서로 다른 두개의 입력 쌍을 찾기 어렵다는 것을 의미합니다.
이렇게 해서 해시 함수의 특징, 속성에 대해 알아보았습니다.
반응형
'Computer Security' 카테고리의 다른 글
소수, 소수 판정 - 공부하는 도비 (0) | 2021.11.02 |
---|---|
Secure SDLC - 공부하는 도비 (0) | 2020.04.10 |
소프트웨어 보안 약점[7가지] - 공부하는 도비 (0) | 2020.04.10 |
정보 보안 침해 공격 관련 용어 정리 - 공부하는 도비 (0) | 2020.04.09 |
대칭암호(개인키 암호) - 공부하는 도비 (0) | 2020.04.08 |