용어집

SHA-256이란 무엇인가요?

SHA-256(Secure Hash Algorithm 256-bit)은 SHA-2 패밀리의 암호화 해시 함수로, 임의 길이의 입력을 받아 출력이 입력에 대해 아무것도 드러내지 않도록 설계된 단방향 함수인 고정 256비트(32바이트) 다이제스트를 생성한다.

다른 이름: SHA-2, Secure Hash Algorithm

암호화 해시 함수는 세 가지 속성을 충족해야 한다. 역상 저항성(주어진 해시에서 원래 입력을 찾기 불가능), 제2 역상 저항성(주어진 입력과 동일한 해시를 가진 다른 입력을 찾기 불가능), 충돌 저항성(동일한 해시를 생성하는 두 개의 서로 다른 입력을 찾기 불가능). SHA-256은 세 가지를 모두 충족하며 2001년 NIST가 발표한 이후 깨지지 않았다.

SHA-256은 입력 크기와 무관하게 256비트 출력을 생성한다. 단일 문자를 해싱하든 기가바이트 파일을 해싱하든 둘 다 32바이트 다이제스트를 생성한다. 눈사태 효과는 입력의 단 1비트만 변경해도 감지 가능한 패턴 없이 완전히 다른 해시를 생성하도록 보장한다. 이는 SHA-256을 무결성 검증에 유용하게 만든다. 파일의 해시를 저장하고 나중에 파일을 다시 해싱하여 변경되지 않았음을 확인한다.

SHA-256은 암호화 알고리즘이 아니다. 해싱은 대응하는 복호화가 없는 단방향 연산이다. 많은 암호화 구성의 빌딩 블록으로 사용된다. 메시지 인증을 위한 HMAC-SHA256, 키 파생을 위한 PBKDF2-SHA256, 인증서 지문, 블록체인 작업 증명, 디지털 서명 방식이 그것이다. 프로토콜과 플랫폼 전반에 걸친 광범위한 채택은 현대 암호화에서 가장 중요한 프리미티브 중 하나로 만든다.

Vaulted가 SHA-256을 사용하는 방법

SHA-256은 Vaulted의 키 파생 과정의 기반이 되는 해시 함수다. 패스프레이즈를 사용하여 비밀을 보호할 때 PBKDF2는 패스프레이즈와 무작위 솔트에서 래핑 키를 파생하기 위해 HMAC-SHA256을 반복적으로(100,000회) 적용한다. SHA-256은 또한 상태 페이지 토큰을 생성하는 HMAC 계산의 해시 함수이기도 하며, 비밀 생성자만 자신의 비밀의 상태 페이지에 접근할 수 있도록 보장한다.