CN108809622B - 一种抗功耗侧信道攻击对策验证方法 - Google Patents

一种抗功耗侧信道攻击对策验证方法 Download PDF

Info

Publication number
CN108809622B
CN108809622B CN201810626315.5A CN201810626315A CN108809622B CN 108809622 B CN108809622 B CN 108809622B CN 201810626315 A CN201810626315 A CN 201810626315A CN 108809622 B CN108809622 B CN 108809622B
Authority
CN
China
Prior art keywords
intermediate result
program
type
formula
solver
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
Application number
CN201810626315.5A
Other languages
English (en)
Other versions
CN108809622A (zh
Inventor
宋富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ShanghaiTech University
Original Assignee
ShanghaiTech University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ShanghaiTech University filed Critical ShanghaiTech University
Priority to CN201810626315.5A priority Critical patent/CN108809622B/zh
Publication of CN108809622A publication Critical patent/CN108809622A/zh
Application granted granted Critical
Publication of CN108809622B publication Critical patent/CN108809622B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种抗功耗侧信道攻击对策验证方法,其特征在于,包括以下步骤:利用编译技术将密码算法程序翻译到中间表示形式,在密码算法程序中标注保密部分、公开部分及随机变量。步骤2、利用类型推导按照程序中间结果依赖关系对中间表示形式中的每个中间结果进行推理。本发明达到了显著的性能提升效果。通过多个加密算法程序的实验,对于完美随机化伪装的MACKeccak程序,仅需几秒时间完成证明。对于非完美随机化伪装的程序,本发明方法可以检测定位所有泄露点,比传统基于SMT的方法,本发明性能提升1倍。

Description

一种抗功耗侧信道攻击对策验证方法
技术领域
本发明涉及一种密码算法程序随机化伪装证明方法和泄露检测方法。
背景技术
密码算法(Cryptographic algorithms)作为安全机制的基础已经被广泛应用于嵌入式设备、智能卡、物联网等系统用于保护数据安全。密码算法的安全性通常是建立在攻击者只能接触系统的输入和输出,而无法获取加密算法中的密钥。但在实际生活当中,攻击者可以利用系统的物理信息破解密钥,比如采用密码算法程序运行时的时间、功耗、电磁辐射等信息。这种攻击被称为侧信道攻击(Side-channel attacks),其利用这些物理信息与加密密钥之间的统计依赖关系来破解密钥,比如采用差分功耗分析(differential poweranalysis)。
为阻止此类攻击,主要采用基于随机数伪装(Random Masking)对策来破坏物理信息与加密密钥之间统计依赖关系,比如针对ASE加密算法的随机数伪装。然而,随机数伪装方法容易错误,无法达到物理信息与加密密钥之间真正的统计独立,比如多个经过随机数伪装的加密算法程序已被侧信道攻击攻破。
基于类型推导(Type Inference)的证明方法和基于模型计数求解的证明和检查方法相继提出和应用。基于类型推导的证明方法具有速度快和结果合理的优点,但不是完备的,因此会有很多误报。而基于模型计数求解的方法具有结果合理和完备的特征,不存在误报可能,但是存在性能不足的问题,无法快速证明和检测实际密码算法程序。
发明内容
本发明的目的是:保证证明结果的合理性和证明方法的完备性,不仅可以快速证明随机化伪装的正确性,同时也能快速检测和定位不正确程序中的信息泄露点。
为了达到上述目的,本发明的技术方案是提供了一种抗功耗侧信道攻击对策验证方法,其特征在于,包括以下步骤:
步骤1、利用编译技术将密码算法程序翻译到中间表示形式,在密码算法程序中标注保密部分、公开部分及随机变量。在本发明中,密码算法程序不限于某一种编程语言。通过编译技术将密码算法程序统一翻译到中间表示形式,可采用任意一种数据结构表示程序,供后续步骤处理。
步骤2、利用类型推导按照程序中间结果依赖关系对中间表示形式中的每个中间结果进行推理,对于当前中间结果而言,推理过程包括以下步骤:
步骤2.1、计算当前中间结果的概率分布类型,若当前中间结果的概率分布类型为均匀分布或独立于密钥的分布,则当前中间结果为安全,即完美随机化伪装的,若当前中间结果的概率分布类型为未知或无法进行类型推导,则进入下一步:
步骤2.2、利用模型计数求解方法把当前中间结果的计算表达式编码成求解器公式,利用求解器公式计算模型数量并判断公式是否满足,若该求解器公式是不可满足的,则当前中间结果是安全的,即当前中间结果是独立于密钥的分布;若该求解器公式是可满足的,则当前中间结果为泄露点,即当前中间结果和密钥之间存在统计依赖关系。将求解器结果反馈给类型推导,精化中间结果的推导过程。
优选地,所述中间表示形式为抽象语法树或程序依赖图。
优选地,采用类型推导快速判断部分中间结果的概率分布类型,即安全性。
优选地,当类型推导无法判断时,采用模型计数求解方法求解。
优选地,模型计数求解方法求解反馈给类型推导系统,精化类型推导过程。
本发明达到了显著的性能提升效果。通过多个加密算法程序的实验,对于完美随机化伪装的MACKeccak程序,仅需几秒时间完成证明。对于非完美随机化伪装的程序,本发明方法可以检测定位所有泄露点,比传统基于SMT的方法,本发明性能提升1倍。
附图说明
图1为本发明的具体流程图;
图2为本发明的一个具体实施方式的流程图;
图3为密码算法实例程序;
图4为图3程序的程序依赖图中间表示形式;
图5为密码算法实例另一个程序。
具体实施方式
为使本发明更明显易懂,兹以优选实施例,并配合附图作详细说明如下。
根据本发明的技术方案,实施重点是输入程序的类型,类型推导系统的设计,模型计数求解器选择和模型计数求解器公式编码。以直线型布尔程序为例,对本发明作进一步的详细说明,具体实施技术方案如图2所示。
类型推导规则根据表达式中操作符类型和操作数类型刻画表达式计算结果的类型。类型推导系统中主要有以下5中概率分布类型:1)均匀分布(RUD),2)独立分布(SID);3)非独立分布(NMP),4)未知分布(UKD)和5)常量分布(CST)。中间结果为均分分布或独立分布,则该中间结果为完美随机化伪装的,即安全的;中间结果为非均分分布,则该中间结果为非完美随机化伪装的,即不安全的或泄露点;中间结果为未知的,表示类型推导无法判断该中间结果,需要用基于SMT求解的方法来进一步分析。类型名称可采用其他方式命名,不影响本发明的方法。
类型推导规则分类两类:原子型规则和复合型规则。原子型规则刻画输入变量的概率分布类型:随机变量为均分分布类型,明文和密钥变量为未知分布类型,常量为常量分布类型。复合型规则根据操作符类型和操作数类型刻画,具体规则如式(1)至式(12)所示。应注意,类型推导规则不仅限于式(1)至式(12)所示的规则,可根据实际操作符类型和程序类型进行扩展,比如整数程序、加减乘除运算符等。
Figure GDA0003007003920000031
式(1)中,
Figure GDA0003007003920000032
表示该规则的名称,l表示中间结果,λ1(l)表示中间结果l的变量,r表示随机变量集合,RUD表示均匀分布。
Figure GDA0003007003920000033
式(2)中,
Figure GDA0003007003920000034
表示该规则的名称,p表示公开变量集合,k表示保密变量集合,UKD表示未知分布。
Figure GDA0003007003920000035
式(3)中,
Figure GDA0003007003920000036
表示该规则的名称,CST表示常量分布。
Figure GDA0003007003920000037
式(4)中,
Figure GDA0003007003920000041
表示该规则的名称,-表示取反操作符,λ2(l)表示中间结果l的操作符,
Figure GDA0003007003920000042
表示异或操作符,l.lft表示中间结果l的左孩子,l.rgt表示中间结果l的右孩子,dom(l)表示仅通过异或操作符唯一作用于中间结果l的随机变量集合,semd(l.rgt)表示中间结果l依赖的变量集合,φ表示空集合。
Figure GDA0003007003920000043
式(5)中,
Figure GDA0003007003920000044
表示该规则的名称。
Figure GDA0003007003920000045
式(6)中,
Figure GDA0003007003920000046
表示该规则的名称,∧和∨分别表示与和或操作符。
Figure GDA0003007003920000047
式(7)中,
Figure GDA0003007003920000048
表示该规则的名称。
Figure GDA0003007003920000049
式(8)中,
Figure GDA00030070039200000410
表示该规则的名称。
Figure GDA00030070039200000411
式(9)中,SID表示该规则的名称。
Figure GDA00030070039200000412
式(10)中,NOT表示该规则的名称,
Figure GDA00030070039200000415
表示取反操作符。
Figure GDA00030070039200000413
式(11)中,NO-KEY表示该规则的名称,supp(l)表示中间结果l语法依赖的变量集合,k表示保密变量集合。
Figure GDA00030070039200000414
式(12)中,UKD表示该规则的名称。
以图3程序为例,其中r1、r2、r3为随机变量,k为密钥,c1、c2、c3、c4、c5、c6为中间结果。图4是图3程序的程序依赖图中间表示形式,其中,c3、c4、c5和c6计算表达式如下所示:
Figure GDA0003007003920000051
Figure GDA0003007003920000052
Figure GDA0003007003920000053
Figure GDA0003007003920000054
利用类型推导规则,可推理知道r1、r2、r3、c1、c2、c3、c4和c5为均匀分布类型,k为未知类型,c6为独立分布类型。
模型计数求解器采用SMT求解器,如Z3和CVC4等。对于任意一个中间结果l,采用枚举所有随机变量可能的取值,计算各种随机变量取值时中间结果为l的次数;判断是非存在两种不同的密钥导致中间结果为l的次数不同。SMT编码只是一种计算方式,可采用参数化模型计数方法进行替换,亦包含于本发明的方法。以图3程序中的中间结果c4为例,SMT公式为以下四个公式的合取:
Figure GDA0003007003920000055
Figure GDA0003007003920000056
Figure GDA0003007003920000057
Θ≡(n1+n2+n3+n4)≠(n′1+n′2+n′3+n′4)
式中,c41、c42、c43、c44分别表示r1r2分别取00,01,10,11时候c4关于k的布尔值,c’41、c’42、c’43、c’44分别表示r1r2分别取00,01,10,11时候c4关于k’的布尔值,n1、n2、n3、n4分别表示c41、c42、c43、c44的整数值,n’1、n’2、n’3、n’4分别表示c’41、c’42、c’43、c’44的整数值。
SMT求解器结果反馈以图5所示程序为例,采用类型推导,可计算中间结果c1和c3为均匀分布类型,c2、c4和c6为独立分布类型,但是c5是未知类型;将中间结果c5对于表达式编码到SMT公式,求解计算可得c5为独立分布类型;根据该结果可直接用类型推导技术c7为独立分布类型。

Claims (2)

1.一种抗功耗侧信道攻击对策验证方法,其特征在于,包括以下步骤:
步骤1、利用编译技术将密码算法程序翻译到中间表示形式,在密码算法程序中标注保密部分、公开部分及随机变量;
步骤2、利用类型推导按照程序中间结果依赖关系对中间表示形式中的每个中间结果进行推理,对于当前中间结果而言,推理过程包括以下步骤:
步骤2.1、计算当前中间结果的概率分布类型,若当前中间结果的概率分布类型为均匀分布或独立于密钥的分布,则当前中间结果为安全,若当前中间结果的概率分布类型为未知或无法进行类型推导,则进入下一步:
步骤2.2、利用模型计数求解方法把当前中间结果的计算表达式编码成求解器公式,求解器采用SMT求解器,利用求解器公式计算模型数量并判断公式是否满足,即对于任意一个中间结果l,采用枚举所有随机变量可能的取值,计算各种随机变量取值时中间结果为l的次数,判断是否存在两种不同的密钥导致中间结果为l的次数不同,则若该求解器公式是不可满足的,则当前中间结果是安全的;若该求解器公式是可满足的,则当前中间结果为泄露点;
所述中间表示形式为抽象语法树或程序依赖图。
2.如权利要求1所述的一种抗功耗侧信道攻击对策验证方法,其特征在于,采用类型推导快速判断部分中间结果的概率分布类型,即安全性。
CN201810626315.5A 2018-06-15 2018-06-15 一种抗功耗侧信道攻击对策验证方法 Active CN108809622B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810626315.5A CN108809622B (zh) 2018-06-15 2018-06-15 一种抗功耗侧信道攻击对策验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810626315.5A CN108809622B (zh) 2018-06-15 2018-06-15 一种抗功耗侧信道攻击对策验证方法

Publications (2)

Publication Number Publication Date
CN108809622A CN108809622A (zh) 2018-11-13
CN108809622B true CN108809622B (zh) 2021-10-26

Family

ID=64083203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810626315.5A Active CN108809622B (zh) 2018-06-15 2018-06-15 一种抗功耗侧信道攻击对策验证方法

Country Status (1)

Country Link
CN (1) CN108809622B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112134729B (zh) * 2020-09-02 2022-11-04 上海科技大学 一种基于分治的程序高阶功耗侧信道安全性的证明方法
CN112364392B (zh) * 2020-09-03 2023-12-15 上海科技大学 一种基于图同构的程序高阶功耗侧信道安全性的证明方法
CN112231205B (zh) * 2020-09-29 2023-11-24 安徽中科国创高可信软件有限公司 基于smt求解器的一阶逻辑公式程序验证方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326123A (zh) * 2016-08-24 2017-01-11 北京奇虎测腾科技有限公司 一种用于检测数组越界缺陷的方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE464599T1 (de) * 2005-10-18 2010-04-15 Telecom Italia Spa Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über primkörpern für nebenkanal-attacken-beständige kryptosysteme
US8971526B2 (en) * 2011-07-26 2015-03-03 Crocus-Technology Sa Method of counter-measuring against side-channel attacks
CN103530474A (zh) * 2013-10-25 2014-01-22 东南大学 面向aes算法电路的差分功耗攻击测试方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326123A (zh) * 2016-08-24 2017-01-11 北京奇虎测腾科技有限公司 一种用于检测数组越界缺陷的方法及系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Formal Verification of Software Countermeasures against Side-Channel Attacks;HASSAN ELDIB等;《ACM Transactions on Software Engineering and Methodology》;20141231;全文 *
SCINFER: Refinement-Based Verification of Software Countermeasures Against Side-Channel Attacks;Jun Zhang等;《Springer》;20180718;全文 *
Sleuth: Automated Verification of Software Power Analysis Countermeasures;Ali Galip Bayrak等;《Springer》;20131231;全文 *
SMT-Based Verification of Software Countermeasures against Side-Channel Attacks;Hassan Eldib等;《Springer》;20141231;全文 *
Symbolic Analysis of Higher-Order Side Channel Countermeasures;Elia Bisi等;《IEEE》;20170630;全文 *

Also Published As

Publication number Publication date
CN108809622A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
Luo et al. Semantics-based obfuscation-resilient binary code similarity comparison with applications to software and algorithm plagiarism detection
Barthe et al. Verified proofs of higher-order masking
CN108809622B (zh) 一种抗功耗侧信道攻击对策验证方法
Mironov On significance of the least significant bits for differential privacy
Eldib et al. QMS: Evaluating the side-channel resistance of masked software from source code
EP3910479A1 (en) A method and a system for testing machine learning and deep learning models for robustness, and durability against adversarial bias and privacy attacks
CN104919750B (zh) 计算关于函数‑输入值的数据函数的计算设备和方法
CN108199832B (zh) 一种cloc认证加密算法抵御差分故障攻击的检测方法
Chandy et al. Cyberattack detection using deep generative models with variational inference
CN112839036B (zh) 基于拟态防御理论的软件运行环境生成方法及系统
Wang et al. Security by compilation: an automated approach to comprehensive side-channel resistance
Kuroda et al. Practical aspects on non-profiled deep-learning side-channel attacks against AES software implementation with two types of masking countermeasures including RSM
Breuer et al. On obfuscating compilation for encrypted computing
Ceccato et al. Codebender: Remote software protection using orthogonal replacement
CN105703896A (zh) 一种检测has-160算法抵御差分故障攻击的方法
Jiang et al. IFAttn: Binary code similarity analysis based on interpretable features with attention
Nofal et al. SQL injection attacks detection and prevention based on neuro-fuzzy technique
Nofal et al. SQL injection attacks detection and prevention based on neuro—fuzzy technique
Kamide et al. Method for combining paraconsistency and probability in temporal reasoning
Greco et al. Explaining binary obfuscation
CN105046113A (zh) 基于随机性检验的Android软件加固检测方法
Tamrawi et al. Projected control graph for computing relevant program behaviors
Mohsen Quantitative measures for code obfuscation security
Srivastava et al. SCAR: Power Side-Channel Analysis at RTL Level
Banescu Characterizing the strength of software obfuscation against automated attacks

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