Incognito Project

[Incognito Project] 솔리디티 보안 - Keccak256 함수로 난수 생성

이유갬 2022. 9. 24. 17:45

블록체인에서 보안은 매우 중요함.

따라서 솔리디티는 Keccak256 이라는 강력한 해시 함수를 내장하고 있음.

참고 :
Git의 커밋번호를 생성할 때 쓰는 해시 알고리즘은 SHA-1, Keccak256 은 SHA-3 를 사용한다고 함. (조사가 더 필요할듯)
keccak256("aaaab");
//6e91ec6b618bb462a4a6ee5aa2cb0e9cf30f7a052bb467b0ba58b8748c00d2e5

keccak256("aaaac");
//b1f078126895a1424524de5321b339ab00408010b7cf0e6ed451514981e58aa9

- 문자의 끝을 b 에서 c 로만 바꿨을 뿐인데 해시값이 완전히 달라졌음.

- C++ 등 다른 프로그래밍 언어에서는 현재 시각 등 추측할 수 있는 값을 난수의 시드(seed)로 삼음.

- Keccak256 함수는 난수 충돌이 일어날 확률이 매우 희박한 안전한 난수를 생성함.

 

암호화 해시 함수(cryptographic hash function)란?

- 해시 함수의 일종으로, 해시 값으로부터 원래의 입력값과의 관계를 찾기 어려운 성질을 가지는 경우를 의미함.

- 가장 널리 사용되는 해시 함수에는 MD5 SHA-1이 있으나, 이들은 안전하지 않다는 것이 알려져 있음.