Wednesday 12 July 2017

Karatsuba Binário Opções


Reconfigurable implementação de Karatsuba multiplicador para Galois campo em Elliptic Curves. Cite este artigo como El-sisi AB Implementação Reconfigurable Shohdy SM Ismail N de Karatsuba Multiplicador para Galois Campo em Curvas Elípticas em Sobh T Elleithy K Mahmood A eds Novel Algoritmos e Técnicas em Telecomunicações Este trabalho descreve o projeto e a implementação de um multiplicador de campo Galois reconfigurável, que é implementado usando matrizes de portão programáveis ​​em campo. FPGAs O multiplicador Do campo de Galois baseado no algoritmo de divisão e conquista de karatsuba s permite uma aceleração razoável dos algoritmos de chave pública de nível superior. O multiplicador de Karatsuba binário é mais eficiente se for truncado no nível de multiplicando de n bits e usar um algoritmo de multiplicador clássico eficiente. Níveis para truncar ka binário Algoritmo ratsuba 4 bits, 8 bits e 16 bits são escolhidos mostrando que 8 bits é o melhor nível para o número mínimo de fatias e tempo de truncar binário karatsuba algoritmo que é projetado em um Xilinx VirtexE XCV2600 FPGA dispositivo Os modelos de hardware VHDL estão construindo usando Xilinx ISE software de fundação Este trabalho é capaz de calcular GF 2191 multiplicação em 45 889 ns. Batina L Mentens N Ors SB e Preneel B Multiplicador Serial Arquiteturas sobre GF 2 n para Cryptosystems Curva Elíptica Em Proceedings da 12 ª IEEE Mediterranean Conferência Eletrotécnica MELECON 2004, Volume 2, páginas 779-782 IEEE Computer Society, maio de 2004 Google Scholar. Cheung Ray CC Wayne Luk e Cheung Peter YK, Reconfigurable Elliptic Curve Cryptosystems em um Chip, Proceedings do Design, Automação e Teste na Europa Conferência e Exposição DATA 05, IEEE, 2005.El hadj Youssef Wajih, Guitouni Zied, Machhout Mohsen e Tourki Rached, Projeto e Implementação de Multiplicação de Ponto de Curva Elíptica Pr MJung M e et al Sistema Reconfigurável FMA na Implementação de Chip para Criptografia de Curva Elíptica sobre GF 2n, Hardware Criptográfico e Sistemas Embebidos CHES 2002, 4º Workshop Internacional, Redwood Shores, CA, EUA, 2002. Hankerson Darrel, Menezes Alfred e Vanstone Scott, Guia de Criptografia de Curva Elíptica, Springer, ISBN 038795273, 2004. PIE63 P1363 Especificações padrão para criptografia de chave pública Draft Version 7 , September 1998.Lenstra A e Verheul E Seleção de tamanhos de chave criptográfica, Workshop Proc sobre Prática e Teoria em Criptografia de Chave Pública, Springer-Verlag, ISBN 3540669671, pp 446 465, 2000.Lopez J e Dahab R, Uma Visão Geral da Criptografia de Curva Elíptica , Tech Report, IC-00-10, maio 2000.Lopez J e Dahab R Multiplicação rápida em curvas elípticas sobre GF 2m sem pré-computação, Procedimentos do Primeiro Workshop Internacional sobre Criptografia Hardware e Sistemas Embebidos CHES 99, Springer-Verlag LNCS 1717, 1999, pp 316 327, Cancun, México, Maio de 2003.McEliece RJ, Campos Finitos para Cientistas e Engenheiros de Computadores, Kluwer Academic Publishers, 1987.Orlando G e Paar CA Scalable GF P Arquitetura do processador de curvas elípticas para hardware programável, hardware criptográfico e sistemas embutidos - CHES 2001, III Workshop Internacional, Paris, França, 14 a 16 de maio de 2001, Proceedings, vol 2162, pp 348 363, maio de 2001.Paar C Fleischmann P and Soria-Rodriguez P Aritmética Rápida para Algoritmos de Chave Pública em Campos de Galois com Expositores Compostos IEEE 48 10 1025-1034, 1999 CrossRef MathSciNet Google Scholar. Rodriguez-Henriquez F Saqib NA e Diaz-Prez AA paralelo rápido Implementação de Multiplicação de Ponto de Curva Elíptica GF 2m, Departamento de Ciências da Computação, Departamento de Engenharia Elétrica, Centro de Pesquisas e Estudos Avançados e Microsistemas, Vol. 28, Edições 5-6, 2 de agosto de 2004, pp 329-339 Google Scholar. Rodriguez-He Nriquez F Saqib NA Diaz-Pérez A e Koc Cetin Kaya, Algoritmos Criptográficos em Hardware Reconfigurável, Springer, ISBN 0387338837,2006.Rodriguez-Henriquez F e Kog QK Sobre Multiplicadores Karatsuba Completamente Paralelos para GF 2 m Na Conferência Internacional de Ciência da Computação e Tecnologia CST, páginas 405-410, 2003.Saqib NA Rodrguez-Henruez F e Processador Reconfigurável Daz-Prez AA para Multiplicação de Pontos de Alta Velocidade em Curvas Elípticas, Int 1 J Sistemas Incorporados, vol 1, nos 3 4, 2005.Sherigar MB Mahadevan AS Kumar KS e David SA Processador paralelo Pipelined para implementar MD4 Message Digest Algoritmo em Xilinx FPGA em VLSID 98 Procedimentos da Décima Primeira Conferência Internacional sobre VLSI Design VLSI para Processamento de Sinal, página 394, Washington, DC, EUA, 1998 IEEE Computer Society CrossRef Google Scholar . Informação do direito autoral. O método de multiplicação de grandes números inteiros é revelado Dois grandes números, xey, são fornecidos, os valores são determinados de acordo com o processo de multiplicação de Karatsuba com base no método de multiplicação de Karatsuba Em x e y Um primeiro e segundo valores de acordo com o método de multiplicação de Karatsuba também são determinados O terceiro valor para uso de acordo com o método de multiplicação de Karatsuba é determinado pela determinação de C x1 x2 ml 0 y1, y2 ml 0 e determinação de CC y1, y2 2m 2m E x1 x2 ml 0 x 1 x 2 2m 2m AND y1 y2 m 0 m, onde é uma operação de deslocamento bit a bit, em que AND é executado executando um ET booleano de um único bit dentro de um primeiro operando com cada bit dentro de um segundo operando e Em que D jk refere-se aos j-ésimo k-ésimo bits de D.,.CLAIMSo que é reivindicado is.1 Método que compreende o fornecimento de dados para encriptação criptografar os dados compreendendo a multiplicação de inteiros xey compreendendo dete Rminando um valor de X 1 e de X 2 tal que x X 1 am X 2 a é um número inteiro, determinando um valor de yi e de y 2 tal que yyjamy 2 a é um número inteiro, determinando AXJ y 1 determinando B x 2 y 2 e determinação de C através da realização de uma operação de multiplicação de m bits e ausência de uma operação de multiplicação tendo operandos tendo um comprimento superior a m símbolos e fornecendo os dados criptografados.2 Método de acordo com a reivindicação 1 em que a determinação C compreende a determinação de C xi 2 ml 0 yi Y 2 ml 0 e, determinando CC y, y 2 2m 0 AND x, x 2 ml 0 xx 2 2m 0 AND yi y 2 m 0 m, onde é uma operação de deslocamento bit a bit, em que AND é executado executando um AND booleano Um único bit dentro de um primeiro operando com cada bit dentro de um segundo operando e em que D jk refere-se aos jth a kth bits de D.3. Um método de acordo com qualquer das reivindicações 1 e 2 compreendendo a determinação de xy A 10 2l C 10 m B. 4 - Método de acordo com qualquer uma das reivindicações 1 a 3, em que a determinação de C compreende uma operação de multiplicação de m bits simples e Uma pluralidade de operações de adição, operações de deslocamento e operações booleanas. 5. Método de acordo com qualquer das reivindicações 1 a 4, em que uma ou mais das operações de adição envolve pelo menos um operador mais longo do que m bits. 6. Um método de acordo com qualquer das reivindicações 1 Através de 5 em que a operação de multiplicação simples é uma operação de multiplicação de m bits e em que a pluralidade de operações de adição inclui uma operação de adição de m bits e uma operação de adição de m 1 bits. Um método de acordo com as reivindicações 1 a 6 em que a operação de multiplicação única, M de adição de bits e a operação de adição de 1 m estão dentro do caminho crítico para determinar um produto de x e y.8 Um circuito compreendendo um circuito de decomposição para determinar um valor de X 1 e de X 2 tal que x X 1 amx 2 E para determinar um valor de yi e y2 tal que yyjamy 2a é um inteiro um circuito multiplicador para determinar AX1 e Bx2y2 - um terceiro circuito para determinar C através da execução de uma multiplicação de m bits E sem uma operação de multiplicação com operandos com um comprimento superior a m símbolos.9 Um circuito de acordo com a reivindicação 8, em que o terceiro circuito inclui circuitos booleanos para determinar C xi x 2 ml 0 yi y 2 ml 0 e para determinar CC yi y 2 2m 2m E xi x 2 ml 0 xi x 2 2m 2m Y y y 2 m 0 m, onde é uma operação de deslocamento bit a bit, em que AND é executado executando um ET booleano de um único bit dentro de um primeiro operando com cada bit dentro Um segundo operando e em que D jk refere-se aos jth a kth bits de D.10. Um circuito de acordo com qualquer das reivindicações 8 e 9 compreendendo um circuito combinador para determinar um produto de xey por soma de A 10 2m C 10 m B. 11 - Circuito de acordo com qualquer uma das reivindicações 8 a 10, em que o terceiro circuito se baseia numa única operação de multiplicação de m bits e numa pluralidade de operações de adição, operações de deslocamento e operações booleanas. 12. Um circuito de acordo com qualquer uma das reivindicações 8 a 11, Terceiro circuito inclui circuito de adição Para suportar uma opera�o de adi�o com pelo menos um operador superior a m bits.13 Um circuito de acordo com qualquer uma das reivindica�es 8 a 12, em que a opera�o de multiplica�o �uma opera�o de multiplica�o de m bits e em que a pluralidade de opera�es de adi�o inclui uma opera�o de adi�o de m bits E uma operação de adição de m um bit.14 Um circuito de acordo com a reivindicação 13 compreendendo um caminho de fluxo de dados crítico, em que a operação de multiplicação simples, a operação de adição de m bits ea operação de adição de m 1 estão dentro do caminho de fluxo crítico de dados para determinar um Produto de x e y 15. Meio de armazenamento com dados armazenados no mesmo, os dados para serem executados resultando num desenho de circuito que compreende um circuito de decomposição para determinar um valor de xi e de x 2 tal que x X 1 am X 2 e para determinar Um valor de yi e y 2 tal que yyjamy 2a é um inteiro um circuito multiplicador para determinar AX1 e Bx2y2 e um terceiro circuito para determinar C executando uma operação de multiplicação de m bits E sem uma operação de multiplicação com operandos com um comprimento superior a m.16. Um meio de armazenamento com dados armazenados no mesmo de acordo com a reivindicação 15, os dados para quando executados resultando num desenho de circuito em que o terceiro circuito inclui circuitos booleanos para determinar C xi X 2 ml 0 yi y 2 ml 0 e para determinar CC yi y 2 2m 2m E x, x 2 ml 0 xi x 2 2m 2m Y y y 2 m 0 m, onde é uma operação de deslocamento bit a bit, em que AND é executado executando Um Boolean AND de um único bit dentro de um primeiro operando com cada bit dentro de um segundo operando e em que D jk refere-se aos jth a kth bits de D.17. Um meio de armazenamento tendo dados armazenados nele de acordo com qualquer das reivindicações 15 e 16 compreendendo um Combinador para determinar um produto de xey por soma A 10 2m C 10 m B.18 Meio de armazenamento com dados armazenados no mesmo de acordo com qualquer das reivindicações 15 a 17 em que o terceiro circuito se baseia numa única operação de multiplicação de m bits e Uma pluralidade de operações de adição S, operações de deslocamento e operações booleanas. , Multiplicador Baseado em Karatsuba e Método. CAMPO DA INVENÇÃO. A invenção refere-se ao processamento aritmético e mais particularmente à multiplicação de grandes números com base num processo descoberto por Karatsuba et al. 002 Na escola, a maioria das crianças aprende a se multiplicar Uma grande vantagem dos sistemas de numeração posicional em relação a outros sistemas de escrever números é que eles facilitam o método usual da série escolar de multiplicação longa Na escola, é ensinado a multiplicar cada dígito de um dos Os multiplicandos pelo outro multiplicando para formar um produto intermediário. Esses produtos intermediários são deslocados e adicionados para resultar no produto da operação de multiplicação. 003 Para realizar esse processo, é preciso conhecer os produtos de todos os dígitos possíveis, razão pela qual as tabelas de multiplicação são memorizadas pelos jovens Os seres humanos usam esse processo na base 10, enquanto os computadores empregam um processo similar na base 2 O processo é muito Mais simples na base 2, uma vez que a tabela de multiplicação tem apenas 4 entradas Em vez de primeiro calcular os produtos e, em seguida, adicioná-los todos juntos em uma segunda fase, computadores adicionar cada produto intermediário para o resultado como eles são computados Modern chips implementar este processo para 32 Bit ou números de 64 bits em hardware ou em microcódigo Para multiplicar dois números com n dígitos usando este método, um processador envolve n 2 operações Mais formalmente a complexidade de tempo de multiplicar dois números de n dígitos usando multiplicação longa é O n 2. 004 A mesma habilidade para multiplicar números ensinados na escola é aplicável à multiplicação de números muito grandes Infelizmente, para multiplicar números muito grandes, este processo torna-se bastante ineficiente Devido ao fato de que ele está relacionado com O n 2 Por exemplo, a multiplicação de dois números de cem dígitos juntos requer cem operações de multiplicação, cada uma requerendo cem multiplicações de 1 bit, cem operações de deslocamento e cem adições com um resultado exigindo até A 200 dígitos Assim, o processo é efetuado em espaço de 200 dígitos consumindo consideráveis ​​recursos de processador 005 Um método antigo de multiplicação, que não requer tabelas de multiplicação, é o processo de multiplicação camponesa. Ainda em uso em computadores onde um número binário é multiplicado por uma pequena constante inteira Uma vez que a multiplicação de um número binário por potências de dois é expressível em termos de deslocamentos de bit, uma série de deslocamentos de bit e operações de adição que tem o efeito de executar uma Multiplicação sem o uso de qualquer lógica condicional ou multiplicador de hardware resultados Para muitos processadores, este é frequentemente o caminho mais rápido para Realizar operações simples de multiplicação. 006 Para os sistemas que precisam multiplicar números enormes no intervalo de várias centenas ou vários milhares de dígitos, como sistemas de álgebra computacional e bibliotecas bignum, os métodos acima são muito lentos. Um processo conhecido para melhorar a eficiência na multiplicação de grande número é empregar a multiplicação de Karatsuba , Descoberta em 1962 a multiplicação de Karatsuba baseia-se na decomposição de cada um dos multiplicandos para resultar em operadores menores para serem combinados de acordo com o processo para resultar na multiplicação Karatsuba produto é tempo sábio eficiente e também espaço eficiente para multiplicar números significativamente grandes. 007 A multiplicação de Karatsuba é explicada a seguir por meio de um exemplo para a multiplicação de base 10 de dois números de n dígitos xey, em que n é igual e igual a 2m. 008 Arbitrariamente, xey são definidos da seguinte forma: yyi y m y 2. 009 com números de m dígitos X 1 x 2 Y 1 e y 2 Assim, o produto é dado por. 0010 requerendo uma determinação OfX 1 Y 1 X 1 Y 2 X 2 Y 1 e x 2 y 2 Preferencialmente, esta determinação é eficiente O coração da multiplicação de Karatsuba reside na observação de que estes quatro produtos são determináveis ​​com três em vez de quatro operações de multiplicação. Pode ser obtida da seguinte forma i calcular X 1 chamar o resultado A. ii calcular x 2 y 2 ca me resu lt B. iv calcular C - A - B este número é igual a X 1 V 2 X 2 V 1. 0011 Para calcular estes Três produtos de números de m-dígito, opcionalmente o mesmo truque é usado novamente Isto permite um processo recursivo para determinar o produto Opcionalmente, a recursão não é usada e os números de m-dígitos são processados ​​diretamente Uma vez que os números são determinados, a adição é usada para Combiná-los Como a adição leva tempo tipicamente da ordem O n - linearmente relacionada a m - as despesas computacionais de aumentar o tamanho dos números muito grandes são lineares e, como tal, o processo é eficiente para grandes valores. 0012 Se T n denota o tempo que leva para multiplicar dois números de n dígitos com a multiplicação de Karatsuba, então podemos escrever. i T n 3 T n 2 en d. para algumas constantes c e d, e esta relação de recorrência é solúvel, dando Uma complexidade de tempo de n ln 3 ln 2 O número ln 3 ln 2 é aproximadamente 1 585, por isso este método é significativamente mais rápido do que multiplicação longa Devido à sobrecarga de recursão, a multiplicação Karatsuba não é muito rápido para pequenos valores de n, portanto, típico As implementações baseadas em computador alternam para a multiplicação longa se n estiver abaixo de algum limiar. 0013 Quando n é ímpar ou quando os operandos não são do mesmo comprimento, tipicamente zeros são adicionados à extremidade esquerda de x ey para dar como resultado que esses critérios sejam atendidos. Para a maioria das implementações de computador, o mesmo método descrito acima é implementado em Base 2 binário. 0014 Seria vantajoso reduzir ainda mais a complexidade da multiplicação de dois grandes números. SUMÁRIO DA INVENÇÃO. 0015 De acordo com a invenção, é proporcionado um método de multiplicar os inteiros x e y compreendendo a determinação de um valor de xi e de X2 tal que xX1a mX2a é um número inteiro que determina um valor de yi e y2 tal que y Y 1 amy 2 a é um número inteiro que determina AX 1 Y 1 determinando B x 2 y 2 e d determinando C executando uma operação de multiplicação de m bits e ausente uma operação de multiplicação tendo operandos tendo um comprimento maior que m. 0016 De acordo com uma forma de realização C é determinada como se segue determinando C xi x 2 ml 0 yi y 2 ml 0 e determinando CC yi y 2 2m 2m E xi x 2 ml 0 x, 2 2 m 0 Y y y 2 m 2 0 M. 0017 De acordo com outro aspecto da invenção é proporcionado um circuito compreendendo um circuito de decomposição para determinar um valor de xi e de x2 tal que x X 1 am X 2 e para determinar um valor de yi e y 2 tal que y Y 1 amy 2a é um número inteiro um circuito multiplicador para determinar AX1Y1 e Bx2y2 e um terceiro circuito para determinar C executando uma operação de multiplicação de m bits e ausente uma operação de multiplicação tendo operandos com um comprimento maior que m. 0018 De acordo com outra forma de realização da invenção, o terceiro circuito inclui circuitos booleanos para determinar C xi x 2 ml 0 yi y 2 ml 0 e para determinar CC yi y 2 2m 0 AND x, x 2 ml 0 x, x 2 2m 0 AND yi V2 m 0 m, onde é uma operação de deslocamento bit a bit, em que AND é executado executando um ET booleano de um único bit dentro de um primeiro operando com cada bit dentro de um segundo operando e em que D jk refere-se aos jth a kth bits de D. 0019 De acordo com ainda outro aspecto do invento, é proporcionado um meio de armazenamento com dados armazenados no mesmo, os dados para quando executados resultando num desenho de circuito que compreende um circuito de decomposição para determinar um valor de xi e de X 2 tal que x X 1 am X 2 e para determinar um valor de yi e y 2 tais que yY 1 amy 2a é um número inteiro um circuito multiplicador para determinar AX1Y1 e Bx2y2 e um terceiro circuito para determinar C através da realização Uma operação de multiplicação de m bits e ausente uma operação de multiplicação ha Operandos tendo um comprimento maior que m 0020 De acordo com uma forma de realização o terceiro circuito inclui circuitos booleanos para determinar C xi x 2 ml 0 yi y 2 ml 0 e para determinar CC y, y 2 2m 2m AND x, x 2 ml 0 Xi x 2 2m 2m AND y, y 2 m 0 m, onde é uma operação de deslocamento bit a bit, em que AND é executado executando um ET booleano de um único bit dentro de um primeiro operando com cada bit dentro de um segundo operando e em que D jk se refere Aos jth a kth bits de D. BRIEF DESCRIÇÃO DOS DESENHOS. 0021 A invenção será agora descrita com referência a exemplos específicos como mostrado nos desenhos anexos nos quais números de referência semelhantes referem-se a elementos semelhantes e nos quais. 0022 A Fig. 1 é um diagrama de fluxo simplificado de um método de acordo com uma forma de realização da invenção. 0023 A Fig. 2 é um diagrama de fluxo simplificado de uma forma de realização recursiva da invenção e. 0024 A Fig. 3 é um diagrama de blocos simplificado de um circuito de acordo com uma forma de realização da invenção. DESCRIÇÃO DESIGNATIVA DE UMA REALIZAÇÃO DA INVENÇÃO. 0025 Vários fatos merecem destaque. 0026 O termo C é sempre maior que a soma A B. 0027 O termo C é determinado com uma rotina de multiplicação de dígitos m l enquanto que os termos A e B são determinados usando multiplicações de n dígitos. 0028 O primeiro fato é essencialmente a base para escolher esta abordagem, uma simples subtração não assinada é útil para calcular o termo médio, C O segundo fato indica que o cálculo de C é mais complicado do que o cálculo de A ou BA multiplicação tradicional de dois m - Por exemplo, numa construção típica, uma possível operação é multiplicar números de 1024 bits com dígitos de 32 bits. Isto é conseguido com duas multiplicações de tamanho médio de 512 32 multiplicações de 256 dígitos cada A terceira multiplicação para o termo C dependeria de 512 32 I 2 289 multiplicações - um crescimento no caminho crítico de 12 Em particular, a penalidade é maior para números menores do que para números maiores, afetando a capacidade de usar Karatsuba recursivamente Para 512 bits Números multiplicados por dígitos de 32 bits, a sobrecarga para a multiplicação de Karatsuba é 26. 0030 De acordo com a presente concretização, o cálculo de C é rearranjado de tal modo que um A multiplicação de m-dígitos é suficiente e uma latência adicional constante após a multiplicação corrige o produto resultante. Como resultado, para pequenos números maiores existe um encurtamento significativo de um caminho crítico de computação. Isto é particularmente o caso quando uma implementação de hardware de um multiplicador de Karatsuba incorpora Várias camadas de Karatsuba foram aplicadas, por exemplo, para atingir um multiplicador 128x128 que é significativamente mais fácil de rota. 0031 Para determinar C na presente forma de realização, tanto x como y são o mesmo comprimento de bit e m representa o número de bits em x Quando este não é o caso, o preenchimento dos valores é aplicado quando são adicionados zeros no lado esquerdo do apropriado Operando, x ou y A determinação de C prossegue da seguinte forma. 0034 onde D jk indica bits j para k de D, o operador impressiona um deslocamento à esquerda de bits dentro do primeiro lado esquerdo do operando por uma quantidade indicada por um segundo lado operando direito e onde uma operação AND indica uma operação AND bit a bit De um bit de um primeiro operando do lado esquerdo contra cada um dos bits do segundo operando lado direito A operação AND é preferencialmente realizada em paralelo para todos os bits e resulta num mesmo número de bits que estava originalmente dentro do segundo operando . 0035 Esses passos resultam em uma computação que depende apenas de um multiplicador de tamanho médio m 2, economizando assim tempo de multiplicação e reduzindo a complexidade. O cálculo insere duas adições ao caminho crítico -, um meio-tamanho e um meio-tamanho mais um bit Adições, que São da ordem de O n - escala linearmente com tamanho de bit aumentado, são mais fáceis de rota devido à simplicidade de hardware e são mais fáceis de tempo uma vez que a operação de multiplicação é concluída Assim, as etapas acima indicadas resultar em um número grande multiplicação requerendo menos recursos E ou mais escalonável na natureza sem incorrer um atraso adicional significativo. 0036 A forma de realização acima descrita, tal como a multiplicação de Karatsuba, é o processo de multiplicar dois números. O processo suporta multiplicações em tamanho médio paralelas, em série ou recursivas. Além disso, as multiplicações de tamanho médio estão sujeitas a multiplicação utilizando o processo acima descrito. Significativa como tradicionalmente implementada em hardware. Ou cresce uma das multiplicações de tamanho médio requerendo trabalho adicional, ou usa um fluxo de dados diferente requerendo lógica adicional. Assim, a implementação de Karatsuba em hardware de maneira eficiente é problemática. A forma de realização acima descrita proporciona Um fluxo de dados especificamente para a implementação de hardware, encurtando o caminho crítico tradicional. 0037 Com referência à Fig. 1, é mostrado um diagrama de fluxo simplificado de um método de acordo com uma forma de realização da invenção Dois números grandes xey são fornecidos para a multiplicação Um valor m é determinado com base numa função logarítmica ex e y Tanto x como Y são decompostas em uma porção de expoente e outra porção, uma soma da porção de expoente multiplicada por um expoente ea outra porção igual à associada de xey. De acordo com a multiplicação de Karatsuba, um primeiro valor é calculado a partir da decomposição x Com a multiplicação de Karatsuba, é calculado um segundo valor a partir do decomposto y Um terceiro valor é então calculado de uma forma que não requer uma multiplicação de operandos com um comprimento maior que o da porção de expoente ou a outra porção de cada um de x e y A partir do primeiro valor, o segundo valor e o terceiro valor, um valor para o produto de xey é determinado de uma forma semelhante à utilizada para o método de Karatsuba da seguinte forma Primeiro valor 10 2m terceiro valor 10 m segundo valor. 0038 Com referência à Fig. 2, é mostrado um diagrama de fluxo simplificado de uma forma de realização recursiva da invenção. Dois números grandes xey são fornecidos para a multiplicação. Um valor m é determinado com base numa função logarítmica ex e y Tanto de x como de y são decompostos Em uma porção de expoente e outra porção, uma soma da porção de expoente multiplicada por um expoente e a outra porção igual à associada de x e y De acordo com a multiplicação de Karatsuba, um primeiro valor é calculado a partir do decomposto x Aqui o primeiro valor é Calculado utilizando um método de acordo com uma forma de realização da invenção. O processo recursa até que os operandos tenham um comprimento abaixo de um comprimento predeterminado. De acordo com a multiplicação de Karatsuba, um segundo valor é calculado a partir do y decomposto. Aqui o segundo valor é calculado utilizando um método de acordo com Uma forma de realização da invenção O processo recursa até que os operandos tenham um comprimento abaixo de um comprimento predeterminado Um terceiro valor é então calculado em af Que é diferente de requer uma multiplicação de operandos com um comprimento maior do que o da porção de expoente ou a outra porção de cada um de xey. Opcionalmente, esta multiplicação é realizada utilizando o método da invenção a partir do primeiro valor, do segundo valor e da Terceiro valor um valor para o produto de xey é determinado de uma forma semelhante à usada para o método de Karatsuba como segue primeiro valor 10 2m terceiro valor 10 m segundo valor. 0039 Opcionalmente, a multiplica�o de Karatsuba �utilizada para cada uma das recurs�s sem as modifica�es aqui descritas. 0040 Com referência à Fig. 3, é mostrado um diagrama de blocos simplificado de um circuito de acordo com uma forma de realização da invenção. É mostrado um bloco multiplicador de m bits 31 Um primeiro armazenamento de memória 32 e um segundo armazenamento de memória 33 são mostrados para receber valores de x e y Para multiplica�o Os valores nos dep�itos de mem�ia 32 e 33 s� desconstru�os em dois valores de componente no bloco 34 Estes valores s� ent� proporcionados para m bloco de multiplicador de bits 31 para a sua multiplica�o. Os valores s� tamb� proporcionados ao terceiro bloco de determina�o de valor 36 para a determina�o de um terceiro valor Os produtos e o terceiro valor são então combinados num circuito de combinação 37 para resultar no produto de uma forma semelhante à utilizada para o método de Karatsuba. Opcionalmente, o circuito é implementado de uma forma recursiva para executar multiplicações de valores de componentes utilizando um mesmo Ou circuitos semelhantes. 0041 Referindo-se ao Apêndice A, o código fonte é mostrado para uma implementação de uma forma de realização no software A implementação é mostrada para a linguagem de programação c Como mostrado, o processo é implementado para uma multiplicação 8x8 Aqui, mid é a variável para armazenar C, Ab é a variável para armazenar A e cd é a variável para armazenar B Um especialista na técnica é capaz de determinar a partir dos detalhes de implementação de código fonte para implementar formas de realização da presente invenção. 0042 Numerosas outras formas de realização podem ser visualizadas sem afastamento do espírito ou âmbito da invenção. 8x8 mul com karatsuba int principal vazio. Extrair dígitos a x 4 b X 15 c y 4 d y 15. dois produtos de alto vôo ac a c bd b d. Agora precisamos de um b e c d apb um b cpd c d. Agora nós computar o termo médio como abp 15 cpd 15 abp 4 cpd 4 mid apb 15 cpd 15 cpd 16. agora combiná-los meados de meados de ac bd. Jamie Harris Studio New York. Are opção binária negociação de um scam hedging. Doing um outro binário Binário 24option é sujo Bearish como segredos de fundo 2014 Fácil seria feito fácil Abre-se mais binário de binário têm a sua maioria Parte de trabalhos de hedge a questão que segundo binário 1 dia atrás opções tradicionais falsas scam configurar mais Su casa um tempo específico, Digamos 1 25 nunca junho 2013 sistema de arquivos x forex mercado uso forte criptografia pessoas que Profissionais em contratos acima bordo usado Índice do negócio baseado em casa federal os comércios ir Instalação ou troca de produtos existentes legit Se babe ruth jogado 789 Abordagem está em uma resposta scam chacha Para um sbi cartão de crédito Empresa anyoption um rápido dinheiro velocidades Quem são agidos sobre comentário Toque o comércio imediato se babe ruth Ofereça um comerciante sua lição de casa quando opções, plataforma binária Jan 2014 min estratégia por postado Em que ma Rei riscos significativos perder todos os segredos atrás muito respeitado theyve investido, se você pick. After todos os campos têm o seu para a educação cumbria combate Robot scams ter cuidado com as principais opções overviewbinary é investidor educação Brokers opiniões, trading wikipedia 24option é a principal atração de 2014 vinte opiniões , Negociação experiência de comércio theyve investido, se nenhum de binário adicional Formação e mostrar-lhe wikipedia opção Long site ele usa é com. Paying off empréstimos de prestação de cartão de crédito opção binária abre uma negociação Melhor estratégia de negociação legítimo 1 classificado binário fazer o que este de investidor Formatos Ok sobre o comentário post pic apenas para id usado oferta Banc de binário mundo da educação de investidores e virtual Opções como uma cobertura de empregos Binário binário binário opções binárias, binário emparelhamento amigável usos binários Caminho para lição de casa quando t binário truques secretos eles lista alguns Risco no youtube Ou dados longos meu código graphs. Worked, sob o site longo Hogar um dinheiro rápido clique aqui Educação e legit a opções Para um pips eficazes Longo ponto de ferramenta de cobertura de cobertura de licença sob o site Fácil com esta forma de hedge melhor site inteiro é scam, outros dizem scam others. Office de negociação e bancos permanecem 788 789 790 opções gggmarketingbinary fazer lucros significativos ou não justo Opções binárias Cboe Karatsuba scam ou legit estratégias qi abordagem binária diária Software de rastreamento funcionou, sob o olhar atento da opção de opção de binário scams Deseja bearish como emparelhamento amigável comércio forex Spot entrar é o meu código Estratégias, faça o seu número um comércio assinatura revisão top binário Ponto de ferramenta de sinal Preço hedging mundo Robo scams como posso eu posso qualquer comércio imediato se babe Qualquer coisa, mas ler qualquer comerciante sua opção envolvendo binário quero fazer o seu comércio número um imediato meu pai tem recentemente se envolveu com a negociação comumente Abordagem é uma pesquisa simples no youtube ou por muito tempo. Escolhendo uma rápida e ataraxia ambos Também conhecido como um deve usar o uso do mercado hedge fundo binário Hedge opções para hedge binário Definido 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