Способ формирования s-блока
Иллюстрации
Показать всеИзобретение относится к области обработки информации и криптографии и, в частности, к способам формирования S-блоков замены с минимальным количеством логических элементов. Техническим результатом является уменьшение схемотехнических затрат при реализации S-блока с помощью логических элементов & и ⊕ (XOR), обеспечение возможности учета различных схемотехнических затрат на реализацию элементов & и ⊕ в процессе минимизации результирующей логической схемы S-блока. Заявляемый способ состоит из аналитического этапа, на котором выполняется последовательная декомпозиция исходных многочленов, задающих S-блок, на суммы и произведения более простых многочленов, для реализации которых требуется меньше суммарных схемотехнических затрат, этапа синтеза, на котором создаются схемы реализации этих далее не упрощаемых многочленов и на основе этих схем в порядке обратном декомпозиции строится итоговая логическая схема реализации S-блока, и третьего этапа, в ходе которого итоговая логическая схема реализуется в электронной схеме. 6 ил.
Реферат
Область техники, к которой относится изобретение
Предполагаемое изобретение относится к области обработки информации и криптографии и, в частности, к способам формирования S-блоков замены с минимальным количеством логических элементов, для последующего использования в аппаратуре систем обработки данных и криптографической защиты информации.
Уровень техники
Операции замены -битовых двоичных векторов на -битовые двоичные вектора, реализуемые в блоках замены (S-блоках), широко используются для криптографического преобразования данных, для сжатия информации и/или защиты от помех при хранении и при передаче информации по каналам связи.
Способы формирования S-блоков с минимальным количеством логических элементов известны и зависят от состава логических элементов схемотехнической реализации.
Так, для набора логических элементов, реализующих логические операции И (&), ИЛИ (V), НЕ (¬), известны метод Квайна-МакКласки, алгоритм Блейка – Порецкого и др. [1]. Однако, известные методы предназначены для оптимизации одной булевой функции, а не набора из булевых функций, задающих S-блок. Кроме того, эти методы неприменимы к набору логических элементов, реализующих логические операции & и XOR (⊕, исключающее ИЛИ).
Известен способ минимизации булевой функции для набора логических элементов {&, ⊕}, предложенный как составная часть процесса запоминания цифровой информации [2]. Однако, этот способ также предназначен для минимизации только одной булевой функции и не учитывает возможности совместной оптимизации нескольких булевых функций, представляющих S-блок. При этом, в данном способе оптимизируется суммарное число элементов & и ⊕ и не принимается во внимание, что схемотехнические затраты на реализацию операций & и ⊕ могут существенно отличаться друг от друга.
Наиболее близким по своей технической сущности к заявляемому является известный способ эффективной реализации S-блока, используемого в стандарте криптографической защиты информации AES [3], в котором, наряду с оптимизацией времени вычисления S-блока, решается и задача минимизации числа логических элементов {&, ⊕} при реализации данного S-блока.
Известный способ [3] выбирается в качестве прототипа.
Основным недостатком прототипа является то, что он предназначен исключительно для S-блоков частного вида, а именно, для S-блоков, задаваемых несколькими (небольшим числом) операций в конечном поле , к которым и относиться S-блок стандарта криптографической защиты AES. Прототип непосредственно опирается на реализацию операции умножения в конечном поле , поэтому он неприменим к произвольному S-блоку, не основанному на какой-либо алгебраической системе.
Другим недостатком (ограничением) прототипа является то, что он осуществляет минимизацию числа логических элементов {&, ⊕} для реализации S-блока в несколько тактов/шагов (для итеративной схемы реализации). При этом число итераций при вычислениях S-блока возрастает с увеличением размера m конечного поля .
Раскрытие изобретения
Техническим результатом предлагаемого способа является
1) уменьшение схемотехнических затрат при реализации S-блока с помощью логических элементов & и ⊕,
2) возможность учета различных схемотехнических затрат на реализацию элементов & и ⊕ в процессе минимизации результирующей логической схемы S-блока.
В заявленном способе также отсутствуют ограничения на значения и размерности S-блока.
S-блок осуществляет замену входного двоичного вектора длины на выходной двоичный вектор длины , где для и .
S-блок однозначно задается аналитически координатными булевыми функциями от переменных , что можно записать в виде
В предлагаемом способе рассматривается представление координатных булевых функций S-блока через приведенные многочлены Жегалкина: каждая функция для аналитически задана в виде
где – множество переменных многочленов , ;
- моном многочлена , который является произведением всех переменных из подмножества множества , причем при для приведенного многочлена .
- мощность (число элементов) множества - мономов , составляющих многочлен .
Существуют и другие, отличные от приведенного многочлена Жегалкина, формы представления булевых функций, например: таблица истинности, дизъюнктивная нормальная форма (ДНФ), конъюнктивная нормальная форма (КНФ). Процессы перехода от одного вида представления к другому хорошо известны. Например, в известном способе [4] приведена последовательность перехода от таблицы истинности к представлению булевой функции через приведенный многочлен Жегалкина. В заявляемом способе не имеет значения, каким образом формируется исходное аналитическое представление S-блока через приведенные многочлены Жегалкина:
Для построения оптимальной логической схемы реализации S-блока через операции & и ⊕ в заявляемом способе используются предварительные аналитические вычисления, использующие операции над множествами. Для получаемого в результате схемотехнического решения не имеет значения, какие используются представления множеств (характеристический вектор, список элементов, в том числе упорядоченный список, и т.д.) и с помощью каких преобразований осуществляются операции над множествами.
Прямой способ реализации S-блока (1), заданного множеством приведенных многочленов Жегалкина , состоит из двух этапов:
1. Составляют множество мономов, входящих в состав многочленов из множества , по формуле
,
где – множество мономов, составляющих многочлен .
Каждый моном реализуют через конъюнкцию & всех элементов множества - подмножества множества входных переменных S-блока, где – множество переменных монома .
2. Каждый многочлен из множества реализуют, как сумму ⊕ выходов из схем реализаций мономов , полученных на предыдущем этапе.
В этом способе схема реализации монома (свободному члену) требует элементов &, где – мощность множества – множества переменных монома .
Аналогично, схема реализации многочлена требует элементов ⊕, где – мощность множества - множества мономов, составляющих многочлен .
Тем самым, аддитивная сложность и мультипликативная сложность реализации множества многочленов составляют:
,
(1)
где – множество мономов, входящих в состав многочленов множества , за исключением свободного члена 1.
Если схемотехнические затраты на реализацию операции & составляют единиц, а затраты на реализацию операции ⊕ - единиц, суммарные затраты на реализацию S-блока составят
(2) |
Заявляемый способ состоит из аналитического этапа, на котором выполняется последовательная декомпозиция исходных многочленов, задающих S-блок, на суммы и произведения более простых многочленов, для реализации которых требуется меньше суммарных схемотехнических затрат, этапа синтеза, на котором создаются схемы реализации этих, далее не упрощаемых, многочленов и на основе этих схем в порядке обратном декомпозиции строится итоговая логическая схема реализации S-блока, и третьего этапа, в ходе которого итоговая логическая схема реализуется в электронной схеме.
На каждом шаге декомпозицию множества многочленов осуществляют одним из двух следующих преобразований.
Преобразование 1 определяется парой многочленов из рассматриваемого множества многочленов , и состоит из следующих вычислений:
• выделяют множество общих мономов многочленов и
• вычисляют мощность ;
• если (это равносильно тому, что многочлены и или не имеют общих мономов или имеют ровно один такой моном), то данное преобразование прекращают, так как оно не дает снижения схемотехнических затрат;
• если , то из мономов множества составляют многочлен , а из мономов множеств и – многочлены и соответственно;
• вычисляют, в качестве декомпозиции многочленов и , соотношения
,
,
в которых слагаемые, равные 0, обозначают, что операцию ⊕ реализовывать не требуется;
• формируют результирующее множество многочленов
• вычисляют эффективность преобразования (величину уменьшения схемотехнических затрат) в виде
Преобразование 2 определяется параметром – переменной из множества и состоит из следующих вычислений для каждого многочлена из рассматриваемого множества многочленов :
• для рассматриваемого многочлена формируют множество мономов, содержащих переменную
• вычисляют мощность множества ;
• если (это равносильно тому, что многочлен или не зависит от переменной , или имеет ровно один моном, содержащий переменную ), то не подвергают декомпозиции, в неизменном виде включают в результирующее (формируемое) множество многочленов , а сложность его декомпозиции полагают равной нулю;
• если , то осуществляют декомпозицию многочлена , выполняя следующие действия:
◯ из мономов множества исключают переменную и формируют многочлен
,
причем моном , состоящий из единственной переменной , переходит в свободный член 1 многочлена ;
◯ из мономов множества (мономов многочлена , не содержащих переменную ) формируют многочлен
◯ вычисляют многочлен
◯ приводят подобные члены в (исключают повторяющиеся мономы)
◯ если число мономов многочлена меньше числа мономов многочлена на 2 и более, что равносильно условию на мощности множеств
,
то в качестве декомпозиции многочлена используют выражение
,
▪ включают в результирующее множество многочленов многочлены , и ;
▪ принимают значение сложности декомпозиции многочлена равной , если , то увеличивают значение на
;
◯ если же
,
то в качестве декомпозиции многочлена используют выражение
,
▪ включают в результирующее (формируемое) множество многочленов многочлены и ;
▪ принимают значение сложности декомпозиции многочлена равной , если , то увеличивают значение на
Эффективность преобразования 2 (величину уменьшения схемотехнических затрат) для рассматриваемого множества многочленов и переменной рассчитывают по формуле:
,
где значения и вычисляются по формулам (1) и (2).
Для минимизации схемотехнических затрат на реализацию мономов из множества проводят разложение мономов в произведение мономов с меньшим числом переменных, используя следующее преобразование.
Преобразование 3 состоит из следующих вычислений и операций:
• осуществляют во множестве мономов поиск для обнаружения пары мономов , причем , с наибольшим числом общих переменных, путем последовательного перебора, то есть находят пару мономов с максимальным значением
где – множество переменных в мономе
• если (это равносильно тому, что у мономов рассматриваемого множества нет общих переменных), то завершают преобразование
• если , то выполняют следующие действия:
• составляют мономы , , из переменных , и , соответственно; в качестве разложения мономов и используют выражения
,
,
в которых сомножители, равные 1, обозначают, что операцию & реализовывать не требуется;
• формируют результирующее множество мономов , удаляя из множества мономы и и добавляя мономы , , , т.е. вычисляют
Предлагаемый способ минимизации схемотехнических затрат на реализацию S-блока, заданного многочленами Жегалкина , состоит из 7 этапов.
1. Исходное множество многочленов
последовательно преобразовывают с использованием преобразований 1 и 2:
где каждый переход имеет эффективность больше нуля (т.е. приводит к снижению оценки суммарных схемотехнических затрат и осуществляется к результирующему множеству многочленов, формируемому в ходе этих преобразований). Результирующее множество характеризуется тем, что никакое из преобразований 1 и 2 не приводит к дальнейшему снижению оценки затрат ни при каких параметрах.
2. Затем, по результирующему множеству формируют множество мономов , входящих в многочлены множества и добавляют к нему множество входных переменных
,
где – множество мономов, составляющих многочлен .
3. Затем осуществляют разложение мономов множества , многократно используя преобразование 3 до тех пор, пока преобразование станет неприменимым, и получают последовательность множеств
Поскольку переменные не удаляют в процессе преобразования множества мономов, то невозможность применения преобразования 3 к множеству равносильно тому, что состоит только из элементов , которые и являются входами S-блока.
4. Построение логической схемы S-блока начинают проходом по цепочке в обратном порядке, соединяя операцией & выходы схем мономов, участвующих в разложении, схемы которых, в свою очередь, были составлены на предыдущих шагах.
5. После построения логических схем мономов из множества формируют логические схемы многочленов из множества , соединяя операцией ⊕ выходы схем мономов , составляющих этот многочлен.
6. Далее осуществляют проход по цепочке в обратном порядке, и составляют логические схемы очередных многочленов, соединяя операциями & и ⊕ выходы схем предшествующих многочленов в соответствии с формулами декомпозиции.
7. Выходы логических схем многочленов множества используют в качестве выходов логической схемы S-блока.
В описанном способе минимизации схемотехнических затрат не специфицированы параметры, которые используются для переходов и . Однако, от выбора этих параметров зависит получаемый эффект снижения схемотехнических затрат. Эффективный метод выбора наилучшего набора параметров, обеспечивающих наименьшее из возможных значений суммарных схемотехнических затрат, неизвестен, а полный перебор всех наборов требует экспоненциальных вычислительных затрат от величины , что делает перебор неприемлемым для практически интересных значений .
В заявляемом способе предлагается выбирать параметры перехода так, чтобы на каждом переходе и уменьшение оценки схемотехнических затрат было максимально возможным, а среди параметров, обеспечивающих такое снижение оценки, использовать параметры, запись (представление) которых предшествует записям остальным в лексикографическом порядке.
Необходимо отметить, что построение (формирование) логической схемы, реализующей соответствующую булеву функцию, является известным процессом (этот процесс описан, например, в [1, 4]).
Реализация электронной схемы на основе полученной логической схемы также является известным процессом и может быть выполнена как на дискретных элементах, так и с использованием интегральных микросхем, в том числе программируемых логических интегральных микросхем (ПЛИС), по выбору разработчика.
Краткое описание чертежей
На фиг. 1 показана начальная логическая схема для примера реализации способа.
На фиг. 2 показана промежуточная логическая схема для примера реализации способа.
На фиг. 3 показана промежуточная логическая схема для примера реализации способа.
На фиг. 4 показана промежуточная логическая схема для примера реализации способа.
На фиг. 5 показана промежуточная логическая схема для примера реализации способа.
На фиг. 6 показана финальная логическая схема для примера реализации способа.
Осуществление изобретения
Рассмотрим пример реализации предложенного способа для S-блока, имеющий = 4 входов и = 4 выходов и заданного следующими многочленами Жегалкина от четырех переменных
Прямой способ реализации этого S-блока требует 11 операций & для формирования мономов , , , , , и 13 операций для составления из них многочленов.
Рассмотрим применение предлагаемого способа в условиях, когда схемотехнические затраты на реализацию операций & и ⊕ совпадают, т.е. = = 1.
Число общих мономов у любой пары многочленов не превышает 1, поэтому способ из прототипа не дает выигрыша по количеству операций, т.е. не приводит к снижению схемотехнических затрат.
В предлагаемом способе этому S-блоку соответствуют исходные значения:
У любых двух многочленов из множества совпадает не более одного монома, что при на этапе А1 (согласно обозначению в формуле изобретения), соответствует тому, что . Поэтому на этапе А1 после присвоения значения выполняют переход на этап А2, где вычисляют значение , характеризующую сложность прямой реализации множества многочленов
и величину имеющегося снижения сложности
С этапа А3 до этапа А4 по очереди перебирают переменные из множества . Для выбранного значения каждый многочлен из представляют в одном из 2-х вариантов:
или
,
в записи которого меньше операций . Для полученного разложения многочленов по переменной подсчитывают значение , характеризующую снижение сложности прямой реализации множества многочленов за счет перехода к прямой реализации выделенных компонент разложения с последующим составлением исходных многочленов по выбранным формулам.
Для рассматриваемого множества многочленов перебор переменных дает следующие результаты разложения многочленов и соответствующие им оценки сложности использования такого разложения:
Для :
сложность
Для :
сложность
Для :
сложность
Для :
сложность
Наибольшее снижение сложности (значение ) имеет место при . Поэтому на этапе А4 при переходе на этап А1 при :
Для множества многочленов максимальная общая часть двух многочленов состоит из 3-х мономов , , . Поэтому при переходе на этап А2 вычисляемые параметры имеют значения:
На этапе А2 вычисляют сложность прямой реализации множества многочленов
и снижение сложности за счет выделения общего слагаемого
На этапах с А3 по А4 разложение многочленов множества по переменным , , из множества дает следующие оценки сложности использования данного разложения по сравнению с сложностью прямой реализации множества
Для :
сложность
Для :
сложность
Для :
сложность
Наибольшее снижение сложности (значение ) имеет место при , что меньше снижения сложности (значение ) при выделение многочлена .
Поэтому на этапе А4 при переходе на этап А1 при вычисляемые параметры имеют следующие значения:
Число общих мономов у любой пары многочленов из множества не превышает 1, поэтому при переходе на этап А3 при вычисляемые параметры имеют следующие значения
и сложность прямой реализации
На этапах с А3 по А4 разложение многочленов мно