-
1. Gebiet
der Erfindung
-
Diese
Erfindung betrifft im Allgemeinen das Erhöhen der Arbeitsgeschwindigkeit
auf dem Gebiet der Verschlüsselung.
-
2. Beschreibung des Stands
der Technik
-
Das
Dokument „RFC
1321-Der MD5 – Nachrichtenverarbeitunsalgorithmus", von R. Rivest, MIT-Labor
für Computerwissenschaften
und RSA-Datensicherheit, Inc., April 1992, Seiten 1 bis 18, der
hiermit durch Bezugnahme mit eingeschlossen ist, offenbart eine
Vorgehensweise, die durch die Struktur der 1 dargestellt
ist. In einer derartigen Betriebsweise wird das Register A mit Daten
bis zu 32 Bits (A31, A30,
..., A0) gefüllt, das Register B wird mit Daten
bis zu 32 Bits (B31, B30,
..., B0) gefüllt, das Register C wird mit
Daten bis zu 32 Bits (C31, C30,
..., C0) gefüllt und das Register D wird
mit Daten bis zu 32 Bits (D31, D30, ..., D0) gefüllt. Des
weiteren wird das Register 5 mit 512 Datenbits gefüllt und
das Register 6 wird mit 512 Datenbits gefüllt. Jedes
Bit in dem Register A, B, C, D, 5 und 6 kann einen
Wert von 0 oder 1 aufweisen.
-
Entsprechend
diesem Dokument werden vier Hilfsfunktionen definiert:
F(B,
C, D) = BC v nicht(B)D
G(B, C, D) = DD v C nicht(D)
H(B,
C, D) = B xor (exklusiv oder) C xor
I(B, C, D) = C xor (B v
nicht(D))
-
Des
weiteren werden die 512 Bits in dem Register 5 in 16 separate
Gruppen (k = 0–15)
aus 32 Bits unterteilt, und die Funktion X(k) bewirkt, dass eine
Gruppe daraus ausgewählt
wird, die durch den Wert von k bestimmt ist. Die 512 Bits in dem
Register 6 werden in 16 separate Gruppen (i = 1–16) aus
jeweils 32 Bits unterteilt, und die Funktion T(i) wirkt so, dass
eine Gruppe daraus ausgewählt,
die durch den Wert von i bestimmt ist. Die Funktion CLS(s) Rotator 11 bewirkt,
dass der entsprechende Inhalt um eine Anzahl an Bits rotiert bzw.
zyklisch vertauscht wird, wie dies durch den Wert s gegeben ist
(s = 1–64).
-
[ABCD
k s i] bezeichnet die Operation für jede der folgenden Durchgänge:
/*
Durchgang 1 */
Ergebnis = b + a ((a + F(b, c, d) + X[k] + T[i] <<<ss).*/
*/
Die folgenden 16 Operationen werden durchgeführt. */
[ABCD 0 7
1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC
5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12
10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13
12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* Durchgang 2
*/
Ergebnis = b + a((a + G(b, c, d) + X[K] + T[i] <<<s).
*/
/* Die folgenden 16 Operationen werden durchgeführt. */
[ABCD
1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD
5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD
9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD
13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
/*
Durchgang 3 */
Ergebnis = b + a((a + H(b, c, d) + X[k] + T[i]) <<<s)
*/
/* Die folgenden 16 Operationen werden durchgeführt.*/
[ABCD
5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD
1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD
13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD
9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/*
Durchgang 4 */
Ergebnis = b + ((a + I(b, c, d) + X[k] + T[i]) <<<s)
*/
/* Die folgenden 16 Operationden werden durchgeführt. */
[ABCD
0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD
12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD
8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD
4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
-
Mit
Bezug zu den 1 und 2 wird die erste
Operation des ersten Durchgangs, d. h. [ABCD 0 7 1] beschrieben.
-
Zunächst wird
der 32-Bit Datensatz in dem Register A dem Addierer 7 zugeführt. Die
erste Variable des Datensatzes des Registers B, d. h. das Bit B31, die erste Variable des Datensatzes im
Register C, d. h. das Bit C31, und die erste
Variable des Datensatzes im Register D, d. h. das D31 (erster
Satz aus Variablen B31, C31,
D31) werden als Eingangssignale für den Logikblock 8 verwendet,
der entweder die Funktion F, G, H oder I an diesen Variablen ausführen kann.
Gleichzeitig werden die zweite Variable des Datensatzes des Registers
B, d. h. das Bit B30, die zweite Variable
des Datensatzes des Registers C, d. h. das Bit C30,
und die zweite Variable des Datensatzes des Registers D, d. h. das
Bit D30 (der zweite Satz aus Variablen D30, C30, D30) ebenso als Eingangssignale dem Logikblock 8,
und in gleicher Weise für
jeden Satz der Variablen zugeführt.
In diesem speziellen Falle wird die Funktion F auf diese Variablen
angewendet (2). Der Prozess wird parallel
an jedem der 32 Sätze
aus 3 Bits ausgeführt,
wodurch ein 32-Bit-Ausgangssignal erzeugt wird, das dem Addierer 7 zugeführt wird.
Mit dem Zuführen
des 32-Bit-Ausgangssignals von dem Logikblock 8 zu dem
Addierer 7 wird der Inhalt des Registers B dem Register
C und dem Addierer 12 zugeführt, der Inhalt des Registers
C wird dem Register D zugeführt
und der Inhalt des Registers D wird dem Register A zugeführt. Das
Eingangssignals aus dem Logikblock 8 und der Datensatz
des Registers A, der dem Addierer 7 zugeführt wird,
werden von dem Addierer 7 addiert, der eine 32-Bit-Ausgangszahl
dem Addierer 9 zuführt.
Der Wert k = 0 zeigt an, dass die 32-Bit-Gruppe 0 des Registers 5 als
Eingangssignal dem Addierer 9 zugeführt wird, und das Eingangssignal
aus dem Addierer 7 und die 32-Bit-Gruppe 0 des Registers 5 werden
von dem Addierer 9 addiert. Das Ausgangssignal des Addierers 9 wird
dem Addierer 10 zugeführt,
und der Wert i = 1 zeigt an, dass die 32-Bit-Gruppe 1 des Registers 6 als
Eingangssignal dem Addierer 10 zugeführt wird, und das Eingangssignal
aus dem Addierer 9 und die 32-Bit-Gruppe 1 des Registers 6 werden von
dem Addierer 10 summiert. Der 32-Bit-Ausgang aus dem Addierer 10 wird
von dem Rotator CLS(s) 11 zyklisch vertauscht, wie dies
durch die Zahl s vorgegebenen ist, wobei s in diesem Falle s = 7
ist. Der zyklisch vertauschte Inhalt wird dem Addierer 12 zugeführt und
dem Inhalt des Registers B hinzugefügt, der dem Addierer 12 zugeführt wurde.
Der Ausgang des Addierers 12 wird dem Register B zugeführt.
-
Für die zweite
Operation des ersten Durchlaufs, d. h. [DABC 1 12 2] wird der Vorgang
wiederholt, wobei wiederum die Funktion F angewendet wird, und dieser
Vorgang wird für
alle 16 Operationen des ersten Durchgangs wiederholt, wobei jedes
mal die Funktion F angewendet wird. Für die erste Operation der zweiten
Runde [ABCD 1 5 17], wird die obige Prozedur jedoch mit dem Logikblock 8 angewendet,
wobei die Funktion G auf die zugeleiteten Eingangssignale angewendet
wird (4). In ähnlicher Weise
werden die 16 Operationen des 2 Durchlaufs gemäß der obigen Abfolge durchgeführt.
-
Der
dritte und der vierte Durchgang werden in ähnlicher Weise unternommen,
wobei die Funktion H (5) und die Funktion I (Funktion
6) wiederum in der zuvor dargestellten Weise verwendet werden.
-
Wie
man erkennen kann, ist die Anwendung einer Funktion durch den Logikblock 8 von
den Eingangssignalen aus den Registern B, C und D abhängig. Während in
jeder Operation der Inhalt der Register C und D direkt für den Logikblock 8 verfügbar ist, gelangt
man nach der ersten Operation des ersten Durchlaufs zu dem Inhalt
des Registers B, der dem Logikblock 8 zugeführt wird,
durch eine Reihe von Berechnungen, die den Addierer 7,
das Register 5, den Addierer 9, den Addierer 10,
das Registers 6, den Rotator 11 und den Addierer 12 beinhalten.
Diese zeitaufwendige Prozess verursacht, dass das Gesamtsystem langsamer
arbeitet als dies gewünscht ist,
da der Logikblock 8 auf die Eingangssignale von allen drei
Registern B, C und D warten muss, bevor dessen Funktion angewendet
wird.
-
Daher
besteht ein Bedarf für
ein Verfahren zur Beschleunigung der zuvor beschriebenen Arbeitsweise.
-
Überblick über die
Erfindung
-
In
dem erfindungsgemäßen Verfahren
zum Einrichten einer Funktion einer Verschlüsselungsmaschine werden ein
erster und ein zweiter Logikblock bereitgestellt, die jeweils eine
Funktion abarbeiten, wobei das Ausführen der Funktion des ersten
Logikblocks auf der Grundlage eines Eingangswertes einer ersten
Variable beruht, die einen ersten und einen zweiten Wert aufweist,
und auf einem Eingangswert einer zweiten Variable beruht, die einen
ersten oder einen zweiten Wert aufweist, wobei das Ausführen der
Funktion des zweiten Logikblocks auf einem Eingangswert der ersten
Variable, die den ersten oder den zweiten Wert aufweist, und auf
einem Eingangswert einer dritten Variable, die einen ersten Wert
und einen zweiten Wert aufweisen kann, beruht. Ein tatsächlicher
Wert der zweiten Variable wird bereitgestellt. Die Funktion des
ersten Logikblocks wird auf der Grundlage des Eingangswerts der
ersten Variablen, der auf den ersten Wert festgelegt ist, und auf der
Grundlage eines Eingangswerts der zweiten Variablen, der auf den
tatsächlichen
Wert festgelegt ist, um das erste Ausgangssignal bereitzustellen.
Die Funktion des ersten Logikblocks wird auf der Grundlage eines
Eingangswerts der ersten Variablen, die auf den zweiten Wert festgelegt
ist, und einem Eingangswert der zweiten Variablen, der dem tatsächlichen
Wert davon entspricht, durchgeführt,
um eine zweite Ausgabe bereitzustellen. Es wird ein tatsächlicher
Wert der dritten Variable bereitgestellt; die Funktion des zweiten
Logikblocks wird auf Grundlage eines Eingangswerts der ersten Variablen,
die auf den ersten Wert festgelegt ist, und eines Eingangswerts
der dritten Variablen mit dem tatsächlichen Wert davon durchgeführt, um
eine dritte Ausgabe bereitzustellen. Die Funktion des zweiten Logikblocks wird
auf der Grundlage eines Eingangswerts der ersten Variablen, die
auf den zweiten Wert festgelegt ist, und eines Eingangswerts der
dritten Variablen mit ihrem tatsächlichen
Wert ausgeführt,
um eine vierte Ausgabe bereitzustellen.
-
Die
vorliegende Aufgabe kann durch Studium der folgenden detaillierten
Beschreibung in Verbindung mit den begleitenden Zeichnungen besser verstanden
werden. Wie der Fachmann aus dem folgenden erkennt, ist eine Ausführungsform
dieser Erfindung einfach durch die Darstellung der besten Art zum
Ausführen
der Erfindung gezeigt und beschrieben. Man erkennt, dass die Erfindung
andere Ausführungsformen
annehmen kann und dass diverse Details Modifizierungen in diversen
offensichtlichen Aspekten unterliegen kann, ohne von dem Schutzbereich
der Erfindung abzuweichen. Daher sind die Beschreibung und die detaillierte
Beschreibung als lediglich anschaulich und nicht als einschränkend zu erachten.
-
Kurze Beschreibung
der Zeichnungen
-
Die
neuen Merkmale, die als charakteristisch für die Erfindung betrachtet
werden, sind in den angefügten
Patentansprüchen
dargelegt. Die Erfindung selbst sowie eine bevorzugte Anwendung
davon sowie weitere Aufgaben und Vorteile davon können durch Bezugnahme
auf die folgende detaillierte Beschreibung einer anschaulichen Ausführungsform besser
verstanden werden, wenn diese in Verbindung mit den begleitenden
Zeichnungen studiert wird, in denen:
-
1 bis 6 die
Funktionsweise eines konventionellen bekannten Verfahrens darstellen; und
-
7 bis 14 die
Funktionsweise des erfindungsgemäßen Verfahrens
zeigen.
-
Detaillierte
Beschreibung
-
Es
wird nun detailliert auf eine spezielle Ausführungsform der vorliegenden
Erfindung Bezug genommen, die von den Erfindern gegenwärtig als
die beste Art zum Ausführen
der Erfindung betrachtet wird.
-
7 zeigt
diese Ausführungsform
der vorliegenden Erfindung. Wie darin gezeigt ist, sind 32 einzelne
Logikblöcke
LB1, LB2, LB3–LB32
vorgesehen, wobei diese Logikblöcke
LB1 bis LB32 den einzelnen Logikblock aus 8 ersetzen.
Es soll daran erinnert werden, dass in der Ausführungsform aus 1 jedes
der Register B, C, D 32 Verbindungen parallel zu dem einzelnen Logikblock 8 aufweist.
In der vorliegenden Ausführungsform
besitzt, wie in 7 gezeigt ist, das Register
B individuelle Verbindungen zu jedem der Logikblöcke LB1 bis LB32, das Register
C besitzt individuelle Verbindungen zu jedem der Logikblöcke LB1
bis LB32 und das Register D besitzt individuelle Verbindungen zu
jeweils den Logikblöcken
LB1 bis LB32. Die Logikblöcke
LB1 bis LB32 sind im Aufbau identisch, und die Details davon, etwa
die Logikblöcke
LB1, LB2 und LB32, sind in 8 bis 11 gezeigt.
Jeder Logikblock enthält zwei
Funktionsblöcke,
um die Funktionen F, G, H, I nach Auswahl auszuführen, d. h. der Logikblock
LB1 enthält
Funktionsblöcke
LB1FB1, LB1FB2, der Logikblock LB2 enthält Funktionsblöcke LB2FB1,
LB2FB2, etc. Gleichzeitig werden die tatsächlichen Bits C31, D31 als Eingangswerte den Funktionsblöcken LB1FB1,
LB1FB2 des Logikblocks LB1 (8) zugeführt, die
tatsächlichen
Werte der Bits C30, D30 werden als
Eingangswerte den Funktionsblöcken
LB2FB1, LB2FB2 des Logikblocks LB2 (9) zugeführt, die tatsächlichen
Werte der Bits C29, D29 werden
als Eingangswerte den Funktionsblöcken LB3FB1, LB3FB2 des Logikblocks
LB3 (10), etc. zugeführt, bis alle Logikblöcke durchlaufen
sind, bis die tatsächlichen Werte
der Bits C0, D0 als
Eingabewerte den Funktionsblöcken
LB32FB1, LB32FB2 des Logikblocks LB32 (11) zugeführt werden.
-
In
jedem Logikblock wird ein zusätzlicher Eingangswert
für jeden
Funktionsblock bereitgestellt, wobei der Eingangswert auf Null gesetzt
ist für
einen Funktionsblock und auf 1 gesetzt ist für den anderen Funktionsblock.
Wie beispielsweise in 8 gezeigt ist, wird der zusätzliche
Eingangswert des Funktionsblocks LB1FB1 auf Null gesetzt, und der
zusätzliche Eingangswert
für den
Funktionsblock LBFB2 wird auf 1 gesetzt. Dies repräsentiert
beide möglichen
Werte für
ein einzelnes Bit in dem Register B.
-
Während des
Betriebs führt
der Funktionsblock LB1FB1 des Logikblocks LB1 die Funktion F mit
den Eingangswerten C31, D31,
B = 0 aus, während der
Funktionsblock LBFB2 des Logikblocks LB1 die Funktion F mit den
Eingabewerten C31, D31,
B = 1 (8) ausführt.
Gleichzeitig führt
der Funktionsblock LBFB1 des Logikblocks LB2 die Funktion F mit den
Eingangswerten C30, D30 B
= 0 aus, der Funktionsblock LB2FB2 des Logikblocks LB2 führt die Funktion
F mit den Eingangswerten C30, D30,
B = 1 (9) aus, der Funktionsblock LB3FB1 des Logikblocks
LB3 führt
die Funktion F mit den Eingangswerten C29,
D29, B = 0 aus, der Funktionsblock LB3FB2 des
Logikblocks LB3 führt
die Funktion F mit Eingangswerten C29, D29, B = 1 (10) aus,
usw. für alle
Logikblöcke,
wobei der Funktionsblock LB32FB2 des Logikblocks LB32 die Funktion
F mit den Eingangswerten C0, D0,
B = 1 ausführt
(11). Innerhalb jedes Logikblocks werden die Ausgabewerte des
Paares aus Funktionsblöcken
einem Multiplexer zugeleitet (beispielsweise in dem Logikblock LB1 werden
die Ausgangswerte von den Funktionsblöcken LB1FB1, LB1FB2 dem Multiplexer
M1 zugeführt,
in dem Logikblock LB2 werden die Ausgangswerten aus den Funktionsblöcken LB2FB1,
LB2FB2 dem Multiplexer M2 zugeführt).
Alle diese Operationen werden vor dem Zuführen dieser Daten zu dem Register
B ausgeführt,
dessen Daten, wie zuvor dargelegt ist, beim Erreichen des Registers
B verzögert werden
können.
Jedoch können
bei Erwartung des Eintreffens derartiger Daten im Register B die
Berechnungen auf der Grundlage beider Werte jedes einzelnen Bits
aus Daten, die dem Register B zugeführt werden, durchgeführt werden.
Wenn dann derartige Daten (32 Bit) tatsächlich das Register B erreichen
und darin gespeichert sind, wird der tatsächliche Wert des Bits 31 in
dem Register B als Eingangswert dem Multiplexer M1 zugeführt, der
auf der Grundlage dieses Eingangswertes einen Ausgabewert als einen
tatsächlichen
Ausgabewerte eines Funktionsblockes auswählt (der Funktionsblock LB1FB1
oder der Funktionsblock LB2FB2), wobei der Ausgabewert auf dem tatsächlichen
Wert des Bits B31 in dem Register B beruht,
d. h., wenn der tatsächliche
Wert des Bits B31 gleich Null ist, dann
wird der Ausgang aus dem Funktionsblock LB1FB1 als der Ausgangswert
des Logikblocks LB1 ausgewählt, wohingegen,
wenn der tatsächliche
Wert des Bits B31 gleich eins ist, der Ausgangswert
aus dem Funktionsblock LB1FB2 als der Ausgangswert des Logikblocks LB1
ausgewählt
wird. In ähnlicher
Weise beruht der Ausgangswert für
den zweiten Logikblock LB2 auf dem tatsächlichen Wert des Bits B30 in dem Register B, der tatsächliche
Ausgangswert des dritten Logikblocks LB3 beruht auf dem tatsächlichen
Wert des Bits B29 in dem Register B, usw.
-
Die
einzelnen Ausgabewerte der Logikblöcke LB1 bis LB32 bilden die
einzelnen Bits der 32-Bit-Daten, die den Addierer 7 aus 1 zugeführt werden,
die zuvor von dem Logikblock 8 geliefert wurden. Alle 16
Operationen des Durchlaufs 1 werden wie zuvor beschrieben durchgeführt (siehe
Ablauf von oben), wobei dies sich auf die Funktion F bezieht. Ähnlich wie
zuvor werden die 16 Operationen des zweiten Durchlaufs entsprechend
dem obigen Ablauf auf der Grundlage der Funktion G (12) durchgeführt. Der
dritte und der vierte Durchlauf werden in gleicher Weise unternommen,
wobei die Funktion H (13) bzw. die Funktion I (14)
wiederum gemäß dem obigen
Ablauf verwendet werden.
-
Man
erkennt, dass für
jeden Logikblock eine Funktion auf der Grundlage des tatsächlichen
Wertes des Eingangswertes C auf der Grundlage des tatsächlichen
Wertes des Eingangswertes aus dem Register D und beider möglicher
Werte des Eingangswertes aus dem Register B durchgeführt werden,
wobei der Ausgangswert eines Logikblocks auf der Grundlage des tatsächlichen
Wertes eines speziellen Bits des Registers B beim Anlegen an einen
Multiplexer bestimmt wird. Somit wurden Berechnungen, die alle Möglichkeiten
für die
Werte B31 bis B0,
die an dem Register B eintreffen können, ausgeführt sind,
ohne dass auf die eigentlichen Werte dieser Bits gewartet wird,
so dass diese dann in dem Register B vorhanden sind. Sobald die
tatsächlichen
Bits in dem Register B eintreffen, wird der Wert jedes Bits über einen direkten
Weg einem Multiplexer zugeführt.
Dies gilt es mit einem konventionellen System zu vergleichen, wobei
das Ausführen
einer Funktion lediglich dann ausgeführt wurde, nachdem die drei
tatsächlichen Werte
der Eingangswerte aus den Register B, C und D dem Logikblock 8 zugeführt sind.
In der vorliegenden Situation wird die Ausführung einer Funktion parallel
mit den zuvor beschriebenen Schritten ausgeführt, um Daten dem Register
B zuzuführen
und es wird lediglich ein einzelner Schritt des Auswählens des
Ausgangs auf der Grundlage des tatsächlichen Wertes eines Bits
in dem Register B ausgeführt,
und es muss lediglich ein einzelner Schritts des Auswählens des
Ausgangs auf der Grundlage des tatsächlichen Wertes des Bits in
dem Register B ausgeführt werden,
wobei ein direkter Weg von dem Register B zu einem Multiplexer verwendet
wird.
-
Die
vorhergehende Beschreibung der Ausführungsform der Erfindung ist
zum Zwecke der Darstellung und der Beschreibung angegeben. Es ist nicht
beabsichtigt, die Erfindung auf die genaue offenbarte Form einzuschränken. Andere
Modifizierungen und Variationen sind im Lichte der obigen Lehre möglich.
-
Die
Ausführungsform
wurde ausgewählt
und beschrieben, um die beste Darstellung der Prinzipien der Erfindung
und ihrer praktischen Anwendung zu ermöglichen, wodurch der Fachmann
in die Lage versetzt wird, die Erfindung in diversen Ausführungsformen
und mit diversen Modifizierungen einzusetzen, wie sie für die spezielle
betrachtete Anwendung geeignet sind. Es sollen alle derartigen Modifizierungen und
Variationen innerhalb des Schutzbereichs der Erfindung liegen, wie
sie durch die angefügten
Patentansprüche
definiert ist, wenn diese entsprechend ihrer berechtigten Breite
interpretiert werden.
-
Zusammenfassung
-
In
dem vorliegenden Verfahren zum Einrichten von Funktionen einer Verschlüsselungsmaschine werden
mehrere Logikblöcke
(LB1 bis LB32) vorgesehen, wobei jeder eine Funktion (F, G, H, I)
ausführt. Jede
Funktion wird auf Grundlage von drei Variablen (B, C, D) ausgeführt, wovon
jede einen ersten Wert oder einen zweiten Wert aufweisen kann. Die
Funktion wird so ausgeführt,
dass der erste Variablenwert (B) mit seinem ersten Wert ausgewählt wird,
und wobei die zweite und die dritte Variable (C, D) ihre tatsächlichen
Werte besitzen. Die Funktion wird erneut ausgeführt, wobei die erste Variable
(B) ausgewählt wird,
so dass diese ihren zweiten Wert aufweist, und wiederum besitzen
die zweite und die dritte Variable (C, D) ihre tatsächlichen
Werte. Ein tatsächlicher Wert
der ersten Variable (B) wird bestimmt und der Ausgangswert des Logikblocks
wird durch den tatsächlichen
Wert der ersten Variablen (B) festgelegt.