-
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: = 0
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 AB–1(mod M) ist, wobei im
Algorithmus 1 ein Übertrag
als Sn 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 Multiplizierer, 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 Multiplizierer 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.
-
In
der Patentschrift
DE
695 06 674 T2 ist ein modularer Montgomery-Multiplizierer offenbart,
der aus drei Schieberegistern, drei vor diesen angeordneten Multiplexern,
drei Registern, zwei mit diesen gekoppelten Multiplikationsschaltkreisen,
weiteren Multiplexern, einem Demultiplexer, seriellen Subtraktionsschaltkreisen,
seriellen Additionsschaltkreisen, Verzögerungsschaltkreisen und einem
Vergleichsergebnisspeicher schaltkreis in einer spezifischen Weise
aufgebaut ist, um eine spezielle Art der modularen Montgomery-Multiplikation
auszuführen.
-
In
der Offenlegungsschrift
WO
02/067108 A2 ist ein modularer Montgomery-Multiplizierer
offenbart, der eine Einrichtung zum Durchführen eines Multiplikations-Vorausschauverfahrens,
eine Einrichtung zum Multiplizieren, eine Einrichtung zum Durchführen eines
Reduktions-Vorausschauverfahrens, eine
weitere Einrichtung zum Multiplizieren, eine Summiereinrichtung
und eine Einrichtung zur Steuerung der vorgenannten Komponenten
derart umfasst, dass eine spezielle Art der modularen Montgomery-Multiplikation
ausgeführt
wird.
-
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-1 bezeichnet,
aus denen die Binärdarstellung
der Zahl B besteht.
-
Das
M-Register 130 speichert die Bitwerte mi 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 mi 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 bi 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 s0 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 bi 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 ci 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 175n 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 cAi-1. Der
Bitwert cAi-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 a1, b1,
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
s0 das niedrigstwertige Bit der Summe S,
c0 das niedrigstwertige Bit des Übertrags
C, bi 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 cAn-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 s0 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.