Устройство обработки шифрования, способ обработки шифрования и компьютерная программа
Иллюстрации
Показать всеИзобретение относится к устройствам обработки шифрования. Техническим результатом является повышение трудности криптоанализа и воплощение в высокой степени защищенного алгоритма блочного шифра с общим ключом. Реализована конфигурация обработки блочного шифра с общим ключом, с улучшенным иммунитетом против атак, таких как атаки способом насыщения и алгебраические атаки (атаки РЯС). В устройстве обработки шифрования, которое выполняет обработку блочного шифра с общим ключом, S-блоки, использующиеся как модули обработки нелинейного преобразования в раундовой функции, установленные в модулях выполнения раундовых функций, выполнены с возможностью использования S-блоков, по меньшей мере, двух разных типов. С такой конфигурацией можно улучшить иммунитет против атак способом насыщения. Кроме того, типы S-блоков представляют собой смесь различных типов. 2 н. и 12 з.п. ф-лы, 19 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к устройствам обработки шифрования, способам обработки шифрования и компьютерным программам. Более конкретно, настоящее изобретение относится к устройству обработки шифрования, способу обработки шифрования и компьютерной программе для выполнения обработки блочного шифра с общим ключом.
Уровень техники
В последние годы, по мере развития сетевой связи и электронной торговли, обеспечение безопасности при передаче данных стало важной проблемой. Один из способов обеспечения безопасности представляет собой криптографическая технология. В настоящее время передача данных фактически осуществляется с использованием различных шифров.
Например, была переведена в практическое использование система, в которой модуль обработки шифрования встроен в малое устройство, такое как карта с микросхемой, и передачу/прием данных выполняют между картой с микросхемой и устройством считывания/записи, используемым как устройство считывания/записи данных, воплощая, таким образом, обработку аутентификации или шифрования/дешифрования передаваемых/принимаемых данных.
Доступны различные алгоритмы обработки шифрования. Эти алгоритмы шифрования можно крупно классифицировать на криптографию с открытым ключом, в которой ключ шифрования и ключ дешифрования установлены как разные ключи, такие как открытый ключ и секретный ключ, и криптографию с общим ключом, в которой ключ шифрования и ключ дешифрования установлены как общий ключ.
Существуют различные алгоритмы для криптографии с общим ключом. Один алгоритм включает в себя генерирование множества ключей на основе общего ключа с многократным выполнением обработки преобразования данных с последовательным приращением блока (например, 64 бита или 128 бит) с применением генерируемых ключей. Типичный алгоритм, в котором применяется такая схема генерирования ключей и обработка преобразования данных, представляет собой блочный шифр с общим ключом.
Известно, что в качестве, например, типичных алгоритмов блочного шифра с общим ключом в прошлом использовали алгоритм DES (СШД, Стандарт шифрования данных), который в прошлом представлял собой стандартный шифр для Соединенных Штатов Америки и алгоритм AES (УСШ, Усовершенствованный стандарт шифрования), который представляет собой стандартный шифр для Соединенных Штатов Америки в настоящее время.
Эти алгоритмы блочного шифра с общим ключом, в основном, состоят из части обработки шифрования, включающей в себя части выполнения раундовой функции, которые многократно выполняют преобразование входных данных, и часть планирования ключа, которая генерирует раундовые ключи, применяемые для соответствующих раундов частей раундовой функции. Часть планирования ключа генерирует расширенный ключ на основе главного ключа (основного ключа), который представляет собой секретный ключ, путем увеличения количества битов, и на основе сгенерированного расширенного ключа генерирует раундовые ключи (дополнительные ключи), применяемые в соответствующих частях раундовой функции части обработки шифрования.
В качестве специфичной структуры для выполнения такого алгоритма известна структура, которая многократно выполняет раундовую функцию, включающую в себя часть линейного преобразования и часть нелинейного преобразования. Например, структура Фейстеля представляет собой одну типичную структуру. Структура Фейстеля имеет структуру, которая преобразует открытый текст в зашифрованный текст путем простого повторения раундовой функции (F-функции), используемой как функция преобразования данных. В раундовой функции (F-функции) выполняют обработку линейного преобразования и обработку нелинейного преобразования. В качестве документов, описывающих обработку шифрования с применением структуры Фейстеля, можно отметить, например, Непатентный документ 1 и Непатентный документ 2.
Однако при использовании блочного шифра с общим ключом существует проблема утечки ключей в результате криптоанализа. Тот факт, что ключи могут быть легко проанализированы с помощью криптоанализа, означает, что шифр имеет низкую защищенность, в результате чего возникает серьезная проблема при применении.
Непатентный документ 1: K.Nyberg, "Generalized Feistel networks", ASIACRYPT '96, Springer Verlag, 1996, pp.91-104.
Heпатентный Документ 2: Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989: 461-480.
Сущность изобретения
Техническая задача
Настоящее изобретение было выполнено с учетом описанных выше проблем, и цель настоящего изобретения состоит в том, чтобы предоставить устройство обработки шифрования, способ обработки шифрования и компьютерную программу для повышения трудности криптоанализа и воплощения в высокой степени защищенного алгоритма блочного шифра с общим ключом.
Техническое решение
Первый аспект настоящего изобретения направлен на:
устройство обработки шифрования, которое выполняет обработку блочного шифра с общим ключом, отличающееся тем, что включает в себя:
модуль обработки шифрования, который выполняет обработку преобразования данных, в которой раундовую функцию повторяют для множества раундов,
в котором модуль обработки шифрования выполнен с возможностью выполнения обработки нелинейного преобразования с использованием S-блоков при выполнении обработки раундовых функций в соответствующих раундах, и
в котором модуль обработки шифрования выполнен с возможностью выполнения обработки с использованием, по меньшей мере, двух S-блоков разного типа в качестве S-блоков, применяемых при обработке нелинейного преобразования.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования, с использованием структуры Фейстеля, в которой количество строк данных (количество разделений) равно двум, или обобщенной структуры Фейстеля, в которой количество строк данных (количество разделений) равно двум или больше. Модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования с применением F-функций, применяемых как модули выполнения раундовых функций, которые имеют одинаковую строку входных данных и строку выходных данных и которые вертикально расположены рядом друг с другом, в которых обработка нелинейного преобразования, выполняемая F-функциями, установлена как разные S-блоки, которые выполняют разные типы обработки нелинейного преобразования.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением устройство отличается тем, что каждая из F-функций, используемых как модули выполнения раундовых функций, включает в себя множество S-блоков, которые выполняют обработку нелинейного преобразования соответствующих частей данных, на которые разделены данные, предназначенные для обработки. Множество S-блоков включает в себя, по меньшей мере, два разных типа S-блоков.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что каждая из F-функций, используемых как модули выполнения раундовых функций, включает в себя множество S-блоков, которые выполняют обработку нелинейного преобразования соответствующих частей данных, на которые разделены данные, предназначенные для обработки. Обработка нелинейного преобразования, выполняемая с последовательными приращениями частей данных в F-функциях, используемых как модули выполнения раундовых функций, которые имеют одинаковую строку входных данных и строку выходных данных и которые расположены вертикально рядом друг с другом, выполнена с возможностью установки в качестве других S-блоков, которые выполняют другие типы обработки нелинейного преобразования.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что типы S-блоков и количество отдельных S-блоков, включенных в каждую из F-функций, используемых как модули выполнения раундовых функций, имеют одинаковую установку среди отдельных F-функций.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что модуль обработки шифрования выполнен с возможностью использования в качестве разных s-битовых входных/выходных S-блоков, предназначенных для применения при обработке нелинейного преобразования,
(1) типа 1: S-блок, использующий инверсную карту: Y=X-1 или показательную функцию Y=Xq по полю расширения GF (2s);
(2) типа 2: S-блок, генерируемый путем комбинирования множества малых t-битных S-блоков, где t<s; и
(3) типа 3: S-блок, выбранный случайным образом,
по меньшей мере, двух разных типов S-блоков среди описанных выше трех типов S-блоков (1)-(3).
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что модуль обработки шифрования имеет, в отношении S-блоков, применяемых для выполнения раундовых функций,
(a) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 1, и остальные S-блоки представляют собой S-блоки типа 2;
(b) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 1, и остальные S-блоки представляют собой S-блоки типа 3;
(c) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 2, и остальные S-блоки представляют собой S-блоки типа 3; и
(d) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 1, некоторые из остальных S-блоков представляют собой S-блоки типа 2, и остальные из S-блоков представляют собой S-блоки типа 3,
любую одну из описанных выше конфигураций (а)-(d).
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что модуль обработки шифрования включает в себя, в модулях выполнения раундовых функций, множество S-блоков, которые выполняют обработку нелинейного преобразования для соответствующих частей данных, на которые разделены данные, предназначенные для обработки. Модуль обработки шифрования выполнен с возможностью выполнения обработки с использованием S-блоков одного типа в одном раунде и S-блоков других типов на основе от раунда к раунду.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что модуль обработки шифрования включает в себя, в модулях выполнения раундовых функций, множество S-блоков, которые выполняют обработку нелинейного преобразования соответствующих частей данных, на которые разделены данные, предназначенные для обработки. Модуль обработки шифрования выполнен с возможностью использования различных типов S-блоков в одном раунде.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что типы S-блоков и количество отдельных S-блоков, включенных в каждый из модулей выполнения раундовых функций, имеют одинаковые установки среди отдельных F-функций.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования, в соответствии с криптографией с общим ключом.
Кроме того, в варианте воплощения устройства обработки шифрования в соответствии с настоящим изобретением оно отличается тем, что модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования в соответствии с криптографией блочного шифра с общим ключом.
Кроме того, второй аспект настоящего изобретения направлен на:
способ обработки шифрования, состоящий в выполнении обработки блочного шифра с общим ключом в устройстве обработки шифрования, отличающийся тем, что включает в себя:
этап обработки шифрования, выполняемый в части обработки шифрования, обработки преобразования данных, в которой раундовую функцию повторяют для множества раундов,
в котором этап обработки шифрования представляет собой этап выполнения обработки нелинейного преобразования, с применением S-блоков при обработке существующих раундовых функций в соответствующих раундах, и выполнения обработки с использованием, по меньшей мере, двух разных типов S-блоков в качестве S-блоков, применяемых при обработке нелинейного преобразования.
Кроме того, в варианте воплощения способа обработки шифрования в соответствии с настоящим изобретением он отличается тем, что на этапе обработки шифрования выполняют обработку шифрования в соответствии с криптографией с общим ключом или криптографией блочного шифра с общим ключом.
Кроме того, в третьем аспекте настоящее изобретение относится к:
компьютерной программе, которая обеспечивает выполнение устройством обработки шифрования обработки блочного шифра с общим ключом, отличающейся тем, что включает в себя:
этап обработки шифрования, обеспечивающий возможность выполнения частью обработки шифрования обработки преобразования данных, в которой раундовую функцию повторяют для множества раундов,
в котором этап обработки шифрования представляет собой этап, обеспечивающий выполнение обработки нелинейного преобразования с применением S-блоков при обработке выполнения раундовых функций в соответствующих раундах, и обеспечения выполнения обработки с использованием, по меньшей мере, двух различных типов S-блоков, в качестве S-блоков, применяемых при обработке нелинейного преобразования, предназначенной для выполнения.
Кроме того, в варианте воплощения компьютерной программы в соответствии с настоящим изобретением, она отличается тем, что этап обработки шифрования представляет собой этап обеспечения выполнения обработки шифрования в соответствии с криптографией с общим ключом или криптографией блочного шифра с общим ключом.
Следует отметить, что компьютерная программа в соответствии с настоящим изобретением представляет компьютерную программу, которая может быть предоставлена через носители записи, такие как носители записи, включающие в себя CD (КД, компакт-диск), FD (ГД, гибкий диск) и МО (МО, магнитооптический диск), или среды передачи данных, такие как сеть, которая позволяет предоставлять программу в формате, считываемом компьютером, например, для компьютерной системы, позволяющей выполнять различные программные коды. Путем предоставления такой программы в считываемом компьютером формате обработка в соответствии с программой может быть выполнена в компьютерной системе.
Другие цели, свойства и предпочтительные эффекты настоящего изобретения будут понятны из следующего подробного описания вариантов выполнения настоящего изобретения и чертежей, приложенных к нему. Следует отметить, что система в настоящем описании относится к логическому узлу из множества устройств и не ограничивается узлом, в котором устройства, имеющие отдельную конфигурацию, содержатся в одном корпусе.
Предпочтительные эффекты
В соответствии с конфигурацией варианта воплощения настоящего изобретения в устройстве обработки шифрования, которое выполняет обработку блочного шифра с общим ключом, оно выполнено с возможностью использования, по меньшей мере, двух разных типов S-блоков в качестве S-блоков, используемых как модуль обработки нелинейного преобразования в модуле выполнения раундовой функции. При использовании такой конфигурации можно улучшить защиту от атак способом насыщения. Кроме того, в соответствии с конфигурацией варианта воплощения настоящего изобретения, в котором типы S блоков представляют смесь разных типов, можно улучшить устойчивость против алгебраических атак (атак XSL (РЯС, расширяемый язык стилей)), реализуя, таким образом, высокозащищенное устройство обработки шифрования.
Краткое описание чертежей
На фиг.1 показана схема, представляющая основную конфигурацию алгоритма блочного шифра с общим ключом.
На фиг.2 показана схема, описывающая внутреннюю конфигурацию модуля Е10 обработки блочного шифра с общим ключом, иллюстрируемой на фиг.1.
На фиг.3 показана схема, описывающая подробную конфигурацию модуля 12 обработки шифрования, иллюстрируемую на фиг.2.
На фиг.4 показана схема, описывающая раундовую функцию SPN-структуры, используемую как пример конфигурации модуля выполнения раундовой функции.
На фиг.5 показана схема, описывающая структуру Фейстеля, используемую как пример конфигурации модуля выполнения раундовой функции.
На фиг.6 показана схема, описывающая обобщенную структуру Фейстеля, используемую как пример конфигурации модуля выполнения раундовой функции.
На фиг.7 показана схема, описывающая конкретный пример модуля обработки нелинейного преобразования.
На фиг.8 показана схема, описывающая конкретный пример модуля обработки линейного преобразования.
На фиг.9 показана схема, описывающая пример общей конфигурации структуры Фейстеля или обобщенной структуры Фейстеля.
На фиг.10 показана схема, описывающая пример конфигурации структуры Фейстеля или обобщенной структуры Фейстеля, в которой скомпонованы различные S-блоки.
На фиг.11 показана схема, описывающая пример конфигурации, в которой различные S-блоки установлены для улучшения иммунитета против атак способом насыщения.
На фиг.12 показана схема, описывающая пример конфигурации, в которой различные S-блоки установлены для улучшения иммунитета против атак способом насыщения.
На фиг.13 показана схема, описывающая пример конфигурации, в которой различные S-блоки установлены для улучшения иммунитета против атак способом насыщения.
На фиг.14 показана схема, описывающая пример конфигурации, в которой различные типы S-блоков установлены для улучшения иммунитета против алгебраических атак (атак РЯС).
На фиг.15 показана схема, описывающая пример конфигурации, в которой различные типы S-блоков размещены так, что они улучшают иммунитет против алгебраических атак (атак РЯС).
На фиг.16 показана схема, описывающая пример конфигурации, в которой различные типы S-блоков размещены для улучшения иммунитета против алгебраических атак (атак РЯС).
На фиг.17 показана схема, описывающая пример конфигурации, в которой размещены различные типы S-блоков для улучшения иммунитета против алгебраических атак (атак РЯС).
На фиг.18 показана схема, описывающая пример конфигурации, в которой различные типы S-блоков размещены для улучшения иммунитета против алгебраических атак (атак РЯС).
На фиг.19 показан схема, описывающая пример конфигурации модуля с микросхемой, используемого в качестве устройства обработки шифрования, которое выполняет обработку шифрования в соответствии с настоящим изобретением.
Подробное описание изобретения
Устройство обработки шифрования, способ обработки шифрования и компьютерная программа в соответствии с настоящим изобретением будут подробно описаны ниже. Описание будет приведено в соответствии со следующими разделами:
1. Схематичное представление блочного шифра с общим ключом.
2. Конфигурация, в которой улучшен иммунитет путем размещения множества различных S-блоков.
(2А) Конфигурация, в которой иммунитет против атак способом насыщения улучшают путем размещения двух или больше различных типов S-блоков в шифре Фейстеля или в шифре Фейстеля обобщенного типа с использованием S-блоков.
(2В) Конфигурация, в которой иммунитет против алгебраических атак (атак РЯС) улучшают путем смешения двух или больше S-блоков различных типов в блочном шифре, с использованием S-блоков.
(2С) Конфигурация, в которой описанные выше подходы (2А) и (2В) одновременно реализуют в шифре Фейстеля или в шифре Фейстеля обобщенного типа, с использованием S-блоков.
3. Пример конфигурации устройства обработки шифрования.
[1. Схематичное представление блочного шифра с общим ключом]
Вначале будет описана схема блочных шифров с общим ключом, которые можно применять в настоящем изобретении. В этом описании блочные шифры с общим ключом (ниже называемые блочными шифрами) представляют собой блочные шифры, определенные ниже.
В блочный шифр поступает открытый текст Р и ключ K, как входные данные, и блочный шифр выводит зашифрованный текст С. Длина битов открытого текста и зашифрованного текста называется размером блока, который обозначен здесь с помощью буквы n. Хотя n может представлять собой любое целое число, в общем случае, n представляет собой заданное значение для каждого алгоритма блочного шифра. Блочный шифр, длина блока которого равна n, может называться n-битным блочным шифром.
Длина в битах ключа обозначена как k. Ключ может представлять собой любое целое число. Алгоритм блочного шифра с общим ключом предназначен для работы с одним или с множеством размеров ключа. Например, один алгоритм А блочного шифра имеет размер блока n=128 и может быть выполнен с возможностью обработки различных размеров, то есть, длины в битах k=128, k=192 или k=256 ключа.
Индивидуальные размеры битов открытого текста [Р], зашифрованного текста [С] и ключа [K] обозначают следующим образом:
открытый текст Р: n битов;
зашифрованный текст С: n битов;
ключ K: k битов.
Алгоритм Е блочного шифра с общим ключом длиной n-битов, позволяющий обрабатывать ключ длиной k-битов, представлен на фиг.1. Как показано на фиг.1, в модуль Е10 обработки блочного шифра с общим ключом подают n-битный открытый текст Р и k-битный ключ K, он выполняет заданный алгоритм шифрования и выводит n-битный зашифрованный текст С. Следует отметить, что, хотя обработка шифрования, состоящая в генерировании зашифрованного текста из открытого текста, показана на фиг.1, при обработке дешифрования, состоящей в генерировании открытого текста из зашифрованного текста, обычно используют функцию обратную Е10. Следует отметить, что, в зависимости от структуры модуля Е10 обработки шифрования, аналогичная модуль Е10 обработки блочного шифра с общим ключом также применим для обработки дешифрования, и обработка дешифрования позволяет изменять последовательность, такую как порядок вводимых ключей или тому подобное.
Со ссылкой на фиг.2 будет описана внутренняя конфигурация модуля Е10 обработки блочного шифра с общим ключом, иллюстрируемой на фиг.1. Блочный шифр можно рассматривать как имеющий два отдельных модуля. Один модуль представляет собой модуль 11 планирования ключа, которая принимает ключ K как входные данные, расширяет длину битов, вводимого ключа K, выполняя заданные этапы, и выводит расширенный ключ K' (длина k' в битах), и другой модуль представляет собой модуль 12 обработки шифрования, который выполняет преобразование данных для генерирования зашифрованного текста С, принимая расширенный ключ K', вводимый из модуля 11 планирования ключа, получая открытый текст Р в качестве входных данных, и выполняя обработку шифрования, применяя расширенный ключ K'. Следует отметить, что, как было описано выше, в зависимости от структуры модуля 12 обработки шифрования, модуль 12 обработки шифрования применим к обработке дешифрования данных, состоящей в преобразовании зашифрованного текста обратно в открытый текст.
Далее, со ссылкой на фиг.3, будет описана подробная конфигурация модуля 12 обработки шифрования, иллюстрируемой на фиг.2. Как показано на фиг.3, модуль 12 обработки шифрования выполнен с возможностью многократного выполнения преобразования данных, применяя модуля 20 выполнения раундовой функции. Таким образом, модуль 12 обработки шифрования может быть разделен на модули для обработки, которые представляют собой модуля 20 выполнения раундовой функции. Каждый модуль 20 выполнения раундовой функции принимает две части данных, как входные данные, выход Xi модуля выполнения раундовой функции на предыдущем этапе и раундовый ключ PKi, сгенерированный на основе расширенного ключа, выполняет в них обработку преобразования данных и выводит выходные данные Xi+1 в следующий модуль выполнения раундовой функции. Следует отметить, что вход в первый раунд представляет собой открытый текст или данные обработки инициализации для открытого текста. Кроме того, выход из последнего раунда представляет собой зашифрованный текст.
В примере, иллюстрируемом на фиг.3, модуль 12 обработки шифрования имеет г модулей 20 выполнения раундовой функции и выполнен с возможностью многократного выполнения преобразования данных r раз в модулях выполнения раундовой функции для генерирования зашифрованного текста. Количество раз выполнения раундовой функции называется количеством раундов. В представленном примере количество раундов равно r.
Входные данные Xi каждого модуля выполнения раундовой функции, представляют собой n-битные данные, подвергаемые шифрованию. Выход Xi+1 раундовой функции в определенном раунде подают как вход в следующий раунд. В качестве других входных данных в каждый модуль выполнения раундовой функции используют данные, основанные на расширенном ключе K', выводимом из модуля планирования ключа. Ключ, вводимый в каждый модуль выполнения раундовой функции и применяемый для выполнения раундовой функции, называется раундовым ключом. На схеме раундовый ключ, применяемый в i-ом раунде, обозначен как RKi. Расширенный ключ K' выполнен как, например, объединенные данные раундовых ключей RK1-RKr для r раундов.
Конфигурация, представленная на фиг.3, представляет собой конфигурацию модуля 12 обработки шифрования, в которой входные данные в первый раунд, когда их рассматривают со стороны ввода модуля 12 обработки шифрования, обозначены как Х0, данные, выводимые из i-ой раундовой функции, обозначены как Xi, и раундовый ключ обозначен как RKi. Следует отметить, что в зависимости от структуры модуля 12 обработки шифрования, например, путем установки последовательности применения для применяемых раундовых ключей так, чтобы они были противоположны ключам при обработке шифрования, и при вводе зашифрованного текста в модуль 12 обработки шифрования модуль 12 обработки шифрования может быть выполнен с возможностью вывода открытого текста.
Модули 20 выполнения раундовой функции модуля 12 обработки шифрования, показанной на фиг.3, могут иметь различные формы. Раундовые функции могут быть классифицированы в соответствии со структурами, принятыми соответствующими алгоритмами шифрования. Представительные структуры включают в себя следующие:
(a) структура SPN (СПП, Сеть с использованием подстановок-перестановок);
(b) Структура Фейстеля; и
(c) Обобщенная структура Фейстеля.
Эти конкретные структуры будут описаны ниже со ссылкой на фиг.4-6.
(а) Раундовая функция структуры СПП
Прежде всего, со ссылкой на фиг.4, будет описана раундовая функция структуры СПП, используемая в качестве примера конфигурации модуля 20 выполнения раундовой функции. Модуль 20а исполнения раундовой функции структуры СПП имеет так называемую структуру типа SP (ПП, подстановок-перестановок), в которой соединены нелинейный уровень преобразования (уровень S) и линейный уровень преобразования (уровень Р). Как показано на фиг.4, модуль 20а исполнения раундовой функции структуры СПП построен из модуля 21 расчета "исключающее ИЛИ", который выполняет операцию "исключающее ИЛИ" (EXOR, ИИЛИ) для всех n-битных входных данных и раундового ключа, модуля 22 обработки нелинейного преобразования, который принимает результат операции, полученный модулем 21 расчета "исключающее ИЛИ" в качестве входных данных, и выполняет нелинейное преобразование этих входных данных, модуля 23 обработки линейного преобразования, который принимает результат обработки нелинейного преобразования, полученный модулем 22 обработки нелинейного преобразования в качестве входных данных, и выполняет обработку линейного преобразования входных данных, и т.п. Результат обработки линейного преобразования, полученный модулем 23 обработки линейного преобразования, выводят в следующий раунд. Выход последнего раунда представляет собой зашифрованный текст. Следует отметить, что, хотя последовательность обработки модуля 21 расчета "исключающее ИЛИ", модуля 22 обработки нелинейного преобразования и модуля 23 обработки линейного преобразования иллюстрируется в примере, показанном на фиг.4, последовательность модулей обработки не ограничивается этим, и обработка может выполняться в других последовательностях.
(b) Структура Фейстеля
Далее, со ссылкой на фиг.5, будет описана структура Фейстеля, используемая в качестве примера конфигурации модуля 20 выполнения раундовой функции. Структура Фейстеля выполняет, как показано на фиг.5, обработку путем разделения n-битных входных данных из предыдущего раунда (входной текст в первом раунде) на два равных модуля данных длиной n/2-бит и расширяет эти два модуля данных друг для друга на основании от раунда к раунду.
При обработке с применением модуля 20b выполнения раундовой функции, со структурой Фейстеля, как показано на чертеже, один модуль n/2-битных данных и раундовый ключ вводят в часть 30 F-функции. Часть 30 F-функции имеет, как и описанная выше структура СПП так называемую структуру ПП-типа, в которой уровень нелинейного преобразования (S уровень) и уровень линейного преобразования (Р уровень) соединены друг с другом.
Одну часть n/2-битных данных из предыдущего раунда и раундовый ключ вводят в модуль 31 расчета "исключающее ИЛИ" части 30 F-функции и выполняют обработку "исключающее ИЛИ" (ИИЛИ). Кроме того, эти полученные в результате данные вводят в модуль 32 обработки нелинейного преобразования для нелинейного преобразования. Кроме того, результат нелинейного преобразования вводят в модуль 33 линейного преобразования для линейного преобразования. Результат линейного преобразования выводят как получаемые в результате данные обработки F-функции.
Кроме того, выход F-функции и другой модуль n/2-битных данных, вводимых из предыдущего раунда, подают в модуль 34 расчета "исключающее ИЛИ" и выполняют операцию "исключающее ИЛИ" (ИИЛИ). Результат выполнения установлен как вход для F-функции следующего раунда. Следует отметить, что n/2-битов, установленные как входные данные для F-функции i-ого раунда, представленной на схеме, применяют в операции "исключающее ИЛИ" с выводом F-функции следующего раунда. Таким образом, структура Фейстеля выполняет обработку преобразования данных, применяя F функции, при обмене входами друг с другом на основе от раунда к раунду.
(c) Обобщенная структура Фейстеля
Далее, со ссылкой на фиг.6, будет описана обобщенная структура Фейстеля, используемая в качестве примера конфигурации модуля 20 выполнения раундовой функции. Структура Фейстеля, которая была описана выше со ссылкой на фиг.5, выполняет обработку путем разделения n-битового открытого текста на две равные части, имеющие по n/2 бит. Таким образом, количество разделений d равно двум при обработке. Следует отметить, что количество разделений также может называться количеством строк данных.
Обобщенная структура Фейстеля устанавливает количество строк d данных (количество разделений) равным любому целому числу, большему или равному двум. Различные обобщенные структуры Фейстеля могут быть определены в соответствии со значением количества d строк данных (количества разделений). В примере, показанном на фиг.6, количество строк d данных (количество разделений) равно четырем, и n/4-битовые данные вводят в каждую строку данных. В каждом раунде выполняют одну или больше F-функций, используемых как раундовые функции. Иллюстрируемый пример представляет собой пример конфигурации выполнения раундовых операций с использованием двух модулей F-функций в каждом раунде.
Конфигурация модулей 41 и 42 F-функции аналогична конфигурации модуля 30 F-функции, описанной выше со ссылкой на фиг.5. Модули 41 и 42 F-функции выполнены с возможностью выполнения операции "исключающее ИЛИ" по раундовому ключу и входному значению, обработки нелинейного преобразования и обработки линейного преобразования. Следует отметить, что раундовый ключ, вводимый в каждый из модулей F-функции, регулируют таким образом, что количество битов раундового ключа совпадает с количеством битов входных битов. В представленном примере количество битов раундовых ключей, вводимых в соответствующие модули 41 и 42 F-функции, равно n/4 бита. Эти ключи генерируют путем сегментирования битов каждого из раундовых ключей, составляющих расширенный ключ. Следует отметить, что, пусть d представляет собой количество строк данных (количество разделений), тогда данные, вводимые в каждую строку, составляют n/d битов, и количество битов ключа, вводимого в каждую F-функцию, регулируют так, чтобы оно составляло n/d битов.
Следует отметить, что обобщенная структура Фейстеля, представленная на фиг.6, представляет собой пример конфигурации, в которой пусть d будет равно количеству строк данных (количество разделений), тогда d/2 F-функции выполняют параллельно друг с другом в каждом раунде. Обобщенная структура Фейстеля может быть выполнена с возможностью выполнения, по меньшей мере, одной и меньше чем или равного d/2 количества F-функций в каждом раунде.
Как было описано со ссылкой на фиг.4-6, модуль 20 выполнения раундовой функции модуля 12 обработки шифрования в блочном шифре с общим ключом может иметь одну из следующих структур:
(a) СПП (структура сети с использованием подстановок-перестановок).
(b) Структура Фейстеля.
(c) Обобщенная структура Фейстеля.
Каждый из этих модулей выполнения раундовой функции имеет так называемую структуру типа ПП, в которой соединены уровень нелинейного преобразования (уровень S) и уровень линейного преобразования (уровень Р). Таким образом, каждый исполнительный модуль раундовой функции имеет модуль обработки нелинейного преобразования, который выполняет обработку нелинейного преобразования, и модуль обработки линейного преобразования, который выполняет обработку линейного преобразования. Такие конфигурации обработки преобразования будут описаны ниже.
(Модуль обработки нелинейного преобразования)
Со ссылкой на фиг.7 будет описан конкретный пример модуля обработки нелинейного преобразования. Как показано на фиг.7, модуль 50 обработки нелинейного преобразования включает в себя, в частности, массив из m таблиц нелинейного преобразования, называемых S-блоками 51, каждый из которых занимает s битов, в качестве входных данных и генерирует s битов в качестве выходных данных, в которых ms-битные входные данные разделены на равные части s-битных данных, и части этих данных вводят в соответствующие S-блоки 51 и преобразуют. Каждый из S-блоков 51 выполняет обработку нелинейного преобразования путем применения, например, таблицы преобразования.
Существует тенденция, состоящая в том, что по мере того, как размер входных данных увеличивается, также повышается стоимость воплощения. Для исключения этого, во многих случаях, как показано на фиг.7, используется конфигурация разделения данных X, предназначенных для обработки, на множество частей и выполнения нелинейного преобразования каждой части. Например, если входной размер равен ms битов, входные данные разделяют на m частей данных размером s битов, и m частей s данных размером s битов вводят в соответствующие S-блоки 51 для нелинейного преобразования путем применения, например, таблицы преобразования, и m частей выходных s-битовых данных комбинируют для получения ms-битного нелинейного результата преобразования.
(Модуль обработки линейного преобразования)
Со ссылкой на фиг.8 будет описан конкретный пример модуля обработки линейного преобразования. Модуль обработки линейного преобразования принимает, как входные данные, входное значение, такое как выходное значение размером ms битов, которое представляет собой выходные данные, из S-блоков, в качестве входного значения X, применяет линейное преобразование к этим входным данным и выводит результат размером ms битов. Обработка линейного преобразования выполняет обработку линейного преобразования, такую как обработка перестановки положений входных битов, и выводит