[go: up one dir, main page]

DE69424325T2 - Gerät zum Ausführen einer Division - Google Patents

Gerät zum Ausführen einer Division

Info

Publication number
DE69424325T2
DE69424325T2 DE69424325T DE69424325T DE69424325T2 DE 69424325 T2 DE69424325 T2 DE 69424325T2 DE 69424325 T DE69424325 T DE 69424325T DE 69424325 T DE69424325 T DE 69424325T DE 69424325 T2 DE69424325 T2 DE 69424325T2
Authority
DE
Germany
Prior art keywords
value
dbk
words
division
dividend
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69424325T
Other languages
English (en)
Other versions
DE69424325D1 (de
Inventor
Jean Pierre Bournas
Robert Naciri
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69424325D1 publication Critical patent/DE69424325D1/de
Application granted granted Critical
Publication of DE69424325T2 publication Critical patent/DE69424325T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Gerät zum Ausführen einer Division eines Dividenden A durch einen Divisor D, gebildet von "n" Wörtern, die für eine Basis "b" stehen, um einen Quotienten Q und einen Rest R zu erhalten.
  • Die Erfindung betrifft auch eine mit solch einem Gerät versehene Chipkarte oder Mikroschaltungskarte.
  • Ein solches Gerät findet großen Einsatz in Bereichen, wo Divisionen großer Zahlen erforderlich sind. Allerdings gibt es einen bevorzugten Anwendungsbereich für die Erfindung: Den Bereich der Mikroschaltungskarten unter Verwendung des RSA- Kodierverfahrens. Dieses Verfahren, beschrieben in dem US-A 4405829 von Rivest, Shamir und Adleman in 1978, ist ein System mit einem öffentlichen Schlüssel "e". Es gründet auf dem Problem der Faktorisierung einer großen Zahl "N", die das Produkt von zwei anfänglichen Zahlen "p" und "q" ist.
  • Die Basisoperation dieser Kodierung wird folgendermaßen definiert.
  • Der zu kodierenden Nachricht wird die Form einer in Blöcke M fester Länge getrennten Kette von Zahlen gegeben, kleiner als N. Jeder Block ergibt ein Kryptogramm C mit Hilfe eines Exponenten "e", der öffentlich bekannt sein kann und eine Zahl ist, die bei der Durchführung der folgenden Operation weder "p - 1" noch "q - 1" dividiert:
  • C = Me (mod N)
  • wobei (mod N) anzeigt, daß die Operation nach einem Modul N durchgeführt wird.
  • Zum Wiederherstellen der Nachricht muß der Empfänger einen geheimen Exponenten "d" kennen und die Operation durchführen:
  • M = Cd (mod N), d. h.:
  • M = Mde (mod N)
  • Eine gängig, für die N bildende Zahl binärer Elemente verwendete Größe ist 512, was etwa 155 Dezimalzahlen entspricht, dann nimmt man für "p" und "q" eine Länge der Größenordnung von 256 binären Elementen. Geräte, die dieses Kodierverfahren umsetzen, verwenden die Theorie des chinesischen Rests, die es ermöglicht, eine über 512 binäre Elemente reichende Exponentialgröße in zwei Exponentialgrößen zu 256 Elementen in bezug auf jeden dieser Faktoren umzuwandeln. Die Faktoren "p", "q" werden ihrerseits mit "N" ersetzt, und die Potenzierungsoperationen nach den Moduln "p" und "q" vorgenommen.
  • In der europäischen, unter der Nr. EPA 0 443 679 veröffentlichten Patentanmeldung beschreibt man die Art, wie diese Potenzierungen durchgeführt werden. Diese Lehren wurden in der von Philips hergestellten Mikrosteuerung 83C852 umgesetzt. Die Potenzierungen werden mit Moduln durchgeführt, die normalisierte Zahlen sind. Diese Normalisierung besteht im Reservieren von drei Bytes, die in der Folge der Berechnungen verwendet werden. Diese Anmeldung schlägt jedoch Maßnahmen vor, wenn die Zahlen nicht normalisiert sind. Dies beinhaltet praktisch, daß zwei Sorten Berechnungsarten vorzukehren sind, eine erste für die normalisierten Zahlen und eine zweite für die nicht normalisierten Zahlen. Einerseits ist dieses andere Verfahren weitaus weniger an die Struktur der besagten Mikrosteuerung angepaßt und führt zu einer Rechenzeit, die lang sein kann, und andererseits belasten die zwei vorhandenen Verfahren den Speicher des Programms.
  • Hier findet die Erfindung eine wichtigen Einsatz, indem sie die Normalisierung aller vorgeschlagenen Zahlen N ermöglicht. Diese werden mit einem Normalisierungskoeffizienten Multipliziert, woraufhin am Ende des Potenzierungsvorgangs eine Division durch diesen selben Koeffizienten vorgenommen wird.
  • Die vorliegende Erfindung schlägt ein Gerät der in der Einleitung von Anspruch 1 aufgeführten Art vor, die besonders gut für die Mikrosteuerung des vorgenannten Typs geeignet ist und es folglich ermöglicht, beliebig große Zahlen als Modul zu verwenden und gleichzeitig eine zufriedenstellende Verarbeitungsgeschwindigkeit zu liefern.
  • Das der Beschreibung im Anspruch entsprechende Gerät ist daher bemerkenswert, da es eine Bestimmungsvorrichtung für Q enthält, um folgende Operation durchzuführen:
  • A + Q'dbk = Q" · bn + k + S · bk + R', wobei dbk = bn + k - D mit k ≥ 1
  • damit der Wert S, der als Separator dient, für einen Wert Q' Null wird, damit Q" den Wert von Q, und R' den Wert von R annimmt.
  • Die folgende, von den beigefügten Zeichnungen begleitete, als nicht begrenzendes Beispiel gegebene Beschreibung wird leicht verständlich machen, wie die Erfindung umgesetzt werden kann.
  • Fig. 1 zeigt die Struktur eines Geräts, in dem die Erfindung umgesetzt wird.
  • Fig. 2 zeigt sehr schematisch die Funktionsweise der Erfindung.
  • Fig. 3 ist ein Organigramm der Funktionsweise des Geräts nach einer vorgezogenen Durchführungsform der Erfindung.
  • Das Gerät von Fig. 1 besteht aus einem Mikroprozessor 1, einem aktiven Speicher 2, versehen mit einem Eingang für AD-Adressenkode und einem Zugang für den Eingang und den Ausgang der DT-Daten, einem Festspeicher 3 mit insbesondere den Funktionsinstruktionen zur Umsetzung der Erfindung und zugleich einem EEPROM- Speicher zum Enthalten verschiedener Daten 5, insbesondere im Rahmen des beschriebenen Beispiels eines Normalisierungswerts des Divisors λ und des Werts dbk. In dieser Figur sind diese verschiedenen Elemente über eine im Multiplexmodus arbeitende BUS-Leitung verbunden, d. h., sie befördert zu bestimmten Zeitpunkten Daten und zu anderen Adressenkodes. Das Gerät von Fig. 1 enthält zudem eine Recheneinheit 8 zur Vornahme von Multiplikationen mit oder ohne Kumulation. Diese Einheit 8 enthält einen Satz von vier Eingängen a0, a1, a2 und a3 zum Erhalt eines in den Registern 10, 11, 12 und 13 enthaltenen Operanden zu vier Bytes, einen an die Register 14 und 15 für einen Multiplikanden mit mehreren Bits verbundenen Eingang xi, einen mit den Registern 17 und 18 für mehrere zu addierende Bytes verbundenen Eingang Ai und einen Ausgang RO zum Liefern des Ergebnisses. Es kommen verschiedene Operanden aus dem aktiven Speicher 2. Je nach dem Eingang, dem diese Operanden zugeführt werden, greift man auf die Indexregister 21, 22 und 23 zurück. Die Register 21 und 23 sind mit den Dekrementalorganen 25 und 26 verbunden. Das Register 21 ist in bezug auf den Operanden dem Eingang Ai zuzuführen, das Register 22 auf die Operanden den Eingängen a1, a2, a3 und a4 zuzuführen und das Register 23 auf den Operanden dem Eingang xi zuzuführen. Ein anderes Indexregister 24 mit seinem verbundenen Dekrementalorgan 28 bezieht sich auf die Position im Speicher 2, um das am Ausgang RO gelieferte Ergebnis einzuordnen. Die in RPL-Pipelineregistern angeordneten Register 40, 41, 42 und 43 sind vorgesehen, um die am Ausgang RO verfügbaren Bytes ebenfalls zu erhalten. Auf ähnliche Art wie bei Speicher 2 sind die mit den Dekrementalorganen 55 und 56 verbundenen Indexregister 51 und 52 an den Speicher 5 angeschlossen. Auch wird ein zusätzliches Register 58 zum Adressieren verwendet.
  • Die Recheneinheit 8 wird über verschiedene Zwischenregister 60, 62, 64, 66 und 68 gesteuert. Die Register 71, 73, 75, 77 werden direkt von der Recheneinheit 8 verwaltet. Das Register 60 ist ein Register, in dem die Steuerungen für die Einheit 8 und die Zustandsinformationen bezüglich der von dieser Einheit vorgenommenen Operationen gespeichert werden. Das Register 62 wird für die Steuerung der Einheit 8 verwendet. Das Register 64 dient zum Zählen der Anzahl Bytes des vom Ausgang RO gelieferten Ergebnisses. Das Register 66 steuert den Beginn des Schreibens in den Speicher 2 der am Ausgang RO verfügbaren Informationen und bietet die Möglichkeit, und das Schreiben in den Speicher einer gewissen Anzahl Bytes zu sperren, während das Register 68 vorgesehen ist, um die Grenzwerte der den Eingängen Ai und xi zugeführten Operanden festzulegen, d. h. deren Anzahl Bytes. Weitere Details können in der Anleitung der aufgeführten Mikrosteuerung 83C852 gefunden werden.
  • Es wird vorgeschlagen, mit diesem Gerät eine Division eines von einer großen Anzahl "m" gebildeten Dividenden A durch einen Divisor D mit vorzugsweise n ≤ m vorzunehmen. Das gewünschte Ergebnis ist der Quotient Y und der Rest R.
  • Gemäß der Erfindung wurde eine Bestimmungsvorrichtung von Q zur Durchführung folgender Operation vorgesehen:
  • A + Q'dbk = Q" · bn + k + S · bk + R' (1)
  • wobei dbk = bn + k - D mit k ≥ 1, so daß der Wert S, der als Separator dient, für einen Wert Q' Null wird, damit Q" den Wert von Q, und R' den Wert von R annimmt. Nach einem Aspekt der Erfindung wurden bestimmte Speicherplätze vorgesehen, die ausreichen, um den Dividenden A zu enthalten und in denen die verschiedenen mit der Relation (1) einhergehenden Operationen durchgeführt werden, ohne zu sehr zusätzlichen Platz zu benötigen. Diese Operationen werden in Mulitpräzision durchgeführt, d. h. mit dem aufeinanderfolgenden Operieren auf Wörtergruppen des von "m" Wörtern gebildeten Dividenden oder, im Rahmen des beschriebenen Beispiels, von "m" Bytes mit den Vielfachen bJ der Menge dbk. Man beginnt mit den größten Stellenwerten, was der Multiplikation von dbk mit bJ gleichkommt, mit J = m - n, ihn also zu den größten Stellenwerten zu versetzen. Das Ergebnis der Operation (1) wird ein Wert Q", der die höchsten Stellenwerte des Quotienten darstellt. Diese letztere Menge wird zum Wert qs, wenn der Wert eines über "k" Bytes reichenden Separators S Null wird (siehe Zeile "a" der Fig. 2). In der Praxis wird der Separator aus einem einzigen Byte gebildet. Dann wird dasselbe Verfahren wiederholt, indem der Wert von dbk als ein Wert u · n erklärt wird, abhängig von der Kapazität des Multiplikationsorgans als Teil des Rechenorgans 8. Dieser Wert kann den Wert x + y annehmen, wenn die Multiplikation über "x" und "y" Bytes enthaltende Operanden vorgenommen wird. Es treten nacheinander verschiedene Komponenten des Quotienten qγ, qβ und qα auf, was respektive auf den Zeilen "b", "c" und "d" der Fig. 1 dargestellt ist.
  • Die Erfindung beruht auf folgenden Betrachtungen.
  • Kommen wir zuerst auf die Teilungsformel zurück:
  • A = Q · D + R; 0 &le; R < D
  • wobei A der über "m" Wörter einer Basis "b" kodierte Dividend ist,
  • wobei D der über "n" Wörter der Basis "b" kodierte Divisor ist,
  • sprich k Ganzzahl &ge; 1:
  • Das Komplement zu D in ZBn + k ist mit dbk bezeichnet.
  • Somit hat man:
  • A + Q · dbk = Qbn + k + r
  • Wenn man das globale Format des Akkumulators betrachtet, in dem sich das Ergebnis A + Q · dbk befindet, kommt ein Separator (S) zum Vorschein:
  • Wenn ein (Default-)Bewertungsfehler des exakten Quotienten q gemacht wird:
  • = Q - &delta;: bewerteter Quotient
  • dann: A + · dbk = Q · bn + k - &delta; · dbk + R
  • Der Separator ist nicht Null. Um &delta; zu bestimmen genügt es, den Separator mit aufeinanderfolgenden Additionen von dbk mit dem Akkumulator zu annullieren. Dieses Verfahren kann allerdings anhand der folgenden Beobachtung verbessert werden:
  • - wenn v&sub0; der im Separator vorhandenen Wert ist,
  • dann: A + · dbk = &alpha;&sub0;bn + k + v&sub0;bn + r&sub0;
  • unter der Beobachtung, daß: dbk = (bk - 1)bn +
  • wobei das Komplement zu D in einem Format mit n Wörtern darstellt; dann hat man durch Addition von v&sub0; · dbk:
  • A + ( + v&sub0;)dbk = (&alpha;&sub0; + v&sub0;)bn + k + v&sub0; + r0
  • Vorausgesetzt, daß: v&sub0; + r&sub0; = v&sub1;bn + r&sub1;
  • stellt man fest, daß:
  • (a) v&sub1; < v&sub0;: der Wert im Separator wird geringer,
  • (b) die Bewertung des Quotienten wird präziser.
  • Nach einer vorgezogenen Durchführungsform der Erfindung wurde zudem ein Zeichentest vorgesehen. Er besteht im Hinzufügen des Werts dbk auf der Ebene des Separators, damit keine Vermehrung des Übertrags stattfinden kann, oder anders gesagt, daß man sich versichert, daß die Komponente des Quotienten nicht zu sehr unterbewertet wurde.
  • Das Organigramm der Fig. 3 ist nach einer jede Aktion in einem Rechteck darstellenden Norm aufgebaut. Die fünfeckigen Felder stellen einen Test dar, wenn der Test positiv ist, geht man zum darunterliegenden Rechteck, ansonsten zum rechts daneben liegenden Feld über. Die verschiedenen Felder zeigen die nachstehend erklärten Aktionen.
  • Es wird vorausgesetzt, daß der aus M Bytes gebildete Dividend an einem Platz des Speichers 2 liegt, in der folgenden Erläuterung mit Accu 6M,1> bezeichnet. Diese Kennzeichnung bedeutet, daß die in den geschweiften Klammern stehenden, von einem Beistrich getrennten Bytes zu betrachten sind. Hier sind folglich alle Bytes ab M als die größten Stellenwerte bis zum Byte 1 geringen Stellenwerts zu betrachten. Die M Bytes Accu 6M,1> werden von den Indexregistern 21 und 24 indexiert. Auch wird vorausgesetzt, daß der Divisor, oder besser der Wert dbk, im EEPROM-Speicher vorhanden ist; dieser Wert wird aus 4 + K Bytes gebildet (wobei K die Anzahl Bytes im Separator); er wird vom Register 52 angezeigt. Schließlich wird vorausgesetzt, daß der Normalisierungskoeffizient &lambda; des Divisors D ebenfalls im EEPROM-Speicher vorhanden ist, wobei dieser jedoch von 51 angezeigt wird. Der Koeffizient &lambda; wird definiert durch:
  • &lambda; = MAX 6 · 0ù; x · D # bn + k> , wobei ù sämtliche positiven Ganzzahlen bezeichnet
  • K1: Bezeichnet die Aktion, die darin besteht, einen Wert I, der die Anzahl Schritte im Algorithmus darstellt, an einen als Zähler dienenden Platz des Speichers 2 zu bringen. Zum Bestimmen dieser Zahl I wird der Divisor in Gruppen zu vier Bytes aufgeteilt, was der Länge der Multiplikanden entspricht, die der Multiplikationsoperation entsprechen, die die Recheneinheit 8 durchführen kann.
  • K2: Ist die Aktion, die die auf der Seite des höchsten Stellenwerts verbleibenden Bytes der Vierergruppe auf Null stellt. Die Register 23, 21 und 24 zeigen zu dem Oktett Accu 64I-7> .
  • K3: Man testet, ob alle Schritte durchgeführt wurden.
  • K10: Bezeichnet die aktuellen Divisionsoperationen.
  • K11: Zuerst werden die vier Bytes des Normalisierungskoeffizienten &gamma; in die vier RPL- Register gebracht; diese Bytes gehen durch die Einheit 10 mittels einer Anweisung, die eine Multiplikation mit einem Kumulationsoperanden steuert, der &lambda; ist und den Multiplikanden mit Hilfe des Registers 68 auf einen Wert Null festlegt.
  • K13: Acht der Bytes (der größten Stellenwerte des Dividenden, beginnend beim ersten Schritt), die in A 6I,4I-7> enthalten sind, werden multipliziert. Das im Prinzip aus 12 Bytes gebildete, hier mit UC 612,1> bezeichnete Resultat geht durch das RPL- Register.
  • K15: Von diesen 12 Bytes werden nur 4 beibehalten, d. h. UC 611,8> . Das Byte höchsten Stellenwerts UC 612> wird, um eine korrekte Ausrichtung zu erhalten, entfernt. UC 611,8> wird dann in das RPL-Register übertragen. Es ist zu bemer ken, daß die in den Feldern K11 und K13 gezeigten Operationen außerhalb der Recheneinheit keinen vorgekehrten Zwischenspeicher benötigen. Diese Bytes UC 611,8> bilden einen Wert des angenäherten Quotienten .
  • K17: Der im RPL-Register verfügbare angenäherte Quotient wird jetzt durch die Addition von · dbk zur Verminderung des Akkumulators verwendet. Es ist zu bemerken, daß der angenäherte Quotient im RAM-Speicher nach den K Separationsbytes auftritt.
  • K19: Aus Accu wird der Separator entnommen, um ihn den Eingängen RPL zuzuführen. Man beachte die vor dem Separator übertragenen 0,0,0.
  • K21: Der Wert dieses Separators wird mit Null verglichen. Solange dieser Separator nicht Null ist, werden die Operationen des Felds K23 ausgeführt, das selbst wiederum die Felder K25 und K27 beinhaltet.
  • K25: Der Separator wird mit dbk multipliziert und Accu hinzugefügt.
  • K27: Der Separator wird erneut entnommen und RPL zugeführt. Dies wird fortgesetzt, solange der Separator nicht Null ist.
  • K29: Es wird der Zeichentest gestartet, indem dbk dem Inhalt von Accu zugefügt wird, und das Ergebnis wird in die fiktiven Arbeitsbereiche UC 66,1> gebracht, denn tatsächlich wird nur der Bereich UC66> für das nächste Feld berücksichtigt.
  • K31: Das höchste, den Übertragwert enthaltende Byte wird am Ende vom Test in das RPL-Register zurückgebracht.
  • K33: Hier führt man den Test durch, solange dieser Inhalt ungleich 0 ist, führt man die in Feld K35 gezeigte Operation durch.
  • K35: Der Wert von dbk wird mit den Inhalten von Accu addiert.
  • K37: Der Wert von I wird dekrementiert, um gegebenenfalls die Operation von Feld K10 nochmals durchzuführen.
  • Es folgt ein Beispiel einer im Dezimalsystem durchgeführten Division. Der Dividend ist 99145360 und der Divisor 80. Die Multiplikation wird vorausgesetzter Weise über 2 · 2 Stellen vorgenommen, weshalb man ausdrücklich zuläßt, daß die Kapazität des RPL-Registers ebenfalls zweistellig, und der Separator nur einstellig ist. Der Normalisierungskoeffizient des Divisors ist derart, daß &lambda; · D = 960, d. h. &lambda; = 12 und dbk = 920. ANHANG 1 BEISPIEL MIT BASIS 10 (DEZIMAL) ANHANG 1 (Fortsetzung) ANHANG 1 (Fortsetzung)

Claims (4)

1. Gerät zum Ausführen einer Division eines Dividenden A, gebildet von "m" Wörtern, durch einen Divisor, gebildet von "n" Wörtern, wobei die Wörter eine Basis "b" bilden und das Gerät vorgesehen ist, um einen Quotienten Q und einen Rest R zu liefern und mindestens versehen ist mit:
- einem Speicher zum Enthalten von mindestens "m" Dividenden A
- Addiermitteln zum Aufstellen eines Wertes Q' mit dem Durchführen der Operation: A + Q'dbk, wobei dbk = n + k - D, mit k Ganzzahl größer oder gleich 1, bis zum Auftreten eines Werts S Null, in dem sich folgendermaßen darstellenden Ergebnis:
Q" · bn + k + S · bk + R',
wobei Q" dann der Wert Q und R' des Wertes R für S = 0 ist.
2. Gerät zum Ausführen einer Division des Dividenden A nach Anspruch 1, gebildet aus "m" Wörtern, die für eine Basis "b" stehen, durch den Divisor D, versehen mit einem aktiven Speicher, einem Multiplikationsorgan, versehen mit einem ersten Eingang für "x" Wörter eines Multiplikanden, einem zweiten Eingang für "y" Wörter eines Multiplikanden, dadurch gekennzeichnet, daß der besagte aktive Speicher bestimmte Plätze enthält, um mindestens die "m" Wörter des Dividenden zu enthalten und mit Kumulationsmitteln versehen ist, um diesen Plätzen ein Vielfaches einer Menge dbk · bJ hinzuzufügen, von dem besagten Multiplikationsorgan erarbeitet, Testmitteln, um eine Angabe des Werts Null eines Separators S zu machen, von "k" und von "J" an dem besagten Platz definiert, und zum Aktivieren der Kumulationsmittel, bis die besagten Testmittel die besagte Anzeige liefern, und Dekrementierungsmitteln, um den Wert J von x + y bei jeder Anzeige zu dekrementieren, und daß am Ende der Dekrementierung der Rest der Division an den "n" letzten Plätzen enthalten ist und der Quotient vor dem "n + k"-ten Platz am Ende der Dekrementierung von "J".
3. Gerät zu Ausführen einer Division nach Anspruch 2, dadurch gekennzeichnet, daß die Testmittel eine Prüfphase durchführen, die darin besteht, eine Menge dbk · bJ zu der in den Teilen des von J definierten Platzes enthaltenen Menge hinzuzufügen und zu prüfen, ob dieser Zusatz einen Übertrag liefert und diese Menge dbk · bJ tatsächlich hinzuzufügen, wenn ein Übertrag geliefert wurde.
4. Mit einem Gerät nach den Ansprüchen 1 bis 3 versehene Chipkarte.
DE69424325T 1993-02-08 1994-02-02 Gerät zum Ausführen einer Division Expired - Fee Related DE69424325T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9301357A FR2701323A1 (fr) 1993-02-08 1993-02-08 Dispositif pour effectuer une division.

Publications (2)

Publication Number Publication Date
DE69424325D1 DE69424325D1 (de) 2000-06-15
DE69424325T2 true DE69424325T2 (de) 2000-11-23

Family

ID=9443832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69424325T Expired - Fee Related DE69424325T2 (de) 1993-02-08 1994-02-02 Gerät zum Ausführen einer Division

Country Status (5)

Country Link
US (1) US5644639A (de)
EP (1) EP0610996B1 (de)
JP (1) JPH06259232A (de)
DE (1) DE69424325T2 (de)
FR (1) FR2701323A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793659A (en) * 1996-10-15 1998-08-11 United Microelectronics Corporation Method of modular reduction and modular reduction circuit
TW419925B (en) * 1998-01-27 2001-01-21 Mitsubishi Electric Corp Method and apparatus for arithmetic operation and recording medium thereof
JP2000132376A (ja) * 1998-10-27 2000-05-12 Fujitsu Ltd 剰余演算方法,乗算剰余演算方法,剰余演算装置,乗算剰余演算装置及び記録媒体
US6604121B1 (en) * 1999-05-07 2003-08-05 Seagate Technology Llc Digital division device and method using a reduced-sized lookup table
US7233663B2 (en) * 2001-10-29 2007-06-19 Safenet, Inc. Key generation performance improvement
DE10205713C1 (de) * 2002-02-12 2003-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses aus einer Division
DE10219161A1 (de) * 2002-04-29 2003-11-20 Infineon Technologies Ag Vorrichtung und Verfahren zum Umrechnen eines Terms
US7321916B2 (en) 2003-07-28 2008-01-22 Intel Corporation Methods and apparatus for extracting integer remainders
US9189581B2 (en) * 2012-07-30 2015-11-17 Synopsys, Inc. Equivalence checking between two or more circuit designs that include division circuits
US8732637B2 (en) * 2012-07-30 2014-05-20 Synopsys, Inc. Formal verification of bit-serial division and bit-serial square-root circuit designs

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4351982A (en) * 1980-12-15 1982-09-28 Racal-Milgo, Inc. RSA Public-key data encryption system having large random prime number generating microprocessor or the like
US4514592A (en) * 1981-07-27 1985-04-30 Nippon Telegraph & Telephone Public Corporation Cryptosystem
US4949293A (en) * 1987-09-25 1990-08-14 Kabushiki Kaisha Toshiba Method and apparatus for computing residue with respect to arbitrary modulus
US5144574A (en) * 1989-01-30 1992-09-01 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
FR2658932A1 (fr) * 1990-02-23 1991-08-30 Koninkl Philips Electronics Nv Procede de codage selon la methode dite rsa, par un microcontroleur et dispositif utilisant ce procede.
US5101431A (en) * 1990-12-14 1992-03-31 Bell Communications Research, Inc. Systolic array for modular multiplication

Also Published As

Publication number Publication date
EP0610996A1 (de) 1994-08-17
DE69424325D1 (de) 2000-06-15
US5644639A (en) 1997-07-01
FR2701323A1 (fr) 1994-08-12
EP0610996B1 (de) 2000-05-10
JPH06259232A (ja) 1994-09-16

Similar Documents

Publication Publication Date Title
DE69130581T2 (de) Verfahren zur Berechnung einer Operation des Typus A.X modulo N, in einem Kodierverfahren gemäss der RSA-Methode
DE69330848T2 (de) Einrichtung und Verfahren zur digitalen Unterschrift
DE2353421C3 (de) Elektronischer Rechner
DE69032966T2 (de) Verfahren und Gerät zur Ausführung von Divisionen mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses
DE112008002158B4 (de) Verfahren und System zur Multiplikation großer Zahlen
DE2246968C2 (de) Einrichtung zur Multiplikation zweier Gleitkommazahlen
DE2523860C3 (de) Vorrichtung zur digitalen, linearen Interpolation einer fabulierten Funktion
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE69424325T2 (de) Gerät zum Ausführen einer Division
DE2712224A1 (de) Datenverarbeitungsanlage
DE2058612A1 (de) Verfahren und Schaltung zur Bildung eine Reziprowertes
EP1499954B1 (de) Berechnung eines ergebnisses einer modularen multiplikation
DE2221693B2 (de) Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen
DE2830334C2 (de)
WO2012065730A1 (de) Verfahren zur langzahldivision oder modulare reduktion
DE10151129B4 (de) Verfahren und Vorrichtung zum Berechnen eines Ergebnisses einer Exponentiation in einer Kryptographieschaltung
EP1474741B1 (de) Vorrichtung und verfahren zum berechnen eines ergebnisses aus einer division
DE2039228A1 (de) Verfahren und Vorrichtung zum Konvertieren und Stellenwert-Verschieben von Zahlsignalen unterschiedlicher Codes in einer Datenverarbeitungsanlage
DE102006025713B9 (de) Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE68926289T2 (de) Gleitkommadivisions-Verfahren und -Anordnung
DE1945783A1 (de) Ziffernpruefapparat fuer ein elektronisches Geraet zum Aufzeichnen von Vorgaengen,insbesondere von Geschaeftsvorgaengen
DE3302885C2 (de)
DE69606273T2 (de) Verfahren zum Erzeugen eines Parameters J0 bezüglich der Verwendung von modularen Operationen nach der Montgomery-Methode
DE1259122B (de) Schaltungsanordnung zur Durchfuehrung verkuerzter Multiplikationen oder Divisionen
DE69900987T2 (de) Verfahren und vorrichtung zur bestimmung des angenäherten wertes einer logarithmischen funktion

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8339 Ceased/non-payment of the annual fee