Brevet FR2693334A1 — publié le 19940107

"Procédé de communication protégée entre trois protagonistes, et dispositifs impliqués par sa mise en oeuvre". Description La présente invention concerne un procédé de communications protégées entre trois protagonistes dont un premier est désigné par un premier code d'identification, dont un deuxième est désigné par un deuxième code d'identification et peut servir d'intermédiaire entre le premier et le troisième protagoniste, et dont le troisième assure la gestion des communications. L'invention peut trouver d'importantes applications, notamment dans le domaine des jeux. Les trois protagonistes sont respectivement une carte à microcircuit, un boîtier qui reçoit cette carte et un centre serveur sur lequel le boitier peut se raccorder. Ce genre de configuration est décrit dans le brevet américain US 4 764 666. Cette configuration n1 est pas très adaptée au cas où la carte contient des données importantes pour le jeu. Ces données peuvent susciter des manoeuvres frauduleuses de la part de joueurs peu scrupuleux. La présente invention propose un procédé de communications protégées entre trois protagonistes, qui évite dans une large mesure la possibilité de frauder les informations s'échangeant entre les trois protagonistes. Pour cela, un tel procédé est remarquable en ce qu'il inclut au moins les étapes suivantes - envoi par le premier protagoniste vers le deuxième protagoniste d'une première information protégée formée d'une première information représentant une information utile et le premier code d'identification, ladite première information protégée étant accompagnée d'un premier code d'intégrité constitué sur la base de la première information, - envoi par le deuxième protagoniste vers le troisième protagoniste d'une deuxième information protégée formée d'une deuxième information représentant ladite première information protégée et le deuxième code d'identification, ladite deuxième information protégée étant accompagnée d'un deuxième code d'intégrité constitué sur la base de la deuxième information, - vérification par le troisième protagoniste de la cohérence des premier et deuxième codes d'intégrité avec la première et la deuxième information protégée respectivement. L'invention concerne aussi les dispositifs impliqués par la mise en oeuvre du procédé. La description suivante, accompagnée des dessins ci-annexés, le tout donné à titre d'exemple non limitatif, fera bien comprendre comment l'invention peut être réalisée. La figure 1 montre le système comportant les dispositifs pour lesquels le procédé de l'invention est mis en oeuvre. La figure 2 montre de façon schématique les étapes conformes au procédé de l'invention. La figure 3 montre de façon schématique les étapes d'une variante de validation du procédé de l'invention. A la figure 1 on a représenté un système comportant les dispositifs impliqués par le procédé de l'invention. La référence 1 montre un boîtier de jeu comportant différents éléments ; seuls ont été représentés les éléments participant à l'invention. La référence 2 indique un circuit d'horloge, élaboré à partir du circuit intégré PCF8583, constitué essentiellement par un oscillateur 3 et un compteur-diviseur 4. Les informations de date et d'heure élaborées par ce circuit 2 peuvent être enregistrées dans une carte à microcircuit 5 qui est connectée au boîtier par les connecteurs usuels. Cette carte peut être du genre décrit dans l'ouvrage LES CARTES A MICROCIRCUIT de Guez et al, paru aux éditions MASSON. Les différentes données issues du circuit 2 et de la carte à microcircuit 5 subissent différents traitements qui sont effectués par des circuits de sécurité 12 et 15 qui leur sont respectivement rattachés. Ces circuits de sécurité sont constitués à partir d'un circuit du genre immatriculé sous le n" MC6805SC24. Ce circuit est formé d'un microprocesseur auquel est rattachée notamment une mémoire morte contenant un programme pour effectuer une fonction de cryptage. Toutes les données issues du boîtier 1 et de la carte à microcircuit 5 peuvent être transmises vers un centre serveur 20 en transitant par une liaison téléphonique 25 connectée à un modem 30 faisant partie du boîtier 1. Dans ce système il y a une pluralité de boîtiers 1 qui peuvent se raccorder au centre serveur 20 et une pluralité de cartes à microcircuit qui se raccordent à plusieurs boîtiers, de préférence une à la fois, mais une carte à microcircuit ne peut se raccorder qu > à un seul boîtier. Conformément à un aspect de l'invention, à chaque boîtier est affecté un code d'identification i et à chaque carte un code d'identification j. On définit un algorithme qui fournit des données cryptées DC DC = f(K ; ) où f est la fonction définissant un algorithme de cryptage (DES de préférence. Cet algorithme est décrit dans la publication "Federal Information Processing Standards Publication" (FIPS PUB46) du 15 janvier 1977 du Bureau National des Standards du Ministère du Commerce américain). K est une clé, sont les données à crypter. A tous les boîtiers, on affecte une clé mère KA de sorte que l'on détermine une clé particulière Ki pour chaque boîtier Ki = f(KA;i) De même, à toutes les cartes on affecte une autre clé mère KB de sorte que chaque carte a sa clé particulière Kj Kj = f(KB;j) Le serveur aura la connaissance des clés KA et KB et les connaissances pour mettre en oeuvre l'algorithme de chiffrage f(... ; ) La figure 2 montre les étapes effectuées conformément au procédé de l'invention. Pour mieux comprendre l'invention on prend l'exemple suivant Un joueur effectue un pari sur un jeu qui se déroule à la TV. Une phase importante consiste à enregistrer la date et l'heure fournies par le circuit d'horloge boîtier dans la carte à microcircuit. I1 va de soi que l'invention n'est pas limitée à ce seul exemple. Etape 1 (Stl) La procédure commence par l'envoi d'un nombre aléatoire b vers le boîtier 1. Ce nombre b est fourni par la carte et est conservé par elle en vue d'un traitement ultérieur. Etape 2 (St2) Le boîtier 1, plus précisément l'horloge renvoie le message M1 formé de la date : dte, identifieur i, et un code Vt destiné à vérifier l'intégrité des données envoyées Vt = f[f(Ki;b) ; dte,i] (s'il est possible de modifier le code, il n'est guère possible de modifier V1 en correspondance puisque Ki est secret). Etape 3 (St3) Le message M1 est enregistré dans la carte 5. On se connecte maintenant au serveur 20 relié au boîtier par une ligne téléphonique, via le modem non représenté. Le serveur envoie un nombre aléatoire c. Etape 4 (St4) La carte envoie les informations j, b, M1, V2. V2 est un code d'intégrité : V2 = f[f(Kj;c);j,b,M1]. Etape 5 (St5) En outre1 le serveur peut envoyer au boîtier 1 le même aléa c. Cette étape peut être confondue avec l'Etape 3. Etape 6 (St6) Le boîtier Ai renvoie au serveur l'identifieur i, et un code d'intégrité V3 : V3 = f[f(Ki;c);i]. Le serveur effectue ensuite le traitement suivant Calcul de la clé Kj Connaissant la clé mère KB et l'identifieur j envoyé à l'étape 4, il peut calculer : Kj = f(KB;j) Calcul de la clé Ki Connaissant la clé mère KA et l'identifieur i envoyé à l'étape 6 ou à l'étape 4 dans M1, il peut calculer : Ki = f(KA;i) Vérification de l'intégrité Vt A partir de la valeur calculée Ki, connaissant b transmis à l'étape 4, les informations dte et i, le serveur effectue un calcul du Vt qu'il compare au V, du message M1. Une comparaison négative invalide le pari. Vérification de l'intégrité V2 A partir de la valeur calculée Kj, connaissant c envoyé par le serveur lui-même à l'étape 3 et connaissant j, b et M1 envoyés à l'étape 4, le serveur calcule V2 qu'il compare au V2 envoyé à l'étape 4. Une comparaison négative invalide aussi le pari. D'autres vérifications peuvent être effectuées. Ainsi, il importe que la validation s'effectue avec le boîtier sur lequel a été fait le pari. Pour cela, on compare le i envoyé à l'étape 6 avec le i du message M1 envoyé à l'étape 2. En variante, il est possible de crypter les données par la même fonction de cryptage, à condition qu'elle soit réversible ; ainsi - à l'étape St2 on envoie M', = f[f(Ki;b);dte,dte],i la redondance sur la donnée dte permet de garantir son intégrité, - à l'étape St4 on envoie M'2 = f[f(Kj;c);M'1,M'],j,b - à l'étape St6 on envoie f[f(Ki;i);i]. Le centre serveur 20 doit donc, dans ce cas a - calculer la clé f(Kj;c) = f[f(KB;j);c] b - effectuer le déchiffrement M'1, M' = f-1{f(Kj;c);f[f(Ki;c);M'l;M']} c - vérifier que le déchiffrement présente bien la redondance attendue, d - calculer la clé f(Ki;b) = f[f(KA;i);b] e - effectuer le déchiffrement : dte, dte = f-1{f(Ki;b);f[f(Ki;b)dte,dte]} f - vérifier que le déchiffrement présente bien la redoncance attendue. I1 va de soi que cette variante peut être combinée avec le procédé décrit à l'aide de la figure 2. Revendications 1. Procédé de communications protégées entre trois protagonistes dont un premier est désigné par un premier code d'identification, dont un deuxième est désigné par un deuxième code d'identification et peut servir d'intermédiaire entre le premier et le troisième protagoniste, et dont le troisième assure la gestion des communications, caractérisé en ce qu'il inclut au moins les étapes suivantes - envoi par le premier protagoniste vers le deuxième protagoniste d'une première information protégée formée d'une première information représentant une information utile et le premier code d'identification, ladite première information protégée comprenant en outre une première information d'intégrité constituée sur la base de la première information, - envoi par le deuxième protagoniste vers le troisième protagoniste d'une deuxième information protégée formée d'une deuxième information représentant ladite première information protégée et le deuxième code d'identification, ladite deuxième information protégée comprenant en outre une deuxième information d'intégrité constituée sur la base de la deuxième information, - vérification par le troisième protagoniste de l'intégrité de la première et la deuxième information protégée en utilisant la première et la deuxième information d'intégrité. 2. Procédé de communications protégées entre trois protagonistes selon la revendication 1, caractérisé en ce que les informations d'intégrité sont engendrées par une étape dans laquelle un code d'intégrité est calculé selon une fonction de cryptage sur la base des informations utiles et d'une clé de cryptage, en ce que la vérification consiste à comparer le code d'intégrité avec un code d'intégrité calculé par le troisième protagoniste. 3. Procédé de communications protégées entre trois protagonistes selon la revendication 1 ou 2, caractérisé en ce que les informations d'intégrité sont obtenues par redondance des informations utiles et application de la fonction de cryptage, la vérification consistant à comparer les informations protégées après décryptage. 4. Procédé de communications protégées entre trois protagonistes selon la revendication 2 ou 3, caractérisé en ce que la fonction de cryptage est l'algorithme connu sous le nom d'algorithme DES. 5. Procédé de communications protégées entre trois protagonistes, caractérisé en ce que les clés de cryptage pour le premier et le deuxième protagoniste sont définies par la mise en application de la fonction de cryptage sur une clé mère et des codes d'identification. 6. Procédé de communications protégées entre trois protagonistes, caractérisé en ce que les clés mères sont affectées respectivement au premier et deuxième protagoniste. 7. Dispositif de premier protagoniste impliqué dans le procédé de la revendication 1 ou 2 ou 3 ou 4 ou 5 ou 6, caractérisé en ce qu'il comporte un circuit de sécurité comprenant des premiers moyens de mémorisation pour contenir un programme pour la mise en oeuvre d'un code d'intégrité et des données relatives à son identification. 8. Dispositif de deuxième protagoniste impliqué dans le procédé de l'une des revendications 1 à 6, caractérisé en ce qu'il comporte est formé à partir d'une carte à microprocesseur comprenant des deuxièmes moyens de mémorisation pour contenir un programme pour la mise en oeuvre d'un code d'intégrité et des données relatives à son identification. 9. Dispositif de troisième protagoniste impliqué dans le procédé de l'une des revendications 1, 2, caractérisé en ce qu'il comporte des troisièmes moyens de mémorisation pour contenir un programme pour la mise en oeuvre d'un code d'intégrité et pour contenir lesdites clés mères des moyens pour comparer les codes d'intégrité fournis par le dispositif de premier protagoniste et/ou le dispositif de deuxième protagoniste en fonction des données reçues.