Устройство обработки данных, способ обработки данных и программа

Иллюстрации

Показать все

Изобретение относится к защите информации. Технический результат - обеспечение высокого уровня защиты за счет повторения структуры логических вычислений и перестановки битов. Устройство обработки данных включает: модуль обработки преобразования данных, выполненный с возможностью разделения и ввода битов конфигурации данных, подлежащих обработке во множестве линий, и многократного выполнения обработки преобразования данных для данных в каждой линии; при этом модуль обработки преобразования данных включает в себя модуль исполнения F функции, выполненный с возможностью ввода одной линии данных, конфигурирующей множество линий, и генерирования преобразованных данных; причем модуль исполнения F функции включает в себя модуль обработки нелинейного преобразования, выполненный с возможностью исполнения обработки нелинейного преобразования; при этом модуль обработки нелинейного преобразования включает в себя повторяющуюся структуру из модуля перестановки битов и модуля нелинейного вычисления; причем множество модулей нелинейного вычисления, включенных в указанную повторяющуюся структуру, включают в себя по меньшей мере два или больше разных модулей нелинейного вычисления, имеющих разные конфигурации вычислений. 5 н. и 8 з.п. ф-лы, 29 ил.

Реферат

Область техники, к которой относится изобретение

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

Уровень техники

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

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

Наиболее распространенными из этих известных алгоритмов блочного шифра с общим ключом представляет собой Стандарт шифрования данных (DES), который представляет собой предыдущий стандарт США, и Усовершенствованный стандарт шифрования (AES), который представляет собой современный стандарт в США. Множество других блочных шифров с общим ключом существует или были предложены, включая в себя блочный шифр с общим ключом CLEFIA, предложенный Sony Corporation в 2007 г.

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

Общеизвестная конкретная структура воплощения алгоритма такого рода многократно выполняет раундовую функцию, которая включает в себя модуль линейного преобразования и модуль нелинейного преобразования. Наиболее распространенные структуры такого рода представляют собой, например, структуру Фейстеля и обобщенную структуру Фейстеля. Структура Фейстеля и обобщенная структура Фейстеля преобразуют открытый текст в зашифрованный текст путем простого повторения раундовой функции, которая включает в себя F функцию, выполняющую функцию преобразования данных. F функция выполняет обработку линейного преобразования и обработку нелинейного преобразования. Дополнительные детали, раскрывающие обработку шифрования, с применением структуры Фейстеля, могут быть найдены, например, в NPL 1 и NPL 2.

Обработка нелинейного преобразования, исполняемая F функцией, выполняется, например, путем применения функции нелинейного преобразования, называемой S-блоком. S-блок представляет собой элемент конфигурации шифраторов блока и функций хеширования, и выполняет чрезвычайно важную функцию для определения характеристик безопасности и воплощения.

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

Список литературы

Не патентная литература

NPL 1: K. Nyberg, "Generalized Feistel Networks", ASIACRYPT′ 96, Springer Verlag, 1996, pp.91-104.

NPL 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.

NPL 3: US National Institute of Standards and Technology Advanced Encryption Standard, Federal Information Processing Standards Publications No. 197, 2001.

NPL 4: Aoki, Ichikawa, Kanda, Matsui, Moriai, Nakajima, Tokita, "128-bit Block Encryption Camellia Algorithm Specification", Version 2.0, 2001.

NPL 5: Chae Hoon Lim, "CRYPTON: A New 128-bit Block Cipher-Specification and Analysis (Version 0.5)".

NPL 6: Chae Hoon Lim, "CRYPTON: A New 128-bit Block Cipher-Specification and Analysis (Version 1.0)".

NPL 7: Paulo S.L. M Barreto, Vincent Rijmen "The WHIRLPOOL Hashing Function", 2003.

NPL 8: Pascal Junod and Serge Vaudenay, "FOX: a New Family of Block Ciphers", 2004.

NPL 9: Sony Corporation, "The 128-bit Blockcipher CLEFIA Algorithm Specification", Revision 1.0, 2007.

Раскрытие изобретения

Техническая задача

Настоящее раскрытие представляет собой результат учета описанной ранее ситуации, и оно нацелено на обеспечение устройства обработки данных, способа обработки данных и программы, предоставленных в миниатюрном S-блоке, имеющем высокий уровень защиты.

Решение задачи

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

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

Что касается варианта осуществления устройства обработки данных, в соответствии с настоящим раскрытием, модуль обработки нелинейного преобразования выводит один бит результата вычисления из модуля вычисления функции NAND или NOR с 2-битными входными и 1-битными выходными данными, на модуль вычисления функции XOR или XNOR, выполняет одно из вычисления XOR или XNOR для каждого второго бита входных данных, и выводит данные размером 1 бит, сгенерированные в результате вычислений одной из функций XOR или XNOR, в качестве бита конфигурации, в качестве результата обработки нелинейного преобразования.

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

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

Что касается варианта осуществления устройства обработки данных, в соответствии с настоящим раскрытием, модуль обработки нелинейного преобразования генерирует результат вычисления для результата вычисления XOR или XNOR из результата вычисления любого одного из модулей вычисления NAND или NOR, соответствующего всем битам конфигурации данных, которые должны быть нелинейно преобразованы, и выводит результат вычисления, представляющий собой XOR или XNOR, в качестве бита конфигурации результата нелинейного преобразования.

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

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

Кроме того, второй аспект настоящего раскрытия представляет собой устройство обработки данных, включающее в себя модуль обработки нелинейного преобразования, имеющий повторяющуюся структуру, состоящий из: модуля нелинейного вычисления, состоящего из любого одного из модулей вычисления NAND или NOR, и любого одного из модулей вычисления XOR или XNOR; и модуля перестановки битов.

Что касается варианта осуществления устройства обработки данных, в соответствии с настоящим раскрытием, модуль обработки нелинейного преобразования генерирует результат вычисления для одного из результата вычисления XOR или XNOR, из результата вычисления любого одного из модулей вычисления NAND или NOR, соответствующего всем битам конфигурации данных, предназначенных для нелинейного преобразования, и выводит результат вычисления XOR или XNOR, как бит конфигурации результата нелинейного преобразования.

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

Что касается варианта осуществления устройства обработки данных, в соответствии с настоящим раскрытием, модуль исполнения нелинейной функции генерирует результат вычисления по результату вычисления XOR или XNOR, из результата вычисления любого одного из модулей вычисления NAND или NOR, соответствующего всем битам конфигурации данных, которые должны быть нелинейно преобразованы, и выводит один из результатов вычисления XOR или XNOR в качестве бита конфигурации для результата нелинейного преобразования.

Кроме того, в четвертом аспекте настоящего раскрытия описан способ обработки данных, предназначенный для исполнения в устройстве обработки данных; в котором модуль обработки данных выполнен с возможностью разделения и ввода битов конфигурации данных, подлежащих обработке множеством линий, и многократно исполняет обработку преобразования данных для данных в каждой линии; при этом обработка преобразования данных содержит этап выполнения F функции, выполненной с возможностью ввода одной линии данных, конфигурирующей множество линий, и генерирования данных преобразования; причем обработка исполнения F функции содержит выполнение обработки нелинейного преобразования; при этом обработка нелинейного преобразования содержит выполнение вычисления с повторением, применяя модуль нелинейного вычисления, состоящий из модуля вычисления одной из функции NAND или NOR и модуля вычисления одной из функции XOR или XNOR, и модуля перестановки битов.

Кроме того, в пятом аспекте настоящего раскрытия представлена программа, предназначенная для исполнения обработки преобразования данных в устройстве обработки данных; при этом программа обеспечивает разделение модуля обработки данных и ввод битов конфигурации данных, подлежащих обработке во множество линий, и многократное исполнение обработки преобразования данных для данных в каждой линии; и, при обработке преобразования данных, исполнение F функции, выполненной с возможностью ввода одной линии данных, конфигурирующей множество линий и генерирования преобразованных данных; причем при исполнении F функции обеспечивается выполнение обработки нелинейного преобразования; и при обработке нелинейного преобразования обеспечивается выполнение повторяющейся структуры с использованием модуля нелинейного вычисления, составленного из любого одного из модулей вычисления NAND или NOR, или любого одного из модулей вычисления XOR или XNOR, и модуля перестановки битов.

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

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

Полезные эффекты изобретения

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

В частности, включен узел обработки шифрования, выполненный с возможностью разделения и ввода битов конфигурации данных, предназначенных для обработки во множестве линий, и для многократного выполнения обработки преобразования данных, применяющей раундовую функцию, в качестве данных в каждой линии, в которой часть обработки шифрования включает в себя модуль исполнения F функции, выполненный с возможностью ввода одной линии данных, конфигурирующей множество линий, и для генерирования данных преобразования, в котором модуль исполнения F функции включает в себя модуль обработки нелинейного преобразования, выполненный с возможностью выполнения обработки нелинейного преобразования, и в котором модуль обработки нелинейного преобразования включает в себя структуру повторения модуля нелинейного вычисления, составленную из любого одного из модулей вычисления NAND или NOR или любого одного из модулей вычисления XOR или XNOR, и модуль перестановки битов. Миниатюризированный модуль нелинейного преобразования получается в результате такой конфигурации повторения.

Краткое описание чертежей

На фиг.1 показана схема, описывающая n-битный алгоритм блочного шифрования с общим ключом, соответствующий длине ключа k битов.

На фиг.2 показана схема, описывающая алгоритм дешифрования, соответствующий n-битному алгоритму блочного шифрования с общим ключом, соответствующему длине ключа k битов, представленному на фиг.1.

На фиг.3 показана схема, описывающая взаимосвязь между узлом планирования ключа и модулем шифрования данных.

На фиг.4 показана схема, описывающая пример конфигурации модуля шифрования данных.

На фиг.5 показана схема, описывающая пример раундовой функции структуры SPN.

На фиг.6 показана схема, описывающая пример раундовой функции структуры Фейстеля.

На фиг.7 показана схема, описывающая пример расширенной структуры Фейстеля.

На фиг.8 показана схема, описывающая пример расширенной структуры Фейстеля.

На фиг.9 показана схема, описывающая пример конфигурации нелинейного модуля преобразования.

На фиг.10 показана схема, описывающая пример конфигурации модуля обработки линейного преобразования.

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

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

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

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

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

На фиг.16 показана схема, описывающая пример конфигурации 4-битных S-блоков из повторяющейся структуры логических вычислений и перестановки битов.

На фиг.17 показана схема, описывающая пример конфигурации 4-битных S-блоков из повторяющейся структуры логических вычислений и перестановки битов.

На фиг.18 показана схема, описывающая пример конфигурации 4-битных S-блоков из повторяющейся структуры логических вычислений и перестановки битов.

На фиг.19 показана схема, описывающая пример конфигурации 4-битных S-блоков из повторяющейся структуры логических вычислений и перестановки битов.

На фиг.20 показана схема, описывающая пример конфигурации 4-битных S-блоков из структуры повторения логических вычислений и перестановки битов.

На фиг.21 показана схема, описывающая пример конфигурации 5-битных S-блоков из структуры повторения логических вычислений и перестановки битов.

На фиг.22 показана схема, описывающая пример конфигурации больших S-блоков из повторяющейся обработки, используя малые S-блоки на основе GFN I типа (обобщенная сеть Фей стеля).

На фиг.23 показана схема, описывающая пример конфигурации больших S-блоков из повторяющейся обработки, используя малые S-блоки на основе GFN II типа.

На фиг.24 показана схема, описывающая пример применения конфигурации больших S-блоков из повторяющейся обработки, используя малые S-блоки.

На фиг.25 показана схема, описывающая пример применения конфигурации больших S-блоков из повторяющейся обработки, используя малые S-блоки.

На фиг.26 показана схема, описывающая пример применения конфигурации больших S-блоков из повторяющейся обработки, используя малые S-блоки.

На фиг.27 показана схема, описывающая пример применения конфигурации больших S-блоков из повторяющейся обработки, используя малые S-блоки.

На фиг.28 показана схема, описывающая пример применения конфигурации больших S-блоков из повторяющейся обработки, используя малые S-блоки.

На фиг.29 показана схема, иллюстрирующая пример конфигурации модуля 700 IC, в качестве устройства обработки шифрования.

Осуществление изобретения

Далее устройство обработки данных, способ обработки данных и программа, относящиеся к настоящему раскрытию, будут подробно описаны со ссылкой на чертежи. Описание будет представлено в соответствии со следующими пунктами.

1. Общий обзор блочного шифрования с общим ключом

2. S-блоки

3. Общий обзор S-блока, относящегося к настоящему раскрытию

4. Примеры конфигурации устройств обработки шифрования

5. Заключение в отношении конфигурации настоящего раскрытия

1. Общий обзор блочного шифрования с общим ключом

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

1-1. Шифрование блока общего ключа

В представленном ниже определении установлено обозначение блока шифрования с общим ключом (ниже называется блоком шифрования).

Блок шифрования получает открытый текст P и ключ K в качестве входных данных и выводит зашифрованный текст C. Длина в битах открытого текста и зашифрованного текста называется размером блока, который обозначен, как n. n представляет собой произвольное целое значение, которое обычно представляет собой одно значение, определенное заранее для каждого алгоритма блочного шифрования. Случай, в котором размер блока представляет блочное шифрование n, иногда называется блочным шифрованием размером n битов.

Длина ключа в битах выражена, как k. Ключ имеет произвольное целое значение. Алгоритм блочного шифрования с общим ключом может поддерживать один или множество размеров ключа. Например, для некоторого алгоритма A блочного шифрования, размер блока составляет n=128, и, таким образом, возможна конфигурация, которая поддерживает размер ключа k=128, k=192 или k=256.

Открытый текст P: n битов

Зашифрованный текст C: n битов

Ключ K: k битов

На фиг.1 иллюстрируется схема алгоритма E блочного шифрования с общим ключом размером n битов, соответствующего длине ключа k битов.

Алгоритм D дешифрования, соответствующий алгоритму E шифрования, может быть определен, как обратная функция E-1 алгоритма E шифрования, который принимает зашифрованный текст C и ключ K, в качестве входных данных, и выводит открытый текст P. На фиг.2 иллюстрируется схема алгоритма D дешифрования, соответствующая алгоритму E шифрования, показанному на фиг.1.

1-2. Внутренняя конфигурация

Блочное шифрование рассматривается, как разделенное на два узла. Один представляет собой "узел планирования ключа", в который вводят ключ K и из которого выводят расширенный ключ K′ (длина в битах k′), путем расширения длины в битах, в соответствии с некоторыми, ранее определенными этапами, и другой представляет собой "модуль шифрования данных", который принимает открытый текст P, и ключ K′, расширенный узлом планирования ключа, выполняет преобразование данных, и выводит зашифрованный текст C.

Взаимосвязь между этими двумя узлами представлена на фиг.3.

1-3. Модуль шифрования данных

Модуль шифрования данных, используемый в следующих вариантах осуществления, может быть разделен на модули обработки, называемые раундовыми функциями. Раундовая функция принимает два модуля данных, в качестве входных данных, выполняет внутреннюю обработку и выводит один модуль данных. Одна часть входных данных представляет собой n-битные данные, шифруемые в настоящее время, в результате чего получают конфигурацию, в которой выход из раундовой функции для определенного раунда подают, как вход для следующего раунда. Другая часть входных данных используется в качестве данных для узла расширенного ключа, выводимого из планировщика ключа, и эти данные ключа называются раундовым ключом. Кроме того, общее количество раундовых функций называется общим раундовым числом, и представляет собой значение, определяемое заранее для каждого алгоритма шифрования. Здесь общее раундовое число выражено, как R.

Общий обзор модуля шифрования данных показан на фиг.4, если смотреть со стороны ввода в модуль шифрования данных, в котором входные данные для первого раунда обозначены, как X1, данные, вводимые в раундовой функции номер I для всех раундов обозначены как Xi, и раундовый ключ обозначен, как RKi.

1-4. Раундовая функция

Раундовая функция может иметь различные формы, в зависимости от алгоритма блочного шифрования. Раундовая функция может быть классифицирована по структуре, принятой в этом алгоритме шифрования (структуре). Типичные структуры, используемые здесь в качестве примеров, представляют собой структуры SPN, структуры Фейстеля и расширенными структуры Фейстеля.

(A) Раундовая функция структуры SPN

В такой структуре применяют обработку линейного преобразования, обработку нелинейного преобразования и вычисления XOR для раундового ключа и всех n-битных входных данных. Порядок каждого вычисления не определен чем-либо конкретным. На фиг.5 иллюстрируется пример раундовой функции структуры SPN.

(B) Структура Фейстеля

n-битные входные данные разделяют на два модуля по n/2-битов данных. Функция (F функция) применяется к одной части этих данных и раундовый ключ, как входные данные, и выходные данные, и другую часть данных вычисляют, используя функцию XOR. Результат перестановки обеих сторон этих данных становится выходными данными. Хотя существуют различные типы внутренней конфигурации F функции, но они, в основном, достигаются аналогично структуре SPN с комбинированием вычислений XOR с данными раундового ключа, нелинейными вычислениями и линейными преобразованиями. На фиг.6 иллюстрируется пример раундовой функции структуры Фейстеля.

(C) Расширенная структура Фейстеля

Количество разделений данных, равное двум, в отношении структуры Фейстеля расширяют на формат из трех или больше разделений с расширенной структурой Фейстеля. Если количество разделений обозначено, как d, тогда различные расширенные структуры Фейстеля могут быть определены в зависимости от d. В связи с тем, что размер входной и выходной F функции является относительно малым, она пригодна для малых воплощений. На фиг.7 иллюстрируется пример расширенной структуры Фейстеля, в которой d=4, и две F функции применяют параллельно в пределах одного раунда. Кроме того, на фиг.8 иллюстрируется пример расширенной структуры Фейстеля, в которой d=8, и одна F функция применяется в пределах одного раунда.

1-5. Модуль обработки нелинейного преобразования

Стоимость воплощения проявляет тенденцию увеличения по мере увеличения размера входных данных для модулей обработки нелинейного преобразования. Для обхода этого используется множество конфигураций, в которых соответствующие данные разделяют на множество модулей, и выполняют нелинейное преобразование для этих данных. Например, когда входной размер обозначен, как ms битов, эти конфигурации разделяют на число m модулей данных через каждые s битов, и выполняют нелинейные преобразования этих данных, в которых входные и выходные данные составляют s битов. Нелинейные преобразования в этих модулях s-битов называются S-блоками. На фиг.9 иллюстрируется пример.

1-6. Модуль обработки линейного преобразования

Модули обработки линейного преобразования могут быть определены, как матрицы, в соответствии с их свойством. Элементы матрицы могут, в общем, быть выражены различными путями, например, как элемент основной части GF (28) и элемент GF (2). На фиг.10 иллюстрируется пример модуля обработки линейного преобразования, определенный, как матрица m×m, которая определяет входные данные размером ms битов и выходные данные, как GF (2S).

2. S-блоки

Вначале будет представлен общий обзор S-блоков, как модулей нелинейного преобразования, перед описанием конфигурации в соответствии с настоящим изобретением.

Обработку нелинейного преобразования, выполняемую F функцией, выполняют, например, применяя функцию нелинейного преобразования, называемую S-блоками. Такой S-блок представляет собой элемент конфигурации блочных шифров и функций хеширования и представляет собой чрезвычайно важную функцию для определения уровня безопасности и характеристик воплощения.

В общем, такой S-блок представляет собой функцию нелинейного преобразования, имеет входные данные в размере n битов и выходные данные в размере m битов, но описание продолжается ниже с обсуждением биективного S-блока с входом и выходом n битов. Здесь, биективный означает, что все выходные отображения представляют собой отображения одного входного значения.

Перспектива безопасности

Свойство S-блока оказывает существенное влияние на уровень безопасности всего шифрования. Общая оценка уровня безопасности в отношении общего шифрования и самой раундовой функции обычно затруднена, поскольку размер входных и выходных данных является существенным, но точная оценка возможна, поскольку размер входных и выходных данных S-блоков обычно меньше (вход и выход приблизительно восемь битов). Для повышения уровня безопасности общего шифрования, по меньшей мере, следующие свойства (1)-(4) желательно обеспечить в S-блоках.

(Свойство 1) Максимальная вероятность разности должна быть достаточно малой

Когда входную переменную x однородно выбирают в отношении произвольной входной разности Δx и выходной разности Δy, вероятность разности S-блока представляет собой вероятность, которая удовлетворяет S(x)+S(x+Δx)=Δy.

Однако, S(x) представляет выходные данные, соответствующие входным данным x для определенного S-блока S.

Максимальная вероятность разности определена, как наибольшая вероятность из комбинаций всех входных и выходных разностей. Каждая из них будет определена ниже соответствующим выражениями.

Если вероятность разности функции S, в которой предоставляют входную разность Δx и при выходной разности Δy определена, как DP (Δx, Δy), тогда DP ((Δx, Δy) определяется следующим образом.

Уравнение 1

где ⊕ представляет функцию XOR с последующим приращением в битах.

В это время максимальная вероятность разности MDP для этой функции определена следующим образом.

Уравнение 2

M D P S = max Δ x ≠ 0,   Δ y D P S ( Δ x ,   Δ y )                                                                                                                                                                                                                                   ( 2 )

Такая вероятность разности может обладать устойчивость к атакам разности, путем разработки достаточно малого S-блока.

(Свойство 2) Максимальная линейная вероятность должна быть достаточно малой

Когда входную переменную x выбирают равномерно в отношении произвольной входной маски Гх и выходной маски Гу, линейная вероятность s блока представляет собой значение, получаемое из вероятности, которая удовлетворяет

Г x ⋅ x = Г y ⋅ S ( x )                                                                                                                                                                                                                                                                 ( 2 ) .

Здесь · означает внутреннее умножение между n-битными векторами.

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

Далее определена каждая из них, в соответствии с выражением.

Если линейная вероятность функции S при предоставлении в нее входной маски Гх и выходной маски Гу определена, как LPs (Гх, Гу), тогда LPs (Гх, Гу), может быть выражено следующим образом.

Уравнение 3

L P S ( Г x ,   Г y ) = ( # { x ∈ { 0,1 } n | x • Г ( x ) = S ( x ) • Г у } 2 n − 1 ) 2                                                                                                     ( 3 )

Здесь максимальная вероятность разности MLP для функции S определена следующим образом.

Уравнение 4

M L P S = max Г x ,   Г y ≠ 0 L P S ( Г x ,   Г y )                                                                                                                                                                                                                                   ( 4 )

Такая максимальная линейная вероятность может иметь устойчивость к линейным атакам, благодаря разработке достаточно малого S-блока.

(Свойство 3), Степень Булевой алгебры должна быть достаточно большой, при выполнении выражений с Булевым многочленом.

Степень Булевой алгебры означает степень при выражении выходных битов S-блока в виде входных Булевых битов. При разработке S-блока с достаточно большой степенью Булевой алгебры в отношении всех битов, становится возможным обеспечить устойчивость