ES2377715T3 - Cálculo del inverso modular de un valor - Google Patents

Cálculo del inverso modular de un valor Download PDF

Info

Publication number
ES2377715T3
ES2377715T3 ES03727434T ES03727434T ES2377715T3 ES 2377715 T3 ES2377715 T3 ES 2377715T3 ES 03727434 T ES03727434 T ES 03727434T ES 03727434 T ES03727434 T ES 03727434T ES 2377715 T3 ES2377715 T3 ES 2377715T3
Authority
ES
Spain
Prior art keywords
value
module
factors
calculation
auxiliary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03727434T
Other languages
English (en)
Inventor
Helmut Kahl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Application granted granted Critical
Publication of ES2377715T3 publication Critical patent/ES2377715T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/721Modular inversion, reciprocal or quotient calculation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Storage Device Security (AREA)

Abstract

Procedimiento implementado por ordenador para la determinación de pares de claves en un procedimiento de firma o de codificación RSA mediante el cálculo del inverso (R) modular de un valor (E) respecto a un módulo (M) mediante las siguientes etapas: a) determinar (10) una descomposición del módulo (M) en al menos dos factores P-1 y Q-1, siendo P y Q los números primos preestablecidos en RSA, b) calcular (12, 14) en cada caso un valor (R1, R2) auxiliar para cada uno de los factores (P-1, Q-1) determinados en la etapa a), siendo cada valor (R1, R2) auxiliar el inverso modular del valor (E) respecto al factor (P-1, Q-1) respectivo como módulo, y c) calcular (16) el inverso (R) modular del valor (E) respecto al módulo (M) al menos empleando los valores (R1, R2) auxiliares calculados en la etapa b) .

Description

Cálculo del inverso modular de un valor.
La invención se refiere en general al campo técnico de los algoritmos ejecutables de manera eficaz mediante un procesador automático y en especial a un algoritmo mejorado para la inversión modular. En particular la invención es adecuada para aplicaciones criptográficas, tal como aparecen, por ejemplo, en relación con tarjetas con circuito integrado.
En el campo de la criptografía se utilizan procedimientos para la inversión modular por ejemplo, en la generación de un par de claves para el procedimiento de firma y de codificación RSA descrito en la patente US 4.405.829. El procedimiento RSA emplea una clave (E, N) pública y una clave R privada secreta, siendo el valor N el producto de dos números P y Q primos grandes. Para el cálculo de pares de claves se fijan en primer lugar los valores P, Q y E. La clave R privada se calcula entonces como el inverso modular del valor E respecto al módulo M con M = (P-1)·(Q-1).
En general para dos números E y M enteros dados el inverso modular del valor E respecto al módulo M está definido como aquel número R, para el que se cumple que 0 : R < M Y 1 = E·R mod M; el resultado R se designa también con 1/E. Un inverso R modular existe, cuando E y M son primos entre sí.
Se conocen como tales algoritmos para el cálculo del inverso modular de un valor E preestablecido respecto a un módulo M preestablecido. Así por ejemplo, se describe el empleo del algoritmo de Euclides ampliado para la inversión modular en las páginas 47 y 67 del libro de J. v. z. Gathen y J. Gerhard, “Modern Computer Algebra”,1ª edición, Cambridge University Press, 1999 (algoritmo 3.6 y teorema 4.1). Un pequeño aumento de la eficiencia en el ejemplo de aplicación del cálculo de pares de claves RSA es posible mediante una transformación según el teorema chino del resto. Una modificación ventajosa del algoritmo de Euclides ampliado en particular en relación con números binarios es el procedimiento de Stein, que se describe en las páginas 321 a 324 del libro de Donald E. Knuth, “The Art of Computer Programming”, tomo 2, 2ª edición, Addison-Wesley, 1981 en relación con el problema 35 de la página 339 y la solución para el mismo en la página 606.
Los procedimientos mencionados para la inversión modular requieren sin embargo relativamente mucho esfuerzo de cálculo. Necesitan un múltiplo del tiempo de cálculo de otras operaciones de cálculo modulares elementales tales como, por ejemplo, de la multiplicación modular (véase la página 304, corolario 11.6 del libro mencionado de Gathen y Gerhard). Esto es especialmente problemático, cuando la inversión modular debe realizarse por un procesador con una capacidad de potencia relativamente reducida, como se produce por ejemplo, en el caso del procesador de una tarjeta con circuito integrado u otro soporte informático portátil.
La invención tiene por tanto el objetivo de proporcionar un procedimiento eficaz en la ejecución a máquina para la inversión modular. El procedimiento debe ser adecuado en particular para su empleo para cálculos criptográficos en un soporte informático portátil.
Según la invención este objetivo se soluciona parcial o totalmente mediante un procedimiento con las características de la reivindicación 1, un producto de programa informático según la reivindicación 9 y un soporte informático portátil según la reivindicación 10. Las reivindicaciones dependientes definen configuraciones preferidas de la invención.
La invención parte de la reflexión básica de que el esfuerzo para el cálculo del inverso modular depende en gran parte de la longitud del módulo. La invención propone por tanto dividir el cálculo total en varios cálculos parciales, basados en cada caso en un módulo más corto. Más concretamente el módulo se descompone según la invención en al menos dos factores. Entonces para el cálculo de un valor auxiliar se recurre a cada uno de estos factores, que es el inverso modular del valor original respecto al factor como módulo. A partir de los valores auxiliares calculados y dado el caso de datos adicionales se determina entonces el resultado total.
La idea básica según la invención es sorprendente, porque en general la factorización de un valor, en este caso del módulo, va unida a esfuerzos prohibitivos. El inventor ha reconocido sin embargo, que en muchas situaciones relevantes de modo práctico ya se conoce una factorización al menos parcial del módulo o los factores pueden calcularse fácilmente a partir de otra información. Este es el caso, por ejemplo, en el cálculo de pares de claves descrito al principio para el procedimiento RSA, en el que los factores P-1 y Q-1 del módulo M están fácilmente a disposición.
La invención ofrece un aumento considerable de la eficiencia, que es mayor, cuanto mayor sea la dependencia del esfuerzo de cálculo de la longitud del módulo en el procedimiento de inversión empleado finalmente. Con ello la invención es especialmente adecuada para su realización mediante procesadores relativamente poco potentes. La seguridad del cálculo frente a ataques de espionaje no se ve perjudicada por la utilización de la invención, en comparación con los procedimientos de inversión habituales. Cuando existen requisitos de seguridad especialmente altos, la invención puede combinarse sin embargo fácilmente con medidas adecuadas para la protección frente al espionaje.
El orden de enumeración de las etapas del procedimiento en las reivindicaciones no debe entenderse como una limitación del alcance de la invención. Están previstas muchas más configuraciones de la invención, en las que estas etapas de procedimiento se ejecutan en otro orden y/o total o parcialmente paralelas y/o total o parcialmente entrelazadas entre sí (interleaved). Además la invención no está limitada al tratamiento de número enteros. El procedimiento según la invención puede utilizarse más bien como valores por ejemplo polinomios o en general los elementos de un anillo conmutativo con elemento universal.
Según la invención está previsto determinar una descomposición factorial del módulo. El término “determinar” debe comprender a este respecto también casos, en los que solamente se accede a factores ya conocidos, preestablecidos. Cuando solamente se conocen dos factores, a este respecto no se realiza ningún tipo de selección. Si se conocen más factores, entonces se selecciona preferiblemente el número necesario de factores. A este respecto los factores pueden clasificarse según su longitud o tamaño o agruparse adecuadamente. Por el término “longitud” debe entenderse a este respecto en particular el número de las posiciones del factor en un sistema de notación posicional tal como por ejemplo el sistema binario o decimal.
Los factores no necesitan ser primos. Por los términos “factorización” o “descomposición” no debe entenderse por tanto necesariamente una descomposición de factores primos. En configuraciones preferidas de la invención está previsto más bien tratar también factores compuestos sin división adicional, cuando por ejemplo no se conoce una división tal o si condujera a factores de longitudes muy diferentes. Por motivos de eficacia es deseable, que las longitudes de los factores, a los que solamente se recurre como módulos para la determinación de inversos según un procedimiento conocido, se diferencien lo menos posible (por ejemplo en menos del 20% o en menos del 50% de la mayor longitud).
Dado que en general la factorización de un valor requiere un extraordinario esfuerzo de cálculo, el procedimiento se utiliza preferiblemente sólo cuando se conocen al menos dos factores del módulo o pueden determinarse con poco esfuerzo. Un esfuerzo pequeño en este sentido se considera en particular cuando la descomposición factorial ya no requiere más operaciones de cálculo que la determinación de inversos del valor respecto al más largo de los factores determinados como módulo.
El procedimiento ya puede utilizarse de manera útil con una única división del módulo en dos o tres o más factores. Si se conocen más factores o pueden determinarse fácilmente, así el procedimiento puede ejecutarse repetidamente, siendo posible una programación recursiva o una iterativa. Preferiblemente el módulo M presenta factores primos diferentes o se descompone en al menos una etapa de cálculo en al menos dos factores diferentes.
El producto de programa informático según la invención presenta instrucciones de programa, para implementar el procedimiento según la invención. Un producto de programa informático de este tipo puede ser, por ejemplo, una memoria semiconductora o un disquete o un CD-ROM, en el que está almacenado un programa de cálculo según la invención. En particular está previsto un producto de programa informático de este tipo para su empleo en la producción de tarjetas con circuito integrado.
En configuraciones preferidas el producto de programa informático y/o el soporte informático portátil están perfeccionados con características que se corresponden con las características descritas anteriormente y/o con las mencionadas en las reivindicaciones de procedimiento dependientes.
Otras características, ventajas y objetivos de la invención se deducen de la siguiente descripción detallada de varios ejemplos de realización y alternativas de realización. Se hace referencia a los dibujos esquemáticos, en los que muestran:
la figura 1 una vista de las etapas de cálculo ejecutadas en un ejemplo de realización de la invención,
la figura 2 una representación esquemática de un desarrollo de cálculo con estructura de llamada recursiva, y
la figura 3 una representación esquemática de un desarrollo de cálculo iterativo.
El procedimiento representado esquemáticamente en la figura 1 está previsto para ejecutarse por un procesador de un soporte informático portátil, en particular de una tarjeta con circuito integrado (smart card) o de un módulo de circuito integrado. El procedimiento está implementado para ello en forma de instrucciones de programa para este procesador, que se almacenan en una ROM o EEPROM del soporte informático.
Según la invención el procedimiento se emplea para el cálculo de la clave R privada para un procedimiento de codificación RSA o un procedimiento de firma RSA. Para un valor E dado y números P y Q primos dados la clave R privada es el inverso modular del valor E respecto al módulo M con M = (P-1)·(Q-1). Por tanto los factores P-1 y Q-1 del módulo M ya son conocidos. El hecho de que estos mismos factores no sean primos, no perjudica el desarrollo del procedimiento.
En la etapa 10 del procedimiento se determina una descomposición del módulo M en dos factores M1 y M2. Estos dos factores M1 y M2 en el presente ejemplo de realización son simplemente los valores P-1 y Q-1 ya presentes, de modo que no se necesita ni una selección entre varias posibilidades ni etapas de cálculo adicionales.
En las etapas 12 y 14 se llevan a cabo entonces dos cálculos para la determinación del inverso modular del valor M respecto a los módulos M1 o M2, para obtener los valores R1 y R2 auxiliares. Para estos cálculos puede emplearse cualquier procedimiento conocido, tal como por ejemplo el algoritmo de Euclides ampliado mencionado al principio con o sin el empleo del teorema chino del resto. También es posible, en las etapas 12 y 14 llamar recursivamente el procedimiento según la invención, a lo que se hará referencia en detalle más tarde.
Cuando existen los dos valores R1 y R2 auxiliares, se realiza en la etapa 16 el cálculo del resultado R mediante la valoración de la siguiente relación:
Por razonamiento matemático se deduce que el valor R así calculado es de hecho el inverso modular de E respecto al módulo M, por tanto que se cumple R =1/E mod M.
Cuando los factores M1 y M2 presentan aproximadamente el mismo orden de magnitud, esto es, por ejemplo, aproximadamente la misma longitud en su representación binaria, el esfuerzo de cálculo para cada una de las dos etapas 12 y 14 en el procedimiento de inversión habitual asciende sólo aproximadamente a un cuarto del esfuerzo de cálculo para la inversión de E respecto al módulo M. La etapa 10 no requiere ninguna operación de cálculo. El esfuerzo para la etapa 16 se determina esencialmente por las dos multiplicaciones modulares, que se desarrollan notablemente más rápido, por ejemplo, 8 veces más rápido, que una inversión modular. El procedimiento necesita por tanto para las etapas 12, 14 y 16 sólo aproximadamente 1/4 + 1/4 + 2/8 = 3/4 del esfuerzo de una inversión de E respecto al módulo
M. Incluso en la configuración más sencilla descrita en este caso del procedimiento, en el caso de que tenga lugar sólo una única división del módulo M en dos factores M1, M2, se obtiene con ello un ahorro de aproximadamente el 25%.
En una modificación del procedimiento de la figura 1 en la etapa 10 no está previsto un desdoblamiento en dos, sino en tres o más factores M1, M2,.... En el cálculo en la etapa 16 se emplea entonces una forma ampliada de la relación (*) para el cálculo de R a partir del correspondiente número de valores R1, R2,... auxiliares.
Como ya se mencionó, el procedimiento en las etapas 12 y/o 14 puede llamarse recursivamente. En todo caso esto es evidentemente útil, cuando se conoce una descomposición factorial adicional de los valores M1 y/o M2 o puede calcularse fácilmente. En caso contrario, se interrumpe la recurrencia para la correspondiente rama de cálculo y se recurre a otro algoritmo en sí conocido para el cálculo del inverso.
Condiciones de interrupción adicionales para la recurrencia pueden ser que para el valor que va a descomponerse existan sólo factores con una longitud notablemente diferente, o que una magnitud mínima preestablecida del valor que va a descomponerse o de sus factores quede por debajo. Cuando por ejemplo, en el cálculo de la clave R privada en la etapa 12 debe calcularse el inverso modular respecto al módulo M1 = P-1 para el número P primo (impar), existe evidentemente una factorización P-1= 2.((P-1)/2) de número enteros. En caso de que no se conozca ningún factor adicional para (P-1)/2, por regla general en este caso no es útil una llamada recursiva con los factores 2 y (P-1)/2.
La estructura de llamada de un cálculo recursivo mostrada en la figura 2 a modo de ejemplo está completamente compensada. El módulo M original se dividió en la primera etapa 10 en dos factores M1 y M2, cada uno de estos factores Mx en una primera fase de recurrencia en los factores Mx1 y Mx2, y cada uno de estos factores Mxy en una segunda fase de recurrencia en los factores Mxy1 y Mxy2. Para los ocho factores Mxyz así obtenidos se calculó como valor auxiliar el inverso Rxyz modular correspondiente del valor E respecto al factor Mxyz. En los retornos de las llamadas recursivas se calcularon a partir de los valores Rxyz auxiliares según la etapa 16 en primer lugar los valores Rxy auxiliares, entonces los valores Rx auxiliares y finalmente el resultado R.
Para un cálculo compensado como el mostrado en la figura 2, en el que la recurrencia se lleva a cabo con un nivel de anidamiento n homogéneo hasta la existencia de k = 2n factores, el esfuerzo asciende a sólo a O(m(k)) operaciones básicas, indicando m(k) el esfuerzo para la multiplicación modular de dos números de la longitud k. Esta estimación parte de la base de que todos los 2n factores existentes en último término presentan aproximadamente la misma longitud. Esto es una mejora notable en comparación con los procedimientos habituales, que requieren un esfuerzo en el orden de magnitud de O(m(k)·log(m(k))) operaciones básicas (véase por ejemplo el corolario 11.10, página 305 del ya citado libro de Gathen y Gerhard).
En muchas aplicaciones prácticas no podrá alcanzarse un desarrollo completamente compensado tal como en la figura
2. La figura 3 muestra el caso extremo de un desarrollo de cálculo completamente descompensado, que parte de que el módulo M = M1·M2·M3·M4·M5. Un cálculo de este tipo corresponde a una implementación iterativa del procedimiento por ejemplo por medio de un bucle de programa. El bucle parte de un par de valores R1, R2 auxiliares y a continuación aplica la relación (*). En cada ejecución de bucle se añade mediante una aplicación adicional de la relación (*) un valor R3, R4,... auxiliar adicional, hasta que finalmente se calcula el inverso R. Además en cada ejecución de bucle el en cada caso valor R1, R2,... auxiliar necesario nuevo puede calcularse a partir del correspondiente factor M1, M2,.... Como alternativa es posible determinar todos los valores R1, R2,... auxiliares de antemano en un bucle separado a partir de
5 los factores M1, M2,....
En general el procedimiento según la invención, ya sea en una implementación recursiva o iterativa, puede servir para la determinación del inverso de un valor E respecto a un módulo M, que se encuentra en una factorización no necesariamente completa con muchos factores M1, M2,... cualesquiera. Para ello se aplica la relación (*) en cada caso
10 a un par de valores R1, R2,... auxiliares, que se han determinado a partir de los factores M1, M2,.... El esfuerzo de cálculo necesario es entonces especialmente pequeño, cuando los factores M1, M2,... presentan aproximadamente longitudes homogéneas. Para garantizar en una etapa de preparación o durante el cálculo pueden agruparse en cada caso dos o más factores Mx, My,.... Entran entonces como valor Mx·My.... en el cálculo, que no se descompone adicionalmente, aunque su factorización fuera conocida.

Claims (4)

  1. REIVINDICACIONES
    1. Procedimiento implementado por ordenador para la determinación de pares de claves en un procedimiento de firma
    o de codificación RSA mediante el cálculo del inverso (R) modular de un valor (E) respecto a un módulo (M) mediante las siguientes etapas:
    a) determinar (10) una descomposición del módulo (M) en al menos dos factores P-1 y Q-1, siendo P y Q los números primos preestablecidos en RSA,
    b) calcular (12, 14) en cada caso un valor (R1, R2) auxiliar para cada uno de los factores (P-1, Q-1) determinados en la etapa a), siendo cada valor (R1, R2) auxiliar el inverso modular del valor (E) respecto al factor (P-1, Q-1) respectivo como módulo, y
    c) calcular (16) el inverso (R) modular del valor (E) respecto al módulo (M) al menos empleando los valores (R1, R2) auxiliares calculados en la etapa b).
  2. 2.
    Procedimiento según la reivindicación 1, caracterizado porque en la etapa c) el inverso (R) modular del valor (E) respecto al módulo (M) se calcula según la relación
    .
  3. 3.
    Procedimiento según la reivindicación 2, caracterizado porque en al menos un cálculo la relación (*), dado el caso unida al cálculo del valor auxiliar, se valora repetidamente en un procedimiento iterativo.
  4. 4.
    Procedimiento según una de las reivindicaciones 1 ó 2, caracterizado porque en al menos un cálculo en la etapa b) se realiza una llamada recursiva del procedimiento.
ES03727434T 2002-05-06 2003-05-05 Cálculo del inverso modular de un valor Expired - Lifetime ES2377715T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10220262 2002-05-06
DE10220262A DE10220262A1 (de) 2002-05-06 2002-05-06 Berechnung des modularen Inversen eines Wertes
PCT/EP2003/004695 WO2003093972A2 (de) 2002-05-06 2003-05-05 Berechnung des modularen inversen eines wertes

Publications (1)

Publication Number Publication Date
ES2377715T3 true ES2377715T3 (es) 2012-03-30

Family

ID=29285145

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03727434T Expired - Lifetime ES2377715T3 (es) 2002-05-06 2003-05-05 Cálculo del inverso modular de un valor

Country Status (8)

Country Link
US (1) US9047167B2 (es)
EP (1) EP1504337B1 (es)
JP (1) JP2006507516A (es)
AT (1) ATE535859T1 (es)
AU (1) AU2003233234A1 (es)
DE (1) DE10220262A1 (es)
ES (1) ES2377715T3 (es)
WO (1) WO2003093972A2 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2815734B1 (fr) * 2000-10-19 2006-07-28 Oberthur Card Systems Sas Unite de calcul pour l'execution d'un protocole cryptographique
US7136484B1 (en) * 2001-10-01 2006-11-14 Silicon Image, Inc. Cryptosystems using commuting pairs in a monoid
US8817974B2 (en) * 2011-05-11 2014-08-26 Nxp B.V. Finite field cryptographic arithmetic resistant to fault attacks
EP3419212B1 (en) 2017-06-23 2020-03-11 Vestel Elektronik Sanayi ve Ticaret A.S. Computer implemented method, computer system and computer readable computer program product

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
DE10190100D2 (de) 2000-01-16 2002-06-06 Cv Cryptovision Gmbh Verfahren und Vorrichtungen zur Durchführung einer Inversion insbesondere bei der Verschlüsselung mittels elliptischer Kurven
US6609141B1 (en) * 2000-10-13 2003-08-19 Motorola, Inc. Method of performing modular inversion
US6978016B2 (en) * 2000-12-19 2005-12-20 International Business Machines Corporation Circuits for calculating modular multiplicative inverse
JP3785044B2 (ja) * 2001-01-22 2006-06-14 株式会社東芝 べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体
US7016494B2 (en) * 2001-03-26 2006-03-21 Hewlett-Packard Development Company, L.P. Multiple cryptographic key precompute and store

Also Published As

Publication number Publication date
AU2003233234A1 (en) 2003-11-17
WO2003093972A2 (de) 2003-11-13
US9047167B2 (en) 2015-06-02
US20050175174A1 (en) 2005-08-11
JP2006507516A (ja) 2006-03-02
DE10220262A1 (de) 2003-11-27
EP1504337B1 (de) 2011-11-30
WO2003093972A8 (de) 2004-10-21
EP1504337A1 (de) 2005-02-09
ATE535859T1 (de) 2011-12-15

Similar Documents

Publication Publication Date Title
Barrett Implementing the Rivest Shamir and Adleman public key encryption algorithm on a standard digital signal processor
Pöppelmann et al. Towards efficient arithmetic for lattice-based cryptography on reconfigurable hardware
JP3525209B2 (ja) べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法
US7961877B2 (en) Factoring based modular exponentiation
US7603558B2 (en) Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program
JP2004501396A (ja) 整数の計算フィールド範囲の拡張
JPS6318387A (ja) 暗号法及びこの方法の実施のための暗号プロセツサ
US8417760B2 (en) Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication
Rankine Thomas—a complete single chip RSA device
US7046800B1 (en) Scalable methods and apparatus for Montgomery multiplication
RU2002133218A (ru) Криптографический способ и криптографическое устройство
US8290145B2 (en) Transition between masked representations of a value during cryptographic calculations
ES2377715T3 (es) Cálculo del inverso modular de un valor
US9042543B2 (en) Method for arbitrary-precision division or modular reduction
US6609141B1 (en) Method of performing modular inversion
JP2009505148A (ja) 暗号化演算における反転操作を行うための回路配置及び方法
US8364737B2 (en) Device and method for calculating a result of a sum with a calculating unit with limited word length
EP1366596B1 (en) Circuit and method for squaring long integers
US10133554B2 (en) Non-modular multiplier, method for non-modular multiplication and computational device
JP2010091913A (ja) データ処理装置
Chevallier-Mames et al. Faster double-size modular multiplication from Euclidean multipliers
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
US10318245B2 (en) Device and method for determining an inverse of a value related to a modulus
JP3779479B2 (ja) Icカード
US20080005209A1 (en) System, method and apparatus for public key encryption