WO2007015034A2 - Method and system for high-speed encryption - Google Patents

Method and system for high-speed encryption Download PDF

Info

Publication number
WO2007015034A2
WO2007015034A2 PCT/FR2006/050787 FR2006050787W WO2007015034A2 WO 2007015034 A2 WO2007015034 A2 WO 2007015034A2 FR 2006050787 W FR2006050787 W FR 2006050787W WO 2007015034 A2 WO2007015034 A2 WO 2007015034A2
Authority
WO
WIPO (PCT)
Prior art keywords
sector
block
result
primary
fast
Prior art date
Application number
PCT/FR2006/050787
Other languages
French (fr)
Other versions
WO2007015034A3 (en
Inventor
Jean-Luc Stehle
Original Assignee
Everbee Networks
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Everbee Networks filed Critical Everbee Networks
Priority to EP06794528A priority Critical patent/EP1911190A2/en
Publication of WO2007015034A2 publication Critical patent/WO2007015034A2/en
Publication of WO2007015034A3 publication Critical patent/WO2007015034A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Definitions

  • audiovisual streams can be used for end-users (digital television, pay-TV, movie download) or in a professional environment (video cameras communicating with each other and / or with a server in a digital mode).
  • end-users digital television, pay-TV, movie download
  • professional environment video cameras communicating with each other and / or with a server in a digital mode.
  • This algorithm provides perfect security when using a key of the same length as the information to be encrypted or decrypted, this key then being taken as a mask. In practice, it is generally impracticable. To build the mask, we can for example concatenate successive copies of the encryption key. The algorithm is then vulnerable, for example to statistical attacks, and this vulnerability increases with the number of copies of the initial key that had to be made to generate the mask, so with the ratio between the number of bits of the information to process and number of bits of the key.
  • the strong algorithm is a block algorithm (for example the AES) for which the information to be encrypted or decrypted is divided into blocks of fixed length (for example 128 bits in the case of the AES), each block being treated independently of others.
  • the strong algorithm is executed on each of the blocks.
  • the blocks themselves are grouped into sectors, a sector comprising several blocks (or several tens or hundreds of blocks depending on the applications). Encryption and / or decryption execute in two stages.
  • each sector it is initially calculated, using a strong algorithm, a secondary encryption key dependent including data in this sector and varying from one sector to another.
  • This secondary encryption key is, in a second time, used to encrypt / decrypt all or part of the blocks of the sector using a faster algorithm.
  • the invention ensures, on the one hand, that the encrypted information does not occupy more bits than the information in the clear, and, on the other hand, that the secondary encryption keys can be easily calculated, both from information in the clear only encrypted information, when we know the keys of the strong algorithm, and that these secondary encryption keys are impossible to find otherwise.
  • the invention relates to a method for encrypting and / or decrypting information in the form of a sequence of bits grouped in blocks, these blocks being themselves grouped into sectors.
  • the method encrypts and / or decrypts a sector hereinafter called the sector to be treated and comprises the following steps:
  • a step implementing a compression routine which takes as argument the sector to be processed and provides as a result a sequence of bits comprising fewer bits than the sector to be processed, this result being hereinafter called the secondary encryption key,
  • the computation performed by the fast encryption routine uses a sequence of bits called a fast key, determined from the secondary encryption key.
  • the result of the method is a sector hereinafter referred to as the result sector, composed of as many blocks as the sector to be treated, all or part of the blocks of the result sector being determined from the result blocks provided by the routine. fast encryption applied during the processing step.
  • the method implements one or more primary encryptors, each of them using a sequence of bits called primary key, and performing a calculation taking as argument a block and providing as a result a new block.
  • the compression routine comprises an intermediate step of determining a block hereinafter called the first intermediate block, and a calculation step of applying at least one primary encryptor to a block determined from this first intermediate block. The result of this calculation is used to determine the secondary encryption key.
  • the method is further such that it is possible to find this secondary encryption key from the result sector.
  • the first intermediate block is determined from the result of the application of the "exclusive or bitwise" operator, hereinafter referred to as the XOR operator, between all or some of the blocks. constituting the sector to be treated.
  • the determination of this first intermediate block takes into account a sequence of bits called mixing key.
  • the method uses a sequence of bits called the original encryption key and the mixing key can be determined from the original encryption key, and this during a step called first preliminary step.
  • each of the sectors to be treated composing the information to be encrypted or decrypted is assigned a number called sector number.
  • the calculation step that contributes to determining the secondary encryption key then comprises the following two phases.
  • the first phase called the disturbance phase, consists in determining a block, hereinafter referred to as a disturbed block, taking into account, on the one hand, the first intermediate block and, on the other hand, a value depending on the sector number. .
  • a second phase at least one primary cryptor is then applied to this disturbed block.
  • the disturbed block determined during the disturbance phase is obtained by applying the XOR operator, between, on the one hand, the first intermediate block and, on the other hand, a value depending on the sector number assigned to the sector to be treated.
  • the calculation step further comprises an additional phase of determining a block hereinafter called the second intermediate block, taking into account the result of the application of at least one primary encryptor to the secondary encryption key.
  • the second intermediate block a block hereinafter called the second intermediate block
  • the determination of all or part of the fast keys takes into account the first intermediate block and / or the second intermediate block.
  • the method implements a function F for generating a series of numbers.
  • the first number of this sequence is then generated from the secondary encryption key, and each subsequent number of the sequence is calculated by applying the function F to the number immediately preceding it in the series of numbers. All or part of the numbers of this suite are then taken into account to determine all or part of the quick keys used in the fast encryption routine.
  • the fast keys are such that there is at least one subset of the set of fast keys, this subset can be the whole set, such as if one applied the XOR operator between all the fast keys of this subset, we would find the same result by applying the XOR operator between the first intermediate block and the second intermediate block.
  • At least one of the primary encryptors provides result the result that would provide the encryption algorithm AES implemented on the same argument and with a key identical to the primary key used by this primary encryptor.
  • the fast encryption routine calculates a result block from the result of the operation of applying the XOR operator between one of the fast keys and the block to be treated as an argument. by this routine.
  • the method that is the subject of the present invention uses a series of bits called the original encryption key and comprises a second preliminary step of determining, from this original encryption key, all or part of the primary keys used by the primary encryptors.
  • the invention also relates to an information processing system comprising calculation means and information storage means for implementing the previously described method.
  • this system comprises two parts, respectively called host device and specific cryptographic device.
  • the latter comprises processing means for performing the calculation step. It is also such that the primary keys used by the primary encryptors are never communicated outside this specific cryptographic device.
  • the system includes link means enabling the host device to transmit to the specific cryptographic device information determined from the sector to be processed and link means allowing the specific cryptographic device to transmit the secondary encryption key to the host device.
  • the host device comprises processing means for performing the processing step.
  • the specific cryptographic device has storage means for storing a series of bits called the original encryption key, and of processing means for calculating all or part of the primary keys used by the primary encryptors, taking into account the original encryption key. It is further such that the original encryption key is never communicated outside the specific cryptographic device.
  • the specific cryptographic device is removable and can be disconnected from the host device.
  • it is connectable by a self-powered port, including a USB port.
  • it is connectable to it by a wireless connection.
  • the invention also relates to the cryptographic device described above.
  • the invention also relates to any means of storing data in digital form, all or part of the data stored in this storage means having been encrypted using the method object of the present invention.
  • the invention relates in particular to such storage means when all or part of the data is audiovisual data. It also relates in particular to such a storage means when it is intended to be read by optical reading.
  • the invention also relates to any means for transmitting data in digital form, all or part of the data transmitted in this data transmission means having been encrypted using the method of the present invention, especially when all or part of the data. transmitted are data of an audiovisual nature.
  • FIGS. 1 to 6 Several exemplary embodiments of the present invention are described below, in particular with reference to FIGS. 1 to 6. They differ in particular in the mode of calculation of the secondary encryption key from the sector to be treated and / or the result sector. All these examples are given here by way of illustration and not limitation.
  • FIG. 1 represents an embodiment of the present invention, in which the secondary encryption key KS can be recalculated from one of the blocks in the result area.
  • the invention implements two primary crypters CP1 and CP2, and preliminary steps make it possible to build, on the basis of an original encryption key KO, on the one hand, a KM mixing key and, on the other hand, two primary keys KP1 and KP2 respectively used by the two primary CP1 and CP2 crypters.
  • the sector to be processed S (in this case, the information in the clear, which one proposes to encrypt) consists of n blocks M 0 , Mi, ..., M n _i and is assigned a number called NS area number.
  • the final result of the calculation is a sector T, called sector result, composed of n blocks Co, Ci, ..., C n - I containing the encrypted information.
  • An intermediate step E1 determines, from, on the one hand, n blocks M 0 , Mi, ..., M n _i composing the sector S to be processed, and, on the other hand, the sector number NS and the KM mixing key, a first intermediate block X.
  • this intermediate step EI calculates a block from the sector number NS and the mixing key KM and then performs an operation XOR (or exclusive bitwise) between this block and the n blocks M 0 , Mi, ..., M n _i composing the sector to be treated.
  • the first intermediate block X is then the result of this XOR operation. It will be said in this particular implementation that the intermediate step EI is of type XOR.
  • a calculation step initially determines, starting from the first intermediate block X, a new block denoted Co, hereinafter referred to as discriminating block.
  • the discriminant block Co is the first block of the final result, that is to say of the sector T.
  • the determination of the discriminant block Co is done by applying to the intermediate block X the first encryptor CPl primary, using the first key Primary KPl. Once this block Co determined, the calculation step applies to it the second primary cryptor CP2, using the second primary key KP2.
  • the secondary encryption key KS is then equal to the result of this calculation. It is therefore possible to find it from the result sector T, because the discriminant block which makes it possible to calculate it is one of the blocks of this sector result T.
  • a processing step then makes it possible to encrypt the n-1 blocks Mi, M 2 ,..., M n -1, that is to say all the blocks constituting the sector to be treated S, excluding the first.
  • This encryption is done using a fast cryptographic routine CR.
  • n-1 sequences of bits, called fast keys, and noted respectively ki, k 2 , ..., k n _i, are calculated from the secondary encryption key KS.
  • the calculation of the quick keys is done in two stages.
  • K 0 , K 1 , K 2 ..., K n _i the first of these numbers being equal to the secondary key KS, each of the following being calculated by applying a function F to number that precedes it in the sequel.
  • the n-1 numbers Ki, K 2 ..., K n _i then generate n-1 fast keys ki, k 2 , ... k n _i.
  • Each of the n-1 blocks Mi, M 2 ,..., M n -i is then encrypted by the fast encryption routine CR using one of these fast keys, the result block resulting from this encryption giving the corresponding block in the sector result T.
  • a particular implementation consists in using as function F the function "Identity" providing a result equal to its argument.
  • the fast keys are then all equal to each other and equal to the secondary key KS encryption, which allows faster computing, but at the expense of cryptographic security.
  • the fast cryptographic routine CR is a simple XOR mask and the result block is obtained by applying the XOR operator between the block to be processed and the fast key.
  • the discriminant block may be any of the blocks of the result sector T, the position of this block may vary from one sector to another. In one of these variants, the position of the discriminator block in the result sector T is related to the sector number NS. In other variants, the discriminant block is taken into account in the calculation of the final result, that is to say the result sector T, so that it can be easily found from this sector result T, in particular by applying an XOR operator to all or some of the blocks forming the sector result T.
  • FIG. 2 represents another embodiment of the invention, the purpose of which is to perform the operation opposite to that represented in FIG. 1.
  • the sector to be treated is a sector to be deciphered T, composed of n blocks Co, Ci, ..., C n - I , the objective here being to find as sector result sector S which had been encrypted as shown in Figure 1, the sector number NS is the same.
  • the same preliminary steps as in the example illustrated in FIG. 1 make it possible to build, from an original encryption key KO, on the one hand, a KM mixing key and, on the other hand, KPL primary keys. and KP2.
  • the first intermediate block is the block Co, the first block of the sector to be deciphered.
  • the intermediate block is any one of the blocks of the sector to be deciphered or is determined from all or part of the sector to be decrypted, in particular by applying an XOR operator to all or part of the blocks forming the sector. T.
  • the second primary encryptor CP2 is directly applied to it, using the second primary key KP2, which generates the secondary encryption key KS.
  • the fast keys ki, k 2 , ... k n _i are then calculated from the secondary encryption key KS in the same way as in the embodiment shown in FIG. 1, and each of the n-1 blocks to to treat Ci, C 2 ,..., C n -I is then decrypted by routine CR '1 , which is a reciprocal of the fast encryption routine CR, and with the aid of the corresponding fast key, the result of this decryption giving the corresponding block in the sector result S.
  • n-1 blocks Mi, M 2 ,..., M n -i of this sector are reconstituted.
  • the reciprocal routine CR '1 is identical to the fast cryptographic routine CR.
  • the present embodiment illustrated in FIG. 2 comprises a complementary phase, during which a second intermediate block X is calculated by applying to the block Co the reciprocal algorithm of the first primary encryptor CP1 with the first primary key KP1.
  • the block MQ is finally determined from the blocks Mi, M 2 ,..., M n-1 , the sector number NS, the mixing key KM, and the second intermediate block X.
  • This calculation is the operation EI "1 , symmetrical of the intermediate step EI put into play during the encryption
  • the block MQ is reconstituted by an operation XOR between the second intermediate block X, the n -1 result blocks Mi, M 2 , ..., M n _i already calculated and a block calculated from the sector number NS and the mixing key KM.
  • Figure 3 shows another embodiment of the invention.
  • the same preliminary steps as in the preceding examples make it possible to build, from an original encryption key KO, on the one hand, a KM mixing key and, on the other hand, the two primary keys KP1 and KP2 respectively used. by the two primary crypters CP1 and CP2.
  • the sector to be treated S (in this case, the information in the clear, which one proposes to encrypt) consists of n blocks M 0 , Mi, ..., M n _i and is assigned a number called NS area number.
  • the final result of the calculation will be a sector T composed of n blocks Co, Ci, ..., C n - I containing the encrypted information.
  • An intermediate step EI determines a first intermediate block X from the n blocks M 0 , Mi, ..., M n _i composing the sector S to be processed and the mixing key KM.
  • the secondary encryption key KS is obtained in two phases. During a first phase, called disturbance phase, an XOR operator is applied between the first intermediate block X and a value dependent on the sector number NS, providing as a result a block hereinafter called BP disturbed block. The second phase calculates the secondary encryption key KS by applying the first primary encryptor CP1 to the disturbed block BP. During a complementary phase, the second primary encryptor CP2 is then applied to the encrypted secondary key KS thus calculated, and an operator XOR is then applied between the result of the preceding operation and a value dependent on the sector number NS. which gives as a result a second intermediate block Y.
  • disturbance phase an XOR operator is applied between the first intermediate block X and a value dependent on the sector number NS, providing as a result a block hereinafter called BP disturbed block.
  • the second phase calculates the secondary encryption key KS by applying the first primary encryptor CP1 to the disturbed block BP.
  • the secondary encryption key KS is used to generate the fast keys k ⁇ by a method similar to that used in the example shown in FIG. 1. In order not to burden FIG. 3, the details are not shown. These fast keys ki will be used by a fast cryptographic routine CR which encrypts all the blocks of the sector to be treated S to supply the corresponding blocks of the sector result T.
  • a particular variant of implementation of the embodiment of the invention illustrated in FIG. 3 makes use of the properties of the XOR operator.
  • the fast CR encryption routine simply consists in the application of an XOR operator between the block to be processed Mi and the corresponding fast key ki.
  • the two intermediate blocks X and Y are taken into account in the generation of fast keys ki. More specifically, these are built of such that, by applying the XOR operator between all the fast keys k ⁇ , one would obtain the same result as by applying the XOR operator between the two intermediate blocks X and Y.
  • a particular mode of construction of fast keys ki verifying these properties are given here as an illustrative and nonlimiting example of the possibilities of carrying out this particular variant. This particular mode of construction is realized in three stages.
  • a first step consists in calculating intermediate fast keys, for example in a manner similar to that of the example illustrated in FIG. 1.
  • a second step consists in applying the XOR operator between, on the one hand, all the keys intermediates and the intermediate blocks X and Y.
  • a third step is to build one of the fast keys by applying the XOR operator between the corresponding intermediate fast key and the result of step 2, the other quick keys being equal to the corresponding intermediate keys.
  • that of the intermediate fast keys to which the XOR operator is thus applied is variable from one sector to another and is chosen taking into account the sector number NS of the sector to be treated.
  • the KM mixing key is not taken into account and the first intermediate block X is obtained by applying the XOR operator between the n blocks M 0 , Mi, ..., M n _i composing the sector to be treated S.
  • the block X is calculated by first permuting the bits of all or part of the n blocks composing the sector to be treated S, before applying to them the operator XOR, the permutation to be performed. being determined from the KM mixing key.
  • the permutation to be performed is variable from one block to another.
  • the calculation of the second intermediate block Y from the result sector T is possible and can be done similarly to the calculation of the first intermediate block X from the sector to be processed S.
  • FIG. 4 represents another embodiment of the invention, the purpose of which is to carry out the reverse operation of that carried out in the particular variant of the embodiment illustrated in FIG. 3.
  • the sector to be treated is here a sector to decipher T , composed of n blocks Co, Ci, ..., C n - I , the objective being to find as final result the sector S which had been encrypted by this particular variant, the sector number being the same.
  • An intermediate step EI determines a block Y which acts here as the first intermediate block, this block Y being determined from the n blocks composing the sector T to be processed and the mixing key KM.
  • the secondary encryption key KS is obtained in two phases, similar to the embodiment illustrated in FIG. FIG. 3.
  • a first disturbance phase an XOR operator is applied between the first intermediate block Y and a value dependent on the sector number NS, providing as a result a block hereinafter called the disturbed block BP.
  • the second phase calculates the secondary encryption key KS by applying to the disturbed block BP the second primary encryptor in decryption mode (denoted here CP2 "1 ) .
  • the first primary encryptor is then applied in decryption mode (noted here CPl '1 ) to the secondary encryption key KS, then an XOR operator is applied between the result of the previous operation and a value dependent on the sector number NS, which results in a block X which plays the role of second intermediate block.
  • the secondary encryption key KS is then the same as that which was used during the encryption.
  • Quick keys are built identically and are identical to those used for encryption.
  • the fast CR encryption routine here consisting of a simple XOR operator application with a fast key, this fast CR encryption routine is its own reciprocal.
  • the decryption operation here is therefore similar to the encryption operation, provided that the two primary encryptors are replaced by their reciprocal function, that is to say by making them operate in decryption mode, and to swap them. that is, to apply the second before the first.
  • the mixing key KM is determined from the original encryption key KO. It is also possible to make variants in which the KM mixing key is public and fixed once and for all. As described with respect to the more sophisticated version of the particular variant of the embodiment illustrated in FIG. 3, its interest is mainly of a statistical nature, to ensure a statistical equidistribution of the values taken by the intermediate blocks.
  • FIG. 5 illustrates an exemplary implementation in which the invention is implemented on a system comprising a host device and a specific cryptographic device DCS.
  • the latter supports the preliminary step of determining the two primary keys KP1 and KP2, from the original key KB, and the calculation step in which the primary CP1 and CP2 encryptors are implemented using these primary keys KP1. and KP2.
  • the host device is responsible for the rest of the processing.
  • the cryptographic secrets that are the first primary key KPL, the second primary key KP2 and the original encryption key KO are never communicated outside the specific cryptographic device DCS.
  • the host device determines a block called BP disturbed block from the first intermediate block X and a value dependent on a sector number NS assigned to the sector to be processed.
  • the disturbed block BP is transmitted to the specific cryptographic device DCS.
  • the latter applies the first primary encryptor CP1 to generate the secondary key KS which is communicated to the host device. It then applies the second primary encryptor CP2 to the secondary key KS to generate the second intermediate block Y which is also communicated to the host device.
  • the latter using the information communicated to him, then determines the fast keys and implements the fast CR encryption routine.
  • the information flows to or from the specific cryptographic device DCS are illustrated in the figure by triple arrows.
  • the specific cryptographic device DCS is removable and can be detached from the host device. In its absence, it is impossible to perform encryption and / or decryption operations, which ensures total confidentiality of the encrypted information using the method object of the present invention.
  • the specific cryptographic device DCS is presented as a "USB stick" connectable on a USB port, as taught in the patent. French 03/50626 filed September 30, 2003 issued January 20, 2006 and International Application PCT / FR2004 / 050299 June 30, 2004.
  • the invention is implemented either without the use of a mixing key, or by using a KM mixing key that does not depend on the original encryption key KO, which is therefore identical for all the blocks.
  • the KM mix key is used during the intermediate step EI supported by the host device.
  • the primary crypters CP1 and CP2 implement a block cipher algorithm.
  • the algorithm used is the AES algorithm, and is therefore the same for the two primary encryptors. It is then possible to use identical primary keys KP2 and KP2, but this may weaken the cryptographic security of the invention.
  • FIG. 6 is a simplified diagram of the embodiment described in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

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.

Description

FHOCEDE ET SYSTEME DE CHIFFREMENT A HAUT DEBIT FHOCEDE AND HIGH-RATE ENCRYPTION SYSTEM
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 .Securing electronic communications is becoming increasingly important with the development of computer networks. It is no longer only communications between Internet users that must be secured, but more generally digital communications between more and more devices at increasingly higher speeds.
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.For example, audiovisual streams can be used for end-users (digital television, pay-TV, movie download) or in a professional environment (video cameras communicating with each other and / or with a server in a digital mode). ). A particular case is that of audiovisual data (music, video ...) stored on encrypted CDs or DVDs which will be decrypted on the fly, at the time of reading, on a special device provided with specific decryption means.
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 .Other applications include communications between a computer's CPU and various storage media, which may be internal or external disks, or remote systems accessed by network. Let us also mention the automobiles of the future, in which the various organs communicate with each other electronically rather than mechanically.
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.Many encryption algorithms are available and are considered safe in the current state of our knowledge. This is the case of the Advanced Encryption Standard (AES) encryption algorithm as defined in 2000 by the American National Institute of Standards and Technology (NIST). These algorithms obviously require some computing power. It is usually considered that the evolution of technologies results in a doubling of the computing power of the processors every 18 months (Moore's law). It has been found that computer network speeds double every 6 to 12 months. The need for encryption therefore increases much faster than the calculation means, which causes a bottleneck. Let us also mention the need to perform certain encryption and / or decryption operations on limited power equipment (mobile phones, handheld computers, digital PDAs, etc.). Taking security into account then quickly leads to a very significant reduction in the power available for the various applications. It is therefore imperative to implement high-speed encryption solutions offering security comparable to that offered by algorithms such as AES, while reducing their impact on these 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é.An interesting solution is taught in the French patent 03/50626 filed on September 30, 2003, issued January 20, 2006, and in the international application PCT / FR2004 / 050299 of June 30, 2004. The security features, and in particular the encryption / decryption are subcontracted to a small outdoor unit, hereinafter referred to as a "dongle", having its own computing processor and having sufficient power to provide these features without significant impact on the performance of the host device. The dongle is connected to a port (for example a USB port) through which is rerouted the entire flow of data to or from a network or storage means, local or remote. This solution has the added advantage that cryptographic secrets never leave the dongle and are therefore never accessible by a software attack on the host device. However, there is a drawback: performance is no longer limited by the computing power but by the speed of the flow through the port used. Another approach may be the use of a less powerful but faster encryption algorithm. Indeed, in parallel with algorithms similar to AES, safe but demanding in computing power (algorithms hereafter called strong algorithms), there are many algorithms requiring a much lower computational power, but also having a good security. weaker (algorithms hereafter called weak algorithms). One of the fastest is the use of an XOR mask. A sequence of bits, called the mask, is generated with the same length as the information to be encrypted or decrypted. For each bit of information, the corresponding bit of the mask is then considered, and depending on whether the mask is at 1 or 0, the information bit is modified or not. This algorithm provides perfect security when using a key of the same length as the information to be encrypted or decrypted, this key then being taken as a mask. In practice, it is generally impracticable. To build the mask, we can for example concatenate successive copies of the encryption key. The algorithm is then vulnerable, for example to statistical attacks, and this vulnerability increases with the number of copies of the initial key that had to be made to generate the mask, so with the ratio between the number of bits of the information to process and number of bits of the key.
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.One of the ideas on which the present invention is based is to make a strong algorithm, that is to say, but demanding in computing power and algorithm less secure, but much faster. The strong algorithm is a block algorithm (for example the AES) for which the information to be encrypted or decrypted is divided into blocks of fixed length (for example 128 bits in the case of the AES), each block being treated independently of others. In the state of the art, the strong algorithm is executed on each of the blocks. In contrast, in the invention, the blocks themselves are grouped into sectors, a sector comprising several blocks (or several tens or hundreds of blocks depending on the applications). Encryption and / or decryption execute in two stages. For each sector, it is initially calculated, using a strong algorithm, a secondary encryption key dependent including data in this sector and varying from one sector to another. This secondary encryption key is, in a second time, used to encrypt / decrypt all or part of the blocks of the sector using a faster algorithm.
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.If an attacker could decrypt a sector and / or access the secondary encryption key used when encrypting this sector, it would be of no use to him to decipher the other sectors. The encryption system thus achieved is all the stronger as there are few blocks in a sector. The number of blocks per sector can be adapted to the application, in order to achieve the best compromise between speed of calculation and need for cryptographic security. In the encryption of a video stream, one can in some cases consider that it is not too penalizing for an attacker to occasionally access a fraction of a second of film, and the size of a sector will be then the order of magnitude of what is needed for this fraction of a second. In other applications (especially financial transactions), the need for security is much greater and the size of a sector is limited to a few tens of blocks. to significantly reduce the vulnerability of the algorithm.
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.The invention ensures, on the one hand, that the encrypted information does not occupy more bits than the information in the clear, and, on the other hand, that the secondary encryption keys can be easily calculated, both from information in the clear only encrypted information, when we know the keys of the strong algorithm, and that these secondary encryption keys are impossible to find otherwise.
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 :In more detail, the invention relates to a method for encrypting and / or decrypting information in the form of a sequence of bits grouped in blocks, these blocks being themselves grouped into sectors. The method encrypts and / or decrypts a sector hereinafter called the sector to be treated and comprises the following steps:
- 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,a step implementing a compression routine, which takes as argument the sector to be processed and provides as a result a sequence of bits comprising fewer bits than the sector to be processed, this result being hereinafter called the secondary encryption key,
- 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.a processing step of taking into account all or part of the blocks forming the sector to be processed and applying to each of them a fast encryption routine. This performs a calculation taking as argument the block taken into account, hereinafter called block to be processed, and provides as a result a new block hereinafter called result block. The computation performed by the fast encryption routine uses a sequence of bits called a fast key, determined from the secondary encryption key.
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 .The result of the method is a sector hereinafter referred to as the result sector, composed of as many blocks as the sector to be treated, all or part of the blocks of the result sector being determined from the result blocks provided by the routine. fast encryption applied during the processing step.
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.The method implements one or more primary encryptors, each of them using a sequence of bits called primary key, and performing a calculation taking as argument a block and providing as a result a new block.
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.The compression routine comprises an intermediate step of determining a block hereinafter called the first intermediate block, and a calculation step of applying at least one primary encryptor to a block determined from this first intermediate block. The result of this calculation is used to determine the secondary encryption key. The method is further such that it is possible to find this secondary encryption key from the result sector. In a particular embodiment of the invention, the first intermediate block is determined from the result of the application of the "exclusive or bitwise" operator, hereinafter referred to as the XOR operator, between all or some of the blocks. constituting the sector to be treated. Advantageously, the determination of this first intermediate block takes into account a sequence of bits called mixing key. In a particular embodiment, the method uses a sequence of bits called the original encryption key and the mixing key can be determined from the original encryption key, and this during a step called first preliminary step.
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.Advantageously, each of the sectors to be treated composing the information to be encrypted or decrypted is assigned a number called sector number. The calculation step that contributes to determining the secondary encryption key then comprises the following two phases. The first phase, called the disturbance phase, consists in determining a block, hereinafter referred to as a disturbed block, taking into account, on the one hand, the first intermediate block and, on the other hand, a value depending on the sector number. . In a second phase, at least one primary cryptor is then applied to this disturbed block. In a particular embodiment of the invention, the disturbed block determined during the disturbance phase is obtained by applying the XOR operator, between, on the one hand, the first intermediate block and, on the other hand, a value depending on the sector number assigned to the sector to be treated.
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 .Advantageously, the calculation step further comprises an additional phase of determining a block hereinafter called the second intermediate block, taking into account the result of the application of at least one primary encryptor to the secondary encryption key. Advantageously, when each sector to be treated is assigned a sector number, it is also taken into account in the determination of the second intermediate block.
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.Advantageously, the determination of all or part of the fast keys takes into account the first intermediate block and / or the second intermediate block.
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.In a particular embodiment of the invention, the method implements a function F for generating a series of numbers. The first number of this sequence is then generated from the secondary encryption key, and each subsequent number of the sequence is calculated by applying the function F to the number immediately preceding it in the series of numbers. All or part of the numbers of this suite are then taken into account to determine all or part of the quick keys used in the fast encryption routine.
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.Advantageously, the fast keys are such that there is at least one subset of the set of fast keys, this subset can be the whole set, such as if one applied the XOR operator between all the fast keys of this subset, we would find the same result by applying the XOR operator between the first intermediate block and the second intermediate block.
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 .In a particular embodiment of the invention, at least one of the primary encryptors provides result the result that would provide the encryption algorithm AES implemented on the same argument and with a key identical to the primary key used by this primary encryptor.
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.In a particular embodiment of the invention, the fast encryption routine calculates a result block from the result of the operation of applying the XOR operator between one of the fast keys and the block to be treated as an argument. by this 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.Advantageously, the method that is the subject of the present invention uses a series of bits called the original encryption key and comprises a second preliminary step of determining, from this original encryption key, all or part of the primary keys used by the primary encryptors. The invention also relates to an information processing system comprising calculation means and information storage means for implementing the previously described method.
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.In a particular embodiment, this system comprises two parts, respectively called host device and specific cryptographic device. The latter comprises processing means for performing the calculation step. It is also such that the primary keys used by the primary encryptors are never communicated outside this specific cryptographic device. The system includes link means enabling the host device to transmit to the specific cryptographic device information determined from the sector to be processed and link means allowing the specific cryptographic device to transmit the secondary encryption key to the host device. The host device comprises processing means for performing the processing step.
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.Advantageously, the specific cryptographic device has storage means for storing a series of bits called the original encryption key, and of processing means for calculating all or part of the primary keys used by the primary encryptors, taking into account the original encryption key. It is further such that the original encryption key is never communicated outside the specific cryptographic device.
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 .Advantageously, the specific cryptographic device is removable and can be disconnected from the host device. In a particular embodiment, it is connectable by a self-powered port, including a USB port. In another embodiment, it is connectable to it by a wireless connection.
L'invention concerne aussi le dispositif cryptographique précédemment décrit.The invention also relates to the cryptographic device described above.
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.The invention also relates to any means of storing data in digital form, all or part of the data stored in this storage means having been encrypted using the method object of the present invention. The invention relates in particular to such storage means when all or part of the data is audiovisual data. It also relates in particular to such a storage means when it is intended to be read by optical reading.
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 .The invention also relates to any means for transmitting data in digital form, all or part of the data transmitted in this data transmission means having been encrypted using the method of the present invention, especially when all or part of the data. transmitted are data of an audiovisual nature.
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.Several exemplary embodiments of the present invention are described below, in particular with reference to FIGS. 1 to 6. They differ in particular in the mode of calculation of the secondary encryption key from the sector to be treated and / or the result sector. All these examples are given here by way of illustration and not limitation.
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.FIG. 1 represents an embodiment of the present invention, in which the secondary encryption key KS can be recalculated from one of the blocks in the result area. In this embodiment, the invention implements two primary crypters CP1 and CP2, and preliminary steps make it possible to build, on the basis of an original encryption key KO, on the one hand, a KM mixing key and, on the other hand, two primary keys KP1 and KP2 respectively used by the two primary CP1 and CP2 crypters.
Le secteur à traiter S (dans le cas présent, l'information en clair, qu'on se propose de chiffrer) se compose de n blocs M0, Mi, ..., Mn_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, ..., Cn-I contenant l'information chiffrée.The sector to be processed S (in this case, the information in the clear, which one proposes to encrypt) consists of n blocks M 0 , Mi, ..., M n _i and is assigned a number called NS area number. The final result of the calculation is a sector T, called sector result, composed of n blocks Co, Ci, ..., C n - I containing the encrypted information.
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 M0, Mi, ..., Mn_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.The details of the operations to be performed is then the following. An intermediate step E1 determines, from, on the one hand, n blocks M 0 , Mi, ..., M n _i composing the sector S to be processed, and, on the other hand, the sector number NS and the KM mixing key, a first intermediate block 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 M0, Mi,..., Mn_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.In a particular implementation of the present embodiment of the invention, this intermediate step EI calculates a block from the sector number NS and the mixing key KM and then performs an operation XOR (or exclusive bitwise) between this block and the n blocks M 0 , Mi, ..., M n _i composing the sector to be treated. The first intermediate block X is then the result of this XOR operation. It will be said in this particular implementation that the intermediate step EI is of 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.In the present embodiment, a calculation step initially determines, starting from the first intermediate block X, a new block denoted Co, hereinafter referred to as discriminating block. In the embodiment shown in FIG. 1, the discriminant block Co is the first block of the final result, that is to say of the sector T. The determination of the discriminant block Co is done by applying to the intermediate block X the first encryptor CPl primary, using the first key Primary KPl. Once this block Co determined, the calculation step applies to it the second primary cryptor CP2, using the second primary key 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.The secondary encryption key KS is then equal to the result of this calculation. It is therefore possible to find it from the result sector T, because the discriminant block which makes it possible to calculate it is one of the blocks of this sector result T.
Une étape de traitement permet ensuite de chiffrer les n-1 blocs Mi, M2, ..., Mn_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, k2, ... , kn_i , sont calculées à partir de la clé secondaire de chiffrement KS. Dans le mode de réalisation représenté dans la figureA processing step then makes it possible to encrypt the n-1 blocks Mi, M 2 ,..., M n -1, that is to say all the blocks constituting the sector to be treated S, excluding the first. This encryption is done using a fast cryptographic routine CR. To do this, n-1 sequences of bits, called fast keys, and noted respectively ki, k 2 , ..., k n _i, are calculated from the secondary encryption key KS. In the embodiment shown in the 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 K0, Ki, K2 ..., Kn_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, K2 ..., Kn_i , génèrent ensuite n-1 clés rapides ki, k2, ... kn_i . Chacun des n-1 blocs Mi, M2, ..., Mn-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.1, the calculation of the quick keys is done in two stages. On the one hand we generate a sequence of n numbers K 0 , K 1 , K 2 ..., K n _i, the first of these numbers being equal to the secondary key KS, each of the following being calculated by applying a function F to number that precedes it in the sequel. The n-1 numbers Ki, K 2 ..., K n _i, then generate n-1 fast keys ki, k 2 , ... k n _i. Each of the n-1 blocks Mi, M 2 ,..., M n -i is then encrypted by the fast encryption routine CR using one of these fast keys, the result block resulting from this encryption giving the corresponding block in the sector result 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 .A particular implementation consists in using as function F the function "Identity" providing a result equal to its argument. The fast keys are then all equal to each other and equal to the secondary key KS encryption, which allows faster computing, but at the expense of cryptographic security.
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.In a particular case of the present embodiment of the invention, the fast cryptographic routine CR is a simple XOR mask and the result block is obtained by applying the XOR operator between the block to be processed and the fast key. In certain variants of the present embodiment of the invention, the discriminant block may be any of the blocks of the result sector T, the position of this block may vary from one sector to another. In one of these variants, the position of the discriminator block in the result sector T is related to the sector number NS. In other variants, the discriminant block is taken into account in the calculation of the final result, that is to say the result sector T, so that it can be easily found from this sector result T, in particular by applying an XOR operator to all or some of the blocks forming the sector result 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, ... , Cn-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.FIG. 2 represents another embodiment of the invention, the purpose of which is to perform the operation opposite to that represented in FIG. 1. In this embodiment, the sector to be treated is a sector to be deciphered T, composed of n blocks Co, Ci, ..., C n - I , the objective here being to find as sector result sector S which had been encrypted as shown in Figure 1, the sector number NS is the same. The same preliminary steps as in the example illustrated in FIG. 1 make it possible to build, from an original encryption key KO, on the one hand, a KM mixing key and, on the other hand, KPL primary keys. and 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.In the present embodiment illustrated in FIG. 2, the first intermediate block is the block Co, the first block of the sector to be deciphered. In certain variant embodiments, the intermediate block is any one of the blocks of the sector to be deciphered or is determined from all or part of the sector to be decrypted, in particular by applying an XOR operator to all or part of the blocks forming the sector. 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, k2, ... kn_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, C2, ..., Cn-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, M2, ..., Mn-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.Once the first intermediate block has been determined, the second primary encryptor CP2 is directly applied to it, using the second primary key KP2, which generates the secondary encryption key KS. The fast keys ki, k 2 , ... k n _i are then calculated from the secondary encryption key KS in the same way as in the embodiment shown in FIG. 1, and each of the n-1 blocks to to treat Ci, C 2 ,..., C n -I is then decrypted by routine CR '1 , which is a reciprocal of the fast encryption routine CR, and with the aid of the corresponding fast key, the result of this decryption giving the corresponding block in the sector result S. Thus the n-1 blocks Mi, M 2 ,..., M n -i of this sector are reconstituted. In the particular case in which the fast cryptographic routine CR is a simple XOR mask, the reciprocal routine CR '1 is identical to the fast cryptographic routine 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, M2, ..., Mn_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, M2,..., Mn_i déjà calculés et un bloc calculé à partir du numéro de secteur NS et de la clé de mixage KM.The present embodiment illustrated in FIG. 2 comprises a complementary phase, during which a second intermediate block X is calculated by applying to the block Co the reciprocal algorithm of the first primary encryptor CP1 with the first primary key KP1. The block MQ is finally determined from the blocks Mi, M 2 ,..., M n-1 , the sector number NS, the mixing key KM, and the second intermediate block X. This calculation is the operation EI "1 , symmetrical of the intermediate step EI put into play during the encryption In the particular case where this intermediate step EI is of type XOR, the block MQ is reconstituted by an operation XOR between the second intermediate block X, the n -1 result blocks Mi, M 2 , ..., M n _i already calculated and a block calculated from the sector number NS and the mixing key 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.Figure 3 shows another embodiment of the invention. The same preliminary steps as in the preceding examples make it possible to build, from an original encryption key KO, on the one hand, a KM mixing key and, on the other hand, the two primary keys KP1 and KP2 respectively used. by the two primary crypters CP1 and 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 M0, Mi, ..., Mn_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, ..., Cn-I contenant l'information chiffrée.The sector to be treated S (in this case, the information in the clear, which one proposes to encrypt) consists of n blocks M 0 , Mi, ..., M n _i and is assigned a number called NS area number. The final result of the calculation will be a sector T composed of n blocks Co, Ci, ..., C n - I containing the encrypted information.
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 M0, Mi, ..., Mn_i composant le secteur S à traiter et de la clé de mixage KM.The details of the operations to be performed is then the following. An intermediate step EI determines a first intermediate block X from the n blocks M 0 , Mi, ..., M n _i composing the sector S to be processed and the mixing key 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.The secondary encryption key KS is obtained in two phases. During a first phase, called disturbance phase, an XOR operator is applied between the first intermediate block X and a value dependent on the sector number NS, providing as a result a block hereinafter called BP disturbed block. The second phase calculates the secondary encryption key KS by applying the first primary encryptor CP1 to the disturbed block BP. During a complementary phase, the second primary encryptor CP2 is then applied to the encrypted secondary key KS thus calculated, and an operator XOR is then applied between the result of the preceding operation and a value dependent on the sector number NS. which gives as a result a second intermediate block 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.The secondary encryption key KS is used to generate the fast keys k ± by a method similar to that used in the example shown in FIG. 1. In order not to burden FIG. 3, the details are not shown. These fast keys ki will be used by a fast cryptographic routine CR which encrypts all the blocks of the sector to be treated S to supply the corresponding blocks of the sector result 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 .A particular variant of implementation of the embodiment of the invention illustrated in FIG. 3 makes use of the properties of the XOR operator. In this particular variant, the fast CR encryption routine simply consists in the application of an XOR operator between the block to be processed Mi and the corresponding fast key ki. The two intermediate blocks X and Y are taken into account in the generation of fast keys ki. More specifically, these are built of such that, by applying the XOR operator between all the fast keys k ±, one would obtain the same result as by applying the XOR operator between the two intermediate blocks X and Y. A particular mode of construction of fast keys ki verifying these properties are given here as an illustrative and nonlimiting example of the possibilities of carrying out this particular variant. This particular mode of construction is realized in three stages. A first step consists in calculating intermediate fast keys, for example in a manner similar to that of the example illustrated in FIG. 1. A second step consists in applying the XOR operator between, on the one hand, all the keys intermediates and the intermediate blocks X and Y. A third step is to build one of the fast keys by applying the XOR operator between the corresponding intermediate fast key and the result of step 2, the other quick keys being equal to the corresponding intermediate keys.
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.In a particular embodiment of this particular mode of construction, that of the intermediate fast keys to which the XOR operator is thus applied is variable from one sector to another and is chosen taking into account the sector number NS of the sector to be treated.
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 M0, Mi, ..., Mn_i composant le secteur à traiter S.In a simple version of this particular variant, the KM mixing key is not taken into account and the first intermediate block X is obtained by applying the XOR operator between the n blocks M 0 , Mi, ..., M n _i composing the sector to be treated S.
On peut alors montrer qu'en appliquant l'opérateur XOR entre les n blocs Co, Ci, ..., Cn-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.It can then be shown that by applying the XOR operator between the n blocks Co, Ci, ..., C n - I component result T sector, there is the second intermediate block Y. The calculation thereof from the sector result T is possible and can be done similarly to the calculation of the first intermediate block X from the sector to be treated S. In a more sophisticated version of this particular variant, the block X is calculated by first permuting the bits of all or part of the n blocks composing the sector to be treated S, before applying to them the operator XOR, the permutation to be performed. being determined from the KM mixing key. In a particular implementation of this more sophisticated version, the permutation to be performed is variable from one block to another.
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.This prior permutation is particularly interesting in the case of ASCII files, for which some bytes are more frequent than others, because it will have the consequence that the bytes of the first intermediate block are statistically well distributed. At the end of the process, the inverse permutation is applied to the blocks resulting from the application of the XOR operator between the fast keys ki and the blocks of the sector to be treated 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.In this more sophisticated version, the calculation of the second intermediate block Y from the result sector T is possible and can be done similarly to the calculation of the first intermediate block X from the sector to be processed 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,..., Cn-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.FIG. 4 represents another embodiment of the invention, the purpose of which is to carry out the reverse operation of that carried out in the particular variant of the embodiment illustrated in FIG. 3. The sector to be treated is here a sector to decipher T , composed of n blocks Co, Ci, ..., C n - I , the objective being to find as final result the sector S which had been encrypted by this particular variant, the sector number being the same.
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.The details of the operations to be performed is then the following. An intermediate step EI determines a block Y which acts here as the first intermediate block, this block Y being determined from the n blocks composing the sector T to be processed and the mixing key 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.The secondary encryption key KS is obtained in two phases, similar to the embodiment illustrated in FIG. FIG. 3. During a first disturbance phase, an XOR operator is applied between the first intermediate block Y and a value dependent on the sector number NS, providing as a result a block hereinafter called the disturbed block BP. The second phase calculates the secondary encryption key KS by applying to the disturbed block BP the second primary encryptor in decryption mode (denoted here CP2 "1 ) .The first primary encryptor is then applied in decryption mode (noted here CPl '1 ) to the secondary encryption key KS, then an XOR operator is applied between the result of the previous operation and a value dependent on the sector number NS, which results in a block X which plays the role of second intermediate block.
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 .The secondary encryption key KS is then the same as that which was used during the encryption. Quick keys are built identically and are identical to those used for encryption. The fast CR encryption routine here consisting of a simple XOR operator application with a fast key, this fast CR encryption routine is its own reciprocal. The decryption operation here is therefore similar to the encryption operation, provided that the two primary encryptors are replaced by their reciprocal function, that is to say by making them operate in decryption mode, and to swap them. that is, to apply the second before the first. In all the embodiments described above, the mixing key KM is determined from the original encryption key KO. It is also possible to make variants in which the KM mixing key is public and fixed once and for all. As described with respect to the more sophisticated version of the particular variant of the embodiment illustrated in FIG. 3, its interest is mainly of a statistical nature, to ensure a statistical equidistribution of the values taken by the intermediate blocks.
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.FIG. 5 illustrates an exemplary implementation in which the invention is implemented on a system comprising a host device and a specific cryptographic device DCS. The latter supports the preliminary step of determining the two primary keys KP1 and KP2, from the original key KB, and the calculation step in which the primary CP1 and CP2 encryptors are implemented using these primary keys KP1. and KP2. The host device is responsible for the rest of the processing. The cryptographic secrets that are the first primary key KPL, the second primary key KP2 and the original encryption key KO are never communicated outside the specific cryptographic device 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.In this particular example of implementation, the host device determines a block called BP disturbed block from the first intermediate block X and a value dependent on a sector number NS assigned to the sector to be processed. The disturbed block BP is transmitted to the specific cryptographic device DCS. The latter applies the first primary encryptor CP1 to generate the secondary key KS which is communicated to the host device. It then applies the second primary encryptor CP2 to the secondary key KS to generate the second intermediate block Y which is also communicated to the host device. The latter, using the information communicated to him, then determines the fast keys and implements the fast CR encryption routine.
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.The information flows to or from the specific cryptographic device DCS are illustrated in the figure by triple arrows.
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.The specific cryptographic device DCS is removable and can be detached from the host device. In its absence, it is impossible to perform encryption and / or decryption operations, which ensures total confidentiality of the encrypted information using the method object of the present invention. In a particular implementation of this exemplary implementation, the specific cryptographic device DCS is presented as a "USB stick" connectable on a USB port, as taught in the patent. French 03/50626 filed September 30, 2003 issued January 20, 2006 and International Application PCT / FR2004 / 050299 June 30, 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.In the present example of implementation, the invention is implemented either without the use of a mixing key, or by using a KM mixing key that does not depend on the original encryption key KO, which is therefore identical for all the blocks. In the second case, the KM mix key is used during the intermediate step EI supported by the host device. In all the embodiments described above, the primary crypters CP1 and CP2 implement a block cipher algorithm. In particular cases of implementation of these embodiments, the algorithm used is the AES algorithm, and is therefore the same for the two primary encryptors. It is then possible to use identical primary keys KP2 and KP2, but this may weaken the cryptographic security of the invention.
La figure 6 est un schéma simplifié du mode de réalisation décrit sur la figure 3. FIG. 6 is a simplified diagram of the embodiment described in FIG.

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 :1. A method for encrypting and / or decrypting information in the form of a series of bits grouped into blocks of bits, hereinafter called blocks, said blocks themselves being grouped into sectors; said method encrypting or decrypting a sector hereinafter called the sector to be treated (S; T) and comprising the following steps:
- 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 ; M1) ; 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 comprenanta step implementing a compression routine, said compression routine taking as argument said sector to be processed (S; T), and providing as a result a series of bits comprising fewer bits than said sector to be processed (S; T); ), the result of said compression routine thus implemented being hereinafter called secondary encryption key (KS); a processing step of taking into account all or part of the blocks (Mi; Ci) constituting said sector to be treated (S; T) and applying to each of the blocks (Mi; Ci) thus taken into account a fast routine of encryption (CR), said fast encryption routine (CR) performing a calculation taking as argument the block (Mi; Ci) thus taken into account, hereinafter referred to as a block to be processed, and providing as a result a new block hereinafter called result block (Ci; M 1 ); the calculation performed by said fast encryption routine (CR) using a sequence of bits called a fast key (ki), the determination of said fast keys (ki) taking into account said secondary encryption key (KS); the result of said method being a sector hereinafter called result sector (T; S), and composed of as many blocks as said sector to be treated (S; T), all or part of the blocks of said result sector (T; S) being determined from said result blocks provided by said fast encryption routine (CR) applied during said processing step; said method implementing at least one primary encryptor (CP1; CP2), using a sequence of bits called a key primary (KP1; KP2), and performing a calculation taking as argument a block and providing as a result a new block; said compression routine comprising
- une étape intermédiaire (EI) consistant à déterminer un bloc ci-après appelé premier bloc intermédiairean intermediate step (EI) of determining a block hereinafter called the first intermediate block
(X ; Y),(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) .a calculation step of applying at least one primary encryptor (CP1; CP2) to a block determined from said first intermediate block (X; Y); said secondary encryption key (KS) resulting from said compression routine then being determined by taking into account the result of said calculating step; said method being further such that it is possible to retrieve said secondary encryption key (KS) from said result sector (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) .2. Method according to claim 1, said intermediate step of said compression routine being such that the determination of said first intermediate block (X; Y) takes into account the result of the application of the operator "or bitwise exclusive" between all or part of the blocks constituting said sector to be treated (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) .3. Method according to claim 1 or 2, said intermediate step of said compression routine being such that the determination of said first intermediate block (X; Y) takes into account a sequence of bits called mixing key (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) .4. The method of claim 3, said method using a sequence of bits called original encryption key (KO); said method further comprising a first prior step of determining said mixing key (KM) by taking into account said original encryption key (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 à traiter5. Method according to any one of claims 1 to 4, each of said sectors to be treated (S; T) comprising said information to be encrypted or decrypted being assigned a number called sector number (NS); said computation step comprising the following two phases: a first phase called a disturbance phase, said perturbation phase consisting of determining a block hereinafter called a disturbed block (BP), the determination of said disturbed block (BP) taking into account, on the one hand, said first intermediate block (X; Y) and, on the other hand, a value dependent on said sector number (NS) assigned to said sector to be processed
(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.(S; T) - a second phase of applying at least one primary cryptor (CP1; CP2) to said disturbed block determined during said disturbance phase.
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) . 6. The method of claim 5, said disturbance phase being such that said disturbed block determined by said disturbance phase is equal to the block obtained by applying the operator "or bitwise exclusive" between, on the one hand, said first intermediate block (X; Y) and, secondly, a value dependent on said sector number (NS) assigned to said sector to be treated (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) .7. Method according to any one of claims 1 to 6, said calculating step further comprising a complementary phase of determining a block hereinafter called second intermediate block (Y; X), determining said second intermediate block (Y X) taking into account the result of the application of at least one primary encryptor (CP2; CPl) to said secondary encryption key (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) . 8. The method of claim 7, each of said sectors to be treated (S; T) comprising said information to be encrypted or decrypted being assigned a number called sector number (NS); said complementary phase of said calculating step being such that the determination of said second intermediate block (Y; X) further takes into account a value dependent on said sector number (NS) assigned to said sector to be processed (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édiaire9. Method according to any one of claims 1 to 8, the determination of all or part of said fast keys (ki) further taking into account said first intermediate block
(X ;Y) •(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 ;10. The method of claim 7 or 8, the determination of all or part of said fast keys (ki) further taking into account said second intermediate block (Y;
X).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 K0, Ki, K2, ...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 ; M1) prenant alors en compte tout ou partie des nombres (K1) de ladite suite de nombres .11. Method according to any one of claims 1 to 10, said method implementing a function F for generating a series of numbers K 0 , K i, K 2 ,... K i, ... the first number of said a sequence of numbers being generated from said secondary encryption key (KS), each of the following numbers of said series of numbers being calculated by applying said function F to the number immediately preceding it in said series of numbers, the determination of all or part of said fast keys (ki) used in said fast encryption routine (CR) for providing said result blocks (Ci; M 1 ) then taking into account all or part of the numbers (K 1 ) of said series of numbers.
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) .12. Method according to any one of claims 7, 8 or 10, the set of said fast keys (ki), used during the encryption or decryption of said sector to be treated (S; T), being such that it exists at minus a subset, or the entire set, such as applying the "or exclusive bit-to-bit" operator between all the fast keys (ki) contained in this subset, or in the whole set, the result of this calculation would be identical to the result that one would obtain by applying the operator "or exclusive bit-to-bit" between said first intermediate block (X; Y) and said second intermediate block (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) . The method according to any one of claims 1 to 12, at least one of said primary encryptors (CP1; CP2) providing as a result the result that would give the AES encryption algorithm if said algorithm of AES encryption was implemented on an argument identical to the argument taken by said primary encryptor and with a key identical to said primary key (KP1; KP2) used by said primary encryptor (CP1; 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 ; M1) 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 (M1 ; C1) .14. Method according to any one of claims 1 to 15, the computation performed by said fast encryption routine (CR), when it takes as argument said block to be processed (Mi; Ci) and uses said fast key (ki). , being such that said result block (Ci; M 1 ) is determined from the result of the operation of applying the operator "or exclusive bitwise" between said fast key (ki) and said block to be treated (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 primairesA method according to any one of claims 1 to 14, said method using a sequence of bits called the original encryption key (KO) and comprising a second preliminary step of determining all or part of said primary keys (KP1; KP2), used by said primary encryptors
(CPl ; CP2) , à partir de ladite clé de chiffrement originelle(CPl; CP2), from said original encryption key
(KO) ;(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.16. An information processing system comprising calculation means and information storage means for implementing the encryption and / or decryption method according to any one of claims 1 to 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.17. System according to claim 16, said system comprising two parts; one of the parts of said system being hereinafter called specific cryptographic device (DCS) and comprising processing means for performing said calculation step; another of the parts of said system being hereinafter referred to as the host device; said specific cryptographic device (DCS) being such that said primary keys (KP1; KP2), used by said primary encryptors (CP1; CP2) during said calculation step, are never communicated outside said specific cryptographic device (DCS); said system comprising link means enabling said host device to transmit to said specific cryptographic device (DCS) information determined from said sector to be processed (S; T); said system comprising link means enabling said specific cryptographic device (DCS) to transmit to said host device said secondary encryption key (KS); said host device comprising processing means for performing said processing step.
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) .18. The system of claim 17, said specific cryptographic device (DCS) having storage means for storing a sequence of bits called original encryption key (KO) and comprising processing means for determining all or part of said primary keys. (KP1, KP2), used by said primary (CP1; CP2) encryptors, taking into account said original encryption key (KO); said specific cryptographic device (DCS) being such that said original encryption key (KO) is never communicated outside said specific cryptographic device (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.19. The system of claim 17 or 18, said specific cryptographic device (DCS) being removable and disconnectable from said host device.
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. 20. The system of claim 19, said specific cryptographic device (DCS) being connectable to said host device by a self-powered port, including a USB port.
21. Système selon la revendication 19, ledit dispositif cryptographique (DCS) spécifique étant connectable audit dispositif hôte par une connexion sans fil.21. The system of claim 19, said specific cryptographic device (DCS) being connectable to said host device by a wireless connection.
22. Dispositif cryptographique spécifique (DCS) destiné à un système selon l'une quelconque des revendications 17 à 21. 22. Specific cryptographic device (DCS) for a system according to any one of claims 17 to 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. 23. Digital data storage means, all or part of said data stored in said storage means having been encrypted using the method according to any one of claims 1 to 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.24. Storage means according to claim 23, all or part of said data stored in said storage means being audiovisual data.
25. Moyen de stockage selon la revendication 23 ou 24, ledit moyen de stockage étant destiné à être lu par lecture optique .25. Storage means according to claim 23 or 24, said storage means being intended to be read by optical reading.
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. 26. Digital data transmission means, all or part of said data transmitted in said data transmission means having been encrypted using the method according to any one of claims 1 to 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 . 27. A data transmission means according to claim 26, all or part of said data transmitted in said transmission means being data of an audiovisual nature.
PCT/FR2006/050787 2005-08-04 2006-08-03 Method and system for high-speed encryption WO2007015034A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP06794528A EP1911190A2 (en) 2005-08-04 2006-08-03 Method and system for high-speed encryption

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0552436 2005-08-04
FR0552436A FR2889637B1 (en) 2005-08-04 2005-08-04 METHOD AND SYSTEM FOR HIGH-RATE ENCRYPTION

Publications (2)

Publication Number Publication Date
WO2007015034A2 true WO2007015034A2 (en) 2007-02-08
WO2007015034A3 WO2007015034A3 (en) 2007-09-13

Family

ID=36360849

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2006/050787 WO2007015034A2 (en) 2005-08-04 2006-08-03 Method and system for high-speed encryption

Country Status (3)

Country Link
EP (1) EP1911190A2 (en)
FR (1) FR2889637B1 (en)
WO (1) WO2007015034A2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001041357A1 (en) * 1999-12-03 2001-06-07 Cipheractive Communication Security Ltd. Encryption of partitioned data blocks utilizing public key methods and random numbers
US6504931B1 (en) * 1996-02-28 2003-01-07 Hitachi, Ltd. Method and apparatus for encrypting data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504931B1 (en) * 1996-02-28 2003-01-07 Hitachi, Ltd. Method and apparatus for encrypting data
WO2001041357A1 (en) * 1999-12-03 2001-06-07 Cipheractive Communication Security Ltd. Encryption of partitioned data blocks utilizing public key methods and random numbers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MENEZES, VANSTONE, OORSCHOT: "Handbook of Applied Cryptography" 1997, CRC PRESS LLC , USA , XP002383085 page 21 page 192 page 223 *

Also Published As

Publication number Publication date
FR2889637A1 (en) 2007-02-09
WO2007015034A3 (en) 2007-09-13
EP1911190A2 (en) 2008-04-16
FR2889637B1 (en) 2007-10-19

Similar Documents

Publication Publication Date Title
EP2892176A2 (en) Method for converting a conditional access content and receiver for the implementation for said method
EP3139365B1 (en) Verification of the resistance of an electronic circuit to covert channel attacks
EP3139363B1 (en) Protection of a rijndael algorithm
WO2017102644A1 (en) Method for securing a recording of multimedia content in a storage medium
EP2457344B1 (en) Method for converting a first digit into a second digit
EP3545641B1 (en) Searchable encryption method
EP1524795B1 (en) Data encryption in an electronic apparatus with several symmetrical processors
WO2012069747A1 (en) Method and system for conditional access to a digital content, associated terminal and subscriber device
FR2963713A1 (en) METHOD FOR ENCRYPTING A DATA STREAM
EP1419640B1 (en) Local digital network, methods for installing new devices and data broadcast and reception methods in such a network
WO2020070455A1 (en) Low latency calculation transcryption method applied to homomorphic encryption
FR2922393A1 (en) TRACABLE SYSTEM FOR THE ENCRYPTION / ENCRYPTION OF DIFFUSED DIGITAL DATA
WO2007015034A2 (en) Method and system for high-speed encryption
EP2153575B1 (en) Obtaining derived values depending on a secret master value
EP2652899B1 (en) Method and system for conditional access to a digital content, associated terminal and subscriber device
WO2019197780A1 (en) Methods, devices and computer programs for the encipherment and decipherment of data for the transmission or storage of data
EP2294750B1 (en) Traceable method and system for broadcasting digital data
EP2204007A2 (en) Generator and method of generating a secret-key pseudo-random function
De et al. REVIEW OF CLOUD COMPUTING CRYPTOGRAPHY

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006794528

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2006794528

Country of ref document: EP