Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Защита информации. Курс лекций

SEAL (Software Encryption ALgorithm) представляет собой приспособленный для программной реализации потоковый шифр, разработанный Филом Рогэвэем и Доном Копперсмитом из компании IBM. Алгоритм оптимизирован для 32-разрядных процессоров. Для эффективной работы ему требуются 8 32-разрядных регистров и кэш объемом несколько килобайт.

Одним из замечательных свойств этого шифра является то, что он не является потоковым шифром в традиционном смысле, а представляет собой семейство псевдослучайных функций. 160-битовый ключ к и 32- битовое значение п (индекс) шифр преобразует в L-битовую строку k(n). L может принимать любое значение, меньшее 64 килобайт. Такой шифр мы будем обозначать SEAL(&, п, L). Предполагается, что если к выбирается случайно, то к(п) будет вычислительно неотличима от случайной L- битовой функции от п.

На практике это дает еще одно преимущество. Большинство шифров генерирует битовые последовательности в одном направлении. Зная ключ к и позицию /, определить значение i-го бита ключевой последовательности можно только вычислив все биты до i-го один за другим. В случае семейства псевдослучайных функций мы получаем простой доступ к любому элементу ключевой последовательности. Это оказывается весьма полезным.

Предположим, что необходимо зашифровать содержимое жесткого диска компьютера по 512-байтным секторам. Тогда сектор с номером п будет шифроваться с помощью ключевом последовательности к(п). При этом легко может быть обеспечен доступ к произвольному сектору диска.

Основные идеи, лежащие в основе этого алгоритма, можно сформулировать следующим образом:

  • 1. Использование большого секретного зависящего от ключа блока замены Т;
  • 2. Перемежение операций, не коммутирующих друг с другом (сложение и исключающее ИЛИ);
  • 3. Использование внутреннего состояния, явно не проявляющегося в потоке данных (значения п, используемые в конце итерации для модификации регистров А и С);
  • 4. Изменение шаговой функции в зависимости от номера шага и изменение итерационной функции в зависимости от номера итерации.
  • 5. Использование известных и отработанных алгоритмов для заполнения таблиц. Шифр SEAL требует пять элементарных машинных операции в пересчете на один байт текста при шифровании и расшифровании. Таким образом, он является одним из самых быстрых программно реализуемых алгоритмов.

Алгоритм WAKE (от англ. Word Auto Key Encryption - шифрованно слов с автоключом) был предложен Дэвидом Унлером. На выходе мы получаем последовательность 32-битовых слов, которые могут служить в качестве гаммы шифра. WAKE работает в режиме CFB - предыдущее слово шифрованного текста используется для генерации следующего слова ключевой последовательности.

R алгоритме используется специальный блок замены S из 256 32- битных слов. При этом старшие байты этих слов являются перестановкой чисел от 0 до 255, а остальные три младших банта выбираются случайными.

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

Данный шифр является достаточно быстрым, хотя и нестойким к атакам по выбранному исходному тексту.

 
Посмотреть оригинал
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >
     
    Популярные страницы