CN106059746B - 一种抗任意阶侧信道攻击的掩码防护方法及系统 - Google Patents
一种抗任意阶侧信道攻击的掩码防护方法及系统 Download PDFInfo
- Publication number
- CN106059746B CN106059746B CN201610588636.1A CN201610588636A CN106059746B CN 106059746 B CN106059746 B CN 106059746B CN 201610588636 A CN201610588636 A CN 201610588636A CN 106059746 B CN106059746 B CN 106059746B
- Authority
- CN
- China
- Prior art keywords
- look
- row
- unit
- enable
- exclusive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Abstract
一种抗任意阶侧信道攻击的掩码防护方法及系统,通过重新构造生成查找表替换非线性部件,查找表{L,M,R}中,向量L每个元素为非线性部件输出与n‑1个随机数的异或值,随机数存储在矩阵M,向量R存储第二次查询的地址;该表满足输入x1,x2,…,xn,输出独立随机的y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息;表查询过程包括首先生成查找表{L,M,R},然后先通过x1,x2,…,xn‑1进行表重构,每两次表重构之间进行一次表刷新,最后再通过xn查询表{L,M,R},从而得出y1,y2,…,yn。本方案可有效对抗任意阶侧信道攻击,有安全性高,实用性强及可扩展性强等特点。
Description
技术领域
本发明涉及密码安全技术领域,尤其涉及一种针对不同软硬件载体的任意阶掩码方案及系统,可有效对抗任意阶侧信道攻击。
背景技术
密码芯片或加密设备的载体形式已受到多种类型的分析与攻击,特别是针对硬件电路的侧信道攻击(Side Channel Attack,SCA),目前已成为密码算法硬件形式的主要威胁。所谓侧信道攻击是指利用电路工作过程中的各种侧信道泄露信息,如:能耗、时间、故障、电磁辐射等[1-6],通过建立这些泄露信息与密码算法关键信息(如密钥)间的联系,实现对秘密信息的提取。
掩码对抗方案是一种应用广泛的侧信道对抗方法,掩码对抗方案自提出以来[7],从一阶对抗逐渐发展至高阶对抗阶段[8-13],安全性及通用性也不断提高。最早的一阶掩码方案主要针对DES算法提出,之后出现的一阶掩码方案则大多以AES为防护目标,针对于不同的软硬件平台,同时不断优化时间和空间耗费。但这些对抗方案都只能对抗一阶SCA攻击,一阶掩码方案已不能满足安全性要求,高阶掩码方案便逐渐发展起来。在追求更高安全性的同时,高阶掩码方案也不断朝着通用化的方向发展,主要在于设计通用化的S盒掩码方案,保证可应用于任何S盒设计且可抵抗任意阶SCA攻击,但是高阶掩码会很大程度上增加额外的开销,因此在资源受限的设备上,高阶掩码方案难以得到应用。
本发明以掩码对抗方法这种具有通用性及可证明安全性的对抗方法为研究目标,提出一种轻量级任意阶掩码对抗方法,旨在使用更低资源开销的情况下,保证任意阶掩码防护方案安全性。
[1]P.Kocher.Timing attacks on implementations of Diffie-Hellmann,RSA,DSS,and other systems.CRYPTO’96,LNCS 1109,pp.104-113,1996.
[2]Eli Biham,Adi Shamir.Differential Fault Analysis of Secret KeyCryptosystems.CRYPT0'97
[3]P.Kocher,J.Jaffe,and B.Jun.Differential Power Analysis[A].CRYPTO1999[C],Berlin Heidelberg:Springer-Verlag,1999:388–397.
[4]Quisquater J.J,Samyde D.Electromagnetic analysis(EMA):Measures andcountermeasures for smart cards.Cannes,France:ACM 2001
[5]E.Brier,C.Clavier,and F.Olivier.Correlation Power Analysis with aLeakage Model[A].CHES 2004[C],Berlin Heidelberg:Springer-Verlag,2004:16–29.
[6]B.Gierlichs,L.Batina,P.Tuyls,and B.Preneel.Mutual InformationAnalysis[A].CHES 2008[C],Berlin Heidelberg:Springer-Verlag,2008:426-442.
[7]S.Chari,C.S.Jutla,J.R.Rao,and P.Rohatgi.Towards Sound Approachesto Counteract Power Analysis Attacks[A].CRYPTO 1999[C],Berlin Heidelberg:Springer-Verlag,1999:398–412.
[8]Akkar,M.-L.,Giraud,C.:An Implementation of DES and AES,Secureagainst Some Attacks.In:Ko,c,C,.K.,Naccache,D.,Paar,C.(eds.)CHES 2001.LNCS,vol.2162,pp.309–318.Springer,Heidelberg(2001)
[9]Rivain,M.,Dottax,E.,Prouff,E.:Block ciphers implementationsprovably secure against second order side channel analysis.In:Nyberg,K.(ed.)FSE 2008.LNCS,vol.5086,pp.127–143.Springer,Heidelberg(2008)
[10]Rivain,M.,Prouff,E.:Provably secure higher-order masking ofAES.In:Mangard,S.,Standaert,F.-X.(eds.)CHES 2010.LNCS,vol.6225,pp.413–427.Springer,Heidelberg(2010)
[11]Carlet,C.,Goubin,L.,Prouff,E.,Quisquater,M.,Rivain,M.:Higher-order masking schemes for S-Boxes.In:Canteaut,A.(ed.)FSE 2012.LNCS,vol.7549,pp.366–384.Springer,Heidelberg(2012)
[12]Roy,A.,Vivek,S.:Analysis and improvement of the generic higher-order masking scheme of FSE 2012.In:Bertoni,G.,Coron,J.-S.(eds.)CHES2013.LNCS,vol.8086,pp.417–434.Springer,Heidelberg(2013)
[13]Coron,J.-S.:Higher Order Masking of Look-Up Tables.In EUROCRYPT2014,LNCS,vol 8441,2014,pp 441-458.Springer Heidelberg(2014)
发明内容
本发明提出一种轻量级任意阶掩码防护方案,称为DSM方案(Divided S-boxScheme),以有效对抗任意阶侧信道攻击。
本发明技术方案提供一种抗任意阶侧信道攻击的掩码防护方法,通过重新构造生成查找表替换非线性部件,
设加密算法的非线性部件S(x)定义为
S:{0,1}k→{0,1}k'
其中,输入宽度为k,输出宽度为k’,原始输入为x,原始输出y,要求将x拆分为相互独立的n个共享因子,记为x1,x2,…,xn,且满足将y拆分成y1,y2,…,yn,且满足
所述查找表包含两个2k维的列向量L和R及一个n’×2k的随机数矩阵M,其中将查找表记为{L,M,R};设M(u)[j]表示随机数矩阵M中行向量M(u)的第j个元素,向量L的每个元素L(u)为原始的非线性部件输出与n-1个随机数的异或值,u∈[0,2k-1],对应的n-1个随机数存储在随机数矩阵M的两行,分别为M(u)和M(R[u]),向量R用于存储第二次查询的地址,R[u]表示向量R的第u个元素;该表{L,M,R}满足输入x1,x2,…,xn,输出独立随机的y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息;
表查询过程包括以下步骤,
步骤1,首先生成查找表{L,M,R},含有2k行n’+2列;设整数i,j作为循环变量,i的初始值为0,j的初始值为1;
步骤2,生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;令L’部分中第i行元素 R’部分中第i行元素M’部分中第i行向量令i=i+1;若i<2k,重复执行步骤2,否则用查找表{L’,M’,R’}更新当前的表{L,M,R},进入步骤3;
步骤3,通过表刷新过程刷新查找表{L,M,R},包括用刷新时得到的新的查找表{L’,M’,R’}更新当前的表{L,M,R};令j=j+1;若j<n-1,返回步骤2,否则进入步骤4;
步骤4,查询表{L,M,R}中的第xn行,令y1=L[xn],{y2,...,yn’+1}=M(xn);再查询第R[xn]行,令{yn’+2,...,yn}=M(R[xn]);
步骤5,输出{y1,y2,…,yn}。
而且,步骤4中,若M(R[xn])中元素个数大于n-n’-1,取前n-n’-1个元素作为{yn’+2,...,yn}。
而且,步骤1中,生成查找表{L,M,R}包括以下两个阶段,
第一阶段,生成R和M部分,包括如下步骤,
步骤a1.1,生成一个含有2k个元素的向量A,使得A中第u个元素A[u]=u;用一个整数i作为循环变量,初始值为0;
步骤a1.2,生成一个随机整数r,满足0≤r≤2k-1且r≠i;令R部分中第i行元素R[i]满足R[i]=A[r];用另一个整数j作为循环变量,初始值为0;
步骤a1.3,生成一个随机整数m,满足0≤m≤2k-1;令M部分中第i行第j列元素M(i)[j]满足M(i)[j]=m;令j=j+1;若j<n’,重复执行步骤a1.3,否则进入步骤a1.4;
步骤a1.4,令i=i+1,若i<2k,返回步骤a1.2,否则进入步骤a1.5;
步骤a1.5,输出R和M部分;
第二阶段,生成L部分,包括如下步骤,
步骤a2.1,首先生成一张空的查找表{L,M,R},含有2k行n’+2列,令M和R部分等于第一阶段得到的M和R部分;用一个整数i作为循环变量,初始值为0;
步骤a2.2,令L中第i行元素L[i]=S(i),其中S(i)表示非线性部件的第i个元素;用整数j,k作为循环变量,初始值均为0;
步骤a2.3,将L[i]与M部分第i行第j列元素M(i)[j]异或,记为将循环变量j增加1,即令j=j+1;若j<n’,重复执行步骤a2.3,否则进入步骤a2.4;
步骤a2.4,将L[i]与M部分第R[i]行第k列元素M(R[i])[k]异或,记为 令k=k+1;若k<n-n’-1,重复执行步骤a2.4,否则进入步骤a2.5;
步骤a2.5,令i=i+1;若i<2k,返回步骤a2.2,否则进入步骤a2.6;
步骤a2.6,输出查找表{L,M,R}。
而且,步骤3中表刷新过程包括以下步骤,
步骤b1,首先生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;根据表生成过程中第一阶段的方式生成M’和R’部分,L’与刷新之前的查找表L部分相同;用整数i,j,k作为循环变量,初始值均为0;
步骤b2,先将L’[i]与M’部分第i行第j列元素M’(i)[j]异或,再将结果与M部分第i行第j列元素M(i)[j]异或,得到令j=j+1;若j<n’,重复执行步骤b2,否则进入步骤b3;
步骤b3,将L’[i]与M’部分第R(i)行第k列元素M’(R(i))[k]异或,再将结果与M部分第R(i)行第k列元素M(R(i))[k]异或,得到令k=k+1;若k<n-n’-1,重复执行步骤b3,否则进入步骤b4;
步骤b4,令i=i+1;若i<2k,返回步骤b2,否则进入步骤b5;
步骤b5,输出查找表{L’,M’,R’}。
本发明还提供一种抗任意阶侧信道攻击的掩码防护系统,用于通过重新构造生成查找表替换非线性部件,
设加密算法的非线性部件S(x)定义为
S:{0,1}k→{0,1}k'
其中,输入宽度为k,输出宽度为k’,原始输入为x,原始输出y,要求将x拆分为相互独立的n个共享因子,记为x1,x2,…,xn,且满足将y拆分成y1,y2,…,yn,且满足
所述查找表包含两个2k维的列向量L和R及一个n’×2k的随机数矩阵M,其中将查找表记为{L,M,R};设M(u)[j]表示随机数矩阵M中行向量M(u)的第j个元素,向量L的每个元素L(u)为原始的非线性部件输出与n-1个随机数的异或值,u∈[0,2k-1],对应的n-1个随机数存储在随机数矩阵M的两行,分别为M(u)和M(R[u]),向量R用于存储第二次查询的地址,R[u]表示向量R的第u个元素;该表{L,M,R}满足输入x1,x2,…,xn,输出独立随机的y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息;
包括以下模块,
第一模块,用于首先生成查找表{L,M,R},含有2k行n’+2列;设整数i,j作为循环变量,i的初始值为0,j的初始值为1;
第二模块,用于生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;令L’部分中第i行元素R’部分中第i行元素M’部分中第i行向量 令i=i+1;若i<2k,重复执行工作,否则用查找表{L’,M’,R’}更新当前的表{L,M,R},命令第三模块工作;
第三模块,用于通过表刷新过程刷新查找表{L,M,R},包括用刷新时得到的新的查找表{L’,M’,R’}更新当前的表{L,M,R};令j=j+1;若j<n-1,命令第三模块工作,否则命令第四模块工作;
第四模块,用于查询表{L,M,R}中的第xn行,令y1=L[xn],{y2,...,yn’+1}=M(xn);再查询第R[xn]行,令{yn’+2,...,yn}=M(R[xn]);
第五模块,用于输出{y1,y2,…,yn}。
而且,第四模块中,若M(R[xn])中元素个数大于n-n’-1,取前n-n’-1个元素作为{yn’+2,...,yn}。
而且,第一模块中,包括以下两个部分,
第一部分,用于生成R和M部分,包括如下单元,
单元a1.1,生成一个含有2k个元素的向量A,使得A中第u个元素A[u]=u;用一个整数i作为循环变量,初始值为0;
单元a1.2,生成一个随机整数r,满足0≤r≤2k-1且r≠i;令R部分中第i行元素R[i]满足R[i]=A[r];用另一个整数j作为循环变量,初始值为0;
单元a1.3,生成一个随机整数m,满足0≤m≤2k-1;令M部分中第i行第j列元素M(i)[j]满足M(i)[j]=m;令j=j+1;若j<n’,重复工作,否则命令单元a1.4工作;
单元a1.4,令i=i+1,若i<2k,命令单元a1.2工作,否则命令单元a1.5工作;
单元a1.5,输出R和M部分;
第二部分,用于生成L部分,包括如下单元,
单元a2.1,首先生成一张空的查找表{L,M,R},含有2k行n’+2列,令M和R部分等于第一阶段得到的M和R部分;用一个整数i作为循环变量,初始值为0;
单元a2.2,令L中第i行元素L[i]=S(i),其中S(i)表示非线性部件的第i个元素;用整数j,k作为循环变量,初始值均为0;
单元a2.3,将L[i]与M部分第i行第j列元素M(i)[j]异或,记为将循环变量j增加1,即令j=j+1;若j<n’,重复进行工作,否则命令单元a2.4工作;
单元a2.4,将L[i]与M部分第R[i]行第k列元素M(R[i])[k]异或,记为 令k=k+1;若k<n-n’-1,重复进行工作,否则命令单元a2.5工作;
单元a2.5,令i=i+1;若i<2k,命令单元a2.2工作,否则命令单元a2.6工作;
单元a2.6,输出查找表{L,M,R}。
而且,第一模块中,包括以下单元,
单元b1,首先生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;根据表生成过程中第一阶段的方式生成M’和R’部分,L’与刷新之前的查找表L部分相同;用整数i,j,k作为循环变量,初始值均为0;
单元b2,先将L’[i]与M’部分第i行第j列元素M’(i)[j]异或,再将结果与M部分第i行第j列元素M(i)[j]异或,得到令j=j+1;若j<n’,重复进行工作,否则命令单元b3工作;
单元b3,将L’[i]与M’部分第R(i)行第k列元素M’(R(i))[k]异或,再将结果与M部分第R(i)行第k列元素M(R(i))[k]异或,得到令k=k+1;若k<n-n’-1,重复进行工作,否则命令单元b4工作;
单元b4,令i=i+1;若i<2k,命令单元b2工作,否则命令单元b5工作;
单元b5,输出查找表{L’,M’,R’}。
本发明的特点与优势:
(1)本发明提出了任意阶掩码防护方案,方案资源开销相对较低;
(2)本发明可有效对抗任意阶侧信道攻击,安全性高;
(3)本发明实用性强,实现简单,可应用于不同的软硬件载体中,可扩展性强。
附图说明
图1为本发明实施例的表查询过程示意图。
图2为本发明实施例的表刷新过程示例图。
具体实施方式
以下结合附图和实施例说明本发明的技术方案
本发明实施例重新构造生成查找表来替换原始加密算法中的非线性部件,从而实现加密。
所述的加密算法的非线性部件S(x)可定义为
S:{0,1}k→{0,1}k'
其中,输入宽度为k,输出宽度为k’,其原始输入为x,原始输出y,对于安全的掩码方法要求将x拆分为相互独立的n个共享因子,记为x1,x2,…,xn,且满足将y拆分成y1,y2,…,yn,且满足
所述的重构的查找表包含两个2k维的列向量L和R及一个n’×2k的随机数矩阵M,其中将该表记为{L,M,R}。M(u)[j]表示随机数矩阵M中行向量M(u)的第j个元素,向量L的每个元素L(u)为原始非线性部件S(u)输出与n-1个随机数的异或值(u∈[0,2k-1]),对应的n-1个随机数存储在矩阵M的两行,分别为M(u)和M(R[u]),向量R用于存储第二次查询的地址,R[u]表示向量R的第u个元素。该表{L,M,R}可满足输入x1,x2,…,xn,可输出独立随机的y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息。
对于一个输入需要通过两次查询才能得到n个独立随机的输出值,第一次查询得到存储于L中的一个共享因子及存储于M中的n’个共享因子,还有位于R中的一个坐标,用于下一次查询;第二次查询得到存储于M中的剩余n-n’个共享因子。
图1描述了对查找表{L,M,R}的查询操作。{L,M,R}表中共有2k行,由L,M和R三部分组成。L和R部分为2k行1列,M部分中共有2k行n’列,其中L[u]和L[z]分别表示L部分中第u和z行的元素,类似的R[u]和R[z]分别表示R部分中第u和z行的元素。M(u)和M(z)分别表示M部分中的第u和z行n’个元素组成的向量。在查找表中,对于任意的u,L[u]满足如下关系:
1.当u为奇数时,
2.当u为偶数时,
其中,z=R[u]。为方便描述,以上两个公式中从M(u)[0]到M(z)[n’-1](n为奇数)或M(z)[n’-2](n为偶数)分别记做m1,...,mn-1。
一次查表过程以一个k比特变量u为输入,u∈[0,2k-1],n个k比特变量y1,…,yn为输出。根据输入u,首先查询表{L,M,R}中的第u行,令y1=L[u]并等于{y2,...,yn’+1}=M(u)。再查询第z=R[u]行,令{yn’+2,...,yn}=M(u)。若M(R[u])中元素个数大于n-n’-1,取前n-n’-1个元素作为{yn’+2,...,yn}。由于在查找表中,而{y2,...,yn’+1}={M(u)[0],...,M(u)[n’-1]},{yn’+2,...,yn}={M(z)[0],...,M(z)[n’-1]}(n为奇数)或{yn’+2,...,yn}={M(z)[0],...,M(z)[n’-2]}(n为偶数)。因此查找表最终的输出y1,y2,…,yn满足
具体实施时,可分为表生成过程,表刷新过程及表查询过程,分别设计实现流程。
所述的表生成过程,主要用于构建可替换原始非线性部件的查找表{L,M,R},满足通过2次查询后可得到n个独立随机的输出值。
所述的表刷新过程,主要用于对已构建好的表进行刷新操作,以保证表中的元素随机独立,从而确保掩码方案的安全性。
所述的表查询过程,主要用于输入x1,x2,…,xn,输出独立随机的y1,y2,…,yn,需要先通过x1,x2,…,xn-1进行表重构,每两次表重构之间进行一次表刷新,最后再通过xn查询表{L,M,R},从而得出y1,y2,…,yn。
本发明实施例所提出的DSM方案中具体的表生成过程,表刷新过程及表查询过程,具体描述如下。
(1)表生成过程
表生成过程包含两个阶段:生成R和M部分、生成完整查找表部分。
第一阶段,生成R和M包括如下步骤:
步骤1,生成一个含有2k个元素的向量A,使得A中第u(0≤u≤2k-1)个元素A[u]=u。用一个整数i作为循环变量,初始值为0。
步骤2,生成一个随机整数r,满足0≤r≤2k-1且r≠i。令R部分中第i行元素R[i]满足R[i]=A[r]。用另一个整数j作为循环变量,初始值为0。
步骤3,生成一个随机整数m,满足0≤m≤2k-1。令M部分中第i行第j列元素M(i)[j]满足M(i)[j]=m。将循环变量j增加1,即令j=j+1;若j<n’,重复执行步骤3,否则进入步骤4。
步骤4,将循环变量i增加1,即令i=i+1,若i<2k,返回步骤2,重复执行步骤2,3,4,否则进入步骤5。
步骤5,输出R和M部分。
第二阶段在第一部分生成R和M完成的基础上进行,包括如下步骤:
步骤1,首先生成一张空的查找表{L,M,R},含有2k行n’+2列,令M和R部分等于第一阶段得到的M和R部分。用一个整数i作为循环变量,初始值为0。
步骤2,令L中第i行元素L[i]=S(i),其中S(i)表示原有加密算法中S盒(即非线性部件)的第i个元素。用整数j,k作为循环变量,初始值均为0。
步骤3,将L[i]与M部分第i行第j列元素M(i)[j]异或,即将循环变量j增加1,即令j=j+1。若j<n’,重复执行步骤3,否则进入步骤4。
步骤4,将L[i]与M部分第R[i]行第k列元素M(R[i])[k]异或,即将循环变量k增加1,即令k=k+1。若k<n-n’-1,重复执行步骤4,否则进入步骤5。
步骤5,将循环变量i增加1,即令i=i+1。若i<2k,返回步骤2,重复执行步骤2,3,4,5,否则进入步骤6。
步骤6,输出查找表{L,M,R}。
表生成过程完成了初始表的构建过程,对于任意u∈[0,2k-1],满足
当表{L,M,R}构建完成后,可以通过2次查询得到n个满足公式(1)的独立共享因子,为了安全输出这些因子,还需要结合表刷新过程,如后所述。
(2)表刷新过程
在表查询中,需要先通过x1,x2,…,xn-1进行表重构,再通过xn进行表查询,其中共需要进行n-1次表重构。为了保证两次表重构之间的查找表相互独立,每次重构后,都必须进行表刷新操作,表刷新的过程如图2所示。
图2中左侧表{L,M,R}为刷新之前的查找表,右侧表{L’,M’,R’}为刷新后的查找表。首先通过表生成过程中第一阶段得到新的{M’,R’}。然后依次修改{L,M,R}中的L部分每一行,得到{L’,M’,R’}中的L’部分。在图2中,L[u]和L[z]分别表示L部分中第u和z行的元素,R[u]和R[z]分别表示R部分中第u和z行的元素,M(u)和M(z)分别表示M部分中的第u和z行n’个元素组成的向量,其中,z表示R[u]。类似的,L’[u]、L’[z’]、R’[u]、R’[z’]、M’(u)和M’(z’)分别表示表{L’,M’,R’}中相应的元素,z’表示右侧表{L’,M’,R’}中的R’[u]。刷新后的L’中元素L’[x]满足公式(2)。
表刷新过程的目的在于刷新{L,M,R}中的所有元素,得到新表,记为{L’,M’,R’},同时使得对于相同输入,查询{L,M,R}与{L’,M’,R’}的所有输出共享因子的异或值相同。难点在于在不产生泄漏的情况下计算L’中的元素,基本思路是表生成过程中第一阶段得到新的{M’,R’},再根据原有{L,M,R}的规则生成新的L’。表刷新过程包括如下步骤:
步骤1,首先生成一张空的查找表{L’,M’,R’},含有2k行n’+2列。根据表生成过程中第一阶段生成M’和R’部分,L’与刷新之前的查找表L部分相同。用整数i,j,k作为循环变量,初始值均为0。
步骤2,先将L’[i]与M’部分第i行第j列元素M’(i)[j]异或,再将结果与M部分第i行第j列元素M(i)[j]异或,得到将循环变量j增加1,即令j=j+1。若j<n’,重复执行步骤2,否则进入步骤3。
步骤3,将L’[i]与M’部分第R(i)行第k列元素M’(R(i))[k]异或,再将结果与M部分第R(i)行第k列元素M(R(i))[k]异或,得到将循环变量k增加1,即令k=k+1。若k<n-n’-1,重复执行步骤3,否则进入步骤4。
步骤4,将循环变量i增加1,即令i=i+1。若i<2k,返回步骤2,重复执行步骤2,3,4,否则进入步骤5。
步骤5,输出查找表{L’,M’,R’}。
执行表刷新过程后,可生成刷新后的表{L’,M’,R’},且{L,M,R}与{L’,M’,R’}的元素随机无关,同时刷新前后满足公式(3)。
即任意相同输入,查询{L,M,R}与{L’,M’,R’}都可产生n个随机共享因子,且异或值均为原始S盒的输出值。
(3)表查询过程
表查询的过程先需要通过x1,x2,…,xn-1对查找表进行重构,再通过xn查询最后的{L,M,R},从而得出y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息。为了保证安全性,每次表重构后,都需要执行一次表刷新操作,表查询过程可利用以上表生成过程和表刷新过程实现,包括以下步骤:
步骤1,首先通过表生成过程生成查找表{L,M,R},含有2k行n’+2列。用整数i,j作为循环变量,i的初始值为0,j的初始值为1。
步骤2,生成一张空的查找表{L’,M’,R’},含有2k行n’+2列。令L’部分中第i行元素 R’部分中第i行元素M’部分中第i行向量将循环变量i增加1,即令i=i+1。若i<2k,重复执行步骤2,否则用查找表{L’,M’,R’}更新当前的表{L,M,R},进入步骤3。
步骤3,通过表刷新过程刷新查找表{L,M,R},包括用刷新时得到的新的查找表{L’,M’,R’}更新当前的表{L,M,R}。将循环变量j增加1,即令j=j+1。若j<n-1,返回步骤2,重复执行步骤2、3,否则进入步骤4。
步骤4,查询表{L,M,R}中的第xn行,令y1=L[xn],{y2,...,yn’+1}=M(xn)。再查询第R[xn]行,令{yn’+2,...,yn}=M(R[xn])。若M(R[xn])中元素个数大于n-n’-1,取前n-n’-1个元素作为{yn’+2,...,yn}。此步骤实现可参见图1,令u为xn。
步骤5,输出{y1,y2,…,yn}。
当表查询过程步骤3执行完毕后,对于查找表{L,M,R}中任意一行(记为第u行),可满足等式(4)。
当表查询过程步骤4中带入xn对表{L,M,R}进行查询后,即当公式(4)中u为xn时,有
因此,最后的输出{y1,y2,…,yn}满足
因此表查询过程可以产生相互独立的n个共享因子y1,y2,…,yn,并且满足这些共享因子的异或与原始加密算法的S盒输出相等,能够保证加密结果的正确性。
具体实施时,本发明所提供方法可基于软件技术实现自动运行流程,也可采用模块化方式实现相应系统。本发明实施例还提供一种抗任意阶侧信道攻击的掩码防护系统,用于通过重新构造生成查找表替换非线性部件,
设加密算法的非线性部件S(x)定义为
S:{0,1}k→{0,1}k'
其中,输入宽度为k,输出宽度为k’,原始输入为x,原始输出y,要求将x拆分为相互独立的n个共享因子,记为x1,x2,…,xn,且满足将y拆分成y1,y2,…,yn,且满足
所述查找表包含两个2k维的列向量L和R及一个n’×2k的随机数矩阵M,其中将查找表记为{L,M,R};设M(u)[j]表示随机数矩阵M中行向量M(u)的第j个元素,向量L的每个元素L(u)为原始的非线性部件输出与n-1个随机数的异或值,u∈[0,2k-1],对应的n-1个随机数存储在随机数矩阵M的两行,分别为M(u)和M(R[u]),向量R用于存储第二次查询的地址,R[u]表示向量R的第u个元素;该表{L,M,R}满足输入x1,x2,…,xn,输出独立随机的y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息;
包括以下模块,
第一模块,用于首先生成查找表{L,M,R},含有2k行n’+2列;设整数i,j作为循环变量,i的初始值为0,j的初始值为1;
第二模块,用于生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;令L’部分中第i行元素R’部分中第i行元素M’部分中第i行向量 令i=i+1;若i<2k,重复执行工作,否则用查找表{L’,M’,R’}更新当前的表{L,M,R},命令第三模块工作;
第三模块,用于通过表刷新过程刷新查找表{L,M,R},包括用刷新时得到的新的查找表{L’,M’,R’}更新当前的表{L,M,R};令j=j+1;若j<n-1,命令第三模块工作,否则命令第四模块工作;
第四模块,用于查询表{L,M,R}中的第xn行,令y1=L[xn],{y2,...,yn’+1}=M(xn);再查询第R[xn]行,令{yn’+2,...,yn}=M(R[xn]);
第五模块,用于输出{y1,y2,…,yn}。
进一步地,第四模块中,若M(R[xn])中元素个数大于n-n’-1,取前n-n’-1个元素作为{yn’+2,...,yn}。
进一步地,第一模块中,包括以下两个部分,
第一部分,用于生成R和M部分,包括如下单元,
单元a1.1,生成一个含有2k个元素的向量A,使得A中第u个元素A[u]=u;用一个整数i作为循环变量,初始值为0;
单元a1.2,生成一个随机整数r,满足0≤r≤2k-1且r≠i;令R部分中第i行元素R[i]满足R[i]=A[r];用另一个整数j作为循环变量,初始值为0;
单元a1.3,生成一个随机整数m,满足0≤m≤2k-1;令M部分中第i行第j列元素M(i)[j]满足M(i)[j]=m;令j=j+1;若j<n’,重复工作,否则命令单元a1.4工作;
单元a1.4,令i=i+1,若i<2k,命令单元a1.2工作,否则命令单元a1.5工作;
单元a1.5,输出R和M部分;
第二部分,用于生成L部分,包括如下单元,
单元a2.1,首先生成一张空的查找表{L,M,R},含有2k行n’+2列,令M和R部分等于第一阶段得到的M和R部分;用一个整数i作为循环变量,初始值为0;
单元a2.2,令L中第i行元素L[i]=S(i),其中S(i)表示非线性部件的第i个元素;用整数j,k作为循环变量,初始值均为0;
单元a2.3,将L[i]与M部分第i行第j列元素M(i)[j]异或,记为将循环变量j增加1,即令j=j+1;若j<n’,重复进行工作,否则命令单元a2.4工作;
单元a2.4,将L[i]与M部分第R[i]行第k列元素M(R[i])[k]异或,记为 令k=k+1;若k<n-n’-1,重复进行工作,否则命令单元a2.5工作;
单元a2.5,令i=i+1;若i<2k,命令单元a2.2工作,否则命令单元a2.6工作;
单元a2.6,输出查找表{L,M,R}。
进一步地,第一模块中,包括以下单元,
单元b1,首先生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;根据表生成过程中第一阶段的方式生成M’和R’部分,L’与刷新之前的查找表L部分相同;用整数i,j,k作为循环变量,初始值均为0;
单元b2,先将L’[i]与M’部分第i行第j列元素M’(i)[j]异或,再将结果与M部分第i行第j列元素M(i)[j]异或,得到令j=j+1;若j<n’,重复进行工作,否则命令单元b3工作;
单元b3,将L’[i]与M’部分第R(i)行第k列元素M’(R(i))[k]异或,再将结果与M部分第R(i)行第k列元素M(R(i))[k]异或,得到令k=k+1;若k<n-n’-1,重复进行工作,否则命令单元b4工作;
单元b4,令i=i+1;若i<2k,命令单元b2工作,否则命令单元b5工作;
单元b5,输出查找表{L’,M’,R’}。
各模块具体实现可参见相应步骤,本发明不予赘述。
以上实施例仅供说明本发明之用,而非对本发明的限制,有关技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变型,因此所有等同的技术方案也应该属于本发明的范畴之内,应由各权利要求限定。
Claims (8)
1.一种抗任意阶侧信道攻击的掩码防护方法,其特征在于:通过重新构造生成查找表替换非线性部件,
设加密算法的非线性部件S(x)定义为
S:{0,1}k→{0,1}k'
其中,输入宽度为k,输出宽度为k’,原始输入为x,原始输出y,要求将x拆分为相互独立的n个共享因子,记为x1,x2,…,xn,且满足将y拆分成y1,y2,…,yn,且满足
所述查找表包含两个2k维的列向量L和R及一个n’×2k的随机数矩阵M,其中将查找表记为{L,M,R};设M(u)[j]表示随机数矩阵M中行向量M(u)的第j个元素,向量L的每个元素L(u)为原始的非线性部件输出与n-1个随机数的异或值,u∈[0,2k-1],对应的n-1个随机数存储在随机数矩阵M的两行,分别为M(u)和M(R[u]),向量R用于存储第二次查询的地址,R[u]表示向量R的第u个元素;该查找表{L,M,R}满足输入x1,x2,…,xn,输出独立随机的y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息;
查找表的查询过程包括以下步骤,
步骤1,首先生成查找表{L,M,R},含有2k行n’+2列;设整数i,j作为循环变量,i的初始值为0,j的初始值为1;
步骤2,生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;令L’部分中第i行元素 R’部分中第i行元素M’部分中第i行向量令i=i+1;若i<2k,重复执行步骤2,否则用查找表{L’,M’,R’}更新当前的查找表{L,M,R},进入步骤3;
步骤3,通过查找表的刷新过程刷新查找表{L,M,R},包括用刷新时得到的新的查找表{L’,M’,R’}更新当前的查找表{L,M,R};令j=j+1;若j<n-1,返回步骤2,否则进入步骤4;
执行表刷新过程后,生成刷新后的查找表{L’,M’,R’},且{L,M,R}与{L’,M’,R’}的元素随机无关,同时刷新前后满足下式,
则任意相同输入,查询{L,M,R}与{L’,M’,R’}都能产生n个随机共享因子,且异或值均为原始S盒的输出值;
步骤4,查询查找表{L,M,R}中的第xn行,令y1=L[xn],{y2,...,yn’+1}=M(xn);再查询第R[xn]行,令{yn’+2,...,yn}=M(R[xn]);
步骤5,输出{y1,y2,…,yn}。
2.根据权利要求1所述抗任意阶侧信道攻击的掩码防护方法,其特征在于:步骤4中,若M(R[xn])中元素个数大于n-n’-1,取前n-n’-1个元素作为{yn’+2,...,yn}。
3.根据权利要求1或2所述抗任意阶侧信道攻击的掩码防护方法,其特征在于:步骤1中,生成查找表{L,M,R}包括以下两个阶段,
第一阶段,生成R和M部分,包括如下步骤,
步骤a1.1,生成一个含有2k个元素的向量A,使得A中第u个元素A[u]=u;用一个整数i作为循环变量,初始值为0;
步骤a1.2,生成一个随机整数r,满足0≤r≤2k-1且r≠i;令R部分中第i行元素R[i]满足R[i]=A[r];用另一个整数j作为循环变量,初始值为0;
步骤a1.3,生成一个随机整数m,满足0≤m≤2k-1;令M部分中第i行第j列元素M(i)[j]满足M(i)[j]=m;令j=j+1;若j<n’,重复执行步骤a1.3,否则进入步骤a1.4;
步骤a1.4,令i=i+1,若i<2k,返回步骤a1.2,否则进入步骤a1.5;
步骤a1.5,输出R和M部分;
第二阶段,生成L部分,包括如下步骤,
步骤a2.1,首先生成一张空的查找表{L,M,R},含有2k行n’+2列,令M和R部分等于第一阶段得到的M和R部分;用一个整数i作为循环变量,初始值为0;
步骤a2.2,令L中第i行元素L[i]=S(i),其中S(i)表示非线性部件的第i个元素;用整数j,k作为循环变量,初始值均为0;
步骤a2.3,将L[i]与M部分第i行第j列元素M(i)[j]异或,记为将循环变量j增加1,即令j=j+1;若j<n’,重复执行步骤a2.3,否则进入步骤a2.4;
步骤a2.4,将L[i]与M部分第R[i]行第k列元素M(R[i])[k]异或,记为 令k=k+1;若k<n-n’-1,重复执行步骤a2.4,否则进入步骤a2.5;
步骤a2.5,令i=i+1;若i<2k,返回步骤a2.2,否则进入步骤a2.6;
步骤a2.6,输出查找表{L,M,R}。
4.根据权利要求3所述抗任意阶侧信道攻击的掩码防护方法,其特征在于:步骤3中查找表的刷新过程包括以下步骤,
步骤b1,首先生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;根据查找表的生成过程中第一阶段的方式生成M’和R’部分,L’与刷新之前的查找表L部分相同;用整数i,j,k作为循环变量,初始值均为0;
步骤b2,先将L’[i]与M’部分第i行第j列元素M’(i)[j]异或,再将结果与M部分第i行第j列元素M(i)[j]异或,得到令j=j+1;若j<n’,重复执行步骤b2,否则进入步骤b3;
步骤b3,将L’[i]与M’部分第R(i)行第k列元素M’(R(i))[k]异或,再将结果与M部分第R(i)行第k列元素M(R(i))[k]异或,得到令k=k+1;若k<n-n’-1,重复执行步骤b3,否则进入步骤b4;
步骤b4,令i=i+1;若i<2k,返回步骤b2,否则进入步骤b5;
步骤b5,输出查找表{L’,M’,R’}。
5.一种抗任意阶侧信道攻击的掩码防护系统,其特征在于:用于通过重新构造生成查找表替换非线性部件,
设加密算法的非线性部件S(x)定义为
S:{0,1}k→{0,1}k'
其中,输入宽度为k,输出宽度为k’,原始输入为x,原始输出y,要求将x拆分为相互独立的n个共享因子,记为x1,x2,…,xn,且满足将y拆分成y1,y2,…,yn,且满足
所述查找表包含两个2k维的列向量L和R及一个n’×2k的随机数矩阵M,其中将查找表记为{L,M,R};设M(u)[j]表示随机数矩阵M中行向量M(u)的第j个元素,向量L的每个元素L(u)为原始的非线性部件输出与n-1个随机数的异或值,u∈[0,2k-1],对应的n-1个随机数存储在随机数矩阵M的两行,分别为M(u)和M(R[u]),向量R用于存储第二次查询的地址,R[u]表示向量R的第u个元素;该查找表{L,M,R}满足输入x1,x2,…,xn,输出独立随机的y1,y2,…,yn,同时不泄漏原始输入x和输出y的任何信息;
包括以下模块,
第一模块,用于首先生成查找表{L,M,R},含有2k行n’+2列;设整数i,j作为循环变量,i的初始值为0,j的初始值为1;
第二模块,用于生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;令L’部分中第i行元素R’部分中第i行元素M’部分中第i行向量 令i=i+1;若i<2k,重复执行工作,否则用查找表{L’,M’,R’}更新当前的查找表{L,M,R},命令第三模块工作;
第三模块,用于通过查找表的刷新过程刷新查找表{L,M,R},包括用刷新时得到的新的查找表{L’,M’,R’}更新当前的查找表{L,M,R};令j=j+1;若j<n-1,命令第三模块工作,否则命令第四模块工作;
执行表刷新过程后,生成刷新后的查找表{L’,M’,R’},且{L,M,R}与{L’,M’,R’}的元素随机无关,同时刷新前后满足下式,
则任意相同输入,查询{L,M,R}与{L’,M’,R’}都能产生n个随机共享因子,且异或值均为原始S盒的输出值;
第四模块,用于查询查找表{L,M,R}中的第xn行,令y1=L[xn],{y2,...,yn’+1}=M(xn);再查询第R[xn]行,令{yn’+2,...,yn}=M(R[xn]);
第五模块,用于输出{y1,y2,…,yn}。
6.根据权利要求5所述抗任意阶侧信道攻击的掩码防护系统,其特征在于:第四模块中,若M(R[xn])中元素个数大于n-n’-1,取前n-n’-1个元素作为{yn’+2,...,yn}。
7.根据权利要求5或6所述抗任意阶侧信道攻击的掩码防护系统,其特征在于:第一模块中,包括以下两个部分,
第一部分,用于生成R和M部分,包括如下单元,
单元a1.1,生成一个含有2k个元素的向量A,使得A中第u个元素A[u]=u;用一个整数i作为循环变量,初始值为0;
单元a1.2,生成一个随机整数r,满足0≤r≤2k-1且r≠i;令R部分中第i行元素R[i]满足R[i]=A[r];用另一个整数j作为循环变量,初始值为0;
单元a1.3,生成一个随机整数m,满足0≤m≤2k-1;令M部分中第i行第j列元素M(i)[j]满足M(i)[j]=m;令j=j+1;若j<n’,重复工作,否则命令单元a1.4工作;
单元a1.4,令i=i+1,若i<2k,命令单元a1.2工作,否则命令单元a1.5工作;
单元a1.5,输出R和M部分;
第二部分,用于生成L部分,包括如下单元,
单元a2.1,首先生成一张空的查找表{L,M,R},含有2k行n’+2列,令M和R部分等于第一阶段得到的M和R部分;用一个整数i作为循环变量,初始值为0;
单元a2.2,令L中第i行元素L[i]=S(i),其中S(i)表示非线性部件的第i个元素;用整数j,k作为循环变量,初始值均为0;
单元a2.3,将L[i]与M部分第i行第j列元素M(i)[j]异或,记为将循环变量j增加1,即令j=j+1;若j<n’,重复进行工作,否则命令单元a2.4工作;
单元a2.4,将L[i]与M部分第R[i]行第k列元素M(R[i])[k]异或,记为 令k=k+1;若k<n-n’-1,重复进行工作,否则命令单元a2.5工作;
单元a2.5,令i=i+1;若i<2k,命令单元a2.2工作,否则命令单元a2.6工作;
单元a2.6,输出查找表{L,M,R}。
8.根据权利要求7所述抗任意阶侧信道攻击的掩码防护系统,其特征在于:第一模块中,包括以下单元,
单元b1,首先生成一张空的查找表{L’,M’,R’},含有2k行n’+2列;根据查找表的生成过程中第一阶段的方式生成M’和R’部分,L’与刷新之前的查找表L部分相同;用整数i,j,k作为循环变量,初始值均为0;
单元b2,先将L’[i]与M’部分第i行第j列元素M’(i)[j]异或,再将结果与M部分第i行第j列元素M(i)[j]异或,得到令j=j+1;若j<n’,重复进行工作,否则命令单元b3工作;
单元b3,将L’[i]与M’部分第R(i)行第k列元素M’(R(i))[k]异或,再将结果与M部分第R(i)行第k列元素M(R(i))[k]异或,得到令k=k+1;若k<n-n’-1,重复进行工作,否则命令单元b4工作;
单元b4,令i=i+1;若i<2k,命令单元b2工作,否则命令单元b5工作;
单元b5,输出查找表{L’,M’,R’}。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610588636.1A CN106059746B (zh) | 2016-07-22 | 2016-07-22 | 一种抗任意阶侧信道攻击的掩码防护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610588636.1A CN106059746B (zh) | 2016-07-22 | 2016-07-22 | 一种抗任意阶侧信道攻击的掩码防护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106059746A CN106059746A (zh) | 2016-10-26 |
CN106059746B true CN106059746B (zh) | 2019-04-12 |
Family
ID=57417352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610588636.1A Active CN106059746B (zh) | 2016-07-22 | 2016-07-22 | 一种抗任意阶侧信道攻击的掩码防护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106059746B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011707B (zh) * | 2017-11-28 | 2021-07-06 | 武汉大学 | 一种用于硬件加密设备的频率安全性分析系统及方法 |
CN109617667B (zh) * | 2018-09-17 | 2020-09-29 | 中国科学院信息工程研究所 | 一种针对aes算法线性部分的高效掩码防护方法 |
CN114048472B (zh) * | 2022-01-17 | 2022-06-24 | 浙江大学 | 基于线性码掩码和位切片技术的抗旁路攻击的防御方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571331A (zh) * | 2012-02-07 | 2012-07-11 | 中国科学院软件研究所 | 一种用于防御能量分析攻击的密码算法实现保护方法 |
CN105051677A (zh) * | 2012-12-14 | 2015-11-11 | 微软技术许可有限责任公司 | 用共享随机比特进行掩码 |
CN105790923A (zh) * | 2016-04-26 | 2016-07-20 | 深圳市证通电子股份有限公司 | 密码算法抗功耗分析的实现方法及装置 |
-
2016
- 2016-07-22 CN CN201610588636.1A patent/CN106059746B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571331A (zh) * | 2012-02-07 | 2012-07-11 | 中国科学院软件研究所 | 一种用于防御能量分析攻击的密码算法实现保护方法 |
CN105051677A (zh) * | 2012-12-14 | 2015-11-11 | 微软技术许可有限责任公司 | 用共享随机比特进行掩码 |
CN105790923A (zh) * | 2016-04-26 | 2016-07-20 | 深圳市证通电子股份有限公司 | 密码算法抗功耗分析的实现方法及装置 |
Non-Patent Citations (4)
Title |
---|
Accelerating Higher-Order Masking of AES Using Composite Field and SIMD;Abdulaziz Miyajan etc.;《IEEE》;20151210;第575-580页 |
Security analysis of higher-order Boolean;G.Piret etc.;《IEEE》;20080321;第1-11页 |
针对RSM 轻量防护方法的能量分析;唐明等;《武汉大学学报》;20160630;第62卷(第3期);第235-241页 |
针对轻量化掩码方案的功耗分析方法;唐明等;《密码学报》;20140215;第51-63页 |
Also Published As
Publication number | Publication date |
---|---|
CN106059746A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107070630B (zh) | 一种aes算法的快速安全硬件结构 | |
CN106788974A (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
KR101026439B1 (ko) | Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 | |
Coron et al. | High order masking of look-up tables with common shares | |
CN102546157A (zh) | 一种抵抗能量分析的随机混合加密系统及其实现方法 | |
CN101009554A (zh) | 一种抗功耗攻击的字节替换电路 | |
CN103444124A (zh) | 加密处理装置、加密处理方法和程序 | |
CN106059746B (zh) | 一种抗任意阶侧信道攻击的掩码防护方法及系统 | |
Cao et al. | Related-key differential cryptanalysis of the reduced-round block cipher GIFT | |
CN117118617B (zh) | 一种基于模分量同态的分布式门限加解密方法 | |
Luo et al. | Differential fault attack on TWINE block cipher with nibble | |
Patel et al. | An efficient approach for privacy preserving distributed clustering in semi-honest model using elliptic curve cryptography | |
Bakhtiyor et al. | Algebraic Cryptanalysis of O'zDSt 1105: 2009 Encryption Algorithm | |
Jovanovic et al. | Multi-stage fault attacks on block ciphers | |
Lin et al. | A new Feistel-type white-box encryption scheme | |
Wood et al. | Constructing large S-boxes with area minimized implementations | |
CN201039199Y (zh) | 一种抗功耗攻击的字节替换电路 | |
CN106209347B (zh) | 一种复杂度可变的任意阶掩码防护方法 | |
Wang et al. | A Signature Scheme Applying on Blockchain Voting Scene Based on the Asmuth-Bloom Algorithm | |
Kim et al. | Efficient masked implementation for SEED based on combined masking | |
Kang et al. | Secure hardware implementation of ARIA based on adaptive random masking technique | |
Maghrebi et al. | Register leakage masking using gray code | |
CN116915405B (zh) | 基于隐私保护的数据处理方法、装置、设备及存储介质 | |
CN116595589B (zh) | 基于秘密共享机制的分布式支持向量机训练方法及系统 | |
CN112543094A (zh) | 一种基于多随机数的des掩码抗侧信道攻击实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |