MacGuffin (шифр): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 11: Строка 11:
}}
}}


В [[Криптография|криптографии]], '''Макгаффин''' — [[Симметричный шифр|симметричный]] [[блочный шифр]], построенный на основе [[Сеть Фейстеля|сети Фейстеля]]. [[Алгоритм]] придуман [[Шнайер, Брюс|Брюсом Шнайером]] и [[Мэтт, Блэйз|Мэттом Блэйзом]] в 1994 году в рамках [[Fast Software Encryption]]. И в том же году [[Винсент Рэймен]] и [[Барт Пренель]] показали его уязвимость к [[Дифференциальный криптоанализ|дифференциальному криптоанализу]], также имеющуюся у похожего шифра [[DES]]. Предназначался для исследования такой структуры шифров, как [[несбалансированная обобщённая сеть Фейстеля]].
В [[Криптография|криптографии]], '''Макгаффин''' — [[Симметричный шифр|симметричный]] [[блочный шифр]], построенный на основе [[Сеть Фейстеля|сети Фейстеля]]. [[Алгоритм]] придуман [[Шнайер, Брюс|Брюсом Шнайером]] и [[Мэтт, Блэйз|Мэттом Блэйзом]] в 1994 году в рамках [[Fast Software Encryption]]. И в том же году [[Винсент Рэймен]] и [[Барт Пренель]] показали его уязвимость к [[Дифференциальный криптоанализ|дифференциальному криптоанализу]], также имеющуюся у похожего шифра [[DES]]. Предназначался для исследования такой структуры шифров, как несбалансированная сеть Фейстеля{{sfn|Unbalanced Feistel networks and block cipher design|с=123}}.


== Введение ==
== Введение ==
Традиционно, шифры, использующие сеть Фейстеля, делят входной блок на равные части — левую(целевой блок) и правую(управляющий блок). При каждом раунде блоки меняются местами. Макгаффин базируется на структуре, в которой целевой блок меньшей длины, чем управляющий. Шифр оперирует входными блоками длиной 64 бита, где целевая часть длиной 16 бит, а управляющая 48. Используется 128 битный ключ. Однако, количество раундов и размер ключа могут варьироваться.
Традиционно, шифры, использующие сеть Фейстеля, делят входной блок на равные части — левую(целевой блок) и правую(управляющий блок). При каждом раунде блоки меняются местами. Макгаффин базируется на структуре, в которой целевой блок меньшей длины, чем управляющий. Шифр оперирует входными блоками длиной 64 бита, где целевая часть длиной 16 бит, а управляющая 48. Используется 128 битный ключ. Однако, количество раундов и размер ключа могут варьироваться{{sfn|The MacGuffin block cipher algorithm|с=97}}.


== Архитектура ==
== Архитектура ==
Большая часть дизайна заимствована у DES. Входной не зашифрованный текст разделён на 4 16 битных слова. [[S-блок (информатика)|S-блоки]] заимствованы у DES. Их используется 8, каждый возвращает результат из 4-х бит, принимая 6 бит на входе. Но учитываются только 2 бита (суммарный результат должен быть 16 бит). Выход S-блока не становится на позиции битов, использующихся для входа самого же блока, в течение следующих 4-х раундов. Шифр предназначен для реализации в оборудовании или программном обеспечении. Перестановки выбраны так, чтобы минимизировать количество операций сдвига и маски.
Большая часть дизайна заимствована у DES. Входной не зашифрованный текст разделён на 4 16 битных слова. [[S-блок (информатика)|S-блоки]] заимствованы у DES. Их используется 8, каждый возвращает результат из 4-х бит, принимая 6 бит на входе. Но учитываются только 2 бита (суммарный результат должен быть 16 бит). Выход S-блока не становится на позиции битов, использующихся для входа самого же блока, в течение следующих 4-х раундов. Шифр предназначен для реализации в оборудовании или программном обеспечении. Перестановки выбраны так, чтобы минимизировать количество операций сдвига и маски.{{sfn|The MacGuffin block cipher algorithm|с=98}}


== Описание алгоритма ==
== Описание алгоритма ==
Ключевым элементом в структуре шифра является несбалансированная сеть Фейстеля. Входные блоки поделены на четыре регистра, по два байта каждый. В новом раунде три последних правых блока объединяются в контрольный блок и складываются [[Сложение по модулю 2|по модулю 2]] с раундовым [[Ключ (криптография)|ключом]], созданным из основного при помощи алгоритма [[Ключевое расписание|ключевого расписания]]. Полученные 48 бит разбиваются на 8 частей и становятся входными параметрами шести S-блоков. В свою очередь, каждый S-блок преобразует 6 входных битов в 2 выходных. 16-битный результат S-блоков складывается по модулю 2 с крайним слева входным блоком, и результат становится крайним справа регистром входного блока следующего раунда. Три крайних справа регистра текущего раунда смещаются без изменений на одну позицию влево. Таким образом формируется входной блок для следующего раунда.
Ключевым элементом в структуре шифра является несбалансированная сеть Фейстеля. Входные блоки поделены на четыре регистра, по два байта каждый. В новом раунде три последних правых блока объединяются в контрольный блок и складываются [[Сложение по модулю 2|по модулю 2]] с раундовым [[Ключ (криптография)|ключом]], созданным из основного при помощи алгоритма [[Ключевое расписание|ключевого расписания]]. Полученные 48 бит разбиваются на 8 частей и становятся входными параметрами шести S-блоков. В свою очередь, каждый S-блок преобразует 6 входных битов в 2 выходных. 16-битный результат S-блоков складывается по модулю 2 с крайним слева входным блоком, и результат становится крайним справа регистром входного блока следующего раунда. Три крайних справа регистра текущего раунда смещаются без изменений на одну позицию влево. Таким образом формируется входной блок для следующего раунда.{{sfn|The MacGuffin block cipher algorithm|с=99}}


== S-блоки и перестановки ==
== S-блоки и перестановки ==
Нелинейность процесса шифрования и раундовых ключей обеспечивается преимущественно восемью S-блоками, S<sub>1</sub>…S<sub>8</sub>. На вход выбираются биты из поданных 16-битных регистров a, b и c. Порядок выбора определяется таблицей 1 (бит с позицией 0 наименее значащий):
Нелинейность процесса шифрования и раундовых ключей обеспечивается преимущественно восемью S-блоками, S<sub>1</sub>…S<sub>8</sub>. На вход выбираются биты из поданных 16-битных регистров a, b и c. Порядок выбора определяется таблицей 1 (бит с позицией 0 наименее значащий){{sfn|The MacGuffin block cipher algorithm|с=100}}:
{| class="wikitable"
{| class="wikitable"
|+ Таблица 1. Перестановка входных бит
|+ Таблица 1. Перестановка входных бит
Строка 103: Строка 103:


== Ключевое расписание ==
== Ключевое расписание ==
В каждом раунде шифра используется секретный ключевой параметр, который сложением по модулю 2 влияет на входы S-блоков. Соответственно, при каждом раунде запрашивается 48 ключевых бит. Для конвертации 128 бит ключа в последовательность из 48 бит, Макгаффин использует итерированную версию своей функции шифрования блоков.
В каждом раунде шифра используется секретный ключевой параметр, который сложением по модулю 2 влияет на входы S-блоков. Соответственно, при каждом раунде запрашивается 48 бит. Для конвертации 128 бит ключа в последовательность из 48 бит, Макгаффин использует итерированную версию своей функции шифрования блоков{{sfn|The MacGuffin block cipher algorithm|с=100}}.


== Криптоанализ ==
== Криптоанализ ==
Как и DES, Макгаффин поддаётся дифференциальному криптоанализу, суть которого в анализе вероятностей получения определённой разности значений функции Фейстеля при заданной разности аргументов. Оптимальная 4-раундовая характеристика имеет вероятность <math>\frac{1}{149}</math>, в то время, как 2-раундовая DES <math>\frac{1}{234}</math>. Таким образом, 32 раунда Макгаффина менее устойчивы, чем 16 DES.
Как и DES, Макгаффин поддаётся дифференциальному криптоанализу, суть которого в анализе вероятностей получения определённой разности значений функции Фейстеля при заданной разности аргументов. Оптимальная 4-раундовая характеристика имеет вероятность <math>\frac{1}{149}</math>, в то время, как 2-раундовая DES <math>\frac{1}{234}</math>. Таким образом, 32 раунда Макгаффина менее устойчивы, чем 16 DES{{sfn|Cryptanalysis of McGuffin|с=354}}.


== Литература ==
== Литература ==
{{статья
http://link.springer.com/chapter/10.1007%2F3-540-60590-8_8
|автор = Matt Blaze, Bruce Schneier
|заглавие = The MacGuffin block cipher algorithm
|оригинал =
|ссылка = http://link.springer.com/content/pdf/10.1007%2F3-540-60590-8_8.pdf
|язык = en
|ответственный =
|автор издания = Springer-Verlag
|издание =
|тип =
|место =
|издательство = Springer, Berlin, Heidelberg
|год = 1994
|месяц =
|число =
|том =
|выпуск =
|номер =
|страницы =
|isbn = 978-3-540-47809-6
|issn = 0302-9743
|doi = 10.1007/3-540-60590-8_8
|bibcode =
|arxiv =
|pmid =
|ref = The MacGuffin block cipher algorithm
|archiveurl =
|archivedate =
}}


{{статья
http://link.springer.com/chapter/10.1007/3-540-60590-8_27
|автор = Vincent Rijmen, Bart Preneel
|заглавие = Cryptanalysis of McGuffin
|оригинал =
|ссылка = http://link.springer.com/content/pdf/10.1007%2F3-540-60590-8_27.pdf
|язык = en
|ответственный =
|автор издания = Springer-Verlag
|издание =
|тип =
|место =
|издательство = Springer, Berlin, Heidelberg
|год = 1995
|месяц =
|число =
|том =
|выпуск =
|номер =
|страницы =
|isbn = 978-3-540-47809-6
|issn = 0302-9743
|doi = 10.1007/3-540-60590-8_27
|bibcode =
|arxiv =
|pmid =
|ref = Cryptanalysis of McGuffin
|archiveurl =
|archivedate =
}}

{{статья
|автор = Bruce Schneier, John Kelsey
|заглавие = Unbalanced Feistel networks and block cipher design
|оригинал =
|ссылка = http://link.springer.com/content/pdf/10.1007%2F3-540-60865-6_49.pdf
|язык = en
|ответственный =
|автор издания = Springer-Verlag
|издание =
|тип =
|место =
|издательство = Springer, Berlin, Heidelberg
|год = 1996
|месяц =
|число =
|том =
|выпуск =
|номер =
|страницы =
|isbn = 978-3-540-49652-6
|issn = 0302-9743
|doi = 10.1007/3-540-60865-6_49
|bibcode =
|arxiv =
|pmid =
|ref = Unbalanced Feistel networks and block cipher design
|archiveurl =
|archivedate =
}}


http://link.springer.com/chapter/10.1007/3-540-60865-6_49
[[Категория:Блочные шифры]]
[[Категория:Блочные шифры]]
[[Категория:Сеть Фейстеля]]
[[Категория:Сеть Фейстеля]]
{{изолированная статья}}

Версия от 10:24, 22 февраля 2017

MacGuffin
Создатель Брюс Шнайер, Мэтт Блэйз
Создан 1994 год
Опубликован 1994.12.14
Размер ключа 128 бит
Размер блока 64 бит
Число раундов 32
Тип Сеть Фейстеля

В криптографии, Макгаффин — симметричный блочный шифр, построенный на основе сети Фейстеля. Алгоритм придуман Брюсом Шнайером и Мэттом Блэйзом в 1994 году в рамках Fast Software Encryption. И в том же году Винсент Рэймен и Барт Пренель показали его уязвимость к дифференциальному криптоанализу, также имеющуюся у похожего шифра DES. Предназначался для исследования такой структуры шифров, как несбалансированная сеть Фейстеля[1].

Введение

Традиционно, шифры, использующие сеть Фейстеля, делят входной блок на равные части — левую(целевой блок) и правую(управляющий блок). При каждом раунде блоки меняются местами. Макгаффин базируется на структуре, в которой целевой блок меньшей длины, чем управляющий. Шифр оперирует входными блоками длиной 64 бита, где целевая часть длиной 16 бит, а управляющая 48. Используется 128 битный ключ. Однако, количество раундов и размер ключа могут варьироваться[2].

Архитектура

Большая часть дизайна заимствована у DES. Входной не зашифрованный текст разделён на 4 16 битных слова. S-блоки заимствованы у DES. Их используется 8, каждый возвращает результат из 4-х бит, принимая 6 бит на входе. Но учитываются только 2 бита (суммарный результат должен быть 16 бит). Выход S-блока не становится на позиции битов, использующихся для входа самого же блока, в течение следующих 4-х раундов. Шифр предназначен для реализации в оборудовании или программном обеспечении. Перестановки выбраны так, чтобы минимизировать количество операций сдвига и маски.[3]

Описание алгоритма

Ключевым элементом в структуре шифра является несбалансированная сеть Фейстеля. Входные блоки поделены на четыре регистра, по два байта каждый. В новом раунде три последних правых блока объединяются в контрольный блок и складываются по модулю 2 с раундовым ключом, созданным из основного при помощи алгоритма ключевого расписания. Полученные 48 бит разбиваются на 8 частей и становятся входными параметрами шести S-блоков. В свою очередь, каждый S-блок преобразует 6 входных битов в 2 выходных. 16-битный результат S-блоков складывается по модулю 2 с крайним слева входным блоком, и результат становится крайним справа регистром входного блока следующего раунда. Три крайних справа регистра текущего раунда смещаются без изменений на одну позицию влево. Таким образом формируется входной блок для следующего раунда.[4]

S-блоки и перестановки

Нелинейность процесса шифрования и раундовых ключей обеспечивается преимущественно восемью S-блоками, S1…S8. На вход выбираются биты из поданных 16-битных регистров a, b и c. Порядок выбора определяется таблицей 1 (бит с позицией 0 наименее значащий)[5]:

Таблица 1. Перестановка входных бит
S-блоки входные биты
0 1 2 3 4 5
S1 a2 a5 b6 b9 c11 c13
S2 a1 a4 b7 b10 c8 c14
S3 a3 a6 b8 b13 c0 c15
S4 a12 a14 b1 b2 c4 c10
S5 a0 a10 b3 b14 c6 c12
S6 a7 a8 b12 b15 c1 c5
S7 a9 a15 b5 b11 c2 c7
S8 a11 a13 b0 b4 c3 c9


Ключевое расписание

В каждом раунде шифра используется секретный ключевой параметр, который сложением по модулю 2 влияет на входы S-блоков. Соответственно, при каждом раунде запрашивается 48 бит. Для конвертации 128 бит ключа в последовательность из 48 бит, Макгаффин использует итерированную версию своей функции шифрования блоков[5].

Криптоанализ

Как и DES, Макгаффин поддаётся дифференциальному криптоанализу, суть которого в анализе вероятностей получения определённой разности значений функции Фейстеля при заданной разности аргументов. Оптимальная 4-раундовая характеристика имеет вероятность , в то время, как 2-раундовая DES . Таким образом, 32 раунда Макгаффина менее устойчивы, чем 16 DES[6].

Литература

Matt Blaze, Bruce Schneier. The MacGuffin block cipher algorithm (англ.) // Springer-Verlag. — Springer, Berlin, Heidelberg, 1994. — ISBN 978-3-540-47809-6. — ISSN 0302-9743. — doi:10.1007/3-540-60590-8_8.

Vincent Rijmen, Bart Preneel. Cryptanalysis of McGuffin (англ.) // Springer-Verlag. — Springer, Berlin, Heidelberg, 1995. — ISBN 978-3-540-47809-6. — ISSN 0302-9743. — doi:10.1007/3-540-60590-8_27.

Bruce Schneier, John Kelsey. Unbalanced Feistel networks and block cipher design (англ.) // Springer-Verlag. — Springer, Berlin, Heidelberg, 1996. — ISBN 978-3-540-49652-6. — ISSN 0302-9743. — doi:10.1007/3-540-60865-6_49.

  1. Unbalanced Feistel networks and block cipher design, с. 123.
  2. The MacGuffin block cipher algorithm, с. 97.
  3. The MacGuffin block cipher algorithm, с. 98.
  4. The MacGuffin block cipher algorithm, с. 99.
  5. 1 2 The MacGuffin block cipher algorithm, с. 100.
  6. Cryptanalysis of McGuffin, с. 354.