~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ D6F74FAE55287F92C45EC0B368EC1C99__1718887440 ✰
Заголовок документа оригинал.:
✰ Key derivation function - Wikipedia ✰
Заголовок документа перевод.:
✰ Функция получения ключей — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Key_derivation_function ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/d6/99/d6f74fae55287f92c45ec0b368ec1c99.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/d6/99/d6f74fae55287f92c45ec0b368ec1c99__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 10:39:21 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 20 June 2024, at 15:44 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Функция получения ключей — Википедия Jump to content

Функция вывода ключей

Из Википедии, бесплатной энциклопедии

Пример цепочки функций вывода ключей. Выходные данные одной функции KDF являются входными данными для следующей функции KDF в цепочке.

В криптографии функция деривации ключей ( KDF ) — это криптографический алгоритм, который извлекает один или несколько секретных ключей из секретного значения, такого как главный ключ, пароль или парольная фраза, с использованием псевдослучайной функции (которая обычно использует криптографическую хэш-функцию или блочный шифр ). [1] [2] [3] KDF можно использовать для расширения ключей до более длинных ключей или для получения ключей требуемого формата, например, для преобразования элемента группы, который является результатом обмена ключами Диффи-Хеллмана, в симметричный ключ для использования с AES . Криптографические хеш-функции с ключом являются популярными примерами псевдослучайных функций, используемых для получения ключей. [4]

История [ править ]

Первый [ нужна цитата ] Намеренно медленная (растягивание ключа) функция получения ключей на основе пароля называлась « crypt » (или «crypt(3)» по названию ее man-страницы ) и была изобретена Робертом Моррисом в 1978 году. Она шифровала константу (ноль) с помощью первые 8 символов пароля пользователя в качестве ключа, выполнив 25 итераций модифицированного алгоритма шифрования DES (в котором 12-битное число, считываемое с часов компьютера реального времени, используется для искажения вычислений). Полученное 64-битное число кодируется как 11 печатных символов и затем сохраняется в файле паролей Unix . [5] Хотя в то время это было большим достижением, увеличение скорости процессора со времени эпохи PDP-11 сделало возможными атаки грубой силы на крипту, а достижения в области хранения сделали 12-битную соль неадекватной. Конструкция функции шифрования также ограничивает пароль пользователя 8 символами, что ограничивает пространство ключей и делает невозможным использование надежных парольных фраз . [ нужна цитата ]

Хотя высокая пропускная способность является желательным свойством для хеш-функций общего назначения, в приложениях защиты паролей верно обратное, в которых защита от взлома методом перебора является первоочередной задачей. Растущее использование аппаратного обеспечения с массовым параллелизмом, такого как графические процессоры, FPGA и даже ASIC, для грубого взлома сделало выбор подходящих алгоритмов еще более важным, поскольку хороший алгоритм должен не только требовать определенного объема вычислительных затрат не только на ЦП, но также противостоят преимуществам стоимости и производительности современных массово-параллельных платформ для таких задач. Специально для этой цели были разработаны различные алгоритмы, в том числе bcrypt , scrypt и, с недавних пор, Lyra2 и Argon2 (последний стал победителем конкурса хеширования паролей ). Крупномасштабная утечка данных Эшли Мэдисон, в результате которой злоумышленники украли около 36 миллионов хэшей паролей, продемонстрировала важность выбора алгоритма для защиты паролей. Хотя bcrypt использовался для защиты хэшей (что делало крупномасштабный грубый взлом дорогостоящим и трудоемким), значительная часть учетных записей в скомпрометированных данных также содержала хеш паролей, основанный на быстром универсальном алгоритме. Алгоритм MD5 , который позволил взломать более 11 миллионов паролей за считанные недели. [6]

В июне 2017 года Национальный институт стандартов и технологий США (NIST) выпустил новую редакцию своих рекомендаций по цифровой аутентификации — NIST SP 800-63B-3. [7] : 5.1.1.2  заявляя, что: «Верификаторы ДОЛЖНЫ хранить запомненные секреты [т.е. пароли] в форме, устойчивой к автономным атакам. Запомненные секреты ДОЛЖНЫ быть обработаны солью и хешированы с использованием подходящей односторонней функции получения ключей. Функции получения ключей принимают пароль, соль, и фактор стоимости, поскольку входные данные затем генерируют хэш пароля. Их цель состоит в том, чтобы сделать каждую попытку подбора пароля злоумышленником, получившим хеш-файл пароля, дорогостоящей и, следовательно, стоимость атаки по подбору пароля будет высокой или непомерно высокой».

Современные функции получения ключей на основе пароля, такие как PBKDF2 (указанные в RFC 2898), основаны на распознанном криптографическом хэше, таком как SHA-2 , используют больше соли (не менее 64 бит и выбираются случайным образом) и большое количество итераций. NIST рекомендует минимальное количество итераций 10 000. [7] : 5.1.1.2  «Для особенно важных ключей или для очень мощных систем или систем, где производительность, воспринимаемая пользователем, не имеет решающего значения, может быть подходящим количество итераций в 10 000 000». [8] : 5.2 

Вывод ключа [ править ]

Первоначальное использование KDF — это получение ключей, генерация ключей из секретных паролей или парольных фраз. Вариации на эту тему включают:

  • В сочетании с несекретными параметрами для получения одного или нескольких ключей из общего секретного значения (что иногда также называют « диверсификацией ключей »). Такое использование может помешать злоумышленнику, получившему производный ключ, узнать полезную информацию либо о входном секретном значении, либо о любом другом производном ключе. KDF также может использоваться для обеспечения того, чтобы производные ключи имели другие желательные свойства, например, чтобы избежать «слабых ключей» в некоторых конкретных системах шифрования.
  • В качестве компонентов многосторонних протоколов согласования ключей . Примеры таких функций получения ключей включают KDF1, определенный в стандарте IEEE Std 1363-2000 , и аналогичные функции в ANSI X9.42.
  • Для получения ключей из секретных паролей или парольных фраз ( KDF на основе паролей ).
  • Для получения ключей разной длины из предоставленных. KDF, предназначенные для этой цели, включают HKDF и SSKDF. Они принимают битовую строку «info» в качестве дополнительного необязательного параметра «info», который может иметь решающее значение для привязки полученного материала ключа к информации, специфичной для приложения и контекста. [9]
  • Растяжка и усиление клавиш.

Растяжка и усиление клавиш [ править ]

Функции получения ключей также используются в приложениях для получения ключей из секретных паролей или парольных фраз, которые обычно не имеют желаемых свойств для непосредственного использования в качестве криптографических ключей. В таких приложениях обычно рекомендуется делать функцию получения ключа намеренно медленной, чтобы предотвратить атаку методом перебора или атаку по словарю на входное значение пароля или парольной фразы.

Такое использование может быть выражено как DK = KDF(ключ, соль, итерации) , где DK — производный ключ, KDF получения ключа — функция , ключ — исходный ключ или пароль, соль — случайное число, которое действует как криптографическая соль . а итерации относятся к количеству итераций подфункции. Производный ключ используется вместо исходного ключа или пароля в качестве ключа к системе. Значения соли и количество итераций (если оно не фиксировано) сохраняются с хешированным паролем или отправляются в виде открытого текста (незашифрованного) с зашифрованным сообщением. [10]

Сложность атаки методом перебора увеличивается с увеличением количества итераций. Практическим ограничением количества итераций является нежелание пользователей терпеть ощутимую задержку при входе в компьютер или просмотре расшифрованного сообщения. Использование соли не позволяет злоумышленникам предварительно вычислить словарь производных ключей. [10]

Альтернативный подход, называемый усилением ключа , расширяет ключ случайной солью, но затем (в отличие от растяжения ключа) надежно удаляет соль. [11] Это вынуждает как злоумышленника, так и законных пользователей выполнять поиск значения соли методом перебора. [12] Хотя статья, в которой было представлено растяжение клавиш [13] Ссылаясь на эту более раннюю технику и намеренно выбрав другое название, термин «укрепление клавиш» теперь часто (возможно, неправильно) используется для обозначения растяжения клавиш.

Хеширование пароля [ править ]

Несмотря на свое первоначальное использование для получения ключей, KDF, возможно, более известны благодаря их использованию в хешировании паролей ( проверка пароля путем сравнения хешей ), как это используется в файле passwd или файле теневого пароля . Хэш-функции паролей должны быть относительно дорогими для расчета в случае атак методом перебора, и растяжение ключей KDF обеспечивает эту характеристику. [ нужна цитата ] Несекретные параметры называются « солью в этом контексте ».

В 2013 году был объявлен конкурс по хешированию паролей, в ходе которого будет выбран новый стандартный алгоритм хеширования паролей. 20 июля 2015 года конкурс завершился, и Argon2 окончательным победителем был объявлен . Особое признание получили еще четыре алгоритма: Catena, Lyra2, Makwa и Yescrypt. [14]

По состоянию на май 2023 года OWASP рекомендует следующие KDF для хеширования паролей, перечисленные в порядке приоритета: [15]

  1. Аргон2ид
  2. зашифровать , если Argon2id недоступен
  3. bcrypt для устаревших систем
  4. PBKDF2, если требуется соответствие FIPS-140.

Ссылки [ править ]

  1. ^ Беззи, Мишель; и другие. (2011). "Конфиденциальность данных" . В Каменише, Ян; и другие. (ред.). Управление конфиденциальностью и идентификацией на всю жизнь . Спрингер. стр. 185–186. ISBN  9783642203176 .
  2. ^ Калиски, Берт; Лаборатории РСА . «RFC 2898 – PKCS #5: Спецификация шифрования на основе пароля, версия 2.0» . IETF .
  3. ^ Чен, Лили (октябрь 2009 г.). «NIST SP 800-108: Рекомендации по получению ключей с использованием псевдослучайных функций» . НИСТ.
  4. ^ Здзиарски, Джонатан (2012). Взлом и защита приложений iOS: кража данных, взлом программного обеспечения и как это предотвратить . О'Рейли Медиа. стр. 252–253. ISBN  9781449318741 .
  5. ^ Моррис, Роберт; Томпсон, Кен (3 апреля 1978 г.). «Безопасность паролем: история болезни» . Лаборатории Белла . Архивировано из оригинала 22 марта 2003 года . Проверено 9 мая 2011 г.
  6. ^ Гудин, Дэн (10 сентября 2015 г.). «Когда-то считавшийся пуленепробиваемым, более 11 миллионов паролей Эшли Мэдисон уже взломаны» . Арс Техника . Проверено 10 сентября 2015 г.
  7. ^ Перейти обратно: а б Грасси Пол А. (июнь 2017 г.). SP 800-63B-3 – Рекомендации по цифровой идентификации, аутентификации и управлению жизненным циклом . НИСТ. doi : 10.6028/NIST.SP.800-63b .
  8. ^ Мельтем Сёнмез Туран, Элейн Баркер, Уильям Берр и Лили Чен (декабрь 2010 г.). SP 800-132 – Рекомендации по получению ключей на основе пароля, Часть 1: Приложения хранения (PDF) . НИСТ. дои : 10.6028/NIST.SP.800-132 . S2CID   56801929 . {{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  9. ^ Кравчик, Хьюго; Эронен, Паси (май 2010 г.). «Ввод информации в HKDF» . datatracker.ietf.org . RFC 5869 (2010 г.)
  10. ^ Перейти обратно: а б «Хеширование соленых паролей – делаем все правильно» . CrackStation.net . Проверено 29 января 2015 г.
  11. ^ Абади, Мартин, Т. Марк А. Ломас и Роджер Нидхэм. «Усиление паролей». Центр исследования цифровых систем, Техн. Реп 33 (1997): 1997.
  12. ^ У. Манбер, «Простая схема создания паролей, основанных на односторонних функциях, которую гораздо труднее взломать», Computers & Security, v.15, n.2, 1996, стр. 171–176.
  13. ^ Безопасное применение ключей с низкой энтропией , Дж. Келси , Б. Шнайер , К. Холл и Д. Вагнер (1997)
  14. ^ "Соревнование по хешированию паролей"
  15. ^ «Шпаргалка по хранению паролей» . Серия шпаргалок OWASP . ОВАСП . Проверено 17 мая 2023 г.

Дальнейшее чтение [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: D6F74FAE55287F92C45EC0B368EC1C99__1718887440
URL1:https://en.wikipedia.org/wiki/Key_derivation_function
Заголовок, (Title) документа по адресу, URL1:
Key derivation function - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)