EP1676198A1 - Procede et dispositif associe de generation de nombres aleatoires dans un intervalle donne - Google Patents

Procede et dispositif associe de generation de nombres aleatoires dans un intervalle donne

Info

Publication number
EP1676198A1
EP1676198A1 EP04805753A EP04805753A EP1676198A1 EP 1676198 A1 EP1676198 A1 EP 1676198A1 EP 04805753 A EP04805753 A EP 04805753A EP 04805753 A EP04805753 A EP 04805753A EP 1676198 A1 EP1676198 A1 EP 1676198A1
Authority
EP
European Patent Office
Prior art keywords
coefficient
random
variable
rank
random variable
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
EP04805753A
Other languages
German (de)
English (en)
Inventor
Marc Joye
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP1676198A1 publication Critical patent/EP1676198A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Definitions

  • R is the random number sought, between 0 and Pl i K.
  • S S p - ⁇ Sp-2 ... S ⁇ So, commonly used notation.
  • step b R is obtained from S by repeating step b (1 st process), taking into account or not the additional random number S p - ⁇ (2 nd process) or performing a modular reduction (3rd process).
  • the main drawback of the first method is that it takes a particularly long and above all unpredictable time: the step of producing p random numbers can be repeated many times without it being possible to predict at the start the number of repetitions of this step.
  • the 2 nd and 3 rd processes have the major drawback of generating random numbers having a bias: from R numbers generated in the interval [0, K], some values are more likely than others. In other words, the R numbers produced are not perfectly random (non-uniform distribution).
  • This bias can have significant consequences on the security of cryptographic systems capable of implementing these methods.
  • the security of cryptographic systems presupposes that the random numbers they use are uniformly distributed (or at least close to a uniform distribution) in the interval [0, K] or [A, K + A] desired.
  • the three methods are generally slow because they implement operations on large numbers, of size N (in the sense number of bits) greater than the size of the circuits used for the implementation.
  • N in the sense number of bits
  • the number K in particular is arbitrary and can be greater than W and therefore of size greater than N.
  • the variable S can also be large.
  • the implementation of operations on large numbers requires the implementation of complex and costly processes in terms of computation time.
  • An essential object of the invention is to propose a method for constructing a particularly rapid random number R.
  • one searches for the coefficients Ri of the desired random number R one by one, starting with the most significant coefficient R p - ⁇ .
  • the physical generator of random numbers used thus produces random variables If one at a, a variable at each iteration.
  • step E33 is executed a limited number of times. Indeed, as soon as one of the variables Si produced by the physical generator is less than the associated coefficient Ki of the terminal K, the process no longer requires the processing of the variables Sj of rank lower than i: we thus calculate the more often a limited number of coefficients of the number R, the most significant.
  • a method according to the invention has the advantage of working on numbers of at most N bits, N being the size of the registers and other calculation circuits of the devices used for the implementation. For example, if W is equal to 2 N , the coefficients Ki, resulting from the decomposition of K in the base (WP -1 , ... W 1 , W °), are necessarily less than W and therefore of size at most N bits. Likewise, the random variables Si produced by the physical generator of random numbers are also N bits.
  • Step E33 is executed only if the variable f is TRUE; thus, as soon as the variable f is set to the value FALSE, step E33_l is no longer executed and the method according to the invention ends quickly.
  • a second objective of the invention is to propose a method of constructing random numbers whose distribution is uniform or can be made as close as desired to a uniform distribution. This objective is achieved by choosing an adequate function for determining the coefficient Ri from the random variable Si.
  • step E33 1 to determine the coefficient Ri of rank i from the random variable Si of rank i (step E33 1), the following sub-steps are carried out: E33__ll: if the random variable Si is strictly greater than the coefficient Ki of the terminal K, then we produce a new random variable Si,
  • step E33_12 step E33_ll is repeated until the random variable Si is less than the coefficient Ki of terminal K, then the coefficient Ri is equalized with the random variable Si.
  • all the coefficients Ri obtained are numbers directly produced by the hardware generator of random numbers, these coefficients are therefore perfect and the number R which results therefrom is also perfect, in other words, the distribution obtained of numbers R is uniform in the interval [0, K].
  • the coefficient Ri of rank i is chosen, equal to a part of the random variable Si, part less than the coefficient Ki. Said part corresponding in one example to a limited number of bits of the variable Si.
  • step E33 the random variable Si modulo Ki + 1 is reduced, the result of the reduction being the coefficient Ri sought.
  • a random number R less than K is constructed from variables Si of size N produced by a perfectly random physical generator.
  • the number R obtained is biased, but the bias is reduced compared to a known method.
  • step E33 43 the numbers in a base ⁇ ⁇
  • step E33_43 breaking down step E33_43 into a succession of steps similar to steps E33_41 to E33_43.
  • the invention also relates to an electronic component suitable for the implementation of a method as described above.
  • a component notably comprises a generator producing random numbers of size N, and calculation circuits for carrying out operations on numbers of at most N bits.
  • the calculation circuits are adapted to carry out operations for comparing two numbers, truncating numbers, modular reduction.
  • the random number generator and the calculation circuits are preferably controlled by software means stored in a memory of the component provided for this purpose.
  • the invention also relates to a smart card comprising an electronic component as described above.

Landscapes

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

Abstract

L'invention concerne un procédé cryptographique, au cours duquel on utilise un générateur de nombres aléatoires produisant des nombres aléatoires Si de taille N fixée compris entre 0 et W-1, pour produire un nombre aléatoire R compris entre 0 et une borne K prédéfinie. Selon l'invention : E31 : on produit une variable aléatoire Si comprise entre 0 et W-1, E32 si la variable aléatoire Si est strictement inférieure à un coefficient Ki de la borne K dans la base W, alors le coefficient Ri de rang i du nombre aléatoire R est égal à la variable aléatoire Si puis, pour tout rang j inférieur à i, on produit une variable aléatoire Sj entre 0 et W-1 et on pose Rj = Sj. E33 : sinon, si la dite variable aléatoire est supérieure au coefficient Ki de rang i de la borne K dans la base W, alors on détermine le dit coefficient Ri à partir de la variable aléatoire Si de rang i selon une fonction prédéfinie, puis on détermine un coefficient Ri-1 du nombre aléatoire R de rang i-1 immédiatement inférieur en répétant les étapes E31 à E33. L'invention concerne également un composant électronique adapté pour la mise en couvre du procédé, et une carte à puce intégrant un tel composant.

Description

PROCÈDE ET DISPOSITIF ASSOCIE DE GÉNÉRATION DE NOMBRES ALÉATOIRES DANS UN INTERVALLE DONNE
L'invention concerne un procédé d'obtention d'un nombre aléatoire compris entre A et B à partir d'un générateur produisant des nombres aléatoires compris entre 0 et W-l, avec N la taille des nombres produits par le générateur, W-l la valeur maximale prise par les nombres aléatoires produits, avec par exemple W = 2N , et A, B des nombres entiers quelconques, inférieurs ou supérieurs au nombre W.
Une telle situation se produit par exemple dans un composant électronique adapté pour réaliser des calculs cryptographiques et comprenant un générateur de nombres aléatoires de N bits, par exemple N "= 8. Les nombres aléatoires qu'il peut produire sont ainsi compris entre 0 et W-l = .255, alors qu'il serait souhaitable de disposer de nombres aléatoires compris par exemple entre 0 et 100 ou entre 300 et 10000. A noter qu'il suffit de déterminer des nombres entre 0 et 9700 puis d'ajouter ensuite 300 au nombre obtenu pour obtenir finalement un nombre entre 300 et 10000.
Une telle situation se retrouve dans la pratique dans la plupart des applications cryptographiques, par exemple la signature DSA, la signature ou le chiffrement d'El Gamal, le développement de contremesures contre diverses attaques, etc.
Plusieurs procédés sont déjà connus pour produire des nombres aléatoires R compris entre 0 et K à partir de nombres compris entre 0 et W-l. Ces procédés sont en général mis en œuvre par des moyens logiciels utilisés pour piloter d'une part un générateur hardware qui produit des nombres aléatoires de taille N et d'autre part des moyens de calcul réalisant notamment des opérations de multiplications, d'additions, etc.
Un premier procédé connu comprend les étapes suivantes : a) déterminer le plus petit nombre entier p tel que K < P - 1, b) produire p nombres aléatoires Scw Si, ...., Sp-ι et p-l former la variable S = ∑ S * W i=0 c) si S > K, alors retourner à l'étape b) , sinon poser R = S
R est le nombre aléatoire recherché, compris entre 0 et P-l i K. L'équation S = _T Sj_ * W est une représentation de la i=0 variable S décomposée / recomposée dans la base (WP-1, ..., W1, W°) . On pourrait également noter S = Sp-ιSp-2...SιSo, notation couramment utilisée.
Un deuxième procédé connu comprend les étapes suivantes : a) déterminer le plus petit nombre entier p tel que K < P - 1, b) produire p nombres aléatoires So, Si, ...., Sp_ι et former la variable T = JSi *Wi etS = T + Sp-α*Wp"1 c) si S > K, poser R = T, sinon poser R = S.
Un troisième procédé connu comprend les étapes suivantes : a) déterminer le plus petit nombre entier p tel que K < WP - 1, b) produire p nombres aléatoires So, Si, ...., Sp-ι et p-l former la variable S = £ S± * W1 i=0 c) poser R = S mod(K+l), c'est-à-dire le reste de la division entière de S par K+l, également appelé réduction modulaire de S par K+l .
Ces trois procédés peuvent être résumés par les étapes suivantes : a) produire p nombres aléatoires So, S , ...., Sp-ι , p étant le plus petit nombre entier tel que K < WP - 1, P-l et former la variable S = ∑ j_ * W i=0 b) déterminer le nombre aléatoire R à partir de la variable S .
Selon le cas, au cours de l'étape b, on obtient R à partir de S en répétant l'étape b (1er procédé), en tenant compte ou non du nombre aléatoire supplémentaire Sp-ι (2ème procédé) ou en effectuant une réduction modulaire (3eme procédé) .
A noter que, dans les trois procédés, si un nombre compris entre A et K+A est souhaité, il suffit d'ajouter A au nombre R obtenu compris entre 0 et K.
Le premier procédé a pour principal inconvénient un temps de calcul particulièrement long et surtout imprévisible : l'étape de production des p nombres aléatoires peut être répétée de nombreuses fois sans qu'il soit possible de prévoir au départ le nombre de répétitions de cette étape .
Le 2ème et le 3ème procédés ont pour principal inconvénient de produire des nombres aléatoires présentant un biais : parmi les nombres R produits dans l'intervalle [0, K] , certaines valeurs sont plus probables que d'autres. Dit autrement, les nombres R produits ne sont pas parfaitement aléatoires (distribution non uniforme) . Ce biais peut avoir des conséquences importantes sur la sécurité des systèmes cryptographiques susceptibles de mettre en œuvre ces procédés . La sécurité des systèmes cryptographiques suppose en effet que les nombres aléatoires qu'ils utilisent soient uniformément distribués (ou au moins proches d'une distribution uniforme) dans l'intervalle [0, K] ou [A, K+A] souhaité.
Enfin, les trois procédés sont globalement lents parce qu'ils mettent en œuvre des opérations sur des grands nombres, de taille N (au sens nombre de bits) supérieure à la taille des circuits utilisés pour la mise en œuvre. En effet, le nombre K notamment, est quelconque et peut être supérieur à W et donc de taille supérieure à N. La variable S peut également être de grande taille. Or, la mise en œuvre d'opérations sur des grands nombres nécessite la mise en œuvre de procédés complexes et coûteux en termes de temps de calcul.
Un objet essentiel de l'invention est de proposer un procédé de construction d'un nombre aléatoire R particulièrement rapide.
Ainsi, l'invention propose un procédé cryptographique, au cours duquel on utilise un générateur de nombres aléatoires produisant des nombres aléatoires Si de taille N fixée compris entre 0 et W-l, avec par exemple mais non nécessairement W = 2N, pour produire un nombre aléatoire R compris entre 0 et une borne K prédéfinie. Les étapes essentielles d'un procédé selon l'invention sont les suivantes : E31 : on produit une variable aléatoire Si comprise entre 0 et W-l, E32 : si la variable aléatoire S est strictement inférieure à un coefficient Ki de la borne K dans la base W, alors le coefficient R± de rang i du nombre aléatoire R est égal à la variable aléatoire S± puis, pour tout rang j inférieur à i, on produit une variable aléatoire Sj entre 0 et W-l et on pose Rj = Sj. E33 : sinon, si la dite variable aléatoire est supérieure au coefficient Ki de rang i de la borne K dans la base W, alors on détermine le dit coefficient Ri à partir de la variable aléatoire Si de rang i selon une fonction prédéfinie, puis on détermine le coefficient Ri-i du nombre aléatoire R de rang i-1 immédiatement inférieur en répétant les étapes E31 à E33.
Ainsi, dans un procédé selon l'invention, on recherche un à un les coefficients Ri du nombre aléatoire R souhaité, en commençant par le coefficient Rp-ι le plus significatif. Le générateur physique de nombres aléatoires utilisés produit ainsi des variables aléatoires Si une à une, une variable à chaque itération.
De plus, le procédé est rapide car l'étape E33 est exécutée un nombre restreint de fois. En effet, dès qu'une des variables Si produite par le générateur physique est inférieure au coefficient Ki associé de la borne K, le procédé ne nécessite plus le traitement des variables Sj de rang inférieur à i : on calcule ainsi le plus souvent un nombre restreint de coefficients du nombre R, les plus significatifs.
Enfin, par rapport aux procédés connus, un procédé selon l'invention présente l'avantage de travailler sur des nombres de au plus N bits, N étant la taille des registres et autres circuits de calculs des dispositifs utilisés pour la mise en œuvre. Par exemple, si W est égal à 2N, les coefficients Ki, résultant de la décomposition de K dans la base (WP-1, ... W1, W°) , sont nécessairement inférieurs à W et donc de taille au plus N bits . De même, les variables aléatoires Si produites par le générateur physique de nombres aléatoires sont également de N bits .
En ajoutant aux étapes essentielles une étape d'initialisation et une étape de recombinaison du nombre aléatoire R, on obtient : El : on décompose la borne K dans une base (WP-1, P-l WP-2, ..., W°) (K = £ * W1 ou K = KP-A^K0) , i étant un i=0 indice de boucle, Ki étant un coefficient de la borne K de rang i compris entre 0 et W-l et p étant le degré de la borne K, E2 : on initialise à VRAI une variable booléenne f, E3 : on réalise les opération suivantes, dans une boucle indicée par i, i étant un nombre entier variant entre p-l et 0: E31 : on produit une variable aléatoire Si comprise entre 0 et W-l, E32 : si la variable aléatoire Si est strictement inférieure au coefficient Ki de rang i, alors on met à FAUX la variable booléenne f, E33_l : si la variable aléatoire Si est strictement supérieure au coefficient Ki de rang i et si la variable booléenne f est VRAI, alors on détermine le coefficient Ri de rang i à partir de la variable aléatoire Si de rang i selon une fonction prédéfinie, E33_2 : sinon, on pose Ri = Si E34 : on décrémente l'indice de boucle i, E4 : on détermine le nombre aléatoire R par recombinaison des coefficients aléatoires Ri dans la base p-i w ( R = ∑ R± * w1 ou RPAJ AR0) . i=0
Concrètement, dès que la variable booléenne f est positionnée à FAUX, elle reste à cette valeur, puisqu'il n'est pas prévu de la repositionner à la valeur VRAI, sauf lors de l'initialisation E2 du procédé. L'étape E33 est exécutée uniquement si la variable f est VRAI ; ainsi, dès que la variable f est positionnée à la valeur FAUX, l'étape E33_l n'est plus exécutée et le procédé selon l'invention se termine rapidement.
Un deuxième objectif de l'invention est de proposer un procédé de construction de nombres aléatoires dont la distribution soit uniforme ou puisse être rendue aussi proche que souhaitée d'une distribution uniforme. Cet objectif est atteint en choisissant une fonction adéquate pour la détermination du coefficient Ri à partir de la variable aléatoire Si.
Selon un premier mode de mise en œuvre d'un procédé selon l'invention, pour déterminer le coefficient Ri de rang i à partir de la variable aléatoire Si de rang i (étape E33 1) , on réalise les sous-étapes suivantes : E33__ll : si la variable aléatoire Si est strictement supérieure au coefficient Ki de la borne K, alors on produit une nouvelle variable aléatoire Si,
E33_12 : on répète l'étape E33_ll jusqu'à ce que la variable aléatoire Si soit inférieure au coefficient Ki de la borne K, puis on égalise le coefficient Ri à la variable aléatoire Si.
Dans un tel mode de réalisation, tous les coefficients Ri obtenus sont des nombres directement produits par le générateur hardware de nombres aléatoires, ces coefficients sont donc parfaits et le nombre R qui en résulte est également parfait, en d'autres termes, la distribution obtenue des nombres R est uniforme dans l'intervalle [0, K] .
Selon un deuxième mode de mise en œuvre, au cours de l'étape E33, on choisit le coefficient Ri de rang i, égal à une partie de la variable aléatoire Si, partie inférieure au coefficient Ki. La dite partie correspondant dans un exemple à un nombre limité de bits de la variable Si.
Selon un troisième mode de réalisation, au cours de l'étape E33, on réduit la variable aléatoire Si modulo Ki+1, le résultat de la réduction étant le coefficient Ri cherché .
Ces deux derniers modes de réalisation sont rapides par rapport aux procédés connus, essentiellement parce qu'on travaille sur des petits nombres . Les distributions de nombres aléatoires obtenus ne sont cependant pas uniformes : le simple fait de tronquer la variable Si ou d'effectuer une réduction modulo Ki+1 introduit nécessairement un biais. Toutefois, ce biais est moindre par rapport aux procédés de 1 ' art antérieur .
Par ailleurs, il est possible de réduire le biais des procédés selon les deuxième et troisième modes de réalisation proposés, comme on va le voir ci-dessous.
Dans un procédé selon l'invention tel que décrit ci- dessus, on construit un nombre aléatoire R inférieur à K à partir de variables Si de taille N produits par un générateur physique parfaitement aléatoire. Le nombre R obtenu est biaisé, mais le biais est réduit par rapport à un procédé connu.
Pour cela, dans le deuxième mode ou le troisième mode de réalisation, on construit notamment au cours de l'étape E33_l un coefficient Ri ≤ Ki à partir de variables Si de taille N. Pour réduire le biais introduit sur le coefficient R. , on propose de le construire en utilisant les mêmes étapes El à E3 que pour construire le nombre R. En quelque sorte, on "imbrique" deux procédés simila±Êes. Ceci permet de réduire encore la taille des nombres sur lesquels on travaille, et en conséquence de réduire encore le biais sur les coefficients de R, et sur le nombre R final .
Concrètement, pour déterminer le coefficient Ri de rang i à partir de la variable aléatoire Si de rang i (étape E33_l) r on exécute les étapes El à E4 en utilisant une base (βq_1, ..., β°) comme base de calcul, β étant un nombre entier strictement inférieur à W et q étant le degré de Ki dans la base β.
L'étape E33 est ainsi décomposée en les sous-étapes suivantes : E33_41 : on décompose le coefficient Ki de rang i de la q-i borne K dans la base (β<2-1, ..., β°) ( K± = ∑ (K±)^ * β ou j=0 κi = (Ki) q_ι„. (Ki) i (Ki) o) r j étant un indice de boucle, (Ki) j étant un nombre compris entre 0 et β-1 et q étant un degré du coefficient Ki,
E33_42 : on initialise à VRAI une deuxième variable booléenne g,
E33_43 : on réalise les opération suivantes, dans une boucle indicée par j variant entre q-1 et 0 : E33_431 : on produit une variable aléatoire (Si)j comprise entre 0 et β-1, E33_432 : si la variable aléatoire (Si)j est strictement inférieure au coefficient (Ki)j, alors on met à FAUX la deuxième variable booléenne g, E33_4331 : si la variable aléatoire (Si)j est strictement supérieure au coefficient (Ki)j et si la deuxième variable booléenne g est VRAI, alors on détermine un coefficient (Ri)j à partir de la variable aléatoire (Si)j selon une fonction prédéfinie, E33_4332 : sinon, poser (Rι)j = (Si)j E33_434 : on décrémente l'indice de boucle j,
E33_44 : on détermine le nombre aléatoire Ri par recombinaison des coefficients aléatoires (Rj j dans la base β ( Rt = £(Λ,) *β ou R± ≈ (R±) q_ι... (R±) i (R±) o) -
Comme on vient de le voir ci-dessus, en "imbriquant" deux procédés, on réduit le biais des nombres aléatoires R produits par le procédé global, tout en conservant un procédé global rapide . On peut bien sûr imaginer d"imbriquer" plus de deux procédés, par exemple trois ou quatre, en décomposant, dans l'étape E33 43 les nombres dans une base γ < β, et en décomposant l'étape E33_43 en une succession d'étapes similaires aux étapes E33_41 à E33_43.
De manière générale, plus on "imbrique" de procédés, plus les nombres sur lesquels on travaille sont petits : la durée de chaque étape diminue et le biais des nombres produits par le procédé global diminue également.
L'invention a également pour objet un composant électronique adapté pour la mise en oeuvre d'un procédé tel que décrit ci-dessus. Un tel composant comprend notamment un générateur produisant des nombres aléatoires de taille N, et des circuits de calcul pour réaliser des opérations sur des nombres de au plus N bits .
Selon le mode de réalisation du procédé à mettre en œuvre, les circuits de calcul sont adaptés pour réaliser des opérations de comparaison de deux nombres, de troncature de nombre, de réduction modulaire.
Le générateur de nombres aléatoires et les circuits de calcul sont pilotés de préférence par un moyen logiciel mémorisé dans une mémoire du composant prévue à cet effet .
L'invention concerne également une carte à puce comprenant un composant électronique tel que décrit ci- dessus .

Claims

REVENDICATIONS
1. Procédé cryptographique, au cours duquel on utilise un générateur de nombres aléatoires produisant des nombres aléatoires Si de taille N fixée compris entre 0 et W-l, pour produire un nombre aléatoire R compris entre 0 et une borne K prédéfinie, caractérisé en ce que :
E31 : on produit une variable aléatoire Si comprise entre 0 et W-l,
E32 : si la variable aléatoire Si est strictement inférieure à un coefficient Ki de la borne K dans la base W, alors le coefficient Ri de rang i du nombre aléatoire R est égal à la variable aléatoire Si puis, pour tout rang j inférieur a i, on produit une variable aléatoire Sj entre 0 et W-l et on pose Rj = Sj .
E33 : sinon, si la dite variable aléatoire est supérieure au coefficient Ki de rang i de la borne K dans la base W, alors on détermine le dit coefficient Ri à partir de la variable aléatoire Si de rang i selon une fonction prédéfinie, puis on détermine le coefficient Ri-i du nombre aléatoire R de rang i-1 immédiatement inférieur en répétant les étapes E31 à E33.
2. Procédé selon la revendication 1, au cours duquel on réalise les étapes suivantes :
El : on décompose la borne K dans une base (WP-1, WP-2, ..., P-l W°) sous la forme K = _ K * W1 , i étant un indice de i=0 boucle, Ki étant un coefficient de la borne K de rang i compris entre 0 et W-l et p étant le degré de la borne K, E2 : on initialise à VRAI une variable booléenne f,
E3 : on réalise les opération suivantes, dans une boucle indicée par i, i étant un nombre entier variant entre p-l et 0: E31 : on produit une variable aléatoire S± comprise entre 0 et W-l, E32 : si la variable aléatoire Si est strictement inférieure au coefficient Ki de rang i, alors on met à FAUX la variable booléenne f, E33_l : si la variable aléatoire Si est strictement supérieure au coefficient K de rang i et si la variable booléenne f est VRAI, alors on détermine le coefficient Ri de rang i à partir de la variable aléatoire Si de rang i selon une fonction prédéfinie, E33_2 : sinon, on pose Ri = Si E34 : on décrémente la variable de boucle i,
E4 : on détermine le nombre aléatoire R par recombinaison des coefficients aléatoires Ri dans la base W selon la P-1 , relation : R = ∑ R± * W1. i=0
3. Procédé selon la revendication 2, au cours duquel, pour déterminer le coefficient Ri de rang i à partir de la variable aléatoire Si de rang i (étapes E33_l et E33_2) r on réalise les sous-étapes suivantes :
E33_ll : si la variable aléatoire Si est strictement supérieure au coefficient Ki de la borne K, alors on produit une nouvelle variable aléatoire Si,
E33_12 : on répète l'étape E33_ll jusqu'à ce que la variable aléatoire Si soit inférieure au coefficient Ki de la borne K, puis on égalise le coefficient Ri à la variable aléatoire Si.
4. Procédé selon la revendication 2, au cours duquel, on choisit (étapes E33-1 et 33_2) Ie coefficient Ri de rang i égal à une partie de la variable aléatoire Si, partie inférieure au coefficient Ki, la dite partie correspondant par exemple à un nombre limité de bits de la variable Si.
5. Procédé selon la revendication 2, au cours duquel, au pour déterminer le coefficient Ri de rang i à partir de la variable aléatoire Si de rang i (étape E33) , on réduit la variable aléatoire Si modulo Ki+1, le résultat de la réduction étant le coefficient R cherché .
6. Procédé selon l'une des revendications 1 à 5, au cours duquel, pour déterminer le coefficient Ri de rang i à partir de la variable aléatoire Si de rang i (étape E33) , on exécute les étapes El à E4 en utilisant une base (βÇ-1, ..., β°) comme base de calcul, β étant un nombre entier strictement inférieur à W et q étant le degré de K dans la base β.
7. Procédé selon la revendication 6, dans lequel l'étape E33 est décomposée en les sous-étapes suivantes :
E33_41 : on décompose le coefficient Ki de rang i de la borne K dans la base (βq_1, ..., β°) sous la forme q-1 κi = Σ (κ±)j * β"3 r j étant un indice de boucle, (Ki)j étant j=0 un nombre compris entre 0 et β-1 et q étant le degré du coefficient Ki,
E33_42 : on initialise à VRAI une deuxième variable booléenne g,
E33_43 : on réalise les opération suivantes, dans une boucle indicée par j variant entre q-1 et 0: E33_431 : on produit une variable aléatoire (S )j comprise entre 0 et β - 1, E33_432 : si la variable aléatoire (Si)j est strictement inférieure au coefficient (Ki)j, alors on met à FAUX la deuxième variable booléenne g, E33_4331 : si χa variable aléatoire (Si)j est strictement supérieure au coefficient (K )j et si la deuxième variable booléenne g est VRAI, alors on détermine un coefficient (Ri)j à partir de la variable aléatoire (Si)j selon une fonction prédéfinie, E33_4332 : sinon, poser (Ri)j = (Si)j E33_434 : on décrémente l'indice de boucle j,
E33_44 : on détermine le nombre aléatoire Ri par recombinaison des coefficients aléatoires (Ri)j dans la base β selon la relation : R. = ∑(Ri)J-*βj .
8. Composant électronique comprenant un générateur de nombres aléatoires de taille N, des circuits de calcul réalisant notamment une comparaison, une troncature et / ou une réduction modulaire sur des nombres de au plus* N bits, et un moyen de pilotage du générateur de nombres aléatoires et des circuits de calcul, le dit moyen de pilotage étant adapté pour la mise en œuvre d'un procédé selon l'une des revendications 1 à 7.
9. Carte à puce comprenant un composant électronique selon la revendication précédente.
EP04805753A 2003-10-24 2004-10-18 Procede et dispositif associe de generation de nombres aleatoires dans un intervalle donne Withdrawn EP1676198A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0312435A FR2861518B1 (fr) 2003-10-24 2003-10-24 Procede et dispositif associe de generation de nombres aleatoires dans un intervalle donne.
PCT/FR2004/050510 WO2005043382A1 (fr) 2003-10-24 2004-10-18 Procede et dispositif associe de generation de nombres aleatoires dans un intervalle donne

Publications (1)

Publication Number Publication Date
EP1676198A1 true EP1676198A1 (fr) 2006-07-05

Family

ID=34400746

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04805753A Withdrawn EP1676198A1 (fr) 2003-10-24 2004-10-18 Procede et dispositif associe de generation de nombres aleatoires dans un intervalle donne

Country Status (6)

Country Link
US (1) US20070033241A1 (fr)
EP (1) EP1676198A1 (fr)
JP (1) JP2007510171A (fr)
CN (1) CN1871579A (fr)
FR (1) FR2861518B1 (fr)
WO (1) WO2005043382A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101299856B (zh) * 2008-06-30 2011-09-28 中国移动通信集团公司 一种防止针对sim卡破解攻击的方法及装置
CN102130734B (zh) * 2011-04-22 2014-02-19 南京航空航天大学 Nakagami衰落信道建模和仿真方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL107967A (en) * 1993-12-09 1996-12-05 News Datacom Research Ltd Apparatus and method for securing communication systems
US6324558B1 (en) * 1995-02-14 2001-11-27 Scott A. Wilber Random number generator and generation method
US5627775A (en) * 1995-04-18 1997-05-06 Applied Computing Systems, Inc. Method and apparatus for generating random numbers using electrical noise
US5871400A (en) * 1996-06-18 1999-02-16 Silicon Gaming, Inc. Random number generator for electronic applications
JP2842389B2 (ja) * 1996-07-11 1999-01-06 日本電気株式会社 乱数発生装置
US6539410B1 (en) * 1999-03-17 2003-03-25 Michael Jay Klass Random number generator

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2005043382A1 *

Also Published As

Publication number Publication date
FR2861518A1 (fr) 2005-04-29
CN1871579A (zh) 2006-11-29
FR2861518B1 (fr) 2006-01-13
WO2005043382A1 (fr) 2005-05-12
JP2007510171A (ja) 2007-04-19
US20070033241A1 (en) 2007-02-08

Similar Documents

Publication Publication Date Title
EP2005290B1 (fr) Procede et dispositif pour engendrer une suite pseudo-aleatoire
EP1414182B1 (fr) Masquage de données décomposées dans un système de résidus
EP2215768B1 (fr) Procede et dispositifs de protection d&#39;un microcircuit contre des attaques visant a decouvrir une donnee secrete
FR2885711A1 (fr) Procede et materiel modulaire et aleatoire pour la reduction polynomiale
FR2926652A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
WO2014111647A1 (fr) Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation
FR3017476A1 (fr) Procede de contremesure pour un composant electronique mettant en œuvre un algorithme de cryptographie sur une courbe elliptique
EP1969459A1 (fr) Procédé cryptographique comprenant une exponentiation modulaire sécurisée contre les attaques à canaux cachés, cryptoprocesseur pour la mise en oeuvre du procédé et carte à puce associée
WO2009016272A1 (fr) Procédé d&#39;authentification utilisant un décodage de code correcteur d&#39;erreurs à partir d&#39;une matrice publique
EP1493078B1 (fr) Procédé cryptographique protégé contre les attaques de type à canal caché
EP1676198A1 (fr) Procede et dispositif associe de generation de nombres aleatoires dans un intervalle donne
EP3929726B1 (fr) Procede de traitement cryptographique,dispositif electronique et programme d&#39;ordinateur associes
EP1639451A2 (fr) Procédé de contre-mesure par masquage de l&#39;accumulateur
EP1399807B1 (fr) Brouillage d&#39;un calcul mettant en oeuvre une fonction modulaire
FR3160081A1 (fr) Génération d&#39;un vecteur uniformément aléatoire
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é
FR2821945A1 (fr) Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique
EP4617853A1 (fr) Procédé de détermination d&#39;un inverse modulaire, dispositif électronique et programmes d ordinateur associés
EP1891769A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire effectue par un circuit integre
EP4525353A1 (fr) Procédé de multiplication sécurisée entre un polynôme creux et un polynôme dense dans un algorithme cryptographique, dispositif électronique et programme d&#39; ordinateur associés
EP1695204A2 (fr) Procede d&#39;exponentiation modulaire protege contre les attaques du type dpa
WO2009004235A2 (fr) Procede de codage d&#39;informations par utilisation de fonctions non-lineaires equidistribuees et programmes d&#39;ordinateur pour mettre en oeuvre le procede
FR2887048A1 (fr) Procede et dispositif pour engendrer une suite pseudo-aleatoire
WO2003010921A1 (fr) Procede de generation de cles electroniques pour la mise en oeuvre d&#39;un algorithme cryptographique, carte a puce mettant en oeuvre le procede
FR3094522A1 (fr) Protection d’un calcul itératif

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20060321

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20060822

DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20070814