Brevet FR2892583A1 — publié le 20070427

PROCEDE DE TRANSMISSION SECURISEE DE DONNEES L'invention concerne les procédés de transmission sécurisée de données et les dispositifs mettant en oeuvre ce type de procédé, notamment adaptés pour transmettre des fichiers de données fragmentables de taille importante. Afin de transmettre des fichiers de taille importante, comme des images, de manière sécurisée, il est possible d'utiliser des systèmes de chiffrement symétriques. Cependant, ce type de chiffrement impose l'envoi io d'une clef secrète utilisée pour décrypter et crypter le fichier transmis. En conséquence, un tel procédé de transmission de données sécurisées comprend le risque de l'interception de la clef qui peut permettre de décrypter le fichier de données. De plus, le récepteur connaîtra alors la clef utilisée par l'émetteur ce qui impose donc un changement régulier voire systématique de 15 la clef secrète à utiliser. Par ailleurs, il est très lourd d'utiliser un système de cryptage asymétrique mettant donc en oeuvre une clef privée pour crypter chaque fragment de fichier par l'émetteur et une clef publique transférée au récepteur pour décrypter ce fragment. En effet, du fait de la connaissance partielle de la 20 clef par le récepteur, les systèmes asymétriques imposent l'utilisation de grands nombres entiers premiers, de taille importante, notamment supérieurs à 1024 bits (notamment en algorithme RSA) pour crypter chaque fragment de fichier. En conséquence, les ressources et le temps nécessaire pour mettre en oeuvre un tel procédé de transmission cryptée sont importants. 25 Un but de la présente invention est de pallier ces inconvénients. La présente invention propose un procédé de transmission sécurisée de données permettant l'envoi de données de taille importante, notamment d'images, rapide et efficace. Par ailleurs, le but de la présente invention est de fournir un procédé 30 de transmission sécurisée de données robuste au bruit ou à la perte de données, notamment par une interception frauduleuse de paquets de données. A cet effet, l'invention propose un procédé de transmission sécurisée d'un fichier fragmentable en une pluralité de fragments dans lequel, (a) on fixe initialement une clé globale de chiffrement, (b) on chiffre le fichier fragmentable en fonction de ladite clé globale pour former un premier fichier crypté ; (c) on chiffre la clé globale au moyen d'un algorithme de chiffrement asymétrique pour obtenir une clé globale chiffrée, ro (d) on insère des valeurs représentatives de la clé globale chiffrée parmi les fragments dudit fichier crypté pour former un deuxième fichier crypté, et ; (e) on transmet ledit deuxième fichier crypté. En insérant ainsi de manière cryptée la clef globale dans le fichier à 15 transférer, le récepteur peut décrypter ainsi la clef globale avantageusement au moyen d'une clef publique d'un algorithme asymétrique. La clef globale étant de taille réduite, le décryptage de cette clef globale est facilement réalisable. Ensuite, le cryptage du fichier peut utiliser un algorithme de chiffrement moins lourd à mettre en oeuvre, et utilisant cette clef globale qui 20 sera chiffrée puis insérée dans le fichier, ce qui assure un temps de cryptage/décryptage moins long. Dans un mode de réalisation de l'invention, on insère, en plus des valeurs représentatives de la clef globale chiffrée dans le fichier crypté, une valeur représentative d'une signature du fichier fragmentable. Cette signature 25 permet de vérifier, à la réception, que l'image transmise a été correctement décryptée, et notamment de vérifier l'intégrité de cette image. En effet, une interception de données lors de la transmission générerait un décalage tel que l'image une fois décryptée, ne correspondrait plus à la signature insérée dans l'image. Selon un autre mode de réalisation de l'invention, à l'étape (b), pour une succession de fragments : (b1) on affecte à chaque fragment courant une clé dynamique de cryptage déterminée à partir d'une combinaison impliquant un groupe 5 de fragments précédemment cryptés, et (b2) on attribue à la valeur du fragment courant une valeur qui est fonction de sa valeur initiale et de ladite clé dynamique. Ce type de chiffrement permet un cryptage rapide des données du fichier fragmentable et permet de résoudre l'ensemble des problèmes io d'intégrité. En effet, si un paquet de données est perdu, l'ensemble du fichier crypté en sera modifié. Par ailleurs, ce type de cryptage permet de commencer le décryptage, à la réception, avant d'avoir reçu la totalité du fichier crypté. Ce type de cryptage est donc particulièrement adapté pour des transmissions de gros fichiers au travers d'un réseau tel que l'Internet. 15 Dans une réalisation avantageuse aussi, on utilise une combinaison linéaire des valeurs des fragments précédemment cryptés, en mettant en oeuvre des coefficients ai, fonction de la clef globale, et dans lesquels les coefficients ai s'expriment par la relation : J ai = Q, - 2`-' -1 si %j, E {0,...,2` - 2 }, J a = +2r-' si /3, = 2` -1, avec flj = 2'-"b où bij_,+ä sont I valeurs successives de la clé globale. 25 Cette relation permet de choisir les ai de sorte que la somme de ces coefficients est très proche de zéro. Ainsi, comme l'insertion de données est effectuée dans le fichier, du bruit (aléas) est également inséré. Le fait de 20 choisir les ai de sorte que leur somme est environ égale à zéro permet d'atténuer le bruit durant la phase de décryptage. Les ai sont donc choisis de sorte que la densité de probabilité d'apparition de chaque valeur est à peu près uniforme. Ensuite, l'invention propose un procédé de réception sécurisée d'un fichier fragmentable crypté en une pluralité de fragments dans lesquels, -on reçoit le fichier crypté, - on extrait des valeurs représentatives d'une clef globale chiffrée parmi les fragments dudit fichier crypté, io -on déchiffre la clef globale chiffrée en utilisant une clef publique pour obtenir une clef globale déchiffrée, on déchiffre le fichier fragmentable crypté en fonction de ladite clef globale déchiffrée. Par ailleurs, l'invention propose un système d'émission/réception 15 mettant en oeuvre un procédé de transmission sécurisée d'un fichier fragmentable conforme à l'invention. De plus, l'invention propose également un produit programme d'ordinateur dont l'installation sur un ordinateur permet l'exécution du procédé de transmission sécurisée conforme à l'invention et/ou le procédé de réception 20 conforme à l'invention. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'un exemple de réalisation non limitatif, en référence aux dessins annexés, sur lesquels : la figure 1 représente un réseau dans lequel le procédé de l'invention 25 est mis en oeuvre ; la figure 2 est une organigramme représentant un procédé de transmission sécurisée conforme à l'invention ; la figure 3 est un organigramme représentant un procédé de réception conforme à l'invention. La figure 1 représente un premier terminal 1 relié à un réseau informatique 2, par exemple Internet. Le premier terminal 1 est adapté pour transmettre via le réseau 2 des données à un deuxième terminal 3. Afin de transmettre de manière sécurisée un fichier de données de taille importante, comme par exemple une image, au travers du réseau informatique 2, l'invention propose un procédé illustré notamment par l'exemple de la figure 2. A l'étape S101, et selon le procédé conforme à l'invention, on détermine une clef globale de cryptage K9iob. Cette clef est formée par exemple de kbits divisés en Tmots io où T = l , /étant la longueur de chacun des points. Cette clef globale peut être utilisée afin d'effectuer un cryptage par flot, comme décrit ci-après. Cependant, cette clef globale peut être une clef secrète pour un algorithme de cryptage symétrique par bloc, ou tout autre type d'algorithme de cryptage. 15 Cette clef peut être mémorisée dans le système de cryptage qui va effectuer le cryptage et la transmission du fichier crypté, ou peut également être générée par un générateur de clefs de cryptage. A l'étape S102, on peut calculer une signature S de l'image qui peut être également transmise avec le fichier crypté. Cette signature permet 20 notamment de vérifier l'intégrité du fichier lors de la réception afin de contrôler qu'aucune interception ou perte de paquet n'a été occasionnée par la transmission. En conséquence, cette signature S permet de renforcer la sécurité de l'image. En effet, dans le cadre d'application au transfert d'images médicales par exemple entre un laboratoire d'imagerie médicale et le médecin 25 qui doit analyser les images obtenues, il est important de s'assurer qu'aucune donnée n'a été ajoutée ou modifiée dans l'image transférée. La signature permet d'effectuer une comparaison entre l'image reçue et l'image transmise. Ensuite, le procédé peut mettre en oeuvre un algorithme de cryptage par flot qui est notamment adapté à la transmission de fichier au travers d'un réseau comme dans l'exemple représenté. En effet, ce type de cryptage permet notamment de commencer le déchiffrement des données cryptées avant même que le fichier ne soit entièrement reçu. Cependant, un autre procédé de cryptage pourrait être utilisé, par exemple un cryptage par bloc à clef secrète, où la clef secrète serait la clef globale Kg,ob. Néanmoins, l'algorithme de chiffrement par flot présente divers avantages par rapport à l'algorithme par bloc. Tout d'abord, contrairement à l'algorithme par bloc, io l'algorithme par flot est moins sensible au bruit. Ensuite, l'intégrité des images est améliorée. En outre, l'algorithme par flot ne fait pas apparaître de zones texturées lorsque l'image non cryptée présente des zones homogènes. Conformément à l'étape S103, pour chaque fragment du fichier à crypter, par exemple pour chaque pixel ou groupe de pixels, p; de l'image, une clef 15 dynamique kdyn est calculée, dans le cadre de l'algorithme de chiffrement par flot. Ce chiffrement par flot peut être dit synchrone ou asynchrone. Dans le cas d'un chiffrement par flot synchrone, la clef dynamique kdyn ne dépend pas des données à crypter ou cryptées. A l'inverse, dans le cas d'un chiffrement asynchrone, la clef dynamique qui est établie en fonction des pixels 20 précédemment cryptés. Cette clef dynamique peut par exemple être obtenue au moyen de diverses fonctions de génération de clef et, comme dans le mode de réalisation préféré de l'invention, au moyen d'une combinaison linéaire, comme indiqué par la formule suivante : z; = modX J=1 / P'1=(z1 +P;) mod X 25 Oë : - z; est la valeur de clé dynamique affectée au pixel ou fragment courant de valeur p;, i variant entre 1 et n, où n est le nombre de pixels ou fragments, - ai avec j compris entre 1 et n est un jeu de coefficients pour la mise en oeuvre de la combinaison linéaire appliquée au pixel ou fragment courant, avec i-j compris entre i-n et i-1 est un jeu de valeurs de n pixels précédemment cryptés, - pli est la valeur du pixel courant crypté, et - mod X correspond à une congruence propre à un échantillonnage desdits fragments. Dans cet exemple, X dépend de la taille de la mémoire allouée au calcul des valeurs cryptées du pixel courant. En général, X vaut 256 points. io Chaque pixel p; est donc crypté en pixel p;' à l'étape S104. Par ailleurs les coefficients ai de la combinaison linéaire sont obtenus à partir de la clef globale Kg,ob. Un exemple de réalisation est illustré par la formule suivante : ai _ f.] - 2'-' -1 si /3j E -2 }, a.= +21-1 si=2'-1, 15 avec /i = ' 2'-" b où sont I valeurs successives de la clé globale. Dans ce cas, la clef globale Kg;ob est formée de n mots d'une longueur de I bits, chaque bit étant noté bi. En utilisant une telle formule, on peut jouer 20 sur les coefficients agi, notamment de sorte que la somme de l'ensemble des ai soit environ nulle. Ceci permet notamment de diminuer l'influence du bruit de l'algorithme de décryptage conforme à l'invention. Lorsque l'ensemble du fichier a été crypté, la clef globale Kg;ob est à son tour cryptée, par exemple par un algorithme de chiffrement asymétrique 25 avec une clef publique et une clef privée. On peut utiliser pour ce cas un tel algorithme de chiffrement, car la clef globale n'est pas un fichier de taille trop importante. Une fois chiffrée à l'étape S105, la clef globale chiffrée K'gIob est ensuite insérée dans le fichier crypté (S106). La signature peut également être cryptée au cours de cette même étape. L'insertion des données peut se faire de différentes manières en fonction de la longueur du message à insérer et de la robustesse désirée. Pour l'insertion de données fichées dans des images, il existe deux grands groupes de méthodes : les méthodes qui travaillent dans le domaine spatial, et les méthodes qui travaillent dans le io domaine fréquentiel, notamment avec la DCT (Discrete Cosinus Transform). La combinaison dans le domaine spatial et fréquentiel est également possible. On peut utiliser une combinaison qui embarque directement les données dans les pixels de l'image. Notamment en utilisant par exemple des générateurs de nombres pseudo aléatoires pour choisir la séquence de pixels affectée par 15 l'insertion. Cependant, la méthode préférée dans l'invention utilise un algorithme qui embarque l'information dans les bits de poids faible de l'image. L'objectif est d'embarquer dans l'image un message de n bits composé de la clef secrète cryptée et de la signature de l'image originale. II faut alors calculer un facteur d'insertion afin de disperser le message dans toute l'image. Cette 20 dispersion permet d'atténuer le bruit dû à l'insertion de donnée et permet également d'étendre l'intégrité visuelle de l'image à toute l'image. L'image est donc divisée en n régions de taille équivalente, chacune de ces régions sera utilisée pour embarquer un bit du message. La récurrence de l'algorithme de l'insertion devra être égale au moins à la taille de ces régions en insertion de 25 données cachées. Une fois l'ensemble des données insérées dans le fichier, le fichier ainsi crypté est transmis à l'étape S107 vers un destinataire, par exemple le second terminal 3 de la figure 1. Ensuite, le destinataire peut décrypter l'image en utilisant un procédé 30 de déchiffrement inverse illustré par la figure 3, c'est-à-dire en commençant par extraire de l'image reçue à l'étage S201, la clef globale cryptée ainsi que la signature SEMM(S202). Puis, l'utilisateur peut décrypter cette clef globale au moyen d'une clef publique qui, par exemple, lui a été transmise par l'expéditeur préalablement (S203), et décrypter au moyen de cette clef globale décryptée l'ensemble de l'image de manière analogue à l'algorithme de cryptage utilisé, aux étapes S204 et S205. Enfin, on calcule la signature SMEC de l'image reçue décryptée à l'étape S206, puis on compare, à l'étape S207, la signature de l'image originale SEMM à la signature de l'image reçue SREC, afin de vérifier l'intégrité de l'image, et de déterminer si les données transmises ont io subi une attaque lors de la transmission. Bien entendu, l'invention ne se limite pas à la forme de réalisation décrite ci-avant à titre d'exemple ; elle s'applique à d'autres variantes. Ainsi, selon une réalisation avantageuse, on peut en outre compresser le fichier de données au cours du cryptage. REVENDICATIONS 1. Procédé de transmission sécurisée d'un fichier fragmentable en une pluralité de fragments dans lequel, (a) on fixe initialement une clé globale de chiffrement, (b) on chiffre le fichier fragmentable en fonction de ladite clé globale pour former un premier fichier crypté ; (c) on chiffre la clé globale au moyen d'un algorithme de chiffrement asymétrique pour obtenir une clé globale chiffrée, io (d) on insère des valeurs représentatives de la clé globale chiffrée parmi les fragments dudit fichier crypté pour former un deuxième fichier crypté, et ; (e) on transmet ledit deuxième fichier crypté. 15 2. Procédé de cryptage selon la revendication 1, suivant lequel à l'étape (d), on insère de plus une valeur représentative d'une signature du fichier fragmentable. 3. Procédé de cryptage selon l'une des revendications précédentes, 20 suivant lequel à l'étape (b), pour une succession de fragments : (b1) on affecte à chaque fragment courant une clé dynamique de cryptage déterminée à partir d'une combinaison impliquant un groupe de fragments précédemment cryptés, et (b2) on attribue à la valeur du fragment courant une valeur qui est 25 fonction de sa valeur initiale et de ladite clé dynamique. 4. Procédé selon la revendication 3, caractérisé en ce que, à l'étape (b1), on applique une combinaison linéaire aux valeurs des fragments précédemment cryptés. 5. Procédé selon la revendication 4, caractérisé en ce que la combinaison linéaire s'exprime par : n 1 ai mod X \l=1 / P'; = - (z + pr)modX r où: -z; est la valeur de clé dynamique affectée au fragment courant de valeur p;, - ai avec j compris entre 1 et n est un jeu de coefficients pour la mise en oeuvre de la combinaison linéaire appliquée au fragment courant, avec i-j compris entre i-n et i-1 est un jeu de valeurs de n fragments io précédemment cryptés, - p'i est la valeur du fragment courant crypté, et -mod X correspond à une congruence propre à un échantillonnage desdits fragments. 15 6. Procédé selon la revendication 5, caractérisé en ce que ladite combinaison linéaire fait intervenir des coefficients (a;) qui s'expriment en fonction de la clé globale. 7. Procédé selon l'une des revendications 4 à 6, caractérisé en ce que 20 ladite combinaison linéaire fait intervenir des coefficients dont la somme est minimale en valeur absolue. 8. Procédé selon l'une des revendications 4 à 7, caractérisé en ce que la clé globale comporte une succession d'un premier nombre de valeurs,et en ce que la combinaison linéaire fait un intervenir un second nombre de fragments précédemment cryptés, le premier nombre étant un multiple du second nombre. 9. Procédé selon la revendication 8, prise en combinaison avec la revendication 6, caractérisé en ce que les coefficients aj s'expriment par la relation : J a. = fj -2l-' -1 si fij E -2 }, a = +2l-t si fij = 2/ -1, io avec l = 2-nb où bu_l+n sont I valeurs successives de la clé globale. 10. Procédé selon la revendication 8 ou la revendication 9, caractérisé en 15 ce que le premier nombre est le double du second nombre (n = W2). 11. Procédé selon l'une des revendications précédentes, caractérisé en ce que lesdites valeurs successives de la clé globale sont insérées dans des blocs respectifs de fragments cryptés, de mêmes dimensions. 12.Procédé selon l'une des revendications précédentes, caractérisé en ce que ledit fichier est constitué d'échantillons et en ce que chaque fragment est un échantillon ou un bloc d'échantillons. 20 13. Procédé selon la revendication 12, caractérisé en ce que les échantillons sont des pixels ou des voxels ou des pixels temporels. 14. Procédé de réception sécurisée d'un fichier fragmentable crypté en une 5 pluralité de fragments dans lesquels, on reçoit le fichier crypté, on extrait des valeurs représentatives d'une clef globale chiffrée parmi les fragments dudit fichier crypté, on déchiffre la clef globale chiffrée en utilisant une clef publique pour io obtenir une clef globale déchiffrée, on déchiffre le fichier fragmentable crypté en fonction de ladite clef globale déchiffrée. 15. Procédé selon la revendication 14, suivant lequel on vérifie le fichier 15 décrypté au moyen d'une signature insérée avec la clef globale chiffrée. 16. Système d'émission/réception adapté pour mettre en oeuvre un procédé selon l'invention selon l'une des revendications 1 à 13, et/ou 14 et 15. 20 17. Produit programme d'ordinateur, dont l'installation sur un ordinateur permet l'exécution du procédé de transmission selon l'une des revendications 1 à 13 et/ou du procédé de réception selon l'une des revendications 14 à 15.