CN112134729A - 一种基于分治的程序高阶功耗侧信道安全性的证明方法 - Google Patents
一种基于分治的程序高阶功耗侧信道安全性的证明方法 Download PDFInfo
- Publication number
- CN112134729A CN112134729A CN202010908485.XA CN202010908485A CN112134729A CN 112134729 A CN112134729 A CN 112134729A CN 202010908485 A CN202010908485 A CN 202010908485A CN 112134729 A CN112134729 A CN 112134729A
- Authority
- CN
- China
- Prior art keywords
- variables
- power consumption
- side channel
- consumption side
- order power
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012795 verification Methods 0.000 claims description 5
- 238000009795 derivation Methods 0.000 claims description 4
- 238000004880 explosion Methods 0.000 abstract description 3
- YVPYQUNUQOZFHG-UHFFFAOYSA-N amidotrizoic acid Chemical compound CC(=O)NC1=C(I)C(NC(C)=O)=C(I)C(C(O)=O)=C1I YVPYQUNUQOZFHG-UHFFFAOYSA-N 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/28—Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种基于分治的程序高阶功耗侧信道安全性的证明方法,其特征在于,包括以下步骤:对于一个含有n个可观察变量的程序,为证明程序是d阶功耗侧信道安全性,即所有大小为d的可观察变量集合的联合统计分布都独立于密钥,本发明的方法通过证明少量可观察变量集合的联合统计分布独立于密钥来证明d阶功耗侧信道安全性。采用本发明的方法可以有效避免组合爆炸问题,从而可以高效地证明程序高阶功耗侧信道安全性。
Description
技术领域
本发明涉及一种基于分治的程序高阶功耗侧信道安全性的证明方法,可应用于随机掩码高阶功耗侧信道安全的验证。
背景技术
现代密码学是当今计算机信息系统安全的基石。然而,在实践中,攻击者可以利用系统运行时的物理信息破解密钥,比如采用密码算法程序运行时的时间、功耗、电磁辐射等信息,这种攻击被称为侧信道攻击。
为阻止基于功耗的侧信道攻击,主要采用基于随机数掩码来避免物理信息与加密密钥之间统计依赖关系。采用n阶掩码的程序理论上可以抵御n阶功耗侧信道攻击。然而,采用安全的n阶掩码模式无法直接保证程序必然能抵御n阶功耗侧信道攻击,因此需要自动化的验证方法来证明程序高阶功耗侧信道安全性。
基于类型推导的证明方法和基于模型计数求解的证明和检查方法相继提出,并应用于证明d阶功耗侧信道安全性。对于一个含有n个可观察变量的程序,为证明程序是d阶功耗侧信道安全性,即所有大小为d的可观察变量集合的联合统计分布都独立于密钥,需要验证个变量集合。当可观察变量数和阶数变大时,出现组合爆炸问题,无法快速证明和检测实际密码程序的高阶功耗侧信道安全性。
发明内容
本发明要解决的技术问题是:当可观察变量数和阶数变大时,出现组合爆炸问题,现有的证明程序高阶功耗侧信道安全性的方法无法快速证明和检测实际密码程序的高阶功耗侧信道安全性。
为了解决上述技术问题,本发明的技术方案是提供了一种基于分治的程序高阶功耗侧信道安全性的证明方法,其特征在于,通过分治策略,把证明程序d阶功耗侧信道安全性问题转化到证明一系列大集合变量的d阶功耗侧信道安全性问题,而证明一系列大集合变量的d阶功耗侧信道安全性问题又是递归的进行分治验证,具体包括以下步骤:
步骤1、构造集合{(V,d)},进入步骤2,其中,V表示可观察变量集合,d为大于0的整数表示需要验证的阶数;
步骤2、对于给定集合{(V1,d1),...,(Vn,dn)},V1,...,Vn为可观察变量集合;d1,...,dn为大于0且小于或等于d的整数,且保证d1+…+dn=d,包括以下步骤:
步骤2.3、对于任何i,i=1,…,n,对于任意集合Vi\Di中的变量x,验证变量集合的联合统计分布是否独立于密钥变量,如果是,则将x加入集合Di,其中,Vi\Di表示集合Vi减去Di中的元素得到的集合;
重复步骤2.3直到没有变量可以加入集合Di,在所有能加入Di的变量x加入后,进行分治;
步骤2.4、对于任意满足式(1)和式(2)的所有整数组合i1,...,in,进入步骤2递归证明集合{(D1,d1-i1),(V1\D1,i1),...,(Dn,dn-in),(Vn\Dn,in)}:
0≤i1≤min(d1,|V1\D1|),…,0≤in≤min(dn,|Vn\Dn|) (1)
i1+i2+…+in!=0 (2)
式(1)及式(2)中,min(dn,|Vn\Dn|)表示从dn和|Vn\Dn|两者中选取较小的值;
在递归证明集合{(D1,d1-i1),(V1\D1,i1),...,(Dn,dn-in),(Vn\Dn,in)}时,也保证了((d1-i1)+i1)+…+((dn-in)+in)=d1+…+dn=d。
对于一个含有n个可观察变量的程序,假设变量集合为V。为证明程序是d阶功耗侧信道安全性,即所有大小为d的可观察变量集合的联合统计分布都独立于密钥,本发明通过证明少量可观察变量集合V1,…,Vm的联合统计分布独立于密钥来证明d阶功耗侧信道安全性,且对于任意一个大小为d的可观察变量集合V’,都存在一个集合Vi使得
附图说明
图1为本发明的技术方案的具体步骤;
图2为待验证的程序
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
根据本发明的技术方案,实施重点是对攻击者可观测变量进行分治,减少需要验证的可观测变量集合数量,同时保证不遗漏需要验证的可观测变量集合,避免假阴性。对本发明作进一步的详细说明,具体实施技术方案如图1所示,包括以下步骤:
步骤1、命名函数HOMV(P,Xp,Xk,Xr,Xo,d),其中,P表示待验证程序,Xp表示程序P中公开变量集合,Xk表示程序P中密钥变量集合,Xr表示程序P中随机变量集合,Xo表示程序P中攻击者可观察变量集合,d为大于0的整数;
构造集合{(V,d)},进入步骤2,其中,V表示可观察变量集合;
步骤2、对于给定集合{(V1,d1),...,(Vn,dn)},V1,...,Vn为可观察变量集合;d1,...,dn为大于0且小于或等于d的整数,且保证d1+…+dn=d,包括以下步骤:
步骤2.1、对于任意i,i=1,…,n,从可观察变量集合Vi中选取di个变量组成集合Di,通过类型推导或基于SMT求解器的方法检查变量集合的联合统计分布是否独立于密钥变量(参考附图1第12行至第14行,其中,T表示变量集合的联合统计分布独立于密钥变量,⊥表示变量集合的联合统计分布不独立于密钥变量);
步骤2.3、对于任何i,i=1,…,n,对于任意集合Vi\Di中的变量x,验证变量集合的联合统计分布是否独立于密钥变量,如果是,则将x加入集合Di(参考附图1第15行至第18行);重复步骤2.3直到没有变量可以加入集合Di,在所有能加入Di的变量x加入后,进行分治;
步骤2.4、对于任意满足式(1)和式(2)的所有整数组合i1,...,in,进入步骤2递归证明集合{(D1,d1-i1),(V1\D1,i1),...,(Dn,dn-in),(Vn\Dn,in)}:
0≤i1≤min(d1,|V1\D1|),…,0≤in≤min(dn,|Vn\Dn|) (1)
i1+i2+…+in!=0 (2)
式(1)及式(2)中,min(dn,|Vn\Dn|)表示从dn和|Vn\Dn|两者中选取较小的值;
在递归证明集合{(D1,d1-i1),(V1\D1,i1),...,(Dn,dn-in),(Vn\Dn,in)}时,也保证了((d1-i1)+i1)+…+((dn-in)+in)=d1+…+dn=d。
以图2所示程序为例,验证该程序是2阶侧信道安全的,包括以下步骤:
首先,调用图1函数HOMV。在函数HOMV中调用Explore({({a0,a1,a2_1,b0,b1,b2_3,r0_01,r0_02,r0_12,p0_01_4,r0_10_5,p0_10_6,r0_10_7,p0_02_8,r0_20_9,p0_20_10,r0_20_11,p0_12_12},2)})函数,验证所有大小为2的可观察变量集合的联合概率分布独立于密钥变量a和b的取值。假设V={a0,a1,a2_1,b0,b1,b2_3,r0_01,r0_02,r0_12,p0_01_4,r0_10_5,p0_10_6,r0_10_7,p0_02_8,r0_20_9,p0_20_10,r0_20_11,p0_12_12}。
在函数Explore({(V,2)})调用过程中:
在Explore函数第一次调用时,从集合V中选取2个变量。假设取了a0和a1,通过调用check({a0,a1})函数检查发现a0和a1联合概率分布独立于密钥变量a和b的取值,然后调用Extend函数。在Extend函数中,依次选择集合{a2_1,b0,b1,b2_3,r0_01,r0_02,r0_12,p0_01_4,r0_10_5,p0_10_6,r0_10_7,p0_02_8,r0_20_9,p0_20_10,r0_20_11,p0_12_12}中的变量,检查将变量加入集合{a0,a1}后,其联合概率分布是否独立于密钥变量a和b的取值;如是,则将该变量加入集合{a0,a1}。通过该Extend调用后,可以证明集合{a0,a1,b0,b1,p0_01_4,p0_10_6,r0_01,r0_02,r0_10_5,r0_10_7,r0_12}的联合概率分布独立于密钥变量a和b的取值。此时完成将集合V分成两个更小的集合V1和V2,其中:
V1={a0,a1,b0,b1,p0_01_4,p0_10_6,r0_01,r0_02,r0_10_5,r0_10_7,r0_12}
V2={a2_1,b2_3,p0_02_8,r0_20_9,p0_20_10,r0_20_11,p0_12_12}。
此时已经保证了V1中两个大小为2的集合的联合概率分布独立于密钥变量a和b的取值。只需要考虑V1中取0或1变量,跟V2中取2或1个变量组成的集合的联合概率分布是否独立于密钥变量a和b的取值;达到了分治的目的。
为验证V1中取0或1变量,跟V2中取2或1个变量组成的集合的联合概率分布是否独立于密钥变量a和b的取值,递归采用分治方法进行验证;分别递归调用函数Explore({(V1,0),(V2,2)})和Explore({(V1,1),(V2,1)})。
在函数Explore({(V1,0),(V2,2)})调用过程中:
图1第5行选择分别选择集合{a2_1}和{b2_3};通过Extend证明集合{a2_1,b2_3,p0_02_8,p0_20_10,r0_20_11,r0_20_9}联合概率分布独立于密钥变量a和b的取值;将集合V2分治为两个子集V21和V22,其中:
V21={a2_1,b2_3,p0_02_8,p0_20_10,r0_20_11,r0_20_9}
V22={p0_12_12}。
此时V22集合只有一个变量,因此只需要递归调用函数Explore({(V1,0),(V21,1),(V22,1)})。
在函数Explore({(V1,0),(V21,1),(V22,1)})调用过程中:
图1第5行选择分别选择集合{p0_12_12}和{a2_1};通过Extend证明集合{a2_1,b2_3,p0_20_10,p0_12_12}联合概率分布独立于密钥变量a和b的取值;将集合V21分治为两个子集V211和V212,其中:
V211={a2_1,b2_3,p0_20_10}
V212={p0_02_8,r0_20_11,r0_20_9}。
随后递归调用函数Explore({(V1,0),(V211,0),(V212,1),(V22,1)})。
在函数Explore({(V1,0),(V211,0),(V212,1),(V22,1)})调用过程中:
图1第5行选择分别选择集合{p0_12_12}和{p0_02_8};通过Extend证明集合{p0_12_12,p0_02_8,r0_20_9}联合概率分布独立于密钥变量a和b的取值;将集合V212分治为两个子集V2121和V2122,其中:
V2121={p0_02_8,r0_20_9}
V2122={r0_20_11}。
随后递归调用函数Explore({(V1,0),(V211,0),(V2121,0),(V2122,1)(V22,1)})。
在函数Explore({(V1,0),(V211,0),(V2121,0),(V2122,1)(V22,1)})调用过程中:
图1第5行选择分别选择集合{p0_12_12}和{r0_20_11};通过Extend证明集合{p0_12_12,r0_20_11}联合概率分布独立于密钥变量a和b的取值;此时不在进行递归调用。
此后继续执行函数调用Explore({(V1,1),(V2,1)}),该过程类似上述递归调用过程,最后证明图2所示例子为2阶安全的。
Claims (1)
1.一种基于分治的程序高阶功耗侧信道安全性的证明方法,其特征在于,通过分治策略,把证明程序d阶功耗侧信道安全性问题转化到证明一系列大集合变量的d阶功耗侧信道安全性问题,而证明一系列大集合变量的d阶功耗侧信道安全性问题又是递归的进行分治验证,具体包括以下步骤:
步骤1、构造集合{(V,d)},进入步骤2,其中,V表示可观察变量集合,d为大于0的整数;
步骤2、对于给定集合{(V1,d1),...,(Vn,dn)},V1,...,Vn为可观察变量集合;d1,...,dn为大于0且小于或等于d的整数,且保证d1+…+dn=d,包括以下步骤:
步骤2.3、对于任何i,i=1,…,n,对于任意集合Vi\Di中的变量x,验证变量集合的联合统计分布是否独立于密钥变量,如果是,则将x加入集合Di,其中,Vi\Di表示集合Vi减去Di中的元素得到的集合;重复步骤2.3直到没有变量可以加入集合Di,在所有能加入Di的变量x加入后,进行分治;
步骤2.4、对于任意满足式(1)和式(2)的所有整数组合i1,...,in,进入步骤2递归证明集合{(D1,d1-i1),(V1\D1,i1),...,(Dn,dn-in),(Vn\Dn,in)}:
0≤i1≤min(d1,|V1\D1|),…,0≤in≤min(dn,|Vn\Dn|) (1)
i1+i2+…+in!=0 (2)
式(1)及式(2)中,min(dn,|Vn\Dn|)表示从dn和|Vn\Dn|两者中选取较小的值;
在递归证明集合{(D1,d1-i1),(V1\D1,i1),...,(Dn,dn-in),(Vn\Dn,in)}时,也保证了((d1-i1)+i1)+…+((dn-in)+in)=d1+…+dn=d。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010908485.XA CN112134729B (zh) | 2020-09-02 | 2020-09-02 | 一种基于分治的程序高阶功耗侧信道安全性的证明方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010908485.XA CN112134729B (zh) | 2020-09-02 | 2020-09-02 | 一种基于分治的程序高阶功耗侧信道安全性的证明方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112134729A true CN112134729A (zh) | 2020-12-25 |
CN112134729B CN112134729B (zh) | 2022-11-04 |
Family
ID=73848788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010908485.XA Active CN112134729B (zh) | 2020-09-02 | 2020-09-02 | 一种基于分治的程序高阶功耗侧信道安全性的证明方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112134729B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0289472A (ja) * | 1988-09-27 | 1990-03-29 | Fujitsu Ltd | 画像符号化伝送装置 |
CN107070633A (zh) * | 2017-03-20 | 2017-08-18 | 江苏大学 | 一种抗高阶功耗分析的aes掩码加密方法 |
CN108809622A (zh) * | 2018-06-15 | 2018-11-13 | 上海科技大学 | 一种抗功耗侧信道攻击对策验证方法 |
CN109542936A (zh) * | 2018-10-29 | 2019-03-29 | 复旦大学 | 一种基于因果分割的递归式因果推断方法 |
CN110098916A (zh) * | 2019-04-08 | 2019-08-06 | 武汉大学 | 一种基于软件指令定位的高阶侧信道分析方法 |
DE102019202527A1 (de) * | 2019-02-25 | 2020-08-27 | Robert Bosch Gmbh | Sicherheitssystem und Verfahren zum Betreiben eines Sicherheitssystems |
-
2020
- 2020-09-02 CN CN202010908485.XA patent/CN112134729B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0289472A (ja) * | 1988-09-27 | 1990-03-29 | Fujitsu Ltd | 画像符号化伝送装置 |
CN107070633A (zh) * | 2017-03-20 | 2017-08-18 | 江苏大学 | 一种抗高阶功耗分析的aes掩码加密方法 |
CN108809622A (zh) * | 2018-06-15 | 2018-11-13 | 上海科技大学 | 一种抗功耗侧信道攻击对策验证方法 |
CN109542936A (zh) * | 2018-10-29 | 2019-03-29 | 复旦大学 | 一种基于因果分割的递归式因果推断方法 |
DE102019202527A1 (de) * | 2019-02-25 | 2020-08-27 | Robert Bosch Gmbh | Sicherheitssystem und Verfahren zum Betreiben eines Sicherheitssystems |
CN110098916A (zh) * | 2019-04-08 | 2019-08-06 | 武汉大学 | 一种基于软件指令定位的高阶侧信道分析方法 |
Non-Patent Citations (3)
Title |
---|
PENGFEI GAO等: "Formal Verification of Masking Countermeasures for Arithmetic Programs", 《IEEE》 * |
PENGFEI GAO等: "Table Recomputation-Based Higher-Order Masking Against Horizontal Attacks", 《IEEE》 * |
李延斌;唐明;李煜光;胡晓波;彭敏: "高阶掩码防护的设计实现安全性研究", 《计算机学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112134729B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296248B2 (en) | Turn-control rewritable blockchain | |
US11121880B2 (en) | Method for reaching consensus on public distributed ledgers and system using the same | |
US6928549B2 (en) | Dynamic intrusion detection for computer systems | |
DE69834431T2 (de) | Leckresistentes kryptographisches verfahren und vorrichtung | |
CN108521325B (zh) | 一种适用于系统数据全生命周期的防侧信道攻击方法 | |
CN105610837B (zh) | 用于scada系统主站与从站间身份认证的方法及系统 | |
US9847879B2 (en) | Protection against passive sniffing | |
CN116074123B (zh) | 一种物联网数字信息安全传输的方法 | |
CN111404693A (zh) | 一种适用于数字签名的密码逆向防火墙方法 | |
EP4395227A1 (en) | Adaptive countermeasure for bit leakage in lattice-based cryptography | |
CN107220545A (zh) | 一种硬件加密系统、方法及服务器 | |
CN116684202B (zh) | 一种物联网信息安全传输方法 | |
CN112134729B (zh) | 一种基于分治的程序高阶功耗侧信道安全性的证明方法 | |
CN106656473A (zh) | 一种安全的des算法的mac计算方法及系统 | |
CN113553873B (zh) | 疫情防控系统中基于云的rfid双向认证协议的设计方法 | |
CN113193955B (zh) | 一种密码算法的故障攻击防护方法 | |
Shi et al. | An obfuscatable designated verifier signature scheme | |
CN115473649A (zh) | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 | |
CN114024957A (zh) | 一种零信任架构中对用户的行为做风险判定的方法 | |
Chen et al. | Research on Industrial Internet Data Security Technology based on Formal Verification of SM4 | |
Bauer et al. | Forging Dilithium and Falcon Signatures by Single Fault Injection | |
CN118332537B (zh) | 一种云数据访问方法及系统 | |
CN112131616B (zh) | 一种sm2算法的掩码运算方法及装置 | |
US20240195636A1 (en) | Hardened Encoded Message Check for RSA Signature Verification | |
EP4432150A1 (en) | Detection system, detection method, and detection program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |