一种基于探测集约减的掩码安全性验证方法技术

技术编号:38429601 阅读:12 留言:0更新日期:2023-08-07 11:26
本发明专利技术公开了一种基于探测集约减的掩码安全性验证方法,其步骤为:1)将给定掩码防护方案解析为有向无环图G,并计算图G中每个顶点n的辅助数据结构;2)按字典序不重复地选取图G中的d个顶点组成的集合N

【技术实现步骤摘要】
一种基于探测集约减的掩码安全性验证方法


[0001]本专利技术涉及抗侧信道掩码防护领域,特别涉及一种基于探测集约减的掩码安全性验证方法,可用于验证抗侧信道掩码防护的安全性。

技术介绍

[0002]当今社会,密码算法和密码设备的应用十分广泛,在各个领域保护着数据的安全性。尽管密码算法有着极强的理论安全性,但在实际应用中,由于运行密码算法的密码设备会泄露敏感信息的物理特征,例如电磁辐射、声音等等。攻击者可利用这些物理信息进行差分能量分析、相关性能量分析攻击等侧信道攻击,从而将敏感信息恢复。
[0003]为了抵抗这类侧信道分析技术,不同的防护技术被提出,其中最有效的一项技术就是掩码技术。掩码技术基于秘密分割的门限思想,在理论上也有较强的安全性。对于复杂的密码算法,设计对应的抗侧信道掩码方案并非易事,由于设计者的疏忽,掩码方案可能仍然存在不安全之处。而手动对掩码方案中的每一个敌手可探测到的变量集合(探测集)进行手动分析是一项繁琐耗时且极易出错的任务,因此利用形式化等技术对掩码方案安全性进行自动化的验证具有重要的意义。
[0004]为了刻画掩码防护的安全性,不同的安全性概念被提出,其中应用最为广泛的两个安全性概念是探测安全性和强探测安全性。探测安全性可用于评估软件实现的掩码方案的安全性,敌手使用一根探针可以探测到一个变量的概率分布。相比于软件实现,掩码方案的硬件实现还需要考虑硬件电路中时钟毛刺现象的存在,因此敌手使用一根探针可以探测到一组变量的联合分布。敌手的攻击能力由其能使用的探针个数决定。敌手使用其探针所能探测到的变量集合称为探测集。对于给定掩码方案,若敌手所能探测到该掩码方案中的每一个探测集中的变量的联合分布均与秘密变量(敏感信息)统计独立,则该掩码方案是安全的。
[0005]为了证明掩码方案的强探测安全性,不同的技术被提出。Roderick Bloem等人提出了基于傅里叶展开的验证方法。该方法的原理是,若敌手所探测变量的傅里叶展开式中秘密变量集合的所有非空子集的傅里叶系数均为0,则秘密变量集合与该探测变量统计独立。由于直接计算傅里叶系数的开销较大,Roderick Bloem等人将傅里叶系数是否为0的问题编码为SAT公式,通过SAT公式是否有解来判断傅里叶系数是否为0。这种方法由于需要调用求解器,所以其开销很大。Gilles Barthe等人提出了基于程序语言和概率信息流分析的验证方法。该方法利用随机掩码与表达式之间存在的双射关系,将探测集中该表达式的每一处出现替换为该随机掩码。这种替换保留了掩码方案对应的掩码程序的语义,不会影响探测集中变量的联合分布。经过这种替换后,若最终探测集的表达式中不含有秘密变量,则这个探测集是安全的。这种方法效率较高,但是由于其使用嵌套的表达式,且在表达式替换不成功时会对表达式进行正则化,在验证某些复杂的掩码方案时会遇到栈溢出的问题从而无法完成验证。David Knichel等人提出了基于ROBDD的布尔变量集合统计独立性验证方法。该方法为探测集和秘密变量集合中的每一个变量构建ROBDD,并利用ROBDD计算探测集
的任一子集和秘密变量集合的任一子集中的变量取值全部为1的概率和这两个子集中变量取值分别全部为1的概率乘积,通过验证这两个概率在不同的子集组合下总是相等来证明探测集和秘密变量集合的统计独立性。这种方法不会出现基于傅里叶展开的方法和基于程序语言和概率信息流分析的方法所出现的假阴性问题(即将安全的掩码方案判定为不安全),但是由于其需要构建ROBDD,消耗的处理器和内存资源极大,存在性能不足的问题。

技术实现思路

[0006]本专利技术的目的是,针对给定掩码方案,给出敌手通过探针探测到的探测集的约减方法,通过将这个探测集约减为空集,证明该探测集是安全的。若敌手所能探测到的所有探测集均可被约减为空集,则给定的掩码方案是安全的。本专利技术的方法是一种新的掩码安全性验证方法,能够高效地验证较为复杂的抗侧信道掩码方案的安全性。
[0007]实现上述目的的本专利技术的技术方案为,一种基于探测集约减的掩码安全性验证方法,该方法流程如图1所示,包括如下步骤:
[0008]1)对于给定包含若干门的硬件掩码方案,将其解析为有向无环图G。掩码方案中的门包括输入门、中间门和输出门。按是否为线性,中间门可分为线性门(异或门、同或门、非门、寄存器等)和非线性门(与门、或门、与非门、或非门等)。按照操作数的个数,可将中间门分为一元门(非门、寄存器等)和二元门(与门、或门、与非门、或非门、异或门、同或门等)。解析的过程为:将掩码方案中的每个门对应到图G的一个顶点n。具体而言,将掩码方案的输入门对应到图G中一个入度为0,出度可为任意值的顶点n;将输出门对应到图G中一个入度为1,出度为0的顶点n;将一元门对应到图G中一个入度为1,出度可为任意值的顶点n;将二元门对应到图G中一个入度为2,出度可为任意值的顶点n。一元门、输出门对应顶点n的入边指向其操作数对应的顶点n.lft;二元门对应顶点n的两条入边分别指向两个操作数对应的顶点n.lft和n.rgt。
[0009]2)计算图G中每个顶点n的辅助数据结构,即支持集、单路达掩码集合、完美掩码集合和探测集,分别用supp(n),unq(n),perf(n),O
n
表示。根据输入是否为掩码电路敏感信息的分享值,输入门可分为分享门和随机门。以下行文中,\表示集合的差集运算,∪表示集合的并集运算,∩表示集合的交集运算,{
·
}表示由括号内的元素
·
构成的集合,表示空集,s∈S表示s是集合S的一个元素。掩码方案将敏感信息x分割为d+1(d≥1)个分享值x1,

,x
d+1
,分别对应到有向无环图中的d+1个顶点这d+1个顶点中第j个顶点对应辅助数据结构计算方式为:当1≤j≤d时,当j=d+1时,分享值x
d+1
对应的顶点对应辅助数据结构计算方式为对应辅助数据结构计算方式为随机门对应于一个随机数r,在有向无环图中对应的顶点n的辅助数据结构的计算方式为supp(n)=unq(n)=perf(n)=O
n
={r}。一元门和输出门对应顶点n的辅助数据结构计算方式为supp(n)=supp(n.lft),unq(n)=unq(n.lft),perf(n)=perf(n.lft)和O
n
=O
n.lft
。二元门对应顶点n的支持集和单路达掩码集合的计算方式为supp(n)=supp(n.ltf)∪supp(n.rgt),unq(n)=(unq(n.lft)∪unq(n.rgt))\(unq(n.lft)∩unq(n.rgt))。二元线性门对应顶点n的完美掩码集合计算方
式为pref(n)=pref(n.lft)∪perf(n.rgt)∩unq(n),二元非线性门对应顶点n的完美掩码集合计算方式为二元门对应顶点n的探测集计算方式为:若n.lft和n.rgt对应的门均为寄存器,则O
n
={n.l本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于探测集约减的掩码安全性验证方法,其步骤包括:1)对于给定包含若干门的硬件掩码方案,将其解析为有向无环图G;2)计算有向无环图G中每个顶点n的辅助数据结构,即支持集supp(n)、单路达掩码集合unq(n)、完美掩码集合perf(n)和探测集O
n
;3)按字典序不重复地选取给定掩码方案对应的有向无环图G中的d个顶点组成的集合N
d
={n1,

,n
d
},计算d阶探测集并进行步骤4);若G中不存在未被选取的d个顶点的组合,则判定给定的掩码方案是安全的,该掩码防护方案通过安全性验证;为表示N
d
中的第j个顶点对应的探测集;4)若当前给定探测集为空集,则原d阶探测集是安全的,进入步骤3);将当前的探测集命名为并根据变量的掩码情况将变量分为两两之间不共享掩码的若干子集并计算各子集的完美掩码矩阵然后进行步骤5);5)从i=1到i=t,若第i个子集不服从均匀分布且可扩展,则将探测集扩展为探测集并进入步骤4)对探测集进行操作;若不服从均匀分布且不可扩展,则判定给定的掩码方案可能存在安全性问题,输出可能存在泄漏的d阶顶点集合N
d
,结束验证;若第i个子集服从均匀分布,则将子集从中删除得到并进入步骤4)对探测集进行操作。2.根据权利要求1所述的方法,其特征在于,所述硬件掩码方案将敏感信息x分割为d+1个分享值x
j
;d≥1,1≤j≤d+1;且所述硬件掩码方案包含若干输入门、中间门和输出门;根据输入是否为掩码电路敏感信息的分享值,输入门可分为分享门和随机门;按是否为线性,掩码方案中的中间门可分为线性门和非线性门;按照操作数的个数,将中间门分为一元门和二元门。3.根据权利要求2所述的方法,其特征在于,将所述硬件掩码方案解析为有向无环图G的过程为:将硬件掩码方案的输入门对应到图G中一个入度为0,出度可为任意值的顶点n;将输出门对应到有向无环图G中一个入度为1,出度为0的顶点n;将一元门对应到有向无环图G中一个入度为1,出度可为任意值的顶点n;将二元门对应到有向无环图G中一个入度为2,出度可为任意值的顶点n;一元门、输出门对应顶点n的入边指向其操作数对应的顶点n.lft;二元门对应顶点n的两条入边分别指向两个操作数对应的顶点n.lft和n.rgt。4.根据权利要求3所述的方法,其特征在于,所述敏感信息x的d+1个分享值在有向无环图中对应的d+1个顶点每一顶点的辅助数据结构计算方式为:当1≤j≤d时,当j=d+1时,随机门r在有向无环图中对应的顶点n的辅助数据结构的计算方式为supp(n)=unq(n)=perf(n)=O
n
={...

【专利技术属性】
技术研发人员:周锋陈华范丽敏姚富曹伟琼
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1