Brevet FR2827722A1 — publié le 20030124

PROCEDE DE GENERATION DE CLES ELECTRONIQUES POUR LA MISE EN OEUVRE D'UN ALGORITHME CRYPTOGRAPHIQUE, CARTE A PUCE METTANT EN OEUVRE LE PROCEDE. L'invention concerne un procédé de génération de clés électroniques bas coût en temps de calcul et en espace mémoire. Elle concerne également les algorithmes cryptographiques utilisant le procédé de génération de clés proposé. Elle concerne également les produits de chiffrement pour la mise en oeuvre du procédé, ces produits peuvent être des dispositifs tels que notamment les cartes à puce. Afin de simplifier le propos on parlera dans la suite de carte à puce étant bien entendu que l'invention s'applique à tout produit apte à effectuer des opérations de chiffrement déchiffrement. L'invention s'applique tout particulièrement à la réalisation de cartes à puces livrées ou utilisées à des fins de démonstrations sur un lieu public (sur un salon par exemple) ou chez un client (pour une démonstration commerciale) et susceptibles d'effectuer des opérations de cryptographie. La carte à puce démonstration doit dans l'idéal fournir toutes les fonctions standards offertes par un protocole de cryptographie à clé publique ou à clé secrète. On rappelle qu'un protocole de cryptographie à clé publique permet le chiffrement d'informations et/ou l'authentification entre deux entités et/ou la signature électronique de messages. On peut citer à titre d'exemple des protocoles de cryptographie à clé publique tels que le protocole RSA (Rivest Shamir et Adelman), El Gamal, Schnorr, Fiat Shamir. On rappelle également qu'un protocole de cryptographie à clé privée permet des opérations d'authentification et ou de chiffrement. On peut citer à titre d'exemple l'algorithme DES (Data Encryption Standard). De nombreuses législations et en particulier la loi française a introduit des restrictions quant aux exportations des produits de chiffrement en imposant qu'une déclaration d'exportation d'un algorithme cryptographique soit faite dès lors que la taille des clés utilisées est supérieure à 40 bits et inférieure ou égale à 128 bits. La loi impose outre, que dans le cas où la taille des clés est supérieure à 128 bits, une demande de licence d'exploitation soit faite également. La loi s'applique à tous produits permettant de réaliser des opérations cryptographiques y compris à des produits livrés à des fins de démonstration ou d'essai, à des produits échantillons qui vont permettre à un client potentiel de tester le produit dans toutes ses fonctionnalités. Or toutes ces démarches sont longues et très contraignantes étant donné le contexte qui vient d'être présenté. Afin d'éviter ces démarches administratives, la solution offerte aujourd'hui pour la réalisation de ces cartes de démonstration est de limiter les fonctionnalités cryptographiques et de fournir un échantillon qui malheureusement n'est pas le reflet du produit dont disposera le client. L'invention a pour but de remédier à ce problème. L'invention propose la réalisation de produits de chiffrement notamment de cartes à puce, susceptibles de mettre en oeuvre toutes les fonctions d'un algorithme à clé publique ou à clé privée utilisant les longueurs de clés requises, mais dans lequel les clés utilisées peuvent être retrouvées par une autorité à la quelle on remet le procédé qui a permis de les générer. Dans ce cas bien sûr les clés n'ont pas le niveau de sécurité qui est habituellement recherché dans les conditions de fonctionnement standard. Par contre, l'échantillon présentant de tels moyens sera fonctionnel et fournira un reflet fidèle du produit. A cette fin l'invention propose un procédé de génération de clés électroniques pour la mise en oeuvre d'un algorithme cryptographique, principalement caractérisé en ce qu'elle consiste à fournir au moins une clé de taille l suffisante pour assurer la sécurité requise (1 > : kbits), ladite clé comprenant une partie correspondant à une valeur v prise parmi un nombre défini de valeurs et une partie f correspondant à une valeur fixe. Selon une caractéristique de l'invention, la partie correspondant à une valeur v, a une taille r courte par rapport à la taille l de la clé, cette valeur étant générée de façon aléatoire. Lorsque le procédé de génération de clés électroniques est utilisé pour algorithme de cryptographie à clé publique (du type RSA), la clé générée constitue au moins un paramètre p ou q de l'algorithme. Selon une autre caractéristique, deux clés sont générées et constituent respectivement les paramètres p et q de l'algorithme, chaque paramètre comprenant une valeur aléatoire distincte respectivement vl, v2. Selon une autre caractéristique, un des paramètres p de l'algorithme correspond à la clé générée et comprend une partie correspondant à une valeur aléatoire v, l'autre paramètre comprend une partie avec une valeur c. v, multiple de la valeur aléatoire v, a étant un entier positif. Dans le cas où oye=1, p et q s'expriment par les re- lations suivantes : p = v * 2k-r + 1 q = 3 * v * 2k-r-l+ 1 Dans le cas où a=2, on inverse le rôle de p et q dans l'algorithme de cryptographie, ceux-ci s'exprimant alors par les relations suivantes : q = v * 2k-r p = 3 * v * 2 k-r-2+ 1 L'invention concerne également un procédé de cryptographie à clé publique utilisant des paramètres p et q générés comme cela vient d'être décrit, principalement caractérisé en ce qu'il consiste : à calculer le module public n par la relation : n = p * q, à choisir la valeur de l'exposant privé d et à calculer l'exposant public e. Avantageusement, la valeur de l'exposant privé est choisie de manière à être inférieure aux paramètres p et q et de manière à être premier avec 2,3 et v. Selon une autre caractéristique, la valeur de d est choisie de manière à pouvoir s'exprimer selon la relation suivante : d = 2a+ 1 Selon une autre caractéristique, l'exposant public e est défini par la relation suivante : e = 1/d mod (p-l) (q-l) qui peut s'exprimer également sous la forme : e = A/d mod A (p*q), correspondant à une opération d'inverse modulaire susceptible d'être précalculée. Lorsque les valeurs de d et de A sont connues, la valeur de e peut alors être calculée par la relation : e = [-liA mod d * À+l]/d Dans ce cas, le paramètre public e est calculé alors par une opération d'exponentiation définie par la relation suivante : e = À mod d, et stocké. Avantageusement, on choisit une valeur pour la clé privée d petite, 8 kbits maximum, mod d étant également faible, et on calculez mod d par une suite de multiplications avec c. v, le résultat étant stocké. Selon une un mode de réalisation on calcule la valeur-1/À mod d *3 * v et on la stocke. Pour les valeurs de v pour lesquelles - 1/Ì\. mod d = 1, et le paramètre d est un nombre premier de valeur faible inférieure à 257, la valeur de e peut alors être calculée par la relation : e = (À+l)/d. Avantageusement avec des clés définies précédemment, le paramètre e comporte un préfixe a fonction de v, un mot y fixe, un mot z fixe, ce préfixe peut alors être pré-calculé pour chaque valeur de v et stocké, les mots y et z étant également stockés. Cette opération est largement simplifiée puisque lorsque a=l, Ip c'est à dire 1/p (modq) =3, cette valeur peut être stockée et lorsque a=2, Ip=5, cette valeur est stockée. L'invention concerne également un procédé de cryptographie à clé privée utilisant la génération de clés selon l'invention, la clé générée étant la clé privée de l'algorithme, la valeur v étant générée aléatoirement. Avantageusement, la partie fixe ne comprend que des zéros. D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description qui est faite ci-après et qui est donnée à titre d'exemple non limitatif et en regard des dessins annexés sur lesquels : la figure la, représente une clé électronique générée conformément au procédé de l'invention, la figure lb, représente un mode préféré pour la forme de la clé, les figures 2 à 5, représentent les différents paramètres dans le cas de l'application de la génération de clé selon l'invention à l'algorithme DSA, La figure 6, représente une clé dans le cas de l'application de la génération de clé selon l'invention à l'algorithme à clé secrète DES. La figure 7, illustre le schéma de principe d'un micromodule implémenté dans une carte à puce apte à mettre en oeuvre un procédé de cryptogra- phie utilisant la génération de clés selon l'invention. On va rappeler dans ce qui suit le procédé de génération de clés selon l'état de la technique dans le cas d'un algorithme à clé publique et plus particulièrement dans le cas de l'algorithme RSA. l) L'exposant public e : Il est commun à tous les utilisateurs et est don- né. Cet exposant est indépendant de la clé se- crète. 2) Les paramètres p et q : Ils sont générés, ont la même longueur (même taille) pour optimiser la sécurité qui est de k bits soit en général 512 bits. 3) n est le module public et est calculé : n = p*q. 4) les paramètres e et n forment la clé publique. 5) la clé privée d est calculée : d = l/e [mod (p-l) (q-l)] ; (l/e= e) 6) forme normale de la clé privée : (d, n) 6) forme CRT de la clé privée : dans cas la clé privée comporte 5 paramètres : P, q dp avec dp = d mod (p-1) dq avec dq = d mod (q-1) Ip avec Ip = P'modq. L'invention concerne donc un procédé de génération de clés électroniques pour la mise en oeuvre d'un algorithme cryptographique permettant de fournir une clé fonctionnelle de taille k bits, ladite clé peut être retrouvée facilement par un organisme tiers auquel ce procédé de génération de clés a été fourni. Dans le cas ou il s'agit d'un algorithme asymétrique de type RSA, la clé générée constitue au moins un des deux nombres premiers p et q du module N du RSA. Dans ce cas la clé générée est générée à partir d'une valeur aléatoire r de taille k. La ou les clés générées restent fonctionnelles pour des opérations de chiffrement ou de signature. Les clés générées sont générées de manière à être à être cryptographiquement faibles, c'est à dire facilement retrouvées par un tiers. Le procédé s'applique à tout produit de chiffrement, logiciel ou non, comportant des clés de taille longue (supérieures à 128 bits) potentiellement soumises à des restrictions d'utilisation, de par la loi du pays où ce produit serait développé ou vendu. Le procédé s'applique à des cartes à microprocesseurs ou cartes à puce. Le procédé a l'avantage de réduire considérablement le temps de génération des clés. Il permet d'optimiser les ressources-mémoires, processeur mathématique-nécessaires à la génération des clés. Comme on va le voir de manière détaillée dans la suite, selon l'invention on génère p et q, on fixe la clé privée d et on calcule l'exposant public e (au lieu de fixer e et calculer d comme dans le cas qui vient d'être rappelé). La figure la représente une clé générée conformément à l'invention. Cette clé comporte une partie comprenant une valeur prise parmi un ensemble déterminé de valeurs possibles. La clé comporte également une valeur fixe f de manière à ce que la longueur de la valeur v et de la valeur fixe f correspondent à une longueur l de kbits couramment utilisée dans un algorithme de cryptographie. Par exemple dans le cas d'un algorithme à clé publique, cette longueur de clé sera de préférence supérieure ou égale à 512 bits. Dans le cas d'un algorithme à clé secrète la clé aura une longueur l de 64 bits, par exemple. C'est le cas de l'algorithme DES. La partie v de la clé a une longueur r courte par rapport à la longueur totale l de la clé. Ceci permet de définir toutes les valeurs possibles que peut prendre cette partie v. La figure 1b illustre un mode de réalisation préférée pour la clé générée selon le procédé. La partie v est générée par un générateur de valeurs aléatoires, tandis que la partie fixe f sera constituée de préférence majoritairement de zéro. Dans le cas d'un algorithme à clé publique tous les bits de la partie fixe seront à 0 sauf le bit du poids le plus faible qui prendra une valeur i=l. Dans le cas, comme on le verra dans la fin de la description, d'un algorithme à clé privée, cette partie f sera constituée de zéro, i étant alors à 0. On va s'intéresser dans la suite pour illustrer la génération de clés selon l'invention, à son application à un algorithme à clé publique, comme par exemple l'algorithme RSA. Dans la mise en oeuvre de cet algorithme on considère les paramètres p et q, ces paramètres étant ceux qui vont être générés selon l'invention. Ainsi le paramètre p est une clé de la forme de celle qui est illustrée par la figure lb et le paramètre q est une clé qui a également cette forme. Cependant selon un mode préféré de réalisation, la valeur v2 est choisie égale à c*v, c=3. On peut dire que cette valeur v2 n'est pas une valeur aléatoire dans ce cas, cependant v reste une valeur aléatoire. La taille v2 du paramètre q n'est plus égale à r, mais à r+a. a est égal à 1 ou à 2 selon la valeur de v. Dans un procédé cryptographique à clé publique on détermine le paramètre n qui est le module public. Le paramètre n est égal au produit des nombres premiers p et q. Par conséquent, selon que a sera égal à 1 ou à 2, le paramètre n pourra être représenté tel que l'illustre les figures 3 et 4. Dans le cas où a=l, n comprend une partie corres- 2 pondant à 3v, une partie comprenant que des zéros, une partie correspondant au produit 5v et une partie comprenant que des zéros avec le bit de poids le plus faible égal à 1 si, bien sûr on conserve le mode préféré de réalisation illustré par la figure 2 pour le choix des paramètres p et q. La partie 3V2 a une taille égale à 2r+l. Dans le cas de la figure 4, c'est-à-dire pour a=2 on retrouve la même première partie qui est le produit 3V2 de taille 2r+1. La différence vient de la partie non nulle qui est égale à 7v au lieu de 5v pour la figure 3. Dans l'algorithme de cryptographie mis en oeuvre, pour le cas où a=2, on va inverser le rôle de p et q, de manière à simplifier les calculs du paramètre Ip comme détaillé dans la suite. Le procédé consiste ensuite à fixer la valeur de l'exposant privé d, contrairement à ce qui se fait habituellement dans la mise en oeuvre d'un algorithme cryptographique RSA classique. Le procédé de cryptographie comprend dans ce cas uniquement une étape de vérification des conditions habituelles pour cet exposant privé, c'est-à-dire que d doit être premier avec les paramètres p et q et inférieur à ces paramètres. d doit être premier avec 2,3 et v dans le cas présent. Selon un exemple préféré on va choisir une valeur d pouvant s'exprimer par une puissance de 2, c'est-àdire d=2a +1 afin de simplifier les calculs comme on va le voir dans la suite, et en particulier le calcul de l'exposant public e. En effet, dans l'algorithme de cryptographie qui découle de la présente invention, l'exposant public e est calculé. Dans le cas, comme on vient de le voir, où d est une puissance de 2, le paramètre dp est égal à d, d bien sûr est plus petit que p, et le paramètre dq est également égal à d si d est inférieur à q. On rappelle que d est défini par la relation suivante : d=l/e modulo (p-1) (q-1) et on cherche à calculer e qui est donc égal à 1/d modulo (p-1) (q-l). Dans les deux cas de figures on a une opération de calcul d'inverse modulaire. On peut bien entendu calculer cette valeur e en mettant en oeuvre l'algorithme d'Euclide étendu si on dispose de moyens de calcul puissants ce qui peut être le cas si cette valeur est précalculée en dehors d'une carte à puce par exemple. Une autre méthode est proposée dans ce qui suit, cette méthode utilise la formule d'Arazi, cette formule permettant de calculer une fonction 1/b modulo c, dans la mesure où on sait calculer 1/c modulo b. En effet, en appliquant la formule d'Arazi on peut exprimer e de la manière suivante : e = 1/d modulo A (p*q) qui est encore égal à : (-1/À module d*À+l)/d. À (p*q) est égal à (p-l) * (q-l) sur le plus grand commun de diviseur de p-1, q-1. Ayant exprimé la valeur de e de cette manière, plusieurs solutions sont possibles maintenant pour la déterminer, c'est-à-dire pour calculer cette valeur de e. Une première méthode consiste à dire que, comme d est un nombre premier module d est égal à À module d. On se retrouve ainsi avec un calcul d'exponentiation et non d'inverse modulaire. Un calcul d'exponentiation peut être aisément réalisé au sein même de la carte à puce, dès lors qu'elle dispose d'un cryptoprocesseur. Une deuxième solution peut être mise en oeuvre si on choisit une valeur de d très petite, par exemple une valeur de d codée sur 8 bits, d sera alors inférieure ou égale à 257. On va alors pouvoir calculer la valeur de-1/À module d. Par exemple dans le cas où on a pris v2=3v, À est égal à 3v*2k-r. On constate que le numérateur se calcule par des multiplications et un décalage, la division par d se faisant facilement avec un cryptoprocesseur du fait du choix de la valeur de d. La solution numéro 3 consiste à précalculer un élément du numérateur, à savoir l'élément : - 1/À module d*3*v Dans la solution précédente, c'est uniquement la première partie qui peut être précalculée et stockée. Dans celle-ci on aura le produit résultat. La taille de cet élément sera de 8 bits +r+À bits. Si on choisit une taille r+À inférieure à 32 bits, le résultat sera inférieur ou égal à 40 bits divisé par la valeur de d. Ce résultat peut donc être aisément stocké sur la carte à puce à l'issue d'un précalcul. La division par d, si on a pris un d multiple d'une puissance de 2, c'est-à-dire : d=2a+1, est aisément réalisable. La solution 4 permet également de réaliser aisément la division par d. Si on a choisi une valeur de d petite, par exemple 257, et bien sûr à condition que l'on respecte les contraintes sur v et d, v et d devant être premiers entre eux, on peut effectuer un précalcul de la quantité-1/À modulo d pour chacune des valeurs de v possibles et stocker cette quantité. Pour simplifier encore, au lieu de conserver ou de sélectionner toutes les valeurs de v, on peut ne retenir que celle pour laquelle la quantité-1/À modulo d est égale à 1. Lorsque d vaut 257 le calcul est faisable au moyen d'un cryptoprocesseur. Si on veut simplifier encore ces calculs on choisira par exemple une valeur de d égale à 5 ou à 17, c'est-à-dire une valeur plus petite que 257. Le calcul sera alors simplifié puisque l'on calculera À+l/d. Enfin une cinquième solution est proposée. Cette solution part du constat que e est de la forme : Numérateur/dénominateur= (une quantité sur 8 bits multipliée par une quantité sur 32 bits multipliée par une quantité 2k-r+1)/2a+1. Le résultat a la forme telle que représentée sur la figure 5, c'est-à-dire un préfixe x fonction de la valeur v, une partie y qui est de la forme t multiplié par une séquence comprenant un mot ne comprenant que des 1 suivi d'un mot ne comprenant des 0, de taille a chacun, l'ensemble étant suivi d'une quantité z comprenant un mot de la taille a ne comprenant que des 1 et un mot de taille a ne comprenant que des 0, sauf le bit de poids le plus faible qui est égal à 1. Le préfixe x (v) a une taille égale à r-a. La solution consiste alors à calculer tous les préfixes correspondant aux différentes valeurs de v sélectionnées pour générer et stocker ces préfixes, les valeurs y et z étant des valeurs fixes qui peuvent être stockées qu'une seule fois. Bien entendu le calcul de la formule pourra être fait au préalable par des moyens puissants de calcul en dehors de la carte à puce, il s'agira alors d'un pré- calcul qui va permettre ensuite de stocker les différents préfixes dans la produit de chiffrement. Le calcul du paramètre Ip. Dans le cas où v conduit à une taille pour laquelle a=l, alors Ip=3. Dans le cas où a=2, Ip=4. Les valeurs de Ip pourront être stockées, codées en dur dans l'algorithme de cryptographie pour les différentes valeurs de v sélectionnées ou générées. Dans le cas d'un algorithme à clé privée comme on l'a vu au début de la description, la clé générée sera la clé secrète de l'algorithme et aura la forme illustrée par la figure 6, c'est-à-dire qu'elle comprendra une partie générée v courte de taille r et partie fixe f de taille k-r pour une longueur de clé égale à kbits. Typiquement dans le cas d'un algorithme DES k est égal à 64 bits et r pourra être égal à 8 bits. La valeur de v pourra être générée de façon aléatoire au moyen d'un générateur 8 bits. Le domaine de variations de cette valeur r sera donc de 256 valeurs possibles. L'algorithme à clé secrète pourra donc être exécuté de manière classique au moyen de la clé générée selon le procédé. Sur la figure 7 on a représenté le schéma simplifié d'une carte à puce comprenant un micromodule susceptible de mettre en oeuvre l'invention. Le micromodule comporte une unité principale de traitement 1 comprenant un microcontrôleur, au moins un bus pour relier l'unité 1 à des mémoires associées composées d'au moins une mémoire de programmes Ml (non volatile de type ROM) et au moins une mémoire de travail M2 (de type RAM), au moins une mémoire de programme, programmable électriquement M3 (de type EEPROM). Le microcircuit peut comporter en outre une unité de calcul 2 (cryptoprocesseur) pour mettre en oeuvre des calculs d'exponentiations modulaires comme c'est le cas par exemple dans le cas de l'exécution de l'algorithme cryptographique à clé publique RSA (Rivest Shamir Adelman). Pour la mise en oeuvre du procédé selon l'invention, le micromodule schématisé sur cette figure 7 comporte en outre un générateur de valeurs aléatoires 3. REVENDICATIONS 1. Procédé de génération de clés électroniques pour la mise en oeuvre d'un algorithme cryptographique, caractérisé en ce qu'elle consiste à fournir au moins une clé de taille l suffisante pour assurer la sécurité requise (1 2 obits, k= 64 bits ou 512 bits), ladite clé comprenant une partie correspondant à une valeur v prise parmi un nombre défini de valeurs générées par un générateur aléatoire et une partie f correspondant à une valeur fixe. 2. Procédé de génération de clés électroniques, caractérisé en ce que la partie correspondant à une valeur v, a une taille r courte par rapport à la taille l de la clé, cette valeur étant générée de façon aléatoire. 3. Procédé de génération de clés électroniques selon la revendication 1 ou 2, pour algorithme de cryptographie à clé publique (du type RSA), caractérisé en ce que la clé générée constitue au moins un paramètre p ou q de l'algorithme. 4. Procédé de génération de clés électroniques selon la revendication 3, caractérisé en ce que deux clés sont générées et constituent respectivement les paramètres p et q de l'algorithme, chaque paramètre comprenant une valeur aléatoire distincte respectivement vl, v2. 5. Procédé de génération de clés électroniques selon la revendication 3, caractérisé en ce que un des paramètres p de l'algorithme correspond à la clé générée et comprend une partie correspondant à une valeur aléatoire v, l'autre paramètre comprend une partie avec une valeur c. v, multiple de la valeur aléatoire v, a étant un entier positif. 6. Procédé de génération de clés électroniques selon la revendication 5, caractérisé en ce que dans le cas où a=l, p et q s'expriment par les relations suivantes : p = v * 2k-r +1 q = 3 * v * 2k-r-l+1 7. Procédé de génération de clés électroniques selon la revendication 5, caractérisé en ce que dans le cas où a=2, on inverse le rôle de p et q dans l'algorithme de cryptographie, ceux-ci s'exprimant alors par les relations suivantes : q = v * 2k-r p = 3 * v * 2"'+1 8. Procédé de cryptographie à clé publique utili- sant des paramètres p et q utilisant la génération de clés selon les revendications 5 ou 7, caractérisé en ce qu'il consiste : à calculer le module public n par la relation n = p * q, à choisir la valeur de l'exposant privé d et à calculer l'exposant public e. 9. Procédé de cryptographie à clé publique selon les revendications 5 et 8, caractérisé en ce que la valeur de l'exposant privé est choisie de manière à être inférieure aux paramètres p et q et de manière à être premier avec 2,3 et v. 10. Procédé de cryptographie à clé publique selon la revendication 9, caractérisé en ce que la valeur de d est choisie de manière à s'exprimer par la relation suivante : d = 2a+ 1 11. Procédé de cryptographie à clé publique selon la revendication 8, caractérisé en ce que l'exposant public e est défini par la relation suivante : e = 1/d mod (p-1) (q-1) qui peut s'exprimer également sous la forme : e = A/d mod Ä (p*q), correspondant à une opération d'inverse modulaire susceptible d'être précalculée. 12. Procédé de cryptographie à clé publique selon l'une quelconque des revendications 1 à 12, caractérisé en ce que la partie f des paramètres p et q est composée de zéros sauf le bit de poids le plus faible. 13. Procédé de cryptographie à clé publique selon la revendication 11, caractérisé en ce que les valeurs de d et de À sont connues et en ce que e peut alors être calculée par la relation : e = [-1/À mod d * À+l]/d 14. Procédé de cryptographie à clé publique selon la revendication 13, caractérisé en ce que le paramètre public e est calculé alors par une opération d'exponentiation définie par la relation suivante : e = mod d, et stocké. 15. Procédé de cryptographie à clé publique selon la revendication 13, caractérisé en ce que l'on choisit une valeur pour la clé privée d petite, 8 kbits maximum, mod d étant également faible, et en ce que l'on calcule-1/À mod d par une suite de multiplications avec c. v, le résultat étant stocké. 16. Procédé de cryptographie à clé publique selon la revendication 14, caractérisé en ce que l'on calcule la valeur-1/À mod d *3 * v et on la stocke. 17. Procédé de cryptographie à clé publique selon les revendications 1 ou 2 et 14, caractérisé en ce que les valeurs de v pour lesquelles-1/À mod d = 1, et le paramètre d un nombre premier de valeur faible inférieure à 257, la valeur de e peut alors être calculée par la relation : e = (À+1)/d. 18. Procédé de cryptographie à clé publique selon les revendications 13 et 14, caractérisé en ce que le paramètre e comporte un préfixe a fonction de v, un mot y fixe, un mot z fixe, et en ce que le préfixe est précalculé pour chaque valeur de v et stocké, les mots y et z étant également stockés. 19. Procédé de cryptographie à clé publique selon la revendication 7, caractérisé en ce que lorsque oye=1, le paramètre Ip= l/p (modq) est égal à 3, et cette va- leur est stockée. 20. Procédé de cryptographie à clé publique selon la revendication 8, caractérisé en ce que lorsque a=2, le paramètre Ip= l/p (modq) est égal à 5, et cette valeur est stockée. 21. Procédé de cryptographie à clé privée selon les revendications 1 ou 2, caractérisé en ce que la clé générée est la clé privée de l'algorithme, la valeur v étant générée aléatoirement. 22. Procédé de cryptographie à clé privée selon l'une des revendications 1 ou 2 ou 21, caractérisé en ce que la partie fixe ne comprend que des zéros.