🦁 [BCS 1st TIL] 4일차 회고


해시함수 특징 3가지

  1. 어떤값을 넣어도 ‘16진수 64자리’ 가 나온다 (SHA-256)

👉 나오는 자리수가 ‘64자리’ 로 정해져있기 때문에
👉 어떤 정보가 변경이 되었을때 빠르게 파악이 가능하다
👉 용량이 일정하다 (효율적이다)

❗ 하지만 이것이 ‘해시충돌’ 로 이어질수가 있다

  1. 역산이 불가능하다 ‘단방향’ 이다 (복호화 불가능)

  2. 규칙성이 따로 존재하지 않는다


해시충돌

충돌이란 암호화 함수에 서로 다른 2개의 입력값을 넣었을 때,
동일한 출력값이 나오는 경우를 의미한다

SHA-256의 경우에는 결과물의 용량이 256비트이고
결과는 64자리의 16진수로 표현되는데

전체 용량은 256비트 그리고 각 글자가 4비트이므로,
👉 ‘64자리’ 가 나오게 된다

나오는 자리수가 ‘64자리’ 로 정해져있기 때문에
엄청나게 큰 숫자이기는 하지만,
같은 결과물이 나올 확률이 없는 것은 아니다

⭐ 출력값으로만 검증을 실행한다

결과물인 출력값 이 각기 다른 2개의 입력값으로 도출된다면,
절차상 보안적으로 상당히 위험한 상황이 연출된다

AAA 값을 해시함수에 넣어서 나오는 결과값이 옳은 결과값이라고 한다

그런데, 해시함수에 충돌이 발생하여, AAA의 결과값과 BBB의 결과값이 동일하게 나왔다

BBB의 소유자는 AAA를 소유하지 않고도 올바른 결과값을 출력하였기에, 소유권을 증명할 수 있는 상황이다.

👉 이 경우, 보안상 매우 큰 위험을 야기하게 된다

블록체인 스쿨 1기 / 멋쟁이사자처럼 / 멋사 / 프로젝트라이언