FR2880704A1 - Systeme de chiffrement par blocs m6 et procede pour coder un contenu et authentifier un dispositif - Google Patents
Systeme de chiffrement par blocs m6 et procede pour coder un contenu et authentifier un dispositif Download PDFInfo
- Publication number
- FR2880704A1 FR2880704A1 FR0511957A FR0511957A FR2880704A1 FR 2880704 A1 FR2880704 A1 FR 2880704A1 FR 0511957 A FR0511957 A FR 0511957A FR 0511957 A FR0511957 A FR 0511957A FR 2880704 A1 FR2880704 A1 FR 2880704A1
- Authority
- FR
- France
- Prior art keywords
- signal
- round
- rotation
- sel
- text
- 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.)
- Withdrawn
Links
Classifications
-
- 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
-
- 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
- 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/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Un système de chiffrement par blocs M6 peut inclure un sélecteur de constantes de rotation (110) sélectionnant une ou plusieurs constantes de rotation parmi une multiplicité de constantes de rotation d'entrée, pour les fournir en sortie sur la base d'un signal de sélection (SKE_SEL); un dispositif de mise en ordre de constantes de rotation (120) qui ordonne les constantes de rotation sélectionnées et une constante de rotation commune (S1); et un module M6 (140) qui génère un ou plusieurs d'un signal de sortie (TEXT_OUT), d'un signal de validité (VALID) et d'un numéro de ronde (R_NUM) sur la base des constantes de rotation ordonnées et d'une multiplicité de signaux d'entrée. Le système peut inclure un programmateur de constantes de rotation (130) émettant un signal de mise en ordre vers le dispositif de mise en ordre de constantes de rotation (120) en réponse au signal de sélection et au numéro de ronde.
Description
La présente invention concerne de façon générale un système de chiffrement
par blocs M6 et un procédé pour coder un contenu et effectuer une authentification d'un dispositif.
Si diverses formes de données audio / vidéo (qu'on appelle ci- après un contenu) sont transmises par un bus de données, il est possible pour un tiers d'intercepter ou de falsifier le contenu. Même si on utilise un bus à hautes performances IEEE 1394, l'interception et/ou la falsification du contenu peuvent encore être possibles. Cependant, une spécification de protection de contenu de transmission numérique (DTCP pour "Digital Transmission Content Protection"), volume 1.3, proposée par Hitachi, Intel, Matsushita, Sony et Toshiba, procure un protocole cryptographique pour la protection d'un contenu contre des attaques externes.
Pour protéger un contenu contre des attaques externes, un algorithme de chiffrement par blocs M6 est utilisé pour la DTCP. Un algorithme de chiffrement par blocs M6 général génère un nombre aléatoire, crée une clé d'échange et code un contenu, ces processus pouvant être nécessaires pour l'authentification de contenu entre des dispositifs de réception et d'émission. Un système d'algorithme de chiffrement par blocs M6 général contient deux modules pour respectivement coder un contenu et authentifier le dispositif. Le système d'algorithme de chiffrement par blocs M6 général peut être divisé en algorithmes M6-S56 et M6-KE56. L'algorithme M6-S56 est un algorithme de chiffrement par blocs utilisé pour coder un contenu, et l'algorithme M6-KE56 est un algorithme de chiffrement par blocs utilisé pour authentifier un dispositif. L'algorithme de chiffrement par blocs M6 supporte un bloc de 64 bits ayant une clé de 56 bits et composé de 10 rondes au total.
Un algorithme de chiffrement classique met en uvre un chiffrement par chaînage de blocs avec conversion M6-S56 (C-CBC pour "M6-S56 Converted Cipher-Block Chaining") de l'algorithme de chiffrement par blocs M6 utilisé pour la DTCP. Cependant, l'art antérieur n'utilise pas l'algorithme M6-KE56 pour générer un nombre aléatoire et créer la clé d'échange pour l'authentification. De plus, l'art antérieur ne décrit ni ne suggère l'utilisation d'une fonction de ronde ou d'une fonction Pi pour la réalisation de M6-S56. En outre, un système d'algorithme de chiffrement par blocs M6 général contient deux modules pour respectivement coder le contenu et authentifier le dispositif.
Un exemple de mode de réalisation de la présente invention porte sur un système de chiffrement par blocs M6. Le système de chiffrement par blocs M6 peut inclure un sélecteur de constante de rotation qui sélectionne une ou plusieurs constantes de rotation parmi une multiplicité de constantes de rotation d'entrée, pour les fournir en sortie, sur la base d'un signal de sélection qui lui est appliqué, un dispositif de mise en ordre de constantes de rotation ordonnant les constantes de rotation sélectionnées et une constante de rotation commune qui lui sont appliquées, sur la base d'un signal de mise en ordre reçu, et un module M6 générant un ou plusieurs d'un signal de sortie, d'un signal de validité et d'un numéro de ronde, sur la base des constantes de rotation ordonnées et d'une multiplicité de signaux d'entrée. Le système peut inclure un programmateur de constantes de rotation émettant le signal de mise en ordre vers le dispositif de mise en ordre de constantes de rotation, en réponse au signal de sélection et au numéro de ronde.
Un autre exemple de mode de réalisation de la présente invention porte sur un système de chiffrement par blocs M6. Le système peut être adapté pour effectuer une multiplicité d'opérations de ronde afin d'authentifier un dispositif pour recevoir / émettre un contenu et coder un contenu dans lesquelles chacune de la multiplicité d'opérations de ronde comprend une multiplicité de sous- opérations de ronde. Le système de chiffrement par blocs M6 peut inclure un sélecteur de constante de rotation sélectionnant une ou plusieurs constantes de rotation parmi une multiplicité de constantes de rotation d'entrée, pour les fournir en sortie, sur la base d'un signal de sélection qui lui est appliqué, un dispositif de mise en ordre de constantes de rotation ordonnant, pour les fournir en sortie, les constantes de rotation sélectionnées, une constante de rotation commune qui lui est appliquée, et une constante de rotation non commune qui lui est appliquée, sur la base d'un signal de mise en ordre reçu, et un module M6 générant un ou plusieurs d'un signal de sortie, d'un signal de validité, d'un numéro de ronde et d'un numéro de sous-ronde, sur la base des constantes de rotation ordonnées et d'une multiplicité de signaux d'entrée. Le système peut inclure un programmateur de constantes de rotation émettant le signal de mise en ordre vers le dispositif de mise en ordre de constantes de rotation, en réponse au signal de sélection, au numéro de ronde et au numéro de sous- ronde.
Un autre exemple de mode de réalisation de la présente invention porte sur un système de chiffrement par blocs M6 pour coder un contenu et effectuer une authentification d'un dispositif. Le système peut inclure un module M6 configuré pour régler une valeur d'un signal de sélection de constante de rotation, de façon à coder un contenu introduit dans le système, sur la base de constantes de rotation sélectionnées, pour générer un nombre aléatoire et pour créer une clé d'échange pour l'authentification de dispositifs.
Un autre exemple de mode de réalisation de la présente invention porte sur un procédé pour coder un contenu et effectuer une authentification d'un dispositif.
Dans le procédé, une ou plusieurs constantes de rotation peuvent être sélectionnées parmi une multiplicité de constantes de rotation d'entrée, pour les fournir en sortie sur la base d'un signal de sélection. Le signal de sélection peut être configuré pour déterminer s'il faut coder un contenu ou générer un nombre aléatoire, et pour créer une clé d'échange pour l'authentification de dispositif. Les constantes de rotation sélectionnées et une ou les deux d'une constante de rotation commune séparée utilisée pour coder un contenu et pour l'authentification de dispositif, et d'une constante de rotation non commune séparée utilisée lorsqu'un signal de sortie n'est pas soumis à une rotation, peuvent être ordonnées sur la base d'un signal de mise en ordre. Le procédé comprend la génération d'un ou de plusieurs d'un signal de sortie, d'un signal de validité et d'au moins un numéro de ronde et un numéro de sous-ronde, sur la base des constantes de rotation ordonnées et d'une multiplicité de signaux d'entrée. Le signal de mise en ordre peut être généré sur la base du signal de sélection et de l'un, ou des deux, du numéro de ronde et du numéro de sous-ronde.
On comprendra plus complètement des exemples de modes de réalisation de la présente invention d'après la description détaillée donnée ci-dessous et les dessins annexés, dans lesquels les éléments semblables sont désignés par des numéros de référence semblables, qui sont donnés seulement à titre d'illustration et ne limitent donc pas les exemples de modes de réalisation de la présente invention.
La figure 1 est un schéma synoptique d'un système de chiffrement par blocs M6 conforme à un exemple de mode de réalisation de l'invention.
La figure 2 est un schéma synoptique illustrant le module M6 de la figure 1.
La figure 3 est un schéma synoptique de la fonction Pi de la figure 2.
La figure 4 est un schéma synoptique d'un système 35 de chiffrement par blocs M6 conforme à un autre exemple de mode de réalisation de la présente invention.
La figure 5 est un schéma synoptique du module M6 de la figure 4.
La figure 6 est un schéma synoptique de la fonction Pi de la figure 5.
La figure 7 est un schéma synoptique de la fonction Pi de la figure 5 en conformité avec un autre exemple de mode de réalisation de la présente invention.
La figure 8 est un diagramme d'états illustrant un système de chiffrement par blocs M6 qui n'effectue pas une 10 opération de sous- ronde, en conformité avec un exemple de mode de réalisation de la présente invention.
La figure 9 est un diagramme d'états illustrant un système de chiffrement par blocs M6 qui effectue une multiplicité d'opérations de sous-ronde, en conformité avec un exemple de mode de réalisation de la présente invention.
La figure 10 est un diagramme temporel illustrant un système de chiffrement par blocs M6 qui n'effectue pas l'opération de sous-ronde, en conformité avec un exemple de mode de réalisation de la présente invention.
La figure 11 est un diagramme temporel illustrant un système de chiffrement par blocs M6 qui effectue une multiplicité d'opérations de sous-ronde, en conformité avec un exemple de mode de réalisation de la présente invention.
Comme on le montrera ci-dessous de façon plus détaillée, les exemples de modes de réalisation de la présente invention peuvent procurer un système de chiffrement par blocs M6 adapté pour empêcher une opération de copie illégale, pendant que des données sont transmises sur un bus numérique à hautes performances. En d'autres termes, le système de chiffrement par blocs M6 peut accomplir des opérations pour coder un contenu et authentifier un dispositif. En même temps, un système de chiffrement par blocs M6 utilise seulement un seul module M6, de façon à avoir un relativement plus petit volume.
La figure 1 est un schéma synoptique illustrant un système de chiffrement par blocs M6, 100, conforme à un exemple de mode de réalisation de la présente invention. Le système de chiffrement par blocs M6 100 peut être configuré de façon à régler la valeur d'un signal de sélection de SKE, SKE SEL, de façon à coder un contenu M6_S56, générer un nombre aléatoire et créer une clé d'échange M6 KE56 nécessaire pour l'authentification de dispositif. Contrairement à l'art antérieur, un seul module M6 140 est utilisé dans ce but, alors que deux modules sont utilisés dans l'art antérieur.
En se référant à la figure 1, on note qu'un système de chiffrement par blocs M6 100 peut inclure un sélecteur de constante de rotation 110. Le sélecteur de constante de rotation 110 peut être configuré de façon à effectuer une sélection parmi une multiplicité de constantes de rotation S56 S2, S56 S3, KE56 S2 et KE56 S3, en réponse à un signal de sélection de SKE, SKE SEL, (par exemple "signal de sélection"), de façon à fournir en sortie des constantes de rotation S2 et S3. Le signal de sélection de SKE, SKE_SEL, peut être utilisé pour déterminer s'il faut coder un contenu M6 S56 ou générer un nombre aléatoire et créer une clé d'échange M6 KE56 nécessaire pour l'authentification de dispositif. Parmi les quatre constantes de rotation S56_S2, S56S3, KE56 S2 et KE56 S3, deux constantes de rotation
_
S56 S2 et S56 S3 peuvent être utilisées pour coder un contenu, et deux constantes de rotation KE56 S2 et KE56_S3 peuvent être utilisées pour générer un nombre aléatoire et créer une clé d'échange nécessaire pour l'authentification de dispositif.
Le système de chiffrement par blocs M6 100 peut inclure un dispositif de mise en ordre de constantes de rotation 120. Le dispositif de mise en ordre de constantes de rotation 120 peut être configuré pour ordonner les constantes de rotation d'entrée S1, S2 et S3, de façon à fournir en sortie RC1, RC2 et RC3 en réponse à un signal de sélection de constantes de rotation RC_SEL (par exemple "signal de mise en ordre"). La constante de rotation commune S1 peut être utilisée en commun pour coder un contenu et pour authentifier le dispositif.
Le système de chiffrement par blocs M6 peut inclure un programmateur de constantes de rotation 130. Le programmateur de constantes de rotation 130 peut être configuré pour fournir en sortie un signal de sélection de constantes de rotation RCSEL qui peut être utilisé pour déterminer l'ordre des constantes de rotation à utiliser pour une opération de ronde, en réponse au signal de sélection de SKE, SKE SEL, et à un numéro de ronde R NUM. Le numéro de ronde RNUM peut contenir de l'information concernant une opération de ronde présente.
Le système de chiffrement par blocs M6 100 peut inclure un module M6 140. Le module M6 140 peut être configuré pour coder ou décoder un signal d'entrée TEXT IN en réponse à la multiplicité de constantes de rotation ordonnées, RC1, RC2 et RC3, un signal de clé KEY et un signal de sélection de mode MODE_SEL, de façon à fournir en sortie un signal TEXT_OUT. Le module M6 peut également fournir en sortie un numéro de ronde R NUM contenant de l'information sur l'opération de ronde présente, et un signal de validité VALID qui peut indiquer une fin d'un processus de codage et/ou de décodage et la validité d'une valeur codée et/ou décodée.
Le signal de clé KEY peut être utilisé pour créer deux clés d'opération de ronde nécessaires pour chaque opération de ronde du module M6 140. Le signal de sélection de mode MODE SEL peut être utilisé pour indiquer s'il faut coder ou décoder le signal d'entrée TEXTIN. Si le signal d'entrée TEXTIN est un texte en clair, le signal de sélection de mode MODE_SEL peut donner l'instruction au module M6 de coder le signal d'entrée TEXT_IN. Si le signal d'entrée TEXTIN est un texte chiffré, le signal de sélection de mode MODE_SEL peut donner l'instruction au module M6 de décoder le signal d'entrée TEXTIN. Un signal de démarrage de fonctionnement START_M6 peut être utilisé pour donner l'instruction au module M6 140 de commencer à fonctionner. Le système de chiffrement par blocs M6 100 effectue une seule ronde pendant chaque cycle d'horloge, et peut inclure 10 rondes au total, par exemple.
La figure 2 est un schéma synoptique illustrant le module M6 140 sur la figure 1. En se référant à la figure 2, on note que le module M6 140 peut comprendre un premier multiplexeur 210 et une unité de commande de module M6 220. Le premier multiplexeur 210 peut sélectionner l'un des signaux d'entrée TEXT_IN et ROUND_OUT en réponse à un premier signal de commande Cl, de façon à fournir en sortie l'un des signaux d'entrée. L'unité de commande de module M6 220 peut fournir en sortie un signal de démarrage de fonctionnement START OP, un premier signal de commande Cl et un signal de validité VALID correspondant au numéro de ronde RNUM et au signal de démarrage de fonctionnement START M6.
Le signal de démarrage de fonctionnement START OP peut donner l'instruction à une fonction Pi 240 d'effectuer une opération de ronde. Le premier signal de commande Cl peut donner l'instruction au premier multiplexeur 210 de sélectionner le signal d'entrée TEXTIN dans une première opération de ronde, et peut sélectionner le signal de sortie de ronde ROUND OUT dans des opérations de ronde suivantes. Le signal de validité VALID peut indiquer la fin du codage et/ou du décodage et la validité de la valeur codée et/ou décodée. L'unité de commande de module M6 220 peut en outre recevoir le signal de fonctionnement START M6 qui peut donner 1 module M6 140 de commencer à fonctionner, démarrage de instruction au et émettre en outre le signal de démarrage de fonctionnement START OP.
Le module M6 peut inclure un générateur de clés de ronde 230 et une fonction Pi 240. Le générateur de clés de ronde 230 peut générer deux clés d'opération Keyl et Key2 correspondant au signal de clé, KEY. En réponse aux constantes de rotation RC1, RC2 et RC3, aux deux clés d'opération Keyl et Key2 et au signal de sélection de mode MODE SEL, la fonction Pi 240 peut effectuer une opération de ronde sur le signal de sortie du premier multiplexeur 210 pour générer un signal de sortie de ronde ROUND OUT et un numéro de ronde RNUM. Si le signal de sortie de ronde ROUND OUT est un signal de sortie de ronde finale, le signal de sortie TEXT_OUT peut être un signal de sortie final du module M6 140.
La figure 3 est un schéma synoptique illustrant la fonction Pi 240 de la figure 2. La fonction Pi 240 peut diviser le signal de sortie du premier multiplexeur à 64 bits, 210, en un premier train de données L à 32 bits et un deuxième train de données R à 32 bits, consécutifs.
En se référant à la figure 3, on note que la fonction Pi 240 peut inclure des premier à quatrième dispositifs d'opération de base 301, 303, 305 et 307, et des première à troisième fonctions de rotation 302, 304 et 306. L'opération de base peut être exemplifiée comme l'une quelconque d'une opération d'addition, d'une opération de soustraction et d'une opération OU-EX, conformément aux emplacements des dispositifs d'opération de base 301, 303, 305 et 307, etc. Le premier dispositif d'opération de base 301 peut utiliser la première clé d'opération de ronde Keyl et le premier train de données L pour effectuer une opération de base. La première fonction de rotation 302 fait tourner d'un certain nombre de positions un signal de sortie du premier dispositif d'opération de base 301, le nombre sur lequel porte la rotation pouvant être égal à la valeur de la première constante de rotation RC1.
Le second dispositif d'opération de base 303 peut utiliser un signal de sortie de la première fonction de rotation 302, le signal de sortie du premier dispositif d'opération de base 301 et une constante "1", pour effectuer une opération de base. La seconde fonction de rotation 304 peut faire tourner d'un certain nombre de positions un signal de sortie du second dispositif d'opération de base 303, le nombre sur lequel porte la rotation pouvant être égal à la valeur de la seconde constante de rotation RC2.
Le troisième dispositif d'opération de base 305 peut utiliser un signal de sortie du second dispositif d'opération de base 303, un signal de sortie de la seconde fonction de rotation 304 et la seconde clé d'opération de rotation Key2 pour effectuer une opération de base. La troisième fonction de rotation 306 peut faire tourner d'un certain nombre de positions le signal de sortie du troisième dispositif d'opération de base 305, le nombre sur lequel porte la rotation pouvant être égal à la valeur de la troisième constante de rotation RC3.
Le quatrième dispositif d'opération de base 307 peut effectuer une opération de base en employant le signal de sélection de mode MODE SEL, un signal de sortie du troisième dispositif d'opération de base 305, un signal de sortie de la troisième fonction de rotation 306 et un second train de données R, pour fournir en sortie un numéro de ronde R_NUM contenant une information sur l'opération de ronde présente, et pour fournir le signal de sortie ROUND_ OUT (par exemple TEXTOUT) qui est le signal de sortie final. Le signal TEXT_OUT peut être le signal de sortie final si le signal de sortie ROUND OUT est un signal de sortie de ronde finale, comme décrit ci-dessus.
La figure 4 est un schéma synoptique d'un système de chiffrement par blocs M6 400 conforme à un autre exemple de mode de réalisation de la présente invention. En se référant à la figure 4, on note qu'un système de chiffrement par blocs M6 400 peut effectuer une multiplicité d'opérations de ronde afin d'authentifier des dispositifs pour recevoir et/ou émettre du contenu, et pour coder du contenu.
Le système de chiffrement par blocs M6 peut inclure un sélecteur de constantes de rotation 410. Le sélecteur de constantes de rotation 410 peut effectuer une sélection parmi des constantes de rotation S56 S2, S56 S3, KE56 S2 et KE56 S3 en réponse à un signal de sélection de SKE, SKE SEL, et émettre des constantes de rotation S2 et S3. Le signal de sélection de SKE, SKE_SEL, peut être utilisé pour déterminer s'il faut coder un contenu M6 S56 ou générer un nombre aléatoire et une clé d'échange M6_KE56 pour l'authentification de dispositif. Dans les constantes de rotation S56 S2, S56 S3, KE56 S2 et KE56 S3, deux constantes de rotation S56_S2 et S56 S3 peuvent être utilisées pour coder un contenu, et deux constantes de rotation KE56_S3 et KE56 S3 peuvent être utilisées pour générer un nombre aléatoire et une clé d'échange pour l'authentification de dispositif.
Le système de chiffrement par blocs M6 400 peut inclure un dispositif de mise en ordre de constantes de rotation 420 et un programmateur de constantes de rotation 430. Le dispositif de mise en ordre de constantes de rotation 420 peut ordonner les constantes de rotation S2 et S3 reçues, une constante de rotation commune S1 et une constante de rotation non commune SO, et émettre une constante de rotation RC en réponse à un signal de sélection de constantes de rotation RC SEL. La constante de rotation commune S1 peut être utilisée en commun pour coder un contenu et authentifier le dispositif. La constante de rotation non commune SO peut être utilisée lorsqu'un signal de sortie n'est pas soumis à rotation.
Le programmateur de constantes de rotation 430 peut fournir en sortie un signal de sélection de constantes de rotation RC SEL qui peut déterminer l'ordre des constantes de rotation utilisées pour une opération de ronde, en réponse à un signal de sélection de SKE, SKE SEL, un numéro de ronde R NUM et un numéro de sous-ronde S R NUM. Le numéro de ronde R NUM peut contenir de l'information sur l'opération de ronde présente, et le numéro de sous-ronde S R NUM peut contenir de l'information sur une opération de sous-ronde effectuée dans la ronde présente.
Le système de chiffrement par blocs M6 400 peut inclure un module M6 440. Le module M6 440 peut coder ou décoder un signal d'entrée TEXT_IN en réponse à la constante de rotation RC, un signal de clé KEY, un signal de sélection de mode MODE SEL, un numero de ronde R NUM, un numéro de sous-ronde S R NUM et un signal de validité VALID, de façon à émettre un signal TEXT OUT. Le numéro de ronde R NUM peut contenir de l'information sur l'opération de ronde présente, et le SRNUM peut contenir de l'information sur l'opération de sous-ronde présente. Le signal de validité VALID peut indiquer la fin du codage et/ou du décodage et la validité de la valeur codée et/ou décodée. Le signal de clé KEY peut être utilisé pour créer deux clés d'opération de ronde nécessaires pour chaque opération de ronde effectuée dans le module M6 440. Le signal de sélection de mode MODE_SEL peut être utilisé pour donner l'instruction au module M6 440 de coder ou de décoder le signal d'entrée TEXTIN.
Si le signal d'entrée TEXT_IN est un texte en clair, le signal de sélection de mode MODE SEL peut donner l'instruction au module M6 440 de coder le signal d'entrée TEXT IN. Si le signal d'entrée TEXT IN est un texte chiffré, le signal de sélection de mode MODE_SEL peut donner l'instruction au module M6 440 de décoder le signal d'entrée TEXT_IN. Un signal de démarrage de fonctionnement START M6 peut donner l'instruction au module M6 440 de commencer à fonctionner.
Le système de chiffrement par blocs M6 400 représenté sur la figure 4 peut effectuer une seule ronde pendant une multiplicité de cycles d'horloge, et peut inclure 10 rondes au total. La multiplicité de cycles d'horloge peut être nécessaire pour une seule ronde du fait que chaque ronde unique est divisée en une multiplicité de sous-rondes. Chacune des sous-rondes peut être effectuée pendant un seul cycle d'horloge.
La figure 5 est un schéma synoptique du module M6 440 représenté sur la figure 4. En se référant maintenant à la figure 5, on note que le module M6 440 peut inclure un premier multiplexeur 510 et une unité de commande de module M6, 520. Le premier multiplexeur 510 peut sélectionner et fournir en sortie l'un du signal d'entrée TEXT IN et d'un signal de sortie de ronde ROUND_OUT, en réponse à un premier signal de commande Cl. En employant le numéro de ronde RNUM, le numéro de sous-ronde SRNUM et le signal de démarrage de fonctionnement START M6, l'unité de commande de module M6 520 peut fournir en sortie un signal de démarrage de fonctionnement START OP, le premier signal de commande Cl et le signal de validité VALID. Le signal de démarrage de fonctionnement START OP peut donner l'instruction à une fonction Pi 540 d'effectuer une opération de ronde. Le premier signal de commande Cl peut être utilisé pour donner l'instruction au premier multiplexeur 510 de sélectionner le signal d'entrée TEXT IN dans une première opération de ronde, et de sélectionner le signal de sortie de ronde ROUND OUT dans d'autres opérations de rondes. Le signal de validité VALID peut indiquer une fin de codage et/ou de décodage et la validité de la valeur codée et/ou décodée. L'unité de commande de module M6 520 peut en outre recevoir le signal de démarrage de fonctionnement START M6 donnant l'instruction au module M6 440 de commencer à fonctionner.
Le module M6 440 peut inclure un générateur de clés de ronde 530 et une fonction Pi 540. Le générateur de clés de ronde 530 peut générer deux clés d'opération Keyl et Key2 en réponse au signal KEY. La fonction Pi 240 peut effectuer une opération de ronde sur un signal de sortie du premier multiplexeur 510 correspondant au signal de démarrage de fonctionnement START OP, à la constante de rotation RC, aux deux clés d'opération Keyl et Key2 et au signal de sélection de mode MODE_SEL, de façon à fournir en sortie un numéro de ronde R NUM, un numéro de sous- ronde SRNUM et un signal de sortie de ronde ROUND OUT. Si le signal de sortie de ronde ROUND OUT est un signal de sortie de ronde finale, le signal de sortie de ronde TEXT OUT est un signal de sortie final du module M6 440.
La figure 6 est un schéma synoptique de la fonction Pi 540 représentée sur la figure 5. En se référant maintenant à la figure 6, on note que la fonction Pi 540 peut inclure un premier dispositif d'opération de base 601, une fonction de rotation 602 et un second dispositif d'opération de base 603 pour trois opérations de sous-ronde. Des numéros encerclés sur la figure 6 indiquent des signaux traités pendant les sous-rondes.
En employant les deux clés d'opération de ronde Keyl et Key2, une constante "1" et un premier train de données L, le premier dispositif d'opération de base 601 peut effectuer une opération de base. La fonction de rotation 602 peut faire tourner un signal de sortie du premier dispositif d'opération de base 601, et le nombre de positions de rotation peut être égal à une valeur de la constante de rotation RC. Le second dispositif d'opération de base 603 peut utiliser un signal de sortie de la fonction de rotation 602, le signal de sortie du premier dispositif d'opération de base 601 et un second train de données R pour effectuer l'opération de base. Le premier dispositif d'opération de base 601 peut fonctionner en réponse au signal de sélection de mode MODE_SEL et au numéro de sous-ronde SRNUM. Le second dispositif d'opération de base 603 peut générer un numéro de sous-ronde SRNUM et un numéro de ronde RNUM. L'opération de base peut être une opération d'addition, une opération de soustraction ou une opération OU-EX.
Le fonctionnement du premier dispositif d'opération de base 601 et du second dispositif d'opération de base 603 est celui décrit ci-dessous. le premier dispositif d'opération de base 601 peut effectuer une opération de base sur la première clé d'opération de ronde Keyl et le premier train de données L pendant une première sous-ronde de chaque ronde, une opération de base sur le signal de sortie ROUND OUT du second dispositif d'opération de base 603 et sur la constante "1" pendant une seconde sous-ronde de chaque ronde, et une opération de base sur la seconde clé d'opération de ronde Key2 et le signal de sortie ROUND OUT du second dispositifd'opération de base 603, à la troisième sous-ronde de chaque ronde. Le second dispositif d'opération de base 603 peut utiliser le second train de données R dans l'opération de base pendant une sous- ronde finale de chaque ronde.
La figure 7 est un schéma synoptique de la fonction Pi 540 conforme à un autre exemple de mode de réalisation de la présente invention. En se référant à la figure 7, on note que la fonction Pi 540, qui peut effectuer six sous-rondes, peut inclure un dispositif d'opération de base 701 et une fonction de rotation 702. Des numéros encerclés sur la figure 7 indiquent des signaux traités pendant les sous- rondes.
Le dispositif d'opération de base 701 peut avoir la même fonction que le premier dispositif d'opération de base 601, et la fonction de rotation 702 peut être la même que la fonction de rotation 602. L'opération de base sur le premier train de données L et la première clé d'opération de ronde Keyl peut être effectuée dans une première ronde, et des données qui ont été soumises à une rotation sur la base de la constante de rotation correspondante peuvent 30É être générées. Les données générées peuvent être appliquées au dispositif d'opération de base 701, qui peut effectuer des opérations sur les données générées, dans l'ordre indiqué par les numéros encerclés. La fonction de rotation 702 peut fournir en sortie le numéro de ronde R NUM et le numero de sous- ronde SRNUM, contenant respectivement de l'information sur la ronde et la sous-ronde présentes.
La figure 8 est un diagramme d'états illustrant un système de chiffrement par blocs M6 qui n'effectue pas l'opération de sous-ronde, en conformité avec un exemple de mode de réalisation de la présente invention. En se référant à la figure 8, on note que le système de chiffrement par blocs M6 peut effectuer une seule ronde au cours de chaque cycle d'horloge, et qu'il a deux états indiqués comme un état de repos REPOS et un état d'exécution EXECUTION. Le système de chiffrement par blocs M6 peut être dans l'état de repos REPOS si R NUM = 10, et être dans l'état d'exécution EXECUTION si le signal de fonctionnement START M6 est activé ("1"). Si la valeur du numéro de ronde RNUM est inférieure à 10, le système de chiffrement par blocs M6 peut rester dans l'état d'exécution EXECUTION, et si la valeur du numéro de ronde RNUM est 10, le système de chiffrement par blocs M6 peut entrer dans l'état de repos REPOS.
La figure 9 est un diagramme d'états d'un système de chiffrement par blocs M6 qui effectue une multiplicité d'opérations de sous-ronde en conformité avec un exemple de mode de réalisation de la présente invention. En se référant à la figure 9, on note que le système de chiffrement par blocs M6 peut utiliser une seule sous-ronde pour un seul cycle d'horloge et que le système a un état d'exécution du fait qu'il a une multiplicité de sous-états d'exécution S R1, S R2, ... de l'état d'exécution EXECUTION. Le système de chiffrement par blocs M6 utilisant la multiplicité de sous-rondes peut mettre fin à une ronde si tous les sous-états de la multiplicité de sous-états d'exécution S R1, S R2, ..., S R final, sont achevés.
La figure 10 est un diagramme temporel illustrant un système de chiffrement par blocs M6 qui n'effectue pas une opération de sous-ronde, en conformité avec un autre exemple de mode de réalisation de la présente invention. En se référant maintenant à la figure 10, on note que le système de chiffrement par blocs M6 dans l'état de repos REPOS peut commencer à fonctionner en réponse au signal de démarrage de fonctionnement START M6, et entrer dans l'état d'exécution EXECUTION tout en chargeant simultanément des données. L'état d'exécution EXECUTION peut inclure 10 rondes. Le système de chiffrement par blocs M6 peut effectuer une opération de ronde pendant chaque cycle d'horloge et fournir en sortie le signal de validité VALID et le signal TEXT OUT pendant la ronde finale.
La figure 11 est un diagramme temporel du système de chiffrement par blocs M6 qui peut effectuer une multiplicité d'opérations de sous- ronde, en conformité avec un exemple de mode de réalisation de la présente invention. En se référant à la figure 11, on note que le système de chiffrement par blocs M6 peut accomplir les mêmes opérations que le système de chiffrement par blocs M6 décrit en référence à la figure 10, à l'exception du fait qu'une ronde est composée d'une multiplicité de sousrondes, c'est-à-dire Sous-Ronde 1 jusqu'à Sous-Ronde Finale.
Du fait que des sous-rondes ont en même temps leur avantage et leur inconvénient, les sous-rondes peuvent être utilisées dans le système de chiffrement par blocs M6 conformément à des exigences de système. Le système de chiffrement par blocs M6 n'ayant pas de sous-ronde a un cycle d'horloge court, tandis que le système de chiffrement par blocs M6 avec des sous-rondes peut être réalisé avec un plus petit circuit. Le système de chiffrement par blocs M6 peut correctement utiliser des sous-rondes conformément à des facteurs tels que la vitesse de fonctionnement et le volume de matériel, etc. Bien que les systèmes de chiffrement par blocs M6 avec trois sous-rondes et six sous-rondes aient été décrits, on trouve également qu'un système de chiffrement par blocs M6 ayant quatre sousrondes peut être effectif.
Par conséquent, les exemples de modes de réalisation de la présente invention procurent un système de chiffrement par blocs M6 qui utilise un module pour coder un contenu et authentifier un dispositif, la durée d'une ronde étant d'un seul cycle d'horloge. Les exemples de modes de réalisation de la présente invention procurent également un système de chiffrement par blocs M6 qui utilise un seul module pour coder un contenu et identifier un dispositif, dans lequel la durée d'une ronde est égale à une multiplicité de cycles d'horloge, en divisant chaque ronde en une multiplicité de sous-rondes.
Bien que des exemples de modes de réalisation de la présente invention aient été spécialement représentés et décrits, l'homme de l'art notera que divers changements de forme et de détail peuvent y être apportés sans sortir de l'esprit et du cadre des exemples de modes de réalisation de la présente invention, comme défini par les
revendications suivantes.
Claims (44)
1. Système de chiffrement par blocs M6 (100), caractérisé en ce qu'il comprend un sélecteur de constantes de rotation (110) sélectionnant une ou plusieurs constantes de rotation parmi une multiplicité de constantes de rotation d'entrée (S56 S2, S56 S3, KE56 S2, KE56 S3), pour les fournir en sortie sur la base d'un signal de sélection (SKE SEL) qui lui est appliqué; un dispositif de mise en ordre de constantes de rotation (120) ordonnant les constantes de rotation sélectionnées (S2, S3) et une constante de rotation commune (Sl) qui lui sont appliquées, sur la base d'un signal de mise en ordre (RC_SEL) reçu; un module M6 (140) générant un ou plusieurs d'un signal de sortie (TEXT OUT), d'un signal de validité (VALID) et d'un numéro de ronde (N NUM), sur la base des constantes de rotation ordonnées (RC1, RC2, RC3) et d'une multiplicité de signaux d'entrée (KEY, START_M6, MODE_SEL, TEXT_IN); et un programmateur de constantes de rotation (130) émettant le signal de mise en ordre (RC_SEL) vers le dispositif de mise en ordre de constantes de rotation (120), en réponse au signal de sélection (SKE SEL) et au numéro de ronde (N NUM) .
2. Système selon la revendication 1, caractérisé en ce que le signal de sélection (SKE_SEL) détermine s'il faut coder un contenu ou générer un nombre aléatoire et créer une clé d'échange pour l'authentification de dispositif.
3. Système selon la revendication 1, caractérisé en ce que la multiplicité de constantes de rotation appliquées au sélecteur de constantes de rotation (110) comprend deux constantes de rotation (S56 S2, S56_S3) utilisées pour coder un contenu, et deux constantes de rotation (KE56_S2, KE56 S3) utilisées pour générer le nombre aléatoire et créer une clé d'échange pour l'authentification de dispositif.
4. Système selon la revendication 1, caractérisé en ce que le signal de mise en ordre (RC_SEL) indique l'ordre des constantes de rotation sélectionnées (S2, S3) à utiliser pour une opération de ronde.
5. Système selon la revendication 1, caractérisé en ce que la constante de rotation commune (Sl) est utilisée pour coder un contenu et pour l'authentification de dispositif.
6. Système selon la revendication 1, caractérisé en ce que les signaux d'entrée du module M6 (140) comprennent un ou plusieurs d'un signal de texte d'entrée (TEXT_IN), d'un signal de clé (KEY), d'un signal de démarrage de fonctionnement (START M6) et d'un signal de sélection de mode (MODE SEL).
7. Système selon la revendication 1, caractérisé en ce que les signaux d'entrée du module M6 (140) comprennent chacun d'un signal de clé (KEY), d'un signal de démarrage de fonctionnement (START M6), d'un signal de sélection de mode (MODE SEL) et d'un signal de texte d'entrée (TEXT IN) .
8. Système selon la revendication 7, caractérisé en ce que le signal de démarrage de fonctionnement (START_M6) donne l'instruction au module M6 (140) de commencer à fonctionner; le signal de clé (KEY) est utilisé pour créer deux clés d'opération de ronde (Keyl, Key2), à raison d'une clé pour chaque ronde de fonctionnement du module M6 (140); et le signal de sélection de mode (MODE SEL) donne au module M6 (140) une instruction indiquant s'il doit coder ou décoder un signal de texte d'entrée donné (TEXT IN).
9. Système selon la revendication 8, caractérisé en ce que: si le signal de texte d'entrée donné (TEXT_IN) est un texte en clair, le signal de sélection de mode donne l'instruction au module M6 (140) de coder le signal de texte en clair d'entrée; tandis que si le signal de texte d'entrée donné (TEXTIN) est un texte chiffré, le signal de sélection de mode donne l'instruction au module M6 (140) de décoder le signal de texte chiffré d'entrée.
10. Système selon la revendication 1, caractérisé en ce que le module M6 (140) émet chacun d'un signal de sortie (TEXT OUT), d'un signal de validité (VALID) et d'un numéro de ronde (R NUM), sur la base des constantes de rotation ordonnées (RC1, RC2, RC3) et de la multiplicité de signaux d'entrée (KEY, START_M6, MODE_SEL, TEXT_IN).
11. Système selon la revendication 10, caractérisé en ce que le numéro de ronde (R_NUM) contient de l'information sur une opération de ronde présente; le signal de sortie (TEXTOUT) est généré en codant ou en décodant un signal de texte d'entrée (TEXTIN) donné contenu dans les signaux d'entrée du module M6 (140); et le signal de validité (VALID) indique une fin de codage et de décodage et la validité d'une valeur codée ou décodée, en réponse à une constante de rotation donnée.
12. Système selon la revendication 1, caractérisé en ce que le système de chiffrement par blocs M6 (100) effectue une seule ronde pendant un seul cycle d'horloge.
13. Système selon la revendication 1, caractérisé en ce que le module M6 (140) comprend un premier multiplexeur (210) qui, dans une première opération de ronde, sélectionne l'un des signaux d'entrée (TEXT IN) et d'un signal de sortie de ronde (ROUND_OUT) pour le fournir en sortie, en réponse à un premier signal de commande (Cl); une unité de commande de module M6 (220) générant le premier signal de commande (Cl) qui donne l'instruction au premier multiplexeur (210) de sélectionner un signal d'entrée (TEXT IN) donné dans la première opération de ronde, et le signal de sortie de ronde (ROUND OUT) dans une autre opération de ronde, et le signal de validité (VALID) en réponse au numéro de ronde; un générateur de clés de ronde (230) générant des première et seconde clés d'opération de ronde (Keyl, Key2) en réponse à un signal de clé (KEY) utilisé pour créer les deux clés d'opération de ronde, avec une clé pour chaque opération de ronde du module M6 (140); et une fonction Pi (240) générant le signal de sortie de ronde (ROUND_OUT) en effectuant une opération de ronde sur un signal de sortie du premier multiplexeur (210), et émettant le signal de sortie de ronde (ROUND OUT) et le numéro de ronde (R NUM) en réponse aux constantes de rotation ordonnées (RC1, RC2, RC3), aux première et seconde clés d'opération (Keyl, Key2), et à un signal de sélection de mode (MODE_SEL), qui donne au module M6 (140) une instruction indiquant s'il doit coder ou décoder l'un donné des signaux d'entrée (TEXT IN).
14. Système selon la revendication 13, caractérisé en ce que le module M6 (140) reçoit en outre un premier signal de démarrage de fonctionnement (START_M6) qui donne l'instruction au module M6 (140) de commencer à fonctionner, et l'unité de commande de module M6 (220) fonctionne en réponse au premier signal de démarrage de fonctionnement (START M6).
15. Système selon la revendication 13, caractérisé en ce que l'unité de commande de module M6 (220) émet en outre un second signal de démarrage de fonctionnement (START OP) qui donne l'instruction à la fonction Pi (240) d'effectuer l'opération de ronde.
16. Système selon la revendication 13, caractérisé en ce qu'un signal de sortie du premier multiplexeur (210) est divisé en premier et second trains de données (L, R) consécutifs; et la fonction Pi (240) comprend: un premier dispositif d'opération de base (301) effectuant une opération de base en utilisant la première clé d'opération de ronde (Keyl) et le premier train de données (L); une première fonction de rotation (302) faisant tourner un signal de sortie du premier dispositif d'opération de base (301) d'un nombre de positions égal à la valeur d'une première constante de rotation ordonnée (RC1) parmi les constantes de rotation ordonnées; un second dispositif d'opération de base (303) effectuant l'opération de base en utilisant un signal de sortie de la première fonction de rotation (302), le signal de sortie du premier dispositif d'opération de base (301) et une constante "1"; une seconde fonction de rotation (304) faisant tourner un signal de 20 sortie du second dispositif d'opération de base (303) d'un nombre de positions égal à la valeur d'une seconde constante de rotation ordonnée (RC2) parmi les constantes de rotation; un troisième dispositif d'opération de base (305) effectuant l'opération de base en utilisant le signal de sortie du second dispositif d'opération de base (303), un signal de sortie de la seconde fonction de rotation (304) et la seconde clé d'opération de ronde (Key2); une troisième fonction de rotation (306) faisant tourner un signal de sortie du troisième dispositif d'opération de base (305) d'un nombre de positions égal à la valeur d'une troisième constante de rotation ordonnée (RC3) parmi les constantes de rotation; et un quatrième dispositif d'opération de base (307) effectuant l'opération de base en utilisant le signal de sélection de mode, le signal de sortie du troisième dispositif d'opération de base (305), un signal de sortie de la troisième fonction de rotation (306) et le second train de données (R); et en ce que l'opération de base est sélectionnée comme une d'une opération d'addition, d'une opération de soustraction et d'une opération sur les emplacements des dispositifs d'opération de base (301, 303, 305, 307).
17. Système selon la revendication 16, caractérisé en ce que le signal de sortie du premier multiplexeur (210) comprend 64 bits, et chacun du premier train de données (L) et du second train de données (R) comprend 32 bits.
18. Système de chiffrement par blocs M6 (400) qui effectue une multiplicité d'opérations de ronde dans le but d'authentifier un dispositif pour recevoir/émettre un contenu et coder un contenu, dans lequel chacune de la multiplicité d'opérations de ronde comprend une multiplicité d'opérations de sous-ronde, le système étant caractérisé en ce qu'il comprend un sélecteur de constantes de rotation (410) sélectionnant une ou plusieurs constantes de rotation parmi une multiplicité de constantes de rotation d'entrée (S56 S2, S56 S3, KE56 S2, KE56 S3), pour les fournir en sortie sur la base d'un signal de sélection (SKESEL) qui lui est appliqué; un dispositif de mise en ordre de constantes de rotation (420) pour fournir en sortie chacune des constantes de rotation sélectionnées (S2, S3), une constante de rotation commune (Si) reçue séparément et une constante de rotation non commune (SO) reçue séparément, en réponse au signal de sélection de constantes de rotation (RC SEL); un module M6 (440) générant un ou plusieurs d'un signal de sortie (TEXT OUT), d'un signal de validité (VALID), d'un numéro de ronde (RNUM) et d'un numéro de sous-ronde(SRNUM), sur la base des constantes de rotation ordonnées (RC) et d'une multiplicité de signaux d'entrée (KEY, START M6, MODE SEL, TEXTIN).; et un programmateur de constantes de rotation (430) émettant le signal de mise en ordre (RC SEL) vers le dispositif de mise en ordre de constantes de rotation (420) en réponse au signal de sélection (SKE SEL), au numéro de ronde (R NUM) et au numéro de sous-ronde (S R NUM).
19. Système selon la revendication 18, caractérisé en ce que le signal de sélection (SKE SEL) , détermine s'il faut coder un contenu ou générer un nombre aléatoire et créer une clé d'échange pour l'authentification de dispositif.
20. Système selon la revendication 18, caractérisé en ce que la multiplicité de constantes de rotation appliquées au sélecteur de constantes de rotation (410) comprend deux constantes de rotation (S56 S2, S56 S3) utilisées pour coder un contenu, et deux constantes de rotation (KE56S2, KE56S3) utilisées pour générer le nombre aléatoire et créer une clé d'échange pour l'authentification de dispositif.
21. Système selon la revendication 18, caractérisé en ce que le signal de mise en ordre (RC SEL) indique l'ordre des constantes de rotation sélectionnées (S2, S3) à utiliser pour une opération de ronde.
22. Système selon la revendication 18, caractérisé en ce que la constante de rotation commune (Si) est utilisée pour coder un contenu et pour l'authentification de dispositif, et la constante de rotation non commune (SO) est utilisée lorsqu'une rotation n'est pas appliquée à un signal de sortie.
23. Système selon la revendication 18, caractérisé en ce que les signaux d'entrée du module M6 (440) comprennent un ou plusieurs d'un signal de texte d'entrée (TEXT IN), d'un signal de clé (KEY), d'un signal de démarrage de fonctionnement (START_M6) et d'un signal de sélection de mode (MODE SEL).
24. Système selon la revendication 18, caractérisé en ce que les signaux d'entrée du module M6 (440) comprennent chacun d'un signal de clé (KEY), d'un signal de démarrage de fonctionnement (STARTM6), d'un signal de sélection de mode (MODE_SEL) et d'un signal de texte d'entrée (TEXT IN) .
25. Système selon la revendication 24, caractérisé en ce que le signal de démarrage de fonctionnement (START M6) donne l'instruction au module M6 (440) de commencer à fonctionner; le signal de clé (KEY) est utilisé pour créer deux clés d'opération de ronde (Keyl, Key2), à raison d'une clé pour chaque opération ronde du module M6 (400); et le signal de sélection de mode (MODE_SEL) donne au module M6 (440) une instruction indiquant s'il faut coder ou décoder un signal de texte d'entrée (TEXT IN) donné.
26. Système selon la revendication 25, caractérisé en ce que si le signal de texte d'entrée (TEXT IN) donné est un texte en clair, le signal de sélection de mode (MODE SEL) donne au module M6 (440) l'instruction de coder le signal de texte en clair d'entrée, tandis que si le signal de texte d'entrée (TEXT IN) donné est un texte chiffré, le signal de sélection de mode (MODE_SEL) donne au module M6 (440) l'instruction de décoder le signal de texte chiffré d'entrée.
27. Système selon la revendication 18, caractérisé en ce que le module M6 (440) émet chacun d'un signal de sortie (TEXTOUT), d'un signal de validité (VALID), d'un numéro de ronde (R NUM) et d'un numéro de sous- ronde (S R NUM), sur la base des constantes de rotation ordonnées (RC) et de la multiplicité de signaux d'entrée.
28. Système selon la revendication 27, caractérisé en ce que le numéro de ronde (R_NUM) généré par le module M6 (440) contient de l'information sur une opération de ronde présente; le numéro de sous- ronde (S R NUM) contient de l'information sur une opération de sous-ronde présente effectuée dans la ronde présente; le signal de sortie (TEXTOUT) est généré en codant ou en décodant l'un d'un signal de texte en clair d'entrée ou d'un signal de texte chiffré d'entrée qui sont contenus dans les signaux d'entrée du module M6 (440); et le signal de validité (VALID) indique une fin de codage et de décodage et la validité d'une valeur codée ou décodée, en réponse à la constante de rotation ordonnée (RC) donnée.
29. Système selon la revendication 18, caractérisé en ce que le système de chiffrement par blocs M6 effectue une seule ronde pendant un seul cycle d'horloge.
30. Système selon la revendication 18, caractérisé en ce que le module M6 (440) comprend un premier multiplexeur (510) qui, dans une première opération de ronde, sélectionne l'un des signaux d'entrée (TEXT IN) et d'un signal de sortie de ronde (ROUND_OUT) en réponse à un premier signal de commande (Cl); une unité de commande de module M6 (520) générant un second signal de démarrage de fonctionnement (STARTOP) qui indique qu'une opération de ronde doit être effectuée, le premier signal de commande (Cl) qui donne l'instruction au premier multiplexeur (510) de sélectionner un signal d'entrée donné (TEXT IN) dans la première opération de ronde et le signal de sortie de ronde (ROUND OUT) dans une autre opération de ronde, et le signal de validité (VALID), en réponse au numéro de ronde (RNUM), au numéro de sous-ronde (S R NUM) et à un premier signal de démarrage de fonctionnement (START_M6); un générateur de clés de ronde (530) générant des première et seconde clés d'opération de ronde (Keyl, Key2) en réponse à un signal de clé (KEY) utilisé pour créer les deux clés d'opération de ronde, à raison d'une clé pour chaque opération de ronde du module M6 (440); et une fonction Pi (540) émettant le numéro de ronde (R NUM), le numéro de sous-ronde (S R NUM) et le signal de sortie de ronde (ROUND_OUT) obtenu en effectuant une opération de ronde sur un signal de sortie du premier multiplexeur (510), en réponse aux constantes de rotation ordonnées (RC), aux première et seconde clés d'opération de ronde (Keyl, Key2), et à un signal de sélection de mode (MODE SEL), pour donner au module M6 (440) une instruction indiquant s'il doit coder ou décoder l'un donné des signaux d'entrée (TEXTIN).
_
31. Système selon la revendication 30, caractérisé en ce que le module M6 (440) reçoit en outre un premier signal de démarrage de fonctionnement (STARTM6) qui donne au module M6 (440) l'instruction de commencer à fonctionner, et l'unité de commande de module M6 (520) fonctionne en réponse au premier signal de démarrage de fonctionnement (START M6).
32. Système selon la revendication 30, caractérisé en ce que le second signal de démarrage de fonctionnement (START OP) donne à la fonction Pi (540) l'instruction de commencer à fonctionner.
33. Système selon la revendication 30, caractérisé en ce qu'un signal de sortie du premier multiplexeur (510) est divisé en un premier et un second trains de données consécutifs (L, R); et la fonction Pi (540) comprend: un premier dispositif d'opération de base (601) effectuant une opération de base en utilisant les première et seconde clés d'opération de ronde (Keyl, Key2), une constante "1", et le premier train de données (L); une fonction de rotation (602) faisant tourner un signal de sortie du premier dispositif d'opération de base d'un nombre de positions égal à la valeur de la constante de rotation ordonnée (RC); et un second dispositif d'opération de base (603) effectuant l'opération de base en utilisant un signal de sortie de la fonction de rotation (602), le signal de sortie du premier dispositif d'opération de base (601) et le second train de données (R); et en ce que le premier dispositif d'opération de base (601) et le second dispositif d'opération de base (603) fonctionnent en réponse au signal de sélection de mode (MODE SEL) et au numéro de sous- ronde (SRNUM), les première et seconde opérations de base étant sélectionnées comme l'une d'une opération d'addition, d'une opération de soustraction et d'une opération sur les emplacements des dispositifs d'opération de base (601, 603).
34. Système selon la revendication 33, caractérisé en ce que le premier dispositif d'opération de base (601) effectue l'opération de base en utilisant: la première clé d'opération de ronde (Keyl) et le premier train de données L pendant une première sous-ronde de chaque ronde; le signal de sortie du second dispositif d'opération de base (603) et la constante "1" pendant chacune d'une seconde sous-ronde jusqu'à une sous- ronde qui précède une sous-ronde finale de chaque ronde; et la seconde clé d'opération de ronde (Key2) et le signal de sortie du second dispositif d'opération de base (603) pendant la sous-ronde finale.
35. Système selon la revendication 33, caractérisé en ce que le second dispositif d'opération de base (603) utilise le second train de données (R) pendant une sous-ronde finale de chaque ronde.
36. Système selon la revendication 18, caractérisé en ce que le nombre de sous-rondes est l'un de trois, 35 quatre ou six sous-rondes.
37. Système selon la revendication 30, caractérisé en ce que le signal de sortie du premier multiplexeur (510) comprend 64 bits, et le premier train de données (L) et le second train de données (R) comprennent 32 bits.
38. Système de chiffrement par blocs M6 pour coder un contenu et effectuer l'authentification d'un dispositif, caractérisé en ce que le système comprend un seul module M6 (140, 440) qui est configuré pour régler une valeur d'un signal de sélection (SKE SEL) de constantes de rotation, de façon à coder un contenu appliqué au système sur la base de constantes de rotation sélectionnées, générer un nombre aléatoire et créer une clé d'échange pour l'authentification de dispositif.
39. Procédé pour coder un contenu et effectuer l'authentification d'un dispositif, caractérisé en ce qu'il comprend les étapes consistant à : sélectionner une ou plusieurs constantes de rotation parmi une multiplicité de constantes de rotation d'entrée (S56 S2, S56 S3, KE56 S2, KE56 S3), pour les fournir en sortie sur la base d'un signal de sélection (SKE SEL) configuré pour déterminer s'il faut coder un contenu ou générer un nombre aléatoire et créer une clé d'échange pour l'authentification de dispositif; ordonner les constantes de rotation sélectionnées (S2, S3) et une ou les deux d'une constante de rotation commune séparée (Sl) utilisée pour coder un contenu et pour l'authentification de dispositif, et d'une constante de rotation non commune séparée (SO) utilisée =Lorsqu'un signal de sortie n'est pas soumis à une rotation, sur la base d'un signal de mise en ordre (RC SEL); et générer un ou plusieurs d'un signal de sortie (TEXT OUT), d'un signal de validité (VALID) et d'un au moins d'un numéro de ronde (R NUM) et d'un numéro de sous-ronde (S R NUM), sur la base des constantes de rotation ordonnées (RC1, RC2, RC3, RC) et d'une multiplicité de signaux d'entrée, le signal de mise en ordre (RC SEL) étant généré sur la base du signal de sélection (SKE SEL) et d'un ou des deux du numéro de ronde (R NUM) et du numéro de sous-ronde (S R NUM).
40. Procédé selon la revendication 39, caractérisé en ce que les signaux d'entrée comprennent un signal de clé (KEY), un signal de démarrage de fonctionnement (START_M6), un signal de sélection de mode (MODE_SEL) et un d'un signal de texte en clair d'entrée (TEXT_IN) ou d'un signal de texte chiffré d'entrée (TEXT_IN); et le signal de démarrage de fonctionnement (START M6) donne l'instruction de commencer le fonctionnement; le signal de clé (KEY) est utilisé pour créer deux clés d'opération de ronde (Keyl, Key2), à raison d'une clé pour chaque ronde de fonctionnement; et le signal de sélection de mode (MODE SEL) indique s'il faut coder ou décoder l'un donné des signaux d'entrée (TEXT_IN).
41. Procédé selon la revendication 40, caractérisé en ce que si le signal d'entrée donné (TEXT_IN) est un texte en clair, le signal de sélection de mode (MODE_SEL) représente une instruction pour coder le signal de texte en clair d'entrée, tandis que si le signal d'entrée donné (TEXT IN) est un texte chiffré, le signal de sélection de mode (MODE SEL) représente une instruction pour décoder le signal de texte chiffré d'entrée.
42. Procédé selon la revendication 39, caractérisé en ce que le numéro de ronde (R NUM) contient de l'information sur une opération de ronde présente; le numéro de sous-ronde (S R NUM) contient de l'information sur une opération de sous-ronde présente effectuée dans la ronde présente; le signal de sortie (TEXT_OUT) est généré en codant ou en décodant l'un d'un signal de texte en clair d'entrée ou d'un signal de texte chiffré d'entrée qui sont contenus dans les signaux d'entrée appliqués au module M6 (140, 440); et le signal de validité (VALID) indique une fin de codage et de décodage et la validité d'une valeur codée ou décodée, en réponse à la constante de rotation ordonnée donnée.
43. Système de chiffrement par blocs M6 comprenant. un sélecteur de constantes de rotation (110) sélectionnant une ou plusieurs constantes de rotation (S2, S3) parmi une multiplicité de constantes de rotation d'entrée (S56_S2, S56 S3, KE56 S2, KE56 S3), pour les fournir en sortie sur la base d'un signal de sélection (SKE_SEL) qui lui est appliqué; un dispositif de mise en ordre de constantes de rotation (120) ordonnant les constantes de rotation sélectionnées (S2, S3) et une constante de rotation commune (Si) qui lui sont appliquées, sur la base d'un signal de mise en ordre (RC SEL) reçu; un module M6 (140) générant un ou plusieurs d'un signal de sortie (TEXT_OUT), d'un signal de validité (VALID) et d'un numéro de ronde (R_NUM), sur la base des constantes de rotation ordonnées (RC1, RC2, RC3) et d'une multiplicité de signaux d'entrée (KEY, START M6, MODE SEL, TEXT IN) ; et un programmateur de constantes de rotation (130) émettant le signal de mise en ordre (RC SEL) vers le dispositif de mise en ordre de constantes de rotation (120), en réponse au signal de sélection (SKE SEL) et au numéro de ronde (R NUM) ; caractérisé en ce que le système est configuré pour coder un contenu et effectuer l'authentification d'un dispositif conformément au procédé de la revendication 39.
44. Système de chiffrement par blocs M6 qui effectue une multiplicité d'opérations de ronde dans le but d'authentifier des dispositifs pour recevoir/émettre un contenu et coder un contenu, dans lesquelles chacune de la multiplicité d'opérations de ronde comprend une multiplicité d'opérations de sous-ronde, le système comprenant: un sélecteur de constantes de rotation (410) sélectionnant une ou plusieurs constantes de rotation (S2, S3) parmi une multiplicité de constantes de rotation d'entrée (S56_S2, S56 S3, KE56_S2, KE56S3), pour les
_
fournir en sortie sur la base d'un signal de sélection (SKE SEL) qui lui est appliqué; un dispositif de mise en ordre de constantes de rotation (420) ordonnant les constantes de rotation sélectionnées (S2, S3) , une constante de rotation commune reçue séparément (Si) et une constante de rotation non commune reçue séparément (SO) ; et les fournissant en sortie en réponse au signal de sélection de constantes de rotation; un module M6 (440) générant un ou plusieurs d'un signal de sortie (TEXTOUT), d'un signal de validité (VALID), d'un numéro de ronde (R_NUM) et d'un numéro de sous-ronde (S_R_NUM), sur la base des constantes de rotation ordonnées (RC) et d'une multiplicité de signaux d'entrée (KEY, START_M6, MODE_SEL, TEXTIN); et un programmateur de constantes de rotation (430) fournissant en sortie le signal de mise en ordre (RC SEL) au dispositif de mise en ordre de constantes de rotation (420) en réponse au signal de sélection (SKE_SEL), au numéro de ronde (R_NUM) et au numéro de sous-ronde (S R NUM); caractérisé en ce que le système est configuré pour coder un contenu et effectuer l'authentification d'un dispositif conformément au procédé de la revendication 39.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020040097944A KR100967880B1 (ko) | 2004-11-26 | 2004-11-26 | M6 블록암호시스템 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR2880704A1 true FR2880704A1 (fr) | 2006-07-14 |
Family
ID=36371626
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR0511957A Withdrawn FR2880704A1 (fr) | 2004-11-26 | 2005-11-25 | Systeme de chiffrement par blocs m6 et procede pour coder un contenu et authentifier un dispositif |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US7613296B2 (fr) |
| KR (1) | KR100967880B1 (fr) |
| DE (1) | DE102005056815B4 (fr) |
| FR (1) | FR2880704A1 (fr) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101147182B (zh) * | 2005-03-31 | 2010-09-01 | 松下电器产业株式会社 | 数据加密装置及数据加密方法 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4642424A (en) * | 1984-01-03 | 1987-02-10 | At&T Information Systems Inc. | Cryptographic transmission system |
| US6850252B1 (en) * | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
| CA2173688C (fr) | 1996-04-09 | 2000-01-18 | Hideo Shimizu | Appareil et methode de chiffrement pouvant controler le processus de chiffrement en conformite avec un etat interne |
| US6185304B1 (en) * | 1998-02-23 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for a symmetric block cipher using multiple stages |
| US6199052B1 (en) * | 1998-03-06 | 2001-03-06 | Deloitte & Touche Usa Llp | Secure electronic transactions using a trusted intermediary with archive and verification request services |
| KR100296958B1 (ko) * | 1998-05-06 | 2001-09-22 | 이석우 | 블록 데이터 암호화 장치 |
| US6324288B1 (en) | 1999-05-17 | 2001-11-27 | Intel Corporation | Cipher core in a content protection system |
| US6914983B2 (en) * | 2000-12-19 | 2005-07-05 | International Business Machines Corporation | Method for checking modular multiplication |
-
2004
- 2004-11-26 KR KR1020040097944A patent/KR100967880B1/ko not_active Expired - Fee Related
-
2005
- 2005-10-26 US US11/258,059 patent/US7613296B2/en active Active
- 2005-11-24 DE DE102005056815A patent/DE102005056815B4/de not_active Expired - Lifetime
- 2005-11-25 FR FR0511957A patent/FR2880704A1/fr not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| KR20060058912A (ko) | 2006-06-01 |
| KR100967880B1 (ko) | 2010-07-05 |
| DE102005056815A1 (de) | 2006-06-01 |
| US7613296B2 (en) | 2009-11-03 |
| DE102005056815B4 (de) | 2010-07-29 |
| US20060126834A1 (en) | 2006-06-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0202989B1 (fr) | Dispositif de chiffrement par substitutions-permutations | |
| EP1733502B1 (fr) | Processeur d'execution d'un algorithme de type aes | |
| EP2892176A2 (fr) | Procédé de conversion d'un contenu a accès conditionnel et récepteur pour la mise en oeuvre de ce procédé | |
| FR2986631A1 (fr) | Dispositif et procede de production d'un code d'authentification d'un message | |
| EP0027423B1 (fr) | Installation de chiffrement et déchiffrement d'un signal numérique | |
| KR20140087036A (ko) | 동적 암호화 방법 | |
| WO2016087520A1 (fr) | Méthode de chiffrement à couches de confusion et de diffusion dynamiques | |
| EP2166696B1 (fr) | Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature | |
| GB2398213A (en) | Encryption using the KASUMI algorithm | |
| EP1524795B1 (fr) | Chiffrement de données dans un appareil électronique à plusieurs processeurs symétriques | |
| US20150263858A1 (en) | Method and device for digital data blocks encryption and decryption | |
| EP1416664A2 (fr) | Procédé de chiffrage de données | |
| WO2023057649A1 (fr) | Procédé de génération d'un nombre pseudo-aléatoire et procédé de chiffrement symétrique d'un message | |
| FR2880704A1 (fr) | Systeme de chiffrement par blocs m6 et procede pour coder un contenu et authentifier un dispositif | |
| FR2940691A1 (fr) | Procedes de transmission, de reception et d'identification, processeur de securite et support d'enregistrement d'informations pour ces procedes. | |
| Manz | Encrypt, Sign, Attack | |
| EP3777007A1 (fr) | Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données | |
| FR3052279B1 (fr) | Authentification d'une carte par lecture sans contact | |
| FR3052280A1 (fr) | ||
| JP3606418B2 (ja) | 乱数生成装置 | |
| KR100446533B1 (ko) | 무선 통신 시스템에서 암호화 장치 및 방법 | |
| FR2835670A1 (fr) | Procede de distribution anti-piratage d'un contenu numerique par transmission diversifiee pro-active, dispositif emetteur et objet portatif recepteur associes | |
| WO2008119901A2 (fr) | Procede de dechiffrement par un algorithme cryptographique de donnees chiffrees | |
| JPH04192736A (ja) | 暗号化装置 | |
| FR3072848B1 (fr) | Procede de reception et de dechiffrement, par un processeur electronique de securite, d'un cryptogramme d'un mot de controle |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ST | Notification of lapse |
Effective date: 20100730 |