SHA256
SHA-256는 SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256비트로 구성되며 64자리 문자열을 반환한다. SHA-256은 미국 표준 기술 연구소(NIST)에 의해 공표된 표준 해시 알고리즘 SHA-2 계열 중 하나이며 블록체인에서 가장 많이 채택하여 사용하고 있다. 이름에 내포되어 있듯 2의 256제곱만큼 경우의 수를 만들수 있다. 개인용 컴퓨터로 무차별 대입을 수행해 해시 충돌 사례를 찾으려고 할 때 많은 시간이 소요될 정도로 큰 숫자이므로 충돌로부터 비교적 안전하다고 보여진다.[1]
개요
SHA-256 해시 함수는 어떤 길이의 값을 입력하더라도 256비트의 고정된 결과 값을 출력한다.[2] 일반적으로 입력 값이 조금만 변동하여도 출력 값이 완전히 달라지기 때문에 출력 값을 토대로 입력 값을 유추하는 것은 거의 불가능하다. 아주 작은 확률로 입력 값이 다름에도 불구하고 출력 값이 같은 경우가 발생하는데 이것을 충돌이라고 한다. 이러한 충돌의 발생 확률이 작을수록 좋은 함수라고 평가된다.
등장 배경
1993년 미국 국가안보국(NSA)의 설계를 시작으로 SHA 함수군에 속하는 최초의 함수는 공시적으로 SHA라고 불렸지만 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고 불리고 있다. 가장 처음으로 발표된 SHA-0을 기점으로 SHA-1과 SHA-2 계열이 있으며 가장 나중에 SHA-3 알고리즘이 공개되었다. 2년 후인 1995년 SHA-0의 변형인 SHA-1이 나왔으며, 이 후 변형을 통해 4종류가 추가적으로 공개되었다. 통칭 SHA-2로 불리는 변형 4종에는 SHA-224,SHA-256,SHA-384,SHA-512가 있다.[3]
특징
단방향 알고리즘
단방향(One-Way) 암호화는 평문을 암호화 했을 때 다시 평문으로 복호화 할 수 없는 암호화이다. 대표적으로 많이 사용되는 알고리즘이 SHA-256 암호화 알고리즘이다. SHA-256은 임의의 길이 메시지를 256 비트(bits)의 축약된 메시지로 만들어내는 해시 알고리즘이다. 데이터의 수정과 변경을 검출 할 수 있으나 인증은 불가능한다. 인증에 사용하기 위해 메시지 인증코드와 디지털 서명이 요구된다.[4]
각주
- ↑ 우재, 〈volumeNo=15843055&memberNo=3270008 SHA256 이란?〉, 《네이버 포스트》, 2018-05-28
- ↑ 토큰포스트, 〈SHA-256 해시 함수〉, 《토큰포스트》
- ↑ 나눔팁, 〈SHA256 이란? 무엇인가!〉, 《블로그》, 2018-08-20
- ↑ chodahi, 〈단방향 알고리즘(SHA256) 과 양방향 알고리즘(AES256)〉, 《네이버 블로그》, 2018-11-30
참고자료
- 코인마켓히어로, 〈코인용어사전 : SHA256/암호화 해시함수〉, 《네이버 블로그》, 2018-05-05
- 우재, 〈SHA256 이란?〉, 《네이버 포스트》, 2018-05-28
- 토큰포스트, 〈SHA-256 해시 함수〉, 《토큰포스트》
- 나눔팁, 〈SHA256 이란? 무엇인가!〉, 《블로그》, 2018-08-20
- chodahi, 〈단방향 알고리즘(SHA256) 과 양방향 알고리즘(AES256)〉, 《네이버 블로그》, 2018-11-30
같이 보기
|