Содержание

Онлайн генератор HMAC — iCoder.Uz

Инструмент будет генерировать хэш-код аутентификации сообщения (hmac) строки сообщения, используя ключ для AES, HMAC-MD5, HMAC-RIPEMD160, HMAC-SHA1, HMAC-SHA3, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384 , HMAC-SHA512, MD5, PBKDF2, Rabbit-Legacy, rabbit, rc4, RIPEMD160, SHA1, SHA3, SHA224, SHA256, SHA384, SHA512, Tripledes.

Алгоритмы AESHMAC-MD5HMAC-RIPEMD160HMAC-SHA1HMAC-SHA3HMAC-SHA224HMAC-SHA256HMAC-SHA384HMAC-SHA512MD5PBKDF2Rabbit-Legacyrabbitrc4RIPEMD160SHA1SHA3SHA224SHA256SHA384SHA512Tripledes

Инструменты для украшения и уменьшения

Украшатель CSS
Украшает, форматирует и сделает CSS код более читаемым.

Уменьшитель CSS
Сделает CSS код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель HTML
Украшает, форматирует и сделает HTML код более читаемым.

Уменьшитель HTML
Сделает HTML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель Javascript
Украшает, форматирует и сделает Javascript код более читаемым.

Уменьшитель Javascript
Сделает Javascript код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Обфускатор Javascript
Сделает Javascript код более сложным для понимания или чтения для защиты.

Украшатель JSON
Украшает, форматирует и сделает JSON код более читаемым.

Уменьшитель JSON
Сделает JSON код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель XML
Украшает, форматирует и сделает XML код более читаемым.

Уменьшитель XML
Сделает XML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель OPML
Украшает, форматирует и сделает OPML код более читаемым.

Уменьшитель OPML
Сделает OPML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель SQL
Украшает, форматирует и сделает SQL код более читаемым.

Уменьшитель SQL
Сделает SQL код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Конвертеры

Конвертер CSV в JSON
Конвертирует CSV данные в JSON и украшает.

Конвертер CSV в TSV
Конвертирует CSV данные в TSV и украшает.

Конвертер CSV в Excel
Конвертирует CSV данные в Excel и украшает.

Конвертер CSV в HTML
Конвертирует CSV данные в HTML, просматривая его ниже.

Конвертер CSV в SQL
Конвертирует CSV в SQL формат и украшает.

Конвертер CSV в Многострочные данные
Конвертирует CSV в многострочные данные и делает его более читаемым.

Конвертер CSV в Текст
Конвертирует CSV в обычный текст и делает его более читаемым.

Конвертер CSV в XML/JSON
Конвертирует CSV в XML и JSON онлайн.

Конвертер CSV в XML
Конвертирует CSV в XML и украшает.

Конвертер CSV в YAML
Конвертирует CSV в YAML и украшает.

Извлечь столбец CSV
Извлекает один столбец из CSV.

Конвертер Excel в CSV
Конвертирует Excel в CSV и украшает.

Конвертер Excel в TSV
Конвертирует Excel в TSV и украшает.

Конвертер Excel в HTML
Конвертирует Excel в HTML и украшает.

Excel в формульный вид
Конвертирует Excel в формульный вид и украшает.

Конвертер Excel в SQL
Конвертирует Excel в SQL и украшает.

Конвертер Excel в JSON
Конвертирует Excel в JSON и украшает.

Конвертер Excel в XML
Конвертирует Excel в XML и украшает.

Конвертер Excel в YAML
Конвертирует Excel в YAML и украшает.

Конвертер Excel в Текст
Конвертирует Excel в Текст и украшает.

Извлечь столбец Excel
Извлекает один столбец из Excel.

Конвертер TSV в JSON
Конвертирует данные TSV в JSON и украшает.

Конвертер TSV в CSV
Конвертирует данные TSV в CSV и украшает.

Конвертер TSV в Excel
Конвертирует данные TSV в Excel и украшает.

Конвертер TSV в HTML
Конвертирует данные TSV в HTML, с просмотром ниже.

Конвертер TSV в SQL
Конвертирует TSV в SQL формат и украшает.

Конвертер TSV в Многострочные данные
Конвертирует TSV в многострочные данные и делает более читаемым.

Конвертер TSV в Текст
Конвертирует TSV в обычный текст и делает более читаемым.

Конвертер TSV в XML/JSON
Конвертирует TSV в XML/JSON и украшает.

Конвертер TSV в XML
Конвертирует TSV в XML и украшает.

Конвертер TSV в YAML
Конвертирует TSV в YAML и украшает.

Извлечь столбец TSV
Извлекает один столбец из TSV.

Конвертер HTML в CSV
Конвертирует HTML в CSV и украшает.

Конвертер HTML в EXCEL
Конвертирует HTML в EXCEL и украшает.

Конвертер HTML в TSV
Конвертирует HTML в TSV и украшает.

Конвертер HTML в Многострочные данные
Конвертирует HTML в Многострочные данные и украшает.

Конвертер HTML в JSON
Конвертирует HTML в JSON и украшает.

Конвертер HTML в XML
Конвертирует HTML в XML и украшает.

Конвертер HTML в YAML
Конвертирует HTML в TAML и украшает.

Конвертер HTML в SQL
Конвертирует HTML в SQL и украшает.

Конвертер HTML в PHP
Конвертирует HTML в PHP и украшает.

Конвертер HTML в Javascript
Конвертирует HTML в Javascript и украшает.

Конвертер HTML в Asp
Конвертирует HTML в Asp и украшает.

Конвертер HTML в JSP
Конвертирует HTML в JSP и украшает.

Конвертер HTML в Perl
Конвертирует HTML в Perl и украшает.

Конвертер HTML в Jade
Конвертирует HTML в Jade и украшает.

Конвертер HTML в Текст
Конвертирует HTML в обычный текст.

Конвертер Jade в HTML
Конвертирует Jade в HTML и украшает.

Конвертер Markdown в HTML
Конвертирует Markdown в HTML код.

Конвертер JSON в XML
Конвертирует JSON в XML и украшает.

Конвертер JSON в CSV
Конвертирует JSON в CSV и украшает.

Конвертер JSON в Excel
Конвертирует JSON в Excel и украшает.

Конвертер JSON в TSV
Конвертирует JSON to TSV и украшает.

Конвертер JSON в YAML
Конвертирует JSON в YAML и украшает.

Конвертер JSON в HTML
Конвертирует JSON в HTML и украшает.

Конвертер JSON в SQL
Конвертирует JSON в SQL и украшает.

Конвертер JSON в C# класс
Конвертирует JSON в C# класс и украшает.

Конвертер JSON в Текст
Конвертирует JSON в Текст и украшает.

Конвертер SQL в HTML
Конвертирует SQL в HTML и украшает.

Конвертер SQL в CSV
Конвертирует SQL в CSV и украшает.

Конвертер SQL в Excel
Конвертирует SQL в Excel и украшает.

Конвертер SQL в TSV
Конвертирует SQL в TSV и украшает.

Конвертер SQL в XML
Конвертирует SQL в XML и украшает.

Конвертер SQL в JSON
Конвертирует SQL в JSON и украшает.

Конвертер SQL в YAML
Конвертирует SQL в YAML и украшает.

Конвертер SQL в Text
Конвертирует SQL в Text и украшает.

Конвертер XML в JSON
Конвертирует XML в JSON и украшает.

Конвертер XML в CSV
Конвертирует XML в CSV и украшает.

Конвертер XML в Excel
Конвертирует XML в Excel и украшает.

Конвертер XML в TSV
Конвертирует XML в TSV и украшает.

Конвертер XML в YAML
Конвертирует XML в YAML и украшает.

Конвертер XML в HTML
Конвертирует XML в HTML и украшает.

Конвертер XML в SQL
Конвертирует XML в SQL и украшает.

Конвертер XML в Текст
Конвертирует XML в Текст и украшает.

Конвертер YAML в XML/JSON/CSV
Конвертирует YAML в JSON/CSV/XML и украшает.

Конвертер YAML в Excel
Конвертирует YAML в Excel и украшает.

Конвертер YAML в HTML
Конвертирует YAML в HTML и украшает.

Конвертер XML в PDF
Конвертировать XML в PDF и Скачать.

Конвертер CSV в PDF
Конвертировать CSV в PDF и Скачать.

Конвертер TSV в PDF
Конвертировать TSV в PDF и Скачать.

Конвертер EXCEL в PDF
Конвертировать EXCEL в PDF и Скачать.

Конвертер JSON в PDF
Конвертировать JSON в PDF и Скачать.

Конвертер YAML в PDF
Конвертировать YAML в PDF и Скачать.

Конвертер SQL в PDF
Конвертировать SQL в PDF и Скачать.

Конвертер Текст в PDF
Конвертировать Текст в PDF и Скачать.

Конвертер PDF в JPG
Конвертировать PDF в JPG и Скачать.

Конвертер PDF в PNG
Конвертирует PDF в PNG и украшает.

Конвертер Текст в HTML
Конвертирует Текст в HTML и украшает.

Конвертер RSS в JSON
Конвертирует RSS в JSON и украшает.

Конвертер OPML в JSON
Конвертирует OPML в JSON и украшает.

Инструменты проверки валидности кода

Валидатор CSS
Проверьте ваш исходник CSS.

Валидатор Javascript
Проверьте ваш исходник Javascript.

Тестер Javascript
Проверьте ваш Javascript код.

Тестер HTML
Проверьте ваш HTML код.

Валидатор JSON
Проверьте ваш JSON код и украсьте.

Валидатор XML
Проверьте ваш XML код и украсьте.

Валидатор YAML
Проверьте ваш YAML код и украсьте.

Валидатор UUID
Проверьте ваш UUID код.

Тестер XPath
Онлайн Xpath тестер.

Тестер и генератор регулярных выражений
Проверка регулярного выражения и создание кода.

Препроцессоры CSS

Компилятор LESS
Создает отформатированные стили CSS из меньшего источника.

Компилятор Stylus
Создает украшенные стили CSS из Stylus

Конвертер CSS в LESS
Конвертирует CSS в Less и украшает.

Конвертер CSS в SCSS
Конвертирует CSS в SCSS и украшает.

Конвертер CSS в SASS
Конвертирует CSS в SASS и украшает.

Другие утилиты

Генераторы

  • Генератор случайных паролей
  • Генератор Favicon
  • Безопасный каталог htaccess
  • Генератор htpasswd
  • Генератор Lorem Ipsum
  • Генератор адресов IPv4
  • Генератор адресов IPv6
  • Генератор MAC адресов
  • Генератор календарных дат

Конвертеры величин

  • Конвертер веса
  • Конвертер площади
  • Конвертер плотности и массы
  • Конвертер байтов/битов
  • Конвертер электроэнергии
  • Конвертер энергии
  • Конвертер силы
  • Конвертер Топлива
  • Конвертер длины
  • Конвертер объема и емкости
  • Конвертер температуры
  • Конвертер скорости и ускорения
  • Конвертер угла
  • Конвертер массы
  • Конвертер мощности
  • Конвертер давления и напряжения
  • Конвертер времени
  • Астрономический конвертер
  • Конвертер частоты

Утилиты

  • Информация о браузере
  • Конвертер Base64 в Изображение
  • Конвертер Изображение в Base64
  • Конвертер Файла в Base64
  • Генератор символов
  • Конвертер текста в HTML объекты
  • Парсер URL
  • Автообновление страницы

Экранирование и разэкранирование

  • Экранирование и разэкранирование JSON
  • Экранирование и разэкранирование C#
  • Экранирование и разэкранирование Javascript
  • Экранирование и разэкранирование Java
  • Экранирование и разэкранирование CSV
  • Экранирование и разэкранирование SQL
  • Экранирование и разэкранирование HTML
  • Экранирование и разэкранирование XML

Шифрование

  • Генератор HMAC
  • Хэш калькулятор
  • Стеганография изображений
  • Стеганографический декодер
  • Генератор паролей MySQL/MariaDB
  • Генератор паролей Postgres

Строчные утилиты

  • Конвертер базового номера
  • Кодер/Декодер Base64
  • Средство просмотра различий
  • Кодировщик Url
  • Декодер Url
  • Кодировщик Html
  • Декодер Html
  • Добавить слэш
  • Убрать слеш
  • Конвертер числа в слово
  • Утилиты строк
  • Трансформер текста
  • Конвертер регистра
  • Калькулятор даты
  • Конвертер Даты/Времени в временную метку Unix
  • Конвертер временную метку Unix в время Дата/Время
  • Конвертер Секунд в человеческое время
  • Конвертер Секунд в Часы:Минуты:Секунды

Конверторы изображений

  • Конвертер JPG в PNG
  • Конвертер PNG в JPG
  • Конвертер GIF в PNG
  • Конвертер PNG в GIF
  • Конвертер BMP в PNG
  • Конвертер BMP в JPG
  • Генератор изображений с закругленными углами

Инструменты домена и IP

  • Получить IP и имя хоста
  • Просмотр имени хоста
  • Whois сервис
  • Просмотр DNS
  • Просмотр MX
  • Просмотр сервера имён
  • Проверка IP сайта
  • IP утилиты
  • Мой IP адрес

Редакторы кода

  • Просмотр исходного кода
  • Онлайн Редактор Кода
  • Пример кода

Конвертеры цвета

  • Конвертер RGB в HEX
  • Конвертер RGB в CMYK
  • Конвертер RGB в HSV
  • Конвертер HEX в HSV
  • Конвертер HEX в CMYK
  • Конвертер HSV в CMYK

Является ли HMAC-MD5 безопасным для проверки подлинности зашифрованных данных?

спросил

Изменено 6 лет, 2 месяца назад

Просмотрено 23 тысячи раз

$\begingroup$

Я что-то читал о том, что конструкция HMAC способна уменьшить проблему коллизий в базовом хеше.

Означает ли это, что что-то вроде HMAC-MD5 по-прежнему можно считать безопасным для проверки подлинности зашифрованных данных?

  • хмак
  • md5
$\endgroup$

2

$\begingroup$

Да, в настоящее время нет известных атак на HMAC-MD5.

В частности, после первых коллизионных атак на MD5 Михир Белларе (один из изобретателей HMAC) придумал новое доказательство безопасности для HMAC, которое не требует сопротивления коллизиям:

» Abstract: Белларе, Канетти и Кравчик (1996) доказали, что HMAC является PRF, предполагая, что (1) основная функция сжатия является PRF, и (2) повторяющаяся хэш-функция слабо устойчива к коллизиям. Однако , недавние атаки показывают, что предположение (2) неверно для MD5 и SHA-1, удаляя основанную на доказательстве поддержку HMAC в этих случаях.Эта статья доказывает, что HMAC является PRF при единственном предположении, что функция сжатия является PRF. Это восстанавливает гарантию, основанную на доказательстве, поскольку никакие известные атаки не ставят под угрозу псевдослучайность функции сжатия, а также помогает объяснить устойчивость к атакам, которую HMAC продемонстрировал даже при реализации с хэш-функциями, чья (слабая) устойчивость к коллизиям скомпрометирована. показать, что даже более слабое, чем PRF, условие для функции сжатия, а именно то, что это MAC с сохранением конфиденциальности, достаточно, чтобы установить, что HMAC является безопасным MAC, до тех пор, пока хеш-функция удовлетворяет очень слабому требованию быть вычислительно почти универсальным, где снова ценность заключается в том факте, что известные атаки не делают сделанных предположений недействительными».

Однако , а не означает, что вы должны использовать HMAC-MD5 в новых проектах криптосистем. Перефразируя Брюса Шнайера, «атаки становятся только лучше, а не хуже. » У нас уже есть практические атаки столкновений для MD5, показывающие, что он не соответствует своим первоначальным целям безопасности; вполне возможно, что в любой момент кто-то может придумать способ распространить их на какую-нибудь новую атаку, которая поставит под угрозу безопасность HMAC-MD5. Гораздо лучшим выбором было бы использование HMAC с хеш-функцией, не имеющей известных атак, таких как SHA-2 или SHA-3.

$\endgroup$

3

$\begingroup$

Ответ Илмари Каронена верен, когда HMAC используется по назначению, но это не означает, что HMAC совершенно не подвержен коллизиям MD5:

Учитывая конкретный ключ, обратите внимание, что K xor opad и K xor ipad не зависят от сообщения m . Это означает, что любое столкновение в H((K xor ipad) || m) приведет к конфликту HMAC даже с двумя разными сообщениями.

Для HmacMd5, K xor ipad будет иметь длину 64 байта. Таким образом, если вы найдете два сообщения m1 и m2 с по крайней мере 64-байтовым общим префиксом pre , вы можете вычислить ключ K = pre xor ipad , который создаст коллизию между H((K xor ipad ) || m1) и H((K xor ipad) || m2) , что приводит к полной коллизии во всем HMAC.

Это можно использовать двумя способами:

  • Вы не доверяете человеку, сгенерировавшему ключ, и HMAC неправильно используется как своего рода контрольная сумма.
  • Злоумышленник получает доступ к ключу и может использовать атаку с выбранным префиксом MD5, чтобы вызвать коллизии.

Но, как говорится в принятом ответе, если ключ является секретным и контролируется вами или доверенными сторонами, HmacMd5 по-прежнему безопасен.

$\endgroup$

3

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

. Криптоанализ

— Сколько попыток нужно, чтобы взломать HMAC-MD5? 9{64}$ оценки MD5. Вы могли бы сделать то же самое для HMAC-MD5,

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

Но стандартная гипотеза безопасности HMAC-MD5 заключается в том, что это семейство псевдослучайных функций , что предполагает, что противник не знает ключа. Любая программа, написанная противником, которая принимает функцию в качестве параметра и оценивает ее как оракул при произвольных сообщениях по своему выбору, не будет вести себя сильно по-разному, независимо от того, скармливаете ли вы ей (а) HMAC-MD5 при единообразном случайном выборе ключа, или ( б) равномерный случайный выбор функции.

 f0_memo = {}
защита f0(x):
 если x не в f0_memo:
 f0_memo[x] = os.urandom(16)
 вернуть f0_memo[x]
k = os.urandom(32)
защита f1(x):
 вернуть hmac_md5 (к, х)
отличительный признак (prf):
 y0 = prf('привет, мир')
 y1 = prf('запросить запрос совершенно наоборот, как растет ваша криптовалюта')
 . {256}$, где $c$ — это количество раз, которое $D$ может позволить себе вычислить HMAC-MD5. 9{64}$ разные входные данные, вы, вероятно, обнаружите коллизию. Это верно для HMAC-MD5 при универсальном случайном ключе  и  верно для универсальной случайной функции, поэтому  априори обнаружение коллизии не нарушает безопасность PRF , различая их самостоятельно.  Однако MD5  также  обладает тем свойством, что если $x_0 \ne x_1$ сталкивается с MD5, с $\operatorname{MD5}(x_0) = \operatorname{MD5}(x_1)$, то $x_0 \mathbin также \Vert y$ и $x_1 \mathbin\Vert y$ для любого общего суффикса $y$, если $x_0$ и $x_1$ имеют одинаковую длину. 9{64}$ входов, с высокой вероятностью вы найдете коллизию $x_0\ne x_1$; затем, чтобы определить, является ли оракул HMAC-MD5 или универсальной случайной функцией, выберите суффикс $y$, скажем, один нулевой бит или GIF-файл забавного видео с котом, и запросите оракула еще на двух входах: $x_0 \mathbin \Vert y$ и $x_1 \mathbin\Vert y$. {-128}$ для однородной случайной функции. Для 9{128}$. 

Как насчет использования HMAC-MD5 в приложении, например, в качестве кода аутентификации сообщения? Оказывается, любое семейство псевдослучайных функций дает хороший код аутентификации сообщения. Целью безопасности кода аутентификации сообщения является невозможность подделки: злоумышленник выигрывает, если после запроса к оракулу узнать аутентификаторы для $q$ сообщений по своему выбору, он может подделать аутентификатор для сообщения , ранее не отправленного оракулу 9{64}$ запрашивает оракул и, вероятно, находит коллизию $x_0 \ne x_1$; затем запросите у оракула аутентификатор для $x_0 \mathbin\Vert y$ и подделайте его как аутентификатор для сообщения $x_1 \mathbin\Vert y$. Это единственный способ? Мы могли бы изучить стратегии для подделки HMAC-MD5 напрямую, но есть более простой способ понять безопасность MAC HMAC-MD5, если мы примем безопасность PRF HMAC-MD5, используя формализм выше.

Предположим, у нас есть успешная подпрограмма подделки, которая и завершается успешно с вероятностью $p$. Тогда мы можем определить различитель: 9{64}$ сообщений под одним ключом! Я также рекомендую не сообщать противнику свой ключ.


* Если $D$ попробует 1000 ключей, у него, очевидно, будет больше шансов на успех, чем если бы он попробовал только 1, но попытка 1000 ключей обходится дороже, независимо от того, пробуете ли вы их на одном компьютере последовательно или тысяча компьютеров параллельно. Обратите внимание, что многоцелевых атак сразу против $n$ целей могут быть дешевле, чем $n$ атак по одной цели по отдельности, но для 256-битного ключа разница не имеет значения для всего мыслимого количества целей $n$ в человеческом существовании. Но будьте осторожны, используя HMAC-MD5 со 128-битными ключами!

Конечно, точно такая же стратегия отличит любую итерированную хеш-функцию от однородной случайной функции, но не отличит две разные итерированные хеш-функции! С таким же успехом это может быть HMAC-HAVAL128 или что-то еще со 128-битным состоянием.