Симметричные и асимметричные системы шифрования

Симметричные и асимметричные системы шифрования

Введение

Защита информации при передаче по компьютерным сетям и при обработке в ЭВМ требует ее конфиденциальности и подлинности. Особенно это необходимо при передаче информации по сетям передачи данных, которые охватывают большие регионы и даже весь земной шар (например, сеть Internet), и в которых отдельные участки физически не защищены. Вследствие указанных причин они более всего подвержены несанкционированному воздействию нарушителей. Поэтому при передаче информации по сетям предъявляются более жесткие требования к защите данных.

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

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

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

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

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

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

В зависимости от способа применения ключей шифрования различают два основных типа криптографических систем - симметричные и асимметричные.

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

Обозначим открытый текст как M (от message, сообщение), или P (от plaintext, открытый текст). Открытый текст это двоичные, которые могут быть созданы для хранения или передачи. В любом случае, M - это сообщение, которое должно быть зашифровано.

Обозначим шифрованный текст как C.Функция шифрования E действует на M под управлением секретного ключа К, создавая C, т. е.

Ek(M) = C.

В обратном процессе функция дешифрирования D с помощью такого же ключа К действует на C, восстанавливая M:

Dk(C) = Dk(Ek(M)) = M.

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

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

 
  Симметричные и асимметричные системы шифрования - student2.ru

Рисунок 3.1 - Симметричная система шифрования.

Асимметричные системы шифрования (Системышифрованияс открытым ключом)(называемые асимметричными алгоритмами) разработаны таким образом, что ключ, используемый для шифрования, отличается от ключа дешифрирования. Более того, ключ дешифрирования не может быть (по крайней мере в течение разумного интервала времени) рассчитан по ключу шифрования. Алгоритмы называются "с открытым ключом", потому что ключ шифрования может быть открытым: кто угодно может использовать ключ шифрования для шифрования сообщения, но только конкретный человек с соответствующим ключом дешифрирования может расшифровать сообщение. В этих системах ключ шифрования часто называется открытымключом Ko, а ключ дешифрирования – закрытымKз. Закрытый ключ иногда называется секретным ключом, но чтобы не было путаницы с симметричными алгоритмами, этот термин не используется в данной работе. Шифрование с открытым ключом Koобозначается как:

EKo(M)=C.

Хотя открытый и закрытый ключи различны, дешифрирование с соответствующим закрытым ключом обозначается как:

DKз(C)=M.

Асимметричная система шифрования приведена на рис.3.2.

 
  Симметричные и асимметричные системы шифрования - student2.ru

Рисунок 3.2 - Асимметричная система шифрования.

В асимметричных криптографических системах способность зашифровывать сообщения данным ключом отделяется от возможности дешифрования этих сообщений. Это достигается путем использования пар преобразований (D, Е), каждое из которых обратно другому, но ни одно из которых нельзя легко получить из другого. Такие односторонние функции образуют коллективный шифр, в котором один ключ Ko известен всем и служит для шифрования сообщений, адресуемых данному пользователю В, в то время как соответствующий ему ключ Kз держится в секрете и служит для дешифрования сообщений, посылаемых пользователем А.

Шифрование

Rijndael представляет собой итеративный блочный шифр, имеющий переменную длину блоков и различные длины ключей. Длина ключа и длина блока могут быть независимо друг от друга 128, 192 или 256 бит. Промежуточные результаты преобразований называются состояниями.

Блоки данных состояния можно представить в виде прямоугольного массива байтов. Этот массив имеет 4 строки, а число столбцов обозначено как Nb и равно длине блока, деленной на 32. Ключ шифрования также представлен в виде прямоугольного массива с четырьмя строками, число столбцов в котором обозначено как Nk и равно длине ключа, деленной на 32.

Система шифрования по стандарту AES с алгоритмом работы представлена в приложении 3 для случая, когда длина блока открытого текста Nb = 6 словам (слово равно 32 битам, а длина ключа Nk =4 словам). Тогда таблицы массива байт открытого текста и массива ключей будут выглядеть следующим образом:

Таблица 1

a00 a01 a02 a03 a04 a05         k00 k01 k02 k03
a10 a11 a12 a13 a14 a15         k10 k11 k12 k13
a20 a21 a22 a23 a24 a25         k20 k21 k22 k23
a30 a31 a32 a33 a34 a35         k30 k31 k32 k33

Условные обозначения на схемах математических функций приведены в приложении 4.

Процесс шифрования состоит из следующих этапов:

· начальное добавление раундового ключа (начальное забеливание),

· раундовое преобразование в течение (r – 1) раундов,

· заключительный раунд.

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

Число раундов обозначено как r и зависит от значений Nb и Nk. Оно приведено в таблице 2.

Таблица 2

r Nb = 4 Nb = 6 Nb = 8
Nk = 4
Nk = 6
Nk = 8

Начальное добавление раундового ключа. В преобразовании добавление раундового ключа (начальное забеливание) цикловой ключ добавляется к состоянию посредством сложения по модулю 2. Длина раундового Nk ключа равна длине блока Nb.

a00 a01 a02 a03 a04 a05   k00 k01 k02 k03 k04 k05   = b00 b01 b02 b03 b04 b05  
a10 a11 a12 a13 a14 a15 Å k10 k11 k12 k13 k14 k15 b10 b11 b12 b13 b14 b15  
b20 b21 b22 b23 b24 b25  
a20 a21 a22 a23 a24 a25   k20 k21 k22 k23 k24 k25  
b30 b31 b32 b33 b34 b35  
a30 a31 a32 a33 a34 a35   k30 k31 k32 k33 k34 k35  

Сложение и вывод результатов осуществляется в следующей последовательности: a00Å k00= b00, a10Å k10= b10,…, a35Å k35= b35.

Раундовое преобразование. Это преобразование включает в себя нелинейное преобразование матрицы данных и добавление раундового ключа. Нелинейное преобразование матрицы состоит из трех шагов: замены байтов матрицы на новые значения (S- box - преобразования), циклического сдвига строк матрицы влево, перемешивания столбцов матрицы (умножения матрицы данных слева на постоянную матрицу-циркулянт M.

М =

Преобразование замена байтпредставляет собой нелинейную замену байт, выполняемую независимо с каждым байтом состояния. Таблицы замены (или S-box) являются инвертируемыми и построены из композиции двух преобразований: а) получение обратного элемента, б) применение аффинного преобразования (над GF(2)). Эти преобразования определены как:

b0 = * a0 Å
b1 a1
b2 a2
b3 a3
b4 a4
b5 a5
b6 a6
b7 a7

Применение описанного S-box ко всем байтам состояния можно проиллюстрировать как:

 
  Симметричные и асимметричные системы шифрования - student2.ru

Рис.3.3. Преобразование замены байтов

Преобразование S- box в виде таблицы приведено в приложении 5, табл. 1.

Преобразование сдвига строк подразумевает, что последние 3 строки состояния циклически сдвигаются на различное число байт. Строка 1 сдвигается на С1 байт, строка 2 - на С2 байт и строка 3 - на С3 байт. Значения сдвигов С1, С2 и С3 зависят от длины блока Nb. Их величины приведены в таблице 2.

Таблица 2. - Величина сдвига для разной длины блоков.

Nb C1 C2 C3

В преобразовании перемешивания столбцов столбцы состояния рассматриваются как многочлены над полем GF(28) и умножаются по модулю x4+1 на многочлен c(x), выглядящий следующим образом:

c(x)='03' x3 + '01' x2 + '01' x + '02'.

Это может быть представлено в виде матричного умножения. Пусть b(x)=c(x)*a(x),

b0 = * a0
b1 a1
b2 a2
b3 a3

Конечное поле GF(28) порождается неприводимым полиномом g(x) = x8+x4+x3+x2+1. Операция сложения в этом поле является ни чем иным, как побитовым суммированием по модулю 2, умножение выполняется как обычное умножение полиномов над GF(2) по модулю полинома g(x).

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

 
  Симметричные и асимметричные системы шифрования - student2.ru

Рис.3.4. Преобразование перемешивания столбцов.

Добавление раундового ключа. В конце каждого раунда с полученным в результате всех преобразований блоком складывается посредством поразрядного сложения по модулю 2 раундовый ключ. Это осуществляется аналогично начальному добавлению раундового ключа.

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

Дешифрование

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

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

Kr0, Kr1, Kr2, ... , Krr-1, Krr,

то при дешифровании должна быть использована следующая последовательность элементов:

Krr, M -1× Krr-1, ... , M -1× Krr-2, M -1× Krr-1, Kr0.

2. На шаге побайтовой замены используется узел замен S-1 обратный тому, что применяется в процедуре шифрования S. Таблица узла замен S-1 приведена в приложении 5, таблица 2. Это означает, что каково бы ни было байтовое значение b, всегда справедливо следующее соотношение:

S -1[S[b]] = b.

3. На шаге построчного вращения матрицы данных осуществляется циклический сдвиг строк на то же самое количество элементов, что и при шифровании, но в обратную сторону - вправо. Либо, в силу свойств операции циклического сдвига, можно осуществить вращение строк матрицы в ту же сторону, что и при шифровании, т.е. влево, но на другое количество элементов, вычисляемое по следующей формуле:

Сi' = n - Ci,i = 2¸4.

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

в следующей ниже таблице:

Nb
С2'
С3'
С4'

4. На шаге умножения слева на постоянную матрицу используется матрица M -1, обратная используемой при шифровании матрице M:

М -1 = 0E 0B 0D
0E 0B 0D
0D 0E 0B
0B 0D 0E

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

Процесс дешифрования по стандарту AES показан в приложении 6.

Ключевая последовательность K длиной 128 (192, 256) бит данных поступает на блок расширения ключа БРК, где формируется ключевая последовательность из 4-х байтовых слов, из которой в дальнейшем берутся раундовые ключи. Исходный массив зашифрованного блока данных С длиной 128 (192, 256) бит, поступает на схему сложения по модулю 2, где производится сложение по модулю 2 с раундовым ключом блока Krr . Над данными в блоке S -1 осуществляется преобразование нелинейной замены байт, результат которого поступает на блок циклического сдвига вправо, где осуществляется построчное вращение матрицы данных (сдвиг строк вправо). Результат данной операции заносится в блок памяти БП. С выхода блока БП массив данных складывается по модулю 2 в соответствующем блоке с последующим раундовым ключом Krr-1 блока БРК. В блоке *M -1 производится умножение массива данных предшествующего блока на постоянную матрицу М-1. После преобразований в блоках S -1 и циклического сдвига вправо результат заносится опять в БП. Данное преобразование повторяется (r-1) раз, где r – число раундов. Результат дешифрования блока C формируется на входе схемы сложения по модулю 2, где производится сложение результата (r -1) – числа преобразований с последним раундовым ключом блока БРК. После схемы сложения по модулю 2 будет получен открытый текст М.

Симметричные и асимметричные системы шифрования

Введение

Защита информации при передаче по компьютерным сетям и при обработке в ЭВМ требует ее конфиденциальности и подлинности. Особенно это необходимо при передаче информации по сетям передачи данных, которые охватывают большие регионы и даже весь земной шар (например, сеть Internet), и в которых отдельные участки физически не защищены. Вследствие указанных причин они более всего подвержены несанкционированному воздействию нарушителей. Поэтому при передаче информации по сетям предъявляются более жесткие требования к защите данных.

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

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

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

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

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

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

В зависимости от способа применения ключей шифрования различают два основных типа криптографических систем - симметричные и асимметричные.

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

Обозначим открытый текст как M (от message, сообщение), или P (от plaintext, открытый текст). Открытый текст это двоичные, которые могут быть созданы для хранения или передачи. В любом случае, M - это сообщение, которое должно быть зашифровано.

Обозначим шифрованный текст как C.Функция шифрования E действует на M под управлением секретного ключа К, создавая C, т. е.

Ek(M) = C.

В обратном процессе функция дешифрирования D с помощью такого же ключа К действует на C, восстанавливая M:

Dk(C) = Dk(Ek(M)) = M.

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

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

 
  Симметричные и асимметричные системы шифрования - student2.ru

Рисунок 3.1 - Симметричная система шифрования.

Асимметричные системы шифрования (Системышифрованияс открытым ключом)(называемые асимметричными алгоритмами) разработаны таким образом, что ключ, используемый для шифрования, отличается от ключа дешифрирования. Более того, ключ дешифрирования не может быть (по крайней мере в течение разумного интервала времени) рассчитан по ключу шифрования. Алгоритмы называются "с открытым ключом", потому что ключ шифрования может быть открытым: кто угодно может использовать ключ шифрования для шифрования сообщения, но только конкретный человек с соответствующим ключом дешифрирования может расшифровать сообщение. В этих системах ключ шифрования часто называется открытымключом Ko, а ключ дешифрирования – закрытымKз. Закрытый ключ иногда называется секретным ключом, но чтобы не было путаницы с симметричными алгоритмами, этот термин не используется в данной работе. Шифрование с открытым ключом Koобозначается как:

EKo(M)=C.

Хотя открытый и закрытый ключи различны, дешифрирование с соответствующим закрытым ключом обозначается как:

DKз(C)=M.

Асимметричная система шифрования приведена на рис.3.2.

 
  Симметричные и асимметричные системы шифрования - student2.ru

Рисунок 3.2 - Асимметричная система шифрования.

В асимметричных криптографических системах способность зашифровывать сообщения данным ключом отделяется от возможности дешифрования этих сообщений. Это достигается путем использования пар преобразований (D, Е), каждое из которых обратно другому, но ни одно из которых нельзя легко получить из другого. Такие односторонние функции образуют коллективный шифр, в котором один ключ Ko известен всем и служит для шифрования сообщений, адресуемых данному пользователю В, в то время как соответствующий ему ключ Kз держится в секрете и служит для дешифрования сообщений, посылаемых пользователем А.

Наши рекомендации