Цифры, используемые криптографами для подтверждения того, что они работают добросовестно
В криптографии числа «ничего в рукаве» — это любые числа, которые по своей конструкции находятся вне подозрений о скрытых свойствах. Они используются при создании криптографических функций, таких как хэши и шифры . Эти алгоритмы часто нуждаются в рандомизированных константах для целей смешивания или инициализации. Криптограф может захотеть выбрать эти значения таким образом, чтобы продемонстрировать, что константы не были выбраны для гнусной цели, например, для создания бэкдора в алгоритме. [1] Эти опасения можно развеять, используя числа, созданные таким образом, чтобы оставалось мало места для корректировки. Примером может служить использование начальных цифр числа π в качестве констант. [2] Использование цифр π миллионов знаков после десятичной точки не будет считаться заслуживающим доверия, поскольку разработчик алгоритма мог выбрать эту начальную точку, поскольку она создавала секретную слабость, которую разработчик мог позже использовать, — хотя даже при кажущихся естественными выборах в возможных вариантах существует достаточно энтропии , из-за чего полезность этих чисел ставится под сомнение.
Цифры в позиционных представлениях действительных чисел, таких как π , e и иррациональные корни, как полагают, появляются с одинаковой частотой (см. нормальное число ). Такие числа можно рассматривать как противоположную крайность случайных чисел Чайтина-Колмогорова, поскольку они кажутся случайными, но имеют очень низкую информационную энтропию . Их использование мотивировано ранними спорами по поводу Стандарта шифрования данных правительства США 1975 года , который подвергся критике, поскольку не было предоставлено объяснения констант, используемых в его S-box (хотя позже было обнаружено, что они были тщательно отобраны для защиты от тогдашней засекреченной техники дифференциального криптоанализа ). [3] Таким образом, возникла необходимость в более прозрачном способе генерации констант, используемых в криптографии.
«В рукаве ничего нет» — фраза, связанная с фокусниками , которые иногда перед началом фокуса держат рукава открытыми, чтобы показать, что у них нет спрятанных внутри предметов.
Примеры
Рон Ривест использовал функцию тригонометрического синуса для генерации констант для широко используемого хэша MD5 . [4]
Кандидат AES DFC выводит все свои произвольные константы, включая все записи S-box, из двоичного расширения e . [7]
В схеме ключей ARIA используется двоичное расширение 1/ π . [8]
В ключевом расписании шифра RC5 используются двоичные цифры как из числа e, так и из золотого сечения . [9]
Несколько шифров, включая TEA и Red Pike, используют 2654435769 или 0x9e3779b9, что равно ⌊ 2 32 / ϕ ⌋ , где ϕ — золотое сечение.
Хэш-функция BLAKE , финалист конкурса SHA-3 , использует таблицу из 16 константных слов, которые представляют собой первые 512 или 1024 бита дробной части числа π .
В схеме ключей шифра KASUMI для получения измененного ключа используется 0x123456789ABCDEFFEDCBA9876543210.
Семейство шифров Salsa20 использует строку ASCII «expand 32-byte k» или «expand 16-byte k» в качестве констант в процессе инициализации блока.
Bcrypt использует строку «OrpheanBeholderScryDoubt» в качестве строки инициализации [10] [11]
Контрпримеры
Утверждалось, что хеш -функция S-box Стрибог генерируется случайным образом, но была проведена ее обратная разработка и доказано, что она генерируется алгоритмически с некоторыми «загадочными» слабостями. [12]
Стандарт шифрования данных (DES) имеет константы, которые были выданы АНБ. Они оказались далеки от случайности, но вместо этого сделали алгоритм устойчивым к дифференциальному криптоанализу , методу, который в то время не был публично известен. [3]
Dual_EC_DRBG , криптографический псевдослучайный генератор битов , рекомендованный NIST , подвергся критике в 2007 году, поскольку константы, рекомендованные для использования в алгоритме, могли быть выбраны таким образом, чтобы позволить их автору предсказывать будущие результаты с учетом выборки сгенерированных в прошлом значений. [1] В сентябре 2013 года The New York Times написала, что «внутренние меморандумы, просочившиеся бывшим подрядчиком АНБ Эдвардом Сноуденом , предполагают, что АНБ создало один из генераторов случайных чисел, используемых в стандарте NIST 2006 года, называемом стандартом Dual EC DRBG, который содержит лазейку для АНБ». [13]
Хотя это и не связано напрямую, после того, как был обнаружен бэкдор в Dual_EC_DRBG, подозрительные аспекты констант кривой P NIST [14] привели к опасениям [15] , что АНБ выбрало значения, которые дали им преимущество в поиске [16] закрытых ключей. [17] С тех пор многие протоколы и программы начали использовать Curve25519 в качестве альтернативы кривой NIST P-256.
Ограничения
Бернстайн и соавторы демонстрируют, что использование чисел «ничего в рукаве» в качестве отправной точки в сложной процедуре генерации криптографических объектов, таких как эллиптические кривые, может быть недостаточным для предотвращения вставки бэкдоров. Например, существует множество кандидатов на, казалось бы, безвредные и «неинтересные» простые математические константы, такие как π , e , гамма Эйлера , √2 , √3 , √5 , √7, log(2), (1 + √5)/2 , ζ(3) , ζ(5), sin(1), sin(2), cos(1), cos(2), tan(1) или tan(2). Для этих констант также существует несколько различных двоичных представлений на выбор. Если в качестве случайного начального числа используется константа, то для выбора также существует большое количество кандидатов на хеш-функции, таких как SHA-1, SHA-256, SHA-384, SHA-512, SHA-512/256, SHA3-256 или SHA3-384.
Если в процедуре выбора объекта имеется достаточно регулируемых параметров, комбинаторный взрыв гарантирует, что вселенная возможных вариантов дизайна и, по-видимому, простых констант может быть достаточно большой, чтобы автоматический поиск возможностей позволил построить объект с желаемыми скрытыми свойствами. [18]
Сноски
^ Брюс Шнайер (15.11.2007). «АНБ встроило секретный бэкдор в новый стандарт шифрования?». Wired News .
^ ab "Blowfish Paper". Архивировано из оригинала 2011-09-06 . Получено 2010-06-09 .
^ ab Брюс Шнайер . Прикладная криптография , второе издание, John Wiley and Sons, 1996, стр. 247.
^ RFC 1321 Раздел 3.4
^ FIPS 180-2: Secure Hash Standard (SHS) Архивировано 12 марта 2012 г. на Wayback Machine ( PDF , 236 кБ) – Текущая версия Secure Hash Standard (SHA-1, SHA-224, SHA-256, SHA-384 и SHA-512), 1 августа 2002 г., изменено 25 февраля 2004 г.
^ "Пересмотр NEWDES, Роберт Скотт, 1996". Архивировано из оригинала 2012-11-08 . Получено 2010-06-09 .
^ Анри Жильбер; М. Жиро; П. Хугворст; Ф. Нойан; Т. Порнин; Г. Пупар; Дж. Стерн; С. Воденай (19 мая 1998 г.). "Decorrelated Fast Cipher: an AES candidate" (PDF/ PostScript ) . Архивировано из оригинала 9 апреля 2008 г. . Получено 9 июня 2010 г. .
^ A. Biryukov ; C. De Cannière; J. Lano; B. Preneel ; SB Örs (7 января 2004 г.). Анализ безопасности и производительности ARIA ( PostScript ) (Отчет). Версия 1.2 — Финальный отчет. Katholieke Universiteit Leuven . Архивировано из оригинала 16 июля 2011 г. . Получено 9 июня 2010 г. .
^ Ривест, Р. Л. (1994). «Алгоритм шифрования RC5» (PDF) . Труды Второго международного семинара по быстрому программному шифрованию (FSE) 1994e . С. 86–96.
^ "хэш - Почему текст BCrypt "OrpheanBeholderScryDoubt"". Information Security Stack Exchange . Архивировано из оригинала 2023-07-10 . Получено 2022-07-05 .
^ Бирюков, Алекс; Перрен, Лео; Удовенко, Алексей (2016). «Реверс-инжиниринг S-box Стрибога, Кузнечика и СТРИБОБр1 (Полная версия)». Iacr-Еврокрипт-2016 . дои : 10.1007/978-3-662-49890-3_15. Архивировано из оригинала 02 августа 2023 г. Проверено 26 марта 2019 г.
^ Перлрот, Николь (10 сентября 2013 г.). «Правительство объявляет о шагах по восстановлению доверия к стандартам шифрования». The New York Times . Архивировано из оригинала 23 апреля 2015 г. Получено 11 сентября 2013 г.
^ «АНБ взламывает большинство систем шифрования в Интернете — Шнайер о безопасности». www.schneier.com . Архивировано из оригинала 2017-12-15 . Получено 2015-05-20 .
^ Как манипулировать стандартами кривых: белая книга для черной шляпы Архивировано 08.03.2016 в Wayback Machine Дэниел Дж. Бернстайн, Тунг Чоу, Читчанок Чуенгсатиансуп, Андреас Хулсинг, Эран Ламбуидж, Таня Ланге , Рубен Нидерхаген и Кристин ван Вредендал, 27 сентября 2015 г., доступ получен 4 июня 2016 г.
Ссылки
Брюс Шнайер . Прикладная криптография , второе издание. John Wiley and Sons, 1996.
Эли Бихам , Ади Шамир , (1990). Дифференциальный криптоанализ криптосистем типа DES. Достижения в криптологии – CRYPTO '90. Springer-Verlag. 2–21.