FR2897963A1 - Procede pour les conjectures de quotient rapide et une manip ulation de congruences - Google Patents

Procede pour les conjectures de quotient rapide et une manip ulation de congruences Download PDF

Info

Publication number
FR2897963A1
FR2897963A1 FR0601781A FR0601781A FR2897963A1 FR 2897963 A1 FR2897963 A1 FR 2897963A1 FR 0601781 A FR0601781 A FR 0601781A FR 0601781 A FR0601781 A FR 0601781A FR 2897963 A1 FR2897963 A1 FR 2897963A1
Authority
FR
France
Prior art keywords
polynomial
quotient
module
degree
medium
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.)
Withdrawn
Application number
FR0601781A
Other languages
English (en)
Inventor
Vincent Dupaquis
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.)
Rambus Inc
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Priority to FR0601781A priority Critical patent/FR2897963A1/fr
Priority to US11/442,922 priority patent/US7788311B2/en
Publication of FR2897963A1 publication Critical patent/FR2897963A1/fr
Withdrawn 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/724Finite field arithmetic

Landscapes

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

Abstract

Un procédé de calcul exécuté par processeur spécialement pour une utilisation dans des systèmes cryptographiques détermine rapidement un quotient de polynôme dans des conditions spécifiques. Pour un module de polynôme f(x), un degré maximal pour un polynôme i(x) à réduire par ce procédé est défini comme la somme du degré de f(x) et la différence d entre les degrés des deux coefficients de degrés les plus élevés de f(x). Les polynômes i(x) avec un degré inférieur à ce maximum peuvent être divisés par a^[deg(f(x))] au lieu du f(x) entier pour obtenir rapidement la valeur de quotient. Avec ce quotient, une valeur de reste peut être obtenue, ou facultativement une valeur congruente aléatoire.

Description

PROCÉDÉ POUR LES CONJECTURES DE QUOTIENT RAPIDE ET UNE MANIPULATION DE
CONGRUENCES
La présente invention concerne des procédés ou des agencements pour traiter des données numériques par des ordinateurs électriques et des systèmes de traitement numérique, et en particulier concerne des procédés de traitement et de calcul arithmétique dirigés vers des opérations de champ fini ou de congruence, comprenant des opérations de division d'entiers spécialement sur des polynômes avec des coefficients binaires. Dans les systèmes cryptographiques modernes, tels que le chiffre de bloc symétrique connu comme Rinjdael (adopté par l'Institut national des Etats-Unis des normes et de la technologie (U.S. National Institut of Standards and Technology) en tant que sa norme de chiffrement avancé ou AES (Advanced Encryption Standard)), des blocs de données (chaînes de bits) sont sujets à de nombreuses opérations de substitution et de permutation, qui, à un niveau plus profond, impliquent typiquement des décalages d'octets, des additions OU exclusif, et des opérations de congruence sur les polynômes (représentés par des chaînes de bits). Ainsi, dans l'AES, une arithmétique de champ fini sur des polynômes en GF(28) est effectuée en utilisant g(x) = x8 + x4 + x3 + x + 1 et h(x) = x8 + 1 comme modules. Des procédés pour calculer rapidement des quotients et des restes de polynômes sont souhaités pour une opération efficace de ces systèmes cryptographiques. Le brevet U.S. 6 523 053 de Lee et al. décrit un procédé et un appareil pour effectuer une division de polynômes de champ fini. Le long polynôme est divisé en segments ou groupes, et le quotient partiel et le reste sont calculés en parallèle pour chaque groupe, puis combiné. Cette technique est utilisée pour des grands polynômes (de degré élevé). Les brevets U.S. n 5 615 220 de Pharris et 5 185 711 de Hattori effectuent une division de champ fini en utilisant l'algorithme d'Euclide, qui est une technique qui implique de multiples itérations des divisions. La technique est utile pour des divisions impliquant les grands polynômes. La présente invention est un procédé qui effectue des calculs de quotients rapides sur des polynômes pour des opérations de congruence efficaces où le degré du polynôme à réduire est non supérieur au degré du module de polynôme plus la distance entre les deux degrés les plus élevés des coefficients du module moins 1. Ainsi, par exemple, lorsque le module est x8 + x4 + x3 + x + 1, avec un degré de 8 et une distance de 4 entre les coefficients des deux degrés les plus élevés, le calcul de quotient peut être rapidement calculé pour des polynômes allant jusqu'à et comprenant un degré de 11. En particulier, dans ce cas spécial, les degrés inférieurs du module deviennent non pertinents, et le quotient est simplement une division du polynôme par le terme de plus haut degré du module. Le quotient aura un degré non supérieur à la distance notée ci-dessus entre les deux plus hauts coefficients de degré du module moins 1. Pour des champs finis binaires GF(2 ), ce procédé est facilement mis en oeuvre dans un matériel de traitement en chargeant la chaîne de bits équivalente du polynôme à réduire puis en effectuant un décalage de bits vers la droite de la chaîne par un nombre de bits égal au degré du module pour obtenir le quotient. Pour les champs premiers GF(pk), p > 2, les mêmes principes basiques s'appliquent, mais des ensembles de bits seront manipulés, tels qu'en exécutant un programme de micrologiciel ou de logiciel équivalent dans un processeur de données ou un ordinateur. Du fait que la recherche du quotient est la partie la plus gourmande en termes de calcul de l'opération de réduction, le présent calcul de quotient rapide permet une réduction rapide du polynôme en son reste, de même que l'ajout du quotient (sans augmenter son degré) pour obtenir d'autres congruences du polynôme.
Dans son sens le plus large, l'invention concerne un procédé d'estimation de quotient rapide mis en oeuvre dans un système de traitement numérique électronique pour effectuer des opérations de polynômes dans un champ fini GF(ak), où a est un entier, le procédé comprenant les étapes consistant à : (a) déterminer à partir d'un module de polynôme f(x) un degré Deg[f(x)] du module et une distance d entre les deux plus grands coefficients de degré du module, un degré maximal MAX_DEG = {Deg[f(x)] + d û 1} ; (b) recevoir un polynôme i(x) ; et (c) si un degré Deg[i(x)] du polynôme reçu i(x) est inférieur ou égal à Deg[f(x)], alors diviser i(x) par aDeg[f(x)1 pour obtenir un quotient de polynôme q(x) = i(x) / f(x).
Selon différents modes de réalisation : - le procédé comprend en outre l'étape consistant à (d) multiplier le quotient q(x) par le module f(x) et soustraire du polynôme i(x) reçu pour obtenir une valeur de reste r(x) = i(x) û f(x) • q(x) ; - le champ fini est un champ binaire GF(2n) et la soustraction dans l'étape (d) est une opération OU exclusif de l'ordre du bit ; - un multiple aléatoire du module de polynôme est ajouté au reste après l'étape (d) ; - un polynôme aléatoire de degré inférieur à d est ajouté au quotient après l'étape (c) pour obtenir un quotient modifié q'(x), puis l'étape consistant à : (d') multiplier le quotient modifié q'(x) par le module f(x) et soustraire du polynôme reçu i(x) pour obtenir une valeur aléatoire congruente à i(x) mod f(x) ; - le champ fini est un champ premier GF(pk), avec un nombre premier p > 2, et dans lequel les coefficients des polynômes f(x), i(x) et q(x) sont les entiers de 0 à p û 1 ; - le procédé est exécuté dans un processeur cryptographique ; - le procédé est effectué comme une partie d'une exécution d'un chiffre de bloc symétrique par ledit processeur cryptographique. L'invention concerne également un support lisible par processeur stockant un programme exécutable par un système de traitement numérique électronique, le programme stocké sur ledit support amenant le système de traitement numérique électronique à effectuer des opérations de polynômes dans un champ fini GF(ak), où a est un entier, les opérations de polynômes exécutées par le système comprenant les opérations consistant à : (a) déterminer, à partir d'un module de polynôme f(x), un degré Deg[f(x)] du module et une distance d entre les deux plus grands coefficients de degré du module, un degré maximal MAX_DEG = {Deg[f(x)] + d û 1} ; (b) recevoir un polynôme i(x) ; et (c) si un degré Deg[i(x)] du polynôme reçu i(x) est inférieur ou égal à Deg[f(x)], alors diviser i(x) par aDeg[f(x) ] pour obtenir un quotient de polynôme q(x) = i(x) / f(x). Selon différents modes de réalisation : - le programme amène en outre le système de traitement à (d) multiplier le quotient q(x) par le module f(x) et soustraire du polynôme reçu i(x) pour obtenir une valeur de reste r(x) = i(x) û f(x) • q(x) ; - le champ fini est un champ binaire GF(2") et la soustraction dans l'étape (d) est une opération OU exclusif de l'ordre du bit ; - le programme amène en outre le processeur à ajouter à un multiple aléatoire du module de polynôme au reste après l'étape (d) ; - le programme amène en outre le processeur à ajouter un polynôme aléatoire de degré inférieur à d au quotient après l'étape (c) pour obtenir un quotient modifié q'(x), puis l'étape consistant à : (d') multiplier le quotient modifié q'(x) par le module f(x) et soustraire du polynôme reçu i(x) pour obtenir une valeur aléatoire congruente à i(x) mod f(x) ; - le champ fini est un champ premier GF(pk), avec un nombre premier p > 2, et dans lequel les coefficients des polynômes f(x), i(x) et q(x) sont les entiers de 0 à p û 1 ; - les opérations de polynômes sont exécutées par un processeur cryptographique lisant ledit support ; - les opérations de polynômes sont effectuées par une partie d'une exécution d'un chiffre de bloc symétrique par ledit processeur cryptographique.
La figure 1 est un organigramme d'un procédé d'un calcul de quotient rapide et d'un calcul de reste rapide selon la présente invention, pour un cas donné à titre d'exemple de champs finis binaires dans GF(2").
Le procédé de calcul de quotient rapide de la présente invention tire profit des cas spéciaux d'une propriété inhérente des opérations de polynômes dans un champ fini. Si nous avons un module de polynôme qui est de la forme, disons de f(x) = x8 + x4 + x3 + x + 1 (exemple donné dans GF(28)), on peut noter que le degré f(x) est deg[f(x)] = 8 et que la distance entre les coefficients de deux degrés les plus élevés moins 1 est d = 3. À présent, soit g(x) un polynôme de degré maximal d, deg[g(x)] s d. Soit h(x) un autre polynôme qui est le produit de f(x) et g(x). À savoir, h(x) = g(x)•f(x) = g(x)•x8 + g(x)•x4 + g(x)•x3 + g(x)•x + g(x)•1. Du fait que deg[g(x)] <_ 3, nous pouvons remarquer que les degrés des coefficients de h(x) supérieurs à deg[f(x)] = 8 sont égaux à g(x)•x8. En conséquence, si nous avons un polynôme i(x) à réduire au module f(x), avec deg[i(x)] s deg[f(x)] + d, le quotient de la division i(x) / f(x) sera la division de polynôme de i(x) par le terme de haut plus degré de f(x), à savoir par x8.
Exemple f(x) = x8 + x4 + x3 + x + 1 i(x) = x11 + x8 + x2 + x + 1 deg[i(x)] = 11 < deg[f(x)] + d = (8 + 3) = 11 q(x) = i(x) / f(x) = i(x) / x8 = (x11 + x8) / x8 = x3+ 1 (Ceci conclut le calcul du quotient rapide.) r(x) = i(x) - q(x)•f(x) ^ i(x) û (x8 + x4 + x3 + x + 1) • (x3 + 1) ^ i (x) - (x11 + x' + x6 + x4 + x3 + x8 + x4 + x3 + x + 1) i(x) û (x11 + x8 + x7+x6+x+1) ( X11 + x8 + x2 + X + 1) - (X11 + x8 + x7 + x6 + x + 1) = x7 + X6 + X2 (Ceci achève le calcul de reste utilisant le quotient préalablement obtenu). On note que sur le champ fini binaire, nous pouvons mettre en oeuvre une addition et une soustraction avec une opération OU exclusif de l'ordre du bit. Mis en oeuvre dans des processeurs de matériel ou similaires, les polynômes représentent des chaînes de bits, où l'emplacement des bits au sein d'une chaîne correspond au degré d'un coefficient de polynôme. Pour l'exemple donné ci-dessus, avec des zéros en en-tête fournis pour achever un octet :
f(x) = 00000001 00011011 15 g(x) = 00001001 00000111 q(x) = 00000000 00001001.
On note que q(x) est simplement i(x) décalé vers la droite de huit bits, qui est l'équivalent de la division 20 par x8 .
f(x)•q(x) = 00001000 11011000 O+ 00000001 00011011 = 00001001 11000011 25 i(x) O+ (f(x)•q(x)) = 00001001 00000111 C 00001001 11000011 = 00000000 11000100
Un multiplicateur de matériel peut manipuler la 30 multiplication de module f(x) et du quotient q(x). En référence à la figure 1, la procédure basique pour les calculs sur les polynômes dans des champs finis binaires GF(2n) est montrée sur la figure 1. Tout d'abord, 7 le module de polynôme est chargé (étape 101). Le degré est calculé conjointement avec la distance d entre les coefficients des deux degrés les plus élevés pour f(x). Ceci établit le degré maximal MAX_DEG pour les polynômes à réduire par la présente invention (étape 102). Un polynôme i(x) à réduire est chargé (étape 103) et une vérification est effectuée pour s'assurer que son degré est inférieur ou égal à MAX_DEG (étape 104). Sinon, alors le polynôme i(x) est trop grand pour cette procédure.
Sinon, le coefficient est rapidement calculé (étape 105) par division par 2DEG[f00] ou les décalages à droite équivalents par un nombre de bits égal au degré du module. Ceci termine le calcul de quotient et q(x) peut être renvoyé. Normalement, toutefois, le quotient est utilisé pour une réduction de polynôme, à savoir, un calcul de reste. Le reste r(x) est calculé (étape 106) par multiplication du module et du quotient suivi par une soustraction du polynôme i(x) d'origine (équivalent à OU exclusif dans les champs binaires). Ceci achève le calcul de reste et la valeur de reste peut être renvoyée. Facultativement, un aléas peut être inséré sur le quotient (après étape 105) ou sur la valeur de reste (après l'étape 106), comme décrit ci-dessous, pour une plus grande sécurité dans le travail avec les valeurs renvoyées. En plus d'effectuer un calcul de quotient rapide et une réduction rapide, nous pouvons également calculer différentes congruences d'un polynôme donné. Avec un quotient donné q(x) de degré inférieur ou égal à d, nous pouvons ajouter une valeur de polynôme aléatoire s(x) de degré identique ou inférieur à q(x), puis recalculer i(x) Q+ (f(x)•q(x)) en utilisant le quotient modifié q'(x) = q(x) + s(x) à la place de q(x). En variante, une fois que la valeur du reste est trouvée, un multiple aléatoire du module peut être ajouté au reste. Dans de nombreux cas, le travail avec des congruences différentes améliore la sécurité contre des attaques cryptographiques de canal latéral sans affecter le résultat final. Lors du travail avec des congruences, il peut être souhaité d'éviter d'avoir à ce que des valeurs congruentes s'annulent les unes les autres lorsqu'elles sont ajoutées ensemble. Ceci peut être assuré par un calcul rapide du quotient avec le même module pour les deux valeurs de polynôme et par comparaison. Deux polynômes différents avec le même quotient ne sont pas congruents. Lors d'un travail dans un champ fini premier GF(pk), les mêmes principes basiques de calcul de quotient rapide et de calcul de reste s'appliquent, à l'exception que chaque coefficient de polynôme a une valeur de O à p û 1 et est donc représenté par des ensembles de bits au lieu de bits individuels. En outre, l'opération i(x) - p(x)•q(x) ne peut plus être remplacée par une opération OU exclusive. La différence dans chaque coefficient doit être calculée en utilisant un matériel additionneur.

Claims (16)

REVENDICATIONS
1. Procédé de traitement numérique mis en oeuvre dans un système de traitement numérique électronique pour effectuer des opérations de polynômes dans un champ fini GF(ak), où a est un entier, le procédé comprenant les étapes consistant à : (a) déterminer à partir d'un module de polynôme f(x) un degré Deg[f(x)] du module et une distance d entre les deux plus grands coefficients de degré du module, un degré maximal MAX_DEG = {Deg[f(x)] + d ù 1} ; (b) charger une chaîne de bits représentant un polynôme i(x) ; et (c) si un degré Deg[i(x)] du polynôme reçu i(x) est inférieur ou égal à MAX_DEG, alors diviser i(x) par aDeef(x) ] en effectuant un décalage de bits vers la droite de la chaîne pour obtenir un quotient de polynôme q(x) = i(x) / f(x), ledit décalage étant fonction de Deg[f(x)].
2. Procédé selon la revendication 1, comprenant en outre 20 l'étape consistant à : (d) multiplier le quotient q(x) par le module f(x) à l'aide d'un multiplicateur matériel et soustraire du polynôme i(x) reçu pour obtenir une valeur de reste r(x) = i(x) ù f(x) • q(x). 25
3. Procédé selon la revendication 2, dans lequel le champ fini est un champ binaire GF(2n) et la soustraction dans l'étape (d) est une opération OU exclusif de l'ordre du bit. 30
4. Procédé selon la revendication 2, dans lequel un multiple aléatoire du module de polynôme est ajouté au reste après l'étape (d).
5. Procédé selon la revendication 1, dans lequel un polynôme aléatoire de degré inférieur à d est ajouté au quotient après l'étape (c) pour obtenir un quotient modifié q'(x), puis l'étape consistant à : (d') multiplier le quotient modifié q'(x) par le module f(x) l'aide d'un multiplicateur matériel et soustraire du polynôme reçu i(x) pour obtenir une valeur aléatoire congruente à i(x) mod f(x).
6. Procédé selon la revendication 1, dans lequel le champ fini est un champ premier GF(pk), avec un nombre premier p > 2, et dans lequel les coefficients des polynômes f(x), i(x) et q(x) sont les entiers de 0 à p ù 1.
7. Procédé selon la revendication 1, dans lequel le 20 procédé est exécuté dans un processeur cryptographique.
8. Procédé selon la revendication 7, dans lequel le procédé est effectué comme une partie d'une exécution d'un chiffre de bloc symétrique par ledit processeur 25 cryptographique.
9. Support lisible par processeur stockant un programme exécutable par un système de traitement numérique électronique, le programme stocké sur ledit support 30 amenant le système de traitement numérique électronique à effectuer des opérations de polynômes dans un champ fini GF(ak), où a est un entier, les opérations de polynômesexécutées par le système comprenant les opérations consistant à : (a) déterminer, à partir d'un module de polynôme f(x), un degré Deg[f(x)] du module et une distance d entre les deux plus grands coefficients de degré du module, un degré maximal MAX_DEG = {Deg[f(x)] + d ù 1} ; (b) charger une polynôme i(x) ; et (c) si un degré inférieur ou égal à chaîne de bits représentant un Deg[i(x)] du polynôme i(x) est MAX_DEG, alors diviser i(x) par aDeg[f(x)) en effectuant un décalage de bits vers la droite de la chaîne pour obtenir un quotient de polynôme q(x) = i(x) / f(x), ledit décalage étant fonction de Deg[f(x)].
10. Support lisible par processeur selon la revendication 9, dans lequel le programme amène en outre le système de traitement à : (d) multiplier le quotient q(x) par le module f(x) l'aide d'un multiplicateur matériel et soustraire du polynôme i(x) reçu pour obtenir une valeur de reste r(x) = i(x) ù f(x) • q(x).
11. Support selon la revendication 10, dans lequel le champ fini est un champ binaire GF(2n) et la soustraction dans l'étape (d) est une opération OU exclusif de l'ordre du bit.
12. Support selon la revendication 10, dans lequel le 30 programme amène en outre le processeur à ajouter un multiple aléatoire du module de polynôme au reste après l'étape (d).
13. Support selon la revendication 9, dans lequel le programme amène en outre le processeur à ajouter un polynôme aléatoire de degré inférieur à d au quotient après l'étape (c) pour obtenir un quotient modifié q'(x), puis l'étape consistant à : (d') multiplier le quotient modifié q'(x) par le module f(x) l'aide d'un multiplicateur matériel et soustraire du polynôme reçu i(x) pour obtenir une valeur aléatoire congruente à i(x) mod f(x).
14. Support selon la revendication 9, dans lequel le champ fini est un champ premier GF(pk), avec un nombre premier p > 2, et dans lequel les coefficients des polynômes f(x), i(x) et q(x) sont les entiers de 0 à p -1.
15. Support selon la revendication 9, dans lequel les opérations de polynômes sont exécutées par un processeur cryptographique lisant ledit support.
16. Support selon la revendication 15, dans lequel les opérations de polynômes sont effectuées par une partie d'une exécution d'un chiffre de bloc symétrique par ledit processeur cryptographique.20
FR0601781A 2006-02-28 2006-02-28 Procede pour les conjectures de quotient rapide et une manip ulation de congruences Withdrawn FR2897963A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0601781A FR2897963A1 (fr) 2006-02-28 2006-02-28 Procede pour les conjectures de quotient rapide et une manip ulation de congruences
US11/442,922 US7788311B2 (en) 2006-02-28 2006-05-30 Method for fast quotient guess and congruencies manipulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0601781A FR2897963A1 (fr) 2006-02-28 2006-02-28 Procede pour les conjectures de quotient rapide et une manip ulation de congruences

Publications (1)

Publication Number Publication Date
FR2897963A1 true FR2897963A1 (fr) 2007-08-31

Family

ID=37645349

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0601781A Withdrawn FR2897963A1 (fr) 2006-02-28 2006-02-28 Procede pour les conjectures de quotient rapide et une manip ulation de congruences

Country Status (2)

Country Link
US (1) US7788311B2 (fr)
FR (1) FR2897963A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0971331A1 (fr) * 1998-01-27 2000-01-12 Mitsubishi Denki Kabushiki Kaisha Procede et appareil pour effectuer une operation arithmetique et support d'enregistrement dudit procede
WO2001048706A1 (fr) * 1999-12-28 2001-07-05 Giesecke & Devrient Gmbh Support de donnees portatif avec protection d'acces pour invalider des messages
US20030208518A1 (en) * 2002-05-01 2003-11-06 Sun Microsystems, Inc. Generic implementations of ellipitic curve cryptography using partial reduction
WO2004111831A2 (fr) * 2003-06-18 2004-12-23 Gemplus Procede de contre-mesure par masquage de l'accumulateur

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990024971A (ko) 1997-09-09 1999-04-06 정선종 모듈러 승산장치
US5185711A (en) * 1989-12-08 1993-02-09 Sony Corporation Apparatus for dividing elements of a finite galois field and decoding error correction codes
NZ336413A (en) * 1993-12-01 2000-01-28 Rpk Nz Ltd Method of generating random numbers by manipulating electronic pointer with coordinates at points corresponding to time instants being used for selection of points subset and computation of number function
US5615220A (en) 1995-01-31 1997-03-25 Philips Electronics North America Corporation Polynomial divider which can perform Euclid's Algorithm to produce an error locator polynomial from an error syndrome polynomial, and apparatus including the polynomial divider
KR100302847B1 (ko) 1998-09-03 2001-11-22 윤덕용 유한필드에서의긴다항식제산장치
JP3953220B2 (ja) * 1999-02-03 2007-08-08 沖電気工業株式会社 ユークリッド互除法実行回路及び演算回路
JP4197710B2 (ja) * 2006-07-19 2008-12-17 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US8024391B2 (en) * 2006-11-06 2011-09-20 Atmel Rousset S.A.S. Modular multiplication method with precomputation using one known operand

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0971331A1 (fr) * 1998-01-27 2000-01-12 Mitsubishi Denki Kabushiki Kaisha Procede et appareil pour effectuer une operation arithmetique et support d'enregistrement dudit procede
WO2001048706A1 (fr) * 1999-12-28 2001-07-05 Giesecke & Devrient Gmbh Support de donnees portatif avec protection d'acces pour invalider des messages
US20030208518A1 (en) * 2002-05-01 2003-11-06 Sun Microsystems, Inc. Generic implementations of ellipitic curve cryptography using partial reduction
WO2004111831A2 (fr) * 2003-06-18 2004-12-23 Gemplus Procede de contre-mesure par masquage de l'accumulateur

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LEE M-K ET AL: "EFFICIENT ARITHMETIC IN OPTIMAL EXTENSION FIELDS USING SIMULTANEOUS MULTIPLICATION", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES, ENGINEERING SCIENCES SOCIETY, TOKYO, JP, vol. E86-A, no. 5, May 2003 (2003-05-01), pages 1316 - 1321, XP001170576, ISSN: 0916-8508 *
MENEZES A J ET AL: "HANDBOOK OF APPLIED CRYPTOGRAPHY", HANDBOOK OF APPLIED CRYPTOGRAPHY, CRC PRESS SERIES ON DISCRETE MATHEMATICES AND ITS APPLICATIONS, BOCA RATON, FL, CRC PRESS, US, 1997, XP002416024, ISBN: 0-8493-8523-7 *
SONG L ET AL: "LOW-ENERGY DIGIT-SERIAL/PARALLEL FINITE FIELD MULTIPLIERS", JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL, IMAGE, AND VIDEO TECHNOLOGY, SPRINGER, NEW YORK, NY, US, vol. 19, no. 2, July 1998 (1998-07-01), pages 149 - 166, XP000782347, ISSN: 0922-5773 *

Also Published As

Publication number Publication date
US20070217602A1 (en) 2007-09-20
US7788311B2 (en) 2010-08-31

Similar Documents

Publication Publication Date Title
CA2342737C (fr) Procede de calcul pour la cryptographie a courbe elliptique
FR2885711A1 (fr) Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US7908641B2 (en) Modular exponentiation with randomized exponent
FR2971600A1 (fr) Dispositif et procede de calcul d&#39;un resultat d&#39;une multiplication scalaire
FR2977953A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire par addition d&#39;une quantite aleatoire
FR2977952A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire par multiplication par une quantite aleatoire
FR2960727A1 (fr) Procede d&#39;evaluation d&#39;une fonction
FR2897964A1 (fr) Procede de calcul numerique incluant la division euclidienne
EP2391051B1 (fr) Procédé de détermination d&#39;une représentation d&#39;un produit d&#39;éléments d&#39;un corps fini
FR2897963A1 (fr) Procede pour les conjectures de quotient rapide et une manip ulation de congruences
WO2013024230A2 (fr) Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique
FR2858141A1 (fr) Codage d&#39;informations par codes de reed-solomon raccourcis
US20140286488A1 (en) Determining a Division Remainder and Ascertaining Prime Number Candidates for a Cryptographic Application
WO2003036863A1 (fr) Procede cryptographique a cle publique base sur les groupes de tresses
FR2942560A1 (fr) Procede de traitement de donnees impliquant une exponentiation et un dispositif associe.
WO2018109346A1 (fr) Codage et décodage correcteur d&#39;erreurs par matrice génératrice avec multiplications simplifiées dans coprs de galois
EP4024753B1 (fr) Procédé et module électronique de calcul d&#39;une quantité cryptographique avec multiplications sans retenue, procédé et dispositif électronique de traitement d&#39;une donnée et programme d&#39;ordinateur associés
JP5554357B2 (ja) 演算装置
EP3929726A1 (fr) Procede de traitement cryptographique,dispositif electronique et programme d&#39;ordinateur associes
EP3553996B1 (fr) Procédé de détermination de l inverse multiplicatif d&#39;une donnée d entrée, programme d ordinateur et dispositif de traitement cryptographique associé
FR2977954A1 (fr) Protection d&#39;un calcul sur courbe elliptique
EP2297896A1 (fr) Procede de distribution quantique de cles a variables continues
EP1989820A1 (fr) Dispositif et procede de hachage cryptographique
Abduallah et al. Reversible data hiding scheme based on 3-least significant bits and mix column transform
FR2864390A1 (fr) Procede cryptographique d&#39;exponentiation modulaire protege contre les attaques de type dpa.

Legal Events

Date Code Title Description
TP Transmission of property
TP Transmission of property

Owner name: INSIDE SECURE, FR

Effective date: 20121115

CA Change of address

Effective date: 20131112

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

CD Change of name or company name

Owner name: VERIMATRIX, FR

Effective date: 20191119

CA Change of address

Effective date: 20191209

PLFP Fee payment

Year of fee payment: 15

TP Transmission of property

Owner name: RAMBUS INC., US

Effective date: 20200402

PLFP Fee payment

Year of fee payment: 16

ST Notification of lapse

Effective date: 20221005