Jump to content

СипХэш

SipHash — это на основе add-rotate-xor (ARX), семейство псевдослучайных функций созданное Жаном-Филиппом Омассоном и Дэниелом Дж. Бернштейном в 2012 году. [1] : 165  [2] в ответ на волну атак типа «хеш-флуд» типа «отказ в обслуживании» (HashDoS) в конце 2011 года. [3]

SipHash спроектирован как некриптографическая хеш-функция . Хотя его можно использовать для обеспечения безопасности, SipHash фундаментально отличается от криптографических хэш-функций , таких как алгоритмы безопасного хеширования (SHA), тем, что он подходит только в качестве кода аутентификации сообщения : хэш-функции с ключом , такой как хэш-код аутентификации сообщения ( HMAC ). То есть SHA спроектирован таким образом, что злоумышленнику сложно найти два сообщения X и Y , такие что SHA( X ) = SHA( Y ), даже если кто угодно может вычислить SHA( X ). Вместо этого SipHash гарантирует, что, увидев X i и SipHash( X i , k ), злоумышленник, не знающий ключа k, не сможет найти (любую информацию о) k или SipHash( Y , k ) для любого сообщения Y ∉ { X i } чего они раньше не видели.

Обзор [ править ]

SipHash вычисляет 64-битный код аутентификации сообщения на основе сообщения переменной длины и 128-битного секретного ключа. Он был разработан, чтобы быть эффективным даже для коротких входных данных, с производительностью, сравнимой с некриптографическими хеш-функциями, такими как CityHash . [4] : 496  [2] это можно использовать для предотвращения атак типа «отказ в обслуживании» на хеш-таблицы («хеш-флуд»), [5] или для аутентификации сетевых пакетов . Позже был добавлен вариант, который дает 128-битный результат. [6]

Хеш-функция без ключа, такая как SHA, устойчива к коллизиям только в том случае, если используется весь вывод. Если он используется для генерации небольшого результата, например индекса в хэш-таблице практического размера, то ни один алгоритм не может предотвратить коллизии; злоумышленнику нужно сделать столько попыток, сколько возможно.

Например, предположим, что сетевой сервер спроектирован так, чтобы иметь возможность одновременно обрабатывать до миллиона запросов. Он отслеживает входящие запросы в хеш-таблице с двумя миллионами записей, используя хеш-функцию для сопоставления идентификационной информации каждого запроса с одной из двух миллионов возможных записей таблицы. Злоумышленнику, знающему хеш-функцию, достаточно ввести в нее произвольные входные данные; один из двух миллионов будет иметь определенное значение хеш-функции. Если злоумышленник теперь отправит на сервер несколько сотен запросов, выбранных с одинаковым значением хеш-функции, это приведет к большому количеству коллизий хеш-функций, замедляя (или, возможно, останавливая) сервер с эффектом, подобным лавинной лавине пакетов из многих миллионов. запросы. [7]

Используя ключ, неизвестный злоумышленнику, хеш-функция с ключом, такая как SipHash, предотвращает атаки такого рода. Хотя можно добавить ключ к неключевой хэш-функции ( HMAC — популярный метод), SipHash гораздо более эффективен.

Функции в семействе SipHash обозначаются как SipHash -c - d , где c — количество раундов на блок сообщения, а d — количество раундов финализации. Рекомендуемые параметры: SipHash-2-4 для лучшей производительности и SipHash-4-8 для консервативной безопасности. В нескольких языках используется Siphash-1-3 для обеспечения производительности с риском пока неизвестных DoS-атак. [8]

Эталонная реализация была выпущена как общедоступное программное обеспечение под лицензией CC0 . [6]

Использование [ править ]

SipHash используется в хэш-таблиц реализациях различного программного обеспечения: [9]

Следующие программы используют SipHash другими способами:

Реализации

См. также [ править ]

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

  1. ^ Добрауниг, Кристоф; Мендель, Флориан; Шлеффер, Мартин (29 ноября 2014 г.). «Дифференциальный криптоанализ SipHash». Избранные области криптографии -- SAC 2014 . Конспекты лекций по информатике. Том. 8781. стр. 165–182. дои : 10.1007/978-3-319-13051-4_10 . ISBN  978-3-319-13050-7 . Проверено 28 февраля 2018 г.
  2. Перейти обратно: Перейти обратно: а б Жан-Филипп Омассон и Дэниел Дж. Бернштейн (18 сентября 2012 г.). «SipHash: быстрый PRF с коротким вводом» . Архив электронной печати по криптологии .
  3. ^ Леннон, Майк (28 декабря 2011 г.). «Уязвимость хэш-таблицы делает возможным широкомасштабные DDoS-атаки» . Неделя Безопасности .
  4. ^ Итак, Вон; Нарайанан, Ашок; Оран, Дэвид; Стапп, Марк (2013). «Именованная сеть передачи данных на маршрутизаторе». Материалы конференции ACM SIGCOMM 2013 по SIGCOMM . стр. 495–496. дои : 10.1145/2486001.2491699 . ISBN  9781450320566 . S2CID   1457918 . Проверено 28 февраля 2018 г. Недавно предложенный SipHash [1] предлагает хороший баланс, поскольку он обеспечивает устойчивость к коллизиям и производительность, сравнимую с некриптохешами.
  5. ^ Омассон, Жан-Филипп; Бернштейн, Дэниел Дж .; Босслет, Мартин (8 ноября 2012 г.). Перезагрузка DoS-затопления хэшем: атаки и защита (PDF) . Форум по безопасности приложений – Западная Швейцария, 2012 г. Архивировано из оригинала (PDF) 13 сентября 2013 г.
  6. Перейти обратно: Перейти обратно: а б «SipHash: быстрый PRF с коротким вводом» . 01.08.2016. Архивировано из оригинала 02 февраля 2017 г. Проверено 21 января 2017 г. Интеллектуальная собственность: нам неизвестны какие-либо патенты или патентные заявки, относящиеся к SipHash, и мы не планируем подавать на них заявки. Справочный код SipHash выпущен под лицензией CC0, лицензией, аналогичной общедоступной.
  7. ^ Кросби, Скотт А.; Уоллах, Дэн С. (6 августа 2003 г.). Отказ в обслуживании посредством атак, усложняющих алгоритм . Симпозиум по безопасности Usenix . Вашингтон, округ Колумбия
  8. ^ Омассон, Жан-Филипп (veorq) (12 ноября 2015 г.). «Комментарий: измените Siphash, чтобы использовать один из более быстрых вариантов алгоритма (Siphash13, Highwayhash) · Проблема № 29754 · ржавчина-lang/rust» . Гитхаб . Проверено 28 февраля 2024 г. Дизайнер SipHash здесь, не изменил своего мнения о SipHash-1-3 :-) [...] Есть «отличитель» на 4 раундах [...] или, проще говоря, статистическая погрешность, которая проявляется при конкретный шаблон различия во входной последовательности из 4 раундов. Но вы не можете внедрить этот шаблон в SipHash-1-3, потому что вы не контролируете все состояние. И даже если бы вы могли внедрить этот шаблон, предвзятостью все равно нельзя было бы воспользоваться.
  9. ^ Омассон, Жан-Филипп; Бернштейн, Дэниел Дж. (01 августа 2016 г.). «SipHash: быстрый PRF с коротким вводом, пользователи» . Архивировано из оригинала 02 февраля 2017 г. Проверено 21 января 2017 г.
  10. ^ Вагг, Род (28 февраля 2019 г.). «сборка: включить SipHash v8 для создания начального значения хеша» . Нод.js. ​Получено 21 октября 2021 г. - через GitHub .
  11. ^ Го, Ян (9 января 2019 г.). «При желании используйте полусифаш для целочисленного хеширования» . В8 . Проверено 21 октября 2021 г.
  12. ^ «Библиотека OCaml: Hashtbl» . Проверено 17 февраля 2024 г.
  13. ^ «Безопасность Perl – атаки, усложняющие алгоритм» . Perldoc-браузер . 16 мая 2016 г. Проверено 21 октября 2021 г.
  14. ^ Хаймс, Кристиан (27 сентября 2013 г.). «PEP 456 — Безопасный и взаимозаменяемый алгоритм хеширования» . Проверено 21 января 2017 г.
  15. ^ «Переход на SipHash-1-3 #73596» .
  16. ^ Маквей, Саманта (16 июля 2018 г.). «Реализовать SipHash, использовать в качестве нашей функции хеширования с 64-битными хеш-значениями» . МоарВМ . Получено 16 июля 2018 г. - через GitHub .
  17. ^ https://bugs.ruby-lang.org/issues/13017
  18. ^ МакАртур, Шон (30 июня 2016 г.). «std: используйте siphash-1-3 для HashMap» . Ржавчина . Получено 21 января 2017 г. - через GitHub .
  19. ^ Пёттеринг, Леннарт (22 декабря 2013 г.). «shared: переключить нашу реализацию хэш-таблицы на SipHash» . системад . Получено 21 января 2017 г. - через freedesktop.org .
  20. ^ https://github.com/openbsd/src/blob/master/sys/crypto/siphash.h
  21. ^ https://svnweb.freebsd.org/base/head/sys/crypto/siphash/
  22. ^ https://github.com/WireGuard/wg-dynamic/commit/360b9c8c8b4c4364b755dc0935f05e4ba4429cb0
  23. ^ «Компактное блочное реле» . Гитхаб . Проверено 27 сентября 2018 г.
  24. ^ bslh_siphashalgorithm.h
  25. ^ https://github.com/ipfs/bbloom/blob/73e3f896a4f8bbed8589df6ff5c28ebfbd728e31/sipHash.go#L15

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b84c54f73b7ecc4d530145e21cd6b255__1716460560
URL1:https://arc.ask3.ru/arc/aa/b8/55/b84c54f73b7ecc4d530145e21cd6b255.html
Заголовок, (Title) документа по адресу, URL1:
SipHash - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)