FR 2890267 A1 20070302 FR 0508782 A 20050826 La présente invention concerne un procédé d'établissement d'une clé de session et des unités pour la mise en oeuvre du procédé. Un procédé bien connu pour l'établissement d'une clé de session entre une première et une seconde unités est celui de Diffie Hellman également connu sous le terme de protocole STS (Station-To-Station). Dans le procédé de Diffie Hellman chaque unité construit un terme a à partir duquel l'autre unité peut 10 établir une clé de session KS selon la relation suivante: KS = a modulo n où . - (3 est un nombre aléatoire, et - n est un nombre premier. Le procédé de Diffie Hellman est vulnérable vis-à-vis de l'attaque de l'intercepteur et vis-à-vis de l'attaque par rejeu. L'attaque de l'intercepteur est décrite en détail dans le document suivant: Douglas Stinson, Cryptographie Théorie et Pratique , International Thomson Publishing France, Paris, 1996 (section 8.4.1). L'attaque par rejeu consiste essentiellement à enregistrer les messages envoyés par la première unité vers la seconde unité puis à ré-utiliser plus tard les messages enregistrés de manière à tromper la seconde unité. Aux sections 22.1 et 22.2 du livre de BRUCE SCHNEIER, Cryptographie Appliquée , Edition WILEY, il est proposé un procédé d'établissement d'une clé de session robuste vis-à-vis de l'attaque de l'intercepteur et de l'attaque par rejeu. Ce procédé fonctionne correctement mais peut conduire à exécuter des opérations inutiles en cas d'attaque, ce qui se traduit par la mobilisation inutile de ressources informatiques dans l'une ou l'autre des unités. Ce problème de mobilisation inutile de ressources informatiques est particulièrement important dans le cas où un tel procédé doit être mis en oeuvre entre une unité de désembrouillage et une unité cryptographique amovible d'un dispositif de réception de signaux multimédias embrouillés. En effet, classiquement, l'unité de désembrouillage et l'unité cryptographique amovible disposent de peu de ressources informatiques. Ceci est tout particulièrement vrai pour l'unité cryptographique amovible qui se présente sous la forme d'une carte à puce. L'invention vise donc à remédier à ce problème dans le contexte des dispositifs de réception de signaux multimédias embrouillés en proposant un procédé d'établissement d'une clé de session entre une unité de désembrouillage et une unité cryptographique amovible plus économique en ressources informatiques. L'invention a donc pour objet un procédé 20 d'établissement d'une clé de session dans lequel: a) l'une des unités, dite première unité, tire un nombre aléatoire et l'envoie à l'autre unité, b) l'autre unité, dite seconde unité, construit un terme a à partir duquel la première unité peut établir la 25 clé de session KS selon la relation suivante: KS = aR mod n où (3 est un nombre aléatoire tiré par la première unité et n est un nombre premier, c) la seconde unité envoie à la première unité un 30 message contenant conjointement le nombre aléatoire reçu, le terme a et une signature du nombre aléatoire reçu et/ou du terme a réalisée avec une clé privée K:pr, puis d) la première unité vérifie la signature à l'aide d'une clé publique K3pu correspondant à la clé privée K3pr et compare le nombre aléatoire reçu à celui envoyé, et e) si la signature est incorrecte ou si le nombre aléatoire reçu ne correspond pas à celui envoyé, alors la première unité ne procède pas aux étapes suivantes permettant d'établir la clé de session. Si une attaque de l'intercepteur est mise en oeuvre, celle-ci est détectée lors de l'étape d) en vérifiant la signature de sorte qu'aucune étape supplémentaire visant à établir la clé de session n'est exécutée. Si une attaque par rejeu est mise en oeuvre, celle-ci est également détectée lors de l'étape d) en comparant le nombre aléatoire envoyé à celui reçu, de sorte qu'aucune étape supplémentaire visant à établir la clé de session n'est exécutée. Ainsi, le procédé ci-dessus permet d'économiser des ressources informatiques par rapport au procédé divulgué aux sections 22.1 et 22.2 du livre de SCHNEIER. En effet, le procédé décrit dans le livre de SCHNEIER ne permet pas d'interrompre le procédé de construction de la clé de session dès qu'une attaque de l'intercepteur ou une attaque par rejeu est mise en oeuvre. Dès lors, des opérations de construction de la clé de session sont exécutées alors que celles-ci ne sont pas nécessaires puisque, lorsque l'attaque est découverte, la clé de session construite ou en cours de construction est, par exemple, abandonnée. Les modes de réalisation de ce procédé d'établissement d'une clé de session peuvent comporter une ou plusieurs des caractéristiques suivantes: - les étapes a) à e) sont réitérées une seconde fois en inversant les rôles des première et seconde unités; - préalablement aux étapes a) à e), l'unité de désembrouillage et l'unité cryptographique amovible échangent mutuellement: + une première clé publique K.Lpu, + un premier certificat contenant au moins une deuxième clé publique K2pu, ce certificat étant signé à l'aide d'une première clé privée Klpr correspondant à la première clé publique Klpu, et + un second certificat contenant au moins une troisième clé publique K3pu, ce certificat étant signé à l'aide d'une deuxième clé privée K2pr correspondant à la deuxième clé publique K2pu, la troisième clé publique K3pu correspondant à la clé privée K3pr utilisée pour réaliser la signature lors de l'étape c), et - l'unité de désembrouillage et l'unité cryptographique amovible vérifient chacune les premier et second certificats reçus et procèdent aux étapes a) à e) uniquement si l'unité de désembrouillage et l'unité cryptographique amovible ont pu vérifier avec succès l'authenticité des premier et second certificats reçus par chacune d'elle; - au moins l'une des unités incrémente un premier compteur interne en fonction du nombre de messages envoyés vers et/ou reçus de l'autre unité et déclenche automatiquement l'établissement d'une nouvelle clé de session si le premier compteur dépasse un premier seuil prédéterminé ; - l'autre unité incrémente un second compteur interne en fonction du même nombre de messages et provoque automatiquement l'arrêt du désembrouillage des signaux multimédias si le second compteur dépasse un second seuil prédéterminé supérieur au premier seuil; - chacune des unités incrémente un compteur interne en fonction du nombre de messages envoyés et/ou reçus, au moins l'une des unités ajoute à chaque message envoyé vers l'autre unité un code de redondance calculé en fonction du contenu du message à envoyer et de la valeur actuelle de son compteur interne, et l'autre unité vérifie l'exactitude du message reçu en comparant le code de redondance ajouté à un code de redondance calculé en fonction du contenu du message reçu et de la valeur actuelle de son propre compteur interne. Ces modes de réalisation du procédé d'établissement 10 d'une clé de session présentent en outre les avantages suivants. - l'échange de certificats entre l'unité de désembrouillage et l'unité cryptographique permet, par exemple, de s'assurer que seuls des fabricants agréés par une autorité de confiance, c'est-à-dire en possession d'un premier certificat valide, peuvent construire des unités de ou des désembrouillage fonctionnelles; - déclencher session en fonctionunités cryptographiques l'établissement d'une nouvelle clé de la valeur d'un compteur interne de de messages permet de modifier régulièrement la clé de session, ce qui d'informations entre - déclencheraccroît la sécurité des échanges les deux unités; l'arrêt du désembrouillage des signaux multimédias si un second compteur interne de messages dépasse un second seuil prédéterminé permet de lutter contre l'utilisation d'unités de désembrouillage ou d'unités cryptographiques pirates, qui ne déclencheraient jamais l'établissement d'une nouvelle clé de session; utiliser des compteurs internes de messages dans chacune des unités et utiliser la valeur de ces compteurs pour calculer et vérifier un code de redondance permet de vérifier la synchronisation des messages échangés entre les deux unités et contribue à rendre difficile une attaque par rejeu; et - chiffrer l'ensemble des messages échangés entre les deux unités, y compris les messages de la procédure d'échange de certificat et de mise à la clé de session rend la cryptanalyse des informations échangées plus difficile. L'invention a également pour objet des unités aptes à être mises en oeuvre dans le procédé ci-dessus d'établissement d'une clé de session. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins sur lesquels: - la figure 1 est une illustration schématique de l'architecture d'un système de transmission de signaux multimédias embrouillés comportant un dispositif de réception de ces signaux; - la figure 2 est un organigramme d'un procédé d'établissement de certificats cryptographiques pour le 20 dispositif de réception de la figure 1; - les figures 3A et 3B sont un organigramme d'un procédé d'établissement d'une clé de session entre une unité de désembrouillage et une unité cryptographique amovible du dispositif de réception de la figure 1; et la figure 4 est un organigramme d'un procédé d'échange de messages chiffrés en une unité de désembrouillage et une unité cryptographique amovible du dispositif de réception de la figure 1. La figure 1 représente un système 2 de transmission et de réception de signaux multimédias embrouillés tel que, par exemple, des signaux audiovisuels ou des programmes multimédias. Le système 2 comporte un émetteur 4 apte à diffuser simultanément vers plusieurs dispositifs de réception les signaux multimédias embrouillés à l'aide d'un mot de contrôle. Cet émetteur 4 est également apte à transmettre vers chacun des dispositifs de réception des messages ECM (Entitlement Control Message) contenant le mot de contrôle utilisable pour désembrouiller les signaux multimédias ainsi que des messages EMM (Entitlement Management Message) contenant des informations de gestion des droits d'accès des abonnés. Pour simplifier la figure 1, seul un dispositif de réception 6 est représenté. Seuls les détails du dispositif 6 nécessaires à la compréhension de l'invention sont décrits ici. Le dispositif 6 est, par exemple, formé de trois entités c'est-à-dire: un décodeur 10 équipé d'une antenne 12 pour recevoir les signaux multimédias embrouillés diffusés par l'émetteur 4 et pour les décoder après leur désembrouillage, une unité 14 de désembrouillage des signaux multimédias reçus; et - une unité cryptographique amovible, telle qu'un processeur de sécurité amovible 16, apte à déchiffrer le mot de contrôle contenu dans un message ECM. Dans la suite, la référence à un mot de contrôle s'applique à un ou plusieurs des mots de contrôle d'un ECM. Le décodeur 10 est également raccordé à une unité d'affichage 20 tel qu'un poste de télévision, sur lequel sont affichés les signaux multimédias désembrouillés par l'unité 14. L'unité 14 se présente, par exemple, sous la forme d'une carte PCMCIA (Personal Computer Memory Card International Association) amovible, destinée à être insérée dans le décodeur 10 conformément à la norme EN 50221 Common Interface Specification for Conditional Access and other Digital Video Broadcasting Decoder Applications . A cet effet, le décodeur 10 et l'unité 14 sont chacun équipés de connecteurs d'accouplage et de désaccouplage mécanique de l'unité 14 et du décodeur 10. Cette unité 14 comporte un désembrouilleur 22 apte à désembrouiller le signal multimédia embrouillé à l'aide du mot de contrôle. L'unité 14 comporte des moyens de stockage d'informations représentés ici sous la forme d'une mémoire 26 ainsi qu'un module de chiffrement et de déchiffrement 28. Le module 28 est apte à chiffrer et à déchiffrer tout ou partie de chaque message échangé entre l'unité 14 et le processeur 16 avec une clé de session Ks. Les algorithmes de chiffrement et de déchiffrement utilisés sont, par exemple, le DES (Data Encryption Standard). La mémoire 26 contient trois certificats cryptographiques C1T, C2T et C3T. Le certificat OIT contient au moins: - une clé publique KTlpu, -une date d'expiration de ce certificat, et - une signature SignlKTlpr réalisée à partir des données contenues dans le certificat C1T et à l'aide d'une clé privée KTlpr correspondant à la clé publique KTlpu (certificat auto-signé) . Le certificat C2T contient au moins: - une clé publique KT2pu, -une date d'expiration de ce certificat, et une signature Sign2KTlpr réalisée à partir des données contenues dans le certificat C2T et à l'aide de la clé 30 privée KTipr. Enfin, le certificat C3T contient au moins une clé publique KT3pU, une date d'expiration et une signature Sign3KT2pr. La signature Sign3KT2pr est réalisée à partir du contenu du certificat C3T et à l'aide d'une clé privée KT2pr correspondant à la clé publique KT2puÉ La mémoire 26 contient également une clé privée KT3pr, un seuil S1r une clé de session Ksp préchargée, un grand nombre premier n ainsi qu'un nombre g appartenant à l'ensemble Zn, l'ensemble Zn est l'ensemble des entiers compris entre 0 et n-1. La clé privée KT3pr correspond à la clé publique KT3puÉ L'ensemble des données décrites ici comme étant contenu dans la mémoire 26 est, par exemple, enregistré dans cette mémoire 26 lors de la fabrication de l'unité 14. L'unité 14 comporte également un compteur 30 de messages échangés entre l'unité 14 et le processeur 16, un registre 32 contenant la date courante et un calculateur 34 propre à établir un code de redondance d'un message envoyé au processeur 16 et à vérifier le code de redondance d'un message reçu. Le processeur de sécurité 16 se présente, par exemple, sous la forme d'une carte à puce apte à être insérée dans l'unité de désembrouillage 14. A cet effet, l'unité 14 et le processeur 16 comportent chacun des interfaces de connexion, telles que des connecteurs mécaniques d'accouplage et désaccouplage de l'unité 14 et du processeur 16. Ce processeur de sécurité comporte un module 52 apte à chiffrer et à déchiffrer tout ou partie d'un message échangé entre le processeur 16 et l'unité 14 en utilisant des algorithmes de chiffrement et de déchiffrement compatibles avec ceux utilisés par le module 28. Le processeur 16 comporte en outre un module 50 d'extraction et de déchiffrement d'un mot de contrôle contenu dans un message ECM. Le processeur 16 comporte également: - un calculateur 54 propre à calculer le code de redondance d'un message envoyé à l'unité 14 et à vérifier le code de redondance d'un message reçu de l'unité 14, - un compteur interne 56 de messages échangés entre l'unité 14 et le processeur 16, - un registre interne 58 contenant la date courante, et - des moyens de stockage d'informations représentés sous la forme d'une mémoire 60. La mémoire 60 contient trois certificats cryptographiques Clc, C2c et C3c. Le certificat Clc contient au moins la clé publique KC1pu, une date d'expiration du certificat et une signature SignlKclprÉ La signature SignlKclpr est réalisée à partir du contenu du certificat Clc à l'aide d'une clé privée KciprÉ La clé Kclpr correspond à la clé publique KC1pu (certificat auto- signé). Le certificat C2c contient au moins une clé publique Kc2pur une date d'expiration du certificat C2c et une signature Sign2KClpr réalisée à partir du contenu du certificat C2c et à l'aide de la clé privée KclprÉ Le certificat C3c contient la clé publique date d'expiration de ce certificat C3cr et une signature Sign3KC2prÉ La signature Sign3KC2pr est réalisée à partir du 25 contenu du certificat C3c et à l'aide de la clé privée Kc2prÉ La mémoire 60 contient également une clé privée KC3prr la clé de session préchargée Ksi), un seuil S2 supérieur au seuil S1, le nombre premier n et le nombre g. La clé privée Kc3pr correspond à la clé publique Kc3pu. La clé Ksp préchargée 30 dans la mémoire 60 a la même valeur que la clé Ksp chargée dans la mémoire 26. Les données contenues dans la mémoire 60 décrite ci-dessus sont, par exemple, enregistrées lors de la fabrication du processeur 16. une KC3pur Le processeur 16 peut échanger des messages avec l'unité 14 uniquement lorsque celui-ci est inséré dans l'unité 14. De même, l'unité 14 peut transmettre un signal 5 multimédia désembrouillé au décodeur 10 uniquement lorsque cette unité 14 est insérée dans le décodeur 10. L'émetteur 4 diffuse des signaux multimédias embrouillés à l'aide d'un mot de contrôle. Ce mot de contrôle est transmis sous forme chiffré au dispositif 6 dans un message ECM. Le dispositif 6 reçoit les signaux multimédias embrouillés et le message ECM, ainsi que des messages EMM (Entitlement Management Message) de gestion des droits d'accès et de la sécurité du système. Les messages ECM et EMM sont tranmis par l'unité 14 au processeur 16. En particulier, le message ECM est transmis au module 50 du processeur 16 qui extrait du message ECM le mot de contrôle et le déchiffre. Le mot de contrôle ainsi déchiffré est alors transmis à l'unité 14 où il est appliqué au désembrouilleur 22. Le désembrouilleur 22 utilise le mot de contrôle déchiffré pour désembrouiller les signaux multimédias embrouillés reçus. Les signaux multimédias désembrouillés sont alors envoyés au décodeur 10 qui les décode et les envoie à l'unité d'affichage 20 pour être présentés à un utilisateur. Dans le dispositif 6, les messages échangés entre l'unité 14 et le processeur 16 sont chiffrés à l'aide de la clé de session K. Selon la réalisation, chaque message est ainsi chiffré au totalité ou en partie. Dans le cas d'un chiffrement partiel de chaque message, le mot de contrôle extrait de l' ECM et transmis du processeur 16 à l'unité 14 constitue la partie systématiquement chiffrée par le module 52. La clé de session KS est connue uniquement du processeur 16 et de l'unité 14. En particulier, la clé KS est différente d'un dispositif de réception à un autre. Ainsi, l'interception des messages échangés entre le processeur 16 et l'unité 14 est rendue difficile et inutilisable par un autre dispositif de réception. Le fonctionnement du dispositif 6 va maintenant être décrit en regard des organigrammes des figures 2, 3A, 3B et 4. La figure 2 représente un procédé d'établissement des certificats C1T, C2T, C3T, Clc, C2c et C3c. Initialement, une autorité de confiance est pourvue du certificat C1T, du certificat Clc et des clés privées KTlpr et Kclpr. Cette autorité de confiance est, par exemple, l'entité chargée de garantir la fiabilité des échanges de messages entre l'unité 14 et le processeur 16. Lors d'une étape 80, l'autorité de confiance choisit pour un fabricant d'unités de désembrouillage une paire de clés privées/publiques KT2pr/KT2puÉ Ensuite, lors d'une étape 82, l'autorité construit pour ce fabricant le certificat C2T et le signe à l'aide de sa clé privée KTlpr. Lors d'une étape 84, le certificat C2T construit lors de l'étape 82, le certificat C1T et la clé privée KT2pr sont transmis au fabricant d'unités de désembrouillage. Les étapes 80 à 84 sont réitérées pour chaque fabricant d'unités de désembrouillage. Chaque fabricant d'unités de désembrouillage se voit affecté, lors de l'étape 80, d'une paire de clés privée/publique KT2pr/KT2pu différentes de celles affectées aux autres fabricants. Ensuite, chaque fabricant, lors d'une étape 86, choisit une paire de clés privée/publique KT3pr/KT3pu pour chaque unité de désembrouillage fabriquée. La paire de clés privée/publique KT3pr/KT3pu est de préférence unique pour chaque unité de désembrouillage fabriquée. Ensuite, lors d'une étape 88, le fabricant construit le certificat C3T de l'unité de désembrouillage et le signe à l'aide de la clé privée KT2pr qu'il a reçue lors de l'étape 84. Enfin, lors d'une étape 90, les certificats C1T, C2T, C3T et la clé privée KT3pr sont enregistrés dans la mémoire 26 de l'unité 14. Lors de l'étape 90, la clé de session préchargée Ksi, et les nombres n et g sont également enregistrés dans la mémoire 26. En parallèle aux étapes 80 à 84, lors d'étapes 92 à 96, l'autorité de confiance réalise les mêmes tâches que celles réalisées pour les fabricants d'unités de désembrouillage, mais cette fois ci pour les fabricants de processeurs de sécurité. Par exemple, les étapes 92, 94 et 96 sont respectivement identiques aux étapes 80, 82 et 84 à l'exception du fait que l'indice T dans les certificats C1T et C2T ainsi que dans les clés KTipr, KT2pr, KT2pu est remplacé par l'indice C . De même, en parallèle des étapes 86 à 90, lors d'étapes 98 à 102, le fabricant de processeurs de sécurité effectue les mêmes tâches que celles décrites pour les fabricants d'unités de désembrouillage. Par exemple, les étapes 98, 100 et 102 sont respectivement identiques aux étapes 86, 88 et 90 à l'exception du fait que l'indice T dans les termes C1T, C2T, C3T, KT2pr, KT3pr, KT3pu est remplacé par l'indice C . Cet empilement de trois niveaux de certificats permet de garantir que seul un fabricant agréé par l'autorité de confiance peut fabriquer une unité de désembrouillage ou un processeur de sécurité susceptibles de fonctionner dans le dispositif 6. En effet, par exemple, un fabricant non agréé d'unité de désembrouillage 14 ne peut pas générer un certificat Cm signé par une clé privée K:T2Pr correspondant à un certificat C2T valide. Après avoir été fabriquée, l'unité 14 est insérée 5 dans le décodeur 10 et le processeur 16 est inséré dans l'unité 14 afin de pouvoir désembrouiller les signaux émis par l'émetteur 4. Le procédé des figures 3A et 3B d'établissement d'une clé de session symétrique commune est alors exécuté. Initialement, lors d'une phase 110, le processeur 16 et l'unité 14 vérifient mutuellement leur authenticité en échangeant leurs certificats cryptographiques. Plus précisément, lors d'une étape 112, l'unité 14 envoie le certificat CiT au processeur 16. Lors d'une étape 114, le processeur 16 extrait du certificat C1T la clé publique KT1P,,. Ensuite, lors d'une étape 116, le processeur 16 vérifie que le certificat C1T reçu est valide. Lors de cette étape 116, il vérifie la signature du certificat CrT à l'aide de la clé publique KT1Pu et compare la date d'expiration contenue dans ce certificat à la date courante contenue dans le registre 58. Si le certificat n'est pas correctement signé ou si ce certificat est périmé (c'est-à-dire que la date courante est postérieure à la date d'expiration), lors d'une étape 118, le processeur 16 envoie à l'unité 14 un message commandant l'arrêt de cette unité 14 et s'arrête. Le procédé d'établissement d'une clé de session est donc immédiatement interrompu. Dans le cas contraire, c'est-à-dire si le certificat CiT reçu est valide, le processeur 16 envoie, lors d'une étape 120, le certificat Clc à l'unité 14. Lors d'une étape 122, l'unité 14 extrait la clé publique KC1pu du certificat C1C puis vérifie, lors d'une étape 124, la validité du certificat C12 reçu. Lors de cette étape 124, l'unité 14 vérifie la signature du certificat C12 et compare la date d'expiration contenue dans ce certificat à la date courante contenue dans le registre 32. Si la signature du certificat C1C est incorrecte ou si ce certificat est périmé, lors d'une étape 126, l'unité 14 envoie un message au processeur 16 pour commander l'arrêt du processeur 16 et l'unité 14 s'arrête. Ainsi, aucune autre étape visant à établir la clé de session n'est exécutée. Dans le cas contraire, c'est-à-dire si le certificat 15 reçu C1C est valide, alors, lors d'une étape 128, l'unité 14 et le processeur 16 s'échangent et vérifient mutuellement leurs certificats C2C et C2T. A cet effet, lors de l'étape 128, les étapes 112 à 126 sont réitérées en remplaçant les termes C1T, Clc, KT1pu, KCipu respectivement par les termes C2T, C20, KT2pu. KC2puÉ A l'issue de l'étape 128, s'il a été établi qu'un des certificats échangés n'est pas correctement signé ou est périmé, l'unité 14 (respectivement le processeur 16), dans une étape 129 équivalente à l'étape 126 (respectivement 118), envoie au processeur 16 (respectivement à l'unité 14) un message commandant l'arrêt de ce processeur 16 (respectivement cette unité 14) et s'arrête. Par contre, si à l'issue de l'étape 128, il a été établi que les certificats C2T et C2C sont valides, alors lors d'une étape 130, l'unité 14 et le processeur 16 s'échangent et vérifient mutuellement la validité de leurs certificats C3T et C3C. Par exemple, lors de l'étape 130, les étapes 112 à 126 sont réitérées en remplaçant les termes C1T, C12, KT1pu, Kc1pu par les termes C3T, C3C, KT3pu, KC3puÉ A l'issue de l'étape 130, s'il a été établi qu'un des certificats échangés n'est pas correctement signé ou est périmé, l'unité 14 (respectivement le processeur 16), dans une étape 131 équivalente à l'étape 126 (respectivement 118), envoie au processeur 16 (respectivement à l'unité 14) un message commandant l'arrêt de ce processeur 16 (respectivement cette unité 14) et s'arrête. Par contre, si à l'issue de l'étape 130, il a été établi que les certificats C3T et C3C sont valides, alors une phase 150 de construction de la nouvelle clé de session KS est déclenchée puisque tous les certificats échangés lors de la phase 110 sont valides. On comprend donc que grâce à cette phase 110 de vérification mutuelle des certificats, une unité 14 ne peut fonctionner correctement avec un processeur 16 que si cette unité 14 et ce processeur 16 ont été fabriqués par des fabricants agréés. De plus, à l'issue de la phase 110, l'unité 14 dispose notamment de la clé publique KC3pu certifiée et le processeur 16 dispose notamment de la clé publique KT3pu certifiée. Les messages servant à l'accomplissement de la phase 110 de vérification mutuelle des certificats sont échangés entre l'unité 14 et le processeur 16 chiffrés par la clé de session courante. Il en est de même des messages échangés par l'unité 14 et le processeur 16 servant à l'accomplissement de la phase 150 de construction de la nouvelle clé de session. Au début de la phase 150, lors d'une étape 152, 30 l'unité 14 tire un nombre aléatoire A et l'envoie, lors d'une étape 154, au processeur 16. Lors d'une étape 156, le processeur 16 reçoit le message contenant le nombre A et extrait ce nombre. Lors d'une étape 158, le processeur 16 tire un nombre aléatoire u, puis construit, lors d'une étape 160, un terme x à l'aide de la relation suivante: X = gumod n (1) où . - g et n sont les nombres enregistrés dans la mémoire 60. - mod indique que l'exponentiation gu est réalisée modulo n. Ensuite, lors d'une étape 162, le processeur 16 associe le terme X et le nombre aléatoire A selon une combinaison prédéfinie et signe le résultat de cette combinaison avec sa clé privée KC3pr. Une telle combinaison est par exemple la concaténation du terme X et du nombre aléatoire A. Lors d'une étape 164, le processeur 16 tire un nombre aléatoire B. Après cela, lors d'une étape 166, un message contenant conjointement le nombrealéatoire B, le terme X, le nombre aléatoire A et la signature de X et de A est envoyé à l'unité 14. Quand elle reçoit ce message, lors d'une étape 168, l'unité 14 vérifie la signature du terme X et du nombre aléatoire A avec la clé publique Kc3pu Si la signature est incorrecte, lors d'une étape 170, l'unité 14 commande l'arrêt du processeur 16 puis s'arrête. Dans le cas contraire, c'est-à-dire si la signature du terme X et du nombre aléatoire A est correcte, lors d'une étape 172, l'unité 14 extrait le terme X et le nombre aléatoire A du message reçu. Ensuite, lors d'une étape 174, l'unité 14 compare le nombre A reçu au nombre A envoyé lors de l'étape 154. Si les nombres aléatoires reçus et envoyés sont différents, alors lors d'une étape 176, l'unité 14 s'arrête. Dans le cas contraire, le procédé se poursuit par une étape 178 lors de laquelle l'unité 14 extrait le nombre aléatoire B du message reçu et tire un nombre aléatoire v. Ensuite, lors d'une étape 180, l'unité 14 construit un terme Y à l'aide de la relation suivante Y = g mod n (2) Lors d'une étape 182, l'unité 14 associe le terme Y et le nombre aléatoire B selon une combinaison prédéfinie, telle qu'une concaténation, et signe le résultat de cette combinaison avec la clé privée KT3pr. Lors d'une étape 184, l'unité 14 envoie au processeur 16 un message contenant conjointement le terme Y, le nombre aléatoire B et la signature de Y et de B. Lors d'une étape 190, le processeur 16 reçoit le message et vérifie, lors d'une étape 192, la signature du terme Y et du nombre aléatoire B avec la clé publique KT3pu. Si la signature est incorrecte, lors d'une étape 194, le processeur 16 commande l'arrêt de l'unité 14 puis s'arrête. Dans le cas contraire, le processeur 16 extrait, lors d'une étape 196, le terme Y et le nombre aléatoire B du message reçu. Ensuite, le processeur 16 compare, lors d'une étape 198, le nombre aléatoire B reçu au nombre aléatoire B envoyé lors de l'étape 166. Si ces nombres aléatoires ne sont pas égaux, alors lors d'une étape 200, le processeur 16 s'arrête. Si non, lors d'étapes 204 et 214, le processeur 16 et l'unité 14 procèdent chacun à la construction de la 30 nouvelle clé de session K5. Lors de l'étape 204, le processeur 16 construit la nouvelle clé de session à l'aide de la relation suivante: KS = Yumod n (3) Ensuite, lors d'une étape 206, le processeur vérifie si la clé de session construite lors de l'étape 204 appartient, pour les algorithmes de chiffrement et de déchiffrement mis en oeuvre, à une liste de clés faibles ou de clés semifaibles. Dans l'exemple de l'algorithme DES, la liste des clés faibles ou des clés semi-faibles est décrite dans la section 12.3 du livre de Bruce Schneier. Si la clé de session construite appartient à une telle liste des clés faibles ou semi--faibles, alors le processeur 16 conserve la clé de session courante pour chiffrer et déchiffrer les messages échangés avec l'unité 14. Si la clé de session construite n'appartient pas à cette liste de clés faibles ou semi-faibles, alors, lors d'une étape 208, le processeur 16 réinit_Lalise son compteur 56 puis, lors d'une étape 210, remplace la clé de session courante par la nouvelle clé de session désormais utilisée pour chiffrer et déchiffrer les messages échangés avec l'unité 14. En parallèle aux étapes 204 à 21C), lors de l'étape 214, l'unité 14 construit la nouvelle clé de session K5 à l'aide de la relation suivante: KS = X'mod n (4) L'unité 14 procède alors à une étape 216 de vérification pour savoir si la clé de session construite à l'étape 214 appartient, pour les algorithmes de chiffrement et de déchiffrement mis en oeuvre, à une liste des clés faibles ou semi-faibles. L'étape 216 est obligatoirement conçue de façon cohérente avec l'étape 206. Si la clé de session construite appartient à une telle liste de clés faibles ou semi-faibles, lors d'une étape 218, l'unité 14 déclenche immédiatement l'établissement d'une nouvelle clé de session. Pour cela, le procédé retourne à l'étape 112. Si la clé de session construite n'est pas une clé faible ou semi-faible, lors d'une étape 220, l'unité 14 réinitialise son compteur 30 puis, lors d'une étape 222, remplace la clé de session courante par la nouvelle clé de session construite. Ainsi, les messages suivants échangés entre l'unité 14 et le processeur 16 sont chiffrés à l'aide de la nouvelle clé de session. On notera que, grâce aux étapes 168 et 192, l'attaque de l'intercepteur est immédiatement détectée ce qui provoque l'arrêt immédiat du procédé de construction de la clé de session et le blocage des échanges. De même, grâce aux étapes 174 et 198 une attaque par rejeu est immédiatement détectée ce qui provoque l'arrêt immédiat de la construction de la clé de session et le blocage des échanges. Le procédé de la figure 4 précise la façon dont sont construits et chiffrés les messages échangés entre l'unité 14 et le processeur 16. Ce procédé débute, par exemple, dans l'unité 14 par 20 une phase 240 d'envoi d'un message MT de l'unité 14 vers le processeur 16. Au début de la phase 240, lors d'une étape 242, le compteur 30 est incrémenté d'un pas prédéterminé. Ensuite, lors d'une étape 244, le calculateur 34 calcule le code de redondance RT du message MT. Ce code de redondance est le résultat d'un algorithme cryptographique, tel qu'une fonction de hachage, appliqué au message MT et paramétré par la clé de session courante et par la valeur courante du compteur de message 30. Ce code de redondance permettra au processeur 16 de vérifier l'intégrité du message reçu. Ensuite, lors d'une étape 246, Le message MT est chiffré à l'aide de la clé de session courante KS pour obtenir le cryptogramme MT*. Lors d'une étape 247 on constitue un message MRT contenant le cryptogramme MT* et le code de redondance RT Le message MRT est alors envoyé au processeur 16 lors d'une étape 248. Lors d'une étape 2491, sous réserve qu'une procédure de changement de clé de session ne soit pas en cours, l'unité 14 compare la valeur du compteur de messages 30 au seuil S1. Si ce seuil est atteint ou dépassé, l'unité 14 mémorise lors d'une étape 2492 la nécessité d'activer une procédure de changement de clé de session qui sera effectuée conformément au procédé des figures 3A et 3B. Cette procédure de changement de clé sera déclenchée automatiquement par l'unité 14, notamment après que le message MRT aura été traité par le processeur 16 pour ne pas interrompre le traitement en cours. Les messages échangés lors de la procédure de changement de clé de session sont traités conformément au procédé de la figure 4. Le processeur 16 procède alors à une phase 250 de réception du message MRT. Au début de la phase 250, lors d'une étape 251, le processeur 16 reçoit le message MRT envoyé par l'unité 14. Le processeur 16 compare alors, lors d'une étape 252, la valeur courante du compteur 56 au seuil S2. Si la valeur du compteur 56 a atteint ou dépassé le 25 seuil S2, alors le processeur 16 s'arrête, lors d'une étape 254. Dans le cas contraire, lors d'une étape 256, le compteur 56 est incrémenté d'un pas. Les pas d'incrémentation du compteur 30 de l'unité 14 et du compteur 56 du processeur 16 peuvent être quelconques, par exemple de un, mais doivent être les mêmes pour que les compteurs 30 et 56 soient synchronisés c'està-dire qu'avant les étapes de vérification du code de redondance leurs valeurs soient identiques. On notera aussi que la synchronisation des compteurs 30 et 56 ne nécessite pas d'échanger explicitement la valeur des compteurs entre l'unité 14 et le processeur 16. Ensuite, lors d'une étape 258, le cryptogramme MT* est extrait du message MRT reçu puis déchiffré par le module 52 avec la clé de session courante pour obtenir le message MT. Lors d'une étape 260, le calculateur 54 vérifie le code de redondance RT contenu dans le message MRT reçu. A cet effet, il calcule le code de redondance RT' du message MT à l'aide de la clé de session courante et de la valeur courante du compteur 56 de la même façon que l'unité 14 à l'étape 244. Si le code de redondance reconstruit RT' ne correspond pas au code RT contenu dans le message reçu, alors, lors 15 d'une étape 262, le processeur 16 s'arrête. Dans le cas contraire, le processeur 16 traite lors d'une étape 263 le message MT reçu. Le processeur 16 peut également procéder à une phase 264 d'envoi d'un message Mc vers l'unité 14. Au début de la phase 264, le processeur 16 teste lors d'une étape 2651 si le compteur 56 a atteint ou dépassé le seuil S2. Si c'est le cas, il s'arrête lors d'une étape 2652. Sinon, lors d'une étape 266, le compteur 56 est incrémenté calculateur Mc. Comme à par la clé compteur de Lorsd'un pas. Ensuite, lors d'une étape 268, le 54 calcule le code de redondance Rc du message l'étape 244, ce code de redondance est paramétré de session courante et la valeur courante du message 56. de l'étape 270 suivante, le message Mc est chiffré à l'aide de la clé de session KS pour obtenir un cryptogramme Mc*. Lors d'une étape 271 on constitue un message contenant le cryptogramme Mc* et le code de redondance Rc. MAC Le message MRC est alors envoyé à l'unité 14 lors d'une étape 272. L'unité 14 procède alors à une phase 276 de réception du message envoyé par le processeur 16. Au début de la phase 276, lors d'une étape 278, l'unité 14 reçoit le message envoyé par le processeur 16. Lors d'une étape 284, le compteur 30 est incrémenté d'un pas. Comme aux étapes 242, 256 et 266, le pas d'incrémentation des compteurs 30 et 56 peut être quelconque mais doit être le même, pour garantir la synchronisation entre les deux compteurs. Puis, lors d'une étape 286, le module 28 extrait le cryptogramme Mc* du message reçu et le déchiffre avec la clé de session Ks courante. Ensuite, lors d'une étape 288, le calculateur 34 vérifie le code de redondance RC contenu dans le message reçu. A cet effet, il calcule le code de redondance RC' du message Mc à l'aide de la clé de session courante et de la valeur courante du compteur 30 de la même façon que le processeur 16 à l'étape 268. Si le code de redondance RC' reconstruit est différent du code de redondance RC reçu, alors l'unité 14 s'arrête lors d'une étape 290. Dans le cas contraire, l'unité 14 traite le message 25 déchiffré MC, lors d'une étape 292. Lors d'une étape 294, sous réserve qu'une procédure de changement de clé de session ne soit pas en cours, l'unité 14 compare la valeur du compteur de messages 30 au seuil S1. Si ce seuil est atteint ou dépassé, l'unité 14 mémorise lors d'une étape 296 la nécessité d'activer une procédure de changement de clé de session qui sera déclenchée automatiquement par l'unité 14. La procédure de changement de clé de session est effectuée conformément au procédé des figures 3A et 3B avec des messages traités conformément au procédé de la figure 4. On notera que immédiatement après la première insertion du processeur 16 dans l'unité 14, la clé de 5 session utilisée pour chiffrer les messages échangés est la clé pré-enregistrée Ksi,. Cette clé sert à masquer les messages échangés lors de la première mise à la clé conforme au procédé des figures 3A et 3B. De nombreux autres modes de réalisation du système 2 et des procédés des figures 2, 3A, 3B et 4 sont possibles. Par exemple, l'étape 162 peut être remplacée par une étape de signature lors de laquelle soit seul le terme X soit seul le nombre aléatoire A est signé avec la clé privée KC3prÉ De même, l'étape 182 peut être remplacée par une étape lors de laquelle soit seul le terme Y soit seul le nombre aléatoire B est signé avec la clé KT3pr. Les étapes suivantes du procédé des figures 3A et 3B sont alors adaptées en conséquence Les certificats CiT et C1C peuvent être remplacés respectivement par les valeurs des clés KTlpu et Kclpu sans qu'un certificat de ces clés publiques soit utilisé. Si une réponse est systématiquement envoyée à chaque message reçu, il est possible d'incrémenter les compteurs 30 et 56 soit uniquement lors de la réception d'un message soit uniquement lors de l'envoi d'un message. Les certificats échangés entre le processeur 16 et l'unité 14 peuvent contenir des informations complémentaires permettant à chacune de ces unités d'identifier selon divers critères l'autre unité. Suite à l'analyse de ces informations complémentaires, l'une des unités peut adopter un comportement spécifique adapté à l'autre unité comme cela a, par exemple, été décrit dans la demande de brevet FR 2 841 714. Le code de redondance transmis dans les messages échangés peut également être utilisé, conjointement à la clé de session KS, pour initialiser le chiffrement des messages, lors des étapes 246 et 270, et leur déchiffrement, lors des étapes 258 et 286,. Le chiffrement peut porter sur la combinaison du message MT (respectivement Md et de son code de redondance. Dans ce cas, les étapes 246 et 247 (respectivement 270 et 271) sont permutées. Le message MT (respectivement Md et son code de redondance sont d'abord combinés lors de l'étape 247 (respectivement 271) puis cette combinaison est chiffrée lors de l'étape 246 (respectivement 270) pour obtenir le message à transmettre. De même, lors de l'étape 258 (respectivement 286), le déchiffrement porte sur le message reçu et fournit le message MT (respectivement Md et son code de redondance. Dans ce cas l'initialisation du chiffrement par le code de redondance n'est pas applicable. Lorsque l'une des unités s'arrête suite à la détection d'une tentative d'attaque, il n'est pas nécessaire que celle-ci demande, avant de s'arrêter, l'arrêt de l'autre unité. Par exemple, l'arrêt de l'unité se traduit par l'absence de réponse à un message, cette absence de réponse pouvant être interprétée par l'autre unité comme étant une commande d'arrêt. A cet effet, les unités mettront typiquement en oeuvre une minuterie déclenchant automatiquement l'arrêt de l'unité en question si celle-ci n'a pas reçu une réponse à un message dans le temps décompté par la minuterie. Le procédé de la figure 2 est décrit dans le cas particulier ou les autorités pourvus des certificats C2T et C2C sont des fabricants ce qui permet de contrôler l'interopérabilité des terminaux ou processeurs fabriqués par différents fabricants. En variante, des certificats différents C2T et C2C sont affectés à différents opérateurs de signaux multimédia. Dans ce cas là, les certificats permettent de contrôler l'interopérabilité des terminaux et des processeurs de différents opérateurs. Dans un autre exemple de réalisation, l'unité 14 est 5 intégrée dans le décodeur 10. Dans un autre exemple de réalisation, les données contenues dans la mémoire 26 ou 60 peuvent être modifiées par des messages spécifiques, en particulier les certificats peuvent être renouvelés en fonction de leurs périodes de validité. c2T et c2C REVENDICATIONS 1. Procédé d'établissement d'une clé de session Ks symétrique commune entre une unité de désembrouillage de signaux multimédias embrouillés avec un mot de contrôle et une unité cryptographique amovible propre à déchiffrer le mot de contrôle nécessaire au désembrouillage, dans lequel: a) l'une des unités, dite première unité, tire (en 152, 164) un nombre aléatoire (A ou B) et l'envoie à l'autre unité, b) l'autre unité, dite seconde unité, construit (en 160, 180) un terme a (X ou Y) à partir duquel la première unité peut établir la clé de session KS selon la relation suivante. KS = as mod n où R est un nombre aléatoire tiré par la première unité et n est un nombre premier, caractérisé en ce que: c) la seconde unité envoie (en 166, 184) à la première unité un message contenant conjointement le nombre aléatoire reçu, le terme a et une signature du nombre aléatoire et/ou du terme a réalisée avec une clé privée 25 K3pr, puis d) la première unité vérifie (en 168, 192) la signature à l'aide d'une clé publique K:3pu correspondant à la clé privée K3pr et compare (en 174, 198) le nombre aléatoire reçu à celui envoyé, et e) si la signature est incorrecte ou si le nombre aléatoire reçu ne correspond pas à celui envoyé, alors la première unité ne procède pas aux étapes suivantes permettant d'établir la clé de session. 2. Procédé selon la revendication 1, caractérisé en ce que les étapes a) à e) sont réitérées une seconde fois en inversant les rôles des première et seconde unités. 3. Procédé selon l'une quelconque des revendications 5 précédentes, caractérisé en ce que préalablement aux étapes a) à e), l'unité de désembrouillage et l'unité cryptographique amovible échangent mutuellement (en 112, 120, 128, 130) : - une première clé publique Klpu, - un premier certificat (C2T et C2C) contenant au moins une deuxième clé publique K2pu, ce certificat étant signé à l'aide d'une première clé privée Klpr correspondant à la première clé publique Klp,,, et - un second certificat (C3T et C3C) contenant au moins une troisième clé publique K3pu, ce certificat étant signé à l'aide d'une deuxième clé privée K2pr correspondant à la deuxième clé publique K2pu, la troisième clé publique K3pu correspondant à la clé privée K3pr utilisée pour réaliser la signature lors de l'étape c), et en ce que l'unité de désembrouillage et l'unité cryptographique amovible vérifient (en 128, 130) chacune les premier et second certificats reçus et procèdent aux étapes a) à e) uniquement si l'unité de désembrouillage et l'unité cryptographique amovible ont pu vérifier avec succès l'authenticité des premier et second certificats reçus par chacune d'elle. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'au moins l'une des unités incrémente (en 242, 284) un premier compteur interne en fonction du nombre de messages envoyés vers et/ou reçus de l'autre unité et déclenche (en 2492, 296) automatiquement l'établissement d'une nouvelle clé de session si le premier compteur dépasse un premier seuil prédéterminé. 5. Procédé selon la revendication 4, caractérisé en ce que l'autre unité incrémente (en 256, 266) un second compteur interne en fonction du même nombre de messages et provoque (en 254, 2652) automatiquement l'arrêt du désembrouillage des signaux multimédias si le second compteur dépasse un second seuil prédéterminé supérieur au premier seuil. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que: - chacune des unités incrémente (en 242, 256, 266, 284) un compteur interne en fonction du nombre de messages envoyés et/ou reçus, - au moins l'une des unités ajoute (en 247, 271) à chaque message envoyé vers l'autre unité un code de redondance calculé en fonction du contenu du message à envoyer et de la valeur actuelle de son compteur interne, et - l'autre unité vérifie (en 260, 288) l'exactitude du message reçu en comparant le code de redondance ajouté à un code de redondance calculé en fonction du contenu du message reçu et de la valeur actuelle de son propre compteur interne. 7. Unité (14, 16) adaptée pour être mise en uvre dans un procédé d'établissement d'une clé de session commune conforme à l'une quelconque des revendications précédentes, caractérisée en ce que cette unité est apte à exécuter soit les étapes a), d) et e) soit les étapes b) et c) du procédé d'établissement d'une clé de session conforme aux revendications précédentes. 8. Unité (14, 16) selon la revendication 7, caractérisée en ce que l'unité est apte à échanger avec l'autre unité la première clé publique, le premier et le second certificats et à vérifier les premier et second certificats reçus pour procéder soit aux étapes a), d) et e) soit aux étapes b) et c) uniquement si l'authenticité des premier et second certificats reçus a pu être vérifiée avec succès. 9. Unité (14, 16) selon la revendication 7 ou 8, caractérisée en ce que l'unité est apte soit à incrémenter un premier compteur interne (30) en fonction du nombre de messages envoyés vers et/ou reçus de l'autre unité et à déclencher l'établissement d'une nouvelle clé de session si le compteur dépasse un premier seuil prédéterminé (S1) soit à incrémenter un second compteur interne (56) en fonction du même nombre de messages et à provoquer l'arrêt du désembrouillage des signaux multimédias si le second compteur dépasse un second seuil prédéterminé (S2) supérieur au premier seuil. 10. Unité selon l'une quelconque des revendications 7 à 9, caractérisée en ce que l'unité est apte: - à incrémenter un compteur interne (30, 56) en fonction d'un nombre de messages envoyés vers et/ou reçus de l'autre unité et, soit à ajouter à chaque message envoyé vers l'autre unité un code de redondance calculé en fonction du contenu du message à envoyer et de la valeur actuelle de son compteur interne, - soit à vérifier l'exactitude du message reçu en comparant le code de redondance ajouté à un code de redondance calculé en fonction du contenu du message reçu et de la valeur actuelle de son propre compteur interne. 11. Unité selon l'une quelconque des revendications 7 à 10, caractérisée en ce que l'unité est soit une unité (14) de désembrouillage d'un signal multimédia embrouillé avec un mot de contrôle soit une unité cryptographique amovible (16) propre à déchiffrer le mot de contrôle nécessaire au désembrouillage.