일반적으로 무언가를 잘게 쪼갠 후 결과물을 생성하는 과정 의미.
해시 브라운은 잘게 쪼개 모양을 잡아 튀긴 음식인데, 이와 유사한 개념을 컴퓨터 과학에 적용해 데이터를 임의의 크기로 입력받아 고정된 크기의 출력값을 생성하는 함수!
-> 나머지 연산을 생각해보자!
7을 5로 나눈 나머지인 2가 해시값으로 출력!
이러한 방식으로, 해시 함수를 사용하면 입력값에 대해 항상 동일한 규칙에 따라 고정된 길이의 해시값 생성
** 해시 함수는 임의 길이의 입력값을 받아 고정된 길이의 출력값을 내는 함수
해시 함수는 단방향성을 가지고 있어, 입력 데이터에서 해시값으로의 변환은 쉽지만, 해시값에서 원래 데이터로의 역변환은 거의 불가능.
-> 해시함수가 데이터의 무결성을 보장하고, 보안 용도로 활용되는 데에 중요한 특징.
이러한 단방향성 평가 척도
->
역상 저항성(preimage resistance)
역상 저항성이 우수하다는건, 어떤 해시 함수가 특정한 값을 출력하는 입력값을 찾기 어려움을 의미.
해시 함수는 서로 다른 입력에 대해 동일한 해시값을 출력 -> 해시 충돌
좋은 해시 함수는 충돌 최소화하며, 보안 측면에서 안전한 해시 함수는 매우 낮은 충돌 확률 보장해야한다.
이를 평가하는 척도
->
충돌 저항성(collision resistance)
충돌 저항성이 우수하다는 건 어떤 해시 함수가 충돌하는 서로 다른 두 입력값을 찾기 어려움을 의미
충돌 저항성과 역상 저항성이 복합적으로 작용한 경우로, a라는 입력의 해시값과 동일한 해시값을 갖는 입력 b를 찾기 어려워야 함을 나타냄.
-> 위의 3 개념들 전부 암호화 해시함수의 안전성을 평가하는 요소
해시 함수는 항상 일정한 길이의 결괏값을 출력.
입력 데이터의 크기가 달라도 항상 동일 길이 해시값을 반환해 블록체인과 같은 분산 시스템에서 데이터의 일관성과 효율적인 처리 보장에 유용.
대용량 데이터에 변조가 일어났는지 확인할 때, 일일이 모든 데이터를 대조하는 것보다 데이터의 해시값을 비교하면, 변조가 일어났는지 쉽게 확인.
-> 이러한 방법 데이터 무결성 검사