-
Die Erfindung bezieht sich auf einen
modularen Montgomery-Multiplizierer,
wie er insbesondere für
kryptografische Systeme mit öffentlichem
Schlüssel
benutzt wird, und auf ein zugehöriges
Multiplikationsverfahren.
-
Kryptografische Systeme werden in
Kommunikationsanwendungen mit intelligenten Karten (Smartcards),
IC-Karten und dergleichen benutzt, wobei eine Entwicklung von Systemen
mit geheimem Schlüssel
zu solchen mit öffentlichem
Schlüssel
zu beobachten ist. In kryptografischen Systemen mit geheimem Schlüssel teilen
sich zwei Nutzer einen identischen, geheimen Schlüssel, um
miteinander verschlüsselt
zu kommunizieren. Dies macht die Schlüsselverwaltung und die digitale
Unterschrift basierend auf kryptografischen Systemen mit geheimem Schlüssel relativ
aufwendig. In kryptografischen Systemen mit öffentlichem Schlüssel ist
hingegen ein geheimer Schlüssel
bei jedem Nutzer hinterlegt, und jeder Nutzer, der den öffentlichen
Schlüssel
eines anderen Nutzers kennt, kann mit diesem kommunizieren, was
den Prozess von komfortablen geheimen Kommunikationsvorgängen vereinfacht.
-
Beispiele von kryptografischen Systemen
mit öffentlichem
Schlüssel
umfassen das System von Ron Rivest, Adi Schamir und Len Adleman (RSA-System),
das Diffie-Hellman-System, das System mit Digitalsignaturalgorithmus
(DSA-System), das Kryptosystem vom elliptischen Kurventyp (ECC) und
dergleichen. Da kryptografische Systeme mit öffentlichem Schlüssel eine
modulare Multiplikation ausführen,
um eine modulare Exponentialoperation zu realisieren, brauchen solche
Systeme einen modularen Multiplizierer.
-
Ein modularer Multiplikationsalgorithmus vom
Montgomery-Typ ist als effektivster modularer Multiplikationsalgorithmus
bekannt und kann in Pseudocode durch folgenden Algorithmus 1 ausgedrückt werden:
Stimulus:
A
=( an–1 an–2...a1 a0)2 und
A < M
B =
(bn–1 bn–2...b1 b0)2 und
B < M
M =
(mn–1 mn–2...m1 m0)2,
mit M ungerade.
Antwort:
S = (Sn Sn–1 Sn–2...S1 S0)2 =
ABR–1(mod
M)
Verfahren:
S: =O
For i: = 0 to n – 1 do
qi: = s0 XOR(bi AND a0)
S:
= (S + biA + qiM)/2
endfor
-
Dies bedeutet, dass im Algorithmus
1 ein Endwert S, der als eine Summe in einer "for"-Schleife berechnet
wird, kongruent zu ABR–1(mod M) ist, wobei
im Algorithmus 1 ein Übertrag
als S„ bezeichnet ist.
Dabei bezeichnet "R–1" das Inverse von
R modular-multipliziert für "mod M". Wenn R = 2n ist, hat "(R × R–1)
mod M" den Wert
1.
-
Der modulare Montgomery-Multiplikationsalgorithmus
führt nur
Multiplikationen mit gegebenen Zahlen A, B und M ohne Verwendung
von Divisionen aus und ist schneller als andere Algorithmen. Deshalb
wird der modulare Montgomery-Multiplikationsalgorithmus häufig in
kryptografischen Systemen mit öffentlichem
Schlüssel
verwendet, die eine modulare Exponentialoperation erfordern.
-
Herkömmliche modulare Montgomery-Multiplizierer,
die auf einem modularen Montgomery-Multiplikationsalgorithmus basieren,
werden nach parallelen Multiplizierern, die einen Übertragpropagationsaddierer
als einen grundlegenden Akkumulator benutzen, und serielle Multiplizierer
unterschieden, die einen Kompressor, d.h. einen aus Volladdierern
aufgebauten Addierer mit Übertragbehalt,
mit drei Eingängen
und zwei Ausgängen
als einen grundlegenden Akkumulator benutzen.
-
Ein Übertragpropagationsaddierer
benötigt eine Übertragpropagationsverzögerungszeit
auf einer Basis von Takt zu Takt, um einen Übertrag bei jeder Addition
von mehreren Bits weiterzuleiten. Da der Übertragpropagationsaddierer
die Übertragpropagationsverzögerungszeit
nicht unbegrenzt erhöhen kann,
ist eine Multiplikation von Zahlen, die durch 32 oder mehr Bits
repräsentiert
werden, relativ schwierig. Der Übertragpropagationsaddierer
hat mit anderen Worten ein höheres
Leistungs-Verzögerungs-Produkt
als ein Übertragbehaltaddierer.
Es muss daher wiederholt eine Multiplikation einer 32-Bit-Zahl mit
einer 32-Bit-Zahl
ausgeführt
werden, um eine Multiplikation von Zahlen auszuführen, die durch 32 oder mehr
Bits repräsentiert
werden. Da ein serieller Multiplizieren, der einen Übertragbehaltaddierer
benutzt, einen 3-2-Kompressor,
d.h. einen solchen mit drei Eingängen
und zwei Ausgängen,
benutzt, d.h. Volladdierer, gibt es keine Schwierigkeiten wegen
einer Propagationsverzögerungszeit,
der serielle Multiplizieren mit dem Übertragbehaltaddierer ist jedoch
nicht ohne weiteres in Hardware zu implementieren. Der 3-2-Kompressor
vermeidet die Propagationsverzögerungszeit
mittels Durchführen
aller Additionen von jedem Bit bei einer der Bitanzahl entsprechenden
Anzahl von Taktpulsen. Mit anderen Worten müssen in einem modularen Montgomery-Multiplikationsalgorithmus,
wie dem Algorithmus 1, die vier Wortüberträge, S, bi,
A und qiM summiert werden. Der 3-2-Kompressor
kann jedoch nur drei Worte empfangen, so dass dementsprechend die Schwierigkeit
auftritt, dass die beiden Haupteingabeworte biA
und qiM vorab summiert werden müssen. Außerdem muss
der 3-2-Kompressor bei der Durchführung der Addition einen Übertrag,
S und eines der vier Worte, d.h. den Übertrag, S, biA
und qiM, empfangen, so dass ein 4:1-Multiplexer
benötigt
wird, um je eines der vier Worte auszuwählen.
-
Der Erfindung liegt als technisches
Problem die Bereitstellung eines modularen Montgomery-Multiplizierers
und eines zugehörigen
Montgomery-Multiplikationsverfahrens zugrunde, die sich mit relativ geringem
Aufwand realisieren lassen und mit denen eine hohe Betriebsgeschwindigkeit
und ein niedriges Leistungs-Verzögerungs-Produkt
ermöglicht
wird.
-
Die Erfindung löst dieses Problem durch die Bereitstellung
eines modularen Montgomery-Multiplizierers mit den Merkmalen des
Anspruchs 1 und eines Verfahrens zur Durchführung einer modularen Montgomery-Multiplikation mit
den Merkmalen des Anspruchs 8 oder 17.
-
Erfindungsgemäß wird eine Übertragbehalt-Addiererstruktur
(CSA-Struktur) verwendet,
bei der alle benötigten
Bitadditionen für
vier Worte, wie Übertrag,
S, biA und qiM,
ausgeführt
werden, während
Additionen in einer Übertragpropagationsaddiererstruktur
(CPA-Struktur) in einer Ausgangsstufe durchgeführt werden, so dass eine hohe
Betriebsgeschwindigkeit und ein kleines Leistungs-Verzögerungs-Produkt
erzielbar sind.
-
Vorteilhafte Weiterbildungen der
Erfindung sind in den Unteransprüchen
angegeben.
-
Vorteilhafte Ausführungsformen der Erfindung
sind in den Zeichnungen dargestellt und werden nachfolgend beschrieben.
Hierbei zeigen:
-
1 ein
Blockschaltbild eines modularen Montgomery-Multiplizierers,
-
2 ein
Blockschaltbild eines 4-2-Kompressors für den Multiplizierer von 1 mit zugehörigen peripheren
Schaltkreisen,
-
3 ein
Flussdiagramm zur Veranschaulichung des Betriebs des Multiplizierers
von 1,
-
4 ein
Blockdiagramm zur Veranschaulichung des Betriebs eines Übertragbehaltaddierers im
Multiplizierer von 1 und
-
5 ein
Blockdiagramm zur Veranschaulichung des Betriebs eines Übertragpropagationsaddierers
im Multiplizierer von 1.
-
1 zeigt
einen modularen Montgomery-Multiplizierer zur Berechnung eines Wertes
kongruent zu "ABR–1" (mod M). Hierbei
sind A und B Eingabewerte mit n Bit und R–1 ist
das Inverse von R modular-multipliziert für "mod M". Dazu beinhaltet der modulare Montgomery-Multiplizierer
ein A-Register 110, ein B-Register 120, ein M-Register 130, eine
logische Berechnungsschaltung 140 für biA,
eine logische Berechnungsschaltung 150 für qi,
eine logische Berechnungsschaltung 160 für qiM,
einen 4-2-Kompressor 170, ein S-Register 180 und ein C-Register 190.
-
Das A-Register 110 speichert die
Bitwerte ai der Zahl A, die kleiner als
der Modulus M ist, mit i als einer ganzen Zahl zwischen 0 und n – 1. Die
Zahl A bezeichnet ein Wort, das eine Eingabezahl mit n Bit repräsentiert,
während
ai das jeweilige Bit der Bits a0 bis
an–1 bezeichnet,
welche die Zahl A binär
darstellen.
-
Das B-Register 120 speichert die
Bitwerte bi der Zahl B, die kleiner als
der Modulus M ist, mit i als ganzer Zahl zwischen 0 und n-1. Die
Zahl B bezeichnet ein Wort, das eine Eingabezahl mit n Bit repräsentiert,
wobei bi das jeweilige Bit der Bits b0 bis bb–n bezeichnet,
aus denen die Binärdarstellung
der Zahl B besteht.
-
Das M-Register 130 speichert die
Bitwerte m; des Modulus M, der eine ungerade Zahl ist, mit i als
einer ganzen Zahl zwischen 0 und n-1. Der Modulus M bezeichnet ein
Wort, das eine Eingabezahl mit n Bit darstellt, wobei m; das jeweilige
Bit der Bits m0 bis mn–
1 bezeichnet, aus denen die Binärdarstellung des
Modulus M besteht.
-
Die logische Berechnungsschaltung
140 für biA berechnet jedes Bit von biA
durch Multiplizieren der Zahl A mit dem Bitwert bi.
Dementsprechend werden die Werte der n Bits bia0 bis bian–1 ausgegeben. Da
hierbei der Index i in der "for"-Schleife des Algorithmus
1 von 0 bis n – 1
läuft,
wird der Wert b; aus der Position des niedrigstwertigen Bits (LSB)
des B-Registers
120 erhalten, dessen Inhalt bei jeder Durchführung des Algorithmus in der "for"-Schleife nach rechts
verschoben wird, wie in 1 dargestellt.
-
Die logische Berechnungsschaltung
150 für qi berechnet den Wert qi,
mit i als einer ganzen Zahl zwischen 0 und n – 1, wie er in der "for"-Schleife des Algorithmus
1 benutzt wird, indem die Bool'sche
Logikgleichung "s0 XOR c0 XOR (bi UND a0)" gelöst wird.
Hierbei bezeichnen so das LSB einer Summe S, c0 das
LSB eines Übertrags
C, bi einen Bitwert der Zahl B und a0 das LSB der Zahl A. Da hierbei der Index
i in der "for"-Schleife des Algorithmus
1 von 0 bis n – 1
läuft,
wird der Wert b; von der Position des LSB des B-Registers 120 erhalten,
dessen Inhalt bei jeder Ausführung
des Algorithmus in der "for"-Schleife um 1 nach
rechts verschoben wird, wie in 1 dargestellt.
-
Die logische Berechnungsschaltung
160 für qiM berechnet jedes Bit von qiM
durch Multiplizieren des Modulus M mit dem Bitwert qi.
Dementsprechend werden die Werte der n Bits qim0 bis qimn–1 ausgegeben.
Da hierbei der Index i in der "for"-Schleife des Algorithmus
1 von 0 bis n – 1
läuft,
erhöht
er sich bei jeder Ausführung
des Algorithmus in der "for"-Schleife um 1, wie
in 1 dargestellt. Dementsprechend werden
die Werte der n Bits q0 bis qn–1 ausgegeben.
-
In einer vorteilhaften Realisierung
führt der 4-2-Kompressor
170 in Reaktion auf ein Übertragpropagationsaddierersignal
ONCPA n Additionen mit C, S, biA und qiM aus, um Zwischenberechnungswerte für jedes
Bit von S und C zu erhalten, was in einer Übertragbehaltaddiererstruktur
erfolgt. Dann summiert der 4-2-Kompressor 170 die Zwischenberechnungswerte,
um die endgültigen
Resultate für
S und C zu erhalten, was in einer Übertragpropagationsaddiererstruktur
erfolgt. Wenn sich das Übertragpropagationsaddierersignal
ONCPA in einem inaktiven Zustand befindet, z.B. in einem ersten
Logikzustand "0", arbeiten erste
und zweite Volladdierer gleichzeitig in der Übertragbehaltaddiererstruktur
und bilden dadurch eine Struktur mit vier Eingängen und zwei Ausgängen. Wenn
sich das Übertragpropagationsaddierersignal
ONCPA in einem aktiven Zustand befindet, z.B. in einem zweiten Logikzustand "1 ", arbeiten nur die
zweiten Volladdierer in der Übertragpropagationsaddiererstruktur,
wodurch eine Struktur mit drei Eingängen und zwei Ausgängen gebildet
wird.
-
Das S-Register 180 aktualisiert und
speichert die Bitwerte si von S, mit i als
einer ganzen Zahl zwischen 0 und n – 1. Mit anderen Worten bezeichnet S
ein Wort, das eine Zahl mit n Bit darstellt, die als Summe ausgegeben
wird, wobei si den jeweiligen Bitwert aller
Bits s0 bis sn–1 bezeichnet,
welche die Binärdarstellung
des Wortes S bilden. Das Wort S wird bei jeder Durchführung einer
Addition im Übertragbehaltaddierer
oder im Übertragpropagationsaddierer, die
im 4-2-Kompressor 170 enthalten sind, aktualisiert.
-
Das C-Register 190 aktualisiert und
speichert die Bitwerte ci von C, mit i als
einer ganzen Zahl zwischen 0 und n – 1. Mit anderen Worten bezeichnet C
ein Wort, das eine Zahl mit n Bit repräsentiert, die als Übertrag
ausgegeben wird, wobei ci den jeweiligen
Bitwert aller Bits c0 bis cn–1 bezeichnet,
aus denen die Binärdarstellung
des Wortes C besteht. Das Wort C wird bei jeder Durchführung einer
Addition im Übertragbehaltaddierer
oder Übertragpropagationsaddierer
aktualisiert, die im 4-2-Kompressor
170 enthalten sind.
-
2 veranschaulicht
eine vorteilhafte Realisierung des 4-2-Kompressors 170 von 1 und seine peripheren Schaltkreise detaillierter.
Wie daraus ersichtlich, umfasst der 4-2-Kompressor 170 erste und
zweite Volladdierereinheiten 171, 175 und eine Multiplexereinheit
173, wodurch ein Addierer mit einer Struktur mit vier Eingängen und
zwei Ausgängen
gebildet wird.
-
Alle ersten Volladdierer der ersten
Volladdierereinheit 171 summieren ihre zugehörigen Bitwerte, d.h. denjenigen
von biA, den Bitwert si+1 von
S und den Bitwert ci von C, um einen Übertrag
cAi und eine Summe sAi zu
erhalten. Der zugehörige
Bitwert von biA ist biai.
-
Alle Multiplexer in der Multiplexereinheit
173 geben selektiv entweder ihren zugehörigen Bitwert von qiM, den Übertrag
cAi–1 und
die Summe sAi oder den Bitwert si+1 von S, den Bitwert c; von C und den Bitwert
ci–1 von
C in Reaktion auf das Übertragpropagationsaddierersignal
ONCPA ab. Der zugehörige Bitwert
von qiM ist qiMi.
-
Wenn das Übertragpropagationsaddierersignal
ONCPA in einem inaktiven Zustand ist, d.h. im ersten Logikzustand „0", führt jeder
der zweiten Volladdierer der zweiten Volladdierereinheit 175 n Additionen
des Bitwertes qimi von
qiM, des Übertrags cAi–1 und
der Summe sAi aus, um Zwischenbitwerte si und ci von S bzw.
C zu berechnen. Wenn das Übertragpropagationsaddierersignal
ONCPA in einem aktiven Zustand ist, d.h. im zweiten Logikzustand „1", summiert jeder
der zweiten Volladdierer der zweiten Volladdierereinheit 175 den
Bitwert si+1 von S mit dem Bitwert ci von C und dem Bitwert ci–1 von
C, um die Endergebnisse von S und C zu erhalten.
-
Der Übertrag cAi–1 bezeichnet
den Übertrag eines
Bits, das sich an einer um ein Bit niedrigeren Stelle befindet als
das Bit des Übertrags
cAi, der von der ersten Volladdierereinheit
171 ausgegeben wird. Der Bitwert si+1 von
S bezeichnet die Summe eines Bits, das sich an einer um ein Bit
höheren
Stelle als der Zwischenbitwert si befindet,
der von der zweiten Volladdierereinheit 175 ausgegeben wird. Der
Bitwert ci–1 von
C bezeichnet den Übertrag
eines Bits, das sich an einer um ein Bit niedrigeren Stelle als
der Bitwert ci befindet, der von der zweiten
Volladdierereinheit 175 ausgegeben wird.
-
Wie in 2 dargestellt,
befinden sich die niedrigstwertigen Bits des Übertrags cAi–1 und
des Übertrags
ci+1 zum Zeitpunkt eines Taktpulses vor
Aktivierung des Übertragpropagationsaddierersignals ONCPA
im ersten Logikzustand, und das höchstwertige Bit der Summe si+1 ist gleich dem Bitwert cAn–1. Der
Bitwert cAn–1 ist
das höchstwertige
Bit des Übertrags
cAi, der von der ersten Volladdierereinheit
171 ausgegeben wird.
-
Die Betriebsweise des modularen Montgomery-Multiplizierers
gemäß der Ausführungsform
der 1 und 2 wird nachfolgend unter
Bezugnahme auf 3 ausführlicher
beschrieben.
-
Der erfindungsgemäße modulare Montgomery-Multiplizierer
umfasst, wie erläutert,
Register zum Speichern von Bitwerten ai,
bi, mi, ci und si, mit i als
einer ganzen Zahl im Bereich von null bis n – 1, die zu einem Wort A, einem
Wort B, einem Modulus M, einem Übertrag
C bzw. einer Summe S gehören, und
berechnet einen Wert kongruent zu „ABR–1 (mod M).
Dabei sind A und B Eingabezahlen mit n Bit, und R–1 ist
das Inverse von R modular multipliziert für „mod A".
-
Im Betrieb des modularen Montgomery-Multiplizierers
werden zunächst
in einem Schritt S311 die Zahlen A und B und der Modulus M empfangen.
In einem Schritt S313 werden Register, die den Parameter i und die
Summe S speichern, auf null zurückgesetzt
und initialisiert. Die Zahlen A und B sind kleiner als der Modulus
M, wobei M eine ungerade Zahl ist.
-
Danach bestimmt die logische Berechnungsschaltung
150 für
qi des modularen Montgomery-Multiplizierers
in Schritten S315, S317 und S319 einen Wert qi,
mit i als einer ganzen Zahl im Bereich zwischen null und n – 1, wie
er in der „for"-Schleife des Algorithmus
1 benutzt wird, durch Lösen
der Bool'schen Logikgleichung „s0 XOR c0 XOR (bi UND a0)". Hierbei bezeichnen
so das niedrigstwertige Bit der Summe S,c0 das
niedrigstwertige Bit des Übertrags
C, b; einen Bitwert der Zahl B und a0 das niedrigstwertige
Bit der Zahl A. Außerdem
multipliziert in den Schritten S315, S317 und S319 die logische
Berechnungsschaltung 140 für
biA die Zahl A mit dem Bitwert bi, um jedes Bit von biA
zu erhalten, und die logische Berechnungsschaltung 160 für qiM berechnet jedes Bit von qiM
durch Multiplizieren des Modulus M mit dem Bitwert qi.
Des weiteren führt
in den Schritten S315, S317 und S319 der 4-2-Kompressor 170 n Additionen
mit C, S, biA und qiM
aus, um Zwischenwerte für
jedes Bit von S und C zu erhalten, und zwar in einer Übertragbehaltaddiererstruktur,
die gebildet wird, wenn sich das Übertragpropagationsaddierersignal
ONCPA in einem inaktiven Zustand befindet, d.h. in einem ersten
Logikzustand „0".
-
4 veranschaulicht
im Blockdiagramm die Betriebsweise eines Übertragbehaltaddierers im erfindungsgemäßen modularen
Montgomery-Multiplizierer.
Wie aus den 3 und 4 ersichtlich, summiert in
den Schritten S315 und S317 jeder erste Volladdierer der ersten
Volladdierereinheit 171 seinen zugehörigen Bitwert von biA, den Bitwert si+1 von
S und den Bitwert ci von C, um den Übertrag
cAi und die Summe sAi zu
erhalten. Jeder zweite Volladdierer der zweiten Volladdierereinheit
175 führt
n Additionen mit seinem zugehörigen
Bitwert von qiM, der Summe sAi und
dem Übertrag
cAi–1 aus,
die durch die Multiplexereinheit 173 ausgewählt werden, um die Zwischenwerte
si und ci der Summe
S bzw. des Übertrags
C zu berechnen.
-
Wie in 2 dargestellt,
wird das vom Übertrag
C ausgegebene Bit in einen ersten, diesem Bit zugeordneten Volladdierer
eingegeben, das von der Summe S ausgegebene Bit wird in einen diesem
Bit zugeordneten ersten Volladdierer eingegeben, das von der Summe
S ausgegebene Bit wird in einen ersten Volladdierer eingegeben,
der einem Bit zugeordnet ist, das sich an einer um eine Bitstelle
niedrigeren Position als das Ausgabebit befindet, und eine in der „for"-Schleife des Algorithmus
1 enthaltene ½-Divisionsoperation
wird ausgeführt,
und zwar im Schritt S315 von 3.
Das niedrigstwertige Bit des Übertrags
cAi–1 befindet
sich im ersten Logikzustand „0". Mit anderen Worten
erzeugt der 4-2-Kompressor 170,
wenn sich das Übertragpropagationsaddierersignal
ONCPA in einem inaktiven Zustand befindet, die Übertragbehaltaddiererstruktur,
die eine Struktur mit vier Eingängen
und zwei Ausgängen darstellt,
und berechnet die Zwischenwerte von S und C unter Verwendung von
biA und qiM.
-
Nach Berechnung der Zwischenwerte
von S und C für
jedes Bit wird das Übertragpropagationsaddierersignal
ONCPA aktiviert und nimmt dann den zweiten Logikzustand „1" ein, siehe Schritt
S321. In Schritten S323 bis S327 summiert der 4-2-Kompressor 170
die berechneten Zwischenwerte von S und C, um die Endwerte von S
und C zu erhalten, und zwar in der Übertragpropagationsaddiererstruktur.
-
5 veranschaulicht
im Blockdiagramm die Betriebsweise des Übertragpropagationsaddierers
im erfindungsgemäßen modularen
Montgomery-Multiplizierer. Wie aus den 3 und 5 ersichtlich, summiert
die zweite Volladdierereinheit 175 im Schritt S323 den Bitwert si+1 von S, den Bitwert ci von C
und den Bitwert ci–1 von C, die von der
Multiplexereinheit 173 ausgewählt
werden, um die Endresultate von S und C zu berechnen. Wie in 2 dargestellt, ist das höchstwertige
Bit der Summe si+1 zum Zeitpunkt eines Taktes
vor Aktivierung des Übertragpropagationsaddierersignals
ONCPA gleich dem Bitwert cn–1. Das niedrigstwertige
Bit des Übertrags
ci–1 befindet
sich im ersten Logikzustand „0".
-
Im Schritt S325 werden der Bitwert
si+1 von S, der Bitwert ci von
C und der Bitwert ci–1 von C für eine gewisse
Zeitspanne, und zwar gleich dem Produkt aus einer Propagationsverzögerungszeit
für ein
Bit mit der Anzahl n an Bits, in der Übertragpropagationsaddiererstruktur
summiert. Die Propagationsverzögerungszeit
für ein
Bit besteht aus der Propagationsverzögerungszeit der zweiten Volladdierereinheit 175 und
der Verzögerungszeit
jedes der 2:1-Multiplexer der Multiplexereinheit 173. Mit
anderen Worten ist, wenn sich das Übertragpropagationsaddierersignal
ONCPA in einem aktiven Zustand befindet, eine Übertragpropagationsaddiererstruktur
mit drei Eingängen
und zwei Ausgängen
realisiert, und die Zwischenwerte von S und C werden in dieser Struktur mit
drei Ein gängen
und zwei Ausgängen
summiert, um die Endwerte von S und C zu berechnen.
-
Wie oben beschrieben, beinhaltet
der erfindungsgemäße modulare
Montgomery-Multiplizierer Register, welche die Bitwerte ai, bi, mi,
ci und si, mit i als
einer ganzen Zahl zwischen null und n – 1, speichern, die zu einem
Wort A, einem Wort B, einem Modulus M, einem Übertrag C bzw. einer Summe
S gehören,
und berechnet einen Wert kongruent zu „ABR–1" (mod M). Hierbei
sind A und B Eingabezahlen mit n Bit, und R–1 ist
das Inverse von R modular multipliziert für „mod A". Die logische Berechnungsschaltung
140 für
biA berechnet jedes Bit von biA durch
Multiplizieren der Zahl A mit dem Bitwert bi. Gleichzeitig
berechnet die logische Berechnungseinheit 150 für qi den
Wert qi durch Lösen der Bool'schen Logikgleichung „s0 XOR c0 XOR (bi UND a0)". Hierbei sind so
das niedrigstwertige Bit der Summe S, c0 das niedrigstwertige
Bit des Übertrags
C, bi ein Bitwert der Zahl B und a0 das niedrigstwertige Bit der Zahl A. Die
logische Berechnungsschaltung 160 für qiM
berechnet jedes Bit von qiM durch Multiplizieren
des Modulus M mit dem Bitwert qi. Der 4-2-Kompressor 170 führt in Reaktion
auf das Übertragpropagationsaddierersignal
ONCPA n Additionen von C, S, biA und qiM aus, um berechnete Zwischenwerte für jedes Bit
von S und C zu erhalten, und zwar in einer Übertragbehaltaddiererstruktur.
Dann summiert der 4-2-Kompressor 170 die berechneten Zwischenwerte,
um die Endresultate für
S und C zu erhalten, und zwar in einer Übertragpropagationsaddiererstruktur. Die
Endresultate von S und C werden zum S- bzw. C-Register 180, 190
ausgegeben.
-
Wie oben erläutert, beseitigt bzw. reduziert der
erfindungsgemäße modulare
Montgomery-Multiplizierer die Propagationsverzögerungszeit, indem eine Übertragbehaltaddiererstruktur
(CSA-Struktur) verwendet wird, bei der alle Additionen, die für jedes Bit
benötigt
werden, zuerst für
vier Worte, z.B. C, S, biA und qiM, durchgeführt werden, wonach Additionen in
einer Übertragpropagationsaddiererstruktur (CPA-Struktur)
erst in einer abschließenden
Ausgangsstufe ausgeführt
werden. Auf diese Weise werden eine hohe Betriebsgeschwindigkeit
und ein geringes Leistungs-Verzögerungs-Produkt
erzielt, was das Leistungsvermögen
eines modularen Montgomery-Multiplikationsalgorithmus erhöht.
-
Es versteht sich, dass die Erfindung
außer den
gezeigten noch zahlreiche weitere Ausführungsformen umfasst. So ist
z.B. in 1 die Verwendung eines
einzigen 4-2-Kompressors angegeben. Die Erfindung ist jedoch hierauf
nicht beschränkt,
sondern umfasst auch Ausführungsformen
mit einem beliebigen t-s-Kompressor mit t > 3 und s > 1, oder mit einer Mehrzahl solcher Kompressoren.
Des weiteren ist die Erfindung nicht auf die Verwendung von drei
Registern A, M und B beschränkt.
Vielmehr können
andere Register in Kombination mit einem Kompressor vorgesehen sein,
der mehrere Eingänge
und Ausgänge
aufweist. Außerdem
ist eine Wurzel bei den oben beschriebenen Ausführungsbeispielen nicht auf einen
bestimmten Wurzelwert beschränkt.