Применение системы Sage для поиска алгебраической иммунности булевых функций и отображений
Алгебраическая иммунность как основное свойство булевых функций, характеризующих способность шифра противостоять алгебраическим атакам. Использование системы компьютерной алгебры Sage для автоматизации процессов нахождения числовых характеристик функции.
Рубрика | Математика |
Вид | статья |
Язык | русский |
Дата добавления | 02.04.2019 |
Размер файла | 55,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на 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) раскроем скобки и приведем подобные слагаемые. Получим
Значения , при которых равенство (3) является верным, найдем из системы уравнений:
На данном этапе поиска значения алгебраической иммунности достаточно найти хотя бы одно ненулевое решение системы (4) или доказать, что система (4) имеет единственное тривиальное решение.
Система (4) имеет нетривиальные решения. Например, , , , , . Это означает, что существует аннигилятор, степень которого равна 1. Итак, алгебраическая иммунность булевой функции равна 1.
Исследование криптографических булевых функций невозможно без применения программных средств, позволяющих автоматизировать процессы нахождения числовых характеристик булевой функции. К таким программным средствам относят математические пакеты, имеющие широкий спектр возможностей для работы в различных областях математики: Maple, Matlab, REDUCE, MACSYMA, MuPAD и другие. Математические системы данного типа включают в себя большое количество средств работы с различными математическими объектами, в том числе позволяют организовать работу с многочленами и осуществлять поиск решения системы алгебраических уравнений.
Среди математических пакетов существует бесплатное и доступное математическое программное обеспечение, например, система компьютерной алгебры Sage, относящаяся к свободному программному обеспечению, распространяемому по условиям лицензии GNU GeneralPublicLicense. Система 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) и среди элементов базиса найти многочлен минимальной степени.
Продемонстрируем поиск алгебраической иммунности булевых отображений, задающих S-блок шифра Baby-Rijndael в системе Sage. Булевы функции и отображения S-блока данного шифра рассмотрены в статье [3]. Согласно восстановленным АНФ для компонентных булевых функций S-блок шифра Baby-Rijndael можно представить в виде следующей системы:
С этой системой связан следующий идеал:
Для полученного идеала найдем минимальный редуцированный базис Грёбнера в системе 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
...Подобные документы
Сокращенные, тупиковые дизъюнктивные нормальные формы. Полные системы булевых функций. Алгоритм Квайна, Мак-Класки минимизации булевой функции. Геометрическое представление логических функций. Геометрический метод минимизации булевых функций. Карты Карно.
курсовая работа [278,1 K], добавлен 21.02.2009Полнота и замкнутость системы булевых функций. Алгоритм построения таблицы истинности двойственной функции. Класс L линейных функций, сущность полинома Жегалкина. Распознавание монотонной функции по вектору ее значений. Доказательство теоремы Поста.
учебное пособие [1,3 M], добавлен 20.08.2014Логика - наука о законах и формах мышления, а основное понятие алгебры логики - высказывание. Основные понятия и тождества булевой алгебры. Изучение методов минимизации булевых функций. Метод Квайна, основанный на применении двух основных соотношений.
контрольная работа [178,2 K], добавлен 20.01.2011Изучение булевых функций. Алгоритм представления булевых функций в виде полинома Жегалкина. Система функций множества. Алгебраические преобразования, метод неопределенных коэффициентов. Таблица истинности для определенного количества переменных.
курсовая работа [701,9 K], добавлен 27.04.2011Булевы алгебры – решетки особого типа, применяемые при исследовании логики (как логики человеческого мышления, так и цифровой компьютерной логики), а также переключательных схем. Минимальные формы булевых многочленов. Теоремы абстрактной булевой алгебры.
курсовая работа [64,7 K], добавлен 12.05.2009Основные аксиомы и тождества алгебры логики. Аналитическая форма представления булевых функций. Элементарные функции алгебры логики. Функции алгебры логики одного аргумента и формы ее реализации. Свойства, особенности и виды логических операций.
реферат [63,3 K], добавлен 06.12.2010Метод Форда-Беллмана для нахождения расстояния от источника до всех вершин графа. Алгоритмы поиска расстояний и отыскания кратчайших путей в графах. Блочно-диагональный вид и матрица в исследовании системы булевых функций и самодвойственной функции.
курсовая работа [192,1 K], добавлен 10.10.2011Основные этапы развития булевой алгебры и применение минимальных форм булевых многочленов к решению задач, в частности, с помощью метода Куайна - Мак-Класки. Применение минимизирования логических форм при проектировании устройств цифровой электроники.
курсовая работа [58,6 K], добавлен 24.05.2009Отражение посредством математической функции связи между какими-либо значениями. Представление числовых функций на рисунках в виде графиков. Особенности алгебраической функции и многочленов. Практическое применение линейных и квадратических функций.
презентация [251,3 K], добавлен 07.10.2014Понятие алгебры логики, ее сущность и особенности, основные понятия и определения, предмет и методика изучения. Законы алгебры логики и следствия из них, методы построения формул по заданной таблице истинности. Формы представления булевых функций.
учебное пособие [702,6 K], добавлен 29.04.2009Минимизация заданного выражения алгебры множеств на основании известных свойств. Анализ заданного бинарного отношения в общем виде. Вывод формул булевых функций для каждого элемента и схемы в целом. Преобразование формулы булевой функции логической схемы.
контрольная работа [286,7 K], добавлен 28.02.2009Понятие, основные свойства элементарных булевых функций и соотношения между ними. Формулировка принципа двойственности. Совершенные дизъюнктивная и конъюнктивная нормальные формы. Многочлен (полином) Жегалкина. Суперпозиция и замыкание класса функций.
презентация [24,4 K], добавлен 05.02.2016Построение графа и таблицы поведения автомата. Нахождение системы булевых функций для возбуждения JK-триггеров, реализующих функции y. Определение булевой функции для реализации функции j. Составление логической схемы автомата, кодирование данных.
курсовая работа [200,4 K], добавлен 27.04.2011Построение таблицы поведения автомата и соответствующего графа. Нахождение системы булевых функций для возбуждения T-триггеров, реализующих функции "пси". Определение булевой функции для реализации функции "фи". Составление логической схемы автомата.
курсовая работа [96,7 K], добавлен 27.04.2011Использование эквивалентных преобразований. Понятие основных замкнутых классов. Метод минимизирующих карт и метод Петрика. Операция неполного попарного склеивания. Полином Жегалкина и коэффициенты второй степени. Таблицы значений булевых функций.
контрольная работа [90,4 K], добавлен 06.06.2011Свойства алгебры Жегалкина. Действия с логическими константами (нулём и единицей). Свойства элементарных булевых функций, задаваемых логическими операциями. Способы построения полиномов с помощью таблиц истинности (метод неопределенных коэффициентов).
курсовая работа [467,2 K], добавлен 28.11.2014Характеристика булевой алгебры и способы представления булевых функций. Понятие и сущность бинарных диаграммах решений. Упорядоченные бинарные диаграммы решений, их построение и особенности применения для обработки запросов в реляционных базах данных.
дипломная работа [391,7 K], добавлен 21.01.2010История развития и становления математического понятия функции. Абстрактные характеристики упорядоченных алгебр многоместных функций: P-алгебры и D-алгебры. Исследование теории суперпозиций алгебраических структур n-местных функций Менгера и Глускера.
курсовая работа [263,7 K], добавлен 22.12.2015Сущность и математическое обоснование булевой функции, ее назначение и пути решения. Порядок составления таблицы истинности для определенного количества переменных. Связь всех дизъюнкций в конъюнкцию. Разработка и листинг программы представления.
курсовая работа [837,6 K], добавлен 27.04.2011Понятие конформного отображения и его основные свойства. Основные принципы конформных отображений функций комплексного переменного, их гидродинамические аналогии и интерпретации. Применение метода конформных отображений в механике сплошных сред.
дипломная работа [2,6 M], добавлен 26.08.2014