Номер «ничего в рукаве»
В криптографии . числа «ничего в рукаве» — это любые числа, которые по своей конструкции не подвержены подозрению в наличии скрытых свойств Они используются при создании криптографических функций, таких как хэши и шифры . Этим алгоритмам часто требуются рандомизированные константы для целей смешивания или инициализации. Криптограф может выбрать эти значения таким образом, чтобы продемонстрировать, что константы не были выбраны для гнусных целей, например, для создания бэкдора для алгоритма. [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-блока, из двоичного расширения 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 «расширить 32-байтовый k» или «расширить 16-байтовый k» в качестве констант в процессе инициализации блока.
- Bcrypt использует строку «OrpheanBeholderScryDoubt» в качестве строки инициализации. [10] [11]
Контрпримеры
[ редактировать ]- Утверждалось, что хэш- функция Streebog S-box генерируется случайным образом, но она была реконструирована и, как было доказано, генерируется алгоритмически с некоторыми «загадочными» недостатками. [12]
- Стандарт шифрования данных (DES) содержит константы, предоставленные АНБ. Они оказались далеко не случайными, а вместо этого сделали алгоритм устойчивым к дифференциальному криптоанализу — методу, который в то время не был широко известен. [3]
- Dual_EC_DRBG , рекомендованный NIST криптографический генератор псевдослучайных битов , подвергся критике в 2007 году, поскольку константы, рекомендованные для использования в алгоритме, могли быть выбраны таким образом, чтобы их автор мог предсказывать будущие результаты на основе выборки прошлых сгенерированных значений. [1] В сентябре 2013 года The New York Times написала, что «внутренние записки, просочившиеся бывшим подрядчиком АНБ Эдвардом Сноуденом , предполагают, что АНБ сгенерировало один из генераторов случайных чисел, используемых в стандарте NIST 2006 года, называемом стандартом Dual EC DRBG, который содержит черный ход для АНБ». [13]
- P-кривые стандартизированы NIST для криптографии на основе эллиптических кривых . Коэффициенты в этих кривых генерируются путем хеширования необъяснимых случайных начальных чисел , таких как:
- Р-224:
bd713447 99d5c7fc dc45b59f a3b9ab8f 6a948bc5
. - Р-256:
c49d3608 86e70493 6a6678e1 139d26b7 819f7e90
. - Р-384:
a335926a a319a27a 1d00896a 6773a482 7acdac73
.
- Р-224:
Хотя это и не связано напрямую, после того, как был раскрыт бэкдор в 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]
Сноски
[ редактировать ]- ^ Jump up to: а б Брюс Шнайер (15 ноября 2007 г.). «Включило ли АНБ секретный бэкдор в новый стандарт шифрования?» . Проводные новости .
- ^ Jump up to: а б «Бумага-иглобрюхая бумага» . Архивировано из оригинала 06 сентября 2011 г. Проверено 9 июня 2010 г.
- ^ Jump up to: а б Брюс Шнайер . Прикладная криптография , второе издание, John Wiley and Sons, 1996, с. 247.
- ^ RFC 1321 сек. 3.4
- ^ FIPS 180-2: Стандарт безопасного хеширования (SHS). Архивировано 12 марта 2012 г. на Wayback Machine ( PDF , 236 КБ) - Текущая версия стандарта безопасного хеширования (SHA-1, SHA-224, SHA-256, SHA). -384 и SHA-512), 1 августа 2002 г., с поправками от 25 февраля 2004 г.
- ^ «Редакция NEWDES, Роберт Скотт, 1996» . Архивировано из оригинала 08.11.2012 . Проверено 9 июня 2010 г.
- ^ Анри Жильбер; М. Жиро; П. Хоогворст; Ф. Нойлан; Т. Порнин; Г. Пупар; Дж. Стерн; С. Водене (19 мая 1998 г.). «Декоррелированный быстрый шифр: кандидат на AES» (PDF/ PostScript ) . Архивировано из оригинала 9 апреля 2008 года . Проверено 9 июня 2010 г.
- ^ А. Бирюков ; К. Де Каньер; Дж. Лано; Б. Пренель ; С.Б. Орс (7 января 2004 г.). Анализ безопасности и производительности ARIA ( PostScript ) (Отчет). Версия 1.2 — Итоговый отчет. Католический университет Левена . Архивировано из оригинала 16 июля 2011 года . Проверено 9 июня 2010 г.
- ^ Ривест, Р.Л. (1994). «Алгоритм шифрования RC5» (PDF) . Материалы второго международного семинара по быстрому программному шифрованию (FSE), 1994e . стр. 86–96.
- ^ "src/lib/libc/crypt/bcrypt.c - diff - 1.3" . cvsweb.openbsd.org . Архивировано из оригинала 5 июля 2022 г. Проверено 5 июля 2022 г.
- ^ «хеш — почему текст BCrypt «OrpheanBeholderScryDoubt» » . Обмен стеками информационной безопасности . Архивировано из оригинала 10 июля 2023 г. Проверено 5 июля 2022 г.
- ^ Бирюков, Алекс; Перрин, Лео; Удовенко, Алексей (2016). «Реверс-инжиниринг S-box Стрибога, Кузнечика и СТРИБОБр1 (Полная версия) » Iacr-Еврокрипт-2016 . дои : 10.1007/978-3-662-49890-3_15 . Архивировано из оригинала 0 августа 2023 г. Получено 2 марта 2019 г.
- ^ Перлрот, Николь (10 сентября 2013 г.). «Правительство объявляет о шагах по восстановлению доверия к стандартам шифрования» . Нью-Йорк Таймс . Архивировано из оригинала 23 апреля 2015 года . Проверено 11 сентября 2013 г.
- ^ «SafeCurves: Введение» . Архивировано из оригинала 5 сентября 2017 г. Проверено 2 мая 2017 г.
- ^ Максвелл, Грегори (8 сентября 2013 г.). «[tor-talk] Криптовалюта, одобренная NIST в Tor?» . Архивировано из оригинала 2 октября 2014 г. Проверено 20 мая 2015 г.
- ^ «SafeCurves: жесткость» . Safecurves.cr.yp.to . Архивировано из оригинала 22 мая 2015 г. Проверено 20 мая 2015 г.
- ^ «АНБ взламывает большую часть шифрования в Интернете — Шнайер о безопасности» . www.schneier.com . Архивировано из оригинала 15 декабря 2017 г. Проверено 20 мая 2015 г.
- ^ Как манипулировать стандартами кривых: официальный документ для черной шляпы. Архивировано 8 марта 2016 г. в Wayback Machine. Дэниел Дж. Бернштейн, Тунг Чоу, Читчанок Чуэнсатиансуп, Андреас Ху Килсинг, Эран Ламбуй, Таня Ланге , Рубен Нидерхаген и Кристина. ван Фредендал, 27 сентября 2015 г., по состоянию на 4 июня 2016 г.
Ссылки
[ редактировать ]- Брюс Шнайер . Прикладная криптография , второе издание. Джон Уайли и сыновья, 1996.
- Эли Бихам , Ади Шамир , (1990). Дифференциальный криптоанализ DES-подобных криптосистем. Достижения в криптологии – КРИПТО '90. Спрингер-Верлаг. 2–21.