В математике булева функция — это функция , аргументы и результат которой принимают значения из двухэлементного набора (обычно {истина, ложь}, {0,1} или {-1,1}). [1] [2] Альтернативные названия — функция переключения , используемая особенно в старой литературе по информатике , [3] [4] и функция истины (или логическая функция) , используемая в логике . Булевы функции являются предметом булевой алгебры и теории переключения . [5]
Булева функция принимает форму , где известна как булев домен и является неотрицательным целым числом, называемым арностью функции. В случае, когда , функция является постоянным элементом . Булева функция с несколькими выходами, с является векторной или векторнозначной булевой функцией ( S-box в симметричной криптографии ). [6]
Существуют различные булевы функции с аргументами, равными количеству различных таблиц истинности с записями.
Каждая -арная булева функция может быть выражена в виде пропозициональной формулы от переменных , а две пропозициональные формулы логически эквивалентны тогда и только тогда, когда они выражают одну и ту же булеву функцию.
Константа : всегда истинна или всегда ложна независимо от аргументов.
Монотонный : для каждой комбинации значений аргументов изменение аргумента с false на true может вызвать только переключение вывода с false на true, а не с true на false. Говорят, что функция является унированной относительно определенной переменной, если она монотонна относительно изменений этой переменной.
Линейная : для каждой переменной изменение ее значения либо всегда приводит к изменению истинного значения, либо никогда не приводит к изменению ( функция четности ).
Симметричный : значение не зависит от порядка аргументов.
Изогнутая : все ее производные сбалансированы (спектр автокорреляции равен нулю)
Корреляция, невосприимчивая к m -му порядку: если выход не коррелирует со всеми (линейными) комбинациями не более m аргументов
Уклончивый : если оценка функции всегда требует значения всех аргументов
Булева функция является функцией Шеффера, если ее можно использовать для создания (путем композиции) любой произвольной булевой функции (см. функциональная полнота ).
Сложность схем пытается классифицировать булевы функции по размеру или глубине схем, которые могут их вычислять.
Производные функции
Булеву функцию можно разложить, используя теорему разложения Буля по положительным и отрицательным сомножителям Шеннона ( разложение Шеннона ), которые являются (k-1)-арными функциями, полученными путем фиксации одного из аргументов (на ноль или единицу). Общие (k-арные) функции, полученные путем наложения линейного ограничения на набор входных данных (линейное подпространство), известны как подфункции . [8]
Булева производная функции по одному из аргументов является (k-1)-арной функцией, которая истинна, когда выход функции чувствителен к выбранной входной переменной; это XOR двух соответствующих сомножителей. Производная и сомножитель используются в разложении Рида-Мюллера . Концепция может быть обобщена как k-ичная производная в направлении dx, полученная как разность (XOR) функции в x и x + dx. [8]
Преобразование Мёбиуса (или преобразование Буля-Мёбиуса ) булевой функции — это набор коэффициентов ее полинома ( алгебраической нормальной формы ) как функции векторов показателей мономиалов. Это самообратное преобразование. Его можно эффективно вычислить с помощью алгоритма бабочки (« быстрое преобразование Мёбиуса »), аналогичного быстрому преобразованию Фурье . [9] Совпадающие булевы функции равны своим преобразованиям Мёбиуса, т. е. их значения таблицы истинности (минтерм) равны их алгебраическим (мономиальным) коэффициентам. [10] Существует 2^2^( k −1) совпадающих функций от k аргументов. [11]
Криптографический анализ
Преобразование Уолша булевой функции — это k-ичная целочисленная функция, дающая коэффициенты разложения на линейные функции ( функции Уолша ), аналогично разложению вещественных функций на гармоники с помощью преобразования Фурье . Его квадрат — это спектр мощности или спектр Уолша . Коэффициент Уолша отдельного битового вектора — это мера корреляции этого бита с выходом булевой функции. Максимальный (по абсолютной величине) коэффициент Уолша называется линейностью функции . [8] Наибольшее число бит (порядок), для которого все коэффициенты Уолша равны 0 (т. е. подфункции сбалансированы), называется устойчивостью , и говорят, что функция корреляционно невосприимчива к этому порядку. [8] Коэффициенты Уолша играют ключевую роль в линейном криптоанализе .
Автокорреляция булевой функции — это k-ичная целочисленная функция, задающая корреляцию между определенным набором изменений на входах и выходом функции. Для заданного битового вектора она связана с весом Хэмминга производной в этом направлении. Максимальный коэффициент автокорреляции (по абсолютной величине) известен как абсолютный индикатор . [ 7] [8] Если все коэффициенты автокорреляции равны 0 (т. е. производные сбалансированы) для определенного числа бит, то говорят, что функция удовлетворяет критерию распространения до этого порядка; если они все равны нулю, то функция является изогнутой функцией . [12] Коэффициенты автокорреляции играют ключевую роль в дифференциальном криптоанализе .
Коэффициенты Уолша булевой функции и ее коэффициенты автокорреляции связаны эквивалентом теоремы Винера–Хинчина , которая утверждает, что автокорреляция и спектр мощности являются парой преобразований Уолша. [8]
Таблица линейной аппроксимации
Эти концепции могут быть естественным образом расширены до векторных булевых функций, рассматривая их выходные биты ( координаты ) по отдельности, или более тщательно, рассматривая набор всех линейных функций выходных битов, известных как его компоненты . [6] Набор преобразований Уолша компонентов известен как таблица линейной аппроксимации (LAT) [13] [14] или матрица корреляции ; [15] [16] он описывает корреляцию между различными линейными комбинациями входных и выходных битов. Набор коэффициентов автокорреляции компонентов является таблицей автокорреляции , [14] связанной преобразованием Уолша компонентов [17] с более широко используемой таблицей распределения разностей (DDT) [13] [14] , которая перечисляет корреляции между различиями во входных и выходных битах (см. также: S-box ).
Действительная полиномиальная форма
На единичном гиперкубе
Любая булева функция может быть однозначно расширена (интерполирована) до действительной области с помощью полилинейного полинома в , построенного путем суммирования значений таблицы истинности, умноженных на индикаторные полиномы : Например, расширение двоичной функции XOR равно , что равно Некоторые другие примеры - отрицание ( ), И ( ) и ИЛИ ( ). Когда все операнды независимы (не имеют общих переменных), полиномиальную форму функции можно найти, многократно применяя полиномы операторов в булевой формуле. Когда коэффициенты вычисляются по модулю 2, получается алгебраическая нормальная форма ( полином Жегалкина ).
Прямые выражения для коэффициентов многочлена можно получить, взяв соответствующую производную: это обобщается как инверсия Мёбиуса частично упорядоченного набора битовых векторов: где обозначает вес битового вектора . Взятое по модулю 2, это булево преобразование Мёбиуса , дающее коэффициенты алгебраической нормальной формы : В обоих случаях сумма берется по всем битовым векторам a , покрытым m , т. е. «единичные» биты a образуют подмножество единичных битов m .
Когда область ограничена n-мерным гиперкубом , полином дает вероятность положительного результата, когда булева функция f применяется к n независимым случайным ( бернуллиевским ) переменным с индивидуальными вероятностями x . Частным случаем этого факта является лемма о нагромождении для функций четности . Полиномиальная форма булевой функции также может быть использована в качестве ее естественного расширения для нечеткой логики .
О симметричном гиперкубе
Часто булева область принимается как , с отображением false ("0") на 1 и true ("1") на -1 (см. Анализ булевых функций ). Полином, соответствующий тогда задается как: Использование симметричной булевой области упрощает некоторые аспекты анализа , поскольку отрицание соответствует умножению на -1, а линейные функции являются мономами (XOR - умножение). Эта полиномиальная форма, таким образом, соответствует преобразованию Уолша (в этом контексте также известному как преобразование Фурье ) функции (см. выше). Полином также имеет ту же статистическую интерпретацию, что и в стандартной булевой области, за исключением того, что теперь он имеет дело с ожидаемыми значениями (см. лемму о нагромождении для примера).
В кооперативной теории игр монотонные булевы функции называются простыми играми (играми с голосованием); это понятие применяется для решения задач в теории общественного выбора .
^ Дэвис, Д. У. (декабрь 1957 г.). «Переключение функций трех переменных». Труды IRE по электронным компьютерам . EC-6 (4): 265–275. doi :10.1109/TEC.1957.5222038. ISSN 0367-9950.
^ МакКласки, Эдвард Дж. (2003-01-01), «Теория переключения», Энциклопедия компьютерных наук , Великобритания: John Wiley and Sons Ltd., стр. 1727–1731, ISBN978-0-470-86412-8, получено 2021-05-03
^ ab Carlet, Claude. "Векторные булевы функции для криптографии" (PDF) . Парижский университет . Архивировано (PDF) из оригинала 2016-01-17.
^ ab "Булевы функции — Справочное руководство Sage 9.2: Криптография". doc.sagemath.org . Получено 01.05.2021 .
^ abcdef Таранников, Юрий; Королев, Петр; Ботев, Антон (2001). «Коэффициенты автокорреляции и корреляционная устойчивость булевых функций». В Boyd, Colin (ред.). Advances in Cryptology — ASIACRYPT 2001 . Lecture Notes in Computer Science. Vol. 2248. Berlin, Heidelberg: Springer. pp. 460–479. doi : 10.1007/3-540-45682-1_27 . ISBN978-3-540-45682-7.
^ Карле, Клод (2010), «Булевы функции для криптографии и кодов исправления ошибок» (PDF) , Булевы модели и методы в математике, информатике и инженерии , Энциклопедия математики и ее приложений, Кембридж: Cambridge University Press, стр. 257–397, ISBN978-0-521-84752-0, получено 2021-05-17
^ Pieprzyk, Josef; Wang, Huaxiong; Zhang, Xian-Mo (2011-05-01). «Преобразования Мёбиуса, совпадающие булевы функции и свойство несовпадения булевых функций». International Journal of Computer Mathematics . 88 (7): 1398–1416. doi :10.1080/00207160.2010.509428. ISSN 0020-7160. S2CID 9580510.
^ Нитадж, Абдеррахман; Сусило, Вилли; Тониен, Джозеф (01 октября 2017 г.). «Произведение Дирихле для логических функций». Журнал прикладной математики и вычислений . 55 (1): 293–312. дои : 10.1007/s12190-016-1037-4. ISSN 1865-2085. S2CID 16760125.
^ Канто, Энн; Карле, Клод; Шарпен, Паскаль; Фонтен, Каролин (2000-05-14). "Характеристики распространения и корреляционно-иммунитет высоконелинейных булевых функций". Труды 19-й Международной конференции по теории и применению криптографических методов . EUROCRYPT'00. Брюгге, Бельгия: Springer-Verlag: 507–522. ISBN978-3-540-67517-4.
^ ab Heys, Howard M. "Учебник по линейному и дифференциальному криптоанализу" (PDF) . Архивировано (PDF) из оригинала 2017-05-17.
^ abc "S-блоки и их алгебраические представления — Справочное руководство Sage 9.2: Криптография". doc.sagemath.org . Получено 04.05.2021 .
^ Дэмен, Джоан; Говертс, Рене; Вандевалле, Йоос (1994). «Корреляционные матрицы». В Прениле, Барт (ред.). Быстрое программное шифрование: Второй международный семинар. Левен, Бельгия, 14-16 декабря 1994 г., Слушания . Конспекты лекций по информатике. Том. 1008. Спрингер. стр. 275–285. дои : 10.1007/3-540-60590-8_21 .
^ Daemen, Joan (10 июня 1998 г.). "Глава 5: Распространение и корреляция - Приложение к предложению AES Rijndael" (PDF) . NIST . Архивировано (PDF) из оригинала 2018-07-23.
^ Nyberg, Kaisa (1 декабря 2019 г.). "Расширенные таблицы автокорреляции и бумеранга и связи между свойствами нелинейности векторных булевых функций" (PDF) . Архивировано (PDF) из оригинала 2020-11-02.
Дальнейшее чтение
Крама, Ив; Хаммер, Питер Л. (2011), Булевы функции: теория, алгоритмы и приложения , Cambridge University Press, doi : 10.1017/CBO9780511852008, ISBN 9780511852008
Янкович, Драган; Станкович, Радомир С.; Морага, Клаудио (ноябрь 2003 г.). «Оптимизация арифметических выражений с использованием свойства двойной полярности». Сербский журнал электротехники . 1 (71–80, номер 1): 71–80. doi : 10.2298/SJEE0301071J .
Арнольд, Брэдфорд Генри (1 января 2011 г.). Логика и булева алгебра. Courier Corporation. ISBN 978-0-486-48385-6.