의견.png

SHA256

위키원
dbwls5813 (토론 | 기여)님의 2019년 4월 9일 (화) 09:35 판
이동: 둘러보기, 검색

SHA-256는 SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256비트로 구성되며 64자리 문자열을 반환한다. SHA-256은 미국의 국립표준기술연구소(NIST; National Institute of Standards and Technology)에 의해 공표된 표준 해시 알고리즘인 SHA-2 계열 중 하나이며 블록체인에서 가장 많이 채택하여 사용하고 있다. 이름에 내포되어 있듯 2의 256제곱만큼 경우의 수를 만들수 있다. 개인용 컴퓨터로 무차별 대입을 수행해 해시 충돌 사례를 찾으려고 할 때 많은 시간이 소요될 정도로 큰 숫자이므로 충돌로부터 비교적 안전하다고 보여진다.[1]

개요

SHA-256 해시 함수는 어떤 길이의 값을 입력하더라도 256비트의 고정된 결과 값을 출력한다.[2] 일반적으로 입력 값이 조금만 변동하여도 출력 값이 완전히 달라지기 때문에 출력 값을 토대로 입력 값을 유추하는 것은 거의 불가능하다. 아주 작은 확률로 입력 값이 다름에도 불구하고 출력 값이 같은 경우가 발생하는데 이것을 충돌이라고 한다. 이러한 충돌의 발생 확률이 작을수록 좋은 함수라고 평가된다.

등장 배경

1993년 미국 국가안보국(NSA)의 설계를 시작으로 SHA 함수군에 속하는 최초의 함수는 공시적으로 SHA라고 불렸지만 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고 불리고 있다. 가장 처음으로 발표된 SHA-0을 기점으로 SHA-1SHA-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]

안정성

SHA-1은 구글 클라우드 서버를 기반으로 수행된 연구 사례에서 약 900경의 해시 연산을 통해 충돌이 발견된 경험을 가지고 있다. 이것을 바탕으로 근본적인 차이가 많이 없는 SHA-256의 안정성이 얼마나 높고 유지될 수 있다고 언급하기에는 어려움이 있다. 하지만 실질적으로 해시 취약점을 대상으로 하는 양자 컴퓨터가 출시되지 않는 이상 최소 근 10년 가량은 안전하다는 판단을 할 수 있다. SHA-256의해 제공되는 해시 [알고리즘]]은 일정한 컴퓨터 연산 속도의 향상을 염두한 가정에도 산술적으로 매우 강력하다는 결론에 도달하게 된다. 혹여 미래에 SHA-256의 취약점이 발견되더라도 블록체인에는 하드포크(Hard Fork)와 같은 알고리즘 개선 기법들이 존재하기 때문에 취약점을 제거할 수 있다.[1]

특성

SHA-256의 특성은 다음과 같다.

  • 해시값의 크기 : 256
  • 내부 상태 크기 : 256
  • 블록크기 : 512
  • 길이 한계 : 64
  • 워드 크기 : 32
  • 과정수 : 64
  • 사용되는 연산 : +,and,or,xor,shr,rotr
  • 충돌 여부 : 발견되지 않음[3]

각주

  1. 1.0 1.1 우재, 〈volumeNo=15843055&memberNo=3270008 SHA256 이란?〉, 《네이버 포스트》, 2018-05-28
  2. 토큰포스트, 〈SHA-256 해시 함수〉, 《토큰포스트》
  3. 3.0 3.1 나눔팁, 〈SHA256 이란? 무엇인가!〉, 《블로그》, 2018-08-20
  4. chodahi, 〈단방향 알고리즘(SHA256) 과 양방향 알고리즘(AES256)〉, 《네이버 블로그》, 2018-11-30

참고자료

같이 보기


  의견.png 이 SHA256 문서는 알고리즘에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.