WO2001008012A1 - Method and apparatus for preventing information leakage attacks on a microelectronic assembly - Google Patents

Method and apparatus for preventing information leakage attacks on a microelectronic assembly Download PDF

Info

Publication number
WO2001008012A1
WO2001008012A1 PCT/US2000/020367 US0020367W WO0108012A1 WO 2001008012 A1 WO2001008012 A1 WO 2001008012A1 US 0020367 W US0020367 W US 0020367W WO 0108012 A1 WO0108012 A1 WO 0108012A1
Authority
WO
WIPO (PCT)
Prior art keywords
masked
function
output
mask
input
Prior art date
Application number
PCT/US2000/020367
Other languages
French (fr)
Inventor
Thomas S. Messerges
Ezzat A. Dabbish
Larry Puhl
Original Assignee
Motorola Inc.
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 Motorola Inc. filed Critical Motorola Inc.
Priority to AU66092/00A priority Critical patent/AU6609200A/en
Publication of WO2001008012A1 publication Critical patent/WO2001008012A1/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0833Card having specific functional components
    • G07F7/084Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1016Devices or methods for securing the PIN and other transaction-data, e.g. by encryption
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1025Identification of user by a PIN code
    • G07F7/1083Counting of PIN attempts
    • 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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • the present invention relates generally to the security of cryptographic processing in microelectronic assemblies, such as smartcards and the like cryptographic tokens, and more particularly to methods of preventing security breach of the same when a differential power analysis attack is used.
  • Cryptographic devices use secret keys to process input information and/or to produce output information. It is generally assumed that the input and the output information is available to attackers, however, information about the secret keys is unavailable to the attackers. Recently, it has been shown that Differential Power Analysis (DP A) can be utilized by attackers to gain information about secret keys used in cryptographic devices. For example, as described in Introduction to Differential Power Analysis and Related Attacks, by Paul Kocher et al., DPA attacks utilize leaked information to gain knowledge of a secret key used by a cryptographic device. In particular, an attacker mounting a DPA attack monitors the power consumption of a cryptographic device to learn information about its secret keys. However, in general, leaked information in the form of electromagnetic radiation, timing, faulty outputs . . . , etc. can also be monitored. After monitoring multiple operations, a malicious attacker can obtain the secret keys used by the cryptographic device.
  • DP A Differential Power Analysis
  • a common type of cryptosystem uses a block cipher for the encrypt and decrypt operations.
  • a block cipher operates on a fixed number of input bits and encrypts or decrypts these bits into a fixed number of output bits.
  • the encrypt and decrypt functions are often constructed using a simple function called a round function.
  • the security of the cryptographic algorithm is achieved by repeatedly applying the round function a fixed number of times.
  • Such a cipher is referred to as an iterative-block cipher.
  • DES Encryption Standard
  • DES is described in detail in ANSI X.392, "American National Standard for Data Encryption Algorithm (DEA),” American Standards Institute, 1981, which is incorporated by reference herein.
  • S-box substitution box
  • the S-box functions are non-linear and are conventionally implemented using table lookups or Boolean logic gates.
  • FIG. 1 is a representation of a block diagram of a conventional means to compute a cryptographic function in a microelectronic device.
  • FIG. 2 is a representation of an example of a table that is used in the conventional table lookup process of calculating a function of inputs and producing outputs.
  • FIG. 3 is a representation of a flowchart illustrating the steps in calculating a function using the conventional table lookup process.
  • FIG. 4 is a representation of an example of a conventional apparatus for calculating a function using a multiplexer circuit.
  • FIG. 5 is a representation of a block diagram of the preferred embodiment of the present invention used to calculate a function of masked inputs and produce masked outputs.
  • FIG. 6 is a representation of a preferred embodiment of a table that is used in the table lookup process of calculating a function of masked inputs and producing masked outputs.
  • FIG. 7 is a representation of a flowchart illustrating steps used to create a lookup table according to the preferred embodiment of the present invention.
  • FIG. 8 is a representation of an example of a preferred embodiment of an apparatus according to the present invention for computing a function of masked inputs and producing masked outputs using a multiplexer and crossbar switch circuit.
  • FIG. 9 is a representation of the present invention implementing the round function in a Feistel network cipher.
  • FIG. 10 is an illustration of the present invention implementing the substitution-box function in the Data Encryption Standard.
  • FIG. 11 illustrates a flowchart of a method according to the present invention.
  • the present invention provides a method to randomize the calculations of an algorithm, such as a round function in an iterative-block cipher.
  • the security of microelectronic assembly implementing a cryptographic algorithm is increased when the calculation of the algorithm can be performed in a randomized fashion because information leaking from the assembly will not reveal information about the secret data.
  • the leaked information is correlated to the secret data, thus enabling an attack.
  • the present invention provides a method and apparatus that will decorrelate the leaked information from the secret data.
  • Two data items can be decorrelated from one another by using a random mask that is combined with one or both of the data items to eliminate the correlation. It should be noted that the use of a random mask implies that the data that is masked can also be unmasked, if the random mask is known.
  • a cryptographic cipher In a cryptographic cipher, one way to accomplish the decorrelation of the secret key data from the leaked information is to mask the inputs to the round function and to also mask the outputs of the round function. If all data is processed in a masked form, then all the information that is leaked will be useless to a malicious attacker. The cryptographic cipher will still produce correct outputs if, after the last iteration of the rounds, the masked output can be unmasked to reveal the true output. Thus, a need exists for a method that can calculate a function of masked inputs and produce masked outputs.
  • the present invention provides a method and apparatus that computes a function on masked inputs, rather than the true inputs, and produces a masked output that can be unmasked to reveal the true output.
  • the present invention provides for randomizing the internal data being processed by a function. This process of randomization is called masking. When data D is masked with RMASK the result is denoted as D_RMASK.
  • the preferred approach for masking according to the invention is the bitwise Boolean XOR operation as given in the following formula:
  • D_RMASK D ® RMASK ( 1 )
  • the masks are randomly generated.
  • D represents the secret data and RMASK is random, then an attacker monitoring information leakage pertaining to D RMASK will not learn any information about the secret data represented by D.
  • FIG. 1 a block diagram of a conventional means to compute a cryptographic function in a microelectronics device is illustrated in FIG 1.
  • the box labeled 100 represents the function F that needs to be calculated.
  • the input and output of function F are labeled 102 and 104, respectively.
  • the input and output data are unmasked and the hardware used for the computation of F is vulnerable to leakage attacks.
  • table 200 lists the outputs associated with each input.
  • the function (A1, A2, A3) represented by table 200 has three inputs: A2, Al, and A0 and two outputs: Bl and B0.
  • table 200 is just an example.
  • the tables may need to be larger.
  • For DES a larger table is needed to implement the S-box function which has six inputs and four outputs.
  • the DES algorithm utilizes eight different S-box functions, so eight tables would be needed and each table would have 64 rows.
  • FIG. 3 A flowchart of a conventional method to compute a function using a table lookup method is given in FIG. 3.
  • This method begins in box 300 by reading the inputs into function.
  • the example of FIG. 3 implements the function E(A1, A2, A3) described in FIG. 2, so there are three inputs to be read.
  • the next step 302, in the conventional method is to find the row i in the lookup table that corresponds to the given input.
  • step 304 the data from the output column listed in row i is given as the output of the function. Any function can be implemented by this table lookup method, but unfortunately, this conventional method of implementation is vulnerable to leakage attacks.
  • a conventional apparatus to compute the output of an arbitrary function is to use a tree of 2:1 multiplexers.
  • F (a, b, c, d, e) with the five inputs: a, b, c, d and e.
  • One of these inputs can be used to choose between two functions of the remaining four inputs.
  • one of the four inputs to the four input functions can be used to choose between two functions of the remaining three inputs. This process can be repeated until there are no more inputs or the functions of the remaining inputs are simple enough to compute using a few numbers of gates.
  • FIG. 4 gives an example of a multiplexer tree circuit that implements the function E(A1, A2, A3) defined in table 200 of FIG. 2.
  • FIG. 4 there are three layers of 2:1 multiplexers labeled 400, 402 and 404.
  • Each 2:1 multiplexer within a layer is labeled "2:1 MUX" and has two data inputs, a select input and one data output. The select input is used to select one of the two data inputs to be the data output.
  • the first layer 404 contains one multiplexer which is controlled with input A2.
  • the multiplexer in layer 404 chooses between two functions of the remaining inputs, Al and A0.
  • the second layer 402 contains two multiplexers controlled by input Al which selects from functions of the remaining input A0.
  • the last layer 400 contains four multiplexers and selects the actual output bit that is defined by the function F(A1, A2, A3) that is being implemented.
  • F(A1, A2, A3) the function that is being implemented.
  • FIG. 4 is an illustrative example and that there are straightforward techniques to simplify this circuit.
  • the top two layers of the multiplexer tree can be replaced with a circuit that generates all possible functions of the two remaining inputs. The outputs of this circuit could then be used as inputs to the next layer down.
  • the conventional implementations of an apparatus to compute a Boolean function are susceptible to leakage attacks, thus pose a security problem.
  • the top-level block diagram of the preferred embodiment of the present invention is given in FIG. 5.
  • the diagram of FIG. 5 implements the original function F, but uses a function FP of box 500 to do the actual computation. That is, given an input 502, the output 504 will be the same as if the original function F were used, but instead function FP in box 500 will be used.
  • the input 502 to the function 500 is masked with a random mask 506, called RIN.
  • the masking is accomplished using a bitwise XOR gate 503.
  • the function in box 500 implements FP, which is a scrambled version of the original function F.
  • the output of FP is masked, so in order to get back the correct output it needs to be unmasked.
  • the mask 508, called ROUT is combined with the output of 500 using XOR gate 505 to produce the correct output 504.
  • the function FP is calculated such that the block diagram of FIG. 5 produces the same output as the original function F. This can be accomplished if the function FP is defined as follows:
  • the function FP can be implemented using the conventional table-lookup technique
  • the lookup table for FP is derived from the conventional lookup table that was used for F, but the data is rearranged and masked.
  • FIG. 6 gives the new, rearranged table that can be used to implement the function that was previously described in FIG. 2.
  • the masks RIN and ROUT, given in box 602, determine how table 200 is rearranged to create table 600.
  • table 600 Once table 600 is constructed, it can be used in the table lookup process by following the same steps as previously described in FIG. 3.
  • the general procedure used to create a rearranged table like the one in FIG. 6 is represented as a flowchart in FIG. 7.
  • the purpose of the procedure of FIG. 7 is to generate the function FP from the original function F.
  • the procedure of creating a table for FP begins in box 700 where it is assumed that function F has n inputs and m outputs.
  • the next step 702 selects the random masks RIN and ROUT.
  • the mask RIN has n bits and the mask ROUT has m bits.
  • the variable "in” is then initialized to zero in box 704.
  • outvec is set to the XOR of ROUT and the output of function F when the input is the XOR of invec and RIN.
  • the table row "in” for function FP is now ready to be filled in with the outvec result.
  • Step 710 fills in this row of data and then the variable "in” is incremented at step 712.
  • Step 714 checks to see if "in” is less than 2 n . If it is, then the procedure loops back to step 706, otherwise, the procedure is done and the table for FP has been completely filled.
  • the present invention can be implemented using an apparatus composed of a 2:1 multiplexer tree with the addition of crossbar switches.
  • Such an apparatus computes function F on masked inputs and produces masked outputs.
  • An example apparatus to calculate the output Bl from table 200 of FIG. 2 is given in FIG. 8.
  • the 2:1 multiplexer blocks in FIG. 8, labeled "2:1 MUX”, are identical to the multiplexers used in FIG. 4.
  • the boxes labeled "XBAR" are crossbar switches that have two data inputs, two data outputs and one select input. When the select input of a crossbar switch is a zero the inputs to go straight to the outputs and when the select input is a one, the inputs are swapped and then output.
  • a crossbar switch can be constructed using two 2:1 multiplexers.
  • the inputs to the multiplexer tree, A0, Al and A2 of FIG. 8, have been bitwise XOR'ed with the mask RIN
  • the select input to the first level 800 of the tree is A2 masked with bit 2 of RIN, which is denoted as RIN_2. If the masking is performed with the XOR operation, then the select input to the first level 800 is denoted as A2@RIN_2. This notation means that the input to this level is the XOR of bit 2 of RIN with A2.
  • the crossbar switch at level 802 is controlled by bit 2 of RIN or RIN 2. Thus, i ⁇ RINJ.
  • the apparatus of FIG. 8 can be used to implement the function FP of box 500 in FIG. 5.
  • the inputs and outputs are masked, so a leakage attack will not reveal any useful information to an attacker.
  • function F can be calculated.
  • function FP can be used prior to using FP.
  • the masks RIN and ROUT are generated and the inputs are masked. If the table-lookup method is being used, then the table also needs to be constructed. If the multiplexer tree apparatus is being used, then this step can be skipped. Finally, the output of EP can be unmasked to reveal the true output.
  • Another advantage of the present invention arises in the computation of the round function in a cryptographic algorithm.
  • a leakage attack can expose the secret key data of a cipher, so it is useful if this data can be masked.
  • the round function needs to process this masked data, thus the present invention can be used to create a scrambled function, such as the previously described function FP, that can operate on masked inputs and also produce masked outputs.
  • the round function is repeatedly executed, so the masked output of one round can be used as the masked input to the next round.
  • a generalized version of this type of cipher is known as a Feistel-network cipher.
  • a block diagram of a Feistel network cipher is shown in FIG.
  • the conventional implementation takes the input data and splits it into a left data register 900 and a right data register 902.
  • the data from the right register 902 could be masked and then input to round function EP, which is labeled 904.
  • the present invention provides a method to implement the round function EP so that the input to EP can be masked to prevent leakage attacks. Therefore, the present invention provides a method to implement any Feistel-network cipher in a way that is immune to a leakage attack.
  • the second round of the cipher in FIG. 9 begins at boxes 906 and 908.
  • the left register 906 receives its input from the right register 902 and the right register 908 receives its input from the XOR of the masked output 904 of EP and the left data 900.
  • the right data 908, which is masked is input to round function 910, which can be the same function as 904.
  • round function 910 which can be the same function as 904.
  • the results are stored in registers 912 and 914.
  • the round functions are repeated until the last round, where round function 916 is computed and the results are saved in registers 918 and 920. At this time, the results can be unmasked to provide the correct output of the cipher.
  • the round function that is implemented by EP could be the S-box function.
  • the S-box function can be implemented using the table lookup method or the multiplexer tree method. In either case, the method or apparatus of the present invention can be used to eliminate the leakage of unintended information.
  • FIG. 10 An aspect of the present invention utilized in the D ⁇ S round function is illustrated in FIG. 10.
  • the right data 1000 is input to the round function 1002. This data should be masked to prevent a leakage attack.
  • the masked input data then goes through the standard D ⁇ S expansion block 1004 and is combined with the subkey 1006 using the bitwise XOR gate 1008.
  • the subkey 1006 and the output of the expansion function 1004 are both masked, so the output of XOR gate 1008 will be masked.
  • the S-box lookups can be performed by using the table lookup method or by using Boolean logic gates such as in a multiplexer tree.
  • the normal S-box functions need to be transformed to the scrambled implementation using the method and/or apparatus of the present invention.
  • S-box functions 1010 to 1018 are implemented using the present invention.
  • the outputs of 1010 to 1018 are masked and provided as input to the permutation 1020.
  • the output of permutation 1020 is, therefore, also masked.
  • the output of the round function is provided to XOR gate 1024 along with the left data 1022 to produce the right data 1026 that is used in the next round.
  • FIG. 11 illustrates a flowchart of the method according to the present invention (described above), wherein the method includes the steps of receiving (1102) a masked input data having n number of bits that is masked with an input mask, wherein n is a first predetermined integer; processing (1104) the masked input data using a second function based on a predetermined masking scheme; producing (1106) a masked output data having m number of bits that is masked with an output mask, wherein m is a second predetermined integer.

Abstract

Apparatus and method for preventing information leakage attacks on a microelectronic assembly performing a cryptographic algorithm by transforming a first function, used by the cryptographic algorithm, into a second function, the method including the steps of receiving (1102) a masked input data having n number of bits that is masked with an input mask, wherein n is a first predetermined integer; processing (1104) the masked input data using a second function based on a predetermined masking scheme; producing (1106) a masked output data having m number of bits that is masked with an output mask, wherein m is a second predetermined integer.

Description

METHOD AND APPARATUS FOR PREVENTING INFORMATION LEAKAGE ATTACKS ON A MICROELECTRONIC ASSEMBLY
Field of the Invention
The present invention relates generally to the security of cryptographic processing in microelectronic assemblies, such as smartcards and the like cryptographic tokens, and more particularly to methods of preventing security breach of the same when a differential power analysis attack is used.
Background of the Invention
Cryptographic devices use secret keys to process input information and/or to produce output information. It is generally assumed that the input and the output information is available to attackers, however, information about the secret keys is unavailable to the attackers. Recently, it has been shown that Differential Power Analysis (DP A) can be utilized by attackers to gain information about secret keys used in cryptographic devices. For example, as described in Introduction to Differential Power Analysis and Related Attacks, by Paul Kocher et al., DPA attacks utilize leaked information to gain knowledge of a secret key used by a cryptographic device. In particular, an attacker mounting a DPA attack monitors the power consumption of a cryptographic device to learn information about its secret keys. However, in general, leaked information in the form of electromagnetic radiation, timing, faulty outputs . . . , etc. can also be monitored. After monitoring multiple operations, a malicious attacker can obtain the secret keys used by the cryptographic device.
A common type of cryptosystem uses a block cipher for the encrypt and decrypt operations. A block cipher operates on a fixed number of input bits and encrypts or decrypts these bits into a fixed number of output bits. The encrypt and decrypt functions are often constructed using a simple function called a round function. The security of the cryptographic algorithm is achieved by repeatedly applying the round function a fixed number of times. Such a cipher is referred to as an iterative-block cipher.
An example of a commonly known iterative-block cipher is the Data
Encryption Standard (DES). DES is described in detail in ANSI X.392, "American National Standard for Data Encryption Algorithm (DEA)," American Standards Institute, 1981, which is incorporated by reference herein. One of the major components of the round function of DES is the substitution box (S-box) functions. The S-box functions are non-linear and are conventionally implemented using table lookups or Boolean logic gates.
Present implementations of iterative-block ciphers need to use the secret key each time a round function is calculated. When this secret key is accessed by a cryptographic device, information about the secret key is leaked outside the device and can be monitored by an attacker. The information that is leaked is often very subtle and difficult to interpret. However, because this information is correlated to the actual secrets within the device, an attacker can use statistical techniques, such as a DPA attack, to effectively amplify the information and breach the security of the cryptosystem.
Statistical attacks, such as a DPA attack, are successful because the leaked information is correlated to the secret keys. Decorrelating the data being processed by the round function from the secret key data is therefore desirable. The revelation of the secret key data is considered a breach of the security of a cryptographic device. Therefore, a need exists for a way to prevent leakage attacks so that an attacker cannot gain information about the secret keys used in cryptographic devices.
Brief Description of the Drawings
FIG. 1 is a representation of a block diagram of a conventional means to compute a cryptographic function in a microelectronic device. FIG. 2 is a representation of an example of a table that is used in the conventional table lookup process of calculating a function of inputs and producing outputs.
FIG. 3 is a representation of a flowchart illustrating the steps in calculating a function using the conventional table lookup process.
FIG. 4 is a representation of an example of a conventional apparatus for calculating a function using a multiplexer circuit.
FIG. 5 is a representation of a block diagram of the preferred embodiment of the present invention used to calculate a function of masked inputs and produce masked outputs.
FIG. 6 is a representation of a preferred embodiment of a table that is used in the table lookup process of calculating a function of masked inputs and producing masked outputs.
FIG. 7 is a representation of a flowchart illustrating steps used to create a lookup table according to the preferred embodiment of the present invention.
FIG. 8 is a representation of an example of a preferred embodiment of an apparatus according to the present invention for computing a function of masked inputs and producing masked outputs using a multiplexer and crossbar switch circuit.
FIG. 9 is a representation of the present invention implementing the round function in a Feistel network cipher.
FIG. 10 is an illustration of the present invention implementing the substitution-box function in the Data Encryption Standard. FIG. 11 illustrates a flowchart of a method according to the present invention.
Detailed Description of the Preferred Embodiments
The present invention provides a method to randomize the calculations of an algorithm, such as a round function in an iterative-block cipher. The security of microelectronic assembly implementing a cryptographic algorithm is increased when the calculation of the algorithm can be performed in a randomized fashion because information leaking from the assembly will not reveal information about the secret data.
In a conventional implementation of a cryptographic algorithm, the leaked information is correlated to the secret data, thus enabling an attack. The present invention provides a method and apparatus that will decorrelate the leaked information from the secret data. Two data items can be decorrelated from one another by using a random mask that is combined with one or both of the data items to eliminate the correlation. It should be noted that the use of a random mask implies that the data that is masked can also be unmasked, if the random mask is known.
In a cryptographic cipher, one way to accomplish the decorrelation of the secret key data from the leaked information is to mask the inputs to the round function and to also mask the outputs of the round function. If all data is processed in a masked form, then all the information that is leaked will be useless to a malicious attacker. The cryptographic cipher will still produce correct outputs if, after the last iteration of the rounds, the masked output can be unmasked to reveal the true output. Thus, a need exists for a method that can calculate a function of masked inputs and produce masked outputs. The present invention provides a method and apparatus that computes a function on masked inputs, rather than the true inputs, and produces a masked output that can be unmasked to reveal the true output. The present invention provides for randomizing the internal data being processed by a function. This process of randomization is called masking. When data D is masked with RMASK the result is denoted as D_RMASK. The preferred approach for masking according to the invention is the bitwise Boolean XOR operation as given in the following formula:
D_RMASK = D ® RMASK ( 1 )
In the preferred embodiment according to the present invention, the masks are randomly generated. Thus, if D represents the secret data and RMASK is random, then an attacker monitoring information leakage pertaining to D RMASK will not learn any information about the secret data represented by D.
Turning now to the drawings, where like numerals designate like components, a block diagram of a conventional means to compute a cryptographic function in a microelectronics device is illustrated in FIG 1. The box labeled 100 represents the function F that needs to be calculated. The input and output of function F are labeled 102 and 104, respectively. In the conventional implementation of FIG. 1, the input and output data are unmasked and the hardware used for the computation of F is vulnerable to leakage attacks.
One conventional way to implement an arbitrary function is to use the table-lookup method. An illustrative example of a table that can be used in the table-lookup method is shown in FIG. 2. In FIG. 2, table 200 lists the outputs associated with each input. In this example, the function (A1, A2, A3) represented by table 200 has three inputs: A2, Al, and A0 and two outputs: Bl and B0. Of course table 200 is just an example. In a cryptosystem, the tables may need to be larger. As is known to one skilled in the art, for DES a larger table is needed to implement the S-box function which has six inputs and four outputs. The DES algorithm utilizes eight different S-box functions, so eight tables would be needed and each table would have 64 rows. Each row in an S-box table corresponds to one of the possible input combinations of the six input bits. A flowchart of a conventional method to compute a function using a table lookup method is given in FIG. 3. This method begins in box 300 by reading the inputs into function. The example of FIG. 3 implements the function E(A1, A2, A3) described in FIG. 2, so there are three inputs to be read. The next step 302, in the conventional method, is to find the row i in the lookup table that corresponds to the given input. Finally, at step 304, the data from the output column listed in row i is given as the output of the function. Any function can be implemented by this table lookup method, but unfortunately, this conventional method of implementation is vulnerable to leakage attacks.
A conventional apparatus to compute the output of an arbitrary function is to use a tree of 2:1 multiplexers. As an example consider the function F (a, b, c, d, e) with the five inputs: a, b, c, d and e. One of these inputs can be used to choose between two functions of the remaining four inputs. Then, one of the four inputs to the four input functions can be used to choose between two functions of the remaining three inputs. This process can be repeated until there are no more inputs or the functions of the remaining inputs are simple enough to compute using a few numbers of gates.
An apparatus implementing a Boolean function using the above approach results in a multiplexer tree. FIG. 4 gives an example of a multiplexer tree circuit that implements the function E(A1, A2, A3) defined in table 200 of FIG. 2. In the example of FIG. 4 there are three layers of 2:1 multiplexers labeled 400, 402 and 404. Each 2:1 multiplexer within a layer is labeled "2:1 MUX" and has two data inputs, a select input and one data output. The select input is used to select one of the two data inputs to be the data output. The first layer 404 contains one multiplexer which is controlled with input A2. The multiplexer in layer 404 chooses between two functions of the remaining inputs, Al and A0. The second layer 402 contains two multiplexers controlled by input Al which selects from functions of the remaining input A0. The last layer 400 contains four multiplexers and selects the actual output bit that is defined by the function F(A1, A2, A3) that is being implemented. One skilled in the art will recognize that the example of FIG. 4 is an illustrative example and that there are straightforward techniques to simplify this circuit. As an example, the top two layers of the multiplexer tree can be replaced with a circuit that generates all possible functions of the two remaining inputs. The outputs of this circuit could then be used as inputs to the next layer down. Unfortunately, the conventional implementations of an apparatus to compute a Boolean function are susceptible to leakage attacks, thus pose a security problem.
The top-level block diagram of the preferred embodiment of the present invention is given in FIG. 5. The diagram of FIG. 5 implements the original function F, but uses a function FP of box 500 to do the actual computation. That is, given an input 502, the output 504 will be the same as if the original function F were used, but instead function FP in box 500 will be used. The input 502 to the function 500, is masked with a random mask 506, called RIN. The masking is accomplished using a bitwise XOR gate 503. The function in box 500 implements FP, which is a scrambled version of the original function F. The output of FP is masked, so in order to get back the correct output it needs to be unmasked. The mask 508, called ROUT, is combined with the output of 500 using XOR gate 505 to produce the correct output 504.
The function FP is calculated such that the block diagram of FIG. 5 produces the same output as the original function F. This can be accomplished if the function FP is defined as follows:
FP(in) = ROUT® F(in θ RIN)
The function FP can be implemented using the conventional table-lookup technique The lookup table for FP is derived from the conventional lookup table that was used for F, but the data is rearranged and masked. FIG. 6 gives the new, rearranged table that can be used to implement the function that was previously described in FIG. 2. The masks RIN and ROUT, given in box 602, determine how table 200 is rearranged to create table 600. Once table 600 is constructed, it can be used in the table lookup process by following the same steps as previously described in FIG. 3. The general procedure used to create a rearranged table like the one in FIG. 6 is represented as a flowchart in FIG. 7. The purpose of the procedure of FIG. 7 is to generate the function FP from the original function F. The procedure of creating a table for FP begins in box 700 where it is assumed that function F has n inputs and m outputs. The next step 702 selects the random masks RIN and ROUT. The mask RIN has n bits and the mask ROUT has m bits. The variable "in" is then initialized to zero in box 704. In order to use "in" as an input to a function, it is converted to a binary input vector "invec" at step 706. Next, at step 708, outvec is set to the XOR of ROUT and the output of function F when the input is the XOR of invec and RIN. The table row "in" for function FP is now ready to be filled in with the outvec result. Step 710 fills in this row of data and then the variable "in" is incremented at step 712. Step 714 checks to see if "in" is less than 2n. If it is, then the procedure loops back to step 706, otherwise, the procedure is done and the table for FP has been completely filled.
Once the procedure of FIG. 7 is run and the table for FP is constructed, the block diagram of FIG. 5 and the table-lookup method can be used to calculate function F on masked inputs and produce masked outputs. An advantage of the present invention is that since the randomized function FP is used and the inputs and outputs to FP are masked, then any information leaked will not be useful for mounting an attack.
The present invention can be implemented using an apparatus composed of a 2:1 multiplexer tree with the addition of crossbar switches. Such an apparatus computes function F on masked inputs and produces masked outputs. An example apparatus to calculate the output Bl from table 200 of FIG. 2 is given in FIG. 8. The 2:1 multiplexer blocks in FIG. 8, labeled "2:1 MUX", are identical to the multiplexers used in FIG. 4. The boxes labeled "XBAR" are crossbar switches that have two data inputs, two data outputs and one select input. When the select input of a crossbar switch is a zero the inputs to go straight to the outputs and when the select input is a one, the inputs are swapped and then output. One skilled in the art of digital circuit design will recognize that a crossbar switch can be constructed using two 2:1 multiplexers. The inputs to the multiplexer tree, A0, Al and A2 of FIG. 8, have been bitwise XOR'ed with the mask RIN The select input to the first level 800 of the tree is A2 masked with bit 2 of RIN, which is denoted as RIN_2. If the masking is performed with the XOR operation, then the select input to the first level 800 is denoted as A2@RIN_2. This notation means that the input to this level is the XOR of bit 2 of RIN with A2. The crossbar switch at level 802 is controlled by bit 2 of RIN or RIN 2. Thus, iϊRINJ. is a zero, the select input to level 800 will not be inverted and the inputs to level 802 will not be switched, thus the function is unchanged. Likewise, fRIN_2 is a one, the select input to level 800 will be inverted and the inputs to level 802 will be switched by the crossbar switch, thus the function is again unchanged. There is a similar arrangement for levels 804, 806, 808 and 810. The design goal for each of these layers it to make sure no matter what the mask happens to be, the function is left unchanged. The top layer 812 is used to mask the eventual output of the blocks with the ROUT 'mask. In this case, bit 1 of ROUT is XOR'ed with all the potential output bits. Thus, whichever bit is eventually selected will be masked with ROUT.
The apparatus of FIG. 8 can be used to implement the function FP of box 500 in FIG. 5. The inputs and outputs are masked, so a leakage attack will not reveal any useful information to an attacker.
Each time function F needs to be calculated, instead function FP can be used. Prior to using FP, the masks RIN and ROUT are generated and the inputs are masked. If the table-lookup method is being used, then the table also needs to be constructed. If the multiplexer tree apparatus is being used, then this step can be skipped. Finally, the output of EP can be unmasked to reveal the true output.
Another advantage of the present invention arises in the computation of the round function in a cryptographic algorithm. A leakage attack can expose the secret key data of a cipher, so it is useful if this data can be masked. The round function needs to process this masked data, thus the present invention can be used to create a scrambled function, such as the previously described function FP, that can operate on masked inputs and also produce masked outputs. In an iterative block cipher the round function is repeatedly executed, so the masked output of one round can be used as the masked input to the next round. A generalized version of this type of cipher is known as a Feistel-network cipher. A block diagram of a Feistel network cipher is shown in FIG. 9. The conventional implementation takes the input data and splits it into a left data register 900 and a right data register 902. Using the present invention, the data from the right register 902 could be masked and then input to round function EP, which is labeled 904. The present invention provides a method to implement the round function EP so that the input to EP can be masked to prevent leakage attacks. Therefore, the present invention provides a method to implement any Feistel-network cipher in a way that is immune to a leakage attack.
The second round of the cipher in FIG. 9 begins at boxes 906 and 908. The left register 906 receives its input from the right register 902 and the right register 908 receives its input from the XOR of the masked output 904 of EP and the left data 900. Next, the right data 908, which is masked, is input to round function 910, which can be the same function as 904. When this round is completed, the results are stored in registers 912 and 914. The round functions are repeated until the last round, where round function 916 is computed and the results are saved in registers 918 and 920. At this time, the results can be unmasked to provide the correct output of the cipher.
If the cipher being implemented happens to be DΕS, then the round function that is implemented by EP could be the S-box function. The S-box function can be implemented using the table lookup method or the multiplexer tree method. In either case, the method or apparatus of the present invention can be used to eliminate the leakage of unintended information.
An aspect of the present invention utilized in the DΕS round function is illustrated in FIG. 10. The right data 1000 is input to the round function 1002. This data should be masked to prevent a leakage attack. The masked input data then goes through the standard DΕS expansion block 1004 and is combined with the subkey 1006 using the bitwise XOR gate 1008. The subkey 1006 and the output of the expansion function 1004 are both masked, so the output of XOR gate 1008 will be masked. This means the inputs to the eight DES S-box lookups 1010 to 1018 will all be masked. This is where the present invention can be used. Because the inputs to the S-box lookup functions are masked there is now a need to compute a function on masked inputs and to produce masked outputs.
Normally, the S-box lookups can be performed by using the table lookup method or by using Boolean logic gates such as in a multiplexer tree. However when the inputs are masked and the outputs need to be masked the normal S-box functions need to be transformed to the scrambled implementation using the method and/or apparatus of the present invention. Thus, S-box functions 1010 to 1018 are implemented using the present invention. The outputs of 1010 to 1018 are masked and provided as input to the permutation 1020. The output of permutation 1020 is, therefore, also masked. The output of the round function is provided to XOR gate 1024 along with the left data 1022 to produce the right data 1026 that is used in the next round.
It should be noted that by using the above scheme, the data being manipulated is always masked, thus any leaked information will not be of benefit to an attacker. It should also be noted that the random numbers used to mask the data and scramble the S-box functions can be generated prior to running DES. This makes the running of a masked version of DES much more efficient when the table lookup method is used, because the scrambled tables only need to be computed once at the beginning of an encryption.
FIG. 11 illustrates a flowchart of the method according to the present invention (described above), wherein the method includes the steps of receiving (1102) a masked input data having n number of bits that is masked with an input mask, wherein n is a first predetermined integer; processing (1104) the masked input data using a second function based on a predetermined masking scheme; producing (1106) a masked output data having m number of bits that is masked with an output mask, wherein m is a second predetermined integer.
The descriptions of the invention, the specific details, and the drawings mentioned above, are not meant to limit the scope of the present invention. For example, one of ordinary skill in the art will recognize that unpredictable data masks may be substituted for purely random data masks. The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes, which come within the meaning and range of equivalency of the claims, are to be embraced within their scope.
We CLAIM:

Claims

1. A method for preventing information leakage attacks on a microelectronic assembly performing a cryptographic algorithm by transforming a first function, used by the cryptographic algorithm, into a second function, the comprising the steps of: receiving a masked input data having n number of bits that is masked with an input mask, wherein n is a first predetermined integer; processing the masked input data using a second function based on a predetermined masking scheme; producing a masked output data having m number of bits that is masked with an output mask, wherein m is a second predetermined integer.
2. The method of claim 1, further comprising the step of removing the output mask from the masked output data.
3. The method of claim 2, wherein the predetermined masking scheme utilizes a look-up table.
4. The method of claim 3, wherein the look-up table, having n input bits and m output bits, is constructed based on a first randomly generated input mask, a first randomly generated output mask and the first function.
5. The method of claim 4, wherein the input data is masked with the first randomly generated input mask using a bitwise XOR operation.
6. The method of claim 4, wherein the output data is masked with the first randomly generated output mask using a bitwise XOR operation.
7. The method according to claim 4, wherein the step of removing the output mask from the output data includes the step of bitwise XORing the masked output data with the first randomly generated output mask.
8. The method of claim 1, wherein the first function is a substitution box (S-box) function of Data Encryption Standard (DES) algorithm.
9. An apparatus for preventing information leakage attacks on a microelectronic assembly, comprising:
a crossbar switch responsive to a first masked input and a second masked input that are masked based on a first mask, a control input based on a second mask, the crossbar switch providing a first output and a second output;
a multiplexer coupled to the first output and the second output of the crossbar switch, the multiplexer having an output, and a control input responsive to a control signal that is based on the second mask and an input to a first function.
10. The apparatus of claim 9, wherein the first mask and the second mask are randomly generated using a random number generator circuit.
11. The apparatus of claim 9, wherein the inputs to the crossbar switch are masked with the first mask using an XOR operation.
12. The apparatus of claim 9, wherein the input to the first function is masked with the second mask using an XOR operation.
PCT/US2000/020367 1999-07-26 2000-07-26 Method and apparatus for preventing information leakage attacks on a microelectronic assembly WO2001008012A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU66092/00A AU6609200A (en) 1999-07-26 2000-07-26 Method and apparatus for preventing information leakage attacks on a microelectronic assembly

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/360,585 1999-07-26
US09/360,585 US6295606B1 (en) 1999-07-26 1999-07-26 Method and apparatus for preventing information leakage attacks on a microelectronic assembly

Publications (1)

Publication Number Publication Date
WO2001008012A1 true WO2001008012A1 (en) 2001-02-01

Family

ID=23418632

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/020367 WO2001008012A1 (en) 1999-07-26 2000-07-26 Method and apparatus for preventing information leakage attacks on a microelectronic assembly

Country Status (3)

Country Link
US (1) US6295606B1 (en)
AU (1) AU6609200A (en)
WO (1) WO2001008012A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820576A1 (en) * 2001-02-08 2002-08-09 St Microelectronics Sa ENCRYPTION METHOD PROTECTED AGAINST ENERGY CONSUMPTION ANALYZES, AND COMPONENT USING SUCH AN ENCRYPTION METHOD
WO2003101039A1 (en) * 2002-05-23 2003-12-04 Koninklijke Philips Electronics N.V. S-box encryption in block cipher implementations
EP1548687A1 (en) * 2002-12-18 2005-06-29 Fujitsu Limited Tamper-resistant elliptical curve encryption using secret key
JP2005236977A (en) * 2004-02-19 2005-09-02 Samsung Electronics Co Ltd Basic operation unit and method with safety for electric power analysis attack
WO2007000702A2 (en) 2005-06-29 2007-01-04 Koninklijke Philips Electronics N.V. Arrangement for and method of protecting a data processing device against a cryptographic attack or analysis
EP1924023A2 (en) * 2006-11-16 2008-05-21 Fujitsu Limited Encrypting apparatus for symmetric key cipher
EP2063376A1 (en) * 2007-11-01 2009-05-27 Discretix Technologies Ltd. Device, system and method for masking arbitrary boolean functions
CN101834720A (en) * 2009-03-13 2010-09-15 索尼公司 Encryption processing apparatus
EP3264668A1 (en) * 2016-06-28 2018-01-03 Eshard A protection method and device against a side-channel analysis
CN107547195A (en) * 2016-06-28 2018-01-05 埃沙尔公司 Guard method and equipment from side Multiple Channel Analysis
US11070359B2 (en) 2016-06-28 2021-07-20 Eshard Protection method and device against a side-channel analysis

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1118924B1 (en) * 2000-01-19 2016-07-20 Infineon Technologies AG Microprocessor system and method of operation
DE10017775A1 (en) 2000-04-10 2001-10-18 Siemens Ag Input method for programming industrial controls
FR2810138B1 (en) * 2000-06-08 2005-02-11 Bull Cp8 METHOD FOR SECURE STORAGE OF SENSITIVE DATA IN A MEMORY OF AN ELECTRONIC CHIP-BASED SYSTEM, IN PARTICULAR A CHIP CARD, AND ON-BOARD SYSTEM IMPLEMENTING THE METHOD
US6981226B2 (en) * 2000-08-07 2005-12-27 Siemens Aktiengesellschaft Flowchart programming for industrial controllers, in particular motion controllers
US7062657B2 (en) * 2000-09-25 2006-06-13 Broadcom Corporation Methods and apparatus for hardware normalization and denormalization
US20020061107A1 (en) * 2000-09-25 2002-05-23 Tham Terry K. Methods and apparatus for implementing a cryptography engine
US7006634B1 (en) * 2000-09-28 2006-02-28 Cisco Technology, Inc. Hardware-based encryption/decryption employing dual ported key storage
US9323955B2 (en) * 2000-12-21 2016-04-26 Gemalto Sa Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system
US8650409B1 (en) 2004-09-15 2014-02-11 Altera Corporation FPGA configuration data scrambling using input multiplexers
KR20020081885A (en) * 2001-04-20 2002-10-30 한국전자통신연구원 Nonlinear Random Numbers Generator using FCSR and Substitution-BOX
JP2002328845A (en) * 2001-05-07 2002-11-15 Fujitsu Ltd Semiconductor integrated circuit and method for protecting security of ic card
JP4596686B2 (en) * 2001-06-13 2010-12-08 富士通株式会社 Secure encryption against DPA
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
EP1486026A1 (en) * 2002-03-07 2004-12-15 Axalto SA Method for making safe an electronic cryptography assembly with a secret key
EP1510028A4 (en) * 2002-05-23 2008-01-23 Atmel Corp Advanced encryption standard (aes) hardware cryptographic engine
DE10324422B4 (en) * 2003-05-28 2007-02-08 Infineon Technologies Ag Method and device for mapping an input value to be mapped onto an encrypted mapped output value
DE10341096A1 (en) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Transition between masked representations of a value in cryptographic calculations
KR100585119B1 (en) * 2004-01-07 2006-06-01 삼성전자주식회사 Cryptographic apparatus and cryptographic method , and storage medium thereof
FR2867635B1 (en) * 2004-03-11 2006-09-22 Oberthur Card Syst Sa SECURE DATA PROCESSING METHOD, BASED IN PARTICULAR ON A CRYPTOGRAPHIC ALGORITHM
EP1578053A1 (en) * 2004-03-18 2005-09-21 STMicroelectronics Limited Data obfuscation
US7899190B2 (en) * 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
DE602004003675T2 (en) * 2004-04-16 2007-10-25 Research In Motion Ltd., Waterloo Security countermeasures against attacks by electricity consumption analyzes
EP1596278A1 (en) * 2004-05-11 2005-11-16 Axalto SA Method to protect a cryptographic unit through homographic masking
EP1601132B1 (en) * 2004-05-24 2006-11-15 Research In Motion Limited Table Masking for Resistance to Power Analysis Attacks
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
US8065532B2 (en) * 2004-06-08 2011-11-22 Hrl Laboratories, Llc Cryptographic architecture with random instruction masking to thwart differential power analysis
KR100610367B1 (en) * 2004-06-19 2006-08-10 삼성전자주식회사 The multiplication method and apparatus for preventing in Galois field, the apparatus for inversion in Galois field and the apparatus for AES byte substitution operation
DE102004032893B4 (en) * 2004-07-07 2015-02-05 Giesecke & Devrient Gmbh Spying-protected calculation of a masked result value
DE102004032894A1 (en) * 2004-07-07 2006-02-09 Giesecke & Devrient Gmbh Spying-protected calculation of a masked result value
DE102004052196B4 (en) * 2004-10-27 2017-04-06 Giesecke & Devrient Gmbh Anti-spyware execution of operations using a mask-assisting arithmetic unit
US8050402B2 (en) * 2004-12-01 2011-11-01 Telecom Italia S.P.A. Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
FR2879383A1 (en) * 2004-12-14 2006-06-16 St Microelectronics Sa MASKING OF BINARY WORDS PROCESSED BY AN INTEGRATED CIRCUIT
DE102004061312B4 (en) * 2004-12-20 2007-10-25 Infineon Technologies Ag Apparatus and method for detecting a potential attack on a cryptographic calculation
US7610628B2 (en) * 2005-03-01 2009-10-27 Infineon Technologies Ag Apparatus and method for calculating a representation of a result operand
EP1865481A1 (en) * 2005-03-31 2007-12-12 Matsushita Electric Industrial Co., Ltd. Data encryption device and data encryption method
DE602005002632T2 (en) * 2005-05-10 2008-01-31 Research In Motion Ltd., Waterloo Key masking for cryptographic processes using a combination of random mask values
JP4783104B2 (en) * 2005-09-29 2011-09-28 株式会社東芝 Encryption / decryption device
JP2007189659A (en) * 2005-12-15 2007-07-26 Toshiba Corp Encryption device, encryption method, and encryption program
DE602006020010D1 (en) * 2005-12-19 2011-03-24 St Microelectronics Sa Protection of the execution of a DES algorithm
US7720225B2 (en) * 2006-03-07 2010-05-18 Research In Motion Limited Table splitting for cryptographic processes
US7921148B2 (en) * 2006-08-09 2011-04-05 Infineon Technologies Ag Standard cell for arithmetic logic unit and chip card controller
US8301890B2 (en) * 2006-08-10 2012-10-30 Inside Secure Software execution randomization
US7613907B2 (en) * 2006-08-11 2009-11-03 Atmel Corporation Embedded software camouflage against code reverse engineering
US7984301B2 (en) * 2006-08-17 2011-07-19 Inside Contactless S.A. Bi-processor architecture for secure systems
US7554865B2 (en) * 2006-09-21 2009-06-30 Atmel Corporation Randomizing current consumption in memory devices
WO2008064704A1 (en) * 2006-11-30 2008-06-05 Telecom Italia S.P.A Method and device for preventing information leakage attacks on a device implementing a cryptographic function
US8422668B1 (en) * 2006-12-15 2013-04-16 Spansion Llc Table lookup operation on masked data
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
JP5242560B2 (en) * 2007-05-30 2013-07-24 パナソニック株式会社 ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, AND INTEGRATED CIRCUIT
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
ATE513377T1 (en) * 2007-12-13 2011-07-15 Oberthur Technologies METHOD FOR CRYPTOGRAPHIC DATA PROCESSING, IN PARTICULAR USING AN S BOX AND RELATED EQUIPMENT AND SOFTWARE
FR2925968B1 (en) * 2007-12-26 2011-06-03 Ingenico Sa MICROPROCESSOR SECURING METHOD, COMPUTER PROGRAM AND CORRESPONDING DEVICE
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
JP2010245881A (en) * 2009-04-07 2010-10-28 Toshiba Corp Cipher processor
KR101334040B1 (en) * 2010-01-20 2013-11-28 한국전자통신연구원 Method and apparatus for providing masking operations in encryption system
US8619985B2 (en) 2010-04-27 2013-12-31 Research In Motion Limited Table splitting for cryptographic processes
US8862896B2 (en) * 2010-12-06 2014-10-14 Apple Inc. Data protection using key translation
US9432180B2 (en) * 2011-06-03 2016-08-30 Harris Corporation Method and system for a programmable parallel computation and data manipulation accelerator
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
US9959429B2 (en) * 2013-03-15 2018-05-01 Cryptography Research, Inc. Asymmetrically masked multiplication
US9569616B2 (en) 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
DE102014001647A1 (en) * 2014-02-06 2015-08-06 Infineon Technologies Ag Operation based on two operands
JP6264935B2 (en) * 2014-02-24 2018-01-24 大日本印刷株式会社 Authentication method for information processing apparatus
US9923719B2 (en) 2014-12-09 2018-03-20 Cryptography Research, Inc. Location aware cryptography
US10333699B1 (en) 2015-09-30 2019-06-25 Cryptography Research, Inc. Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
US10771235B2 (en) * 2016-09-01 2020-09-08 Cryptography Research Inc. Protecting block cipher computation operations from external monitoring attacks
DE102018107114A1 (en) * 2018-03-26 2019-09-26 Infineon Technologies Ag Side channel hardened operation
US11386226B2 (en) 2019-10-21 2022-07-12 International Business Machines Corporation Preventing leakage of selected information in public channels
US20240004801A1 (en) * 2022-06-29 2024-01-04 Advanced Micro Devices, Inc. Data encryption suitable for use in systems with processing-in-memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168521A (en) * 1989-07-25 1992-12-01 U.S. Philips Corp. Method of executing an irregular permutation of data protected by encryption
US5796837A (en) * 1995-12-26 1998-08-18 Electronics And Telecommunications Research Institute Apparatus and method for generating a secure substitution-box immune to cryptanalyses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168521A (en) * 1989-07-25 1992-12-01 U.S. Philips Corp. Method of executing an irregular permutation of data protected by encryption
US5796837A (en) * 1995-12-26 1998-08-18 Electronics And Telecommunications Research Institute Apparatus and method for generating a secure substitution-box immune to cryptanalyses

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KOCHER ET AL.: "Introduction to differential power analysis and related attacks", CRYPTOGRAPHY RESEARCH, INC. HOMEPAGE, 1998, pages 1 - 7, XP002932754 *
WAYNER PETER: "Code breaker cracks smart cards' digital safe", NEW YORK TIMES, 22 June 1998 (1998-06-22), pages 1 - 5, XP002932755 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820576A1 (en) * 2001-02-08 2002-08-09 St Microelectronics Sa ENCRYPTION METHOD PROTECTED AGAINST ENERGY CONSUMPTION ANALYZES, AND COMPONENT USING SUCH AN ENCRYPTION METHOD
WO2002063821A1 (en) * 2001-02-08 2002-08-15 Stmicroelectronics S.A. Secure encryption method and component using same
WO2003101039A1 (en) * 2002-05-23 2003-12-04 Koninklijke Philips Electronics N.V. S-box encryption in block cipher implementations
EP1548687A4 (en) * 2002-12-18 2008-04-02 Fujitsu Ltd Tamper-resistant elliptical curve encryption using secret key
US7536011B2 (en) 2002-12-18 2009-05-19 Fujitsu Limited Tamper-proof elliptic encryption with private key
EP1548687A1 (en) * 2002-12-18 2005-06-29 Fujitsu Limited Tamper-resistant elliptical curve encryption using secret key
JP2005236977A (en) * 2004-02-19 2005-09-02 Samsung Electronics Co Ltd Basic operation unit and method with safety for electric power analysis attack
WO2007000702A2 (en) 2005-06-29 2007-01-04 Koninklijke Philips Electronics N.V. Arrangement for and method of protecting a data processing device against a cryptographic attack or analysis
US8738927B2 (en) 2005-06-29 2014-05-27 Irdeto B.V. Arrangement for and method of protecting a data processing device against an attack or analysis
EP1924023A2 (en) * 2006-11-16 2008-05-21 Fujitsu Limited Encrypting apparatus for symmetric key cipher
EP1924023A3 (en) * 2006-11-16 2014-12-17 Fujitsu Limited Encrypting apparatus for symmetric key cipher
US8091139B2 (en) * 2007-11-01 2012-01-03 Discretix Technologies Ltd. System and method for masking arbitrary Boolean functions
EP2063376A1 (en) * 2007-11-01 2009-05-27 Discretix Technologies Ltd. Device, system and method for masking arbitrary boolean functions
JP2010219666A (en) * 2009-03-13 2010-09-30 Sony Corp Encryption processing apparatus
US8213603B2 (en) 2009-03-13 2012-07-03 Sony Corporation Encryption processing apparatus
EP2228941A1 (en) * 2009-03-13 2010-09-15 Sony Corporation Encryption processing apparatus
CN101834720A (en) * 2009-03-13 2010-09-15 索尼公司 Encryption processing apparatus
EP3264668A1 (en) * 2016-06-28 2018-01-03 Eshard A protection method and device against a side-channel analysis
CN107547195A (en) * 2016-06-28 2018-01-05 埃沙尔公司 Guard method and equipment from side Multiple Channel Analysis
US10439796B2 (en) 2016-06-28 2019-10-08 Eshard Methods and devices against side-channel analysis
US10439797B2 (en) 2016-06-28 2019-10-08 Eshard Methods and devices against a side-channel analysis
US10491372B2 (en) 2016-06-28 2019-11-26 Eshard Protection method and device against a side-channel analysis
US10581588B2 (en) 2016-06-28 2020-03-03 Eshard Methods for protecting substitution operation using substitution table against a side-channel analysis
US10644873B2 (en) 2016-06-28 2020-05-05 Eshard Method for protecting substitution operation against side-channel analysis
US11070359B2 (en) 2016-06-28 2021-07-20 Eshard Protection method and device against a side-channel analysis

Also Published As

Publication number Publication date
AU6609200A (en) 2001-02-13
US6295606B1 (en) 2001-09-25

Similar Documents

Publication Publication Date Title
US6295606B1 (en) Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US9197412B2 (en) Low-complexity electronic circuit protected by customized masking
Trichina Combinational logic design for AES subbyte transformation on masked data
US7039184B2 (en) Encryption/decryption unit and storage medium
US7092525B2 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
Karpovsky et al. Differential fault analysis attack resistant architectures for the advanced encryption standard
US6804354B1 (en) Cryptographic isolator using multiplication
EP1836554B1 (en) Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
JP2848036B2 (en) How to protect pseudo-random signals
AU773982B2 (en) Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals
EP2148462A1 (en) A differential side-channel analysis countermeasure
Karri et al. Concurrent error detection of fault-based side-channel cryptanalysis of 128-bit symmetric block ciphers
KR100737171B1 (en) A low memory masking method for aria to resist against differential power attack
WO2008064704A1 (en) Method and device for preventing information leakage attacks on a device implementing a cryptographic function
Chambers et al. Comments on" Chaotic digital encoding: an approach to secure communication" and reply
Gupta et al. Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes
Golić DeKaRT: A new paradigm for key-dependent reversible circuits
Gupta et al. Correlation power analysis on KASUMI: attack and countermeasure
EP4307155A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
RU2204212C2 (en) Iterative method for block encryption
Zhou et al. Low-Complexity AES Architectures Resilient to Power Analysis Attacks
Nandan et al. Design of Improved Advance Encryption Standard Algorithm with Affine Transformation in S-Box for Performance Improvement in Field-Programmable Gate Arrays
Karunakaran et al. FPGA based Fault Analysis for Encrypted Code
Yang et al. SPN-AS: A new white-box cryptographic algorithm based on AS iteration structure
RU2184423C2 (en) Method for iterative block encryption of digital data

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP