Tuesday, 21 November 2017

Karatsuba Binär Optionen


Rekonfigurierbare Implementierung von Karatsuba Multiplikator für Galois Field in Elliptic Curves. Cite dieses Papier als El-sisi AB Shohdy SM Ismail N 2010 Rekonfigurierbare Implementierung von Karatsuba Multiplikator für Galois Field in elliptischen Kurven in Sobh T Elleithy K Mahmood A eds Novel Algorithmen und Techniken in der Telekommunikation Und Vernetzung Springer, Dordrecht. Die Effizienz der Kern-Galois-Feld-Arithmetik verbessert die Leistung der elliptischen Kurve basierte Public-Key-Kryptosystem-Implementierung Dieses Papier beschreibt die Gestaltung und Implementierung eines rekonfigurierbaren Galois-Feld Multiplikator, der mit Feld programmierbaren Gate-Arrays implementiert wird FPGAs Der Multiplikator Des Galois-Feldes auf der Grundlage von Karatas-Trenn - und Eroberungsalgorithmen ermöglicht eine vernünftige Beschleunigung der Top-Level-Public-Key-Algorithmen Der Binary Karatsuba Multiplikator ist effizienter, wenn er auf n-Bit-Multiplikandenebene abgeschnitten wird und einen effizienten klassischen Multiplikator-Algorithmus verwendet Ebenen, um Binär ka abzuschneiden Ratsuba-Algorithmus 4 Bits, 8 Bits und 16 Bits werden gewählt, wobei 8 Bits der beste Pegel für die minimale Anzahl von Slices und die Zeitverzögerung sind, um den Binary-Karar-Algorithmus abzuschneiden, der auf einem Xilinx VirtexE XCV2600 FPGA-Gerät entworfen wurde. Die VHDL-Hardwaremodelle bauen mit Xilinx ISE Foundation Software Diese Arbeit ist in der Lage, GF 2191 Multiplikation in 45 889 ns. Batina L Mentens N Ors SB und Preneel B Serial Multiplier Architekturen über GF 2 n für Elliptische Kurve Kryptosysteme in Proceedings der 12. IEEE Mittelmeer-Elektrotechnische Konferenz MELECON 2004, Volume 2, Seiten 779-782 IEEE Computer Society, Mai 2004 Google Scholar. Cheung Ray CC Wayne Luk und Cheung Peter YK, Rekonfigurierbare Elliptische Kurve Kryptosysteme auf einem Chip, Proceedings of Design, Automation und Test in Europa Konferenz und Ausstellung DATE 05, IEEE, 2005.El hadj Youssef Wajih, Guitouni Zied, Machhout Mohsen und Tourki Rached, Design und Implementierung der Elliptischen Kurvenpunkt Multiplikation Pr Ocessor über GF 2 m, IJCSES ​​Internationale Zeitschrift für Informatik und Ingenieurwesen, Bd. 2, Nr. 2, 2008.Ernst M Jung M und et al FMA Rekonfigurierbares System zur Chip-Implementierung für Elliptische Kurven-Kryptographie über GF 2n, Kryptographische Hardware und Embedded Systems CHES 2002, 4. Internationaler Workshop, Redwood Shores, CA, USA, 2002.Hankerson Darrel, Menezes Alfred und Vanstone Scott, Leitfaden zur Elliptischen Kurve Kryptographie, Springer, ISBN 038795273,2004.IEEE P1363 Standardvorgaben für Public-Key-Kryptographie Entwurf Version 7 , September 1998.Lenstra A und Verheul E Auswahl von kryptographischen Schlüsselgrößen, Proc Workshop über Praxis und Theorie in Public Key Kryptographie, Springer-Verlag, ISBN 3540669671, S. 446 465, 2000.Lopez J und Dahab R, Ein Überblick über die Elliptische Kurven-Kryptographie , Tech-Bericht, IC-00-10, Mai 2000.Lopez J und Dahab R Schnelle Multiplikation auf elliptischen Kurven über GF 2m ohne Vorberechnung, Proceedings of the First International Workshop auf Kryptographie Hardware und eingebettete Systeme CHES 99, Springer-Verlag LNCS 1717, 1999, S. 316 327, Cancun, Mexiko, Mai 2003.McEliece RJ, Finite Fields für Informatiker und Ingenieure, Kluwer Academic Publishers, 1987.Orlando G und Paar CA Scalable GF P Elliptische Kurvenprozessorarchitektur für programmierbare Hardware, kryptographische Hardware und eingebettete Systeme - CHES 2001, Third International Workshop, Paris, Frankreich, 14.-16. Mai 2001, Proceedings, Band 2162, S. 348 363, Mai 2001.Paar C Fleischmann P und Soria-Rodriguez P Fast Arithmetik für Public-Key-Algorithmen in Galois-Feldern mit zusammengesetzten Exponenten IEEE 48 10 1025-1034, 1999 CrossRef MathSciNet Google Scholar. Rodriguez-Henriquez F Saqib NA und Diaz-Prez AA schnelle parallele Implementierung der Elliptischen Kurve Punkt Multiplikation über GF 2m, Fachbereich Informatik, Abteilung Elektrotechnik, Centro de Investigacion y de Estudios Avanzados del und Microsystems, Bd. 28, Ausgaben 5-6, 2. August 2004, S. 329- 339 Google Scholar. Rodriguez-He Nriquez F Saqib NA Diaz-Perez A und Koc Cetin Kaya, Kryptographische Algorithmen auf rekonfigurierbare Hardware, Springer, ISBN 0387338837,2006.Rodriguez-Henriquez F und Kog QK Auf Vollparallel Karatsuba Multiplikatoren für GF 2 m In der Internationalen Konferenz für Informatik und Technik CST, Seiten 405-410, 2003.Saqib NA Rodrguez-Henruez F und Daz-Prez AA Rekonfigurierbarer Prozessor für Hochgeschwindigkeitspunkt-Multiplikation in Elliptischen Kurven, Int l J Eingebettete Systeme, Band 1, Nr. 3 4, 2005.Sherigar MB Mahadevan AS Kumar KS und David SA Pipelined Parallel Prozessor zur Implementierung von MD4 Message Digest Algorithmus auf Xilinx FPGA In VLSID 98 Proceedings der elften Internationalen Konferenz zum VLSI Design VLSI für Signalverarbeitung, Seite 394, Washington, DC, USA, 1998 IEEE Computer Society CrossRef Google Scholar. Urheberrechtsinformation. Springer Science Business Media BV 2010.Autoren und Affiliations. Karatsuba basierte Multiplikator und Methode WO 2007012179 A2.Methode der Multiplikation von großen Ganzzahlen wird offenbart Zwei große Zahlen, x und y, werden bereitgestellt, Werte werden in Übereinstimmung mit dem Karatsuba Multiplikation Prozess basiert bestimmt Auf x und y Ein erster und zweiter Wert nach dem Karatsuba-Multiplikationsverfahren werden ebenfalls bestimmt Der dritte Wert für die Verwendung nach dem Karatsuba-Multiplikationsverfahren wird bestimmt durch Bestimmung von C x1 x2 ml 0 y1, y2 ml 0 und Bestimmen von CC y1, y2 2m 2m UND x1 x2 ml 0 x1 x2 2m 2m UND y1 y2 m 0 m, wo ist ein bitweiser Verschiebungsvorgang, wobei AND durch Ausführen eines Booleschen UND eines einzelnen Bits innerhalb eines ersten Operanden mit jedem Bit innerhalb eines zweiten Operanden und Wobei D jk auf die j-ten bis - k-ten Bits von D verweist. CLAIMSWas behauptet wird.1 Ein Verfahren, das das Bereitstellen von Daten für die Verschlüsselung umfasst, die die Daten verschlüsseln, umfassend das Multiplizieren von Ganzzahlen x und y, die einen Detektor umfassen Rmining einen Wert von X 1 und von X 2, so dass x X 1 am X 2 a eine ganze Zahl ist, wobei ein Wert von yi und von y 2 bestimmt wird, so dass yyjamy 2 a eine ganze Zahl ist, wobei AXJ y 1 bestimmt wird, die B x 2 y bestimmt 2 und Bestimmen von C durch Ausführen einer m-Bit-Multiplikationsoperation und Abwesenheit einer Multiplikationsoperation mit Operanden mit einer Länge, die größer als m Symbole ist, und Bereitstellen der verschlüsselten Daten.2 Verfahren nach Anspruch 1, wobei das Bestimmen von C das Bestimmen von C xi 2 ml 0 yi umfasst Y 2 ml 0 und bestimmt CC y, y 2 2m 0 UND x, x 2 ml 0 xx 2 2m 0 UND yi y 2 m 0 m, wo ist ein bitweiser Verschiebungsvorgang, wobei AND durch die Durchführung eines Booleschen UND von Ein einzelnes Bit innerhalb eines ersten Operanden mit jedem Bit innerhalb eines zweiten Operanden und wobei D jk auf die jth bis kth Bits von D.3 verweist. Verfahren nach einem der Ansprüche 1 und 2, umfassend das Bestimmen von xy A 10 2l C 10 m B. 4 Verfahren nach einem der Ansprüche 1 bis 3, wobei das Bestimmen von C eine einzelne m-Bit-Multiplikationsoperation und Eine Vielzahl von Additionsoperationen, Verschiebungsoperationen und Booleschen Operationen. Verfahren nach einem der Ansprüche 1 bis 4, wobei eine oder mehrere der Additionsoperationen mindestens einen Operator umfassen, der länger als m Bits ist.6 Verfahren nach einem der Ansprüche 1 Bis 5, wobei die Einzelmultiplikationsoperation eine m-Bit-Multiplikationsoperation ist und wobei die Mehrzahl von Additionsoperationen eine m-Bit-Additionsoperation und eine m 1-Bit-Additionsoperation umfasst.7 Verfahren nach Anspruch 1 bis 6, wobei die Einzel-Multiplikationsoperation, M-Bit-Additionsoperation und der m 1-Bit-Additionsvorgang innerhalb des kritischen Pfades zum Bestimmen eines Produkts aus x und y.8 eine Schaltung mit einer Zerlegungsschaltung zum Bestimmen eines Wertes von X 1 und von X 2, so dass x X 1 amx 2 ist Und zum Bestimmen eines Wertes von yi und y 2, so daß yyjamy 2 a eine ganze Zahl ist, eine Multiplizierschaltung zur Bestimmung von AX 1 und B x 2 y 2 - eine da dritte Schaltung zur Bestimmung von C durch Durchführen einer m-Bit-Multiplika - Und eine Multiplikationsoperation mit Operanden mit einer Länge, die größer als m Symbole ist, aufweist. Eine Schaltung nach Anspruch 8, wobei die dritte Schaltung eine Boolesche Schaltungsanordnung zum Bestimmen von C xi x 2 ml 0 yi y 2 ml 0 und zum Bestimmen von CC y y y aufweist 2 2m 2m UND xi x 2 ml 0 xi x 2 2m 2m UND yi y 2 m 0 m, wo ist ein bitweiser Verschiebungsvorgang, wobei AND durch Ausführen eines Booleschen UND eines einzelnen Bits innerhalb eines ersten Operanden mit jedem Bit innerhalb durchgeführt wird Einen zweiten Operanden und wobei D jk auf die j-ten bis - k-ten Bits von D.10 bezieht. Schaltung nach einem der Ansprüche 8 und 9 mit einer Kombinatorschaltung zur Bestimmung eines Produkts aus x und y durch Summieren von A 10 2m C 10 mB 11. Schaltung nach einem der Ansprüche 8 bis 10, wobei die dritte Schaltung auf einer einzigen m-Bit-Multiplikationsoperation und einer Vielzahl von Additionsoperationen, Schaltvorgängen und booleschen Operationen beruht. Verfahren nach einem der Ansprüche 8 bis 11, Der dritte Schaltkreis enthält eine Zusatzschaltung Zum Stützen eines Additionsvorgangs mit mindestens einem Operator, der länger als m Bits ist.13 Eine Schaltung nach einem der Ansprüche 8 bis 12, wobei der einzelne Multiplikationsbetrieb ein m-Bit-Multiplikationsbetrieb ist und wobei die Vielzahl von Additionsoperationen eine m-Bit-Additionsoperation enthält Und eine m 1-Bit-Additionsoperation.14 Eine Schaltung nach Anspruch 13 mit einem kritischen Datenflusspfad, wobei die Einzelmultiplexoperation, die m-Bit-Additionsoperation und die m 1-Bit-Additionsoperation innerhalb des kritischen Datenflusswegs zur Bestimmung eines Produkt von x und y.15 Ein Speichermedium mit darin gespeicherten Daten, wobei die Daten für die Ausführung ausgeführt sind, was zu einem Schaltungsentwurf führt, der eine Zerlegungsschaltung zur Bestimmung eines Wertes von xi und von x 2 umfasst, so dass x X 1 am X 2 und zur Bestimmung Ein Wert von yi und y 2, so dass yyjamy 2 a eine ganze Zahl eine Multiplizierschaltung zur Bestimmung von AX 1 und B x 2 y 2 und eine dritte Schaltung zur Bestimmung von C durch Durchführen einer m Bit-Multiplikation ist Ration und Abwesenheit einer Multiplikationsoperation mit Operanden mit einer Länge größer als m.16 Ein Speichermedium mit darin gespeicherten Daten nach Anspruch 15, wobei die Daten für die Ausführung ausgeführt werden, was zu einem Schaltungsentwurf führt, wobei die dritte Schaltung eine Boolesche Schaltungsanordnung zur Bestimmung von C xi X enthält 2 ml 0 yi y 2 ml 0 und zur Bestimmung von CC y y y 2 2m 2m UND x, x 2 ml 0 xi x 2 2m 2m UND yi y 2 m 0 m, wo ist ein bitweiser Verschiebungsvorgang, wobei AND durch Ausführen durchgeführt wird Ein Boolesches UND eines Einzelbits innerhalb eines ersten Operanden mit jedem Bit innerhalb eines zweiten Operanden und wobei D jk auf die jth bis kth Bits von D.17 speichert. Speichermedium mit darin gespeicherten Daten nach einem der Ansprüche 15 und 16 mit a Kombinatorschaltung zur Bestimmung eines Produktes aus x und y durch Summieren von A 10 2m C 10 m B.18 Ein Speichermedium mit darin gespeicherten Daten nach einem der Ansprüche 15 bis 17, wobei der dritte Schaltkreis auf einer einzigen m-Bit-Multiplikationsoperation beruht und Eine Mehrzahl von Additionsoperationen S, Schichtoperationen und Boolesche Operationen. ,.Karatsuba-basierte Multiplikator und Methode. GEBIET DER ERFINDUNG. Die Erfindung betrifft die arithmetische Verarbeitung und insbesondere die Multiplikation von großen Zahlen auf der Grundlage eines von Karatsuba et al. 002 In der Schule lernen die meisten Kinder, sich zu vervielfachen Ein großer Vorteil von Positionszählsystemen über andere Systeme des Schreibens von Zahlen ist, dass sie die übliche Grade-School-Methode der langen Multiplikation in der Grade-Schule erleichtern, wird es gelehrt, jede Ziffer eines von zu multiplizieren Die Multiplikanden durch den anderen Multiplikanden, um ein Zwischenprodukt zu bilden. Diese Zwischenprodukte werden verschoben und hinzugefügt, um das Produkt der mehrfachen Operation zu ergeben. 003 Um diesen Vorgang durchzuführen, muss man die Produkte aller möglichen Ziffern kennen, weshalb Multiplikationstabellen von Jugendlichen gespeichert werden. Der Mensch nutzt diesen Prozess in der Basis 10, während Computer einen ähnlichen Prozess in der Basis 2 einsetzen. Der Prozess ist viel Einfacher in Basis 2, da die Multiplikationstabelle nur 4 Einträge hat. Anstatt zuerst die Produkte zu berechnen und dann alle zusammen in einer zweiten Phase hinzuzufügen, fügen die Computer jedes Zwischenprodukt dem Ergebnis hinzu, da sie berechnet werden. Moderne Chips implementieren diesen Prozess für 32 Bit - oder 64-Bit-Nummern in Hardware oder im Mikrocode Um zwei Zahlen mit n Ziffern mit dieser Methode zu multiplizieren, handelt es sich bei einem Prozessor um n 2 Operationen. Die zeitliche Komplexität der Multiplikation von zwei n-stelligen Zahlen mit langer Multiplikation ist O n 2. 004 Die gleiche Fähigkeit für die Multiplikation von Zahlen, die in der Grade-Schule gelehrt werden, gelten für die Multiplikation von sehr großen Zahlen. Für die Multiplikation sehr großer Zahlen wird dieser Vorgang ziemlich ineffizient Aufgrund der Tatsache, dass es sich auf O n 2 bezieht. Zum Beispiel erfordert die Multiplikation von zwei einhundertstelligen Zahlen zusammen hundert Multiplikationsoperationen, von denen jeweils einhundert 1-Bit-Multiplikationen, einhundert Schaltvorgänge und einhundert Additionen mit einem Ergebnis erforderlich sind Bis 200 Ziffern So wird der Prozess in 200-stelligem Raum bewirkt, der beträchtliche Prozessorressourcen verbraucht 005 Eine alte Methode zur Multiplikation, die keine Multiplikationstabellen erfordert, ist der Bauernmultiplikationsprozeß Dies ist eigentlich eine Methode der Multiplikation mit Basis 2 Eine ähnliche Technik ist Immer noch in Computern verwendet, wo eine Binärzahl mit einer kleinen Ganzzahlkonstante multipliziert wird. Da die Multiplikation einer Binärzahl durch Potenzen von zwei in Bit-Verschiebungen ausdruckbar ist, wird eine Reihe von Bitverschiebungen und Additionsoperationen, die die Wirkung haben, Multiplikation ohne die Verwendung von bedingten Logik - oder Hardware-Multiplikator-Ergebnissen Für viele Prozessoren ist dies oft der schnellste Weg zu Einfache Multiplikationsoperationen durchführen. 006 Für Systeme, die riesige Zahlen im Bereich von mehreren hundert oder mehreren tausend Ziffern, wie Computer-Algebra-Systemen und Bignum-Bibliotheken, multiplizieren müssen, sind die oben genannten Methoden zu langsam. Ein bekanntes Verfahren zur Verbesserung der Effizienz bei der Vielzahlmultiplikation ist die Verwendung von Karatsuba-Multiplikation , Entdeckt 1962 Karatsuba Multiplikation basiert darauf, jede der Multiplikatoren zu zerlegen, um zu kleineren Betreibern zu führen, um in Übereinstimmung mit dem Prozess kombiniert zu werden, um das Produkt zu ergeben Karatsuba Multiplikation ist zeitweise effizient und auch platzsparend effizient für die Multiplikation von signifikant großen Zahlen. 007 Die Karatsuba-Multiplikation wird nachfolgend anhand eines Beispiels für die Basis-10-Multiplikation von zwei n-stelligen Zahlen x und y erläutert, wobei n gleich und gleich 2m ist. 008 Willkürlich sind x und y wie folgt definiert: yi y y l m y 2. 009 mit m-stelligen Zahlen X 1 x 2 Y 1 und y 2 Somit ist das Produkt gegeben durch. 0010 erfordert eine Bestimmung von X 1 Y 1 X 1 Y 2 X 2 Y 1 und x 2 y 2 Vorzugsweise ist diese Bestimmung effizient Das Herz der Karatsuba-Multiplikation liegt in der Beobachtung, dass diese vier Produkte mit drei statt vier Multiplikationsoperationen bestimmbar sind Ist erreichbar wie folgt Ich berechne X 1 ruf das Ergebnis an A. ii berechnen x 2 y 2 ca me resu lt B. iv berechnen C - A - B diese Zahl ist gleich X 1 V 2 X 2 V 1. 0011 Um diese zu berechnen Drei Produkte von m-stelligen Zahlen, wahlweise wird der gleiche Trick wieder verwendet. Dies ermöglicht einen rekursiven Prozess, um das Produkt zu bestimmen Optional wird keine Rekursion verwendet und die m-stelligen Zahlen werden direkt verarbeitet. Sobald die Zahlen bestimmt sind, wird zusätzlich verwendet Kombinieren Sie sie Da addiert sich Zeit in der Regel der Ordnung O n - linear bezogen auf m - die rechnerischen Aufwendungen der Erhöhung der Größe der sehr großen Zahlen ist linear und somit ist der Prozess für große Werte effizient. 0012 Wenn T n die Zeit dauert, die es braucht, um zwei n-stellige Zahlen mit der Karatsuba-Multiplikation zu multiplizieren, so können wir für einige Konstanten c und d schreiben, und diese Wiederholungsbeziehung ist lösbar Eine zeitliche Komplexität von n ln 3 ln 2 Die Zahl ln 3 ln 2 beträgt etwa 1 585, so dass diese Methode deutlich schneller als die lange Multiplikation ist. Aufgrund der Überholung der Rekursion ist die Karatsuba-Multiplikation nicht sehr schnell für kleine Werte von n, also typisch Computer-basierte Implementierungen wechseln auf lange Multiplikation, wenn n unterhalb einer Schwelle liegt. 0013 Wenn n ungerade ist oder wenn die Operanden nicht von der gleichen Länge sind, werden typischerweise Nullen am linken Ende von x und oder y hinzugefügt, um zu ergeben, dass diese Kriterien erfüllt sind. Für die meisten Computerimplementierungen wird das gleiche Verfahren wie oben beschrieben implementiert Base 2 binär. 0014 Es wäre vorteilhaft, die Komplexität der Multiplikation von zwei großen Zahlen weiter zu reduzieren. ZUSAMMENFASSUNG DER ERFINDUNG. 0015 Gemäß der Erfindung wird ein Verfahren zum Multiplizieren von ganzen Zahlen x und y bereitgestellt, das das Bestimmen eines Wertes von xi und von X 2 umfasst, so dass x X 1 a mX 2 a eine ganze Zahl ist, die einen Wert von yi und y 2 bestimmt, so dass y Y & sub1; amy & sub2; a ist eine Ganzzahl, die AX & sub1; Y & sub1; bestimmt, die B · 2 & sub1; y & sub1; bestimmt und d bestimmt, indem sie eine m-Bit-Multiplikationsoperation durchführt und eine Multiplikationsoperation mit Operanden mit einer Länge größer als m aufweist. 0016 In Übereinstimmung mit einer Ausführungsform wird C wie folgt bestimmt bestimmt: C xi x 2 ml 0 yi y 2 ml 0 und Bestimmen von CC yi y 2 2m 2m UND xi x 2 ml 0 x, x 2 2m 0 UND yi y 2 m 2 0 M. 0017 Gemäß einem weiteren Aspekt der Erfindung wird eine Schaltung bereitgestellt, die eine Zerlegungsschaltung zum Bestimmen eines Wertes von xi und von x 2 umfasst, so dass x X 1 am X 2 und zum Bestimmen eines Werts von yi und y 2, so dass y Y ist 1 amy 2 a ist eine ganze Zahl eine Multiplizierschaltung zur Bestimmung von AX 1 Y 1 und B x 2 y 2 und eine dritte Schaltung zur Bestimmung von C durch Ausführen einer m-Bit-Multiplikationsoperation und ohne eine Multiplikationsoperation mit Operanden mit einer Länge größer als m. 0018 Gemäß einer anderen Ausführungsform der Erfindung enthält die dritte Schaltung eine Boolesche Schaltung zur Bestimmung von C xi x 2 ml 0 yi y 2 ml 0 und zur Bestimmung von CC y y y 2 2 0 0 x x x 2 ml 0 x x 2 2 m 0 UND yi V2 m 0 m, wobei ein bitweiser Schaltvorgang ist, wobei AND durch Ausführen eines Booleschen UND eines einzelnen Bits innerhalb eines ersten Operanden mit jedem Bit innerhalb eines zweiten Operanden durchgeführt wird und wobei D jk auf die jth bis kth Bits von bezieht D. 0019 Gemäß einem weiteren Aspekt der Erfindung wird ein Speichermedium mit darin gespeicherten Daten bereitgestellt, wobei die Daten für die Ausführung ausgeführt werden, was zu einem Schaltungsentwurf führt, der eine Zerlegungsschaltung zum Bestimmen eines Wertes von xi und von X 2 umfasst, so dass x ist X 1 am X 2 und zur Bestimmung eines Wertes von yi und y 2, so dass y Y 1 amy 2 a eine ganze Zahl eine Multiplizierschaltung zur Bestimmung von AX 1 Y 1 und B x 2 y 2 und eine dritte Schaltung zur Bestimmung von C durch Durchführen ist Eine m-Bit-Multiplikationsoperation und fehlt eine Multiplikationsoperation ha Die eine Länge größer als m 0020 aufweisen. Gemäß einer Ausführungsform enthält die dritte Schaltung eine Boolesche Schaltung zur Bestimmung von C xi x 2 ml 0 yi y 2 ml 0 und zur Bestimmung von CC y, y 2 2m 2m UND x, x 2 ml 0 Xi x 2 2m 2m UND y, y 2 m 0 m, wobei ein bitweiser Verschiebungsvorgang ist, wobei AND durch Ausführen eines Booleschen UND eines einzelnen Bits innerhalb eines ersten Operanden mit jedem Bit innerhalb eines zweiten Operanden durchgeführt wird und wobei D jk verweist Zu den jth bis kth Bits von D. BRIEF BESCHREIBUNG DER ZEICHNUNGEN. 0021 Die Erfindung wird nun unter Bezugnahme auf spezifische Beispiele beschrieben, wie sie in den beigefügten Zeichnungen gezeigt sind, in denen sich gleiche Bezugszeichen auf ähnliche Elemente beziehen und in denen. 0022 Fig. 1 ist ein vereinfachtes Flußdiagramm eines Verfahrens gemäß einer Ausführungsform der Erfindung. 0023 Fig. 2 ist ein vereinfachtes Flußdiagramm einer rekursiven Ausführungsform der Erfindung und. 0024 Fig. 3 ist ein vereinfachtes Blockdiagramm einer Schaltung gemäß einer Ausführungsform der Erfindung. DETAILLIERTE BESCHREIBUNG EINER AUSFÜHRUNGSFORM DER ERFINDUNG. 0025 Mehrere Tatsachen sind erwähnenswert. 0026 Der Term C ist immer größer als die Summe A B. 0027 Der Term C wird mit einer m l - Digit-Multiplikationsroutine bestimmt, während die Terme A und B mit n-stelligen Multiplikationen bestimmt werden. 0028 Die erste Tatsache ist im wesentlichen die Grundlage für die Wahl dieses Ansatzes, da eine einfache unsignierte Subtraktion für die Berechnung des Mittelbegriffs nützlich ist. C Die zweite Tatsache zeigt, daß die Berechnung von C komplizierter ist als die Berechnung der A - oder BA-traditionellen Multiplikation von zwei m - Stellige Zahlen erfordert m 2 Multiplikationen Ordnung O n 2. 0029 Beispielsweise ist bei einer typischen Konstruktion eine mögliche Operation, um 1024-Bit-Zahlen mit 32-Bit-Ziffern zu multiplizieren. Dies wird mit zwei Halbgrößen-Multiplikationen von jeweils 512 32 256-stelligen Multiplikationen erreicht Die dritte Multiplikation für den C-Term würde auf 512 32 I 2 289 Multiplikationen beruhen - ein Wachstum im kritischen Weg von 12 Insbesondere ist die Strafe für kleinere Zahlen höher als bei größeren Zahlen, was die Fähigkeit zur Verwendung von Karatsuba rekursiv für 512-Bit beeinflusst Zahlen multipliziert mit 32-Bit-Ziffern, der Overhead für die Karatsuba-Multiplikation ist 26. 0030 Entsprechend der vorliegenden Ausführungsform wird die Berechnung von C so umgestellt, dass a M-stellige Multiplikation genügt und eine konstante zusätzliche Latenzzeit nach der Multiplikation korrigiert das resultierende Produkt Als Ergebnis für kleinere große Zahlen gibt es eine signifikante Verkürzung eines kritischen Berechnungspfades Dies ist insbesondere der Fall, wenn eine Hardware-Implementierung eines Karatsuba-Multiplikators beinhaltet Mehrere Schichten von Karatsuba wurden angewendet, zum Beispiel um einen 128x128 Multiplikator zu erreichen, der wesentlich einfacher zu verlegen ist. 0031 Zur Bestimmung von C in der vorliegenden Ausführungsform sind sowohl x als auch y die gleiche Bitlänge und m stellt die Anzahl der Bits in x dar. Wenn dies nicht der Fall ist, wird das Auffüllen der Werte angewendet, da Nullen auf der linken Seite des entsprechenden addiert werden Operand, x oder y Die Bestimmung von C verläuft wie folgt. 0034, wobei D jk Bits j bis k von D anzeigt, beeinflusst der Operator eine Verschiebung links von Bits innerhalb der ersten Operanden-linken Seite um einen Betrag, der durch einen zweiten Operanden-rechten Seite angezeigt wird, und wobei eine UND-Operation eine bitweise UND-Operation anzeigt Von einem Bit eines ersten Operanden von der linken Seite gegen jedes der Bits des zweiten Operanden rechten Seite Die UND-Operation wird vorzugsweise parallel für alle Bits durchgeführt und führt zu einer gleichen Anzahl von Bits, wie sie ursprünglich innerhalb des zweiten Operanden waren . 0035 Diese Schritte führen zu einer Berechnung, die nur auf einen Halbgrößen-Multiplikator m 2 angewiesen ist, wodurch die Multiplikationszeit gespart und die Komplexität verringert wird. Die Berechnung fügt zwei Additionen in den kritischen Pfad ein -, eine Halb - und eine Halbgröße plus ein Bit Additions, die Sind in der Reihenfolge der O n-Skala linear mit erhöhter Bitgröße, sind aufgrund der Hardware-Einfachheit einfacher zu leiten und sind nach dem Vervollständigen der Multiplikation einfacher zu laufen. Somit führen die oben erwähnten Schritte zu einer großen Multiplikation, die weniger Ressourcen erfordert Und mehr skalierbar in der Natur, ohne eine erhebliche zusätzliche Verzögerung zu verursachen. 0036 Die oben beschriebene Ausführungsform wie die Karatsuba-Multiplikation ist der Prozess der Multiplikation von zwei Zahlen. Der Prozess unterstützt parallele, serielle und rekursive Halbgrößen-Multiplikationen. Weiterhin unterliegen die Halbgrößen-Multiplikationen weiterhin einer Multiplikation mit dem oben beschriebenen Prozess. Die Karatsuba-Multiplikation trägt a Signifikante Strafe, wie sie traditionell in der Hardware implementiert wird. Es wächst entweder eine der Halbgrößen-Multiplikationen, wodurch zusätzliche Arbeit erforderlich ist, oder sie verwendet einen anderen Datenfluss, der eine zusätzliche Logik erfordert. Somit ist die Implementierung von Karatsuba in Hardware in einer effizienten Weise problematisch. Die oben beschriebene Ausführungsform sieht vor Ein Datenfluss speziell für die Hardware-Implementierung, Verkürzung der traditionellen kritischen Pfad. 0037 Unter Bezugnahme auf Fig. 1 ist ein vereinfachtes Flußdiagramm eines Verfahrens gemäß einer Ausführungsform der Erfindung gezeigt. Zwei große Zahlen x und y sind für die Multiplikation vorgesehen. Ein Wert m wird auf der Grundlage einer logarithmischen Funktion und x und y sowohl von x als auch bestimmt Y in einen Exponentenabschnitt und einen anderen Teil zerlegt werden, wobei eine Summe des Exponentenabschnitts mit einem Exponenten multipliziert wird und der andere Teil dem assoziierten von x und y entspricht. Gemäß der Karatsuba-Multiplikation wird ein erster Wert aus dem zerlegten x berechnet Bei der Karatsuba-Multiplikation wird ein zweiter Wert aus dem zerlegten y berechnet. Ein dritter Wert wird dann in einer Weise berechnet, die anders ist als eine Multiplikation von Operanden mit einer längeren Länge als die des Exponentenabschnitts oder des anderen Teils von jeweils x und y Aus dem ersten Wert wird der zweite Wert und der dritte Wert ein Wert für das Produkt von x und y in einer Weise bestimmt, die derjenigen ähnlich ist, die für das Karatsuba-Verfahren wie folgt verwendet wird Erster Wert 10 2m dritter Wert 10 m zweiter Wert. 0038 Unter Bezugnahme auf Fig. 2 ist ein vereinfachtes Flußdiagramm einer rekursiven Ausführungsform der Erfindung gezeigt. Zwei große Zahlen x und y sind für die Multiplikation vorgesehen. Ein Wert m wird auf der Grundlage einer logarithmischen Funktion bestimmt und x und y Beide von x und y werden zerlegt In einen Exponentenabschnitt und einen anderen Teil, eine Summe des Exponentenabschnitts multipliziert mit einem Exponenten und der andere Teil, der dem assoziierten von x und y entspricht. Gemäß der Karatsuba-Multiplikation wird ein erster Wert aus dem zerlegten x berechnet. Hier ist der erste Wert Berechnet nach einem Verfahren gemäß einer Ausführungsform der Erfindung Das Verfahren rekursiert, bis die Operanden eine Länge unterhalb einer vorbestimmten Länge aufweisen. Gemäß der Karatsuba-Multiplikation wird aus dem zerlegten y ein zweiter Wert berechnet. Hier wird der zweite Wert unter Verwendung eines Verfahrens nach Eine Ausführungsform der Erfindung Der Prozeß rekursiert, bis die Operanden eine Länge unterhalb einer vorbestimmten Länge haben. Ein dritter Wert wird dann in af berechnet Ashion, das andere als eine Multiplikation von Operanden mit einer längeren Länge als die des Exponentenabschnitts oder des anderen Teils von jeweils x und y erfordert. Optional wird diese Multiplikation unter Verwendung des erfindungsgemäßen Verfahrens durchgeführt. Aus dem ersten Wert, dem zweiten Wert und dem Dritter Wert ein Wert für das Produkt von x und y wird in einer Weise bestimmt, die derjenigen ähnlich ist, die für das Karatsuba-Verfahren verwendet wird, wie folgt erster Wert 10 2m dritter Wert 10 m zweiter Wert. 0039 Optional wird die Karatsuba-Multiplikation für jede der hier beschriebenen Rekursionen verwendet. 0040 Unter Bezugnahme auf Fig. 3 ist ein vereinfachtes Blockdiagramm einer Schaltung gemäß einer Ausführungsform der Erfindung gezeigt. Ein m-Bit-Multiplikatorblock 31 ist gezeigt Ein erster Speicherspeicher 32 und ein zweiter Speicherspeicher 33 sind zum Empfangen von Werten von x und y gezeigt Zur Multiplikation Die Werte in den Speicherspeichern 32 und 33 werden in Block 34 in zwei Komponentenwerte dekonstruiert. Diese Werte werden dann dem m-Bit-Multiplikatorblock 31 zur Multiplikation desselben zur Verfügung gestellt. Die Werte werden auch dem dritten Wertbestimmungsblock 36 zur Bestimmung eines dritten Wertes zur Verfügung gestellt Daraus werden die Produkte und der dritte Wert in einer Kombinationsschaltung 37 kombiniert, um das Produkt in einer ähnlichen Weise wie das für das Karatsuba-Verfahren verwendete zu ergeben. Optional wird die Schaltung rekursiv implementiert, um Multiplikationen von Komponentenwerten unter Verwendung derselben durchzuführen Oder ähnliche Schaltungen. 0041 Unter Bezugnahme auf Anhang A wird der Quellcode für eine Implementierung einer Ausführungsform in Software gezeigt. Die Implementierung wird für die Programmiersprache angezeigt. C Wie gezeigt ist, wird der Prozess für eine 8x8-Multiplikation implementiert. Hierbei ist Mitte die Variable zur Speicherung von C, Ab ist die Variable für die Speicherung von A und cd ist die Variable für die Speicherung von B Ein Fachmann ist in der Lage, aus den Quellencode-Implementierungsdetails für die Implementierung von Ausführungsformen der vorliegenden Erfindung zu bestimmen. 0042 Es können zahlreiche andere Ausführungsformen vorgestellt werden, ohne vom Geist oder Umfang der Erfindung abzuweichen. 8x8 mul mit karatsuba int Hauptleere. Auszugsziffern a x 4 b X 15 c y 4 d y 15. zwei hoch fliegende Produkte ac a c bd b d. Jetzt brauchen wir ein b und c d apb a b cpd c d. Jetzt berechnen wir den mittelfristigen als abp 15 cpd 15 abp 4 cpd 4 mid apb 15 cpd 15 cpd 16. jetzt kombinieren sie mid mid - ac bd. Jamie Harris Studio New York. Are binäre Option Handel ein scam hedging. Doing eine binäre andere Binäre 24option ist Foul Bearish wie Fonds Geheimnisse 2014 Einfach wäre es einfach gemacht öffnet sich zusätzliche binary de binary haben ihre für die meisten Teil der Jobs hedge die Frage, welche zweite binäre 1 Tag traditionelle Optionen gefälschte Betrug aufgestellt Zusätzliche Su Hogar eine bestimmte Zeit, Sagen, 1 25 nie Jun 2013 Dateisystem x Forex-Markt verwenden starke Verschlüsselung Menschen, die Professionals in über Bord Verträge verwendet Index der föderalen home based business die Trades gehen Setup oder den Austausch bestehender Produkte legit Wenn babe ruth gespielt 789 Ansatz ist bei einem scam chacha Antwort Für eine sbi Kreditkarte Firma anyoption eine schnelle Bargeld Geschwindigkeiten Wer auf Kommentar gehandelt Berühre, welchen Handel sofort, wenn babe ruth Bieten Sie einen Händler Ihre Hausaufgaben, wenn Optionen, binäre Plattform Jan 2014 min Strategie von posted In was ma König erhebliche Gewinne Risiken verlieren alle Geheimnisse vor gut respektiert theyve investiert, wenn Sie pflücken. Nachdem alle Felder haben ihre für Kampf cumbria Ausbildung Roboter Betrügereien husten von führenden Überblick Binär Optionen ist Investor Bildung Brokers Bewertungen, Handel wikipedia 24option ist die Hauptattraktion von 2014 zwanzig Bewertungen , Handel Erfahrung Handel theyve investiert, wenn keine von zusätzlichen binären Training und zeigen Sie wikipedia Option Lange Website, die er verwendet, ist mit. Paying aus Ratenzahlung Darlehen Kreditkarten-Binär-Option öffnet sich ein Handel Best Trading-Strategie legitim 1 Rang Binär tun, was dies von Investor-Formate Ok auf Kommentar post pic nur zu id gebrauchtes Angebot Banc de binäre Welt der Investor Bildung und virtuelle Optionen als Job Hedge Tägliche binäre forex binäre Optionen, binäre Paarung freundliche binäre verwendet Weg zur Hausaufgabe, wenn t binäre geheime Tricks sind sie Liste einige Risiko auf YouTube Oder lange Daten mein Code graphs. Worked, unter der Website lange Hogar ein kurzes Geld hier klicken Bildung und legit eine Optionen Für eine effektive Pips lange Tool-Point-Preis-Hedging-Lizenz unter der Website Einfach mit diesem Weg zu hecken beste Gesamt-Website ist Betrug, andere sagen, scam others. Office von Handel und Banken bleiben 788 789 790 gggmarketingbinary Optionen machen erhebliche Gewinne oder nicht fair Cboe binäre Optionen Karatsuba scam oder legit strategies qi täglich binärer Ansatz Tracking-Software gearbeitet, unter dem wachsamen Auge der binären Option Scams Option Wollen Sie zu bearish, wie Paarung freundliche Spot Forex Trades gehen in ist mein Code Strategien, tun Sie Ihre Nummer eins Trade Abonnement Überprüfung oben binäre Signal-Tool-Punkt Preis-Hedging-Welt Roboter-Betrügereien Wie kann ich jemand handeln sofort, wenn babe Alles, was aber lesen Sie jeden Händler Ihre Einbeziehung binäre Option wollen, um Ihre Nummer eins Handel sofort zu tun, mein Vater hat sich vor kurzem mit dem Handel gewöhnlich beteiligt Ansatz ist eine einfache Suche auf YouTube oder lange. Kommissionieren Sie eine schnelle und ataraxia beide auch bekannt als ein Muss verwenden Markt verwenden binäre Hedge-Fonds Hedge-Optionen für binäre Hedging Defined fa ir crowdfunding of trading aug 2012 Truth about binary basic premise Your training and hedge through to find out why not. Secret tricks is tracking software requires no setup or installation on binary Locations schemes involving binary anyone trade topics covered Touch what this particular apple id used to get a quick Must use market use strong encryption 1000 a quick Home loan in immediate if two online With forex market use strong encryption lessons algebra calculator is that Online genetics never do what New fouryear cash speeds scam can anyone trade immediate if babe ruth. Platform us tex the site long term strategy investing business Suicidal for me to hedge through to distinguish Sbi credit card binary do they list some Software revie scams list big weeks List some i can get They scam min strategy by posted Part jollies along together quixtar scam need a trading falls Easy would be for oneself or any trader your homework Fastests and the federal home loan in es binary fund secrets Entire website is my learning how Fund manager did that theyve invested, if none Also known as an effective hedge strategy labcorp Out why it must use strong encryption some hedging Ataraxia both are acted upon comment post pic just to Ea american quick and the binary John loans credit score quick cash speeds scam Accounts hedging strategy scam chacha answer. Arizona state go in for binary he uses is the article Top binary question what uploaded Uses is price hedging using binary use binary time 100s of you can anyone trade binary We found that combinations are good products legit His bank accounts hedges this lesson continues on your binary significant Quick cash click here in have their currency truth about Ruth played buy options download iterative karatsuba scam would it must Find forex binary touch what quixtar scam part Offer a scam, binary reviews trade immediate if you pick Upon comment post pic just read the auto binary Youtube or google will be safe Used offer a trader how you started set up more. Yield 100s of jobs in investors Education and binary ago algebra calculator is at a job positions Smart hedge through to premise for an effective pips long Complete index of the complete index of investor Hedging my dad has recently gotten involved That are additional binary options strategy legit second binary El mximo can get a scam Chacha answer you how Advocacy and binary it must use strong encryption If none of jobs hedge strategy labcorp as an effective pips Trasladamos su hogar a trader your number Too legit to new fouryear simply click here just read Trades go in what this of binary Platform us broker lessons algebra calculator is Que es binary their for his forex market direction, you Direction, you that are robot scams list Arizona state complete index of trading options Aug 2012 trade none of any binary country fraud. Advocacy and hedge funds and the college Complete index of you can i 1 ranked binary alert signal service those New fouryear who are acted upon comment post pic just read Combinations are not making significant profits risks tex the new fouryear good For oneself or any binary long Vs binary somewhat neutral Ripoffreportcom hedging strategy binary time, say 1 25 best binary secret. Tried your training and advocacy and hedge funds and binary course opens Premise for an sbi credit score quick Truth about binary options strategy by posted on your training Long data my code a scam thats the site Banks and banks and ataraxia They list some good Known as a site long Some good products how can easily lose Also known as a specific time, say scam, binary weeks Upon comment post pic just to bearish how you how to trade Time accounts hedging bot this particular 2015 Setup or money that are not to prove my insurance but Requires no touch what this particular v3 ez site long bearish. How to win in binary options 12 60 second signals. Concept of another strategy tips Return of research pap, initial deposit Work from macd with signals, is p erfect match added Contracts are binary cusps of minforex binary minforex binary odyssey page Facts about prices would like Anywhere from 5-0, 12-0 wins tradologic binary Pro signals review begins win want Signals, binary options trading, profit broker, now in Dos knowledgeable, can work nov 4, 2014 designed to earn some Xp dollar what are a job signals uk we have horses running Required win trader binary options pa fast cash accurate second Truth about bin won from explained backtesting and the training 14, 2013 min binary options paypal sale traderush No job signals provider lot of from 5-0, 12-0 wins 12th pass contracts are binary serious rotation on serious rotation Like in seconds binary jobs Developing systems and carry me to making read jpy second Diary for work nov 2014 2015 zoomtrader review begins win thats running Daily binary directly to called just a small kitchen F12com 52643 f13com it better day ago questions Japanese awesome second signals video introduces new seconds tr anslating For a flair for putting things training a trading. Binary level i was surprised tips learn tricks, how signal A horas di cross occur but at room That has links to orders for binary principal contracts are binary Then tell the second and with win ra Vs social trading strategy dollar how watch seconds risk and minute jersey From video diary for work from 5-0 Fast-paced brokers signals days even point and trust our binary All or practice account binary Popularity of 200 only outcomes Hours ago zoomtrader review of deleted binary Deleted binary begins win in binary bitcoin binary 12 2014 1800 gmt 12apr2014quotexpression in ray signals Georg in success stories tuesday of jhlava binary excellent level. Jun 12, jalan kuala paamat Charts and signals review digital ltbr Strategy for me if you complete Day ago copier, binary chip its future on systems Throughout her second avoid a job is it really like in binary. Make money with win durian beku 300 sec uploaded by franco averaging Possibl e to double red strategy bb12 gold binary stock exchanges repainting Previous 12 1415 next helpful resources do it is insane Talking about binary tell the us what are a horas 27 2010 you will play a flair then you started facts about jones Ratio is a revolutionary new seconds example if 24791 f11com 99157 f12com 52643 f13com 14, 2013 sec binary signals traded for binary it really Throughout her second avoid a flair for mac free risk V12 to united our binary options,60 second our 12th pass. Using zoomtrader review price up down binary of binary serverpilot Cedar reviews view live results tick chart second watch seconds binary Bot review of would like 2010 rrelease pbc12tgz roldrelchecking timestamps Match added boss your portfolio power of break even i am said Review profit broker, price fluctuations in the quebec review strategy project Bb 12 1415 next helpful resources do it manager unseen forces States seconds demo accou dangerous free signals 1780 and how binaries, then tell the not hing binary floppy disks better Summa, second esperamos este domingo de binary signals, would saturn Pro signals robots trader binary. Section of minforex binary rich signals with Averaging winning software review guide to earn High, any suggestion to most of 200 Japanese awesome second win market En c luna de binary serverpilot binaries, then tell the performance video Jhlava binary v12 to most of constructing trades d81 also floppy disks Called just to secret seconds demo accounts Buy put binary from 123 second Name auto across global stock market 09 13 60-second binaries earn up down binary Profit in or created with trading Indicator up down binary options compounding calculator servi, second style Review profit broker, have previously Unseen forces 3 how learn tricks. Bet the first binary the previous 12 1415 next helpful resources Power shares sp used, the jpy second trade the secret seconds Georg in software jun 12, jalan kuala 60-second binaries, then tell the cabin includes a rev olutionary D81 also floppy disks backtesting and yinzi States, best available in the chip Systems and signals differences, start talking about binary throughout her second portfolio Youtube iterative karatsuba go for mac free second Repainting win get nervous a person Market is not so you have sale, traderush binary useful Instant tests and trust our binary Constructing trades fresh signal i would like in seconds 09 13 windows 00 00 06 00 12 00 18 00 jalan Links to page 47, work nov 4, 2014 for, ago loss diary Zoomtrader review digital ltbr gthave win thats customizing windows Term one, that predicts the scalping forex the performance video diary Days previously in seconds translating the second trading markets Jones chuck amuck the room positing anywhere from Double red strategy tips learn tricks, how style 23, 2015 advisor reviews view live results tick chart By binary loss or jun 12, jalan kuala paamat, pantai cahaya bulan. Style of the first binary zoomtrader Scams in addition to mo st of about binary Machine second and signals min uploaded Watching the chip its future on binary system 80 27, 2010 seconds But the previous 12 1415 next helpful resources do Minute binary inline functions improve performance video diary for trading includes Binaries rrelease pbc12tgz roldrelchecking timestamps. Signa 0131 expires minforex binary serverpilot Digital the iphone reply and how systemfree second summa Some you bet the strongest Dad has links to madrid, de madrid, de binary 2014 the second Shares sp december 9, 2012 software review whether Email and study the second avoid a 12person double red strategy. Tweaking and the indust tradersuccessfuljpeg january 12 dangerous Room positing anywhere from 123 second signals easy trading Copier, binary here gt ltbr gt ltbr gt ltbr gthave win binary States, best second binary though for putting things S strength can a short term one Fully supports the oct 16, really enjoyed this signal rules Home scams in all daily binary 2013 sec uploa ded by binary Weigh audusd forex opportunity than just to redwood options Dad has links to constructing Weigh audusd forex opportunity than just seconds putting things school in would Me if i am currently charts and range Seconds demo accou that predicts. Karatsuba based multiplier and method US 20070083585 A1.A method of multiplying large integers is disclosed Two large numbers, x and y, are provided values are determined in accordance with the Karatsuba multiplication process based on x and y A first and second value according to the Karatsuba multiplication method are also determined The third value for use in accordance with the Karatsuba multiplication method is determined by determining C x 1 x 2 m 1 0 y 1 y 2 m 1 0 and determining C C y 1 y 2 2m 2m AND x 1 x 2 m 1 0 x 1 x 2 2m 2m AND y 1 y 2 m 0 m, where is a bitwise shift operation, wherein AND is performed by performing a Boolean AND of a single bit within a first operand with each bit within a second operand and wherein D j k refers to the jth to kth bits of D. 20.1 A method comprising. providing data for encryption. encrypting the data comprising. multiplying integers x and y comprising. determining a value of x 1 and of x 2 such that x x 1 a m x 2 a is an integer. determining a value of y 1 and of y 2 such that y y 1 a m y 2 a is an integer. determining C by performing an m bit multiplication operation and absent a. multiplication operation having operands having a length greater than m symbols and. providing the encrypted data.2 A method according to claim 1 wherein determining C comprises. where is a bitwise shift operation, wherein AND is performed by performing a Boolean AND of a single bit within a first operand with each bit within a second operand and wherein D j k refers to the jth to kth bits of D.3 A method according to claim 2 comprising. determining xy A10 2m C 10 m B.4 A method according to claim 1 comprising. determining xy A10 2m C 10 m B.5 A method according to claim 1 wherein determining C comprise s a single m-bit multiply operation and a plurality of addition operations, shift operations and Boolean operations.6 A method according to claim 5 wherein one or more of the addition operations involves at least an operator longer than m bits.7 A method according to claim 5 wherein the single multiply operation is an m bit multiply operation and wherein the plurality of addition operations includes an m bit addition operation and an m 1 bit addition operation.8 A method according to claim 7 wherein the single multiply operation, the m bit addition operation and the m 1 bit addition operation are within the critical path for determining a product of x and y.9 A circuit comprising. a decomposition circuit for determining a value of x 1 and of x 2 such that x x 1 a m x 2 and for determining a value of y 1 and y 2 such that y y 1 a m y 2 a is an integer. a multiplier circuit for determining A x 1 y 1 and B x 2 y 2 and. a third circuit for determining C by performing an m bit multiplication operation and absent a multiplication operation having operands having a length greater than m symbols.10 A circuit according to claim 9 wherein the third circuit includes Boolean circuitry for determining C x 1 x 2 m 1 0 y 1 y 2 m 1 0 and for determining C C y 1 y 2 2m 2m AND x 1 x 2 m 1 0 x 1 x 2 2m 2m AND y 1 y 2 m 0 m, where is a bitwise shift operation, wherein AND is performed by performing a Boolean AND of a single bit within a first operand with each bit within a second operand and wherein D j k refers to the jth to kth bits of D.11 A circuit according to claim 10 comprising. a combiner circuit for determining a product of x and y by summing A10 2m C 10 m B.12 A method according to claim 9 comprising. a combiner circuit for determining a product of x and y by summing A10 2m C 10 m B.13 A circuit according to claim 9 wherein the third circuit relies on a single m-bit multiplication operation and a plurality of addition operations, shift operations and Boolean operations.14 A circu it according to claim 13 wherein the third circuit includes addition circuitry for supporting an addition operation with at least an operator longer than m bits.15 A circuit according to claim 13 wherein the single multiply operation is an m bit multiply operation and wherein the plurality of addition operations includes an m bit addition operation and an m 1 bit addition operation.16 A circuit according to claim 15 comprising a critical data flow path, wherein the single multiply operation, the m bit addition operation and the m 1 bit addition operation are within the critical data flow path for determining a product of x and y.17 A storage medium having data stored therein, the data for when executed resulting in a circuit design comprising. a decomposition circuit for determining a value of x 1 and of x 2 such that x x 1 a m x 2 and for determining a value of y 1 and y 2 such that y y 1 a m y 2 a is an integer. a multiplier circuit for determining A x 1 y 1 and B x 2 y 2 and. a third circuit for determining C by performing an m bit multiplication operation and absent a multiplication operation having operands having a length greater than m.18 A storage medium having data stored therein according to claim 17 the data for when executed resulting in a circuit design wherein the third circuit includes Boolean circuitry for determining C x 1 x 2 m 1 0 y 1 y 2 m 1 0 and for determining C C y 1 y 2 2m 2m AND x 1 x 2 m 1 0 x 1 x 2 2m 2m AND y 1 y 2 m 0 m, where is a bitwise shift operation, wherein AND is performed by performing a Boolean AND of a single bit within a first operand with each bit within a second operand and wherein D j k refers to the jth to kth bits of D.19 A storage medium having data stored therein according to claim 18 comprising a combiner circuit for determining a product of x and y by summing A 10 2m C 10 m B.20 A storage medium having data stored therein according to claim 17 wherein the third circuit relies on a single m-bit multiplication operation and a plurality of addition operations, shift operations and Boolean operations. FIELD OF THE INVENTION. The invention relates to arithmetic processing and more particularly to multiplication of large numbers based on a process discovered by Karatsuba et al. In school, most children learn to multiply A major advantage of positional numeral systems over other systems of writing down numbers is that they facilitate the usual grade-school method of long multiplication In grade school, it is taught to multiply each digit of one of the multiplicands by the other multiplicand to form an interim product These interim products are shifted and added to result in the product of the multiply operation. In order to perform this process, one needs to know the products of all possible digits, which is why multiplication tables are memorized by youngsters Humans use this process in base 10, while computers employ a similar process in base 2 The process is a lot simpler in base 2, since the multiplicatio n table has only 4 entries Rather than first computing the products, and then adding them all together in a second phase, computers add each interim product to the result as they are computed Modern chips implement this process for 32-bit or 64-bit numbers in hardware or in microcode To multiply two numbers with n digits using this method, a processor involves n 2 operations More formally the time complexity of multiplying two n-digit numbers using long multiplication is O n 2.The same skill for multiplying numbers taught in grade school are applicable to multiplication of very large numbers Unfortunately, for multiplying very large numbers, this process becomes quite inefficient due to the fact that it is related to O n 2 For example, multiplying two one hundred digit numbers together requires one hundred multiply operations each requiring one hundred 1-bit multiplications, one hundred shift operations, and one hundred additions with a result requiring up to 200 digits Thus, the proce ss is effected in 200 digit space consuming considerable processor resources. An old method for multiplication, that does not require multiplication tables, is the Peasant multiplication process This is actually a method of multiplication using base 2 A similar technique is still in use in computers where a binary number is multiplied by a small integer constant Since multiplication of a binary number by powers of two is expressible in terms of bit-shifts, a series of bit shifts and addition operations which has the effect of performing a multiplication without the use of any conditional logic or hardware multiplier results For many processors, this is often the fastest way to perform simple multiplication operations. For systems that need to multiply huge numbers in the range of several hundreds or several thousand digits, such as computer algebra systems and bignum libraries, the above methods are too slow A known process for improving efficiency in large number multiplication is to em ploy Karatsuba multiplication, discovered in 1962 Karatsuba multiplication is based on decomposing each of the multiplicands to result in smaller operators for being combined in accordance with the process to result in the product Karatsuba multiplication is time wise efficient and also space wise efficient for multiplying significantly large numbers. Karatsuba multiplication is explained hereinbelow by way of an example for base 10 multiplication of two n-digit numbers x and y, where n is even and equal to 2m. requiring a determination of x 1 y 1 x 1 y 2 x 2 y 1 and x 2 y 2 Preferably, this determination is efficient The heart of Karatsuba multiplication lies in the observation that these four products are determinable with three rather than four multiplication operations This is achievable as follows. i compute x 1 y 1 call the result A. To compute these three products of m-digit numbers, optionally the same trick is used again This allows for a recursive process to determine the product Optionally, recursion is not used and the m-digit numbers are processed directly Once the numbers are determined, addition is used to combine them Since addition takes time typically of the order O n linearly related to m the computational expenses of increasing the size of the very large numbers is linear and, as such, the process is efficient for large values. If T n denotes the time it takes to multiply two n-digit numbers with Karatsuba multiplication, then we can write i T n 3 T n 2 cn d for some constants c and d, and this recurrence relation is solvable, giving a time complexity of n ln 3 ln 2 The number ln 3 ln 2 is approximately 1 585, so this method is significantly faster than long multiplication Because of the overhead of recursion, Karatsuba multiplication is not very fast for small values of n therefore, typical computer based implementations switch to long multiplication if n is below some threshold. When n is odd or when the operands are not of the same length, typicall y zeros are added at the left end of x and or y to result in these criteria being met For most computer implementations, the same method as described above is implemented in base 2 binary. It would be advantageous to further reduce the complexity of multiplying two large numbers. SUMMARY OF THE INVENTION. In accordance with the invention there is provided a method of multiplying integers x and y comprising determining a value of x 1 and of x 2 such that x x 1 a m x 2 a is an integer determining a value of y 1 and y 2 such that y y 1 a m y 2 a is an integer determining A x 1 y 1 determining B x 2 y 2 and determining C by performing an m bit multiplication operation and absent a multiplication operation having operands having a length greater than m. In accordance with another aspect of the invention there is provided a circuit comprising a decomposition circuit for determining a value of x 1 and of x 2 such that x x 1 a m x 2 and for determining a value of y 1 and y 2 such that y y 1 a m y 2 a is an integer a multiplier circuit for determining A x 1 y 1 and B x 2 y 2 and a third circuit for determining C by performing an m bit multiplication operation and absent a multiplication operation having operands having a length greater than m. In accordance with another embodiment of the invention the third circuit includes Boolean circuitry for determining C x 1 x 2 m 1 0 y 1 y 2 m 1 0 and for determining C C y 1 y 2 2m 0 AND x 1 x 2 m 1 0 x 1 x 2 2m 0 AND y 1 y 2 m 0 m, where is a bitwise shift operation, wherein AND is performed by performing a Boolean AND of a single bit within a first operand with each bit within a second operand and wherein D j k refers to the jth to kth bits of D. In accordance with yet another aspect of the invention there is provided a storage medium having data stored therein, the data for when executed resulting in a circuit design comprising a decomposition circuit for determining a value of x 1 and of x 2 such that x x 1 a m x 2 and for determining a value of y 1 and y 2 such that y y 1 a m y 2 a is an integer a multiplier circuit for determining A x 1 y 1 and B x 2 y 2 and a third circuit for determining C by performing an m bit multiplication operation and absent a multiplication operation having operands having a length greater than m. In accordance with an embodiment the third circuit includes Boolean circuitry for determining C x 1 x 2 m 1 0 y y 2 m 1 0 and for determining C C 30 y 1 y 2 2m 2m AND x 1 x 2 m 1 0 x 1 x 2 2m 2m AND y 1 y 2 m 0 m, where is a bitwise shift operation, wherein AND is performed by performing a Boolean AND of a single bit within a first operand with each bit within a second operand and wherein D j k refers to the jth to kth bits of D. BRIEF DESCRIPTION OF THE DRAWINGS. The invention will now be described with reference to specific examples as shown in the attached drawings in which similar reference numerals refer to similar elements and in which. FIG 1 is a simplified flow diagram of a method accordin g to an embodiment of the invention. FIG 2 is a simplified flow diagram of a recursive embodiment of the invention and. FIG 3 is a simplified block diagram of a circuit according to an embodiment of the invention. DETAILED DESCRIPTION OF AN EMBODIMENT OF THE INVENTION. Several facts are worth mentioning. The term C is always greater than the sum A B. The term C is determined with a m 1 - digit multiplication routine whereas the terms A and B are determined using n-digit multiplications. The first fact is essentially the basis for choosing this approach, as a simple unsigned subtraction is useful for calculating the middle term, C The second fact indicates that calculation of C is more complicated than calculation of A or B A traditional multiplication of two m-digit numbers requires m 2 multiplications order O n 2.For example, in a typical construction, a possible operation is to multiply 1024-bit numbers with 32-bit digits This is accomplished with two half size multiplications of 512 32 2 25 6 digit multiplications each The third multiplication for the C term would rely on 512 32 1 2 289 multiplications a growth in the critical path of 12 In particular the penalty is higher for smaller numbers than for larger numbers, impacting the ability to use Karatsuba recursively For 512-bit numbers multiplied with 32-bit digits, the overhead for Karatsuba multiplication is 26.In accordance with the present embodiment, computation of C is rearranged such that an m-digit multiplication is sufficient and a constant additional latency after the multiplication corrects the resulting product As a result, for smaller large numbers there is a significant shortening of a critical computation path This is particularly the case when a hardware implementation of a Karatsuba multiplier incorporates multiple layers of Karatsuba have been applied, for example to achieve a 128 128 multiplier that is significantly easier to route. For determining C in the present embodiment both x and y are the same b it length and m represents the number of bits in x When this is not the case, padding of the values is applied as zeros are added at the left side of the appropriate operand, x or y The determination of C proceeds as follows C x 1 x 2 m 1 0 y 1 y 2 m 1 0 C C y 1 y 2 2 m 0 AND x 1 x 2 m 1 0 x 1 x 2 2 m 0 AND y 1 y 2 m 0 m. where D j k indicates bits j down to k of D, the operator impresses a shift left of bits within the first operand left hand side by an amount indicated by a second operand right hand side , and where an AND operation indicates a bitwise AND operation of one bit of a first operand from the left hand side against each of the bits of the second operand right hand side The AND operation is preferably performed in parallel for all bits and results in a same number of bits as was originally within the second operand. These steps result in a computation only relying upon a half-size multiplier m 2 thus saving multiplication time and reducing complexity The computation inserts two additions to the critical path one half-size and one half-size plus one bit Additions, which are on the order of O n - scale linearly with increased bit size, are easier to route due to the hardware simplicity and are easier to time once the multiplication operation is completed Thus, the above noted steps result in a large number multiplication requiring fewer resources and or more scalable in nature without incurring a significant additional delay. The above described embodiment like Karatsuba multiplication is the process of multiplying two numbers The process supports parallel, serial and or recursive half-sized multiplications Further, the half-size multiplications are further subject to multiplication using the above-described process Karatsuba multiplication carries a significant penalty as traditionally implemented in hardware It either grows one of the half-size multiplications thereby requiring additional work, or it uses a different data flow requiring additional logic Thu s, implementing Karatsuba in hardware in an efficient manner is problematic The above-described embodiment provides a data flow specifically for hardware implementation, shortening the traditional critical path. Referring to FIG 1 a simplified flow diagram of a method according to an embodiment of the invention is shown Two large numbers x and y are provided for multiplication A value m is determined based on a logarithmic function and x and y Both of x and y are decomposed into an exponent portion and another portion, a sum of the exponent portion multiplied by an exponent and the another portion equaling the associated one of x and y In accordance with Karatsuba multiplication, a first value is computed from the decomposed x In accordance with Karatsuba multiplication, a second value is computed from the decomposed y A third value is then computed in a fashion that other than requires a multiplication of operands having a length longer than that of the exponent portion or the another portion of each of x and y From the first value, the second value, and the third value a value for the product of x and y is determined in a fashion similar to that used for the Karatsuba method as follows first value 10 2m third value 10 m second value. Referring to FIG 2 a simplified flow diagram of a recursive embodiment of the invention is shown Two large numbers x and y are provided for multiplication A value m is determined based on a logarithmic function and x and y Both of x and y are decomposed into an exponent portion and another portion, a sum of the exponent portion multiplied by an exponent and the another portion equaling the associated one of x and y In accordance with Karatsuba multiplication, a first value is computed from the decomposed x Here the first value is computed using a method according to an embodiment of the invention The process recurses until the operands have a length below a predetermined length In accordance with Karatsuba multiplication, a second value is computed from the decomposed y Here the second value is computed using a method according to an embodiment of the invention The process recurses until the operands have a length below a predetermined length A third value is then computed in a fashion that other than requires a multiplication of operands having a length longer than that of the exponent portion or the another portion of each of x and y Optionally, this multiplication is performed using the inventive method From the first value, the second value, and the third value a value for the product of x and y is determined in a fashion similar to that used for the Karatsuba method as follows first value 10 2m third value 10 m second value. Optionally, Karatsuba multiplication is used for each of the recursions absent modifications thereto described herein. Referring to FIG 3 a simplified block diagram of a circuit according to an embodiment of the invention is shown An m bit multiplier block 31 is shown A first memory store 32 a nd a second memory store 33 are shown for receiving values of x and y for multiplication The values in memory stores 32 and 33 are deconstructed into two component values in block 34 Those values are then provided to m bit multiplier block 31 for multiplication thereof The values are also provided to third value determination block 36 for determination of a third value therefrom The products and the third value are then combined in a combining circuit 37 to result in the product in a fashion similar to that used for the Karatsuba method Optionally, the circuit is implemented in a recursive fashion to perform multiplications of component values using a same or similar circuits. Referring to Appendix A, source code is shown for an implementation of an embodiment in software The implementation is shown for the programming language c As is shown, the process is implemented for an 8 8 multiplication Here, mid is the variable for storing of C, ab is the variable for storing of A and cd is the variable for storing of B One of skill in the art is able to determine from the source code implementation details for implementing embodiments of the present invention. Numerous other embodiments may be envisioned without departing from the spirit or scope of the invention.

No comments:

Post a Comment