KR20080073345A - Encryption protection method - Google Patents

Encryption protection method Download PDF


Publication number
KR20080073345A KR1020087015072A KR20087015072A KR20080073345A KR 20080073345 A KR20080073345 A KR 20080073345A KR 1020087015072 A KR1020087015072 A KR 1020087015072A KR 20087015072 A KR20087015072 A KR 20087015072A KR 20080073345 A KR20080073345 A KR 20080073345A
South Korea
Prior art keywords
Prior art date
Application number
Other languages
Korean (ko)
미셸 도우구에트
빈센트 두파콰이스
Original Assignee
아트멜 코포레이션
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
Priority to FR05/11768 priority Critical
Priority to FR0511768A priority patent/FR2893796B1/en
Priority to US11/358,979 priority
Priority to US11/358,979 priority patent/US7848515B2/en
Application filed by 아트멜 코포레이션 filed Critical 아트멜 코포레이션
Publication of KR20080073345A publication Critical patent/KR20080073345A/en




    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communication 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • 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]
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption


A deterministic blinding method for cipher algorithms that employ key-mixing and substitution (S-box) operations uses a masking table (MASK[0] to MASK [63]) constructed with a true mask (MASK[0]) and a plurality of dummy masks corresponding to every possible S-box input. Each mask is applied in the key-mixing operation (e.g., bitwise XOR) to the cipher key (K) or to round subkeys (K1 to K16) to generate true and dummy keys or subkeys that are applied to the data blocks (DATA) within the overall cipher algorithm or within individual cipher rounds. The mask values prevent side-channel statistical analyses from determining the true from the dummy keys or subkeys. The true mask is identifiable to the cipher but not by external observers.



본 발명은 타겟된 암호해독 공격으로부터 암호해독 하드웨어 엔진을 연산동안 보호하는 방법, 특히 사이드 채널 공격으로부터 마스킹 방법(폴스 또는 더미 연산)의 사용을 통해 설정된 라운드에서 암호화 알고리즘 대체(substitution)(S-박스) 연산의 (키 사이드상의)입력값을 보호하는 방법에 관한 것이다. The present invention relates to a method of protecting during the operation of the decryption engine from the hardware decryption attack the target, particularly a masking method from a side channel attack (Paul or dummy operation) replacement encryption algorithm is set in the round through the use of (substitution) (S- box ) of the operation (the key on the side) to a method for protecting input.

미국 특허 출원 공개 제 2004/0139340호에서, Johnson 등은 리얼 코드를 숨기기 위해 더미 코드를 사용하는 시도에서 통계적인 데이터 흐름 분석과 같은, 소위 "화이트-박스 공격"에 대해, 암호화 알고리즘의 안전성 문제를 논의한다. In US Patent Application Publication No. 2004/0139340, Johnson, etc., such as the so-called statistical data flow analysis in an attempt to use a dummy code to hide the real code - the issue of safety, encryption algorithms for the "white-box attack." be discussed. Johnson 등은 정보 전송, 결합 또는 손실의 사이트를 넓게 확산시키는 것과, 공격자에게 가시적인 처리 활동을 변경하는 더 많은 함수 및 변환을 발생시키는 대안의 해결책을 제안한다. Johnson et al proposes the transfer of information, or loss of binding to spread widely as the site, the more functions and alternative solutions for generating a conversion that changes the visual processing activities to an attacker. 그 해결책이 DES 알고리즘 또는 그 변형을 사용하는 스마트 카드를 안전하게 할 목적의 예시적인 구현예에 적용된다. The solution is applied to an illustrative embodiment of the object to secure the smart card using the DES algorithm or a variant thereof.

미국 특허 출원 공개 제 2003/0044003호에서, Chari 등은 사이드 채널 공격에 저항하는 테이블 룩업을 구현하는 방법 및 시스템을 개시한다. In U.S. Patent Application Publication No. 2003/0044003, Chari et al discloses a method for implementing a table look-up to resist the side-channel attack, and systems. 테이블 마스크 연산이 사용되고, 거기에서 마스크된 테이블의 엔트리가 원래의 테이블 엔트리와 통계적으로 무관하다. Table mask operation are used, the entry of the mask table there is irrelevant to the previous table entry and statistically. 테이블 마스크 연산이 (1) 큰 테이블 또는 큰 지수 크기를 갖는 테이블에 대한 테이블 분할 연산; Table mask operation are (1) a large table or table partition operations for a table having a large index size; 또는 (2) 테이블 결집 연산(여기서, 다수의 테이블이 하나의 테이블로 결집된다)중 하나 또는 모두로 수행된다. Or (2) table mobilize operation is performed in any or all of (here, a number of tables are aggregated into a single table).

미국 특허 출원 공개 제 2003/0093684호에서, Kaiserwerth 등은 특히 파워분석 공격에 대한 암호화 알고리즘의 잠재적인 취약성을 논의한다. In US Patent Application Publication No. 2003/0093684, Kaiserwerth including, inter alia, discussed the potential vulnerabilities of cryptographic algorithms for power analysis attacks. 상기 내용에서, 단일 DES의 적은 키 크기(유효하게는 56 비트)는 트리플 DES(적어도 2 및 양호하게는 3개의 독립적인 키를 사용하는 암호화-복호화-암호화와 같이 세번 구동)와 같은 변형으로의 진화를 필수적으로 하면서 키 소모성(exhaustion) 공격에 대해 더 이상 안전하지 않다. In the above, small keys on the single DES size (effectively the 56-bit), triple DES to the strain, such as (at least two and preferably encrypted using three independent key-three drive as encryption-decryption) while it is evolving into essentially no longer safe for key consumables (exhaustion) attacks. 또한, DES의 S-박스는 56 키 비트 중 48을 얻기 위해 S- 박스 입력 및 출력의 미분 분석에 잠재적으로 취약하다. In addition, S- box of the DES is potentially vulnerable to a derivative of S- box input and output to obtain 48 of the 56-bit key. Kaiserwerth 등이 마스킹 연산 및 해밍-중립 비트 스트링을 사용하는 것을 포함해서 그런 공격 형태를 방해하기 위해 몇 개의 대책을 개시한다. The Kaiserwerth such masking operation, and Hamming - including the use of neutral bit string discloses several measures to frustrate such attacks form.

미국 특허 제 6,278,783호에서, Kocher 등은 S-박스 테이블이 블라인드되고 일반적으로 통용되는 기준으로 임의로 치환되는 개선된 DES 구현예를 개시하고, 키 및 메시지 블럭이 원래값에 관련된 치환가능한 2개 부분값을 비트 단위의 XOR 연산에 의해 생성하기 위해 블라인드된다. In U.S. Patent No. 6,278,783, Kocher et S- box table is blind is generally disclosed an improved DES embodiments optionally substituted by commonly used in, and the key and the message block is substituted with the 2-part value associated with the original value, the blind is to produce by the XOR operation on a bit unit.

일반적으로, 사이드-채널 공격은 타겟된 암호 알고리즘의 실행 동안 암호해독 하드웨어의 전력 소비 또는 전자기 방출을 외부에서 모니터링하고 키에 관해 사용가능한 정보를 얻기 위해 모니터된 특성의 타이밍 프로파일을 타켓 알고리즘과 상호 연관시키기 위한 시도를 포함한다. In general, the side-channel attack target timing profile of the monitored properties in order to obtain the available information about the monitoring of the power consumption or electromagnetic radiation of a decryption hardware for the target encryption algorithm running on the outside and key algorithm and the correlation including the attempt to. 예를 들어, 그 하나의 공격은 알고리즘의 S-박스의 입력 사이드에서 알고리즘의 실행 중 그 일부를 직접 타켓할 수 있고, 여 기서, 데이터는 설정된 라운드에서 서브키와 XOR된다. For example, one of the attack can directly target a part of the execution of the algorithm in the input side of the box S- algorithm, where, the data is XOR with the round sub keys in the set. 사이드-채널 공격에 대한 암호화 알고리즘을 보호하기 위한 하나의 방법이 임의화된 마스킹 또는 블라인딩 방법, 즉 트루 연산과 함께 다수의 페이크(fake) 또는 더미 연산을 구동하는 것을 사용하게 된다. Side-one way to secure the encryption algorithm for the channel randomization attack masking or blinding method, that is used to drive a large number of fake (fake) or dummy operation with true operation. 그러나, 임의화된 마스킹의 문제는 추가된 더미 연산의 실행에 주입된 엔트로피가 제어되지 않는 것이어서, 트루 연산을 통계 기술을 사용해서 나타내는 것이 가능하다. However, unless problems of geotyieoseo randomized masking is not controlling the injection entropy for the execution of the additional dummy operation, it is possible to represent, using a statistical technique for computing true.

본 발명은 타켓된 공격에 민감한 암호화 알고리즘용의 결정적 블라인딩(deterministic blinding) 방법이나, 특히, 암호 S-박스의 입력 사이드상에서 비트 단위의 XOR 연산과 같이 대체(S-박스) 연산을 사용하거나 논리적으로 데이터를 라운드 서브키와 결합하는 암호화 알고리즘에도 배타적이지 않다. The invention uses a deterministic blinding (blinding deterministic) method and, particularly, alternative (S- box) calculated as an XOR operation of the bit unit on the input side of the password S- boxes for the encryption algorithm sensitive to the attack target, or even logically round the data encryption algorithm combined with sub-key is not exclusive. 본 발명의 결정적 블라인딩 방법은 완전 임의의 블라인딩 또는 마스킹 기술보다 트루 연산을 더 보호하기 위해 폴스 또는 더미 연산 세트의 구동 시 주입된 엔트로피를 제어한다. Deterministic blinding method of the present invention controls the injection of entropy during the drive of the pile Falls or set of operations to further protect the true operation more fully random blinding or masking techniques.

그 방법은 미리 마스킹 테이블을 만드는 것으로 개시하고, 그것이 키의 최소 비트를 각종 결합으로 블라인드하기 위해 만들었던 트루 키 및 다수의 보호 라인에 대응하는 하나의 라인을 포함한다. The method begins by pre-creating a masking table, and it comprises a single line corresponding to a true key and a plurality of protection lines made to blind the minimum number of bits of the key in various combination. 테이블로부터 라인이 설정된 키와 논리적으로 결합될 때, 그 방법은 키 세트를 얻고, 그 세트 중 하나만이 트루인 반면에, 나머지 세트 모두가 더미 키이다. When combined with the key and the logical line is set from the table, the method gets a set of keys, on the other hand only one of the set of true, all remaining sets a dummy key. (예를 들어, 비트 단위의 XOR 결합 동작의 경우에, 트루 키에 대응하는 테이블의 라인이 모두 제로 비트를 포함하는 마스크로 되는 반면에, 보호 라인이 최소한 일부 비트가 1인 마스크로 된다.) 암호화 알고리즘은 트루 및 더미 키를 임의 순서로 여러 번에 걸쳐 메시지 블럭상에서 실행하여 대응하는 트루 및 더미 라운드 서브키를 발생시킨다. (For example, if the XOR combination operation in bits, on the other hand is used as a mask containing a line is all zero bits of the table for the true key, the protection line at least some bits are to 1 in the mask.) the encryption algorithm generates a true and the dummy round sub key corresponding to running on the message blocks over a number of times and the true key pile in a random order. 적용한 트루 키로부터 암호 연산으로 얻어진결과가 메모리에 저장되는 반면에, 더미 키로부터의 올바르지 않은 결과는 더미 메모리 장소에 저장된다. An incorrect result of the results obtained by the cryptographic operation from the key applying true since, while being stored in the memory, the dummy key is stored in the dummy memory locations. 각 키에 대해 암호 실행된 후, 트루 결과가 메모리로부터 액세스된다. After the password executed for each key, the result is true is accessed from the memory.

대안적으로, 마스킹 테이블의 라인은 암호 라운드 내의 서브키와 논리적으로 결합될 수 있어서 각 라운드에 대해 트루 서브키 및 더미 서브키 세트를 얻는다. Alternatively, the lines of the mask table is obtained a true sub-key and the dummy sub-set of keys for each round can be combined in a logical and sub-keys in the encryption round. 그런 서브키가 암호 라운드에 따라 메시지 블럭을 처리하기 위해 적용되며 트루 결과만이 다음 라운드를 따라 통과된다. Such sub-key is applied to process the message in accordance with block cipher rounds and only true results are passed along to the next round.

S-박스 연산을 사용하는 암호 알고리즘에서, 비트의 번호 n은 S-박스(룩-업 테이블로 일반적으로 구현된)의 입력 사이드에 들어간다. From the encryption algorithm using the S- box operations, the number n of bits is S- box-enters the input side of the (look-up table implemented with a general). 그러므로, S-박스에 대해 2 n 의 가능한 입력값이 있다. Therefore, the possible input value of 2 n for the S- box. 본 발명의 예시적인 실시예에서, 2 n 마스크를 포함하는 마스킹 테이블이 구성되고, 마스크 중 하나는 모두 제로(트루 연산에 대응하는)를 포함하고 나머지 마스크 모두는 1(더미 연산에 대응하는)인 비트를 포함한다. In an exemplary embodiment of the invention, second masking table containing the n mask is configured, one of the mask comprises a zero-All (corresponding to a true calculation), and all the rest of the mask is 1 (corresponding to the dummy operation) and a bit. this 마스크는 The mask

(a) 대응하는 트루 및 더미 라운드 서브키를 발생시키는 키 세트(하나는 트루이고 나머지는 더미 키)를 포함하기 위한 키 또는 (b) 각 라운드에 대해 서브키 세트를 얻기 위한 각 라운드 서브키(다시 말해, 하나는 라운드에 대한 트루 서브키이고 나머지들은 라운드에 대한 더미 서브키)와 비트 단위로 XOR된다. (A) generating a corresponding true and dummy round sub key, set of keys, each round sub for obtaining the key or (b) the sub-set of keys for each round to include (one is true and the others are dummy key) ( That is, one is a true sub-keys for the remaining rounds are XOR with a dummy sub-keys) and the bit units for the round. 암호 라운드 내에서, 각 서브키가 n 비트 그룹에서 데이터와 논리적으로 결합되어 S-박스로 들어간다. In the encryption round, each of the sub-keys are combined in a group of n bits into data with a logical S- enters the box. 테이브의 더미 마스크가 특정하게 선택될 수 있어서 S-박스로 들어가는 결합된 비트 그룹이 모두 2 n 의 가능한 입력값을 얻어서, 공격자에 의해 보여진 엔트로피를 완전히 평준화하여 그 S-박스 연산에서 사용된 트루 라운드 서브키가 외부로 확정될 수 없다. A dummy mask Tave in particular can be selected to obtain the possible input values of all of the second bit group combination into the box S- n, the true in the S- box operation to fully level the entropy seen by the attacker round sub key can not be determined externally.

도 1은 종래 기술의 DES 표준에 따라 DES 암호 함수를 예시하는 개략적인 블럭도. Figure 1 is a schematic block diagram illustrating a DES encryption function according to the prior art of the DES standard.

도 2는 본 발명의 예시적인 실시예에 따라 변형되는 DES 암호 함수를 예시하는 개략적인 블럭도. Figure 2 is a schematic block diagram illustrating the DES cryptographic function is modified in accordance with an exemplary embodiment of the present invention.

도 3 및 4는 본 발명에 따라 글로벌 마스킹 및 인사이드 마스킹 구현 방법을 수행하는 예시적인 암호화 엔진의 블럭도 형태의 하드웨어 개략도. Figures 3 and 4 is a block diagram of an exemplary encryption engine that performs the masking and implementation of the global Inside masking method according to the invention also form a schematic diagram of a hardware.

결정적 블라인딩은 "글로벌" 마스킹 방법 또는 "인사이드" 마스킹 방법으로 본 발명에 따라 적용된다. Deterministic blinding is applied in accordance with the present invention as a "global" masking method or the "inside" masking method. 기본 사상은 마스킹 테이블의 각 라인을 키 또는 라운드 키에 적용하여 트루 및 더미 키 또는 서브키를 얻는다는 것이다. The basic idea is that by applying a respective line of the masking key table or a round key to obtain a true and a dummy key or subkey. 글로벌 마스킹 방법에서, 마스킹 테이블의 라인으로 마스킹하는 것은 암호 알고리즘의 라운드 실행의 암호화 키 아웃사이드 전체에 적용된다. In the global masking method, it is to mask the line of the mask table is applied to the entire side encryption keys out of the run-round of the encryption algorithm. 그것에 의해 암호화 알고리즘 자체의 기존 하드웨어 또는 소프트웨어 구현 예를 내부 변형 없이 유지시킨다. It is maintained by the existing hardware or software implementation of the cryptographic algorithm itself without internal strain. 글로벌 마 스킹은 트루 암호화 키 및 더미 암호화 키 세트를 발생시킨다. Global masking the true causes the encryption keys and encryption key set piles. 그 암호화 키는 암호화 알고리즘의 다수 루프에서 메시지 블럭에 임의 순서로 연속적으로 적용된다. The encryption key is continuously applied in any order in a message block in a number of loops of the encryption algorithm. 그런 후, 글로벌 마스킹 방법의 구현 예는 암호화 알고리즘의 64개 연산의 루프를 처리할 수 있다. Then, the implementation of the global masking method for example may process the loop of the 64 operation of the encryption algorithm. 각 루프 내에서 이미 사용되지 않았던 지수i를 임의로 선택하기 위해 테이블 임의 액세스를 사용할 수 있어서, 마스킹 테이블로부터 마스크[i]를 얻는다. In use the table, a random access in order to select the index i has not been already used in each loop, optionally, is obtained from the masking table to mask [i]. 암호화 키 상에서 제 1 마스크[i]의 비트 단위의 XOR 연산이 마스크된 키를 생성한다. To produce an XOR operation on the key mask of the bits of the first mask [i] on the encryption key. 그 마스크된 키는 암호 알고리즘에서 메시지 블럭으로써 처리되고, 그것은 마스크된 키로부터 라운드 서브키 생성을 포함한다. The masked key is processed as a message block from the cryptographic algorithm, it comprises a round sub key generation from the key mask. 지수i가 IndexMaskZero인 경우에, 마스크된 키가 트루 키로 되고 암호 알고리즘의 루프를 메시지 블럭에 적용하는 결과가 메모리에 저장되는 트루 결과로 된다. When the index i is IndexMaskZero, key, masked key is true, and the result of applying the loop of the encryption algorithm to the message block is as true result is stored in memory. 지수i가 IndexMaskZero와 다른 경우에, 마스크된 키가 더미 키로 되고 더미 결과가 메모리의 더미 위치 장소에 저장된다. The index i in the case IndexMaskZero the other, the masked key and the key, dummy pile result is stored in place of the dummy memory location. 모든 루프가 일단 실행되면, 트루 결과가 메모리로부터 액세스될 수 있다. When all the loop is once executed, the result is true and can be accessed from the memory.

대안적인 방법은 "인사이드" 마스킹 방법이다. An alternative method is "inside" a masking method. 이 기술은 암호 알고리즘의 내부를 변형하여 마스킹 인사이드를 라운드 서브키에 적용한다. This technique is to modify the interior of the encryption algorithm round inside the masking is applied to the sub-key. 각 암호 라운드 내에서, 마스킹 테이블의 마스크 모두가 라운드 서브키에 연속해서 임의 순서로 적용하여 라운드에 대해 하나의 트루 라운드 서브키 및 다수의 더미 서브키를 얻는다. Within each encryption round, all of the mask masking table in a row in a round sub key applied in an arbitrary order to obtain a single true-round sub key, and a plurality of dummy sub-keys for round. 그 마스크된 서브키가 암호 알고리즘의 라운드의 다수 루프를 처리하기 위해 사용된다. That the mask sub-key is used to process a large number of loops round of the encryption algorithm. 특히, 인사이드 마스킹 방법의 구현 예는 각 암호 라운드에 대해 64개 연산의 루프를 처리할 수 있고, 지수i가 라운드에서 이미 사용되지 않는 지수값 중에서 임의로 선택되어 마스킹 테이블로부터 마스크[i]를 얻고 그것을 라운드 서브키로 적용한다. In particular, embodiments of the inside masking method may handle the loop of the 64 operational for each encryption round, the index i is selected randomly from among already unused index value in a round to obtain a mask [i] from the masking table that apply a round sub key. 라운드의 루프를 마스크된 서브키로 처리한 후, 지수가 트루 서브키에 대응하는 IndexMaskZero인 경우에, 라운드의 올바른 결과가 메모리에 저장된다. After processing the mask round the loop of sub-keys, if the index corresponding to the true IndexMaskZero sub-key, the correct result of the round are stored in the memory. 지수가 IndexMaskZero와는 다른 경우에, 라운드의 그 루프가 더미 서브키로써 처리되는 것을 의미하며, 그 후에 올바르지 않은 결과가 메모리의 더미 위치 장소에 저장된다. If index is different from the IndexMaskZero, means that the loop of the round sub key is processed as a pile, and that after an incorrect result is stored in place of the dummy memory location. 올바른 결과가 다음 라운드에서 사용되는 반면에 더미 결과가 겹쳐쓰기된다. The correct result is overwritten on the other hand, the result is a pile for use in the next round.

본 발명의 결정적 블라인딩 방법은 키-믹싱 및 S-박스 연산과 함께 사이드-채널 공격에 민감한 하드웨어 암호해독 엔진에서 실행된 각종 암호화 알고리즘, 및 키 스케줄을 사용하는 일부의 대칭 블럭 암호에 적용된다. Deterministic blinding method of the present invention key-applied on various encryption algorithms, executed in the channel attack sensitive hardware decryption engine on, and some of the symmetric block cipher using a key schedule-mixing and S- box operation and the side with . 예시 목적으로, 다음의 설명은 데이터 암호화 알고리즘을 참고로 이루어지고, 그것이 US National Bureau of Standards(현재의 the National Institute of Standards and technology)의 Federal Information Processing Standards(FIPS) Publication 46-3(1977년 1월 15일 발간)에서 설명된 데이터 암호화 표준(DES)의 코어이고 상기 Publication이 1999년 10월 25일에 재발간(현재 절판)되고, 그것은 몇 개로 변형되어 널리 사용된다. For illustrative purposes, the following description is made with reference to the data encryption algorithm, that US National Bureau of Standards (now in the National Institute of Standards and technology) Federal Information Processing Standards (FIPS) of Publication 46-3 (1 1977 years May 15 published), the core of the data encryption standard (DES) described in the above publication is being re-published (now out of print), on October 25, 1999, it has been modified several pieces are widely used. 트리플 DES(3DES) 및 또한 트리플 데이터 암호화 알고리즘(TDEA)로 공지된 변형은 NIST Special Publication 800-67(2004년 5월)에서 설명된 바와 같이 데이터 암호화 알고리즘을 독립적인 키로 연속해서 3번 적용하는 것을 포함한다. Triple DES (3DES) and also known as strain Triple Data Encryption Algorithm (TDEA) is that the continuous key independent of the data encryption algorithm applied three times as described in NIST Special Publication 800-67 (May 2004) It includes. 덜 계산하고 값비싼 대안적인 변형은 DEX-X이고, 그것은 키 화이트닝으로 공지된 기술을 사용해서 코어 DES 라운드 And less expensive alternative to calculate deformation DEX-X, it is the core DES using techniques known in the Round Key Whitening

Figure 112008044362517-PCT00001
Figure 112008044362517-PCT00002
전후 모두에 여분의 64-비트 키 재료를 XOR함으로써 유효한 키 사이즈를 증가시킨다. XOR by an extra 64-bit key material both before and after increasing the effective key size. 상기 및 다른 DES 변형은 적은 유효성 키 사이즈로 인해 DES의 취약성을 소모성 키 서치로 감소시키는 방법이다. These and other modifications DES is a method of validity because of the small key size of DES to reduce vulnerability consumable key search. 또 다른 변형은 DES를 특정하게 설계하지 않은 선형 암호해독 또는 다른 잠재적인 취약성을 양호하게 하기 위한 노력으로 S-박스 테이블, 키 스케줄 또는 다른 코어 함수를 변형시킨다. Another variation is to transform S- box table, key schedule or other core function in an effort to preferably a linear decryption or other potential vulnerabilities that are not specifically designed for DES. DES 및 그 변형은 그것의 용이한 액세스 능력으로 인해 사이드-채널 공격에 특히 취약한 스마트 카드의 암호화 엔진으로서 일반적으로 사용된다. DES and its variants is due to its easy accessibility Side - is commonly used as a cryptographic engine for smart cards particularly vulnerable to the channel attacks. 본 발명의 결정적 블라인딩 방법은 스마트 카드 및 다른 암호해독 하드웨어의 취약성을 실제로 감소시킨다. Deterministic blinding method of the present invention actually reduces the vulnerability of the smart card and the other decryption hardware.

DES는 블럭의 최초 및 최종 치환간에 16개의 동일한 라운드로써 64-비트 메시지 블럭상에서 연산한다. DES will operate on a 64-bit message block by 16 identical round between the first and last replacement block. 연산 모드가 단일 블럭보다 긴 메시지에 DES를 인가하기 위해 특정화된다. The operation mode is specified in order to apply the DES in long messages than a single block. DES가 64-비트 키(KEY)를 사용하고, 그 중 8비트가 페리티 확인용으로만 사용되어서, 유효한 키 길이가 56비트이다. DES uses a 64-bit key (KEY), and, being 8 bits of them only for the parity, the valid key length is 56 bits. 키 스케줄 함수KS는 KEY를 사용하여 16개의 서브키(K1 내지 K16)(각 라운드당 1개)를 발생시킨다. Key schedule function KS using the KEY to generate the 16 sub-keys (K1 to K16) (1 per each round). 암호화하기위해, 서브키가 발생되고 역순서로 적용된다. In order to encrypt, a sub key is generated and applied in the reverse order. 키 스케줄 KS의 완전한 정의는 FIPS PUB 46-3에서 설명했듯이 치환된 선택 PC-1 및 PC-2쌍(테이블로 일반적으로 구현된) 및 선택된 키 비트중 2개의 28비트 블럭의 비트 회전 시리즈를 포함한다. Key KS is a complete definition of the schedule, as described in FIPS PUB 46-3 substituted selected PC-1 and PC-2 pairs contained in the original (typically implemented as a table), and two 28-bit blocks of bit rotation series of selected key bits do. 그러나, 이런 연산의 궁극적인 결과는 각 서브키(K1 내지 K16)가 KEY의 분리된 함수로써 고려될 수 있고, 그 KEY로부터 얻어진 48비트의 특정하게 치환된 선택을 설계한 목록으로 표현된다는 것이다. However, the ultimate result of this operation is that each of the sub-key (K1 to K16) is represented by a list may be, designed to select a specifically substituted in the 48-bit obtained from the KEY considered as a separate function of the KEY. 56 KEY 비트 각각은 16개의 서브키 중 대략 14개로 다른 위치 장소에서 사용된다. KEY 56 bits each of which is used in other places where approximately 14 of the 16 sub-keys dogs. 예로서, DES 키 스케줄 함수 KS에 의해 형성된 서브 키K1는 For example, the sub-key K1 which is formed by the DES key schedule function KS is

Figure 112008044362517-PCT00003

이고, 여기서 숫자가 KEY로부터 선택된 비트를 표현하고 서브키는 각 6비트의 8 그룹으로 구성된다. , Wherein the number represented by the bits selected from the KEY and the sub-key is composed of 8 groups of 6 bits each.

16 DES 라운드는 페이스텔 구조를 갖고, 그 구조에서 64비트 메시지 블럭이 2개("좌측" 및 "우측")의 절반 블럭으로 분할되고 크리스-크로스 체계 16 DES round face Tel has the structure, a 64-bit message block from the structure is divided into a half-block of the two ( "left" and "right"), Chris Cross system

Figure 112008044362517-PCT00004
Figure 112008044362517-PCT00005
로 연속적인 라운드에서 대안적으로 처리된다. To be an alternative treatment in successive rounds. 복호화 체계가 비슷하다. The decoding system is similar. 도 1에 볼 수 있듯이, DES 라운드에 대한 암호 함수f(R, K)은 다음 것들의 결합이고, (1) 32비트의 절반 블럭R i -1 을 얻고 48비트 출력을 생성하는 확장 함수E; As shown in Figure 1, a cryptographic function f (R, K) are combined in the following ones of the DES rounds, (1) extension function to obtain a 32-bit half block R i -1 to generate the 48-bit output E; (2) 라운드에서 48비트로 확장된 출력을 48비트 서브키K i 와 결합하기 위해 비트 단위의 XOR 연산 (2) XOR operation of the bit-to combine the 48-bit extended output in the 48-bit sub-keys K i Round
Figure 112008044362517-PCT00006
을 사용하는 키-믹싱 함수; Keys for a - mixing function; (3) 8개의 4비트 출력 세트를 얻기 위해 48비트 키-믹스된 출력을 얻고, 그것을 8개의 6비트 조각으로 분할하고 그 조각을 8개의 선택 테이블 또는 S-박스(S 1 내지 S 8 )를 각기 번지 지정하는 입력으로서 적용하는 비선형 대체 변환; 3, eight 4-bit to obtain the output set of the 48-bit key - to obtain a mixed output, it eight 6-bit slices and divided into eight selection table or S- boxes for the piece (S 1 to S 8) alternative non-linear transformation to each applied as an input for specifying address; 및 (4) S-박스로부터 32개의 출력 비트를 재배열하는 치환 함수P. And (4) growing a 32-bit output from the thermal load S- box substitution function P.

각 DES S-박스(S 1 내지 S 8 )는 FIPS PUB 46-3에서 설명했듯이 6비트 입력을 4비트 출력으로 관련시키는 함수이다. Each DES S- boxes (S 1 to S 8) is a function that associates the 6-bit input, as described in FIPS PUB 46-3 as a 4-bit output. 6비트 그룹이 각 S-박스에 들어가고 64개의 4비트 엔트리 중 하나를 선택한다. The 6-bit groups into each box S- selects one of 64 four-bit entries. 본 발명의 방법은 각 S-박스로부터 64개 모두의 확률이 액세스되는 것을 확정한다. The method of the present invention confirmed that the probability of all 64 accessible from the respective S- box. 그것을 행하기 위해, 64개의 마스크를 포함하는 마스킹 테이블이 구성된다. In order to it, the masking table containing a 64 mask is composed. 테이블의 각 마스크가 8 바이트 폭이고, 그 중 48 비트가 마스킹 연산용으로 사용되고 나머지 16비트(예를 들어, 바이트로는 2개)는 (a) DES 키의 페리티 규칙을 적용함에 의해 계산될 수 있는 8 페리티 비트(또는 나머지의 에러 확인 비트), 및 (b) S-박스가 하나 이상의 나머지 라운드에 없다면, 임의로 선택될 수 있거나 그들을 48 비트와 같은 메카니즘으로 공제함에 의해 계산될 수 있는 추가 비트로 될 수 있다. And each mask in the table is 8 bytes wide, being used for those of the 48-bit masking operation the remaining 16 bits (as, for example, byte 2) is to be calculated by applying a parity rule for the DES key (a) 8 parity bits (or error check of the remaining bits), and (b) a mechanism, such is not in one or more of the remaining rounds S- box, or may arbitrarily be selected and those 48 bits that can be added can be calculated by subtraction as in bits can be. 마스킹용으로 사용된 48 비트가 0 내지 63 범위의 8개의 6비트값 세트를 형성한다. The 48 bits used for the mask to form the eight 6-bit value set in a range from 0 to 63. 그 세트 내의 각 8개의 6비트 값이 8개의 S-박스(S 1 내지 S 8 )중 다른 것에 대응한다. It corresponds to each of eight six-bit value in the set of the eight different S- boxes (S 1 to S 8). (주석: 더미 마스크로부터 트루 마스크의 고유성을 숨기기 위해 및 사용되는 더미 값을 숨기기 위해, 8개 값을 형성하는 마스크 비트가 마스크로부터 연속 또는 오르는 순서로 추출될 필요가 없다. 예를 들어, 라운드 1에 대해 그것과 같이 키 스케줄 중 하나를 사용하여, 그 값을 각 마스크로부터 얻는다. 그런 후, 비트 10, 51, 34, 60, 49, 및 17는 사용되어 S-박스 S 1 에 대응하는 마스크값을 얻는다.) (Note: it is not necessary to mask the dummy value to hide the uniqueness of the true mask from the dummy mask and using a mask bit to form the 8 values ​​are to be extracted as a continuous or rising order from the mask, for example, Round 1 choosing one of the key schedule as that for the, to obtain a value from each of the mask. then, the bit 10, 51, 34, 60, 49, and 17 are used a mask value corresponding to the boxes S 1 S- to obtain a.)

가장 단순한 마스킹 테이블이 다음과 같은 데, 여기서, 컬럼(S1 내지 S8)이 각 마스크에 대해 S-박스에 할당되는 추출된 6비트 값을 십진법으로 나타낸다. Having the simplest mask table such as the following, where the column (S1 to S8) represents a 6-bit value that is assigned to the extracted S- boxes for each mask in decimal.

Figure 112008044362517-PCT00007

여기서, 테이블의 각 라인이 8개의 동일 값을 포함한다. Here, each line of the table contains eight equal value. 그러나, 설정된 컬럼에서 0 내지 63의 모든 가능한 값이 한번 및 오직 한번 나타나면, 나머지 마스킹 테이블이 구성될 수 있다. However, If the all of the possible values ​​of 0 to 63 once and only once in the predetermined column, the remaining masking may be a configuration table. 그렇지 않으면 각 컬럼에서 그 값에 대해 임의의 순서가 있다. Otherwise, the random sequence for that value in each column. 일반적으로, 마스크[0]과 같은 마스크 중 하나는 모두 0 값을 포함하고 "트루" 마스크로서 지정된다. In general, it is one of the mask, such as mask [0] are all contain zero values ​​designated as "true" mask.

글로벌 마스킹 방법을 사용하는 암호 연산 동안, 재구성된 마스크 테이블로부터의 모든 마스크가 다르게 변형안된 암호 알고리즘을 개시하기 전에 암호 키 모두에 적용된다. During cryptographic operations using the global masking method it is applied to all the cipher key prior to the start of deformation untested encryption algorithm different from that of any mask from the reconstructed mask table. 대체적으로 암호 알고리즘은 전체 암호의 각 루프에 대해 다른 마스크된 키를 사용해서 여러번 루프할 수 있다. Alternatively, the cryptographic algorithm may loop using another mask key for each full loop of the password several times. 마스크된 키 중 하나가 트루 키이고, 트루 라운드 서브키를 암호 알고리즘의 일부로서 발생시키고, 여기서 모든 다른 마스크된 키가 더미 서브키를 발생시키고 더미 결과를 얻는 더미 키이다. Is one of the masked key is true key, generates a true round sub key as part of the encryption algorithm, in which a dummy key is any other key mask generates a dummy sub-key to get the result of a pile. 그 0 값은 단일 마스크로 할당되어, 그 마스크의 사용시 트루 결과를 갖도록 한다. The value of 0 is assigned to a single mask, to have a true result of using the mask.

인사이드 마스킹 방법을 사용하는 암호 연산 동안, 기구성된 마스크 테이블로부터의 모든 마스크가 모든 라운드에서 모든 S-박스의 입력에 적용된다. During cryptographic operations using the inside masking method, all of the mask from a mask table configured group it is applied to the input of all the S- boxes in all rounds. 도 2는 제 1암호 라운드 동안 마스크[15]와 같은 64개 마스크 중 대표적인 하나를 제 1 S- 박스S 1 에 적용하는 예시적인 예를 도시한다. 2 shows an illustrative example of applying an exemplary one of the 64 masks such as a mask, [15] during the first encryption round on the first S- boxes S 1. 그것은 인사이드 마스킹의 구현 시 암호 알고리즘의 인사이드에 이루어진 변형을 예시한다. It illustrates a modification made to the inside of the encryption algorithm, the implementation of the masking inside. 그 마스크를 나머지 S-박스(S 2 내지 S 8 )에 적용하는 것은 나머지 마스크의 적용에서처럼 및 또한 연속 라운드에서 비슷하다. The application of the mask to the remaining boxes S- (S 2 to S 8), as in the application of the rest of the mask, and also is similar to the continuous rounds. 인사이드 마스킹을 사용하는 각 라운드에서, 처리는 트루 마스크를 포함하는 모든 마스크를 서브키 및 데이터에 적용하기 위해 64회 루프시킨다. In each round using the mask inside, and the process then loops 64 times in order to apply all of the mask comprising a true mask to the sub-key and data. 그 마스크는, 각 마스크가 어느 라운드에서 정확하게 한번 사용되고 트루 마스크가 암호화 엔진에 공지되면, 각 라운드에서 달라질 수 있는 어떤 순서, 예를 들어 임의 순서로 적용된다. The mask is, as each mask is used exactly once in any round is true mask known to the encryption engine and in what order, which can vary in each round, for example be applied in any order. 즉, 마스크 테이블의 임의 액세스가 사용될 수 있다. That is, it can be used to access any of the mask table. 트루 마스크의 고유성은, 처리가 마스크 세트를 통해 루프될 때, 지수와 비교되기 위해 레지스터에 저장될 수 있다. The uniqueness of the mask is true, the process to loop through a mask set, may be stored in a register to be compared with the index. 모든 64개 마스크가 인가될 때서야 8개의 S-박스로부터 출력된 트루 결과가 예를 들어, 레지스터 또는 메모리에 보유된 후, 그 트루 결과가 암호화 알고리즘에서 다음 단계로 통과된다. I ttaeseo be applied to all 64 mask the true result output from the eight S- boxes for example, and then held in the register or memory, that result is true passed from the encryption algorithm to the next step. DES 치환 함수P는 S-박스 출력으로부터의 트루 결과의 저장과 동시에 적용될 수 있다. DES substitution function P may be applied simultaneously with the storage of the results from the true S- box output. 원한다면, 폴스 결과가 더미 메모리 위치 장소에서 또한 유지될 수 있고, 가능하게는 또한 치환되나, 암호화에서 다음 라운드에 반드시 통과될 필요는 없다. If desired, and the Falls result can be also maintained in the dummy memory location place, but possibly also replaced, it is not necessarily encrypted in the passage to the next round.

8개의 S-박스에 대한 입력은, (1) DES 확장 함수E로부터 얻어지는 확장된 데이터 블럭 DATA; 8 inputs for S- box is, (1) DES extension function expanded data block obtained from the E DATA; (2) 특정한 라운드에 대한 DES 서브키, 본원에서는 서브키K1; 2, the sub-key DES, the present for the particular round sub key K1; 및 (3) 적용되는 특정한 마스크, 본원에서는 마스크[15]를 포함한다. And (3) the specific mask, herein is applied and a mask [15]. 일반적으로 DES에서, 확장된 데이터 블럭 DATA로부터의 비트가 8개의 S-박스에 연속해서 할당되는 데, 즉, S 1 에 대해서는 비트1-6, S 2 에 대해서는 비트7-12, 등이다. In general, a DES, a bit from the extended data block DATA to be allocated in a row in the eight S- boxes, that is, with respect to 1 bit for the S 1-6, S 7-9 2-bit, and so on. 서브키K1에 대한 비트는, 연속 라운드에 대한 나머지 서브키와 마찬가지로 서브키K1 자체가 메인 키KEY로부터의 비트 선택 및 재배열이라는 것으로 기억하는 것을 제외하고는, 8개의 S-박스에 마찬가지로 연속 할당되는 데, S 1 에 대해서는 K1의 비트1-6, S 2 에 대해서는 K1의 비트7-12, 등이다. Bits, and is assigned a row similarly to the eight S- box except for the memory as in the remaining sub-keys for the continuous round sub key K1 that of itself, the bit selection and rearrangement from the main key KEY for the sub key K1 It is to be used, as for the S 1 for bits 1-6, S 2 of the bits of K1 K1 7-12, and so on. 테이블에서 나머지 마스크와 또한 마찬가지로 마스크[15]로부터의 특정한 비트는 이미 상기에서 설명했듯이 그 값을 각 S-박스에 대해 적용되도록 추출하기 위해 선택 및 정렬된다. In the table from the rest of the mask also, like certain bits from a mask [15] is already selected and aligned in order to extract such that, as described in the application for the values ​​in each box S-. 그러므로, 제 1 S-박스S 1 에 대해, 10 th , 51 st , 34 th , 60 th , 49 th , 및 17 th 비트는 마스크[15]로부터 추출될 수 있어서 S 1 에 대해 적용되도록 값 마스크[15] s1 을 얻는다. Therefore, the 1 S- boxes for the S 1, 10 th, 51 st , 34 th, 60 th, 49 th, and 17 th bits are mask values so that it is possible to be extracted from a mask [15] applied to the S 1 [ 15] is obtained by s1. 그 값은 101010(또는 십진수 42)으로 본원에서 예시된다. The value is exemplified herein to 101010 (or a decimal number 42).

비트 그룹 각각은 도 2에서 Groups of bits each of which in Figure 2

Figure 112008044362517-PCT00008
로 심벌화된 비트 단위의 XOR 연산을 사용해서 나머지와 결합된다. Using the symbols XOR operation of the bit-by screen to be combined with the rest. 마스크가 서브키에 우선 적용되는 것으로 도시된 후, 최종 마스크된 키가 데이터에 적용된다. After the mask is to be applied to the first sub-key illustrated, the key is applied to the final mask data. 그러나, 비트 단위의 XOR 연산이 상호적이고 결합하기 쉬우므로, 그것은 3개의 그룹(마스크, 서브키, 및 데이터)에 순서대로 실제 적용될 수 있고 또한 같은 S-박스 입력을 얻는다. However, since the XOR operation on a bit unit and is easy to cross-coupling, it actually can be applied sequentially to the three groups (the mask, the sub-key, and data) and also obtains the same S- box input. 정말로, 그 연산을 외부 관찰자에게 더 모호하게 하기 위해 다른 S-박스, 마스크, 및 라운드에 대한 적용 순서를 변화시키는 것이 유리하다. Indeed, it is advantageous to change the order of application of the different S- boxes, mask, and for that round operations to further obscure to an outside observer.

상기에서 알 수 있듯이, 본 발명의 마스킹 처리는 DES 및 그 변형을 제외한 암호에 적용될 수 있다. It will be appreciated from the above, the masking process of the present invention can be applied to the password other than the DES and its modification. 예를 들어, 차세대 암호화 표준(AES)으로 채용되고 NIST FIPS PUB 197에서 발간된 라인달(Rijndael)은 S-박스를 8 비트 입력 및 출력으로써 사용한다. For example, it adopted as the next generation encryption standard (AES) and the line month (Rijndael) published by the NIST FIPS PUB 197 uses S- box by an 8-bit input and output. 256(=2 8 )개의 다른 마스크의 마스크 테이블이 구성되어 그 암호의 AddRoundKey( ) 변환의 일부로서 적용된다. 256 (= 2 8) is a mask table for different mask structure is applied as a part of the AddRoundKey () of the password conversion. 많은 다른 암호 알고리즘은 S-박스 또는 비슷한 대체 테이블을 사용하고, 그 S-박스의 입력 사이드상에 키 믹싱 연산을 제공한다. Many different encryption algorithms using the S- box or a similar replacement table, and provides a key mixing operation on an input side of the S- box. DES로 본원에서 설명된 바와 같은 결정적 마스킹은 그런 암호에 적용가능하다. Critical masking, such as DES described herein is applicable to such a password.

도 3을 참조해서, 본 발명의 글로벌 마스킹 구현을 실행하는 예시적인 하드웨어가 볼 수 있다. With reference to FIG. 3, an exemplary hardware running global masking embodiment of the invention can be seen. 메모리(31)는 마스크된 키를 포함하면서 데이터용 판독/기록 저장이다. Memory 31 is included with a mask key, for reading data / write storage. 임의 번호 발생기(32)는 마스크 테이블의 라인을 액세스하는 임의 지수i를 포함하면서 다른 유닛으로 사용되는 임의 번호를 발생시킨다. A random number generator 32 generates a random number that is used by other units and include any index i to access a line of the mask table. 본 기술에 공지된 적합한 발생기가 사용될 수 있다. There is a suitable generator known in the art may be used. 마스크 테이블 발생 유닛(33)은 마스크 테이블의 엔트리를 발생하고 그들을 메모리(31)에 기록한다. Mask table generation unit 33 generates an entry in the mask table, and record them in the memory 31. 연산 시퀀서(34)는 명령을 나머지 유닛에 보내어 그 동작을 시퀀스시킨다. Operation sequencer 34 sends a command to the rest of the unit thereby sequence the operation thereof. DES 알고리즘의 각 루프동안, 키 마스킹 유닛(35)이 메모리(31)로부터 ("트루") 암호 키를 판독하고, 그것을 메모리(31)에 저장된 마스크 테이블로부터의 하나의 엔트리로 마스크하고, 그 마스크된 키를 메모리(31)로 기록한다. For each loop of the DES algorithm, keys, and the masking unit 35 is read out from the memory 31 ( "true"), the encryption key, and masks it with a single entry from a mask table stored in the memory 31, that mask It writes the key into the memory 31. DES 계산 유닛(37)은 메모리(31)로부터 마스크된 키 및 입력 데이터(평문 또는 암호문 메시지 블럭)를 판독하고, 마스크된 키로부터 서브키를 발생하면서 마스크된 키를 사용해서 DES 암호 알고리즘을 실행하고, 그 결과를 출력 데이터로서 메모리(31)로 재기록한다. DES calculation unit 37 and executes the key and the input data (plain text or cipher-text message block), the reading and, DES encryption algorithm using the masked key and generate a sub-key from the key the mask from the memory 31 and rewriting the result as output data to the memory 31. 그 결과를 저장하는 데 사용된 메모리 위치 장소는 마스크된 키가 트루 키 또는 더미 키인지에 따라 다르다. As a result, the memory location the place used to store differs depending on whether the mask key is true keys or dummy keys.

도 4를 참조해서, 본 발명의 인사이드 마스킹 구현예를 실행하는 예시적인 하드웨어가 볼 수 있다. With reference to Fig. 4, an exemplary hardware implementation of running inside the masking of the present invention it is viewed. 글로벌 마스킹 하드웨어 구현과 같이, 그 인사이드 마스킹 구현예도 메모리(41), 임의 번호 발생기(42) 및 마스크 테이블 발생 유닛(43)을 포함하고, 그것의 기본 함수 모두가 글로벌 마스킹 하드웨어에서 대응하는 유닛(31-33)과 실제로 같다. As the global masking hardware implementation, the inside masking implementation examples memory 41, a random number generator 42 and the mask includes a table generation unit 43, and all of its primary function unit (31, corresponding in the global masking hardware In fact as -33). 연산 시퀀서(44)가 명령을 나머지 유닛에 마찬가지로 보내서 그 동작을 시퀀스하나, 인사이드 마스킹 시퀀스는 글로벌 마스킹 시퀀스와 다르다. Operations sequencer (44) is sent, like the rest of the command unit a sequence of the operation, the inside masking sequence is different from the global masking sequence. 그 하드웨어 구현예는 DES 초기 계산 유닛(45), 라운드 서브키 마스킹 유닛(46), DES 라운드 계산 유닛(47), 및 DES 최종 계산 유닛(48)을 더 포함한다. That is hardware implementation further comprises a DES initial calculation unit 45, a round sub key masking unit (46), round DES calculation unit 47, and the DES final calculation unit 48. DES 초기 계산 유닛(45)은 DES 프리-라운드(pre-round) 계산을 수행한다. DES initial calculation unit 45 is DES pre-performs the round (pre-round) calculation. 특히, 그것은 메모리(41)로부터 입력 데이터(처리되는 평문 또는 암호문 메시지 블럭)를 판독하고, 제 1라운드 전에 DES의 초기 처리 단계(DES-X 또는 유사 변형으로부터의 키 화이트닝을 포함하는)를 수행하고, 그 단계 결과를 메모리(41)에 재기록한다. Specifically, it perform (including a key whitening from the DES-X, or similar variants) reads the memory input data from the 41 (processing plaintext or cipher text message blocks), and claim 1 DES initial processing step prior rounds and , rewrites the step results in the memory 41. 또한, 유닛(45)은 메모리(41)로부터 트루 암호 키를 판독하고, 정의된 DES 키 발생 루틴에 따라 라운드 서브키 세트를 발생시키고 라운드 서브키를 메모리(41)로 재저장한다. Further, the unit 45 stores the re-reading the true cryptographic key, and generates a round sub key set according to the defined DES key generation routine, the round sub key from memory 41 to memory 41. 대안적으로, 서브키의 발생은 DES 라운드 계산 유닛(47)에 의해 라운드 단위를 기본으로 수행될 수 있었다. Alternatively, the generation of sub-keys could be carried out in a basic unit of a round by round DES calculation unit 47. 어떤 경우에, 라운드 서브키가 라운드 서브키 마스킹 유닛(46)에 의해 마스크되어, 메모리(41)로부터 대응하는 서브키를 판독하고, 그것을 라운드의 각 루프에서 메모리(41)로부터의 마스크 테이블의 하나의 엔트리로 마스 크하고, 그 마스크된 서브키를 메모리(41)로 기록한다. In some cases, the round sub key, of the round sub key is masked by a masking unit 46, reads the sub-key corresponding to from memory 41, one that of the mask table from the memory 41 in each loop of round in the mask entry, and records that the sub-key mask in the memory 41. DES 라운드 계산 유닛(47)은 그 라운드에서 입력 데이터 및 DES 라운드의 설정된 루프용으로 마스크된 서브키를 메모리(41)로부터 판독하고, 라운드 계산을 수행하고 그 결과를 메모리(41)로 재기록한다. DES round calculation unit 47 reads the mask sub-key for a set loop of the input data and the DES round in the round from the memory 41, and performs a round-calculation and rewriting the result in the memory 41. 라운드의 그 루프 결과를 저장하는 메모리 위치 장소는 마스크된 서브키가 그 라운드에서 트루 서브키 또는 더미 서브키인지에 따라 다르다. A memory location for storing the location result of the round loop is different depending on whether the mask sub-key from the true sub that round key or a dummy sub-key. 라운드 서브키의 모든 마스킹이 사용될 때까지 각 DES 라운드는 여러번 루프한다. Each DES round until all of the masked round sub key used is a loop several times. 그 데이터는 다음 라운드에서 메모리(41)로부터 액세스된 데이터 입력에 트루 서브키를 적용하게 된다. The data is then applied to a true sub-keys in the data entry access from the memory 41 in the next round. DES 최종 계산 유닛(48)은 최종 라운드 결과를 메모리(41)로부터 판독하고, DES 포스트-라운드(post-round) 계산을 수행하고 그 결과(완전히 처리된 메시지 블럭)를 메모리(41)로 재기록한다. DES final calculation unit 48 reads the final round of the results from the memory 41 and, DES post-performs round (post-round) calculation and rewriting the result (fully processed message block) in memory 41 .

상기 예에 도시된 처리 유닛은 마스킹 유닛(36 및 46)을 제외하고는 DES 또는 기타의 암호 알고리즘으로 공지된 종래의 구성요소이다. The processing unit shown in the example, and is a conventional component that is well known in the encryption algorithm of the DES or other except for the masking unit (36 and 46). 메모리(31 및 41)는 마스크 테이블의 엔트리를 저장하고, 트루 및 더미 키 모두 또는 서브키를 저장하고, 트루 및 더미 데이터 처리 결과 모두를 저장하기 위해 배분된 위치 장소이다. Memory (31 and 41) is a position location allocated for the storage of all the storage entries in the mask table, and storing the true and dummy keys or all the sub-key, and true and the dummy data processing result. 마스킹 유닛(36 및 46)은 트루 및 더미 키 또는 서브키를 발생시키기 위해 마스크 테이블 엔트리를 사용해서 키 또는 라운드 서브키상에서 비트 단위의 XOR 또는 기타의 논리 결합 또는 산술 연산을 수행한다. A masking unit (36 and 46) performs a true and a dummy key, or by using a mask table entry to generate the sub-keys or round XOR or other logical combination of the bit unit on the sub key or arithmetic operations.

상기 설명된 예에서의 변형이 쉽게 구성되고 다른 암호해독 적용에서 채용된다. The strain in the above-described example is easy configuration is employed in another application decryption. 예를 들어, 라운드 데이터 결과에 대해 트루 및 더미 어드레스를 지정할 때 알맞고 신속한 프로세서 및 케어(care)에 의해, 본 발명에 따른 글로벌 및 인사이드 마스킹 방법은 인사이드 마스킹을 대응하는 라운드 키 세트에 적용하는 암호 키로서 취급된 글로벌 기술로부터 발생된 트루 및 더미 키와 결합해서 모두 사용될 수 있었다. For example, the cryptographic key suited by the fast processors and care (care) to specify the true and the dummy address, global and inside the masking method according to the invention is applied to the round key set corresponding to the inside masking for round data results in conjunction with a true and a dummy key generated from the global technique it could be used both as a handle.

Claims (13)

  1. 암호화 보호 방법으로서, As cryptographic protection method,
    트루 마스크를 포함하면서 복수의 마스크를 갖는 마스킹 테이블을 구성하는 단계와; Constructing a mask table with a plurality of masks, containing a true mask;
    암호화 알고리즘의 다수의 루프에서 사용하기 위해 하나의 트루 키 및 복수의 더미 키를 포함하면서 마스크된 키를 발생시키기 위해 마스킹 테이블의 마스크 모두를 암호 키로 적용하는 단계와; Applying an encryption key to all of the mask masking table to generate a masked key and including a true key and a plurality of dummy keys to use in a number of loops of the encryption algorithm, and;
    처리된 메시지 데이터 결과를 얻기 위해 암호 알고리즘의 다수의 루프를 입력 메시지 데이터상에서 실행하는 단계 - 마스크된 모든 키가 한번 사용될 때까지 암호 알고리즘의 각 루프는 마스크된 키 중 다른 하나를 사용해서 실행되고, 트루 키를 사용하는 암호 알고리즘의 루프 실행이 트루 메시지 데이터 결과를 생성하는 반면에 더미 키를 사용하는 암호 알고리즘의 루프 실행이 더미 메시지 데이터 결과를 생성하고 - 와; Executing a plurality of loops of the encryption algorithm on the input message data to obtain the message data processing results for each loop of the encryption algorithm until all of the masked key is used once is executed using another one of the masked key, loop execution of the cipher algorithm using the true key, the loop execution of the cipher algorithm using the dummy key, while generating a true result message data to create a dummy message data and results-as;
    상기 트루 메시지 데이터 결과를 제 1 메모리 위치 장소에 저장하고 더미 메시지 데이터 결과를 하나 이상의 제 2 메모리 위치 장소에 저장하는 단계를 구비하는 암호화 보호 방법. Cryptographic protection method of storing the true message data resulting in the first memory location and place having the step of storing dummy data message results in one or more second memory locations place.
  2. 제1항에 있어서, According to claim 1,
    상기 마스킹 테이블로부터 마스크가 임의 순서로 적용되는 암호화 보호 방 법. Cryptographic protection method is that the mask from the masking table applied in any order.
  3. 제1항에 있어서, According to claim 1,
    상기 마스킹 테이블의 마스크를 암호 키에 적용하는 단계가 비트 단위의 XOR 연산을 포함하고, 상기 마스크가 모두 제로로 되는 트루 키를 발생하는 암호화 보호 방법. The step of applying the mask of the masked tables in the encryption key includes an XOR operation of the bit unit, the encryption protection method of the mask occurs, a true key to all zeros.
  4. 제1항에 있어서, According to claim 1,
    암호 알고리즘의 루프 실행시, 라운드 서브키 세트가 암호 알고리즘의 루프에 대해 사용된 상기 마스크된 키로부터 발생되고, 상기 트루 키가 암호 알고리즘의 하나의 루프의 라운드에서 메시지 데이터에 적용되는 트루 라운드 서브키 세트를 발생시켜서 상기 트루 메시지 데이터 결과를 생성하고, 상기 복수의 더미 키가 암호 알고리즘의 각 루프의 라운드에서 메시지 데이터에 적용되는 대응하는 더미 라운드 서브키 세트를 발생시켜서 더미 메시지 데이터 결과를 생성하는 암호화 보호 방법. Loop execution of the encryption algorithm, the round sub key set is generated from the key of said mask used for the loop of the encryption algorithm, true-round sub said true key has been applied to the message data in a loop round of the encryption algorithm key encryption by generating a set of generating the true message data results, and generates the dummy message data results by the plurality of dummy key generates a dummy round sub key set corresponding to that applied to the message data of each loop of the encryption algorithm rounds how to protect.
  5. 제1항에 있어서, According to claim 1,
    상기 암호 알고리즘은 하나 이상의 키-믹싱 연산 및 하나 이상의 대체(S-박스) 연산을 포함하는 암호화 보호 방법. The cryptographic algorithm includes one or more key-encryption protection method including the mixing operation and replace at least one (S- box) operation.
  6. 제1항에 있어서, According to claim 1,
    상기 암호 알고리즘은 DES 변형을 포함하는 암호화 보호 방법. Cryptographic protection method for the cipher algorithm includes DES strain.
  7. 암호화 보호 방법으로서, As cryptographic protection method,
    트루 마스크를 포함하면서 복수의 마스크를 갖는 마스킹 테이블을 구성하는 단계와; Constructing a mask table with a plurality of masks, containing a true mask;
    암호의 각 라운드동안, 키-믹싱 연산을 마스크하기 위해 그 라운드에 대한 상기 키-믹싱 연산의 일부로서 마스킹 테이블의 마스크 모두를 서브키 및 데이터 블럭에 적용하는 단계 - 여기서, 상기 트루 마스크를 서브키 및 데이터 블럭에 적용하는 단계가 키-믹싱 연산에서 서브키 및 데이터 블럭의 그것과 견줄 것 없이 동일한 결과를 얻고, 키-믹싱 연산에서 복수의 마스크 모두를 적용하는 단계는 암호용으로 모든 가능한 S-박스 입력값을 얻고 - 와; For each of the encryption round, the key-step of applying all mask for masking table in the sub-key and a data block as part of the mixing operation - the key for that round in order to mask the mixing operation wherein the true mask subkeys and the step of applying the block key data-mixing operation to obtain the same result without comparable to that of the sub-key and a data block, the key-step of applying the plurality of masks in all mixing operations are for all the possible password S- to obtain a box input values ​​and;
    암호의 S-박스 또는 대체 테이블의 입력에 상기 마스크된 키-믹싱 연산 결과를 적용하는 단계와; The mask in the S- or box type of substitution table of the encryption key-step the application of the mixing operation and the result;
    모든 라운드가 완료될 때까지, 상기 트루 마스크를 적용하는 결과를 사용하면서 암호의 다음 단계를 진행하는 단계를 포함하는 암호화 보호 방법. Until all rounds are completed, the encryption protection method, using the results of applying the true mask comprising proceed to the next step in the password.
  8. 제7항에 있어서, The method of claim 7,
    상기 마스킹 테이블은 트루 마스크, 및 어떤 라운드에서 서브키에 적용시 그 서브키의 최소 비트를 유효하게 블라인드시키는 복수의 더미 마스크를 포함하고, 상기 블라인딩은 암호용 S-박스 입력값의 모든 가능한 결합을 상기 트루 마스크와 함께 생성하는 암호화 보호 방법. Masking the mask table is true, and when applied to the sub-key in one round, a plurality of dummy mask to effectively blind the minimum number of bits of the sub-key, and the blinding of all possible values ​​for the password input box S- cryptographic protection method for generating a mask with the true bond.
  9. 제7항에 있어서, The method of claim 7,
    어떤 암호 라운드의 마스크, 서브키, 및 데이터 블럭은 특정한 S-박스에 분리해서 할당된 복수의 n-비트 블럭으로 세분되고, 상기 마스크 테이블은 2 n 마스크를 포함하고, 2 n 의 가능한 n-비트값이 마스크에 대해 분리해서 할당된 블럭에서 한번 및 오직 한번 발생하는 암호화 보호 방법. Mask of any encryption round sub key, and a data block is subdivided into a plurality of n- bit block is assigned to be isolated to a particular S- box, the mask table comprises a mask 2 n and 2 n possible bits of the n- cryptographic protection method from the value that is assigned separately from the mask block once and only once generated.
  10. 제9항에 있어서, 10. The method of claim 9,
    특정한 S-박스 입력에 할당된 n-비트값이 상기 마스크로부터 비트의 기설정된 선택 및 순서에 의해 설정된 마스크로부터 추출되는 암호화 보호 방법. Cryptographic protection methods and n- bit value assigned to a particular S- box input is extracted from a mask is set by the choice and order of the predetermined bit from the mask.
  11. 제9항에 있어서, 10. The method of claim 9,
    어떤 암호 라운드에서 분리해서 마스크, 서브키, 및 데이터 블럭의 할당된 블럭이 S-박스 입력을 형성하여 암호의 S-박스 테이블을 구별하는 암호화 보호 방법. To be isolated in any password round mask, the sub-key, and encryption protection method of the allocated block of data blocks distinguish S- box table of the password to form a S- box input.
  12. 제7항에 있어서, The method of claim 7,
    키-믹싱 연산의 일부로서 마스킹 테이블을 서브키 및 데이터 블럭에 적용하는 단계가 비트 단위의 XOR 연산을 포함하고, 상기 트루 마스크가 제로값 세트를 포함하는 암호화 보호 방법. Key-encryption method for protecting a part of the mixing operation the step of applying a masking table in the sub-key and a data block containing an XOR operation of the bit-wise, and includes the true-zero mask value set.
  13. 제7항에 있어서, The method of claim 7,
    상기 마스킹 테이블의 각 마스크가 액세스되고 한번 및 라운드당 한번만 키 믹싱 연산에서 적용되고, 상기 트루 마스크가 암호에 식별가능하게 되는 암호화 보호 방법. That each mask of the masked tables is accessed and applied in one operation round and the mixing once per key, wherein the encryption protection mask is true that it is possible to identify the password.
KR1020087015072A 2005-11-21 2006-11-21 Encryption protection method KR20080073345A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR05/11768 2005-11-21
FR0511768A FR2893796B1 (en) 2005-11-21 2005-11-21 Process for encryption protection
US11/358,979 2006-02-22
US11/358,979 US7848515B2 (en) 2005-11-21 2006-02-22 Encryption protection method

Publications (1)

Publication Number Publication Date
KR20080073345A true KR20080073345A (en) 2008-08-08



Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087015072A KR20080073345A (en) 2005-11-21 2006-11-21 Encryption protection method

Country Status (8)

Country Link
US (1) US7848515B2 (en)
EP (1) EP1955465A4 (en)
JP (1) JP4990908B2 (en)
KR (1) KR20080073345A (en)
CN (1) CN101371480B (en)
FR (1) FR2893796B1 (en)
TW (1) TWI418197B (en)
WO (1) WO2007102898A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101334040B1 (en) * 2010-01-20 2013-11-28 한국전자통신연구원 Method and apparatus for providing masking operations in encryption system
KR101401382B1 (en) * 2011-12-15 2014-06-02 한국전자통신연구원 Method and apparatus for providing side channel analysis in distributed system
KR101687492B1 (en) * 2015-08-06 2016-12-16 주식회사 엘지씨엔에스 Storing method of data dispersively and credential processing unit

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2893796B1 (en) 2005-11-21 2008-01-04 Atmel Corp Process for encryption protection
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
FR2924262B1 (en) * 2007-11-26 2009-12-11 Sagem Securite Process for masking passage end of life of an electronic device and a corresponding device having control module
US8473751B2 (en) * 2007-12-13 2013-06-25 Oberthur Technologies Method for cryptographic data processing, particularly using an S box, and related device and software
US20100027781A1 (en) * 2007-12-20 2010-02-04 Galbi Duane E Method and apparatus for enhancing performance of data encryption standard (des) encryption/decryption
MX2010010864A (en) * 2008-04-10 2010-11-05 Sca Hygiene Prod Ab Paper towel dispenser.
DE102008023912A1 (en) * 2008-05-16 2009-11-19 Siemens Aktiengesellschaft A method and memory device for providing a cryptographic key
FR2935503A1 (en) * 2008-08-28 2010-03-05 St Microelectronics Rousset Protecting a cipher
US9653004B2 (en) * 2008-10-16 2017-05-16 Cypress Semiconductor Corporation Systems and methods for downloading code and data into a secure non-volatile memory
US8094816B2 (en) * 2008-10-21 2012-01-10 Apple Inc. System and method for stream/block cipher with internal random states
FR2941343B1 (en) * 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst cryptography circuit including protects against attacks by observing information leaks through their encryption.
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US20100284537A1 (en) * 2009-05-07 2010-11-11 Horizon Semiconductors Ltd. Method for efficiently decoding a number of data channels
US8625802B2 (en) * 2010-06-16 2014-01-07 Porticor Ltd. Methods, devices, and media for secure key management in a non-secured, distributed, virtualized environment with applications to cloud-computing security and management
FR2952735B1 (en) * 2009-11-18 2011-12-09 St Microelectronics Rousset Method and device detection of attacks by fault injection
US8619985B2 (en) * 2010-04-27 2013-12-31 Research In Motion Limited Table splitting for cryptographic processes
DE102010028375A1 (en) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Method for protecting functional cryptographic operations against side channel attacks for cryptography system in car, involves performing non-functional cryptographic operations supplementary to functional cryptographic operations
GB2480296A (en) 2010-05-12 2011-11-16 Nds Ltd Processor with differential power analysis attack protection
CN101951314B (en) * 2010-10-12 2012-06-20 北京航空航天大学 Design method of S-box in symmetric password encryption
US8504845B2 (en) * 2011-03-30 2013-08-06 Apple Inc. Protecting states of a cryptographic process using group automorphisms
KR101601684B1 (en) * 2011-05-18 2016-03-09 한국전자통신연구원 Method for implementing symmetric key encryption algorithm against power analysis attacks
US8971526B2 (en) * 2011-07-26 2015-03-03 Crocus-Technology Sa Method of counter-measuring against side-channel attacks
WO2013028056A1 (en) * 2011-08-19 2013-02-28 Mimos Berhad Method and system for providing a secured internet protocol based communication
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
FR2984553B1 (en) 2011-12-15 2015-11-06 Proton World Int Nv Method and fault detection device
JP5612007B2 (en) * 2012-03-15 2014-10-22 株式会社東芝 Encryption key generation device
US9773111B2 (en) * 2012-08-14 2017-09-26 Empire Technology Development Llc Software-based side-channel attack prevention
US9503255B2 (en) * 2012-10-17 2016-11-22 Synopsys, Inc. Cryptographic sequencing system and method
US9143325B2 (en) 2012-12-14 2015-09-22 Microsoft Technology Licensing, Llc Masking with shared random bits
CN103888245A (en) * 2012-12-20 2014-06-25 北京握奇数据系统有限公司 S box randomized method and system for smart card
US10142099B2 (en) 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
US9754133B2 (en) * 2013-03-14 2017-09-05 Microchip Technology Incorporated Programmable device personalization
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
US9405919B2 (en) * 2014-03-11 2016-08-02 Qualcomm Incorporated Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers
KR20160025944A (en) 2014-08-28 2016-03-09 삼성전자주식회사 Endecryptor preventing side channel attack, driving method thereof and control device having the same
SG10201405852QA (en) 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
US9774443B2 (en) 2015-03-04 2017-09-26 Apple Inc. Computing key-schedules of the AES for use in white boxes
CN104734842B (en) * 2015-03-13 2018-06-08 上海交通大学 Against attacks based on pseudo-operated bypass circuit
CN104734845B (en) * 2015-03-25 2018-11-23 上海交通大学 Based on full bypass attack protection encryption algorithm pseudo operation
CN106161007A (en) * 2015-04-17 2016-11-23 上海华虹集成电路有限责任公司 Key loading method for resisting template attack in security chip
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
US10015009B2 (en) * 2015-11-25 2018-07-03 Nxp B.V. Protecting white-box feistel network implementation against fault attack
EP3220306B1 (en) 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
FR3048096A1 (en) * 2016-02-22 2017-08-25 Eshard A method of protecting a circuit against a side-channel analysis
EP3264397A1 (en) * 2016-06-28 2018-01-03 Eshard A protection method and device against a side-channel analysis
US10243937B2 (en) * 2016-07-08 2019-03-26 Nxp B.V. Equality check implemented with secret sharing
DE102017009315A1 (en) * 2017-10-06 2019-04-11 Sergej Gertje Protection of automation technology programs before reversal development
FR3074323A1 (en) * 2017-11-30 2019-05-31 Oberthur Technologies Method and device for cryptographic data processing

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028939A (en) 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
JP2002519722A (en) * 1998-06-03 2002-07-02 クリプターグラフィー リサーチ インコーポレイテッド For smart cards and other cryptographic systems, minimizes leakage, improved des and other cryptographic processes
JP3600454B2 (en) * 1998-08-20 2004-12-15 株式会社東芝 Encryption and decryption apparatus, encryption and decryption methods, and program storage medium
CA2252078C (en) 1998-10-28 2009-02-17 Certicom Corp. Power signature attack resistant cryptographic system
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
FI107487B (en) * 1999-03-08 2001-08-15 Nokia Mobile Phones Ltd Data Transmission encryption method for a radio system
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
CA2327911A1 (en) 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
FR2825542B1 (en) * 2001-05-31 2003-08-29 Sagem Method based on a block cipher algorithm repetition round and device implementing it
JP4596686B2 (en) * 2001-06-13 2010-12-08 富士通株式会社 Secure encryption for Dpa
JP2003018143A (en) * 2001-06-28 2003-01-17 Mitsubishi Electric Corp Information processor
US7142670B2 (en) 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US7043017B2 (en) * 2001-09-13 2006-05-09 Freescale Semiconductor, Inc. Key stream cipher device
US6754190B2 (en) 2001-10-17 2004-06-22 Motorola, Inc. Channel selection method used in a communication system
FR2831739B1 (en) * 2001-10-31 2005-07-22 Gemplus Card Int Implementation Method securisee a functional module, in an electronic component and corresponding component
US7194633B2 (en) 2001-11-14 2007-03-20 International Business Machines Corporation Device and method with reduced information leakage
FR2832739B1 (en) 2001-11-27 2004-02-13 Eads Launch Vehicles A method of making a multidirectional textile preform, means for its implementation and preform thus obtained
EP1510028A4 (en) * 2002-05-23 2008-01-23 Atmel Corp Advanced encryption standard (aes) hardware cryptographic engine
JP2004004341A (en) * 2002-05-31 2004-01-08 Toshiba Corp Apparatus and method for modulo exponentiation calculation, and program
US7685436B2 (en) 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
KR100800468B1 (en) * 2004-01-29 2008-02-01 삼성전자주식회사 Hardware cryptographic engine and method improving power consumption and operation speed
AT348456T (en) * 2004-04-16 2007-01-15 Research In Motion Ltd Security countermeasures against attacks from energy analyzes
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
FR2893796B1 (en) 2005-11-21 2008-01-04 Atmel Corp Process for encryption protection

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101334040B1 (en) * 2010-01-20 2013-11-28 한국전자통신연구원 Method and apparatus for providing masking operations in encryption system
US8681985B2 (en) 2010-01-20 2014-03-25 Electronics & Telecommunications Research Institute Masking operation method and device for symmetric key encrypted system
KR101401382B1 (en) * 2011-12-15 2014-06-02 한국전자통신연구원 Method and apparatus for providing side channel analysis in distributed system
KR101687492B1 (en) * 2015-08-06 2016-12-16 주식회사 엘지씨엔에스 Storing method of data dispersively and credential processing unit

Also Published As

Publication number Publication date
WO2007102898A2 (en) 2007-09-13
EP1955465A4 (en) 2016-11-30
FR2893796B1 (en) 2008-01-04
JP2009516964A (en) 2009-04-23
CN101371480A (en) 2009-02-18
TWI418197B (en) 2013-12-01
JP4990908B2 (en) 2012-08-01
TW200742383A (en) 2007-11-01
CN101371480B (en) 2013-08-21
FR2893796A1 (en) 2007-05-25
US7848515B2 (en) 2010-12-07
EP1955465A2 (en) 2008-08-13
US20080019503A1 (en) 2008-01-24
WO2007102898A3 (en) 2008-04-17

Similar Documents

Publication Publication Date Title
Biham et al. The rectangle attack—rectangling the Serpent
Chow et al. White-box cryptography and an AES implementation
Mangard A simple power-analysis (SPA) attack on implementations of the AES key expansion
CA2754094C (en) White-box cryptographic system with input dependent encodings
CN101401348B (en) Method and system for cipher function vagueness
US5825886A (en) Construction symmetric ciphers using the cast design procedure
CN100379194C (en) Memory encryption
US8416947B2 (en) Block cipher using multiplication over a finite field of even characteristic
Akkar et al. An implementation of DES and AES, secure against some attacks
EP1873671B1 (en) A method for protecting IC Cards against power analysis attacks
US9054857B2 (en) Parallelizeable integrity-aware encryption technique
US9647831B2 (en) Flexible architecture and instruction for advanced encryption standard (AES)
US7280657B2 (en) Data encryption and decryption system and method using merged ciphers
JP4053730B2 (en) Cryptographic communication method and device
US7092525B2 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
EP1055306B1 (en) Cryptographic device with encryption blocks connected in parallel
US7295671B2 (en) Advanced encryption standard (AES) hardware cryptographic engine
US7451288B2 (en) Word-individual key generation
US20080260145A1 (en) Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
Kong et al. Deconstructing new cache designs for thwarting software cache-based side channel attacks
US9600421B2 (en) Systems and methods for low-latency encrypted storage
US8638944B2 (en) Security countermeasures for power analysis attacks
WO2001008012A1 (en) Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US7319751B2 (en) Data encryption
Biham et al. New results on boomerang and rectangle attacks

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171211

Year of fee payment: 5