RFC5869 · Функция вывода ключей на основе HMAC с извлечением и расширением (HKDF)
HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
RFC 5869 определяет HKDF — простую функцию вывода ключей на основе HMAC, пригодную как строительный блок протоколов и приложений. Конструкция состоит из этапов Extract, концентрирующего энтропию входного ключевого материала в псевдослучайном ключе PRK, и Expand, формирующего выходной ключевой материал нужной длины. Документ описывает параметры алгоритма, его ограничения, рекомендации по использованию salt и поля info, а также тестовые векторы для SHA-256 и SHA-1. RFC опубликован в информационных целях и не относится к Internet Standards Track.
IETF · RFC
Назначение
Документирует универсальную конструкцию HKDF, чтобы облегчить её применение в будущих протоколах и приложениях и сдерживать распространение множества различных механизмов KDF.
Применение
HKDF применяют для получения криптографических ключей из исходного ключевого материала, в том числе значений Diffie–Hellman и источников энтропии. Для значений Diffie–Hellman этап Extract НЕ СЛЕДУЕТ (SHOULD NOT) пропускать; HKDF следует применить этот этап к g^{xy}, предпочтительно со значением salt, и использовать полученный PRK как ключ HMAC на этапе Expand. Если приложение может получить salt, разработчикам рекомендуется предоставлять его HKDF; salt должен быть независим от IKM и не выбираться либо не изменяться атакующим. Поле info можно использовать для привязки результата к контексту и приложению; оно должно быть независимо от IKM. Приложениям, которым нужна парольная KDF, следует оценить, не удовлетворяет ли, например, [PKCS5] их потребности лучше, чем HKDF, поскольку HKDF не включает механизм намеренного замедления вычислений.
RFC 5869, май 2010 года, имеет статус Informational: это консенсусный документ IETF, но не спецификация Internet Standards Track. Он не предназначен для изменения существующих протоколов и не обновляет действующие спецификации, использующие HKDF. Нормативные ключевые слова определены со ссылкой на BCP 14 / RFC 2119; раздел 3 содержит руководящие принципы использования HKDF.
Официальная английская аннотация
This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.
{
"id": "RFC5869",
"number": 5869,
"title_en": "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)",
"title_ru": "Функция вывода ключей на основе HMAC с извлечением и расширением (HKDF)",
"summary_ru": "RFC 5869 определяет HKDF — простую функцию вывода ключей на основе HMAC, пригодную как строительный блок протоколов и приложений. Конструкция состоит из этапов Extract, концентрирующего энтропию входного ключевого материала в псевдослучайном ключе PRK, и Expand, формирующего выходной ключевой материал нужной длины. Документ описывает параметры алгоритма, его ограничения, рекомендации по использованию salt и поля info, а также тестовые векторы для SHA-256 и SHA-1. RFC опубликован в информационных целях и не относится к Internet Standards Track.",
"purpose_ru": "Документирует универсальную конструкцию HKDF, чтобы облегчить её применение в будущих протоколах и приложениях и сдерживать распространение множества различных механизмов KDF.",
"use_ru": "HKDF применяют для получения криптографических ключей из исходного ключевого материала, в том числе значений Diffie–Hellman и источников энтропии. Для значений Diffie–Hellman этап Extract НЕ СЛЕДУЕТ (SHOULD NOT) пропускать; HKDF следует применить этот этап к g^{xy}, предпочтительно со значением salt, и использовать полученный PRK как ключ HMAC на этапе Expand. Если приложение может получить salt, разработчикам рекомендуется предоставлять его HKDF; salt должен быть независим от IKM и не выбираться либо не изменяться атакующим. Поле info можно использовать для привязки результата к контексту и приложению; оно должно быть независимо от IKM. Приложениям, которым нужна парольная KDF, следует оценить, не удовлетворяет ли, например, [PKCS5] их потребности лучше, чем HKDF, поскольку HKDF не включает механизм намеренного замедления вычислений.",
"full_translation_path": "translations/rfc5869.html",
"full_translation_checked_at": "2026-10-12",
"full_translation_source_sha256": "7a40eb3835b35fc947eb12a2ed614db079d43b26e50dbc537c31fba16397089c",
"architect_note_ru": "RFC 5869, май 2010 года, имеет статус Informational: это консенсусный документ IETF, но не спецификация Internet Standards Track. Он не предназначен для изменения существующих протоколов и не обновляет действующие спецификации, использующие HKDF. Нормативные ключевые слова определены со ссылкой на BCP 14 / RFC 2119; раздел 3 содержит руководящие принципы использования HKDF.",
"topics_ru": [],
"translation_state": "reviewed",
"verification_level": "primary_source_reviewed",
"verification_level_ru": "Полный текст и выжимка независимо проверены",
"verification_note_ru": "Полный текст и карточка независимо проверены по сохранённому первоисточнику.",
"abstract_en": "This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.",
"authors": [
"H. Krawczyk",
"P. Eronen"
],
"organizations": [],
"publication_date": "2010-05-01",
"current_status": "INFORMATIONAL",
"current_status_ru": "Информационный",
"publication_status": "INFORMATIONAL",
"publication_status_ru": "Информационный",
"lifecycle": "informational",
"lifecycle_ru": "Справочный",
"stream": "IETF",
"stream_ru": "IETF",
"area": "",
"area_ru": "",
"working_group": "NON WORKING GROUP",
"source_draft": "draft-krawczyk-hkdf-01",
"page_count": 14,
"doi": "10.17487/RFC5869",
"keywords": [],
"formats": [
"TXT",
"HTML"
],
"relations": {
"obsoletes": [],
"obsoleted_by": [],
"updates": [],
"updated_by": [],
"is_also": [],
"see_also": []
},
"links": {
"info": "https://www.rfc-editor.org/info/rfc5869/",
"html": "https://www.rfc-editor.org/rfc/rfc5869.html",
"txt": "https://www.rfc-editor.org/rfc/rfc5869.txt",
"datatracker": "https://datatracker.ietf.org/doc/rfc5869/"
},
"full_translation_format": "rfc-text",
"full_translation_html_sha256": "f2e876171926789e634a26cb75958b68772e97564165cf95f041d1e2ef24fc57",
"full_translation_card_sha256": "c524c5a729fd5644064949dacfd3015fb2d239a194da80abc004da0e03a0cf0f",
"full_translation_assets": []
}