一种基于图同构的程序高阶功耗侧信道安全性的证明方法技术

技术编号:27354981 阅读:17 留言:0更新日期:2021-02-19 13:34
本发明专利技术涉及一种基于图同构的程序高阶功耗侧信道安全性的证明方法。本发明专利技术提供的方法通过变量类型敏感的图同构判定两个变量集合的联合概率分布是否相同。在本发明专利技术提供的方法中:将变量的计算表达式转化为抽象语法树或有向无环图等形式;在对表达式化简时,为了保证不会影响验证的结果,采用代数中的等价规则;对于表达式中的常量,通过子表达式替换的方法减少常量时,保证可观察变量集合的联合概率分布不变。通过多个实验,本发明专利技术提出的方法可以有效减少模型计数求解的次数,从而提高了验证效率。效率。效率。

【技术实现步骤摘要】
一种基于图同构的程序高阶功耗侧信道安全性的证明方法


[0001]本专利技术涉及一种基于图同构的程序高阶功耗侧信道安全性的证明方法,可应用于随机掩码高阶功耗侧信道安全的验证。

技术介绍

[0002]随着信息技术的发展,密码算法被广泛应用于保护隐私数据的传输和处理。现代密码学是建立在计算复杂性基础之上的,因此通过暴力枚举的攻击很难破解密钥。但是,Kocher、Quisquater和Mangard等人提出的侧信道攻击可以利用系统运行时的时间、功耗、电磁辐射等物理信息快速破解密钥。
[0003]随机掩码是一种有效防御功耗侧信道攻击的策略,因此受到了国内外科研院所和企业的研究和采用。随机掩码采用随机数掩码来避免物理信息与加密密钥之间统计依赖关系。采用n阶掩码的程序理论上应该能抵御n阶功耗侧信道攻击。然而,正确实现n阶掩码的密码算法是一项复杂又易错的工作,因此需要自动化的验证方法来证明程序高阶功耗侧信道安全性。
[0004]基于类型推导的证明方法和基于模型计数求解的证明方法相继提出,用于证明高阶功耗侧信道安全性。基于类型推导的证明方法高效,但是存在误报导致假阳性;基于模型计数求解的证明方法理论上不存在误报,但是由于计算代价高而无法高效地对完整程序进行验证。

技术实现思路

[0005]本专利技术的目的是:减少模型计数求解的次数,有效提高验证效率。
[0006]为了达到上述目的,本专利技术的技术方案是提供了一种基于图同构的程序高阶功耗侧信道安全性的证明方法,其特征在于,包括以下步骤:
[0007]步骤1、输入程序及其变量类型,互不相交的集合T1和T2,其中:任何集合 T1中的可观察变量集合的联合统计分布独立于密钥,任何集合T2中的可观察变量集合的联合统计分布不独立于密钥;
[0008]步骤2、构造输入程序的中间表示形式,中间表示形式为抽象语法树或有向无环图;
[0009]对于任意一个含有d个可观察变量的集合t,中间表示形式为t个抽象语法树或有向无环图;一个抽象语法树或有向无环图对应一个计算表达式,抽象语法树或有向无环图的中间节点对应计算表达式的运算符,叶子节点对应计算表达式的输入变量;
[0010]步骤3、对于任意一个含有d个可观察变量的集合t,检查对应的t个抽象语法树或有向无环图中是否含有常量,如果有常量,则进入步骤4对表达式进行化简和变换;如果没有常量,则进入步骤6进行变量类型敏感的图同构检查;
[0011]步骤4、对t个抽象语法树或有向无环图中的子表达式等价变换,使得每一个常量c的出现形式变为x

c,其中,x为变量,

表示加、减、异或中的任意一个运算符,x在t个抽象
语法树或有向无环图出现形式只能为x

c,或x

c1且c1表示与c不同的其他常量;
[0012]步骤5、对t个抽象语法树或有向无环图中所有形式为x

c的子表达,迭代执行以下步骤5.1及5.2减少常量:
[0013]步骤5.1、将所有子表达式x

c替换为x;
[0014]步骤5.2、将所有子表达式x

c1替换为x

c2,其中如果

是异或运算符,则表示异或运算符;如果

是加或减运算符,则表示减运算符。
[0015]步骤6、在集合T1和集合T2中查找是否存在一个可观察变量集合t1,使得集合t和可观察变量集合t1是变量类型敏感的图同构,即同时满足以下两个条件:
[0016]条件一)可观察变量集合t1和集合t大小相同;
[0017]条件二)可观察变量集合t1和集合t之间存在一个一一对应关系h:t1

t,使得任意一对变量(x,h(x))的抽象语法树或有向无环图是图同构的,并且图同构中对应变量的类型相同,h(x)为对应关系函数;
[0018]步骤7、如果在集合T1中找到了一个步骤6所述的可观察变量集合t1,则证明集合t的联合统计分布独立于密钥;如果在集合T2中找到了一个步骤6所述的可观察变量集合t1,则证明集合t的联合统计分布不独立于密钥;如果集合T1和集合T2中都不存在步骤6所述的可观察变量集合t1,则无法判定集合t的联合统计分布是否独立于密钥。
[0019]优选地,步骤1中,所述变量类型包括密钥变量、明文变量和随机变量。
[0020]优选地,步骤2中,通过编译技术的词法分析器和语法分析器构造输入程序的中间表示形式。
[0021]优选地,步骤4中,根据代数中的等价规则对所述t个抽象语法树或有向无环图中的子表达式等价变换,等价规则比如结合律、交换律和分配律等。
[0022]本专利技术提供的方法通过变量类型敏感的图同构判定两个变量集合的联合概率分布是否相同。在本专利技术提供的方法中:将变量的计算表达式转化为抽象语法树或有向无环图等形式;在对表达式化简时,为了保证不会影响验证的结果,采用代数中的等价规则;对于表达式中的常量,通过子表达式替换的方法减少常量时,保证可观察变量集合的联合概率分布不变。通过多个实验,本专利技术提出的方法可以有效减少模型计数求解的次数,从而提高了验证效率。
附图说明
[0023]图1为本专利技术的具体步骤;
[0024]图2为示例的抽象语法树,其中叶子节点为变量和常量,中间节点为运算符;
[0025]图3为示例中变量y和z的计算表达式经过表达式化简后的抽象语法树;
[0026]图4为示例中变量y和z的计算表达式经过步骤5后的抽象语法树。
具体实施方式
[0027]下面结合具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0028]本专利技术提供的一种基于图同构的程序高阶功耗侧信道安全性的证明方法包括以下步骤:
[0029]步骤1、输入程序及其变量类型,变量类型包括三种:密钥变量、明文变量和随机变量,互不相交的集合T1和T2,其中:任何集合T1中的可观察变量集合的联合统计分布独立于密钥,任何集合T2中的可观察变量集合的联合统计分布不独立于密钥;
[0030]步骤2、通过编译技术的词法分析器和语法分析器构造输入程序的中间表示形式,中间表示形式为抽象语法树或有向无环图;
[0031]对于任意一个含有d个可观察变量的集合t,中间表示形式为t个抽象语法树或有向无环图;一个抽象语法树或有向无环图对应一个计算表达式,抽象语法树或有向无环图的中间节点对应计算表达式的运算符,叶子节点对应计算表达式的输入变量;
[0032]步骤3、对于任意一个含有d个可观察变量的集合t,检查对应的t个抽象语法树或有向无环图中是否含有常量,如果有常量,则进入步骤4对表达式进行化简和变换;如果没有常本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于图同构的程序高阶功耗侧信道安全性的证明方法,其特征在于,包括以下步骤:步骤1、输入程序及其变量类型,互不相交的集合T1和T2,其中:任何集合T1中的可观察变量集合的联合统计分布独立于密钥,任何集合T2中的可观察变量集合的联合统计分布不独立于密钥;步骤2、构造输入程序的中间表示形式,中间表示形式为抽象语法树或有向无环图;对于任意一个含有d个可观察变量的集合t,中间表示形式为t个抽象语法树或有向无环图;一个抽象语法树或有向无环图对应一个计算表达式,抽象语法树或有向无环图的中间节点对应计算表达式的运算符,叶子节点对应计算表达式的输入变量;步骤3、对于任意一个含有d个可观察变量的集合t,检查对应的t个抽象语法树或有向无环图中是否含有常量,如果有常量,则进入步骤4对表达式进行化简和变换;如果没有常量,则进入步骤6进行变量类型敏感的图同构检查;步骤4、对t个抽象语法树或有向无环图中的子表达式等价变换,使得每一个常量c的出现形式变为x

c,其中,x为变量,

表示加、减、异或中的任意一个运算符,x在t个抽象语法树或有向无环图出现形式只能为x

c,或x

c1且c1表示与c不同的其他常量;步骤5、对t个抽象语法树或有向无环图中所有形式为x

c的子表达,迭代执行以下步骤5.1及5.2减少常量:步骤5.1、将所有子表达式x

c替换为x;步骤5.2、将所有子表达式x

c1替换为x...

【专利技术属性】
技术研发人员:宋富高鹏飞谢弘毅
申请(专利权)人:上海科技大学
类型:发明
国别省市:

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

1