FR 2907288 A1 20080418 FR 0601004 A 20060203 1 PROCEDE ET DISPOSITIF D'AUTHENTIFICATION 5 10 La présente invention concerne un procédé et un dispositif d'authentification. Elle s'applique, en particulier, à la protection contre la contrefaçon des marques, des signes distinctifs et des produits les portant. On connaît des systèmes de marquage de produits, par exemple avec des imprimantes à jet d'encre placées sur les lignes de production pour imprimer un numéro de 15 série sur chaque article. D'autres systèmes mettent en oeuvre des codes. Ces systèmes sont néanmoins fragiles et les contrefacteurs falsifient ces codes ou en déterminent le fonctionnement, ce qui leur permet de générer des codes semblant authentifier les produits contrefaits. La présente invention vise à remédier à ces inconvénients. A cet effet, la présente 20 invention vise, selon un premier aspect, un procédé d'authentification, caractérisé en ce qu'il comporte : - une étape de génération d'un nombre aléatoire, une étape de génération d'un horodatage, - une étape de génération d'une première clé secrète, 25 - une étape de troncature de code d'authentification de message mettant en oeuvre ladite première clé secrète, une étape d'encryption symétrique du nombre aléatoire, de l'horodatage et de la troncature, en mettant en oeuvre une deuxième clé secrète pour produire un code d'authentification. 30 Grâce à ces dispositions, de nombreuses informations peuvent être encryptées, y compris la date de création du code, un nombre aléatoire et une troncature. De plus, grâce à la connaissance de la deuxième clé secrète, on peut retrouver ces informations encryptées. Cependant, la première clé secrète est utile pour récupérer des informations d'authentification. Ainsi, chaque site de production met en oeuvre deux clés secrètes. En 35 testant les différentes clés secrètes possibles sur un code, on peut ainsi déterminer l'origine de ce code et sa date de création. 2907288 2 Grâce à la mise en oeuvre de la présente invention, il n'est pas nécessaire de maintenir une base de données au niveau de la production, ce qui simplifie le fonctionnement de l'outil de production. De plus, la détection de deux codes identiques permet de détecter immédiatement une falsification. De plus, la troncature permet de conserver une taille raisonnable au code imprimé. Pour des raisons pratiques, la petite taille du code présente ainsi des avantages de compacité et d'esthétique. Selon des caractéristiques particulières, au cours de l'étape de génération d'un nombre aléatoire, on met en oeuvre un générateur quantique. Grâce à ces dispositions, le nombre aléatoire est vraiment aléatoire et non un nombre pseudo-aléatoire. Selon des caractéristiques particulières, au cours de l'étape cle troncature, on génère un authentifiant de message cryptographique en mettant en oeuvre la première clé secrète. Selon des caractéristiques particulières, au cours de l'étape cl'encryption symétrique du nombre aléatoire, de l'horodatage et de la troncature, en mettant en oeuvre la deuxième clé secrète, on produit, en outre, un condensât. On observe qu'un condensât est aussi appelé hash ou, dans sa forme la plus simple checksum , pour somme de vérification. Ce caractère de contrôle permet de vérifier de façon simple que le code est correctement saisi. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus, comporte une étape de modification régulière de la première clé secrète et de transmission de la nouvelle clé secrète à un site de production. Selon des caractéristiques particulières, au cours de l'étape d'encryption symétrique, on génère un code comportant des caractères alphanumériques. Selon un deuxième aspect, la présente invention vise un dispositif d'authentification, caractérisé en ce qu'il comporte : - un moyen de génération d'un nombre aléatoire, un moyen de génération d'un horodatage, - un moyen de génération d'une première clé secrète, - un moyen de troncature de code d'authentification de message mettant en oeuvre ladite première clé secrète, - un moyen d'encryption symétrique du nombre aléatoire, cle l'horodatage et de la troncature, en mettant en oeuvre une deuxième clé secrète pour produire un code d'authentification. 2907288 3 Les avantages, buts et caractéristiques du procédé et des dispositifs objets des deuxième à quatrième aspects de la présente invention étant similaires à ceux du procédé objet du premier aspect, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de 5 la description qui va suivre, faite, dans un but explicatif et nullement limitatif en regard des dessins annexés dans lesquels : - la figure 1 représente, sous forme d'un schéma fonctionnel, les fonctions et étapes mises en oeuvre dans un mode de réalisation particulier du procédé objet de la présente invention pour générer un code d'authentification et 10 la figure 2 représente, sous forme d'un schéma fonctionnel, les fonctions et étapes mises en oeuvre pour vérifier l'authenticité d'un code d'authentification. Dans toute la description, on utilise indifféremment les termes de chiffrage ou d'encryption, ces fonctions consistant à encrypter des données en mettant en oeuvre une clé d'encryption. 15 On observe, en figure 1, un moyen de génération de nombres aléatoires 100 réalisant la fonction de génération de nombres aléatoires 105, une clé matérielle 110 réalisant la fonction de fourniture d'horodatage 115, une mémoire de conservation d'une première clé secrète 120, une fonction de troncature de code d'authentification de message 125, une mémoire de conservation d'une deuxième clé secrète 130, une fonction d'encryption 20 symétrique 135, une sortie de condensât 140 et une sortie de code d'authentification 145. Le moyen de génération de nombres aléatoires 100 fournit, pour chaque processus de génération d'un code d'authentification et du condensât associé, un nombre aléatoire 105 différent. Préférentiellement, ce moyen de génération de nombres aléatoires comporte un générateur quantique pour que ces nombres ne soient pas pseudo-aléatoires, ce qui nuirait 25 à la sécurité du processus. La clé matérielle 110 est, par exemple une clé enfichable dans un port USB. Elle conserve une horloge qui ne peut être modifiée par des interactions avec cette clé. Les horodatage fournis par la clé matérielle 110 représentent la date, l'heure, la minute et la seconde à laquelle cet horodatage est fourni. 30 La mémoire de conservation d'une première clé secrète 120 peut être portable, par exemple sous la forme d'une clé enfichable dans le port d'un ordinateur ou accessible uniquement sur un serveur sécurisé et fourni sur requête après identification de l'émetteur de la requête. La fonction de troncature de code d'authentification de message 125. Pour la mise en 35 oeuvre de cette fonction de troncature, connue de l'homme du métier, le lecteur pourra se référer au document http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf . Avec cette fonction, un authentifiant de message cryptographique est généré selon le standard 2907288 4 cryptographique Keyed-Hash Message Authentication Code (en français code d'authentification de condensât avec clé) en mettant en oeuvre la première clé secrète. Cette signature est tronqué conformément au standard afin d'en limiter la taille. On observe que la troncature permet de conserver une taille raisonnable au code 5 imprimé. Pour des raisons pratiques, la petite taille du code présente ainsi des avantages de compacité et d'esthétique. La mémoire de conservation de la deuxième clé secrète 130 peut, elle aussi, être portable ou accessible uniquement sur un serveur sécurisé. La fonction d'encryption symétrique 135 met en oeuvre un algorithme de chiffrement 10 symétrique (par exemple, les algorithmes connus sous les noms de Rijndael,DES, TripleDES, RC5, marques déposées) peut être utilisé à cette étape. L'algorithme Blowfish (marque déposée) présente les avantages d'être rapide, gratuit et considéré comme robuste. En ce qui concerne Blowfish, le lecteur pourra se référer au document http://vvww.schneier.com/paper-blovvfish-fse.html. 15 La fonction d'encryption symétrique génère un code comportant des caractères alphanumériques et un condensât. On rappelle qu'un condensât est aussi appelé hash ou, dans sa forme la plus simple checksum , pour somme de vérification. La sortie de condensât 140 et la sortie de code d'authentification 145 permettent d'associer le code d'authentification et le condensât à un produit afin qu'ils deviennent solidaires et permettent 20 l'authentification du produit. Par exemple, ces sorties 140 et 145 sont reliéee à une imprimante à jet d'encre qui les imprime sur le produit, son étiquette ou son emballage. Les grands nombres utilisés dans le procédé de génération de code d'authentification garantissent que la détection de deux codes identiques permet de détecter immédiatement une falsification du produit protégé par ce code d'authentification. 25 Préférentiellement, le propriétaire des droits de propriété intellectuelle ou industrielle liés à des produits maîtrise la fourniture, à chacun des sites de production de ces produits, des deux clés mises en oeuvre dans le processus de génération de codes d'authentification. II peut donc décider de la fréquence de changement de ces clés secrètes. Préférentiellement, le procédé de génération de codes d'authentification comporte 30 une étape de modification régulière et automatique de la première clé secrète de chaque site de production, chaque nouvelle première clé secrète étant immédiatement transmise au site de production concerné. Comme on le voit, à la lecture de la description de la figure 1, le procédé d'authentification objet de la présente invention comporte : 35 une étape de génération d'un nombre aléatoire, -une étape de génération d'un horodatage, - une étape de génération d'une première clé secrète, 2907288 5 une étape de troncature de code d'authentification de message mettant en oeuvre ladite première clé secrète, - une étape d'encryption symétrique du nombre aléatoire, de l'horodatage et de la troncature, en mettant en oeuvre une deuxième clé secrète pour produire un code 5 d'authentification. Ainsi, de nombreuses informations peuvent être encryptées, y compris la date de création du code, un nombre aléatoire et une troncature. De plus, grâce à la connaissance de la deuxième clé secrète, on peut retrouver ces informations encryptées. Cependant, la première clé secrète est utile pour récupérer des informations d'authentification. Ainsi, 10 chaque site de production met en oeuvre deux clés secrètes. En testant les différentes clés secrètes possibles sur un code, on peut ainsi déterminer l'origine de ce code et sa date de création. On comprend aussi que la mise en oeuvre de la présente invention permet d'éviter d'avoir à maintenir une base de données des codes d'authentification générés, ce qui 15 simplifie le fonctionnement de l'outil de production. On observe, en figure 2, une entrée 205 d'un code d'authentification et d'un condensât, une fonction de vérification de condensât 210, une fonction de décryption symétrique 215 mettant en oeuvre deux clés de décryption 220 et 225 et une fonction de vérification d'authenticité 230. 20 En ce qui concerne la vérification de code d'authentification, le mode de réalisation particulier du procédé objet de la présente invention met en oeuvre deux niveaux de vérifications : a) une vérification de l'intégrité du message : en utilisant toutes les paires de clés cryptographiques (clés secrètes 1 et 2) connues, on vérifie que le message est 25 intègre. Cette intégrité est vérifiée par comparaison de la signature (HMAC) calculée après décryptage du chiffrement symétrique et de la signature du token, b) une vérification de cohérence du message : une fois vérifiée l'intégrité, on s'assure que le message est structurellement cohérent. En effet, un générateur de code dérobé à son propriétaire continue à générer des codes intègres. 30 Cependant la date contenue dans le code permet de distinguer les tokens valides (avant la date du vol) des codes incohérents (après la date du vol). La vérification de la cohérence est donc obtenue en comparant les trois éléments suivants : numéro du générateur (site) ; date du code ; clés cryptographiques validée à l'étape de vérification d'intégrité, au référentiel des données générés sur les clés 35 USB. Le code dont il est question dans ce document est destiné à être marqué ou imprimé en clair sur les produits. En variante, le consommateur qui souhaite s'informer sur un produit 2907288 6 en sa possession peut utiliser un site web ou un centre d'appel équipé pour vérifier l'intégrité et la cohérence du code. Cette consultation fournit une présomption de contrefaçon dans les cas suivants : - le code n'est pas intègre ou est incohérent ou 5 - le code à déjà été vérifié. REVENDICATIONS 1 - Procédé d'authentification, caractérisé en ce qu'il comporte : - une étape de génération d'un nombre aléatoire (105), une étape de génération d'un horodatage (115), une étape de génération d'une première clé secrète (120), une étape de troncature de code d'authentification de message mettant en oeuvre ladite première clé secrète (125), - une étape d'encryption symétrique du nombre aléatoire, cle l'horodatage et de la 10 troncature (135), en mettant en oeuvre une deuxième clé secrète (130) pour produire un code d'authentification (145). 2 û Procédé selon la revendication 1, caractérisé en ce que, au cours de l'étape de génération d'un nombre aléatoire (105), on met en oeuvre un générateur quantique (100). 3 û Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que, au 15 cours de l'étape de troncature (125), on génère un authentifiant de message cryptographique en mettant en oeuvre la première clé secrète (120). 4 û Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que, au cours de l'étape d'encryption symétrique du nombre aléatoire, de l'horodatage et de la troncature (135), en mettant en oeuvre la deuxième clé secrète, on produit, en outre, un 20 condensât (140). 5 û Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comporte une étape de modification régulière de la première clé secrète et de transmission de la nouvelle clé secrète à un site de production. 6 û Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que, au 25 cours de l'étape d'encryption symétrique (135), on génère un code comportant des caractères alphanumériques. 7 Dispositif d'authentification, caractérisé en ce qu'il comporte : - un moyen de génération d'un nombre aléatoire, - un moyen de génération d'un horodatage, 30 - un moyen de génération d'une première clé secrète, - un moyen de troncature de code d'authentification de message mettant en oeuvre ladite première clé secrète, - un moyen d'encryption symétrique du nombre aléatoire, de l'horodatage et de la troncature, en mettant en oeuvre une deuxième clé secrète pour produire un code 35 d'authentification.