SHA-384 해시 생성기 (TLS Suite B 해시)
SHA-384 해시를 브라우저에서 생성합니다. 96자리 16진수, 길이 확장 면역, NSA Suite B, TLS AES-256-GCM. 미전송.
SHA-384란 무엇인가요?
SHA-384는 NIST가 2001년 FIPS 180-2의 일부로 발표한 SHA-2 계열의 384비트 암호 해시 함수입니다. 구조적으로 SHA-512의 잘린 변형입니다. 두 알고리즘은 동일한 64비트 워드 산술, 80개의 압축 라운드, 1024비트 입력 블록을 사용합니다. 차이점은 초기화 벡터(IV)와 SHA-384가 SHA-512의 512비트 출력의 마지막 128비트를 버려 384비트(96자리 16진수)를 만든다는 것입니다.
잘라내기가 암호학적으로 중요한 이유: SHA-256은 길이 확장 공격에 취약합니다. SHA-256(message)이 주어지면 공격자는 원본 메시지를 모르고도 SHA-256(message || padding || extension)을 계산할 수 있습니다. SHA-384는 이 공격 면을 제거합니다. 잘라내기가 내부 상태의 128비트를 버리므로 공개된 384비트 해시는 SHA-512 계산을 재개하기에 충분한 정보를 담지 않습니다.
NSA Suite B와 TLS 역할: SHA-384는 NSA Suite B(CNSSP-15, 2005)에서 최고 기밀 분류에 필요했습니다. 암호 스위트 ECDHE-ECDSA-AES256-GCM-SHA384의 해시 알고리즘이며, 미국 정부, 금융, 방위 네트워크에서 널리 배포된 TLS 1.2 Suite B 준수 암호 스위트입니다. NSA의 CNSA Suite(2015)는 SHA-384를 SHA-256과 함께 유지했으며, SHA-384는 TLS 1.3의 서명 알고리즘 목록에 포함됩니다(ecdsa_secp384r1_sha384).
성능: 64비트 하드웨어에서 SHA-384와 SHA-512는 동일한 속도로 실행됩니다. 둘 다 독점적으로 64비트 워드 연산을 사용합니다. 현대 x86-64 및 ARM64 프로세서에서 일반적으로 SHA-256보다 빠릅니다.
이 도구는 Web Crypto API의 crypto.subtle.digest('SHA-384', ...)를 통해 브라우저 내부에서 SHA-384를 완전히 계산합니다. 출력은 sha384sum, openssl dgst -sha384, 또는 Python의 hashlib.sha384()가 만드는 것과 비트 단위로 동일합니다.
SHA-384 사용 시점: Suite B 준수가 필요한 TLS 암호 스위트, TLS 1.2 PRF를 위한 HMAC-SHA-384, HKDF-SHA-384 키 도출, 기밀 문서 지문, HMAC 래핑 없이 길이 확장 면역성이 필요한 모든 맥락.
// Hash text using Web Crypto API (SHA-384)
async function sha384(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest('SHA-384', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
await sha384('Hello, World!');
// → '5485cc9b3365b4305dfb4e8337e0a598a574f8242bf17289e0dd6c20a3cd44a089de16ab4ab308f63e44b1170eb5f515' SHA-384 예시
TLS 암호 스위트 핸드셰이크 지문
ECDHE-ECDSA-AES256-GCM-SHA384
암호 스위트 이름 ECDHE-ECDSA-AES256-GCM-SHA384는 최고 기밀 TLS 세션을 위한 표준 Suite B 암호 스위트입니다. SHA-384 접미사는 TLS 1.2 핸드셰이크에서 세션 키를 도출하는 PRF(의사 난수 함수)를 가리킵니다. 이 문자열을 붙여넣어 SHA-384 해시를 생성하면 환경 간에 SHA-384 구현이 일관된지 빠르게 확인할 수 있습니다. 실제 TLS 세션에서는 인증서 체인, 사전 마스터 비밀, 핸드셰이크 기록이 TLS 1.2 PRF의 일부로 HMAC-SHA-384를 통해 처리됩니다.
HKDF-SHA-384 키 도출 (TLS 1.2 PRF)
master secret || client random || server random
TLS 1.2의 PRF(RFC 5246에 정의)는 SHA-384로 협상된 암호 스위트에 HMAC-SHA-384를 사용합니다. 마스터 비밀은 사전 마스터 비밀에서 P_SHA384(pre_master_secret, 'master secret' || ClientHello.random || ServerHello.random)를 사용해 도출됩니다. HKDF-SHA-384(RFC 5869)는 이 패턴을 일반 키 도출로 확장하며 TLS 1.3 키 스케줄과 IKEv2(IPsec)에도 사용됩니다.
NSA Suite B 문서 지문
CLASSIFIED//TS//SI//NF — Document ID: TSC-2026-0001
NSA의 Suite B 암호 프로파일(2018년 CNSA Suite로 대체된 CNSSP-15)은 최고 기밀 문서 무결성에 SHA-384를 요구했습니다. 정보 커뮤니티 시스템은 변조를 감지하기 위해 SHA-384로 기밀 문서에 지문을 찍습니다. 결과 96자리 16진수 문자열은 AES-256-GCM 암호 페이로드와 함께 문서 매니페스트에 저장됩니다.
HMAC-SHA-384 메시지 인증
POST /api/v2/transfer
Content-Type: application/json
{"amount":10000,"to":"account-XYZ"} HMAC-SHA-384는 고보증 API에서 요청 본문을 인증하는 데 사용됩니다. SHA-384는 원시(HMAC 아닌) 형식에서도 길이 확장 공격에 면역이므로 분산 로깅 시스템이나 서명된 URL 방식처럼 원시 해시가 노출될 수 있는 시나리오에서 HMAC-SHA-256보다 추가적인 안전 마진을 제공합니다. 요청 본문을 붙여넣어 HMAC 키를 추가하기 전에 SHA-384 해시를 검사하십시오.
SHA-384 해시 생성 방법
- 1
텍스트 붙여넣기 또는 파일 끌어다 놓기
텍스트 탭을 선택하고 문서 ID, 요청 본문, 임의의 입력을 입력란에 붙여넣으십시오. SHA-384 해시가 입력과 동시에 갱신됩니다. 파일은 파일 탭으로 전환해 끌어다 놓으면 업로드 없이 Web Crypto API를 사용해 로컬에서 해싱됩니다. 큰 파일(>10 MB)은 진행 표시기가 나타납니다.
- 2
96자리 해시 복사
해시 출력 옆의 복사 버튼을 클릭하십시오. 96자리 소문자 16진수 문자열이 클립보드에 복사됩니다. TLS 설정, 규정 준수 보고서, HMAC 구현에 붙여넣을 준비가 됩니다. 대상 시스템이 대문자를 요구한다면 대문자 토글을 사용하십시오.
- 3
알려진 해시와 비교
비교 탭으로 전환해 두 SHA-384 해시를 나란히 붙여넣으십시오. 도구는 타이밍 정보를 누출하지 않는 상수 시간 비교로 일치 또는 불일치를 보고합니다. Suite B 준수 해시 검증, 구현 간 HKDF-SHA-384 도출 키 비교, 기밀 아카이브 감사에서 문서 지문 확인에 유용합니다.
기술 세부사항
- 알고리즘: 다른 IV와 384비트로 잘린 출력을 가진 SHA-512
- SHA-384는 구조적으로 SHA-512와 동일합니다(FIPS 180-4 섹션 6.5). 둘 다 처음 80개 소수의 세제곱근과 제곱근에서 도출된 상수와 함께 80라운드의 64비트 연산(Ch, Maj, Σ0, Σ1 함수)을 사용합니다. 초기화 벡터(여덟 개의 64비트 워드)는 SHA-512의 IV와 다릅니다. 처리 후 여덟 개의 워드 중 첫 여섯 개(384비트)가 출력되고 마지막 두 개는 버려집니다.
- 출력: 384비트, 96자리 16진수
- 항상 정확히 96자리 소문자 16진수(384비트 = 48바이트, 바이트당 2자리 16진수)입니다. 입력 크기와 관계없이 고정 길이입니다. 96자리 길이는 SHA-384를 SHA-256(64자리)과 SHA-512(128자리)에서 즉시 구별하는 특징입니다. 버려진 128비트가 SHA-384를 길이 확장 공격에 저항하게 만드는 요소입니다.
- 성능: 64비트 하드웨어에서 SHA-512와 동일
- SHA-384와 SHA-512는 64비트 CPU에서 동일한 명령어 시퀀스를 실행합니다. 둘 다 64비트 회전과 덧셈으로 처리된 1024비트(128바이트) 입력 블록을 사용합니다. Web Crypto API(JS VM 외부의 네이티브 C/Rust 코드 호출)를 사용하는 브라우저에서 일반적으로 500~900 MB/s, 하드웨어 SHA 확장이 있는 네이티브 도구에서 1~3 GB/s입니다.
- 표준: FIPS 180-4, NSA Suite B 레거시, 현재 CNSA
- FIPS 180-2(2001)에서 표준화되었고 현재 버전은 FIPS 180-4(2015)입니다. NSA Suite B(CNSSP-15, 2005)에서 최고 기밀에 요구되었으며 CNSA Suite(2015)에도 포함됩니다. TLS에서는 RFC 5246(TLS 1.2 PRF), RFC 8446(TLS 1.3 서명 알고리즘), RFC 5869(HKDF)에 지정되어 있습니다.
모범 사례
- HMAC 없이 길이 확장 면역성이 필요할 때 SHA-384 사용
- 프로토콜이 원시 해시 출력을 노출하고 공격자가 메시지를 확장하려 할 수 있다면(특정 서명된 URL이나 챌린지-응답 방식), SHA-384는 SHA-256이 제공하지 않는 고유한 길이 확장 면역성을 제공합니다. 다른 모든 키 사용에는 기본 해시에 관계없이 HMAC를 적용하십시오. HMAC-SHA-256과 HMAC-SHA-384는 모두 안전합니다.
- Suite B / CNSA 준수를 위해 AES-256-GCM과 쌍으로 사용
- NSA Suite B 또는 CNSA 요구사항을 준수하는 시스템을 구축한다면 표준 페어링은 대량 암호화에 AES-256-GCM, 무결성과 키 도출에 SHA-384입니다. TLS 1.2에서는 ECDHE-ECDSA-AES256-GCM-SHA384가 참조 암호 스위트입니다. TLS 1.3에서는 서명 알고리즘으로 ecdsa_secp384r1_sha384를 사용한 TLS_AES_256_GCM_SHA384가 이에 해당합니다.
- TLS 1.2 PRF 맥락에서 키 MAC에 HMAC-SHA-384 사용
- TLS 1.2의 PRF는 SHA-384가 협상된 암호 스위트에 HMAC-SHA-384를 사용합니다(RFC 5246 섹션 5). TLS 1.2 PRF를 구현하거나 테스트할 때: PRF(secret, label, seed) = P_SHA384(secret, label + seed). SHA-384 암호 스위트 맥락에서 HMAC-SHA-256으로 대체하지 마십시오. 암호 스위트 협상이 PRF 해시를 결정하며 불일치는 핸드셰이크 실패를 초래합니다.
- 코드에서 SHA-384 해시 검증 시 상수 시간 비교 사용
- 코드에서 두 SHA-384 해시를 비교할 때(문서 지문 검증, MAC 확인) 상수 시간 동등 검사를 사용하십시오: Node.js의
crypto.timingSafeEqual(), Python의hmac.compare_digest(), Go의subtle.ConstantTimeCompare(). 단순 문자열 동등 비교(=== 또는 ==)는 공격자가 예상 해시를 바이트 단위로 재구성할 수 있는 타이밍 정보를 누출합니다.
SHA-384 자주 묻는 질문
SHA-256 대신 SHA-384를 사용하는 이유는 무엇인가요?
SHA-384는 SHA-512만큼 안전한가요?
SHA-384는 SHA-512와 같은 속도인가요?
HMAC-SHA-256보다 HMAC-SHA-384가 중요한 경우는 언제인가요?
SHA-384를 범용 해싱에 사용해야 하나요?
NSA Suite B란 무엇이며 아직도 사용되나요?
SHA-384 해시의 길이는 얼마인가요?
입력 데이터가 서버로 전송되나요?
crypto.subtle.digest('SHA-384', data))를 사용해 브라우저 내부에서 완전히 계산됩니다. 해싱하는 동안 DevTools → 네트워크 탭을 열면 외부 요청이 전혀 없음을 확인할 수 있습니다. 파일 탭에서 끌어다 놓은 파일은 FileReader API로 읽혀 로컬에서 해싱됩니다. 기밀 문서 지문, TLS 개인 키 자료, 기타 민감한 입력 해싱에 안전하게 사용할 수 있습니다. 관련 도구
모든 도구 보기 →JWT 디코더 (JWT Decoder)
보안 도구
무료 JWT 디코더로 JWT 토큰을 온라인에서 즉시 디코딩. 헤더, 페이로드, 서명, 만료, 클레임 확인. 100% 브라우저 기반 — 토큰이 기기를 떠나지 않음. 가입·추적 없음.
MD5 해시 생성기 · 파일 체크섬 도구
보안 도구
MD5, SHA-256, SHA-1, SHA-512 해시를 온라인에서 무료로 생성합니다. 브라우저에서 텍스트나 파일을 해싱하고 체크섬을 검증하며 결과를 복사할 수 있습니다.
무작위 비밀번호 생성기 (Random Password Generator)
보안 도구
강력한 무작위 비밀번호를 즉시 만드는 무료 온라인 도구. 길이와 문자 종류를 지정해 최대 50개까지 일괄 생성하고 엔트로피 분석을 확인할 수 있습니다.
SHA-1 해시 생성기 (160비트 레거시)
보안 도구
SHA-1 해시를 브라우저에서 무료로 생성합니다. 40자리 16진수 출력, 업로드 없음. Git 지문 조회, 구형 인증서 검사, 마이그레이션 감사용 레거시 도구입니다.
SHA-256 해시 생성기 및 체크섬 도구
보안 도구
SHA-256 해시를 브라우저에서 생성·검증합니다. 64자리 16진수 출력, 파일·텍스트 지원. 가입 불필요, 데이터 미전송.
SHA-3 해시 생성기 (Keccak SHA3-256)
보안 도구
SHA-3(NIST FIPS 202 Keccak) 해시를 브라우저에서 생성합니다. 64자리 16진수 SHA3-256, js-sha3 지연 로딩. 미전송.