1. Field of the Invention
The present invention generally relates to an encryption/decryption scheme as it is applicable for example for a protection of memory contents against an unauthorized readout.
2. Description of Related Art
In a data storage which is secured against unauthorized spying-out, the data to be stored is not stored in clear text, i.e. unencrypted, but in an encrypted form, as a so-called cipher or a so-called cipher text. If the data is to be read at a later point in time, therefore obviously they have to be decrypted again before they may be processed. Examples for applications in which this effort for storing is worthwhile are manifold and for example include chip cards, smart cards or magnetic cards, on which for example information to be protected, like amounts of money, keys, account numbers etc. are to be protected from an unauthorized access.
The disadvantage of the encryption/decryption device 900 of
Although there may be applications in which this approach is not a problem, as the number of pieces is low, so that the increased chip space requirement for the provision of the encryption unit on the one and the decryption unit on the other hand, which never operate simultaneously, is reasonable, it would be desired with mass-produced articles, like e.g. chip cards, smart cards etc., to have a more effective form of an encryption/decryption scheme which uses the available hardware better, so that the increased chip space requirement would be justified by another advantage.
The present invention provides an encryption/decryption scheme according to which it is possible to perform an encryption and decryption with substantially the same implementation expense but with less time expense.
In accordance with a first aspect, the present invention provides a device for encrypting data to be encrypted into encrypted data and for decrypting data to be decrypted into decrypted data, having an encryption unit comprising an encryption input and an encryption output for mapping data applied to the encryption input to an encryption result at the encryption output according to an encryption mapping; a decryption unit comprising a decryption input and a decryption output for mapping data applied to the decryption input to a decryption result at the decryption output according to a decryption mapping which is inverse to the encryption mapping; and a controller for applying a first part of the data to be encrypted to the encryption input and a second part which is different from the first part of the data to be encrypted to the decryption input in order to obtain the encrypted data, in the case that the device is to perform an encryption, and for applying a part of the data to be decrypted to the decryption input and a second part which is different from the first part of the data to be decrypted to the encryption input in order to obtain the decrypted data, in the case that the device is to perform a decryption.
In accordance with a second aspect, the present invention provides a device for encrypting data to be encrypted into encrypted data, having an encryption unit comprising an encryption input and an encryption output for mapping data applied to the encryption input to an encryption result at the encryption output according to an encryption mapping; a decryption unit comprising a decryption input and a decryption output for mapping data applied to the decryption input to a decryption result at the decryption output according to a decryption mapping which is inverse to the encryption mapping; and a controller for applying a first part of the data to be encrypted to the encryption input and a second part which is different from the first part of the data to be encrypted to the decryption input in order to obtain the encrypted data.
In accordance with a third aspect, the present invention provides a device for decrypting data to be decrypted into decrypted data, having an encryption unit comprising an encryption input and an encryption output for mapping data applied to the encryption input to an encryption result at the encryption output according to an encryption mapping; a decryption unit comprising a decryption input and a decryption output for mapping data applied to the decryption input to a decryption result at the decryption output according to a decryption mapping which is inverse to the encryption mapping; and a controller for applying a first part of the data to be decrypted to the decryption input and a second part which is different from the first part of the data to be decrypted to the encryption input in order to obtain the decrypted data.
In accordance with a fourth aspect, the present invention provides a method for encrypting data to be encrypted into encrypted data on the basis of an encryption unit comprising an encryption input and an encryption output for mapping data applied to the encryption input to an encryption result at the encryption output according to an encryption mapping, and a decryption unit comprising a decryption input and a decryption output for mapping data applied to the decryption input to a decryption result at the decryption output according to a decryption mapping which is inverse to the encryption mapping, with the step of applying a first part of the data to be encrypted to the encryption input and a second part which is different from the first one of the data to be encrypted to the decryption input in order to obtain the encrypted data.
In accordance with a fifth aspect, the present invention provides a method for decrypting data to be decrypted into decrypted data on the basis of an encryption unit comprising an encryption input and an encryption output for mapping data applied to the encryption input to an encryption result at the encryption output according to an encryption mapping, and a decryption unit comprising a decryption input and a decryption output for mapping data applied to the decryption input to a decryption result at the decryption output according to a decryption mapping which is inverse to the encryption mapping, with the step of applying a first part of the data to be decrypted to the decryption input and a second part which is different from the first part of the data to be decrypted to the encryption input in order to obtain the decrypted data.
In accordance with a sixth aspect, the present invention provides a computer program having a program code for performing one of the above mentioned methods, when the computer program runs on a computer.
It is the finding of the present invention, that it is basically not disadvantageous for the security of an encryption, if for the encryption a predetermined encryption algorithm or a decryption algorithm which is inverse to the same is used. Both, the application of an encryption algorithm and also the application of a decryption algorithm which is inverse to the same to one datum leads to the same result, i.e. that the encryption or decryption result, respectively, i.e. the cipher text, only allows a potential attacker to draw conclusions to the original datum at a very high expense.
Considering this, it was now another finding of the present invention that this same applicability, both of the encryption and also of the decryption algorithm inverse to the same, as an encryption definition allows to use encryption unit and decryption unit of an encryption/decryption device both, and even simultaneously, i.e. overlapping in time, in an encryption process, if a part of the data to be encrypted is supplied to the encryption unit while the other part is supplied to the decryption unit. The result is encrypted data or is a cipher text, respectively, whose parts were merely “encrypted” in different ways. In the decryption, like e.g. when loading encrypted data from a memory, it only has to be guaranteed by suitable regulations that those parts which were encrypted by the encryption unit are again decrypted by the decryption unit, while the other parts which were “encrypted” by the decryption unit are “decrypted” by the encryption unit. In this regard, the encryption unit may also be regarded neutrally as a first mapping means with a first mapping and the decryption unit may be regarded as a second mapping means with an associated mapping which is inverse to the first mapping.
As now the encryption unit and the decryption unit or the encryption algorithm and the decryption algorithm, respectively, may be used temporally overlapping next to each other both in encryption and also in decryption and not only individually as in the past, the data throughput rate both in encryption and also in decryption may be doubled. In this approach, the security of the data is surprisingly not decreased by the inventive encryption/decryption scheme. In particular in memory ciphering or deciphering, respectively, or memory encryption and decryption, respectively, a doubled data throughput rate forms an enormous performance increase.
In the following, preferred embodiments of the present invention are explained in more detail with reference to the accompanying drawings, in which:
a shows a schematical view for illustrating the temporally overlapping operation of the encryption and decryption unit of the encryption/decryption device of
b shows a schematical view for illustrating the temporal processing in the encryption according to the encryption/decryption device of
The following embodiments described with reference to the figures assume that the encryption scheme is based on a block cipher scheme, i.e. a scheme in which data to be encrypted are encrypted block by block, i.e. are organized in data blocks and the same are mapped block by block, according to a certain encryption transformation or encryption mapping, respectively, to encrypted data blocks. These block cipher schemes are also referred to as substitution ciphers. The present invention is, however, not limited to such block cipher schemes and neither to symmetrical key encryptions, in which encryption and decryption keys of the encryption and decryption part are equal. It is only of importance that the decryption mapping of the decryption part is inverse to the encryption mapping of the encryption part. For example, the vector {right arrow over (x)} is the data block to be encrypted. {right arrow over (x)} may take any value, wherein {right arrow over (x)} ε X. E is the encryption mapping. E maps any {right arrow over (x)} ε X to encrypted data blocks {right arrow over (y)} ε Y and is preferably an extremely non-linear mapping. The data blocks {right arrow over (x)} may be n bit data blocks which are mapped by E to m bit data blocks {right arrow over (y)}, wherein m, n ε |N, wherein m may be larger n or m=n. n>m is also possible if only 2m of the 2n possible n bit data blocks are allowed. The decryption mapping D, defined on the image amount E({right arrow over (x)})εY and mapping to X, is then the mapping of Y to X for which the following holds true: D(E({right arrow over (x)}))={right arrow over (x)} for all {right arrow over (x)} ε X. Simultaneously, the following holds true: E(D(E({right arrow over (x)})))=E({right arrow over (x)}) for all {right arrow over (x)} ε X. It is to be noted, that it is not necessary that X and Y be the same spaces, or that E be a bijective mapping. In other words, it only has to be given that the decryption mapping again maps an encrypted datum which was obtained by the encrypting mapping from an original datum, to the original datum again, namely for all admitted original data from X. Of course, preferably E should be different from D, i.e. E should not be self-inverting.
Before the present invention is explained in more detail with reference to the drawings by use of embodiments, it is noted that in the figures identical or similar elements are designated by identical or similar reference numerals, and that a repeated description of those elements is omitted in the following.
As above the setup of the encryption/decryption device 10 was described with regard to the part relevant for the encryption, in the following its functioning in the encryption of the data blocks B1 . . . BN to be encrypted is described. The data blocks B1 . . . BN are serially supplied to the data input 16 as a clear text data stream, i.e. first B1, then B2, etc. The switch 20 is controlled to alternatingly supply arriving data blocks to the encryption or the decryption unit 12 or 14, respectively. Which of the data blocks is supplied to which of the two units 12 or 14 is determined by a suitable regulation and for example depends on the application environment in which the encryption/decryption device 10 is used. If the encryption/decryption device 10 is for example used for an encrypted storage, it may for example be the case that the data blocks B1 . . . BN are always a fixed number of addressable units, from which the pages of a memory organized in pages are assembled. If a page is stored, then the fixed number of data blocks is supplied to one side of the encryption/decryption device 10 in a predetermined order. In this case, the switch 20 for example always supplies the first data block first to the encryption unit 12, the second data block B2 to the decryption unit 14, the third data block B3 to the encryption unit 12, etc., as it is also illustrated in
Of course, it is also possible with other applications to use suitable protocols between the encryption/decryption device 10 and the external device (not shown) connected to its data input 16 or the like in order to provide a suitable transparency with regard to which data block was supplied to which of the units 12 or 14, respectively, in the encryption.
Effectively, thus the switch 20 separates the data B1 . . . BN to be encrypted into two, preferably equally-sized parts, i.e. B1, B3, . . . , or B2, B4, . . . , respectively, of which the former are supplied to the encryption unit 12 and the latter to the decryption unit 14.
The encryption unit 12 and the decryption unit 14 now process the data blocks supplied to the same at their inputs block by block, in order to map the same to data blocks representing an encryption result or a decryption result, respectively, and output the same at their respective data output. In particular, the encryption unit 12 maps each data block Bi at its encryption input according to an encryption mapping E (E for encryption) to a data block Ci representing an encryption result, with 1≦i≦N. The data blocks output by the encryption unit 12 in response to receiving the data blocks B1, B3, . . . , which represent the respective encryption result, are represented in
The switch 20 now, however, passes on the other part of the data stream B1 . . . BN to be encrypted, as described above, to the decryption unit 14. The decryption unit 14 maps each data block arriving at its decryption input according to a decryption mapping D (D for decryption) to a data block representing a decryption result and outputs the same to its decryption output. As shown in
With regard to this branch or with regard to this part, respectively, of the data stream to be encrypted, consequently in the result the encryption of
The data blocks C1, C2′, C3, C4′, etc. output by the units 12 and 14, are merged by the merging means 22 to a uniform cipher data stream and output at the output 18 of the device 10, like for example to a memory or, however, to a transmission path to a communication partner with a device corresponding to the device 10.
As above, with reference to
a schematically shows the temporal course of the data block processing in the device 10 of
In a line 32 below,
As it easily results from
Compared to the temporally overlapping operation of the encryption unit and the decryption unit 12 and 14 in the encryption in the device 10,
As it may be seen, however, the encryption unit 902 of
Again returning to
The connection which connects the data input 16 of the device 10 to the external device (not shown) transmitting the data blocks B1 . . . BN to be encrypted, and on which the data blocks B1 . . . BN are serially transmitted, may for example be the external bus of an 88 micro-controller with its special bus timing or also a standard bus system, so that the offset Δt depends on the bus timing. It may for example be the case, that the device 10 tells the external device by an enable signal when the unit, which has to process the next data block to be encrypted, i.e. the encryption unit 12 or the decryption unit 14, is ready for the next processing, so that in this case the time offset Δt is basically only equal to the time period between the transmission of two successive data blocks on the bus which is connected to the data input 16. In this case, thus the first two data blocks B1 and B2 of the input data stream would be directly transmitted to the encryption unit and the decryption unit 12, 14 with a slight offset in the order of magnitude of the duration of the transmission of the individual data blocks on the bus to the encryption unit 12 and the decryption unit 14, whereupon the device 10 would temporarily deactivate the release signal until the encryption unit 12 is receptive again, etc.
After above the device 10 of
The data input 40 of the device 10 is connected either to the encryption input of the encryption unit 12 or the decryption input of the decryption unit 14 via a switch 43. As it will be discussed, the switch 43 is controlled just like the switch 20 of
As above the setup of the device 10 with regard to the part relevant for the decryption of a cipher data stream was described, its functioning in decryption is now described. At the data input 40 the data blocks to be decrypted are serially supplied in a cipher data stream. In
The switch 43 now distributes the incoming data blocks alternatingly either to the decryption unit 14 or the encryption unit 12. To which of the units 12 or 14 the switch 43 is to direct the first data block, it learns from a control signal from a control means (not shown). This control means knows which of the data blocks was encrypted by the encryption unit 12 (non-apostrophed C's) and which ones were “encrypted” by the decryption unit 14 (apostrophed C's), i.e. according to predetermined rules, a predetermined protocol, a norm, a standard or the like, as it was briefly illustrated above.
In the present case, the switch 43 is controlled such that it passes on the first of the incoming data blocks to the decryption unit 14, as this data block, namely C1, was generated by the encryption unit 12. The decryption unit 14 thus successively obtains the sequence of data blocks C1, C3, . . . . On the other hand, the encryption unit 12 obtains the sequence of data blocks C2′, C4′, . . . .
The decryption unit 14 now maps all data blocks arriving at its decryption input block by block according to the decryption mapping D to the data blocks illustrating the corresponding decryption result, i.e. C1 to D(C1)=D(E(B1))=B1, C3 to D(C3)=D(E(B3)) . . . . The decryption unit 14 thus maps the incoming cipher data blocks to corresponding clear text data blocks B1, B3 as it performs the inverse mapping to the encryption mapping, and outputs the same to its decryption output.
The remaining data blocks of the cipher data stream, i.e. C2′, C4′, . . . are now obviously supplied to the encryption unit 12, as the same were “encrypted” by the decryption unit 14 according to the embodiment of
The data blocks output by the units 12 and 14 consequently again represent the clear text data blocks B1 . . . BN. They are merged to a uniform clear text data stream in the merging means 44 and output at the data output 42.
The encryption unit 12 and decryption unit 14 are also equally operating on the decryption described with reference to
In
In
The control unit 54 influences the switching processes of the switches 20, 42 and 56 by the control signals 58, 60 and 62, respectively, as it is explained in the following.
The data output 18 and the data input 40 are connected to the memory 50, while the data output 42 and the data input 16 are connected to the CPU 52.
As above the setup of the arrangement of encryption/decryption device 10, memory 50 and CPU 52 was described, in the following the functioning of the complete arrangement is described. First of all, the process is regarded that the CPU 52 outputs data to be encrypted and to be stored to its data output Dout in order to store the same on the memory 50. Via the data input 16 of the device 10, these data then reach the switch 43. As it was described with reference to
At a later point in time, when processing a program like e.g. an application for example, the CPU 52 may then process a load command which directs to read out the just stored data again and for example load the same into a certain internal register. The CPU 52 thus directs the memory 50 in a suitable way (not illustrated here) to read out the corresponding data again. The memory 50 thereupon outputs the encrypted data to be loaded to the data input 40 of the device 10. As it was described above with reference to
As it was described above with reference to
The embodiment of
The embodiment of
The simultaneous use of the encryption and decryption hardware described above with reference to the embodiments, consequently enables the doubling of the data throughput rate without reducing the security of the overall “data encryption”.
With reference to the preceding embodiments it is noted, that the present invention is not only applicable in connection with the encrypted storage. The combination of CPU 52 and encryption/decryption device 10 could also be connected to a further device of encryption/decryption device and CPU, like e.g. a communication partner, like e.g. two communicating telephones, a terminal and a chip card, a control room and a subscriber smart card of an access control system or the like. The encryption/decryption devices would form the interface to the common communication path representing the cipher domain. The data output 18 of the one encryption/decryption device would be connected to the data input 40 of the other encryption/decryption device and vice versa. If a microcontroller or a CPU, respectively, wants to send information to the other communication partner or the other CPU, respectively, then it does the same via the data output 18. Suitable common predetermined regulations enable the other communication partner or the opposite encryption/decryption device to know which parts of the communicated cipher data stream were “encrypted” by the encryption device and which by the decryption device.
It should be clear that in the case of fixed communication partners where always one is a receiver and the other one a transmitter, the one only requires a control in the encryption/decryption device which may for example perform the encryption described with reference to
All in all, consequently the preceding embodiments provide a bus- and hardware-adapted encryption definition, which will lead to an increase in demand due to its performance increase due to the parallel processing possibility in many application areas.
As it was already briefly indicated above, it is further possible to use the same data input and the same data output for receiving the already encrypted data to be decrypted and the still unencrypted data to be encrypted or for outputting the encrypted and decrypted data, respectively. The control unit of the encryption/decryption device would then be informed for example by a signal whether an encryption or decryption is to be performed. In the case of
It is further to be noted that deviating from the above description, data to be encrypted may also be divided differently and not always alternatingly into equally-sized parts.
In particular, it is to be noted, that depending on the conditions, the inventive scheme for an encryption/decryption may also be implemented in software. The implementation may be performed on a digital storage medium, in particular a floppy disk or a CD having electronically readable control signals which may cooperate with a programmable computer system so that the corresponding method is performed. In general, the invention thus also consists in a computer program product having a program code stored on a machine-readable carrier for performing the inventive method, when the computer program product runs on a computer. In other words, the invention may thus also be realized as a computer program having a program code for performing the method, when the computer program runs on a computer.
While this invention has been described in terms of several preferred embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
10 345 457.8 | Sep 2003 | DE | national |
This application is a continuation of copending International Application No. PCT/EP2004/009062, filed Aug. 12, 2004, which designated the United States and was not published in English, and is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP04/09062 | Aug 2004 | US |
Child | 11397028 | Mar 2006 | US |