METHOD FOR SECURING A CRYPTOGRAPHIC PROCESS WITH SBOX AGAINST HIGH-ORDER SIDE-CHANNEL ATTACKSThe present invention relates to a method for securing against N-order side-channel attacks a cryptographic process using in a plurality of encryption rounds an initial Substitution box S0 comprising the steps of: —generating (E12) a first randomized substitution box S1 by masking said initial substitution box S0 such that S1(x XOR m1)=S0(x) XOR m2, with m1, m2 uniformly-distributed random values, for any input value x of the initial substitution box S0, —generating (E13) a first transrandomized Substitution box S(1,1) from the first randomized substitution box S1 and from masks m1,1, m′1,1 such that S(1, 1)[x]=S1[x xor (m1 xor m1,1)] xor (m2 xor m′1,1) for any input value x of the first transrandomized Substitution box S(1,1), —generating (E14) from the first transrandomized Substitution box S(1,1) a N−1th transrandomized Substitution box S(1, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box S(1, i) from a i−1th transrandomized substitution box S(1, i−1) and from a plurality of masks m1,i, m′1,i, m1,i−1, m′1,i−1 such that S(1, i)[x]=S(1, i−1)[x xor (m1,i-1 xor m1,i)] xor (m′1,i−1 xor m′1,i) for any input value x of the ith transrandomized substitution box S(1, i), with i an integer comprised in {2, . . . N−1}, —performing the cryptographic process using (E15) the N−1th transrandomized Substitution box S(1, N−1) instead of the initial Substitution box S0 in at least said first round of the cryptographic process.A method for securing the cryptographic device against N-order side-channel attacks, with N a predetermined integer, a cryptographic process using in a plurality of encryption rounds an initial Substitution box S0 stored in a computer readable memory circuit of a cryptographic device that includes a processing system having at least one hardware processor, the method comprising performed by the processing system the steps of: accessing in the computer readable memory circuit said initial Substitution box S0,generating a first randomized substitution box S1 by masking said initial substitution box S0 such that S1(x XOR m1)=S0(x) XOR m2, with m1, m2 uniformly-distributed random values, for any input value x of the initial substitution box S0,generating a first transrandomized Substitution box S(1,1) from the first randomized substitution box S1 and from masks m1,1, m′1,1 such that S(1, 1)[x]=S1[x xor (m1 xor m1,1)] xor (m2 xor m′1,1) for any input value x of the first transrandomized Substitution box S(1,1),generating from the first transrandomized Substitution box S(1,1) a N−1th transrandomized Substitution box S(1, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box S(1, i) from a i−1th transrandomized substitution box S(1, i−1) and from a plurality of masks m1,1, m′1,i, m1,i−1, m′1,i−1 such that S(1, i)[x]=S(1, i−1)[x xor (m1,i−1 xor m1,i)] xor (m′1,i−1 xor m′1,i) for any input value x of the ith transrandomized substitution box S(1, i), with i an integer comprised in {2, . . . N−1},performing the cryptographic process using (E15) the N−1th transrandomized Substitution box S(1, N−1) instead of the initial Substitution box S0 in at least said first round of the cryptographic process,where said masks are uniformly-distributed random values and ‘XOR’ is the Boolean exclusive OR operation, and said operation “transrandomization” of a Substitution box S from (m1, mj) to (mk, ml) consists in computing said Substitution box S masked with said masks mk and ml, called transrandomized Substitution box, from said Substitution box S masked with said masks mi and mj, with i, j, k and l integers comprised in {2, . . . N−1}.
SBOX를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법본 발명은 N차 부채널 공격으로부터 초기 치환 박스 S0를 복수의 암호화 라운드에서 사용하는 암호화 프로세스를 보호하기 위한 방법과 관련되며, 상기 방법은 초기 치환 박스 S0의 임의의 입력 값 x에 대해 S1(x XOR m1) = S0(x) XOR m2 이도록, 초기 치환 박스 S0를 균일-분포 랜덤 값인 m1, m2로 마스킹함으로써 첫번째 랜덤화된 치환 박스 S1 를 생성하는 단계(E12), 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)의 임의의 입력 값 x에 대해 S(1, 1)[x] = S1[x xor (m1 xor m1,1)] xor (m2 xor m'1,1)이도록 첫번째 랜덤화된 치환 박스 S1 및 마스크 m1,1, m'1,1로부터 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)를 생성하는 단계(E13), i번째 트랜스랜덤화된 치환 박스 S(1, i)의 임의의 입력 값 x에 대해 S(1, i)[x] = S(1, i-1)[x xor (m1,i-1 xor m1,i)] xor (m'1,i-1 xor m'1,i)이도록 - i는 {2,..N-1}에 속하는 정수임 - , i-1번째 트랜스랜덤화된 치환 박스 S(1, i-1) 및 복수의 마스크 m1,i, m'1,i, m1,i-1, m'1,i-1로부터 i번째 트랜스랜덤화된 치환 박스 S(1, i)를 생성하는 단계를 N-2회 반복 수행함으로써 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)로부터 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 생성하는 단계(E14), 및 암호화 프로세스의 적어도 1번째에서 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 이용해 암호화 프로세스를 수행하는 단계(E15)를 포함한다. N이 지정 정수인 N차 부채널 공격으로부터, 복수의 암호화 라운드에서 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템을 포함하는 암호화 장치(101)의 컴퓨터 판독형 메모리 회로에 저장된 초기 치환 박스 S0를 이용하는 암호화 프로세스를 보안하기 위한 방법으로서, 상기 방법은 프로세싱 시스템에 의해 수행되는,컴퓨터 판독형 메모리 회로에서 초기 치환 박스 S0를 액세스하는 단계(E11),초기 치환 박스 S0에 대한 입력 값 x에 대해, S1(x XOR m1) = S0(x) XOR m2이도록, 상기 초기 치환 박스 S0를 균일-분포 랜덤 값인 m1, m2로 마스킹함으로써, 1번째 랜덤화된치환 박스 S1를 생성하는 단계(E12), 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)의 입력 값 x에 대해 S(1, 1)[x] = S1[x xor (m1 xor m1,1)] xor (m2 xor m'1,1)이도록, 첫번째 랜덤화된 치환 박스 S1 로부터 그리고 마스크 m1,1, m'1,1 로부터 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)를 생성하는 단계(E13),i는 {2,..N-1}에 속하는 정수일 때 i번째 트랜스랜덤화된 치환 박스 S(1, i)의 입력 값 x에 대해 S(1, i)[x] = S(1, i-1)[x xor (m1,i-1 xor m1,i)] xor (m'1,i-1 xor m'1,i)이도록, i-1번째 트랜스랜덤화된 치환 박스 S(1, i-1) 및 복수의 마스크 m1,i, m'1,i, m1,i-1, m'1,i-1로부터 i번째 트랜스랜덤화된 치환 박스 S(1, i)를 생성하는 단계를 N-2회 반복 수행함으로써, 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)로부터 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 생성하는 단계(E14),암호화 프로세스의 적어도 1번째에서 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 이용해 암호화 프로세스를 수행하는 단계(E15)를 포함하며, 마스크는 균일-분포 랜덤 값이며 'XOR'은 부울 배타적 논리합 연산이며, (mi,mj)에서 (mk,ml)로의 치환 박스 S의 "트랜스랜덤화" 연산은 마스크 mi 및mj로 마스킹된 치환 박스 S로부터, 트랜스랜덤화된 치환 박스라고 지칭되는 마스크 mk 및ml로 마스킹된 치환 박스 S를 계산하는 것을 포함하며, i, j, k 및 l은 {2,..N-1}에 포함된 정수인, 암호화 프로세스를 보안하기 위한 방법.