Опубликован: 19.01.2010 | Уровень: специалист | Доступ: платный
Лекция 7:

Введение в основы современных шифров с симметричным ключом

Исключающее или

Важный компонент в большинстве блоков шифрования — операция ИСКЛЮЧАЮЩЕЕ ИЛИ: Как мы уже обсуждали в "Введение в основы современных шифров с симметричным ключом" , операции сложения и вычитания в GF(2n) выполняется с помощью одной и той же операции, называемой ИСКЛЮЧАЮЩЕЕ ИЛИ или ( XOR ):

 Таблицы S-блока для примера 7.11

Рис. 7.8. Таблицы S-блока для примера 7.11

Свойства. Пять свойств операции ИСКЛЮЧАЮЩЕЕ ИЛИ в поле GF(2n) делают эту операцию очень удобной для использования в блочном шифре.

1. Замкнутость. Это свойство гарантирует, что в результате этой операции два n -битовых слова дают другое n -битовое слово.

2. Ассоциативность. Это свойство позволяет нам использовать больше чем одно ИСКЛЮЧАЮЩЕЕ ИЛИ, которые можно вычислять в любом порядке.

x \oplus  (y \oplus  z) \leftrightarrow  (x \oplus  y) \oplus  z

3. Коммутативность. Это свойство позволяет нам менять местами операторы (входную информацию), не изменяя результат (выходную информацию).

x \oplus  y \leftrightarrow  y \oplus  x

4. Существование нулевого (тождественного) элемента. Нулевой элемент для операции ИСКЛЮЧАЮЩЕЕ ИЛИ – слово, которое состоит из всех нулей, или (00... 0). Это подразумевает, что существует слово с нейтральными элементами, которое при проведении операции не изменяет слово.

x \oplus (00….00) = x

Мы используем это свойство в шифре Файстеля, который рассмотрим позже в этой лекции.

5. Существование инверсии. В поле GF(2n) каждое слово есть аддитивная инверсия самого себя. Это подразумевает, что проведение операции ИСКЛЮЧАЮЩЕЕ ИЛИ слова с самим собой приводит к нулевому элементу:

x  \oplus x = (00\dots  0)

Мы также используем это свойство в шифре Файстеля, который рассмотрим позже в этой лекции.

Дополнение. Операция дополненияодноместная операция (один информационный вход и один информационный выход), которая инвертирует каждый бит в слове. 0 -вой бит меняет на 1 (единичный) бит; 1 (единичный) бит меняет на 0 -вой бит. Нас интересует операции с дополнением относительно операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Если \bar x — дополнение "x", тогда верны следующие два соотношения:

x \oplus \bar x = (11 \ldots 1) и x \oplus (11 \ldots 1) = \bar x

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

Инверсия. Инверсия компонента в шифре имеет смысл, если компонент представляет одноместную операцию (один вход и один выход). Например, P -блок без ключа или S -блок без ключа могут быть обратимыми, потому что они имеют один вход и один выход. Операция ИСКЛЮЧАЮЩЕЕ ИЛИ — бинарная операция. Инверсия операции ИСКЛЮЧАЮЩЕЕ ИЛИ может иметь смысл, только если один из входов зафиксирован (один и тот же при шифровании и дешифровании). Например, если один из входов — ключ, который обычно является одним и тем же в шифровании и дешифровании, тогда операция ИСКЛЮЧАЮЩЕЕ ИЛИ является обратимой, как показано на рис. 7.9.

 Обратимость операции ИСКЛЮЧАЮЩЕЕ  ИЛИ

Рис. 7.9. Обратимость операции ИСКЛЮЧАЮЩЕЕ ИЛИ

На рисунке 7.9 свойство аддитивной инверсии подразумевает, что

y = x \oplus  k            x = k \oplus  y

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

Циклический сдвиг

Другой компонент, применяемый в некоторых современных блочных шифрах, – операция циклического сдвига. Смещение может быть влево или вправо. Круговая операция левого сдвига сдвигает каждый бит в n -битовом слове на k позиции влево; крайние левые k -биты удаляются слева и становятся самыми правыми битами. Круговая операция правого сдвига сдвигает каждый бит в n -битовом слове на k позиций вправо; самые правые k -биты справа удаляются и становятся крайними левыми битами. Рисунок 7.10 показывает и левые и правые операции в случае, где n = 8 и k = 3.

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

Обратимость. Циклическая операция левого сдвига – инверсия операции правого сдвига. Если одна из них используется для шифрования, другая может применяться для дешифрования.

Свойства. Операция циклического сдвига имеет два свойства, которые нам надо знать.

Первая — это смещение по модулю n. Другими словами, если k = 0 или k = n, никакого смещения не происходит. Если k является большим, чем n, тогда входная информация сдвинута на k mod n бит. Второе свойство, операция циклического сдвига над соединением операций - есть группа. Это означает, что если смещение делается неоднократно, то одно и то же значение может появиться несколько раз..

 Циклический сдвига 8 битового слова  налево или направо

Рис. 7.10. Циклический сдвига 8 битового слова налево или направо

Замена

Операция замены — специальный случай операции циклического сдвига, где k = n/2 означает, что эта операция возможна, только если n — четный номер. Поскольку сдвиг влево n/2 — то же самое, что сдвиг n/2 вправо, эта операция является обратимой. Операция замены для шифрования может быть полностью раскрыта операцией замены для дешифрации. Рисунок 7.11 иллюстрируетт операцию замены для слова на 8 битов.

 Операция замена в  8 битовом а слове

Рис. 7.11. Операция замена в 8 битовом а слове
Разбиение и объединение

Две других операции, применяемые в некоторых блочных шифрах, — разбиение и объединение. Разбиение обычно разделяет n -битовое слово в середине, создавая два слова равной длины. Объединение связывает два слова равной длины, чтобы создать n -битовое слово. Эти две операции инверсны друг другу и могут использоваться как пара, чтобы уравновесить друг друга. Если одна используется для шифрования, то другая — для дешифрования. Рисунок 7.12 показывает эти две операции для случая n = 8.

Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Дмитрий Плешаков
Дмитрий Плешаков

Здравствуйте. На данныйц момент я изучаю курс Математика криптографии и теория шифрования. Стоимость обучения на данном курсе указана 1 руб., но, при этом доступ к лекциям указан платный. Не могли бы Вы прояснить данный момент, и, если доступ платный, какова стоимость лекций и общая стоимость курса.

Заранее благодарен.

Александр Боднарский
Александр Боднарский
Россия