FR2765056A1 - Algorithme de chiffrage par blocs ayant une securite robuste contre une analyse cryptographique differentielle, une analyse cryptographique lineaire et une analyse cryptographique differentielle d'ordre plus eleve - Google Patents
Algorithme de chiffrage par blocs ayant une securite robuste contre une analyse cryptographique differentielle, une analyse cryptographique lineaire et une analyse cryptographique differentielle d'ordre plus eleve Download PDFInfo
- Publication number
- FR2765056A1 FR2765056A1 FR9807753A FR9807753A FR2765056A1 FR 2765056 A1 FR2765056 A1 FR 2765056A1 FR 9807753 A FR9807753 A FR 9807753A FR 9807753 A FR9807753 A FR 9807753A FR 2765056 A1 FR2765056 A1 FR 2765056A1
- Authority
- FR
- France
- Prior art keywords
- block
- data
- bit
- key
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
La présente invention concerne un algorithme de chiffrage par blocs basé sur l'algorithme de chiffrage par blocs antérieur de type Feistel (ou analogue à un algorithme DES). Habituellement, la sécurité de l'algorithme de chiffrage par blocs de type Feistel dépend de la structure de sa fonction de tour. Plus particulièrement, la présente invention concerne la structure de fonction de tour de l'algorithme de chiffrage par blocs de type Feistel dans le cas où le bloc de données d'entrée de tour est divisé en blocs de 8 bits, et où les sous-blocs divisés sont fournis, avec les données de sortie combinées de la boîte S précédente, en boîte S de 256 x 8, sauf pour le premier sous-bloc d'entrée de données. Le premier sous-bloc de données est fourni directement à la première boîte S. On fait tourner de 8 bits le bloc de données de sortie total, après ces étapes, et ce résultat ainsi tourné constitue la sortie de la fonction de tour courante.
Description
La présente invention concerne un procédé de
chiffrage par blocs rapide ayant un algorithme de planifica-
tion de clé. L'invention concerne également un support utili-
sable par un ordinateur et sur lequel est mis en oeuvre un programme d'ordinateur pour coder des signaux audio en un flux de données en couches comportant une couche de base et
un nombre prédéterminé de couches de renforcement.
La Demande Coréenne 1997-26558, déposée le 23 Juin 1998 et sur laquelle est basée une revendication de
priorité, est incorporée ici à titre de référence.
DOMAINE DE L'INVENTION
L'invention concerne un procédé de chiffrage de
données et un algorithme de chiffrage par blocs rapide sécu-
risé contre une analyse cryptographique différentielle, une
analyse cryptographique linéaire et une analyse cryptographi-
que différentielle d'ordre plus élevé. Plus particulièrement, l'algorithme peut être mis en oeuvre facilement et exécuté rapidement comparativement aux algorithmes de chiffrage par
blocs conventionnels.
DESCRIPTION DE LA TECHNOLOGIE CONCERNEE
Les algorithmes de chiffrage conventionnels sont
conçus intuitivement ou par l'expérience pratique d'un inven-
teur. Par suite, beaucoup de tests en marche sur le terrain
peuvent être nécessaires pour assurer la sécurité de l'algo-
rithme de chiffrage.
Un algorithme de chiffrage par blocs courant est
basé sur le DES qui est adopté comme le Standard de Traite-
ment de Données des Etats-Unis 46 (FIPS PUB46) par l'Office de Standardisation des Etats-Unis. Le DES est un algorithme de chiffrage par blocs qui chiffre des données en blocs de 64 bits.
Un bloc de 64 bits de texte en clair sert d'en-
trée à une extrémité de l'algorithme, et un bloc de 64 bits
de texte chiffré est fourni en sortie par l'autre extrémité.
Le DES est donc un algorithme symétrique.
Le même algorithme et la même clé sont utilisés à la fois pour le chiffrage et le déchiffrage, sauf en ce qui concerne des différences mineures dans la planification de clé. La longueur de clé est de 56 bits. Cependant, la clé est généralement exprimée sous la forme d'un nombre de 64 bits
dans lequel 8 bits sont utilisés pour la vérification de pa-
rité et sont donc ignorés pendant le chiffrage/déchiffrage.
De plus, les bits de parité sont les bits les moins signifi- catifs des octets de clé. La clé peut être un nombre de 56 bits quelconque et peut être changée à tout moment. Plusieurs nombres sont considérés comme des clés faibles, mais ces clés
faibles sont facilement évitées car toute la sécurité se si-
tue à l'intérieur de la clé.
A son niveau le plus simple, un algorithme n'est
rien de plus qu'une combinaison des deux techniques de chif-
frage de base, c'est à dire la confusion et la diffusion. Le bloc de construction fondamental du DES est une combinaison
unique de ces techniques, c'est à dire une substitution sui-
vie d'une permutation dans le texte, basée sur la clé, qu'on
appelle couramment un tour.
Le DES comporte 16 tours. Il applique la même combinaison de techniques 16 fois sur un bloc de texte en
clair. L'algorithme DES n'utilise que des opérations arithmé-
tiques et logiques standards sur un maximum de 64 bits, de sorte qu'il est facilement mis en oeuvre dans la technologie de matériel de la fin des années 70. La nature répétitive de l'algorithme le rendait idéal pour une utilisation sur une puce à application spéciale. Les réalisations de logiciel initiales étaient grossières, mais les réalisations courantes
ont été améliorées.
Le DES fonctionne sur un bloc à 64 bits de texte en clair. Après une permutation initiale, le bloc est brisé en une moitié de droite et une moitié de gauche ayant chacune une longueur de 32 bits. On a ensuite 16 tours d'opérations identiques, appelées fonction f, dans lesquelles les données sont combinées à la clé. Après le seizième tour, la moitié de
droite et la moitié de gauche sont réunies, puis une permuta-
tion finale, inverse de la permutation initiale, termine l'algorithme. A chaque tour, les bits de clé sont déplacés, puis 48 bits sont choisis parmi les 56 bits de la clé. La moitié de droite des données est dilatée à 48 bits par une
permutation d'expansion, combinée aux 48 bits d'une clé dé- placée et permutée par un OU EXCLUSIF, envoyée à travers 8 boîtes S produisant 32 nouveaux bits, et permutée de nouveau.5 Ces quatre opérations forment la fonction de tour f. La sor-
tie de la fonction f est ensuite combinée à la moitié de gau-
che par un autre OU EXCLUSIF. Les résultats de ces opérations
deviennent la nouvelle moitié de droite; et l'ancienne moi-
tié de droite devient la nouvelle moitié de gauche. Les opé-
rations sont répétées 16 fois pour former ainsi les 16 tours
du DES.
Sur la base d'une analyse cryptographique diffé-
rentielle, d'une analyse cryptographique linéaire et d'une analyse cryptographique différentielle d'ordre plus élevé, le
DES est attaquable en utilisant 247 textes de chiffrage choi-
sis par analyse cryptographique différentielle, et en utili-
sant 243 textes de chiffrage connus par analyse
cryptographique linéaire.
Beaucoup d'algorithmes de chiffrage ont été pro-
posés pour traiter les analyses cryptographiques ci-dessus, et l'on en vient à penser que l'algorithme de chiffrage qui
est résistant aux attaques ci-dessus (différentielles et li-
néaires) doit être un algorithme sûr. Pour cette sécurité, c'est à dire pour une sécurité supplémentaire, on a développé un procédé pour construire un algorithme de chiffrage par les
preuves théoriques et logiques de la résistance de l'algo-
rithme aux analyses cryptographiques différentielles et li-
néaire. Cependant, ce procédé d'analyse cryptographique est
très difficile.
La première tentative pour résoudre ces problèmes était l'algorithme MISTY du Japon. Dans l'algorithme MISTY, des boîtes S constituées de 7 bits ou de 9 bits avaient une forme algébrique simple. Un inconvénient de l'algorithme MISTY est qu'une mise en oeuvre de celui-ci nécessite une
structure récursive compliquée.
RESUME DE L'INVENTION
La présente invention a pour but de créer un algorithme de
chiffrage par blocs rapide pour aborder le problème permet-
tant de s'assurer de sa sécurité contre les attaques par ana-
lyse cryptographique différentielles et par analyse crypto-
graphique linéaire, et de plus contre l'analyse crypto-
graphique différentielle d'ordre plus élevé.
A cet effet, l'invention concerne un procédé de
chiffrage par blocs rapide ayant un algorithme de planifica-
tion de clé, caractérisé en ce qu'il comprend les étapes con-
sistant à: (a) briser un bloc de chiffrage souple en divisant un flux de données en blocs de données de 2 N octets, le bloc étant di- visé en une première moitié et une seconde moitié; (b) exécuter une opération logique OU exclusive avec la se- conde moitié et une clé de tour de M octets; (c) diviser le résultat de l'étape (b) en L blocs de 8 bits, envoyer le premier bloc à une première boîte S, et envoyer chaque bloc restant à une boîte S correspondante, après l'avoir combiné aux données de sortie de la boîte S (L-l); (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape (d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première moitié. Suivant une autre caractéristique de l'invention, le procédé consiste à: (a) briser des données de N octets en Mblocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256;
(c) combiner le résultat de l'étape (b) et un nombre irra-
tionnel avec une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128.
L'invention concerne également un support utili-
sable par un ordinateur et sur lequel est mis en oeuvre un programme d'ordinateur pour coder des signaux audio en un flux de données en couches comportant une couche de base et
un nombre prédéterminé de couches de renforcement, caractéri-
sé en ce que le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser un bloc de chiffrage souple en divisant un flux de données en bloc de données de 2N octets, le bloc étant divisé en une première moitié et une seconde moitié;
(b) exécuter une opération logique OU exclusive avec la se-
conde moitié et une clé de tour de M octets; (c) diviser le résultat de l'étape (b) en Lblocs de 8 bits, envoyer le premier bloc à une première boîte S et envoyer chaque bloc restant à une boîte S correspondante, après l'avoir combiné aux données de sortie provenant de la boîte S L-1; (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape(d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première moitié. Suivant une autre caractéristique de l'invention, le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser des données de N octets en M blocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256;
(c) combiner le résultat de l'étape (b) et un nombre irra-
tionnel, par une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128. La présente invention, appelée ici SNAKE, a une fonction de tour qui diffère des algorithmes de chiffrage par blocs conventionnels. La fonction de tour de SNAKE a une structure très simple qui comporte une opération logique de base (opérateur OU exclusif) et une opération de rotation à 8 bits (sauf pour les boîtes S auxquelles on demande d'avoir une non linéarité élevée pour leur sécurité), de manière à simplifier la forme de réalisation. Cependant, le SNAKE n'a pas la même structure récursive que l'algorithme MISTY, mais est au contraire structuré pour que le bloc de données de sortie d'une boîte S soit renvoyé en rétroaction à la boîte S suivante de gauche, et soit décalé de 8 bits vers la gauche. Cette structure donne une diffusion d'avalanche stricte aux données qui s'écoulent, de manière à abaisser la linéarité et l'uniformité différentielle de la fonction de tour. Dans la vérification de sa résistance à l'analyse cryptographique différentielle et linéaire, le principe selon l'invention de
"Suite de différences" et de "Matrice différentielle fonda-
mentale" a été développé et la motivation théorique a été
établie à partir de celui-ci.
On décrira maintenant le processus de planifica-
tion de clé de SNAKE. Initialement, le processus est alimenté par une clé de semence aléatoire de 128 bits, et la clé de
semence est brisée en quatre sous-blocs de 32 bits. Les sous-
blocs passent par le processus illustré à la figure 2, avec
un nombre d'or GN, via les trois opérations suivantes: opé-
ration OU exclusive; addition de module 256; et rotation
vers la gauche de 5 bits. Ces processus empêchent la récupé-
ration de la clé du tour précédent, même si les clés des
tours suivants sont trouvées.
BREVE DESCRIPTION DES DESSINS
La présente invention sera décrite ci-après de
manière plus détaillée à l'aide de modes de réalisations re-
présentés sur les dessins annexés dans lesquels: - la figure 1 illustre la structure de fonction de tour de la présente invention, qui constitue la partie de
noyau principale de l'algorithme SNAKE.
Les figures 2a et 2b illustrent le processus de planification de clé de la présente invention à partir des 128 bits de clé de semence pour la génération de clés de tour, la figure 2a illustrant la fonction SCROL devant être
directement utilisée pour la génération de clé de tour prati-
que de la figure 2b; et - la figure 3 illustre toute la structure de type
Feistel de la présente invention.
Bien que l'invention soit susceptible de diverses modifications et variantes de forme, des modes de réalisation
spécifiques de celle-ci ont été représentés à titre d'exemple dans les dessins et seront décrits ici en détail. On compren-5 dra cependant que cela n'est pas destiné à limiter l'inven-
tion aux formes particulières décrites, mais que le but est au contraire de couvrir toutes modifications, équivalences et variantes tombant dans l'esprit et le cadre de l'invention
telle que définie par les revendications ci-jointes.
DESCRIPTION DES MODES DE REALISATION PREFERENTIELS
On crée un algorithme de chiffrage par blocs ra-
pide qui est résistant contre une analyse cryptographique différentielle, une analyse cryptographique linéaire et une
analyse cryptographique différentielle d'ordre plus élevé.
Un mode de réalisation de l'algorithme de la pré-
sente invention est appelé SNAKE et chiffre les données en blocs de 64 bits. Un bloc de 64 bits de texte en clair est introduit à l'entrée d'une extrémité de l'algorithme, et un
bloc de 64 bits de texte chiffré est fourni en sortie à l'au-
tre extrémité de l'algorithme. Le SNAKE est un algorithme sy-
métrique, c'est à dire qu'on utilise le même algorithme et la même clé à la fois pour le chiffrage et pour le déchiffrage,
sauf en ce qui concerne des différences mineures de planifi-
cation de clé. La longueur de clé de semence est de 128 bits.
Avant le chiffrage des données et le déchiffrage des données, les seize clés de tour à utiliser à chaque tour sont établies
par un processus de planification de clé à partir de la se-
mence de clé, comme cela sera décrit ci-après.
(1) Planification de clé La clé de semence S de 128 bits est brisée en quatre blocs de 32 bits, par exemple: S S4lS3[S21SI,
o la partie la moins significative du nombre en-
tier de 128 bits est disposée et enchaînée en série à partir de la droite. Ainsi, Si et S2 sont respectivement la clé de
premier tour et la clé de second tour.
En se référant à la figure 1, le bloc 10 illustre
un bloc de données d'entrée de 32 bits combiné (par un opéra-
teur OU exclusif) à la clé de tour de 32 bits qui était pla-
nifiée par le procédé de génération de clé sur la fonction de tour. Le bloc 20 illustre un bloc de données subdivisé de 8 bits des données d'entrée totales X de 32 bits provenant du bloc de données d'entrée de 32 bits. Le bloc 30 illustre un opérateur logique OU exclusif. Le bloc 40 illustre une boîte S de 256 x 8 qui est une fonction non linéaire des données d'entrée de 8 bits aux données de sortie de 8 bits. Le bloc
illustre une rotation d'un octet (8 bits) des données en-
chaînées de 32 bits provenant des blocs de sortie de 8 bits des boîtes S. Le bloc 60 illustre les données de sortie de 32
bits provenant de la fonction de tour.
Pour la génération des clés de tour restantes, on introduit une fonction "SCROL" qui reçoit des données de 32 bits et fournit en sortie la même longueur de données. En se
référant à la figure 2a, le bloc 70 illustre un bloc de don-
nées d'entrée de 32 bits à la fonction, appelée SCROL, desti-
née à la génération de clé de tour. Le bloc 80 illustre un
bloc de données subdivisé de 8 bits provenant du bloc de don-
nées d'entrée de 32 bits à la fonction SCROL. Le bloc 90 il-
lustre un opérateur d'addition modulaire (mod.256) de 8 bits.
Le bloc 100 illustre un opérateur logique OU exclusif. Le
bloc 110 illustre le processus de combinaison (par un opéra-
teur OU exclusif) avec le nombre irrationnel constant GN de 32 bits qui présente les mêmes caractéristiques que dans une
séquence de bits aléatoires. Le bloc 120 illustre une rota-
tion à gauche de 5 bits des données à 32 bits résultant de
l'étape précédente. Le bloc 130 illustre les données de sor-
tie finales de 32 bits provenant de la fonction SCROL.
En ce qui concerne la figure 2b, le bloc 140 il-
lustre la clé de semence S de 128 bits qui doit être brisée en sous- blocs de 32 bits Si, S2, S3 et S4, pour le processus de génération de clé de tour. Le bloc 150 illustre les blocs de clés de semence subdivisés à 32 bits qui sont obtenus à partir des clés de semence de 128 bits. Le bloc 160 illustre les clés de tour générées par le processus de génération de
clé, Ki désignant la clé à 32 bits du ième tour.
Si des données de 32 bits, X = X4IX31MX21X1, (Xi:8 bits) sont appliquées à l'entrée de SCROL, sa sortie, par exemple Y, peut être représentée par les équations suivan- tes TI = X1 +X4; (8-bits) T2 = X2eDTI; (8-bits) T3 = X3+T2; (8-bits) T4 = X4ëT3; (8-bits) T = T4lT3IT21TI; (32-bits) Y = (Te0xb7c15163) < < <5;
dans lesquelles la notation "Il" désigne l'enchaî-
nement en série, "G" représente l'opérateur OU exclusif, "+" représente l'addition modulaire 256, et (*)<<<5 désigne la rotation à gauche de 5 bits de *
Enfin, en utilisant cette fonction SCROL, on gé-
nère les clés de tour restantes Ki, i=3, 4,... 16, telles que par exemple K3=SCROL(S2)eS4;
K4=SCROL(S1)S3;
K(i+I)=SCROL(Ki)oK(i-l);i=4,5..,15. (2) Boîtes S. Fonction de Tour Les boîtes S sont utilisées dans la fonction de tour F.
Il y a quatre boîtes S dans notre exemple de réa-
lisation SNAKE, et il est recommandé que les boîtes S:Sl, S2, S3, S4 aient les deux types suivants: TYPE1: S1 =S2=S3=S4= f(x); TYPE2: S1=S3= f(x), S2=S4=g(x); o f(x)=x-l, inversion algébrique du Domaine de
Galois GF (256), et g(x)=h(h(x)):auto-composition de la fonc-
tion exposant modulaire de base 45, c'est à dire h(x)=45*mod257.
De plus, dans un exemple de réalisation, on uti-
lise TYPE1 pour une mise en oeuvre du matériel et du logi-
ciel, et l'on utilise TYPE2 pour une mise en oeuvre du logiciel. TYPEl peut être réalisé dans une forme de circuit pour une puce à un niveau de porte, au lieu d'une utilisation
de tables de mémoires mortes (ROM).
On décrira maintenant la fonction de tour. Si les données de 32 bits X G Ki=X4 Il X3 Il X2 Il X1 (Xi:sous-blocs de 8 bits qui sont enchaînés dans l'ordre du bloc le moins significatif à partir de la partie la plus à droite, Ki est
la clé du ième tour) sont appliquées à l'entrée de la fonc-
tion de tour F, sa sortie Y=Y4 | Y3 Il Y2 Il Y1 est alors don-
née par les formules suivantes: Yl=Sl (Xl); Y2=S2 (X2eYl); Y3=S3 (X3eY2); Y4=S4 (X4oeY3):
Y =Y41Y3IY2IY1.
En se référant à la figure 3, le bloc 170 illus-
tre la moitié de gauche à 32 bits du texte en clair à 64 bits d'entrée dans l'algorithme de chiffrage SNAKE. Le bloc 180 illustre la moitié de droite à 32 bits du texte en clair à 64 bits d'entrée dans l'algorithme de chiffrage SNAKE. Le bloc 190 illustre la fonction de tour de l'algorithme SNAKE dont
la structure a été décrite à la figure 1. Le bloc 200 illus-
tre une clé de tour générée par le processus de planification de clé de SNAKE représenté aux figures 2a et 2b. Le bloc 210
illustre un opérateur logique OU exclusif. Le bloc 220 illus-
tre la moitié de gauche à 32 bits des données de sortie fina-
les à 64 bits telles que les données chiffrées ou le texte chiffré, par le processus à 16 tours du SNAKE qui exécute un processus à un seul tour répété 16 fois. Le bloc 230 illustre la moitié de droite à 32 bits des données de sortie finales à 64 bits telles que les données chiffrées ou le texte chiffré,
par le processus à 16 tours du SNAKE qui exécute un proces-
sus à un seul tour répété 16 fois.
il En résumé, le SNAKE fonctionne sur un bloc de texte en clair de 64 bits. Le bloc est brisé en une moitié de droite et une moitié de gauche ayant chacune une longueur de 32 bits. Il y a ensuite 16 tours d'opérations identiques, en se référant à la figure 3, qu'on appelle fonction de tour F dans laquelle les données sont combinées avec la clé par une opération de OU-EXCLUSIF. Après le seizième tour, les moitiés
de droite et de gauche sont réunies, et l'algorithme est ter-
miné. A chaque tour, la moitié de droite (32 bits) des don-
nées de sortie du tour précédent, est combinée à sa clé de tour (par un OU-EXCLUSIF) et les données résultantes sont
brisées en quatre blocs de données de 8 bits X1, X2, X3, X4.
Les blocs de données forment les données d'entrée de la fonction de tour F précédemment décrite. Là encore, ces données de sortie de F sont combinées au bloc de données de
la moitié de gauche à 32 bits, par un OU-EXCLUSIF, pour for-
mer le bloc de données de la moitié de droite du tour suivant
ou nouveau tour (l'ancienne moitié de droite devient la nou-
velle moitié de gauche). Ces opérations sont répétées 16 fois
pour former ainsi les 16 tours du SNAKE.
Si Bj est le résultat de la jème itération, si Lj et Rj sont les moitiés de gauche et de droite de Bj, si Kj est la clé pour le tour j, et si F est la fonction de tour précédemment décrite, un tour se présente alors sous la forme: %=Fl -= L-,1 oeF(R,. eKj); Dans la présente invention, la sécurité (résistance) du SNAKE pourrait se déduire de la considération
de ce qu'on fait apparaître la différence de données de sor-
tie de chaque boîte S si l'on donne, comme paramètres varia-
bles, une paire de valeurs de données ayant une différence
(différence d'entrée), et si l'on construit un système li-
néaire d'équations des paramètres de variables de différence pour obtenir sa matrice de coefficients, qu'on appelle
"Matrice Différentielle Transitoire". En formant ou en trou-
vant certaines conditions pour limiter le chiffrage à son "rang", on peut en déduire la structure de la fonction de tour du SNAKE. La preuve de la sécurité a été décrite dans le Chang-hyi Lee et Young-tae Cha "The Block Cipher:SNAKE with Provable Resistance against-DC and LC Attacks", JW-lSC, (1997), incorporé ici à titre de référence. La vitesse de traitement de la présente invention est plus rapide que celle du DES. Dans la simulation du SNAKE, mise en oeuvre dans le langage C++ sur un PC PENTIUM MHz, le processus de chiffrage de la présente invention fonctionne à 16 Mbps, tandis que le DES fonctionne à 10.4
Mbps sur la même machine.
L'invention peut être mise en oeuvre dans un or-
dinateur numérique à applications générales qui passe un pro-
gramme ou des segments de programme provenant d'un support lisible par un ordinateur ou utilisable par un ordinateur, un tel support comprenant, mais sans que cela soit limitatif, des supports de stockage magnétiques (par exemple des ROM,
des disques souples, des disques durs, etc), des supports li-
sibles optiquement (par exemple des CD-ROM, des DVD, etc), et
des ondes porteuses (par exemple des transmissions sur le ré-
seau Internet). Un programme fonctionnel, un code et des seg-
ments de code, utilisés pour mettre en oeuvre la présente
invention, peuvent être obtenus par un programmeur expérimen-
té à partir de la description de l'invention contenue ici.
Claims (4)
1 ) Procédé de chiffrage rapide par blocs ayant un algorithme de planification de clé, caractérisé en ce qu' il comprend les étapes consistant à: (a) briser un bloc de chiffrage souple en divisant un flux de
données en blocs de données de 2 N octets, le bloc étant di-
visé en une première moitié et une seconde moitié;
(b) exécuter une opération logique OU exclusive avec la se-
conde moitié et une clé de tour de M-octets; (c) diviser le résultat de l'étape (b) en L blocs de 8 bits, envoyer le premier bloc à une première boîte S, et envoyer chaque bloc restant à une boîte S correspondante, après l'avoir combiné aux données de sortie de la boîte S (L-1); (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape (d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première moitié.
2 ) Procédé de chiffrage par blocs rapide ayant un algorithme de planification de clé, caractérisé en ce qu'il consiste à: (a) briser des données de N octets en M blocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256;
(c) combiner le résultat de l'étape (b) et un nombre irra-
tionnel avec une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128.
3 ) Support utilisable par un ordinateur et sur lequel est
mis en oeuvre un programme d'ordinateur pour coder des si-
gnaux audio en un flux de données en couches comportant une
couche de base et un nombre prédéterminé de couches de ren-
forcement, caractérisé en ce que le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser un bloc de chiffrage souple en divisant un flux de données en bloc de données de 2N octets, le bloc étant divisé en une première moitié et une seconde moitié;
(b) exécuter une opération logique OU exclusive avec la se-
conde moitié et une clé de tour de M octets; (c) diviser le résultat de l'étape (b) en L blocs de 8 bits, envoyer le premier bloc à une première boîte S et envoyer chaque bloc restant à une boîte S correspondante, apres l'avoir combiné aux données de sortie provenant de la boîte S 1i5 L-1; (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape (d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première
moitié.
4 ) Support utilisable par un ordinateur et sur lequel est
mis en oeuvre un programme d'ordinateur pour coder des si-
gnaux audio en un flux de données en couches comportant une
couche de base et un nombre prédéterminé de couches de ren-
forcement, caractérisé en ce que le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser des données de N octets en M blocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256;
(c) combiner le résultat de l'étape (b) et un nombre irra-
tionnel, par une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970026558A KR100389902B1 (ko) | 1997-06-23 | 1997-06-23 | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2765056A1 true FR2765056A1 (fr) | 1998-12-24 |
FR2765056B1 FR2765056B1 (fr) | 2000-09-01 |
Family
ID=19510735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9807753A Expired - Fee Related FR2765056B1 (fr) | 1997-06-23 | 1998-06-19 | Algorithme de chiffrage par blocs ayant une securite robuste contre une analyse cryptographique differentielle, une analyse cryptographique lineaire et une analyse cryptographique differentielle d'ordre plus eleve |
Country Status (6)
Country | Link |
---|---|
US (1) | US6314186B1 (fr) |
JP (1) | JP3148181B2 (fr) |
KR (1) | KR100389902B1 (fr) |
DE (1) | DE19827904C2 (fr) |
FR (1) | FR2765056B1 (fr) |
GB (1) | GB2327581B (fr) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100434558B1 (ko) * | 1997-12-09 | 2004-09-30 | 삼성전자주식회사 | 고속블록암호화방법및이를위한키스케쥴링방법 |
CA2299538C (fr) * | 1998-06-02 | 2004-08-03 | Nippon Telegraph And Telephone Corporation | Dispositif et procede d'evaluation du caractere aleatoire d'une fonction, dispositif et procede de production d'une fonction aleatoire et support enregistre sur lequel des programmes de mise en application de ces procedes sont enregistres |
GB2345229B (en) * | 1998-12-23 | 2003-12-03 | Motorola Ltd | Method for encrypting data |
KR100316025B1 (ko) * | 1999-06-30 | 2001-12-12 | 박종섭 | 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치 |
US7093137B1 (en) * | 1999-09-30 | 2006-08-15 | Casio Computer Co., Ltd. | Database management apparatus and encrypting/decrypting system |
KR100362170B1 (ko) * | 2000-05-04 | 2002-11-23 | 한국전자통신연구원 | 라운드 키 생성 및 암호처리용 암호화장치 |
KR100377175B1 (ko) * | 2000-06-08 | 2003-03-26 | 주식회사 하이닉스반도체 | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 |
WO2002003605A1 (fr) * | 2000-07-04 | 2002-01-10 | Koninklijke Philips Electronics N.V. | Boite de substitution d'algorithmes de chiffrage a code symetrique |
KR100425956B1 (ko) * | 2000-07-15 | 2004-04-03 | (주)시큐어피아 | 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로 |
JP3770584B2 (ja) * | 2000-10-31 | 2006-04-26 | シャープ株式会社 | 暗号鍵生成回路 |
KR100850825B1 (ko) * | 2001-02-26 | 2008-08-06 | 나그라비젼 에스에이 | 압축 비디오 스트림의 암호화 |
US7212631B2 (en) * | 2001-05-31 | 2007-05-01 | Qualcomm Incorporated | Apparatus and method for performing KASUMI ciphering |
JP3851115B2 (ja) * | 2001-06-28 | 2006-11-29 | 富士通株式会社 | 暗号回路 |
JP2003023421A (ja) * | 2001-07-09 | 2003-01-24 | C4 Technology Inc | 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置 |
DE10149191C2 (de) * | 2001-10-05 | 2003-12-18 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation |
US7099469B2 (en) * | 2001-10-17 | 2006-08-29 | Motorola, Inc. | Method of scrambling and descrambling data in a communication system |
US7103180B1 (en) * | 2001-10-25 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Method of implementing the data encryption standard with reduced computation |
JP2003223098A (ja) * | 2002-01-29 | 2003-08-08 | Sony Corp | ブーリアン・マトリクスに基づく暗号化処理方法、および復号処理方法、並びにデータ通信システム |
KR100418575B1 (ko) * | 2002-04-03 | 2004-02-14 | 주식회사 하이닉스반도체 | 암호블럭연쇄 방식의 디이에스 암호화 장치 |
US7343011B2 (en) * | 2002-07-15 | 2008-03-11 | Conexant, Inc. | Secure telecommunications system for wireless local area networks |
FR2853424B1 (fr) * | 2003-04-04 | 2005-10-21 | Atmel Corp | Architecture de multiplicateurs polynomial et naturel combines |
US7310421B2 (en) * | 2003-10-06 | 2007-12-18 | National Institute Of Information And Communications Technology | Particular plaintext detector |
US7580519B1 (en) | 2003-12-08 | 2009-08-25 | Advanced Micro Devices, Inc. | Triple DES gigabit/s performance using single DES engine |
US7545928B1 (en) | 2003-12-08 | 2009-06-09 | Advanced Micro Devices, Inc. | Triple DES critical timing path improvement |
JP4574344B2 (ja) | 2004-01-20 | 2010-11-04 | キヤノン株式会社 | 情報処理装置及び方法 |
KR20050087271A (ko) * | 2004-02-26 | 2005-08-31 | 삼성전자주식회사 | 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치 |
US8817979B2 (en) * | 2004-06-04 | 2014-08-26 | Broadcom Corporation | Standalone hardware accelerator for advanced encryption standard (AES) encryption and decryption |
US7885405B1 (en) * | 2004-06-04 | 2011-02-08 | GlobalFoundries, Inc. | Multi-gigabit per second concurrent encryption in block cipher modes |
US7526085B1 (en) | 2004-07-13 | 2009-04-28 | Advanced Micro Devices, Inc. | Throughput and latency of inbound and outbound IPsec processing |
US7760874B2 (en) * | 2004-07-14 | 2010-07-20 | Broadcom Corporation | Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets |
US7783037B1 (en) | 2004-09-20 | 2010-08-24 | Globalfoundries Inc. | Multi-gigabit per second computing of the rijndael inverse cipher |
US7546461B2 (en) * | 2005-06-28 | 2009-06-09 | Microsoft Corporation | Strengthening secure hash functions |
CN104683096B (zh) * | 2013-11-29 | 2017-12-22 | 中国航天科工集团第三研究院第八三五七研究所 | 动态s盒变换方法及系统 |
US9584310B2 (en) | 2014-03-19 | 2017-02-28 | Nxp B.V. | Protecting a white-box implementation against attacks |
US9578469B2 (en) | 2014-10-02 | 2017-02-21 | Motorola Solutions, Inc. | Method and system for direct mode communication within a talkgroup |
US20160105276A1 (en) * | 2014-10-10 | 2016-04-14 | Qualcomm Incorporated | Rotation-based cipher |
US10341090B2 (en) * | 2014-10-14 | 2019-07-02 | Sony Corporation | Cipher processing apparatus and cipher processing method |
US9960909B2 (en) | 2014-12-08 | 2018-05-01 | Open-Silicon Inc. | High speed and low power hashing system and method |
US10015009B2 (en) * | 2015-11-25 | 2018-07-03 | Nxp B.V. | Protecting white-box feistel network implementation against fault attack |
US10742405B2 (en) * | 2016-12-16 | 2020-08-11 | The Boeing Company | Method and system for generation of cipher round keys by bit-mixers |
KR102424922B1 (ko) | 2020-03-02 | 2022-07-26 | 국방과학연구소 | Dlbn이 3 이상인 조건을 만족하는 확장 에스박스 및 이를 이용한 비트 연산 방법 |
JP7443833B2 (ja) | 2020-03-05 | 2024-03-06 | Tdk株式会社 | 圧力センサ |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997022192A1 (fr) * | 1995-12-08 | 1997-06-19 | Northern Telecom Limited | Creation d'algorithmes cryptographiques par la procedure de conception cast |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4195200A (en) * | 1976-06-30 | 1980-03-25 | International Business Machines Corporation | Key controlled block-cipher cryptographic system employing a multidirectional shift matrix |
US5003597A (en) * | 1989-12-21 | 1991-03-26 | Xerox Corporation | Method and apparatus for data encryption |
JPH05249891A (ja) * | 1992-03-06 | 1993-09-28 | Hitachi Ltd | 暗号処理装置およびこれを用いる暗号処理方法 |
JP3029381B2 (ja) * | 1994-01-10 | 2000-04-04 | 富士通株式会社 | データ変換装置 |
US5778074A (en) * | 1995-06-29 | 1998-07-07 | Teledyne Industries, Inc. | Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes |
US5838794A (en) | 1996-01-11 | 1998-11-17 | Teledyne Electronic Technologies | Method and apparatus for inter-round mixing in iterated block substitution systems |
-
1997
- 1997-06-23 KR KR1019970026558A patent/KR100389902B1/ko not_active IP Right Cessation
-
1998
- 1998-06-04 GB GB9811900A patent/GB2327581B/en not_active Expired - Fee Related
- 1998-06-11 US US09/095,845 patent/US6314186B1/en not_active Expired - Lifetime
- 1998-06-19 FR FR9807753A patent/FR2765056B1/fr not_active Expired - Fee Related
- 1998-06-23 DE DE19827904A patent/DE19827904C2/de not_active Expired - Fee Related
- 1998-06-23 JP JP17584498A patent/JP3148181B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997022192A1 (fr) * | 1995-12-08 | 1997-06-19 | Northern Telecom Limited | Creation d'algorithmes cryptographiques par la procedure de conception cast |
Non-Patent Citations (1)
Title |
---|
MASSEY J L: "SAFER K-64: A BYTE ORIENTED BLOCK-CIPHERING ALGORITHM", FAST SOFTWARE ENCRYPTION. CAMBRIDGE SECURITY WORKSHOP PROCEEDINGS, 9 December 1993 (1993-12-09), pages 1 - 17, XP000749720 * |
Also Published As
Publication number | Publication date |
---|---|
GB2327581A (en) | 1999-01-27 |
DE19827904A1 (de) | 1999-01-14 |
JP3148181B2 (ja) | 2001-03-19 |
JPH1173101A (ja) | 1999-03-16 |
GB2327581B (en) | 1999-08-04 |
KR19990002840A (ko) | 1999-01-15 |
FR2765056B1 (fr) | 2000-09-01 |
GB9811900D0 (en) | 1998-07-29 |
DE19827904C2 (de) | 2000-05-11 |
US6314186B1 (en) | 2001-11-06 |
KR100389902B1 (ko) | 2003-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2765056A1 (fr) | Algorithme de chiffrage par blocs ayant une securite robuste contre une analyse cryptographique differentielle, une analyse cryptographique lineaire et une analyse cryptographique differentielle d'ordre plus eleve | |
EP0839418B1 (fr) | Procede et appareil cryptographiques de fusion non lineaire d'un bloc de donnees et d'un code | |
CA2570617C (fr) | Procede et dispositif d'execution d'un calcul cryptographique | |
EP1052611A1 (fr) | Convertisseur de donnees et support d'enregistrement sur lequel est enregistre un programme d'execution de conversion de donnees | |
JP3499810B2 (ja) | 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体 | |
EP1769603B1 (fr) | Procede et dispositif d'execution d'un calcul cryptographique | |
EP1379023A1 (fr) | Chiffrement/déchiffrement exécuté par un circuit intégré masquant une transformation non linéaire du type SUBBYTE | |
JPH0863097A (ja) | データを暗号化するための対称暗号化方法およびシステム | |
EP1876748A2 (fr) | Concaténation de chaînes préservant la confidentialité | |
EP3228043B1 (fr) | Méthode de chiffrement à couches de confusion et de diffusion dynamiques | |
EP3139363B1 (fr) | Protection d'un algorithme de rijndael | |
WO2005107138A1 (fr) | Processeur d'execution d'un algorithme de type aes | |
US7499542B2 (en) | Device and method for encrypting and decrypting a block of data | |
EP3139365A1 (fr) | Vérification de la résistance d'un circuit électronique à des attaques par canaux cachés | |
EP3139364A1 (fr) | Protection dpa d'un algorithme de rijndael | |
CN111431697A (zh) | 一种新型轻量级分组密码corl的实现方法 | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
CN114598444A (zh) | 基于sm4和动态s盒的音频加密方法 | |
Deepthi Kakumani et al. | Improved related-cipher attack on Salsa and ChaCha: revisited | |
AU5361099A (en) | Efficient block cipher method | |
Algazy et al. | Differential cryptanalysis of new Qamal encryption algorithm | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
Soe et al. | Performance analysis of data encryption standard (DES) | |
FR2858731A1 (fr) | Procede et appareil de cryptage | |
EP1001398B1 (fr) | Dispositif de chiffrement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20090228 |