Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR HIGH-SPEED ENCRYPTION
Document Type and Number:
WIPO Patent Application WO/2007/015034
Kind Code:
A2
Abstract:
The invention relates to a method and a system for encryption or decryption on the fly of a high-speed information stream. The information is in the form of blocks of bits (M0, M1,..., Mn-1 ), themselves grouped in sectors (S). The invention uses a block encryption method, for example, AES (Advanced Encryption Standard), carried out twice per sector and producing, for each sector, a secondary key (KS) used by a more rapid algorithm (for example XOR mask). The secondary keys are dependent on the sector content and the position thereof in the stream. The same information would be differently encrypted according to the context thereof. On decryption, the secondary key can be recalculated from the encrypted sector by means of the block encryption algorithm. The number of blocks per sector is adjusted to achieve the best compromise between speed of calculation and cryptographic security.

Inventors:
STEHLE JEAN-LUC (FR)
Application Number:
PCT/FR2006/050787
Publication Date:
February 08, 2007
Filing Date:
August 03, 2006
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
EVERBEE NETWORKS (FR)
STEHLE JEAN-LUC (FR)
International Classes:
H04L9/06
Domestic Patent References:
WO2001041357A12001-06-07
Foreign References:
US6504931B12003-01-07
Other References:
MENEZES, VANSTONE, OORSCHOT: "Handbook of Applied Cryptography" 1997, CRC PRESS LLC , USA , XP002383085 page 21 page 192 page 223
Attorney, Agent or Firm:
Cabinet GRYNWALD (Paris, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé destiné à chiffrer et/ou à déchiffrer une information se présentant sous forme d' une suite de bits regroupés en blocs de bits, ci -après appelés blocs, lesdits blocs étant eux-mêmes regroupés en secteurs ; ledit procédé chiffrant ou déchiffrant un secteur ci-après appelé secteur à traiter (S ; T) et comprenant les étapes suivantes :

- une étape mettant en œuvre une routine de compression, ladite routine de compression prenant comme argument ledit secteur à traiter (S ; T) , et fournissant comme résultat une suite de bits comportant moins de bits que le ledit secteur à traiter (S ; T) , le résultat de ladite routine de compression ainsi mise en œuvre étant ci-après appelé clé secondaire de chiffrement (KS) ; - une étape de traitement consistant à prendre en compte tout ou partie des blocs (Mi ; Ci) constituant ledit secteur à traiter (S ; T) et à appliquer à chacun des blocs (Mi ; Ci) ainsi pris en compte une routine rapide de chiffrement (CR) , ladite routine rapide de chiffrement (CR) effectuant un calcul prenant comme argument le bloc (Mi ; Ci) ainsi pris en compte, ci-après appelé bloc à traiter, et fournissant comme résultat un nouveau bloc ci-après appelé bloc résultat (Ci ; M 1 ) ; le calcul effectué par ladite routine rapide de chiffrement (CR) utilisant une suite de bits appelée clé rapide (ki) , la détermination desdites clés rapides (ki) prenant en compte ladite clé secondaire de chiffrement (KS) ; le résultat dudit procédé étant un secteur ci-après appelé secteur résultat (T ; S), et composé d'autant de blocs que ledit secteur à traiter (S ; T) , tout ou partie des blocs dudit secteur résultat (T ; S) étant déterminé à partir desdits blocs résultats fournis par ladite routine rapide de chiffrement (CR) appliquée au cours de ladite étape de traitement ; ledit procédé mettant en œuvre au moins un crypteur primaire (CPl ; CP2), utilisant une suite de bits appelée clé

primaire (KPl ; KP2) , et effectuant un calcul prenant comme argument un bloc et fournissant comme résultat un nouveau bloc ; ladite routine de compression comprenant

- une étape intermédiaire (EI) consistant à déterminer un bloc ci-après appelé premier bloc intermédiaire

(X ; Y),

- une étape de calcul consistant à appliquer au moins un crypteur primaire (CPl ; CP2) à un bloc déterminé à partir dudit premier bloc intermédiaire (X ; Y) ; ladite clé secondaire de chiffrement (KS) résultat de ladite routine de compression étant alors déterminée en prenant en compte le résultat de ladite étape de calcul ; ledit procédé étant en outre tel qu' il soit possible de retrouver ladite clé secondaire de chiffrement (KS) à partir dudit secteur résultat (T ; S) .

2. Procédé selon la revendications 1, ladite étape intermédiaire de ladite routine de compression étant telle que la détermination dudit premier bloc intermédiaire (X ; Y) prenne en compte le résultat de l'application de l'opérateur « ou exclusif bit à bit » entre tout ou partie des blocs constituant ledit secteur à traiter (S ; T) .

3. Procédé selon la revendication 1 ou 2, ladite étape intermédiaire de ladite routine de compression étant telle que la détermination dudit premier bloc intermédiaire (X ; Y) prenne en compte une suite de bits appelée clé de mixage (KM) .

4. Procédé selon la revendication 3, ledit procédé utilisant une suite de bits appelée clé de chiffrement originelle (KO) ; ledit procédé comprenant en outre une première étape préalable consistant à déterminer ladite clé de mixage (KM) en prenant en compte ladite clé de chiffrement originelle (KO) .

5. Procédé selon l'une quelconque des revendications 1 à 4, chacun desdits secteurs à traiter (S ; T) composant ladite information à chiffrer ou à déchiffrer étant affecté d'un numéro

appelé numéro de secteur (NS) ; ladite étape de calcul comprenant les deux phases suivantes : une première phase dite phase de perturbation, ladite phase de perturbation consistant à déterminer un bloc ci- après appelé bloc perturbé (BP) , la détermination dudit bloc perturbé (BP) prenant en compte, d'une part, ledit premier bloc intermédiaire (X ; Y) et, d'autre part une valeur dépendant dudit numéro de secteur (NS) affecté audit secteur à traiter

(S ; T) - une seconde phase consistant à appliquer au moins un crypteur primaire (CPl ; CP2) audit bloc perturbé déterminé au cours de ladite phase de perturbation.

6. Procédé selon la revendication 5, ladite phase de perturbation étant telle que ledit bloc perturbé déterminé par ladite phase de perturbation soit égal au bloc obtenu en appliquant l'opérateur « ou exclusif bit à bit » entre, d'une part, ledit premier bloc intermédiaire (X ; Y) et, d'autre part, une valeur dépendant dudit numéro de secteur (NS) affecté audit secteur à traiter (S ; T) . 7. Procédé selon l'une quelconque des revendications 1 à 6, ladite étape de calcul comprenant en outre une phase complémentaire consistant à déterminer un bloc ci-après appelé second bloc intermédiaire (Y ; X) , la détermination dudit second bloc intermédiaire (Y ; X) prenant en compte le résultat de l'application d'au moins un crypteur primaire (CP2 ; CPl) à ladite clé secondaire de chiffrement (KS) .

8. Procédé selon la revendication 7, chacun desdits secteurs à traiter (S ; T) composant ladite information à chiffrer ou à déchiffrer étant affecté d'un numéro appelé numéro de secteur (NS) ; ladite phase complémentaire de ladite étape de calcul étant telle que la détermination dudit second bloc intermédiaire (Y ; X) prenne en outre en compte une valeur dépendant dudit numéro de secteur (NS) affecté audit secteur à traiter (S ; T) .

9. Procédé selon l'une quelconque des revendications 1 à 8, la détermination de tout ou partie desdites clés rapides (ki) prenant en outre en compte ledit premier bloc intermédiaire

(X ;Y) • 10. Procédé selon la revendication 7 ou 8, la détermination de tout ou partie desdites clés rapides (ki) prenant en outre en compte ledit second bloc intermédiaire (Y ;

X).

11. Procédé selon l'une quelconque des revendications 1 à 10, ledit procédé mettant en œuvre une fonction F permettant de générer une suite de nombres K 0 , Ki, K 2 , ...Ki, ... le premier nombre de ladite suite de nombres étant généré à partir de ladite clé secondaire de chiffrement (KS) , chacun des nombres suivants de ladite suite de nombres étant calculé en appliquant ladite fonction F au nombre qui le précède immédiatement dans ladite suite de nombres, la détermination de tout ou partie desdites clés rapides (ki) utilisées dans ladite routine rapide de chiffrement (CR) pour fournir lesdits blocs résultats (Ci ; M 1 ) prenant alors en compte tout ou partie des nombres (K 1 ) de ladite suite de nombres .

12. Procédé selon l'une quelconque des revendications 7, 8 ou 10, l'ensemble desdites clés rapides (ki) , utilisées lors du chiffrement ou du déchiffrement dudit secteur à traiter (S ; T), étant tel qu'il existe au moins un sous-ensemble, ou l'ensemble entier, tel que si on appliquait l'opérateur « ou exclusif bit à bit » entre toutes les clés rapides (ki) contenues dans ce sous-ensemble, ou dans l'ensemble tout entier, le résultat de ce calcul serait identique au résultat qu'on obtiendrait en appliquant l'opérateur « ou exclusif bit à bit » entre ledit premier bloc intermédiaire (X ; Y) et ledit second bloc intermédiaire (Y ; X) .

13. Procédé selon l'une quelconque des revendications 1 à 12, au moins un desdits crypteurs primaires (CPl ; CP2) fournissant comme résultat le résultat que donnerait l'algorithme de chiffrement AES si ledit algorithme de

chiffrement AES était mis en œuvre sur un argument identique à l'argument pris par ledit crypteur primaire et avec une clé identique à ladite clé primaire (KPl ; KP2) utilisée par ledit crypteur primaire (CPl ; CP2) . 14. Procédé selon l'une quelconque des revendications 1 à 15, le calcul effectué par ladite routine rapide de chiffrement (CR) , lorsqu' elle prend comme argument ledit bloc à traiter (Mi ; Ci) et utilise ladite clé rapide (ki) , étant tel que ledit bloc résultat (Ci ; M 1 ) soit déterminé à partir du résultat de l'opération consistant à appliquer l'opérateur « ou exclusif bit à bit » entre ladite clé rapide (ki) et ledit bloc à traiter (M 1 ; C 1 ) .

15. Procédé selon l'une quelconque des revendications 1 à 14, ledit procédé utilisant une suite de bits appelée clé de chiffrement originelle (KO) et comprenant une seconde étape préalable consistant à déterminer tout ou partie desdites clés primaires (KPl ; KP2) , utilisées par lesdits crypteurs primaires

(CPl ; CP2) , à partir de ladite clé de chiffrement originelle

(KO) ; 16. Système de traitement d'information comprenant des moyens de calcul et des moyens de stockage d' information permettant de mettre en œuvre le procédé de chiffrement et/ou de déchiffrement selon l'une quelconque des revendications 1 à 15.

17. Système selon la revendication 16 ledit système comportant deux parties ; l'une des parties dudit système étant ci-après appelée dispositif cryptographique spécifique (DCS) et comprenant des moyens de traitement permettant de réaliser ladite étape de calcul ; une autre des parties dudit système étant ci-après appelée dispositif hôte ; ledit dispositif cryptographique spécifique (DCS) étant tel que lesdites clés primaires (KPl ; KP2), utilisées par lesdits crypteurs primaires (CPl ; CP2) au cours de ladite étape de calcul, ne soient jamais communiquées en dehors dudit

dispositif cryptographique spécifique (DCS) ; ledit système comprenant des moyens de liaison permettant audit dispositif hôte de transmettre audit dispositif cryptographique spécifique (DCS) des informations déterminées à partir dudit secteur à traiter (S ; T) ; ledit système comprenant des moyens de liaison permettant audit dispositif cryptographique spécifique (DCS) de transmettre audit dispositif hôte ladite clé secondaire de chiffrement (KS) ; ledit dispositif hôte comprenant des moyens de traitement permettant de réaliser ladite étape de traitement.

18. Système selon la revendication 17, ledit dispositif cryptographique spécifique (DCS) disposant de moyens de stockage permettant de stocker une suite de bits appelée clé de chiffrement originelle (KO) et comprenant des moyens de traitement permettant de déterminer tout ou partie desdites clés primaires (KPl ; KP2) , utilisées par lesdits crypteurs primaires (CPl ; CP2) , en prenant en compte ladite clé de chiffrement originelle (KO) ; ledit dispositif cryptographique spécifique (DCS) étant tel que ladite clé de chiffrement originelle (KO) ne soit jamais communiquées en dehors dudit dispositif cryptographique spécifique (DCS) .

19. Système selon la revendication 17 ou 18, ledit dispositif cryptographique spécifique (DCS) étant amovible et pouvant être déconnecté dudit dispositif hôte.

20. Système selon la revendication 19, ledit dispositif cryptographique spécifique (DCS) étant connectable audit dispositif hôte par un port autoalimenté, notamment un port USB. 21. Système selon la revendication 19, ledit dispositif cryptographique (DCS) spécifique étant connectable audit dispositif hôte par une connexion sans fil.

22. Dispositif cryptographique spécifique (DCS) destiné à un système selon l'une quelconque des revendications 17 à 21.

23. Moyen de stockage de données sous forme numérique, tout ou partie desdites données stockées dans ledit moyen de stockage ayant été chiffré à l'aide du procédé selon l'une quelconque des revendications 1 à 15. 24. Moyen de stockage selon la revendication 23, tout ou partie desdites données stockées dans ledit moyen de stockage étant des données de nature audiovisuelle.

25. Moyen de stockage selon la revendication 23 ou 24, ledit moyen de stockage étant destiné à être lu par lecture optique .

26. Moyen de transmission de données sous forme numérique, tout ou partie desdites données transmises dans ledit moyen de transmission de données ayant été chiffré à l'aide du procédé selon l'une quelconque des revendications 1 à 15. 27. Moyen de transmission de données selon la revendication 26, tout ou partie desdites données transmises dans ledit moyen de transmission étant des données de nature audiovisuelle .

Description:

FHOCEDE ET SYSTEME DE CHIFFREMENT A HAUT DEBIT

La sécurisation des communications par voie électronique prend une importance croissante avec le développement des réseaux informatiques . Ce ne sont plus seulement les communications entre utilisateurs d' Internet qui doivent être sécurisées, mais plus généralement les communications numériques entre des appareils de plus en plus nombreux, à des débits de plus en plus élevés .

On peut citer par exemple les flux audiovisuels, aussi bien à destination d'un utilisateur final (télévision numérique, télévision à péage, téléchargement de films) que dans un environnement professionnel (caméras vidéo communiquant entre elles et/ou avec un serveur en mode numérique) . Un cas particulier est celui des données audiovisuelles (musique, vidéo...) stockées sur des CD ou des DVD chiffrées et qui seront déchiffrées à la volée, au moment de la lecture, sur un dispositif spécial muni de moyens de déchiffrement spécifiques.

D'autres applications concernent les communications entre l'unité centrale d'un ordinateur et divers supports de stockage qui peuvent être des disques internes ou externes, ou des systèmes distants accèdes par réseau. Citons aussi les automobiles de l'avenir, dans lesquelles les divers organes

communiquent entre eux par voie électronique plutôt que mécanique .

De nombreux algorithmes de chiffrement sont disponibles et sont considérés comme sûrs dans l'état actuel de nos connaissances. Il en est ainsi de l'algorithme de chiffrement AES (Advanced Encryption Standard) tel que défini en 2000 par le NIST américain (National Institute of Standards and Technology) . Ces algorithmes nécessitent bien sûr une certaine puissance de calcul. On considère habituellement que l'évolution des technologies aboutit à un doublement de la puissance de calcul des processeurs tous les 18 mois (loi dite de Moore) . Or on a constaté que les débits des réseaux informatiques doublent tous les 6 à 12 mois. Les besoins en chiffrement augmentent donc bien plus vite que les moyens de calcul, ce qui provoque un goulot d'étranglement. Mentionnons aussi la nécessité d'effectuer certaines opérations de chiffrement et/ou de déchiffrement sur des matériels à puissance limitée (téléphones portables, ordinateurs de poche, assistants personnels numériques dits PDA, etc.). La prise en compte de la sécurité aboutit alors rapidement à une diminution très significative de la puissance disponible pour les diverses applications . Il est donc impératif de mettre en place des solutions de chiffrement à haut débit offrant une sécurité comparable à celle qu'offrent des algorithmes comme l'AES, tout en réduisant leur impact sur ces applications.

Une solution intéressante est enseignée dans le brevet français 03/50626 déposé le 30 septembre 2003, délivré le 20 janvier 2006, et dans la demande internationale PCT/FR2004/050299 du 30 juin 2004. Les fonctionnalités de sécurité, et en particulier le chiffrement/déchiffrement y sont sous-traitées à une petite unité extérieure, ci-après appelée un « dongle », possédant son propre processeur de calcul et disposant de la puissance suffisante pour assurer ces fonctionnalités sans impact notable sur les performances du dispositif hôte. Le dongle est connecté sur un port (par exemple

un port USB) à travers lequel est reroutée l'intégralité du flux de données à destination ou en provenance d'un réseau ou d'un moyen de stockage, local ou distant. Cette solution a l'avantage supplémentaire que les secrets cryptographiques ne quittent jamais le dongle et ne sont donc jamais accessibles par une attaque logicielle sur le dispositif hôte. Il y a cependant un inconvénient : les performances ne sont plus limitées par la puissance de calcul mais par la vitesse du flux à travers le port utilisé. Une autre approche peut être l'utilisation d'un algorithme de chiffrement moins puissant mais plus rapide. En effet, parallèlement à des algorithmes similaires à l'AES, sûrs mais exigeants en puissance de calcul (algorithmes ci-après appelés algorithmes forts) , il existe de nombreux algorithmes nécessitant une puissance de calcul bien plus faible, mais présentant aussi une sécurité bien plus faible (algorithmes ci- après appelés algorithmes faibles) . L'un des plus rapides est l'utilisation d'un masque XOR. On génère une suite de bits, appelée le masque, de même longueur que l'information à chiffrer ou à déchiffrer. Pour chaque bit d'information, on considère alors le bit correspondant du masque, et selon que ce dernier est à 1 ou à 0, on modifie ou non le bit d'information. Cet algorithme offre une sécurité parfaite lorsqu'on utilise une clé de même longueur que l'information à chiffrer ou à déchiffrer, cette clé étant alors prise comme masque. En pratique, c'est généralement irréalisable. Pour construire le masque, on pourra par exemple concaténer des copies successives de la clé de chiffrement. L'algorithme est alors vulnérable, par exemple à des attaques de type statistique, et cette vulnérabilité augmente avec le nombre de copies de la clé initiale qu'il a fallu effectuer pour générer le masque, donc avec le ratio entre nombre de bits de l'information à traiter et nombre de bits de la clé.

L'une des idées à la base de la présente invention consiste à faire coexister un algorithme fort, c'est-à-dire sûr

mais exigeant en puissance de calcul et un algorithme moins sûr, mais bien plus rapide. L'algorithme fort est un algorithme par bloc (par exemple l'AES) pour lequel l'information à chiffrer ou à déchiffrer est découpée en blocs de longueur fixe (par exemple 128 bits dans le cas de l'AES) , chaque bloc étant traité indépendamment des autres. Dans l'état de la technique, l'algorithme fort est exécuté sur chacun des blocs. En revanche, dans l'invention, les blocs sont eux-mêmes regroupés en secteurs, un secteur regroupant plusieurs blocs (ou plusieurs dizaines ou centaines de blocs selon les applications) . Le chiffrement et/ou le déchiffrement s'exécutent en deux temps. Pour chaque secteur, on calcule dans un premier temps, à l'aide d'un algorithme fort, une clé secondaire de chiffrement dépendant notamment des données contenues dans ce secteur et variant d'un secteur à l'autre. Cette clé secondaire de chiffrement est, dans un second temps, utilisée pour chiffrer/déchiffrer tout ou partie des blocs du secteur à l'aide d'un algorithme plus rapide.

Si un attaquant arrivait à déchiffrer un secteur et/ou à accéder à la clé secondaire de chiffrement utilisée lors du chiffrement de ce secteur, cela ne lui serait d'aucune utilité pour déchiffrer les autres secteurs . Le système de chiffrement ainsi réalisé est d'autant plus fort qu'il y a peu de blocs dans un secteur. Le nombre de blocs par secteur peut être adapté à l'application, de façon à réaliser le meilleur compromis entre rapidité de calcul et besoin en sécurité cryptographique . Dans le chiffrement d'un flux vidéo, on peut dans certains cas considérer qu'il n'est pas trop pénalisant qu'un attaquant puisse de temps en temps accéder à une fraction de seconde de film, et la taille d'un secteur sera alors de l'ordre de grandeur de ce qui est nécessaire pour cette fraction de seconde. Dans d'autres applications (notamment des transactions financières) , le besoin de sécurité est bien plus important et on limite la taille d'un secteur à quelques dizaines de blocs en

vue de diminuer significativement la vulnérabilité de l'algorithme.

L'invention assure, d'une part, que l'information chiffrée n'occupe pas plus de bits que l'information en clair, et, d'autre part, que les clés secondaires de chiffrement peuvent être facilement calculées, tant à partir de l'information en clair que de l'information chiffrée, lorsque l'on connaît les clés de l'algorithme fort, et que ces clés secondaires de chiffrement sont impossibles à retrouver dans le cas contraire.

De manière plus détaillée, l'invention concerne un procédé destiné à chiffrer et/ou à déchiffrer une information se présentant sous forme d'une suite de bits regroupés en blocs, ces blocs étant eux-mêmes regroupés en secteurs . Le procédé chiffre et/ou déchiffre un secteur ci-après appelé secteur à traiter et comprend les étapes suivantes :

- une étape mettant en œuvre une routine de compression, qui prend comme argument le secteur à traiter et fournit comme résultat une suite de bits comportant moins de bits que le secteur à traiter, ce résultat étant ci-après appelé clé secondaire de chiffrement,

- une étape de traitement consistant à prendre en compte tout ou partie des blocs formant le secteur à traiter et à appliquer à chacun d'eux une routine rapide de chiffrement. Celle-ci effectue un calcul prenant comme argument le bloc pris en compte, ci-après appelé bloc à traiter, et fournit comme résultat un nouveau bloc ci-après appelé bloc résultat. Le calcul effectué par la routine rapide de chiffrement utilise une suite de bits appelée clé rapide, déterminée à partir de la clé secondaire de chiffrement.

Le résultat du procédé est un secteur ci-après appelé secteur résultat, composé d'autant de blocs que le secteur à traiter, tout ou partie des blocs du secteur résultat étant déterminé à partir des blocs résultats fournis par la routine

rapide de chiffrement appliquée au cours de l'étape de traitement .

Le procédé met en œuvre un ou plusieurs crypteurs primaires, chacun d'eux utilisant une suite de bits appelée clé primaire, et effectuant un calcul prenant comme argument un bloc et fournissant comme résultat un nouveau bloc.

La routine de compression comprend une étape intermédiaire consistant à déterminer un bloc ci-après appelé premier bloc intermédiaire, et une étape de calcul consistant à appliquer au moins un crypteur primaire à un bloc déterminé à partir de ce premier bloc intermédiaire. Le résultat de ce calcul sert à déterminer la clé secondaire de chiffrement. Le procédé est en outre tel qu'il soit possible de retrouver cette clé secondaire de chiffrement à partir du secteur résultat. Dans un mode particulier de réalisation de l'invention, le premier bloc intermédiaire est déterminé à partir du résultat de l'application de l'opérateur « ou exclusif bit à bit », ci-après appelé opérateur XOR, entre tout ou partie des blocs constituant le secteur à traiter. Avantageusement, la détermination de ce premier bloc intermédiaire prend en compte une suite de bits appelée clé de mixage. Dans un mode particulier de réalisation, le procédé utilise une suite de bits appelée clé de chiffrement originelle et la clé de mixage peut être déterminée à partir de la clé de chiffrement originelle, et ce au cours d'une étape appelée première étape préalable.

Avantageusement, chacun des secteurs à traiter composant l'information à chiffrer ou à déchiffrer est affecté d'un numéro appelé numéro de secteur. L'étape de calcul contribuant à déterminer la clé secondaire de chiffrement comprend alors les deux phases suivantes. La première phase, dite phase de perturbation, consiste à déterminer un bloc, ci- après appelé bloc perturbé, en prenant en compte, d'une part, le premier bloc intermédiaire et, d'autre part, une valeur dépendant du numéro de secteur. Dans une seconde phase, on applique alors au moins un crypteur primaire à ce bloc perturbé.

Dans un mode particulier de réalisation de l'invention, le bloc perturbé déterminé au cours de la phase de perturbation s'obtient en appliquant l'opérateur XOR, entre, d'une part, le premier bloc intermédiaire et, d'autre part, une valeur dépendant du numéro de secteur affecté au secteur à traiter.

Avantageusement, l'étape de calcul comprend en outre une phase complémentaire consistant à déterminer un bloc ci- après appelé second bloc intermédiaire, en prenant en compte le résultat de l'application d'au moins un crypteur primaire à la clé secondaire de chiffrement. Avantageusement, lorsque chacun des secteurs à traiter est affecté d'un numéro de secteur, celui-ci est aussi pris en compte dans la détermination du second bloc intermédiaire .

Avantageusement, la détermination de tout ou partie des clés rapides prend en compte le premier bloc intermédiaire et/ou le second bloc intermédiaire.

Dans un mode particulier de réalisation de l'invention, le procédé met en œuvre une fonction F permettant de générer une suite de nombres . Le premier nombre de cette suite est alors généré à partir de la clé secondaire de chiffrement, et chacun des nombres suivants de la suite est calculé en appliquant la fonction F au nombre qui le précède immédiatement dans la suite de nombres . Tout ou partie des nombres de cette suite sont alors pris en compte pour déterminer tout ou partie des clés rapides utilisées dans la routine rapide de chiffrement.

Avantageusement les clés rapides sont telles qu'il existe au moins un sous-ensemble de l'ensemble des clés rapides, ce sous ensemble pouvant être l'ensemble tout entier, tel que si on appliquait l'opérateur XOR entre toutes les clés rapides de ce sous-ensemble, on trouverait le même résultat qu'en appliquant l'opérateur XOR entre le premier bloc intermédiaire et le second bloc intermédiaire.

Dans un mode particulier de réalisation de l'invention, l'un au moins des crypteurs primaires fournit comme

résultat le résultat que fournirait l'algorithme de chiffrement AES mis en œuvre sur le même argument et avec une clé identique à la clé primaire utilisée par ce crypteur primaire .

Dans un mode particulier de réalisation de l'invention, la routine rapide de chiffrement calcule un bloc résultat à partir du résultat de l'opération consistant à appliquer l'opérateur XOR entre l'une des clés rapides et le bloc à traiter pris comme argument par cette routine.

Avantageusement, le procédé objet de la présente invention utilise une suite de bits appelée clé de chiffrement originelle et comprend une seconde étape préalable consistant à déterminer, à partir de cette clé de chiffrement originelle, tout ou partie des clés primaires utilisées par les crypteurs primaires . L'invention concerne aussi un système de traitement d' information comprenant des moyens de calcul et des moyens de stockage d' information permettant de mettre en œuvre le procédé précédemment décrit.

Dans un mode particulier de réalisation, ce système comporte deux parties appelées respectivement dispositif hôte et dispositif cryptographique spécifique. Ce dernier comprend des moyens de traitement permettant de réaliser l'étape de calcul. Il est en outre tel que les clés primaires utilisées par les crypteurs primaires ne soient jamais communiquées en dehors de ce dispositif cryptographique spécifique. Le système comprend des moyens de liaison permettant au dispositif hôte de transmettre au dispositif cryptographique spécifique des informations déterminées à partir du secteur à traiter et des moyens de liaison permettant au dispositif cryptographique spécifique de transmettre au dispositif hôte la clé secondaire de chiffrement. Le dispositif hôte comprend des moyens de traitement permettant de réaliser l'étape de traitement.

Avantageusement, le dispositif cryptographique spécifique dispose de moyens de stockage permettant de stocker une suite de bits appelée clé de chiffrement originelle, et de

moyens de traitement permettant de calculer tout ou partie des clés primaires utilisées par les crypteurs primaires, en prenant en compte la clé de chiffrement originelle. Il est en outre tel que la clé de chiffrement originelle ne soit jamais communiquée en dehors du dispositif cryptographique spécifique.

Avantageusement, le dispositif cryptographique spécifique est amovible et peut être déconnecté du dispositif hôte. Dans un mode particulier de réalisation, il lui est connectable par un port autoalimenté, notamment un port USB. Dans un autre mode de réalisation, il lui est connectable par une connexion sans fil .

L'invention concerne aussi le dispositif cryptographique précédemment décrit.

L'invention concerne aussi tout moyen de stockage de données sous forme numérique, tout ou partie des données stockées dans ce moyen de stockage ayant été chiffré à l'aide du procédé objet de la présente invention. L'invention concerne notamment un tel moyen de stockage lorsque tout ou partie des données sont des données de nature audiovisuelle. Elle concerne aussi notamment un tel moyen de stockage lorsqu'il est destiné à être lu par lecture optique.

L'invention concerne aussi tout moyen de transmission de données sous forme numérique, tout ou partie des données transmises dans ce moyen de transmission de données ayant été chiffré à l'aide du procédé objet de la présente invention, notamment lorsque tout ou partie des données ainsi transmises sont des données de nature audiovisuelles .

On décrit ci -après plusieurs exemples de réalisation de la présente invention, en particulier à l'aide des figures 1 à 6. Ils diffèrent notamment par le mode de calcul de la clé secondaire de chiffrement à partir du secteur à traiter et/ou du secteur résultat. Tous ces exemples sont donnés ici à titre illustratif et non limitatif.

La figure 1 représente un mode de réalisation de la présente invention, dans lequel la clé secondaire de chiffrement

KS peut être recalculée à partir de l'un des blocs du secteur résultat. Dans ce mode de réalisation, l'invention met en œuvre deux crypteurs primaires CPl et CP2, et des étapes préalables permettent de construire, à partir d'une clé de chiffrement originelle KO, d'une part, une clé de mixage KM et, d'autre part, deux clés primaires KPl et KP2, respectivement utilisées par les deux crypteurs primaires CPl et CP2.

Le secteur à traiter S (dans le cas présent, l'information en clair, qu'on se propose de chiffrer) se compose de n blocs M 0 , Mi, ..., M n _i et est affecté d'un nombre appelé numéro de secteur NS. Le résultat final du calcul est un secteur T, appelé secteur résultat, composé de n blocs Co, Ci, ..., C n - I contenant l'information chiffrée.

Le détail des opérations à effectuer est alors le suivant. Une étape intermédiaire EI détermine, à partir, d'une part, des n blocs M 0 , Mi, ..., M n _i composant le secteur S à traiter, et, d'autre part, du numéro de secteur NS et de la clé de mixage KM, un premier bloc intermédiaire X.

Dans une implémentation particulière du présent mode de réalisation de l'invention, cette étape intermédiaire EI calcule un bloc à partir du numéro de secteur NS et de la clé de mixage KM et effectue ensuite une opération XOR (ou exclusif bit à bit) entre ce bloc et les n blocs M 0 , Mi,..., M n _i composant le secteur à traiter. Le premier bloc intermédiaire X est alors le résultat de cette opération XOR. On dira, dans cette implémentation particulière, que l'étape intermédiaire EI est de type XOR.

Dans le présent mode de réalisation, une étape de calcul détermine, dans un premier temps, à partir du premier bloc intermédiaire X, un nouveau bloc noté Co , appelé ci-après bloc discriminant . Dans le mode de réalisation représenté sur la figure 1, le bloc discriminant Co est le premier bloc du résultat final c'est-à-dire du secteur T. La détermination du bloc discriminant Co se fait en appliquant au bloc intermédiaire X le premier crypteur primaire CPl, utilisant la première clé

primaire KPl. Une fois ce bloc Co déterminé, l'étape de calcul lui applique le second crypteur primaire CP2, utilisant la seconde clé primaire KP2.

La clé secondaire de chiffrement KS est alors égale au résultat de ce calcul. Il est donc possible de la retrouver à partir du secteur résultat T, car le bloc discriminant qui permet de la calculer est un des blocs de ce secteur résultat T.

Une étape de traitement permet ensuite de chiffrer les n-1 blocs Mi, M 2 , ..., M n _i, c'est-à-dire tous les blocs constituant le secteur à traiter S, à l'exclusion du premier. Ce chiffrement se fait à l'aide d'une routine rapide de chiffrement CR. Pour ce faire, n-1 suites de bits, appelées clés rapides, et notées respectivement ki, k 2 , ... , k n _i , sont calculées à partir de la clé secondaire de chiffrement KS. Dans le mode de réalisation représenté dans la figure

1, le calcul des clés rapides se fait en deux temps. D'une part on génère une suite de n nombres K 0 , Ki, K 2 ..., K n _i , le premier de ces nombres étant égal à la clé secondaire KS, chacun des suivants étant calculé en appliquant une fonction F au nombre qui le précède dans la suite. Les n-1 nombres Ki, K 2 ..., K n _i , génèrent ensuite n-1 clés rapides ki, k 2 , ... k n _i . Chacun des n-1 blocs Mi, M 2 , ..., M n -i est alors chiffré par la routine rapide de chiffrement CR à l'aide d'une de ces clés rapides, le bloc résultat issu de ce chiffrement donnant le bloc correspondant dans le secteur résultat T.

Une mise en œuvre particulière consiste à utiliser comme fonction F la fonction « Identité » fournissant un résultat égal à son argument. Les clés rapides sont alors toutes égales entre elles et égales à la clé secondaire de chiffrement KS, ce qui permet de gagner en rapidité de calcul, mais au détriment de la sécurité cryptographique .

Dans un cas particulier du présent mode de réalisation de l'invention, la routine rapide de chiffrement CR est un simple masque XOR et le bloc résultat s'obtient en appliquant l'opérateur XOR entre le bloc à traiter et la clé rapide.

Dans certaines variantes du présent mode de réalisation de l'invention, le bloc discriminant peut être l'un quelconque des blocs du secteur résultat T, la position de ce bloc pouvant varier d'un secteur à l'autre. Dans l'une de ces variantes, la position du bloc discriminant dans le secteur résultat T est liée au numéro de secteur NS . Dans d' autres variantes, le bloc discriminant est pris en compte dans le calcul du résultat final, c'est-à-dire du secteur résultat T, de façon à pouvoir être facilement retrouvé à partir de ce secteur résultat T, notamment en appliquant un opérateur XOR à tout ou partie des blocs formant le secteur résultat T.

La figure 2 représente un autre mode de réalisation de l'invention dont le but est de réaliser l'opération inverse de celle représentée dans la figure 1. Dans ce mode de réalisation, le secteur à traiter est un secteur à déchiffrer T, composé des n blocs Co, Ci, ... , C n - I , l'objectif ici étant de retrouver comme secteur résultat le secteur S qui avait été chiffré de la façon représentée dans la figure 1, le numéro de secteur NS étant le même. Les mêmes étapes préalables que dans l'exemple illustré par la figure 1 permettent de construire, à partir d'une clé de chiffrement originelle KO, d'une part, une clé de mixage KM et, d'autre part, des clés primaires KPl et KP2.

Dans le présent mode de réalisation illustré par la figure 2, le premier bloc intermédiaire est le bloc Co, premier bloc du secteur à déchiffrer. Dans certaines variantes de réalisation, le bloc intermédiaire est l'un quelconque des blocs du secteur à déchiffrer ou encore est déterminé à partir de tout ou partie du secteur à déchiffrer T notamment en appliquant un opérateur XOR à tout ou partie des blocs formant le secteur T.

Une fois le premier bloc intermédiaire déterminé, on lui applique directement le second crypteur primaire CP2, utilisant la seconde clé primaire KP2, ce qui génère la clé secondaire de chiffrement KS.

Les clés rapides ki, k 2 , ... k n _i sont alors calculées à partir de la clé secondaire de chiffrement KS de la même façon que dans le mode de réalisation représenté sur la figure 1, et chacun des n-1 blocs à traiter Ci, C 2 , ..., C n - I est ensuite déchiffré par la routine CR '1 , réciproque de la routine rapide de chiffrement CR, et à l'aide de la clé rapide correspondante, le résultat de ce déchiffrement donnant le bloc correspondant dans le secteur résultat S. On reconstitue ainsi les n-1 blocs Mi, M 2 , ..., M n -i de ce secteur. Dans le cas particulier dans lequel la routine rapide de chiffrement CR est un simple masque XOR la routine réciproque CR '1 est identique à la routine rapide de chiffrement CR.

Le présent mode de réalisation illustré par la figure 2 comprend une phase complémentaire, au cours de laquelle on calcule un second bloc intermédiaire X en appliquant au bloc Co l'algorithme réciproque du premier crypteur primaire CPl avec la première clé primaire KPl. On détermine finalement le bloc MQ, à partir des blocs Mi, M 2 , ..., M n _i , du numéro de secteur NS, de la clé de mixage KM, et du second bloc intermédiaire X. Ce calcul est l'opération EI "1 , symétrique de l'étape intermédiaire EI mise en jeu lors du chiffrement. Dans le cas particulier où cette étape intermédiaire EI est de type XOR, on reconstitue le bloc MQ par une opération XOR entre le second bloc intermédiaire X, les n-1 blocs résultat Mi, M 2 ,..., M n _i déjà calculés et un bloc calculé à partir du numéro de secteur NS et de la clé de mixage KM.

La figure 3 représente un autre mode de réalisation de l'invention. Les mêmes étapes préalables que dans les exemples précédents permettent de construire, à partir d'une clé de chiffrement originelle KO, d'une part, une clé de mixage KM et, d'autre part, les deux clés primaires KPl et KP2 respectivement utilisées par les deux crypteurs primaires CPl et CP2.

Le secteur à traiter S (dans le cas présent, l'information en clair, qu'on se propose de chiffrer) se compose des n blocs M 0 , Mi, ..., M n _i et est affecté d'un nombre appelé

numéro de secteur NS . Le résultat final du calcul sera un secteur T composé de n blocs Co, Ci, ..., C n - I contenant l'information chiffrée.

Le détail des opérations à effectuer est alors le suivant . Une étape intermédiaire EI détermine un premier bloc intermédiaire X à partir des n blocs M 0 , Mi, ..., M n _i composant le secteur S à traiter et de la clé de mixage KM.

La clé secondaire de chiffrement KS s'obtient en deux phases. Au cours d'une première phase, dite de perturbation, on applique un opérateur XOR entre le premier bloc intermédiaire X et une valeur dépendant du numéro de secteur NS, fournissant comme résultat un bloc ci-après appelé bloc perturbé BP. La seconde phase calcule la clé secondaire de chiffrement KS en appliquant le premier crypteur primaire CPl au bloc perturbé BP. Au cours d'une phase complémentaire, on applique ensuite le second crypteur primaire CP2 à la clé secondaire de chiffrement KS ainsi calculée, puis on applique un opérateur XOR entre le résultat de l'opération précédente et une valeur dépendant du numéro de secteur NS, ce qui fournit comme résultat un second bloc intermédiaire Y.

La clé secondaire de chiffrement KS sert à générer les clés rapides k± par une méthode similaire à celle utilisée dans l'exemple représenté par la figure 1. Pour ne pas alourdir la figure 3, les détails n'y sont pas représentés. Ces clés rapides ki seront utilisées par une routine rapide de chiffrement CR qui chiffre tous les blocs du secteur à traiter S pour fournir les blocs correspondants du secteur résultat T.

Une variante particulière de mise en œuvre du mode de réalisation de l'invention illustré par la figure 3 met à profit les propriétés de l'opérateur XOR. Dans cette variante particulière, la routine rapide de chiffrement CR consiste simplement en l'application d'un opérateur XOR entre le bloc à traiter Mi et la clé rapide ki correspondante. Les deux blocs intermédiaires X et Y sont pris en compte dans la génération des clés rapides ki. Plus précisément, celles-ci sont construites de

telle manière que, en appliquant l'opérateur XOR entre toutes les clés rapides k±, on obtiendrait le même résultat qu'en appliquant l'opérateur XOR entre les deux blocs intermédiaires X et Y. Un mode particulier de construction de clés rapides ki vérifiant ces propriétés est donné ici à titre d' exemple illustratif et non limitatif des possibilités de réaliser cette variante particulière. Ce mode particulier de construction se réalise en trois étapes . Une première étape consiste à calculer des clés rapides intermédiaires, par exemple d'une manière similaire à celle de l'exemple illustré dans la figure 1. Une seconde étape consiste à appliquer l'opérateur XOR entre, d'une part, toutes les clés rapides intermédiaires et, d'autre part, les blocs intermédiaires X et Y. Une troisième étape consiste à construire l'une des clés rapides en appliquant l'opérateur XOR entre la clé rapide intermédiaire correspondante et le résultat de l'étape 2, les autres clés rapides étant égales aux clés intermédiaires correspondantes .

Dans une mise en oeuvre particulière de ce mode particulier de construction, celle des clés rapides intermédiaires à qui est ainsi appliquée l'opérateur XOR est variable d'un secteur à l'autre et est choisie en prenant en compte le numéro de secteur NS du secteur à traiter.

Dans une version simple de cette variante particulière, la clé de mixage KM n'est pas prise en compte et le premier bloc intermédiaire X s'obtient en appliquant l'opérateur XOR entre les n blocs M 0 , Mi, ..., M n _i composant le secteur à traiter S.

On peut alors montrer qu'en appliquant l'opérateur XOR entre les n blocs Co, Ci, ..., C n - I composant le secteur résultat T, on retrouve le second bloc intermédiaire Y. Le calcul de ce dernier à partir du secteur résultat T est donc possible et peut s'effectuer de manière similaire au calcul du premier bloc intermédiaire X à partir du secteur à traiter S .

Dans une version plus sophistiquée de cette variante particulière, on calcule le bloc X en effectuant au préalable une permutation des bits de tout ou partie des n blocs composant le secteur à traiter S, avant de leur appliquer l'opérateur XOR, la permutation à effectuer étant déterminée à partir de la clé de mixage KM. Dans une mise en œuvre particulière de cette version plus sophistiquée, la permutation à effectuer est variable d'un bloc à l'autre.

Cette permutation préalable est notamment intéressante dans le cas de fichiers ASCII, pour lesquels certains octets sont plus fréquents que d'autres, car elle aura pour conséquence que les octets du premier bloc intermédiaire sont statistiquement bien répartis. A la fin du procédé, on applique la permutation inverse aux blocs issus de l'application de l'opérateur XOR entre les clés rapides ki et les blocs du secteur à traiter S.

Dans cette version plus sophistiquée, le calcul du second bloc intermédiaire Y à partir du secteur résultat T est possible et peut s'effectuer de manière similaire au calcul du premier bloc intermédiaire X à partir du secteur à traiter S.

La figure 4 représente un autre mode de réalisation de l'invention dont le but est de réaliser l'opération inverse de celle réalisée dans la variante particulière du mode de réalisation illustré en figure 3. Le secteur à traiter est ici un secteur à déchiffrer T, composé des n blocs Co, Ci,..., C n - I , l'objectif étant de retrouver comme résultat final le secteur S qui avait été chiffré par cette variante particulière, le numéro de secteur étant le même.

Le détail des opérations à effectuer est alors le suivant. Une étape intermédiaire EI détermine un bloc Y qui joue ici le rôle de premier bloc intermédiaire, ce bloc Y étant déterminé à partir des n blocs composant le secteur T à traiter et de la clé de mixage KM.

La clé secondaire de chiffrement KS s'obtient en deux phases, de façon similaire au mode de réalisation illustré en

figure 3. Au cours d'une première phase, dite de perturbation, on applique un opérateur XOR entre le premier bloc intermédiaire Y et une valeur dépendant du numéro de secteur NS, fournissant comme résultat un bloc ci-après appelé bloc perturbé BP. La seconde phase calcule la clé secondaire de chiffrement KS en appliquant au bloc perturbé BP le second crypteur primaire en mode déchiffrement (noté ici CP2 "1 ) . On applique alors le premier crypteur primaire en mode déchiffrement (noté ici CPl '1 ) à la clé secondaire de chiffrement KS, puis on applique un opérateur XOR entre le résultat de l'opération précédente et une valeur dépendant du numéro de secteur NS, ce qui fournit comme résultat un bloc X qui joue ici le rôle de second bloc intermédiaire.

La clé secondaire de chiffrement KS est alors la même que celle qui avait été utilisée lors du chiffrement. Les clés rapides se construisent de manière identique et sont identiques à celles utilisées lors du chiffrement. La routine rapide de chiffrement CR consistant ici en une simple application d'opérateur XOR avec une clé rapide, cette routine rapide de chiffrement CR est sa propre réciproque. L'opération de déchiffrement est donc ici similaire à l'opération de chiffrement, à condition de remplacer les deux crypteurs primaires par leur fonction réciproque, c'est-à-dire en les faisant fonctionner en mode déchiffrement, et de les permuter, c'est-à-dire d'appliquer le second avant le premier. Dans tous les modes de réalisation décrits ci-dessus, la clé de mixage KM est déterminée à partir de la clé de chiffrement originelle KO. On peut aussi réaliser des variantes dans lesquelles la clé de mixage KM est publique et figée une fois pour toutes. Comme décrit à propos de la version plus sophistiquée de la variante particulière du mode de réalisation illustré dans la figure 3, son intérêt est principalement de nature statistique, pour assurer une équirépartition statistique des valeurs prises par les blocs intermédiaires .

La figure 5 illustre un exemple d' implémentation dans lequel l'invention est mise en œuvre sur un système comportant

un dispositif hôte et un dispositif cryptographique spécifique DCS. Ce dernier prend en charge l'étape préalable de détermination des deux clés primaires KPl et KP2, à partir de la clé originelle KO, et l'étape de calcul dans laquelle sont mis en œuvre les crypteurs primaires CPl et CP2 utilisant ces clés primaires KPl et KP2. Le dispositif hôte est chargé du reste du traitement. Les secrets cryptographiques que sont la première clé primaire KPl, la seconde clé primaire KP2 et la clé de chiffrement originelle KO ne sont jamais communiqués en dehors du dispositif cryptographique spécifique DCS.

Dans cet exemple particulier d'implémentation, le dispositif hôte détermine un bloc appelé bloc perturbé BP à partir du premier bloc intermédiaire X et d'une valeur dépendant d'un numéro de secteur NS affecté au secteur à traiter. Le bloc perturbé BP est transmis au dispositif cryptographique spécifique DCS. Ce dernier lui applique le premier crypteur primaire CPl pour générer la clé secondaire KS qui est communiquée au dispositif hôte. Il applique ensuite le second crypteur primaire CP2 à la clé secondaire KS pour générer le second bloc intermédiaire Y qui est, lui aussi, communiqué au dispositif hôte. Celui-ci, à l'aide des informations qui lui sont communiquées, détermine alors les clés rapides et met en œuvre la routine rapide de chiffrement CR.

Les flux d' information à destination, ou en provenance, du dispositif cryptographique spécifique DCS sont illustrés, sur la figure, par des triples flèches.

Le dispositif cryptographique spécifique DCS est amovible et peut être détaché du dispositif hôte. En son absence, il est impossible de procéder à des opérations de chiffrement et/ou de déchiffrement, ce qui assure une confidentialité totale des informations chiffrées à l'aide du procédé objet de la présente invention. Dans une mise en œuvre particulière de cet exemple d'implémentation, le dispositif cryptographique spécifique DCS se présente comme une « clé USB » connectable sur un port USB, comme enseigné dans le brevet

français 03/50626 déposé le 30 septembre 2003 délivré le 20 janvier 2006 et dans la demande internationale PCT/FR2004/050299 du 30 juin 2004.

Dans le présent exemple d' implémentation, l'invention est mise en œuvre soit sans utilisation de clé de mixage, soit en utilisant une clé de mixage KM ne dépendant pas de la clé de chiffrement originelle KO, donc identique pour tous les blocs . Dans le second cas, la clé de mixage KM est utilisée au cours de l'étape intermédiaire EI prise en charge par le dispositif hôte. Dans tous les modes de réalisation décrits ci-dessus, les crypteurs primaires CPl et CP2 mettent en œuvre un algorithme de chiffrement par blocs . Dans des cas particuliers de mise en œuvre de ces modes de réalisation, l'algorithme utilisé est l'algorithme AES, et est donc le même pour les deux chiffreurs primaires. Il est alors possible d'utiliser des clés primaires KP2 et KP2 identiques, mais cela risque d'affaiblir la sécurité cryptographique de l'invention.

La figure 6 est un schéma simplifié du mode de réalisation décrit sur la figure 3.