WO2008096004A1 - Reduktion von seiten-kanal-informationen durch interagierende krypto-blocks - Google Patents

Reduktion von seiten-kanal-informationen durch interagierende krypto-blocks Download PDF

Info

Publication number
WO2008096004A1
WO2008096004A1 PCT/EP2008/051560 EP2008051560W WO2008096004A1 WO 2008096004 A1 WO2008096004 A1 WO 2008096004A1 EP 2008051560 W EP2008051560 W EP 2008051560W WO 2008096004 A1 WO2008096004 A1 WO 2008096004A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
block
output
arithmetic
input data
Prior art date
Application number
PCT/EP2008/051560
Other languages
English (en)
French (fr)
Inventor
Steffen Peter
Michael Methfessel
Peter LANGENDÖRFER
Frank Vater
Original Assignee
Ihp Gmbh - Innovations For High Performance Microelectronics / Institut Für Innovative Mikroelektronik
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 Ihp Gmbh - Innovations For High Performance Microelectronics / Institut Für Innovative Mikroelektronik filed Critical Ihp Gmbh - Innovations For High Performance Microelectronics / Institut Für Innovative Mikroelektronik
Priority to EP08708830A priority Critical patent/EP2118739A1/de
Priority to US12/449,333 priority patent/US8625780B2/en
Publication of WO2008096004A1 publication Critical patent/WO2008096004A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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

Definitions

  • the invention relates to a cryptography apparatus, an integrated circuit with a cryptography apparatus, a cryptographic method and a computer program product for carrying out the cryptographic method.
  • each attack is called a side channel attack, which is based on information derived from the physical implementation of a cryptosystem, called page channel information, which is not based on theoretical vulnerabilities of the algorithms. For example, timing information, power consumption, electromagnetic leaks, or even sound can each be an additional source of information that can be used to "crack" the system.
  • page channel information information derived from the physical implementation of a cryptosystem
  • page channel information can each be an additional source of information that can be used to "crack" the system.
  • Many page-channel attacks require significant technical insight into the internal operations of a cryptosystem in which the cryptography process is implemented.
  • Timing attacks are attacks that rely on the measurement of time required by various calculations of the cryptosystem to execute.
  • Architecture page effect attacks are attacks that exploit the side effects of performing a computation on a particular machine architecture (e.g., clearing cache lines).
  • Energy metering attacks are attacks that exploit the changing power consumption of the hardware during calculations.
  • TEMPEST attacks are attacks that rely on the escape of electromagnetic radiation and which provide direct plaintext or other information.
  • Acoustic cryptanalysis attacks are attacks that exploit the sound as an information source emitted during the calculations (similar to the energy consumption measurement attacks).
  • the underlying principle is that physical effects generated while the cryptosystem is in operation may provide useful additional information about secrets in the cryptosystem, for example a cryptographic key, partial status information, full or partial plain text, and so on.
  • the term cryptophthora (secret deterioration) is sometimes used to describe the deterioration of the secret of the secret key by side-channel leaks.
  • An energy attack can provide similar information by monitoring the supply lines of the hardware, especially the CPU. As with a timing attack, under some circumstances significant information can be obtained in some algorithms.
  • a fundamental and unavoidable physical fact is that changes in the flow of current produce radio waves, so anything that generates current flows makes possible - at least in principle - a van Eck (so-called TEMPEST) attack. If the power flows are structured to a distinctive degree, as is usually the case, the radiation can be picked up to infer information about the operations on the corresponding hardware.
  • infrared images may also contain information about the CPU - A -
  • Another form of side channel attack is the consumption analysis, where the attacker analyzes the power consumption of cryptographic hardware such as a smart card, a tamper-proof "black box", a microchip, etc.
  • the consumption analysis can provide information about what a device is doing , and even deliver key material.
  • the differential consumption analysis is an extension of the consumption analysis, which may allow the attacker to calculate intermediate values of data blocks and key blocks.
  • the consumption analysis does not look for weaknesses in the algorithms or protocols but rather in their embodiments. It provides a way to "look inside" otherwise tamper-resistant hardware-for example, a DES key processing plan involves 28-bit key registers rotating. "To save time, most embodiments simply check to see the least significant bit if it is a 1. If so, it divides the register by two and appends 1 to the left end. Consumption analysis can make clear the difference between a register with a 1 and a register with a 0 if This can reveal information about the key used, the DES permutations, which often simply implemented in software, provide even more information through decision branches.
  • DPA Differential Demand Analysis
  • Another known countermeasure involves changes to the algorithm such that the cryptographic operations are applied to data which has a mathematical relationship with the current value that survives the cryptographic operations. This is called an aperture and uses an algorithm based on number theory like factoring or discrete logarithms.
  • US 6,724,894 describes a method for protection against side channel attacks, especially against differential consumption analysis, in which temporary keys are generated by modifying the secret key with a random number.
  • the message to be encrypted is encrypted with the temporary key.
  • another function is applied to the message that performs the encryption, this encryption being identical to that which can be achieved directly with the unmodified key.
  • This has the advantage that the information susceptible to side channel attacks will constantly vary with the random number, thereby reducing the susceptibility of the side channel attack cryptosystem.
  • it is necessary to generate a random number which is known to be difficult.
  • the complexity of encryption and decryption increases as the random number becomes large.
  • One Another disadvantage is that the system is based on the frequent replacement of the temporary key, because otherwise an attacker can calculate the secret key if the user does not change the key frequently enough. Furthermore, at least during encryption of a message the same key is used.
  • DE 100 61 997 A1 describes a cryptography processor having a central processing unit and a coprocessor, wherein the coprocessor includes a plurality of parallel computing units and a single control unit coupled to each of the plurality of partial computing units.
  • the control unit includes a plurality of parallel computing units and a single control unit coupled to each of the plurality of partial computing units.
  • an exclusive user data calculation in the form of sub-operations to be executed in parallel and / or in series is divided among the individual sub-processors by the control unit.
  • each coprocessor has a control unit, a plurality of registers and an arithmetic unit.
  • the cryptography processor is designed as a multifunctional processor and can be used either for payload calculations or for dummy calculations, but not simultaneously for both types of calculations.
  • a first arithmetic block configured to either encode or decrypt received first input data and output the encrypted or decrypted first input data as first output data at a first data output
  • a second arithmetic block configured to either encode or decrypt received second input data and output the encrypted or decrypted second input data as second output data at a second data output
  • control unit which is connected to the first and the second arithmetic block and configured to assign, in a first operating state, the first output data firstly to the first arithmetic block partially or completely as the first input data and partly either completely or partially to the second arithmetic block as a part to assign the second input data.
  • an artificial noise is introduced into the operational flow of the encryption algorithm.
  • the noise is provided by the first arithmetic block as first output data in order to be additionally processed in the second arithmetic block.
  • the cryptographic device is designed to perform skillful manipulation of the page channel information. This results in a reduction of the side channel information. This has the advantage that an attacker who listens to page channel information would take so long to compute the secret key that one can classify the key as secure as long as it is used on a cryptographic device according to the invention. Furthermore, the data to be encrypted can not be obtained by including side channel information.
  • Especially smart cards as used to decrypt encrypted TV programs, can be fully analyzed by any owner to extract the built-in key.
  • Especially consumption analyzes and DPA Different Power Analysis
  • DPA Different Power Analysis
  • the dynamic course of the power consumption is analyzed.
  • a smart card that includes a cryptography device according to the invention.
  • computational block is used in the present application as synonymous with the terms crypto block or encryption and decryption block.
  • no data is externally supplied to the first computing block in the first operating state at the first data input.
  • Cryptosystems are divided into symmetric and asymmetric cryptosystems.
  • a symmetric cryptosystem is a cryptosystem that, unlike an asymmetric cryptosystem, uses the same key for encryption and decryption.
  • the term encryption method is therefore used in the present application in connection with symmetric cryptosystems for simplicity as an abbreviation for encryption and decryption.
  • the first or the second arithmetic block is designed to calculate the received first or second input data according to a symmetric encryption or decryption method.
  • Symmetric cryptosystems have the advantage that the cryptography device can perform a short key length encryption process.
  • a block cipher is an algorithm that constructs a data block of typically 64 or 128 bits encrypted using a key-value.
  • the encrypted block has the same length.
  • Symmetric encryption algorithms may include block encryption techniques such as DES, AES (Advanced Encryption Standard), Triple DES, International Data Encryption Algorithm (IDEA), Blowfish, Twofish, Anubis, A5 / 3 (KASUMI), Camellia, FEAL, Lucifer, Magenta, MARS, MISTY, SEED, Serpent, SHACAL, Skipjack, TEA, CAST-128, CAST-256, RC2, RC5 and RC6.
  • block encryption techniques such as DES, AES (Advanced Encryption Standard), Triple DES, International Data Encryption Algorithm (IDEA), Blowfish, Twofish, Anubis, A5 / 3 (KASUMI), Camellia, FEAL, Lucifer, Magenta, MARS, MISTY, SEED, Serpent, SHACAL, Skipjack, TEA, CAST-128, CAST-256, RC2, RC5 and RC6.
  • DES Advanced Encrypt
  • a stream cipher is the symmetric, continuous, and delay-free encryption or decryption of a data stream, and a stream cipher encrypts or decrypts messages bit by bit or character by character.
  • Examples of stream ciphers are: A5 / 1, A5 / 2, Rabbit, RC4, SEAL or QUISCI.
  • the symmetric encryption method used may be one of the above.
  • An asymmetric crypto method is a crypto method in which each of the communicating parties has a key pair consisting of a secret part (private key) and a non-secret part (public key).
  • the private key allows its owner, for. For example, to decrypt data, create digital signatures, or authenticate.
  • the public key enables anyone to encrypt data for the keyholder, to check their digital signatures, or to authenticate them.
  • a cryptographic device that operates according to an asymmetric method accesses two keys, depending on whether they are encrypted or encrypted decrypted.
  • the communicating parties do not have to know the key. This has the advantage that no exchange of a secret key is necessary.
  • the first or second arithmetic block is designed to calculate the received first or second input data according to an asymmetric encryption or decryption method.
  • Suitable asymmetric encryption algorithms include RSA, Rabin and Elgamal cryptosystems.
  • ECC Elliptic Curve Cryptography
  • the first computing block is configured to calculate the received first input data according to a symmetric encryption or decryption method
  • the second computing block is configured to calculate the received second input data according to an asymmetric encryption or decryption method.
  • a secret key of a symmetric method can be encrypted and transmitted by means of an asymmetric encryption method. Subsequently, larger amounts of data can be transmitted in encrypted form according to the symmetrical method.
  • the first computing block is configured to calculate the received first input data according to an AES encryption or decryption method
  • the second computing block is configured to calculate the received second input data according to an ECC encryption or decryption method.
  • the asymmetrically operating encryption and decryption block includes a key exchange unit. This is is formed to provide a public key when encrypting and to provide a private key when decrypting.
  • the computational block may also include a key storage device. This allows the cryptographic device to encrypt to different addressees.
  • the keys can also be an integral part of the calculation block so that they can not be exchanged.
  • control unit is designed to assign payload data and additionally pseudo-random data to at least one computational block as first or second input data which are not required for the actual encryption or decryption.
  • pseudorandom data are also referred to as dummy data.
  • User data refers to data containing the message that is actually to be encrypted or decrypted.
  • payload data is the encrypted image data of the program.
  • the user data is obtained from a user data source.
  • the user data source is a radio or cable receiver.
  • the dummy data is more or less random additional data, which does not contribute to the actual encryption or decryption and are sorted out and discarded after passing through a computational block. They serve only to disturb the side channel information by additional arithmetic operations or a changed operational flow.
  • the control unit may forward the dummy data to the data input of the first or second arithmetic block in this embodiment.
  • the dummy data is formed from a part of the first output data or from the first output data as a whole.
  • the first output data are preferably not supplied to a device output of the Kryptographievorrraum in this embodiment.
  • Dummy data assigned to the second arithmetic block in the first operating state are therefore preferably the first output data in this exemplary embodiment.
  • the first calculation block in the first In this exemplary embodiment, dummy data assigned to the operating state are preferably also the first output data.
  • the dummy data can be generated by a separate dummy data source, that is to say by the first and second arithmetic blocks, or by the control unit.
  • the first arithmetic block can couple its output data back to its data input, using an AES encryption algorithm, e.g. B. in CFB or CBC mode.
  • a part of the output data of the first arithmetic block can be supplied by the control unit to the data input of the second arithmetic block, which additionally processes these data.
  • the second arithmetic block can use an ECC encryption algorithm.
  • the encrypted output data of the first arithmetic block are not output from the cryptography device, but are re-encrypted, in order then to be re-encrypted, and so on. If you remove this encrypted data after each round, you get a pseudo-random data stream.
  • This pseudorandom data stream is used to generate randomness in the ECC flow in the second arithmetic block.
  • the randomness ensures that no conclusions can be drawn about the keys used or the data processed from the time and power consumption of the ECC computation block.
  • the control unit is designed to stop and start the operation of the first or second arithmetic block independently of each other.
  • the control unit can thus switch the computation blocks on and off independently of one another, for example if a computation block is not used. On the other hand, by irregularly stopping and initiating one or both of the arithmetic blocks, the control unit may interfere with the page channel information. Multiplications are very computationally intensive in digital systems. In encryption algorithms, a plurality of multiplication steps are performed.
  • the second arithmetic block is designed to perform necessary polynomial multiplications in the encryption / decryption with the aid of a Karatsuba method.
  • the multiplication according to the Karatsuba algorithm has the advantage that it requires fewer arithmetic operations than a conventional multiplication. Their use can also lead to an increase in speed because their runtime complexity is lower.
  • At least one computing block has a plurality of parallel multiplication units.
  • Multiplication units are modules which can perform a multiplication operation in one or more clock cycles of a digital system such as the cryptographic device.
  • the use of parallel multiplication units generates a speed increase in multiplication operations.
  • serial processing a plurality of multiplication operations can be performed simultaneously.
  • a combination of a multiplication according to Karatsuba and the use of several parallel multiplication units is also advantageous, since in the multiplication according to Karatsuba the numbers to be multiplied are broken down into smaller parts. These parts can then be calculated simultaneously with parallel multiplication units.
  • the control device is designed to iteratively distribute an m-bit multiplication, for example, to 9 partial multiplications of the bit length m / 4. This will take 9 clock cycles.
  • a computing block is designed to perform the multiplications of the length m / 4 in one clock cycle by instantiating parallel multiplication units of the size m / 16 (m / 4/4) in the computing block 9. The operations of multiplication units are then executed in parallel. If m / 4/4 is greater than 8 bits, the control unit can further decompose the partial multiplications.
  • the number m 256. It takes 9 clock cycles in each one executes a multiplication of length 64 bits.
  • the control unit is configured to decompose the 64-bit multiplication into 9 16-bit blocks and each of these 9 16-bit blocks back into 9 4-bit partial multiplications.
  • the parallel multiplying units can be combined into 64-bit blocks. Each 64-bit block internally has z. B. 81 4-bit multiplier units that can be addressed in parallel.
  • the control unit is designed to specify to the first or second arithmetic block a number of arithmetic operations to be performed in parallel per clock unit, either from clock unit to clock unit or at longer time intervals.
  • the number of arithmetic operations per clock unit to be performed in parallel can be specified by the control unit by means of a control signal, for example.
  • the first arithmetic block or the second arithmetic block or both arithmetic blocks are preferably designed to extract control information contained in a control signal received from the control unit and to set the number of arithmetic operations per clock unit to be performed in parallel in the respective arithmetic unit as a function of the extracted control information.
  • the control signal may contain the control information about the number of arithmetic operations to be performed in parallel per clock unit in the form of pseudorandom data.
  • the control information can be removed for this purpose, for example, by picking out data from the stream of the first output data.
  • the extracted first output data for the formation of the control information from the receiving arithmetic block additionally subjected to a conversion.
  • all the first output data or only parts of the first output data can be used as control information in different embodiments.
  • This property of the cryptographic device allows a very delicate manipulation of the side channel information, because no multiplication operation can be assumed to be more than interference-free, since the number of multiplication operations performed in parallel, and thus also the power consumption and the time consumption, constantly change for each multiplication. If all the parallel multiplication units are not used, the total computing time for the encryption or decryption is extended, but the energy consumption is not increased because no additional multiplication operations have to be performed.
  • the consumption analysis can most easily distinguish arbitration branches when executing the cryptographic program, because the cryptosystem performs various operations, consuming different amounts of power, depending on which decision branch is executed. For this reason, it is favorable if there are no differences in terms of consumption in decision branches in cryptographic implementations. Rotations, permutations, and logical operations (such as XOR) should, if possible, take the same amount of time and consume similar amounts of energy.
  • two user data sources can also output two different user data streams.
  • Each computational block is designed to process one user data stream each.
  • the first computing block is connected to a first device input for first user data and a device output
  • the second computing block is connected to a second device input for second user data and the same device output.
  • the control unit is designed to forward the first output data to the device output and not to the second arithmetic block and not to the first arithmetic block, and also to feed the second output data output from the second arithmetic block to the device output.
  • the advantage of this embodiment is that the first arithmetic block also processes payload data. This allows two different input data or input data streams to be simultaneously encrypted or decrypted.
  • the first arithmetic block may perform a symmetric encryption or decryption
  • the second arithmetic block may perform an asymmetric encryption or decryption with other input data.
  • a further advantage is that the dynamics of the total energy consumption of the cryptography device in this operating state is the superposition of the dynamics of the energy consumption of the two parallel computing blocks. Not every calculation block can be individually analyzed from the outside. It is thus more difficult to infer the operations, in particular the decision branches, in a calculation block on the basis of the page channel information. This protects the secret internal key.
  • the device output can also be split, so that each computing block has its own device output.
  • the output data of the computation blocks can be multiplexed to the device output.
  • control unit is designed to switch between the first and the second operating state.
  • control unit may determine in which operating state the cryptographic device should run. In the first operating state, the output data of the first arithmetic block to its data input fed back and proportionately the second arithmetic block as additional input data. In the second operating state, the arithmetic blocks work simultaneously on different input data, or only one arithmetic block works.
  • control unit is designed to predefine the first or second arithmetic block with one of various predefinable sequences of arithmetic operations.
  • Cryptanalysis is based on the assumption of regularity in the analyzed algorithm. This regularity is lost by swapping sequences of arithmetic operations. If an attacker is unaware of which operations are being performed consecutively because the sequence of arithmetic operations is constantly changing, this can make it difficult to deduce the internal system state and position in the algorithm. This protects the secret key and the secret data from cryptanalysis.
  • control unit is designed to specify the sequence of the arithmetic operations in the second arithmetic block.
  • the sequence of the arithmetic operations can be predetermined by the control unit, for example, by means of a control signal.
  • the second arithmetic block is preferably designed to extract the sequence control information contained in a control signal received from the control unit and to set the sequence of arithmetic operations to be performed in dependence on the extracted sequence control information.
  • the control signal may contain the sequence control information about the sequence of arithmetic operations to be performed in the form of pseudorandom data, ie dummy data. This has the advantage that the randomness of the sequence of computational operations can be increased.
  • the sequence control information can, for example, be obtained by picking out data from the stream of the first output. be taken from the original data.
  • the extracted output data for the formation of the sequence control information from the receiving second arithmetic block are additionally subjected to a conversion.
  • the first or second arithmetic block includes a plurality of multiplication units.
  • the control unit is designed to forward dummy data parallel to a first part number of the multiplication units and a second part number of the multiplication units.
  • the control device can also forward no data to a first part number of the multiplication units of payload data, a second part number of dummy data and a third part number.
  • the cryptographic device may be in the first operational state, and the first output data may be used as dummy data.
  • the control unit at least partially admits the first output data to the second arithmetic block.
  • the first output data is pseudorandom data and works well as dummy data. They are assigned to the second arithmetic block in the first operating state and are not output at a device output.
  • the dummy data can be used to perform additional arithmetic operations on the dummy data in the second arithmetic block or to specify the number of arithmetic operations to be performed in parallel.
  • one portion of parallel multiplication units may be passed dummy data and another portion of payload data.
  • the sequence of computational controlled with the dummy data are control data for the second arithmetic block.
  • the second arithmetic block can have an additional data input to which the dummy data are assigned in order to control the sequence of arithmetic operations in the second arithmetic block. In all cases, the side channel information of the cryptosystem is disturbed and thereby reduced.
  • control unit is designed to externally supply a first data stream from the first arithmetic block and a second data stream from an external source to the second arithmetic block. Furthermore, the control unit is designed to at least partially forward the first output data to the second arithmetic block and not to forward it to the device output.
  • the first output data can be used as dummy data.
  • the control unit may in one embodiment also consist of several separate parts, which may also be partially integrated into the computing blocks.
  • the first and the second arithmetic block and the control unit are each hardware-implemented.
  • an integrated circuit contains the cryptography device. Integrated circuits are a common form of hardware implementation. They can be produced inexpensively in large quantities.
  • an ASIC includes the cryptographic device.
  • the use of hardwired hardware for the cryptographic device has the advantage that power consumption during operation fluctuates less. This is especially true when the cryptographic device contains a plurality of parallel multiplier units. This reduces the signal-to-noise ratio of the page channel information. This causes a reduction of the page channel information. It is noted that a combination of the various embodiments of the cryptography device described in this application is also possible, as far as the embodiments are not expressly described as alternatives to each other.
  • control module for a cryptography unit The technical problem underlying the invention is achieved according to a further aspect of the invention by a control module for a cryptography unit.
  • the method comprises encrypting or decrypting first input data with a first computing block and outputting the encrypted or decrypted first input data as first output data to a first data output. Furthermore, the method includes encrypting or decrypting second input data with a second arithmetic block and outputting the encrypted or decrypted second input data as second output data to a second data output. Furthermore, the method comprises assigning the first output data either partially or completely as input data to the first arithmetic block and partly or completely as part of the second input data to the second arithmetic block.
  • the first output data are thus partially or completely fed back to the first data input in the presented method.
  • assigning the first output data to the second arithmetic block comprises controlling the sequence of arithmetic operations in the second arithmetic block based on the first output data.
  • the assignment of the first output data to the second arithmetic block comprises controlling the number of arithmetic operations to be performed in parallel in the second arithmetic block on the basis of the first output data.
  • the method may be performed with the cryptography apparatus according to the first aspect of the invention. This reduces the proportion of side channel information, which, for example, protects a secret key used or other secret data against cryptanalytic attacks.
  • FIG. 1 shows in a simplified block diagram a first exemplary embodiment of a cryptography device in a first operating state.
  • FIG. 2 shows the cryptography system of FIG. 1 in a second operating state, in which a control unit separates a data path.
  • FIG. 3 shows a schematic representation of a second embodiment of a cryptography device.
  • Fig. 4 shows a schematic representation of a third embodiment of a cryptography device.
  • FIG. 5 shows schematically parallel multiplication units, as they can be used in the second arithmetic block in a first manner.
  • FIG. 6 shows, for a more detailed explanation of the mode of operation of the cryptography devices of FIGS. 1 to 4, schematically parallel multiplication units, as can be used in the second arithmetic block in a second manner.
  • Fig. 7 shows a flowchart for an iteration in encryption and decryption according to an elliptic curve cryptography (ECC) algorithm
  • FIG. 1 is a simplified illustration of a cryptography device 100 in a first operating state.
  • the cryptography apparatus 100 includes a first computing block 102 having a first data input 106 and a first data output 16 and a control unit 120, which assigns the first data input 106 first output data 1 16 from the first data output 116 as the first input data 112, so that the first data output 116 the first data input 106 is fed back. This is shown by the arrow on the control unit 120.
  • This data path is also referred to as a feedback data path. Data and the respective inputs and outputs are identified by the same reference numeral.
  • the cryptography device 100 thus operates in the first operating state already mentioned above.
  • the first arithmetic block 102 and the second arithmetic block 104 are also referred to below as the encryption and decryption block.
  • control unit 120 partially or completely assigns first output data 116 to a second data input 108 of a second computing block 104 as second input data 110.
  • first output data 110 and partially useful data 130.
  • the first output data 1 10 supplied to the second data input 108 will also be referred to as additional data for the sake of brevity.
  • Partial here can mean either a proportional or a serial proportion in one case, ie in one case user data 130 and, on the other hand, additional data 110 lie parallel to one part, in the other case useful data are available for a specific number of system clocks. 130 and additional data 110 for a certain number of subsequent or previous system clocks.
  • the actual task of the cryptographic device 100 is to process the payload data 130 and 132, i. to encrypt or decrypt and output encrypted or decrypted user data to external.
  • the first output data 1 16 are not output externally.
  • User data 130 and 132 may be data that has been externally transmitted to the cryptographic device 100.
  • the calculation blocks 102 and 104 are encryption and decryption blocks. This means that they can encrypt or decrypt input data 106 and 108 and can output 1 16 and 1 14 at their data outputs.
  • the sequence of the arithmetic operations in the second arithmetic block 104 or a number of arithmetic operations to be performed in parallel in the second arithmetic block 104 can be controlled by the additional data in a preferred embodiment.
  • the second computing block 104 can also encrypt or decrypt only payload data.
  • the additional data in this case alone have the function of control information.
  • the additional data 110 can also alone have the function of reducing the side channel information removable from the cryptography device 100 by means of its additional encryption or decryption in the second computing block 104.
  • the computation blocks 102 and 104 can thus be designed in such a particularly simple embodiment without function blocks for the evaluation and implementation of the corresponding control information.
  • FIG. 2 shows an exemplary embodiment of the cryptography apparatus 100 of FIG. 1 in a second operating state.
  • this does not mean that the respective Parts are necessarily identical to those of Fig. 1 in their function and construction.
  • the control unit 120 disconnects the feedback data path 1 16 to 112.
  • the data path 116 to 1 10 to the second data input 108 is disconnected.
  • the computation blocks 102 and 104 only process useful data 132 and 130 in parallel, since the data inputs 106 and 108 are not assigned additional data 112 and 110.
  • the user data is output to the first data output 1 16 and to the second data output 1 14 to external. This can be done via a device output (not shown).
  • FIG. 3 schematically shows a further exemplary embodiment of a cryptography device 200, also called a cryptography system 200, according to the invention.
  • the cryptography apparatus 200 includes a first computing block 102 having a first input 106 for first input data 106 and a first data output 116 for output data 116.
  • the cryptography system 200 is configured to encrypt or decrypt first input data 106 and output at the data output 116.
  • the cryptography device 200 contains a second computing block 104 with a second data input 108 and a second data output 1 14.
  • the computing block 104 is designed to encrypt or decrypt input data 108 and output at the second data output 1 14.
  • the calculation blocks 102 and 104 are also called encryption and decryption blocks below.
  • input data and output data may also be data streams. For inputs and outputs and the corresponding input data or output data which can be tapped there, the same reference number is used for the sake of simplicity.
  • the cryptography system 200 like the cryptography apparatus 100, is designed to operate in the first and in the second operating state as described above.
  • the first encryption and decryption block 102 is connected to the second data input 108 of the second encryption and decryption block 104 via a data switch 1 18.
  • the cryptography system 200 further includes a controller 120.
  • the controller is connected to the first and second arithmetic blocks 102 and 104, a switch 122, and the data switch 118, respectively.
  • the control unit 120 is configured to control the first computing block 102 and the second computing block 104 and to provide information such as status information or to request information.
  • the control unit 120 opens the switch 122 in the first operating mode, so that no output data 116 is output at a first device output 134.
  • the first computing block 102 has a first data input 106 and a first data output 116, which is connected to the first data input 106 via the data switch 1 18.
  • the control unit 120 controls in the first operating state, the data switch 1 18 so that at least a portion of the data stream 1 12 at the data output 1 16 is fed back to the first data input 106.
  • the control unit 120 controls the data switch 1 18 such that a part of the first output data 1 10 is transmitted to the second data input 108 of the second computing block 104.
  • the first output data 1 10 transmitted to the second arithmetic block 104 form additional data explained above and, in the present context, also the dummy data also introduced above.
  • the second computing block 104 processes in the first operation mode, on the one hand, the additional data 110, which are generated by the first computing block 102, and, on the other hand, the user data 130, in each case proportionally.
  • the data are in this embodiment at the second data input 108.
  • the second computing block 104 can also process only payload data 130 or only additional data 110.
  • the amount of the additional input data 110, which the first computing block 102 transmits to the second computing block 104 is adjustable via the control unit 120 and the data switch 118.
  • the additional input data 110 which are calculated are not useful data 130. They serve only to conceal the calculations of the second computing block 104. These additional calculations serve to reduce side channel information according to the invention.
  • the extent of the additional data 110 may be 90%, for example, and only 10% of the data is useful data 130 with which the encryption or decryption is to be carried out.
  • the additional input data 110 which is generated by the first computing block 102 by feedback, are pseudorandom data. This can be done so that a data sequence is supplied to the first data input 106 of the first computing block 102, which are encrypted there and fed back to the input 106, wherein at least a portion of the first output data 1 10 is transmitted to the second computing block 104. At least a portion of the fed-back data 1 12 passes through the first calculation block 102 again, is encrypted again, and in turn is fed back and at least partially transferred to the second computing block 104.
  • the sequence of arithmetic operations in the second arithmetic block 104 is controlled by the ancillary data 110. It is also possible to control the number of arithmetic operations to be performed in parallel by the additional data applied to the second data input 108.
  • the first computing block 102 may include a second input (not shown) for feedback data 12.
  • the first computing block 102 receives an input data stream 106 and a feedback data stream 112, wherein it processes data 12 fed back to a certain sub-ratio and input data 106. At least portions of the data from the feedback string 112 are transmitted to the second arithmetic block 104 as additional input data 110. This gives a great deal of randomness to the second computational block 104 transmitted Data 1 10.
  • this split ratio of feedback data 1 12 and input data 132 may be adjusted from a buffer 126.
  • the data inputs 106 and 108 are preceded by buffers 126 and 124 to latch data at the input of the buffers 126 and 124 and pass them to the computation blocks 102 and 104 in accordance with the capacity thereof.
  • the buffer 124 in this embodiment has two inputs, one for the payload data 130 and one for the overhead data 1.
  • the buffer 124 may mix the payload data 130 and the overhead data 110 in a time-series or parallel manner as described.
  • the buffers 126 and 124 may be connected to the controller 120, and the input data streams 106 and 108 may be controlled by the controller 120. Buffers 126 and 124 may be queried by arithmetic blocks 102 and 104 in one embodiment.
  • a computing block 102, 104 can query data from the respective buffer 126, 124 when computing capacity becomes free. This may be done by retrieving predefined data packets at one clock, or an address line may be provided which connects the buffer 126, 124 and the respective computational block 102, 104 to directly address and retrieve data from the buffer 126, 124.
  • An address line or a clock line may also connect the controller 120 and the buffers 126 and 124.
  • the control of buffers 126 and 124 may also be dictated by an external system clock.
  • the buffers 126 and 124 may also control the portions of overhead data 110 or 112 and the portions of the payload data 132 and 130, wherein the control unit 120 may specify the respective portions when connected to the buffers 126 and 124.
  • the cryptography device 200 includes a random source (not shown) that is not manipulatable, such as the noise of a resistor that is converted to a digital signal.
  • a number output as a digital signal can be used to initialize the first computing block 102 in the first operating state.
  • An alternative is to generate a random number and place it in nonvolatile memory when first used.
  • the memory may be included in the buffer 126 be.
  • the random number is then used as the initialization vector. After completion of the calculations, the result is stored in the same memory, ie the previous random vector replaced by current output data. In one embodiment, this memory can no longer be manipulated externally after the first initialization.
  • control unit 120 is connected to a user interface U1 or another control unit. This makes it possible to specify the operating state and other settings, such as the shares of user data 130 and the shares of additional data 1 10, etc., from the outside.
  • the control unit 120 closes the switch 122. At the same time it blocks the data switch 1 18 at both outputs 112 and 1 10. Thus, no data from the data output 116 of the first computing block 102 to the first data input 106 are fed back. In this operating state, no additional input data 110 is transmitted to the second data input 108 of the second computing block 104 because the data switch 118 blocks.
  • the two computation blocks 102 and 104 independently and in parallel, encrypt or decrypt input data or data streams 130 and 132.
  • the output data 1 16 and 1 14 of the first and second arithmetic blocks 102 and 104 are output at a respective device output 134, 136.
  • the first arithmetic block 102 is an (Advanced Encryption Standard) AES encryption and decryption block and the second arithmetic block 104 is an Elliptic Curve Cryptosystem (ECC) arithmetic block.
  • ECC Elliptic Curve Cryptosystem
  • FIG. 4 shows a further embodiment variant of a cryptography apparatus 300.
  • the cryptography apparatus 300 is largely identical to the embodiment variant from FIG. 3, with the difference that the second computation block 104 has an additional data input 138 and the data combiner 118 does not have a direct connection to the buffer 124 but with a second data switch 140 is connected.
  • the second data switch 140 is connected to the control unit 120 and controllable by this (not shown).
  • the additional data 1 10 are at least partially assigned to the second computing block 104 by the data switch 140.
  • the control unit 120 is configured to control the second data switch 140 such that the additional data 1 10 can be supplied at least partially to the buffer 124 in order to be combined with the payload data 130, and that the additional data 1 10 at least partially to the additional data input 138 can be supplied.
  • the additional data input 138 may also be referred to as a process control input 138.
  • the additional data 110 may be referred to at the sequence control input 138 as sequence control information or as a sequence control information flow.
  • the second computing block 104 is designed to extract sequence control information contained in a control signal received from the control unit 120 and to set the sequence of arithmetic operations to be performed as a function of the extracted sequence control information.
  • the second computing block 104 may include an operation control block (not shown).
  • the sequence of the arithmetic operations in the second arithmetic block 104 is controlled via the sequence control information flow at the sequence control input 138.
  • the control unit 120 can also specify the number of arithmetic operations to be performed in parallel per clock unit, for example by means of a control signal, on the basis of the additional data 110.
  • the first computing block 102 or the second computing block 104 or both computing blocks 102 and 104 are preferably designed to extract control information from the incoming stream of additional data 110 and / or 112 and the number of arithmetic operations per clock unit to be performed in parallel in the respective computing block 102, 104 depending on the extracted control information.
  • the additional data 1 10 and 112 form or contain control signals.
  • the controller 120 may switch between various operating settings. Processed in a first factory setting the second arithmetic block 104, the additional data 110 and the payload data 130. The additional data 1 10 and the user data 130 are mixed in the buffer 124. That is, a portion of the second processing block 104 of parallel processed data consists of a first portion of user data 130 and a second portion of additional data 1 10. The control unit 120 controls the second data switch 140 so that the additional data 1 10 passed to the buffer 124 become.
  • the second computing block 104 sequentially processes payload data 130 and, after a few system clock cycles, additional data 110.
  • the buffer 124 is configured to sequentially, repeatedly pass payload data 130 and then additional data 110 to the second data input 108.
  • the data at the second data input 108 can be present as data blocks. These data blocks may be e.g. have a length of 256 bits.
  • the second data switch 140 does not supply additional data 1 10 or no control flow to the process control input 138.
  • the second computing block 104 exclusively processes payload data 130 or payload data 130 and additional data 110.
  • the second computing block 104 controls the sequence of computation operations to be processed during encryption or decryption on the basis of the additional data 110 which are present at the additional data input 138.
  • the second computing block 104 processes exclusively user data 130 or useful data 130 and additional data 1 10.
  • the second computing block 104 controls the number of arithmetic operations to be performed in parallel based on the additional data 110 or the control flow.
  • the portions of the payload data 130 and the additional data 110, which are supplied to the second data input 108, can thereby be controlled by the buffer 124.
  • the control unit 120 controls the second data switch 140 in such a way that at least a proportionate amount of additional data 110 is supplied both to the sequence control input 138 and to the buffer 124 and thus to the second data input 108.
  • the control unit 120 may use the second data 140 also pretend to supply additional data 110 exclusively to the process control input 138.
  • the operating settings may be adjusted by the control unit 120 during the second operating state.
  • FIG. 5 shows schematically parallel multiplication units 502 to 514, as they can be used in the second arithmetic block in a first manner.
  • At least one of the two calculation blocks 102, 104 contains a plurality of multiplier units 502 to 514, also called multipliers, which can perform parallel multiplication operations, shown schematically by arrows 518 to 526.
  • multiplier units 502 to 514 also called multipliers, which can perform parallel multiplication operations, shown schematically by arrows 518 to 526.
  • different numbers of multiplication operations may be performed in parallel. This may be a random number of parallel multiplication operations, such as the five multiplication operations 518 through 526 in the present case.
  • the remaining multiplier units 512 to 514 do not perform a multiplication operation.
  • the data units 528 to 536 may be bit blocks of any length, such as. Eg 4-bit blocks.
  • FIG. 6 shows, for a more detailed explanation of the mode of operation of cryptography devices 100, 200, 300 of FIGS. 1 to 4, schematically parallel multiplication units 602 to 614, as shown in FIG. calculation block 104 may be used in a second manner. Also, as shown in FIG. 6, a random number of the multiplying units 602 to 606 may calculate random data 628 to 632 or dummy data 628 to 632, while the other multiplying units 612, 614 may process the input data of the computing block 634, 636 and some multiplying units 608, 610 may not perform arithmetic operation carry out. This allows the side channel information to be additionally reduced because random noise can be generated by even smaller data blocks.
  • the control unit 120 can specify the parallel executed operations and portions of user data 634, 336 and additional data 628 to 632.
  • the control unit 120 is connected to the computation blocks 102, 104, the buffer 124 and the second data splitter 140.
  • multiplication operations are performed by means of a Karatsuba multiplication.
  • Other multiplication operations can be performed with other forms of multiplication.
  • the flow of operation may be variable. This interchanges the order of operations within a encryption or decryption algorithm according to a control flow, as far as the algorithm permits.
  • the order is randomly influenced. Due to a random order of operations, an observer or attacker is less aware of the processes in the cryptosystem, which makes it easier to assign page channel information. In this embodiment, no additional energy or time is consumed for the algorithm because the total number of operations remains the same.
  • control unit 120 controls the selection of the order of the arithmetic operations or the number of parallel multiplication operations. Therefore, it may be connected to the computation blocks 102 and 104 via control lines.
  • the additional data 110 and possibly the random control flow can be supplied by the first computing block 102 in the form of dummy data.
  • control unit 120 may receive the feedback first output data 116 and use it for the control of the variable operation flow for the arithmetic operations in the second computing block 104. This part of the control unit 120 may also be partially or completely integrated in the second computing block 104.
  • At least one of the computation blocks 102 or 104 contains exactly 81 4-bit multiplier units that can be addressed in parallel.
  • the computational block containing a plurality of parallel multiplier units is the second computational block 104.
  • the control unit 120 can also consist of several parts and be integrated wholly or partly in the computation blocks 102 and 104.
  • Embodiment variants are also possible in which both computation blocks 102 and 104 can each assume the role of the first computation block 102 or of the second computation block 104.
  • the control unit 120 is configured to control the computation blocks 102 and 104 such that they either work as the first feedback computation block 102 for generating additional data 1 12, 1 10 or as the second computation block 104 for at least partially processing user data 130.
  • the additional data 1 12 and 110 are also referred to below as additional (pseudorandom) control signals, pseudo data, random data or random current.
  • Figure 7 shows a flowchart for an iteration in decryption according to an elliptic curve cryptography (ECC) algorithm.
  • ECC elliptic curve cryptography
  • the first operation can be either M1, M2, S1 or S2.
  • the concrete process is made dependent on the additional (pseudorandom) control signals.
  • the administration and execution takes place in the ECC block, which forms the second computing block 104.
  • the second computation block 104 there is a control block that controls the flow.
  • This control block may also be part of the control unit 120. It processes the control signals from the control unit 120 and the additional data 1 10.
  • the control unit 120 thereby specifies the operating state and possibly the operating setting, and the first computing block 104 supplies the additional or random data 1 10.
  • the control unit 120 controls the sequence of arithmetic operations in the second arithmetic block 104 on the basis of the random data stream 110.
  • the random data stream 1 10 delivers, for example a "0", M1 is executed as the first operation, and if a "1" is supplied, it is M2. If a "2" or “3” comes, it is S1 or S2.

Abstract

Kryptographievorrichtung, welche Seitenkanalinformationen reduziert, mit einem ersten Rechenblock, der ausgebildet ist, empfangene erste Eingangsdaten entweder zu verschlüsseln oder zu entschlüsseln und die verschlüsselten bzw. entschlüsselten ersten Eingangsdaten als erste Ausgangsdaten an einem ersten Datenausgang auszugeben, und einem zweiten Rechenblock, der ausgebildet ist, empfangene zweite Eingangsdaten entweder zu verschlüsseln oder zu entschlüsseln und die verschlüsselten bzw. entschlüsselten zweiten Eingangsdaten als zweite Ausgangsdaten an einemzweiten Datenausgang auszugeben, und einer Steuereinheit, welche mit dem ersten und dem zweiten Rechenblock verbunden ist und die ausgebildet ist, in einem ersten Betriebszustand die ersten Ausgangsdaten zum einen dem ersten Rechenblock teilweise oder vollständig als die ersten Eingangsdaten zuzuweisen und zum anderen entweder teilweise oder vollständig dem zweiten Rechenblock als Teil der zweiten Eingangsdaten zuzuweisen.

Description

Berlin, 8. Februar 2008
Unser Zeichen: IB 1315-02WO LE/jwd
Durchwahl: 030/841 887 16
Anmelder/Inhaber: IHP GMBH Amtsaktenzeichen: Neuanmeldung
IHP GmbH - Innovations for High Performance Microelectronics / Institut für innovative Mikroelektronik
Im Technologiepark 25, D-15236 Frankfurt (Oder)
Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
Die Erfindung bezieht sich auf eine Kryptographievorrichtung, einen integrierten Schaltkreis mit einer Kryptographievorrichtung, ein kryptographisches Verfahren und ein Computerprogrammprodukt zum Durchführen des kryptographischen Verfahrens.
In der Kryptographie wird jeder Angriff als Seitenkanalangriff bezeichnet, welcher auf Informationen basiert, die aus der physikalischen Implementierung eines Kryptosystems gewonnen werden, sogenannte Seitenkanalinformationen, die also nicht auf theoretische Schwachstellen der Algorithmen beruhen. Zum Bei- spiel können Timing-Informationen, Energieverbrauch, elektromagnetische Lecks oder sogar Schall jeweils eine zusätzliche Informationsquelle darstellen, welche dazu genutzt werden kann, das System zu "knacken". Viele Seitenkanalangriffe erfordern erhebliche technische Einblicke in die internen Abläufe eines Kryptosystems, in welchem das Kryptographieverfahren implementiert ist. Man unterscheidet verschiedene Arten von Seitenkanalangriffen:
Timing-Angriffe sind Angriffe, welche auf der Messung der Zeit beruhen, welche verschiedene Berechnungen des Kryptosystems zur Ausführung benötigen.
Architektur-Seiteneffekt-Angriffe sind Angriffe, welche die Seiteneffekte bei der Ausführung einer Berechnung auf einer bestimmten Maschinenarchitektur ausnützen ( z.B. Cache-Zeilen löschen).
Energieverbrauchsmessungs-Angriffe sind Angriffe, welche den wechselnden Stromverbrauch der Hardware während Berechnungen ausnutzen.
TEMPEST (van Eck oder Abstrahlungsmessungs)- Angriffe sind Angriffe, welche auf dem Entweichen elektromagnetischer Strahlung beruhen und welche direkten Klartext oder andere Informationen liefern.
Akustische Kryptoanalyseangriffe sind Angriffe, welche den Schall als Informationsquelle ausnutzen, der während der Berechnungen emittiert wird (ähnlich den Energieverbrauchsmessungs-Angriffen).
In allen genannten Fällen ist das zugrundeliegende Prinzip, dass physikalische Effekte, welche erzeugt werden, während das Kryptosystem arbeitet, nützliche zusätzliche Informationen über Geheimnisse im Kryptosystem geben können, zum Beispiel einen kryrptografischen Schlüssel, teilweise Statusinformationen, volle oder teilweise Klartexte, und so weiter. Der Ausdruck Kryptophthora (ge- heime Verschlechterung) wird manchmal benutzt, um die Verschlechterung des Geheimnisgehalts des geheimen Schlüssels durch Seitenkanal-Lecks zu beschreiben.
Bei einem Timing-Angriff wird die Datenbewegung in und aus der CPU oder dem
Speicher der Hardware beobachtet, auf welcher das Kryptosystem oder der Algorithmus läuft. Indem man beobachtet, wie lange es dauert, die Schlüsselin- formation zu übertragen, kann festgestellt werden, wie lang der Schlüssel in diesem Moment ist.
Interne Berechnungsschritte liefern in vielen Chiffrierimplementationen Informationen über den Klartext oder den Schlüssel. Auf einige dieser Informationen kann durch das beobachtete Timing geschlossen werden. Alternativ kann bei einem Timing-Angriff auch beobachtet werden, wie lange der kryptographische Algorithmus dauert-. Das allein kann ausreichend Information liefern, um kryptoanaly- tisch nützlich zu sein.
Ein Energieverbrauchs-Angriff kann ähnliche Informationen liefern, indem die Versorgungsleitungen der Hardware, speziell der CPU, überwacht werden. Genauso wie bei einem Timing-Angriff können unter gewissen Umständen erhebliche Informationen bei manchen Algorithmen erlangt werden.
Eine fundamentale und unabwendbare physikalische Tatsache ist, dass Wechsel im Stromfluss Funkwellen erzeugen, so dass alles, was Stromflüsse erzeugt, - zumindest im Prinzip - einen van-Eck (sog. TEMPEST)-Angriff möglich macht. Wenn die Stromflüsse in unterscheidbarem Maße strukturiert sind, was üblicherweise der Fall ist, kann die Abstrahlung aufgenommen werden, um auf Informationen über die Operationen auf der entsprechenden Hardware zu schließen.
Eine weitere unvermeidliche physikalische Tatsache in Schaltungen ist, dass fließende Ströme das Material, durch welches sie fließen, erhitzen. Daher wird je nach Stromfluss auch ständig Wärme an die Umgebung abgegeben. Aufgrund der Gesetze der Thermodynamik werden so ständig wechselnde thermisch induzierte mechanische Spannungen erzeugt. Diese Spannungen sind die Hauptverursacher von geringen Schallemissionen von rechnenden CPUs. Es ist denkbar, dass Informationen über die Berechnungen von Kryptosystemen und Algorithmen auch auf diese Weise erlangt werden können.
Wenn die Oberfläche des CPU-Chips oder in manchen Fällen das Gehäuse der CPU überwacht werden kann, können Infrarotbilder auch Informationen über die - A -
Operationen, welche die CPU ausführt, liefern. Dies ist bekannt als Thermobild- Angriff.
Eine weitere Form der Seitenkanalangriffe ist die Verbrauchsanalyse, bei welcher der Angreifer den Stromverbrauch von kryptographischer Hardware wie einer Smart-Card, einer manipulationssicheren „Black-Box", eines Mikrochips, etc analysiert. Die Verbrauchsanalyse kann Informationen darüber liefern, was ein Gerät gerade macht, und sogar Material des Schlüssels liefern.
Die differentielle Verbrauchsanalyse ist eine Erweiterung der Verbrauchsanalyse, welche es dem Angreifer erlauben kann, Zwischenwerte von Datenblöcken und Schlüsselblöcken zu berechnen.
Die Betrachtung von Graphen von Zeit und Strom, welche ein Kryptosystem verbraucht, kann oft exakt zeigen, was das Kryptosystem zu einem bestimmten Zeitpunkt macht.
Die Ströme, welche durch ein Kryptosystem fließen, sind üblicherweise klein. Aber Elektrolabors haben üblicherweise Einrichtungen, um sie präzise genug, zuverlässig und häufig zu messen. Es ist vernünftig für einen Entwickler eines Kryptosystems anzunehmen, dass ein Gegner Zugang zu solchen Geräten hat.
Die Verbrauchsanalyse sucht nicht nach Schwächen in den Algorithmen oder Protokollen als vielmehr in ihren Ausführungsformen. Sie bietet eine Möglichkeit, in sonst manipulationssichere Hardware „hineinzusehen". Zum Beispiel schließt ein DES-Schlüssel-Verarbeitungsplan ein, dass 28-Bit-Schlüsselregister rotieren. Um Zeit zu sparen, prüfen die meisten Ausführungsformen einfach das am wenigsten signifikante Bit um zu sehen, ob es eine 1 ist. Wenn das so ist, teilt es das Register durch zwei und hängt die 1 am linken Ende an. Die Verbrauchsana- lyse kann den Unterschied zwischen einem Register mit einer 1 und einem Register mit einer 0 deutlich machen, wenn dies passiert. Dies kann Informationen über den verwendeten Schlüssel preisgeben. Die DES-Permutationen, welche häufig einfach in Software implementiert sind, bieten sogar durch Entscheidungsverzweigungen noch mehr Informationen.
Die differenzielle Verbrauchsanalyse (DPA) ist eine Methode ein Kryptosystem anzugreifen, bei welcher der wechselnde Stromverbrauch von Mikroprozessoren während der Ausführung von kryptographischen Programmen ausgenutzt wird. Sie ist auch ein Seitenkanalangriff. Indem man eine statistische Analyse des gemessenen Stromverbrauchs während vielen Durchläufen eines bestimmten kryptographischen Algorithmus untersucht, kann es möglich sein, Informationen über den geheimen Schlüssel zu erlangen, welcher auf einer Smart-Card gespei- chert ist, wenn die Implementierung des Algorithmus nicht DPA-manipulationssicher ist.
Eine andere bekannte Gegenmaßnahme schließt Veränderungen des Algorithmus ein, so dass die kryptographischen Operationen auf Daten angewandt werden, welche mit dem momentanen Wert in einer mathematischen Beziehung stehen, die die kryptographischen Operationen überdauert. Dies wird als Blenden bezeichnet und verwendet einen Algorithmus, welcher auf Zahlentheorie wie Faktorisieren oder diskreten Logarithmen basiert.
Die US 6,724,894 beschreibt ein Verfahren zum Schutz vor Seitenkanalangriffen speziell vor differenzieller Verbrauchsanalyse, bei welchem temporäre Schlüssel erzeugt werden, indem der geheime Schlüssel mit einer Zufallszahl modifiziert wird. In einem ersten Schritt wird die zu verschlüsselnde Nachricht mit dem temporären Schlüssel verschlüsselt. Danach wird eine weitere Funktion auf die Nachricht angewandt, welche die Verschlüsselung durchführt, wobei diese Verschlüsselung identisch mit der ist, welche direkt mit dem unmodifizierten Schlüs- sei erreicht werden kann. Dies hat den Vorteil, dass die Informationen, welche anfällig für Seitenkanalangriffe sind, ständig mit der Zufallszahl variieren und dabei die Anfälligkeit des Kryptosystems für Seitenkanalangriffe reduziert wird. Hierbei ist es allerdings erforderlich eine Zufallszahl zu erzeugen, das bekanntlich mit Schwierigkeiten verbunden ist. Weiterhin wird der Aufwand für die Ver- schlüsselung und Entschlüsselung größer, wenn die Zufallszahl groß wird. Ein weiterer Nachteil ist, dass das System auf den häufigen Austausch des temporären Schlüssels beruht, weil sonst ein Angreifer den geheimen Schlüssel errechnen kann, wenn der Anwender den Schlüssel nicht häufig genug wechselt. Weiterhin wird wenigstens während einer Verschlüsselung einer Nachricht der selbe Schlüssel verwendet.
In DE 100 61 997 A1 ist ein Kryptographieprozessor mit einer zentralen Verarbeitungseinheit und einem Coprozessor beschrieben, wobei der Coprozessor eine Mehrzahl von parallel angeordneten Teilrechenwerken und eine einzige Steuereinheit enthält, die mit jedem der Mehrzahl von Teilrechenwerken gekoppelt ist. Dabei wird durch die Steuereinheit eine ausschließliche Nutzdatenberechnung in Form von parallel und/oder seriell auszuführenden Teiloperationen auf die einzelnen Teilrechenwerke aufgeteilt.
DE 100 61 998 A1 beschreibt einen Kryptographieprozessor, der eine Mehrzahl von Coprozessoren, eine zentrale Verarbeitungseinheit zum Ansteuern der Mehrzahl von Coprozessoren und einen Bus zum Verbinden jedes Coprozessors mit der zentralen Verarbeitungseinheit umfasst. Dabei weist jeder Coprozessor eine Steuereinheit, eine Vielzahl von Registern und eine arithmetische Einheit auf. Der Kryptographieprozessor ist als multifunktionaler Prozessor ausgelegt und kann entweder für Nutzdatenberechnungen oder für Dummyberechnungen, jedoch nicht gleichzeitig für beide Berechnungsarten, eingesetzt werden.
Es ist Aufgabe der Erfindung, eine Kryptographievorrichtung und ein Verfahren zum Ver- oder Entschlüsseln von Daten anzugeben, die jeweils auf einfache Art und Weise die Anfälligkeit gegen Seitenkanalangriffe reduzieren.
Gemäß der Erfindung wird eine Kryptographievorrichtung vorgeschlagen, die
- einen ersten Rechenblock enthält, der ausgebildet ist, empfangene erste Eingangsdaten entweder zu verschlüsseln oder zu entschlüsseln und die verschlüsselten bzw. entschlüsselten ersten Eingangsdaten als erste Ausgangsdaten an einem ersten Datenausgang auszugeben, einen zweiten Rechenblock enthält, der ausgebildet ist, empfangene zweite Eingangsdaten entweder zu verschlüsseln oder zu entschlüsseln und die verschlüsselten bzw. entschlüsselten zweiten Eingangsdaten als zweite Ausgangsdaten an einem zweiten Datenausgang auszugeben, und
- eine Steuereinheit umfasst, welche mit dem ersten und dem zweiten Rechenblock verbunden und ausgebildet ist, in einem ersten Betriebszustand die ersten Ausgangsdaten zum einen dem ersten Rechenblock teilweise oder vollständig als die ersten Eingangsdaten zuzuweisen und zum anderen entweder teilweise oder vollständig dem zweiten Rechenblock als Teil der zweiten Eingangsdaten zuzuweisen.
Um den Informationsabfluss der Kryptographievorrichtung zu verhindern oder zumindest erheblich zu erschweren, wird gemäß der Erfindung ein künstliches Rauschen in den Operationsfluss des Verschlüsselungsalgorithmus eingebracht. Das Rauschen wird vom ersten Rechenblock als erste Ausgangsdaten zur Ver- fügung gestellt, um im zweiten Rechenblock zusätzlich verarbeitet zu werden.
Die Kryptographievorrichtung ist so konzipiert, dass eine geschickte Manipulation der Seitenkanalinformation durchgeführt wird. Dies hat eine Reduktion der Sei- tenkanalinformation zur Folge. Dies hat den Vorteil, dass ein Angreifer, welcher Seitenkanalinformation abhört, so lange brauchen würde, um den geheimen Schlüssel zu berechnen, dass man den Schlüssel als sicher einstufen kann, solange er auf einer Kryptographievorrichtung gemäß der Erfindung verwendet wird. Weiterhin können auch die zu verschlüsselnden Daten nicht durch Einbeziehung von Seitenkanalinformation gewonnen werden.
Besonders Smart-Cards, wie sie zur Entschlüsselung von verschlüsselten TV- Programmen verwendet werden, können von jedem Besitzer uneingeschränkt analysiert werden, um den integrierten Schlüssel zu extrahieren. Besonders Verbrauchsanalysen und DPA (Differential Power Analysis) können mehrfach durchgeführt werden. Hierbei wird, wie oben beschrieben, der dynamische Verlauf des Stromverbrauchs analysiert. Bei Einsatz der Kryptographievorrichtung gemäß der Erfindung in einer Smart-Card ist die Schlüsselextraktion jedoch nicht mehr möglich, da die Seitenkanalinformation keine regelmäßigen Muster mehr aufweist.
Deshalb wird in einem Ausführungsbeispiel eine Smart-Card vorgeschlagen, die eine Kryptographievorrichtung gemäß der Erfindung enthält.
Der Ausdruck Rechenblock wird in der vorliegenden Anmeldung gleichbedeutend mit den Ausdrücken Kryptoblock oder Ver- und Entschlüsselungsblock verwendet.
In einem Ausführungsbeispiel werden dem ersten Rechenblock im ersten Be- triebszustand keine Daten von extern am ersten Dateneingang zugeleitet.
Kryptosysteme werden in symmetrische und asymmetrische Kryptosysteme unterteilt. Ein symmetrisches Kryptosystem ist ein Kryptosystem, welches im Gegensatz zu einem asymmetrischen Kryptosystem den gleichen Schlüssel zur Ver- und Entschlüsselung verwendet. Der Ausdruck Verschlüsselungsverfahren wird daher in der vorliegenden Anmeldung im Zusammenhang mit symmetrischen Kryptosystemen zur Vereinfachung auch als Abkürzung für Ver- und Entschlüsselungsverfahren verwendet.
Deshalb ist bei einer Ausführungsvariante der Kryptographievorrichtung der erste oder der zweite Rechenblock ausgebildet, die empfangenen ersten oder zweiten Eingangsdaten nach einem symmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen.
Symmetrische Kryptosysteme haben den Vorteil, dass die Kryptographievorrichtung ein Verschlüsselungsverfahren mit geringer Schlüssellänge durchführen kann.
Man teilt die symmetrischen Verschlüsselungsverfahren in Blockchiffren und Stromchiffren auf. Eine Blockchiffre ist ein Algorithmus, der einen Datenblock von typisch 64 oder 128 Bit mittels eines Schlüsselwerts verschlüsselt. Der verschlüsselte Block hat dabei die gleiche Länge.
Symmetrische Verschlüsselungsalgorithmen können Blockverschlüsselungsverfahren wie beispielsweise DES, AES (Advanced Encryption Standard), Triple- DES, IDEA (International Data Encryption Algorithm), Blowfish, Twofish, Anubis, A5/3 (KASUMI), Camellia, FEAL, Lucifer, Magenta, MARS, MISTY, SEED, Ser- pent, SHACAL, Skipjack, TEA, CAST-128, CAST-256, RC2, RC5 und RC6 sein.
Eine Stromchiffre (engl, „stream cipher") ist die symmetrische, kontinuierliche und verzögerungsfreie Ver- oder Entschlüsselung eines Datenstroms. Eine Strom- chiffre ver- bzw. entschlüsselt Nachrichten Bit für Bit bzw. Zeichen für Zeichen. Beispiele für Stromchiffren sind: A5/1 , A5/2, Rabbit, RC4, SEAL oder QUISCI.
Das verwendete symmetrische Verschlüsselungsverfahren kann eines der oben genannten sein.
Der gemeinsame geheime Schlüssel muss bei einem symmetrischen Verschlüs- selungsverfahren jedoch vor der Kommunikation ausgetauscht werden. Dies kann erhebliche Schwierigkeiten mit sich bringen. Deshalb gibt es die asymmetrischen Verschlüsselungsalgorithmen.
Ein asymmetrisches Kryptoverfahren ist ein Kryptoverfahren, bei dem jede der kommunizierenden Parteien ein Schlüsselpaar besitzt, das aus einem geheimen Teil (privater Schlüssel) und einem nicht geheimen Teil (öffentlicher Schlüssel) besteht. Der private Schlüssel ermöglicht es seinem Inhaber, z. B. Daten zu entschlüsseln, digitale Signaturen zu erzeugen oder sich zu authentifizieren. Der öffentliche Schlüssel ermöglicht es jedermann, Daten für den Schlüsselinhaber zu verschlüsseln, dessen digitale Signaturen zu prüfen oder ihn zu authentifizie- ren. Dementsprechend greift eine Kryptographievorrichtung, welche nach einem asymmetrischen Verfahren arbeitet, auf zwei Schlüssel zu, je nachdem, ob sie verschlüsselt oder entschlüsselt. Im Gegensatz zu einem symmetrischen Krypto- system müssen die kommunizierenden Parteien also keinen gemeinsamen ge- heimen Schlüssel kennen. Das hat den Vorteil, dass kein Austausch eines geheimen Schlüssels nötig ist. Deshalb ist bei einer Ausführungsvariante der Kryptographievorrichtung der erste oder der zweite Rechenblock ausgebildet, die empfangenen ersten oder zweiten Eingangsdaten nach einem asymmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen. Zu den geeigneten asymmetrischen Verschlüsselungsalgorithmen zählen RSA, Rabin- und Elgamal-Kryptosysteme. In den letzten Jahren wurde die Verschlüsselung mit Elliptischen Kurven (Elliptic Curve Cryptography, ECC) immer populärer, da sie bei gleicher Sicherheitsstufe mit wesentlich kleineren Schlüsseln auskommt.
Asymmetrische Verschlüsselungsverfahren sind rechenintensiver als symmetrische Verschlüsselungsverfahren. Deshalb ist der Anwendungsbereich symmetrischer und asymmetrischer Verschlüsselungsverfahren unterschiedlich. In diesem Zusammenhang kann eine Kombination beider Verschlüsselungsverfahren nützlich sein. Bei einem Ausführungsbeispiel der Kryptographievorrichtung ist daher der erste Rechenblock ausgebildet, die empfangenen ersten Eingangsdaten nach einem symmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen und der zweite Rechenblock ausgebildet, die empfangenen zweiten Eingangsdaten nach einem asymmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen. Damit kann zum Beispiel ein geheimer Schlüssel eines symmetrischen Verfahrens mittels eines asymmetrischen Verschlüsselungsverfahrens verschlüsselt und übertragen werden. Anschließend können größere Datenmengen nach dem symmetrischen Verfahren verschlüsselt übertragen werden.
Bei einem Ausführungsbeispiel der Kryptographievorrichtung ist der erste Re- chenblock ausgebildet, die empfangenen ersten Eingangsdaten nach einem AES-Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen und der zweite Rechenblock ausgebildet, die empfangenen zweiten Eingangsdaten nach einem ECC-Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen.
In einem Ausführungsbeispiel enthält der asymmetrisch arbeitende Verschlüsse- lungs- und Entschlüsselungsblock eine Schlüsselwechseleinheit. Diese ist aus- gebildet, beim Verschlüsseln einen öffentlichen Schlüssel zur Verfügung zu stellen und beim Entschlüsseln einen privaten Schlüssel zur Verfügung zu stellen.
Der Rechenblock kann auch eine Schlüsselspeichereinrichtung enthalten. Damit kann die Kryptographievorrichtung an verschiedene Adressaten verschlüsseln. Die Schlüssel können auch fester Bestandteil des Rechenblocks sein, so dass sie nicht getauscht werden können.
Bei einer Ausführungsform der Kryptographievorrichtung ist die Steuereinheit ausgebildet, mindestens einem Rechenblock als erste beziehungsweise zweite Eingangsdaten Nutzdaten und zusätzlich pseudozufällige Daten zuzuweisen, die nicht für die eigentliche Ver- bzw. Entschlüsselung benötigt werden. Diese pseudozufälligen Daten werden auch als Dummydaten bezeichnet.
Mit Nutzdaten werden solche Daten bezeichnet, welche die eigentlich zu ver- oder entschlüsselnde Nachricht enthält. Bei dem Beispiel einer Entschlüsselung eines TV-Programms sind Nutzdaten die verschlüsselten Bilddaten des Programms. Die Nutzdaten werden aus einer Nutzdatenquelle bezogen. Beim Beispiel des TV-Programms ist die Nutzdatenquelle ein Funk- oder Kabelempfänger. Die Dummydaten sind mehr oder weniger zufällige zusätzliche Daten, welche keinen Beitrag zur eigentlichen Ver- oder Entschlüsselung leisten und nach dem Durchlaufen eines Rechenblocks aussortiert und verworfen werden. Sie dienen nur der Störung der Seitenkanalinformation durch zusätzliche Rechenoperationen oder einem veränderten Operationsfluss. Die Steuereinheit kann in diesem Ausführungsbeispiel die Dummydaten dem Dateneingang des ersten oder des zweiten Rechenblocks zuleiten. In einem Ausführungsbeispiel der Kryptographie- Vorrichtung sind die Dummydaten von einem Teil der ersten Ausgangsdaten oder von den ersten Ausgangsdaten insgesamt gebildet. Die ersten Ausgangsdaten sind in diesem Ausführungsbeispiel vorzugsweise nicht zu einem Geräteausgang der Kryptographievorrrichtung zugeführt. Dem zweiten Rechenblock im ersten Betriebszustand zugewiesene Dummydaten sind in diesem Ausführungsbeispiel vorzugsweise also die ersten Ausgangsdaten. Dem ersten Rechenblock im ers- ten Betriebszustand zugewiesene Dummydaten sind in diesem Ausführungsbeispiel vorzugsweise ebenfalls die ersten Ausgangsdaten.
Die Dummydaten können in einem alternativen, hier nicht bevorzugten Ausführungsbeispiel von einer separaten, also von den ersten und zweiten Rechenblö- cken verschiedenen Dummydatenquelle oder von der Steuereinheit erzeugt werden.
Der erste Rechenblock kann seine Ausgangsdaten auf seinen Dateneingang zurückkoppeln und dabei einen AES-Verschlüsselungsalgorithmus verwenden und z. B. im CFB- oder CBC-Mode laufen. Ein Teil der Ausgangsdaten des ers- ten Rechenblocks kann von der Steuereinheit dem Dateneingang des zweiten Rechenblocks zugeleitet werden, welche diese Daten zusätzlich verarbeitet. Der zweite Rechenblock kann dabei einen ECC Verschlüsselungsalgorithmus verwenden. Dabei werden die verschlüsselten Ausgangsdaten des ersten Rechenblocks nicht aus der Kryptographievorrichtung ausgegeben, sondern erneut verschlüsselt, um dann wieder verschlüsselt zu werden, und so weiter. Greift man diese verschlüsselten Daten nach jeder Runde ab, erhält man einen pseu- do-zufälligen Datenstrom. Dieser pseudozufällige Datenstrom oder auch Zufalls- Datenstrom wird verwendet, um eine Zufälligkeit im ECC-Ablauf im zweiten Rechenblock zu erzeugen. Die Zufälligkeit sorgt dafür, dass aus dem Zeit- und Stromverbrauch des ECC berechnenden Rechenblocks keine Schlussfolgerungen über die verwendeten Schlüssel oder die verarbeiteten Daten gezogen werden können. In einem Ausführungsbeispiel der Kryptographievorrichtung ist die Steuereinheit ausgebildet, den Betrieb des ersten oder zweiten Rechenblocks unabhängig voneinander anzuhalten und in Gang zu setzen.
Die Steuereinheit kann somit die Rechenblöcke unabhängig von einander an- und abschalten, zum Beispiel wenn ein Rechenblock nicht verwendet wird. Andererseits kann die Steuereinheit durch unregelmäßiges Anhalten und in Gang setzen eines oder beider Rechenblöcke die Seitenkanalinformation stören. Multiplikationen sind in digitalen Systemen sehr rechenintensiv. Bei Verschlüsselungsalgorithmen werden eine Vielzahl von Multiplikationsschritten ausgeführt.
Deshalb ist in einer Ausführungsform der Kryptographievorrichtung der zweite Rechenblock ausgebildet, bei der Verschlüsselung bzw. Entschlüsselung erfor- derliche Polynom-Multiplikationen mit Hilfe eines Karatsuba-Verfahrens durchzuführen. Die Multiplikation nach dem Karatsuba-Algorithmus hat den Vorteil, dass sie weniger Rechenoperationen benötigt als eine herkömmliche Multiplikation. Ihre Verwendung kann auch zu einem Geschwindigkeitszuwachs führen, weil ihre Laufzeitkomplexität geringer ist.
Bei einem weiteren Ausführungsbeispiel der Kryptographieeinrichtung besitzt mindestens ein Rechenblock mehrere parallele Multiplikationseinheiten. Multiplikationseinheiten sind Module, welche in einem oder mehreren Taktzyklen eines digitalen Systems wie der Kryptographievorrichtung eine Multiplikationsoperation durchführen können. Der Einsatz von parallelen Multiplikationseinheiten erzeugt einen Geschwindigkeitszuwachs bei Multiplikationsoperationen. Im Gegensatz zur seriellen Verarbeitung kann eine Vielzahl von Multiplikationsoperationen gleichzeitig durchgeführt werden.
Auch eine Kombination von einer Multiplikation nach Karatsuba und der Verwendung mehrerer paralleler Multiplikationseinheiten ist vorteilhaft, da bei der Multi- plikation nach Karatsuba die zu multiplizierenden Zahlen in kleinere Teile zerlegt werden. Diese Teile können dann mit parallelen Multiplikationseinheiten gleichzeitig berechnet werden.
In einem Ausführungsbeispiel ist die Steuereinrichtung ausgebildet, eine m-Bit- Multiplikation iterativ beispielsweise auf 9 partielle Multiplikationen der Bitlänge m/4 zu verteilen. Dazu werden dann 9 Taktzyklen benötigt. Ein Rechenblock ist dabei dazu ausgebildet, die Multiplikationen der Länge m/4 in je einem Taktzyklus durchzuführen, indem im Rechenblock 9 parallele Multiplikationseinheiten der Größe m/16 (m/4/4) instanziiert werden. Die Operationen der Multiplikationsein- heiten werden dann parallel ausgeführt. Wenn m/4/4 größer 8 Bit ist, kann die Steuereinheit die partiellen Multiplikationen weiter zerlegen.
In einem Ausführungsbeispiel ist die Zahl m = 256. Man benötigt 9 Taktzyklen in denen man je eine Multiplikation der Länge 64 Bit ausführt. Die Steuereinheit ist ausgebildet, die 64 Bit Multiplikation in 9 Blöcke der Größe 16 Bit und jeden dieser 9 16-Bit-Blöcke wieder in 9 partielle Multiplikationen der Länge 4 Bit zu zerlegen. Die parallelen Multipliziereinheiten können zu 64-Bit-Blöcken zusam- mengefasst sein. Jeder 64-Bit-Block hat intern z. B. 81 4-Bit-Multipliziereinheiten, die parallel angesprochen werden können.
Bei einer Ausführungsform der Kryptographievorrichtung ist die Steuereinheit ausgebildet, dem ersten oder zweiten Rechenblock eine Anzahl parallel durchzuführender Rechenoperationen pro Takteinheit jeweils entweder von Takteinheit zu Takteinheit oder in größeren zeitlichen Abständen vorzugeben. Die Anzahl parallel durchzuführender Rechenoperationen pro Takteinheit kann die Steuer- einheit beispielsweise durch ein Steuersignal vorgeben. Der erste Rechenblock oder der zweite Rechenblock oder beide Rechenblöcke sind in diesem Ausführungsbeispiel vorzugsweise ausgebildet, in einem von der Steuereinheit her empfangenen Steuersignal enthaltene Steuerinformation zu extrahieren und die Anzahl im jeweiligen Rechenblock parallel durchzuführender Rechenoperationen pro Takteinheit in Abhängigkeit von der extrahierten Steuerinformation einzustellen.
Das Steuersignal kann die Steuerinformation über die Anzahl parallel durchzuführender Rechenoperationen pro Takteinheit in Form pseudozufälliger Daten enthalten. Die Steuerinformation kann hierfür beispielsweise durch Herausgreifen von Daten aus dem Strom der ersten Ausgangsdaten entnommen werden. In einer Ausführungsform werden die entnommenen ersten Ausgangsdaten zur Bildung der Steuerinformation vom empfangenden Rechenblock zusätzlich einer Umrechnung unterzogen. Es können in unterschiedlichen Ausführungsbeispielen je nach Mengenbedarf an Steuerinformation alle ersten Ausgangsdaten oder nur Teile der ersten Ausgangsdaten als Steuerinformation verwendet werden.
Diese Eigenschaft der Kryptographievorrichtung ermöglicht eine sehr feingliedri- ge Manipulation der Seitenkanalinformation, weil keine Multiplikationsoperation mehr als störungsfrei angenommen werden kann, da sich die Anzahl der parallel durchgeführten Multiplikationsoperationen und damit auch der Stromverbrauch und der Zeitverbrauch für jede Multiplikation ständig ändert. Bei Nichtausnutzen aller parallelen Multiplikationseinheiten verlängert sich zwar die gesamte Re- chenzeit für die Ver- oder Entschlüsselung, jedoch wird der Energieverbrauch nicht erhöht, weil keine zusätzlichen Multiplikationsoperationen durchgeführt werden müssen.
Die Verbrauchsanalyse kann am einfachsten Entscheidungsverzweigungen beim Ausführen des kryptographischen Programms unterscheiden, weil das Krypto- system verschiedene Operationen durchführt, wobei dabei verschieden viel Strom verbraucht wird, abhängig davon, welcher Entscheidungsast ausgeführt wird. Aus diesem Grund ist es günstig, wenn vom Verbrauch her keine Unterschiede in Entscheidungsverzweigungen bei kryptographischen Implementierungen bestehen. Rotationen, Permutationen und logische Operationen (wie bei- spielsweise XOR) sollten nach Möglichkeit gleich lang dauern und ähnlich viel Energie verbrauchen.
Es gibt jedoch einige Algorithmen mit inhärent aussagekräftigen Verzweigungen. Deshalb können bei einer Ausführungsvariante auch zwei Nutzdatenquellen zwei verschiedene Nutzdatenströme ausgeben. Dabei ist jeder Rechenblock ausgebil- det, jeweils einen Nutzdatenstrom zu verarbeiten.
Bei dieser Ausführungsvariante der Kryptographievorrichtung ist der erste Rechenblock mit einem ersten Geräteeingang für erste Nutzdaten und einem Geräteausgang verbunden, und der zweite Rechenblock ist mit einem zweiten Geräteeingang für zweite Nutzdaten und dem selben Geräteausgang verbunden. Die Steuereinheit ist dabei ausgebildet, in einem zweiten Betriebszustand die ersten Ausgangsdaten dem Geräteausgang und nicht dem zweiten Rechenblock und nicht dem ersten Rechenblock zuzuleiten, und die vom zweiten Rechenblock ausgegebenen zweiten Ausgangsdaten ebenfalls dem Geräteausgang zuzulei- ten.
Der Vorteil dieser Ausführungsvariante ist, dass der erste Rechenblock auch Nutzdaten verarbeitet. Damit können zwei verschiedene Eingangsdaten oder Eingangsdatenströme gleichzeitig ver- oder entschlüsselt werden. Zum Beispiel kann, wie oben bereits erläutert, der erste Rechenblock eine symmetrische Ver- oder Entschlüsselung vornehmen, und der zweite Rechenblock kann eine asymmetrische Ver- oder Entschlüsselung mit anderen Eingangsdaten vornehmen.
Ein weiterer Vorteil ist, dass die Dynamik des Gesamtenergieverbrauchs der Kryptographievorrichtung in diesem Betriebszustand die Überlagerung der Dynamik des Energieverbrauchs der zwei parallel arbeitenden Rechenblöcke ist. Damit kann nicht jeder Rechenblock einzeln von außen analysiert werden. Es ist somit schwieriger, auf die Vorgänge, insbesondere auf die Entscheidungsverzweigungen, in einem Rechenblock anhand der Seitenkanalinformation zu schließen. Dadurch wird der geheime interne Schlüssel geschützt.
Der Geräteausgang kann auch geteilt ausgeführt sein, so dass jeder Rechen- block seinen eigenen Geräteausgang hat. Im Fall lediglich eines Geräteausgangs können die Ausgangsdaten der Rechenblöcke auf den Geräteausgang gemultip- lext werden.
In einer weiteren Ausführungsform der Kryptographievorrichtung ist die Steuereinheit ausgebildet, zwischen dem ersten und dem zweiten Betriebszustand umzuschalten.
In dieser Ausführungsform kann die Steuereinheit bestimmen, in welchem Betriebszustand die Kryptographievorrichtung laufen soll. Im ersten Betriebszustand werden die Ausgangsdaten des ersten Rechenblocks auf seinen Dateneingang zurückgekoppelt und anteilig dem zweiten Rechenblock als zusätzliche Eingangsdaten zugeleitet. Im zweiten Betriebszustand arbeiten die Rechenblöcke gleichzeitig an verschiedenen Eingangsdaten, oder es arbeitet nur ein Rechenblock.
In einem Ausführungsbeispiel der Kryptographievorrichtung ist die Steuereinheit ausgebildet, dem ersten oder zweiten Rechenblock eine von verschiedenen vorgebbaren Abfolgen von Rechenoperationen vorzugeben.
Der Vorteil des Änderns der Reihenfolge von Rechenoperationen ist eine weitere Reduktion der abgegebenen Seitenkanalinformation. Kryptoanalyse beruht auf der Annahme von Regelmäßigkeit im analysierten Algorithmus. Diese Regelmäßigkeit geht durch Vertauschen von Abfolgen der Rechenoperationen verloren. Wenn einem Angreifer nicht bekannt ist, welche Operationen nacheinander ausgeführt werden, weil die Abfolge der Rechenoperationen ständig wechselt, kann das erschweren, auf den internen Systemzustand und die Position im Algorith- mus zu schließen. Damit werden der geheime Schlüssel und die geheimen Daten vor einer Kryptoanalyse geschützt.
Bei einer weiteren Ausführungsform der Kryptographievorrichtung ist die Steuereinheit ausgebildet, die Abfolge der Rechenoperationen im zweiten Rechenblock vorzugeben. Die Abfolge der Rechenoperationen kann die Steuereinheit bei- spielsweise durch ein Steuersignal vorgeben. Der zweite Rechenblock ist in diesem Ausführungsbeispiel vorzugsweise ausgebildet, die in einem von der Steuereinheit her empfangenen Steuersignal enthaltene Abfolge-Steuerinformation zu extrahieren und die Abfolge durchzuführender Rechenoperationen in Abhängigkeit von der extrahierten Abfolge-Steuerinformation einzustellen.
Das Steuersignal kann die Abfolge-Steuerinformation über die Abfolge durchzuführender Rechenoperationen in Form pseudozufälliger Daten, also Dummyda- ten, enthalten. Das hat den Vorteil, dass die Zufälligkeit der Abfolge der Rechenoperationen erhöht werden kann. Die Abfolge-Steuerinformation kann hierfür beispielsweise durch Herausgreifen von Daten aus dem Strom der ersten Aus- gangsdaten entnommen werden. In einer Ausführungsform werden die entnommenen Ausgangsdaten zur Bildung der Abfolge-Steuerinformation vom empfangenden zweiten Rechenblock zusätzlich einer Umrechnung unterzogen.
Es können in unterschiedlichen Ausführungsbeispielen je nach Mengenbedarf an Steuerinformation alle ersten Ausgangsdaten oder nur Teile der ersten Ausgangsdaten als Abfolge-Steuerinformation verwendet werden. Bei einem Ausführungsbeispiel der Kryptographievorrichtung enthält der erste oder der zweite Rechenblock eine Vielzahl Multiplikationseinheiten. Die Steuereinheit ist ausgebildet, parallel einer ersten Teilanzahl der Multiplikationseinheiten Nutzdaten und einer zweiten Teilanzahl der Multiplikationseinheiten Dummydaten zuzuleiten.
Dies hat den Vorteil, dass bei jeder Multiplikationsoperation Dummydaten und Nutzdaten verarbeitet werden können. Dadurch ist die Seitenkanalinformation für jede Multiplikationsoperation gestört. Ein Angreifer kann somit weniger Informationen über einen geheimen Schlüssel oder verarbeitete Daten ermitteln, wenn in keiner Multiplikationsoperation ausschließlich Nutzdaten verarbeitet werden. Die Steuereinrichtung kann auch einer ersten Teilanzahl der Multiplikationseinheiten Nutzdaten, einer zweiten Teilanzahl Dummydaten und einer dritten Teilanzahl keine Daten zuleiten.
Bei einem Ausführungsbeispiel kann sich die Kryptographievorrichtung im ersten Betriebszustand befinden, und die ersten Ausgangsdaten können als Dummydaten verwendet werden. Dabei weist die Steuereinheit die ersten Ausgangsdaten dem zweiten Rechenblock zumindest teilweise zu. Die ersten Ausgangsdaten stellen pseudozufällige Daten dar und eignen sich gut als Dummydaten. Sie werden im ersten Betriebszustand dem zweiten Rechenblock zugewiesen und nicht an einem Geräteausgang ausgegeben. Die Dummydaten können genutzt werden, um zusätzliche Rechenoperationen mit den Dummydaten im zweiten Rechenblock durchzuführen oder die Anzahl parallel durchzuführender Rechenoperationen vorzugeben. In einer Ausführungsform können einem Anteil paralleler Multiplikationseinheiten Dummydaten und einem anderen Anteil Nutzdaten zugeleitet werden. Bei einer Ausführungsform kann die Abfolge der Rechenope- rationen mit den Dummydaten gesteuert werden. Damit sind die ersten Ausgangsdaten Steuerdaten für den zweiten Rechenblock. Dabei kann der zweite Rechenblock einen Zusatzdateneingang aufweisen, welchem die Dummydaten zugewiesen werden, um die Abfolge der Rechenoperationen im zweiten Rechen- block zu steuern. In allen Fällen wird die Seitenkanalinformation des Krypto- systems gestört und dadurch reduziert.
In einem weiteren Ausführungsbeispiel ist die Steuereinheit ausgebildet, dem ersten Rechenblock einen ersten Datenstrom von extern und dem zweiten Rechenblock einen zweiten Datenstrom von extern zuzuleiten. Weiterhin ist die Steuereinheit ausgebildet, die ersten Ausgangsdaten zumindest teilweise dem zweiten Rechenblock zuzuleiten, und sie nicht dem Geräteausgang zuzuleiten. Die ersten Ausgangsdaten können als Dummydaten verwendet werden.
Die Steuereinheit kann in einem Ausführungsbeispiel auch aus mehreren getrennten Teilen bestehen, welche auch zum Teil in die Rechenblöcke integriert sein können.
Bei einer Ausführungsvariante der Kryptographievorrichtung ist der erste und der zweite Rechenblock und die Steuereinheit jeweils hardwareimplementiert. In einer weiteren Ausführungsvariante enthält ein integrierter Schaltkreis die Kryptographievorrichtung. Integrierte Schaltkreise sind eine übliche Form der Hard- Wareimplementierung. Sie können bei großen Stückzahlen kostengünstig hergestellt werden. In einem weiteren Ausführungsbeispiel enthält ein ASIC die Kryptographievorrichtung.
Die Verwendung festverdrahteter Hardware für die Kryptographievorrichtung hat den Vorteil, dass der Energieverbrauch im Betrieb weniger schwankt. Dies gilt besonders, wenn die Kryptographievorrichtung eine Vielzahl an parallelen Multipliziereinheiten enthält. Dadurch wird das Signal-Rauschverhältnis der Seitenkanalinformation verringert. Dies bewirkt eine Reduktion der Seitenkanalinformation. Es wird angemerkt, dass auch eine Kombination der verschiedenen in dieser Anmeldung beschriebenen Ausführungsformen der Kryptographievorrichtung möglich ist, soweit die Ausführungsbeispiele nicht ausdrücklich als Alternativen zueinander beschrieben sind.
Das der Erfindung zugrunde liegende technische Problem wird gemäß einem weiteren Aspekt der Erfindung durch ein Steuermodul für eine Kryptographieeinheit gelöst.
Im weiteren wird gemäß einem zweiten Aspekt der Erfindung ein Verfahren zum Ver- oder Entschlüsseln von Daten vorgeschlagen.
Das Verfahren umfasst ein Verschlüsseln oder Entschlüsseln erster Eingangsdaten mit einem ersten Rechenblock und ein Ausgeben der verschlüsselten oder entschlüsselten ersten Eingangsdaten als erste Ausgangsdaten an einen ersten Datenausgang. Weiterhin enthält das Verfahren ein Verschlüsseln oder Entschlüsseln zweiter Eingangsdaten mit einem zweiten Rechenblock und ein Aus- geben der verschlüsselten oder entschlüsselten zweiten Eingangsdaten als zweite Ausgangsdaten an einen zweiten Datenausgang. Weiterhin enthält das Verfahren ein Zuweisen der ersten Ausgangsdaten zum einen entweder teilweise oder vollständig als Eingangsdaten zum ersten Rechenblock und zum anderen entweder teilweise oder vollständig als Teil der zweiten Eingangsdaten zum zweiten Rechenblock .
Die ersten Ausgangsdaten werden bei dem vorgestellten Verfahren somit auf den ersten Dateneingang teilweise oder vollständig zurückgekoppelt.
Die Vorteile des erfindungsgemäßen Verfahrens ergeben sich aus den oben beschriebenen Vorteilen der Kryptographievorrichtung des ersten Aspekts der Erfindung. Nachfolgend werden Ausführungsbeispiele des Verfahrens beschrieben. In einem Ausführungsbeispiel des Verfahrens umfasst das Zuweisen der ersten Ausgangsdaten an den zweiten Rechenblock ein Steuern der Abfolge der Rechenoperationen im zweiten Rechenblock anhand der ersten Ausgangsdaten.
In einem weiteren Ausführungsbeispiel des Verfahrens umfasst das Zuweisen der ersten Ausgangsdaten an den zweiten Rechenblock ein Steuern der Anzahl parallel durchzuführender Rechenoperationen im zweiten Rechenblock anhand der ersten Ausgangsdaten.
Das Verfahren kann mit der Kryptographievorrichtung gemäß dem ersten Aspekt der Erfindung durchgeführt werden. Dabei wird der Anteil an Seitenkanalinforma- tion reduziert, wodurch beispielsweise ein verwendeter geheimer Schlüssel oder andere geheime Daten vor kryptoanalytischen Angriffen geschützt werden.
Im folgenden werden weitere Ausführungsbeispiele anhand der Figuren erläutert.
Fig. 1 zeigt in einem vereinfachten Blockdiagramm ein erstes Ausführungsbeispiel einer Kryptographievorrichtung in einem ersten Betriebszu- stand.
Fig. 2 zeigt das Kryptographiesystem der Fig. 1 in einem zweiten Betriebszustand, in dem eine Steuereinheit einen Datenpfad trennt.
Fig. 3 zeigt eine schematische Darstellung eines zweiten Ausführungsbeispiels einer Kryptographievorrichtung.
Fig. 4 zeigt eine schematische Darstellung eines dritten Ausführungsbeispiels einer Kryptographievorrichtung.
Fig. 5 zeigt zur näheren Erläuterung der Funktionsweise der Kryptographievorrichtungen der Fig. 1 bis 4 schematisch parallele Multiplikationseinheiten, wie sie im zweiten Rechenblock in einer ersten Weise Verwendung finden können. Fig. 6 zeigt zur näheren Erläuterung der Funktionsweise der Kryptographievorrichtungen der Fig. 1 bis 4 schematisch parallele Multiplikationseinheiten, wie sie im zweiten Rechenblock in einer zweiten Weise Verwendung finden können.
Fig. 7 zeigt einen Ablaufplan für eine Iteration bei der Ver- und Entschlüsselung nach einem elliptischen Kurven-Kryptographie- (ECC-) Algorithmus
Fig. 1 ist eine vereinfachte Darstellung einer Kryptographievorrichtung 100 in einem ersten Betriebszustand. Die Kryptographievorrichtung 100 enthält einen ersten Rechenblock 102 mit einem ersten Dateneingang 106 und einem ersten Datenausgang 1 16 und eine Steuereinheit 120, welche dem ersten Dateneingang 106 erste Ausgangsdaten 1 16 vom ersten Datenausgang 116 als erste Eingangsdaten 112 zuweist, so dass der erste Datenausgang 116 auf den ersten Dateneingang 106 zurückgekoppelt ist. Dies ist durch den Pfeil an der Steuerein- heit 120 dargestellt. Dieser Datenweg wird auch als Rückkoppelungsdatenpfad bezeichnet. Daten und die jeweiligen Ein- Ausgänge sind mit demselben Bezugszeichen gekennzeichnet. Die Kryptographievorrichtung 100 arbeitet somit im oben bereits erwähnten ersten Betriebszustand. Der ersten Rechenblock 102 und der zweite Rechenblock 104 werden nachfolgend jeweils auch als Ver- und Entschlüsselungsblock bezeichnet.
Weiterhin weist die Steuereinheit 120 erste Ausgangsdaten 116 teilweise oder vollständig einem zweiten Dateneingang 108 eines zweiten Rechenblocks 104 als zweite Eingangsdaten 110 zu. Damit liegen am zweiten Dateneingang 108 teilweise erste Ausgangsdaten 1 10 und teilweise Nutzdaten 130 . Die dem zwei- ten Dateneingang 108 zugeführten ersten Ausgangdaten 1 10 werden nachfolgend der Kürze halber auch als Zusatzdaten bezeichnet. „Teilweise" kann hier entweder parallel anteilig oder seriell anteilig bedeuten. Im einem Fall liegen also parallel zum einen Teil Nutzdaten 130 und zum anderen Teil Zusatzdaten 110 an, im anderen Fall liegen für eine bestimmte Anzahl von Systemtakten Nutzda- ten 130 und für eine bestimmte Anzahl nachfolgender oder vorausgehender Systemtakte Zusatzdaten 110 an.
Die eigentliche Aufgabe der Kryptographieeinrichtung 100 ist es, die Nutzdaten 130 und 132 zu verarbeiten, d.h. zu verschlüsseln oder zu entschlüsseln und verschlüsselte bzw. entschlüsselte Nutzdaten nach extern auszugeben. Die ersten Ausgangsdaten 1 16 werden nicht nach extern ausgegeben.
Nutzdaten 130 und 132 können Daten sein, welche von außen an die Kryptographievorrichtung 100 übertragen worden sind. Die Rechenblöcke 102 und 104 sind Ver- und Entschlüsselungsblocks. Das bedeutet, dass sie Eingangsdaten 106 und 108 ver- bzw. entschlüsseln können und an ihren Datenausgängen 1 16 und 1 14 ausgeben können.
Die Abfolge der Rechenoperationen im zweiten Rechenblock 104 oder eine Anzahl parallel auszuführender Rechenoperationen im zweiten Rechenblock 104 kann in einer bevorzugten Ausführungsform durch die Zusatzdaten gesteuert werden. Ein solches Ausführungsbeispiel wird unten anhand von Fig. 4 näher beschrieben. In einem solchen Fall kann der zweite Rechenblock 104 auch ausschließlich Nutzdaten ver- oder entschlüsseln. Die Zusatzdaten haben in diesem Fall also allein die Funktion von Steuerinformationen.
Im vorliegenden Ausführungsbeispiel können die Zusatzdaten 110 jedoch auch allein die Funktion haben, durch ihre zusätzliche Verschlüsselung bzw. Entschlüsselung im zweiten Rechenblock 104 die der Kryptographievorrichtung 100 entnehmbare Seitenkanalinformation zu reduzieren. Die Rechenblöcke 102 und 104 können in einer solchen besonders einfachen Ausführungsform also auch ohne Funktionsblöcke zur Auswertung und Umsetzung der entsprechenden Steuerinformationen ausgebildet sein.
Fig. 2 zeigt ein Ausführungsbeispiel der Kryptographievorrichtung 100 der Fig. 1 in einem zweiten Betriebszustand. Dies bedeutet jedoch nicht, dass die jeweili- gen Teile notwendigerweise mit denen der Fig. 1 in ihrer Funktion und Konstruktion identisch sind.
Im Ausführungsbeispiel der Fig. 2 trennt die Steuereinheit 120 den Rückkopplungsdatenpfad 1 16 nach 112 auf. Somit ist auch der Datenpfad 116 nach 1 10 zum zweiten Dateneingang 108 getrennt. Die Rechenblöcke 102 und 104 verarbeiten parallel nur Nutzdaten 132 und 130, da den Dateneingängen 106 und 108 keine Zusatzdaten 112 und 110 zugewiesen werden. Die Nutzdaten werden am ersten Datenausgang 1 16 und am zweiten Datenausgang 1 14 nach extern ausgegeben. Dies kann über einen Geräteausgang geschehen (nicht dargestellt).
In Fig. 3 ist ein weiteres Ausführungsbeispiel einer Kryptographievorrichtung 200, auch Kryptographiesystem 200 genannt, gemäß der Erfindung schematisch dargestellt. Hier tragen die der Kryptographievorrichtung 100 aus Fig. 1 entsprechenden Funktionselemente der Einfachheit halber die selben Bezugszeichen wie in Fig. 1. Dies bedeutet jedoch nicht, dass die jeweiligen Funktionselemente notwendigerweise mit denen der Fig. 1 in ihrer Funktion und Konstruktion identisch sind. Die Kryptographievorrichtung 200 enthält einen ersten Rechenblock 102 mit einem ersten Eingang 106 für erste Eingangsdaten 106 und einen ersten Datenausgang 116 für Ausgangsdaten 116. Das Kryptographiesystem 200 ist ausgebildet, erste Eingangsdaten 106 zu ver- oder entschlüsseln und am Daten- ausgang 116 auszugeben. Weiterhin enthält die Kryptographievorrichtung 200 einen zweiten Rechenblock 104 mit einem zweiten Dateneingang 108 und einem zweiten Datenausgang 1 14. Der Rechenblock 104 ist ausgebildet, Eingangsdaten 108 zu ver- oder entschlüsseln und am zweiten Datenausgang 1 14 auszugeben. Die Rechenblocks 102 und 104 werden nachfolgend auch Ver- und Entschlüsselungsblocks genannt. In einem Ausführungsbeispiel können Eingangsdaten und Ausgangsdaten auch Datenströme sein. Für Ein- und Ausgänge und die entsprechenden dort abgreifbaren Eingangsdaten bzw. Ausgangsdaten wird der Einfachheit halber das selbe Bezugszeichen verwendet.
Das Kryptographiesystem 200 ist wie die Kryptographievorrichtung 100 ausgebil- det, wie oben beschrieben im ersten und im zweiten Betriebszustand zu arbeiten. Im ersten Betriebszustand ist der erste Ver- und Entschlüsselungsblock 102 mit dem zweiten Dateneingang 108 des zweiten Ver- und Entschlüsselungsblocks 104 über eine Datenweiche 1 18 verbunden.
Das Kryptographiesystem 200 enthält weiterhin eine Steuereinheit 120. Die Steuereinheit ist mit dem ersten und dem zweiten Rechenblock 102 bzw. 104, einem Schalter 122 und der Datenweiche 118 verbunden. Die Steuereinheit 120 ist ausgebildet, den ersten Rechenblock 102 und den zweiten Rechenblock 104 zu steuern und Informationen wie zum Beispiel Statusinformation zur Verfügung zu stellen oder Informationen abzufragen.
Die Steuereinheit 120 öffnet im ersten Operationsmodus den Schalter 122, so dass an einem ersten Geräteausgang 134 keine Ausgangsdaten 116 ausgegeben werden.
Der erste Rechenblock 102 hat einen ersten Dateneingang 106 und einen ersten Datenausgang 116, welcher über die Datenweiche 1 18 mit dem ersten Datenein- gang 106 verbunden ist. Die Steuereinheit 120 regelt im ersten Betriebszustand die Datenweiche 1 18 so, dass mindestens ein Teil des Datenstroms 1 12 am Datenausgang 1 16 auf den ersten Dateneingang 106 zurückgekoppelt wird. Außerdem steuert die Steuereinheit 120 die Datenweiche 1 18 so, dass ein Teil der ersten Ausgangsdaten 1 10 an den zweiten Dateneingang 108 des zweiten Rechenblocks 104 übertragen wird. Die an den zweiten Rechenblock 104 übertragenen ersten Ausgangsdaten 1 10 bilden eingangs erläuterten Zusatzdaten und im vorliegenden Zusammenhang auch die ebenfalls oben eingeführten Dummydaten.
Der zweite Rechenblock 104 verarbeitet im ersten Operationsmodus zum einen die Zusatzdaten 110, welche vom ersten Rechenblock 102 erzeugt werden , und zum anderen Nutzdaten 130 jeweils anteilig. Die Daten liegen in diesem Ausführungsbeispiel am zweiten Dateneingang 108 an. Der zweite Rechenblock 104 kann auch nur Nutzdaten 130 oder nur Zusatzdaten 1 10 verarbeiten. In einer Ausführungsform ist die Menge der zusätzlichen Eingangsdaten 110, welche der erste Rechenblock 102 an den zweiten Rechenblock 104 überträgt, über die Steuereinheit 120 und die Datenweiche 118 einstellbar. Die zusätzlichen Eingangsdaten 1 10, welche berechnet werden, sind keine Nutzdaten 130. Sie dienen nur der Verschleierung der Berechnungen des zweiten Rechenblocks 104. Diese zusätzlichen Berechnungen dienen der Reduktion von Seitenkanalin- formation gemäß der Erfindung. Bei besonders sicherheitsrelevanten Berechnungen kann das Maß der Zusatzdaten 110 bei zum Beispiel 90 % liegen und nur 10 % der Daten sind Nutzdaten 130, mit welchen die Ver- bzw. Entschlüsse- lung durchgeführt werden soll. Die zusätzlichen Eingangsdaten 110, welche vom ersten Rechenblock 102 durch Rückkoppelung erzeugt werden, sind pseudozufällige Daten. Dies kann so geschehen, dass eine Datensequenz an den ersten Dateneingang 106 des ersten Rechenblocks 102 geliefert wird, welche dort verschlüsselt werden und wieder auf den Eingang 106 zurückgekoppelt werden, wobei mindestens ein Teil der ersten Ausgangsdaten 1 10 an den zweiten Rechenblock 104 übertragen wird. Mindestens ein Teil der rückgekoppelten Daten 1 12 durchlaufen den ersten Rechenblock 102 ein weiteres Mal, werden nochmals verschlüsselt und werden wiederum zurückgekoppelt und an den zweiten Rechenblock 104 zumindest teilweise übertragen.
In einer Ausführungsform wird die Abfolge der Rechenoperationen im zweiten Rechenblock 104 durch die Zusatzdaten 1 10 gesteuert. Es kann auch die Anzahl parallel auszuführender Rechenoperationen durch die Zusatzdaten, welche am zweiten Dateneingang 108 anliegen, gesteuert werden.
Der erste Rechenblock 102 kann in einer weiteren Ausführungsvariante einen zweiten Eingang (nicht dargestellt) für rückgekoppelte Daten 1 12 enthalten. Der erste Rechenblock 102 erhält dabei einen Eingangsdatenstrom 106 und einen rückgekoppelten Datenstrom 112, wobei er zu einem gewissen Teilverhältnis rückgekoppelte Daten 1 12 und Eingangsdaten 106 verarbeitet. Mindestens Teile der Daten des Rückkopplungsstrangs 112 werden an den zweiten Rechenblock 104 als zusätzliche Eingangsdaten 1 10 übertragen. Dadurch erhält man ein großes Maß an Zufälligkeit der an den zweiten Rechenblock 104 übertragenen Daten 1 10. Alternativ kann dieses Teilverhältnis an rückgekoppelten Daten 1 12 und Eingangsdaten 132 von einem Puffer 126 eingestellt werden.
In einer weiteren Ausführungsform sind den Dateneingängen 106 und 108 Puffer 126 und 124 vorgeschaltet, um am Eingang der Puffer 126 und 124 anfallende Daten zwischenzuspeichern und gemäß der Kapazität der Rechenblocks 102 und 104 an diese weiterzugeben. Der Puffer 124 hat in diesem Ausführungsbeispiel zwei Eingänge, einen für die Nutzdaten 130 und einen für die Zusatzdaten 1 10. Der Puffer 124 kann die Nutzdaten 130 und die Zusatzdaten 110 wie beschrieben zeitlich seriell oder parallel mischen. Die Puffer 126 und 124 können mit der Steuereinheit 120 verbunden sein, und die Eingangsdatenströme 106 und 108 können von der Steuereinrichtung 120 gesteuert werden. Die Puffer 126 und 124 können in einer Ausführungsform von den Rechenblocks 102 und 104 abgefragt werden. Hierzu kann ein Rechenblock 102, 104 beim Freiwerden von Rechenkapazität Daten aus dem jeweiligen Puffer 126, 124 abfragen. Dies kann geschehen, indem vordefinierte Datenpakete mit einem Takt abgerufen werden, oder es kann eine Adressleitung vorgesehen sein, welche den Puffer 126, 124 und den jeweiligen Rechenblock 102, 104 verbindet, um Daten direkt zu adressieren und aus dem Puffer 126, 124 abzurufen. Eine Adressleitung oder eine Taktleitung kann auch die Steuereinheit 120 und die Puffer 126 und 124 verbin- den. Die Steuerung der Puffer 126 und 124 kann auch durch einen externen Systemtakt vorgegeben werden. Die Puffer 126 und 124 können auch die Anteile an Zusatzdaten 110 oder 112 und die Anteile der Nutzdaten 132 und 130 steuern, wobei die Steuereinheit 120 die jeweiligen Anteile vorgeben kann, wenn sie mit den Puffern 126 und 124 verbunden ist.
In einem Ausführungsbeispiel enthält die Kryptographievorrichtung 200 eine Zufallsquelle (nicht dargestellt), die nicht manipulierbar ist, wie z.B. das Rauschen eines Widerstands, welches in ein digitales Signal gewandelt wird. Eine als digitales Signal ausgegebene Zahl kann zur Initialisierung des ersten Rechenblocks 102 im ersten Betriebszustand verwendet werden. Eine Alternative ist es, eine zufällige Zahl zu generieren und diese bei ihrer ersten Verwendung in einem nichtflüchtigen Speicher abzulegen. Der Speicher kann im Puffer 126 enthalten sein. Im weiteren Verlauf wird die Zufallszahl dann als Initialisierungsvektor verwendet. Nach Abschluss der Berechnungen wird das Ergebnis im selben Speicher ablegt, also der vorherige Zufallsvektor durch aktuelle Ausgangsdaten ersetzt. Dieser Speicher ist in einem Ausführungsbeispiel nach der ersten Initialisie- rung nicht mehr von außen manipulierbar.
Die Steuereinheit 120 ist im vorliegenden Ausführungsbeispiel mit einer Benutzerschnittstelle Ul oder einem anderen Steuergerät verbunden. Damit wird ermöglicht, den Betriebszustand und andere Einstellungen, wie die Anteile an Nutzdaten 130 und die Anteile der Zusatzdaten 1 10 etc., von außen vorzugeben.
Im zweiten Betriebszustand schließt die Steuereinheit 120 den Schalter 122. Gleichzeitig sperrt sie die Datenweiche 1 18 an beiden Ausgängen 112 und 1 10. Damit werden keine Daten mehr vom Datenausgang 116 des ersten Rechenblocks 102 auf den ersten Dateneingang 106 zurückgekoppelt. Es werden in diesem Betriebszustand auch keine zusätzlichen Eingangsdaten 1 10 an den zweiten Dateneingang 108 des zweiten Rechenblocks 104 übertragen, weil die Datenweiche 118 sperrt. Damit können die beiden Rechenblöcke 102 und 104 unabhängig voneinander und parallel Eingangsdaten oder Datenströme 130 und 132 ver- oder entschlüsseln. Die Ausgangsdaten 1 16 und 1 14 des ersten und zweiten Rechenblocks 102 und 104 werden an einem jeweiligen Geräteausgang 134, 136 ausgegeben.
Bei einer Ausführungsvariante ist der erste Rechenblock 102 ein (Advanced Encryption Standard) AES-Ver- und Entschlüsselungsblock und der zweite Rechenblock 104 ein (Elliptic Curve Cryptosystem) ECC-Rechenblock.
Fig. 4 zeigt eine weitere Ausführungsvariante einer Kryptographievorrichtung 300. Die Kryptographievorrichtung 300 ist der Ausführungsvariante aus Fig. 3 weitgehend identisch, mit dem Unterschied, dass der zweite Rechenblock 104 einen Zusatzdateneingang 138 besitzt und die Datenweiche 118 nicht direkt mit dem Puffer 124, sondern mit einer zweiten Datenweiche 140 verbunden ist. Die zweite Datenweiche 140 ist mit der Steuereinheit 120 verbunden und von dieser steuerbar (nicht dargestellt).
Im ersten Betriebszustand werden die Zusatzdaten 1 10 zumindest anteilig dem zweiten Rechenblock 104 durch die Datenweiche 140 zugewiesen. Die Steuer- einheit 120 ist dabei ausgebildet, die zweite Datenweiche140 so zu steuern, dass die Zusatzdaten 1 10 zumindest anteilig dem Puffer 124 zugeführt werden können, um mit den Nutzdaten 130 kombiniert zu werden, und dass die Zusatzdaten 1 10 zumindest anteilig dem Zusatzdateneingang 138 zugeführt werden können. Der Zusatzdateneingang 138 kann auch als Ablaufsteuereingang 138 bezeichnet werden. Die Zusatzdaten 1 10 können am Ablaufsteuereingang 138 als Abfolge- Steuerinformationen oder als Abfolge-Steuerinformationsfluss bezeichnet werden. Der zweite Rechenblock 104 ist in diesem Ausführungsbeispiel ausgebildet, in einem von der Steuereinheit 120 her empfangenen Steuersignal enthaltene Abfolge-Steuerinformation zu extrahieren und die Abfolge durchzuführender Rechenoperationen in Abhängigkeit von der extrahierten Abfolge- Steuerinformation einzustellen. Dazu kann der zweite Rechenblock 104 einen Operationssteuerblock enthalten (nicht dargestellt). Im einzelnen werden über den Abfolge-Steuerinformationsfluss am Ablaufsteuereingang 138 die Abfolge der Rechenoperationen im zweiten Rechenblock 104 gesteuert.
Auch kann die Steuereinheit 120 anhand der Zusatzdaten 1 10 die Anzahl parallel durchzuführender Rechenoperationen pro Takteinheit beispielsweise durch ein Steuersignal vorgeben. Der erste Rechenblock 102 oder der zweite Rechenblock 104 oder beide Rechenblöcke 102 und 104 sind in diesem Ausführungsbeispiel vorzugsweise ausgebildet, aus dem eingehenden Strom von Zusatzdaten 110 und/oder 112 Steuerinformation zu extrahieren und die Anzahl im jeweiligen Rechenblock 102, 104 parallel durchzuführender Rechenoperationen pro Takteinheit in Abhängigkeit von der extrahierten Steuerinformation einzustellen. Der Zusatzdaten 1 10 und 112 bilden oder enthalten insofern Steuersignale.
In einem Ausführungsbeispiel kann die Steuereinheit 120 zwischen verschiede- nen Betriebseinstellungen wechseln. In einer ersten Betriebseinstellung verarbei- tet der zweite Rechenblock 104 die Zusatzdaten 110 und die Nutzdaten 130. Die Zusatzdaten 1 10 und die Nutzdaten 130 werden dabei im Puffer 124 gemischt. Das heißt, von einem Teil vom zweiten Rechenblock 104 parallel verarbeiteter Daten besteht ein erster Anteil aus Nutzdaten 130 und ein zweiter Anteil aus Zusatzdaten 1 10. Die Steuereinheit 120 steuert die zweite Datenweiche 140 dazu so, dass die Zusatzdaten 1 10 an den Puffer 124 durchgeleitet werden.
In einer zweiten Betriebseinstellung verarbeitet der zweite Rechenblock 104 sequentiell Nutzdaten 130 und nach einigen Systemtaktzyklen Zusatzdaten 110. Der Puffer 124 ist dabei ausgebildet, sequentiell, wiederholt Nutzdaten 130 und danach Zusatzdaten 1 10 an den zweiten Dateneingang 108 zu leiten. Die Daten am zweiten Dateneingang 108 können dabei als Datenblöcke vorliegen. Diese Datenblöcke können z.B. eine Länge von 256 Bit haben.
In diesen Betriebseinstellungen führt die zweite Datenweiche 140 dem Ablaufsteuereingang 138 keine Zusatzdaten 1 10 bzw. keinen Kontrollfluss zu.
In einer dritten Betriebseinstellung verarbeitet der zweite Rechenblock 104 ausschließlich Nutzdaten 130 oder Nutzdaten 130 und Zusatzdaten 110. Der zweite Rechenblock 104 steuert dabei die Abfolge der abzuarbeitenden Rechenoperationen bei der Ver- oder Entschlüsselung anhand der Zusatzdaten 110, welche am Zusatzdateneingang 138 anliegen.
In einer vierten Betriebseinstellung verarbeitet der zweite Rechenblock 104 ausschließlich Nutzdaten 130 oder Nutzdaten 130 und Zusatzdaten 1 10. Der zweite Rechenblock 104 steuert dabei die Anzahl der parallel durchzuführenden Rechenoperationen anhand der Zusatzdaten 110 bzw. des Steuerflusses. Die Anteile der Nutzdaten 130 und der Zusatzdaten 110, welche an den zweiten Daten- eingang 108 geliefert werden, können dabei von dem Puffer 124 gesteuert werden. In diesen Betriebseinstellungen steuert die Steuereinheit 120 die zweite Datenweiche 140 so, dass sowohl dem Ablaufsteuereingang 138 als auch dem Puffer 124 und damit dem zweiten Dateneingang 108 zumindest anteilig Zusatzdaten 1 10 zugeführt werden. Die Steuereinheit 120 kann der zweiten Datenwei- che 140 auch vorgeben, Zusatzdaten 110 ausschließlich dem Ablaufsteuereingang 138 zuzuleiten.
Die Betriebseinstellungen können während des zweiten Betriebszustands von der Steuereinheit 120 eingestellt werden.
Fig. 5 zeigt zur näheren Erläuterung der Funktionsweise der Kryptographievorrichtungen 100, 200, 300 der Fig. 1 bis 4 schematisch parallele Multiplikationseinheiten 502 bis 514, wie sie im zweiten Rechenblock in einer ersten Weise Verwendung finden können.
Mindestens einer der beiden Rechenblöcke 102, 104 enthält mehrere Multipli- ziereinheiten 502 bis 514, auch Multiplizierer genannt, welche parallel Multiplikationsoperationen, schematisch durch Pfeile 518 bis 526 dargestellt, durchführen können. Dabei können während jedes Mehrfachmultiplikationsschritt.es, welcher mehrere parallele Multiplikationsoperationen 518 bis 526 an mehreren parallel zur Verfügung stehenden Dateneinheiten 528 bis 536 umfasst, unterschiedlich viele Multiplikationsoperationen parallel durchgeführt werden. Dies kann eine zufällige Anzahl von parallelen Multiplikationsoperationen, wie im vorliegenden Fall die fünf Multiplikationsoperationen 518 bis 526 sein. Die restlichen Multipliziereinheiten 512 bis 514 führen keine Multiplikationsoperation durch.
Die Dateneinheiten 528 bis 536 können Bitblöcke jeglicher Länge sein, wie z. B. 4-Bitblöcke. Durch diese unterschiedliche Anzahl an parallel durchgeführten Multiplikationsoperationen 518 bis 526 wird der Anteil an Seitenkanalinformation reduziert, weil zum Beispiel die Dauer und der Energieverbrauch für eine Multiplikation unterschiedlich ist. Die Anzahl der verwendeten parallelen Multiplikationsoperationen 518 bis 526 kann anhand der Zusatzdaten 110, 112 gesteuert wer- den.
Im weiteren wird Bezug auf Fig. 6 genommen. Fig. 6 zeigt zur näheren Erläuterung der Funktionsweise der Kryptographievorrichtungen 100, 200, 300 der Fig. 1 bis 4 schematisch parallele Multiplikationseinheiten 602 bis 614, wie sie im zwei- ten Rechenblock 104in einer zweiten Weise Verwendung finden können. Es kann gemäß Fig. 6 auch eine zufällige Anzahl der Multipliziereinheiten 602 bis 606 zufällige Daten 628 bis 632 oder Dummydaten 628 bis 632 berechnen, während die andere Multipliziereinheiten 612, 614 die Eingangsdaten des Rechenblocks 634, 636 bearbeiten und einige Multipliziereinheiten 608, 610 keine Rechenoperation durchführen. Dadurch kann die Seitenkanalinformation zusätzlich reduziert werden, weil zufälliges Rauschen durch noch kleinere Datenblöcke erzeugt werden kann. Weiterhin kann der Stromverbrauch genauer eingestellt werden, weil nicht durchgeführte Multiplikationsoperationen in den Multipliziereinheiten 608, 610 weniger Strom verbrauchen. Die Steuereinheit 120 kann dabei die parallel ausgeführten Operationen und Anteile an Nutzdaten 634, 336 und Zusatzdaten 628 bis 632 vorgeben. Dafür ist die Steuereinheit 120 mit den Rechenblöcken 102, 104 dem Puffer 124 und der zweiten Datenweiche 140 verbunden.
In einem Ausführungsbeispiel werden Multiplikationsoperationen mit Hilfe einer Multiplikation nach Karatsuba durchgeführt. Andere Multiplikationsoperationen können mit anderen Realisierungsformen der Multiplikation durchgeführt werden.
In einer Ausführungsform kann der Operationsfluss variabel gestaltet sein. Damit wird die Reihenfolge der Operationen innerhalb eines Ver- oder Entschlüsselungsalgorithmus gemäß einem Kontrollfluss vertauscht, soweit es der Algorith- mus zulässt. Vorzugsweise wird die Reihenfolge zufällig beeinflusst. Durch eine zufällige Reihenfolge der Operationen ist einem Beobachter oder Angreifer weniger über die Abläufe im Kryptosystem bekannt, wodurch sich Seitenkanalinforma- tionen schlechter zuordnen lassen. In diesem Ausführungsbeispiel wird keine zusätzliche Energie oder Zeit für den Algorithmus verbraucht, weil die Gesamt- anzahl der Operationen gleich bleibt.
Bei einem Ausführungsbeispiel kontrolliert die Steuereinheit 120 die Auswahl der Reihenfolge der Rechenoperationen oder die Anzahl von parallel getätigten Multiplikationsoperationen. Deshalb kann sie über Steuerleitungen mit den Rechenblöcken 102 und 104 verbunden sein. Die Zusatzdaten 1 10 und gegebenenfalls der zufällige Kontrollfluss können von dem ersten Rechenblock 102 in Form von Dummydaten geliefert werden. Die Steuereinheit 120 kann in einer Ausführungsvariante die rückgekoppelten ersten Ausgangsdaten 116 empfangen und für die Steuerung des variablen Operations- flusses für die Rechenoperationen im zweiten Rechenblock 104 verwenden. Dieser Teil der Steuereinheit 120 kann auch teilweise oder vollständig im zweiten Rechenblock 104 integriert sein.
In einer Ausführungsform enthält mindestens einer der Rechenblöcke 102 oder 104 genau 81 4-Bit-Multipliziereinheiten, die parallel angesprochen werden kön- nen.
In einer Ausführungsform ist der Rechenblock, welcher mehrere parallele Multipliziereinheiten enthält, der zweite Rechenblock 104.
Die Steuereinheit 120 kann auch aus mehreren Teilen bestehen und ganz oder teilweise in den Rechenblöcken 102 und 104 integriert sein.
Es sind auch Ausführungsvarianten möglich, bei welchen beide Rechenblöcke 102 und 104 jeweils die Rolle des ersten Rechenblocks 102 oder des zweiten Rechenblocks 104 übernehmen können. Die Steuereinheit 120 ist dabei ausgebildet, die Rechenblöcke 102 und 104 so zu steuern, dass sie entweder als erster rückgekoppelter Rechenblock 102 zur Erzeugung von Zusatzdaten 1 12, 1 10 oder als zweiter Rechenblock 104 zur zumindest teilweisen Verarbeitung von Nutzdaten 130 arbeiten.
Die Zusatzdaten 1 12 und 110 werden im folgenden auch mit zusätzlichen (pseudozufälligen) Kontrollsignalen, Pseudodaten, zufälligen Daten oder Zufallsstrom bezeichnet.
Fig. 7 zeigt einen Ablaufplan für eine Iteration bei der Ver- Entschlüsselung nach einem elliptischen Kurven-Kryptographie- (ECC-) Algorithmus. Mit x bis x2 und z bis z2 werden Zahlen und mit M1 bis M6 Multiplikationen bezeichnet. Mit S1 bis S5 werden Potenzoperationen und mit A1 bis A3 Additionsoperationen bezeichnet.
Für jedes Bit des Schlüssels muss dieser Ablauf durchlaufen werden. Dieser Ablaufplan gilt für den Fall, dass das aktuelle Bit 1 ist. Ist es 0, sieht der Ablauf- plan anders aus. Es ist die innere Schleife des Montgomery- oder Lopez/Dahab- Algorithmus. Nähere Einzelheiten sind beschrieben in: JuNo Lopez and Ricardo Dahab: „Fast multiplication on elliptic curves over gf(2m) without precomputa- tion", in CHES '99: Proceedings of the First International Workshop on Crypto- graphic Hardware and Embedded Systems, pages 316-327, London, UK, 1999. Springer-Verlag.
An dem Graph sieht man die Abhängigkeiten der Operationen. Zum Beispiel ist A1 von den Multiplikationen M1 und M2 abhängig. Als erste Operation kann man entweder M1 , M2, S1 oder S2 ausführen. Es gibt offensichtlich eine Menge von möglichen konkreten Abläufen. In diesem Ausführungsbeispiel wird der konkrete Ablauf von den zusätzlichen (pseudozufälligen) Kontrollsignalen abhängig gemacht. Die Verwaltung und Ausführung geschieht dabei im ECC-Block, der den zweiten Rechenblock 104 bildet. Im zweiten Rechenblock 104 gibt es einen Kontrollblock, der den Fluss steuert. Dieser Kontrollblock kann auch Teil der Steuereinheit 120 sein. Er verarbeitet die Steuersignale von der Steuereinheit 120 und die Zusatzdaten 1 10. Die Steuereinheit 120 gibt dabei den Betriebszustand und ggf. die Betriebseinstellung vor, und der erste Rechenblock 104 liefert die zusätzlichen oder zufälligen Daten 1 10. Bei den dritten Betriebseinstellungen kontrolliert die Steuereinheit 120 die Abfolge der Rechenoperationen im zweiten Rechenblock 104 anhand des Zufallsdatenstroms 110. Liefert der Zufallsdaten- ström 1 10 z.B. eine „0", wird M1 als erste Operation ausgeführt. Wird eine „1" geliefert, ist es M2. Kommt eine „2" oder „3", ist es S1 bzw. S2.

Claims

Ansprüche
1. Kryptographievorrichtung (100; 200; 300), umfassend
- einen ersten Rechenblock (102), der ausgebildet ist, empfangene erste Eingangsdaten (106) entweder zu verschlüsseln oder zu entschlüsseln und die verschlüsselten bzw. entschlüsselten ersten Eingangsdaten als erste Ausgangsdaten (116) an einem ersten Datenausgang (1 16) auszugeben,
- einen zweiten Rechenblock (104), der ausgebildet ist, empfangene zweite Eingangsdaten (108) entweder zu verschlüsseln oder zu ent- schlüsseln und die verschlüsselten bzw. entschlüsselten zweiten Eingangsdaten als zweite Ausgangsdaten (1 14) an einem zweiten Datenausgang (114) auszugeben, und
- eine Steuereinheit (120), welche mit dem ersten und dem zweiten Rechenblock (102, 104) verbunden ist und die ausgebildet ist,
in einem ersten Betriebszustand die ersten Ausgangsdaten (1 16) zum einen dem ersten Rechenblock (102) teilweise oder vollständig als die ersten Eingangsdaten (1 12) zuzuweisen und zum anderen entweder teilweise o- der vollständig dem zweiten Rechenblock (104) als Teil der zweiten Eingangsdaten (110) zuzuweisen.
2. Kryptographievorrichtung (100; 200; 300) nach Anspruch 1 , bei welcher der erste oder der zweite Rechenblock (102 oder 104) ausgebildet ist, die empfangenen ersten oder zweiten Eingangsdaten (106 oder 108) nach einem symmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen.
3. Kryptographievorrichtung (100; 200; 300) nach Anspruch 1 oder 2, bei welcher der erste oder der zweite Rechenblock (102 oder 104) ausgebildet ist, die empfangenen ersten oder zweiten Eingangsdaten (106 oder 108) nach einem asymmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren zu berechnen.
4. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche , wobei die Steuereinheit (120) ausgebildet ist, mindestens einem Rechenblock (102; 104) als erste beziehungsweise zweite Eingangsdaten Nutzdaten (130; 132) und Dummydaten (112; 110) zuzuweisen.
5. Kryptographievorrichtung (100; 200; 300) nach Anspruch 4, wobei die Dummydaten von einem Teil der ersten Ausgangsdaten (1 16) oder von den ersten Ausgangsdaten (116) gebildet sind.
6. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, bei der die Steuereinheit (120) ausgebildet ist, den Betrieb des ersten oder zweiten Rechenblocks (102 oder 104) unabhängig voneinander abzuschalten und anzuschalten.
7. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, bei welcher der zweite Rechenblock (104) ausgebildet ist, Multiplikationen von Eingangsdaten (108) mit Hilfe eines Karatsuba-Verfahrens durchzuführen.
8. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, wobei mindestens ein Rechenblock (102, 104) mehrere parallele Multiplikationseinheiten besitzt.
9. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, bei der die Steuereinheit (120) ausgebildet ist, dem ersten oder zweiten Rechenblock (102 oder 104) eine Anzahl parallel durchzuführender Rechenoperationen pro Takteinheit jeweils entweder von Takteinheit zu
Takteinheit oder in größeren zeitlichen Abständen vorzugeben.
10. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, bei welcher der erste Rechenblock (102) mit einem ersten Geräteeingang für erste Nutzdaten (132) und einem Geräteausgang verbunden ist, und der zweite Rechenblock (104) mit einem zweiten Geräteein- gang für zweite Nutzdaten (130) und dem Geräteausgang verbunden ist, und bei welcher die Steuereinheit (120) ausgebildet ist, in einem zweiten Betriebszustand sowohl die ersten Ausgangsdaten (116) dem Geräteausgang und nicht dem zweite Rechenblock (104) und nicht dem ersten Rechenblock (102) zuzuleiten, als auch die vom zweiten Rechenblock (104) ausgegebenen zweiten Ausgangsdaten (1 14) dem Geräteausgang zuzuleiten.
1 1. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, bei welcher die Steuereinheit (120) ausgebildet ist, zwischen dem ersten und dem zweiten Betriebszustand zu wechseln.
12. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, bei der die Steuereinheit (120) ausgebildet ist, dem ersten oder zweiten Rechenblock (102 oder 104) eine von einer Mehrzahl vorgegebener Abfolgen von Rechenoperationen vorzugeben.
13. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, bei der die Steuereinheit (120) ausgebildet ist, die Abfolge der
Rechenoperationen im zweiten Rechenblock (104) vorzugeben.
14. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, wobei der erste oder der zweite Rechenblock (102 oder 104) eine Vielzahl Multiplikationseinheiten enthält und die Steuereinheit (120) ausgebildet ist, parallel einer ersten Teilanzahl der Multiplikationseinheiten
Nutzdaten (130 oder 132) und einer zweiten Teilanzahl der Multiplikationseinheiten zumindest einen Teil der ersten Ausgangsdaten (1 16) zuzuleiten.
15. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, wobei der erste und der zweite Rechenblock (102, 104) und die Steuereinheit (120) jeweils in Hardware implementiert ist.
16. Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche, die als Smart-Card ausgebildet ist.
17. Integrierter Schaltkreis, der eine Kryptographievorrichtung (100; 200; 300) nach einem der vorstehenden Ansprüche enthält.
18. Verfahren zum Ver- oder Entschlüsseln von Daten, wobei das Verfahren enthält,
- Verschlüsseln oder Entschlüsseln erster Eingangsdaten (106) mit einem ersten Rechenblock (102) und Ausgeben der verschlüsselten oder entschlüsselten ersten Eingangsdaten als erste Ausgangsdaten (1 16) an einem ersten Datenausgang,
- Verschlüsseln oder Entschlüsseln zweiter Eingangsdaten (108) mit ei- nem zweiten Rechenblock (104) und Ausgeben der verschlüsselten o- der entschlüsselten zweiten Eingangsdaten als zweite Ausgangsdaten (1 14) an einem zweiten Datenausgang,
- Zuweisen der ersten Ausgangsdaten (116) zum einen dem ersten Rechenblock (102) entweder teilweise oder vollständig als Eingangsdaten (1 12) und zum anderen entweder teilweise oder vollständig dem zweiten
Rechenblock (104) als Teil der zweiten Eingangsdaten (1 10).
19. Computerprogrammprodukt, enthaltend ausführbaren Programmcode auf einem maschinenlesbaren Träger, wobei der Programmcode ausgebildet ist, beim Ausführen auf einem Computer das Verfahren nach Anspruch 18 durchzuführen.
PCT/EP2008/051560 2007-02-09 2008-02-08 Reduktion von seiten-kanal-informationen durch interagierende krypto-blocks WO2008096004A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP08708830A EP2118739A1 (de) 2007-02-09 2008-02-08 Reduktion von seiten-kanal-informationen durch interagierende krypto-blocks
US12/449,333 US8625780B2 (en) 2007-02-09 2008-02-08 Reduction of side-channel information by interacting crypto blocks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102007007699A DE102007007699A1 (de) 2007-02-09 2007-02-09 Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
DE102007007699.3 2007-02-09

Publications (1)

Publication Number Publication Date
WO2008096004A1 true WO2008096004A1 (de) 2008-08-14

Family

ID=39313466

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/051560 WO2008096004A1 (de) 2007-02-09 2008-02-08 Reduktion von seiten-kanal-informationen durch interagierende krypto-blocks

Country Status (4)

Country Link
US (1) US8625780B2 (de)
EP (1) EP2118739A1 (de)
DE (1) DE102007007699A1 (de)
WO (1) WO2008096004A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITMI20082364A1 (it) * 2008-12-31 2010-07-01 Incard Sa Metodo per proteggere un dispositivo crittografico contro attacchi spa, dpa e temporali
DE112010005847T5 (de) * 2010-10-05 2013-06-20 Hewlett-Packard Development Company, L.P. Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden
GB2497464A (en) 2010-10-05 2013-06-12 Hewlett Packard Development Co Scrambling an address and encrypting write data for storing in a storage device
JP5926655B2 (ja) * 2012-08-30 2016-05-25 ルネサスエレクトロニクス株式会社 中央処理装置および演算装置
WO2014059547A1 (en) * 2012-10-17 2014-04-24 Elliptic Technologies Inc. Cryptographic sequencing system and method
FR2997780B1 (fr) * 2012-11-07 2016-01-22 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation modulaire
DE102013208530A1 (de) * 2013-05-08 2014-11-13 Robert Bosch Gmbh Speichereinrichtung
US9009495B2 (en) 2013-06-28 2015-04-14 Envieta, LLC High speed cryptographic combining system, and method for programmable logic devices
US9419993B2 (en) 2013-12-12 2016-08-16 Empire Technology Development Llc Randomization of processor subunit timing to enhance security
US10341245B2 (en) * 2014-03-24 2019-07-02 Vmware, Inc. Bursty data transmission in a congestion controlled network
DE102014222825A1 (de) 2014-11-07 2016-05-12 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Vorrichtung und Verfahren zur Multiplikation zur Erschwerung von Seitenkanalangriffen
US9735953B2 (en) * 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
US9430676B1 (en) 2015-03-17 2016-08-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Processor related noise encryptor
WO2017037725A1 (en) * 2015-09-06 2017-03-09 Bar-Ilan University Randomized logic against side channel attacks
AT517983B1 (de) * 2015-11-18 2018-11-15 Siemens Ag Oesterreich Schutz eines Computersystems vor Seitenkanalattacken
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
EP3226460A1 (de) * 2016-04-01 2017-10-04 Institut Mines-Telecom Geheimschlüsselschätzungsverfahren und vorrichtungen
EP3264311B1 (de) 2016-06-28 2021-01-13 Eshard Schutzverfahren und vorrichtung gegen eine seitenkanalanalyse
CN107547193A (zh) 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法
US20180013779A1 (en) * 2016-07-06 2018-01-11 Power Fingerprinting Inc. Methods and apparatuses for integrity validation of remote devices using side-channel information in a power signature analysis
JP6620696B2 (ja) * 2016-07-27 2019-12-18 株式会社デンソー 電子制御装置
EP3419005A1 (de) * 2017-06-22 2018-12-26 Gemalto Sa Datenverarbeitungsvorrichtung zur verarbeitung erweiterter daten

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
US20020169968A1 (en) * 1999-12-02 2002-11-14 Berndt Gammel Microprocessor configuration with encryption

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4316055A (en) * 1976-12-30 1982-02-16 International Business Machines Corporation Stream/block cipher crytographic system
US5253294A (en) * 1983-02-22 1993-10-12 At&T Bell Laboratories Secure transmission system
GB2306722B (en) * 1995-10-24 2000-02-09 Motorola Inc Encryption/decryption circuit, method and system
DE19642560A1 (de) * 1996-10-15 1998-04-16 Siemens Ag Elektronische Datenverarbeitungsschaltung
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US6088802A (en) * 1997-06-04 2000-07-11 Spyrus, Inc. Peripheral device with integrated security functionality
US5982895A (en) * 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
JP2002519722A (ja) * 1998-06-03 2002-07-02 クリプターグラフィー リサーチ インコーポレイテッド スマートカードおよび他の暗号システム用の、漏洩を最小に抑える、改良desおよび他の暗号プロセス
US6724894B1 (en) 1999-11-05 2004-04-20 Pitney Bowes Inc. Cryptographic device having reduced vulnerability to side-channel attack and method of operating same
DE10061997A1 (de) 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
DE102004013484B3 (de) * 2004-03-18 2005-08-11 Infineon Technologies Ag Rechenwerk
WO2006015624A1 (en) * 2004-08-09 2006-02-16 Telecom Italia S.P.A. Random number generation based on logic circuits with feedback
US8219602B2 (en) * 2004-08-09 2012-07-10 Telecom Italia S.P.A. Method and apparatus for generating random data
DE102004047425B4 (de) * 2004-09-28 2007-06-21 Micronas Gmbh Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
US7496616B2 (en) * 2004-11-12 2009-02-24 International Business Machines Corporation Method, apparatus and system for resistance to side channel attacks on random number generators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020169968A1 (en) * 1999-12-02 2002-11-14 Berndt Gammel Microprocessor configuration with encryption
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Also Published As

Publication number Publication date
US8625780B2 (en) 2014-01-07
US20100095133A1 (en) 2010-04-15
EP2118739A1 (de) 2009-11-18
DE102007007699A1 (de) 2008-08-14

Similar Documents

Publication Publication Date Title
WO2008096004A1 (de) Reduktion von seiten-kanal-informationen durch interagierende krypto-blocks
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE60314055T2 (de) Verschlüsselung und Entschlüsselung in einem Schaltkreis, bei der eine nichtlineare Transformation wie die SUBBYTE-Operation maskiert wird
DE60117230T2 (de) Stromverschlüsselungsanwendungsbeschleuniger und zugehöriges Verfahren
DE102013227087A1 (de) Gesichertes Bereitstellen eines Schlüssels
EP1891512B1 (de) Bestimmung einer modularen inversen
DE102013206202A1 (de) Sensormodul und Verfahren zum Betreiben eines Sensorsmoduls
DE102008013785A1 (de) Vorberechneter Verschlüsselungsschlüssel
DE102005012098A1 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE102005005335A1 (de) Vorrichtung und Verfahren zur Hardware-Verschlüsselung
DE102012209404A1 (de) Vorrichtung zur Ausführung eines kryptographischen Verfahrens und Betriebsverfahren hierfür
EP2499774B1 (de) Verfahren und system zur beschleunigten entschlüsselung von kryptographisch geschützten nutzdateneinheiten
DE112009000152B4 (de) Verfahren zur Datenübertragung über einen Datenkanal mit einem Elliptische-Kurven-Kryptographieverfahren und Vorrichtung hierfür
EP3215931B1 (de) Vorrichtung und verfahren zur multiplikation zur erschwerung von seitenkanalangriffen
DE10328860B4 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
Sudeepa et al. Generation of maximum length non-binary key sequence and its application for stream cipher based on residue number system
Atawneh et al. Power consumption of a chaos-based stream cipher algorithm
DE60034944T2 (de) Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung
DE102020134618A1 (de) Sicherheits-controller und verfahren zur verarbeitung von datenelementen eines datenfeldes
Misra et al. Analysing the parameters of chaos based image encryption schemes
EP3371733B1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system
DE102004001659B4 (de) Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
DE19960047B4 (de) Verfahren und Einheit zur sicheren Informationsbehandlung in einem kryptographischen Informationsverarbeitungssystem
Maistri et al. An evaluation of an AES implementation protected against EM analysis
DE10149191C2 (de) Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08708830

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12449333

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2008708830

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE