stringtranslate.com

Булева функция

Диаграмма двоичных решений и таблица истинности троичной булевой функции

В математике булева функция — это функция , аргументы и результат которой принимают значения из набора из двух элементов (обычно {истина, ложь}, {0,1} или {-1,1}). [1] [2] Альтернативные названия — функция переключения , используемая особенно в старой литературе по информатике , [3] [4] и функция истинности (или логическая функция) , используемая в логике . Булевы функции являются предметом булевой алгебры и теории переключения . [5]

Булева функция принимает форму , где известна как булева область определения и представляет собой неотрицательное целое число, называемое арностью функции. В случае , когда функция является постоянным элементом . Булева функция с несколькими выходами. Это векторная или векторнозначная булева функция ( S-блок в симметричной криптографии ) . [6]

Существуют различные логические функции с аргументами; равно количеству различных таблиц истинности с записями.

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

Примеры

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

Простейшими симметричными булевыми функциями ( логическими связками или логическими элементами ) являются:

Примером более сложной функции является функция большинства (нечетного числа входов).

Представление

Булева функция, представленная в виде логической схемы.

Булеву функцию можно задать различными способами:

Алгебраически, как пропозициональная формула с использованием элементарных булевых функций:

Булевы формулы также можно отображать в виде графика:

Чтобы оптимизировать электронные схемы, булевы формулы можно минимизировать с помощью алгоритма Куайна-МакКласки или карты Карно .

Анализ

Характеристики

Булева функция может иметь множество свойств: [7]

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

Производные функции

Булеву функцию можно разложить с помощью теоремы Буля о разложении в положительные и отрицательные кофакторы Шеннона ( разложение Шеннона ), которые представляют собой (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 ).

Действительная полиномиальная форма

На единичном гиперкубе

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

по модулю 2алгебраическая нормальная формаполином Жегалкина

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

инверсия Мёбиусаупорядоченного набора
булево преобразование Мёбиусаалгебраической нормальной формы
a,mформыm

Когда область ограничена n-мерным гиперкубом , полином дает вероятность положительного результата, когда булева функция f применяется к n независимым случайным переменным ( бернулли ) с индивидуальными вероятностями x . Частным случаем этого факта является лемма о нагромождении для функций четности . Полиномиальная форма булевой функции также может использоваться как ее естественное расширение нечеткой логики .

О симметричном гиперкубе

Часто логический домен принимается как , с ложным («0») сопоставлением с 1 и истинным («1») с -1 (см. Анализ логических функций ). Полином, соответствующий тогда, определяется следующим образом:

,линейные функциимономамипреобразованию Уолшапреобразование Фурье. в лемме о накоплении ).

Приложения

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

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

В теории кооперативных игр монотонные булевы функции называются простыми играми (играми с голосованием); это понятие применяется для решения проблем теории социального выбора .

Смотрите также

Рекомендации

  1. ^ «Булева функция - Математическая энциклопедия» . энциклопедияofmath.org . Проверено 03 мая 2021 г.
  2. ^ Вайсштейн, Эрик В. «Булева функция». mathworld.wolfram.com . Проверено 03 мая 2021 г.
  3. ^ «Функция переключения». TheFreeDictionary.com . Проверено 03 мая 2021 г.
  4. ^ Дэвис, DW (декабрь 1957 г.). «Функции переключения трех переменных». IRE-транзакции на электронных компьютерах . ИС-6 (4): 265–275. дои : 10.1109/TEC.1957.5222038. ISSN  0367-9950.
  5. ^ Маккласки, Эдвард Дж. (01 января 2003 г.), «Теория переключения», Энциклопедия компьютерных наук , GBR: John Wiley and Sons Ltd., стр. 1727–1731, ISBN 978-0-470-86412-8, получено 3 мая 2021 г.
  6. ^ аб Карлет, Клод. «Векторные логические функции для криптографии» (PDF) . Парижский университет . Архивировано (PDF) из оригинала 17 января 2016 г.
  7. ^ ab «Логические функции — Справочное руководство Sage 9.2: Криптография». doc.sagemath.org . Проверено 1 мая 2021 г.
  8. ^ abcdef Таранников, Юрий; Королев, Петр; Ботев, Антон (2001). «Коэффициенты автокорреляции и корреляционная устойчивость булевых функций». В Бойде, Колин (ред.). Достижения в криптологии — ASIACRYPT 2001 . Конспекты лекций по информатике. Том. 2248. Берлин, Гейдельберг: Springer. стр. 460–479. дои : 10.1007/3-540-45682-1_27 . ISBN 978-3-540-45682-7.
  9. ^ Карлет, Клод (2010), «Булевы функции для криптографии и кодов, исправляющих ошибки» (PDF) , Булевы модели и методы в математике, информатике и технике , Энциклопедия математики и ее приложений, Кембридж: Cambridge University Press, стр. 257–397, ISBN 978-0-521-84752-0, получено 17 мая 2021 г.
  10. ^ Пепшик, Йозеф; Ван, Хуасюн; Чжан, Сянь-Мо (01 мая 2011 г.). «Преобразования Мебиуса, совпадающие булевы функции и свойство несовпадения булевых функций». Международный журнал компьютерной математики . 88 (7): 1398–1416. дои : 10.1080/00207160.2010.509428. ISSN  0020-7160. S2CID  9580510.
  11. ^ Нитадж, Абдеррахман; Сусило, Вилли; Тониен, Джозеф (01 октября 2017 г.). «Произведение Дирихле для логических функций». Журнал прикладной математики и вычислений . 55 (1): 293–312. дои : 10.1007/s12190-016-1037-4. ISSN  1865-2085. S2CID  16760125.
  12. ^ Канто, Энн; Карлет, Клод; Шарпен, Паскаль; Фонтейн, Кэролайн (14 мая 2000 г.). «Характеристики распространения и корреляционная устойчивость сильно нелинейных логических функций». Материалы 19-й Международной конференции по теории и применению криптографических методов . ЕВРОКРИПТ'00. Брюгге, Бельгия: Springer-Verlag: 507–522. ISBN 978-3-540-67517-4.
  13. ^ ab Хейс, Ховард М. «Учебное пособие по линейному и дифференциальному криптоанализу» (PDF) . Архивировано (PDF) из оригинала 17 мая 2017 г.
  14. ^ abc «S-Box и их алгебраические представления — Справочное руководство Sage 9.2: Криптография». doc.sagemath.org . Проверено 4 мая 2021 г.
  15. ^ Дэмен, Джоан; Говертс, Рене; Вандевалле, Йоос (1994). «Корреляционные матрицы». В Прениле, Барт (ред.). Быстрое программное шифрование: Второй международный семинар. Левен, Бельгия, 14-16 декабря 1994 г., Слушания . Конспекты лекций по информатике. Том. 1008. Спрингер. стр. 275–285. дои : 10.1007/3-540-60590-8_21 .
  16. Дэмен, Джоан (10 июня 1998 г.). «Глава 5: Распространение и корреляция — Приложение к предложению AES Rijndael» (PDF) . НИСТ . Архивировано (PDF) из оригинала 23 июля 2018 г.
  17. ^ Нюберг, Кайса (1 декабря 2019 г.). «Расширенные таблицы автокорреляции и бумеранга и связи между свойствами нелинейности векторных логических функций» (PDF) . Архивировано (PDF) из оригинала 2 ноября 2020 г.

дальнейшее чтение