[20210609] SHA(Secure Hash Algorithm)

SHA 알고리즘이란 무엇이며, 그 중 현재 가상화폐에서 많이 사용하는 SHA256에 대해 설명한다.

SHA(Secure Hash Algorithm)란?

SHA는 1993년에 처음 설계했으며 미국 국가 표준으로 지정되었다. SHA는 계속해서 변형되어 왔는데, 변형된 시기에 따라 SHA-0, SHA-1, SHA-2라 부른다.
그 중 SHA-1은 SHA 함수들 중 가장 많이 쓰이며, TLS, SSL, PGP, SSH, IPSec 등 많은 보안 프로토콜과 프로그램에서 사용되고 있다. SHA-1은 이전에 널리 사용되던 MD5를 대신해서 쓰이기도 한다.
SHA-0와 SHA-1에 대한 공격은 이미 발견되었기에, 좀 더 중요한 기술에는 SHA-256이나 그 이상의 알고리즘을 사용할 것을 권장한다.

그 중 현재 블록체인에서 많이 사용하는 SHA256에 대해 좀 더 알아보자.

SHA256

SHA 알고리즘의 한 종류로서 256비트로 구성되며 알고리즘의 결과로 64자리 문자열을 반환한다. 표준 해시 알고리즘인 SHA-2 계열 중 하나이며 출력 속도가 빠르며 단방향성의 성질을 띄고 있는 암호화 방법으로 복호화가 불가능해서 현재 블록체인에서 가장 많이 채택하여 사용하고 있다. 일반적으로 입력값이 조금만 변동하여도 출력값이 완전히 달라지기 때문에 출력값을 토대로 입력값을 유추하는 것은 거의 불가능하다. 아주 작은 확률로 입력값이 다름에도 불구하고 출력값이 같은 경우가 발생하는데 이를 충돌이라고 하며, 이러한 충돌의 발생 확률이 낮을수록 좋은 해시알고리즘이라고 평가된다. SHA256은 2^256^만큼 경우의 수를 만들수 있기에, PC로 무차별 대입을 수행해 해시 충돌 사례를 찾으려고 할 때 많은 시간이 소요될 정도로 큰 숫자이므로 충돌로부터 비교적 안전하다고 평가된다.


출처

https://ko.wikipedia.org/wiki/SHA http://wiki.hash.kr/index.php/SHA256