CN109831290B - 针对基于cave算法认证协议的侧信道分析方法 - Google Patents
针对基于cave算法认证协议的侧信道分析方法 Download PDFInfo
- Publication number
- CN109831290B CN109831290B CN201910069790.1A CN201910069790A CN109831290B CN 109831290 B CN109831290 B CN 109831290B CN 201910069790 A CN201910069790 A CN 201910069790A CN 109831290 B CN109831290 B CN 109831290B
- Authority
- CN
- China
- Prior art keywords
- power consumption
- analysis
- consumption information
- key
- cpa
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 claims abstract description 15
- 238000001914 filtration Methods 0.000 claims description 9
- 238000011084 recovery Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种针对基于CAVE算法认证协议的侧信道分析方法,通过采集cdmaOne的认证协议在移动设备上运行时产生的包含CAVE算法执行信息的功耗曲线,从功耗曲线中解析出CAVE算法执行参数,从而恢复出cdmaOne的认证协议所使用的密钥。本发明利用简单功耗分析和相关性功耗分析作为基础攻击工具,根据CAVE算法结构,构造综合攻击方法,通过该方法恢复cdmaOne认证协议中使用的密钥A‑key。本方法适用于任何使用基于CAVE算法认证协议的密码系统。
Description
技术领域
本发明涉及的是一种计算机安全领域的技术,具体是一种针对cdmaOne通信系统的基于蜂窝认证和语音加密算法(Cellular Authentication,Voice Privacy andEncryption,CAVE)协议的功耗分析方法,适用于简单功耗分析(SPA)、差分功耗分析(DPA)以及相关性功耗分析(CPA)。
背景技术
在移动终端中,任意代码的执行都会泄漏其执行时的能量、电磁辐射等侧信道信息(Side Channel Information),侧信道信息与移动终端当前执行的指令及指令对应的操作数相关。因此,对于在移动终端上实现的加密算法与协议,攻击者可以观察和测量密码算法执行时产生的侧信道信息,利用这些实施侧信道攻击(Side Channel Attack),恢复移动终端中的秘密信息。
发明内容
本发明提出一种针对基于CAVE算法认证协议的侧信道分析方法,利用简单功耗分析(SPA)和相关性功耗分析(CPA)作为基础攻击工具,根据CAVE算法结构,构造综合攻击方法,通过该方法恢复cdmaOne认证协议中使用的密钥A-key。
本发明是通过以下技术方案实现的:
本发明涉及一种针对基于CAVE算法认证协议的侧信道分析方法,通过采集cdmaOne的认证协议在移动设备上运行时产生的包含CAVE算法执行信息的功耗曲线,从功耗曲线中解析出CAVE算法执行参数,从而恢复出cdmaOne的认证协议所使用的密钥。
所述的CAVE算法执行信息包括查表操作和分支判断操作对应的功耗信息,其中:查表操作是指给定一个具有256个入口的一一对应的表,给定0-255中的一个索引,得到表中对应索引的值;分支判断操作是指CAVE算法中有if判断语句影响程序的执行顺序,该判断条件中有一个固定值,当与该固定值比较的变量不等于该固定值,则执行某一段程序,否则执行另一段程序。
所述的CAVE算法执行参数包括CAVE算法的查表操作的索引值以及分支判断操作的阈值。
所述的解析是指:针对查表操作,对查表操作对应的功耗曲线进行CPA分析,恢复出该查表操作的索引;针对分支判断操作,对if判断语句对应的功耗信息进行SPA分析,恢复其判断条件中的固定值。
所述的CPA分析是指:查表操作的索引inx等价于固定不变的分量a与随机变化的分量b相异或的结果(inx=a^b),其中:随机分量b是外部已知量,a是内部未知量;通过遍历a的所有可能值,用已知的b与猜测的a’异或得到猜测索引inx’=b^a’;用inx’查表得到假设表的输出out’,用out’和对应的功耗曲线计算皮尔森相关性系数,当且仅当inx’=inx,即a’=a时相关性系数达到最大。
所述的SPA分析是指:if判断语句执行判断为真的分支和判断为假的分支所产生的功耗不同,且由于两分支的指令序列不同,执行的时间长短也不同,直接从功耗曲线上观察出执行的长短以推断出当前执行了哪一分支,继而推断出if语句的判断条件。
所述的恢复是指:通过16次CPA分析和16次SPA分析经合并结果得到认证协议所使用的密钥,具体为:第1、2次CPA分析和SPA分析针对CAVE算法的第一次循环操作对应的功耗信息,恢复出A-key[4],A-key[0],A-key[1]⊕A-key[5],第3、4次CPA分析和SPA分析针对CAVE算法的第二次循环操作对应的功耗信息,恢复出A-key[1],A-key[5],第5、6次CPA分析和SPA分析针对CAVE算法的第三次循环操作对应的功耗信息,恢复出A-key[2],第7、8次CPA分析和SPA分析针对CAVE算法的第四次循环操作对应的功耗信息,恢复出A-key[3],第9、10次CPA分析和SPA分析针对CAVE算法的第五次循环操作对应的功耗信息,恢复出A-key[4],第11、12次CPA分析和SPA分析针对CAVE算法的第六次循环操作对应的功耗信息,恢复出A-key[5],第13、14次CPA分析和SPA分析针对CAVE算法的第七次循环操作对应的功耗信息,恢复出A-key[6],第15、16次CPA分析和SPA分析针对CAVE算法的第八次循环操作对应的功耗信息,恢复出A-key[7]。
所述的密钥的恢复过程中每次的CPA和SPA分析是相互依赖且串行执行。
本发明涉及一种实现上述功耗分析方法的系统,包括:功耗信息读取模块,功耗信息过滤模块、CPA分析模块、SPA分析模块和结果组合模块,其中:功耗信息读取模块载入CAVE算法执行时产生的功耗信息并将初始功耗信息输出至CPA分析模块;CPA分析模块分析传入的功耗信息并将分析结果和功耗信息输出至SPA分析模块;SPA分析模块分析传入的功耗信息并将分析结果和功耗信息输出至功耗信息过滤模块;功耗信息过滤模块根据SPA的分析结果过滤功耗信息后得到更新功耗信息并输出至CPA分析模块;结果组合模块组合多次CPA和SPA结果得到正确的密钥。
技术效果
相比现有技术无法分析cdmaOne的认证协议的功耗信息而得出密钥A-key,本发明仅需使用少量认证协议执行时产生的功耗曲线即可成功得到cdmaOne中基于CAVE算法的认证协议所使用的密钥A-key。在未有任何旁路攻击防护的情况下,整个分析系统所需的功耗曲线在5000条以内,分析时间在1小时以内,时间复杂度低。且本方法不仅限于SIM卡,可适用于任何基于CPU实现的基于CAVE算法认证协议。
附图说明
图1为本发明方法示意图。
具体实施方式
本实施例通过实施上述功耗分析系统,使用旁路攻击中的功耗分析方法恢复基于CAVE算法认证协议中使用的密钥A-key。将SIM卡运行基于CAVE算法的认证协议过程的功耗曲线存储在计算机中,利用本发明的系统对该曲线集进行分析。将初始曲线集传输至CPA分析模块进行第1次CPA分析;第1次CPA分析的结果和原始曲线集输出至SPA模块,进行第1次SPA分析;第1次SPA分析的结果及原始曲线集输出至功耗曲线过滤模块,该模块根据SPA结果从原始曲线集中剔除掉部分曲线,生成新的曲线集;新的曲线集输出至CPA分析模块进行第2次CPA分析。上述CPA至SPA至功耗过滤模块过程进行16次,最终将分析结果传输至结果组合模块,得到正确密钥A-key。
如图1所示,本实施例具体包括以下步骤:
①读取功耗曲线作为初始曲线集G,把G输出至CPA分析模块;
②CPA分析模块结合已知部分b,遍历未知部分a’,生成所有可能的索引inx’,根据所有的索引,生成所有的查表输出out’。使用out’和曲线集G计算皮尔森相关性系数,寻找最大系数对应的a’即为正确值,从而可以恢复正确a与正确索引inx。正确a与inx作为分析结果输出至结果组合模块和SPA分析模块,同时,G曲线集也输出至SPA分析模块。此过程为一次CPA分析。
③SPA分析模块结合CPA分析的结果,已知索引信息,可得到正确的if语句判断的输入。该输入要与固定的判断条件进行比较,如果相等则进入真分支,如果不相等则进入假分支。由于已知if语句判断的输入,可直接观察对应的功耗曲线执行时间的长短判断当前输入是否等于固定的判断条件。寻找到使得执行时间长,即对应的功耗曲线区间长的对应的if语句判断的输入,该输入就是固定的判断条件。固定的判断条件作为SPA分析的结果输出至结果组合模块和功耗信息过滤模块,同时,将功耗曲线集G输出至功耗信息过滤模块。
④功耗信息过滤模块根据SPA的分析结果,保留功耗曲线G中执行if判断语句真分支的曲线,剔除执行假分支的曲线,得到新的功耗曲线集G。如果已完成16次分析,则跳转至结果组合模块进行结果输出,否则跳回至CPA分析模块,并将G传输至该模块进行第②步分析。
⑤当进行了16次CPA、SPA分析后,跳转至结果组合模块。该模块将16次分析的结果组合,生成最终的密钥A-key。
整个分析系统中的各个模块都为本发明的核心内容,每个模块都影响最终的分析结果,必须严格按照上述步骤执行,才能得出正确结果。
上述过程完成了对基于cdmaOne的认证协议的侧信道分析,利用其执行时产生的功耗信息得出密钥A-key。目前,没有现有技术基于cdmaOne的认证协议的侧信道分析。本发明仅需使用少量认证协议执行时产生的功耗曲线即可成功得到cdmaOne中基于CAVE算法的认证协议所使用的密钥A-key。在未有任何旁路攻击防护的情况下,整个分析系统所需的功耗曲线在5000条以内,分析时间在1小时以内,时间复杂度低。且本方法不仅限于SIM卡,可适用于任何基于CPU实现的基于CAVE算法认证协议。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
Claims (4)
1.一种针对基于CAVE算法认证协议的侧信道分析方法,其特征在于,通过采集cdmaOne的认证协议在移动设备上运行时产生的包含CAVE算法执行信息的功耗曲线,从功耗曲线中解析出CAVE算法执行参数,从而恢复出cdmaOne的认证协议所使用的密钥;
所述的解析是指:针对查表操作,对查表操作对应的功耗曲线进行CPA分析,恢复出该查表操作的索引;针对分支判断操作,对if判断语句对应的功耗信息进行SPA分析,恢复其判断条件中的固定值,其中CPA分析是指:查表操作的索引inx等价于固定不变的分量a与随机变化的分量b相异或的结果inx = a ^ b,其中:随机分量b是外部已知量,a是内部未知量;通过遍历a的所有可能值,用已知的b与猜测的a’异或得到猜测索引inx’=b ^ a’;用inx’查表得到假设表的输出out’,用out’和对应的功耗曲线计算皮尔森相关性系数,当且仅当inx’ = inx,即 a’=a时相关性系数达到最大;
所述的SPA分析是指:if判断语句执行判断为真的分支和判断为假的分支所产生的功耗不同,且由于两分支的指令序列不同,执行的时间长短也不同,直接从功耗曲线上观察出执行的长短以推断出当前执行了哪一分支,继而推断出if语句的判断条件;
所述的恢复是指:通过16次CPA分析和16次SPA分析经合并结果得到认证协议所使用的密钥,具体为:第1、2次CPA分析和SPA分析针对CAVE算法的第一次循环操作对应的功耗信息,恢复出A-key[4],A-key[0],A-key[1]A-key[5],第3、4次CPA分析和SPA分析针对CAVE算法的第二次循环操作对应的功耗信息,恢复出A-key[1],A-key[5],第5、6次CPA分析和SPA分析针对CAVE算法的第三次循环操作对应的功耗信息,恢复出A-key[2],第7、8次CPA分析和SPA分析针对CAVE算法的第四次循环操作对应的功耗信息,恢复出A-key[3],第9、10次CPA分析和SPA分析针对CAVE算法的第五次循环操作对应的功耗信息,恢复出A-key[4],第11、12次CPA分析和SPA分析针对CAVE算法的第六次循环操作对应的功耗信息,恢复出A-key[5],第13、14次CPA分析和SPA分析针对CAVE算法的第七次循环操作对应的功耗信息,恢复出A-key[6],第15、16次CPA分析和SPA分析针对CAVE算法的第八次循环操作对应的功耗信息,恢复出A-key[7];
所述的密钥的恢复过程中每次的CPA和SPA分析是相互依赖且串行执行。
2.根据权利要求1所述的方法,其特征是,所述的CAVE算法执行信息包括查表操作和分支判断操作对应的功耗信息,其中:查表操作是指给定一个具有256个入口的一一对应的表,给定0-255中的一个索引,得到表中对应索引的值;分支判断操作是指CAVE算法中有if判断语句影响程序的执行顺序,该判断条件中有一个固定值,当与该固定值比较的变量不等于该固定值,则执行某一段程序,否则执行另一段程序。
3.根据权利要求1或2所述的方法,其特征是,所述的CAVE算法执行参数包括CAVE算法的查表操作的索引值以及分支判断操作的阈值。
4.一种实现权利要求1~3中任一所述方法的系统,其特征在于,包括:功耗信息读取模块,功耗信息过滤模块、CPA分析模块、SPA分析模块和结果组合模块,其中:功耗信息读取模块载入CAVE算法执行时产生的功耗信息并将初始功耗信息输出至CPA分析模块;CPA分析模块分析传入的功耗信息并将分析结果和功耗信息输出至SPA分析模块;SPA分析模块分析传入的功耗信息并将分析结果和功耗信息输出至功耗信息过滤模块;功耗信息过滤模块根据SPA的分析结果过滤功耗信息后得到更新功耗信息并输出至CPA分析模块;结果组合模块组合多次CPA和SPA结果得到正确的密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910069790.1A CN109831290B (zh) | 2019-01-24 | 2019-01-24 | 针对基于cave算法认证协议的侧信道分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910069790.1A CN109831290B (zh) | 2019-01-24 | 2019-01-24 | 针对基于cave算法认证协议的侧信道分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109831290A CN109831290A (zh) | 2019-05-31 |
CN109831290B true CN109831290B (zh) | 2021-06-11 |
Family
ID=66862484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910069790.1A Active CN109831290B (zh) | 2019-01-24 | 2019-01-24 | 针对基于cave算法认证协议的侧信道分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831290B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614459B (zh) * | 2020-05-29 | 2021-08-06 | 上海交通大学 | 针对ble密钥协商协议的侧信道分析方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796250A (zh) * | 2015-04-11 | 2015-07-22 | 成都信息工程学院 | 针对RSA密码算法M-ary实现的侧信道攻击方法 |
CN106452789A (zh) * | 2016-11-02 | 2017-02-22 | 北京宏思电子技术有限责任公司 | 一种多方位防侧信道攻击的签名方法 |
CN108155984A (zh) * | 2017-12-29 | 2018-06-12 | 北京理工大学 | 一种基于能量分析的密码算法簇逆向工程分析方法 |
CN108446556A (zh) * | 2018-03-01 | 2018-08-24 | 北京智芯微电子科技有限公司 | 密码芯片的抗功耗分析电路和方法 |
CN108880783A (zh) * | 2018-09-06 | 2018-11-23 | 成都三零嘉微电子有限公司 | 一种针对sm4算法的联合攻击方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7602907B2 (en) * | 2005-07-01 | 2009-10-13 | Microsoft Corporation | Elliptic curve point multiplication |
JP6398812B2 (ja) * | 2015-03-17 | 2018-10-03 | ブラザー工業株式会社 | 画像処理装置、および、コンピュータプログラム |
-
2019
- 2019-01-24 CN CN201910069790.1A patent/CN109831290B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796250A (zh) * | 2015-04-11 | 2015-07-22 | 成都信息工程学院 | 针对RSA密码算法M-ary实现的侧信道攻击方法 |
CN106452789A (zh) * | 2016-11-02 | 2017-02-22 | 北京宏思电子技术有限责任公司 | 一种多方位防侧信道攻击的签名方法 |
CN108155984A (zh) * | 2017-12-29 | 2018-06-12 | 北京理工大学 | 一种基于能量分析的密码算法簇逆向工程分析方法 |
CN108446556A (zh) * | 2018-03-01 | 2018-08-24 | 北京智芯微电子科技有限公司 | 密码芯片的抗功耗分析电路和方法 |
CN108880783A (zh) * | 2018-09-06 | 2018-11-23 | 成都三零嘉微电子有限公司 | 一种针对sm4算法的联合攻击方法 |
Non-Patent Citations (3)
Title |
---|
Random Clocking Induced DPA Attack Immunity in FPGAs;Yousaf Zafar, Jihan Park and Dongsoo Har;《IEEE》;20100527 * |
关于CDMA伪基站的疑点辨析;汪志斌;《中国无线电》;20170126 * |
抗旁路攻击的分组密码电路自动防护方法;甘杰,刘军荣,郭筝,凌宇霄,唐晓柯;《信息技术》;20160125 * |
Also Published As
Publication number | Publication date |
---|---|
CN109831290A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110460425B (zh) | 一种面向侧信道密码能量泄漏信号的攻击方法及系统 | |
CN104836666A (zh) | 一种针对sm2解密算法的能量分析攻击的方法 | |
CN108604981A (zh) | 用于估计秘密值的方法和设备 | |
TWI730152B (zh) | 密鑰的處理方法和裝置 | |
CN111817842B (zh) | 一种针对rsa-crt运算的能量分析攻击测试装置和方法 | |
CN103560877A (zh) | 攻击密钥的方法及装置 | |
CN104852795A (zh) | 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法 | |
CN109831290B (zh) | 针对基于cave算法认证协议的侧信道分析方法 | |
Guo et al. | Exploiting the incomplete diffusion feature: A specialized analytical side-channel attack against the AES and its application to microcontroller implementations | |
Aulbach et al. | Separating oil and vinegar with a single trace: side-channel assisted Kipnis-Shamir attack on UOV | |
CN108155984B (zh) | 一种基于能量分析的密码算法簇逆向工程分析方法 | |
You et al. | Low trace-count template attacks on 32-bit implementations of ASCON AEAD | |
Wang et al. | Single-Trace Side-Channel Attacks on CRYSTALS-Dilithium: Myth or Reality? | |
Luo et al. | Cryptanalysis of a chaotic block cryptographic system against template attacks | |
CN108737073A (zh) | 分组加密运算中抵抗能量分析攻击的方法和装置 | |
Mu et al. | A voltage template attack on the modular polynomial subtraction in Kyber | |
CN105897401A (zh) | 基于比特的通用差分功耗分析方法及系统 | |
US9083489B2 (en) | Block encryption method and apparatus | |
Hu et al. | Software implementation of aes-128: Side channel attacks based on power traces decomposition | |
CN105656629B (zh) | 芯片中安全的非相邻表示型实现方法 | |
CN111211886B (zh) | 针对sm2解密算法的能量分析检测方法 | |
Guo et al. | Differential power analysis on dynamic password token based on SM3 algorithm, and countermeasures | |
CN112564885A (zh) | 基于掩码变量最大概率密度函数分布的侧信道攻击方法 | |
Shim | On the suitability of post-quantum signature schemes for internet of things | |
CN110098916A (zh) | 一种基于软件指令定位的高阶侧信道分析方法 |
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 |