Brevet FR3103591A1 — publié le 20210528

Procédé sécurisé d’échange de données entre un terminal et un serveur Dans ce procédé sécurisé d’échanges de données entre un terminal (TRM) et un serveur (SRV) : - le serveur utilise un module cryptographique (CRY) configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant le message, une réponse à un défi et une clé symétrique (Ku) ; et - le terminal utilise un module cryptographique en boite blanche (CRYBBu) constituant une implémentation en boite blanche du module cryptographique (CRY) dudit serveur (SRV) pour cette clé symétrique (Ku). Figure 7 Procédé sécurisé d’échange de données entre un terminal et un serveur Arrière-plan de l’invention La présente invention se situe dans le domaine de l’échange sécurisé de données dans un réseau de télécommunications. Dans l’état actuel de la technique, il est usuel, pour garantir la confidentialité des échanges, que l’émetteur chiffre les données avec une clé cryptographique avant de les envoyer dans le réseau, le récepteur comportant des moyens cryptographiques pour déchiffrer les données reçues avec une clé identique ou compatible avec celle de l’émetteur. Ces mécanismes très répandus présentent une fragilité importante si les clés cryptographiques d’un équipement peuvent être obtenues par un tiers malveillant en attaquant directement l’équipement ou en surveillant son exécution. L’invention vise un procédé sécurisé d’échange de données moins vulnérable que ceux de l’art antérieur. Objet et résumé de l’invention L’invention vise par conséquent un nouveau mécanisme sécurisé d’échange de données entre deux équipements. Elle est présentée ci-après pour un échange sécurisé entre un terminal et un serveur mais elle pourrait s’appliquer à d’autres équipements dès lors que l’un de ces deux équipements est moins vulnérable aux attaques que l’autre de ces deux équipements. Plus précisément, le terminal est considéré comme n’étant pas de confiance. Plus précisément, et selon un premier aspect, l’invention concerne un procédé de fourniture d’un module cryptographique en boite blanche. Ce procédé est mis en œuvre par un serveur comportant un module cryptographique configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une clé symétrique et une réponse à un défi. Ledit procédé comporte : - une étape d’obtention d’une clé symétrique pour un terminal ; - une étape de génération d’un module cryptographique en boite blanche, ledit module cryptographique en boite blanche étant une implémentation en boite blanche du module cryptographique du serveur pour ladite clé symétrique obtenue pour ce terminal, ledit module cryptographique en boite blanche étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique enfouie dans ce module et de paramètres d’entrée comportant un message et une réponse à un défi ; et - une étape de fourniture dudit module cryptographique en boite blanche audit terminal. Corrélativement, l’invention concerne un serveur comportant : - un module cryptographique configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une réponse à un défi et une clé symétrique, - un module d’obtention d’une clé symétrique pour un terminal ; - un module de génération d’un module cryptographique en boite blanche, ledit module cryptographique en boite blanche étant une implémentation en boite blanche dudit module cryptographique du serveur pour ladite clé symétrique obtenue pour ce terminal, ledit module cryptographique en boite blanche étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique enfouie dans ce module et de paramètres d’entrée comportant un message et une réponse à un défi , et - un module de fourniture dudit module cryptographique en boite blanche audit terminal. Selon un deuxième aspect, l’invention concerne un procédé d’obtention d’un module cryptographique en boite blanche. Ce procédé est mis en œuvre par un terminal. Il comporte : - une étape d’envoi d’un identifiant du terminal à un serveur comportant un module cryptographique configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une réponse à un défi et une clé symétrique ; - une étape de réception d’un module cryptographique en boite blanche constituant une implémentation en boite blanche du module cryptographique dudit serveur pour ladite clé symétrique, ledit module cryptographique en boite blanche étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique enfouie dans ce module et de paramètres d’entrée comportant un message et une réponse à un défi. Corrélativement, l’invention concerne un terminal comportant : - un module d’envoi d’un identifiant du terminal à un serveur comportant un module cryptographique configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une réponse à un défi et une clé symétrique ; - un module de réception d’un module cryptographique en boite blanche constituant une implémentation en boite blanche du module cryptographique dudit serveur pour ladite clé symétrique, ledit module cryptographique en boite blanche étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique enfouie dans ce module et de paramètres d’entrée comportant un message et une réponse à un défi. L’invention propose ainsi un mécanisme sécurisé d’échanges de données entre un serveur et un terminal dans lequel les fonctions cryptographiques de chiffrement et/ou de déchiffrement du terminal sont implémentées selon un mécanisme de cryptographie en boite blanche. Ainsi, la clé symétrique utilisée par le terminal pour la mise en œuvre des fonctions cryptographiques de chiffrement et/ou de déchiffrement n’est pas mémorisée dans une mémoire du terminal mais cachée dans le code du module cryptographique en boite blanche généré par le serveur pour ce terminal. La clé symétrique ne peut donc pas être obtenue par un tiers malveillant qui attaquerait ou espionnerait le terminal pendant son exécution. L’invention est donc particulièrement adaptée lorsque les terminaux sont des terminaux mobiles, des objets connectés ou tout dispositif vulnérable aux attaques, notamment aux virus. Pour plus de renseignement sur la notion de cryptographie en boite blanche, l’homme du métier peut se reporter au document « Comprendre la cryptographie en White Box , livre blanc», publié à l’adresse : https://www2.gemalto.com/email/2012/SRM/whitebox/public/pdf/WP_Whitebox_Cryptography__FR___A4__v4_web_1_.pdf. Conformément à l’invention, le module cryptographique mis en œuvre par le serveur n’est pas implémenté en boite blanche, un tel serveur étant suffisamment sécurisé et moins exposé aux attaques qui viseraient à obtenir frauduleusement la clé symétrique. Ce serveur est dit de confiance. Cette caractéristique permet une exécution plus rapide des fonctions cryptographiques côté serveur. Dans un mode de réalisation de l’invention, le procédé d’obtention d’un module cryptographique en boite blanche mis en œuvre par le terminal comporte en outre : - une étape d’obtention d’au moins un couple défi/réponse, d’envoi dudit au moins un couple défi/réponse audit serveur, - ladite réponse étant obtenue à partir dudit défi et d’une fonction probabiliste mettant en œuvre une fonction physique non clonable du terminal. Dans ce mode de réalisation de l’invention, le procédé de fourniture d’un module cryptographique en boite blanche mis en œuvre par le serveur comporte une étape de réception et d’enregistrement d’au moins un couple défi/réponse en provenance dudit terminal. On rappelle qu’une fonction physique non clonable du terminal est une caractéristique d’un composant matériel du terminal qui permet de différencier de façon unique une instance d’un terminal parmi d’autres terminaux de la même marque, du même modèle, produits au même moment. Il est en effet difficile de fabriquer un terminal présentant les mêmes caractéristiques qu’un autre terminal. Dans un mode de réalisation particulier, la fonction physique non clonable d’un terminal peut être constituée par une caméra du terminal. Une telle caméra induit en effet nécessairement des imperfections ou du bruit dans les images qu’elle produit, en raison des caractéristiques du capteur, par exemple des photodiodes de ce capteur. D’autres fonctions physiques du terminal peuvent être envisagées. Selon un premier exemple, d’autres capteurs du terminal que la caméra peuvent être utilisés, comme un gyroscope, un accéléromètre, un microphone,... Selon un deuxième exemple, cette fonction physique non clonable peut être mise en œuvre par une puce électronique intégrée au terminal. Il est ici souligné que la fonction physique non clonable est attachée aux caractéristiques du terminal et est propre au terminal. L’invention propose ainsi d’utiliser une fonction non clonable du terminal pour générer des couples défi/réponse, ces couples permettant en particulier au terminal de fournir au serveur une preuve qu’il est bien un terminal connu du serveur. La réponse au défi correspond à un secret partagé entre le terminal enrôlé et le serveur et seul le terminal enrôlé est capable de le déterminer en fonction d’un défi. L’invention propose également d’utiliser les couples défi/réponse ainsi obtenus dans les mécanismes cryptographiques de chiffrement/déchiffrement des messages échangés entre le terminal et le serveur. L’invention vise ainsi un procédé de chiffrement d’un message mis en œuvre par un terminal, ce procédé comportant : - une étape d’obtention d’un module cryptographique en boite blanche en provenance d’un serveur, ledit module cryptographique en boite blanche étant configuré pour chiffrer ou déchiffrer un message à partir d’une clé symétrique propre au terminal et enfouie dans ce module et de paramètres d’entrée comportant un message et une réponse à un défi, - une étape d’obtention d’une réponse à un défi par mise en œuvre d’une fonction probabiliste mettant en œuvre une fonction physique non clonable du terminal ; et - une étape d’envoi audit serveur du message chiffré par ledit module cryptographique en boite blanche en fonction de la réponse au défi. De même l’invention vise un procédé de déchiffrement d’un message chiffré reçu en provenance d’un terminal, ce procédé étant mis en œuvre par un serveur et comportant : - une étape d’envoi d’un défi au terminal et de réception en provenance du terminal d’un message chiffré au moyen d’un module cryptographique en boite blanche fourni par ledit serveur, ce module cryptographique en boite blanche étant une implémentation en boite blanche d’un module cryptographique dudit serveur pour une clé symétrique du terminal, ledit module cryptographique en boite blanche étant configuré par le serveur pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant un message et une réponse à un défi, et de ladite clé symétrique enfouie dans ledit module cryptographique en boite blanche, ladite réponse reçue en provenance du terminal correspondant à une réponse d’un couple défi/réponse reçu du terminal dans une phase préalable d’enrôlement; - une étape de déchiffrement mise en œuvre en fournissant ladite clé symétrique, la réponse au défi et le message chiffré en entrée du module cryptographique dudit serveur, le résultat de ladite étape de déchiffrement comportant un message en clair. De la même façon, l’invention vise aussi un procédé de chiffrement d’un message mis en œuvre par un serveur, ledit message chiffré étant destiné à être envoyé à un terminal, ce procédé comportant : - une étape de chiffrement de données comportant l’obtention d’une clé symétrique dudit terminal et d’une réponse à un défi, reçu dudit terminal au cours d’une phase d’enrôlement (ENR) du terminal, au cours de laquelle le serveur a généré et fourni au terminal un module cryptographique en boite blanche, ledit module cryptographique en boite blanche étant une implémentation en boite blanche d’un module cryptographique du serveur pour ladite clé symétrique, ledit module cryptographique en boite blanche étant configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant un message , une réponse à un défi, et ladite clé symétrique enfouie dans ledit module cryptographique en boite blanche, ladite réponse reçue en provenance du terminal correspondant à une réponse d’un couple défi/réponse ; - une étape de chiffrement mise en œuvre en fournissant en entrée du module cryptographique dudit serveur ladite clé symétrique, ladite réponse et ledit message et ; - une étape d’envoi du défi et d’un message chiffré obtenu audit terminal. De même, l’invention vise également un procédé de déchiffrement d’un message chiffré mis en œuvre par un terminal, ce procédé comportant : - une étape d’obtention d’un module cryptographique en boite blanche en provenance d’un serveur, ledit module cryptographique en boite blanche étant configuré pour chiffrer ou déchiffrer un message à partir d’une clé symétrique propre au terminal et enfouie dans ce module et de paramètres d’entrée comportant un message et une réponse à un défi, - une étape de réception, en provenance dudit serveur d’un défi et d’un message chiffré ; - une étape d’obtention d’une réponse au défi reçu par mise en œuvre d’une fonction probabiliste mettant en œuvre une fonction physique non clonable du terminal ; - une étape de déchiffrement du message chiffré par ledit module cryptographique en boite blanche pour obtenir ledit message en clair. Dans un mode particulier de réalisation, les différentes étapes des procédés mentionnés ci-dessus sont déterminées par des instructions de programmes d’ordinateurs. En conséquence, l’invention vise aussi un programme d’ordinateur sur un support d’informations, ce programme étant susceptible d’être mis en œuvre dans un serveur ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de fourniture d’un module cryptographique en boite blanche tel que présenté ci-dessus. L’invention vise aussi un programme d’ordinateur sur un support d’informations, ce programme étant susceptible d’être mis en œuvre dans un terminal ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé d’obtention d’un module cryptographique en boite blanche tel que présenté ci-dessus. L’invention vise aussi un programme d’ordinateur sur un support d’informations, ce programme étant susceptible d’être mis en œuvre dans un serveur, dans un terminal ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de chiffrement ou d’un procédé de déchiffrement tel que présenté ci-dessus. Ces programmes peuvent utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable. L’invention vise aussi un support d'informations ou d’enregistrement lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations ou d’enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur. D'autre part, le support d'informations ou d’enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations ou d’enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : la figure 1 représente un terminal et un serveur conformes à l’invention, dans leur environnement ; la figure 2 représente de façon fonctionnelle un serveur conforme à un mode particulier de réalisation de l’invention ; la figure 3A représente un premier usage d’un module cryptographique pouvant être mis en œuvre dans le serveur de la figure 2; la figure 3B représente un deuxième usage d’un module cryptographique pouvant être mis en œuvre dans le serveur de la figure 2; la figure 4 représente de façon fonctionnelle un terminal conforme à un mode particulier de réalisation de l’invention ; la figure 5A représente un premier usage d’un module cryptographique en boite blanche pouvant être mis en œuvre dans le terminal de la figure 4; la figure 5B représente un deuxième usage d’un module cryptographique en boite blanche pouvant être mis en œuvre dans le terminal de la figure 4; la figure 6 représente un exemple de module probabiliste comportant une fonction non clonable et pouvant être mis en œuvre dans le terminal de la figure 4; la figure 7 représente sous forme d’ordinogramme des méthodes de chiffrement et de déchiffrement une méthode pouvant être mis en œuvre par le terminal de la figure 4 et par le serveur de la figure 2, ces méthodes étant conformes à des modes particuliers de réalisation de l’invention ; la figure 8A est une représentation matérielle d’un terminal conforme à un mode particulier de réalisation de l’invention ; et la figure 8B est une représentation matérielle d’un serveur conforme à un mode particulier de réalisation de l’invention. Description détaillée de l’invention La figure 1 représente un terminal TRM conforme à un mode particulier de réalisation de l’invention et un serveur SRV conforme un mode particulier de réalisation de l’invention dans leur environnement, aptes à communiquer par un réseau de télécommunications NET, pour s’échanger des messages de façon sécurisée, selon un mécanisme cryptographique à clé symétrique. Dans le mode de réalisation décrit ici, et comme représenté à la figure 2, le serveur SRV comporte un module de communication COM et un module cryptographique CRY. Dans le mode de réalisation décrit, et comme représenté aux figures 3A et 3B, le module cryptographique CRY du serveur SRV comporte: - un module ENC de chiffrement, configuré pour obtenir en fonction d’un défi une réponse à ce défi et pour chiffrer avec une clé symétrique Ku reçue en entrée de ce module, un message en clair msg reçu en entrée de ce module, et la réponse au défi, le message chiffré étant noté [msg] ; et - un module DEC de déchiffrement, configuré pour obtenir en fonction d’un défi une réponse à ce défi et pour déchiffrer avec la clé symétrique Ku reçue en entrée de ce module, un message chiffré [msg] reçu en entrée de ce module, le message déchiffré étant noté msg. En variante, le module cryptographique CRY pourrait être configuré pour ne mettre en œuvre que des fonctions de déchiffrement ou que des fonctions de chiffrement et ne comprendre que le module DEC ou ENC correspondant. Dans le mode de réalisation décrit ici, et comme représenté à la figure 4, le terminal TRM comporte : - un module de communication COM compatible avec le module de communication COM du serveur SRV ; et - un module cryptographique CRYBBu en boite blanche. Dans le mode de réalisation décrit, et comme représenté aux figures 5A et 5B, le module cryptographique CRYBBu en boite blanche du terminal TRM comporte : - un module ENCBBu de chiffrement en boite blanche, pour obtenir en fonction d’un défi une réponse à ce défi et pour chiffrer, en fonction de la réponse au défi et de la clé symétrique Ku, un message msg reçu en entrée de ce module, le message chiffré étant noté [msg] ; et - un module DECBBu de déchiffrement en boite blanche, pour obtenir en fonction d’un défi une réponse à ce défi et pour déchiffrer avec la clé symétrique Ku et la réponse au défi un message chiffré [msg] reçu en entrée de ce module, le message déchiffré étant noté msg. Conformément aux mécanismes cryptographiques en boite blanche, la clé symétrique Ku n’est pas reçue en entrée du module cryptographique CRYBBu mais enfouie de façon secrète dans ce module. Par enfouie de façon secrète, on entend que cette clé symétrique n’est pas accessible par un tiers malveillant qui attaquerait ou espionnerait le terminal pendant l’exécution des opérations de chiffrement ou de déchiffrement. Le module cryptographique CRYBBu constitue une implémentation en boite blanche du module cryptographique CRY du serveur SRV, pour la clé symétrique Ku. Autrement dit et par exemple : - un message [msg] chiffré obtenu par la module CRY du serveur lorsqu’il prend en entrée la clé symétrique Ku, une réponse à un défi et un message msg donné; et - le message [msg] obtenu par le module cryptographique CRYBBu lorsqu’il prend en entrée ce même message msg et une réponse à ce défi sont identiques. Le module cryptographique en boite blanche CRYBBu pourrait être configuré pour ne mettre en œuvre que des fonctions de déchiffrement ou que des fonctions de chiffrement et ne comprendre que le module en boite blanche DECBBu ou ENCBBu correspondant. Les moyens COM de communication du serveur SRV et du terminal TRM sont adaptés pour permettre au terminal TRM d’envoyer un identifiant u de ce terminal au serveur SRV pour s’authentifier auprès de ce serveur. Dans le mode de réalisation décrit ici, et comme représenté à la figure 2, le serveur SRV comporte un module MGBB configuré pour : - générer une clé symétrique Ku pour le terminal TRM sur réception de l’identifiant u de ce terminal ; - générer le module cryptographique en boite blanche CRYBBu pour cette clé Ku. Les moyens COM de communication du serveur SRV et du terminal TRM sont adaptés pour permettre au terminal SRV d’envoyer le module cryptographique en boite blanche CRYBBu au terminal TRM, soit tel quel, soit intégré dans une application APP. Dans le mode de réalisation décrit ici, le terminal TRM comporte un module d’installation MI configuré pour pouvoir installer le module cryptographique CRYBBu ou l’application APP dans une mémoire non volatile réinscriptible de ce terminal. Comme représenté à la figure 4, le terminal TRM comporte un module probabiliste MPROB qui va maintenant être décrit en référence à la figure 6. Ce module probabiliste MPROB comporte une fonction physique non clonable PUF. Dans le mode de réalisation décrit ici, ce module probabiliste MPROB est configuré pour : - recevoir en entrée un paramètre variable, c’est-à-dire un défi xi ; - calculer une réponse à ce défi yi. Dans l’exemple de réalisation décrit ici, cette fonction physique est une caméra du terminal. Elle présente des caractéristiques matérielles propres au terminal TRM. Dans le mode de réalisation décrit ici, ce module probabiliste MPROB est configuré pour : - recevoir en entrée un paramètre variable, par exemple une durée d’exposition xi correspondant au défi ; - acquérir une image avec la caméra PUF pendant la durée d’exposition xi ; - calculer une signature y’i de cette image. Dans un mode de réalisation particulier, il se peut que la signature y’i soit bruitée et que pour des images acquises avec une même durée d’exposition xi, des signatures y’ij différentes soient obtenues. Dans ce mode de réalisation, le module probabiliste MPROB comporte un filtre correcteur FC configuré pour générer une signature yi, c’est-à-dire une réponse au défi xi, à partir de la signature bruitée y’i, cette signature yi étant identique pour des signatures bruitées y’ij obtenues pour la même durée d’exposition xi. Dans un mode de réalisation particulier, ce filtre FC est secret et propre au terminal TRM. Ainsi le débruitage, secret, permet d’augmenter la sécurisation du chiffrement et du déchiffrement de message. Le module probabiliste MPROB est configuré pour fournir en sortie la signature yi non bruitée, en tant que réponse au défi xi. Dans le mode de réalisation décrit ici, la signature bruitée y’i est une empreinte d’un signal d’obscurité connu en soi par l’homme du métier des capteurs photographiques. Dans le mode de réalisation décrit ici, la signature non bruitée yi est obtenue en projetant la signature bruitée y’i sur une suite binaire, comme de façon connue par un homme du métier du codage. D’autres fonctions physiques du terminal peuvent être envisagées. Il s’agit par exemple d’utiliser d’autres capteurs d’un terminal, comme un gyroscope, un accéléromètre, un microphone,... Il peut également s’agir d’une puce électronique intégrée au terminal mettant en œuvre cette fonction physique non clonable. On rappelle que la fonction physique non clonable est attachée aux caractéristiques du terminal et est propre au terminal. On suppose maintenant que l’utilisateur du terminal TRM souhaite souscrire, auprès du serveur SRV, à un service mettant en œuvre un mécanisme d’échange de données sécurisé conforme à l’invention, par exemple un service de paiement. Au cours, d’une étape E10, et comme représenté à la figure 7, le terminal TRM s’enregistre auprès du serveur SRV en lui fournissant son identifiant u. Cet identifiant est reçu par le serveur SRV au cours d’une étape F10. Dans le mode de réalisation décrit ici, le serveur SRV authentifie l’utilisateur au cours d’une étape F20. Si l’authentification réussit, au cours d’une étape F30, le serveur SRV : - génère une clé symétrique Ku pour le terminal TRM ; - enregistre cette clé symétrique Ku en association avec l’identifiant u du terminal TRM dans une base de données BDS ; - génère un module cryptographique en boite blanche CRYBBu pour cette clé symétrique Ku ; et - intègre ce module cryptographique en boite blanche CRYBBu dans une application APP adaptée au service souhaité, en l’occurrence au service de paiement sécurisé. Au cours d’une étape F35, le serveur SRV, qui agit comme tiers de confiance, obtient un ensemble de défis xi de manière aléatoire. Dans le mode de réalisation décrit ici, le serveur SRV envoie l’application APP et l’ensemble des défis xi au terminal TRM au cours d’une même étape F40. Le terminal TRM les reçoit au cours d’une étape E20. Au cours d’une étape E30, le terminal TRM génère une réponse yi pour chaque défi xi reçu du serveur SRV tiers de confiance en utilisant la fonction probabiliste MPROB. Il forme ainsi des couples défi/réponse {xi, yi}. Dans l’exemple de réalisation décrit ici, une réponse yi est obtenue en fonction du défi, la réponse yi associée étant la signature non bruitée obtenue par le module probabiliste MPROB pour ce paramètre d’entrée xi. Dans le mode de réalisation décrit ici, le terminal TRM envoie les couples {défi, réponse} au serveur SRV au cours de cette même étape E30. Ils sont reçus par le serveur SRV et enregistrés dans la base de données BDS au cours d’une étape F50. Il est souligné ici que les couples {défi, réponse} ne sont pas conservés dans une mémoire du terminal TRM. Les étapes E10 à E30 et F10 à F50 constituent une phase d’enrôlement référencée ENR sur la figure 7. On suppose que le terminal veut envoyer un message msg de façon sécurisée au serveur SRV. Au cours d’une étape E40, le terminal : - reçoit un défi xi en provenance du serveur SRV ; - utilise le module probabiliste MPROB pour calculer la réponse yi à ce défi. Dans le mode de réalisation décrit ici, cette opération consiste à prendre une image avec la durée d’exposition xi, calculer une signature bruitée y’i du signal d’obscurité de cette image, et obtenir le défi yi par projection de la signature bruitée y’i sur une chaîne binaire ; - utilise le module de chiffrement ENCBBu en boite blanche pour chiffrer le message msg en fonction de la réponse yi afin d’obtenir le message chiffré [msg] ; et - envoie au serveur SRV son identifiant u, le défi xi et le message chiffré [msg]. De manière optionnelle, le défi xi n’est pas envoyé au serveur SRV. Ces données sont reçues par le serveur SRV au cours d’une étape F60. Au cours d’une étape F70, le serveur SRV obtient la clé symétrique Ku dans sa base de données BDS à partir de l’identifiant u. Il obtient de sa base de données BDS la réponse yi correspondant au défi xi. Il déchiffre le message chiffré [msg] en utilisant son module de déchiffrement DEC en fonction de la clé symétrique Ku et de la réponse yi et récupère un message. Si yi correspond bien à la valeur utilisée par le terminal, alors le message récupéré correspond au message msg en clair. On suppose que le serveur SRV souhaite envoyer un message msg au terminal TRM de façon sécurisée. Au cours d’une étape F80, le serveur SRV : - choisit un couple {xi, yi} dans sa base de données BDS ; - utilise le module de chiffrement ENC pour chiffrer le message msg en utilisant la clé symétrique Ku du terminal TRM et la réponse yi ; le résultat de ce chiffrement étant le message chiffré [msg] ; - envoie le défi xi et le message chiffré [msg] au terminal TRM. Ces données sont reçues par le terminal TRM au cours d’une étape E50. Au cours d’une étape E60, le terminal TRM : - utilise le module probabiliste (MPROB) pour calculer la réponse yi au défi xi ; - déchiffre le message chiffré [msg] en utilisant le module de déchiffrement en boite blanche DECBBu et obtient le message msg. Si yi calculé par le module probabiliste correspond bien à la valeur utilisée par le serveur, alors le message déchiffré correspond au message msg en clair. La figure 8A représente le terminal TRM de la figure 1. Dans le mode de réalisation décrit ici, ce terminal TRM a l’architecture d’un ordinateur. Il comporte notamment un processeur 10, une mémoire vive de type RAM 11, une mémoire morte de type ROM 12, une mémoire non volatile réinscriptible de type FLASH 13 et des moyens de communication COM. Dans le mode de réalisation décrit ici, l’application APP est enregistrée dans la mémoire non volatile 13. Les instructions de cette application et notamment celles du module cryptographique CRYBBu en boite blanche sont exécutées par le processeur 10. Dans ce mode de réalisation, la mémoire non volatile 13 mémorise également l’identifiant u du terminal. La mémoire morte 12 constitue un support d’enregistrement conforme à l’invention. Elle comporte un programme d’ordinateur PGT conforme à l’invention. Ce programme PGT comporte en particulier des instructions pour, lorsqu’elles sont exécutées par le processeur 10 : - communiquer avec le serveur SRV en utilisant le module de communications COM ; - recevoir un défi xi et calculer une réponse à ce défi, par exemple contrôler la caméra PUF pour prendre des images avec une durée d’exposition xi, calculer une signature de la image obtenue, la filtrer pour obtenir une réponse yi et envoyer les couples défis/réponses {xi, yi} au serveur SRV; - invoquer le module cryptographique CRYBBu en boite blanche pour chiffrer ou déchiffrer des messages en fonction d’une réponse à un défi. La figure 8B représente le serveur SRV de la figure 1. Dans le mode de réalisation décrit ici, ce serveur SRV a l’architecture d’un ordinateur. Il comporte notamment un processeur 20, une mémoire vive de type RAM 21, une mémoire morte de type ROM 22, une mémoire non volatile réinscriptible de type FLASH 23 et des moyens de communication COM. Dans ce mode de réalisation, la mémoire non volatile 23 mémorise également la base de données BDS. La mémoire morte 22 constitue un support d’enregistrement conforme à l’invention. Elle comporte un programme d’ordinateur PGS conforme à l’invention. Ce programme PGS comporte en particulier des instructions pour, lorsqu’elles sont exécutées par le processeur 20 : - communiquer avec le terminal TRM en utilisant le module de communications COM ; - générer des clés symétriques Ki, des modules cryptographiques CRYBBu en boite blanche pour ces clés et intégrer ces modules dans des applications pour différents services ; - mémoriser pour un terminal TRM dans une base de données BDS un ensemble de couples {xi, yi} associés à ce terminal ; - invoquer le module cryptographique CRY pour chiffrer ou déchiffrer des messages en fonction d’une réponse yi associée à un défi xi. Procédé de fourniture d’un module cryptographique en boite blanche (CRYBBu) mis en œuvre par un serveur (SRV) comportant un module cryptographique (CRY) configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une clé symétrique et une réponse à un défi, le procédé comportant : - une étape (F30) d’obtention d’une clé symétrique (Ku) pour un terminal ; - une étape (F30) de génération d’un module cryptographique en boite blanche (CRYBBu), ledit module cryptographique en boite blanche étant une implémentation en boite blanche du module cryptographique (CRY) du serveur pour ladite clé symétrique (Ku) obtenue pour ce terminal (TRM), ledit module cryptographique en boite blanche (CRYBBu) étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique (Ku) enfouie dans ce module (CRYBBu) et de paramètres d’entrée comportant un message et une réponse à un défi ; et - une étape (F40) de fourniture dudit module cryptographique en boite blanche (CRYBBu) audit terminal (TRM). Procédé de fourniture selon la revendication 1, ce procédé comportant en outre une étape (F50) de réception et d’enregistrement d’au moins un couple défi/réponse (xi, yi) en provenance dudit terminal (TRM). Procédé de chiffrement d’un message (msg) mis en œuvre par un serveur (SRV), ledit message chiffré ([msg) étant destiné à être envoyé à un terminal (TRM), ledit procédé comportant : - une étape (F80) de chiffrement de données comportant l’obtention d’une clé symétrique (Ku) dudit terminal (TRM) et d’une réponse (yi) à un défi (xi), reçu dudit terminal (TRM) au cours d’une phase d’enrôlement (ENR) du terminal, au cours de laquelle le serveur a généré et fourni au terminal un module cryptographique en boite blanche (CRYBBu), ledit module cryptographique en boite blanche (CRYBBu) étant une implémentation en boite blanche d’un module cryptographique (CRY) du serveur pour ladite clé symétrique (Ku), ledit module cryptographique en boite blanche (CRYBBu) étant configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant un message , une réponse à un défi, et ladite clé symétrique (Ku) enfouie dans ledit module cryptographique en boite blanche (CRYBBu), ladite réponse reçue en provenance du terminal correspondant à une réponse (yi) d’un couple défi/réponse (xi, yi) ; - une étape de chiffrement mise en œuvre en fournissant en entrée du module cryptographique (CRY) dudit serveur (SRV) ladite clé symétrique (Ku), ladite réponse (yi) et ledit message (msg) et ; - une étape d’envoi du défi (xi) et d’un message chiffré ([msg]) obtenu audit terminal (TRM). Procédé de déchiffrement d’un message chiffré ([msg) mis en œuvre par un serveur (SRV), ledit procédé comportant : - une étape d’envoi d’un défi (xi) au terminal et de réception (F60) en provenance du terminal (TRM) d’un message chiffré ([msg]) au moyen d’un module cryptographique en boite blanche (CRYBBu) fourni par ledit serveur, ce module cryptographique en boite blanche (CRYBBu) étant une implémentation en boite blanche d’un module cryptographique (CRY) dudit serveur (SRV) pour une clé symétrique (Ku) du terminal (TRM), ledit module cryptographique en boite blanche (CRYBBu) étant configuré par le serveur pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant un message et une réponse à un défi, et de ladite clé symétrique (Ku) enfouie dans ledit module cryptographique en boite blanche (CRYBBu), ladite réponse reçue en provenance du terminal correspondant à une réponse (yi) d’un couple défi/réponse (xi, yi) reçu du terminal dans une phase préalable d’enrôlement; - une étape de déchiffrement mise en œuvre en fournissant ladite clé symétrique (Ku), la réponse (yi)au défi (xi) et le message chiffré en entrée du module cryptographique (CRY) dudit serveur (SRV), le résultat de ladite étape de déchiffrement comportant un message en clair (msg). Serveur (SRV) comportant : - un module cryptographique (CRY) configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une réponse à un défi et une clé symétrique (Ku),: - un module (MGBB) d’obtention d’une clé symétrique (Ku) pour un terminal ; - un module (MGBB) de génération d’un module cryptographique en boite blanche (CRYBBu), ledit module cryptographique en boite blanche étant une implémentation en boite blanche dudit module cryptographique (CRY) du serveur pour ladite clé symétrique (Ku) obtenue pour ce terminal (TRM), ledit module cryptographique en boite blanche (CRYBBu) étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique (Ku) enfouie dans ce module (CRYBBu) et de paramètres d’entrée comportant un message et une réponse à un défi , et - un module (COM) de fourniture dudit module cryptographique en boite blanche (CRYBBu) audit terminal (TRM). Programme d’ordinateur (PGS) comportant des instructions pour l’exécution des étapes du procédé de fourniture selon la revendication 1 ou 2 lorsque ledit programme est exécuté par un ordinateur (SRV). Programme d’ordinateur (PGS) comportant en outre des instructions pour l’exécution des étapes du procédé de chiffrement selon la revendication 3 et/ou des étapes du procédé de déchiffrement selon la revendication 4 lorsque ledit programme est exécuté par un ordinateur (SRV). Procédé d’obtention d’un module cryptographique en boite blanche (CRYBBu) mis en œuvre par un terminal (TRM) comportant : - une étape (E10) d’envoi d’un identifiant (u) du terminal (TRM) à un serveur comportant un module cryptographique (CRY) configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une réponse à un défi et une clé symétrique (Ku) ; - une étape (E20) de réception d’un module cryptographique en boite blanche (CRYBBu) constituant une implémentation en boite blanche du module cryptographique (CRY) dudit serveur (SRV) pour ladite clé symétrique (Ku), ledit module cryptographique en boite blanche (CRYBBu) étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique (Ku) enfouie dans ce module (CRYBBu) et de paramètres d’entrée comportant un message et une réponse à un défi. Procédé d’obtention selon la revendication 8, ce procédé comportant en outre : - une étape (E30) d’obtention d’au moins un couple défi/réponse (xi, yi), d’envoi dudit au moins un couple défi/réponse (xi, yi) audit serveur, - ladite réponse (yi) étant obtenue à partir dudit défi (xi) et d’une fonction probabiliste (MPROB) mettant en œuvre une fonction physique non clonable (PUF) du terminal (TRM). Procédé de chiffrement d’un message (msg) mis en œuvre par un terminal (TRM), ledit procédé comportant : - une étape d’obtention d’un module cryptographique en boite blanche (CRYBBu) en provenance d’un serveur (SRV), ledit module cryptographique en boite blanche (CRYBBu) étant configuré pour chiffrer ou déchiffrer un message à partir d’une clé symétrique (Ku) propre au terminal (TRM) et enfouie dans ce module (CRYBBu) et de paramètres d’entrée comportant un message et une réponse à un défi , - une étape (E40) d’obtention d’une réponse (yi) à un défi (xi) par mise en œuvre d’une fonction probabiliste (MPROB) mettant en œuvre une fonction physique non clonable (PUF) du terminal (TRM) ; et - une étape d’envoi audit serveur (SRV) du message (msg) chiffré par ledit module cryptographique en boite blanche (CRYBBu) en fonction de la réponse (yi) au défi (xi). Procédé de déchiffrement d’un message chiffré ([msg) mis en œuvre par un terminal (TRM), ledit procédé comportant : - une étape d’obtention d’un module cryptographique en boite blanche (CRYBBu) en provenance d’un serveur (SRV), ledit module cryptographique en boite blanche (CRYBBu) étant configuré pour chiffrer ou déchiffrer un message à partir d’une clé symétrique (Ku) propre au terminal (TRM) et enfouie dans ce module (CRYBBu) et de paramètres d’entrée comportant un message et une réponse à un défi ; - une étape (E40) de réception, en provenance dudit serveur (SRV) d’un défi (xi) et d’un message chiffré ([msg]) ; - une étape d’obtention d’une réponse au défi reçu par mise en œuvre d’une fonction probabiliste (MPROB) mettant en œuvre une fonction physique non clonable (PUF) du terminal (TRM) ; - une étape de déchiffrement du message chiffré par ledit module cryptographique en boite blanche (CRYBBu) pour obtenir ledit message en clair (msg). Terminal (TRM) comportant : - un module (COM) d’envoi d’un identifiant (u) du terminal (TRM) à un serveur comportant un module cryptographique (CRY) configuré pour chiffrer ou déchiffrer un message à partir de paramètres d’entrée comportant ledit message, une réponse à un défi et une clé symétrique (Ku) ; - un module (COM) de réception d’un module cryptographique en boite blanche (CRYBBu) constituant une implémentation en boite blanche du module cryptographique (CRY) dudit serveur (SRV) pour ladite clé symétrique (Ku), ledit module cryptographique en boite blanche (CRYBBu) étant configuré pour chiffrer ou déchiffrer un message à partir de ladite clé symétrique (Ku) enfouie dans ce module (CRYBBu) et de paramètres d’entrée comportant un message et une réponse à un défi. Programme d’ordinateur (PGT) comportant des instructions pour l’exécution des étapes du procédé d’obtention selon la revendication 8 ou 9 lorsque ledit programme est exécuté par un ordinateur (SRV). Programme d’ordinateur (PGT) comportant en outre des instructions pour l’exécution des étapes du procédé de chiffrement selon la revendication 10 et/ou des étapes du procédé de déchiffrement selon la revendication 11 lorsque ledit programme est exécuté par un ordinateur (TRM).