Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Композиции шифров

  была  однородной.  Это
обеспечило  бы  устойчивость  к  дифференциальному  криптоанализу  за   счет
сглаживания дифференциалов на любом отдельном  раунде.  В  качестве  примера
такого проектирования можно  назвать  алгоритм  LOKI.  Однако  такой  подход
иногда облегчает  дифференциальный  криптоанализ.  На  самом  деле,  удачнее
подход,  гарантирующий  наименьшее  значение  максимального   дифференциала.
Кванджо Ким (Kwangjo Kim) выдвинул пять критериев  проектирования  S-блоков,
напоминающих критерии проектирования S-блоков DES.
      Выбор  хороших  S-блоков  -  нелегкая   задача.   Известно   множество
конкурирующих  подходов  ее  решения;  среди  hих  можно   выделить   четыре
основных.
    V Случайный выбор. Ясно, что небольшие случайные S-блоки  ненадежны,  но
      крупные  случайные  S-блоки  могут  оказаться   достаточно   хорошими.
      Случайные S-блоки с восемью и более  входами  достаточно  стойки,  еще
      лучше 12-битовые S-блоки.  Стойкость  S-блоков  возрастает,  если  они
      одновременно и случайны, и зависят от ключа.
    V  Выбор  с  последующим  тестированием.  В  некоторых  шифрах   сначала
      генерируются случайные S-блоки, а затеи  их  свойства  тестируются  на
      соответствие требованиям.
    V Разработка  вручную.  При  этом  математический  аппарат  используется
      крайне незначительно: S-блоки создаются с  использованием  интуитивных
      приемов. Барт Пренел (Bart  Preneel)  заявил,  что  «...  теоретически
      интересные  критерии  недостаточны  (для  выбора  булевых  функций  S-
      блоков)...», и «... необходимы специальные критерии проектирования».
    V Математическая разработка. S-блоки создаются в соответствии с законами
      математики,   поэтому   обладают   гарантированной   устойчивостью   к
      дифференциальному и линейному криптоанализу и  хорошими  рассеивающими
      свойствами.

     Раздавались призывы объединить «математический» и «ручной» подходы,  но
реально, по-видимому, конкурируют случайно выбранные  S-блоки  и  S-блоки  с
определенными свойствами. К преимуществам последнего подхода  можно  отнести
оптимизацию  против  известных  методов  вскрытия  —   дифференциального   и
линейного криптоанализа. Однако в  этом  случае  неясна  степень  защиты  от
неизвестных методов вскрытия.  Разработчики  DES  знали  о  дифференциальном
криптоанализе, поэтому S-блоки DES оптимизированы  надлежащим  образом.  Но,
вероятнее всего, о линейном криптоанализе они не знали, и S-блоки DES  очень
слабы по отношению к такой атаке. Случайно выбранные S-блоки в DES  были  бы
слабее  к  дифференциальному  криптоанализу,  но  устойчивее   к   линейному
криптоанализу.
     С другой стороны, случайные S-блоки могут быть и неоптимальны к  данным
атакам, но они могут быть достаточно большими и,  следовательно,  достаточно
стойкими. Кроме того, они, скорее всего, окажутся достаточно  устойчивыми  к
неизвестным методам вскрытия. Споры все еще кипят,  но  лично  мне  кажется,
что S-блоки должны быть такими большими, насколько это возможно,  случайными
и зависящими от ключа.

2.7. Проектирование блочного шифра
     Спроектировать блочный шифр  нетрудно.  Если  рассматривать  64-битовый
блочный шифр как перестановку 64-битовых чисел,  ясно,  что  почти  все  эти
перестановки безопасны. Трудно спроектировать такой  блочный  шифр,  который
не только стоек, но также может быть легко описан и реализован.
     Нетрудно спроектировать блочный шифр, если объем памяти достаточен  для
размещения 48*32-битовых S-блоков. Трудно спроектировать  нестойкий  вариант
алгоритма DES, если нужно использовать в нем 128 раундов.  При  длине  ключа
512  битов  нет  нужды  беспокоиться  о  какой-либо   зависящей   от   ключа
комплементарности.
     Настоящий фокус  -  и  причина,  почему  на  самом  деле  очень  трудно
спроектировать  блочный  шифр  -  это  разработать   алгоритм   с   возможно
наименьшим ключом, требованиям к памяти и максимальной скоростью работы.

                              3. Блочные шифры

3.1. Алгоритм Lucifer
     В конце шестидесятых годов корпорация IBM  запустила  исследовательскую
программу  по  компьютерной  криптографии,  названную  Lucifer  (Люцифер)  и
руководимую сначала  Хорстом  Файстелем  (Horst  Feistel),  а  затем  Уолтом
Тачменом (Walt Tuchman). Такое же имя - Lucifer - получил блочный  алгоритм,
появившийся в результате  этой  программы  в  начале  семидесятых  годов.  В
действительности существует, по меньшей  мере,  два  различных  алгоритма  с
таким именем. Один из них содержит ряд пробелов  в  спецификации  алгоритма.
Все это привело к заметной путанице.
     Алгоритм Lucifer представляет собой сеть  перестановок  и  подстановок,
его основные блоки напоминают блоки алгоритма DES. В DES  результат  функции
f складывается операцией XOR  с  входом  предыдущего  раунда,  образуя  вход
следующего раунда. У S-блоков алгоритма Lucifer 4-битовые  входы  и  выходы,
вход S-блоков представляет собой перетасованный выход  S-блоков  предыдущего
раунда, входом S-блоков первого раунда служит  открытый  текст.  Для  выбора
используемого S-блока из двух возможных  используется  бит  ключа.  (Lucifer
реализует все это в едином Т-блоке с  9  битами  на  входе  и  8  битами  на
выходе). В отличие от  алгоритма  DES,  половины  блока  между  раундами  не
переставляются, да и само понятие половины  блока  в  алгоритме  Lucifer  не
используется. У этого  алгоритма  16  раундов,  128-битовые  блоки  и  более
простая, чем в DES, схема развертки ключа.
     Применив дифференциальный криптоанализ к  первой  реализации  алгоритма
Lucifer, Бихам и Шамир показали, что  Lucifer  с  32-битовыми  блоками  и  8
раундами можно взломать с помощью 40 подобранных  открытых  текстов  за  229
операций. Этот же метод позволяет вскрыть Lucifer с 128-битовыми  блоками  и
8 раундами с помощью 60 подобранных открытых текстов за  253  шагов.  Другая
дифференциальная  атака  вскрывает  18-раундовый,  128-битовый   Lucifer   с
помощью 24 подобранных открытых  текстов  за  221  операций.  Во  всех  этих
вскрытиях   использовались   стойкие   S-блоки   алгоритма   DES.   Применив
дифференциальный криптоанализ ко второй реализации Lucifer,  Бихам  и  Шамир
обнаружили, что его S-блоки намного слабее, чем в алгоритме DES.  Дальнейший
анализ показал нестойкость более половины возможных ключей. Криптоанализ  на
основе связанных ключей  позволяет  взломать  128-битовый  Lucifer  с  любым
числом раундов с помощью 233 подобранных открытых  текстов  для  подобранных
ключей или 265 известных открытых текстов  для  подобранных  ключей.  Вторая
реализация Lucifer еще слабее.
     Некоторые полагают, что Lucifer надежнее DES из-за большей длины  ключа
и малочисленности опубликованных сведений. Но очевидно, что это не  так.  На
алгоритм Lucifer выданы нескольких патентов США. Сроки  действия  всех  этих
патентов уже истекли.
3.2. Алгоритм Madryga
     В. Е. Мадрига (W. E. Madryga) предложил этот блочный  алгоритм  в  1984
году. Его можно эффективно реализовать программным путем:  в  алгоритме  нет
раздражающих перестановок, и все операции выполняются над байтами.
     Стоит  перечислить  задачи,  которые  решал  автор  при  проектировании
алгоритма:
    V Без помощи ключа открытый текст  невозможно  получить  из  шифртекста.
      (Это означает только то, что алгоритм стоек).
    V Число  операций,  необходимых  для  восстановления  ключа  по  образцу
      шифртекста  и  открытого  текста,  должно  быть  статистически   равно
      произведению числа операций при шифровании на число возможных  ключей.
      (Это означает, что никакое вскрытие с открытым текстом не  может  быть
      эффективнее лобового вскрытия).
    V Опубликование алгоритма не влияет на  стойкость  шифра.  (Безопасность
      полностью определяется ключом).
    V Изменение одного  бита  ключа  должно  радикально  изменять  шифртекст
      одного и того же открытого текста, а изменение одного  бита  открытого
      текста  должно  радикально  изменять  шифртекст  для  того  же   ключа
      (лавинный эффект).
    V Алгоритм должен содержать  некоммутативную  комбинацию  подстановок  и
      перестановок.
    V  Подстановки  и  перестановки,  используемые   в   алгоритме,   должны
      определяться как входными данными, так и ключом.
    V  Избыточные  группы  битов  открытого  текста  должны  быть  полностью
      замаскированы в шифртексте.
    V Длина шифртекста должна совпадать с  длиной открытого текста.
    V Между любыми возможными ключами и особенностями шифртекста недопустимы
      простые взаимосвязи.
    V Все возможные ключи должны обеспечивать стойкость  шифра.  (Не  должно
      быть слабых ключей).
    V  Длина  ключа  и  текст  должны  иметь  возможность  варьирования  для
      реализации различных требований к безопасности.
    V  Алгоритм  должен  допускать  эффективную  программную  реализацию  на
      мэйнфреймах, мини- и микрокомпыотерах и с помощью  дискретной  логики.
      (По существу, число  функций,  используемых  в  алгоритме,  ограничено
      операциями XOR и битовым сдвигом).

     Алгоритм DES удовлетворял первым девяти требованиям, но  последние  три
появились впервые. Если допустить, что  лучший  способ  взлома  алгоритма  -
лобовое вскрытие, переменная длина ключа,  конечно  же,  заставит  замолчать
тех, кто считает, что 56 битов - слишком малая величина.  Такие  люди  могут
реализовать этот алгоритм с любой длиной ключа. А  любой,  кто  когда-нибудь
пытался  реализовать  DES  программными  средствами,  обрадуется  алгоритму,
который учитывает особенности программных реализаций.

3.3.1. Описание алгоритма Madryga
     Алгоритм  Madryga  состоит  из  двух  вложенных  циклов.  Внешний  цикл
повторяется  восемь  раз  (для  гарантии  надежности  число   циклов   можно
увеличить) и заключается в применени
12345След.
скачать работу

Композиции шифров

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ