22
Государственный университет - Высшая школа экономики КОДЫ ГРЕЯ НАД ПОЛЯМИ ГАЛУА 2 N В СИММЕТРИЧНОЙ КРИПТОГРАФИИ

Коды грея над полями Галуа

  • Upload
    -

  • View
    389

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Коды грея над полями Галуа

Государственный университет - Высшая школа экономики

КОДЫ ГРЕЯ НАД ПОЛЯМИ ГАЛУА 2N В

СИММЕТРИЧНОЙ КРИПТОГРАФИИ

Москва 2010

Page 2: Коды грея над полями Галуа

ОглавлениеВведение...................................................................................................................3

Сеть Фейстеля......................................................................................................3Стандарт ГОСТ 28147-89...................................................................................4

Ключевая информация....................................................................................5Основной шаг криптопреобразования..........................................................5Замечания по архитектуре ГОСТа.................................................................6

Недостатки алгоритмов ГОСТ 28147-89 и DES...............................................7Другие Российские криптографические стандарты.........................................7Алгоритм AES......................................................................................................8

Процедура SubBytes........................................................................................9Процедура ShiftRows......................................................................................9Процедура MixColumns..................................................................................9Процедура AddRoundKey...............................................................................9Недостатки алгоритма AES............................................................................9

Описание решения................................................................................................10Коды Грея...........................................................................................................10Коды Грея над полями Галуа GF(2k)...............................................................11

Составные коды Грея над полем GF(2k)......................................................12Суть решения.....................................................................................................13Ключ преобразования.......................................................................................14Устойчивость.....................................................................................................14

Заключение............................................................................................................15Список использованной литературы...................................................................16

Page 3: Коды грея над полями Галуа

ВведениеВ настоящее время информация представляет большую ценность.

Нужная информация в нужное время может принести огромную пользу ее владельцу и, наоборот, получение информации третьими лицами может нанести большой финансовый урон ее владельцу.

Именно защитой информации от несанкционированного доступа занимается особая наука - криптография. Важность данной науки невозможно недооценить, так как в наш век большие объемы конфиденциальной информации передаются на все большие расстояния, причем через каналы, доступ к которым получить очень просто.

Необходимость защиты такой информации признана по всему миру, многие исследовательские институты занимаются разработкой новых алгоритмов шифрования и доработкой существующих. Так, в 1975 в США был принят алгоритм DES, как стандарт криптографической защиты [2]. В СССР так же не оставляли данную проблему без внимания и, хоть и с некоторым запозданием, в 1990-м году был принят отечественный стандарт шифрования ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования», который, как и DES, основан на сети Фейстеля, однако, является более совершенным, благодаря значительно увеличенной длине ключа, количеству циклов преобразования и некоторым другим параметрам [3].

Сеть ФейстеляСеть Фейстеля имеет следующую структуру. Входной блок делится на

несколько равной длины подблоков, называемых ветвями. В случае, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Каждая ветвь обрабатывается независимо от другой, после чего осуществляется циклический сдвиг всех ветвей влево. Такое преобразование выполняется несколько циклов или раундов. В случае двух ветвей каждый раунд имеет структуру, показанную на рисунке, приведенном ниже:

Рис. 1. 1-ый раунд сети ФейстеляФункция F называется образующей. Каждый раунд состоит из

вычисления функции F для одной ветви и побитового выполнения операции

Page 4: Коды грея над полями Галуа

XOR результата F с другой ветвью. После этого ветви меняются местами. Считается, что оптимальное число раундов - от 8 до 32. Важно то, что увеличение количества раундов значительно увеличивает криптостойкость алгоритма. Возможно, эта особенность и повлияла на столь активное распространение сети Фейстеля, так как для большей криптостойкости достаточно просто увеличить количество раундов, не изменяя сам алгоритм. В последнее время количество раундов не фиксируется, а лишь указываются допустимые пределы.

Сеть Фейстеля является обратимой даже в том случае, если функция F не является таковой, так как для дешифрования не требуется вычислять F-1. Для дешифрования используется тот же алгоритм, но на вход подается зашифрованный текст, и ключи используются в обратном порядке.

В настоящее время все чаще используются различные разновидности сети Фейстеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви, связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32-разрядными словами эффективнее, чем с 64-разрядными.

Основной характеристикой алгоритма, построенного на основе сети Фейстеля, является функция F. Различные варианты касаются также начального и конечного преобразований. Подобные преобразования, называемые забеливанием (whitening), осуществляются для того, чтобы выполнить начальную рандомизацию входного текста. [7]

Стандарт ГОСТ 28147-89В ГОСТ 28147–89, содержится описание алгоритмов нескольких

уровней. На самом верхнем находятся практические алгоритмы, предназначенные для шифрования массивов данных и выработки для них имитовставки. Все они опираются на три алгоритма низшего уровня, называемые в тексте ГОСТа циклами. Эти алгоритмы, далее по тексту, будут называться базовыми циклы. Они имеют следующие названия:

цикл зашифрования; цикл расшифрования; цикл выработки имитовставки.В свою очередь, каждый из базовых циклов представляет собой

многократное повторение одной единственной процедуры, называемой для определенности далее в настоящей работе основным шагом криптопреобразования. Таким образом, чтобы разобраться в ГОСТе, надо понять три следующие вещи:

a) что такое основной шаг криптопреобразования;b) как из основных шагов складываются базовые циклы;c) как из трех базовых циклов складываются все практические алгоритмы

ГОСТа.

Page 5: Коды грея над полями Галуа

Ключевая информацияПрежде чем перейти к изучению этих вопросов, следует поговорить о

ключевой информации, используемой алгоритмами ГОСТа. Именно ее секретность обеспечивает секретность зашифрованного сообщения. В ГОСТе ключевая информация состоит из двух структур данных. Помимо собственно ключа, необходимого для всех шифров, она содержит еще и таблицу замен. Ниже приведены основные характеристики ключевых структур ГОСТа.

Ключ является массивом из восьми 32-битовых элементов кода. В ГОСТе элементы ключа используются как 32-разрядные целые числа без знака. Таким образом, размер ключа составляет 32·8 = 256 бит или 32 байта.

Таблица замен может быть представлена в виде матрицы размера 8*16, содержащей 4-битовые элементы, которые можно представить в виде целых чисел от 0 до 15. Строки таблицы замен называются узлами замен, они должны содержать различные значения, то есть каждый узел замен должен содержать 16 различных чисел от 0 до 15 в произвольном порядке. Таким образом, общий объем таблицы замен равен: 8 узлов * 16 элементов/узел * 4 бита/элемент = 512 бит или 64 байта.

Основной шаг криптопреобразования.Основной шаг криптопреобразования по своей сути является

оператором, определяющим преобразование 64-битового блока данных. Дополнительным параметром этого оператора является 32-битовый блок, в качестве которого используется какой-либо элемент ключа.

Алгоритм основного шага: Шаг 0. Определить исходные данные для основного шага

криптопреобразования Шаг 1. Сложение с ключом. Младшая половина преобразуемого блока

складывается по модулю 232 с используемым на шаге элементом ключа, результат передается на следующий шаг

Шаг 2. Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода. Далее значение каждого из восьми блоков заменяется новым, которое выбирается по таблице замен следующим образом: значение блока Si меняется на Si-тый по порядку элемент (нумерация с нуля) i-того узла замен (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. Теперь становится понятным размер таблицы замен: число строк в ней равно числу 4-битовых элементов в 32- битовом блоке данных, то есть восьми, а число столбцов равно числу различных значений 4- битового блока данных, равному, как известно 24, шестнадцати.

Page 6: Коды грея над полями Галуа

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

Шаг 4. Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.

Шаг 5. Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага.

Шаг 6. Полученное значение преобразуемого блока возвращается, как результат выполнения алгоритма основного шага криптопреобразования.

Замечания по архитектуре ГОСТаОбщеизвестно, что шифр ГОСТ 28147-89 является представителем

целого семейства шифров, построенных на одних и тех же принципах. Самым известным его «родственником» является американский стандарт шифрования, алгоритм DES.

Все эти шифры, подобно ГОСТу, содержат алгоритмы трех уровней. В основе всегда лежит некий «основной шаг», на базе которого сходным образом строятся «базовые циклы», и уже на их основе построены практические процедуры шифрования и выработки имитовставки. Таким образом, специфика каждого из шифров этого семейства заключена именно в его основном шаге, точнее даже в его части. Алгоритмы «основных шагов криптопреобразования» для шифров, подобных ГОСТу, построены идентичным образом.

На вход основного шага подается блок четного размера, старшая и младшая половины которого обрабатываются отдельно друг от друга. В ходе преобразования, младшая половина блока помещается на место старшей, а старшая, скомбинированная с помощью операции побитового исключающего или с результатом вычисления некоторой функции, на место младшей. Эта функция, принимающая в качестве аргумента младшую половину блока и некоторый элемент ключевой информации (X), является содержательной частью шифра и называется его функцией шифрования. Соображения стойкости шифра требуют, чтобы размеры всех перечисленных элементов блоков были равны: |N1| = |N2| = |X|, в ГОСТ и DESе они равны 32 битам. В циклах шифрования ГОСТа основной шаг повторяется 32 раза, для DESа эта величина равна 16. Однако сама функция шифрования ГОСТа существенно проще аналогичной функции DES, в которой присутствует множество нерегулярных битовых перестановок. Эти операции чрезвычайно неэффективно реализуются на современных неспециализированных процессорах. ГОСТ не содержит подобных операций, поэтому он значительно удобней для программной реализации. Ни одна из реализаций DESа для платформы Intel x86 не достигает даже половины производительности реализации ГОСТа, несмотря на вдвое более короткий цикл. Все сказанное выше свидетельствует о том, что разработчики ГОСТа

Page 7: Коды грея над полями Галуа

учли как положительные, так и отрицательные стороны DESа, а также более реально оценили текущие и перспективные возможности криптоанализа.[4]

Недостатки алгоритмов ГОСТ 28147-89 и DESВ условиях постоянно увеличивающейся мощности компьютеров,

данные алгоритмы становятся уязвимыми для атак, к которым ранее считались устойчивыми, например, дифференциальный криптоанализ для DES. Кроме того, появляются новые алгоритмы взлома, например, EFF DES Cracker, позволивший найти ключ к данным, зашифрованным с помощью DES, всего за 56 часов. [5]Для алгоритма ГОСТ 28147-89 существует множество атак [8], которые возможны, в том числе из за следующих недостатков:

Тривиально доказывается, что у ГОСТа существуют «слабые» ключи и таблицы замен, но в стандарте не описываются критерии выбора и отсева «слабых». Также стандарт не специфицирует алгоритм генерации таблицы замен (S-блоков). С одной стороны, это может являться дополнительной секретной информацией (помимо ключа), а с другой, поднимает ряд проблем:

нельзя определить криптостойкость алгоритма, не зная заранее таблицы замен;

реализации алгоритма от различных производителей могут использовать разные таблицы замен и могут быть несовместимы между собой;

возможность преднамеренного предоставления слабых таблиц замен лицензирующими органами РФ;

потенциальная возможность (отсутствие запрета в стандарте) использования таблиц замены, в которых узлы не являются перестановками, что может привести к чрезвычайному снижению стойкости шифра.

[3].

Другие Российские криптографические стандартыВ России в 1994 году был принят первый отечественный стандарт в

области электронной цифровой подписи (ЭЦП) — ГОСТ Р34.10-94 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма». Он определяет процедуры работы с ЭЦП на основе схемы Эль Гамаля. Невозможность подделки подписи основана на сложности решения задачи дискретного логарифмирования в поле из р элементов. Однако математика не стоит на месте, и недавно был изобретен так называемый метод «решета числового поля». С его помощью можно «взломать» ЭЦП, сформированную по схеме Эль Гамаля, по крайней мере в случае 512-битного модуля р [6].

Однако отечественные разработки в области ЭЦП на этом не остановились и в 2001-м году был издан новый стандарт ГОСТ Р 34.10-2001

Page 8: Коды грея над полями Галуа

«Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи». В основе алгоритма лежат вычисления в полях Галуа и эллиптические кривые. Данный алгоритм при длине ключа в 512 бит превышает по стойкости RSA-1024, так как задача его перебора гораздо сложнее. [6]

В нашем веке широкое признание в симметричной криптографии получила арифметика в полях Галуа.

Вычисления в полях Галуа используются, в различных алгоритмах. Среди них: Anubis, Grand Cru и RIJNDAEL, которые являются симметричными алгоритмами блочного шифрования. Алгоритм RIJNDAEL принят в США в качестве стандарта и является самым распространенным алгоритмом симметричного шифрования.

Алгоритм AESAES является стандартом, основанным на алгоритме Rijndael. Для AES

длина input (блока входных данных) и State(состояния) постоянна и равна 128 бит, а длина шифроключа K составляет 128, 192, или 256 бит. Для обозначения выбранных длин input, State и Cipher Key в байтах используется нотация число столбцов Nb = 4 для input и State, число 32-ух битных слов, составляющих шифроключ Nk = 4, 6, 8 для Cipher Key соответственно для разных длин ключей.

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

Прямое и обратное преобразования в шифре имеют одинаковую алгоритмическую структуру и различаются константами сдвига, ключевыми элементами, узлами замен и константами умножения. При аппаратной реализации они могут быть совмещены на 60%, при программной реализации оптимальное быстродействие может быть достигнуто лишь при полностью раздельных реализациях обеих функций.[http://www.enlight.ru/crypto/algorithms/rijndael/rijndael00.htm]

В начале шифрования input копируется в массив State по правилу state[r,c] = input[r + 4c], для 0<=r<=4 и 0<=c<=Nb. После этого к State применяется процедура AddRoundKey() и затем State проходит через процедуру трансформации (раунд) 10, 12, или 14 раз (в зависимости от длины ключа), при этом надо учесть, что последний раунд несколько отличается от предыдущих. В итоге, после завершения последнего раунда трансформации,

Page 9: Коды грея над полями Галуа

State копируется в output по правилу out[r + 4c] = s[r,c], для 0<=r<=4 и 0<=c<=Nb.

Каждый раунд, кроме последнего, состоит из последовательного применения процедур SubBytes, ShiftRows, MixColumns, AddRoundKey.

Процедура SubBytesНелинейное перемешивание представлено процедурой SubBytes,

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

Процедура ShiftRowsShiftRows работает со строками State. При этой трансформации строки

состояния циклически сдвигаются на r байт по горизонтали, в зависимости от номера строки. Для нулевой строки r = 0, для первой строки r = 1 и тд… Таким образом каждая колонка выходного состояния после применения процедуры ShiftRows состоит из байтов из каждой колонки начального состояния. Для алгоритма Rijndael паттерн смещения строк для 128 и 192-ух битных строк одинаков. Однако для блока размером 256 бит отличается от предыдущих тем, что 2, 3, и 4-е строки смещаются на 1, 3, и 4 байта соответственно.

Процедура MixColumnsВ процедуре MixColumns, четыре байта каждой колонки State

смешиваются, используя для этого обратимую линейную трансформацию. MixColumns обрабатывает состояния по колонкам, трактуя каждую из них как полином четвертой степени. Над этими полиномами производится умножение в GF(28) по модулю x4 + 1 на фиксированный многочлен c(x) = 3x3

+ x2 + x + 2. Вместе с ShiftRows , MixColumns вносит диффузию в шифр.

Процедура AddRoundKey.В процедуре AddRoundKey, ключ каждого раунда объединяется со

State. Для каждого раунда ключ получается из ключа шифрования при использовании спецаильной процедуры. Каждый ключ раунда такого же размера, что и State. Процедура производит побитовый XOR каждого байта State с каждым байтом ключа раунда. [1]

Недостатки алгоритма AESВ августе 2009 были опубликованы интересные результаты

исследования атак на алгоритм шифрования AES-256.Один из выводов исследования гласит, что алгоритмы AES-192 и AES-

256 имеют уязвимость в процедуре «Key Expansion», что в некоторых

Page 10: Коды грея над полями Галуа

случаях делает AES-256 более уязвимым, чем AES-128. Этот факт опровергает идею о том, что шифр с более длинным ключом должен быть надежнее.

Хотя поводов для паники пока нет, в своем блоге эксперт по безопасности Брюс Шнайер советует воздержаться от использования AES-256 в новых приложениях. AES-128 предоставляет более чем необходимый уровень защиты для обозримого будущего, но в случае, если приложение уже использует AES-256, нет причин что-то менять.[http://www.schneier.com/blog/archives/2009/07/new_attack_on_a.html]

Как видно, во всем мире идет постоянная работа по развитию и улучшению алгоритмов. В России же, до недавнего времени, симметричным криптографическим алгоритмам уделялось недостаточно внимания. Отечественный стандарт устарел и не обеспечивает должный уровень защиты.

Описание решенияВ данной работе предлагается использовать кодирование Грея над

полями Галуа 2n в качестве альтернативы этапам линейного и нелинейного перемешивания алгоритма RIJNDAEL, являющегося основой стандарта AES.

Коды ГреяКод Грея - непозиционный код с одним набором символов (0 и 1) для

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

Младший разряд в последовательности чисел в коде Грея принимает значения 0 и 1, затем следующий старший разряд становится единичным и младший разряд принимает свои значения уже в обратном порядке (1, 0). Этим и объясняется название кода - "отражённый". Соответственно, два младших разряда принимают значения 00, 01, 11, 10, а затем, при единичном следующем старшем разряде, те же значения в обратном порядке (10, 11, 01, 00). Ниже дана таблица, показывающая первые восемь чисел в двоичном коде и в коде Грея.

Таблица 1. Первые восемь чисел в коде ГреяN Прямой код Код Грея

Page 11: Коды грея над полями Галуа

0 000 0001 001 0012 010 0113 011 0104 100 1105 101 1116 110 1017 111 100

Код Грея отличается от позиционного кода только интерпретацией значения бит в числе, поэтому числа в разных кодах можно хранить в одних и тех же переменных. Более того, одно и то же значение переменной также можно интерпретировать по-разному - это просто даст разные числа.

Коды Грея над полями Галуа GF(2k)Классическое преобразование Грея m-ичных n-разрядных чисел

определяется системой линейных модульных уравнений:

Yn-1=xn-1;Yn-2=xn-1+xn-2;… ;Y0=x1+x0

Где операция + - сложение по модулю m.

Элементами поля Галуа GF(2k) являются полиномы вида:P(x) =ak-1Xk-1+ ak-2Xk-2+ …+a1X+a0

С коэффициентами разложения ai, принадлежащими GF(2).Все преобразования выполняются по модулю неприводимого

многочлена степени k, обозначим его φ. В полях Галуа GF(2k) арифметические операции сложения и вычитания двух произвольных полиномов P1(x) b P2(x) сводятся к поразрядному сложению и вычитанию по модулю 2. Из этого следует, что эти операции не подходят для построения преобразований Грея по модулю неприводимого полинома, так как результатом этих операций будет многочлен, не превышающий своим порядком полином, используемый в качестве модуля преобразования.Выберем в качестве бинарной операции прямого преобразования Грея операцию умножения по модулю φ. Умножение двух полиномов, порядок которых k1 и k2 соответственно, приводит в полях Галуа к полиному P, порядок которого k+=k1+k2-1. В том случае, когда k+ оказывается не меньшим, чем k возникает необходимость в приведении полинома P к остатку по модулю φ. Исходя из данных рассуждений, составим схему формирования четырехразрядного прямого левостороннего кода Грея над полем Галуа GF(28) для четырех элементов, которая представлена на рис. 1

Page 12: Коды грея над полями Галуа

Рис. 1Обратное преобразование представлено на рис. 2

Рис. 2

Составные коды Грея над полем GF(2k)Системам линейных модульных уравнений (1) и (2) можно придать

матричные формы:y = x M ; x = y M-1,в которых x и y - входной и выходной операнды, а M и M-1 - матрицы прямого и обратного левостороннего преобразования Грея. Здесь термин левосторонний означает направление преобразования, развивающееся (согласно рис. 1 и 2) слева направо. Для n = 4 канонические, т.е. независящие от основания системысчисления (модуля) m, матрицы преобразования M и M-1, которым для удобства мы придадим цифровые обозначения 2 и 3 соответственно, имеют вид:

1 1 0 0 1 - 1 1 -12 = 0 1 1 0 3 = 0 1 -1 1

0 0 1 1 0 0 1 -10 0 0 1 0 0 0 1

В монографии [1] введен так называемый класс правосторонних кодов Грея, матрицы преобразования которых образуются транспонированием матриц преобразования левосторонних кодов Грея. Для прямого и обратного правостороннего преобразований Грея (придадим им цифровые обозначения 4 и 5 соответственно) получим:

Page 13: Коды грея над полями Галуа

1 0 0 0 1 0 0 04 = 1 1 0 0 5 = -1 1 0 0

0 1 1 0 1 -1 1 00 0 1 1 -1 1 -1 1

Дополним систему матриц преобразований Грея (8) и (10) матрицей эквивалентных преобразований e , являющейся единичной матрицей n -го порядка, и матрицей инверсной перестановки с цифровым обозначением 1 Для n = 4:

1 0 0 0 0 0 0 11 = 0 1 0 0 e = 0 0 1 0

0 0 1 0 0 1 0 00 0 0 1 1 0 0 0

Легко проверить, что (2 • 3)m = (3 • 2)m = e , а также (4 • 5)m = (5 • 4)m = e, как и должно быть по определению.

К составным кодам Грея будем относить коды, образованные различными комбинациями лево- и правостороннего преобразований Грея (как прямого, так и обратного), дополненные в отдельных случаях операцией инверсной перестановки. Таким образом, составной код Грея (СКГ) есть некоторая последовательность простых операторов Грея. Например, СКГ G = 212 означает, что некоторый входной вектор x сначала подвергается прямому левостороннему преобразованию Грея, затем вектор, сформированный на первом этапе преобразования, подвергается инверсной перестановке, после чего снова выполняется прямое левостороннее преобразование Грея.

Суть решенияКомбинируя указанные преобразования, можно получить составные

коды Грея, с помощью которых можно шифровать исходные тексты. Всего различных матриц преобразований существует 37, без учета матриц перестановки. Максимальное количество последовательно примененных простых преобразований для составления сложного – 12. Для 4 многочленов существует 23 матрицы перестановки, не считая единичной, которые можно встраивать в матрицу преобразования, однако, не все из них допустимы, так как встраивание некоторых из них в преобразования приводит к получению элементов, отличных от 0, 1 и -1. (Признаков допустимых преобразований выявить не удалось). Возведение матриц простых преобразований в степени, также приводит к такому результату. Допустимыми являются лишь преобразования, составленные из последовательнного применения преобразований 2, 5 и 3, 4. Причем, для составного кода Грея, соответствующего последовательному применению преобразований 2525, существует обратное преобразование 3434.

Page 14: Коды грея над полями Галуа

Ключ преобразованияКлюч должен состоять из двух частей одинаковой длины. В качестве

первой части ключа алгоритма шифрования предлагается использовать неприводимый многочлен, по модулю которого производятся вычисления. Число таких многочленов при n=8 равно тридцати, при n=16 оно увеличивается до 4080, а при n=32 составляет 134215680. Вторую часть ключа предлагается использовать для гаммирования.

Таким образом, алгоритм шифрования вместо процедур SubBytes и MixColumns алгоритма AES, будет использовать собственную процедуру, выполняющую преобразование Грея над полем Галуа 2n, где n определяется длиной ключа. То есть, если длина ключа 128 бит, то первые 64 из них определяют коэффициенты разложения неприводимого многочлена. Так как старший коэффициент приведения всегда равен 1, иначе степень многочлена будет ниже, и младший коэффициент приведения всегда 1, как необходимое условие неприводимости, то эти коэффициенты не включаются в ключ и 64 бита определяют многочлен 65-й степени, то есть n будет равен 65. Следует не забывать, что в алгоритме каждый преобразуемый элемент интерпретируется как многочлен, причем его порядок, должен быть по крайней мере на единицу меньше порядка неприводимого многочлена. Применяемое преобразование Грея должно быть фиксировано в алгоритме.

УстойчивостьПри выборе криптографического алгоритма для использования в

конкретной разработке одним из определяющих факторов является его стойкость, то есть устойчивость к попыткам противоположной стороны его раскрыть. Вопрос о стойкости шифра при ближайшем рассмотрении сводится к двум взаимосвязанным вопросам:

1. можно ли вообще раскрыть данный шифр;2. если да, то насколько это трудно сделать практически;

Шифры, которые вообще невозможно раскрыть, называются абсолютно или теоретически стойкими. Существование подобных шифров доказывается теоремой Шеннона, однако ценой этой стойкости является необходимость использования для шифрования каждого сообщения ключа, не меньшего по размеру самого сообщения. Во всех случаях, за исключением ряда особых, эта цена чрезмерна, поэтому на практике в основном используются шифры, не обладающие абсолютной стойкостью. Таким образом, наиболее употребительные схемы шифрования могут быть раскрыты за конечное время или, что точнее, за конечное число шагов, каждый из которых является некоторой операцией над числами. Для них наиважнейшее значение имеет понятие практической стойкости, выражающее практическую трудность их раскрытия. Количественной мерой этой трудности может служить число элементарных арифметических и логических операций, которые необходимо выполнить, чтобы раскрыть шифр, то есть чтобы для заданного шифртекста с вероятностью, не меньшей заданной величины, определить соответствующий открытый текст. При этом, в дополнении к дешифруемому массиву данных,

Page 15: Коды грея над полями Галуа

криптоаналитик может располагать блоками открытых данных и соответствующих им зашифрованных данных или даже возможностью получить для любых выбранных им открытых данных соответствующие зашифрованные данные – в зависимости от перечисленных и многих других неуказанных условий различают отдельные виды криптоанализа. Все современные криптосистемы построены по принципу Кирхгоффа, то есть секретность зашифрованных сообщений определяется секретностью ключа. Это значит, что даже если сам алгоритм шифрования известен криптоаналитику, тот, тем не менее, не в состоянии расшифровать сообщение, если не располагает соответствующим ключом. Алгоритм AES, а, следовательно, и предлагаемый алгоритм, соответствуют этому принципу и спроектирован таким образом, чтобы не было пути вскрыть его более эффективным способом, чем полным перебором по всему ключевому пространству, т.е. по всем возможным значениям ключа, количество которых очень велико.

ЗаключениеВ августе 2000 года корпорация IBM объявила о разработке первого в

мире квантового компьютера. Экспериментальная модель, построенная на пяти атомах, продемонстрировала потенциал систем такого рода, решая определенные задачи со скоростью, значительно превышающей быстродействие обычных компьютеров. Если же увеличить количество атомов, например, до тысячи, то количество выполняемых оперций в секунду возрастет до астрономических чисел. Как признался руководитель группы ученых из IBM, Стэнфордского университета и Университета Калгари Исаак Чуанг (Isaac Chuang), квантовый компьютер можно использовать, в частности, и для взлома криптографических шифров.

Команда Чуанга применяет экспериментальный квантовый компьютер для решения традиционных математических задач, встречающихся в криптографии: поиска периода функции. Квантовый компьютер способен решить любую задачу этого типа за один шаг, в то время, как обычному потребовалось бы множество циклов. В отличие от обычного компьютера, который при решении криптографических задач выполняет последовательные сложения нескольких чисел, квантовая машина, используя спин электрона или частиц атомного ядра, может складывать числа одновременно. При определенных типах вычислений, таких как криптографические алгоритмы, квантовый компьютер, состоящий из нескольких сотен атомов, сможет выполнять миллиарды операций единовременно. [7]

До сих пор не ясно, когда будет создан первый рабочий квантовый компьютер, однако уже становится ясно, что возможно в скором времени криптографические алгоритмы придется перерабатывать кардинальным

Page 16: Коды грея над полями Галуа

образом, чтобы их нельзя было взломать за время, в течение которого зашифрованная информация представляет ценность.

Итак, в данной работе были рассмотрены и описаны основные современные алгоритмы симметричной криптографии, и предложен метод использования преобразований Грея в полях Галуа для алгоритмов. В дальнейшем планируется всестороннее изучение стойкости алгоритма к атакам, а также его быстродействия.

Список использованной литературы1. Статья о стадарте AES. [On-line]. Метод доступа:

<http://ru.wikipedia.org/wiki/Advanced_Encryption_Standard>2. Статья о стадарте DES [On-line]. Метод доступа:

<http://ru.wikipedia.org/wiki/DES>3. Статья о стадарте ГОСТ 28147-89 [On-line]. Метод доступа:

<http://ru.wikipedia.org/wiki/ГОСТ_28147-89>4. А. Винокуров. Алгоритм шифрования ГОСТ 28147-89, его

использование и реализация для компьютеров платформы Intel x86, Журнал «Монитор» 1995 год

5. Нэнси Уэйл, Статья «Алгоритм DES взломан за 3 дня», журнал “Computerworld” [On-line]. Метод доступа: <http://www.osp.ru/cw/1998/28-29/30844/>

6. Антон Тульчинский, «Взлом криптоалгоритмов: мифы и реалии», Журнал “Computerra” 2003 год, [On-line]. Метод доступа: <http://www.computerra.ru/offline/2003/487/25680/index.html>

7. О.Р. Лапонина, Криптографические основы безопасности, Лекция 2: Алгоритмы симметричного шифрования. Часть 1. [On-line]. Метод доступа: <http://www.intuit.ru/department/security/networksec/2/2.html>

8. Ewan Fleischmann, Michael Gorski, Jan-Hendrik H¨uhne, and Stefan Lucks, “Key Recovery Attack on full GOST Block Cipher with Zero Time and Memory”