TLS 1.2 키 교환

ECDHE (X25519) · TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 · 2번 왕복 · 비교: TLS 1.3 키 교환

TLS 1.2와 1.3 비교

TLS 1.2TLS 1.3
왕복 수2번1번
키 교환RSA, 고정 DH도 허용ECDHE / DHE만 (항상 전방 비밀성 보장)
키 유도PRF (HMAC-SHA256 체인)HKDF (Extract + Expand)
인증서평문으로 보냄암호화해서 보냄
서버 서명 대상ServerKeyExchange의 키핸드셰이크 전체 (CertificateVerify)
ChangeCipherSpec필요없음 (호환용 빈 메시지만)
AES-GCM nonce고정 4바이트 + 보내는 8바이트IV 12바이트 ⊕ 레코드 번호

상수 · 표준이 정해 두어 누구나 같은 값

TLS 1.2RFC 5246 · RFC 5288

기호이름정의 · 출처값
암호 스위트TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256c02f
PRF 해시P_SHA256SHA-256
레이블PRF에 쓰는 이름"master secret", "key expansion", "client finished", "server finished"
master secret 길이항상 고정48바이트
key block 길이쓰기 키 2 × 16 + 고정 IV 2 × 440바이트
verify_data 길이Finished에 담는 값12바이트
GCM nonce 구성고정 IV 4바이트 ‖ 레코드마다 보내는 8바이트12바이트

Curve25519RFC 7748

기호이름정의 · 출처값
p소수 p (체의 크기)2²⁵⁵ − 197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
A곡선 계수 Av² = u³ + Au² + u486662
a24래더 상수 a24(A − 2) / 4121665
u(G)기준점 G의 u 좌표가장 작은 적합한 u9
ℓ위수 ℓ (부분군)2²⁵² + 277423177773723535358519377908836484931000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
h보조인자 h (cofactor)곡선 위 점의 개수 = 8ℓ8

AES-256-GCMFIPS 197 · NIST SP 800-38D

기호이름정의 · 출처값
블록 크기AES의 입출력 단위128비트 (16바이트)
키 길이AES-256256비트 (32바이트)
Nr라운드 수AES-256 (AES-128은 10)14
IV(nonce) 길이권장값 · 이때 J₀ = IV ‖ 0³¹196비트 (12바이트)
카운터 시작값J₀의 마지막 32비트00000001
RGHASH 축약 상수x¹²⁸ + x⁷ + x² + x + 1 → 11100001 ‖ 0¹²⁰e1000000000000000000000000000000
t태그 길이최대값 (이 페이지에서 쓰는 값)128비트 (16바이트)