⌕ Поиск по атласу

IETF · RFC · RFC5869

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.

Назначение

Документирует универсальную конструкцию 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.

Связи документа

Читать полный русский перевод →

Официальный источник · 2010-05-01

Полные импортированные сведения карточки
{
  "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": []
}