Применение системы Sage для поиска алгебраической иммунности булевых функций и отображений
Нахождение алгебраической иммунности криптографических булевых функций и булевых отображений, задающих S-блок шифра Baby-Rijndael в системе компьютерной алгебры Sage. Определение базисных векторов пространства решений, редуцированного базиса Гребнера.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 21.12.2019 |
Размер файла | 47,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Применение системы Sage для поиска алгебраической иммунности булевых функций и отображений
А.Н. Благовисная, И.О. Симуськова Оренбургский государственный университет
Булева функция является одним из важнейших математических понятий, исследуемых в современной криптографии. Это обусловлено тем, что булевы функции и отображения используются в качестве структурных элементов множества криптографических конструкций. С помощью булевых функций описываются структурные компоненты блочных, поточных шифров, а также широко известные криптографические хэш-функции.
Функции или их системы, применяемые при синтезе криптографических объектов, называются криптографическими функциями. Развитие методов и средств криптографического анализа привело к формулировке ряда требований, предъявляемых к криптографическим функциям. Эти требования получили название криптографических свойств. Булевы функции, удовлетворяющие специальным криптографическим характеристикам, вносят существенный вклад в стойкость криптографических алгоритмов. Исследование криптографических характеристик, методов и алгоритмов создания булевых функций с криптографическими характеристиками являются актуальными задачами современной криптографии.
Основным свойством булевых функций, характеризующим способность шифра противостоять алгебраическим атакам, является алгебраическая иммунность. Существует множество публикаций как отечественных, так и зарубежных авторов, посвященных различным проблемам теории и практики применения криптографических булевых функций. В статьях, монографиях и книгах, в которых рассматриваются вопросы криптографических приложений булевых функций, отражаются следующие направления исследований, связанные с понятием алгебраической иммунности:
- получение оценок и разработка алгоритмов вычисления значения алгебраической иммунности булевых функций;
- исследование оптимальных сочетаний криптографических свойств булевых функций;
- разработка методов и алгоритмов построения криптографических булевых функций с оптимальными сочетаниями свойств, включая алгебраическую иммунность;
- реализация алгебраических атак на криптографические конструкции.
Рассмотрим булеву функцию f от n переменных. Булева функция g от n переменных называется аннигилятором функции f, если fg=0.
Алгебраической иммунностью AI(f) булевой функции f называется минимальное число d такое, что существует булева функция g (аннигилятор) степени d, не тождественно равная нулю, для которой выполняется одно из равенств или [6].
Для создания криптографических булевых функций важно уметь находить значение алгебраической иммунности булевой функции.
Известно, что для любой булевой функции от n переменных [6].
В работах [1, 2, 5, 6] описаны алгоритмы, позволяющие получать значения алгебраической иммунности булевых функций.
Продемонстрируем поиск алгебраической иммунности для функции .
Так как , то нам достаточно выяснить, существуют ли аннигиляторы g для булевой функции f, степень которых . Представим функцию g в виде , где .
По определению
(1)
(2)
Выясним, при каких выполняются данные соотношения.
В левой части равенства (1) раскроем скобки и приведем подобные слагаемые. Получим
(3)
Значения , при которых равенство (3) является верным, найдем из системы уравнений:
(4)
На данном этапе поиска значения алгебраической иммунности достаточно найти хотя бы одно ненулевое решение системы (4) или доказать, что система (4) имеет единственное тривиальное решение.
Система (4) имеет нетривиальные решения. Например, , , , , . Это означает, что существует аннигилятор, степень которого равна 1. Итак, алгебраическая иммунность булевой функции равна 1.
Исследование криптографических булевых функций невозможно без применения программных средств, позволяющих автоматизировать процессы нахождения числовых характеристик булевой функции. К таким программным средствам относят математические пакеты, имеющие широкий спектр возможностей для работы в различных областях математики: Maple, Matlab, REDUCE, MACSYMA, MuPAD и другие. Математические системы данного типа включают в себя большое количество средств работы с различными математическими объектами, в том числе позволяют организовать работу с многочленами и осуществлять поиск решения системы алгебраических уравнений.
Среди математических пакетов существует бесплатное и доступное математическое программное обеспечение, например, система компьютерной алгебры Sage, относящаяся к свободному программному обеспечению, распространяемому по условиям лицензии GNU General Public License. Система Sage позволяет решать задачи из различных областей математики, в том числе решать задачи теории многочленов, заданных над конечными полями [4]. На данный момент нам не удалось найти доступных инструментов пакета Sage, осуществляющих процесс формирования систем булевых уравнений, получающихся в процессе выполнения некоторых этапов алгоритма поиска алгебраической иммунности. Однако решение систем линейных уравнений над конечными полями в пакете Sage осуществить возможно. В качестве примера рассмотрим решение системы булевых уравнений (4).
Так как необходимо решить однородную систему булевых уравнений, то можно задать матрицу системы одним из известных способов задания матриц над конечными полями и привести её к ступенчатому виду:
sage: M = MatrixSpace(GF(2),4,5)
sage: A = M([0,1,1,1,1, 0,0,1,1,1, 1,0,0,0,0, 0,0,1,1,1])
sage: A.rref()
В результате система Sage выдает ступенчатую матрицу в следующем виде:
[1 0 0 0 0]
[0 1 0 0 0]
[0 0 1 1 1]
[0 0 0 0 0]
Полученная матрица соответствует системе
откуда можно найти как общее, так и частное решения.
Другой подход к решению системы булевых уравнений заключается в том, чтобы найти базисные векторы пространства решений:
sage: A = matrix(GF(2),[[0,1,1,1,1], [0,0,1,1,1], [1,0,0,0,0], [0,0,1,1,1]])
sage: B = vector(GF(2),[0,0,0,1])
sage: X = A.right_kernel(basis='pivot')
sage: X
Результат выполнения данных команд следующий:
Vector space of degree 5 and 2 over Finite Field of size 2
User basis matrix:
[0 0 1 1 0]
[0 0 1 0 1]
Таким образом, можно сделать вывод о существовании ненулевых решений системы (4) и существовании аннигилятора булевой функции, степень которого равна 1.
При построении нелинейных узлов (S-блоков) блочных симметричных шифров используются криптографические булевы отображения .
Понятие алгебраической иммунности булевых функций можно обобщить на случай булевых отображений (векторных булевых функций). Более подробную информацию об обобщениях понятия алгебраической иммунности можно найти, например, в [7]. Рассмотрим определение алгебраической иммунности булевых отображений в соответствии с работой [5].
S-блок задается системой алгебраических уравнений над полем :
(5)
С системой (5) связан идеал, порожденный булевыми многочленами:
.(6)
Алгебраическая иммунность нелинейного узла блочного симметричного шифра определяется как минимальная степень многочлена из идеала .
Для вычисления алгебраической иммунности необходимо построить минимальный редуцированный базис Грёбнера идеала системы (5) и среди элементов базиса найти многочлен минимальной степени.
Продемонстрируем поиск алгебраической иммунности булевых отображений, задающих S-блок шифра Baby-Rijndael в системе Sage. Булевы функции и отображения S-блока данного шифра рассмотрены в статье [3]. Согласно восстановленным АНФ для компонентных булевых функций S-блок шифра Baby-Rijndael можно представить в виде следующей системы:
алгебраический иммунность криптографический булевый
(7)
С этой системой связан следующий идеал:
Для полученного идеала найдем минимальный редуцированный базис Грёбнера в системе Sage.
Сначала задаем кольцо многочленов и идеал системы (7):
sage: P.<x1,x2,x3,x4, y1,y2,y3,y4> = PolynomialRing(GF(2), 8, order = 'degrevlex')
sage: q = P.base_ring().order()
sage: Q = P.quotient_ring(ideal([var**q - var for var in P.gens()]))
sage: f1 = y1+x1*x2*x4+x1*x3*x4+x2*x3*x4+x2*x3+x3*x4+x2+x4
sage: f2 = y2+x1*x2*x3+x1*x3*x4+x1*x2+x2*x4+x3*x4+x1+x3+x4+1
sage: f3 = y3+x1*x2*x3+x1*x2*x4+x1*x2+x1*x4+x3*x4+x1+x4
sage: f4 = y4+x1*x2*x3+x1*x2*x4+x1*x3*x4+x2*x3*x4+ \
x1*x3+x1*x4+x2*x4+x1+x2+x4+1
sage: I = (f1,f2,f3,f4)*P
Выясняем, образует ли идеал I базис Грёбнера:
sage: I. basis_is_groebner ()
Получаем результат:
False
Таким образом, идеал системы (7) базисом Грёбнера не является.
Находим базис Грёбнера:
sage: B = I.groebner_basis(); B
В результате получаем сообщение:
Polynomial Sequence with 60 Polynomials in 8 Variables
Изучая все многочлены базиса Грёбнера, находим, что многочленом минимальной степени является многочлен степени 2. Например:
sage: B = I.groebner_basis()
sage: Q(B[56])
x1bar*x3bar + x2bar*x3bar + x3bar*x4bar + x1bar*y1bar + x4bar*y1bar + x1bar*y2bar + x1bar*y3bar + x4bar*y4bar + x2bar + x3bar + x4bar + y1bar + y2bar +1
Таким образом, алгебраическая иммунность S-блока, задаваемого системой (7), равна 2.
Заметим, что поиск алгебраической иммунности булевых функций и отображений с помощью средств системы Sage удобен для решения учебных задач, содержащих небольшое количество входных данных и направленных на понимание определений и алгоритмов поиска алгебраической иммунности. Для работы с булевыми функциями криптографических конструкций необходимы программные инструменты, реализующие работу с большими объемами данных и учитывающие специфику кольца булевых функций.
алгебраический иммунность криптографический булевый
Список литературы
1. Баев В.В. О некоторых алгоритмах построения аннигиляторов низкой степени для булевых функций // Дискретная математика. - 2006. - Т. 18. - № 3. - С. 138-151.
2. Баев В.В. Усовершенствованный алгоритм поиска аннигиляторов низкой степени для многочлена Жегалкина // Дискретная математика. - 2007. - Т. 19. - № 4. - С. 132-138.
3. Долгов В.И. Исследование криптографических свойств нелинейных узлов замены уменьшенных версий некоторых шифров / В.И. Долгов [и др.] // Прикладная радиоэлектроника. - 2009. - Т. 8. - № 3. - С.268-277.
4. Голубков А.Ю. Компьютерная алгебра в системе Sage: учебное пособие / А.Ю. Голубков, А.И. Зобнин, О.В. Соколова. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2013. - 79 с.
5. Кузнецов А.А. Алгебраический иммунитет нелинейных узлов симметричных шифров / А.А. Кузнецов [и др.] // Прикладная радиоэлектроника. - 2016. - № 4 (4). - С. 42-55.
6. Логачёв О.А. Булевы функции в теории кодирования и криптологии / О.А. Логачёв [и др.]. - М.: МЦНМО, 2012. - 583 с.
7. Покрасенко Д.П. Об алгебраической иммунности векторных булевых функций / Д.П. Покрасенко // ПДМ. Приложение. - 2015. - №8. - С. 37-39.
Размещено на Allbest.ru
...Подобные документы
Программное обеспечение для реализации алгоритмов поиска базиса пространства аннигиляторов, статических соотношений для алгебраических атак и алгебраической иммунности для функции, заданной трейс представлением. Оценки порядка алгебраической иммунности.
курсовая работа [561,9 K], добавлен 30.05.2014Задача нахождения кратчайшего покрытия булевой матрицы. Алгоритмы поиска кратчайших покрытий методом Патрика и методом Закревского. Метод предварительного редуцирования булевой матрицы. Описание программы "Нахождение кратчайшего покрытия булевых матриц".
курсовая работа [884,1 K], добавлен 12.12.2010Применение математических методов для решения логических задач и построения логических схем. Определение и реализация булевых функций. Основные схемы функциональных элементов. Программируемые логические матрицы. Правила составления таблицы истинности.
курсовая работа [821,6 K], добавлен 19.03.2012Основные понятия алгебры высказываний. Характеристика главных законов алгебраической логики, сущность логических операций и определение порядка их проведения. Практическое применение в информатике табличного и алгебраического задания булевских функций.
курсовая работа [662,0 K], добавлен 23.04.2013Определение унитарных и бинарных функций. Представление булевых функций: дизъюнктивная и конъюнктивная нормальная форма. Общая характеристика правил и стратегии игры в шашки. Особенности математической модели цифрового устройства для игры в шашки.
курсовая работа [544,0 K], добавлен 28.06.2011Разработка исследовательского комплекса, решающего задачу формирования минимального полинома Жегалкина по вектору значений булевой функции методом частных полиномиальных нормальных форм. Сравнение сред программирования. Макет программного продукта.
дипломная работа [1,3 M], добавлен 29.05.2015Алгоритм декомпозиции графов и расчеты динамики логических сетей. Преобразование пространства булевых векторов. Описание блоков программной реализации и их взаимодействие. Разработка программы "слияния" статистик на основе алгоритма объединения.
дипломная работа [111,8 K], добавлен 07.03.2012Основные понятия структурных автоматов. Этапы канонического метода синтеза. Кодирование алфавитов автомата и выбор элементов его памяти. Построение уравнений булевых функций возбуждения и выходов. Методы устранения гонок в структурных автоматах.
курсовая работа [496,3 K], добавлен 27.01.2011Синтез автомата для преобразования двоично-десятичного кода. Кодировка алфавитов и состояний. Построение булевых функций, минимизация. Разметка вход-выходных слов для автомата Мили и автомата Мура. Реализация на элементах малой степени интеграции.
контрольная работа [141,5 K], добавлен 14.10.2012Проектирование преобразователя кода (ПК), рассчет его энергопотребления и быстродействия. Составление таблицы истинности ПК. Написание булевых функций, минимизация и преобразование к выбранному базису. Составление структурной схемы преобразователя кода.
курсовая работа [775,3 K], добавлен 09.02.2009Определение понятия трехмерной компьютерной графики. Особенности создания 3D-объектов при помощи булевых операций, редактируемых поверхностей, на основе примитивов. Моделирование трехмерных объектов при помощи программного пакета Autodesk 3ds Max.
дипломная работа [4,2 M], добавлен 13.04.2014Полные и стохастические неполные алгоритмы локального поиска для решения задачи булевой выполнимости. Модели преобразования операторов. Реализация решателя, применяющего модифицированный алгоритм gNovelty, расширенный на использование непрерывных форм.
курсовая работа [531,9 K], добавлен 27.09.2016Характеристика сигнала и его представление в виде математического ряда. Условия ортогональности двух базисных функций. Ряд Фурье, его интегральное преобразование и практическое использование в цифровой технике для обработки дискретной информации.
реферат [69,9 K], добавлен 14.07.2009Создание программы в среде программирования MatLab для решения задачи одномерной оптимизации (нахождение минимума и максимума заданных функций) методом золотого сечения, построение блок-схемы алгоритма и графическое изображение исследованных функций.
реферат [112,0 K], добавлен 14.06.2010Понятие алгебраической кратности собственного значения. Вычислительные методы собственных значений и собственных векторов. Программное обеспечение некоторых алгоритмов их нахождения. Программы на языке С++. Разработка М-файлов для системы MatLab.
реферат [286,5 K], добавлен 23.04.2012Построение карт Карно. Переход от булевых выражений к функциональным схемам. Минимизация заданной функции. Схемная реализация факторизированного покрытия. Перевод схемы в универсальный базис. Соединение транзисторов с нагрузкой в цепи коллектора.
курсовая работа [468,7 K], добавлен 01.12.2014Системный блок как основной блок компьютерной системы. Портативные и карманные компьютеры. Защита информации в ЭВМ. Преимущество криптосистем с двумя ключами. Организация поиска информации в глобальной сети Интернет. Комбинированные системы поиска.
контрольная работа [21,8 K], добавлен 16.01.2011Программная реализация приложения для вычисления заданных функций. Процедура поиска минимума функции. Применение методов Хука-Дживса и градиентного спуска для решения задачи. Исследование функции в окрестности базисной точки, определение ее координат.
контрольная работа [767,1 K], добавлен 02.02.2014Численные методы в задачах без ограничений. Схема методов спуска. Среда редактора Visual Basic. Использование объектов ActiveX в формах. Блок-схема алгоритма моделирования. Задачи оптимизирования детерменированных функций с единственной точкой экстремума.
курсовая работа [129,5 K], добавлен 26.04.2010Общие сведения о системе Mathcad. Окно программы Mathcad и панели инструментов. Вычисление алгебраических функций. Интерполирование функций кубическими сплайнами. Вычисление квадратного корня. Анализ численного дифференцирования и интегрирования.
курсовая работа [522,7 K], добавлен 25.12.2014