FR2899750A1 - Common encryption key generating method for e.g. voice over Internet protocol application, involves verifying correspondence between control data displayed on terminal of one user and control data received from another user by latter user - Google Patents

Common encryption key generating method for e.g. voice over Internet protocol application, involves verifying correspondence between control data displayed on terminal of one user and control data received from another user by latter user Download PDF

Info

Publication number
FR2899750A1
FR2899750A1 FR0603122A FR0603122A FR2899750A1 FR 2899750 A1 FR2899750 A1 FR 2899750A1 FR 0603122 A FR0603122 A FR 0603122A FR 0603122 A FR0603122 A FR 0603122A FR 2899750 A1 FR2899750 A1 FR 2899750A1
Authority
FR
France
Prior art keywords
terminal
data
encryption key
common
control data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0603122A
Other languages
French (fr)
Inventor
Jean Luc Stehle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Everbee Networks SA
Original Assignee
Everbee Networks SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Everbee Networks SA filed Critical Everbee Networks SA
Priority to FR0603122A priority Critical patent/FR2899750A1/en
Publication of FR2899750A1 publication Critical patent/FR2899750A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these

Abstract

The method involves determining a common encryption key by each of communication terminals (PA, PB) of users (A, B) from random data (a, b) and initialization data (Ga`, Gb`). Control data (Ca, Cb) are determined from locally calculated initialization data (Ga, Gb) and data (Ga`, Gb`), and are displayed on one user`s terminal. The control data are transmitted to the other user via a voice communication channel (CV). Correspondence between the displayed control data and the control data received from the latter user is verified by the latter user using a validation unit. Independent claims are also included for the following: (1) a computer program executed by a terminal connected to another terminal via a digital link of a communication network (2) a terminal for generating an encryption key common to another terminal.

Description

PROCEDE ET TERMINAL POUR SECURISER LA GENERATION D'UNE CLE DE CHIFFREMENTMETHOD AND TERMINAL FOR SECURING THE GENERATION OF AN ENCRYPTION KEY

L'invention concerne les communications par voie électronique, et en particulier la sécurisation de telles communications. La sécurisation des communications par voie électronique prend une importance croissante avec le développement des réseaux informatiques.  The invention relates to communications by electronic means, and in particular to securing such communications. Securing electronic communications is becoming increasingly important with the development of computer networks.

Toutes les données échangées transitent sur des réseaux publics et sont susceptibles d'être lues par des personnes non destinées à en prendre connaissance. Il est donc souvent nécessaire de chiffrer les communications. Le chiffrement se fait à l'aide d'algorithmes publics, mais utilisant une donnée confidentielle ou clé de chiffrement qui n'est connue que de l'expéditeur et du destinataire. Un éventuel attaquant n'a aucune possibilité d'accéder aux données échangées s'il ne connaît pas la clé de chiffrement. Pour assurer un certain niveau de sécurité, la clé de chiffrement doit être modifiée souvent. En effet l'utilisation d'une même clé pour chiffrer un volume important de données la rend vulnérable à des attaques de type statistique. Habituellement une nouvelle clé est générée à chaque nouvelle communication. La génération d'une clé est classiquement réalisée par des protocoles dits de Diffie Hellman, dont le principe est le suivant. On travaille en arithmétique modulo N, où N est un grand nombre entier (dont la représentation informatique nécessite plusieurs centaines ou même milliers de bits), et on choisit à l'avance un nombre entier g défini modulo N. Ces nombres N et g sont publics et connus de tous les utilisateurs. Considérons alors deux utilisateurs particuliers, ci-après appelés Alice et Bob , qui souhaitent communiquer entre eux de façon confidentielle sur un réseau public. Alice génère en secret une donnée aléatoire a et calcule le nombre g puissance a modulo N (noté ci-après gAa [Mod N]) qu'elle envoie à Bob. Celui-ci, de son côté, génère en secret une donnée aléatoire b et calcule le nombre g puissance b modulo N (g^b [Mod N]) qu'il envoie à Alice. Après cet échange, Alice connaît a et gAb [Mod N] et les utilise pour calculer (gAb [Mod N] )^a [Mod N]. Bob, pour sa part, connaît b et g''a [Mod N] et calcule de son côté (g^a [Mod N] )''b [Mod N] = g^ab [Mod N]. Les deux nombres ainsi calculés sont égaux entre eux. Ils sont connus des deux utilisateurs et sont utilisés pour déterminer une clé de chiffrement. Un attaquant qui aurait copié toutes les informations transitant sur le réseau, connaîtrait les nombres g^a [Mod N] et g^b [Mod N], mais pas les données aléatoires a et b qui ne transitent pas par le réseau. Or sans la connaissance des données aléatoires a et b, il est impossible de calculer g^ab [Mod N], du moins si N est suffisamment grand. D'autres protocoles utilisent des objets mathématiques plus complexes (courbes elliptiques sur des corps finis, groupes de Jacobi de courbes hyperelliptiques,...), mais le principe général reste toujours le même. Alice génère en secret une donnée aléatoire a, et calcule à l'aide d'une fonction cryptographique appliquée à la donnée aléatoire a une donnée d'initialisation Ga qu'elle envoie dans un message d'initialisation à Bob. De façon similaire, Bob, de son côté, génère en secret une donnée aléatoire b et calcule à l'aide de la même fonction cryptographique appliquée à la donnée aléatoire b une donnée d'initialisation Gb, qu'il envoie à Alice dans un message d'initialisation. La connaissance, soit du couple (Ga,b), soit du couple (Gb,a) permet aux deux utilisateurs de calculer, chacun de son côté, une donnée secrète commune Gab. La donnée secrète commune Gab est connue seulement des deux utilisateurs et est impossible à calculer par un attaquant qui connaîtrait les données d'initialisation Ga et Gb qui transitent par le canal de communication, mais qui ne connaîtrait aucune des données aléatoires initiales a et b. La donnée secrète commune Gab ainsi élaborée sert ensuite à déterminer une clé de chiffrement qui sera utilisée pour chiffrer la suite des communications entre les deux utilisateurs.  All data exchanged is transmitted over public networks and is likely to be read by people who are not intended to read it. It is therefore often necessary to encrypt communications. The encryption is done using public algorithms, but using confidential data or encryption key that is known only to the sender and the recipient. A possible attacker has no possibility to access the data exchanged if he does not know the encryption key. To ensure a certain level of security, the encryption key must be changed often. Indeed the use of the same key to encrypt a large volume of data makes it vulnerable to statistical type attacks. Usually a new key is generated with each new communication. The generation of a key is conventionally performed by so-called Diffie Hellman protocols, the principle of which is as follows. We work in arithmetic modulo N, where N is a large integer (whose computer representation requires several hundreds or even thousands of bits), and we choose in advance an integer g defined modulo N. These numbers N and g are public and known to all users. Consider then two particular users, hereinafter called Alice and Bob, who wish to communicate with each other confidentially on a public network. Alice secretly generates a random datum a and calculates the number g power modulo N (noted below gAa [Mod N]) that it sends to Bob. The latter, in turn, secretly generates a random datum b and calculates the number g power modulo N (g ^ b [Mod N]) that it sends to Alice. After this exchange, Alice knows a and gAb [Mod N] and uses them to calculate (gAb [Mod N]) ^ a [Mod N]. Bob, for his part, knows b and g''a [Mod N] and calculates on his side (g ^ a [Mod N]) '' b [Mod N] = g ^ ab [Mod N]. The two numbers thus calculated are equal to each other. They are known to both users and are used to determine an encryption key. An attacker who has copied all the information passing through the network, would know the numbers g ^ a [Mod N] and g ^ b [Mod N], but not the random data a and b that do not pass through the network. But without the knowledge of the random data a and b, it is impossible to calculate g ^ ab [Mod N], at least if N is sufficiently large. Other protocols use more complex mathematical objects (elliptic curves on finite fields, Jacobi groups of hyperelliptic curves, ...), but the general principle remains the same. Alice secretly generates a random datum a, and computes, using a cryptographic function applied to the random datum, an initialization datum Ga that she sends in an initialization message to Bob. Bob, for his part, secretly generates a random datum b and calculates, using the same cryptographic function applied to the random datum b, an initialization datum Gb, which he sends to Alice in a message. initializing. Knowing either the pair (Ga, b) or the pair (Gb, a) allows the two users to calculate, each on its own, a common secret data item Gab. The common secret data Gab is known only to the two users and is impossible to calculate by an attacker who would know the initialization data Ga and Gb that pass through the communication channel, but which would know none of the initial random data a and b. The common secret data Gab thus developed is then used to determine an encryption key which will be used to encrypt the sequence of communications between the two users.

Ces protocoles sont décrits notamment dans "Cryptographie Appliquée", de Bruce Schneier, 2ème édition, traduction française parue chez International Thomson Publishing France en 1997, plus particulièrement au chapitre 22, page 541 et suivantes. L'idée originale de ces protocoles a été publiée par W. Diffie et M.E. Hellman en 1976 dans "New Directions in Cryptography", IEEE Transactions on Information Theory, vol. IT 22, n 6, pp 644-654. Les généralisations aux courbes elliptiques et hyperelliptiques sont décrites par exemple dans l'article de V.S. Miller, "Use of Elliptic Curves in Cryptography", Advances in Cryptology, CRYPTO '85 Proceedings, p 417-426, Springer Verlag, Berlin 1986, ou dans les articles de N. Koblitz, "Elliptic Curves Cryptosystems ", Mathematics of Computation vol. 48, n 177 p 203-209, 1987, et "Hyperelliptic Cryptosystems ", Journal of Cryptology, Vol. 1. n 3, pp 129-150, 1989. Une des failles du protocole de type Diffie-Hellman est l'attaque dite Man-in-the-middle . Cette attaque suppose que l'attaquant intervient sur le réseau en lisant et en modifiant les données qu'il voit passer. L'attaquant se fait passer pour Alice auprès de Bob et pour Bob auprès d'Alice. Le protocole d'échange de données d'initialisation décrit précédemment est alors appliqué d'une part, entre Alice et l'attaquant (en qui Alice croit reconnaître Bob) et d'autre part entre Bob et l'attaquant (en qui Bob croit reconnaître Alice). De façon plus détaillée, l'attaquant génère de son côté des données aléatoires al et bl et calcule ses propres données d'initialisation Gal et Gbl, appelées par la suite données d'initialisation pirates . Lorsque l'attaquant voit passer la donnée d'initialisation Ga envoyée par Alice, il l'intercepte et la remplace par la donnée d'initialisation pirate Gal qu'il transfère à Bob. De même lorsqu'il voit passer la donnée d'initialisation Gb envoyée par Bob, il la remplace par la donnée d'initialisation pirate Gbl qu'il transfère à Alice. Après ces échanges, d'une part, il calcule et partage avec Alice la donnée secrète commune Gabl qu'il utilisera pour chiffrer les communications avec Alice, et d'autre part, il calcule et partage avec Bob la donnée secrète commune Galb qu'il utilisera pour chiffrer les communications avec Bob. Lorsque Alice veut envoyer un message à Bob, elle le chiffre avec la clé issue de Gab1, qu'elle croit partager avec Bob et qu'elle partage en fait avec l'attaquant. Celui-ci intercepte le message, le déchiffre et a donc accès au message en clair, puis il le chiffre à nouveau, mais cette fois-ci avec la clé issue de Galb avant de l'envoyer à Bob. Celui-ci reçoit un message chiffré avec une clé qu'il croit partager avec Alice mais qu'il partage en fait avec l'attaquant. Le cas d'un message envoyé par Bob à Alice est traité de manière similaire, mutatis mutandis. En pratique, l'attaquant peut lire l'intégralité des données échangées, et ce à l'insu des deux utilisateurs qui croient leur message parfaitement indéchiffrable par tout tiers. Pour contrer l'attaque dite Man-in-the-middle , il faut que chaque utilisateur puisse s'assurer que le message d'initialisation provient bien de son interlocuteur et que ce message d'initialisation n'a pas été modifié pendant la transmission. De bonnes solutions ont été mises en place pour les communications entre professionnels ou encore entre grand public et sites professionnels (commerce électronique, applications de type banque à domicile...). Elles reposent sur des systèmes de cryptographie dite asymétrique, dans lesquels un utilisateur dispose d'un couple de clés, l'une d'elle, appelée clé publique étant connue de tous, l'autre, appelée clé privée étant confidentielle et n'étant connue que de lui seul. N'importe qui peut, à l'aide de la clé publique du destinataire, chiffrer un message que le destinataire seul peut déchiffrer à l'aide de sa clé privée. Un utilisateur peut aussi signer un message en utilisant sa clé privée, et tout un chacun peut vérifier la signature, à l'aide de la clé publique de cet utilisateur, . Dans le protocole décrit ci-dessus, il suffit que l'un des deux utilisateurs, par exemple Bob dispose d'un tel système. Il pourra alors signer le message contenant Gb qu'il envoie à Alice, et l'attaquant ne pourra en aucun cas signer le message contenant Gbl en faisant croire à Alice que c'est Bob qui l'a signé. De même Alice peut envoyer à Bob le message Ga chiffré avec la clé publique de Bob. Seul celui-ci pourra relire le message. L'attaque Man-in-the-middle telle que décrite ci-dessus devient alors impossible. Toutefois, ces solutions sont faciles à mettre en oeuvre entre professionnels ou tout au moins lorsque l'un des utilisateurs est un professionnel (site marchand, banque,...). Par contre, elles sont lourdes et difficiles à mettre en oeuvre pour des applications dans lesquelles deux utilisateurs grand public souhaitent communiquer de façon confidentielle, sans que les informations transmises ne soient espionnées ou même modifiées. Pour développer un système de communication sécurisé, il faudrait que chaque utilisateur se voie attribuer un couple clé publique-clé privée et connaisse les clés publiques de chacun de ses correspondants potentiels. Une telle solution peut être envisagée au sein d'une entreprise dans laquelle un administrateur sécurité serait chargé de la gestion et de la distribution des clés.  These protocols are described in particular in "Applied Cryptography" by Bruce Schneier, 2nd edition, a French translation published by International Thomson Publishing France in 1997, more particularly in Chapter 22, page 541 and following. The original idea of these protocols was published by W. Diffie and M. E. Hellman in 1976 in "New Directions in Cryptography", IEEE Transactions on Information Theory, vol. IT 22, No. 6, pp 644-654. Generalizations with elliptic and hyperelliptic curves are described, for example, in the article by VS Miller, "Use of Elliptic Curves in Cryptography", Advances in Cryptology, CRYPTO '85 Proceedings, p 417-426, Springer Verlag, Berlin 1986, or in N. Koblitz, Elliptic Curves Cryptosystems, Mathematics of Computation vol. 48, No. 177, 203-209, 1987, and "Hyperelliptic Cryptosystems," Journal of Cryptology, Vol. 1. n 3, pp 129-150, 1989. One of the flaws of the Diffie-Hellman protocol is the so-called Man-in-the-middle attack. This attack assumes that the attacker intervenes on the network by reading and modifying the data that he sees passing. The attacker pretends to be Alice to Bob and Bob to Alice. The protocol of exchange of data of initialization described previously is then applied on the one hand, between Alice and the attacker (in whom Alice thinks to recognize Bob) and on the other hand between Bob and the attacker (in whom Bob believes recognize Alice). In more detail, the attacker generates on his side random data al and bl and calculates his own initialization data Gal and Gbl, subsequently called piracy initialization data. When the attacker sees pass the initialization data Ga sent by Alice, it intercepts and replaces it with the pirate initialization data Gal that it transfers to Bob. Similarly, when Bob passes the initialization data Gb sent by Bob, he replaces it with the pirate initialization data Gbl which he transfers to Alice. After these exchanges, on the one hand, he calculates and shares with Alice the shared secret data Gabl that he will use to encrypt communications with Alice, and on the other hand, he calculates and shares with Bob the common secret data Galb that it will use to encrypt communications with Bob. When Alice wants to send a message to Bob, she encrypts it with the key from Gab1, which she thinks she shares with Bob and actually shares it with the attacker. The latter intercepts the message, decrypts it and therefore has access to the message in the clear, and then encrypts it again, but this time with the key from Galb before sending it to Bob. This one receives an encrypted message with a key which he thinks to share with Alice but which in fact shares with the attacker. The case of a message sent by Bob to Alice is treated in a similar way, mutatis mutandis. In practice, the attacker can read all the data exchanged, and this without the knowledge of both users who believe their message perfectly indecipherable by any third party. To counter the so-called Man-in-the-middle attack, it is necessary that each user can ensure that the initialization message comes from his interlocutor and that this initialization message has not been modified during the transmission. . Good solutions have been put in place for communications between professionals or between the general public and professional sites (e-commerce, home banking applications, etc.). They are based on so-called asymmetric cryptosystems, in which a user has a pair of keys, one of them, called public key being known by all, the other, called private key being confidential and not being known only from him. Anyone can, using the recipient's public key, encrypt a message that the recipient alone can decrypt with his private key. A user can also sign a message using his private key, and anyone can check the signature, using the public key of this user. In the protocol described above, it is sufficient that one of the two users, for example Bob has such a system. He can then sign the message containing Gb he sends to Alice, and the attacker can not in any case sign the message containing Gbl by making believe that Alice is Bob who signed it. Similarly Alice can send Bob the Ga message encrypted with Bob's public key. Only this one can re-read the message. The Man-in-the-middle attack as described above then becomes impossible. However, these solutions are easy to implement between professionals or at least when one of the users is a professional (merchant site, bank, ...). However, they are cumbersome and difficult to implement for applications in which two consumer users wish to communicate in a confidential manner, without the information transmitted being spied on or even modified. To develop a secure communication system, each user should be assigned a private key-public key pair and know the public keys of each of his potential correspondents. Such a solution can be considered within a company in which a security administrator would be responsible for the management and distribution of keys.

Par contre, une solution de ce type est absolument inapplicable pour une application grand public comme par exemple les applications de type voix sur IP (Internet Protocol), dans lesquelles des conversations téléphoniques entre utilisateurs sont transmises via le réseau Internet au lieu d'un réseau téléphonique classique. En effet, il faudrait, entre autres, transmettre la clé publique de chaque nouvel utilisateur à tous les autres utilisateurs, et ce de manière sécurisée. C'est tout à fait irréaliste pour une application susceptible d'avoir plusieurs milliers ou même millions d'utilisateurs. Un point qui était jusqu'à présent non résolu, et auquel se propose de répondre l'invention objet du présent brevet, est de permettre à deux utilisateurs engageant une communication entre eux de s'assurer que leurs messages d'initialisation n'ont pas été modifiés lors de l'échange de ceux-ci, et ce sans recourir à une lourde infrastructure de gestion de clés, sans avoir à connaître au préalable la clé publique de son interlocuteur, et d'une façon plus générale, sans authentification préalable des utilisateurs.  On the other hand, a solution of this type is absolutely inapplicable for a general public application such as for example applications of the VoIP type (Internet Protocol), in which telephone conversations between users are transmitted via the Internet network instead of a network. telephone call. Indeed, it would be necessary, among other things, to transmit the public key of each new user to all other users, and this in a secure manner. This is totally unrealistic for an application likely to have many thousands or even millions of users. One point that has hitherto been unresolved, and to which the object of this patent is intended to respond, is to allow two users engaging in communication with each other to ensure that their initialization messages do not have been modified during the exchange of these, and without resorting to a heavy key management infrastructure, without having to know beforehand the public key of his interlocutor, and more generally, without prior authentication of users.

L'objectif de la présente invention est que les deux utilisateurs aient la certitude qu'ils sont seuls sur la ligne , c'est-à-dire que leurs communications ne peuvent être écoutées que par eux seuls. Par la suite, ils pourront inviter d'autres utilisateurs à se joindre à leur conversation, tout en ayant la certitude qu'il n'y a aucune écoute illicite de leur conversation.  The objective of the present invention is that both users are certain that they are alone on the line, that is to say that their communications can only be listened to by them alone. Afterwards, they will be able to invite other users to join their conversation, while being certain that there is no illicit listening to their conversation.

L'idée de base de la présente invention est de permettre aux deux utilisateurs de s'échanger à un moment un message de contrôle du type Mon message d'initialisation contenait bien Ga . Cependant, si cet échange est effectué à travers le réseau faisant l'objet d'une attaque Manin-the-middle , il sera facile à l'attaquant de modifier au passage le message de contrôle en remplaçant la vraie donnée d'initialisation par une donnée d'initialisation pirate. Le message de contrôle à échanger doit être transmis sans pouvoir être modifié par l'attaquant. Utiliser un autre canal de communication pour transmettre l'information de contrôle peut être une solution, à condition d'avoir la certitude que cet autre canal de communication n'a pas été lui aussi compromis. Dans les applications de type voix sur IP, les données échangées par les utilisateurs sont des messages sonores qui sont numérisés, puis transmis sous la forme de paquets de données binaires. L'invention propose de transmettre l'information de contrôle par un canal de communication analogique comme la voix. Ainsi, Alice peut, à un moment quelconque de la communication, délivrer vocalement son message de contrôle. Il suffit alors que son interlocuteur Bob vérifie que la donnée d'initialisation Ga qu'il a utilisée pour calculer la donnée secrète commune Gab est bien identique à celle que Alice vient de lui envoyer vocalement pour contrôle.  The basic idea of the present invention is to allow the two users to exchange at a time a control message of the type My initialization message contained Ga. However, if this exchange is done through the Manin-the-middle attacking network, it will be easy for the attacker to modify the control message by replacing the real initialization data with a new one. pirate boot data. The control message to be exchanged must be transmitted without being able to be modified by the attacker. Using another communication channel to transmit control information can be a solution, provided that you are sure that this other communication channel has not been compromised as well. In Voice over IP applications, the data exchanged by users are audible messages that are digitized and transmitted as binary data packets. The invention proposes to transmit the control information by an analog communication channel such as the voice. Thus, Alice can, at any moment of the communication, deliver vocally his message of control. It is then sufficient that his interlocutor Bob verifies that the initialization data Ga that he used to calculate the common secret data Gab is identical to the one that Alice has just sent to him for control.

En pratique, si la donnée d'initialisation Ga est un nombre qui peut atteindre plusieurs centaines ou milliers de bits, il est irréaliste de supposer qu'Alice acceptera de lire ce nombre ou qu'elle le fera sans erreur. De même Bob devra vérifier que ce nombre gigantesque est bien celui qu'il a reçu sous forme numérique. Un tel protocole est absolument inenvisageable pour une application grand public .  In practice, if the initialization data Ga is a number that can reach several hundreds or thousands of bits, it is unrealistic to assume that Alice will accept reading this number or that she will do so without error. Likewise Bob will have to check that this gigantic number is the one he received in digital form. Such a protocol is absolutely unthinkable for a mainstream application.

L'invention objet du présent brevet résout également ce problème de la façon suivante. Dans un premier temps les deux utilisateurs, après avoir échangé leurs données d'initialisation Ga et Gb, calculent, à partir de ces données un nombre C appelé donnée de contrôle . Il suffit alors que la donnée de contrôle soit affichée sur le terminal de chacun des deux utilisateurs, que l'un des deux utilisateurs lise et transmette vocalement à l'autre utilisateur la donnée de contrôle affichée, et que l'autre utilisateur vérifie que la donnée de contrôle reçue vocalement correspond à celle qui est affichée sur son terminal. Dans le cas d'une attaque Man-in-the-middle , l'attaquant aura calculé des données de contrôle pirates d'une part à partir de la donnée d'initialisation Gb de Bob et de la donnée d'initialisation pirate Gal, d'autre part à partir de la donnée d'initialisation Ga d'Alice et de la donnée d'initialisation pirate Gbl. Mais il faut encore qu'il soit capable de modifier à la volée, dans la phrase envoyée par Alice à Bob, la donnée de contrôle transmise. Cette modification devrait être effectuée dans un message sonore, et de plus, en contrefaisant la voix d'Alice et ce exactement au bon moment. Il est extrêmement peu probable que l'attaquant arrive à une telle performance sans que Bob ne détecte que le message sonore a été trafiqué .  The invention object of this patent also solves this problem as follows. In a first step, the two users, after exchanging their initialization data Ga and Gb, calculate from these data a number C called control data. It is then sufficient for the control data to be displayed on the terminal of each of the two users, for one of the two users to read and transmit the control data displayed to the other user by voice, and for the other user to verify that the control data received vocally corresponds to that displayed on its terminal. In the case of a Man-in-the-middle attack, the attacker will have calculated pirate control data on the one hand from the initialization data Gb of Bob and the pirate initialization data Gal, on the other hand from the initialization data Ga of Alice and the pirate initialization data Gbl. But it must still be able to change on the fly, in the sentence sent by Alice to Bob, the control data transmitted. This change should be made in a sound message, and moreover, by infringing on Alice's voice at exactly the right moment. It is extremely unlikely that the attacker will achieve such a performance without Bob detecting that the sound message has been tampered with.

Symétriquement, Bob pourra de son côté lire la donnée de contrôle et la transmettre vocalement à Alice. Là aussi, une attaque de la part de l'attaquant nécessite de modifier un message sonore, en contrefaisant la voix de Bob. Plus précisément, l'invention concerne un procédé pour générer d'une manière sécurisée une clé de chiffrement commune à au moins deux utilisateurs chacun équipés d'au moins un terminal de communication, les terminaux étant reliés entre eux par au moins un réseau de communication pour communiquer entre eux numériquement, le procédé comprenant des étapes au cours desquelles un terminal de chacun des utilisateurs détermine une clé de chiffrement commune à partir d'une donnée secrète privée et d'une donnée d'initialisation reçue sous forme numérique de l'autre terminal par l'intermédiaire du réseau de communication. Selon l'invention, le procédé comporte une phase de sécurisation comprenant : des étapes exécutées par chacun des terminaux et consistant à déterminer une donnée de contrôle à partir d'une donnée d'initialisation calculée localement et/ou de la donnée d'initialisation reçue, et à afficher la donnée de contrôle, et des étapes de transmission par au moins l'un des utilisateurs à l'autre utilisateur de la donnée de contrôle affichée par son terminal, par l'intermédiaire d'un canal de communication analogique, et de vérification par l'autre utilisateur qu'il existe une correspondance entre la donnée de contrôle affichée sur son terminal et la donnée de contrôle reçue de l'autre utilisateur par l'autre canal de communication.  Symmetrically, Bob will be able to read the control data and transmit it vocally to Alice. Again, an attack from the attacker requires modifying a sound message, counterfeit the voice of Bob. More specifically, the invention relates to a method for generating in a secure manner an encryption key common to at least two users each equipped with at least one communication terminal, the terminals being interconnected by at least one communication network. for digitally communicating with each other, the method comprising steps in which a terminal of each of the users determines a common encryption key from a private secret data and initialization data received in digital form from the other terminal via the communication network. According to the invention, the method comprises a security phase comprising: steps performed by each of the terminals and consisting in determining a control data item from a locally calculated initialization data item and / or the initialization data item received , and displaying the control data, and transmission steps by at least one of the users to the other user of the control data displayed by his terminal, via an analog communication channel, and verification by the other user that there is a correspondence between the control data displayed on its terminal and the control data received from the other user by the other communication channel.

Selon un mode de réalisation de l'invention, la donnée de contrôle est transmise par un canal de communication vocale entre les deux utilisateurs. Selon un mode de réalisation de l'invention, le canal communication vocale est établi dans le réseau de communication en voix sur IP.  According to one embodiment of the invention, the control data is transmitted by a voice communication channel between the two users. According to one embodiment of the invention, the voice communication channel is established in the voice over IP communication network.

Selon un mode de réalisation de l'invention, la donnée de contrôle est transmise entre les deux utilisateurs par un réseau distinct du réseau ayant transmis les données d'initialisation. Selon un mode de réalisation de l'invention, le procédé comprend des étapes exécutées par chacun des terminaux des deux utilisateurs et 25 consistant à : calculer la donnée d'initialisation calculée localement à l'aide d'une fonction cryptographique commune appliquée à la donnée secrète privée, transmettre à l'autre terminal sous forme numérique, la donnée d'initialisation calculée localement, 30 élaborer une donnée secrète commune à partir de la donnée secrète privée et de la donnée d'initialisation reçue, et déterminer à partir de la donnée secrète commune, une clé de chiffrement à utiliser pour chiffrer les communications entre les deux utilisateurs. Selon un mode de réalisation de l'invention, la fonction 35 cryptographique est une fonction qui associe à un nombre a le nombre g puissance a modulo N, g et N étant des nombres entiers connus des terminaux. Selon un mode de réalisation de l'invention, la donnée secrète privée d'au moins un des terminaux est générée aléatoirement.  According to one embodiment of the invention, the control data is transmitted between the two users by a network separate from the network having transmitted the initialization data. According to one embodiment of the invention, the method comprises steps performed by each of the two users' terminals and consisting in: calculating the initialization data computed locally using a common cryptographic function applied to the data item secret private, transmit to the other terminal in digital form, the initialization data calculated locally, 30 develop a common secret data from the private secret data and the initialization data received, and determine from the data common secret, an encryption key to use to encrypt communications between the two users. According to one embodiment of the invention, the cryptographic function is a function which associates a number a with the number modulo N, where g and N are known integers of the terminals. According to one embodiment of the invention, the private secret data of at least one of the terminals is generated randomly.

Selon un mode de réalisation de l'invention, la donnée de contrôle est obtenue en appliquant à la donnée secrète commune une fonction de contrôle commune aux terminaux. Selon un mode de réalisation de l'invention, la donnée de contrôle est obtenue en appliquant une fonction de contrôle telle qu'une modification d'un bit d'une donnée d'entrée de la fonction entraîne une modification de la donnée de contrôle. Selon un mode de réalisation de l'invention, la donnée de contrôle est obtenue en appliquant une fonction de contrôle commune aux terminaux, à la donnée d'initialisation calculée localement et à la donnée d'initialisation reçue de l'autre terminal. Selon un mode de réalisation de l'invention, la fonction de contrôle applique une fonction OU exclusif entre la donnée d'initialisation calculée localement et la donnée d'initialisation reçue. Selon un mode de réalisation de l'invention, la fonction de contrôle applique au résultat de la fonction OU exclusif appliquée à la donnée d'initialisation calculée localement et à la donnée d'initialisation reçue, un calcul de condensé ou un calcul de reste d'une division entière, pour limiter la taille de la donnée de contrôle à un certain nombre de chiffres. Selon un mode de réalisation de l'invention, les communications numériques sont établies dans le réseau de communication conformément au protocole IP. Selon un mode de réalisation de l'invention, le procédé comprend des étapes au cours desquelles : un terminal de communication d'un troisième utilisateur détermine une clé locale de chiffrement commune avec l'un des deux terminaux ci-après appelé terminal référent , à partir d'une donnée secrète et d'une donnée d'initialisation reçue sous forme numérique du terminal référent, par l'intermédiaire du réseau de communication, le troisième terminal et le terminal référent exécutent entre eux la phase de sécurisation, et ù le terminal référent transmet au troisième terminal la clé de chiffrement déterminée par les deux terminaux, sous une forme chiffrée en utilisant la clé locale de chiffrement commune déterminée par le troisième terminal et le terminal référent.  According to one embodiment of the invention, the control data is obtained by applying to the common secret data a control function common to the terminals. According to one embodiment of the invention, the control data is obtained by applying a control function such that a modification of a bit of an input data of the function causes a modification of the control data. According to one embodiment of the invention, the control data is obtained by applying a common control function to the terminals, to the locally calculated initialization data item and to the initialization data item received from the other terminal. According to one embodiment of the invention, the control function applies an exclusive OR function between the locally calculated initialization data item and the received initialization data item. According to one embodiment of the invention, the control function applies to the result of the exclusive OR function applied to the locally calculated initialization data item and to the received initialization data, a computation of a condensate or a calculation of the remainder of the invention. an entire division, to limit the size of the control data to a number of digits. According to one embodiment of the invention, the digital communications are established in the communication network according to the IP protocol. According to one embodiment of the invention, the method comprises steps in which: a communication terminal of a third user determines a common encryption local key with one of the two terminals hereafter referred to as the reference terminal, from secret data and initialization data received in digital form from the reference terminal, via the communication network, the third terminal and the reference terminal execute the security phase between each other and the terminal referent transmits to the third terminal the encryption key determined by the two terminals, in an encrypted form using the common local encryption key determined by the third terminal and the referring terminal.

L'invention concerne également un programme d'ordinateur destiné à être exécuté par un terminal relié à au moins un autre terminal par au moins une liaison numérique d'un réseau de communication, conçu pour mettre en oeuvre le procédé défini précédemment, pour sécuriser la génération d'une clé de chiffrement commune au terminal et à l'autre terminal. L'invention concerne également un terminal pour générer de manière sécurisée une clé de chiffrement commune avec au moins un autre terminal de communication, le terminal étant relié à l'autre terminal par au moins une liaison numérique d'un réseau de communication, le terminal comprenant des moyens pour déterminer une clé de chiffrement commune à partir d'une donnée secrète privée et d'une donnée d'initialisation reçue sous forme numérique de l'autre terminal par l'intermédiaire du réseau de communication. Selon l'invention, le terminal comprend : des moyens pour déterminer une donnée de contrôle à partir d'une donnée d'initialisation calculée localement et/ou de la donnée d'initialisation reçue, des moyens pour afficher la donnée de contrôle, et des moyens de validation pour permettre à un utilisateur du terminal de valider la clé de chiffrement commune lorsqu'il existe une correspondance entre la donnée de contrôle affichée par le terminal et une donnée de contrôle reçue d'un utilisateur de l'autre terminal par l'intermédiaire d'un canal de communication analogique, la clé de chiffrement commune n'étant utilisable par le terminal qu'à la suite d'une activation des moyens de validation par l'utilisateur. Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour établir le canal de communication entre les deux utilisateurs, sous forme vocale. Selon un mode de réalisation de l'invention, le canal communication vocale est établi dans le réseau de communication en voix sur IP.  The invention also relates to a computer program intended to be executed by a terminal connected to at least one other terminal by at least one digital link of a communication network, designed to implement the method defined above, to secure the generating an encryption key common to the terminal and to the other terminal. The invention also relates to a terminal for securely generating a common encryption key with at least one other communication terminal, the terminal being connected to the other terminal by at least one digital link of a communication network, the terminal comprising means for determining a common encryption key from a private secret data and initialization data received in digital form from the other terminal through the communication network. According to the invention, the terminal comprises: means for determining a control data item from a locally calculated initialization data item and / or received initialization data, means for displaying the control data item, and validation means for allowing a user of the terminal to validate the common encryption key when there is a correspondence between the control data displayed by the terminal and a control data received from a user of the other terminal by the intermediate of an analog communication channel, the common encryption key being used by the terminal only after activation of the validation means by the user. According to one embodiment of the invention, the terminal comprises means for establishing the communication channel between the two users, in voice form. According to one embodiment of the invention, the voice communication channel is established in the voice over IP communication network.

Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour : calculer la donnée d'initialisation calculée localement à l'aide d'une fonction cryptographique commune avec l'autre terminal, appliquée à la donnée secrète privée, transmettre à l'autre terminal sous forme numérique, la donnée d'initialisation calculée localement, élaborer une donnée secrète commune à partir de la donnée secrète privée et de la donnée d'initialisation reçue, et déterminer à partir de la donnée secrète commune, une clé de chiffrement à utiliser pour chiffrer les communications entre les utilisateurs des deux terminaux. Selon un mode de réalisation de l'invention, la fonction cryptographique est une fonction qui associe à un nombre a le nombre g puissance a modulo N, g et N étant des nombres entiers connus des terminaux. Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour générer aléatoirement la donnée secrète privée. Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour exécuter une fonction de contrôle commune avec l'autre terminal, et fournissant la donnée de contrôle à partir de la donnée secrète commune. Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour exécuter une fonction de contrôle commune avec l'autre terminal et fournissant la donnée de contrôle, la fonction de contrôle étant telle qu'une modification d'un bit d'une donnée d'entrée de la fonction entraîne une modification de la donnée de contrôle. Selon un mode de réalisation de l'invention, la fonction de contrôle est appliquée à la donnée d'initialisation calculée localement et à la donnée d'initialisation reçue de l'autre terminal. Selon un mode de réalisation de l'invention, la fonction de contrôle applique une fonction OU exclusif entre la donnée d'initialisation calculée localement et la donnée d'initialisation reçue. Selon un mode de réalisation de l'invention, la fonction de contrôle applique au résultat de la fonction OU exclusif appliquée à la donnée d'initialisation calculée localement et à la donnée d'initialisation reçue, un calcul de condensé ou un calcul de reste d'une division entière, pour limiter la taille de la donnée de contrôle à un certain nombre de chiffres. Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour transmettre à un second autre terminal la clé de chiffrement commune sous une forme chiffrée, et des moyens de chiffrement de la clé de chiffrement commune, utilisant une clé locale de chiffrement commune au terminal et au second autre terminal. Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour élaborer la clé locale de chiffrement commune au terminal et au second autre terminal, à partir d'une donnée secrète privée et d'une donnée d'initialisation reçue du second autre terminal, et des moyens pour permettre à l'utilisateur de valider la clé locale de chiffrement. Selon un mode de réalisation de l'invention, le terminal comprend des moyens pour recevoir d'un autre terminal une clé générale de chiffrement, sous une forme chiffrée, et des moyens pour déchiffrer la clé générale de chiffrement en utilisant la clé de chiffrement commune au terminal et à l'autre terminal.  According to one embodiment of the invention, the terminal comprises means for: calculating the initialization data computed locally using a cryptographic function common to the other terminal, applied to the private secret datum, transmitting to the other terminal in digital form, the locally calculated initialization data, developing a common secret data from the private secret data and the initialization data received, and determining from the common secret data, a key of encryption to use to encrypt communications between users of both terminals. According to one embodiment of the invention, the cryptographic function is a function that associates a number a with the number modulo N, where g and N are known integers of the terminals. According to one embodiment of the invention, the terminal comprises means for randomly generating the private secret data. According to one embodiment of the invention, the terminal comprises means for performing a common control function with the other terminal, and providing the control data from the common secret data. According to one embodiment of the invention, the terminal comprises means for performing a common control function with the other terminal and providing the control data, the control function being such that a modification of a bit of an input data of the function causes a modification of the control data. According to one embodiment of the invention, the control function is applied to the locally calculated initialization data item and to the initialization data item received from the other terminal. According to one embodiment of the invention, the control function applies an exclusive OR function between the locally calculated initialization data item and the received initialization data item. According to one embodiment of the invention, the control function applies to the result of the exclusive OR function applied to the locally calculated initialization data item and to the received initialization data, a computation of a condensate or a calculation of the remainder of the invention. an entire division, to limit the size of the control data to a number of digits. According to one embodiment of the invention, the terminal comprises means for transmitting to a second other terminal the common encryption key in an encrypted form, and encryption means for the common encryption key, using a local encryption key common to the terminal and the other second terminal. According to one embodiment of the invention, the terminal comprises means for developing the local encryption key common to the terminal and the second other terminal, from a private secret datum and initialization data received from the second other terminal, and means for allowing the user to validate the local encryption key. According to one embodiment of the invention, the terminal comprises means for receiving from another terminal a general encryption key, in encrypted form, and means for decrypting the general encryption key by using the common encryption key. at the terminal and at the other terminal.

Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante d'un mode de réalisation de l'invention, faite à titre non limitatif en relation avec les figures jointes illustrant le fonctionnement de l'invention dans un mode particulier de réalisation, et dans lesquelles : la figure 1 représente schématiquement différentes étapes d'un 25 procédé de sécurisation selon l'invention, la figure 2 représente schématiquement l'application du procédé selon l'invention à trois utilisateurs. Sur la figure 1, un premier utilisateur A disposant d'un terminal de communication PA et un second utilisateur B disposant d'un terminal de 30 communication PB souhaitent établir entre eux une communication sécurisée. Chacun des terminaux PA, PB comprend des moyens pour établir des communications au moins numériques et vocales avec l'autre terminal par l'intermédiaire d'au moins un réseau de communication Net. Pour les communications vocales, les terminaux comprennent chacun un 35 microphone et des écouteurs ou des haut-parleurs. Les communications numériques peuvent être établies conformément au protocole IP (Internet Protocol). Les communications vocales peuvent être établies conformément au protocole voix sur IP dans le réseau de communication, ou par l'intermédiaire d'un autre réseau de communication comme par exemple un réseau téléphonique terrestre ou mobile.  These and other objects, features and advantages of the present invention will be set forth in more detail in the following description of an embodiment of the invention, given in a non-limiting manner in relation to the accompanying figures illustrating the operation of the invention. the invention in a particular embodiment, and in which: Figure 1 shows schematically different steps of a securing method according to the invention, Figure 2 shows schematically the application of the method according to the invention to three users . In FIG. 1, a first user A having a communication terminal PA and a second user B having a communication terminal PB wish to establish secure communication between them. Each of the terminals PA, PB comprises means for establishing at least digital and voice communications with the other terminal via at least one Net communication network. For voice communications, the terminals each include a microphone and headphones or loudspeakers. Digital communications can be established in accordance with the Internet Protocol (IP). Voice communications may be established in accordance with the VoIP protocol in the communication network, or via another communication network such as a terrestrial or mobile telephone network.

Pour sécuriser les communications entre les deux terminaux, le terminal PA du premier utilisateur A génère une donnée aléatoire a à l'aide d'une fonction de génération de données aléatoires Rnd, et calcule à l'aide d'une fonction cryptographique Algl une donnée d'initialisation Ga qu'il envoie dans un message d'initialisation numérique au terminal PB du second utilisateur B via le réseau de communication Net. De son côté, le terminal PB génère une donnée aléatoire b à l'aide d'une fonction de génération de données aléatoires Rnd, et calcule à l'aide d'une fonction cryptographique identique à la fonction Alg1 utilisée par le poste de travail PA, une donnée d'initialisation Gb qu'il envoie dans un message d'initialisation numérique au terminal PA via le réseau de communication Net. Le terminal PA du premier utilisateur A reçoit par le réseau de communication Net un message d'initialisation comprenant une donnée d'initialisation Gb' qui est en principe la donnée d'initialisation Gb envoyée par le terminal PB. Toutefois, on ne sait pas si le message d'initialisation a été modifié lors de la communication. On ne sait donc pas si la donnée d'initialisation Gb' ainsi reçue par le terminal PA est identique à la donnée d'initialisation Gb qui a été envoyée par le terminal PB. Symétriquement, le terminal PB reçoit par le réseau de communication Net un message d'initialisation qui contient en principe la donnée d'initialisation Ga envoyée par le terminal PA. Toutefois, on ne sait pas si le message d'initialisation a été modifié lors de la communication. On ne sait donc pas si la donnée d'initialisation Ga' ainsi reçue par leterminal PB est identique à celle Ga qui a été envoyée par le terminal PA.  In order to secure the communications between the two terminals, the PA terminal of the first user A generates a random data item a by means of a random data generation function Rnd, and calculates with a cryptographic function Algl a data item of initialization Ga that it sends in a digital initialization message to the terminal PB of the second user B via the communication network Net. For its part, the terminal PB generates a random data item b using a random data generation function Rnd, and calculates with the aid of a cryptographic function identical to the function Alg1 used by the workstation PA. , an initialization data Gb that it sends in a digital initialization message to the terminal PA via the communication network Net. The terminal PA of the first user A receives via the communication network Net an initialization message comprising an initialization data Gb 'which is in principle the initialization data Gb sent by the terminal PB. However, it is not known if the initialization message was changed during the communication. It is therefore not known whether the initialization data Gb 'thus received by the terminal PA is identical to the initialization data Gb that has been sent by the terminal PB. Symmetrically, the terminal PB receives via the communication network Net an initialization message which contains in principle the initialization data Ga sent by the terminal PA. However, it is not known if the initialization message was changed during the communication. It is therefore not known whether the initialization data Ga 'thus received by leterminal PB is identical to that Ga which has been sent by the terminal PA.

Par ailleurs, le terminal PA calcule, à l'aide d'une fonction cryptographique Alg2 appliquée à la donnée aléatoire a et à la donnée Gb' qu'il a reçue via le réseau de communication Net, une donnée secrète Gab' qu'il utilisera pour déterminer une clé de chiffrement permettant de chiffrer les communications à destination du terminal PB.  Moreover, the terminal PA calculates, using a cryptographic function Alg2 applied to the random data item a and to the data item Gb 'that it has received via the communication network Net, a secret data item Gab' that it will use to determine an encryption key for encrypting communications to the PB terminal.

Symétriquement, le terminal PB calcule une donnée secrète Gba' à l'aide d'une fonction cryptographique identique à la fonction Alg2, appliquée à la donnée aléatoire b et à la donnée d'initialisation Ga' qu'il a reçue via le réseau de communication Net. La donnée secrète Gba' sera ensuite utilisée par le terminal PB pour déterminer une clé de chiffrement permettant de chiffrer les communications à destination du terminal PA.  Symmetrically, the terminal PB calculates a secret data Gba 'using a cryptographic function identical to the function Alg2, applied to the random data item b and to the initialization data Ga' that it has received via the data network. Net communication. The secret data Gba 'will then be used by the terminal PB to determine an encryption key for encrypting communications to the terminal PA.

Selon l'invention, le terminal PA calcule une donnée de contrôle Ca à l'aide d'une fonction de contrôle FC, appliquée à la donnée d'initialisation Ga qu'il a envoyée au second terminal PB, et à la donnée d'initialisation Gb' qu'il a reçue via le réseau de communication Net. Le terminal PA affiche ensuite la donnée de contrôle Ca ainsi obtenue.  According to the invention, the terminal PA calculates a control data Ca by means of a control function FC, applied to the initialization data Ga that it has sent to the second terminal PB, and to the data item. initialization Gb 'received via the communication network Net. The terminal PA then displays the control data Ca thus obtained.

Symétriquement, le terminal PB calcule une donnée de contrôle Cb à l'aide de la même fonction de contrôle FC que celle utilisée par le terminal PA, appliquée à la donnée d'initialisation Gb qu'il a envoyée au terminal PA, et à la donnée d'initialisation Ga' qu'il a reçue via le réseau de communication Net. Le terminal PB affiche ensuite la donnée de contrôle Cb ainsi obtenue. Il suffit alors que l'un deux utilisateurs, par exemple A, utilise un canal de communication vocal CV pour transmettre oralement au second utilisateur B la donnée de contrôle Ca affichée par son terminal PA, dans un message vocal de contrôle du type : La donnée de contrôle qui s'affiche sur mon écran est la suivante ... . Au reçu du message de contrôle transmis par le canal vocal CV, le second utilisateur B peut vérifier si la donnée de contrôle Ca qui lui a été ainsi transmise vocalement est identique à la donnée de contrôle Cb qui s'affiche sur son terminal PB. Si celle-ci est différente, cela signifie que la communication est vraisemblablement écoutée par une attaque Man-in-the-middle . Par contre, si les données de contrôle Ca, Cb sont identiques, cela signifie que les données d'initialisation reçues Ga', Gb' sont très probablement identiques aux données d'initialisation Ga, Gb transmises par le réseau Net. Les terminaux PA, PB comprennent une commande de validation permettant aux utilisateurs A, B de valider la donnée secrète commune Gab qui est alors très probablement égale à Gab' ou Gba' lorsque, d'après les messages de contrôle échangés vocalement par les deux utilisateurs A, B, les données de contrôle Ca, Cb affichées par les terminaux PA, PB sont identiques. Lorsque la donnée Gab est validée par les deux utilisateurs, la clé de chiffrement obtenue à partir de la donnée Gab est considérée comme sûre et peut être utilisée en toute sécurité par les terminaux A, B, par exemple pour chiffrer une communication numérique et/ou vocale entre les utilisateurs A, B. La sécurité est accrue lorsque la fonction de contrôle FC utilisée pour calculer les données de contrôle Ca, Cb est telle qu'une modification d'un bit de l'un ou de l'autre des données d'initialisation Ga, Gb modifie la valeur de la donnée de contrôle Ca, Cb. Dans un mode particulier de réalisation de l'invention, la donnée de contrôle Ca, Cb est un nombre à quelques chiffres (par exemple 6 ou plus si une sécurité supplémentaire est requise). La fonction de contrôle FC permettant d'obtenir les nombres Ca, Cb enchaîne les deux étapes suivantes. La première étape consiste à appliquer un opérateur Ou exclusif (XOR) bit à bit entre la donnée d'initialisation Ga, Gb générée par chaque terminal PA, PB et la donnée d'initialisation Gb', Ga' reçue du terminal de l'autre utilisateur. On rappelle que le résultat de l'opérateur XOR appliqué à deux bits est 0 si les deux bits sont égaux, et 1 dans le cas contraire. Dans une seconde étape, on calcule le reste modulo un million (pour 6 chiffres décimaux) du résultat de cette première étape. Plus généralement, la valeur du modulo est choisie égale à 10 puissance n, n étant le nombre de chiffres décimaux requis pour la donnée de contrôle. Ce mode particulier de calcul de la donnée de contrôle Ca, Cb assure une quasi équiprobabilité de toutes les suites de 6 chiffres décimaux (ou plus généralement de n chiffres décimaux). Il y a alors une chance sur un million que les données de contrôle Ca, Cb soient égales lorsque les données d'initialisation calculées et reçues sont différentes.  Symmetrically, the terminal PB calculates a control data Cb using the same control function FC as that used by the terminal PA, applied to the initialization data Gb that it sent to the terminal PA, and to the initialization data Ga 'he received via the communication network Net. The terminal PB then displays the control data Cb thus obtained. It is then sufficient that one of two users, for example A, uses a voice communication channel CV to transmit orally to the second user B the control data Ca displayed by its terminal PA, in a control voice message of the type: The data The control that appears on my screen is as follows .... On receipt of the control message transmitted by the voice channel CV, the second user B can check whether the control data Ca which has been so transmitted to him vocally is identical to the control data Cb which is displayed on its terminal PB. If it is different, it means that the communication is likely being listened to by a Man-in-the-middle attack. On the other hand, if the control data Ca, Cb are identical, it means that the initialization data received Ga ', Gb' are very probably identical to the initialization data Ga, Gb transmitted by the net network. The terminals PA, PB include a validation command allowing the users A, B to validate the common secret data Gab which is then most probably equal to Gab 'or Gba' when, according to the control messages exchanged vocally by the two users A, B, the control data Ca, Cb displayed by the terminals PA, PB are identical. When the data Gab is validated by both users, the encryption key obtained from the data Gab is considered safe and can be used safely by the terminals A, B, for example to encrypt a digital communication and / or between the users A, B. The security is increased when the control function FC used to calculate the control data Ca, Cb is such that a modification of one bit of one or the other of the data of initialization Ga, Gb modifies the value of the control data Ca, Cb. In a particular embodiment of the invention, the control data Ca, Cb is a few digits (for example 6 or more if additional security is required). The control function FC for obtaining the numbers Ca, Cb connects the two following steps. The first step consists of applying a bitwise exclusive OR operator (XOR) between the initialization data Ga, Gb generated by each terminal PA, PB and the initialization data Gb ', Ga' received from the terminal of the other user. Remember that the result of the operator XOR applied to two bits is 0 if the two bits are equal, and 1 in the opposite case. In a second step, the remainder modulo one million (for 6 decimal digits) of the result of this first step is calculated. More generally, the modulo value is chosen equal to 10 power n, where n is the number of decimal digits required for the control data. This particular mode of calculation of the control data Ca, Cb ensures a quasi equiprobability of all the sequences of 6 decimal digits (or more generally of n decimal digits). There is then a one in a million chance that the control data Ca, Cb are equal when the calculated and received initialization data are different.

Bien entendu, d'autres fonctions de calcul de la donnée de contrôle Ca, Cb peuvent être utilisées, sans sortir du cadre de la présente invention. La sécurité est accrue lorsque la fonction de calcul de la donnée de contrôle Ca, Cb est telle qu'une modification d'un bit de l'une ou de l'autre des données d'initialisation modifie la valeur de la donnée de contrôle.  Of course, other functions of calculation of the control data Ca, Cb can be used, without departing from the scope of the present invention. The security is increased when the calculation function of the control data Ca, Cb is such that a modification of a bit of one or the other of the initialization data modifies the value of the control data.

On notera que dans le mode particulier de réalisation ici présenté, la détermination de la donnée de contrôle Ca, Cb ne met en oeuvre que des informations ayant déjà transité par le réseau. La connaissance de cette donnée par un attaquant ne fournit à celui-ci aucune information supplémentaire par rapport aux informations auxquelles il accède déjà par l'écoute du réseau. La mise en oeuvre de ce protocole n'introduit donc aucune faiblesse par rapport au protocole de Diffie Hellman et à ses dérivés.  Note that in the particular embodiment presented here, the determination of the control data Ca, Cb implements only information that has already passed through the network. The knowledge of this data by an attacker does not provide him with any additional information in relation to the information he already accesses by listening to the network. The implementation of this protocol does not introduce any weakness compared to the Diffie Hellman protocol and its derivatives.

Ce ne serait pas le cas si la donnée de contrôle était calculée à partir de tout ou partie de la donnée commune Gab servant à déterminer les clés de chiffrement. En effet, dans cette dernière hypothèse, une information sur la donnée de contrôle pourrait introduire une faiblesse dans le chiffrement.  This would not be the case if the control data was calculated from all or part of the common data item Gab used to determine the encryption keys. Indeed, in the latter case, information on the control data could introduce a weakness in the encryption.

L'invention ainsi décrite peut être généralisée à un nombre quelconque d'utilisateurs désirant se mettre ensemble en communication, ci-après appelée conférence . Sur la figure 2, les deux premiers utilisateurs en communication A, B mettent en oeuvre le protocole décrit précédemment pour déterminer une donnée secrète commune Gab qui servira à déterminer une clé de chiffrement. La clé de chiffrement ainsi obtenue sera alors la clé générale de chiffrement utilisée par tous les participants à la conférence. Chaque nouvel arrivant C a un interlocuteur de référence A parmi les utilisateurs déjà arrivés A, B (donc connaissant la clé générale de chiffrement déterminée sur la base de la donnée secrète Gab). Le protocole décrit précédemment est alors mis en oeuvre entre le nouvel arrivant C et son interlocuteur de référence A, en vue de générer une donnée secrète Gac servant à déterminer une clé de chiffrement locale. Ainsi, les terminaux PA et PC génèrent des données aléatoires a et c, calculent en appliquant la même fonction cryptographique Alg1 une donnée d'initialisation Ga, Gc qu'ils s'échangent par l'intermédiaire du réseau Net. Les terminaux PA et PC calculent ensuite une donnée de contrôle Ca, Cc en appliquant une fonction de contrôle à la donnée d'initialisation générée Ga, Gc et à la donnée d'initialisation reçue Gc', Ga', et affichent les données de contrôle calculées. L'un et/ou l'autre des utilisateurs A et C transmet ensuite vocalement par un canal CV la valeur de la donnée de contrôle Ca, Cc affichée sur son terminal dans un message de contrôle, pour vérifier si les données de contrôle affichées par les deux terminaux PA, PC sont identiques. Si les données de contrôle Ca, Cc sont identiques, les terminaux PA, PC calculent une donnée secrète commune Gac', Gca' et les utilisateurs A et C valident la donnée secrète commune Gac (= Gac' = Gca') à l'aide d'une commande de validation offerte par les terminaux PA, PC. A la suite de la validation de la donnée Gac, les terminaux PA, PC déterminent à partir de la donnée Gac qui a ainsi été sécurisée, une clé de chiffrement appelée clé locale . La clé locale est ensuite utilisée par le terminal PA de l'interlocuteur de référence A pour chiffrer la clé générale de chiffrement ou la donnée secrète Gab à l'aide d'une fonction de chiffrement Alg3, et pour l'envoyer de façon sécurisée au terminal PC du nouvel utilisateur C. Etant le seul avec le terminal PA à connaître la clé locale de chiffrement, le terminal PC peut ainsi déchiffrer la clé générale de chiffrement ou la donnée secrète Gab en utilisant une fonction de déchiffrement Alg3' correspondant à la fonction de chiffrement Alg3. Si le terminal PC a déchiffré la donnée secrète Gab, il dispose la clé générale de chiffrement et peut donc participer à la conférence. Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation et d'applications. En particulier, il n'est pas nécessaire que chacun des deux utilisateurs transmette vocalement la donnée de contrôle affichée par son terminal. En effet, il suffit pour s'assurer que la communication ne fait pas l'objet d'une attaque de type Man-in-the-middle qu'un seul des deux utilisateurs lise la donnée de contrôle affichée sur son terminal et que l'autre utilisateur vérifie que la donnée de contrôle reçue vocalement corresponde à celle qui est affichée sur son terminal. D'autres fonctions que la fonction OU exclusif combinée à une fonction modulo peuvent être utilisées pour déterminer la donnée de contrôle. On peut par exemple appliquer une fonction de hachage telle que MD5 ou SHA1, à l'une ou l'autre des données d'initialisation reçues ou élaborées localement, ou à la donnée secrète commune, ou encore au résultat de la fonction OU exclusif appliqué aux données d'initialisation reçues et élaborées localement.  The invention thus described may be generalized to any number of users wishing to put themselves together in communication, hereinafter referred to as a conference. In FIG. 2, the first two users in communication A, B implement the protocol described above to determine a common secret data item Gab that will be used to determine an encryption key. The encryption key thus obtained will then be the general encryption key used by all participants in the conference. Each newcomer C has a reference interlocutor A among the users already arrived A, B (thus knowing the general encryption key determined on the basis of the secret data Gab). The protocol described above is then implemented between the newcomer C and its reference interlocutor A, to generate a secret data Gac used to determine a local encryption key. Thus, PA and PC terminals generate random data a and c, calculate by applying the same cryptographic function Alg1 initialization data Ga, Gc they exchange via the Net network. The PA and PC terminals then calculate a control data Ca, Cc by applying a control function to the generated initialization data Ga, Gc and to the received initialization data Gc ', Ga', and display the control data. calculated. One and / or the other of the users A and C then vocally transmits by a CV channel the value of the control data Ca, Cc displayed on its terminal in a control message, to check whether the control data displayed by the two terminals PA, PC are identical. If the control data Ca, Cc are identical, the terminals PA, PC calculate a common secret data Gac ', Gca' and the users A and C validate the common secret data Gac (= Gac '= Gca') using a validation command offered by the PA, PC terminals. Following the validation of the data Gac, the terminals PA, PC determine from the Gac data which has been secured, an encryption key called local key. The local key is then used by the PA terminal of the reference interlocutor A to encrypt the general encryption key or the secret data item Gab using an encryption function Alg3, and to send it securely to the the new user's PC terminal C. Being the only one with the terminal PA to know the local encryption key, the terminal PC can thus decrypt the general encryption key or the secret data item Gab by using a decryption function Alg3 'corresponding to the function Alg3 encryption. If the PC terminal has decrypted the secret data Gab, it has the general encryption key and can therefore participate in the conference. It will be apparent to those skilled in the art that the present invention is susceptible to various embodiments and applications. In particular, it is not necessary that each of the two users vocally transmit the control data displayed by its terminal. Indeed, it is sufficient to ensure that the communication is not the subject of a Man-in-the-middle attack that only one of the two users reads the control data displayed on its terminal and that the Another user verifies that the control data received vocally corresponds to that which is displayed on his terminal. Other functions than the exclusive OR function combined with a modulo function can be used to determine the control data. For example, a hash function such as MD5 or SHA1 can be applied to any of the received or locally generated initialization data, or to the shared secret data, or to the result of the exclusive OR function applied. initialization data received and developed locally.

Il n'est pas non plus nécessaire que les données de contrôle affichées par les deux terminaux soient identiques. Il importe simplement que les utilisateurs puissent vérifier l'existence d'une correspondance entre la donnée de contrôle affichée et la donnée de contrôle reçue de l'autre utilisateur.  Nor is it necessary for the control data displayed by the two terminals to be identical. It is simply important for the users to be able to verify the existence of a correspondence between the displayed control data and the control data received from the other user.

L'invention n'est pas limitée à une transmission vocale de la donnée de contrôle mais s'étend à toute transmission de cette donnée effectuée sous une autre forme qu'une forme numérique. On peut en effet envisager que l'écran de chacun des terminaux soit filmé par une caméra numérique, les images captées par la caméra étant transmises au terminal de l'autre utilisateur pour y être affichées. De cette manière, chacun des utilisateurs peut vérifier sur l'écran de son terminal, l'identité entre les données de contrôle affichées par les deux terminaux. Pour pouvoir accéder à la communication entre les deux utilisateurs, l'attaquant devra modifier à la volée les images transmises par au moins l'un des deux terminaux. La transmission des données de contrôle peut être effectuée par le même réseau (par exemple en voix sur IP) ou par un autre réseau que celui utilisé pour transmettre les données d'initialisation. Ainsi, les données de contrôle peuvent être transmises par un réseau téléphonique terrestre ou mobile. Aussi, l'expression canal de communication analogique employée dans la description qui précède et dans les revendications annexées désigne tout moyen de communication recevant en entrée des données sous une forme d'origine analogique (son, vidéo ou autre) et restituant en sortie les données transmises sous leur forme d'origine, les données étant transmises dans un format quelconque, analogique ou numérique, par un ou plusieurs réseaux de communication.  The invention is not limited to a voice transmission of the control data but extends to any transmission of this data in another form than a digital form. We can indeed consider that the screen of each of the terminals is filmed by a digital camera, the images captured by the camera being transmitted to the terminal of the other user to be displayed. In this way, each user can check on the screen of his terminal, the identity between the control data displayed by the two terminals. To be able to access the communication between the two users, the attacker will have to modify on the fly the images transmitted by at least one of the two terminals. The transmission of the control data can be done by the same network (for example voice over IP) or by another network than that used to transmit the initialization data. Thus, the control data can be transmitted by a terrestrial or mobile telephone network. Also, the expression analog communication channel used in the foregoing description and in the appended claims designates any means of communication receiving as input data in a form of analog origin (sound, video or other) and outputting the data transmitted in their original form, the data being transmitted in any format, analog or digital, by one or more communication networks.

L'invention ne s'applique pas nécessairement à des protocoles de sécurisation faisant intervenir une donnée aléatoire qui est générée lors de l'établissement de la communication. Elle s'applique plus généralement à tout protocole de sécurisation utilisant une clé secrète commune qui est élaborée au moment de l'établissement de la communication entre les deux utilisateurs.  The invention does not necessarily apply to security protocols involving random data that is generated during the establishment of the communication. It applies more generally to any security protocol using a common secret key that is developed at the time of establishment of communication between the two users.

Claims (30)

Revendicationsclaims 1. Procédé pour générer d'une manière sécurisée une clé de chiffrement commune à au moins deux utilisateurs (A, B) chacun équipés d'au moins un terminal de communication (PA, PB), les terminaux étant reliés entre eux par au moins un réseau de communication (Net) pour communiquer entre eux numériquement, le procédé comprenant des étapes au cours desquelles un terminal de chacun des utilisateurs détermine une clé de chiffrement commune (Gab) à partir d'une donnée secrète privée (a, b) et d'une donnée d'initialisation (Gb', Ga') reçue sous forme numérique de l'autre terminal par l'intermédiaire du réseau de communication, caractérisé en ce qu'il comporte une phase de sécurisation comprenant : des étapes exécutées par chacun des terminaux (PA, PB) et consistant à déterminer une donnée de contrôle (Ca, Cb) à partir d'une donnée d'initialisation calculée localement (Ga, Gb) et/ou de la donnée d'initialisation reçue (Gb', Ga'), et à afficher la donnée de contrôle, et des étapes de transmission par au moins l'un des utilisateurs (A, B) à l'autre utilisateur de la donnée de contrôle affichée par son terminal, par l'intermédiaire d'un canal de communication analogique (CV), et de vérification par l'autre utilisateur qu'il existe une correspondance entre la donnée de contrôle affichée sur son terminal et la donnée de contrôle reçue de l'autre utilisateur par l'autre canal de communication.  A method for generating in a secure manner an encryption key common to at least two users (A, B) each equipped with at least one communication terminal (PA, PB), the terminals being connected to each other by at least a communication network (Net) for communicating with each other numerically, the method comprising steps in which a terminal of each of the users determines a common encryption key (Gab) from a private secret data (a, b) and an initialization data item (Gb ', Ga') received in digital form from the other terminal via the communication network, characterized in that it comprises a security phase comprising: steps executed by each terminals (PA, PB) and consisting in determining a control data (Ca, Cb) from a locally calculated initialization datum (Ga, Gb) and / or the received initialization datum (Gb ', Ga '), and to display the gift control, and transmission steps by at least one of the users (A, B) to the other user of the control data displayed by his terminal, via an analog communication channel (CV ), and verification by the other user that there is a correspondence between the control data displayed on its terminal and the control data received from the other user by the other communication channel. 2. Procédé selon la revendication 1, dans lequel la donnée de contrôle (Ca, Cb) est transmise par un canal de communication vocale (CV) 25 entre les deux utilisateurs (A, B).  The method of claim 1, wherein the control data (Ca, Cb) is transmitted by a voice communication channel (CV) between the two users (A, B). 3. Procédé selon la revendication 2, dans lequel le canal communication vocale (CV) est établi dans le réseau de communication (Net) en voix sur IP.  3. Method according to claim 2, wherein the voice communication channel (CV) is established in the communication network (Net) voice over IP. 4. Procédé selon la revendication 1 ou 2, dans lequel la donnée de contrôle (Ca, Cb) est transmise entre les deux utilisateurs par un réseau distinct du réseau (Net) ayant transmis les données d'initialisation (Ga, Gb). 30  4. The method of claim 1 or 2, wherein the control data (Ca, Cb) is transmitted between the two users by a network distinct from the network (Net) having transmitted the initialization data (Ga, Gb). 30 5. Procédé selon l'une des revendications 1 à 4, comprenant des étapes exécutées par chacun des terminaux (PA, PB) des deux utilisateurs (A, B) et consistant à : calculer la donnée d'initialisation calculée localement (Ga, Gb) à l'aide d'une fonction cryptographique commune (Alg1) appliquée à la donnée secrète privée (a, b), transmettre à l'autre terminal (PA, PB) sous forme numérique, la donnée d'initialisation calculée localement, élaborer une donnée secrète commune (Gab) à partir de la donnée secrète privée (a, b) et de la donnée d'initialisation reçue (Gb', Ga'), et déterminer à partir de la donnée secrète commune, une clé de chiffrement à utiliser pour chiffrer les communications entre les deux utilisateurs.  5. Method according to one of claims 1 to 4, comprising steps performed by each of the terminals (PA, PB) of the two users (A, B) and consisting of: calculating the initialization data calculated locally (Ga, Gb) ) using a common cryptographic function (Alg1) applied to the private secret data (a, b), to transmit to the other terminal (PA, PB) in digital form, the locally calculated initialization data, elaborate a common secret data (Gab) from the private secret data (a, b) and the received initialization data (Gb ', Ga'), and determining from the common secret data, an encryption key to use to encrypt communications between the two users. 6. Procédé selon la revendication 5, dans lequel la fonction cryptographique (Alg1) est une fonction qui associe à un nombre a le nombre g puissance a modulo N, g et N étant des nombres entiers connus des terminaux.  6. The method according to claim 5, wherein the cryptographic function (Alg1) is a function that associates a number a with the number g power modulo N, g and N being integers known terminals. 7. Procédé selon l'une des revendications 1 à 6, dans lequel la 20 donnée secrète privée (a, b) d'au moins un des terminaux (PA, PB) est générée aléatoirement.  7. Method according to one of claims 1 to 6, wherein the private secret data (a, b) of at least one of the terminals (PA, PB) is generated randomly. 8. Procédé selon l'une des revendications 1 à 7, dans lequel la donnée de contrôle (Ca, Cb) est obtenue en appliquant à la donnée secrète 25 commune (Gab) une fonction de contrôle (FC) commune aux terminaux (PA, PB).  8. Method according to one of claims 1 to 7, wherein the control data (Ca, Cb) is obtained by applying to the common secret data (Gab) a control function (FC) common to the terminals (PA, PB). 9. Procédé selon l'une des revendications 1 à 7, dans lequel la donnée de contrôle (Ca, Cb) est obtenue en appliquant une fonction de 30 contrôle (FC) telle qu'une modification d'un bit d'une donnée d'entrée de la fonction entraîne une modification de la donnée de contrôle.  9. Method according to one of claims 1 to 7, wherein the control data (Ca, Cb) is obtained by applying a control function (FC) such as a modification of a bit of a datum d input of the function causes a modification of the control data. 10. Procédé selon l'une des revendications 1 à 7, dans lequel la donnée de contrôle (Ca, Cb) est obtenue en appliquant une fonction de 35 contrôle (FC) commune aux terminaux, à la donnée d'initialisation calculéelocalement (Ga, Gb) et à la donnée d'initialisation (Ga', Gb') reçue de l'autre terminal.  10. Method according to one of claims 1 to 7, wherein the control data (Ca, Cb) is obtained by applying a control function (FC) common to the terminals, to the locally calculated initialization data (Ga, Gb) and the initialization data (Ga ', Gb') received from the other terminal. 11. Procédé selon la revendication 10, dans lequel la fonction de 5 contrôle (FC) applique une fonction OU exclusif entre la donnée d'initialisation calculée localement (Ga, Gb) et la donnée d'initialisation reçue (Ga', Gb').  The method of claim 10, wherein the control function (FC) applies an exclusive OR function between the locally calculated initialization data (Ga, Gb) and the received initialization data (Ga ', Gb'). . 12. Procédé selon la revendication 11, dans lequel la fonction de 10 contrôle (FC) applique au résultat de la fonction OU exclusif appliquée à la donnée d'initialisation calculée localement (Ga, Gb) et à la donnée d'initialisation reçue (Ga', Gb'), un calcul de condensé ou un calcul de reste d'une division entière, pour limiter la taille de la donnée de contrôle (Ca, Cb) à un certain nombre de chiffres. 15  The method of claim 11, wherein the control function (FC) applies to the result of the exclusive OR function applied to the locally calculated initialization data (Ga, Gb) and to the received initialization data (Ga ', Gb'), a condensed calculation or a remainder calculation of an integer division, to limit the size of the control data (Ca, Cb) to a number of digits. 15 13. Procédé selon l'une des revendications 1 à 12, dans lequel les communications numériques sont établies dans le réseau de communication (Net) conformément au protocole IP. 20  Method according to one of claims 1 to 12, wherein the digital communications are established in the communication network (Net) according to the IP protocol. 20 14. Procédé selon l'une des revendications 1 à 13, comprenant des étapes au cours desquelles : û un terminal de communication (PC) d'un troisième utilisateur (C) détermine une clé locale de chiffrement commune (Gac) avec l'un des deux terminaux (PA, PB) ci-après appelé terminal référent (PA), à 25 partir d'une donnée secrète (c) et d'une donnée d'initialisation (Ga') reçue sous forme numérique du terminal référent, par l'intermédiaire du réseau de communication (Net), le troisième terminal (PC) et le terminal référent (PA) exécutent entre eux la phase de sécurisation, et 30 le terminal référent transmet au troisième terminal la clé de chiffrement (Gab) déterminée par les deux terminaux (PA, PB), sous une forme chiffrée en utilisant la clé locale de chiffrement commune (Gac) déterminée par le troisième terminal et le terminal référent.  14. Method according to one of claims 1 to 13, comprising steps in which: a communication terminal (PC) of a third user (C) determines a local encryption key (Gac) with one of the two terminals (PA, PB), hereinafter referred to as the reference terminal (PA), from a secret data item (c) and an initialization data item (Ga ') received in digital form from the reference terminal, by via the communication network (Net), the third terminal (PC) and the reference terminal (PA) execute the security phase between them, and the reference terminal transmits to the third terminal the encryption key (Gab) determined by the two terminals (PA, PB), in an encrypted form using the common local encryption key (Gac) determined by the third terminal and the referring terminal. 15. Programme d'ordinateur destiné à être exécuté par un terminal (PA, PB) relié à au moins un autre terminal (PB, PA) par au moins une liaison numérique d'un réseau de communication (Net), caractérisé en ce qu'il est conçu pour mettre en oeuvre le procédé 5 selon l'une des revendications 1 à 14 pour sécuriser la génération d'une clé de chiffrement commune au terminal (PA) et à l'autre terminal (PB).  15. Computer program intended to be executed by a terminal (PA, PB) connected to at least one other terminal (PB, PA) by at least one digital link of a communication network (Net), characterized in that it is designed to implement the method 5 according to one of claims 1 to 14 to secure the generation of an encryption key common to the terminal (PA) and the other terminal (PB). 16. Terminal (PA) pour générer de manière sécurisée une clé de chiffrement commune avec au moins un autre terminal de communication l0 (PB), le terminal étant relié à l'autre terminal par au moins une liaison numérique d'un réseau de communication (Net), le terminal comprenant des moyens pour déterminer une clé de chiffrement commune (Gab) à partir d'une donnée secrète privée (a) et d'une donnée d'initialisation (Gb') reçue sous forme numérique de l'autre terminal par l'intermédiaire du réseau de 15 communication, caractérisé en ce que le terminal (PA) comprend : des moyens pour déterminer une donnée de contrôle (Ca) à partir d'une donnée d'initialisation calculée localement (Ga) et/ou de la donnée d'initialisation reçue (Gb'), 20 des moyens pour afficher la donnée de contrôle, et des moyens de validation pour permettre à un utilisateur (A) du terminal de valider la clé de chiffrement commune (Gab) lorsqu'il existe une correspondance entre la donnée de contrôle affichée par le terminal et une donnée de contrôle (Cb) reçue d'un utilisateur (B) de l'autre terminal 25 (PB) par l'intermédiaire d'un canal de communication analogique (CV), la clé de chiffrement commune n'étant utilisable par le terminal qu'à la suite d'une activation des moyens de validation par l'utilisateur.  16. Terminal (PA) for securely generating a common encryption key with at least one other communication terminal 10 (PB), the terminal being connected to the other terminal by at least one digital link of a communication network (Net), the terminal comprising means for determining a common encryption key (Gab) from a private secret data item (a) and an initialization data item (Gb ') received in digital form from the other terminal through the communication network, characterized in that the terminal (PA) comprises: means for determining a control data (Ca) from a locally calculated initialization data (Ga) and / or received initialization data (Gb '), means for displaying the control data, and validation means for allowing a user (A) of the terminal to validate the common encryption key (Gab) when there is a correspondence between the data of control displayed by the terminal and a control data (Cb) received from a user (B) of the other terminal (PB) via an analog communication channel (CV), the encryption key common terminal being usable by the terminal only after activation of the validation means by the user. 17. Terminal selon la revendication 16, comprenant des moyens pour 30 établir le canal de communication (CV) entre les deux utilisateurs (A, B), sous forme vocale.  Terminal according to claim 16, comprising means for establishing the communication channel (CV) between the two users (A, B), in voice form. 18. Terminal selon la revendication 17, dans lequel le canal communication vocale (CV) est établi dans le réseau de communication 35 (Net) en voix sur IP.  18. Terminal according to claim 17, wherein the voice communication channel (CV) is established in the communication network (Net) in voice over IP. 19. Terminal selon l'une des revendications 16 à 18, comprenant des moyens pour : calculer la donnée d'initialisation calculée localement (Ga) à l'aide d'une fonction cryptographique (Alg 1) commune avec l'autre terminal (PB), appliquée à la donnée secrète privée (a), transmettre à l'autre terminal (PB) sous forme numérique, la donnée d'initialisation calculée localement, élaborer une donnée secrète commune (Gab) à partir de la donnée secrète privée et de la donnée d'initialisation reçue (Gb'), et déterminer à partir de la donnée secrète commune, une clé de chiffrement à utiliser pour chiffrer les communications entre les utilisateurs (A, B) des deux terminaux (PA, PB).  19. Terminal according to one of claims 16 to 18, comprising means for: calculating the initialization data calculated locally (Ga) using a cryptographic function (Alg 1) common with the other terminal (PB ), applied to the private secret data item (a), transmitting to the other terminal (PB) in digital form, the locally calculated initialization data item, developing a common secret data item (Gab) from the private secret data item and the received initialization data (Gb '), and determining from the common secret data, an encryption key to be used to encrypt the communications between the users (A, B) of the two terminals (PA, PB). 20. Terminal selon la revendication 19, dans lequel la fonction cryptographique (Alg 1) est une fonction qui associe à un nombre a le nombre g puissance a modulo N, g et N étant des nombres entiers connus des terminaux.  20. Terminal according to claim 19, wherein the cryptographic function (Alg 1) is a function which associates a number a with the number g power modulo N, g and N being integers known terminals. 21. Terminal selon l'une des revendications 16 à 20, comprenant des 20 moyens pour générer aléatoirement la donnée secrète privée (a).  21. Terminal according to one of claims 16 to 20, comprising means for randomly generating the private secret data (a). 22. Terminal selon l'une des revendications 16 à 21, comprenant des moyens pour exécuter une fonction de contrôle (FC) commune avec l'autre terminal (PB), et fournissant la donnée de contrôle (Ca) à partir de la 25 donnée secrète commune (Gab).  22. Terminal according to one of claims 16 to 21, comprising means for performing a control function (FC) common with the other terminal (PB), and providing the control data (Ca) from the data Secret Joint (Gab). 23. Terminal selon l'une des revendications 16 à 21, comprenant des moyens pour exécuter une fonction de contrôle (FC) commune avec l'autre terminal (PB) et fournissant la donnée de contrôle (Ca), la fonction de 30 contrôle étant telle qu'une modification d'un bit d'une donnée d'entrée de la fonction entraîne une modification de la donnée de contrôle.  23. Terminal according to one of claims 16 to 21, comprising means for performing a control function (FC) common with the other terminal (PB) and providing the control data (Ca), the control function being such that a modification of a bit of an input data of the function causes a modification of the control data. 24. Terminal la revendication 23, dans lequel la fonction de contrôle (FC) est appliquée à la donnée d'initialisation calculée localement (Ga) et à 35 la donnée d'initialisation (Gb') reçue de l'autre terminal (PB).  24. The terminal of claim 23, wherein the control function (FC) is applied to the locally calculated initialization data (Ga) and to the initialization data (Gb ') received from the other terminal (PB). . 25. Terminal selon la revendication 24, dans lequel la fonction de contrôle (FC) applique une fonction OU exclusif entre la donnée d'initialisation calculée localement (Ga) et la donnée d'initialisation reçue (Gb').  Terminal according to claim 24, wherein the control function (FC) applies an exclusive OR function between the locally calculated initialization data (Ga) and the received initialization data (Gb '). 26. Terminal selon la revendication 25, dans lequel la fonction de contrôle (FC) applique au résultat de la fonction OU exclusif appliquée à la donnée d'initialisation calculée localement (Ga) et à la donnée d'initialisation reçue (Gb'), un calcul de condensé ou un calcul de reste d'une division entière, pour limiter la taille de la donnée de contrôle (Ca) à un certain nombre de chiffres.  The terminal of claim 25, wherein the control function (FC) applies to the result of the exclusive OR function applied to the locally calculated initialization data (Ga) and to the received initialization data (Gb '), a digest calculation or a remainder calculation of an integer division, to limit the size of the control data (Ca) to a number of digits. 27. Terminal selon l'une des revendications 16 à 26, dans lequel les communications numériques sont établies dans le réseau de communication 15 (Net) conformément au protocole IP.  Terminal according to one of claims 16 to 26, wherein the digital communications are established in the communication network (Net) in accordance with the IP protocol. 28. Terminal selon l'une des revendications 16 à 27, comprenant des moyens pour transmettre à un second autre terminal (PC) la clé de chiffrement commune (Gab) sous une forme chiffrée, et des moyens de 20 chiffrement (Alg3) de la clé de chiffrement commune, utilisant une clé locale de chiffrement (Gac) commune au terminal (PA) et au second autre terminal (PC).  28. Terminal according to one of claims 16 to 27, comprising means for transmitting to a second other terminal (PC) the common encryption key (Gab) in encrypted form, and encryption means (Alg3) of the common encryption key, using a local encryption key (Gac) common to the terminal (PA) and the second other terminal (PC). 29. Terminal selon la revendication 28, comprenant des moyens pour 25 élaborer la clé locale de chiffrement (Gac) commune au terminal (PA) et au second autre terminal (PC), à partir d'une donnée secrète privée (a) et d'une donnée d'initialisation (Gc') reçue du second autre terminal (PC), et des moyens de validation pour permettre à l'utilisateur (A) du terminal (PA) de valider la clé locale de chiffrement. 30  29. The terminal of claim 28, comprising means for developing the local encryption key (Gac) common to the terminal (PA) and the second other terminal (PC), from a private secret data (a) and an initialization data (Gc ') received from the second other terminal (PC), and validation means for allowing the user (A) of the terminal (PA) to validate the local encryption key. 30 30. Terminal selon l'une des revendications 16 à 29, comprenant des moyens pour recevoir d'un autre terminal (PA) une clé générale de chiffrement (Gab), sous une forme chiffrée, et des moyens pour déchiffrer (Alg3') la clé générale de chiffrement en utilisant la clé de chiffrement 35 (Gac) commune au terminal (PC) et à l'autre terminal (PA).  30. Terminal according to one of claims 16 to 29, comprising means for receiving from a different terminal (PA) a general encryption key (Gab), in encrypted form, and means for decrypting (Alg3 ') the general encryption key using the encryption key 35 (Gac) common to the terminal (PC) and the other terminal (PA).
FR0603122A 2006-04-10 2006-04-10 Common encryption key generating method for e.g. voice over Internet protocol application, involves verifying correspondence between control data displayed on terminal of one user and control data received from another user by latter user Pending FR2899750A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0603122A FR2899750A1 (en) 2006-04-10 2006-04-10 Common encryption key generating method for e.g. voice over Internet protocol application, involves verifying correspondence between control data displayed on terminal of one user and control data received from another user by latter user

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0603122A FR2899750A1 (en) 2006-04-10 2006-04-10 Common encryption key generating method for e.g. voice over Internet protocol application, involves verifying correspondence between control data displayed on terminal of one user and control data received from another user by latter user

Publications (1)

Publication Number Publication Date
FR2899750A1 true FR2899750A1 (en) 2007-10-12

Family

ID=37583938

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0603122A Pending FR2899750A1 (en) 2006-04-10 2006-04-10 Common encryption key generating method for e.g. voice over Internet protocol application, involves verifying correspondence between control data displayed on terminal of one user and control data received from another user by latter user

Country Status (1)

Country Link
FR (1) FR2899750A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2489572A1 (en) 2011-02-16 2012-08-22 Coutier Industrie Hand cart with manually assisted starting
EP2489573A1 (en) 2011-02-16 2012-08-22 Coutier Industrie Hand cart with manually assisted starting
EP2540593A2 (en) 2011-06-27 2013-01-02 Coutier Industrie Industrial hand cart with manually assisted starting aid and corresponding manually assisted starting aid

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1418702A1 (en) * 2002-11-06 2004-05-12 France Telecom Secure exchange method between two communications units, control system and server for the set-up of the method
US20050023248A1 (en) * 2003-07-28 2005-02-03 Kabushiki Kaisha Tokai Rika Denki Seisakusho Method and apparatus for forming gold plating
US20050076198A1 (en) * 2003-10-02 2005-04-07 Apacheta Corporation Authentication system
US20050223230A1 (en) * 2004-03-31 2005-10-06 Zick Donald A Asynchronous enhanced shared secret provisioning protocol

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1418702A1 (en) * 2002-11-06 2004-05-12 France Telecom Secure exchange method between two communications units, control system and server for the set-up of the method
US20050023248A1 (en) * 2003-07-28 2005-02-03 Kabushiki Kaisha Tokai Rika Denki Seisakusho Method and apparatus for forming gold plating
US20050076198A1 (en) * 2003-10-02 2005-04-07 Apacheta Corporation Authentication system
US20050223230A1 (en) * 2004-03-31 2005-10-06 Zick Donald A Asynchronous enhanced shared secret provisioning protocol

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A MENEZES, P C VAN OORSCHOT, S. A VANSTONE: "Handbook of applied cryptography, chapter 9", 1997, CRC PRESS INC, ISBN: 0-8493-8523-7, XP002414177 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2489572A1 (en) 2011-02-16 2012-08-22 Coutier Industrie Hand cart with manually assisted starting
EP2489573A1 (en) 2011-02-16 2012-08-22 Coutier Industrie Hand cart with manually assisted starting
EP2540593A2 (en) 2011-06-27 2013-01-02 Coutier Industrie Industrial hand cart with manually assisted starting aid and corresponding manually assisted starting aid

Similar Documents

Publication Publication Date Title
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
JP2021519541A (en) Computer Implementation Methods and Systems for Transferring Access to Digital Assets
US8687812B2 (en) Method and apparatus for public key cryptography
EP1151576B1 (en) Public and private key cryptographic method
EP2153613A2 (en) Method for securing information exchange, and corresponding device and computer software product
EP2484084B1 (en) Method and devices allowing communication secure against denial of services (dos) and against flooding attacks in a telecommunications network
EP3010177A1 (en) Method for authenticating a client device with a server using a secret element
EP1526676A1 (en) Conference session key distribution method on an id-based cryptographic system
JP2003298568A (en) Authenticated identification-based cryptosystem with no key escrow
Qureshi et al. Framework for preserving security and privacy in peer-to-peer content distribution systems
EP1254534A1 (en) Communication method with encryption key escrow and recovery
EP1514377A1 (en) Interface method and device for the on-line exchange of contents data in a secure manner
FR2793366A1 (en) REDUCED BANDWIDTH DIGITAL SIGNATURE PROTOCOL
EP1145483A1 (en) Authenticating or signature method with reduced computations
FR2899750A1 (en) Common encryption key generating method for e.g. voice over Internet protocol application, involves verifying correspondence between control data displayed on terminal of one user and control data received from another user by latter user
Purevjav et al. Email encryption using hybrid cryptosystem based on Android
Lee et al. An interactive mobile SMS confirmation method using secret sharing technique
Murthy et al. A Study on Asymmetric Key Exchange Authentication Protocols
EP1642413B1 (en) Method for encoding/decoding a message and associated device
WO2007042419A1 (en) Cryptographic method using an identity-based encryption system
WO2005083926A1 (en) Computer-implemented methods and systems for generating, solving, and/or using useful security puzzles
Papotti et al. Quantum Key Distribution in OpenSSL
FR2786049A1 (en) Information transmission dynamic key encryption coding technique having defined word generated key encryption used and receiver generation same key decoding producing.
EP1992104B1 (en) Authenticating a computer device at user level
Rhee et al. Key recovery in IPSec for improving robustness