728x90
SHA256 Hash
SHAk256 Hash는 NSA에서 개발한 알고리즘으로 해시 길이는 64이고 16진수로 되어 있어서 숫자와 문자가 섞여 있다.
해시 한 문자당 4비트로 총 256비트로 되어 있으며, 같은 데이터를 입력하면 같은 해쉬값을 도출한다. 이는 데이터가 약간 달라졌을 때 완전히 다른 해쉬값을 가지게 되며 이를 쇄도 효과라 부른다.
해쉬 알고리즘은 다섯가지 요구사항이 있음
- 단방향이여야한다. -> 복원이 불가능하다
- 결정적이여야한다.
- 연산이 빨라야 한다
- 쇄도효과가 발생한다.
- 충돌 저항성이 있다.
위의 다섯가지 요구사항 중 쇄도효과는 동일한 문서에 아주 작은 변형을 더했을 때 해쉬값은 완전히 바뀌는 것으로 알고리즘의 구조때문에 쇄도 효과가 발생한다. 자세한 이야기는 이후 채굴 목차에서 진행할 여정이다.
해싱 알고리즘의 길이는 64비트로 제한적으로 생성되는 데 반해, 일반적인 데이터의 양은 64비트로 표현할 수 있는 것보다 훨씬 많이 존재하게 된다.
이는 비둘기집 원리와 같이 자연적으로 충돌이 발생하기 때문에 가능성이 낮더라도 알고리즘이 인위적인 충돌을 만들었을 때, 이러한 알고리즘은 충돌에 대한 저항성이 존재해야 한다.
이상으로 알고리즘의 보안성과 안정성을 보장하기 위한 다섯가지 요구사항을 설명하였고, SHA 알고리즘의 동작원리는 On the Secure Hash Algorithm family chapter1에서 확인할 수 있다.
'자기개발 > 블록체인' 카테고리의 다른 글
[Blockchain A-Z:블록체인 만들기 완벽강의] 채굴(Mining) 시스템 (0) | 2024.07.14 |
---|---|
[Blockchain A-Z:블록체인 만들기 완벽강의] 불변원장 및 분산 P2P 네트워크 (0) | 2024.07.13 |
[솔리디티 깨부수기] 상속 : super, 상속의 순서 (0) | 2024.06.12 |
[솔리디티 깨부수기] event2 - indexed (0) | 2024.06.04 |
[솔리디티 깨부수기] event 정의 (0) | 2024.06.04 |