Articulo de referencia

Función booleana

Diagrama de decisión binario y tabla de verdad de una función booleana ternaria. En matemáticas , una función booleana es una función cuyos argumentos y resultado toman valores ...

Diagrama de decisión binario y tabla de verdad de una función booleana ternaria.

En matemáticas , una función booleana es una función cuyos argumentos y resultado toman valores de un conjunto de dos elementos (generalmente {verdadero, falso}, {0,1} o {−1,1}). [ 1 ] [ 2 ] Otros nombres son función de conmutación , utilizada especialmente en la literatura antigua de informática , [ 3 ] [ 4 ] y función de verdad (o función lógica) , utilizada en lógica . Las funciones booleanas son el objeto del álgebra booleana y la teoría de conmutación . [ 5 ]

Una función booleana toma la formaF:{0,1}k{0,1}{\displaystyle f:\{0,1\}^{k}\a \{0,1\}}, dónde{0,1}{\displaystyle \{0,1\}}se conoce como el dominio booleano yk{\displaystyle k}es un entero no negativo llamado aridad de la función. En el caso dondek=0{\displaystyle k=0}, la función es un elemento constante de{0,1}{\displaystyle \{0,1\}}. Una función booleana con múltiples salidas,F:{0,1}k{0,1}metro{\displaystyle f:\{0,1\}^{k}\to \{0,1\}^{m}}conmetro>1{\displaystyle m>1}es una función booleana vectorial o con valores vectoriales (una caja S en criptografía simétrica ). [ 6 ]

Hay22k{\displaystyle 2^{2^{k}}}diferentes funciones booleanas conk{\displaystyle k}argumentos; igual al número de tablas de verdad diferentes con2k{\displaystyle 2^{k}}entradas.

Cadak{\displaystyle k}La función booleana -aria se puede expresar como una fórmula proposicional enk{\displaystyle k}variablesincógnita1,...,incógnitak{\displaystyle x_{1},...,x_{k}}y dos fórmulas proposicionales son lógicamente equivalentes si y solo si expresan la misma función booleana.

Ejemplos

Diagrama que muestra las dieciséis funciones booleanas binarias.
Las dieciséis funciones booleanas binarias

Las funciones booleanas simétricas rudimentarias ( conectores lógicos o puertas lógicas ) son:

  • NOT , negación o complemento : recibe una entrada y devuelve verdadero cuando esa entrada es falsa ("no").
  • Y o conjunción : verdadero cuando todas las entradas son verdaderas ("ambos")
  • OR o disyunción : verdadero cuando cualquier entrada es verdadera ("cualquiera de las dos").
  • XOR o disyunción exclusiva : verdadera cuando una de sus entradas es verdadera y la otra es falsa ("no son iguales").
  • NAND o Sheffer stroke : verdadero cuando no se cumplen todas las condiciones de entrada ("no ambas").
  • NOR o NOR lógico : verdadero cuando ninguna de las entradas es verdadera ("neither").
  • XNOR o igualdad lógica : verdadero cuando ambas entradas son iguales ("iguales").

Un ejemplo de una función más compleja es la función de mayoría (de un número impar de entradas).

Representación

Una función booleana representada como un circuito booleano

Una función booleana puede especificarse de diversas maneras:

  • Tabla de verdad : enumera explícitamente su valor para todos los valores posibles de los argumentos.
    • Diagrama de Marquand: valores de la tabla de verdad dispuestos en una cuadrícula bidimensional (utilizados en un mapa de Karnaugh ).
    • Diagrama de decisión binaria , que muestra los valores de la tabla de verdad en la parte inferior de un árbol binario.
    • Diagrama de Venn , que representa los valores de la tabla de verdad como una coloración de regiones del plano.

Algebraicamente, como una fórmula proposicional que utiliza funciones booleanas rudimentarias:

Las fórmulas booleanas también se pueden mostrar como un gráfico:

Para optimizar los circuitos electrónicos, las fórmulas booleanas se pueden minimizar utilizando el algoritmo de Quine-McCluskey o el mapa de Karnaugh .

Análisis

Propiedades

Una función booleana puede tener diversas propiedades: [ 7 ]

  • Constante : Siempre es verdadera o siempre falsa, independientemente de sus argumentos.
  • Monótono : para cualquier combinación de valores de argumentos, cambiar un argumento de falso a verdadero solo puede provocar que la salida cambie de falso a verdadero, y no de verdadero a falso. Se dice que una función es monótona con respecto a una variable si es monótona con respecto a los cambios en dicha variable.
  • Lineal : para cada variable, invertir el valor de la variable siempre produce una diferencia en el valor de verdad o nunca produce una diferencia (una función de paridad ).
  • Simétrico : el valor no depende del orden de sus argumentos.
  • Lectura única : Se puede expresar con conjunción , disyunción y negación con una sola instancia de cada variable.
  • Equilibrada : si su tabla de verdad contiene la misma cantidad de ceros y unos. El peso de Hamming de la función es la cantidad de unos en la tabla de verdad.
  • Bent : todas sus derivadas están equilibradas (el espectro de autocorrelación es cero).
  • Correlación inmune al orden m : si la salida no está correlacionada con todas las combinaciones (lineales) de como máximo m argumentos.
  • Evasivo : si la evaluación de la función siempre requiere el valor de todos los argumentos.
  • Una función booleana es una función de Sheffer si puede utilizarse para crear (por composición) cualquier función booleana arbitraria (véase completitud funcional ).
  • El grado algebraico de una función es el orden del monomio de mayor orden en su forma normal algebraica.

La complejidad de los circuitos intenta clasificar las funciones booleanas en función del tamaño o la profundidad de los circuitos que pueden calcularlas.

Funciones derivadas

Una función booleana puede descomponerse utilizando el teorema de expansión de Boole en cofactores de Shannon positivos y negativos ( expansión de Shannon ), que son las funciones ( k -1)-arias resultantes de fijar uno de los argumentos (a 0 o 1). Las funciones k -arias generales obtenidas al imponer una restricción lineal sobre un conjunto de entradas (un subespacio lineal) se conocen como subfunciones . [ 8 ]

La derivada booleana de la función respecto a uno de los argumentos es una función ( k -1)-aria que es verdadera cuando la salida de la función es sensible a la variable de entrada elegida; es la operación XOR de los dos cofactores correspondientes. Una derivada y un cofactor se utilizan en una expansión de Reed-Muller . El concepto puede generalizarse como una derivada k -aria en la dirección dx, obtenida como la diferencia (XOR) de la función en x y x + dx. [ 8 ]

La transformada de Möbius (o transformada de Boole-Möbius ) de una función booleana es el conjunto de coeficientes de su polinomio ( forma normal algebraica ), como función de los vectores exponenciales monomiales. Es una transformada autoinversa . Se puede calcular eficientemente usando un algoritmo mariposa (" Transformada rápida de Möbius "), análogo a la transformada rápida de Fourier . [ 9 ] Las funciones booleanas coincidentes son iguales a su transformada de Möbius, es decir, los valores de su tabla de verdad (minterm) son iguales a sus coeficientes algebraicos (monomiales). [ 10 ] Hay 2^2^( k −1 ) funciones coincidentes de k argumentos. [ 11 ]

Análisis criptográfico

La transformada de Walsh de una función booleana es una función entera k-aria que proporciona los coeficientes de una descomposición en funciones lineales ( funciones de Walsh ), análoga a la descomposición de funciones de valor real en armónicos mediante la transformada de Fourier . Su cuadrado es el espectro de potencia o espectro de Walsh . El coeficiente de Walsh de un vector de bits es una medida de la correlación de ese bit con la salida de la función booleana. El coeficiente de Walsh máximo (en valor absoluto) se conoce como la linealidad de la función. [ 8 ] El mayor número de bits (orden) para el cual todos los coeficientes de Walsh son 0 (es decir, las subfunciones están equilibradas) se conoce como resiliencia , y se dice que la función es inmune a la correlación para ese orden. [ 8 ] Los coeficientes de Walsh juegan un papel clave en el criptoanálisis lineal .

La autocorrelación de una función booleana es una función entera k-aria que da la correlación entre un cierto conjunto de cambios en las entradas y la salida de la función. Para un vector de bits dado, está relacionada con el peso de Hamming de la derivada en esa dirección. El coeficiente de autocorrelación máximo (en valor absoluto) se conoce como el indicador absoluto . [ 7 ] [ 8 ] Si todos los coeficientes de autocorrelación son 0 (es decir, las derivadas están equilibradas) para un cierto número de bits, entonces se dice que la función satisface el criterio de propagación hasta ese orden; si todos son cero, entonces la función es una función bent . [ 12 ] Los coeficientes de autocorrelación juegan un papel clave en el criptoanálisis diferencial .

Los coeficientes de Walsh de una función booleana y sus coeficientes de autocorrelación están relacionados por el equivalente del teorema de Wiener-Khinchin , que establece que la autocorrelación y el espectro de potencia son un par transformado de Walsh. [ 8 ]

Tabla de aproximación lineal

Estos conceptos pueden extenderse naturalmente a funciones booleanas vectoriales considerando sus bits de salida ( coordenadas ) individualmente, o más exhaustivamente, observando el conjunto de todas las funciones lineales de los bits de salida, conocidas como sus componentes . [ 6 ] El conjunto de transformadas de Walsh de las componentes se conoce como tabla de aproximación lineal (LAT) [ 13 ] [ 14 ] o matriz de correlación ; [ 15 ] [ 16 ] describe la correlación entre diferentes combinaciones lineales de bits de entrada y salida. El conjunto de coeficientes de autocorrelación de las componentes es la tabla de autocorrelación , [ 14 ] relacionada por una transformada de Walsh de las componentes [ 17 ] con la tabla de distribución de diferencias (DDT) [ 13 ] [ 14 ] más utilizada que enumera las correlaciones entre las diferencias en los bits de entrada y salida (véase también: S-box ).

Forma polinómica real

En el hipercubo unitario

Cualquier función booleanaF(incógnita):{0,1}norte{0,1}{\displaystyle f(x):\{0,1\}^{n}\rightarrow \{0,1\}}puede extenderse (interpolarse) de forma única al dominio real mediante un polinomio multilineal enRnorte{\displaystyle \mathbb {R} ^{n}}, construida sumando los valores de la tabla de verdad multiplicados por polinomios indicadores :F(incógnita)=a{0,1}norteF(a)i:ai=1incógnitaii:ai=0(1incógnitai){\displaystyle f^{*}(x)=\sum _{a\in {\{0,1\}}^{n}}f(a)\prod _{i:a_{i}=1}x_{i}\prod _{i:a_{i}=0}(1-x_{i})}Por ejemplo, la extensión de la función XOR binaria.incógnitay{\displaystyle x\oplus y}es0(1incógnita)(1y)+1incógnita(1y)+1(1incógnita)y+0incógnitay{\displaystyle 0(1-x)(1-y)+1x(1-y)+1(1-x)y+0xy}lo cual es igual aincógnita+y2incógnitay{\displaystyle x+y-2xy}Otros ejemplos son la negación (1incógnita{\displaystyle 1-x}), Y (incógnitay{\displaystyle xy}) y O (incógnita+yincógnitay{\displaystyle x+y-xy}Cuando todos los operandos son independientes (no comparten variables), la forma polinómica de una función se puede encontrar aplicando repetidamente los polinomios de los operadores en una fórmula booleana. Cuando los coeficientes se calculan módulo 2, se obtiene la forma normal algebraica ( polinomio de Zhegalkin ).

Se pueden obtener expresiones directas para los coeficientes del polinomio tomando la derivada adecuada:F(00)=(F)(00)=F(00)F(01)=(1F)(00)=F(00)+F(01)F(10)=(2F)(00)=F(00)+F(10)F(11)=(12F)(00)=F(00)F(01)F(10)+F(11){\displaystyle {\begin{array}{lcl}f^{*}(00)&=&(f^{*})(00)&=&f(00)\\f^{*}(01)&=&(\partial _{1}f^{*})(00)&=&-f(00)+f(01)\\f^{*}(10)&=&(\partial _{2}f^{*})(00)&=&-f(00)+f(10)\\f^{*}(11)&=&(\partial _{1}\partial _{2}f^{*})(00)&=&f(00)-f(01)-f(10)+f(11)\\\end{array}}}Esto se generaliza como la inversión de Möbius del conjunto parcialmente ordenado de vectores de bits:F(metro)=ametro(1)|a|+|metro|F(a){\displaystyle f^{*}(m)=\sum _{a\subseteq m}(-1)^{|a|+|m|}f(a)}dónde|a|{\displaystyle |a|}denota el peso del vector de bitsa{\displaystyle a}. Tomada módulo 2, esta es la transformada de Möbius booleana , que da los coeficientes de la forma normal algebraica :F^(metro)=ametroF(a){\displaystyle {\hat {f}}(m)=\bigoplus _{a\subseteq m}f(a)}En ambos casos, la suma se toma sobre todos los vectores de bits a cubiertos por m , es decir, los bits "uno" de a forman un subconjunto de los bits uno de m .

Cuando el dominio se restringe al hipercubo n-dimensional[0,1]norte{\displaystyle [0,1]^{n}}, el polinomioF(incógnita):[0,1]norte[0,1]{\displaystyle f^{*}(x):[0,1]^{n}\rightarrow [0,1]}Proporciona la probabilidad de un resultado positivo cuando la función booleana f se aplica a n variables aleatorias independientes ( Bernoulli ), con probabilidades individuales x . Un caso especial de este hecho es el lema de acumulación para funciones de paridad . La forma polinómica de una función booleana también puede utilizarse como su extensión natural a la lógica difusa .

En el hipercubo simétrico

A menudo, el dominio booleano se toma como{1,1}{\displaystyle \{-1,1\}}, donde falso ("0") se asigna a 1 y verdadero ("1") a −1 (véase Análisis de funciones booleanas ). El polinomio correspondiente agramo(incógnita):{1,1}norte{1,1}{\displaystyle g(x):\{-1,1\}^{n}\rightarrow \{-1,1\}}entonces viene dado por:gramo(incógnita)=a{1,1}nortegramo(a)i:ai=11incógnitai2i:ai=11+incógnitai2{\displaystyle g^{*}(x)=\sum _{a\in {\{-1,1\}}^{n}}g(a)\prod _{i:a_{i}=-1}{\frac {1-x_{i}}{2}}\prod _{i:a_{i}=1}{\frac {1+x_{i}}{2}}}El uso del dominio booleano simétrico simplifica ciertos aspectos del análisis , ya que la negación corresponde a multiplicar por −1 y las funciones lineales son monomios (XOR es multiplicación). Esta forma polinómica corresponde, por lo tanto, a la transformada de Walsh (en este contexto también conocida como transformada de Fourier ) de la función (véase más arriba). El polinomio también tiene la misma interpretación estadística que el del dominio booleano estándar, excepto que ahora trata con los valores esperados.mi(incógnita)=PAG(incógnita=1)PAG(incógnita=1)[1,1]{\displaystyle E(X)=P(X=1)-P(X=-1)\in [-1,1]}(Véase el lema de acumulación para un ejemplo).

Aplicaciones

Las funciones booleanas desempeñan un papel fundamental en cuestiones de teoría de la complejidad , así como en el diseño de procesadores para ordenadores digitales , donde se implementan en circuitos electrónicos mediante puertas lógicas .

Las propiedades de las funciones booleanas son fundamentales en criptografía , particularmente en el diseño de algoritmos de clave simétrica (véase el recuadro de sustitución ).

En la teoría de juegos cooperativos , las funciones booleanas monótonas se denominan juegos simples (juegos de votación); esta noción se aplica para resolver problemas en la teoría de la elección social .

Véase también

Referencias

  1. "Función booleana - Enciclopedia de Matemáticas" . encyclopediaofmath.org . Consultado el 3 de mayo de 2021 .
  2. Weisstein, Eric W. "Función booleana" . mathworld.wolfram.com . Consultado el 3 de mayo de 2021 .
  3. "función de conmutación" . TheFreeDictionary.com . Consultado el 3 de mayo de 2021 .
  4. Davies, DW (diciembre de 1957). "Funciones de conmutación de tres variables". IRE Transactions on Electronic Computers . EC-6 (4): 265–275 . doi : 10.1109/TEC.1957.5222038 . ISSN 0367-9950 . 
  5. McCluskey, Edward J. (1 de enero de 2003), "Teoría de la conmutación" , Enciclopedia de Ciencias de la Computación , GBR: John Wiley and Sons Ltd., págs. 1727–1731 , ISBN  978-0-470-86412-8, consultado el 3 de mayo de 2021
  6. 1 2 Carlet, Claude. "Funciones booleanas vectoriales para criptografía" (PDF) . Universidad de París . Archivado (PDF) del original el 17 de enero de 2016.
  7. 1 2 "Funciones booleanas — Manual de referencia de Sage 9.2: Criptografía" . doc.sagemath.org . Consultado el 1 de mayo de 2021 .
  8. 1 2 3 4 5 6 Tarannikov, Yuriy; Korolev, Peter; Botev, Anton (2001). "Coeficientes de autocorrelación e inmunidad a la correlación de funciones booleanas". En Boyd, Colin (ed.). Avances en criptología — ASIACRYPT 2001. Lecture Notes in Computer Science. Vol. 2248. Berlín, Heidelberg: Springer. pp. 460–479 . doi : 10.1007/3-540-45682-1_27 . ISBN   978-3-540-45682-7.
  9. Carlet, Claude (2010), "Funciones booleanas para criptografía y códigos correctores de errores" (PDF) , Modelos y métodos booleanos en matemáticas, informática e ingeniería , Enciclopedia de matemáticas y sus aplicaciones, Cambridge: Cambridge University Press, pp. 257–397 , ISBN  978-0-521-84752-0, consultado el 17 de mayo de 2021
  10. Pieprzyk, Josef; Wang, Huaxiong; Zhang, Xian-Mo (2011-05-01). "Transformadas de Möbius, funciones booleanas coincidentes y propiedad de no coincidencia de funciones booleanas" . International Journal of Computer Mathematics . 88 (7): 1398– 1416. doi : 10.1080/00207160.2010.509428 . ISSN 0020-7160 . S2CID 9580510 .  
  11. ^ Nitaj, Abderrahmane; Susilo, Willy; Tonien, José (1 de octubre de 2017). "Producto de Dirichlet para funciones booleanas" . Revista de Matemáticas Aplicadas y Computación . 55 (1): 293– 312. doi : 10.1007/s12190-016-1037-4 . ISSN 1865-2085 . S2CID 16760125 .  
  12. Canteaut, Anne; Carlet, Claude; Charpin, Pascale; Fontaine, Caroline (14 de mayo de 2000). «Características de propagación e inmunidad a la correlación de funciones booleanas altamente no lineales» . Actas de la 19.ª Conferencia Internacional sobre Teoría y Aplicación de Técnicas Criptográficas . EUROCRYPT'00. Brujas, Bélgica: Springer-Verlag: 507–522 . ISBN 978-3-540-67517-4.
  13. 1 2 Heys, Howard M. "Un tutorial sobre criptoanálisis lineal y diferencial" (PDF) . Archivado (PDF) del original el 17 de mayo de 2017.
  14. 1 2 3 "S-Boxes y sus representaciones algebraicas — Manual de referencia de Sage 9.2: Criptografía" . doc.sagemath.org . Consultado el 4 de mayo de 2021 .
  15. ^ Daemen, Juana; Govaerts, René; Vandewalle, Joos (1994). "Matrices de correlación". En Preneel, Bart (ed.). Cifrado de software rápido: segundo taller internacional. Lovaina, Bélgica, 14 a 16 de diciembre de 1994, Actas . Apuntes de conferencias sobre informática. vol. 1008. Saltador. págs. 275–285 . doi : 10.1007/3-540-60590-8_21 .  
  16. Daemen, Joan (10 de junio de 1998). "Capítulo 5: Propagación y correlación - Anexo a la propuesta AES Rijndael" (PDF) . NIST . Archivado (PDF) del original el 23 de julio de 2018.
  17. Nyberg, Kaisa (1 de diciembre de 2019). "Las tablas de autocorrelación y boomerang extendidas y los vínculos entre las propiedades de no linealidad de las funciones booleanas vectoriales" (PDF) . Archivado (PDF) del original el 2 de noviembre de 2020.

Lecturas adicionales

  • Crama, Yves; Hammer, Peter L. (2011), Boolean Functions: Theory, Algorithms, and Applications , Cambridge University Press, doi : 10.1017/CBO9780511852008 , ISBN 9780511852008
  • "Función booleana" , Enciclopedia de Matemáticas , EMS Press , 2001 [1994]
  • Janković, Dragan; Stanković, Radomir S.; Moraga, Claudio (noviembre de 2003). "Optimización de expresiones aritméticas mediante la propiedad de doble polaridad" . Revista Serbia de Ingeniería Eléctrica . 1 ( 71–80 , número 1): 71–80 . doi : 10.2298/SJEE0301071J .
  • Arnold, Bradford Henry (1 de enero de 2011). Lógica y álgebra booleana . Courier Corporation. ISBN 978-0-486-48385-6.
  • Mano, MM; Ciletti, MD (2013), Diseño digital , Pearson