"Procédé et dispositif de chiffrement de données numériques"
La présente invention concerne un procédé et un dispositif de chiffrement de données numériques.
Elle trouvera particulièrement son application dans le domaine du chiffrement entre une mémoire à accès aléatoire (Random Access Memory, RAM) et un processeur. Dans le domaine du cryptage en général, on connaît du document US-
B1 6.320.964 un accélérateur cryptographique.
Cet accélérateur cryptographique comprend un sélecteur et une pluralité de bus couplée au sélecteur.
Certains des bus comprennent des moyens de réalisation d'une permutation de bits de données parmi d'autres opérations.
Ces autres opérations peuvent être des opérations « ou exclusif » ou des substitutions selon le principe général du standard DES (Data Encryption Standard).
Ce document reflète l'état de la technique général dans le domaine du chiffrement de données dans la mesure où il présente une combinaison de différents moyens de chiffrement et particulièrement des permutations, des substitutions et des opérations « ou exclusif » par le biais de moyens logiciels.
En effet, dans les systèmes cryptographiques actuels, l'implémentation est soit complètement logicielle soit une association de moyens logiciels et Hardware.
Ce type de système de chiffrement a l'inconvénient d'être lent ce qui pèse fortement sur certains échanges de données et particulièrement entre un processeur et une mémoire à accès aléatoire habituellement utilisée pour des échanges rapides.
Par ailleurs, les systèmes de chiffrement mis en œuvre selon l'art antérieur impliquent de nombreux échanges de données (notamment des clés) entre le processeur et la mémoire.
Cela pèse également sur la rapidité d'exécution de l'ensemble du processus de chiffrement.
La présente invention a pour objectif de proposer un procédé et un dispositif de chiffrement de données numériques qui permettent de ne pas handicaper la rapidité des échanges de données.
Pour ce faire, l'invention a l'avantage d'opérer un chiffrement de façon plus rapide.
En effet, son implantation strictement hardware assure une grande rapidité du chiffrement. On notera que l'implémentation purement hardware du dispositif de chiffrement va à encontre d'un préjugé constant dans l'état de la technique selon lequel il est nécessaire de disposer d'une couche logicielle pour assurer un chiffrement avec une souplesse d'utilisation notamment quant à la saisie et les modifications de clés de chiffrement. La présente invention a vaincu ce préjugé en proposant un nouveau dispositif et procédé de chiffrement implantés uniquement en hardware tout en assurant un chiffrement efficace des données.
Un autre avantage de l'invention est qu'elle ne nécessite que peu d'échanges avec le microprocesseur. Un autre but de l'invention est de proposer un système de chiffrement particulièrement efficace et difficile à pirater.
D'autres buts et avantages apparaîtront au cours de la description qui suit d'un mode de réalisation préféré de l'invention qui n'est cependant qu'indicatif.
La présente invention concerne un dispositif de chiffrement de données numériques comportant une chaîne de chiffrement avec :
- des moyens de permutation des bits de données ;
- des moyens de substitution des bits de données ; - des moyens d'exécution d'une opération logique « ou exclusif » caractérisé par le fait que lesdits moyens de permutation, de substitution et d'exécution sont des moyens implémentés matériellement.
Ce dispositif pourra se présenter suivant les modes de réalisation introduits ci-après : - les moyens d'exécution d'une opération logique « ou exclusif » comportent au moins un moyen d'exécution situé vers le milieu de la chaîne de chiffrement ;
- les moyens d'exécution d'une opération logique « ou exclusif » comportent au moins une porte logique « ou exclusif » avec une entrée pour les données à chiffrer et une entrée pour une valeur fonction de l'adresse de stockage en mémoire de données à chiffrer ;
- la valeur fonction de l'adresse est l'adresse elle-même ;
- la valeur fonction de l'adresse est une partie de l'adresse obtenue par troncature ; - la valeur fonction de l'adresse est obtenue par extension de l'adresse ;
- les moyens d'exécution d'une opération logique « ou exclusif » comportent au moins une porte logique « ou exclusif » avec une entrée pour les données à chiffrer et une entrée pour une valeur aléatoire ;
- la valeur aléatoire est modifiée à chaque remise à zéro du dispositif ; - les moyens de substitution comportent des tables de substitution de données par paquets.
L'invention concerne également un procédé de chiffrement de données numériques comportant une chaîne d'étapes de chiffrement dans laquelle :
- on effectue des permutations des bits de données ; - on effectue des substitutions des bits de données ;
- on exécute des opérations logiques « ou exclusif » caractérisé par le fait qu'on effectue les étapes de chiffrement par utilisation de moyens implémentés matériellement.
Selon des variantes préférées, ce procédé comporte les étapes suivantes :
- on exécute au moins une opération logique « ou exclusif » vers le milieu des étapes de chiffrement ; - on exécute au moins une opération logique « ou exclusif » par opération entre les données à chiffrer et une valeur fonction de l'adresse de stockage en mémoire des données à chiffrer ;
- on utilise comme valeur fonction de l'adresse l'adresse elle-même ;
- on obtient la valeur fonction de l'adresse en tronquant ladite adresse ; - on obtient la valeur fonction de l'adresse par extension de l'adresse
- on exécute au moins une opération logique « ou exclusif » par opération entre les données à chiffrer et une valeur aléatoire ;
- on modifie la valeur aléatoire à chaque remise à zéro.
- on effectue au moins une substitution des bits de données par paquets dé bits.
Les dessins ci-joints sont donnés à titre d'exemples et ne sont pas limitatifs de l'invention. Ils représentent seulement un mode de réalisation de l'invention et permettront de la comprendre aisément.
La figure 1 schématise l'utilisation préférentielle de l'invention pour un chiffrement de données entre un processeur et une mémoire à accès aléatoire.
La figure 2 illustre un mode de réalisation préféré du dispositif selon l'invention avec différentes étapes de chiffrement.
En référence à la figure 1 , le dispositif et le procédé selon l'invention peuvent être mis en œuvre entre un processeur 1 et une mémoire du type à accès aléatoire 2 afin de chiffrer les données transmises par le bus de données 13.
Toute autre application à divers échanges de données n'est cependant pas exclue de la présente invention.
On a présenté en figure 2 un mode de réalisation préféré de l'invention pour le chiffrement de bits de données entrant 11.
Le repère 12 illustre les bits de données sortant issus du chiffrement.
En référence à cette figure, différents moyens de permutations 3, 4, 5 sont présents à différents niveaux de la chaîne de chiffrement.
Avantageusement, ces moyens de permutation 3, 4, 5 sont alternés avec d'autres moyens de chiffrement et particulièrement des moyens de substitution de bits de données 6a, 6b, 6c, 6d, 7a, 7b, 8.
Par ailleurs, des moyens d'exécution d'une opération logique « ou exclusif » sont également présents et représentés ici sous forme de portes logiques 9, 10.
A titre préféré, la chaîne de chiffrement s'organise comme suit : N x (alternances permutations/ Substitutions), XOR avec V, XOR avec RN (pas de permutations avec RN), M x alternances permutations / Substitutions), N et M >=1 de préférence au moins deux.
En référence à la figure 2, la chaîne de chiffrement peut débuter par une permutation 3 suivie d'une étape de substitution par les moyens 6a, 6b, 6c, 6d.
La substitution est opérée par des tables de substitution de données et préferentiellement réalisée par une pluralité de tables disposées en parallèle pour chiffrer des paquets distincts de bits de données.
Dans l'exemple de données échangées sur 16 bits, on pourra utiliser quatre tables de substitution de quatre bits.
On pourra également comme dans le cas des tables de substitution 7a, 7b utiliser deux tables de chiffrement de 8 bits.
Toujours en référence à la figure 2, on peut également constituer une table de substitution repérée 8 de 16 bits et réalisée de façon unique pour effectuer les tables de substitution de l'ensemble des bits de données.
Suite à des tables de substitution représentées aux repères 6a, 6b, 6c, 6d, on réalise une nouvelle permutation au niveau 4.
S'ensuit une nouvelle étape de substitution au niveau 7a, 7b.
On réalise alors une opération logique « ou exclusif » par l'intermédiaire de la porte 9.
On visualise clairement à la figure 2, que cette étape d'opération « ou exclusif » est positionnée sensiblement au milieu de la chaîne de chiffrement.
A titre préféré, on utilise pour l'opération logique « ou exclusif » une entrée d'une valeur fonction de l'adresse de stockage en mémoire des données à chiffrer.
Dans ce cadre, on a représenté par la lettre V une entrée de données représentative de l'adresse en mémoire.
A titre d'exemple, la valeur fonction de l'adresse peut être l'adresse elle-même, une valeur obtenue par troncature de l'adresse ou, plus généralement, une valeur obtenue par extension de l'adresse.
Cela dépendra de la longueur relative des données à chiffrer et de leur adresse.
Par extension on signifie que les bits de l'adresse sont recopiés et ou tronqués afin que la valeur obtenue comporte un même nombre de bits que la données avec laquelle on doit effectué un « ou exclusif ».
Suite à cette étape, on réalise une nouvelle étape d'opération logique « ou exclusif » repérée 10.
Au niveau de cette porte, une entrée est associée aux données à chiffrer et une autre entrée est associée à l'entrée d'un nombre aléatoire RN utilisé par la porte 10.
La réalisation d'une porte « ou exclusif » 10 avec une entrée d'une valeur aléatoire RN a l'avantage avec un faible surcoût et peu de perte de rapidité de gêner les attaques longues à base d'accumulation de résultats nécessitant beaucoup de traitement et donc parfois impliquant des remises à zéro.
Dans ce cadre, on changera avantageusement la valeur aléatoire RN à chaque remise à zéro du dispositif.
En ce qui concerne la porte « ou exclusif » 9, elle a également l'avantage de ne pas peser sur la rapidité du chiffrement et notamment en proposant des étapes de troncature ou d'extension de la valeur d'adresse pour l'adapter à la longueur des données de chiffrement qui sont des opérations techniquement rapides.
L'opération logique effectuée par la porte 10 peut être suivie d'une étape supplémentaire de permutation au repère 5 puis préferentiellement de substitution par la table 8.
Ces opérations 5, 8 peuvent être renouvelées M fois comme figuré. En sortie, on obtient des données chiffrées repérées 12. On réalise ainsi un chiffrement efficace c'est-à-dire difficile à percer tout en assurant une grande rapidité d'exécution des opérations de chiffrement.
On notera que dans le mode de réalisation préféré illustré, très peu d'échanges sont nécessaires entre le processeur et le dispositif de chiffrement notamment en ce qui concerne les paramètres de chiffrement.
En effet, l'ensemble du dispositif étant fixé au niveau matériel (implémentation hardware) les paramètres de chiffrement tels que des clés n'ont pas à être transmises par le microprocesseur.
En effet, son implantation strictement hardware assure une grande rapidité du chiffrement.
On notera que l'implémentation purement hardware du dispositif de chiffrement va à encontre d'un préjugé constant dans l'état de la technique selon lequel il est nécessaire de disposer d'une couche logicielle pour assurer un chiffrement avec une souplesse d'utilisation notamment quant à la saisie et les modifications de clés de chiffrement.
La présente invention a vaincu ce préjugé en proposant un nouveau dispositif et procédé de chiffrement implantés uniquement en hardware tout en assurant un chiffrement efficace des données.
REFERENCES
1. Processeur
2. Mémoire à accès aléatoire 3, 4, 5, 5'. Moyens de permutation
6a, 6b, 6c, 6d. Moyens de substitution 7a, 7b. Moyens de substitution
8, 8'. Moyens de substitution
9. Porte logique 10. Porte logique
11. Bits de données entrant
12. Bits de données sortant
13. Bus de données V. Valeur RN. Valeur aléatoire