Устройство обработки шифрования/дешифрования, способ обработки шифрования/дешифрования, устройство обработки информации и компьютерная программа
Иллюстрации
Показать всеИзобретение относится к устройствам обработки шифрования/дешифрования и компьютерной программе для выполнения обработки блочного шифра с общим ключом. Реализована конфигурация обработки блочного шифра с общим ключом, с улучшенным иммунитетом против атак, таких как атаки способом насыщения и алгебраические атаки (атаки РЯС). В устройстве обработки шифрования, которое выполняет обработку блочного шифра с общим ключом, S-блоки, использующиеся как модули обработки нелинейного преобразования в раундовой функции, установленные в модулях выполнения раундовых функций, выполнены с возможностью использования S-блоков, по меньшей мере, двух разных типов. С такой конфигурацией можно улучшить иммунитет против атак способом насыщения. Кроме того, типы S-блоков представляют собой смесь различных типов. При использовании такой конфигурации можно улучшить иммунитет против алгебраических атак (атак РЯС), реализуя, таким образом, в высокой степени защищенное устройство обработки шифрования. Техническим результатом является повышение трудности криптоанализа и воплощение в высокой степени защищенного алгоритма блочного шифра с общим ключом. 6 н. и 46 з.п. ф-лы, 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
Сущность изобретения
Техническая задача
Настоящее изобретение было выполнено с учетом описанных выше проблем, и цель настоящего изобретения состоит в том, чтобы предоставить устройство обработки шифрования/дешифрования, способ обработки шифрования/дешифрования, устройство обработки информации и компьютерную программу для повышения трудности криптоанализа и воплощения в высокой степени защищенного алгоритма блочного шифра с общим ключом.
Техническое решение
Первый аспект настоящего изобретения направлен на:
устройство обработки дешифрования, содержащее: модуль обработки дешифрования, который выполняет обработку преобразования данных с использованием F-функции, включающей в себя S-блоки, в качестве раундовой функции по отдельным строкам данных, полученным путем разделения входных данных на число, большее чем или равное двум, в котором модуль обработки дешифрования выполнен так, что он включает в себя различные типы S-блоков в соответствующих модулях F-функций, которые имеют одинаковую строку входных данных и строку выходных данных, и которые расположены рядом друг с другом.
Кроме того, в варианте осуществления изобретения модуль обработки дешифрования выполнен с возможностью выполнения обработки дешифрования с использованием структуры Фейстеля, в которой количество строк данных (количество разделений) равно двум, или обобщенной структуры Фейстеля, в которой количество строк данных (количество разделений) равно двум или больше, и модуль обработки дешифрования выполнен с возможностью выполнения обработки дешифрования с использованием 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-блоков, применяемых для выполнения раундовой функции, (а) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 1, и остальные S-блоки представляют собой S-блоки типа 2; (b) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 1, и остальные S-блоки представляют собой S-блоки типа 3; (с) конфигурацию, в которой некоторые из 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-функций.
Кроме того, в варианте осуществления изобретения модуль обработки дешифрования выполнен с возможностью выполнения обработки дешифрования в соответствии с криптографией с общим ключом.
Кроме того, в варианте осуществления изобретения модуль обработки дешифрования выполнен с возможностью выполнения обработки дешифрования в соответствии с криптографией блочного шифра с общим ключом.
Второй аспект настоящего изобретения направлен на: способ обработки дешифрования, состоящий в выполнении обработки дешифрования в устройстве обработки дешифрования, содержащий: этап обработки дешифрования, состоящий в выполнении, в модуле обработки дешифрования, обработки преобразования данных с использованием F-функции, включающей в себя S-блоки, в качестве раундовой функции по отдельным строкам данных, полученным, путем разделения входных данных на число большее чем или равное двум, в котором этап обработки дешифрования представляет собой этап выполнения обработки преобразования данных с использованием разных типов S-блоков в F-функциях, которые имеют одинаковую строку входных данных и строку выходных данных и которые вертикально расположены рядом друг с другом.
Кроме того, в варианте осуществления изобретения на этапе обработки дешифрования выполняют обработку дешифрования, в соответствии с криптографией с общим ключом или криптографией блочного шифра с общим ключом.
Третий аспект настоящего изобретения направлен на: машиночитаемый носитель записи, содержащий записанную на нем программу, выполнение которой устройством обработки дешифрования приводит к выполнению обработки дешифрования, содержащей: этап обработки дешифрования, при котором модуль обработки дешифрования выполняет обработку преобразования данных с использованием F-функции, включающей в себя S-блоки, в качестве раундовой функции по отдельным строкам данных, полученным, путем разделения входных данных на число большее чем или равное двум, в котором этап обработки дешифрования представляет собой этап выполнения обработки преобразования данных с использованием разных типов S-блоков в F-функциях, которые имеют одинаковую строку входных данных и строку выходных данных и которые вертикально расположены рядом друг с другом.
Кроме того, в варианте осуществления изобретения на этапе обработки дешифрования выполняют обработку дешифрования, в соответствии с криптографией с общим ключом или криптографией блочного шифра с общим ключом.
Четвертый аспект настоящего изобретения направлен на: устройство обработки шифрования, содержащее: модуль обработки шифрования, который выполняет обработку преобразования данных с использованием F-функции, включающей в себя S-блоки, в качестве раундовой функции по отдельным строкам данных, полученным путем разделения входных данных на число, большее чем или равное двум, в котором модуль обработки шифрования выполнен так, что он включает в себя различные типы S-блоков в F-функциях, которые имеют одинаковую строку входных данных и строку выходных данных, и которые расположены рядом друг с другом.
Кроме того, в варианте осуществления изобретения модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования с использованием структуры Фейстеля, в которой количество строк данных (количество разделений) равно двум, или обобщенной структуры Фейстеля, в которой количество строк данных (количество разделений) равно двум или больше, и модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования с использованием F-функций, применяемых как модули выполнения раундовых функций, которые имеют одинаковую строку входных данных и строку выходных данных и, которые вертикально расположены рядом друг с другом, в которых обработка нелинейного преобразования, выполняемая F-функциями, установлена как разные S-блоки, которые выполняют разные типы обработки нелинейного преобразования.
Кроме того, в варианте осуществления изобретения каждая из F-функций, используемых как модули выполнения раундовых функций, включает в себя множество S-блоков, которые выполняют обработку нелинейного преобразования соответствующих частей данных, на которые разделены данные, предназначенные для обработки, и множество S-блоков включают в себя, по меньшей мере, два разных типа S-блоков.
Кроме того, в варианте осуществления изобретения каждая из Р-функций, используемых как модули выполнения раундовых функций, включает в себя множество S-блоков, которые выполняют обработку нелинейного преобразования соответствующих частей данных, на которые разделены данные, предназначенные для обработки, и обработку нелинейного преобразования, выполняемую с последовательным приращением частей данных в F-функциях, используемых как модули выполнения раундовых функций, которые имеют одинаковую строку входных данных и строку выходных данных и которые расположены вертикально рядом друг с другом, выполненную с возможностью установки в качестве других S-блоков, которые выполняют другие типы обработки нелинейного преобразования.
В варианте осуществления изобретения типы S-блоков и количество отдельных S-блоков, включенных в каждую из F-функций, используемых как модули выполнения раундовых функций, имеют одинаковую установку среди отдельных F-функций.
Кроме того, в варианте осуществления изобретения модуль обработки шифрования выполнен с возможностью использования, в качестве разных s-битовых входных/выходных S-блоков, предназначенных для применения при обработке нелинейного преобразования, (1) типа 1: S-блок, использующий инверсную карту: Y=Х-1 или показательную функцию Y=Xq по полю GF (2s) расширения; (2) типа 2: S-блок, генерируемый путем комбинирования множества малых t-битных S-блоков, где t<s; и (3) типа 3: S-блок, выбранный случайным образом, по меньшей мере, двух разных типов S-блоков среди описанных выше трех типов S-блоков (1)-(3).
Кроме того, в варианте осуществления изобретения модуль обработки шифрования имеет, в отношении S-блоков, применяемых для выполнения раундовой функции, (а) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 1, и остальные S-блоки представляют собой S-блоки типа 2; (b) конфигурацию, в которой некоторые из S-блоков представляют собой S-блоки типа 1, и остальные S-блоки представляют собой S-блоки типа 3; (с) конфигурацию, в которой некоторые из 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-функций.
Кроме того, в варианте осуществления изобретения модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования в соответствии с криптографией с общим ключом.
Кроме того, в варианте осуществления изобретения модуль обработки шифрования выполнен с возможностью выполнения обработки шифрования в соответствии с криптографией блочного шифра с общим ключом.
Пятый аспект настоящего изобретения направлен на: устройство обработки информации, содержащее: запоминающее устройство, предназначенное для хранения данных ключей, необходимых для криптографической обработки, процессор, выполненный с возможностью выполнения различных программ и управления обработкой шифрования, и блок обработки шифрования, который выполняет обработку преобразования данных с использованием F-функции, включающей в себя S-блоки, в качестве раундовой функции по отдельным строкам данных, полученным путем разделения входных данных на число, большее чем или равное двум, в котором блок обработки шифрования выполнен так, что он включает в себя различные типы S-блоков в F-функциях, которые имеют одинаковую строку входных данных и строку выходных данных, и которые расположены рядом друг с другом.
Шестой аспект настоящего изобретения направлен на: устройство обработки информации, содержащее: запоминающее устройство, предназначенное для хранения данных ключей, необходимых для криптографической обработки, процессор, выполненный с возможностью выполнения различных программ и управления обработкой дешифрования, и блок обработки дешифрования, который выполняет обработку преобразования данных с использованием F-функции, включающей в себя S-блоки, в качестве раундовой функции по отдельным строкам данных, полученным путем разделения входных данных на число, большее чем или равное двум, в котором модуль обработки дешифрования выполнен так, что он включает в себя различные типы S-блоков в соответствующих модулях F-функций, которые имеют одинаковую строку входных данных и строку выходных данных, и которые расположены рядом друг с другом.
Следует отметить, что компьютерная программа в соответствии с настоящим изобретением представляет компьютерную программу, которая может быть предоставлена через носители записи, такие как носители записи, включающие в себя CD (КД, компакт-диск), FD (ГД, гибкий диск) и МО (МО, магнитооптический диск), или среды передачи данных, такие как сеть, которая позволяет предоставлять программу в формате, считываемом компьютером, например, для компьютерной системы, позволяющей выполнять различные программные коды. Путем предоставления такой программы в считываемом компьютером формате обработка в соответствии с программой может быть выполнена в компьютерной системе.
Другие цели, свойства и предпочтительные эффекты настоящего изобретения будут понятны из следующего подробного описания вариантов выполнения настоящего изобретения и чертежей, приложенных к нему. Следует отметить, что система в настоящем описании относится к логическому узлу из множества устройств и не ограничивается узлом, в котором устройства, имеющие отдельную конфигурацию, содержатся в одном корпусе.
Предпочтительные эффекты
В соответствии с конфигурацией варианта воплощения настоящего изобретения в устройстве обработки шифрования, которое выполняет обработку блочного шифра с общим ключом, оно выполнено с возможностью использования, по меньшей мере, двух разных типов S-блоков в качестве S-блоков, используемых, как модуль обработки нелинейного преобразования, в модуле выполнения раундовой функции. При использовании такой конфигурации можно улучшить защиту от атак способом насыщения. Кроме того, в соответствии с конфигурацией варианта воплощения настоящего изобретения, в котором типы S блоков представляют смесь разных типов, можно улучшить устойчивость против алгебраических атак (атак XSL (РЯС, расширяемый язык стилей)), реализуя, таким образом, высокозащищенное устройство обработки шифрования.
Краткое описание чертежей
На фиг.1 показана схема, представляющая основную конфигурацию алгоритма блочного шифра с общим ключом.
На фиг.2 показана схема, описывающая внутреннюю конфигурацию модуля ЕЮ обработки блочного шифра с общим ключом, иллюстрируемой на фиг.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. Схематичное представление блочного шифра с общим ключом]
Вначале будет описана схема блочных шифров с общим ключом, которые можно применять в настоящем изобретении. В этом описании блочные шифры с общим ключом (ниже называемые блочными шифрами) представляют собой блочные шифры, определенные ниже.
В блочный шифр поступает открытый текст Р и ключ К, как входные данные, и блочный шифр выводит зашифрованный текст С. Длина битов открытого текста и зашифрованного текста называется размером блока, который обозначен здесь с помощью буквы n. Хотя n может представлять собой любое целое число, в общем случае, n представляет собой заданное значение для каждого алгоритма блочного шифра. Блочный шифр, длина блока которого равна n, может называться n-битным блочным шифром.
Длина в битах ключа обозначена как k. Ключ может представлять собой любое целое число. Алгоритм блочного шифра с общим ключом предназначен для работы с одним или с множеством размеров ключа. Например, один алгоритм А блочного шифра имеет размер блока n=128 и может быть выполнен с возможностью обработки различных размеров, то есть, длины в битах k=128, k=192 или k=256 ключа.
Индивидуальные размеры битов открытого текста [Р], зашифрованного текста [С] и ключа [К] обозначают следующим образом:
открытый текст Р: n битов
зашифрованный текст С: n битов
ключ К: k битов
Алгоритм Е блочного шифра с общим ключом длиной n-битов, позволяющий обрабатывать ключ длиной k-битов, представлен на фиг.1. Как показано на фиг.1, в модуль ЕЮ обработки блочного шифра с общим ключом подают n-битный открытый текст Р и k-битный ключ K, он выполняет заданный алгоритм шифрования и выводит n-битный зашифрованный текст С. Следует отметить, что, хотя обработка шифрования, состоящая в генерировании зашифрованного текста из открытого текста, показана на фиг.1, при обработке дешифрования, состоящей в генерировании открытого текста из зашифрованного текста, обычно используют функцию обратную Е10. Следует отметить, что, в зависимости от структуры модуля Е10 обработки шифрования, аналогичная модуль Е10 обработки блочного шифра с общим ключом также применим для обработки дешифрования, и обработка дешифрования позволяет изменять последовательность, такую как порядок вводимых ключей или тому подобное.
Со ссылкой на фиг.2, будет описана внутренняя конфигурация модуля Е10 обработки блочного шифра с общим ключом, иллюстрируемой на фиг.1. Блочный шифр можно рассматривать как имеющий два отдельных модуля. Один модуль представляет собой модуль 11 планирования ключа, которая принимает ключ К как входные данные, расширяет длину битов, вводимого ключа K, выполняя заданные этапы, и выводит расширенный ключ K' (длина k' в битах), и другой модуль представляет собой модуль 12 обработки шифрования, который выполняет преобразование данных для генерирования зашифрованного текста С, принимая расширенный ключ K', вводимый из модуля 11 планирования ключа, получая открытый текст Р в качестве входных данных, и выполняя обработку шифрования, применяя расширенный ключ K'. Следует отметить, что, как было описано выше, в зависимости от структуры модуля 12 обработки шифрования, модуль 12 обработки шифрования применим к обработке дешифрования данных, состоящей в преобразовании зашифрованного текста обратно в открытый текст.
Далее, со ссылкой на фиг.3, будет описана подробная конфигурация модуля 12 обработки шифрования, иллюстрируемой на фиг.2. Как показано на фиг.3, модуль 12 обработки шифрования выполнен с возможностью многократного выполнения преобразования данных, применяя модуля 20 выполнения раундовой функции. Таким образом, модуль 12 обработки шифрования может быть разделен на модули для обработки, которые представляют собой модуля 20 выполнения раундовой функции. Каждый модуль 20 выполнения раундовой функции принимает две части данных, как входные данные, выход Xi модуля выполнения раундовой функции на предыдущем этапе и раундовый ключ PKi сгенерированный на основе расширенного ключа, выполняет в них обработку преобразования данных, и выводит выходные данные Xi+1 в следующий модуль выполнения раундовой функции. Следует отметить, что вход в первый раунд представляет собой открытый текст или данные обработки инициализации для открытого текста. Кроме того, выход из последнего раунда представляет собой зашифрованный текст.
В примере, иллюстрируемом на фиг.3, модуль 12 обработки шифрования имеет r модулей 20 выполнения раундовой функции и выполнен с возможностью многократного выполнения преобразования данных r раз в модулях выполнения раундовой функции для генерирования зашифрованного текста. Количество раз выполнения раундовой функции называется количеством раундов. В представленном примере количество раундов равно r.
Входные данные Xi каждого модуля выполнения раундовой функции, представляют собой n-битные данные, подвергаемые шифрованию. Выход Xi+1 раундовой функции в определенном раунде подают как вход в следующий раунд. В качестве других входных данных в каждый модуль выполнения раундовой функции используют данные, основанные на расширенном ключе К', выводимом из модуля планирования ключа. Ключ, вводимый в каждый модуль выполнения раундовой функции и применяемый для выполнения раундовой функции, называется раундовым ключом. На схеме раундовый ключ, применяемый в 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 обработки нелинейного преобразования для нелинейного преобразования. Кроме того, результат нелинейного преобразо