EP1676394A1 - Verfahren und vorrichtung zur ver-/ entschlüsselung - Google Patents

Verfahren und vorrichtung zur ver-/ entschlüsselung

Info

Publication number
EP1676394A1
EP1676394A1 EP04763626A EP04763626A EP1676394A1 EP 1676394 A1 EP1676394 A1 EP 1676394A1 EP 04763626 A EP04763626 A EP 04763626A EP 04763626 A EP04763626 A EP 04763626A EP 1676394 A1 EP1676394 A1 EP 1676394A1
Authority
EP
European Patent Office
Prior art keywords
encryption
decryption
data block
bit
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP04763626A
Other languages
English (en)
French (fr)
Inventor
Gerd Dirscherl
Berndt Gammel
Rainer GÖTTFERT
Steffen Sonnekalb
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of EP1676394A1 publication Critical patent/EP1676394A1/de
Withdrawn legal-status Critical Current

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
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Definitions

  • the present invention relates generally to
  • Encryption / decryption scheme as can be used, for example, to protect memory contents against unauthorized reading.
  • the data to be stored is not in plain text, i.e. unencrypted, but saved in encrypted form, as a so-called ciphertext or so-called ciphertext. If the data is to be read at a later point in time, it naturally has to be decrypted again before it can be processed further. Examples of applications in which this effort for storage is worthwhile are diverse and include, for example, chip cards, smart cards or magnetic cards, on which information to be protected, such as monetary amounts, keys, account numbers, etc., is to be protected from unauthorized access.
  • a cipher domain Deliver to attackers, stored in encrypted form, referred to in Fig. 5 as a cipher domain.
  • the data to be protected is in plain text, referred to as plain text domain in FIG. 5.
  • the border between plain text and cipher domain is shown in FIG. 5 with a semicolon.
  • An interface between the plain text and cipher domain is formed by an encryption / decryption device 900.
  • the encryption / decryption device 900 is used to encrypt unencrypted data to be stored from the plain text domain and to use it in encrypted form
  • the encryption / decryption device 900 therefore consists of two parts which are approximately the same size or have the same complexity in their implementation, namely an encryption unit or an encryption part 902 and a decryption unit or a decryption part 904.
  • the encryption unit 902 simulates data at an encryption input thereof a specific encryption algorithm in blocks on encrypted data and outputs it to an encryption output of the same.
  • the encryption unit 902 is provided in the device 900 in such a way that it stores data blocks Bj . , ..., B N , with N e IN, which are in plain text, receives at its encryption input, so that the encryption unit 902 outputs encrypted data blocks Ci, ..., C N at the encryption output, the so-called cipher.
  • the decryption unit 904 is responsible for the reverse direction, namely not for storing data but for reading data from the memory in the cipher domain into the plain text domain.
  • the decryption unit 904 is designed to map data at its decryption input to decrypted data according to a decryption algorithm which is inverse to the encryption algorithm of the encryption unit 902, and outputs this decrypted data at a decryption output thereof.
  • the decryption unit 904 is provided in such a way that it receives data blocks Ci,..., C N stored in encrypted form at the data input, decrypts this cipher Ci,..., C N in blocks and the data blocks Bi at the decryption output , ..., B N in plain text to the plain text domain.
  • the object of the present invention is to provide an encryption / decryption scheme that is more effective.
  • the encryption unit and decryption unit present in an encryption / decryption device can both be used for both encryption and decryption, without their effects canceling each other out, if between the decryption input of the decryption device and the encryption output the encryption device is provided with an encryption link device which maps the encryption result data block at the encryption output to a depicted encryption result data block in accordance with an encryption link mapping and is used in, for example, encryption, and a further decryption link device which converts the encryption result data block at the encryption output to an inverse-depicted encryption result data block depicts encryption link mapping that is inverse to the encryption link mapping and is used, for example, in decryption.
  • the complexity of the structure does not increase enormously, since the actual encryption or decryption is carried out by the two devices, namely the encryption and decryption device, with a correspondingly high non-linearity of the underlying images.
  • the encryption link and decryption link mapping are only there to ensure that the effects of the encryption mapping and the decryption mapping as implemented by the encryption and decryption device do not cancel each other out.
  • Encryption can now be effected in that a data block to be encrypted runs through at least once the sequence of encryption device, encryption link device and decryption device or is processed serially by these devices.
  • the decryption can then be carried out based on the same encryption and decryption device in that a data block to be decrypted runs through at least a sequence of encryption device, decryption link device and decryption device.
  • Decryption used both devices, encryption and decryption device, whereas in the past one of the two devices was only responsible for encryption and the other was exclusively responsible for decryption. In addition, two different encryption or decryption processes are effectively carried out in series, which conventionally had to be achieved by two rounds through the encryption or decryption device.
  • a special form of encryption or decryption link mapping is, for example, an implementation
  • This mapping in the form of suitably routed conductor tracks, such that they perform a permutation of the bits of the encryption result data block from the encryption output to the decryption input or a reverse or inverse permutation.
  • Such an implementation hardly costs any chip area.
  • FIG. 1 is a block diagram of an encryption / decryption device according to a general embodiment of the present invention
  • FIG. 2 shows a schematic illustration of an encryption process and a decryption process, as is possible with the device from FIG. 1 according to a further exemplary embodiment of the present invention
  • FIG. 3a shows a schematic illustration of an encryption process according to a further exemplary embodiment of the present invention.
  • FIG. 3b shows a schematic illustration of a decryption process for decrypting a ciphertext encrypted after the encryption of FIG. 3a according to an embodiment of the present invention
  • FIG. 4 shows a block diagram of an encryption / decryption device which implements the encryption according to FIG. 3a and decryption according to FIG. 3b, according to an embodiment of the present invention
  • 5 shows a block diagram of an encryption / decryption device with an encryption unit for encryption and a decryption unit for decryption.
  • the encryption / decryption device 10 is able to encrypt incoming data blocks which are to be encrypted into encrypted data blocks and to decrypt data blocks to be decrypted into decrypted data blocks.
  • the encryption / decryption device 10 has an encryption device 12, a decryption device 14, a permutation device 16, an inverse permutation device 18 and a control device 20. Furthermore, the encryption / decryption device comprises a data input 22 for those to be encrypted Data blocks, a data input 24 for the data blocks to be decrypted, a data output 26 for the encrypted data blocks and a data output 28 for the decrypted data blocks.
  • solid arrows indicate the path that a data block to be encrypted takes in device 10, ie which sequence of devices it goes through.
  • the dashed arrows indicate the sequence of data blocks to be decrypted by devices of the device 10. This is controlled by the control device 20, which for this purpose has, for example, switches, multiplexers or the like, as is illustrated in more detail by way of example with reference to the exemplary embodiment of FIG. 4.
  • the encryption device 12 is designed to map data blocks at its encryption input block-wise according to an encryption mapping to encryption result data blocks and to output the latter at its encryption output.
  • the encryption map is preferably a non-linear map that maps n-bit data blocks to m-bit data blocks, where n and m are integers, i.e. m, n IN.
  • n m, although m> n could also apply if special further conditions are placed on the plain text blocks and the mapping E.
  • the encryption mapping can be implemented, for example, using one or more S-boxes.
  • E E for encryption
  • the decryption device 14 is designed to map data blocks at its decryption input in accordance with a decryption map to decryption result data blocks and to output the latter at its decryption output, the decryption map being inverse to the encryption map.
  • the decryption device 14 can be implemented by one or more S-boxes, namely by. S-boxes that are inverse to those that form the encryption device 12.
  • the permutation device 16 comprises an n-bit permutation input and an n-bit permutation output.
  • the permutation device 16 is provided in order to permute the bits of an n-bit data block at the permutation input, ie to rearrange them, and to permute the permuted n-bit data block at the permutation input. output output.
  • the n-bit data block at the permutation input consists of a sequence of n bits, the sequence of which is changed by the permutation by the permutation device 16.
  • the permutation device 18 also has a permutation input and a permutation output.
  • Both permutation device 16 and inverse permutation device 18 can be implemented as conductor tracks which connect the individual n bit inputs at the permutation input to different ones of the n bit outputs at the permutation output.
  • the control device 20 is now able to encrypt data blocks at the input 22 and to decrypt them
  • the control device 20 ensures that a data block to be encrypted at the data input 22 runs through the sequence of encryption device 12, permutation device 16 and decryption device 14.
  • the data block 22 to be encrypted is processed in succession by the encryption device 12, the permutation device 16 and the decryption device 14.
  • B - arrives at the encryption input of the encryption device 12.
  • An order is of course defined via the n bits of the n-bit encryption result data block C.
  • the encryption result data block C is applied to the permutation device 16.
  • the permutation is referred to in the following P.
  • the control device 20 ensures that data blocks to be decrypted at the input 24 run through a different sequence of devices, namely the sequence of encryption device 12, inverse permutation device 18 and decryption device 14. It is assumed, for example, that the data block to be decrypted is the encrypted data block just received C e esult is. This data block
  • C result i s is carried out by the input 24 to the encryption input of the encryption device 12.
  • the encryption device 12 thus makes the mapping exactly the decryption mapping that was carried out at the end of the encryption.
  • the result encryption data block C at the output of the encryption device 12 is now fed to the permutation input of the inverse permutation device 18.
  • This operation changes the order of the n bits of the n-bit encryption result data block in a manner exactly the opposite of that used to obtain the intermediate encryption result C during encryption.
  • the device 10 of FIG. 1 is able both to encrypt data blocks in plain text in cipher data blocks and to decrypt cipher data blocks back into data blocks in plain text, encryption device 12 and decryption device 14 both for encryption and for decryption are involved in the processing of the data blocks to be decrypted or encrypted.
  • n m.
  • the control device 20 it is possible for the data blocks to be encrypted run through the sequence of encryption device 12, permutation device 16 and decryption device 14 more than once, and accordingly the data blocks to be decrypted also repeat the sequence of encryption steps. direction 12, inverse permutation device 18 and decryption device 14.
  • the security of the encrypted, stored data can be increased by going through it several times.
  • the upper line of FIG. 2 represents the encryption process as it is effected by the control device 20.
  • a data block to be encrypted (far left) is successively subjected to the same serial processing 30 times in iterative or repeated fashion.
  • Each round 30 comprises a sequence of an encryption map E, a permutation P, a decryption D and one
  • Permutation P the control device 20 repeatedly passed data blocks to be encrypted through the encryption device 12, the permutation device 16, the decryption device 14 and the permutation device 16, sequentially in this order. At the end (on the far right in FIG. 2), the encrypted data block would result at the output 26.
  • the decryption is shown in Fig. 2 in the lower line.
  • a data block to be decrypted is subjected to a sequence of images which results when the top line is read upside down, ie from the right, ie the processing sequence is reversed, and each image is inverted, ie P _1 reads instead of P, E reads instead of D. and D reads instead of E, which means that each device is exchanged for its inverse device.
  • Data blocks to be decrypted consequently also processed in rounds 32, each round 32 having a sequence of maps P "1 , E, P -1 and D. At the end (far right in FIG. 2) there is a decrypted data block.
  • the rounds 30 and 32 actually represent double rounds in which encryption E and decryption or decryption mapping D 'is carried out. 2, the encryption device and the decryption device or the underlying hardware are therefore used with a time offset, both in the case of encryption and decryption. Encryption according to the upper line in FIG. 2 can of course be carried out in the device of FIG. 1 at the same time as decryption according to the lower line in FIG. 2 if the two processes are carried out in a pipelined manner, so that the encryption device E is straight is used for encryption while the decryption device is currently working for decryption.
  • FIG. 2 can of course be varied as desired. It is not imperative that only the permutation P is used for the encryption, while only the inverse permutation P _1 is used for the decryption.
  • an encryption round 30 could also be E, P, D, P _1 , while the corresponding decryption round 32 was P, E, P _1 , D.
  • FIGS. 3a, 3b and 4 in which the encryption mapping and the decryption mapping are implemented by 4x4-S boxes which each map four different bits of the data block at the encryption input to four different bits of the data block at the encryption output.
  • S-Box such as a 32-bit S-Box
  • S-Boxes such as eight 4x4-S-Boxes.
  • 3a shows an encryption according to an exemplary embodiment of the present invention.
  • a plurality of devices are available for encryption, with a further device being available for each device that carries out a specific mapping, which carries out the inverse mapping for this.
  • 4x4-S-boxes Si-SQ serve as encryption device 12 '
  • eight S-boxes S ⁇ 1 -S g 1, which are inverse thereto, serve as decryption device 14'.
  • two identical mapping devices 40 and 42 are available which output a 32-bit data block at their 32-bit data input in accordance with a self-inverting linear mapping or linear transformation to a 32-bit data block at their data output.
  • two rotation devices 44 and 46 are provided, which rotate a 32-bit data block at their rotation input according to a bit rotation R by a predetermined number of bits in a predetermined direction and output the result of the rotation at their rotation output.
  • two 32-bit XOR logic devices are provided, each consisting of 32 XOR gates, which bit by bit the 32 bits of a 32-bit data block with the bits of a 32-bit
  • a plaintext data block B only goes through a double round 52, i. H . a Processing sequence which has an encryption 12 'once or in one partial round and a decryption 14' the other time or in the other partial round.
  • the double round 52 is thus divided into two partial rounds, namely 52a and 52b, which are carried out sequentially.
  • the first sub-round 52a, which the plaintext data block B passes through consists of the sequence of XOR link 48 with the round key Ki, encryption mapping by the S-boxes Si-S 8 , linear transformation 40 and subsequent rotation 44.
  • sub-round 52b After passing through the sub-round 52a, processing is carried out by the sub-round 52b, which includes a sequence of the XOR combination with the round key K 2 , a decryption mapping by the inverse S-boxes ST / 1 -S "1 , linear transformation 42 and
  • Rotation 46 has. After sub-round 52b, cipher C or cipher block C results.
  • a data block B to be encrypted passes through the XOR logic device 48.
  • the result at the output of the XOR logic device 48 is a data block, the bits of which at the points where the round key K x a has logic one, is inverted to the corresponding bits of data block B, while the remaining bits are identical to the corresponding bits of data block B.
  • the S-Boxes Si - Sg map the 4-bit words present at their S-Box inputs to 4-bit words shown in accordance with a mapping rule assigned to them, which is preferably non-linear and different for all S-Boxes.
  • the four bits at the S-box outputs of the S-boxes Si-S 8 are then supplied as a 32-bit data block to a 32-bit data input of the linear transformation device 40, namely the four bits of the S-Box Si as the most significant four bits 31-28, the four output bits of the S-box S 2 as the next least significant bits 27 - 24 ... and the bits of the S-Box S 8 as bits 3 - 0.
  • the linear transformation device 40 maps the data block at its data input by linear mapping to another 32-bit data block.
  • the resulting data block at the data output of the linear transformation device 40 is forwarded to the rotation device 44, which shifts the bits of the data block applied to its data input to the right or left by a number of bits depending on the rotation R, and appends the bits pushed out again to the bit positions that become free.
  • the data block at the output of the rotating device 44 thus represents the result of the first partial round 52a.
  • This 32-bit data block is then again an XOR
  • Linkage 50 is now subjected to a round key K, in turn inverting the bit positions at which the round key K 2 has a logical one. In each case four successive bits of the resulting data block are then transferred to the inverse S-boxes S "1 - S " 1 on their S-box
  • Linear transformation device 42 is applied, which carries out the same linear transformation as the linear transformation device 40.
  • the result of the linear mapping is a 32-bit data block which is fed to the input of the rotation device 46 and which rotates this data block in the same direction by the same number of bits as the Rotation device 44.
  • the resulting 32-bit data block is the ciphertext C or the ciphertext data block C.
  • the passage of a plurality of double rounds 52 could also be provided in order to perform encryption, as is also provided for the implementation of the encryption according to FIG. 3a according to the embodiment of FIG. 4.
  • a mapping is carried out between each encryption or decryption map 12 'or 14', which can be referred to as an encryption link map. While this link encryption mapping was, for example, the permutation P in the exemplary embodiment of FIG. 1, this is the case in the exemplary embodiment of FIG.
  • mapping L through multiple XOR operations of the bits in the individual data blocks to ensure that small changes in the plaintext data block have a major impact on the ciphertext data block.
  • the linear transformations L ensure that the bits that are output by the S-boxes Si-S ⁇ are effectively mixed with other bits of other bit positions and shifted to other bit positions, so that they are not simply rotated get to predetermined subsequent inverse S-boxes.
  • FIG. 4 still to be discussed relates to an implementation example for the encryption process of FIG. 3a using two devices in each case, as has been illustrated in FIG. 3a.
  • FIG. 3b shows a decryption round for decrypting a cipher data block C, as is obtained by an encryption round 52 from FIG. 3a.
  • the round of decryption is generally indicated at 60. It in turn consists of two sub-rounds 62 and 64.
  • a cipher data block C runs in a decryption round the same S-boxes Si - S 8 or S ⁇ 1 - S g 1 as in the encryption round of
  • Fig. 3a or the same encryption and decryption device 12 'and 14'.
  • the other devices can be chosen to be identical to the devices in the encryption, or they can be provided specifically for the decryption.
  • FIG. 3b the remaining devices are provided with their own reference numerals, as if they were different from those of FIG. 3a, the exemplary embodiment representing an opposite implementation option with respect to the linear imaging devices.
  • a cipher block C goes through two inverse rotators 66, 68, two linear transformers 70 and 72 and two XOR links 74 and 76 during a decryption round 60.
  • the images are carried out on the cipher data block, as are also carried out on the plain text data block in the case of encryption, but in reverse order and inverted. That is, in accordance with the rotation 46 of FIG. 3a, an inverse rotation is first carried out by the rotation device 66 on the cipher data block C, i.e. a shift of the bits of the cipher frame C by a number of bits identical to that of the rotation R but in the opposite direction.
  • Data block is passed on to the linear transformation device 70.
  • the passage of the S -1 boxes of Figure 3a corresponding to the at the output of the linear transformation means 70 resulting 32-bit data block in units of 4-bit words of the S-boxes Si -. S 8 as the encryption device 12 'fed.
  • the resulting 32 bits are XOR-linked with the round key K 2 . This link corresponds to link 50 of FIG. 3a.
  • the XOR link 50 is also a self-inverting mapping, since the repeated inversion of the bits at the bit positions at which the 2-bit round key K 2 has a one again supplies the original data block.
  • the result of the XOR link 74 is the result of the sub-round 62.
  • the sub-round 64 which follows the sub-round 62, then corresponds to a reversal of the sub-round 52a of the encryption round 52 from FIG. 3a.
  • the data block is then sequentially fed to the inverse rotation device 68, the linear transformation device 72, the inverse S-boxes 14 'and the XOR linkage with the round key Ki, whereupon the plain text data block M is obtained, as shown in FIG. 3a the ciphertext C has been encrypted.
  • the encryption / decryption device of FIG. 4 comprises the devices of FIG. 3a and additionally some devices of FIG. 3b.
  • the linear transformation devices from FIG. 3a are used together, so that in FIG. 4 they only have the reference numerals from FIG. 3a, i.e. 40 and 42, and the linear transformers 70 and 72 have been implemented by the same actual devices.
  • the encryption / decryption device of FIG. 4 is indicated generally at 100.
  • the encryption / decryption device 100 comprises, in addition to the inverse rotation devices 66, 68, the linear transformation devices 42, 40, the rotation devices 46, 44, the XOR combination devices 48, 50,
  • S g 1 switches 102, 104, 106, 108, 110 and 112 and a control unit 114.
  • a data input 116 is provided for the reception of the data blocks to be encrypted, a data input 118 for the reception of the data blocks to be decrypted, an output 120 for the output of the encrypted data blocks and an output 122 for the output of the decrypted data blocks.
  • the lines connecting the device are each 32-bit lines and either represented by a broken line or by a solid line, wherein dashed lines indicate the data path that is relevant for decryption, while the solid lines are used for encryption.
  • Data inputs from devices and data lines, which are used together for decryption and encryption, are shown by dashed and solid lines running in parallel. The arrows are intended to make it easier to read the encryption / decryption device.
  • Linking device 48 with its output connected to the input of the S-boxes Si - S 8 .
  • the output of the S-boxes S x - S 8 is connected to a 32-bit input of the 32-bit switch 106.
  • the switch has two 32-bit outputs and is provided in order to connect the switch input to either one switch output or the other switch output in accordance with a control signal c 0 which it receives at a control input from the control unit 114.
  • a first of the switch outputs is assigned to encryption rounds, while the other switch output is permanently assigned to decryption rounds.
  • the encryption switch output is connected to an input of the linear transformation device 40.
  • the output of the linear transformation device 40 is connected to a 32-bit switch input of the switch 108.
  • the switch 108 also receives the signal c 0 from the control unit 114 at a control input thereof and accordingly connects the switch input to either a 32-bit encryption switch output or a 32-bit decryption switch output.
  • the encryption switch output of the switch 108 is connected to an input of the rotation device 44.
  • An output of the rotation device 44 is connected to a data input of the encryption device 50, which contains the round key K 2 at its 32-bit key input, while at the key input of the key device 48 the round key Ki is applied.
  • the output of the XOR logic device 50 is connected to an input of the ST / 1 -S "1.
  • the outputs of the latter are connected to a 32-bit switch input of the switch 110 which, like the switches 106 and 108, has the control signal at a control input thereof receives c 0 from the control device 114 and, depending on it, connects the 32-bit control input to either a 32-bit encryption switch output or a 32-bit decryption switch output
  • the encryption switch output of the switch 110 is connected to an input of the linear transformation device 42, whose output is in turn connected to a 32-bit switch input of the switch 102.
  • This switch 102 also receives the control signal Crj from the control unit 114 at a control input thereof and accordingly switches the switch input to either a 32-bit encryption control output or a 32-bit decryption switch output
  • the 32-bit Ve The key switch output of the switch 102 is connected to an input of the rotation device 46, the output of which is in turn connected to a 32-bit switch input of the switch 104.
  • This switch 104 receives a control signal b o from the control unit 114 at a control input thereof and has a 32-bit round termination switch output and a 32-bit round continuation switch output. Depending on the signal b 0 , the switch 104 connects the switch input either to the round termination switch output or to the round continuation switch output.
  • the lap continuation switch output is connected to the input of the XOR logic device 48, while the lap termination switch output is connected to the output 120 of the device 100.
  • the input 118 is connected to an input of the inverse rotation device 66. Its output is in turn connected to the input of the linear transformation device 42.
  • the decryption switch ter output of the switch 102 is connected to the input of the S-boxes Si - S 8 .
  • the decryption switch output of the switch 106 is connected to a data input of the XOR logic device 74, which receives the round key K 2 at its key input and which is connected to an input of the inverse rotation device 68 with its data output.
  • the output of the inverse rotation device 68 is connected to the input of the linear transformation device 40.
  • the decryption switch output of the switch 108 is connected to the input of the inverse S-boxes S "1 - S g 1.
  • the decryption key output of the switch 110 is connected to the data input of the XOR logic device 76, which receives the round key Ki at its key input, and that is connected with its data output to a switch input of the switch 112.
  • the switch 112 receives the control signal bo from the control unit 114 at a control input thereof and accordingly connects the switch input either to a decryption round termination switch output or to a decryption round continuation switch output.
  • Continuation switch output of switch 112 is connected to the input of inverse rotator 66, while the decryption turn termination switch output is connected to output 122 of device 100.
  • encryption is considered.
  • a data block to be encrypted is present at data input 116.
  • the control unit 114 uses the signal c 0 to control all the switches 102, 106, 108 and 110 in such a way that they connect their respective control input to the encryption control output.
  • the control unit 114 need not change the signal c 0 while the data block is going through this sequence. In general, the control unit 114 does not change the signal c 0 for the entire encryption process, ie also for the subsequent rounds. The control signal c 0 remains the same for the entire encryption process, so that there is only a small amount of control for the control unit 114. With the control signal bo, the control unit 114 ensures that the switch 104 after the first round pass, ie after the
  • Processing by the rotation device 46 connects its switch input to the encryption round continuation switch output, so that the intermediate result or the data block which the rotation device 46 outputs is again applied to the XOR logic device 48 which marks the start of the operation by the switches 106, 108 , 110 and 102 defined round of encryption forms.
  • control unit 114 ensures that the switch 104 now switches the switch output to the encryption round termination switch output has (dashed switch position), so that the cipher or the chiff-at data block is output at the data output 120, as it results after two round passes 52, as shown in Fig. 3a.
  • the control unit 114 uses the control signal c 0 to ensure that the switches 102, 106, 108 and 110 connect their control input to the decryption control output (the switch state (not shown in FIG. 4)).
  • a data block to be decrypted which is present at data output 118, is easily guided by a sequence of devices that corresponds to the sequence of FIG. 3b, namely by the sequence of inverse rotation device 66, linear transformation device 42, S boxes Si - S 8 , XOR logic device 74, inverse rotation device 68, linear transformation device 40, inverse S boxes 14 ', XOR logic device 76.
  • the control signal bo sets the control unit 114 in such a way that the switch 112 switches the data block, which is after the first Decoding round has returned to the
  • Input of the inverse rotation device 66 is applied, that is, such that the switch 112 connects its switch input with the decryption round continuation switch output.
  • the control unit 114 then ensures that after the second run through the
  • Decryption round the resulting data block is output as the decrypted data block at output 122, namely switch 112 switching its control input to the decryption round termination switch output (dashed switch position).
  • the preceding exemplary embodiments are suitable for use as encryption of memory contents as protection against unauthorized reading out of these memory contents.
  • the exemplary embodiments can also be used for online or bus encryption in other applications if, for example, the underlying encryption hardware is to be kept small.
  • FIGS. 3a to 4 relate to encryption / decryption by a cryptographically complete block cipher. It is not possible for an attacker to calculate back or infer the data in encrypted form to the plain text, or only with disproportionate effort. For example, in the embodiment of FIG. 4 or of FIG. 2, the hardware implementation does not take up a large area, since the block cipher is designed with a variable number of rounds. This means that the cryptographic strength of the encryption is scalable at the expense of performance or performance or speed, but not at
  • a rotation was used in the embodiments of FIGS. 3a-4. Of course, it would also be possible to generally replace the rotation with a permutation. In any case, permutation or rotation ensures that the effects of the S-boxes do not weaken each other.
  • the S-boxes of the exemplary embodiments 3a-4 caused confusion, the linear transformations for diffusion of the plain text bits.
  • one and the same module could then also perform the decryption by a control unit using these switches or multiplexers to ensure that the devices were appropriately connected to a corresponding sequence of devices.
  • the control can also take place dynamically during a double round, so that a device is run through twice during a double round.
  • the linear transformation devices 40, 42, the inverse rotation devices 66, 68 and the rotation devices 46 and 44 could each be replaced by one.
  • the disadvantage would be the increased control effort for the control unit 114, whereas the advantage would be the smaller chip area.
  • the exemplary embodiments of the present invention have the advantages that a high number of rounds is not required to achieve the same level of security, which in turn improves the performance or performance or effectiveness compared to these Feistel ciphers.
  • Cipher encryption / decryption devices increased.
  • the previous exemplary embodiments only required a minimum of elementary components, namely for example in the exemplary embodiments from FIGS. 3a-4 S-boxes and linear transformations.
  • the associated inverse elementary element is also built into the encryption / decryption device. This can then undo the operation of the elementary block, which is used for decryption. For encryption, care has been taken to ensure that the
  • the number of rounds ie the number of double rounds
  • the encryption rounds of FIGS. 3a and 3b can be run through as often as desired.
  • the cipher C then represents a 1, 2, ... N double-round encryption or a 2, 4, 6 ... 2N-round encryption, with N e IN.
  • the encryption device can also be viewed neutrally as a first imaging device with a first image and the decryption device as a second imaging device with an associated image that is inverse to the first.
  • the scheme for encryption / decryption according to the invention can also be implemented in software.
  • the implementation can take place on a digital storage medium, in particular a floppy disk or a CD with electronically readable control signals, which can interact with a programmable computer system in such a way that the corresponding method is carried out.
  • the invention thus also consists in a computer program product with program code stored on a machine-readable carrier for carrying out the method according to the invention when the computer program product runs on a computer.
  • the invention can thus be implemented as a computer program with a program code for carrying out the method if the computer program runs on a computer.

Landscapes

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

Abstract

Die Erkenntnis der vorliegenden Erfindung besteht darin, dass die in einer Ver/Entschlüsselungsvorrichtung (10) vorhandene Verschlüsselungseinheit (12) und Entschlüsselungseinheit (14) beide sowohl bei Verschlüsselung als auch bei Entschlüsselung eingesetzt werden können, ohne dass sich ihre Wirkungen gegenseitig aufheben, wenn zwischen dem Entschlüsselungseingang der Entschlüsselungseinrichtung (12) und dem Verschlüsselungsausgang der Verschlüsselungseinrichtung (14) eine Verschlüsselungsverknüpfungseinrichtung (16) vorgesehen wird, die den Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang auf einen abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Verschlüsselungsverknüpfungsabbildung abbildet und bei beispielsweise der Verschlüsselung verwendet wird, und eine weiter Entschlüsselungsverknüpfungseinrichtung (18), die den Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang auf einen invers abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Entschlüsselungsverknüpfungsabbildung abbildet, die zu der Verschlüsselungsverknüpfungsabbildung invers ist, und beispielsweise bei der Entschlüsselung verwendet wird.

Description

Beschreibung
Verfahren und Vorrichtung zur Ver-/Entschlüsselung
Die vorliegende Erfindung bezieht sich allgemein auf ein
Ver/Entschlüsselungsschema, wie es beispielsweise zum Schutz von Speicherinhalten gegen unberechtigtes Auslesen anwendbar ist .
Bei einer gegen unberechtigtes Ausspähen gesicherten Datenspeicherung werden die zu speichernden Daten nicht im Klartext, d.h. unverschlüsselt, sondern in verschlüsselter Form abgespeichert, als sogenanntes Chiffrat oder sogenannter Chiffretext. Wenn die Daten zu einem späteren Zeitpunkt gelesen werden sollen, müssen sie deshalb naturgemäß wieder entschlüsselt werden, bevor sie weiterverarbeitet werden können. Beispiele für Anwendungen, bei denen sich dieser Aufwand zur Abspeicherung lohnt, sind vielfältig und umfassen beispielsweise Chipkarten, Smartcards oder Magnetkarten, auf denen beispielsweise zu schützende Informationen, wie Geldbeträge, Schlüssel, Kontonummern usw., vor einem unberechtigten Zugriff geschützt werden sollen.
Fig. 5 veranschaulicht noch einmal den Sachverhalt. Zu schüt- zende Daten werden, um sie nicht ungeschützt potentiellen
Angreifern auszuliefern, in verschlüsselter Form gespeichert, in Fig. 5 als Chiffre-Domain bezeichnet. Außerhalb der Chiffre-Domain liegen die zu schützenden Daten im Klartext vor, in Fig. 5 als Klartext-Domain bezeichnet. Die Grenze zwischen Klartext- und Chiffre-Domain ist in Fig. 5 mit einer Strichpunktlinie angezeigt. Eine Schnittstelle zwischen Klartext- und Chiffre-Domain bildet eine Ver-/Entschlüsselungsvorrich- tung 900. Die Ver-/Entschlüsselungsvorrichtung 900 ist dazu da, zu speichernde, unverschlüsselte Daten aus der Klartext- Domain zu verschlüsseln und in verschlüsselter Form zur
Speicherung an die Chiffre-Domain auszugeben, und umgekehrt, bei Abruf oder Auslesen dieser Daten, wiederum die nun in verschlüsselter Form vorliegenden, auszulesenden Daten zu entschlüsseln, um sie in Klartext an die Klartext-Domain auszugeben. Das zugrundeliegende Verschlüsselungsschema ist eine symmetrische Verschlüsselung, d.h. eine bei der die inverse Verschlüsselung, d.h. die Entschlüsselung, mit in etwa dem gleichen Aufwand ausgeführt werden kann wie die Verschlüsselung. Die Ver-/Entschlüsselungsvorrichtung 900 besteht deshalb aus zwei in etwa gleich großen bzw. in ihrer Implementation gleich aufwendigen Teilen, nämlich einer Verschlüsselungseinheit bzw. einem Verschlüsselungsteil 902 und einer Entschlüsselungseinheit bzw. einem Entschlüsselungsteil 904. Die Verschlüsselungseinheit 902 bildet Daten an einem Verschlüsselungseingang derselben nach einem bestimmten Verschlüsselungsalgorithmus blockweise auf ver- schlüsselte Daten ab und gibt diese an einem Verschlüsselungsausgang derselben aus. In der Vorrichtung 900 ist die Verschlüsselungseinheit 902 derart vorgesehen, dass sie zu speichernde Datenblöcke Bj., ..., BN, mit N e IN, die im Klartext vorliegen, an seinem Verschlüsselungseingang empfängt, so dass die Verschlüsselungseinheit 902 am Verschlüsselungsausgang verschlüsselte Datenblöcke Ci, ... , CN ausgibt, das sog. Chiffrat. Die Entschlüsselungseinheit 904 ist für die umgekehrte Richtung zuständig, nämlich eben nicht für das Speichern von Daten sondern für das Auslesen von Daten von dem Speicher in der Chiffre-Domain in die Klartext-Domain.
Dementsprechend ist die Entschlüsselungseinheit 904 ausgebildet, um Daten an ihrem Entschlüsselungseingang gemäß einem Entschlüsselungsalgorithmus auf entschlüsselte Daten abzubilden, der zu dem Verschlüsselungsalgorithmus der Verschlüsse- lungseinheit 902 invers ist, und diese entschlüsselten Daten an einem Entschlüsselungsausgang derselben ausgibt. In der Vorrichtung 900 ist die Entschlüsselungseinheit 904 so vorgesehen, dass sie in verschlüsselter Form gespeicherte, auszulesende Datenblöcke Ci, ... , CN am Dateneingang empfängt, dieses Chiffrat Ci, ..., CN blockweise entschlüsselt und am Entschlüsselungsausgang die Datenblöcke Bi, ... , BN im Klartext an die Klartext-Domain ausgibt. Nachteilig an der Bezug nehmend auf Fig. 5 beschriebenen Vorgehensweise, nämlich getrennte Hardware eigens für die Entschlüsselung und Verschlüsselung vorzusehen, ist, dass jeweils der eine Teil brach liegt, wenn eine Ver- bzw. Entschlüsselung durchgeführt wird. Die Effektivität einer solchen Ver-/Entschlüsselungsvorrichtung ist also darin gering, dass dieselbe ein schlechtes Verhältnis zwischen Sicherheit einerseits und Chipfläche andererseits aufweist.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Ver-/Entschlüsselungsschema zu schaffen, das effektiver ist.
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, 13 oder 14 und ein Verfahren gemäß Anspruch 15, 16 oder 17 gelöst.
Die Erkenntnis der vorliegenden Erfindung besteht darin, dass die in einer Ver/Entschlüsselungsvorrichtung vorhandene Verschlüsselungseinheit und Entschlüsselungseinheit beide sowohl bei Verschlüsselung als auch bei Entschlüsselung eingesetzt werden können, ohne dass sich ihre Wirkungen gegenseitig aufheben, wenn zwischen dem Entschlüsselungseingang der Entschlüsselungseinrichtung und dem Verschlüsse- lungsausgang der Verschlüsselungseinrichtung eine Verschlüs- selungsverknüpfungseinrichtung vorgesehen wird, die den Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang auf einen abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Verschlüsselungsverknüpfungsabbildung abbildet und bei beispielsweise der Verschlüsselung verwendet wird, und eine weiter Entschlüsselungsverknüpfungseinrichtung, die den Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang auf einen invers abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Entschlüsselungsverknüpfungsabbil- düng abbildet, die zu der Verschlüsselungsverknüpfungsabbil- dung invers ist, und beispielsweise bei der Entschlüsselung verwendet wird. Die Komplexität des Aufbaus uss sich damit nicht enorm erhöhen, da die eigentliche Verschlüsselung bzw. Entschlüsselung mit entsprechend hoher Nichtlinearität der zugrundelie- genden Abbildungen durch die beiden Einrichtungen, nämlich die Verschlüsselungs- und die Entschlüsselungseinrichtung, durchgeführt wird. Die Verschlüsselungsverknüpfungs- und Entschlüsselungsverknüpfungsabbildung sind lediglich dazu da, dafür zu sorgen, dass sich die Wirkungen der Verschlüsselungsabbildung und der Entschlüsselungsabbildung, wie sie durch die Verschlüsselungs- und die Entschlüsselungseinrichtung implementiert werden, nicht gegenseitig aufheben. Eine Verschlüsselung kann nun dadurch bewirkt werden, dass ein zu verschlüsselnder Datenblock zumindest die Abfolge von Ver- Schlüsselungseinrichtung, Verschlüsselungsverknüpfungsein- richtung und Entschlüsselungseinrichtung zumindest einmal durchläuft bzw. von diesen Einrichtungen seriell verarbeitet wird. Die Entschlüsselung kann dann basierend auf derselben Verschlüsselungs- und Entschlüsselungseinrichtung durchge- führt werden, indem ein zu entschlüsselnder Datenblock zumindest eine Abfolge von Verschlüsselungseinrichtung, Entschlüs- selungsverknüpfungseinrichtung und Entschlüsselungseinrichtung durchläuft.
Folglich werden sowohl bei Verschlüsselung als auch bei
Entschlüsselung beide Einrichtungen, Verschlüsselungs- und Entschlüsselungseinrichtung, verwendet, wohingegen früher eine der beiden Einrichtungen ausschließlich für die Verschlüsselung und die andere ausschließlich für die Entschlüs- seiung zuständig war. Zudem werden effektiv seriell zwei unterschiedliche Ver- bzw. Entschlüsselungsvorgänge durchgeführt, was herkömmlicher Weise durch zwei Runden durch die Ver- bzw. Entschlüsselungseinrichtung erzielt werden musste.
Eine besondere Form der Verschlüsselungs- bzw. Entschlüsse- lungsverknüpfungsabbildung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist beispielsweise eine Implemen- tierung dieser Abbildungen in Form von geeignet geführten Leiterbahnen, derart, dass dieselben eine Permutation der Bits des Verschlüsselungsergebnisdatenblocks von dem Verschlüsselungsausgang zu dem Entschlüsselungseingang vornehmen bzw. eine Rück- bzw. inverse Permutation. Eine solche Implementierung kostet kaum Chipfläche.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeich- nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild einer Ver-/Entschlüsselungsvor- richtung gemäß einem allgemeinen Ausführungsbeispiel der vorliegenden Erfindung;
Fig. 2 eine schematische Darstellung eines Verschlüsselungsvorgangs und eines Entschlüsselungsvorgangs, wie er mit der Vorrichtung von Fig. 1 gemäß einem weiteren Ausführungsbeispiel der vorliegenden Er- findung möglich ist;
Fig. 3a eine schematische Darstellung eines Verschlüsselungsvorgangs gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung;
Fig. 3b eine schematische Darstellung eines Entschlüsselungsvorgangs zur Entschlüsselung eines nach der Verschlüsselung von Fig. 3a verschlüsselten Chiffrats gemäß einem Ausführungsbeispiel der vor- liegenden Erfindung;
Fig. 4 ein Blockschaltbild einer Ver-/Entschlüsselungsvor- richtung, die die Verschlüsselung nach Fig. 3a und Entschlüsselung nach Fig. 3b implementiert, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und Fig. 5 ein Blockschaltbild einer Ver-/Entschlüsselungs- vorrichtung mit Verschlüsselungseinheit zur Verschlüsselung und Entschlüsselungseinheit zur Entschlüsselung.
Bevor die vorliegende Erfindung anhand der Figuren in Ausfüh- ungsbeispielen näher veranschaulicht wird, wird darauf hingewiesen, dass gleiche Elemente oder ähnliche Elemente in diesen Figuren mit gleichen Bezugszeichen oder ähnlichen Bezugszeichen versehen sind, und dass eine wiederholte Beschreibung dieser Elemente weggelassen wird.
Fig. 1 zeigt eine Ver-/Entschlüsselungsvorrichtung 10 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Ver-/Entschlüsselungsvorrichtung 10 ist in der Lage, ankommende Datenblöcke, die verschlüsselt werden sollen, in verschlüsselte Datenblöcke zu verschlüsseln, und zu entschlüsselnde Datenblöcke in entschlüsselte Datenblöcke zu entschlüsseln.
Die Ver-/Entschlüsselungsvorrichtung 10 weist hierzu eine Verschlüsselungseinrichtung 12, eine Entschlüsselungseinrich- "tung 14, eine Permutationseinrichtung 16, eine Invers-Permu- tationseinrichtung 18 und eine Steuereinrichtung 20 auf. Ferner umfasst die Ver-/Entschlüsselungsvorrichtung einen Dateneingang 22 für die zu verschlüsselnden Datenblöcke, einen Dateneingang 24 für die zu entschlüsselnden Datenblöcke, einen Datenausgang 26 für die verschlüsselten Datenblöcke und einen Datenausgang 28 für die entschlüsselten Daten- blocke.
In Fig. 1 ist mit durchgezogenen Pfeilen der Weg angedeutet, den ein zu verschlüsselnder Datenblock in der Vorrichtung 10 nimmt, d.h. welche Abfolge von Einrichtungen derselbe durch- läuft. Durch gestrichelt gezeichnete Pfeile ist angedeutet, welche Abfolge von Einrichtungen der Vorrichtung 10 zu entschlüsselnde Datenblöcke durchlaufen. Gesteuert wird dies durch die Steuereinrichtung 20, die hierzu beispielsweise Schalter, Multiplexer oder dergleichen aufweist, wie es Bezug nehmend auf das Ausführungsbeispiel von Fig. 4 exemplarisch noch näher veranschaulicht wird.
Nachdem im Vorhergehenden der Aufbau der Vorrichtung 10 grob beschrieben worden ist, wird im folgenden ihre Funktionsweise näher beschrieben. Die Verschlüsselungseinrichtung 12 ist ausgebildet, um Datenblöcke an ihrem Verschlüsselungseingang blockweise gemäß einer Verschlüsselungsabbildung auf Verschlüsselungsergebnisdatenblöcke abzubilden und letztere an ihrem Verschlüsselungsausgang auszugeben. Die Verschlüsselungsabbildung ist vorzugsweise eine nichtlineare Abbildung, die n-Bit-Datenblöcke auf m-Bit-Datenblöcke abbildet, wobei n und m Ganzzahlen sind, d.h. m,n e IN. Bei dem vorliegenden Ausführungsbeispiel ist n = m, wobei jedoch m > n ebenfalls gelten könnte, wenn spezielle weitere Bedingungen an die Klartextblöcke und die Abbildung E gestellt werden. Wie es bei den Ausführungsbeispielen von Fig. 3a, 3b und 4 noch deutlich werden wird, kann die Verschlüsselungsabbildung beispielsweise unter Verwendung einer oder mehrerer S-Boxen implementiert sein. Die Verschlüsselung durch die Verschlüsselungseinrichtung 12 sei im folgenden mit E (E für encryption) ausgedrückt, wobei ein n-Bit-Datenblock B auf ein Chiffrat C abgebildet werde, was durch E(B) = C ausgedrückt wird.
Die Entschlüsselungseinrichtung 14 ist dazu ausgebildet, Datenblöcke an ihrem Entschlüsselungseingang gemäß einer Entschlüsselungsabbildung auf Entschlüsselungsergebnisdatenblöcke blockweise abzubilden und letztere an ihrem Entschlüsselungsausgang auszugeben, wobei die Entschlüsselungsabbildung zu der Verschlüsselungsabbildung invers ist. Die Entschlüsselungseinrichtung 14 implementiert folglich eine Abbildung D (D für decryption), für die gilt, dass für jeden möglichen unverschlüsselten n-Bit-Datenblock B gilt, dass D(E(B)) = B ist, d.h. dass die Entschlüsselungseinrichtung 14 einen ursprünglichen Datenblock an ihrem Entschlüsselungseingang E(B) immer auf einen Datenblock B an ihrem Entschlüsselungsausgang abbilden würde, welcher von der Verschlüsselungseinrichtung 12 auf den ursprünglichen Datenblock E(B) abgebildet wird. Das bedeutet gleichzeitig, dass E(D(E(B))) = E(B) für alle möglichen B gelten rαuss. Bei m > n wäre demnach die Entschlüsselungsabbildung ist also eine Abbildung D, die m-Bit-Datenblöcke auf n-Bit-Datenblöcke abbildet und wäre nur für E(B) Blöcke definiert. Bei serieller Verschaltung der Abbildungen müsste folglich sichergestellt sein, dass die
Abbildung D nur auf E(B), also auf die Bildmenge der Abbildung E wirkt. Für m = n, wie es vorliegend der Fall ist, gilt also auch E(D(B)) = B für alle möglichen n-Bit-Blöcke, da die Bildmenge von Ξ gleich der Definitionsmenge von D ist. Frei- lieh sollte vorzugsweise E unterschiedlich zu D sein, d.h. E sollte nicht selbstinvertierend sein.
Würden die Verschlüsselungsergebnisdatenblöcke an dem Verschlusselungsausgang der Verschlüsselungseinrichtung 12 der Entschlüsselungseinrichtung 14 bzw. ihrem Entschlüsselungs- eingang direkt zugeführt werden, so würden sich ihre Wirkungen gegenseitig aufheben, d.h. ein Datenblock am Verschlüsselungseingang der Verschlüsselungseinrichtung 12 würde am Entschlüsselungsausgang der Entschlüsselungseinrichtung 14 unverändert ausgegeben werden. Dies wird, wie es noch im folgenden beschrieben werden wird, durch die Permutationseinrichtungen 16 bzw. 18 vermieden. Die Entschlüsselungseinrichtung 14 kann, wie die Verschlüsselungseinrichtung 12 auch, durch, eine oder mehrere S-Boxen realisiert sein, nämlich durch. S-Boxen, die zu denjenigen invers sind, die die Verschlüsselungseinrichtung 12 bilden.
Die Permutationseinrichtung 16 umfasst einen n-Bit-Permuta- tionseingang und einen n-Bit-Permutationsausgang. Die Permu- tationseinrichtung 16 ist vorgesehen, um die Bits eines n- Bit-Datenblocks am Permutationseingang zu permutieren, d.h. umzuordnen, und den permutierten n-Bit-Datenblock am Permuta- tionsausgang auszugeben. Anders ausgedrückt, besteht der n- Bit-Datenblock am Permutationseingang aus einer Folge von n Bits, wobei die Reihenfolge derselben durch die Permutation durch die Permutationseinrichtung 16 geändert wird. Die Permutationseinrichtung 18 weist ebenfalls einen Permutationseingang und einen Permutationsausgang auf. Sie ist vorgesehen, um die n Bits eines n-Bit-Datenblocks am Permutationseingang genau invers zu der Permutation der Permutationseinrichtung 16 zu permutieren. Das bedeutet, würde ein n-Bit- Datenblock mit der Reihenfolge der Bits an dem Permutationseingang der Invers-Permutationseinrichtung 18 angelegt werden, wie sie sich nach Permutation durch die Permutationseinrichtung 16 ergeben hat, ergäbe sich am Permutationsausgang der Invers-Permutationseinrichtung 18 wieder der n-Bit- Datenblock mit der Bitfolge, wie sie am Permutationseingang der Permutationseinrichtung 16 vorlag.
Sowohl Permutationseinrichtung 16 als auch Invers-Permutationseinrichtung 18 können als Leiterbahnen implementiert sein, die die einzelnen n Biteingänge am Permutationseingang mit unterschiedlichen der n Bitausgänge am Permutationsausgang verbinden.
Die Steuereinrichtung 20 ist nun in der Lage, zu verschlüs- selnde Datenblöcke am Eingang 22 und zu entschlüsselnde
Datenblöcke 24 auf verschiedene Weisen durch die Einrichtungen 12, 14, 16 und 18 zu leiten. Gemäß dem Ausführungsbei- spiel von Fig. 1 sorgt die Steuereinrichtung 20 dafür, dass ein zu verschlüsselnder Datenblock am Dateneingang 22 die Abfolge von Verschlüsselungseinrichtung 12, Permutationseinrichtung 16 und Entschlüsselungseinrichtung 14 durchläuft. Dabei wird der zu verschlüsselnde Datenblock 22 nacheinander von der Verschlüsselungseinrichtung 12, der Permutationseinrichtung 16 und der Entschlüsselungseinrichtung 14 verarbei- tet. Zunächst gelangt der zu verschlüsselnde Datenblock - er sei mit B bezeichnet - zu dem Verschlüsselungseingang der Verschlüsselungseinrichtung 12. Dort wird er gemäß der Ver- Schlüsselungsabbildung E auf einen Verschlüsselungsergebnisdatenblock C = E(B) abgebildet. Über die n Bits des n-Bit- Verschlüsselungsergebnisdatenblocks C ist freilich eine Reihenfolge definiert. Mit dieser Reihenfolge wird der Ver- schlüsselungsergebnisdatenblock C an die Permutationseinrichtung 16 angelegt. Die Permutation werde im folgenden P bezeichnet .
7Λm Permutationsausgang ergibt sich dann ein Datenblock mit zu dem Verschlüsselungsergebnisdatenblock C geänderter Reihenfolge der Bits, d.h. C = P(C) . Mit dieser geänderten Reihenfolge wird der Datenblock C an dem Entschlüsselungseingang der Entschlüsselungseinrichtung 14 angelegt. Wie gesagt, würde ohne die Permutation die Entschlüsselungseinrichtung 14 den Block nun auf B abbilden. Nun aber bildet diese den
Datenblock C gemäß der Entschlüsselungsabbildung D auf einen Entschlüsselungsergebnisdatenblock ab, das gleichzeitig das Endergebnis der Verschlüsselung gemäß dem vorliegenden Ausführungsbeispiel darstellt und hier mit CErgebnis angegeben wird. Es gilt CErgebnis = D(C') oder, ausgedrückt für die gesamte Abfolge von durchlaufenen Abbildungen, CErgebnis = D(P(E(B))) .
Die Steuereinrichtung 20 sorgt dafür, dass zu entschlüsselnde Datenblöcke am Eingang 24 eine andere Abfolge von Einrichtungen durchlaufen, nämlich die Abfolge von Verschlüsselungseinrichtung 12, Invers-Permutationseinrichtung 18 und Entschlüsselungseinrichtung 14. Es werde beispielsweise angenommen, dass der zu entschlüsselnde Datenblock der soeben erhaltene verschlüsselte Datenblock CErgebnis ist. Dieser Datenblock
CErgebnis wird von dem Eingang 24 dem Verschlüsselungseingang der Verschlüsselungseinrichtung 12 durchgeführt. Diese wendet auf den Datenblock die Verschlüsselungsabbildung E an. Am Verschlusselungsausgang der Verschlüsselungseinrichtung 12 ergibt sich deshalb ein Verschlüsselungsergebnisdatenblock von CErgebnis' = E(CErgebnis) = E(D(P(E(B)))) = P(E(B) ) = C . Die Abbildung durch die Verschlüsselungseinrichtung 12 macht also genau die Entschlüsselungsabbildung rückgängig, die bei der Verschlüsselung am Ende durchgeführt worden ist. Am Ausgang der Verschlüsselungseinrichtung 12 ergibt sich also ein Verschlüsselungsergebnisdatenblock C , wie auch durch sequen- tielle Anwendung der Verschlüsselungsabbildung E und der
Permutation P an dem ursprünglich verschlüsselten Datenblock erhalten werden würde.
Der Errgebnisverschlüsselungsdatenblock C am Ausgang der Verschlüsselungseinrichtung 12 wird nun dem Permutationseingang der Invers-Permutationseinrichtung 18 zugeführt. Durch diesen Vorgang wird die Reihenfolge der n Bits des n-Bit- Verschlüsselungsergebnisdatenblocks geändert, und zwar genau auf eine Weise, die zu derjenigen umgekehrt ist, die angewen- det wurde, um das Verschlüsselungszwischenergebnis C bei der Verschlüsselung zu erhalten. Das Ergebnis am Permutationsausgang 18 ist CErgebnis" = P-1(C) = P_1(P(E(B))) = E(B) = C. Der Verschlüsselungsergebnisdatenblock C wird folglich bei der Entschlüsselung nicht mit der Reihenfolge der Bits, wie er am Verschlüsselungsausgang vorliegt, an den Entschlüsselungseingang der Entschlüsselungseinrichtung 14 angelegt, sondern mit der durch die Invers-Permutationseinrichtung 18 geänderten Reihenfolge, nämlich als CErgebnis' ' = C. Die Entschlüsselungseinrichtung 14 bildet diesen Datenblock C an ihrem Entschlüs- selungseingang gemäß der Entschlüsselungsabbildung D auf D(E(B) ) = B ab, also wieder der Datenblock im Klartext.
Folglich ist die Vorrichtung 10 von Fig. 1 in der Lage, sowohl Datenblöcke im Klartext in Chiffrat-Datenblöcke zu verschlüsseln als auch Chiffrat-Datenblöcke wieder zurück in Datenblöcke im Klartext zu entschlüsseln, wobei Verschlüsselungseinrichtung 12 und Entschlüsselungseinrichtung 14 sowohl bei Verschlüsselung als auch bei Entschlüsselung bei der Verarbeitung der zu entschlüsselnden bzw. zu verschlüsselnden Datenblöcke beteiligt sind. Bezug nehmend auf die Beschreibung von Fig. 1 wird noch kurz darauf hingewiesen, dass es freilich möglich wäre, zu entschlüsselnde und zu verschlüsselnde Datenblöcke nicht zuerst durch die Verschlüsselungseinrichtung 12, sondern durch die Entschlüsselungseinrichtung 14 zu „schleusen", und erst am Ende durch die Verschlüsselungseinrichtung 12, so dass sich für einen zu verschlüsselnden Datenblock B das Chiffrat CErgebnis = E(P(D(B))) und umgekehrt für das Chiffrat CErgebnis sich wieder der Klartext-Datenblock B aus E (P-1 (D (CErgebnis) ) ) ergäbe, solange nur n = m gilt.
In Bezug auf Fig. 1 wird noch darauf hingewiesen, dass durch geeignete Einschränkung der erlaubten n-Bit-Klartext- Datenblöcke unter den möglichen n-Bit-Kombinationen und geeignete Definition von E als Abbildung von n- auf m-Bit- Datenblöcke und von P, es erzielt werden könnte, dass auch für m > n E(D(P(B))) = P(B) für alle erlaubten B und alle möglichen P gilt, beispielsweise mit n = 3 und m = 6, wenn sichergestellt wird, dass alle 8 erlaubten 3-Bit-Datenblöcke durch Ξ nur auf 8 der 68 möglichen 6-Bit-Datenblöcke abgebildet werden, und die Permutation nur so stattfindet, dass der permutierte Block P(B) wieder einer der acht unter den 120 möglichen ist, oder mit n = 5 und m = 6, wenn nur 30 der 32 möglichen 5-Bit-Datenblöcke erlaubt sind und durch E diese nur auf die 30 der 68 möglichen 6-Bit-Datenblöcke abgebildet werden, zwei Bits mit 1 und 4 Bits mit 0 aufweisen oder umgekehrt, da dann durch eine Permutation jeder 6-Bit- Datenblock wieder auf einen solchen mit derselben Eigenschaft abgebildet wird.
Im folgenden wird weiterhin davon ausgegangen, dass n = m gilt. In diesem Fall ist es möglich, dass die Steuereinrichtung 20 die zu verschlüsselnden Datenblöcke die Abfolge von Verschlüsselungseinrichtung 12, Permutationseinrichtung 16 und Entschlüsselungseinrichtung 14 mehr als nur einmal durchlaufen lässt, und dementsprechend auch die zu entschlüsselnden Datenblöcke mehrmals die Abfolge von Verschlüsselungsein- richtung 12, Invers-Permutationseinrichtung 18 und Entschlüsselungseinrichtung 14. Durch das mehrmaliges Durchlaufen kann die Sicherheit der verschlüsselten, gespeicherten daten gesteigert werden.
Fig. 2 zeigt schematisch Abfolgen von Verarbeitungen, für die die Steuereinrichtung 20 bei Verschlüsselung oder Entschlüsselung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung sorgt. In Fig. 2 wird exemplarisch davon ausgegan- gen, dass n = m = 32 ist, dass also zu verschlüsselnder Datenblock und zu entschlüsselnder Datenblock sowie verschlüsselter und entschlüsselter Datenblock 32 Bit lang ist.
Die obere Zeile von Fig. 2 stellt den Ablauf bei der Ver- schlüsselung dar, wie er durch die Steuereinrichtung 20 bewirkt wird. Ein zu verschlüsselnder Datenblock (ganz links) wird nacheinander iterativ bzw. wiederholt in sogenannten Runden 30 gleichen seriellen Verarbeitungen unterzogen. Jede Runde 30 umfasst eine Abfolge einer Verschlüsselungsabbildung E, einer Permutation P, einer Entschlüsselung D und einer
Permutation P. Kurz wieder Bezug nehmend auf Fig. 1 bedeutete dies, die Steuereinrichtung 20 leitete zu verschlüsselnde Datenblöcke wiederholt durch die Verschlüsselungseinrichtung 12, die Permutationseinrichtung 16, die Entschlüsselungsein- richtung 14 und die Permutationseinrichtung 16, und zwar sequentiell in dieser Reihenfolge. Am Ende (in Fig. 2 ganz rechts) ergäbe sich der verschlüsselte Datenblock am Ausgang 26.
Die Entschlüsselung ist in Fig. 2 in der unteren Zeile dargestellt. Ein zu entschlüsselnder Datenblock wird einer Abfolge von Abbildungen unterworfen, die sich ergibt, wenn man die obere Zeile umgekehrt liest, d.h. von rechts aus, d.h. die Verarbeitungsreihenfolge umkehrt, und dabei jede Abbildung invertiert, d.h. P_1 liest anstatt P, E liest anstatt D und D liest anstatt E, also jede Einrichtung durch ihre inverse Einrichtung vertauscht. Zu entschlüsselnde Datenblöcke werden folglich auch in Runden 32 verarbeitet, wobei jede Runde 32 eine Abfolge von Abbildungen P"1, E, P-1 und D aufweist. Am Ende (ganz rechts in Fig. 2) ergibt sich ein entschlüsselter Datenblock.
Aus Fig. 2 ist deutlich zu erkennen, dass die Runden 30 und 32 eigentlich Doppelrunden darstellen, bei denen eine Verschlüsselung E und eine Entschlüsselung bzw. eine Entschlüsselungsabbildung D' durchgeführt wird. Sowohl bei Verschlüs- seiung als auch Entschlüsselung werden bei dem Ausführungsbeispiel von Fig. 2 folglich die Verschlüsselungseinrichtung und die Entschlüsselungseinrichtung bzw. die zugrundeliegende Hardware zu gleichen Teilen zeitlich versetzt verwendet. Eine Verschlüsselung nach der oberen Zeile in Fig. 2 kann in der Vorrichtung von Fig. 1 freilich zeitgleich zu einer Entschlüsselung nach der unteren Zeile in Fig. 2 durchgeführt werden, wenn die beiden Vorgänge pipelinemäßig versetzt zueinander ausgeführt werden, so dass die Verschlüsselungseinrichtung E gerade für die Verschlüsselung eingesetzt wird, während die Entschlüsselungseinrichtung gerade für die Entschlüsselung arbeitet.
Das Ausführungsbeispiel von Fig. 2 kann freilich beliebig variiert werden. Es ist nicht zwingend, dass bei der Ver- schlüsselung lediglich die Permutation P verwendet wird, während bei der Entschlüsselung lediglich die inverse Permutation P_1 verwendet wird. Alternativ könnte beispielsweise eine Verschlüsselungsrunde 30 auch E, P, D, P_1 lauten, während die entsprechende Entschlüsselungsrunde 32 P, E, P_1, D lautete.
Bei den vorhergehenden Ausführungsbeispielen von Fig. 1 und 2 wurde wenig auf die Implementation der Verschlüsselungs- und Entschlüsselungseinrichtung eingegangen. Anhand der Fig. 3a, 3b und Fig. 4 werden im folgenden Ausführungsbeispiele beschrieben, bei denen die Verschlüsselungsabbildung und die Entschlüsselungsabbildung durch 4x4-S-Boxen implementiert sind, die jeweils vier unterschiedliche Bits des Datenblocks am Verschlüsselungseingang auf vier unterschiedliche Bits des Datenblocks am Verschlüsselungsausgang abbilden. Der Vorteil hierbei besteht darin, dass die Implementierung einer S-Box, wie z.B. einer 32-Bit-S-Box, weniger Hardwareaufwand bedeutet, wenn sie durch kleinere S-Boxen, wie z.B. acht 4x4-S- Boxen, implementiert wird.
Fig. 3a zeigt eine Verschlüsselung gemäß einem Ausführungs- beispiel der vorliegenden Erfindung. Wie bei dem Ausführungsbeispiel von Fig. 1 stehen zur Verschlüsselung mehrere Einrichtungen zur Verfügung, wobei für jede Einrichtung, die eine bestimmte Abbildung durchführt, eine weitere Einrichtung vorhanden ist, die die hierzu inverse Abbildung durchführt. Bei dem Ausführungsbeispiel von Fig. 3a dienen 4x4-S-Boxen Si - SQ als Verschlüsselungseinrichtung 12' , während acht dazu inverse S-Boxen S^1 - Sg 1 als Entschlüsselungseinrichtung 14' dienen. Ferner stehen zwei identische Abbildungseinrichtungen 40 und 42 zur Verfügung, die einen 32-Bit-Datenblock an ihrem 32-Bit-Dateneingang gemäß einer selbstinvertierenden linearen Abbildung bzw. linearen Transformation auf einen 32-Bit- Datenblock an ihrem Datenausgang ausgeben. Ferner sind zwei Rotationseinrichtungen 44 und 46 vorgesehen, die einen 32- Bit-Datenblock an ihrem Rotationseingang gemäß einer Bitrota- tion R um eine vorbestimmt Anzahl von Bits in eine vorbestimmte Richtung rotieren und das Ergebnis der Rotation an ihrem Rotationsausgang ausgeben. Schließlich sind noch zwei 32-Bit-XOR-Verknüpfungseinrichtungen vorgesehen, die aus jeweils 32 XOR-Gattern bestehen, die bitweise die 32 Bit eines 32-Bit-Datenblocks mit den Bits eines 32-Bit-
Rundenschlüssels, und zwar einmal Ki und das andere Mal K2, einer XOR-Verknüpfung unterziehen und das Ergebnis als 32- Bit-Datenblock ausgeben. Diese XOR-Verknüpfungseinrichtungen sind mit 48 bzw. 50 angezeigt.
Gemäß dem Verschlüsselungsbeispiel von Fig . 3a durchläuft ein Klartext-Datenblock B nur eine Doppelrunde 52 , d. h . eine Verarbeitungsabfolge, die einmal bzw. in einer Teilrunde eine Verschlüsselung 12' und das andere Mal bzw. in der anderen Teilrunde eine Entschlüsselung 14' aufweist. Die Doppelrunde 52 ist also in zwei Teilrunden gegliedert, nämlich 52a und 52b, die sequentiell durchgeführt werden. Die erste Teilrunde 52a, die der Klartext-Datenblock B durchläuft, besteht aus der Abfolge von XOR-Verknüpfung 48 mit dem Rundenschlüssel Ki, Verschlüsselungsabbildung durch die S-Boxen Si - S8, lineare Transformation 40 und anschließende Rotation 44. Nach Durchlaufen der Teilrunde 52a erfolgt eine Verarbeitung durch die Teilrunde 52b, die eine Abfolge der XOR-Verknüpfung mit dem Rundenschlüssel K2, eine Entschlüsselungsabbildung durch die inversen S-Boxen ST/1 - S"1 , lineare Transformation 42 und
Rotation 46 aufweist. Nach der Teilrunde 52b ergibt sich das Chiffrat C bzw. der Chiffrat-Datenblock C.
Ein wenig genauer ausgedrückt, durchläuft nach dem Ausführungsbeispiel von Fig. 3a ein zu verschlüsselnder Datenblock B die XOR-Verknüpfungseinrichtung 48. Das Ergebnis am Ausgang der XOR-Verknüpfungseinrichtung 48 ist ein Datenblock, dessen Bits an den Stellen, an denen der Rundenschlüssel Kx eine logische Eins aufweist, zu den entsprechenden Bits des Datenblocks B invertiert ist, während die restlichen Bits zu den entsprechenden Bits des Datenblocks B identisch sind.
Danach werden die Bits den S-Box-Eingängen der S-Boxen Si - S8 zugeführt, und zwar die höchstwertigen vier Bits 31 - 28 der S-Box Sx , die nächst niedrigwertigeren Bits 27 - 24 der S-Box S usw . Die S-Boxen Si - Sg bilden die an ihren S-Box- Eingängen anliegenden 4-Bit-Worte auf abgebildete 4-Bit-Worte gemäß einer ihnen zugeordneten Abbildungsvorschrift ab, die vorzugsweise nichtlinear und für alle S-Boxen unterschiedlich ist. Die vier Bits an den S-Box-Ausgängen der S-Boxen Si - S8 werden daraufhin als 32-Bit-Datenblock einem 32-Bit-Datenein- gang der Lineartransformationseinrichtung 40 zugeführt, und zwar wiederum die vier Bits der S-Box Si als die höchstwertigen vier Bits 31 - 28, die vier ausgegebenen Bits der S-Box S2 als die nächst niedrigwertigeren Bits 27 - 24 ... und die Bits der S-Box S8 als die Bits 3 - 0.
Die Lineartransformationseinrichtung 40 bildet den Datenblock an ihrem Dateneingang durch eine lineare Abbildung auf einen anderen 32-Bit-Datenblock ab. Bei dem vorliegenden Ausführungsbeispiel ist die lineare Abbildung L sogar selbstinvertierend, so dass die zweimalige Ausführung von L an einem Datenblock hintereinander wieder den Datenblock ergäbe, d.h. L( (B)) = B. Der sich ergebende Datenblock am Datenausgang der Lineartransformationseinrichtung 40 wird an die Rotationseinrichtung 44 weitergeleitet, welche die Bits des an ihrem Dateneingang anliegenden Datenblocks um eine von der Rotation R abhängende Anzahl von Bits nach rechts oder links verschiebt, und die dabei herausgeschobenen Bits wieder an den freiwerdenden Bitstellen anhängt. Der Datenblock am Ausgang der Rotationseinrichtung 44 stellt damit das Ergebnis der ersten Teilrunde 52a dar.
Dieser 32-Bit-Datenblock wird dann wieder einer XOR-
Verknüpfung 50 mit nun einem Rundenschlüssel K unterzogen, wobei sich wiederum die Bitstellen invertieren, an denen der Rundenschlüssel K2 eine logische Eins aufweist. Jeweils vier aufeinanderfolgende Bits des sich ergebenden Datenblocks werden dann den inversen S-Boxen S"1 - S"1 an ihren S-Box-
Eingängen zugeführt, die dann inverse Abbildungen an den zugeführten 4-Bit-Wörtern durchführen, nämlich die S-Box S^1 eine zu der Abbildung der S-Box Si inverse Abbildung, die S- Box S"1 eine zu der Abbildung der S-Box S2 inverse Abbildung usw. Die 4-Bit-Wörter an den S-Box-Ausgängen der S-Boxen S^1 - Sg 1 bilden wiederum einen 32-Bit-Datenblock, der an die
Lineartransformationseinrichtung 42 angelegt wird, welcher dieselbe lineare Transformation ausführt wie die Lineartransformationseinrichtung 40. Das Ergebnis der linearen Abbildung ist ein 32-Bit-Datenblock, der dem Eingang der Rotationseinrichtung 46 zugeführt wird, und die diesen Datenblock um dieselbe Anzahl an Bits in dieselbe Richtung rotiert wie die Rotationseinrichtung 44. Der sich ergebende 32-Bit-Datenblock ist das Chiffrat C bzw. der Chiffrat-Datenblock C.
Wie bei dem Ausführungsbeispiel von Fig. 2 könnte auch der Durchlauf mehrerer Doppelrunden 52 vorgesehen sein, um eine Verschlüsselung vorzunehmen, wie es auch bei der Implementierung der Verschlüsselung nach Fig. 3a nach dem Ausführungsbeispiel von Fig. 4 vorgesehen ist. Wie es aus der Darstellung der Verschlüsselungsabfolge von Fig. 3a zu entnehmen ist, wird zwischen jeder Verschlüsselungs- bzw. Entschlüsselungsabbildung 12' bzw. 14' eine Abbildung durchgeführt, die als Verschlüsselungsverknüpfungsabbildung bezeichnet werden kann. Während diese Verknüpfungsverschlüsselungsabbildung bei dem Ausführungsbeispiel von Fig. 1 beispielsweise die Permu- tation P war, ist dies bei dem Ausführungsbeispiel von Fig.
3a die Abfolge der Lineartransformation L, Rotation R und der XOR-Rundenschlüsselverknüpfung 50. Während die S-Boxen Si - S8 und S"1 - Sg 1 für Konfusion im Chiffrat sorgen, d.h. dafür, dass die Beziehung zwischen den Rundenschlüsseln und dem Chiffrat so komplex wie möglich ist, sorgen die linearen
Abbildungen L durch mehrere XOR-Verknüpfungen der Bits in den einzelnen Datenblöcken dafür, dass kleine Änderungen im Klartext-Datenblock große Auswirkungen auf den Chiffrat- Datenblock haben. Vor allem sorgen die linearen Transformati- onen L aber dafür, dass wirksam die Bits, die von den S-Boxen Si - Sβ ausgegeben werden, mit anderen Bits anderer Bitpositionen vermischt und an andere Bitpositionen verschoben werden, damit dieselben nicht durch die einfache Rotation einfach an vorbestimmte nachfolgende inverse S-Boxen gelan- gen.
Bezug nehmend auf Fig. 3a wird noch darauf hingewiesen, dass bei der Beschreibung des Verschlüsselungsvorgangs davon ausgegangen worden ist, dass zwei Lineartransformationsein- richtungen 40 und 42 sowie zwei Rotationseinrichtungen 44 und 46 sowie zwei XOR-Verknüpfungseinrichtungen 48 und 50 vorgesehen sind. Dies ist freilich nicht notwendig. Bei jeder Teilrunde 52a - 52b könnte dieselbe Einrichtung durchlaufen werden, d.h. bei der Teilrunde 52a dieselbe Lineartransformationseinrichtung wie bei der Teilrunde 52b, bei der Teilrunde 52a dieselbe Rotationseinrichtung wie bei der Teilrunde 52b und bei der Teilrunde 52a dieselbe XOR-Verknüpfungseinrich- tung unter Verwendung des Schlüssels Kx wie bei der Teilrunde 52b, wobei bei letzterer jedoch der Rundenschlüssel K2 verwendet wird. Die mehrfache Nutzung dieser Einrichtungen würde lediglich den Steuerungsaufwand für die Steuerungseinrichtung (nicht gezeigt) erhöhen, um dafür zu sorgen, dass der Klartext-Datenblock B bzw. die aus demselben hergeleiteten Zwischenergebnisse die Einrichtungen in der geeigneten Reihenfolge durchlaufen. Das noch zu erörternde Ausführungsbeispiel von Fig. 4 bezieht sich auf ein Implementierungsbeispiel für den Verschlüsselungsablauf von Fig. 3a unter Verwendung jeweils zweier Einrichtungen, wie es in Fig. 3a dargestellt worden ist.
Fig. 3b zeigt eine Entschlüsselungsrunde zur Entschlüsselung eines Chiffrat-Datenblocks C, wie er durch eine Verschlüsselungsrunde 52 von Fig. 3a erhalten wird. Die Entschlüsselungsrunde ist allgemein mit 60 angezeigt. Sie besteht wiederum aus zwei Teilrunden 62 und 64. Ein Chiffrat-Datenblock C durchläuft in einer Entschlüsselungsrunde dieselben S-Boxen Si - S8 bzw. S^1 - Sg 1 wie bei der Verschlüsselungsrunde von
Fig. 3a, bzw. dieselbe Verschlüsselungs- und Entschlüsselungseinrichtung 12' und 14'. Die übrigen Einrichtungen können je nach Implementierung zu den Einrichtungen bei der Verschlüsselung teilweise identisch gewählt werden oder eigens für die Entschlüsselung vorgesehen werden. In Fig. 3b sind die übrigen Einrichtungen mit eigenen Bezugszeichen versehen, so als ob zu denjenigen von Fig. 3a verschieden wären, wobei das Ausführungsbeispiel bezüglich der Linearabbildungseinrichtungen eine gegenteilige Implementierungsmög- lichkeit darstellt. Ein Chiffrat-Datenblock C durchläuft während einer Entschlüsselungsrunde 60 noch zwei Invers-Rotationseinrichtungen 66, 68, zwei Lineartransformationseinrichtungen 70 und 72 und zwei XOR—Verknüpfungseinrichtungen 74 und 76.
Bei der Entschlüsselung werden an dem Chiffrat-Datenblock die Abbildungen durchgeführt, wie sie auch am Klartext-Datenblock im Fall der Verschlüsselung durchgeführt werden, allerdings in umgekehrter Reihenfolge und invertiert. Das heißt, dass der Rotation 46 von Fig. 3a entsprechend am Chiffrat- Datenblock C zunächst eine inverse Rotation durch die Rotationseinrichtung 66 durchgeführt wird, d.h. eine Verschiebung der Bits des Chiffrat-Datenblocks C um eine Anzahl von Bits, die zu derjenigen der Rotation R identisch ist, aber in die entgegengesetzte Richtung. Der so bitrotierte 32-Bit-
Datenblock wird an die Lineartransformationseinrichtung 70 weitergegeben. Diese führt dieselbe lineare Abbildung an dem eingehenden Datenblock durch wie auch die Lineartransformationseinrichtungen 40 und 42 und auch die Lineartransformati- onseinrichtung 72. Dies liegt daran, dass, wie im Vorhergehenden erwähnt, die lineare Abbildung gemäß dem vorliegenden Ausführungsbeispiel selbstinvertierend ist, so dass L(L(B)) = B gilt. Danach wird dem Durchlauf der S-1-Boxen von Fig. 3a entsprechend der sich am Ausgang der Lineartransformations- einrichtung 70 ergebende 32-Bit-Datenblock in Einheiten von 4-Bit-Wörtern den S-Boxen Si - S8 als der Verschlüsselungseinrichtung 12' zugeführt. Die sich ergebenden 32 Bits werden mit dem Rundenschlüssel K2 XOR-verknüpft . Diese Verknüpfung entspricht der Verknüpfung 50 von Fig. 3a. Auch die XOR- Verknüpfung 50 ist wie die selbstinvertierende Abbildung L eine selbstinvertierende Abbildung, da die nochmalige Invertierung der Bits an den Bitstellen, an denen der 2-Bit- Rundenschlüssel K2 eine Eins aufweist, wieder den ursprünglichen Datenblock liefert. Das Ergebnis der XOR-Verknüpfung 74 ist das Ergebnis der Teilrunde 62. Die Teilrunde 64, die sich an die Teilrunde 62 anschließt, entspricht dann einer Umkehr der Teilrunde 52a der Verschlüsselungsrunde 52 von Fig. 3a. Dort wird der Datenblock dann sequentiell der Invers- Rotationseinrichtung 68, der Lineartransformationseinrichtung 72, den inversen S-Boxen 14' und der XOR-Verknüpfung mit dem Rundenschlüssel Ki zugeführt, woraufhin der Klartext- Datenblock M erhalten wird, wie er in Fig. 3a zu dem Chiffrat C verschlüsselt worden ist.
Bezug nehmend auf Fig. 4 wird nun eine Implementierung für eine Ver-/Entschlüsselungsvorrichtung beschrieben, die in der Lage ist, Verschlüsselung und Entschlüsselung auf die in Fig. 3a und 3b beschriebene Weise durchzuführen. Dabei umfasst die Ver-/Entschlüsselungsvorrichtung von Fig. 4 die Einrichtungen von Fig. 3a sowie zusätzlich einige Einrichtungen aus Fig. 3b. Zur Verschlüsselung und Entschlüsselung gemeinsam verwen- det werden jedoch die Lineartransformationseinrichtungen aus Fig. 3a, so dass diese in Fig. 4 lediglich die Bezugszeichen von Fig. 3a aufweisen, d.h. 40 und 42, und die Lineartransformationseinrichtungen 70 und 72 durch dieselben tatsächlichen Einrichtungen implementiert wurden.
Die Ver-/Entschlüsselungsvorrichtung von Fig. 4 ist allgemein mit 100 angezeigt. Die Ver-/Entschlüsselungsvorrichtung 100 umfasst neben den Invers-Rotationseinrichtungen 66, 68, den Lineartransformationseinrichtungen 42, 40, den Rotationsein- richtungen 46, 44, den XOR-Verknüpfungseinrichtungen 48, 50,
74 und 76, den S-Boxen Si - S8 und den inversen S-Boxen S -1 1
Sg 1 Schalter 102, 104, 106, 108, 110 und 112 sowie eine Steuereinheit 114. Ein Dateneingang 116 ist für den Empfang der zu verschlüsselnden Datenblöcke vorgesehen, ein Datenein- gang 118 für den Empfang der zu entschlüsselnden Datenblöcke, ein Ausgang 120 für die Ausgabe der verschlüsselten Datenblöcke und ein Ausgang 122 für die Ausgabe der entschlüsselten Datenblöcke .
In Fig. 4 sind die die Einrichtung verbindenden Leitungen jeweils 32 -Bit-Leitungen und entweder durch eine gestrichelte Linie dargestellt oder durch eine durchgezogene Linie, wobei gestrichelte Linien den Datenweg anzeigen, der für die Entschlüsselung relevant ist, während die durchgezogenen Leitungen bei der Verschlüsselung verwendet werden. Dateneingänge von Einrichtungen und Datenleitungen, die gemeinsam bei Entschlüsselung und Verschlüsselung verwendet werden, sind durch parallel laufende gestichelte und durchgezogene Linien dargestellt. Die Pfeile sollen das Lesen der Ver-/Entschlüs- selungsvorrichtung erleichtern.
Mit dem Verschlüsselungsteil beginnend ist die 32-Bit-XOR-
Verknüpfungseinrichtung 48 mit ihrem Ausgang mit dem Eingang der S-Boxen Si - S8 verbunden. Der Ausgang der S-Boxen Sx - S8 ist mit einem 32-Bit-Eingang des 32-Bit-Schalters 106 verbunden. Der Schalter weist zwei 32-Bit-Ausgänge auf und ist vorgesehen, um gemäß einem Steuersignal c0 das derselbe an einem Steuereingang von der Steuereinheit 114 erhält, den Schaltereingang entweder mit dem einen Schalterausgang oder dem anderen Schalterausgang zu verbinden. Wie es im folgenden noch detailliert erörtert werden wird, ist ein erster der Schalterausgänge Verschlüsselungsrunden zugeordnet, während der andere Schalterausgang fest Entschlüsselungsrunden zugeordnet ist. Der Verschlüsselungsschalterausgang ist mit einem Eingang der Lineartransformationseinrichtung 40 verbunden. Der Ausgang der Lineartransformationseinrichtung 40 ist mit einem 32-Bit-Schaltereingang des Schalters 108 verbunden.
Auch der Schalter 108 erhält an einem Steuereingang desselben das Signal c0 von der Steuereinheit 114 und verbindet dementsprechend den Schaltereingang entweder mit einem 32-Bit- Verschlüsselungsschalterausgang oder einem 32- BitEntschlüsselungsschalterausgang .
Der Verschlüsselungsschalterausgang des Schalters 108 ist mit einem Eingang der Rotationseinrichtung 44 verbunden. Ein Ausgang der Rotationseinrichtung 44 ist mit einem Datenein- gang der Verschlüsselungseinrichtung 50 verbunden, die an ihrem 32-Bit-Schlüsseleingang den Rundenschlüssel K2 enthält, während an dem Schlüsseleingang der Schlüsseleinrichtung 48 der Rundenschlüssel Ki anliegt. Der Ausgang der XOR- Verknüpfungseinrichtung 50 ist mit einem Eingang der ST/1 - S"1 verbunden. Die Ausgänge Letztgenannter sind mit einem 32-Bit- Schaltereingang des Schalters 110 verbunden, der wie die Schalter 106 und 108 an einem Steuereingang desselben das Steuersignal c0 von der Steuereinrichtung 114 erhält und abhängig von demselben den 32-Bit-Steuereingang entweder mit einem 32-Bit-Verschlüsselungsschalterausgang oder einem 32- Bit-Entschlüsselungsschalterausgang verbindet. Der Verschlüsselungsschalterausgang des Schalters 110 ist mit einem Eingang der Lineartransformationseinrichtung 42 verbunden, deren Ausgang wiederum mit einem 32-Bit- Schaltereingang des Schalters 102 verbunden ist. Dieser Schalter 102 erhält ebenfalls an einem Steuereingang desselben das Steuersignal Crj von der Steuereinheit 114 und schaltet demgemäss den Schaltereingang entweder auf einen 32- Bit-Verschlüsselungssteuerausgang oder einen 32-Bit- Entschlüsselungsschalterausgang. Der 32-Bit-Verschlüsselungsschalterausgang des Schalters 102 ist mit einem Eingang der Rotationseinrichtung 46 verbunden, deren Ausgang wiederum mit einem 32-Bit-Schaltereingang des Schalters 104 verbunden ist. Dieser Schalter 104 erhält an einem Steuereingang desselben ein Steuersignal bo von der Steuereinheit 114 und weist einen 32-Bit-Rundenbeendigungs- schalterausgang und einen 32-Bit-Rundenfortführungsschalter- ausgang auf. Der Schalter 104 verbindet den Schaltereingang je nach Signal b0 entweder mit dem Rundenbeendigungsschalter- ausgang oder dem Rundenfortführungsschalterausgang. Der Run- denfortführungsschalterausgang ist mit dem Eingang der XOR- Verknüpfungseinrichtung 48 verbunden, während der Rundenbeen- digungsschalterausgang mit dem Ausgang 120 der Vorrichtung 100 verbunden ist.
Hinsichtlich der Entschlüsselung ist der Eingang 118 mit einem Eingang der inversen Rotationseinrichtung 66 verbunden. Ihr Ausgang ist wiederum mit dem Eingang der Lineartransfor- mationseinrichtung 42 verbunden. Der Entschlüsselungsschal- terausgang des Schalters 102 ist mit dem Eingang der S-Boxen Si - S8 verbunden. Der Entschlüsselungsschalterausgang des Schalters 106 ist mit einem Dateneingang der XOR-Verknüp- fungseinrichtung 74 verbunden, die an ihrem Schlüsseleingang den Rundenschlüssel K2 erhält und die mit ihrem Datenausgang mit einem Eingang der Invers-Rotationseinrichtung 68 verbunden ist. Der Ausgang der Invers-Rotationseinrichtung 68 ist mit dem Eingang der Lineartransformationseinrichtung 40 verbunden. Der Entschlüsselungsschalterausgang des Schalters 108 ist mit dem Eingang der inversen S-Boxen S"1 - Sg 1 verbunden. Der Entschlüsselungsschlüsselausgang des Schalters 110 ist mit dem Dateneingang der XOR-Verknüpfungseinrichtung 76 verbunden, die an ihrem Schlüsseleingang den Rundenschlüssel Ki erhält, und die mit ihrem Datenausgang mit einem Schalter- eingang des Schalters 112 verbunden ist. Der Schalter 112 erhält an einem Steuereingang desselben das Steuersignal bo von der Steuereinheit 114 und verbindet dementsprechend den Schaltereingang entweder mit einem Entschlüsselungsrundenbe- endigungsschalterausgang oder mit einem Entschlüsselungsrun- denfortführungsschalterausgang. Der Entschlüsselungsrunden- fortführungsschalterausgang des Schalters 112 ist mit dem Eingang der Invers-Rotationseinrichtung 66 verbunden, während der Entschlüsselungsrundenbeendigungsschalterausgang mit dem Ausgang 122 der Vorrichtung 100 verbunden ist.
Nachdem im Vorhergehenden der Aufbau der Vorrichtung von Fig. 4 beschrieben worden ist, wird im folgenden ihre Funktionsweise beschrieben.
Zum Zwecke der Veranschaulichung wird angenommen, dass die Ver-/Entschlüsselungsvorrichtung 100 von Fig. 4 ausgebildet ist, um zwei Verschlüsselungs (doppel) runden und zwei Entschlüsselungs (doppel) runden durchzuführen, wobei die Beschreibung jedoch ohne weiteres auch auf mehr Doppelrunden erweitert werden kann. Zunächst sei eine Verschlüsselung betrachtet. Ein zu verschlüsselnder Datenblock liege am Dateneingang 116 an. Die Steuereinheit 114 steuert dann durch das Signal c0 alle Schalter 102, 106, 108 und 110 so an, dass sie ihren jeweili- gen Steuereingang mit dem Verschlüsselungssteuerausgang verbinden. Dies bedeutet nichts anderes, als dass die Reihenfolge von Einrichtungen, die der an dem Eingang 116 anliegende und zu verschlüsselnde Datenblock durchläuft, bis zum Schalter 104 festgelegt ist, nämlich auf die Folge von XOR- Verknüpfungseinrichtung 48, S-Boxen 12', Lineartransformationseinrichtung 40, Rotationseinrichtung 44, XOR- Verknüpfungseinrichtung 50, inverse S-Boxen 14', Lineartransformationseinrichtung 42, Rotationseinrichtung 46, ganz so wie es auch bereits Bezug nehmend auf Fig. 3a beschrieben worden ist.
Die Steuereinheit 114 muss das Signal c0, während der Datenblock diese Abfolge durchläuft, nicht verändern. Überhaupt verändert die Steuereinheit 114 das Signal c0 für den gesam- ten Verschlüsselungsvorgang, d.h. auch für die nachfolgenden Runden, nicht. Das Steuersignal c0 bleibt für den gesamten Verschlüsselungsvorgang gleich, so dass sich nur ein geringer Steueraufwand für die Steuereinheit 114 ergibt. Mit dem Steuersignal bo sorgt die Steuereinheit 114 dafür, dass der Schalter 104 nach dem ersten Rundendurchlauf, d.h. nach der
Verarbeitung durch die Rotationseinrichtung 46, seinen Schaltereingang mit dem Verschlüsselungsrundenfortführungsschal- terausgang verbindet, so dass das Zwischenergebnis bzw. der Datenblock, den die Rotationseinrichtung 46 ausgibt, wieder an die XOR-Verknüpfungseinrichtung 48 angelegt wird, die den Beginn der durch die Schalter 106, 108, 110 und 102 festgelegten Verschlüsselungsrunde bildet.
Nach dem zweiten Durchlauf bzw. der zweiten Verarbeitung durch die Rotationseinrichtung 46 sorgt die Steuereinheit 114 dafür, dass der Schalter 104 den Schalterausgang nun auf den Verschlüsselungsrundenbeendigungsschalterausgang geschaltet hat (gestrichelte Schalterstellung) , so dass das Chiffrat bzw. der Chiff at-Datenblock am Datenausgang 120 ausgegeben wird, wie er sich nach zweimaligem Rundendurchlauf 52, wie in Fig. 3a dargestellt ist, ergibt.
Ist eine Entschlüsselung durchzuführen, sorgt die Steuereinheit 114 durch das Steuersignal c0 dafür, dass die Schalter 102, 106, 108 und 110 ihren Steuereingang mit dem Entschlüsselungssteuerausgang verbinden (in Fig. 4 der nicht darge- stellter Schalterzustand) . Dadurch wird ein zu entschlüsselnder Datenblock, der am Datenausgang 118 anliegt, ohne weiteres durch eine Abfolge von Einrichtungen gelenkt, die der Abfolge von Fig. 3b entspricht, nämlich durch die Folge von inverser Rotationseinrichtung 66, Lineartransformationsein- richtung 42, S—Boxen Si - S8, XOR-Verknüpfungseinrichtung 74, Invers-Rotationseinrichtung 68, Lineartransformationseinrichtung 40, inverse S-Boxen 14', XOR-Verknüpfungseinrichtung 76. Das Steuersignal bo stellt die Steuereinheit 114 derart ein, dass der Schalter 112 den Datenblock, der sich nach der ersten Entschlüsselungsrunde ergeben hat, wieder an den
Eingang der Invers-Rotationseinrichtung 66 angelegt wird, d.h. derart, dass der Schalter 112 seinen Schaltereingang mit dem Entschlüsselungsrundenfortführungsschalterausgang verbindet. Die Steuereinheit 114 sorgt dann durch Umschalten des Signals b0 dafür, dass nach dem zweiten Durchlaufen der
Entschlüsselungsrunde der sich schließlich ergebende Datenblock als der entschlüsselte Datenblock am Ausgang 122 ausgegeben wird, indem nämlich der Schalter 112 seinen Steuereingang auf den Entschlüsselungsrundenbeendigungsschalterausgang schaltet (gestrichelte Schalterstellung) .
Die vorhergehenden Ausführungsbeispiele sind geeignet, um als Verschlüsselung von Speicherinhalten als Schutz gegen unberechtigtes Auslesen dieser Speicherinhalte verwendet zu werden. Die Ausführungsbeispiele können aber auch zur Onlineoder Busverschlüsselung in anderen Anwendungen verwendet werden, wenn beispielsweise die dahinterstehende Verschlüsselungshardware klein gehalten werden soll.
Die vorhergehenden Ausführungsbeispiele von Fig. 3a - 4 bezogen sich auf eine Ver-/Entschlüsselung durch eine kryp- tographisch vollwertige Blockchiffre. Ein Zurückrechnen oder Rückschließen von den in verschlüsselter Form vorliegenden Daten auf den Klartext ist für einen Angreifer nicht oder nur mit unverhältnismäßig großem Aufwand möglich. Bei dem Ausfüh- rungsbeispiel von Fig. 4 beispielsweise oder von Fig. 2 beansprucht beispielsweise die Hardwareimplementierung keine große Fläche, da die Blockchiffre mit variabler Rundenzahl konzipiert ist. Damit ist die kryptographische Stärke der Verschlüsselung skalierbar auf Kosten der Performance bzw. Leistungsfähigkeit oder Geschwindigkeit, nicht aber auf
Kosten der Fläche. Je mehr Runden durchlaufen werden, um so höher ist die Verschlüsselungsstärke.
Bei allen vorhergehenden Ausführungsbeispielen wurde die zur Implementierung notwendige Fläche klein gehalten, obwohl
Verschlüsselung und Entschlüsselung gleichermaßen durchführbar sind. Das wurde erreicht, indem bei den Ausführungsbeispielen von Fig. 3a - 4 S-Box-Schichten durchlaufen wurden. Wenn die erste Schicht die S-Box S enthält, dann enthält die zweite Schicht die dazu inverse S-Box Inv(S') = S"1.
Bei den Ausführungsbeispielen von Fig. 3a - 4 wurde eine Rotation verwendet. Freilich wäre es auch möglich, die Rotation allgemein durch eine Permutation zu ersetzen. Auf jeden Fall stellt Permutation bzw. Rotation sicher, dass sich die Wirkungen der S-Boxen nicht gegenseitig abschwächen.
Bei den Ausführungsbeispielen von Fig. 3a - 4 wurde als weiteres Prinzip eine selbstinvertierende lineare Transforma- tion eingesetzt. Eine lineare Transformation L heißt selbstinvertierend, wenn (L(x)) = x gilt für alle Input-Vektoren x. In einer zweiten Realisierungsvariante könnte anstelle einer selbstinvertierenden linearen Transformation L ein Paar linearer Transformationen i und L2 verwendet werden, die zueinander invers sind. Es gilt dann also Lχ(L2(x)) = 2( ι(x)) = x für alle Input-Vektoren x.
Die S-Boxen der Ausführungsbeispiele 3a - 4 sorgten für Konfusion, die linearen Transformationen für Diffusion der Klartext-Bits. Durch das Einbringen einer entsprechenden Anzahl von Multiplexern oder Schaltern konnte ein und dassel- be Modul dann auch die Entschlüsselung bewerkstelligen, indem eine Steuereinheit über diese Schalter oder Multiplexer dafür sorgte, dass die Einrichtungen entsprechend zu einer entsprechenden Abfolge von Einrichtungen verschaltet werden. Anders als bei dem Ausführungsbeispiel von Fig. 4 kann die Steuerung jedoch auch während einer Doppelrunde dynamisch erfolgen, so dass eine Einrichtung während einer Doppelrunde zweimal durchlaufen wird. So könnten beispielsweise bei dem Ausführungsbeispiel von Fig. 4 die Lineartransformationseinrichtungen 40, 42, die Invers-Rotationseinrichtungen 66, 68 und die Rotationseinrichtungen 46 und 44 durch jeweils eine ersetzt werden. Der Nachteil wäre der erhöhte Steuerungsaufwand für die Steuereinheit 114, wohingegen der Vorteil in der geringeren Chipfläche läge.
Im Endefekt bedeutet dies für jedes der im Vorhergehenden beschriebenen Ausführungsbeispiele, dass dasselbe Stück Hardware sowohl für die Verschlüsselung als auch für die Entschlüsselung genutzt wird.
In bezug auf die vorhergehende Beschreibung wird ferner noch darauf hingewiesen, dass, obwohl im Vorhergehenden beschrieben worden ist, dass bei den Verschlüsselungsabbildungen die Länge der Ursprungsdatenblöcke gleich oder kleiner ist als die der sich aus der Verschlüsselungsabbildung S ergebenden Datenblöcke (d. h. n ≤ m) , es auch möglich ist, gleichsam wie bei dem DES-Algorithmus n > m zu wählen, wie z.B. mehrere 6x4-S-Boxen, wenn dann beispielsweise eine Redundanz schaf- fende Expansion des Datenblocks vor Verschlüsselung S bzw. Kompression nach Entschlüsselung S-1 durchgeführt wird.
Im Gegensatz zu Feistel-Chiffren und deren implementierende Ver-/Entschlüsselungsvorrichtungen besitzen die Ausführungsbeispiele der vorliegenden Erfindung die Vorteile, dass keine so hohe Rundenzahl erforderlich ist, um dasselbe Sicherheitsniveau zu erreichen, was wiederum die Performance bzw. Leistungsfähigkeit bzw. Effektivität gegenüber diesen Feistel- Chiffre-Ver-/Entschlüsselungsvorrichtungen erhöht.
Die vorhergehenden Ausführungsbeispiele benötigten lediglich ein Minimum an Elementarbausteinen, nämlich beispielsweise bei den Ausführungsbeispielen von Fig. 3a - 4 S-Boxen und lineare Transformationen. Mit jedem verwendeten Elementarbaustein ist auch der zugehörige inverse Elementarbaustein in die Ver-/Entschlüsselungsvorrichtung eingebaut. Dieser kann dann die Operation des Elementarbausteins wieder rückgängig machen, was für die Entschlüsselung ausgenutzt wird. Für die Verschlüsselung ist darauf geachtet worden, dass sich die
Wirkungen der Elementarbausteine und der inversen Elementarbausteine gegenseitig nicht abschwächen oder gar aufheben, sondern ergänzen. Wie dies im Vorhergehenden anhand der Rotation und Permutation beschrieben worden ist, kann dies durch eine geeignete Drahtführung erzielt werden, die keine Extrafläche kostet. Mathematisch entspricht eine solche Drahtführung eben einer Permutation bzw. Rotation von Datenbits .
In bezug auf die vorhergehende Beschreibung wird noch darauf hingewiesen, dass die Rundenanzahlen, d.h. die Anzahl an Doppelrunden, nicht auf eins oder zwei festgelegt ist, sondern jeglichen anderen Wert annehmen kann. Die Verschlüsselungsrunden von Fig. 3a und 3b können beliebig oft durchlau- fen werden. Das Chiffrat C stellt dann je nachdem eine 1-, 2- , ... N-Doppelrundenverschlüsselung bzw. eine 2-, 4-, 6- ... 2N-Runden-Verschlüsselung dar, mit N e IN . Die Verschlüsselungseinrichtung kann neutral auch als eine erste Abbildungseinrichtung mit einer ersten Abbildung und die Entschlüsselungseinrichtung als eine zweite Abbildungs- einrichtung mit einer dazugehörigen zu der ersten inversen Abbildung betrachtet werden.
Insbesondere wird darauf hingewiesen, dass abhängig von den Gegebenheiten das erfindungsgemäße Schema zur Ver/Entschlüsselung auch in Software implementiert sein kann. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder einer CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
Bezugszeichenliste
10 Ver-/Entschlüsselungs orrichtung 12 Verschlüsselungseinrichtung 14 Entschlüsselungseinrichtung 16 Permutationseinrichtung 18 Invers-Permutationseinrichtung 20 Steuereinrichtung 22 Dateneingang 24 Dateneingang 26 Datenausgang 28 Datenausgang 30 Verschlüsselungsrunde 32 Entschlüsselungsrunde 40 Lineartransformationseinrichtung 42 Lineartransformationseinrichtung 44 Rotationseinrichtung 46 Rotationseinrichtung 48 XOR-Verknüpfungseinrichtung 50 XOR-Verknüpfungseinrichtung 52 Verschlüsselungsrunde 52a Teilrunde 52b Teilrunde 60 Entschlüsselungsrunde 62 Teilrunde 64 Teilrunde 66 Invers-Rotationseinrichtung 68 Invers-Rotationseinrichtung 70 Lineartransformationseinrichtung 72 Lineartransformationseinrichtung 74 XOR-Verknüpfungseinrichtung 76 XOR-Verknüpfungseinrichtung
100 Ver-/EntschlüsselungsVorrichtung
102 Schalter 104 Schalter
106 Schalter
108 Schalter 110 Schalter
112 Schalter
114 Steuereinheit
116 Dateneingang 118 Dateneingang
120 Datenausgang
122 Datenausgang
900 Ver-/EntschlüsselungsVorrichtung
902 Verschlüsselungseinheit 904 Entschlüsselungseinheit

Claims

Patentansprüche
1. Vorrichtung zur Verschlüsselung eines zu verschlüsseln- den Datenblocks in einen verschlüsselten Datenblock und zur Entschlüsselung eines zu entschlüsselnden Datenblocks in einen entschlüsselten Datenblock mit
einer Verschlüsselungseinrichtung (12), die einen Verschlüs- selungseingang und einen Verschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Verschlüsselungseingang auf einen Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang gemäß einer Verschlüsselungsabbildung;
einer Entschlüsselungseinrichtung (14), die einen Entschlüsselungseingang und einen Entschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Entschlüsselungseingang auf einen Entschlüsselungsergebnisdatenblock am Entschlüsselungsausgang gemäß einer Entschlüsselungsabbildung, die zu der Verschlüsselungsabbildung invers ist;
einer Verschlüsselungsverknüpfungseinrichtung (18) zum Abbilden des Verschlüsselungsergebnisdatenblocks auf einen abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Verschlüsselungsverknüpfungsabbildung und Zuführen desselben an den Entschlüsselungseingang der Entschlüsselungseinrichtung (14);
einer Entschlüsselungsverknüpfungseinrichtung (18) zum Abbil- den des Verschlüsselungsergebnisdatenblocks auf einen invers abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Entschlüsselungsverknüpfungsabbildung, zu der die Verschlüs- selungsverknüpfungsabbildung invers ist, und Zuführen dessel¬ ben an den Entschlüsselungseingang der Entschlüsselungsein- richtung (14 ) ; und einer Steuereinrichtung (20; 114), die ausgebildet ist, um zu bewirken, dass der zu verschlüsselnde Datenblock die Abfolge von Verschlüsselungseinrichtung (12), Verschlüsselungsver- knüpfungseinrichtung (16) und Entschlüsselungseinrichtung (14) zumindest einmal durchläuft, um den verschlüsselten Datenblock zu erhalten, und dass der zu entschlüsselnde Datenblock die Abfolge von Verschlüsselungseinrichtung (12), Entschlüsselungsverknüpfungseinrichtung (18) und Entschlüsselungseinrichtung (14) zumindest einmal durchläuft, um den entschlüsselten Datenblock zu erhalten.
2. Vorrichtung gemäß Anspruch 1, wobei die Verschlüsse- lungsverknüpfungseinrichtung (16) und die Entschlüsselungsverknüpfungseinrichtung (18) ausgebildet sind, um den Ver- schlüsselungsergebnisdatenblock derart dem Entschlüsselungseingang der Entschlüsselungseinrichtung (14) zuzuführen, dass bei Identitätsabbildung anstelle der Verschlüsselungs- verknüpfungs- bzw. Entschlüsselungsverknüpfungsabbildung ein Datenblock bei Durchlaufen der Abfolge von Verschlüsselungs- einrichtung (12), Verschlüsselungsverknüpfungseinrichtung (16) und Entschlüsselungseinrichtung (14) sowie bei Durchlaufen der Abfolge von Verschlüsselungseinrichtung (12), Ent- schlüsselungsverknüpfungseinrichtung (18) und Entschlüsselungseinrichtung (14) auf sich selbst abgebildet werden würde.
3. Vorrichtung gemäß Anspruch 1 oder 2, bei der der zu verschlüsselnde Datenblock, der verschlüsselte Datenblock, der zu entschlüsselnde Datenblock und der entschlüsselte Datenblock n-Bit-Datenblöcke sind, wobei n eine vorbestimmte Ganzzahl ist.
4. Vorrichtung gemäß einem der vorhergehenden Ansprüche, bei der die Verschlüsselungseinrichtung (12) einen n-Bit- Verschlüsselungseingang und einen m-Bit-
Verschlüsselungsausgang aufweist und ausgebildet ist, um einen n-Bit-Datenblock am Verschlüsselungseingang auf einen m-Bit-Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang gemäß der Verschlüsselungsabbildung abzubilden, und bei der die Entschlüsselungseinrichtung (14) einen m-Bit- Verschlüsselungseingang und einen n-Bit- Entschlüsselungsausgang aufweist und ausgebildet ist, um einen m-Bit-Datenblock am Entschlüsselungseingang auf einen n-Bit-Verschlüsselungsergebnisdatenblock am Entschlüsselungsausgang gemäß der Entschlüsselungsabbildung abzubilden.
5. Vorrichtung gemäß Anspruch 4, bei der die Verschlüsselungsabbildung und die Entschlüsselungsabbildung nichtlineare Abbildungen sind.
6. Vorrichtung gemäß Anspruch 4 oder 5, bei der die Ver- schlüsselungsverknüpfungseinrichtung folgendes Merkmal aufweist:
eine erste Permutationseinrichtung mit einem ersten m-Bit- Permutationseingang und einem ersten m-Bit- Permutationsausgang zum Permutieren eines m-Bit-Datenblocks am ersten m-Bit-Permutationseingang zu einem permutierten m- Bit-Datenblock am ersten m-Bit-Permutationsausgang gemäß einer Permutationsvorschrift, wobei die erste Permutationseinrichtung seriell zwischen den m-Bit- Verschlüsselungsausgang und den m-Bit-Verschlüsselungseingang schaltbar ist, und
bei der die Entschlüsselungsverknüpfungseinrichtung folgendes Merkmal aufweist:
eine zweite Permutationseinrichtung mit einem zweiten m-Bit- Permutationseingang und einem zweiten m-Bit- Permutationsausgang zum Permutieren eines m-Bit-Datenblocks am zweiten m-Bit-Permutationseingang zu einem permutierten m- Bit-Datenblock am zweiten m-Bit-Permutationsausgang gemäß einer zweiten Permutationsvorschrift, die zu der ersten Permutationsvorschrift invers ist, wobei die zweite Permuta- tionseinrichtung seriell zwischen den m-Bit-
Verschlüsselungsausgang und den m-Bit-Entschlüsselungseingang schaltbar ist,
wobei die erste und die zweite Permutationseinrichtung derart zwischen den m-Bit-Verschlüsselungsausgang und den m-Bit- Entschlüsselungseingang schaltbar sind, dass ein Durchlauf des zu verschlüsselnden Datenblocks durch die Abfolge von Verschlüsselungseinrichtung (12), Verschlüsselungsverknüp- fungseinrichtung (16) und Entschlüsselungseinrichtung (14) zu einem Datenblock führt, der bei Durchlaufen der Abfolge von Verschlüsselungseinrichtung (12), Entschlüsselungsverknüp- fungseinrichtung (18), Entschlüsselungseinrichtung (14) wieder den zu verschlüsselnden Datenblock ergäbe.
7. Vorrichtung gemäß Anspruch 6, bei der die erste Permutationseinrichtung (16) und die zweite Permutationseinrichtung 818) jeweils als m Leiterbahnen implementiert sind, die sich zwischen dem ersten bzw. zweiten Permutationseingang einer- seits und dem ersten bzw. zweiten Permutationsausgang andererseits erstrecken.
8. Vorrichtung gemäß einem der Ansprüche 4 bis 7, bei der die Verschlüsselungsverknüpfungseinrichtung (16) folgendes Merkmal aufweist:
eine erste Linearabbildungseinrichtung (40) mit einem ersten m-Bit -Linearabbildungseingang und einem ersten m-Bit- Linearabbildungsausgang zum Abbilden eines m-Bit-Datenblocks am ersten m-Bit-Linearabbildungseingang auf einen abgebildeten m-Bit-Datenblock am ersten m-Bit-Linearabbildungsausgang gemäß einer ersten linearen Abbildung, wobei die erste Linearabbildungseinrichtung seriell zwischen den m-Bit- Verschlüsselungsausgang und den m-Bit-Entschlüsselungseingang schaltbar ist, und bei der die Entschlüsselungsverknüpfungseinrichtung folgendes Merkmal aufweist:
eine zweite Linearabbildungseinrichtung (72) mit einem zwei- ten m-Bit-Linearabbildungseingang und einem zweiten m-Bit- Linearabbildungsausgang zum Abbilden eines m-Bit-Datenblocks am ersten m-Bit-Linearabbildungseingang auf einen abgebildeten m-Bit-Datenblock am zweiten m-Bit-Linearabbildungsausgang gemäß einer zweiten linearen Abbildung, wobei die zweite lineare Abbildung zu der ersten linearen Abbildung invers ist, und wobei die zweite Linearabbildungseinrichtung (72) seriell zwischen den -Bit-Verschlüsselungsausgang und den m- Bit-Entschlüsselungseingang schaltbar ist,
wobei die erste und die zweite Linearabbildungseinrichtung derart zwischen den m-Bit-Verschlüsselungsausgang und den m- Bit—Entschlüsselungseingang schaltbar sind, dass ein Durchlauf des zu verschlüsselnden Datenblocks durch die Abfolge von Verschlüsselungseinrichtung (12), Verschlüsselungsver- knüpfungseinrichtung (16) und Entschlüsselungseinrichtung (14) zu einem Datenblock führt, der bei Durchlaufen der Abfolge von Verschlüsselungseinrichtung (12), Entschlüsse- lungsverknüpfungseinrichtung (16) und Entschlüsselungseinrichtung (14) wieder den zu verschlüsselnden Datenblock ergäbe.
9. Vorrichtung gemäß einem der Ansprüche 4 bis 8, bei der die Verschlüsselungsverknüpfungseinrichtung ferner folgendes Merkmal aufweist:
eine erste Schlüssel-XOR-Einrichtung (50) mit einem ersten m- Bit-Dateneingang, einem ersten m-Bit-Schlüsseleingang und einem m-Bit-Datenausgang zum bitweisen XOR-Verknüpfen eines m-Bit-Datenblocks am ersten m-Bit-Dateneingang mit einem m- Bit—Schlüssel am m-Bit-Schlüsseleingang, wobei die erste Schlüssel-XOR-Einrichtung seriell zwischen den m-Bit- Verschlüsselungsausgang und den m-Bit-Entschlüsselungseingang schaltbar ist, und
bei der die Entschlüsselungsverknüpfungseinrichtung folgendes Merkmal aufweist:
eine zweite Schlüssel-XOR-Einrichtung (74) mit einem zweiten m-Bit-Dateneingang, einem zweiten m-Bit-Schlüsseleingang und einem zweiten m-Bit-Datenausgang zum bitweisen XOR-Verknüpfen eines m-Bit-Datenblocks am zweiten m-Bit-Dateneingang mit dem m-Bit-Schlüssel am zweiten m-Bit-Schlüsseleingang, wobei die zweite Schlüssel-XOR-Einrichtung (74) seriell zwischen den m- Bit-Verschlüsselungsausgang und den m-Bit-Entschlüsselungseingang schaltbar ist,
wobei die erste und die zweite Schlüssel-XOR-Einrichtung derart zwischen den m-Bit-Verschlüsselungsausgang und den m- Bit-Entschlüsselungseingang schaltbar sind, dass ein Durchlauf des zu verschlüsselnden Datenblocks durch die Abfolge von Verschlüsselungseinrichtung (12) , Verschlüsselungsver- knüpfungseinrichtung (16) und Entschlüsselungseinrichtung (14) zu einem Datenblock führt, der bei Durchlaufen der Abfolge von Verschlüsselungseinrichtung (12) , Entschlüsse- lungsverknüpfungseinrichtung (18), Entschlüsselungseinrich- tung (14) wieder den zu verschlüsselnden Datenblock ergäbe.
10. Vorrichtung gemäß einem der Ansprüche 4 bis 9, bei der m = n ist.
11. Vorrichtung gemäß einem der vorhergehenden Ansprüche, bei der die Verschlüsselungseinrichtung mehrere pxp- Verschlüsselungs-S-Boxen aufweist, von denen jede unterschiedliche p Bits des Datenblocks an dem Verschlüsselungseingang auf p Bits abbildet, die zusammen den Verschlüsse- lungsergebnisdatenblock bilden, und die Entschlüsselungseinrichtung mehrere pxp-Entschlüsselungs-S-Boxen aufweist, von denen jede unterschiedliche p Bits des Datenblocks an dem Entschlüsselungseingang auf p Bits abbildet, die zusammen den Entschlüsselungsergebnisdatenblock bilden, wobei jede der Entschlüsselungs-S-Boxen eine zu einer unterschiedlichen der Verschlüsselungs-S-Boxen invers Abbildung implementiert.
12. Vorrichtung gemäß einem der vorhergehenden Ansprüche, bei der die Steuereinrichtung ausgebildet ist, um zu bewirken, dass ein zu verschlüsselnder Datenblock eine Abfolge von Verschlüsselungseinrichtung, Verschlüsselungsverknüpfungsein- richtung, Entschlüsselungseinrichtung, Verschlüsselungsver- knüpfungseinrichtung ein oder mehrmals durchläuft, um den verschlüsselten Datenblock zu erhalten, und dass der zu entschlüsselnde Datenblock eine Abfolge von Entschlüsselungs- verknüpfungseinrichtung, Verknüpfungseinrichtung, Entschlüs- selungsverknüpfungseinrichtung und Entschlüsselungseinrichtung ein oder mehrmals durchläuft, um den entschlüsselten Datenblock zu erhalten, oder dass der zu verschlüsselnde Datenblock eine Abfolge von Verschlüsselungseinrichtung, Verschlüsselungsverknüpfungseinrichtung, Entschlüsselungsein- richtung, Entschlüsselungsverknüpfungseinrichtung ein oder mehrmals durchläuft, um den verschlüsselten Datenblock zu erhalten, und dass der zu entschlüsselnde Datenblock eine Abfolge von Verschlüsselungsverknüpfungseinrichtung, Verknüpfungseinrichtung, Entschlüsselungsverknüpfungseinrichtung und Entschlüsselungseinrichtung ein oder mehrmals durchläuft, um den entschlüsselten Datenblock zu erhalten
13. Vorrichtung zur Verschlüsselung eines zu verschlüsselnden Datenblocks in einen verschlüsselten Datenblock, mit
einer Verschlüsselungseinrichtung (12) , die einen Verschlüsselungseingang und einen Verschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Verschlüsselungseingang auf einen Verschlüsselungsergebnisdatenblock am Verschlüsse- lungsausgang gemäß einer Verschlüsselungsabbildung; einer Entschlüsselungseinrichtung (14), die einen Entschlüsselungseingang und einen Entschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Entschlüsselungseingang auf einen Entschlüsselungsergebnisdatenblock am Entschlüsse- lungsausgang gemäß einer Entschlüsselungsabbildung, die zu der Verschlüsselungsabbildung invers ist;
einer Verschlüsselungsverknüpfungseinrichtung (18) zum Abbilden des Verschlüsselungsergebnisdatenblocks auf einen abge- bildeten Verschlüsselungsergebnisdatenblock gemäß einer
Verschlüsselungsverknüpfungsabbildung und Zuführen desselben an den Entschlüsselungseingang der Entschlüsselungseinrichtung (14 ) ; und
einer Steuereinrichtung (20; 114), die ausgebildet ist, um zu bewirken, dass der zu verschlüsselnde Datenblock die Abfolge von Verschlüsselungseinrichtung (12), Verschlüsselungsver- knüpfungseinrichtung (16) und Entschlüsselungseinrichtung (14) zumindest einmal durchläuft, um den verschlüsselten Datenblock zu erhalten.
14. Vorrichtung zur Entschlüsselung eines zu entschlüsselnden Datenblocks in einen entschlüsselten Datenblock, mit
einer Verschlüsselungseinrichtung (12) , die einen Verschlüsselungseingang und einen Verschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Verschlüsselungseingang auf einen Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang gemäß einer Verschlüsselungsabbildung;
einer Entschlüsselungseinrichtung ( 14 ) , die einen Entschlüsselungseingang und einen Entschlüsselungsausgang aufweist , zum Abbilden eines Datenblocks an dem Entschlüsselungseingang auf einen Entschlüsselungsergebnisdatenblock am Entschlüsse- lungsausgang gemäß einer Entschlüsselungsabbildung, die zu der Verschlüsselungsabbildung invers ist ; einer Entschlüsselungsverknüpfungseinrichtung (18) zum Abbilden des Verschlüsselungsergebnisdatenblocks auf einen invers abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Entschlüsselungsverknüpfungsabbildung, zu der die Verschlüs- selungsverknüpfungsabbildung invers ist, und Zuführen desselben an den Entschlüsselungseingang der Entschlüsselungseinrichtung (14) ; und
einer Steuereinrichtung (20; 114), die ausgebildet ist, um zu bewirken, dass der zu entschlüsselnde Datenblock die Abfolge von Verschlüsselungseinrichtung (12), Entschlüsselungsverknüpfungseinrichtung (18) und Entschlüsselungseinrichtung (14) zumindest einmal durchläuft, um den entschlüsselten Datenblock zu erhalten.
15. Verfahren zur Verschlüsselung eines zu verschlüsselnden Datenblocks in einen verschlüsselten Datenblock, mittels einer Verschlüsselungseinrichtung (12), die einen Verschlüsselungseingang und einen Verschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Verschlüsselungseingang auf einen Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang gemäß einer Verschlüsselungsabbildung, und einer Entschlüsselungseinrichtung (14), die einen Entschlüsselungseingang und einen Entschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Entschlüsselungseingang auf einen Entschlüsselungsergebnisdatenblock am Entschlüsselungsausgang gemäß einer Entschlüsselungsabbildung, die zu der Verschlüsselungsabbildung invers ist, mit folgendem Schritt:
Bewirken, dass der zu verschlüsselnde Datenblock die Abfolge von Verschlüsselungseinrichtung (12) und Entschlüsselungseinrichtung (14) zumindest einmal durchläuft, um den verschlüsselten Datenblock zu erhalten, unter Abbilden des Verschlüsselungsergebnisdatenblocks auf einen abgebildeten Verschlüs- selungsergebnisdatenblock gemäß einer Verschlüsselungsver- knüpfungsabbildung und Zuführen desselben an den Entschlüsselungseingang der Entschlüsselungseinrichtung (14) .
16. Verfahren zur Entschlüsselung eines zu entschlüsselnden Datenblocks in einen entschlüsselten Datenblock, mittels einer Verschlüsselungseinrichtung (12), die einen Verschlüs- selungseingang und einen Verschlüsselungsausgang aufweist, zum Abbilden eines Datenblocks an dem Verschlüsselungseingang auf einen Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang gemäß einer Verschlüsselungsabbildung, und einer Entschlüsselungseinrichtung (14), die einen Entschlüsselungs- eingang und einen Entschlüsselungsausgang aufweist, zum
Abbilden eines Datenblocks an dem Entschlüsselungseingang auf einen Entschlüsselungsergebnisdatenblock am Entschlüsselungsausgang gemäß einer Entschlüsselungsabbildung, die zu der Verschlüsselungsabbildung invers ist, mit folgendem Schritt:
Bewirken, dass der zu entschlüsselnde Datenblock die Abfolge von Verschlüsselungseinrichtung (12) und Entschlüsselungseinrichtung (14) zumindest einmal durchläuft, um den entschlüsselten Datenblock zu erhalten, unter Abbilden des Verschlüs- selungsergebnisdatenblocks auf einen invers abgebildeten
Verschlüsselungsergebnisdatenblock gemäß einer Entschlüsse- lungsverknüpfungsabbildung, zu der die Verschlüsselungsverknüpfungsabbildung invers ist, und Zuführen desselben an den Entschlüsselungseingang der Entschlüsselungseinrichtung (14).
17. Computer-Programm mit einem Programmcode zur Durchführung des Verfahrens nach Anspruch 15 oder 16, wenn das Computer-Programm auf einem Computer abläuft.
EP04763626A 2003-09-30 2004-07-29 Verfahren und vorrichtung zur ver-/ entschlüsselung Withdrawn EP1676394A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10345378A DE10345378B4 (de) 2003-09-30 2003-09-30 Verfahren und Vorrichtung zur Ver-/Entschlüsselung
PCT/EP2004/008534 WO2005043803A1 (de) 2003-09-30 2004-07-29 Verfahren und vorrichtung zur ver-/ entschlüsselung

Publications (1)

Publication Number Publication Date
EP1676394A1 true EP1676394A1 (de) 2006-07-05

Family

ID=34428147

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04763626A Withdrawn EP1676394A1 (de) 2003-09-30 2004-07-29 Verfahren und vorrichtung zur ver-/ entschlüsselung

Country Status (4)

Country Link
US (1) US20060265604A1 (de)
EP (1) EP1676394A1 (de)
DE (1) DE10345378B4 (de)
WO (1) WO2005043803A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0211812D0 (en) * 2002-05-23 2002-07-03 Koninkl Philips Electronics Nv S-box encryption in block cipher implementations
DE102007026977B4 (de) * 2006-06-07 2012-03-08 Samsung Electronics Co., Ltd. Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt
KR100837270B1 (ko) 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
DE102008010787B4 (de) * 2008-02-22 2016-06-09 Fachhochschule Schmalkalden Verfahren zur Sicherung der Integrität von Daten
US20100329450A1 (en) * 2009-06-30 2010-12-30 Sun Microsystems, Inc. Instructions for performing data encryption standard (des) computations using general-purpose registers
US8467416B2 (en) * 2009-07-09 2013-06-18 Nec Laboratories America, Inc. Deterministic rotational coding
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
EP3475825B1 (de) * 2016-06-23 2023-01-25 Cryptography Research, Inc. Kryptographische operationen unter verwendung nichtlinearer teilungscodierung zum schutz vor externen überwachungsangriffen
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
CN117527325B (zh) * 2023-10-31 2024-08-13 南京国电南自维美德自动化有限公司 一种新能源场站数据的加密与解密方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8203737A (nl) * 1982-09-27 1984-04-16 Nederlanden Staat Inrichting voor vercijfering van digitale signalen met een of meer des-schakelingen.
US5008935A (en) * 1989-06-30 1991-04-16 At&T Bell Laboratories Efficient method for encrypting superblocks of data
US5003596A (en) * 1989-08-17 1991-03-26 Cryptech, Inc. Method of cryptographically transforming electronic digital data from one form to another
US5381480A (en) * 1993-09-20 1995-01-10 International Business Machines Corporation System for translating encrypted data
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
GB9825644D0 (en) * 1998-11-23 1999-01-13 British Telecomm A cipher
TW556111B (en) * 1999-08-31 2003-10-01 Toshiba Corp Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
GB0111521D0 (en) * 2001-05-11 2001-07-04 Amphion Semiconductor Ltd A component for generating data encryption/decryption apparatus
TW527783B (en) * 2001-10-04 2003-04-11 Ind Tech Res Inst Encryption/deciphering device capable of supporting advanced encryption standard
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2005043803A1 *

Also Published As

Publication number Publication date
WO2005043803A1 (de) 2005-05-12
US20060265604A1 (en) 2006-11-23
DE10345378B4 (de) 2010-08-12
DE10345378A1 (de) 2005-05-12

Similar Documents

Publication Publication Date Title
DE69429126T2 (de) Hardware-Anordnung zur Verschlüsselung von Bitblocks mit Erneuerung des Schlüssels bei jeder Iteration
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
DE602005002632T2 (de) Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten
DE69416684T2 (de) System und anordnung zum blockweisen verschlüsseln/entschlüsseln von daten
DE3650365T2 (de) Einrichtung zur Datenverschleierung.
DE69031736T2 (de) Verschlüsselungsmethode
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69916160T2 (de) Vorrichtung und Verfahren zur kryptographischen Verarbeitung sowie Aufzeichnungsmedium zum Aufzeichnen eines kryptographischen Verarbeitungsprogramms zur Ausführung einer schnellen kryptographischen Verarbeitung ohne Preisgabe der Sicherheit
EP1668515B8 (de) Wortindividuelle schlüsselerzeugung
DE69831982T2 (de) Kryptographisches vermittlungsverfahren und gerät
EP1298834B1 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE2658065A1 (de) Maschinelles chiffrieren und dechiffrieren
EP0012974B1 (de) Verfahren zur Chiffrierung von Datenblöcken einer vorgegebenen Länge
DE102008010789B4 (de) Verfahren zur zugriffs- und kommunikationsbezogenen Zufallsver- und Entschlüsselung von Daten
DE60221850T2 (de) Verfahren und vorrichtung zur datenverschlüsselung
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
DE10345378B4 (de) Verfahren und Vorrichtung zur Ver-/Entschlüsselung
DE60301750T2 (de) Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
EP1668817B1 (de) Verfahren und Vorrichtung zur Ver- und Entschlüsselung
DE10324422B4 (de) Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20060320

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR

DAX Request for extension of the european patent (deleted)
RBV Designated contracting states (corrected)

Designated state(s): DE FR

RIN1 Information on inventor provided before grant (corrected)

Inventor name: GOETTFERT, RAINER

Inventor name: SONNEKALB, STEFFEN

Inventor name: GAMMEL, BERNDT

Inventor name: DIRSCHERL, GERD

RBV Designated contracting states (corrected)

Designated state(s): DE FR

17Q First examination report despatched

Effective date: 20100503

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: INFINEON TECHNOLOGIES AG

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20100914