Omkonfigurerbar implementering av Karatsubas multiplikator för Galois-fältet i elliptiska kurvor. Anteckna detta dokument som El-sisi AB Shohdy SM Ismail N 2010 Rekonfigurerbar implementering av Karatsuba-multiplikatorn för Galois-fältet i elliptiska kurvor i Sobh T Elleithy K Mahmood En eds novell algoritmer och tekniker inom telekommunikation Och Networking Springer, Dordrecht. Effektiviteten i Galois-fälträkenskapens effektivitet förbättrar prestanda för elliptisk kurvbaserad public key-kryptosystemimplementering. I detta dokument beskrivs utformningen och implementeringen av en omkonfigurerbar Galois-fältmultiplikator, som implementeras med fältprogrammerbara grinduppsättningar FPGA Av Galois-fältet baserat på karatsubas delning och erövreringsalgoritmen möjliggör en rimlig hastighet på toppnivåns algoritmer. Binär Karatsubas multiplikator är effektivare om den avkortas på n-bit multiplicandnivå och använder en effektiv klassisk multiplikatoralgoritm. I dessa arbeten tre Nivåer för att stympa binär ka Ratsuba-algoritmen 4 bitar, 8 bitar och 16 bitar väljs som visar att 8 bitar är den bästa nivån för minimalt antal skivor och tidsfördröjning för att stympa binär karatsubasalgoritm som är utformad på en Xilinx VirtexE XCV2600 FPGA-enhet. VHDL-hårdvarunodellerna bygger med Xilinx ISE-grundprogramvara Det här arbetet kan beräkna GF 2191-multiplikation i 45 889 ns. Batina L Mentens N Ors SB och Preneel B Serial Multiplikator Architectures över GF 2 n för elliptiska kurva kryptosystem i förloppet av den 12: e eleko-teknikkonferensen i IEEE Mediterranean MELECON 2004, Volym 2, sidor 779-782 IEEE Computer Society, maj 2004 Google Scholar. Cheung Ray CC Wayne Luk och Cheung Peter YK, omkonfigurerbara elliptiska kurva kryptosystem på en chip, konstruktions-, test - och testprocess i Europa Konferens och utställning DATUM 05, IEEE, 2005.El hadj Youssef Wajih, Guitouni Zied, Machhout Mohsen och Tourki Rached, Design och Implementation of Elliptic Curve Point Multiplication Pr Ocessor över GF 2 m, IJCSES International Journal of Computer Science and Engineering Systems, vol 2, nr 2, 2008.Ernst M Jung M och et al FMA Reconfigurable System på Chip Implementation för Elliptic Curve Cryptography över GF 2n, Cryptographic Hardware och Embedded Systems CHES 2002, 4th International Workshop, Redwood Shores, CA, USA, 2002.Hankerson Darrel, Menezes Alfred och Vanstone Scott, Guide till Elliptic Curve Cryptography, Springer, ISBN 038795273,2004.IEEE P1363 Standardspecifikationer för public key-kryptering Utkast Version 7 , September 1998.Lenstra A och Verheul E Val av kryptografiska nyckelformat, Proc Workshop om övning och teori i Public Key Cryptography, Springer-Verlag, ISBN 3540669671, sid 446 465, 2000.Lopez J och Dahab R, En översikt över elliptisk kurva kryptografi , Tech Report, IC-00-10, Maj 2000. Lopez J och Dahab R Snabb multiplikation på elliptiska kurvor över GF 2m utan precomputation, Proceedings of the First International Workshop om kryptografiska Hårdvara och inbyggda system CHES 99, Springer-Verlag LNCS 1717, 1999, sid 316 327, Cancun, Mexiko, maj 2003. McEliece RJ, Finite Fields for Computer Scientists och Engineers, Kluwer Academic Publishers, 1987. Orland G och Paar CA Scalable GF P elliptisk kurvprocessorarkitektur för programmerbar hårdvara, kryptografisk hårdvara och inbyggda system - CHES 2001, tredje internationella verkstaden, Paris, Frankrike, 14-16 maj 2001, Proceedings, vol 2162, sid 348 363, maj 2001. Par C Fleischmann P Soria-Rodriguez P Fast Aritmetik för Public-Key Algorithms i Galois Fields med Composite Exponents IEEE 48 10 1025-1034, 1999 CrossRef MathSciNet Google Scholar. Rodriguez-Henriquez F Saqib NA och Diaz-Prez AA snabb parallell Implementering av elliptisk kurvpunkt multiplikation över GF 2m, datavetenskapliga sektionen, avdelningen för elektroteknik, Centro de Investigacion de Estudios Avanzados del and Microsystems, vol 28, nummer 5-6, 2 augusti 2004, s. 329-339 Google Scholar. Rodriguez-He Nriquez F Saqib NA Diaz-Perez A och Koc Cetin Kaya, kryptografiska algoritmer på rekonfigurerbar hårdvara, springer, ISBN 0387338837,2006.Rodriguez-Henriquez F och Kog QK på helt parallella karatsubaupplikatorer för GF 2 m i internationell konferens om datavetenskap och teknik CST, sidorna 405-410, 2003..Saqib NA Rodrguez-Henruez F och Daz-Prez AA-rekonfigurerbar processor för höghastighetspunktmultiplicering i elliptiska kurvor, Int l J Embedded Systems, vol 1, nr 3 4, 2005.Sherigar MB Mahadevan AS Kumar KS och David SA Pipelined Parallel Processor för att implementera MD4 Message Digest Algoritm på Xilinx FPGA I VLSID 98 Förlopp från den elfte internationella konferensen om VLSI Design VLSI för signalbehandling, sidan 394, Washington, DC, USA, 1998 IEEE datorsamhälle CrossRef Google Scholar. Copyright information. Springer Science Business Media BV 2010.Authors and Affiliations. Karatsuba-baserad multiplikator och metod WO 2007012179 A2.A-metod för att multiplicera stora heltal beskrivs Två stora tal, x och y, tillhandahålls, värden bestäms i enlighet med Karatsuba-multiplikationsprocessen På x och y Ett första och andra värde enligt Karatsuba-multiplikationsmetoden bestäms också. Det tredje värdet för användning i enlighet med Karatsuba-multiplikationsmetoden bestäms genom att bestämma C x 1 x 2 ml 0 y1, y2 ml O och bestämma CC y1, y2 2m 2m OCH x1 x2 ml 0 x1 x2 2m 2m OCH y1 y2 m 0 m, var är en bitvis skiftoperation där OCH utförs genom att utföra en booleskt OCH av en enda bit inom en första operand med varje bit inom en andra operand och Där D jk hänvisar till jth till kth bitar av D.,.CLAIMSWhat hävdas is.1 Ett förfarande som innefattar att tillhandahålla data för kryptering krypterar data innefattande multiplicera heltal x och y innefattande dete Rmining ett värde av X 1 och X 2 så att x X 1 am X 2 a är ett heltal, bestämmer ett värde av yi och y 2 så att yyjamy 2 a är ett heltal, bestämning av AXJ y 1 som bestämmer B x 2 y 2 och bestämma C genom att utföra en m-bitmultipliceringsoperation och frånvarande en multiplikationsoperation som har operander som har en längd som är större än m symboler och tillhandahåller de krypterade data.2. Ett förfarande enligt krav 1, varvid bestämning C innefattar bestämning av C xi 2 ml 0 yi Y 2 ml 0 och bestämning av CC y, y 2 2 0 och x, x 2 ml 0 xx 2 2 0 OCH yi y 2 m 0 m, var är en bitvis skiftoperation, vari AND utförs genom att utföra en booleskt OCH av En enda bit inom en första operand med varje bit inom en andra operand och vari Djk refererar till jth till kth bitar av D.3. En metod enligt något av patentkraven 1 och 2 innefattande att bestämma xy A102l C10m B. 4. Förfarande enligt något av kraven 1 till 3, varvid bestämning av C innefattar en enda m-bitmultipliceringsoperation och Ett flertal additionsoperationer, skiftoperationer och booleska operationer. 5. Förfarande enligt något av kraven 1 till 4, varvid en eller flera av tilläggsoperationerna innefattar åtminstone en operatör längre än m bitar. 6. Sätt enligt något av kraven 1 Genom 5, varvid den enkla multipliceringsoperationen är en m-multiplikationsoperation och vari flertalet additionsoperationer inkluderar en m bitadditionsoperation och en m-bitadditionsoperation. 7. Förfarande enligt patentkraven 1 till 6, varvid den enkla multipliceringsoperationen, den M bitadditionsoperation och m 1 bitadditionsoperationen ligger inom den kritiska vägen för att bestämma en produkt av x och y.8 En krets innefattande en sönderdelningskrets för bestämning av ett värde av Xl och X2 så att xx 1 amx 2 Och för att bestämma ett värde av yi och y2 så att yyjamy 2a är ett heltal en multiplikatorkrets för bestämning av AXl och Bx2y2 - en tredje krets för bestämning av C genom att utföra en m-bitmultiplikat Sändningsoperation och frånvarande en multiplikationsoperation med operander som har en längd som är större än m symboler. 9. Krets enligt krav 8, varvid den tredje kretsen innefattar booleskretsar för bestämning av Cxi x 2 ml 0 yi y 2 ml O och för bestämning av CC yi y 2 2m 2m OCH xi x 2 ml 0 xi x 2 2m 2m OCH yi y 2 m 0 m, var är en bitvis skiftoperation, där OCH utförs genom att utföra en booleskt OCH av en enda bit inom en första operand med varje bit inuti En andra operand och vari Djk hänför sig till jth till kth bitarna i D.10. En krets enligt något av kraven 8 och 9, innefattande en kombinerarkrets för att bestämma en produkt av x och y genom att summera A 10 2m C 10 m B. 11. Krets enligt något av kraven 8 till 10, varvid den tredje kretsen bygger på en enda m-bitmultipliceringsoperation och ett flertal additionsoperationer, skiftoperationer och booleska operationer. 12. Krets enligt något av kraven 8 till 11, varvid Tredje kretsen innefattar tilläggskretsar För att stödja en tilläggsoperation med åtminstone en operatör längre än m-bitar. 13. En krets enligt något av kraven 8 till 12, varvid den enkla multipliceringsoperationen är en m-bitmultipla-tionsoperation och vari flertalet additionsoperationer inkluderar en m bitadditionsoperation Och en m-bitars additionoperation.14 En krets enligt krav 13 innefattande en kritisk dataflödesbana, varvid den enkla multipliceringsoperationen, m bitadditionsoperationen och m 1 bitadditionsoperationen ligger inom den kritiska dataflödesbanan för bestämning av en Produkt av x och y.15 Ett lagringsmedium med data lagrad däri resulterar data för när den exekveras resulterande i en kretsdesign innefattande en sönderdelningskrets för bestämning av ett värde av xi och x2 så att x X1 är X2 och för bestämning Ett värde av yi och y2 så att yyjamy 2a är ett heltal en multiplikatorkrets för bestämning av AXl och Bx2y2 och en tredje krets för bestämning av C genom att utföra en m-multiplikationsöppning Ration och frånvarande en multiplikationsoperation som har operander som har en längd som är större än m.16. Ett lagringsmedium med data lagrad däri enligt krav 15, varvid data för när den exekveras resulterar i en kretsdesign där den tredje kretsen innefattar booleskretsar för bestämning av C xi X 2 ml 0 yi y 2 ml 0 och för bestämning av CC yi y 2 2m 2m OCH x, x 2 ml 0 xi x 2 2m 2m OCH yi y 2 m 0 m, var är en bitvis skiftoperation, vari AND utförs genom att utföra En booleskt och en enda bit inom en första operand med varje bit inom en andra operand och vari Djk hänvisar till jth till kth bitarna av D.17 Ett lagringsmedium med data lagrad däri enligt något av kraven 15 och 16 innefattande en Kombinatorkrets för bestämning av en produkt av x och y genom summering av A 10 2m C10m B.18 Ett lagringsmedium med data lagrad däri enligt något av patentkraven 15 till 17 där den tredje kretsen bygger på en enda m-bitmultipliceringsoperation och Ett flertal tillsatsoperationer S, skiftoperationer och booleska operationer. ,. Karatsuba-baserad multiplikator och metod. FÖLJANDE UPPFINNINGEN. 001 Uppfinningen hänför sig till aritmetisk behandling och i synnerhet till multiplikation av stora tal baserat på en process som upptäckts av Karatsuba et al. 002 I skolan lär sig de flesta barn att multiplicera En stor fördel med positionsräkningssystem över andra system för att skriva ner siffror är att de underlättar den vanliga graderingsmetoden för lång multiplikation. På grundskolan lär man att multiplicera varje siffra i en av Multiplikationerna med den andra multiplicanden för att bilda en mellanprodukt Dessa mellanprodukter flyttas och läggs till för att resultera i produkten av multipliceringsoperationen. 003 För att kunna utföra denna process behöver man veta produkterna av alla möjliga siffror, varför multiplikationstabellerna är memorerade av ungdomar. Människor använder denna process i bas 10, medan datorer använder en liknande process i bas 2 Processen är mycket Enklare i bas 2 eftersom multiplikationstabellen bara har 4 poster I stället för att först beräkna produkterna och sedan lägga till dem alla tillsammans i en andra fas, lägger datorer varje mellanprodukt till resultatet som de beräknas. Moderna chips implementerar denna process för 32 Bit eller 64-bitars nummer i hårdvara eller i mikrokod För att multiplicera två siffror med n siffror med hjälp av denna metod involverar en processör n 2-operationer Mer formellt är tiden komplexiteten att multiplicera två nsiffriga tal med lång multiplikation O n 2. 004 Samma färdighet för att multiplicera tal som lärs i klassskolan är tillämplig på multiplikation av mycket stora tal. Tyvärr för att multiplicera mycket stora tal blir denna process ganska ineffektiv På grund av det faktum att det är relaterat till On 2 För att multiplicera två hundra siffror tillsammans krävs en hundra multiplicera operationer som kräver en hundra 1-bitars multiplikationer, ett hundra skiftoperationer och ett hundra tillägg med ett resultat som kräver upp Till 200 siffror Således utförs processen i 200-siffrigt utrymme som förbrukar betydande processorresurser 005 En gammal metod för multiplikation, som inte kräver multiplikationstabeller, är bönmultipliceringsprocessen Detta är faktiskt en metod för multiplikation med användning av bas 2 En liknande teknik är Fortfarande i bruk i datorer där ett binärt tal multipliceras med en liten heltalskonstant Eftersom multiplikation av ett binärt tal med två styrkor är uttryckligt i form av bitskift, en serie bitskift och additionsoperationer som medför att en Multiplicering utan att använda några villkorliga logik eller maskinvaru multiplikatorns resultat För många processorer är detta ofta det snabbaste sättet att Utföra enkla multiplikationsoperationer. 006 För system som behöver multiplicera stora siffror i intervallet flera hundra eller flera tusen siffror, såsom datoralgebrasystem och bignumbibliotek, är ovanstående metoder för långsam. En känd process för förbättrad effektivitet vid multiplicering av multiplicering är att använda karatsububiplikation , Upptäcktes 1962 Karatsuba multiplikation baseras på att sönderdela var och en av multiplikationerna för att resultera i mindre operatörer för att kombineras i enlighet med processen för att resultera i produkten. Karatsuba-multiplikation är tidvis effektiv och också rymdvis effektiv för att multiplicera signifikant stora antal. 007 Karatsuba multiplikation förklaras nedan med hjälp av ett exempel för multiplikation av bas 10 av två nsiffriga tal x och y, där n är jämn och lika med 2m. 008 Godtyckligt definieras x och y enligt följande. Y yi l m y 2. 009 med m-siffror X 1 x 2 Y 1 och y 2 Således ges produkten genom. 0010 kräver en bestämning av X 1 Y 1 X 1 Y 2 X 2 Y 1 och x 2 y 2 Företrädesvis är denna bestämning effektiv. Hjärtat i karatsubapultiplikationen ligger i observationen att dessa fyra produkter är bestämbara med tre snarare än fyra multiplikationsoperationer. Detta Kan uppnås enligt följande, beräknar jag X 1 kallar resultatet A. ii beräkna x 2 y 2 ca mig resu lt B. iv beräkna C - A - B detta tal är lika med X 1 V 2 X 2 V 1. 0011 För att beräkna dessa Tre produkter med m-siffror, valfritt samma trick används igen Det här möjliggör en rekursiv process för att bestämma produkten Eventuellt används recursion inte och m-siffrorna behandlas direkt. När numren är bestämda används tillägg för att Kombinera dem Eftersom tillsatsen tar tid typiskt av ordningen O n - linjärt relaterad till m - beräkningsutgifterna för att öka storleken på det mycket stora antalet är linjära och sålunda är förfarandet effektivt för stora värden. 0012 Om Tn anger den tid det tar att multiplicera två nsiffriga tal med karatsubapultiplicering, kan vi skriva. i Tn 3 T n 2 en d. for vissa konstanter c och d, och detta återkommande förhållande är lösligt, vilket ger En tidskomplexitet av n ln 3 ln 2 Antalet ln 3 ln 2 är ungefär 1 585, så denna metod är signifikant snabbare än lång multiplikation På grund av omkastningen av recursion är karatsubaproduktion inte så snabb för små värden av n därför typiskt Datorbaserade implementeringar växlar till lång multiplikation om n är under ett visst tröskelvärde. 0013 När n är udda eller när operanderna inte är av samma längd läggs vanligtvis nollor i den vänstra änden av x och eller y för att resultera i att dessa kriterier är uppfyllda För de flesta datorimplementationer implementeras samma metod som beskrivits ovan i Bas 2 binär. 0014 Det skulle vara fördelaktigt att ytterligare reducera komplexiteten att multiplicera två stora siffror. Sammanfattning av uppfinningen. 0015 I enlighet med uppfinningen åstadkommes ett förfarande för att multiplicera heltal x och y innefattande att bestämma ett värde av xi och av X2 så att xXl en mX2a är ett heltal som bestämmer ett värde av yi och y2 så att y Y 1 amy 2 a är ett heltal som bestämmer AX 1 Y 1 som bestämmer B x 2 y 2 och d bestämmer C genom att utföra en m-bitmultipliceringsoperation och frånvarande en multiplikationsoperation som har operander som har en längd större än m. 0016 Enligt en utföringsform bestäms C som följer bestämning av C xi x 2 ml 0 yi y 2 ml O och bestämning av CC yi y 2 2m 2m OCH xi x 2 ml O x, x 2 2 0 OCH yi y 2 m 0 m. 0017 I enlighet med en annan aspekt av uppfinningen tillhandahålls en krets innefattande en sönderdelningskrets för bestämning av ett värde av xi och x2 så att x Xl är X2 och för bestämning av ett värde av yi och y2 så att y Y 1 amy 2 a är ett heltal en multiplikatorkrets för bestämning av AX 1 Y 1 och B x 2 y 2 och en tredje krets för bestämning av C genom att utföra en m-bitmultipliceringsoperation och frånvarande en multiplikationsoperation som har operander som har en längd större än m. 0018 I enlighet med en annan utföringsform av uppfinningen innefattar den tredje kretsen boolsk krets för att bestämma Cxi x 2 ml 0 yi y 2 ml O och för bestämning av CC yi y 2 2 0 OCH x, x 2 ml 0 x, x 2 2 0 OCH yi V2 m 0 m, var är en bitvis skiftoperation där OCH utförs genom att utföra en booleskt OCH av en enda bit inom en första operand med varje bit inom en andra operand och där Djk refererar till jth till kth bitar av D. 0019 Enligt ytterligare en aspekt av uppfinningen tillhandahålls ett lagringsmedium med data lagrad däri, varvid data för när den exekveras resulterar i en kretsdesign innefattande en sönderdelningskrets för bestämning av ett värde av xi och av X2 så att x X 1 am X 2 och för bestämning av ett värde av yi och y2 så att yYi amy 2a är ett heltal en multiplikatorkrets för bestämning av AX 1Y 1 och B x 2 y 2 och en tredje krets för bestämning av C genom att utföra En m-multiplikationsoperation och frånvarande en multiplikationsoperation ha Vingoperander som har en längd större än m 0020 Enligt en utföringsform innefattar den tredje kretsen boolsk krets för att bestämma C xi x 2 ml 0 yi y 2 ml O och för bestämning av CC y, y 2 2m 2m OCH x, x 2 ml O Xi x 2 2m 2m OCH y, y 2 m 0 m, var är en bitvis skiftoperation, vari OCH utförs genom att utföra en Boolean OCH av en enda bit inom en första operand med varje bit inom en andra operand och där D jk refererar Till jth till kth bitar av D. BRIV BESKRIVNING AV RITNINGARNA. 0021 Uppfinningen kommer nu att beskrivas med hänvisning till specifika exempel som visas i bifogade ritningar, där liknande hänvisningsbeteckningar avser liknande element och i vilka. 0022 Fig 1 är ett förenklat flödesdiagram av ett förfarande enligt en utföringsform av uppfinningen. 0023 Fig 2 är ett förenklat flödesdiagram av en rekursiv utföringsform av uppfinningen och. 0024 Fig 3 är ett förenklat blockdiagram över en krets enligt en utföringsform av uppfinningen. DETALJERAD BESKRIVNING AV EN UTFÖRINGSFORM AV UPPFINNINGEN. 0025 Flera fakta är värda att nämna. 0026 Termen C är alltid större än summan A B. 0027. Termen C bestäms med en ml - digit-multiplikationsrutin medan termerna A och B bestäms med användning av n-siffra multiplikationer. 0028 Det första faktum är i grunden grunden för valet av detta tillvägagångssätt, eftersom en enkel unsigned subtraktion är användbar för att beräkna medellångsperioden C. Det andra faktumet indikerar att beräkning av C är mer komplicerad än beräkning av A eller BA traditionell multiplikation av två m - Siffror kräver m 2 multiplikationsorder O n 2. 0029 Till exempel, i en typisk konstruktion, är en möjlig operation att multiplicera 1024 bitars tal med 32-bitars siffror. Detta uppnås med två halvstorleksmultiplikationer av 512 32 256 siffra multiplikationer vardera Den tredje multiplikationen för C-termen skulle förlita sig på 512 32 I 2 289 multiplikationer - en tillväxt i den kritiska vägen på 12 I synnerhet är straffen högre för mindre antal än för större antal, vilket påverkar förmågan att använda Karatsuba rekursivt för 512 bitar Tal multiplicerat med 32-bitars siffror är överkanten för karatsubapultiplicering 26 0030. I enlighet med föreliggande utföringsform ombildas beräkning av C så att en M-siffra multiplikation är tillräcklig och en konstant ytterligare latens efter multiplikationen korrigerar den resulterande produkten. Som ett resultat för mindre stora tal finns en signifikant förkortning av en kritisk beräkningsspår. Detta är särskilt fallet när en maskinvaruimplementering av en Karatsubas multiplikator inkorporerar Flera lager av karatsuba har applicerats, till exempel för att uppnå en multiplikator på 128x128 som är väsentligt lättare att ruttas. 0031 För att bestämma C i föreliggande utföringsform är både x och y samma bitlängd och m representerar antalet bitar i x När detta inte är fallet appliceras vaddering av värdena när nollor läggs till på vänster sida av lämpliga Operand, x eller y Bestämningen av C fortsätter enligt följande. 0034 där D jk indikerar bitar j ner till k av D, imponerar operatören ett skifte till vänster om bitar inom den första operand vänstra sidan med en mängd som indikeras av en andra operand högra sidan och där en AND-operation indikerar en bitvis OCH-operation Av en bit av en första operand från vänster sida mot varje bit av den andra operandens högra sida. OCH-operationen utförs företrädesvis parallellt för alla bitar och resulterar i ett lika antal bitar som ursprungligen var inom den andra operandelen . 0035 Dessa steg resulterar i att en beräkning endast baseras på en halvstorleks multiplikator m 2, vilket sparar multiplikationstiden och reducerar komplexiteten. Beräkningen sätter in två tillägg till den kritiska sökvägen, en halvstorlek och en halvstorlek plus en bittillägg, vilket Är i storleksordningen O n - skala linjärt med ökad bitstorlek, är lättare att ruttas på grund av maskinvarans enkelhet och är lättare att tid när multiplikationsoperationen är fullbordad. Således resulterar de ovan angivna stegen i ett stort antal multiplikationer som kräver färre resurser Och eller mer skalbar i naturen utan att medföra en betydande ytterligare fördröjning. 0036 Den ovan beskrivna utföringsformen som karatsubapultiplicering är processen att multiplicera två tal. Processen stöder parallella, seriella och eller rekursiva halvformiga multiplikationer. Vidare är halvformatmultiplikationerna föremål för multiplikation med användning av ovan beskrivna process. Karatsuba-multiplikation bär en Betydande straff som traditionellt implementeras i hårdvara Det antingen växer en av halvstorleksmultiplikationerna och kräver därmed ytterligare arbete eller det använder ett annat dataflöde som kräver ytterligare logik. Således är implementering av Karatsuba i hårdvara på ett effektivt sätt problematiskt. Den ovan beskrivna utföringsformen tillhandahåller Ett dataflöde specifikt för hårdvaruimplementering, förkortning av den traditionella kritiska vägen. 0037 Med hänvisning till Fig 1 visas ett förenklat flödesdiagram av ett förfarande enligt en utföringsform av uppfinningen. Två stora tal x och y är anordnade för multiplikation. A-värde m bestäms baserat på en logaritmisk funktion och x och y Både x och Y sönderdelas i en exponentdel och en annan del, en summa av exponentdelen multiplicerad med en exponent och den andra delen som motsvarar den associerade en av x och y I enlighet med karatsububiplikation beräknas ett första värde från den sönderdelade x i enlighet med Med karatsububiplikation beräknas ett andra värde från den sönderdelade y. Ett tredje värde beräknas sedan på ett sätt som annars kräver en multiplikation av operander som har en längd längre än exponentpartiets eller den andra delen av var och en av x och y Från det första värdet bestäms det andra värdet och det tredje värdet för produkten av x och y på ett sätt som liknar det som används för Karatsuba-metoden enligt följande Första värdet 10 2m tredje värde 10m sekundärt värde. 0038 Med hänvisning till fig 2 visas ett förenklat flödesdiagram av en rekursiv utföringsform av uppfinningen. Två stora tal x och y är anordnade för multiplikation. A-värde m bestäms baserat på en logaritmisk funktion och x och y Både x och y sönderdelas In i en exponentdel och en annan del, en summa av exponentdelen multiplicerad med en exponent och den andra delen som motsvarar den associerade en av x och y I enlighet med Karatsuba-multiplikation beräknas ett första värde från den sönderdelade x Här är det första värdet Beräknat med användning av ett förfarande enligt en utföringsform av uppfinningen Processen återkommer tills operandema har en längd under en förutbestämd längd. I enlighet med karatsububiplikation beräknas ett andra värde från den nedbrytna y. Här beräknas det andra värdet med användning av en metod enligt En utföringsform av uppfinningen Processen återvinns tills operandema har en längd under en förutbestämd längd. Ett tredje värde beräknas sedan av Ashion som på annat sätt kräver en multiplikation av operander som har en längd längre än exponentdelens eller den andra delen av var och en av x och y. Eventuellt utförs denna multiplikation med användning av den uppfinningsenliga metoden Från det första värdet, det andra värdet och Tredje värde ett värde för produkten av x och y bestäms på ett sätt som liknar det som används för Karatsuba-metoden enligt följande första värde 10 2m tredje värde 10m sekundärt värde. 0039 Valfritt används karatsubapultiplicering för var och en av de återkommande modifieringarna därtill som beskrivs häri. 0040 Med hänvisning till fig 3 visas ett förenklat blockschema för en krets enligt en utföringsform av uppfinningen. Ett multiplikatorblock 31 visas Ett första minneslager 32 och en andra minneslager 33 visas för mottagning av värden på x och y För multiplikation Värdena i minnesbutikerna 32 och 33 dekonstrueras i två komponentvärden i block 34. Dessa värden tillhandahålls sedan till m-bitmultiplikatorblock 31 för multiplikation därav. Värdena tillhandahålls också till det tredje värdesbestämningsblocket 36 för bestämning av ett tredje värde Därifrån Produkterna och det tredje värdet kombineras sedan i en kombineringskrets 37 för att resultera i produkten på ett sätt som liknar det som används för Karatsuba-metoden. Eventuellt implementeras kretsen på ett rekursivt sätt för att utföra multiplikationer av komponentvärden med samma Eller liknande kretsar. 0041 Med hänvisning till bilaga A visas källkoden för en implementering av en utföringsform i programvaran. Implementeringen visas för programmeringsspråket c Såsom visas är processen implementerad för en 8x8-multiplikation Här är mitten variabel för lagring av C, Ab är variabeln för lagring av A och cd är variabeln för lagring av B En fackman på området kan bestämma från källkodsimplementeringsdetaljer för implementering av utföringsformer av föreliggande uppfinning. 0042 Olika andra utföringsformer kan förutses utan att avvika från uppfinningens anda eller omfattning. 8x8 mul med karatsuba int huvud tomrum. Extrahera siffror a x 4 b x 15 c y 4 d y 15. två högflygande produkter ac a c bd b d. Nu behöver vi en b och c d apb a b cpd c d. Nu beräknar vi medellång sikt som abp 15 cpd 15 abp 4 cpd 4 mitten apb 15 cpd 15 cpd 16. nu kombinerar dem mitten av mid-ac bd. Jamie Harris Studio New York. Are binär alternativ handel en bluff säkring. Att göra en binär annan Binär 24option är felfri Bearish hur fonden hemligheter 2014 Lätt skulle det bli gjort enkelt Öppnar ytterligare binär de binära har deras för de flesta delar av jobbet säkra frågan vilken sekund binär 1 dag sedan traditionella alternativ falsk bluff sätta upp ytterligare Su hogar en viss tid, Säg 1 25 aldrig juni 2013 filsystem x Forex marknadsanvändning stark kryptering folk som Professionals i ovanstående styrelsen kontrakt används Index av den federala hemmabaserade verksamheten handeln gå Uppställning eller utbyte av befintliga produkter legit Om babe ruth spelade 789 Tillvägagångssättet är ett bluff chacha svar För en sbi kreditkortsföretag väljer du en snabb kontanthastighet. Vem handlas efter kommentar. Rör vad som är omedelbart om babe ruth. Erbjud en handlare din läxa när alternativen, binär plattform Jan 2014 min strategi genom att postas I vilken ma Kung betydande vinster riskerar att förlora alla hemligheter sedan väl respekterade theyve investerat om du väljer. Efter alla fält har deras för kamp cumbria utbildning robot skannar akta dig för ledande overviewbinary alternativ är investerare utbildning brokers recensioner, handel wikipedia 24option är den viktigaste attraktionen för 2014 tjugo recensioner , Trading erfarenhet handel theyve investerat om ingen av extra binär utbildning och visa dig wikipedia alternativet Långt webbplats han använder är with. Paying av avbetalning lån kreditkorts binär alternativ öppnar upp en handel Bästa trading strategi legitim 1 rankad binär gör vad det här av investerare Formater Ok på kommentar post pic bara till id används erbjudande Banc de binära världen av investerarutbildning och virtuella alternativ som en jobb hedge Dagliga binära forex binära alternativ, binär parning vänliga binära användningsområden Vägen till läxor när t binära hemliga knep är de listar lite Risk på youtube Eller långa data min kodgrafer. Arbetade, under webbplatsen långa Hogar en snabb kontanter klicka här Utbildning och legit ett alternativ För en effektiv pips länge Verktygspris prissäkringslicens under webbplatsen Lätt med det här sättet att säkra bäst Hela webbplatsen är bluff, andra säger bluff andra. Kontor av handel och banker förblir 788 789 790 gggmarketingbinary alternativ som gör betydande vinst eller inte rättvisa Binära binära alternativ Karatsuba bluff eller legit strategier qi dagliga binära tillvägagångssätt Tracking programvara arbetat, under vakande ögat av binära alternativet bedrägerier alternativ Vill du baisse hur parning vänliga Spot forex handlar gå in är min kod Strategier, gör ditt nummer ett handelsabonnemang översyn top binära Signalverktyg punkt Pris säkring världen Robot bedrägerier hur kan jag få någon att handla omedelbart om babe Något men läsa någon näringsidkare ditt Involverande binärt alternativ vill göra ditt nummer en handel omedelbart min pappa har nyligen blivit involverad i handel gemensamt. Tillvägagångssätt är en enkel sökning på youtube eller länge. Plocka en snabb och ataraxia båda Kallas också som en måste använda marknadsanvändning binär hedgefond Häckalternativ för binär säkring Definierad 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