CoderTools

Dẫn xuất khóa HKDF

RFC 5869 Dẫn xuất khóa Extract-and-Expand dựa trên HMAC

🔒 100% Xử lý cục bộDữ liệu bạn nhập được xử lý hoàn toàn trong trình duyệt. Không có dữ liệu nào được tải lên máy chủ.
Định dạng đầu ra

Tài liệu HKDF

HKDF (Hàm dẫn xuất khóa Extract-and-Expand dựa trên HMAC) được định nghĩa trong RFC 5869. Nó cung cấp phương pháp mạnh mẽ để dẫn xuất khóa mã hóa từ vật liệu khóa đầu vào sử dụng quy trình hai giai đoạn: Trích xuất và Mở rộng.

HKDF được áp dụng rộng rãi trong các giao thức bảo mật hiện đại bao gồm TLS 1.3, Signal Protocol, Noise Protocol Framework và SSH. Sự phân tách rõ ràng giữa các giai đoạn trích xuất và mở rộng làm cho nó đặc biệt phù hợp cho việc dẫn xuất phân cấp khóa.

Giai đoạn Trích xuất: HKDF-Extract(salt, IKM) → PRK

Giai đoạn trích xuất tập trung entropy có thể phân tán từ Vật liệu khóa đầu vào (IKM) thành Khóa giả ngẫu nhiên (PRK) có độ dài cố định:

  • Nhận muối (tùy chọn, mặc định HashLen số không) và IKM làm đầu vào
  • Tính PRK = HMAC-Hash(salt, IKM)
  • Độ dài PRK bằng độ dài đầu ra của hash (32 byte cho SHA-256)
  • Muối hoạt động như khóa cho HMAC, tăng cường quá trình trích xuất

Giai đoạn Mở rộng: HKDF-Expand(PRK, info, L) → OKM

Giai đoạn mở rộng kéo dài PRK thành Vật liệu khóa đầu ra (OKM) với độ dài mong muốn:

  • Nhận PRK, info (ngữ cảnh/nhãn) và độ dài đầu ra mong muốn L
  • Tính lặp T(i) = HMAC-Hash(PRK, T(i-1) | info | counter)
  • Nối kết quả: OKM = T(1) | T(2) | ... | T(N)
  • Độ dài đầu ra tối đa là 255 × HashLen byte

Các trường hợp sử dụng phổ biến

  • Lịch trình khóa TLS 1.3: dẫn xuất traffic secrets, handshake keys và application keys
  • Signal Protocol: dẫn xuất chain keys và message keys từ shared secrets
  • Trao đổi khóa SSH: dẫn xuất khóa mã hóa và toàn vẹn sau ECDH
  • Phân cấp khóa: dẫn xuất nhiều khóa mục đích cụ thể từ master secret

HKDF vs PBKDF2

Tính năng HKDF PBKDF2
Tiêu chuẩn RFC 5869 RFC 8018
Loại đầu vào Bí mật chia sẻ, đầu ra DH Mật khẩu người dùng
Số lần lặp Một lần chạy Nhiều (10K-1M)
Tốc độ Nhanh Cố ý chậm
Tham số Info Có (ràng buộc ngữ cảnh) Không
Trường hợp sử dụng chính Đầu vào entropy cao Mật khẩu entropy thấp

Lưu ý bảo mật

  • HKDF giả định IKM đã chứa đủ entropy; không sử dụng với mật khẩu yếu
  • Tham số info nên xác định duy nhất mục đích sử dụng của khóa (phân tách ngữ cảnh)
  • Muối là tùy chọn nhưng được khuyến nghị khi trích xuất nhiều khóa từ cùng một IKM
  • PRK không bao giờ nên được sử dụng trực tiếp; luôn sử dụng giai đoạn mở rộng để dẫn xuất khóa cuối cùng

Tài liệu tham khảo kỹ thuật

Công Cụ Liên Quan

Menu Nhanh

Chưa có công cụ gần đây