Boolesche Funktion

A Binärentscheidungsdiagramm und Wahrheitstabelle einer ternären booleschen Funktion

Im Mathematik, a Boolesche Funktion ist ein Funktion Deren Argumente und resultieren Werte aus einem Zwei-Element-Satz (normalerweise {true, false}, {0,1} oder {-1,1}).[1][2] Alternative Namen sind Schaltfunktion, besonders bei älteren Informatik Literatur,[3][4] und Wahrheitsfunktion (oder logische Funktion), benutzt in Logik. Boolesche Funktionen sind Gegenstand von boolsche Algebra und Schalttheorie.[5]

Eine boolesche Funktion nimmt die Form an , wo ist als die bekannt Boolesche Domain und ist eine nicht negative Ganzzahl genannt Arity der Funktion. Für den Fall wo , Die Funktion ist ein konstantes Element von . Eine boolesche Funktion mit mehreren Ausgängen, mit ist ein vektorial oder vektorbewertet Boolesche Funktion (eine S-Box in Kryptographie).[6]

Es gibt verschiedene boolesche Funktionen mit Argumente; gleich der Anzahl der verschiedenen Wahrheitstabellen mit Einträge.

Jeder -ary boolesche Funktion kann als ausgedrückt werden Aussageformel in Variablen und zwei sätzeale Formeln sind logisch äquivalent Wenn und nur wenn sie die gleiche boolesche Funktion ausdrücken.

Beispiele

Diagram displaying the sixteen binary Boolean functions
Die sechzehn binären booleschen Funktionen

Die rudimentären symmetrischen booleschen Funktionen (Logische Verbindungen oder Logik -Tore) sind:

  • NICHT, Negation oder ergänzen - was eine Eingabe empfängt und true zurückgibt, wenn diese Eingabe falsch ist ("nicht")
  • UND oder Verbindung - wahr, wenn alle Eingaben wahr sind ("beide")

Ein Beispiel für eine kompliziertere Funktion ist die Mehrheitsfunktion (einer ungeraden Anzahl von Eingängen).

Darstellung

Eine boolesche Funktion als a Boolesche Schaltung

Eine Boolesche Funktion kann auf verschiedene Weise angegeben werden:

  • Wahrheitstabelle: Auflistung des Wertes für alle möglichen Werte der Argumente explizit auflisten
    • Marquand-Diagramm: Wahrheitstabellenwerte, die in einem zweidimensionalen Raster angeordnet sind (in a verwendet Karnaugh -Karte)
    • BinärentscheidungsdiagrammDie Werte der Wahrheitstabelle am Ende eines Binärbaums auflisten
    • Venn-Diagrammdie Werte der Wahrheitstabelle als Färbung der Regionen der Ebene darstellen

Algebraisch, als Aussageformel Verwenden von rudimentären booleschen Funktionen:

Boolesche Formeln können auch als Diagramm angezeigt werden:

Um elektronische Schaltkreise zu optimieren, können Boolesche Formeln sein minimiert Verwendung der Quine -McCluskey -Algorithmus oder Karnaugh -Karte.

Analyse

Eigenschaften

Eine Boolesche Funktion kann eine Vielzahl von Eigenschaften haben:[7]

  • Konstante: Ist immer wahr oder immer falsch, unabhängig von seinen Argumenten.
  • Monoton: Für jede Kombination von Argumentwerten kann das Ändern eines Arguments von False in True nur dazu führen, dass die Ausgabe von False zu True und nicht von True zu False wechselt. Eine Funktion soll sein Unate in einer bestimmten Variablen, wenn es sich um Änderungen dieser Variablen handelt.
  • Linear: Für jede Variable macht das Umdrehen des Wertes der Variablen entweder immer einen Unterschied im Wahrheitswert oder macht nie einen Unterschied (a) Paritätsfunktion).
  • Symmetrisch: Der Wert hängt nicht von der Reihenfolge seiner Argumente ab.
  • Schreibgerichtete: Kann mit ausgedrückt werden mit Verbindung, disjunktion, und Negation mit einer einzelnen Instanz jeder Variablen.
  • Ausgewogen: wenn es Wahrheitstabelle enthält eine gleiche Menge an Nullen und Einsen. Das Hamming -Gewicht der Funktion ist die Anzahl derjenigen in der Wahrheitstabelle.
  • Gebogen: seine Derivate sind alle ausgeglichen (das Autokorrelationsspektrum ist Null)
  • Korrelationsimmun zu mTH -Reihenfolge: Wenn der Ausgang mit allen (linearen) Kombinationen von höchstens unkorreliert ist m Argumente
  • Ausweichend: Wenn die Bewertung der Funktion immer den Wert aller Argumente erfordert
  • Eine boolesche Funktion ist a Sheffer -Funktion Wenn es verwendet werden kann, um (nach Zusammensetzung) eine beliebige booleale Funktion zu erstellen (siehe Funktionale Vollständigkeit)
  • Das algebraischer Abschluss einer Funktion ist die Reihenfolge der höchsten Ordnung monomial in seiner Algebraische Normalform

Komplexität der Schaltung Versuche, boolesche Funktionen in Bezug auf die Größe oder Tiefe der Schaltungen zu klassifizieren, die sie berechnen können.

Abgeleitete Funktionen

Eine boolesche Funktion kann mit Verwendung zerlegt werden Booles Expansionstheorem positiv und negativ Shannon Cofaktoren (Shannon -Expansion), die (k-1) -ary-Funktionen sind, die sich aus der Festlegung eines der Argumente (auf Null oder eins) ergeben. Die allgemeinen (k-ary) Funktionen, die durch Auferlegen einer linearen Einschränkung für eine Reihe von Eingängen (ein linearer Unterraum) erhalten werden Unterfunktionen.[8]

Das Boolesche Derivat der Funktion zu einem der Argumente ist eine (k-1) -Rary-Funktion, die zutrifft, wenn die Ausgabe der Funktion empfindlich gegenüber der ausgewählten Eingangsvariablen ist. Es ist der XOR der beiden entsprechenden Cofaktoren. Ein Derivat und ein Cofaktor werden in a verwendet Reed -Müller -Expansion. Das Konzept kann als K-Ary-Derivat in Richtung DX verallgemeinert werden, das als Differenz (xor) der Funktion bei x und x + dx erhalten wird.[8]

Das Möbius transformiert (oder Boole-möbius transformiert) einer Booleschen Funktion ist der Satz von Koeffizienten seiner Polynom (Algebraische Normalform) als Funktion der monomialen Exponentenvektoren. Es ist ein selbstinvers verwandeln. Es kann effizient mit a berechnet werden Schmetterlingsalgorithmus (""Schnelle Möbius -Transformation"), analog zum Schnelle Fourier-Transformation.[9] Zufällig Boolesche Funktionen entsprechen ihrer möbius -Transformation, d. H. Ihre Wahrheitstabellenwerte (Minuted), die ihren algebraischen (monomialen) Koeffizienten entsprechen.[10] Es gibt 2^2^(k–1) übereinstimmende Funktionen von k Argumente.[11]

Kryptografische Analyse

Das Walsh transformiert einer Booleschen Funktion ist eine K-Ary-Ganzzahl-Funktion, die die Koeffizienten einer Zersetzung in die lineare Funktionen (Walsh funktioniert) analog zur Zersetzung realer Wertfunktionen in Harmonische bis zum Fourier-Transformation. Sein Quadrat ist das Leistungsspektrum oder Walsh spectrum. Der Walsh -Koeffizient eines einzelnen Bitvektors ist ein Maß für die Korrelation dieses Bits mit der Ausgabe der Booleschen Funktion. Der maximale (im absoluten Wert) Walsh -Koeffizient wird als der bezeichnet Linearität der Funktion.[8] Die höchste Anzahl von Bits (Reihenfolge), für die alle Walsh -Koeffizienten 0 sind (d. H. Die Unterfunktionen sind ausgeglichen) Elastizitätund die Funktion soll sein Korrelationsimmun zu dieser Reihenfolge.[8] Die Walsh -Koeffizienten spielen eine Schlüsselrolle in Lineare Kryptanalyse.

Das Autokorrelation einer booleschen Funktion ist eine K-ary-Ganzzahl-Funktion, die die Korrelation zwischen einem bestimmten Satz von Änderungen in den Eingängen und der Funktion OUPUT ergibt. Für einen bestimmten Bitvektor hängt es mit dem Hamminggewicht des Derivats in dieser Richtung zusammen. Der maximale Autokorrelationskoeffizient (im absoluten Wert) ist als der bekannt Absolute Indikator.[7][8] Wenn alle Autokorrelationskoeffizienten 0 sind (d. H. Die Derivate sind ausgeglichen) für eine bestimmte Anzahl von Bits, soll die Funktion das erfüllen Propagationskriterium zu dieser Ordnung; Wenn sie alle Null sind, ist die Funktion a gebogene Funktion.[12] Die Autokorrelationskoeffizienten spielen eine Schlüsselrolle in Differentialkryptanalyse.

Die Walsh -Koeffizienten einer Booleschen Funktion und deren Autokorrelationskoeffizienten sind durch das Äquivalent des Wiener -Khinchin -Theorem, was besagt, dass die Autokorrelation und das Leistungsspektrum ein Walsh -Transformationspaar sind.[8]

Diese Konzepte können auf natürliche Weise auf vektorial Boolesche Funktionen unter Berücksichtigung ihrer Ausgangsbits (Koordinaten) individuell oder gründlicher, indem Sie den Satz aller linearen Funktionen von Ausgangsbits betrachten, die als seine bezeichnet werden Komponenten.[6] Der Satz von Walsh -Transformationen der Komponenten ist als bekannt Lineare Approximationstabelle (Lat)[13][14] oder Korrelationsmatrix;[15][16] Es beschreibt die Korrelation zwischen verschiedenen linearen Kombinationen von Eingangs- und Ausgangsbits. Der Satz der Autokorrelationskoeffizienten der Komponenten ist die Autokorrelationstabelle,[14] verwandt durch eine Walsh -Transformation der Komponenten[17] zu den weit verbreiteten verwendeten Differenzverteilungstabelle (DDT)[13][14] Dies listet die Korrelationen zwischen Unterschieden in Eingangs- und Ausgangsbits auf (siehe auch: S-Box).

Echte Polynomform

Auf der Einheit Hypercube

Jede Boolesche Funktion kann einzigartig erweitert (interpoliert) auf die echte Domäne durch eine Multilineares Polynom in , konstruiert durch Summieren der Wahrheitstabellenwerte multipliziert mit Indikatorpolynome:

Zum Beispiel die Erweiterung der binären XOR -Funktion ist
was gleich ist
Einige andere Beispiele sind Negation (), UND () und oder (). Wenn alle Operanden unabhängig sind (keine Variablen teilen), finden Sie eine Polynomform einer Funktion, indem die Polynome der Operatoren wiederholt in einer booleschen Formel angewendet werden. Wenn die Koeffizienten berechnet werden Modulo 2 man erhält die Algebraische Normalform (Zhegalkin Polynom).

Direkte Ausdrücke für die Koeffizienten des Polynoms können abgeleitet werden, indem ein geeignetes Derivat eingenommen wird:

Dies verallgemeinert als die Möbius -Inversion des teilweise bestelltes Set von Bit Vektoren:
wo bezeichnet das Gewicht des Bitvektors . Modulo 2 genommen, dies ist das Boolesche Möbius transformiert, geben die Algebraische Normalform Koeffizienten:
In beiden Fällen wird die Summe alle Bitvektoren übernommen a überdeckt von m, d.h. die "ein" Teile von a bilden eine Untergruppe der einen Teile von m.

Wenn die Domäne auf das n-dimensionale beschränkt ist Hypercube das Polynom gibt die Wahrscheinlichkeit eines positiven Ergebnisses bei der Booleschen Funktion f wird angewendet auf n unabhängiger zufälliger (Bernoulli) Variablen mit individuellen Wahrscheinlichkeiten x. Ein besonderer Fall dieser Tatsache ist der Lemma aufpacken zum Paritätsfunktionen. Die Polynomform einer Booleschen Funktion kann auch als natürliche Erweiterung verwendet werden Fuzzy Logic.

Auf dem symmetrischen Hypercube

Oft wird die Boolesche Domain als als angenommen als , mit falsch ("0") Mapping auf 1 und true ("1") bis -1 (siehe Analyse der Booleschen Funktionen). Das Polynom, das entspricht wird dann gegeben durch:

Die Verwendung der symmetrischen booleschen Domäne vereinfacht bestimmte Aspekte der Analyse, da die Negation der Multiplizierung mit -1 und entspricht lineare Funktionen sind Monome (XOR ist eine Multiplikation). Diese Polynomform entspricht somit der Walsh transformiert (In diesem Zusammenhang auch als bekannt als als Fourier-Transformation) der Funktion (siehe oben). Das Polynom hat auch die gleiche statistische Interpretation wie das im Standard booleschen Bereich, außer dass es sich jetzt mit den erwarteten Werten befasst (sehen Lemma aufpacken zum Beispiel).

Anwendungen

Boolesche Funktionen spielen eine grundlegende Rolle bei Fragen von Komplexitätstheorie sowie das Design von Prozessoren für Digitale Computer, wo sie in elektronischen Schaltungen implementiert werden Logik -Tore.

Die Eigenschaften von Booleschen Funktionen sind in entscheidender Bedeutung Kryptographiebesonders im Design von Symmetrische Schlüsselalgorithmen (sehen Substitutionsbox).

Im Genossenschaftsspiel Theorie, monotone boolesche Funktionen werden genannt Einfache Spiele (Wahlspiele); Dieser Begriff wird angewendet, um Probleme in Theorie der sozialen Wahl.

Siehe auch

Verweise

  1. ^ "Boolesche Funktion - Enzyklopädie der Mathematik". Encyclopediaofmath.org. Abgerufen 2021-05-03.
  2. ^ Weisstein, Eric W. "Boolesche Funktion". mathworld.wolfram.com. Abgerufen 2021-05-03.
  3. ^ "Schaltfunktion". TheFreedictionary.com. Abgerufen 2021-05-03.
  4. ^ Davies, D. W. (Dezember 1957). "Wechselfunktionen von drei Variablen". IRE -Transaktionen auf elektronischen Computern. EC-6 (4): 265–275. doi:10.1109/tec.1957.5222038. ISSN 0367-9950.
  5. ^ McCluskey, Edward J. (2003-01-01), "Wechsel der Theorie", Enzyklopädie der Informatik, GBR: John Wiley and Sons Ltd., S. 1727–1731, ISBN 978-0-470-86412-8, abgerufen 2021-05-03
  6. ^ a b Carlet, Claude. "Vektorial Boolesche Funktionen für die Kryptographie" (PDF). Universität von Paris. Archiviert (PDF) vom Original am 01.01.2016.
  7. ^ a b "Boolesche Funktionen - Salbei 9.2 Referenzhandbuch: Kryptographie". doc.sagemath.org. Abgerufen 2021-05-01.
  8. ^ a b c d e f Tarannikov, Yuriy; Korolev, Peter; Botev, Anton (2001). Boyd, Colin (Hrsg.). "Autokorrelationskoeffizienten und Korrelationsimmunität der Booleschen Funktionen". Fortschritte in der Kryptologie - Asiacrypt 2001. Vorlesungsnotizen in Informatik. Berlin, Heidelberg: Springer. 2248: 460–479. doi:10.1007/3-540-45682-1_27. ISBN 978-3-540-45682-7.
  9. ^ Carlet, Claude (2010), "Boolesche Funktionen für Kryptographie und fehlerkorrigierende Codes" (PDF), Boolesche Modelle und Methoden in Mathematik, Informatik und Ingenieurwesen, Encyclopedia of Mathematics und ihre Anwendungen, Cambridge: Cambridge University Press, S. 257–397, ISBN 978-0-521-84752-0, abgerufen 2021-05-17
  10. ^ Pieprzyk, Josef; Wang, Huaxiong; Zhang, Xian-Mo (2011-05-01). "Mobius transformiert, zufällige boolesche Funktionen und nicht-Kohincidence-Eigentum von Booleschen Funktionen". Internationales Journal of Computer Mathematics. 88 (7): 1398–1416. doi:10.1080/00207160.2010.509428. ISSN 0020-7160.
  11. ^ Nitaj, Abderrahmane; Susilo, Willy; Tonien, Joseph (2017-10-01). "Dirichlet -Produkt für Boolesche Funktionen". Journal of Applied Mathematics and Computing. 55 (1): 293–312. doi:10.1007/s12190-016-1037-4. ISSN 1865-2085.
  12. ^ Canteaut, Anne; Carlet, Claude; Charpin, Pascale; Fontaine, Caroline (2000-05-14). "Propagationsmerkmale und Korrelationsmunität hoch nichtlinearer boolescher Funktionen". Verfahren der 19. Internationalen Konferenz über Theorie und Anwendung kryptografischer Techniken. Eurocrypt'00. Brügge, Belgien: Springer-Verlag: 507–522. ISBN 978-3-540-67517-4.
  13. ^ a b Heys, Howard M. "Ein Tutorial zur linearen und differentiellen Kryptanalyse" (PDF). Archiviert (PDF) vom Original am 2017-05-17.
  14. ^ a b c "S-Boxen und ihre algebraischen Darstellungen-Salbei 9.2 Referenzhandbuch: Kryptographie". doc.sagemath.org. Abgerufen 2021-05-04.
  15. ^ Daemen, Joan; Govaerts, René; Vandewalle, Joos (1995). Preisträger, Bart (Hrsg.). "Korrelationsmatrizen". Schnelle Softwareverschlüsselung. Vorlesungsnotizen in Informatik. Berlin, Heidelberg: Springer. 1008: 275–285. doi:10.1007/3-540-60590-8_21. ISBN 978-3-540-47809-6.
  16. ^ Daemen, Joan (10. Juni 1998). "Kapitel 5: Ausbreitung und Korrelation - Anhang zum AES -Vorschlag Rijndael" (PDF). NIST. Archiviert (PDF) vom Original am 2018-07-23.
  17. ^ Nyberg, Kaisa (1. Dezember 2019). "Die erweiterten Autokorrelations- und Boomerang -Tabellen und Verbindungen zwischen nichtlinearischen Eigenschaften vektorial boolescher Funktionen" (PDF). Archiviert (PDF) vom Original am 2020-11-02.

Weitere Lektüre