Brevet FR2718309A1 — publié le 19951006

La présente invention concerne un procédé d'échange d'iden- tification capable de confirmer des données de traitement d'entités individuelles et un procédé de signature électro- nique capable de fournir une fonction d'identification, une fonction de non-rejet pour éviter le refus d'une action de traitement de données et garantir une intégrité des données. Avec le développement rapide de la technologie des logiciels et de la technologie des semi-conducteurs, on utilise communément des ordinateurs de traitement de données. En particulier, des communications de données sur des réseaux de communication publics sont dispersées à un moment o l'information est reconnue comme un précieux avantage. A cet égard, les données traversant des réseaux de communication publics présentent une importance croissante, ainsi que les données stockées dans des ordinateurs. Cela a pour consé- quence d'exiger de protéger de telles données. Dans ce cadre, des procédés d'échange d'identification et de signa- ture électronique peuvent être utilisés pour obtenir une identification de chaque entité réalisant un traitement de données, une vérification si oui ou non une falsification des données a été réalisée pendant la circulation des données qui sont traitées, et une vérification de la réalité d'une action de traitement de données. Parmi les procédés d'échange d'identification et de signa- ture électronique, ayant une sécurité basée sur le problème du logarithme discret, ceux associés à la présente invention sont le procédé de Schnorr et le procédé de Okamoto. Le problème du logarithme discret signifie le problème relatif au fait qu'il est difficile pour une personne, qui n'est pas impliquée dans le calcul de x, de trouver un nombre aléa- toire r produit pour déduire une valeur x (x _ gr mod p) pour obtenir une vérification d'entité, même si x et g sont BAD ORIGINAL connus. La valeur x est obtenue en élevant g, un nombre entre 1 et p (l et, ensuite, divisé par p (c'est-à-dire 1 M gq mod p). Conformément au procédé d'échange d'identification de Schnorr, un testeur A produit un nombre aléatoire r entre 1 o10 et q de façon à être vérifié par un vérificateur B. Après i ème avoir produit le nombre aléatoire r, g est élevé à la rième puissance. La valeur résultante est alors dlvisée par p pour déduire une valeur x (x _ gr mod p). La valeur x est envoyée au vérificateur B. En recevant la valeur x du testeur A, le vérificateur B produit un nombre aléatoire e entre 1 et q. Le nombre aléatoire e produit par le vérificateur B est envoyé au testeur A. Le testeur A multiplie le nombre aléatoire e reçu du vérificateur B par sa clé secrète s. La valeur résultante est ajoutée au nombre aléatoire r et, ensuite, divisée par q, en déduisant ainsi une valeur y (y _ r + es mod q). Le testeur A envoie la valeur calculée y au vérificateur B. En recevant la valeur y du testeur A, le vérificateur B élève g à la yième puissance. La valeur résultante est multipliée par la valeur obtenue en élevant s ième une clé publique v (v _ gs mod p) à la eme puissance et, ensuite, en divisant par p, en déduisant ainsi une valeur gY ve mod p. Ensuite, le vérificateur B vérifie si la valeur finalement déduite coïncide avec la valeur x (x _ gr mod p) du testeur A de façon à vérifier l'authenticité du testeur A. Par ailleurs, conformément au procédé de signature électronique de Schnorr, un signataire A produit un nombre aléatoire r entre 1 et q quand il doit apposer sa signature sur un document électronique m. Après avoir produit le i ème nombre aléatoire r, g est élevé & la puissance ri me. La valeur résultante est alors divisée par p pour déduire le modulo x (x E gr mod p). Le modula x et le document m sont échantillonnés en utilisant une fonction d'échantillonnage, en déduisant ainsi e (e = h(gr mod p,m)). De façon à engen- drer la signature électronique du signataire A apposée au document m, la valeur déduite e est multipliée par la clé secrète s du signataire A. La valeur résultante est ajoutée au nombre aléatoire r et, ensuite, divisée par q, en dédui- sant ainsi une valeur y (y m r + es mod q). La valeur (e,y) dérivée de la façon mentionnée ci-dessus constitue la signature électronique du signataire A. Pour vérifier la signature électronique (e,y) du signataire A apposée au i ème document m, g est élevé à la yme puissance. La valeur résultante est multipliée par la valeur obtenue en élevant la clé publique v (v _ g S mod p) du signataire A à la eième puissance et, ensuite, en divisant par p, en déduisant ainsi une valeur gyve mod p. La valeur finalement déduite et le document m sont échantillonnés, en déduisant ainsi une valeur d'échantillonnage h (grve mod p,m). Par la suite, une vérification est réalisée pour savoir si la valeur d'échan- tillonnage coïncide avec e du signataire A, de façon à vérifier la validité de la signature électronique (e,y) du signataire A. Conformément au procédé de Okamoto, deux clés secrètes si et s2 sont utilisées pour chacun des utilisateurs de façon à garantir la sécurité du procédé de Schnorr. Dans le même but, le procédé de Okamoto utilise également deux g1 et g2 équivalents à g utilisé dans le procédé de Schnorr. Confor- mément au procédé de Okamoto, un testeur A produit deux nombres aléatoires r1 et r2 entre 1 et q de façon à être vérifiés par un vérificateur B. Après avoir produit les i ème nombres aléatoires r1 et r2 gl est élevé à la rième ième puissance tandis que g2 est élevé à la r2 puissance. Les valeurs résultantes sont multipliées ensemble. La valeur résultante est alors divisée par p pour déduire une valeur x35 (x - g1r g22 mod p). La valeur x est envoyée au BAD ORIGINAL vérificateur B. En recevant la valeur x du testeur A, le vérificateur B produit un nombre aléatoire e entre 1 et q. Le nombre aléatoire e produit par le vérificateur B est envoyé au testeur A. Le testeur A multiplie le nombre aléatoire e reçu du vérificateur B par sa clé secrète s1. La valeur résultante est ajoutée au nombre aléatoire r1 et, ensuite, divisée par q, en calculant ainsi une valeur y1 (Y, - r1 + es1 mod q). Le testeur A multiplie également le nombre aléatoire e par l'autre clé secrète s2. La valeur résultante est ajoutée au nombre aléatoire r2 et, ensuite, divisée par q, en déduisant ainsi une valeur Y2 (y2 r2 + es2 mod q). Le testeur A envoie les valeurs déduites (y1, Y2) au vérificateur B. En recevant les valeurs (Yl1 Y2) du testeur A, le vérificateur B élève gl à la ylieme puissance et 2 à la lème I5 et g2 à la Y2 èmpuissance, respectivement. Les valeurs calculées sont multipliées ensemble. La valeur résultante est alors multipliée par la valeur obtenue en élevant une clé publique v (v M gl-sl g2-s2 mod p) à la eième puissance et, ensuite, en divisant par p, en déduisant ainsi une valeur glyl g2Y2 ve mod p). Ensuite, le vérificateur B vérifie si la valeur finalement déduite coïncide avec la valeur x (x _ g1rl gr2 mod p) du testeur A, de façon à vérifier l'authenticité du testeur A. Par ailleurs, confor- mément au procédé de signature électronique de Okamoto, un signataire A produit deux nombres aléatoires r1 et r2 entre 1 et q quand il doit apposer sa signature sur un document électronique m. Après avoir produit les nombres aléatoires r1 et r2 gl est élevé à la rlième puissance, tandis que g2 ième g2 est élevé à la r2 puissance. Les valeurs calculées sont multipliées ensemble. La valeur résultante est alors divisée par p pour déduire une valeur x (x _ glrl g2r2 mod p). La valeur x et le document m sont échantillonnés en utilisant une fonction d'échantillonnage h, en déduisant ainsi e (e = h(grl g2r2 mod p,m)). De façon à engendrer la signature électronique du signataire A apposée au document m, la valeur déduite e est multipliée par une clé secrète s1 du 0AD ORIGINAL J> signataire A. La valeur résultante est ajoutée au nombre aléatoire r1 et, ensuite, divisé par q, en déduisant ainsi une valeur Y1 (Y1 E rl + esl mod q). Le signataire A multi- plie également la valeur dérivée e par l'autre clé secrète s2. La valeur résultante est ajoutée au nombre aléatoire r2 et, ensuite, divisée par q, en déduisant ainsi une valeur Y2 (Y2 - r2+ es2 mod q). Les valeurs (e, Yl, Y2) dérivées de la façon mentionnée ci-dessus constituent la signature électronique du signataire A. Pour vérifier la signature I0 électronique (e, Y1, Y2) du signataire A apposée au document m, g! est élevé à la y1ième puissance, tandis que g2 est élevé à la y2leme puissance. Les valeurs calculées sont multipliées ensemble. La valeur résultante est alors multi- pliée par la valeur obtenue en élevant une clé publique v (v - gl sl g2-s2 mod p) à la eiême puissance et en divisant ensuite par p, en déduisant ainsi une valeur gl1Y g2y2 ve mod p. La valeur finalement déduite et le document m sont échantillonnés, en déduisant ainsi une valeur d'échantillon- nage h (gyl g2y2 ve mod p,m). Ensuite, une vérification est réalisée pour savoir si la valeur d'échantillonnage coïncide avec e provenant du signataire A, de façon à vérifier la validité de la signature électronique (e, Y1, Y2) du signa- taire A. Conformément au procédé de Okamoto, gl et g2 sont utilisés dans un échange d'identification et une génération de signature électronique de façon à éviter qu'un utilisateur autre qu'un utilisateur revendiqué A ne se déguise comme l'utilisateur A et ne falsifie la signature électronique de l'utilisateur A. Le procédé de Okamoto utilise également deux clés secrètes s1 et s2 pour chaque utilisateur et obtient ainsi une meilleure sécurité par rapport au procédé de Schnorr. Cependant, le procédé de Okamoto implique une difficulté en termes d'usage pratique par rapport au procédé de Schnorr, en tenant en considération la quantité de calcul EBAD ORI1GINALj requise pour échanger une identification, engendrer une signature électronique et la vérifier. En conséquence, un objet de l'invention est de fournir un procédé de sécurité pour des informations capable de fournir une sécurité et une efficacité élevées en utilisant un procédé d'échange d'identification et un procédé de signa- ture électronique. Le premier est capable de confirmer et vérifier des données de traitement d'entités individuelles lors du traitement de données et du transfert des données entre les entités, et le second est capable de fournir les fonctions d'apposer une signature électronique à un document électronique, de confirmer à une contre-partie le transfert ou la réception du document électronique, de confirmer une falsification du document électronique, et de vérifier les actions de transfert et de réception du document électroni- que. Conformément à un aspect, la présente invention fournit un procédé pour échanger une identification et engendrer une signature électronique, comprenant les étapes consistant à établir p, q et g comme paramètres du système, o p et q sont des nombres premiers tandis que g (1 3 gq mod p) est un nombre entier entre 1 et p, ayant la valeur de 1 quand il est élevé à la qième puissance et, ensuite, divisé par p, et à utiliser n clés secrètes et n clés publiques pour chaque utilisateur, o n est un nombre entier qui n'est pas infé- rieur à 2, les clés publiques vn correspondant respective- ment aux clés secrètes sn, chaque clé secrète étant un nombre entier entre 1 et q, et étant produite en se basant sur une équation de Vn g- sn mod p. Selon un autre aspect, la présente invention fournit un procédé d'échange d'identification comprenant les étapes consistant à produire, par un testeur, un nombre aléatoire r1 entre 1 et q, calculer une valeur x (x grl mod p), o p SAD ORIGINAL g est un nombre premier tandis que g est un nombre entier entre 1 et p, de sorte que 1 - gq mod p, et envoyer la valeur x du testeur à un vérificateur; produire, par le vérificateur, un nombre aléatoire e, et envoyer le nombre aléatoire e au testeur; produire, par le testeur, des nombres aléatoires r2 et r3, calculer une valeur r (r a r1 + s1r2 mod q) et une valeur r4 (r4 slr3 + s2 mod q) sur la base de clés secrètes s1 et s2 du testeur en même temps que le nombre aléatoire e est reçu du vérificateur au testeur, calculer une valeur Y1 (y1 - r + er4 mod q) et une valeur Y2 (Y2 - r2 + er3 mod q) sur la base de r et r4, et envoyer y1 et Y2 au vérificateur; et calculer, par le vérificateur, une valeur x' (x' = gylvlY2v2e mod p) sur la base de Y1 et Y2 reçus du testeur au vérificateur en même temps que des -sils clés publiques vl (v1 = g mod p) et v2 (v2 = gs2 mod p) du testeur, et vérifier si le modulo x' coïncide avec x (x = grl mod p) reçu du testeur. Ces étapes peuvent être appli- quées de la même manière que ci-dessus à plus de deux clés secrètes et deux clés publiques. Conformément à un autre aspect, la présente invention fournit un procédé de signature électronique comprenant les étapes consistant à produire un nombre aléatoire r1 par un signataire qui est un rédacteur ou un manipulateur pour des données électroniques m, telles qu'un document électronique ou un message, calculer une valeur x (x - grl mod p), o p est un nombre premier, tandis que g est un nombre entier entre 1 et p, tel que 1 = gq mod p, et échantillonner la valeur x avec m, en déduisant ainsi e (e = h(x, m)); produire, par le signataire, les nombres aléatoires r2 et30 r3, calculer une valeur r (r - r1 + s 1r2 mod g) et un modulo r4 (r4 slr3 + s2 mod q) sur la base de clés secrètes s et s2 du signataire en même temps que e, et calculer Y1 (Y1 r + er4 mod q) et une valeur Y2 (Y2 r2 + er3 mod q) sur la base de r et r4, en déduisant ainsi une signature électroni-35 que (e, Y1, Y2) pour m; et calculer une valeur x' (x' = SAD ORIGINALj gylvlY2v2e mod p) pour vérifier la signature électronique (e, Yl, Y2) pour m, échantillonner la valeur x' avec m, et vérifier si h(x', m) est égal à e constituant une partie de la signature électronique. Ces étapes peuvent être appli- quées pour plus de deux clés secrètes et deux clés publiques de la même façon que ci-dessus. Les figures du dessin annexé feront bien comprendre comment l'invention peut être réalisée. La figure 1 est un diagramme illustrant un procédé d'échange d'identification utilisant "mod q" conformément à la pré- sente invention. La figure 2 est un diagramme illustrant un procédé de signature électronique utilisant "mod q" conformément à la présente invention. La figure 3 est un diagramme illustrant un procédé d'échange d'identification utilisant "mod (p-l)" conformément à la présente invention. La figure 4 est un diagramme illustrant un procédé de signature électronique utilisant "mod (p-l)" conformément à la présente invention. La figure 5 est un diagramme illustrant un échange d'identi- fication entre un testeur utilisant le procédé de Schnorr et un vérificateur utilisant le procédé de la présente inven- tion. La figure 6 est un diagramme illustrant un échange d'identi- fication entre un testeur utilisant le procédé de Okamoto et un vérificateur utilisant le procédé de la présente inven- tion. U3AD ORIGINAL ai La figure 7 est un diagramme illustrant une vérification de la validité d'une signature électronique engendrée par le procédé de Schnorr conformément à la présente invention. La figure 8 est un diagramme illustrant une vérification de la validité d'une signature électronique engendrée par le procédé de Okamoto conformément à la présente invention. Dans un procédé d'échange d'identification et un procédé de signature électronique conformément à la présente invention, trois paramètres du système R, q et A, deux clés secrètes s1 et s2 et deux clés publiques vl et v2 sont utilisés, le nombre des clés secrètes et publiques pouvant être augmenté à plus de deux. Les paramètres du système p et q sont des nombres premiers. En particulier, q est remplaçable par (p-l). Par ailleurs, g est un nombre entier, entre 1 et p, ayant la valeur de 1 quand il est élevé à la qième puissance et, ensuite, divisé par p (c'est- à-dire 1 = gq mod p). En ce qui concerne les clés secrètes s1 et s2 pour chaque utilisa- teur, des nombres entiers entre 1 et q (1 correspondant aux clés secrètes si et s2, respectivement. Tout d'abord, le procédé d'échange d'identification confor- mément à la présente invention sera décrit en regard de la figure 1. Conformément au procédé d'échange d'identification de la présente invention, un testeur A produit un nombre aléatoire r1entre 1 et q de façon & être vérifié par un vérificateur B. Apres avoir produit le nombre aléatoire rl, g est élevé à la rlième puissance. La valeur résultante est alors divisée par p pour en déduire une valeur x (x _ grl mod p). La valeur x est envoyée au vérificateur B. En recevant le modulo x du testeur A, le vérificateur B produit un nombre BAD ORGINAL a aléatoire e entre i et q. Le nombre aléatoire e produit par le vérificateur B est envoyé au testeur A. En recevant le nombre aléatoire e du vérificateur B, le testeur A produit un nombre aléatoire r2 entre 1 et q. Ensuite, le testeur A multiplie le nombre aléatoire r2 par une de ses clés secrè- tes s 1. La valeur résultante est ajoutée au nombre aléatoire r1 utilisé pour le calcul de x et, ensuite, divisée par q, en déduisant ainsi une valeur r (r - ri + slr2 mod q). Le testeur A produit également un nombre aléatoire r3 entre 1 et q. Le nombre aléatoire r3 est alors multiplié par la clé secrète si du testeur A. La valeur résultante est ajoutée à la clé secrète s2 du testeur A et, ensuite, divisée par q, en déduisant ainsi une valeur r4 (r4 E slr3 + s2 mod q). La valeur déduite r4 est multipliée par le nombre aléatoire e. La valeur résultante est ajoutée à la valeur r et, ensuite, divisée par q, pour obtenir ainsi la valeur Y, (Y1 = r + er4 mod q). Le nombre aléatoire r3 est également multiplié par le nombre aléatoire e. La valeur résultante est ajoutée au nombre aléatoire r2 et, ensuite, divisée par q, en obtenant ainsi la valeur Y2 (y2 = r2 + er3 mod q). A la place de calculer les deux valeurs Y1 et Y2 en produisant les nombres aléatoires r2 et r3, de calculer les valeurs r et r4 sur la base des clés secrètes s1 et s2 en même temps que les nombres aléatoires rl, r2 etr3 et, ensuite, d'utiliser le nombre aléatoire e, seule la valeur Y1 peut être calculée pour vérifier l'authenticité du testeur A. Dans ce cas, seulement un nombre aléatoire r2 est produit tel qu'il est établi comme la valeur Y2. La valeur Y1 est déduite en utilisant les clés secrètes s1 et s2 en même temps que le nombre aléatoire e. C'est-à-dire, le testeur A produit le nombre aléatoire r2 entre 1 et q en réponse à une réception du nombre aléatoire e du vérificateur B et, alors, détermine le nombre aléatoire r2 comme Y2. Ensuite, le testeur A multiplie sa clé choisie si par Y2. La valeur calculée est35 alors ajoutée au produit du nombre aléatoire e et de l'autre clé secrète s2. La valeur résultante est ajoutée au nombre 8AD ORIGINAL aléatoire rI utilisé pour le calcul de x et, ensuite, divisée par q, en déduisant ainsi une valeur Y1 (y1 - ri + es2 + s1y2 mod q). Les valeurs Y1 et Y2 déduites de cette façon sont envoyées au vérificateur B. En recevant les i ème modulos Y1 et Y2, le vérificateur B élève g à la Ylme puissance. Le vérificateur B élève également une clé publi- -sI ème que v1 (v1 = g mod p) à la Y2 puissance. Les valeurs calculées sont multipliées ensemble. La valeur résultante est alors multipliée par la valeur obtenue après élévation -s2 ième de l'autre clé publique v2 (v2 = g mod p) à la e puissance. La valeur résultante est divisée par p. en déduisant ainsi le modulo x' (x' E gYlvlY2v2e mod p). v1 2 Ensuite, le vérificateur B vérifie si le modulo x' coïncide avec x (x _ gr mod p) reçu du testeur A de façon à vérifier l'authenticité du testeur A. Par ailleurs, conformément au procédé de signature électro- nique de la présente invention, un signataire A produit un nombre aléatoire r1 entre 1 et q quand il doit apposer sa signature sur un document électronique m. Après avoir i ème produit le nombre aléatoire rl, g est élevé à la r1ième puissance. La valeur calculée est ensuite divisée par p pour déduire une valeur x (x M glri mod p). La valeur x et le document m sont échantillonnés en utilisant une fonction d'échantillonnage h, en déduisant ainsi e (e = h(grl mod p,25 m)). Le signataire A produit également un nombre aléatoire r2 entre 1 et q. Ensuite, le signataire A multiplie le nombre aléatoire r2 par une de ses clés secrètes s 1. La valeur résultante est ajoutée au nombre aléatoire r1 utilisé pour le calcul de x et, ensuite, divisée par q, en déduisant30 ainsi une valeur r (r M r1 + slr2 mod q). Le signataire A produit également un nombre aléatoire r3 entre 1 et q. Le nombre aléatoire r3 est alors multiplié par une clé secrète 1 du signataire A. La valeur résultante est ajoutée à une autre clé secrète s2 du signataire A et, ensuite, divisée BAD OqIGINmL a par q, en déduisant ainsi une valeur r4 (r4 = slr3 + s2 mod q). La valeur calculée r4 est multipliée par le nombre aléatoire e. La valeur résultante est ajoutée au modulo r et, ensuite, divisée par q. pour obtenir ainsi la valeur Y1 (Y1 - r + er4 mod q). Le nombre aléatoire r3 est également multiplié par le nombre aléatoire e. La valeur résultante est ajoutée au nombre aléatoire r2 et, ensuite, divisée par q, pour obtenir ainsi la valeur Y2 (Y2 - r2 + er3 mod q). A la place de o calculer les deux valeurs Y1 et Y2 en produisant les nombres aléatoires r2 et r3, de calculer les valeurs r et r4 sur la base des clés secrètes sI et s2 en même temps que les nombres aléatoires rl, r2 et r3 et, ensuite, d'utiliser le nombre aléatoire e, seule la valeur Y1 peut être calculée pour vérifier la validité de la signature électronique du signataire A. Dans ce cas, seulement un nombre aléatoire r2 est produit tel qu'il est établi comme la valeur Y2. La valeur Y1 est dérivée en utilisant les clés secrètes s1 et s2 en même temps que le nombre aléatoire e. C'est-à-dire, le signataire A produit le nombre aléatoire r2 entre 1 et q et, ensuite, détermine le nombre aléatoire r2 comme Y2- Ensuite, le signataire A multiplie sa clé choisie s1 par Y2- La valeur calculée est alors ajoutée au produit du nombre aléatoire e et de l'autre clé secrète s2. La valeur résul- tante est ajoutée au nombre aléatoire r1 utilisé pour le calcul de x et ensuite divisée par q, en déduisant ainsi une valeur y1 (Y1 rl + es2 + sly2 mod q). En même temps que le nombre aléatoire e, les valeurs Y1 et Y2 dérivées de cette façon constituent la signature électronique du signataire A. Pour vérifier la signature électronique (e, Y1, Y2) du ième signataire A apposée au document m, g est élevé à la ylième puissance. Une clé publique vl (vl 1 g-S1 mod p) est égale- i ème ment élevée à la y2ième puissance. Les valeurs calculées sont multipliées ensemble. La valeur résultante est alors35 multipliée par la valeur obtenue après l'élévation de l'autre clé publique v2 (v2 = g-2 mod p) du signataire A à i ème la eime puissance. La valeur résultante est divisée par p, en déduisant ainsi la valeur x' (x' = gyvlY 2v2e mod p). La valeur x' finalement déduite et le document m sont échantil- lonnés, en déduisant ainsi une valeur d'échantillonnage h(x', m). Par la suite, une vérification est réalisée pour savoir si la valeur d'échantillonnage coïncide avec e, de façon à vérifier la validité de la signature électronique (e, Y1, Y2) du signataire A. Bien que q soit utilisé comme le coefficient pour le calcul de r (r - r1 + s1r2 mod q), r4 (r4 = slr3 + s2 mod q), y1 (Y1 = r + er4 mod q) et Y2 (Y2 = r2 + er3 mod q) conformé- ment au procédé d'échange d'identification et au procédé de signature électronique de la présente invention, p-1 peut être utilisé comme le coefficient, comme illustré sur les figures 3 et 4. Dans ce cas, un nombre premier p doit être utilisé comme le coefficient p-1 incluant au moins un grand facteur pour la sécurité de chacun des procédés. Dans le procédé d'échange d'identification et le procédé de signature électronique de la présente invention, la valeur r est calculée pour prendre la forme de r - r! + slr2 mod q en utilisant le nombre aléatoire r1 utilisé pour le calcul de x (x grl mod p), si, une des clés choisies de l'utilisateur, et le nombre aléatoire r2 ensemble. La valeur r4 est égale- ment calculée pour prendre la forme de r4 slr3 + s2 mod q en utilisant le nombre aléatoire r3 et les clés secrètes s et s2 de l'utilisateur. Les valeurs r et r4 sont utilisées pour calculer Y1 prenant la forme de yl a r + er4 mod q et la forme de Y2 = r2 + er3 mod q. La raison pour laquelle y1 et Y2 sont calculés de la façon mentionnée ci-dessus est que, pour x, le calcul de grl mod p (x grl mod p) est équivalent à un calcul implicite de gr(g-sl)r2 mod p (x = grl = gr-slr2 = grg-slr2 = gr(g-sl)r2 mod p), de sorte que le calcul de grl mod p utilisant le nombre aléatoire unique BAD ORIGINAL à r1 fournit le même effet que le calcul de gr(g -Sl)r2 mod p utilisant deux nombres aléatoires r et r2. L'effet de ce calcul est le même que celui obtenu dans le cas o l'on réalise un calcul deux fois d'une façon conti- nue. En d'autres termes, ce calcul doit être le procédé efficace capable d'augmenter la sécurité sans aucune augmen- tation de la quantité de calcul dans le procédé d'échange d'identification et le procédé de signature électronique. C'est pourquoi il est plus difficile de déduire les nombres aléatoires r et r2 utilisés pour le calcul de gr(g sl)r2 mod p que de déduire le nombre aléatoire unique r1 utilisé pour le calcul de grl mod p. En fait, dans le procédé d'échange d'identification et le procédé de signature électronique de la présente invention, seul le calcul de grl mod p est exécuté à la place d'exécuter le calcul de gr(g-sl)r2 mod p de façon à obtenir une vitesse de traitement élevée et, encore, d'augmenter la sécurité. En conséquence, le procédé d'échange d'identification et le procédé de signature électronique de la présente invention constituent le procédé efficace capable d'augmenter la sécurité sans aucune augmen- tation de la quantité de calcul. Comme mentionné ci-dessus, y1 et Y2 sont calculés pour prendre la forme de y1 E r + er4 mod q et la forme de Y2 r2 + er3 mod q respectivement, en utilisant les valeurs r (r E r + s r2 mod q) etr4 (r4 r3 + s2 mod q) calculées 11 2 4 (4 s1r3 2 par le testeur A et le nombre aléatoire e envoyé du vérifi- cateur B au testeur A dans le procédé d'échange d'identifi- cation deprésente invention ou en utilisant le modulo r (r E r + s r2 mod q) et r4 (r4 slr3 + s mod q) calculés par le signataire A et la valeur d'échantillonnage e (e = h(x, m)) déduite en échantillonnant le document m et la valeur x (x - grl mod p), en même temps que les clés secrè- tes s1 et s2 dans le procédé de signature électronique de la présente invention. En vérifiant la validité dans le procédé 8AD) OF 'kNAL ai d'échange d'identification et le procédé de signature électronique de la présente invention, le calcul de vérifi- cation de gy1 vl y2V2e mod p est exécuté en utilisant x, e, Y, et Y2 reçus au vérificateur B, en même temps que les clés publiques vI et v2 de l'utilisateur A. Sur la base des équations de rr r + slr2 mod qet r4 slr3 + s2 mod q, le l 1 e 1 2 q r4 s1r3 2 calcul de gylvlY2v2 mod p est équivalent au cas o l'on exécute un calcul deux fois d'une façon continue pour prendre la forme de grgeS2g-es2 g-sl)r2 (g-sl)er3 -si -er3 (g)er3 mod p et, ainsi, pour vérifier la validité dans le procédé d'échange d'identification et le procédé de signature électronique. Comme les clés secrètes s1 et s2 de l'utilisateur sont indirectement utilisées dans le calcul de Y1 et Y2 conformé- i5 ment à la présente invention, le procédé d'échange d'identi- fication et le procédé de signature électronique de la présente invention doivent être la méthode supérieure capable de réduire la possibilité d'exposer les clés secrè- tes de l'utilisateur à d'autres et, ainsi, d'augmenter la sécurité. Les procédés de la présente invention sont compatibles avec le procédé de Schnorr et le procédé de Okamoto (OK92). En d'autres termes, les procédés de la présente invention permettent un échange d'identification avec soit le procédé25 de Schnorr, soit le procédé 0K92, et une vérification d'une signature électronique, engendrée soit par le procédé de Schnorr, soit par le procédé 0K92, sans aucune conversion. Les figures 5 à 8 illustrent la compatibilité des procédés de la présente invention avec le procédé de Schnorr ou le30 procédé 0K92. La figure 5 illustre un échange d'identification entre un testeur A utilisant le procédé de Schnorr et un vérificateur B utilisant le procédé de la présente invention. Comme AD ORIGINAL montré sur la figure 5, le testeur A produit un nombre aléatoire r entre 1 et q. Après avoir produit le nombre aléatoire r, g est élevé à la rième puissance. La valeur résultante est alors divisée par p pour déduire une valeur x (x = gr mod p). La valeur x est envoyée au vérificateur B. En recevant la valeur x du testeur A, le vérificateur B produit un nombre aléatoire e entre 1 et q. Le nombre aléatoire e produit par le vérificateur B est envoyé au testeur A. Le testeur A multiplie le nombre aléatoire e reçu du vérificateur B par sa clé secrète s. La valeur résultante est ajoutée au nombre aléatoire r utilisé pour le calcul de x et, ensuite, divisé par q, en déduisant ainsi une valeur y (y _ r + es mod q). Le testeur A envoie la valeur déduite y au vérificateur B. En recevant la valeur y du testeur A, le vérificateur B utilise g reçu tel quel, pour gylv y2v2e mod p. Le vérificateur B remplace également y1 de la formule g Ylvy2v2e mod p par y reçu. A ce moment, la clé publique v du testeur A remplace également v2 de gY vl v2 mod p. Egalement, v1 de gYlvlY2v2e mod pest remplacé par 1, tandis que Y2 est remplacé par 0. De cette façon, le vérificateur B calcule gylv y2v e mod p. Enfin, le vérificateur B vérifie yl y2 4 si g lvY2v22 mod p coïncide avec x reçu du testeur A de façon à vérifier le testeur A. La figure 7 illustre une vérification de validité d'une signature électronique (e, y) apposée à un document électro- nique m produit par un signataire A utilisant le procédé de Schnorr. Dans ce cas, g est utilisé tel quel pour gylv y2v e Schnorr. vYi1v2e mod p. Par ailleurs, y remplace Y, de la formule gylv y2 V2e mod p. A ce moment, la clé publique v du testeur A remplace30 également v2 de gylvlY2v2e mod p. Egalement, v1 de gylv Y2v2e mod p est remplacé par 1, tandis que y2 est g v1 2 y y2 e. remplacé par 0. De cette façon, le calcul de g Ylv v2 mod pest obtenu. En même temps que le document m, gYlvly2v2 mod p est échantillonné. Enfin, le vérificateur B vérifie si35 la valeur d'échantillonnage h (gylvlY2v2e mod p,m) coïncide avec e reçu du signataire A de façon à vérifier la validité de la signature électronique. La figure 6 illustre un échange d'identification entre un testeur A utilisant le procédé de Okamoto et un vérificateur B utilisant le procédé de la présente invention. Comme montré sur la figure 6, le testeur A produit deux nombres aléatoires r1 et r2 entre 1 et q. Apres avoir produit les I ème nombres aléatoires r et r2, gl est élevé à la rlième 2ième puissance, tandis que g2 est élevé à la r2 puissance. Les valeurs calculées sont multipliées ensemble. La valeur résultante est alors divisée par p pour déduire une valeur x (x = glrlg2r2 mod p). La valeur x est envoyée au vérifica- teur B. En recevant la valeur x du testeur A, le vérifica- teur B produit un nombre aléatoire e entre 1 et q. Le nombre aléatoire e produit par le vérificateur B est envoyé au testeur A. Le testeur A multiplie le nombre aléatoire e reçu du vérificateur B par sa clé secrète si. La valeur calculée est ajoutée au nombre aléatoire r! et, ensuite, divisée par q, en déduisant ainsi une valeur Y1 (Y1 3 r1 + es1 mod q). Le testeur A multiplie également le nombre aléatoire e par l'autre clé secrète s2. La valeur calculée est ajoutée au nombre aléatoire r2 et, ensuite, divisée par q, en déduisant ainsi une valeur Y2 (Y2 r2 + es2 mod q). Le testeur A envoie les valeurs dérivées (Yl, Y2) au vérificateur B. En recevant les valeurs (y, y) du testeur A, le vérificateur B remplace g de gylvl12v2 mod p par gl utilisé par le testeur A. Par ailleurs, le vérificateur B utilise Y1 et Y2 reçus tels quels. A ce moment, la clé publique v du testeur A remplace également v2 de gyvlY2v2e mod p. Egalement, v yî y e 21 2 mo.Eaeet 1 de gylvlY22e mod p est remplacé par g2. De cette façon, le vérificateur B calcule gylv y2v2e mod p. Enfin, le vérifica- teur B vérifie si gylvly2v2e mod p coïncide avec x reçu du testeur A de façon à vérifier le testeur A. BAD ORIGINAL j La figure 8 illustre une vérification de la validité d'une signature électronique (e, Y1, Y2) apposée & un document électronique m produit par un signataire A utilisant le procédé de Okamoto. Dans ce cas, comme la procédure de vérification sur la figure 6, gl remplace g de gylvlY2v2e mod p. Par ailleurs, le vérificateur B utilise y1 et y2 reçus tels quels. A ce moment, la clé publique v du testeur A remplace également v2 de la formule gylvlY2v2e mod p. Egalement, vl de la formule g 1vl 2v2e mod p est remplacé10 par g2. De cette façon, le calcul de gylvlY2V2e mod pest obtenu. En même temps que le document m, gylvly2v2e mod p est échantillonné. Enfin, le vérificateur B vérifie si la valeur d'échantillonnage h (gyvl y2v2e mod p,m) coïncide avec e reçu du signataire A de façon à vérifier la validité15 de la signature électronique. IQAD ORIGINAL REVENDICATIONS 1. Procédé pour échanger une identification et engendrer une signature électronique, caractérisé en ce qu'il comprend les étapes consistant à: établir p. q et g comme paramètres du système, o p et q sont des nombres premiers, tandis que g est un nombre entier, entre 1 et p. ayant la valeur de I quand il est élevé à la qième puissance et, ensuite, divisé par p; et - utiliser n clés secrètes et n clés publiques pour chaque utilisateur, o n n'est pas inférieur à 2, et les clés publiques vn correspondent respectivement aux clés secre- tes sn, nombres entiers entre 1 et q, et étant produites -sn mdp en se basant sur l'équation de Vn gsn mod p. 2. Procédé selon la revendication 1, caractérisé en ce que q utilisé comme coefficient est remplacé par p-1. 3. Procédé d'échange d'identification pour authentifier mutuellement les entités impliquées dans le système de traitement de données lui-même et le transfert de données entre elles, caractérisé en ce qu'il comprend les étapes consistant à: - produire, par un testeur, un nombre aléatoire ri entre 1 et q, calculer une valeur x (x - grl mod p), o p est un nombre premier tandis que g est un nombre entier entre 1 et p, et envoyer la valeur x du testeur à un vérifica- teur; - produire, par le vérificateur, un nombre aléatoire e, et envoyer le nombre aléatoire e au testeur; - produire, par le testeur, des nombres aléatoires r2 et r3, calculer une valeur r (r E r1 + slr2 mod q) et une valeur r4 (r4 slr3 + s2 mod q) sur la base de clés secrètes s1 et s2 du testeur en même temps que le nombre aléatoire e est reçu du vérificateur vers le testeur, calculer une BAD ORilIGNAij valeur Y1 (Yl 1 r + er4 mod q) et une valeur Y2 (Y2 a r2 + er3 mod q) sur la base de r et r4, et envoyer Y1 et Y2 au vérificateur; et - calculer, par le vérificateur, une valeur x' (x' = gYlvlY2v2e mod p) sur la base de Yl et Y2 reçus du testeur au vérificateur en même temps que des clés publiques v1 -si -s2 (v1 = g mod p) et v2 (v2 = g mod p) du testeur, et vérifier si le modulo x' coïncide avec x (x - grl mod p) reçu du testeur. 4. Procédé selon la revendication 3, caractérisé en ce que q utilisé comme coefficient est remplacé par p-1. 5. Procédé pour engendrer une signature électronique, caractérisé en ce qu'il comprend les étapes consistant &: - produire un nombre aléatoire r! par un signataire qui est un rédacteur ou manipulateur pour des données électroni- ques m, telles qu'un document électronique ou un message, calculer une valeur x (x a grl mod p), o p est un nombre premier, tandis que g est un nombre entier entre 1 et p, et échantillonner la valeur x avec m, en déduisant ainsi e (e = h(x, m)); - produire, par le signataire, des nombres aléatoires r2 et r3, calculer une valeur r (r _ ri +8 lr2 mod q) et une valeur r4 (r4 _ s1r3 + s2 mod q) sur la base de clés secrètes s1 et s2 du signataire en même temps que e, et calculer une valeur Y1 (Y1 - r + er4 mod q) et une valeur Y2 (Y2 = r2 + er3 mod q) sur la base de r et r4, en déduisant ainsi une signature électronique (e, Yl, Y2) pour m; et calculer une valeur x' (x' = gylvlY2v2e mod p) pour 1 2 dp)pu vérifier la signature électronique (e, yl' Y2) pour m, échantillonner la valeur x' avec m, et vérifier si h(x', m) coincide avec e constituant une partie de la signature électronique. 6. Procédé selon la revendication 5, caractérisé en ce que q utilisé comme coefficient est remplacé par p-1. 7. Procédé pour échanger une identification, caractérisé en ce qu'il comprend les étapes consistant à: - quand un testeur produit un nombre aléatoire r, calculer une valeur x (x = gr mod p), o p est un nombre premier tandis que g est un nombre entier entre 1 et p et, en- suite, envoyer la valeur x à un vérificateur; - produire un nombre aléatoire e par le vérificateur et envoyer le nombre aléatoire e au testeur; et - quand le testeur calcule une valeur y (y = r + es mod q) sur la base de ses clés secretes et du nombre aléatoire r utilisé pour le calcul de x en même temps que e reçu, envoyer y au vérificateur; calculer, par le vérificateur, une valeur x' (x' e gY1vlY2v2e mod p) en remplaçant v indiquant une des clés publiques du vérificateur par 1, Y2 par O et v2 indiquant une autre clé publique du vérificateur par v indiquant une clé publique du testeur, et vérifier si x' coïncide avec x (x _ gr mod p) reçu du testeur vers le vérificateur. 8. Procédé pour échanger une identification, caractérisé en ce qu'il comprend les étapes consistant à: - quand un testeur produit les nombres aléatoires r et r2, calculer une valeur x (x g glrlg2r2 mod p), o p est un nombre premier tandis que g1 et g2 sont des nombres entiers entre 1 et p et, ensuite, envoyer la valeur x & un vérificateur; - produire un nombre aléatoire e par le vérificateur et renvoyer le nombre aléatoire e au testeur; et - quand le testeur calcule une valeur y1 (y1 - rl + esl mod q) et une valeur Y2 (y2 = r2 + es2 mod q), o q est un nombre premier, sur la base de ses clés secrètes sa et s2 et des nombres aléatoires r et r2 utilisés pour le calcul 2 BAD ORIGINAL0 de x en même temps que e reçu, envoyer Y1 et Y2 au vérifi- cateur; - calculer, par le vérificateur, une valeur x' (x' = gylvlY2v2e mod p) en remplaçant v1 indiquant une clé publique du vérificateur par g2, v2 indiquant une autre clé publique du vérificateur par v indiquant une clé publique du testeur, et g par gl et vérifier si x' coin- cide avec x (x - glrlg2r2 mod p) reçu du testeur au vérificateur. 9. Procédé de signature électronique pour vérifier, par un vérificateur, la validité d'une signature électronique (e, y) apposée par un testeur à des données électroniques m, telles qu'un document électronique ou un message, caractérisé en ce qu'il comprend les étapes consistant à: - calculer, par le vérificateur, un modulo x' (x' gylvly2v2e mod p) en remplaçant v! indiquant une clé publique du vérificateur par 1, Y1 par y, Y2 par 0, et v2 indiquant une autre clé publique du vérificateur par v indiquant une clé publique du testeur; - échantillonner la valeur x' avec m; et vérifier si la valeur d'échantillonnage h (x', m) coincide avec e. 10. Procédé de signature électronique pour vérifier, par un vérificateur, une signature électronique (e, Y1, Y2) apposée par un testeur à des données électroniques m, telles qu'un document électronique ou un message, caractérisé en ce qu'il comprend les étapes consistant à: - calculer, par le vérificateur, une valeur x' (x' gYlvl 2v2e mod p) en remplaçant v1 indiquant une clé publique du vérificateur par g2' v2 indiquant une autre clé publique du vérificateur par v indiquant une clé publique du testeur, et g par g1; - échantillonner la valeur x' avec m; et SAC) cFlIGINALj vérifier si la valeur d'échantillonnage h (x', m) coïncide avec e. 11. Procédé d'échange d'identification pour authentifier mutuellement les entités impliquées dans le système de traitement de données lui- même et le transfert de données entre elles, caractérisé en ce qu'il comprend les étapes consistant à: - produire, par un testeur, un nombre aléatoire rl, calculer une valeur x (x _ grl mod p), o p est un nombre premier tandis que g est un nombre entier entre 1 et p, et envoyer la valeur x du testeur au vérificateur; - produire, par le vérificateur, un nombre aléatoire e, et envoyer le nombre aléatoire e au testeur; - produire, par le testeur, un nombre aléatoire r2, établir le nombre aléatoire r2 comme Y2, calculer y1 (y1 - rl + es2 + Sly2 mod q) sur la base de clés secrètes s1 et s2 du testeur en même temps que e, et envoyer y1 et Y2; et -calculer, par le vérificateur, une valeur x' (x' - gylvlY2v2e mod p) sur la base de y1 et Y2 reçus du testeur au vérificateur en même temps que des clés publiques v1 (v1 = g-sl mod p) et v2 (v2 g-S2 mod p) du testeur, et 2 (v2 = g rl vérifier si la valeur x' coïncide avec x (x m g mod p) reçu du testeur. 12. Procédé pour engendrer une signature électronique, caractérisé en ce qu'il comprend les étapes consistant à: - produire un nombre aléatoire r1 par un signataire qui est un rédacteur ou un manipulateur pour des données électro- niques m, telles qu'un document électronique ou un mes- sage, calculer une valeur x (x - grl mod p), o p est un nombre premier, tandis que g est un nombre entier entre 1 et p. et échantillonner la valeur x avec m, en déduisant ainsi e (e = h(x, m)); - produire, par le signataire, un nombre aléatoire r2, établir le nombre aléatoire r2 comme Y2 et calculer y1 SAD ORIGINAL o (y1 - r1 + es2 + slY2 mod q) sur la base de clés secrètes s1 et s2 du testeur en même temps que e, en déduisant ainsi une signature électronique (e, y1, Y2); et - calculer, par le vérificateur, une valeur x' (x' gYlvly2v2e mod p) pour vérifier la signature électronique (e, Y1, Y2) pour m, échantillonner la valeur x' avec m, et vérifier si h (x', m) coïncide avec e constituant une partie de la signature électronique. BAD ORIGINAL