FR 3080694 A1 20191101 FR 1800371 A 20180426 PROCEDE ET SYSTEME POUR ASSURER L'INTEGRITE DE DONNEES CONFIDENTIELLES DIFFUSEES L'invention concerne un procédé et un système permettant d'assurer l'intégrité des données confidentielles diffusées au sein d'un système de communication utilisant la technique de codage secret plus connue sous le terme anglo-saxon « secrecy coding ». Le « secrecy coding » fait référence à un cadre théorique connu dans l'état de l'art de la théorie de l'information qui analyse la possibilité pour 10 un émetteur Alice de transmettre à un destinataire Bob un message sur un canal de communication de manière confidentielle sans utiliser de clé secrète partagée préalablement. Ce cadre repose uniquement sur les caractéristiques supposées distinctes du canal de propagation et du bruit en réception au niveau de Bob d'une part, et au niveau de l'attaquant potentiel 15 d'autre part (attaquant appelé Eve). L'exemple théorique le plus simple est le modèle du canal à jarretière où Bob reçoit les bits transmis par Alice sans erreur et où Eve ne peut les récupérer qu'avec un taux d'erreur non nul. Ce modèle se généralise à des cas de modèles d'erreurs en réception (au niveau de Bob) et en écoute (au niveau d'Eve) plus complexes. Un autre 20 exemple emprunté à la protection de système de radio communications est la sécurité de la couche physique connue sous l'abréviation anglo-saxonne PHYSEC, dont l'un des procédés est l'ajout de bruit artificiel selon le schéma (simplifié) suivant: lorsqu'Alice souhaite envoyer un message m à Bob, elle encode le message et transmet C(m) avec une technique de modulation qui 25 ajoute un bruit artificiel Jm pour tout point de l'espace, à l'exception de la zone où se trouve Bob. Ce bruit est modifié à chaque message m . Bob reçoit, après démodulation, l'encodage du message C(m) + 7/B avec un bruit de transmission 71B. Le niveau de bruit 71B permet à Bob de décoder correctement le message m. En revanche, Eve située en dehors du point 30 occupé par Bob, seul point où la démodulation est « correcte », reçoit le message encodé C(m) +Jm + 77E avec un bruit artificiel Jm qui s'ajoute à son 2 bruit de réception 17E. Avec ce niveau de bruit, Eve ne parvient pas à décoder le message m aussi correctement que Bob. De manière générale, dans le cadre de la théorie de l'information, pour un modèle de canal de communication qui fixe les caractéristiques du bruit (au niveau de Bob, et au niveau d'Eve), on montre qu'il est possible de coder effectivement l'information utile avant sa transmission sur le canal de communication de manière à assurer : sa confidentialité (l'information d'Eve sur le message reste proche de zéro), sa transmission sans erreur (Bob décode l'information avec une très forte probabilité). Pour assurer simultanément ces deux propriétés, la théorie introduit une borne théorique au débit de transmission possible, appelée « secrecy capacity ». Cette technique de confidentialité est alors dite 15 inconditionnellement sûre (c'est-à-dire qu'elle ne dépend pas des capacités de calcul de l'attaquant), sous réserve bien entendu que le modèle de canal est correct et que l'on a en conséquence respecté la borne de « secrecy capacity » associée. Tel quel, le « secrecy coding », ou sa variante consolidée objet du 20 brevet FR1701398 du demandeur, a notamment pour objet d'assurer la confidentialité des messages échangés sans qu'il soit nécessaire que l'émetteur et le récepteur partagent des clés ou des secrets préétablis. Dans ce cadre, le secrecy coding est un mécanisme qui garantit uniquement la confidentialité des messages transmis, mais pas nécessairement leur 25 intégrité, ni l'authentification des interlocuteurs. L'objet du brevet est un mécanisme complémentaire au mécanisme de secrecy coding, qui vise à garantir de nouvelles propriétés de sécurité, toujours de manière inconditionnellement sûre et sans utiliser de clés préalablement partagées ou de secrets préétablis par Alice et Bob, ce que ne garantit pas le mécanisme 30 de secrecy coding seul : 3 a) L'intégrité : garantir que les messages reçus et acceptés par le destinataire n'ont pas été altérés (volontairement par l'attaquant Eve ou fortuitement (bruit)), b) L'authentification de l'émetteur : Bob et Alice ont l'assurance à 5 tout moment qu'ils communiquent toujours avec l'autre et pas avec un tiers Eve qui prendrait momentanément le rôle d'émetteur. Une solution d'intégrité inconditionnellement sûre et décrite dans l'état de l'art de la cryptographie est le mécanisme dit de Carter&Wegman connu de l'homme du métier. Cette solution de l'état de l'art repose sur les éléments suivants : ^ Alice et Bob veulent s'échanger des messages x(1), x(2), x(i), ^ Alice et Bob sélectionnent selon une clef aléatoire ko partagée par Alice et Bob, une fonction de hachage hko dans une famille de fonctions de hachage dite « universelle » (la famille peut être connue par l'attaquant Eve), ^ Puis, pour chaque message x(i) transmis, l'intégrité du message x(i) est garantie par la transmission d'un motif d'intégrité tag(i) associé de la forme : tag(i) = hko(x(i)) El) k(i) ^ OÙ hko(x(0) est le haché du message x(i) calculé avec la fonction de hachage précédemment sélectionnée hko, c'est la même pour tous les messages x(i), ED est l'opérateur logique OU exclusif, et ^ k(i) est une « clé unique à usage unique » connue sous l'expression anglo-saxonne « one-time pad ». Dans cette solution, pour assurer le caractère inconditionnellement sûr de l'intégrité, il est impératif que la clé ko et tous les aléas k(i) consommés à chaque nouveau message transmis, soient des clés secrètes parfaitement aléatoires, indépendantes les unes des autres et partagées initialement par Alice et Bob avant la phase de communication des messages. 4 La présente invention peut être vue comme une déclinaison originale du même principe, adapté au cadre d'un canal de communication mettant en oeuvre une technique de « secrecy coding » apportant la confidentialité sans utiliser de clé. Elle repose sur l'ajout d'un tag [tag(i)] dans 5 chaque message x(i) transmis avant son traitement par le mécanisme de secrecy coding. Le tag est calculé également à l'aide d'une fonction de hachage sélectionnée dans une famille, comme c'est le cas pour le principe Carter&Wegman, mais il ne nécessite pas de disposer d'aléas k(i) préalablement partagés entre Alice et Bob. 10 Dans la suite de la description, les notations suivantes seront utilisées : Le flux de données utiles qu'Alice veut transmettre à Bob : x1, x2, Le flux en sortie : xi, x2, ..., ... obtenu par l'ajout d'une étiquette (ou identifiant) tag; à chaque message xi, 15 L'encodage des blocs x7 transmis par la technique de « secrecy coding » est désigné par C(4), C(xD, C(x7),... produisant après transmission les flux reçus par Bob, En réception, après le décodage des flux encodés Xi*, Bob produit les messages utiles reçus X1 ,X2 ,..., ,... et les étiquettes associées 20 Tag1 ,Tage ,...,Tagi ,... Dans le cas nominal de transmission avec erreurs corrigées par le décodage selon un procédé connu de l'homme du métier, on retombe sur les flux d'informations utiles, c'est-à-dire que l'on obtient : = xi,X2 = x2, ...,Xi = xi, ... puis X1 = Xi' X2 = X2, , Xi = Xi, ... et Tag1 = tag, , Tag2 = tag2 ...,Tagi = tagi . 25 L'invention concerne un procédé pour assurer l'intégrité de données en utilisant un protocole de codage secret assurant une confidentialité inconditionnelle des données à transmettre entre au moins un émetteur A et un récepteur B, caractérisé en ce qu'il comporte au moins les étapes suivantes : 5 Pour transmettre un message xi l'émetteur A ajoute au message xi, contenant les données à transmettre, une étiquette tag; définie par tag; h(xi), en utilisant une fonction de hachage h connue uniquement de l'émetteur A et du récepteur B, destinée à garantir l'authentification et le contrôle d'intégrité 5 des données transmises, Le message xi composé du message des données utiles xi et de l'étiquette tag; est encodé pour produire un message C(xi) qui est transmis au récepteur B, l'encodage est réalisé de manière à garantir la confidentialité à l'aide d'un codage secret, 10 Après transmission, le récepteur B reçoit le message Xi auquel il applique un décodage secret pour retrouver un message de données Xi et une étiquette Tag', puis le récepteur B contrôle l'authentification et l'intégrité du message utile reçu Xi en vérifiant que la relation Tag; = h(Xi) est bien respectée, garantissant Xi = xi. 15 L'étiquette ajoutée au message xi est, par exemple, générée par une fonction de hachage hk.(xi), soit tag; = hk.(xi), la fonction de hachage hko dépend d'une clé initiale k0 transmise de manière confidentielle par l'émetteur A au récepteur B, en utilisant le codage secret. Selon un mode de réalisation, la clé initiale secrète Icc, est, par 20 exemple, échangée entre l'émetteur A et le récepteur B en utilisant un protocole de Maurer. Selon un mode de réalisation, la clé initiale secrète k0 est obtenue en utilisant un protocole de génération de clé secrète SKG (Secret Key Generation). 25 L'invention concerne aussi un système pour assurer l'intégrité des données confidentielles entre au moins un émetteur A et un récepteur B, en utilisant la technique de codage secret ou secrecy coding. Le système est caractérisé en ce que l'émetteur A comporte un processeur configuré pour ajouter aux messages contenant les données à transmettre une étiquette tag; 30 = h(xi) définie en utilisant une fonction h connue uniquement de l'émetteur A 6 et de l'émetteur B et garantissant l'authentification et le contrôle d'intégrité des données transmises, et le récepteur B comprend un processeur configuré pour vérifier après décodage secret d'un message reçu Xi et d'une étiquette reçue Tag;, l'intégrité dudit message en vérifiant le bon respect de 5 la relation Tag; = h(Xi), la transmission du message utilisant un protocole de codage secret. Pour la génération de l'étiquette par la fonction h, le processeur peut être configuré pour exécuter une fonction de hachage hk, (xi) dépendant d'une clé initiale /cc, transmise de manière confidentielle par 10 l'émetteur A au récepteur B, en utilisant le codage secret. L'invention est utilisée pour un émetteur et/ou un récepteur correspondant à un noeud ou un terminal dans un réseau de communication. D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description, d'exemples de réalisation 15 donnés à titre illustratif et nullement limitatif, annexée des figures qui représentent : - Figure 1, un schéma global du procédé mis en oeuvre par l'invention, et - Figure 2, un schéma représentant l'ajout d'un tag au niveau des 20 données avant transmission au bloc de codage. La solution objet de la présente invention repose sur le principe suivant (Alice joue le rôle de l'émetteur, Bob celui du destinataire, le même principe se décline pour les deux sens de la communication): 1) Quand l'émetteur Alice initie une session de communication vers le 25 destinataire Bob, il tire au hasard une clé k0 qu'il transmet au destinataire Bob en toute confidentialité par le procédé de secrecy coding (sans clé) ; 2) Puis, à chaque message xi qu'Alice veut transmettre à Bob, il utilise le mécanisme de secrecy coding pour transmettre le message (xi, 30 tag(i)), i.e. xi complété avec un tag noté tag(i), tel que : tag; = hk. (xi) 7 Le tag d'intégrité tag; est plus simple que celui utilisé dans la solution Carter&Wegman. En réception, Bob décode Xi suivant le principe du secrecy coding, il récupère le message utile Xi et le tag associé Tag; puis vérifie 5 l'authentification et l'intégrité en vérifiant que l'étiquette Tag; = hko(Xi) est bien respectée. Afin de mieux faire comprendre le procédé selon l'invention, l'exemple est donné dans le cas d'un échange entre un premier utilisateur émetteur/récepteur A (Alice) et un deuxième utilisateur émetteur/récepteur B 10 (Bob), en présence d'un récepteur tiers E (Eve) non autorisé qui est susceptible d'intercepter les communications et d'accéder au contenu des données échangées entre A et B. La figure 1 illustre un exemple de système selon l'invention. L'émetteur/récepteur A est, par exemple, un noeud ou un terminal d'un 15 réseau de communication comportant une unité de calcul 11, un module de codage/décodage 12, un module de modulation/démodulation 13, un module composé d'antennes 14, et des moyens d'émission et réception radio 15e, 15r. L'unité de calcul 11 est configurée pour insérer au niveau des données à coder ou des messages à transmettre un « tag » ayant notamment pour 20 objectif d'augmenter la sécurité (authentification, intégrité) dans la transmission du message. De même, l'émetteur/récepteur B, 20, comporte, par exemple, une unité de calcul 21, un module de codage/décodage 22, un module de modulation/démodulation 23, un module composé d'antennes 24, des 25 moyens d'émission et de réception radio 25e, 25r. L'unité de calcul 21 est configurée pour lire les tags et exploiter les résultats de lecture aux fins d'authentification de l'émetteur et de contrôle d'intégrité des messages transmis par cet émetteur. Le bloc de secrecy coding 30 est connu de l'homme du métier et 30 ne sera pas détaillé. Il a pour fonction d'assurer la confidentialité de toutes les données transmises entre A et B. 8 Il est possible d'utiliser un bloc de secrecy coding complété par une fonction de scrambling sans clé, comme décrit dans la demande de brevet FR 1701398. La figure 2 illustre de manière détaillée les étapes d'une première 5 variante de l'invention ayant notamment pour objectif d'augmenter la sécurité de la transmission de données. Le procédé, dans son fonctionnement normal, ne requiert pas de clé de chiffrement. Le message transmis peut être composé de blocs de données, de bits, ou se présenter sous un format connu dans le domaine de la 10 sécurisation de transmission des données. La figure 2 représente de manière détaillée les étapes mises en oeuvre par le procédé selon l'invention qui comprend une étape où un identifiant tag; est ajouté au message (données) avant sa transmission vers le bloc de « secrecy coding » afin d'augmenter l'intégrité de transmission. 15 Lorsque l'émetteur Alice souhaite transmettre un message xi, il va, 201, au préalable de la transmission du message xi au bloc de codage, ajouter une « étiquette » tag; au contenu de ce message xi. L'étiquette ou tag est calculée selon la description donnée ci-avant, xi = (xi, tag;), i.e. xi complété avec un tag noté tag;, tel que tag; = hko(xi). 20 Le message xi comprenant les données initiales à coder et l'étiquette tag; est transmis au bloc de secrecy coding 202. Puis le message encodé et modulé C(xi) est transmis à Bob, le message effectivement reçu par Bob (entaché d'éventuelles erreurs de transmission) étant noté X. Bob, après décodage du message reçu Xi suivant un principe de 25 décodage secret, produit les données utiles reçues Xi et les étiquettes associées reçues Tag', puis il vérifie l'authentification et l'intégrité dudit message en vérifiant que Tag; = hico(Xi), ce qui garantit alors que Xi = xi et Tag; = tag;, 203. Lors d'une première étape d'initialisation pour calculer les 30 étiquettes tag;, Alice et Bob vont s'échanger une clé secrète ko. Cet échange 9 se fait de façon confidentielle, en employant le bloc de codage secret. Différentes variantes sont ici possibles : o L'utilisation du protocole de Maurer connu de l'homme du métier, o L'utilisation d'un protocole de génération de clés secrètes (SKG pour 5 Secret Key Generation) connu de l'homme du métier, ou encore o Tout autre protocole d'échange confidentiel sans clé préétablie ou secret partagé. Lors de l'étape de communication, Alice utilise une fonction de hachage pour calculer l'étiquette tag; associée à chaque message .x.;", comme indiqué ci- 10 dessus tag; = (xi), Bob sera le seul à accéder à cette information, car les données nécessaires à la restitution de l'étiquette tag; et à son exploitation pour authentifier Alice et contrôler l'intégrité des messages transmis sont enfouies dans le message encodé secrètement et transmis de manière confidentielle. L'étiquette tag; du ith message est ainsi, hko(xi), où ko est une 15 clé définie au démarrage du protocole. La clé est transmise de manière confidentielle par le schéma de secrecy coding entre Alice et Bob. Selon la clé ko, le procédé choisit une fonction de hachage parmi une famille de fonctions de hachage dite « universelle », terme connu de l'homme du métier. La clé icc, partagée entre Alice et Bob peut être la même pour tous les 20 messages. Pour la constitution du tag d'intégrité, toute fonction présentant des caractéristiques similaires à celles de la fonction de hachage dite universelle présentée dans l'exemple ci-dessus (notamment le fait d'être inconnue de l'attaquant) pourra être utilisée, sans sortir du cadre de 25 l'invention. L'invention présente l'avantage d'augmenter la sécurité dans la transmission des données sans avoir à utiliser de clés secrètes, dans le cadre d'un fonctionnement normal du système. Les coûts d'un tel système sont modestes. 30 Le procédé selon l'invention présente notamment l'avantage de n'utiliser aucune clé secrète préalablement partagée entre l'émetteur et le 10 récepteur : a) D'une part, il fait intervenir une unique clé ko secrète qui est transmise directement d'Alice vers Bob, dans une phase préliminaire de la session de communication entre Alice et Bob, la transmission étant protégée en 5 confidentialité par l'usage du bloc « secrecy coding » (sans clé) ; b) D'autre part, ce nouveau mécanisme d'intégrité inconditionnellement sûr est beaucoup plus facile à mettre en oeuvre que la solution Carter&Wegman de l'état de l'art, notamment en ce qu'il n'a pas besoin à chaque nouveau message m(i) traité de consommer une nouvelle clé secrète de message k(i) préalablement partagée nécessaire au fonctionnement du principe Carter&Wegman. REVENDICATIONS1 - Procédé pour assurer l'intégrité de données en utilisant un protocole de codage secret assurant une confidentialité inconditionnelle des données à 5 transmettre entre au moins un émetteur A et un récepteur B, caractérisé en ce qu'il comporte au moins les étapes suivantes : Pour transmettre un message xi l'émetteur A ajoute au message xi, contenant les données à transmettre, une étiquette tag; définie par tag; h(xi), en utilisant une fonction de hachage h connue uniquement de l'émetteur A et 10 du récepteur B, destinée à garantir l'authentification et le contrôle d'intégrité des données transmises (201), Le message x;" composé du message des données utiles xi et de l'étiquette tag; est encodé pour produire un message C(xi) qui est transmis au récepteur B, l'encodage est réalisé de manière à garantir la confidentialité à 15 l'aide d'un codage secret (202), Après transmission, (203), le récepteur B reçoit le message X; auquel il applique un décodage secret pour retrouver un message de données Xi et une étiquette Tag, puis il contrôle l'authentification et l'intégrité du message utile reçu Xi en vérifiant que la relation Tag; = h(Xi) est bien respectée, 20 garantissant Xi = xi. 2 - Procédé selon la revendication 1 caractérisé en ce que l'étiquette ajoutée au message xi est générée par une fonction de hachage hko(xi), soit tag; = hko(xi), la fonction de hachage hic, dépend d'une clé initiale ko transmise de 25 manière confidentielle par l'émetteur A au récepteur B, en utilisant le codage secret (202). 3 - Procédé selon l'une des revendications 1 ou 2 caractérisé en ce que la clé initiale secrète ko est échangée entre l'émetteur A et le récepteur B en 30 utilisant un protocole de Maurer. 12 4 - Procédé selon l'une des revendications 1 ou 2 caractérisé en ce que la clé initiale secrète k0 est obtenue en utilisant un protocole de génération de clé secrète SKG (Secret Key Generation). 5 - Système pour assurer l'intégrité des données confidentielles entre au moins un émetteur A et un récepteur B, en utilisant la technique de codage secret ou secrecy coding caractérisé en ce que l'émetteur A comporte un processeur (11) configuré pour ajouter aux messages contenant les données à transmettre une étiquette tag; = h(xi) défini en utilisant une fonction h connue uniquement de l'émetteur A et de l'émetteur B, et garantissant l'authentification et le contrôle d'intégrité des données transmises (201), et le récepteur B comprend un processeur (21) configuré pour vérifier après décodage secret d'un message reçu Xi et d'une étiquette reçue Tag; l'intégrité dudit message en vérifiant le bon respect de la relation Tag; = h(Xi), la transmission du message utilisant un protocole de codage secret. 6 - Système selon la revendication 5 caractérisé en ce que pour la génération de l'étiquette par la fonction h, le processeur est configuré pour exécuter une fonction de hachage hk. (xi) dépendant d'une clé initiale ko transmise de manière confidentielle par l'émetteur A au récepteur B, en utilisant le codage secret (202). 7 - Système selon l'une des revendications 5 ou 6 caractérisé en ce qu'un émetteur et/ou un récepteur est un noeud ou un terminal dans un réseau de 25 communication.