Brevet FR2827723A1 — publié le 20030124

Procédé pour effectuer une tâche cryptographique au moyen d'une clé publique. Le domaine de l'invention est celui de la cryptographie. La cryptographie trouve application pour sécuriser des transactions entre deux ou plusieurs entités. Parmi ces applications, on trouve des procédés de chiffrement de messages, d'identification, de signature électronique ou encore d'authentification de message. Un procédé de chiffrement consiste essentiellement à chiffrer un message de façon à ce que seul le destinataire puisse le déchiffrer pour le lire. Un procédé d'identification consiste essentiellement à vérifier l'identité d'une entité émettrice. Un procédé de signature électronique consiste essentiellement à vérifier qu'un message est tel qu'il a été signé par une entité qui l'a généré. Un procédé d'authentification de message consiste essentiellement à vérifier qu'un message reçu a été effectivement émis par une entité émettrice d'identité connue. Plus précisément, le domaine de l'invention est celui de la cryptographie dite à clé publique. On connaît par exemple des procédés cryptographiques dans lesquels une première entité, souvent nommée prouveur, effectue secrètement des premières opérations numériques au moyen d'une clé privée à laquelle est associée une clé publique. Un ou plusieurs résultats de ces opérations, sont transmis à une deuxième entité, souvent nommée vérificateur. Le vérificateur effectue alors au moyen de la clé publique, des deuxièmes opérations qui vérifient que les premières opérations ont effectivement été exécutées au moyen de la clé privée. Ces procédés sont utiles pour signer ou authentifier des messages ou encore pour authentifier la première entité, on parle dans ce dernier cas d'identification. Réciproquement, on connaît aussi des procédés cryptographiques dans lesquels la deuxième entité commence par chiffrer un message au moyen de la clé publique. Seule la première entité qui détient la clé privée associée, peut alors déchiffrer le message. Dans les procédés cryptographiques dits à connaissance nulle ou sans apport de connaissance (zero knowledge), une vérification se déroule suivant un protocole qui, de façon prouvée et sous des hypothèses reconnues parfaitement raisonnables par la communauté scientifique, ne révèle rien sur la clé privée. Parmi des procédés connus sur lesquels l'invention trouve application, on peut citer ceux basés sur l'algorithme RSA (Rivest, Shamir, Adleman) ou sur le problème dit du logarithme discret. La cryptographie à clé publique est particulièrement utile, par exemple pour le paiement électronique, par carte bancaire ou par porte-monnaie électronique. Dans le cas du paiement de proximité, le terminal de paiement doit à la fois se trouver dans un lieu public, ce qui incite à utiliser des procédés de cryptographie à clé publique, et être bon marché, ce qui incite à utiliser des puces aux capacités de calcul limitées. Dans le cas du paiement en ligne, le serveur du marchand ou le serveur de paiement (ou encore le serveur d'intermédiation) est susceptible à certains moments d'être amené à effectuer un grand nombre de vérifications de manière simultanée. Dans les deux cas, il est souhaitable de trouver une solution permettant d'alléger la tâche de vérification, c'est à dire la tâche cryptographique qui utilise la clé publique. De façon connue, la cryptographie à clé publique repose sur la difficulté selon la théorie des nombres entiers à retrouver une fonction inverse dans une manipulation de nombres entiers très grands. L'inconvénient est que, pour garantir un degré de sécurité suffisant, l'utilisation de la clé publique nécessite généralement une quantité considérable de multiplications et de divisions euclidiennes par de grands nombres, lesquelles opérations consomment des ressources de calcul en quantité correspondante. On peut envisager de moduler le niveau de vérification en fonction de différents critères d'appréciation tels qu'une évaluation de la charge de travail plus ou moins élevée du vérificateur. Le problème de cette solution est que la conviction susceptible d'être accordée à cette vérification, est modulée dans les mêmes proportions. Cependant, certaines applications requièrent de pouvoir accorder une conviction forte à la vérification. Un premier objet de l'invention est d'alléger la tâche du vérificateur dans les protocoles de vérification en réduisant la quantité de calculs à exécuter, sans pour autant diminuer le niveau de conviction de ce dernier quant à l'authenticité de l'entité émettrice et ou des données émises par cette entité. Un deuxième objet de l'invention est de permettre d'effectuer des transactions en temps réduit avec des micro-circuits aux capacités de calcul limitées. Pour cela, l'invention concerne un procédé pour effectuer une tâche cryptographique au moyen d'une clé publique sur au moins une donnée numérique échangée entre une première entité dotée d'une clé privée et une deuxième entité. Le procédé est caractérisé en ce que ladite tâche cryptographique est décomposée en au moins deux étapes : - une première étape exécutée par une entité intermédiaire qui soumet ladite donnée à un traitement numérique ouvert au moyen de tout ou partie de ladite clé publique pour obtenir une image partielle de ladite donnée ; - une deuxième étape exécutée par la deuxième entité qui soumet ladite image partielle à un traitement numérique public au moyen de tout ou partie de ladite clé publique de façon à compléter ladite tâche cryptographique sur ladite donnée. Ce procédé permet au vérificateur constitué par la deuxième entité, de réduire sa propre charge de travail en en déléguant une partie à l'entité intermédiaire qui, soit est dotée de moyens de calcul plus importants que ceux dont dispose le vérificateur, soit participe à moins de transactions que le vérificateur. Le traitement numérique est ouvert en ce qu'il est librement accessible. L'entité intermédiaire n'a pas besoin d'être une entité de confiance du point de vue du vérificateur car celle-ci n'intervient que partiellement sur la tâche cryptographique au moyen de la clé publique et conduirait à un échec de la tâche cryptographique si l'entité intermédiaire venait à corrompre l'image partielle, la deuxième entité étant celle qui termine la tâche cryptographique. Lorsque la tâche cryptographique est une vérification, elle se termine par oui ou par non selon que la vérification est confirmée ou infirmée. Dans ce cas, l'entité intermédiaire ne peut pas transformer un non en oui. Les échanges avec l'entité intermédiaire peuvent être faits dans un monde ouvert car la première étape est exécutée au moyen de tout ou partie de la clé publique et la donnée soumise au traitement numérique ouvert est aussi soumise au traitement numérique secret par la première entité. Avantageusement, le procédé est caractérisé en ce que l'entité intermédiaire réside dans un équipement physique distinct d'un équipement physique dans lequel réside la deuxième entité. La deuxième entité peut alors retransmettre la donnée reçue de la première entité, vers un équipement informatique puissant quelconque qui héberge l'entité intermédiaire. L'équipement informatique renvoyant l'image partielle à la deuxième entité. Sur un réseau ouvert, l'entité intermédiaire est hébergée dans un serveur délégué (proxy server) qui reçoit directement la donnée de la première entité. Avantageusement encore lorsque la deuxième entité peut être amenée à effectuer plusieurs tâches cryptographiques pour plusieurs, premières entités, le procédé est caractérisé en ce que l'entité intermédiaire réside dans un équipement physique dans lequel réside la première entité. Le fait de transférer une partie de la charge de travail du vérificateur vers le prouveur sans altération des propriétés de sécurité, revient à spécifier une variante particulière du protocole initial. Plus particulièrement, le procédé est caractérisé en ce que ladite tâche cryptographique consiste en une identification de la première entité par la deuxième entité, ladite donnée numérique étant un premier nombre entier qui, soumis à un traitement numérique secret dans la première entité donne un deuxième nombre entier qui est émis et au moyen de la clé privée et d'un troisième nombre entier reçu de la deuxième entité ayant reçu le deuxième nombre entier, donne un quatrième nombre entier et en ce que : - le traitement numérique ouvert consiste essentiellement à transformer ledit quatrième nombre entier en un cinquième nombre entier au moyen de la première partie de clé publique ; - le traitement numérique public consiste essentiellement à transformer ledit cinquième nombre entier au moyen de la deuxième partie de ladite clé publique pour obtenir une valeur qui conclue à une identification de la première entité lorsque ladite valeur est égale au dit deuxième nombre entier. Différemment, le procédé est plus particulièrement caractérisé en ce que ladite tâche cryptographique consiste en une vérification de signature électronique, ladite donnée numérique étant un nombre qui, soumis à un traitement numérique secret dans la première entité au moyen de la clé privée, donne une signature et en ce que : - le traitement numérique ouvert consiste essentiellement à transformer ladite signature en une image partielle de signature au moyen d'une première partie de ladite clé publique ; - le traitement numérique public consiste essentiellement à transformer ladite image partielle de signature au moyen d'une deuxième partie de ladite clé publique pour obtenir une valeur qui conclue à une signature valide lorsque ladite valeur est égale au dit nombre. Différemment encore, le procédé est plus particulièrement caractérisé en ce que ladite tâche cryptographique consiste en une authentification de message par la deuxième entité, d'un message émis par la première entité, ladite donnée numérique étant un premier nombre entier qui, soumis au traitement numérique secret dans la première entité donne un deuxième nombre entier qui est soumis à une fonction de hachage en combinaison avec le message pour obtenir un troisième nombre entier, le message et le troisième nombre entier étant émis, le premier nombre entier soumis au traitement numérique secret dans la première entité au moyen de la clé privée et d'un quatrième nombre entier reçu de la deuxième entité ayant reçu le troisième nombre entier, donnant un cinquième nombre entier et en ce que : - le traitement numérique ouvert consiste essentiellement à transformer ledit cinquième nombre entier en un sixième nombre entier au moyen de tout ou partie de la clé publique ; - le traitement numérique public consiste essentiellement à transformer ledit sixième nombre entier au moyen de tout ou partie de ladite clé publique pour obtenir une première valeur qui, soumise à la fonction de hachage en combinaison avec le message, donne une deuxième valeur qui conclue à une authentification de message valable lorsque ladite valeur est égale au dit troisième nombre entier. D'autres détails et avantages de l'invention seront mieux compris à partir d'exemples de mise en oeuvre dont la description suit en référence aux dessins annexés dans lesquels : - la figure 1 montre un exemple de mise en oeuvre de l'invention dans un procédé de signature électronique ; - les figures 2 à 4 montrent des exemples de mise en oeuvre de l'invention dans un procédé d'identification ; - la figure 5 montre un exemple de mise en oeuvre de l'invention dans un procédé d'authenfication. La figure 1 présente un premier exemple de mise en oeuvre de l'invention dans un procédé de signature électronique. Le procédé de signature électronique utilise par exemple l'algorithme de signature RSA décrit par Rivest, Shamir et Adleman ("A method for obtaining digital signatures and public-key cryptosystems", CACM, Vol. 21, n 2, Feb. 1978, pp. 120-126). De façon connue, l'algorithme RSA repose sur l'utilisation d'une clé privée s et d'une clé publique formée d'un couple (n, v) où n est généralement le produit de deux nombres premiers p et q tenus secrets et v est un nombre premier par rapport au produit (p-1) (q-1). Sous forme numérique, un message m constitué d'une suite binaire est considéré à ce titre comme un nombre entier. Dans une étape 1 pour signer électroniquement un message m, une première entité A applique généralement une fonction de hachage H au message m puis un formatage du résultat de la fonction de hachage, de façon à obtenir un nombre entier m* inférieur à n. Le formatage consiste généralement à ajouter des bits non tous nuls au mot binaire qui résulte de la fonction de hachage, de façon à ce que le nombre entier soit codé avec une quantité de bits, égale à celle qui code le nombre n. L'entité A génère ensuite une signature électronique z égale à une puissance s modulo n du nombre entier m*. La signature électronique z est donc un nombre entier égal au reste de la division euclidienne du nombre entier m* élevé à la puissance s par le nombre n. Le nombre n étant très grand et seule l'entité A connaissant la valeur s, il est pratiquement impossible à une autre entité que A de générer un nombre entier z qui vérifie la formule : z = (m*) (modulo n) L'étape 1 se termine par une émission du message m et de sa signature électronique z. Une réception du message m et de sa signature z par une deuxième entité B, valide une transition 2 qui active une étape 3. Dans l'étape 3, l'entité B applique la fonction de hachage H au message m pour réobtenir localement le nombre m*. Selon l'invention, une étape 4 décompose la valeur v de clé publique sous une forme : a. b + c=v où les nombres entiers a et b sont strictement supérieurs à 1. Le nombre entier c est par exemple le reste, s'il existe, d'une division euclidienne de v par b. Une réception de la signature z par une entité intermédiaire C, valide une transition 5 qui active une étape 6. Dans l'étape 6, l'entité C génère une valeur partielle de signature z'égale à une puissance a de la signature z modulo n. L'étape 6 se termine par l'émission de la valeur partielle de signature z'et si besoin par l'émission des valeurs de nombres entiers b et c. Une réception de la valeur partielle de signature z'et des valeurs b et c par l'entité B, valide une transition 7 qui active une étape 8. Dans l'étape 8, l'entité B génère un nombre entier z"égal au produit modulo n de la valeur partielle de signature z'élevée à la puissance b par la valeur de signature z élevée à la puissance c. On utilise ici la convention habituelle qui consiste à définir comme étant égale à l'unité, une puissance d'exposant nul. Ensuite, l'entité B teste dans l'étape 8 si le nombre entier z"est égal au nombre entier m*. Si c'est le cas, le message m reçu est bien celui signé par l'entité A. En effet, sachant que le reste d'une division par n d'un produit de deux restes de division par n de deux nombres entiers, est égal au reste de la division par n du produit de ces deux nombres entiers, on a : [ (Z')b.(z) ] (modulo n) = [ (z,) b (modulo n). (z)' (modulo n)] (modulo n) = [ (z) (modulo n). (z) (moduto n)] (modu) o n) = [ (z) a b. (Z) C] (modulo n) = [ (z)" "] (modulo n) Et donc : z"= (z) v (modulo n) L'entité intermédiaire C n'a pas besoin d'être une entité de confiance car la sécurité a peu ou pas de chance d'être altérée par l'étape 6. En effet, il est pratiquement impossible de trouver pour une valeur de m*, un nombre z'tel que son élévation à la puissance b permet de calculer une valeur de z"égale à m* autrement qu'en élevant la valeur de signature z à la puissance a modulo n. Dans l'exemple de mise en oeuvre décrit en référence à la figure 1, la tâche cryptographique en charge de l'entité B est une vérification du fait que le message m reçu a effectivement été signé par l'entité A. La vérification est positive si l'élévation à la puissance v de la signature z modulo n, est égale au nombre m*. Le temps de calcul d'une élévation à la puissance v, est sensiblement proportionnel à la taille de v en bits. La tâche cryptographique et plus particulièrement le calcul d'élévation à la puissance v est ici répartie dans les étapes 6 et 8. L'entité intermédiaire C exécute en étape 6, une partie du calcul d'élévation à la puissance v de la signature z. L'entité B exécute en étape 8, la partie complémentaire du calcul d'élévation à la puissance v de la signature z. Le temps de calcul exécuté par l'entité B est sensiblement proportionnel à b+c. Ainsi, la puissance de calcul nécessaire à l'entité B, est sensiblement réduite par division d'un facteur a. La puissance de calcul nécessaire à l'entité B est encore réduite si le nombre c est nul. C'est le cas s'il est possible de décomposer le nombre v en un produit de deux nombres entiers a et b. L'entité C représentée sur la figure 1 exécute l'étape 4 puis l'étape 6 après validation de la transition 5. L'étape 4 n'a pas besoin d'être exécutée à chaque émission d'un message m avec sa signature z. Pour une valeur de v donnée, les nombres a, b et c si c est non nul, peuvent être calculés une fois pour toutes, éventuellement indépendamment des entités A, B et C. L'entité C a alors simplement besoin d'avoir connaissance du nombre a. L'entité B a alors simplement besoin d'avoir connaissance du nombre b et du nombre c si celui-ci est non nul. Dans ce cas, les nombres b et c ne sont pas émis en étape 6 et la transition 7 est validée par la simple réception de la valeur partielle de signature z'. Avantageusement, l'entité C réside dans un équipement physique distinct de celui dans lequel réside l'entité B. Ainsi, l'équipement physique dans lequel réside l'entité B peut disposer de moyens de calcul réduits en comparaison de ceux dont il devrait disposer si l'entité B exécutait l'intégralité de la tâche cryptographique. L'entité C peut résider dans un équipement physique distinct de celui dans lequel réside l'entité A ou dans le même équipement physique que l'entité A. Dans le cas où les entités A et C résident dans un même équipement physique, les valeurs des nombres a, b et éventuellement c, sont mémorisées dans cet équipement physique. Si c est non nul, l'équipement physique dans lequel résident les entités A et C, émet le message m, la signature z, la signature partielle z'et les nombres b et c. Si c est nul, l'équipement physique dans lequel résident les entités A et C, émet le message m, la signature partielle z'et le nombre b. L'exemple de mise en oeuvre qui vient d'être décrit en référence à la figure 1 s'applique à la vérification de tout message signé par une entité quelconque. Il est encore avantageux d'accélérer la vérification d'un certificat de clé publique (n, v) d'un prouveur. Un certificat est une signature électronique calculée par une autorité de certification, portant sur l'identité et sur la clé publique du prouveur, reliant ainsi l'une et l'autre d'une manière qui puisse être vérifiée par n'importe quelle autre entité, dès lors que cette dernière détient une clé publique de vérification de l'autorité de certification. Si ce certificat est aussi calculé avec l'algorithme RSA, la décomposition expliquée précédemment d'une tâche cryptographique pour vérifier le certificat, permet une accélération des calculs de vérification dans l'entité B qui reçoit le certificat. Plus généralement, si le certificat est calculé avec un schéma de signature auquel l'invention s'applique, il est intéressant d'appliquer l'invention à la vérification du certificat par un vérificateur qui utilise ce certificat pour vérifier une signature électronique. La figure 2 présente un deuxième exemple de mise en oeuvre de l'invention dans un procédé d'identification. Le procédé d'identification utilise par exemple un protocole à connaissance nulle basé sur le logarithme discret, tel que ceux décrits dans les demandes de brevet FR2716058 et FR2752122 publiées respectivement le 11 août 1995 et le 6 février 1998. Le protocole à logarithme discret repose sur l'utilisation d'une clé privée constituée d'un nombre entier s et d'une clé publique constituée d'un triplet (n, v, g) de nombres entiers. La clé privée s est détenue secrètement par une entité A qui doit prouver son identité. La clé publique (n, v, g) est transmise à toute entité B qui doit vérifier l'identité de l'entité A. La transmission de clé publique est effectuée par exemple au moyen d'un certificat qui peut être avantageusement préalablement vérifié au moyen d'un procédé conforme à l'invention. Dans la clé publique, le nombre entier n, appelé module, est un produit de nombres premiers suffisamment grand pour en rendre une factorisation pratiquement impossible, compte tenu des algorithmes de factorisation existants. Le nombre entier g, appelé base, est tel que l'ensemble constitué des nombres g'modulo n, lorsque x parcourt l'intervalle [0, n-1], est un sous-ensemble de taille conséquente de cet intervalle. Le nombre entier v est un paramètre de sécurité qui vérifie la relation : v = g-s (modulo n) telle que la connaissance de v, g et n ne permet pratiquement pas de retrouver la valeur de s. Pour s'identifier, l'entité A active une étape 9. Dans l'étape 9, t'entité A génère un nombre aléatoire ou pseudo-aléatoire r très supérieur au nombre s. Le nombre entier r est gardé secret par l'entité A. Ensuite, l'entité A génère un nombre entier x égal à une puissance r de g module n. L'étape 9 se termine par une émission du nombre entier x. Une réception du nombre x par l'entité B, valide une transition 10 qui active une étape 11. Dans l'étape 11, l'entité B génère un nombre entier e à partir d'un intervalle [0, u-1] puis émet le nombre e. Une réception du nombre e par l'entité A, valide une transition 12 qui active une étape 13. Dans l'étape 13, l'entité A génère un nombre y égal à une somme du nombre r et d'un produit du nombre s par le nombre e. Ensuite, l'entité A décompose le nombre y sous forme d'une combinaison linéaire de nombres entiers différents des nombres r, s et e. Par exemple, l'entité A effectue une division du nombre y par un nombre entier b strictement supérieur à 1. Le quotient a et le reste c permettent d'obtenir la combinaison linéaire : y = a. b+c L'entité A émet alors les nombres entiers a, b, c. La division est par exemple une division euclidienne. Le nombre b est toujours choisi de façon à ce que le quotient que constitue le nombre a, soit strictement supérieur à 1. La division du nombre y, n'est pas nécessairement faite dans l'entité A, elle peut l'être aussi ailleurs tel que par exemple dans l'entité C ou dans l'entité B. Une réception du nombre a par une entité intermédiaire C, valide une transition 14 qui active une étape 15. Dans l'étape 15, t'entité C génère un nombre entier y', image partielle du nombre y en élevant la base g à une puissance modulo le module n et dont l'exposant est le nombre entier a. L'entité C émet alors le nombre entier y'. Une réception du nombre entier y'et des nombres entiers b et c par l'entité B, valide une transition 16 qui active une étape 17. Dans l'étape 17, l'entité B élève le nombre y'à une puissance d'exposant b, la base g à une puissance d'exposant c, le paramètre de sécurité v à une puissance d'exposant e et fait le produit modulo n des trois puissances ainsi obtenues pour générer un nombre entier y". On peut utiliser le fait qu'un produit modulo n de termes, est égal au produit modulo n de ces termes considérés chacun modulo n. L'entité B vérifie ensuite si le nombre y" est égal au nombre x précédemment reçu. Si l'égalité est vraie, l'entité B identifie avec certitude l'entité A comme étant celle qui a émis le nombre x. En effet, si l'entité A est cette qui a émis le nombre x : ti eb c y"= y'V (modulo n) y"=9a.b.g.c.ve (modulo n) y"= ga-cy (modulo n) y"=gr+s.e.ve (modulo n) y"=gr.gs.e.ve (modulo n) y"=gr.(gs. v) e (modulo n) Or (gus. v) (modulo n) = 1 donc : y 9' (module n) = x La sécurité n'est pas altérée par le fait que l'étape 15 ait été effectuée par une entité extérieure C qui n'est pas nécessairement une entité de confiance car il est impossible en pratique de trouver à partir de n, v, g et éventuellement c, un nombre y'tel que y, b. gc. ve (modulo n) soit égal à x, sans connaissance de la factorisation de n à laquelle correspond la clé privée s qui est détenue secrètement par l'entité A. Considérant une quantité canonique k de bits pour coder un nombre entier, c'est à dire la quantité minimale de bits nécessaires pour décomposer le nombre entier dans une base binaire, les méthodes usuelles connue d'élévation à une puissance modulo n, dont l'exposant est ce nombre entier, effectuent une quantité de multiplications modulo n, proportionnelle à la quantité k de bits. Sans l'entité intermédiaire C, l'entité B aurait reçu le nombre y égal à r+s. e pour calculer y"par la formule : yil = gy. v' (modulo n) La quantité de multiplications modulo n, effectuée par l'entité B pour élever g à la puissance y, aurait été proportionnelle à la quantité de bits nécessaire pour coder sous forme canonique le nombre r+s. e, c'est à dire a. b+c. En effectuant une quantité de multiplications modulo n dans l'entité C, proportionnelle à la quantité de bits nécessaire pour coder sous forme canonique le nombre a, l'entité B ne fait qu'une quantité de multiplications modulo n, proportionnelle à la quantité de bits nécessaire pour coder sous forme canonique le nombre b, à laquelle s'ajoute éventuellement une quantité de multiplications modulo n, proportionnelle à la quantité de bits nécessaire pour coder sous forme canonique le nombre c. L'économie de multiplications modulo n ainsi réalisée dans l'entité B permet d'accélérer la vérification d'identité dans l'entité B. La figure 3 montre une variante du procédé décrit en référence à la figure 2 pour accélérer encore l'exécution de la tâche cryptographique dans l'entité B. Une réception des nombres b et c par l'entité B, valide une transition 18 qui active une étape 19. Dans l'étape 19, l'entité B génère un nombre z égal au produit modulo n, de la puissance de la base g avec pour exposant le nombre c et de la puissance du paramètre de sécurité v avec pour exposant le nombre e. La transition 16 est alors validée par la réception du nombre y'. Dans l'étape 17, l'entité B génère le nombre y" égal au produit modulo n, du nombre z par la puissance du nombre y'avec pour exposant le nombre b. L'exécution de l'étape 19 avant de recevoir le nombre y', permet une parallèlisation d'exécution des étapes 15 et 19. La figure 4 montre une autre variante du procédé décrit en référence à la figure 2 particulièrement utile lorsque l'entité B doit identifier une grande quantité d'entités A. L'entité C réside alors dans un même équipement physique que l'entité A. Ceci revient à faire exécuter par l'entité A, l'étape 15 directement à la suite de l'étape 13. En étape 13, l'entité A émet vers l'extérieur uniquement les nombres b et c. En étape 15, l'entité A émet directement le nombre y'. La figure 5 présente un troisième exemple de mise en oeuvre de l'invention dans un procédé d'authentification de message. Le procédé d'authentification de message utilise par exemple un protocole semblable à celui utilisé pour le procédé décrit en référence aux figures 2 à 4. Pour émettre un message M vers l'entité B de sorte que l'entité B puisse vérifier que le message M est un message authentique émis par l'entité A, l'entité A active une étape 20. Dans l'étape 20, l'entité A génère un nombre aléatoire ou pseudoaléatoire r très supérieur au nombre s. Le nombre entier r est gardé secret par l'entité A. L'entité A génère un nombre entier x égal à une puissance r de g modulo n. L'entité A génère un nombre m égal à une fonction H de hachage du nombre entier x et du message M, de façon à obtenir un nombre entier m. L'entité A émet ensuite le nombre entier m et le message M. Une réception par l'entité B du nombre m et du message M, valide une transition 21 qui active l'étape 11. Le procédé comprend la suite des étapes et transitions 11 à 16 qui se déroulent et s'exécutent de façon identique à l'une de celles décrites en référence aux figures 2 à 4. Une validation de la transition 16 active alors une étape 22. dans l'étape 22, l'entité B génère le nombre entier y"de façon identique à l'étape 17 décrite en référence à l'une des figures 2 à 4. L'entité B génère ensuite un nombre x' égal à la fonction H de hachage du nombre y"et du message M puis compare le nombre x'au nombre m. L'égalité du nombre x'et du nombre m assure l'entité B que c'est bien l'entité A qui a émis le message M car seule l'entité A a pu générer un nombre x égal à y"de sorte que H (x, M) soit égal à H (y", M). En résumé, le procédé permet de diminuer la charge de calcul du vérificateur constitué par l'entité B, dans une transaction électronique sécurisée incluant un mécanisme d'authentification de message, d'identification ou de signature électronique. Il consiste à déléguer une partie de ces calculs à une entité extérieure C, non nécessairement de confiance, sans diminuer la conviction que le vérificateur retire de l'étape de vérification. Plus précisément, il consiste à décomposer la tâche de vérification en au moins deux étapes (6,15) et (8,17), de façon telle qu'au moins l'étape (6,15) puisse être exécutée par l'entité extérieure C. Le procédé s'applique en particulier au schéma de signature électronique RSA (Rivest, Shamir, Adleman) et à certains protocoles d'authentification de message basés sur le logarithme discret. REVENDICATIONS : 1. Procédé pour effectuer une tâche cryptographique au moyen d'une clé publique sur au moins une donnée numérique échangée entre une première entité (A) dotée d'une clé privée et une deuxième entité (B), caractérisé en ce que ladite tâche cryptographique est décomposée en au moins deux étapes : - une première étape (6,15) exécutée par une entité intermédiaire (C) qui soumet ladite donnée à un traitement numérique ouvert au moyen de tout ou partie de ladite clé publique pour obtenir une image partielle de ladite donnée ; - une deuxième étape (8,17) exécutée par la deuxième entité (B) qui soumet ladite image partielle à un traitement numérique public au moyen de tout ou partie de ladite clé publique de façon à compléter ladite tâche cryptographique sur ladite donnée. 2. Procédé pour effectuer une tâche cryptographique selon la revendication 1, caractérisé en ce que l'entité intermédiaire (C) réside dans un équipement physique distinct d'un équipement physique dans lequel réside la deuxième entité (B). 3. Procédé pour effectuer une tâche cryptographique selon la revendication 1 ou 2, caractérisé en ce que l'entité intermédiaire (C) réside dans un équipement physique dans lequel réside la première entité (A). 4. Procédé pour effectuer une tâche cryptographique selon l'une des revendications précédentes, caractérisé en ce que ladite tâche cryptographique consiste en une identification de la première entité (A) par la deuxième entité (B), ladite donnée numérique étant un premier nombre entier (r) qui, soumis à un traitement numérique secret dans la première entité (A) donne un deuxième nombre entier (x) qui est émis, et au moyen de la clé privée et d'un troisième nombre entier (e) reçu de la deuxième entité (B) ayant reçu le deuxième nombre entier (x), donne un quatrième nombre entier (y), et en ce que : - le traitement numérique ouvert consiste essentiellement à transformer ledit quatrième nombre entier (y) en un cinquième nombre entier (y') au moyen de tout ou partie de la clé publique ; - le traitement numérique public consiste essentiellement à transformer ledit cinquième nombre entier (y') au moyen de tout ou partie de ladite clé publique pour obtenir une valeur (y") qui conclue à une identification de la première entité (A) lorsque ladite valeur (y") est égale au dit deuxième nombre entier (x). 5. Procédé pour effectuer une tâche cryptographique selon la revendication 4 lorsque la clé publique est un triplet de trois nombres entiers, constitué d'un module (n), d'une base (g) et d'un paramètre de sécurité (v) et la clé privée est un sixième nombre entier (s), le traitement numérique secret consistant à élever la base (g) à une première puissance (r) modulo le module (n) de la clé publique puis à additionner le premier nombre entier (r) avec un produit du sixième nombre entier (s) par le troisième nombre entier (e) pour obtenir le quatrième nombre entier (y), caractérisé en ce que : - un quotient entier (a) du quatrième nombre entier (y) divisé par un septième nombre entier (b) strictement supérieur à l'unité, est utilisé dans le traitement numérique ouvert pour élever la base (g) à une deuxième puissance (a) modulo le module (n) ; - le septième nombre entier (b), est utilisé dans le traitement numérique public pour élever ledit cinquième nombre entier (y') à une troisième puissance (b) multipliée par une quatrième puissance (e) de la base (g) modulo le module (n). 6. Procédé pour effectuer une tâche cryptographique selon l'une des revendications 1 à 3, caractérisé en ce que ladite tâche cryptographique consiste en une vérification de signature électronique, ladite donnée numérique étant un nombre (m*) qui, soumis à un traitement numérique secret dans la première entité (A) au moyen de la clé privée, donne une signature (z) et en ce que : - le traitement numérique ouvert consiste essentiellement à transformer ladite signature (z) en une image partielle de signature (z') au moyen d'une première partie de ladite clé publique ; - le traitement numérique public consiste essentiellement à transformer ladite image partielle de signature (z') au moyen d'une deuxième partie de ladite clé publique pour obtenir une valeur (z") qui conclue à une signature valide lorsque ladite valeur (z") est égale au dit nombre (m*). 7. Procédé pour effectuer une tâche cryptographique selon la revendication 6 lorsque la clé publique est un couple de deux nombres entiers (n, v) et la clé privée est un troisième nombre entier (s), le traitement numérique secret consistant à élever le nombre (m*) à une première puissance (s) modulo un premier nombre entier (n) de la clé publique, caractérisé en ce que : - un quatrième nombre entier (a) strictement supérieur à l'unité et strictement inférieur au deuxième nombre entier (v) de la clé publique, est utilisé dans le traitement numérique ouvert pour élever ladite signature (z) à une deuxième puissance (a) modulo le premier nombre entier (n) ; - un cinquième nombre entier (b) égal au quotient d'une division euclidienne du deuxième nombre entier (v) par le quatrième nombre entier (a), est utilisé dans le traitement numérique public pour élever ladite image partielle de signature (z') à une troisième puissance (b) modulo le premier nombre entier (n). 8. Procédé pour effectuer une tâche cryptographique selon l'une des revendications 1 à 3, caractérisé en ce que ladite tâche cryptographique consiste en une authentification par la deuxième entité (B), d'un message (M) émis par la première entité (A), ladite donnée numérique étant un premier nombre entier (r) qui, soumis au traitement numérique secret dans la première entité (A) donne un deuxième nombre entier (x) qui est soumis à une fonction de hachage (H) en combinaison avec le message (M) pour obtenir un troisième nombre entier (m), le message (M) et le troisième nombre entier (m) étant émis, le premier nombre entier (r) soumis au traitement numérique secret dans la première entité (A) au moyen de la clé privée et d'un quatrième nombre entier (e) reçu de la deuxième entité (B) ayant reçu le troisième nombre entier (m), donnant un cinquième nombre entier (y) et en ce que : - le traitement numérique ouvert consiste essentiellement à transformer ledit cinquième nombre entier (y) en un sixième nombre entier (y') au moyen de tout ou partie de la clé publique ; - le traitement numérique public consiste essentiellement à transformer ledit sixième nombre entier (y') au moyen de tout ou partie de ladite clé publique pour obtenir une première valeur (y") qui, soumise à la fonction (H) de hachage en combinaison avec le message (M), donne une deuxième valeur (x') qui conclue à une authentification de message valable lorsque ladite valeur (x') est égale au dit troisième nombre entier (m). 9. Procédé pour effectuer une tâche cryptographique selon la revendication 8 lorsque la clé publique est un triplet de trois nombres entiers, constitué d'un module (n), d'une base (g) et d'un paramètre de sécurité (v) et la clé privée est un septième nombre entier (s), le traitement numérique secret consistant à élever la base (g) à une première puissance (r) modulo le module (n) de la clé publique puis à additionner le premier nombre entier (r) avec un produit du septième nombre entier (s) par le quatrième nombre entier (e) pour obtenir le cinquième nombre entier (y), caractérisé en ce que : - un quotient entier (a) du cinquième nombre entier (y) divisé par un huitième nombre entier (b) strictement supérieur à l'unité, est utilisé dans le traitement numérique ouvert pour élever la base (g) à une deuxième puissance (a) modulo le module (n) ; le huitième nombre entier (b), est utilisé dans le traitement numérique public pour élever ledit sixième nombre entier (y') à une troisième puissance (b) multipliée par une quatrième puissance (e) de la base (g) modulo le module (n).