В криптографии , номера ничего вверх-мой рукав любые числа , которые, в силу своей конструкции, которые выше подозрений скрытых свойств. Они используются при создании криптографических функций, таких как хэши и шифры . Этим алгоритмам часто требуются рандомизированные константы для целей микширования или инициализации. Криптограф может пожелать выбрать эти значения таким образом, чтобы продемонстрировать, что константы не были выбраны для гнусной цели, например, для создания бэкдора в алгоритме. [1] Эти опасения можно развеять, используя числа, созданные таким образом, что остается мало места для корректировки. Примером может служить использование начальных цифр числа πкак константы. [2] Использование цифр в π миллионов разрядов после десятичной точки не будет считаться заслуживающим доверия, потому что разработчик алгоритма мог выбрать эту отправную точку, потому что это создало секретную уязвимость, которую разработчик мог впоследствии использовать.
Считается, что цифры в позиционных представлениях действительных чисел, таких как π , e и иррациональные корни, появляются с одинаковой частотой (см. Нормальное число ). Такие числа можно рассматривать как противоположную крайность случайных чисел Чайтина – Колмогорова, поскольку они кажутся случайными, но имеют очень низкую информационную энтропию . Их использование мотивировано ранними спорами по поводу Стандарта шифрования данных правительства США 1975 года , который подвергся критике, поскольку не было предоставлено никаких объяснений для констант, используемых в его S-блоке (хотя позже выяснилось, что они были тщательно отобраны для защиты от тогдашних -классифицированная методика дифференциального криптоанализа ). [3] Таким образом, возникла потребность в более прозрачном способе генерации констант, используемых в криптографии.
«Ничего в рукаве» - это фраза, связанная с фокусниками , которые иногда предваряют магический трюк, открывая рукава, чтобы показать, что внутри у них нет спрятанных предметов.
Примеры
- Рон Ривест использовал тригонометрическую синусоидальную функцию для генерации констант для широко используемого хэша MD5 . [4]
- Агентство национальной безопасности США использовало квадратные корни из малых целых чисел для получения констант, используемых в его «алгоритме безопасного хеширования » SHA-1 . Функции SHA-2 используют квадратные и кубические корни малых простых чисел . [5]
- SHA-1 хэш - алгоритм использует 0123456789ABCDEFFEDCBA9876543210F0E1D2C3 в качестве начального значения хэш - функции.
- Blowfish алгоритм шифрования использует двоичное представление П (без начального 3) , чтобы инициализировать ключ расписания . [2]
- RFC 3526 описывает простые числа для обмена ключами в Интернете , которые также генерируются из π .
- S-коробка из NewDES шифра является производным от Соединенных Штатов Декларации независимости . [6]
- Кандидат AES DFC получает все его произвольных постоянных, в том числе все записи S-поле, из двоичного разложения е . [7]
- В расписании ключей ARIA используется двоичное расширение 1 / π . [8]
- В расписании ключей шифра RC5 используются двоичные цифры как из e, так и из золотого сечения . [9]
- Функция БЛЕК хэша , финалист в ША-3 конкуренции, использует таблицу 16 постоянных слов , которые являются ведущими 512 или 1024 битами дробной части из П .
- Расписание ключей шифра KASUMI использует 0x123456789ABCDEFFEDCBA9876543210 для получения модифицированного ключа.
- Salsa20 семейство шифров использовать строку ASCII «развернуть 32-байтовый K» как константы в процессе ее инициализации блока.
Контрпримеры
- Streebog хэш - функция S-коробка была утверждал, что генерируется случайным образом , но была обратной инженерии и доказано, что генерируется алгоритмически с некоторыми «озадачивающих» слабые стороны. [10]
- В стандарте шифрования данных (DES) есть константы, предоставленные АНБ. Они оказались далеко не случайными, но вместо того, чтобы быть лазейкой, они сделали алгоритм устойчивым к дифференциальному криптоанализу - методу, который в то время не был широко известен. [3]
- Dual_EC_DRBG , криптографический псевдослучайный битовый генератор , рекомендованный NIST , подвергся критике в 2007 году, поскольку константы, рекомендованные для использования в алгоритме, могли быть выбраны таким образом, чтобы их автор мог предсказать будущие результаты на основе выборки прошлых сгенерированных значений. [1] В сентябре 2013 года The New York Times написала, что «внутренние записки, просочившиеся бывшим подрядчиком АНБ Эдвардом Сноуденом , предполагают, что АНБ сгенерировало один из генераторов случайных чисел, используемых в стандарте NIST 2006 года, который называется стандартом Dual EC DRBG - который содержит черный ход для АНБ ". [11]
- Кривые P стандартизированы NIST для криптографии с эллиптическими кривыми . Коэффициенты на этих кривых генерируются путем хеширования необъяснимых случайных чисел , таких как:
- P-224:
bd713447 99d5c7fc dc45b59f a3b9ab8f 6a948bc5
. - Р-256:
c49d3608 86e70493 6a6678e1 139d26b7 819f7e90
. - Р-384:
a335926a a319a27a 1d00896a 6773a482 7acdac73
.
- P-224:
Хотя это и не связано напрямую, после того, как был обнаружен бэкдор в Dual_EC_DRBG, подозрительные аспекты констант кривой P NIST [12] привели к опасениям [13], что АНБ выбрало значения, которые дали им преимущество в поиске [14] закрытых ключей. [15] С тех пор многие протоколы и программы начали использовать Curve25519 в качестве альтернативы кривой NIST P-256.
Я больше не доверяю константам. Я считаю, что АНБ манипулировало ими через их отношения с промышленностью.
- Брюс Шнайер , АНБ больше всего ломает шифрование в Интернете (2013 г.) [16]
Другие примеры
- S-образная коробка по ГОСТу официально не указана, но она должна быть поставлена. Производители программного и аппаратного обеспечения могут иметь собственные S-боксы. В более поздней версии стандарта ГОСТ добавлено отсутствующее определение S-блока.
Ограничения
Бернстайн и соавторы демонстрируют, что использование чисел «ничего в рукаве» в качестве отправной точки в сложной процедуре создания криптографических объектов, таких как эллиптические кривые, может оказаться недостаточным для предотвращения вставки лазеек. Если в процедуре выбора объекта имеется достаточно настраиваемых элементов, набор возможных вариантов дизайна и очевидных простых констант может быть достаточно большим, так что поиск возможностей позволяет создать объект с желаемыми свойствами бэкдора. [17]
Сноски
- ^ a b Брюс Шнайер (2007-11-15). «Разве АНБ заложило секретный бэкдор в новый стандарт шифрования?» . Проводные новости .
- ^ a b Бумага Blowfish
- ^ а б Брюс Шнайер . Прикладная криптография , второе издание, John Wiley and Sons, 1996, p. 278.
- ^ RFC 1321 разд. 3,4
- ^ FIPS 180-2: Secure Hash Standard (SHS) ( PDF , 236 kB) - Текущая версия Secure Hash Standard (SHA-1, SHA-224, SHA-256, SHA-384 и SHA-512), 1 Август 2002 г., поправка от 25 февраля 2004 г.
- ^ Редакция NEWDES, Роберт Скотт, 1996
- ^ Анри Гилбер; М. Жиро; П. Хугворст; Ф. Нойлхан; Т. Порнин; Г. Пупар; Дж. Стерн; С. Воденэ (19 мая 1998 г.). «Декоррелированный быстрый шифр: кандидат в AES» (PDF / PostScript ) .
- ^ А. Бирюков ; К. Де Канньер; Дж. Лано; Б. Пренил ; С.Б. Орс (7 января 2004 г.). Анализ безопасности и производительности ARIA ( PostScript ) (Отчет). Версия 1.2 - Заключительный отчет. Katholieke Universiteit Leuven .
- ^ Ривест, Р.Л. (1994). «Алгоритм шифрования RC5» (PDF) . Труды Второго международного семинара по быстрому шифрованию программного обеспечения (FSE) 1994e . С. 86–96.
- ^ Бирюков Алексей; Перрен, Лео; Удовенко, Алексей (2016). «Реверс-инжиниринг S-бокса Стрибога, Кузнечика и СТРИБОБр1 (Полная версия)» . IACR-EUROCRYPT-2016 .
- ^ Перлрот, Николь (10 сентября 2013 г.). «Правительство объявляет о шагах по восстановлению доверия к стандартам шифрования» . Нью-Йорк Таймс . Проверено 11 сентября 2013 года .
- ^ https://safecurves.cr.yp.to/
- ^ Максвелл, Грегори (8 сентября 2013 г.). "[tor-talk] NIST одобрил криптовалюту в Tor?" . Проверено 20 мая 2015 .
- ^ «SafeCurves: жесткость» . safecurves.cr.yp.to . Проверено 20 мая 2015 .
- ^ «АНБ больше всего взламывает шифрование в Интернете - Шнайер о безопасности» . www.schneier.com . Проверено 20 мая 2015 .
- ^ « « Я больше не доверяю константам. », АНБ ломает большую часть шифрования в Интернете - Шнайер о безопасности» . www.schneier.com . Проверено 10 апреля 2021 .
- ^ Как управлять стандартами кривых: технический документ для черной шляпы Дэниела Дж. Бернстайна, Тунг Чоу, Читчанок Чуэнгсатиансуп, Андреас Ху Улсинг, Эран Ламбуйдж, Таня Ланге , Рубен Нидерхаген и Кристин ван Вредендал, 27 сентября 2015 г., доступ в июне 4, 2016
Рекомендации
- Брюс Шнайер . Прикладная криптография , второе издание. Джон Вили и сыновья, 1996.
- Эли Бихам , Ади Шамир , (1990). Дифференциальный криптоанализ DES-подобных криптосистем. Достижения в криптологии - CRYPTO '90. Springer-Verlag. 2–21.