ИСААК (шифр)
ISAAC ( косвенность, сдвиг, накопление, сложение и подсчет ) — это криптографически безопасный генератор псевдослучайных чисел и поточный шифр , разработанный Робертом Дж. Дженкинсом-младшим в 1993 году. [1] Исходный реализации код эталонной был передан в общественное достояние . [2]
«Я разработал (...) тесты, чтобы сломать генератор, и я разработал генератор, чтобы пройти тесты. Генератор — ISAAC». [3]
Операция [ править ]
ISAAC Алгоритм имеет сходство с RC4 . Он использует массив из 256 четырехоктетных целых чисел в качестве внутреннего состояния, записывая результаты в другой массив из 256 четырехоктетных целых чисел, из которого они считываются по одному до тех пор, пока не станут пустыми, после чего они пересчитываются. Вычисление состоит из замены i -элемента на ( i ⊕128)-элемент, два элемента массива состояний, найденные косвенным путем, аккумулятор и счетчик для всех значений i от 0 до 255. Поскольку это занимает всего около 19 32-битные операции для каждого 32-битного выходного слова, это очень быстро на 32-битных компьютерах.
Криптоанализ [ править ]
Криптоанализ был проведен Мариной Пудовкиной (2001). [4] Ее атака может восстановить исходное состояние со сложностью, примерно меньшей, чем время, необходимое для поиска квадратного корня из всех возможных начальных состояний. На практике это означает, что атака требует вместо . Этот результат не оказал практического влияния на безопасность ISAAC. [5]
В 2006 году Жан-Филипп Омассон обнаружил несколько групп слабых государств. [6] Четвертый представленный (и наименьший) набор слабых состояний приводит к сильно смещенным результатам первого раунда ISAAC и позволяет получить внутреннее состояние, аналогичное слабости в RC4 . Неясно, сможет ли злоумышленник по выходным данным определить, находится ли генератор в одном из этих слабых состояний или нет. Он также показывает, что предыдущая атака [7] ошибочен, поскольку атака Пола - Пренеля основана на ошибочном алгоритме, а не на реальном ISAAC.Предлагается улучшенная версия ISAAC, названная ISAAC+. [5]
Использование вне криптографии [ править ]
Многие реализации ISAAC настолько быстры, что могут конкурировать с другими высокоскоростными PRNG, даже с теми, которые разработаны в первую очередь для скорости, а не для безопасности. В настоящее время используются лишь несколько других генераторов такого высокого качества и скорости. [ нужна ссылка ] ISAAC используется в утилите Unix для безопасной перезаписи данных. [8] Также алгоритм ISAAC реализован в библиотеке Java Apache Commons Math. [9]
Ссылки [ править ]
- ^ Роберт Дж. Дженкинс младший, ISAAC. Быстрое программное шифрование 1996, стр. 41–49.
- ^ Шифр ISAAC
- ^ Дженкинс, Боб (17 марта 2023 г.). «Тесты для генераторов случайных чисел» .
- ^ Марина Пудовкина, Известная атака открытого текста на генератор потока ключей ISAAC, 2001, Архив Cryptology ePrint: Отчет 2001/049, [1] .
- ^ Jump up to: Перейти обратно: а б «О псевдослучайном генераторе ISAAC» (PDF) . Архив электронной печати по криптологии . Проверено 21 августа 2016 г.
- ^ Жан-Филипп Омассон, О псевдослучайном генераторе ISAAC . Архив криптологии ePrint, отчет 2006/438, 2006 г.
- ^ Сурадьюти Пол, Барт Пренил, О (не)безопасности потоковых шифров на основе массивов и модульного сложения.Asiacrypt 2006.
- ^ GNU coreutils git
- ^ «Справочник по математике Apache Commons» . Архивировано из оригинала 16 февраля 2022 г. Проверено 16 февраля 2022 г.
Внешние ссылки [ править ]
- Официальный сайт ISAAC
- Несколько реализаций ISAAC в Rosetta Code
- Порт Паскаль/Делфи
- Math::Random::ISAAC , реализация алгоритма в модуле Perl.
- isaac.js , реализация JavaScript