Алгоритм Skipjack, Шифрование информации. Структура алгоритма

Пользователям

Вебмастерам

Безминималки

Автовыплота

Карта сайта

 

Главная страница

Меню :

Главная страница +

Криптография -

Rijndael

ГОСТ №28147-89

Akelare

Anubis

Mars

RC6

Blowfish

Skipjack

Square

Статьи +

Документальные фильмы +

Экстракт здоровья +

 

      Skipjack.

      Алгоритм Skipjack был разработан АНБ - Агентством национальной безопасности США (National Security Agency, NSA) для шифрования в специальных применениях. Фактически Skipjack представлял собой еще один стандарт шифрования США - созданный в 1987 г. и существовавший одновременно со стандартом DES.
      Принципиальное различие между ними состоит в том, что DES - это открытый стандарт, алгоритм был опубликован и полностью открыт, что позволило всем заинтересованным специалистам оценить его стойкость. В отличие от DES, алгоритм Skipjack был долгое время засекречен, его описание стало доступно на сайте Национального института стандартов и технологий США (National Institute of Standards and Technology, NIST, http://csrc.nist.gov) только в 1998 г.

      

 

      Структура алгоритма.

 

      Skipjack шифрует данные блоками по 64 бита и использует 80-битный ключ шифрования. В процессе шифрования обработка данных выполняется по 16-битным словам, т. е. входной блок данных разбивается на четыре слова, обозначаемые w1, w2, w3 и w4. Выполняется 32 раунда преобразований, причем алгоритм предполагает два варианта функций раунда (функции A и B), и в каждом раунде выполняется только одна из них.

Рисунок 1. Функция A алгоритма Skipjack.

 

      Функция A (рис. 1) выполняется в 7 этапов: ·
1. Над словом w1 выполняется операция G, которая представляет собой зависящую от ключа перестановку (подробно описана ниже).
2. Результат предыдущего шага складывается операцией XOR со значением слова w4.
3. Результат предыдущего шага складывается операцией XOR с текущим значением счетчика (см. ниже), результат этой операции становится новым значением слова w1.
4. Текущее значение w3 замещает старое значение w4.
5. Текущее значение w2 замещает старое значение w3.
6. Результат шага 1 становится новым значением w2.
7. Значение счетчика увеличивается на 1.


Рисунок 2. Функция B алгоритма Skipjack.

      Функция B представлена на рис. 2 и выполняется в 8 этапов:
1. Над словом w1 выполняется операция G.
2. Значение слова w1 складывается операцией XOR с текущим значением счетчика.
3. Результат предыдущего шага складывается операцией XOR со значением слова w2.
4. Результат шага 1 становится новым значением слова w2.
5. Текущее значение w4 замещает старое значение w1.
6. Текущее значение w3 замещает старое значение w4.
7. Результат шага 3 становится новым значением слова w3.
8. Значение счетчика увеличивается на 1.


В процессе зашифрования восемь раз выполняется функция A, затем восемь раз - функция B, затем эти 16 раундов повторяются:
Открытый текст -> ( 8 * A ) ->( 8 * B ) ->( 8 * A ) ->( 8 * B ) -> Закрытый текст,
Перед выполнением данных 32 операций значение счетчика устанавливается равным 1.

Расшифрование проводится путем выполнения обратных операций в обратной последовательности. Перед расшифрованием значение счетчика устанавливается равным 32.

Операция G представляет собой четырехраундовую сеть Фейстеля (см. "Современные алгоритмы шифрования", "BYTE/Россия" № 8'2003), в которой в каждом раунде выполняются следующие операции (рис. 3):

Рисунок 3. Операция G алгоритма Skipjack.

 

Шаг 1. Обрабатываемый в текущем раунде байт входного слова (правый в нечетных раундах или левый - в четных) складывается операцией XOR с байтом ключа шифрования Ki, индекс которого определяется по формуле:
i = 4 * k + r mod 10, где k - номер текущего раунда алгоритма, r - номер текущего раунда операции G.

Шаг 2. Результат предыдущего шага замещается согласно таблице замен F (табл. 1); старший нибл входного значения определяет номер строки (начиная с нуля), а младший нибл - номер столбца, на пересечении которых находится выходное значение.

 

Таблица 2. Таблица замен F

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

0A

DF

02

A0

17

F1

60

68

12

B7

7A

C3

E9

FA

3D

53

2

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

3

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

4

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

5

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

6

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

7

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

8

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

9

...

...

...

...

ПРОИЗВОЛЬНЫЕ НЕПОВТОРЯЮЩИЕСЯ ЗНАЧЕНИЯ

...

...

...

...

...

...

10

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

11

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

12

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

13

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

14

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

15

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

16

AD

04

23

9C

14

51

22

F0

29

79

71

7E

FF

8C

0E

E2

 

Шаг 3. Результат предыдущего шага накладывается операцией XOR на другой байт входного слова.

 

Процедура расширения ключа у данного алгоритма отсутствует - операция G использует байты исходного ключа шифрования по мере необходимости без их предварительной обработки. Однако в спецификации алгоритма Skipjack определен также протокол KEA (Key Exchange Algorithm) - протокол выработки общего симметричного ключа на основе секретного ключа отправителя информации и открытого ключа получателя. Данный протокол базируется на известном алгоритме вычисления общего ключа Диффи - Хеллмана. Очевидно, что 80-битный ключ шифрования может быть как вычислен с помощью алгоритма KEA, так и задан напрямую, что более принято для алгоритмов симметричного шифрования.

 

      Достоинства и недостатки алгоритма:

 

В 1993 г. АНБ передало спецификацию алгоритма и сопроводительную документацию к нему пяти известным экспертам в области криптологии для изучения алгоритма и опубликования отчета, который не должен был содержать описания внутренней реализации алгоритма, однако должен был дать понять заинтересованным лицам (не в последнюю очередь благодаря авторитету изучавших алгоритм экспертов), что криптографическая стойкость алгоритма Skipjack не вызывает сомнений.
Отчет экспертов появился в июле 1993 г. и содержал, в частности, следующие выводы:

1. Благодаря 80-битному ключу алгоритма Skipjack (в сравнении с 56-битным ключом DES) крайне незначителен риск взлома алгоритма перебором всех возможных вариантов ключа (атака методом "грубой силы") в ближайшие 30-40 лет (с учетом предполагаемой скорости развития вычислительной техники).

2. Отсутствует серьезный риск взлома алгоритма более эффективными криптоаналитическими методами, включая метод дифференциального криптоанализа.

3. Криптостойкость алгоритма Skipjack не зависит от секретности самого алгоритма.


Полномасштабный криптоанализ Skipjack начался уже после опубликования его спецификации в 1998 г. В том же году вышла работа ряда специалистов из Израиля, в которой, в частности, было отмечено свойство несимметричности ключа шифрования Skipjack, незначительно снижающее трудоемкость полного перебора ключей. В этой же работе было представлено несколько атак на усеченные версии алгоритма с неполным числом раундов и другими изменениями. Стоит отметить одну из опубликованных атак, действовавшую против варианта Skipjack, в котором не было всего трех операций XOR по сравнению со стандартной версией - в раундах 4, 16 и 17. Такая версия алгоритма получила название Skipjack-3XOR; интересно, что удаление всего трех операций XOR из 320 подобных операций приводит к полной слабости алгоритма - в этом случае ключ вскрывается при наличии 29 пар блоков открытого текста и шифртекста путем выполнения всего около 1 млн операций шифрования.
В том же году авторы предыдущей работы представили новый вид дифференциального криптоанализа, основанного на поиске ключа "от противного": если попытка расшифрования двух шифртекстов на каком-либо ключе приводит к такому соотношению между результатами их расшифрования, которое невозможно в принципе, то данный ключ неверен. Данная технология криптоанализа может быть полезна, в частности, для существенного сужения области полного перебора ключей. Однако атаке оказались подвержены только усеченные версии алгоритма!!!

 

О Сущности, Разуме и многом другом... – сайт академика Николая Левашова. Этот сайт содержит Знания. Уникальные Знания, которые, до сих пор, не были доступны всем желающим. Это Знания о загадках Жизни, о строении Вселенной, о Сущности, Разуме и многом другом...    ->

Яндекс.Метрика