CN106027236B - 一种抗侧信道分析的大数相减方法 - Google Patents
一种抗侧信道分析的大数相减方法 Download PDFInfo
- Publication number
- CN106027236B CN106027236B CN201610338796.0A CN201610338796A CN106027236B CN 106027236 B CN106027236 B CN 106027236B CN 201610338796 A CN201610338796 A CN 201610338796A CN 106027236 B CN106027236 B CN 106027236B
- Authority
- CN
- China
- Prior art keywords
- random number
- minuend
- byte
- subtrahend
- addition
- 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
Classifications
-
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种抗侧信道分析的大数相减方法,涉及智能卡安全领域,包括对被减数和减数的原数据按同一规则随机分段,并在每两段之间和原数据前、后分别添加随机长度的随机数,然后对添加随机数后的被减数与减数进行大数相减操作,得到相减结果后去除添加的随机数,恢复被减数与减数真实的相减结果。本发明对减数和被减数进行随机分段,并在两段之间以及原数据的前、后分别添加随机长度的随机数,而且对添加的各段随机数的头尾两个字节的值进行限制,再进行通常的大数相减操作,最后恢复出真实的相减结果。由于其运行时分段随机,填充随机数长度随机,从而阻止了借位攻击同时也阻止了各种以获取指数为目标的攻击方法。
Description
技术领域
本发明涉及智能卡安全领域,具体涉及一种抗侧信道分析的大数相减方法。
背景技术
智能卡的应用日益广泛,其安全问题显得更加重要,尤其是在金融应用领域。智能卡除了面临传统的密码学攻击外,还面临侧信道攻击的威胁。侧信道攻击的主要方法之一就是能耗分析,如差分能耗分析,相关能耗分析,模板攻击等。
RSA公钥加密算法是应用广泛的公钥算法,可以用于数据加密解密或签名验签。在侧信道安全领域,在做解密运算时需要对私钥的模幂运算过程m=cd modN进行防护,以抗侧信道攻击去获得d。为此,人们提出了多种防护方案,其中一种方法如下:为了求取m先计算temp=cd-r modN,然后计算m=temp×cr modN,其中r是小于d的正随机数,以此抵抗各种以获取指数为目标的攻击方法。然而该方案的防护方法中d-r的运算却是不安全的,容易遭受借位攻击方法的进攻。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种抗侧信道分析的大数相减方法,用于提高d-r运算的安全性。
为达到以上目的,本发明采取的技术方案是:一种抗侧信道分析的大数相减方法:对被减数和减数的原数据按同一规则随机分段,并在每两段之间和原数据前、后分别添加随机长度的随机数,然后对添加随机数后的被减数与减数进行大数相减操作,得到相减结果后去除添加的随机数,恢复被减数与减数真实的相减结果。
在上述技术方案的基础上,其步骤包括:
S1,对被减数和减数的原数据按同一规则随机分段;
S2,在被减数和减数的每两段之间和原数据前、后分别添加随机长度的随机数;
S3,对添加的每段随机数首字节进行处理以保证被减数添加的每个随机数的首字节的数值大于减数对应位置添加的随机数的首字节的数值,并对每段随机数的尾字节进行相同处理;
S4,对添加随机数后的被减数与减数进行大数相减操作,得到待处理的相减结果;
S5,对待处理的相减结果进行修正,并从待处理的相减结果中去除添加的随机数,得出被减数与减数真实的相减结果。
在上述技术方案的基础上,步骤S1步骤如下:
S101,设置被减数分段规则中每段的最大长度和最大分段数;
S102,在上述最大长度范围内任选一个数值作为分段的实际长度对被减数进行分段,不断重复上述操作直至各段实际长度之和大于或等于被减数原数据长度,或者直至实际分段数大于或等于最大分段数;
S103,调整分段后最后一段的数据长度,使各段实际长度之和等于被减数和减数的原数据长度,调整后最后一段的数据长度作为其实际长度;
S104,按照被减数分段时的各段实际长度和实际段数对减数进行分段。
在上述技术方案的基础上,步骤S2步骤如下:
S201,设置添加随机数的随机数最大长度;
S202,在被减数和减数的每两段之间和原数据前、后分别添加随机数,在上述随机数最大长度范围内任选一个数值作为每段添加的随机数的实际长度。
在上述技术方案的基础上,步骤S3步骤如下:
S301,判断被减数添加的每个随机数的首字节的数值是否大于减数对应位置添加的随机数的首字节的数值,若不大于,则进入步骤S302;若大于,则进入步骤S303;
S302,将减数里添加的随机数的首字节多次减去被减数对应位置添加的随机数的首字节,直至减数里该首字节的数值小于被减数里对应位置首字节的值为止;
S303,判断被减数添加的每个随机数的尾字节的数值是否大于减数对应位置添加的随机数的尾字节的数值,若不大于,则进入步骤S304;若大于,则进入步骤S305;
S304,将减数里添加的随机数的尾字节多次减去被减数对应位置添加的随机数的尾字节,直至减数里该尾字节的数值小于被减数里对应位置尾字节的值为止;
S305,随机数添加完成。
在上述技术方案的基础上,步骤S5步骤如下:
S501,判断待处理结果中每段添加的随机数的尾字节对应的数值是否等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值;若否,则进入步骤S502;若是,则进入步骤S503;
S502,对于所有随机数的尾字节对应的待处理结果中的数值不等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值的随机数,对该随机数的前一字节的数值进行修正:将待处理结果中该随机数的前一字节的数值减去1作为此字节真实值;
S503,从待处理的相减结果中去除添加的随机数字节,即得被减数与减数真实的相减结果。
与现有技术相比,本发明的优点在于:
本发明对减数和被减数进行随机分段,并在两段之间以及原数据的前、后分别添加随机长度的随机数,而且对添加的各段随机数的头尾两个字节的值进行限制,然后再进行通常的大数相减操作,得到相减结果后恢复出真实的相减结果。由于其运行时分段随机,填充随机数长度随机,使得借位攻击所依赖的条件不再成立,即无法统计固定的私钥在减去不同随机数时出现的借位情况,从而阻止了借位攻击同时也阻止了各种以获取指数为目标的攻击方法,从而保证RSA公钥加密算法的抗侧信道安全。
附图说明
图1为本发明实施例中抗侧信道分析的大数相减方法的流程示意图;
图2为本发明实施例中抗侧信道分析的大数相减方法的步骤S1流程示意图;
图3为本发明实施例中抗侧信道分析的大数相减方法的步骤S2流程示意图;
图4为本发明实施例中抗侧信道分析的大数相减方法的步骤S3流程示意图;
图5为本发明实施例中抗侧信道分析的大数相减方法的步骤S5流程示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种抗侧信道分析的大数相减方法,对被减数和减数的原数据按同一规则随机分段,并在每两段之间和原数据前、后分别添加随机长度的随机数,然后对添加随机数后的被减数与减数进行大数相减操作,得到相减结果后去除添加的随机数,恢复被减数与减数真实的相减结果。
参见图1所示,其步骤包括:
S1,对被减数和减数的原数据按同一规则随机分段;
S2,在被减数和减数的每两段之间和原数据前、后分别添加随机长度的随机数;
S3,对添加的每段随机数首字节进行处理以保证被减数添加的每个随机数的首字节的数值大于减数对应位置添加的随机数的首字节的数值,并对每段随机数的尾字节进行相同处理;
S4,对添加随机数后的被减数与减数进行大数相减操作,得到待处理的相减结果;
S5,对待处理的相减结果进行修正,并从待处理的相减结果中去除添加的随机数,得出被减数与减数真实的相减结果。
步骤S1步骤如下:
S101,设置被减数分段规则中每段的最大长度和最大分段数;
S102,在上述最大长度范围内任选一个数值作为分段的实际长度对被减数进行分段,不断重复上述操作直至各段实际长度之和大于或等于被减数原数据长度或者实际分段数大于或等于最大分段数;
S103,调整分段后最后一段的数据长度,使各段实际长度之和等于被减数和减数的原数据长度,调整后最后一段的数据长度作为其实际长度;
S104,按照被减数分段时的各段实际长度和实际段数对减数进行分段。
例如,设被减数和减数长度为length=32字节,设被减数每段的最大长度为16,设最大分段数为32。在0-16范围内,任选一个数值作为分段的实际长度对被减数进行分段,不断重复上述操作直至各段实际长度之和大于或等于被减数原数据长度或者实际分段数大于或等于最大分段数,分成如下长度的各段:第1段:2字节,第2段:9字节,第3段:5字节,第4段:13字节,第5段:5字节。将最后一段的长度调整为3字节。按照被减数分段时的各段实际长度和实际段数对减数进行分段。
步骤S2步骤如下:
S201,设置添加随机数的随机数最大长度;
S202,在被减数和减数的每两段之间和原数据前、后分别添加随机数,在上述随机数最大长度范围内任选一个数值作为每段添加的随机数的实际长度。
假设在上述实例中,允许将被减数和减数的原数据填充至原长度的4倍大小,则此处可以取每段随机数长度上限为32*(4-1)/5≈19字节,即每段随机数长度不超过19个字节。在1-19范围内取6个随机数,作为每段添加的随机数的长度。例如:第1个随机数:6字节,第2个随机数:5字节,第3个随机数:1字节,第4个随机数:3字节,第5个随机数:4字节,第6个随机数:2字节。
步骤S3步骤如下:
S301,判断被减数添加的每个随机数的首字节的数值是否大于减数对应位置添加的随机数的首字节的数值,若不大于,则进入步骤S302后再进入步骤S303;若大于,则直接进入步骤S303;
S302,将减数里添加的随机数的首字节多次减去被减数对应位置添加的随机数的首字节,直至减数里该首字节的数值小于被减数里对应位置首字节的值为止;
S303,判断被减数添加的每个随机数的尾字节的数值是否大于减数对应位置添加的随机数的尾字节的数值,若不大于,则进入步骤S304后再进入步骤S305;若大于,则直接进入步骤S305;
S304,将减数里添加的随机数的尾字节多次减去被减数对应位置添加的随机数的尾字节,直至减数里该尾字节的数值小于被减数里对应位置尾字节的值为止;
S305,完成添加的随机数处理。
假设在上述实例中,原数据中被减数某两段间插入了3字节随机数r1、r2、r3,减数相同位置插入了3字节随机数r4、r5、r6。判断r1是否大于r4,若不大于,则将r4多次减去r1,直至r4<r1;判断r3是否大于r6,若不大于,则将r6多次减去r3,直至r6<r3。
步骤S5步骤如下:
S501,判断待处理结果中每段添加的随机数的尾字节对应的数值为是否等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值;若否,则进入步骤S502;若是,则进入步骤S503;
S502,对于所有随机数的尾字节对应的待处理结果中的数值不等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值的随机数,对该随机数的前一字节的数值进行修正:将待处理结果中该随机数的前一字节的数值减去1作为此字节真实值;
S503,从待处理的相减结果中去除添加的随机数字节,即得被减数与减数真实的相减结果。
假设在上述实例中,设原数据中被减数某两段间插入了3字节随机数r1、r2、r3,减数相同位置插入了3字节随机数r4、r5、r6,设该随机数前一字节为a,该随机数后一字节为b,设大数相减的待处理结果中r3和r6对应的字节的数值为N:若N=r3-r6,说明大数相减时b没有向随机数尾字节借位,a即为随机数前一字节真实值,从待处理的相减结果中去除添加的随机数字节,即得被减数与减数真实的相减结果;若N≠r3-r6,说明大数相减时b曾向随机数尾字节借位,则将a-1作为随机数前一字节真实值,再从待处理的相减结果中去除添加的随机数字节,即得被减数与减数真实的相减结果。
本发明对减数和被减数进行随机分段,并在两段之间以及原数据的前、后分别添加随机长度的随机数,而且对添加的各段随机数的头尾两个字节的值进行限制,然后再进行通常的大数相减操作,最后恢复出真实的相减结果。由于其运行时分段随机,填充随机数长度随机,使得借位攻击所依赖的条件不再成立,即无法统计固定的私钥在减去不同随机数时出现的借位情况,从而阻止了借位攻击同时也阻止了各种以获取指数为目标的攻击方法,从而保证RSA公钥加密算法的抗侧信道安全。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (5)
1.一种抗侧信道分析的大数相减方法,其特征在于:其步骤包括:
S1,对被减数和减数的原数据按同一规则随机分段;
S2,在被减数和减数的每两段之间和原数据前、后分别添加随机长度的随机数;
S3,对添加的每段随机数首字节进行处理以保证被减数添加的每个随机数的首字节的数值大于减数对应位置添加的随机数的首字节的数值,并对每段随机数的尾字节进行相同处理;
S4,对添加随机数后的被减数与减数进行大数相减操作,得到待处理的相减结果;
S5,对待处理的相减结果进行修正,并从待处理的相减结果中去除添加的随机数,得出被减数与减数真实的相减结果。
2.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S1步骤如下:
S101,设置被减数分段规则中每段的最大长度和最大分段数;
S102,在上述最大长度范围内任选一个数值作为分段的实际长度对被减数进行分段,不断重复上述操作直至各段实际长度之和大于或等于被减数原数据长度,或者直至实际分段数大于或等于最大分段数;
S103,调整分段后最后一段的数据长度,使各段实际长度之和等于被减数和减数的原数据长度,调整后最后一段的数据长度作为其实际长度;
S104,按照被减数分段时的各段实际长度和实际段数对减数进行分段。
3.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S2步骤如下:
S201,设置添加随机数的随机数最大长度;
S202,在被减数和减数的每两段之间和原数据前、后分别添加随机数,在上述随机数最大长度范围内任选一个数值作为每段添加的随机数的实际长度。
4.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S3步骤如下:
S301,判断被减数添加的每个随机数的首字节的数值是否大于减数对应位置添加的随机数的首字节的数值,若不大于,则进入步骤S302;若大于,则进入步骤S303;
S302,将减数里添加的随机数的首字节多次减去被减数对应位置添加的随机数的首字节,直至减数里该首字节的数值小于被减数里对应位置首字节的值为止;
S303,判断被减数添加的每个随机数的尾字节的数值是否大于减数对应位置添加的随机数的尾字节的数值,若不大于,则进入步骤S304;若大于,则进入步骤S305;
S304,将减数里添加的随机数的尾字节多次减去被减数对应位置添加的随机数的尾字节,直至减数里该尾字节的数值小于被减数里对应位置尾字节的值为止;
S305,随机数添加完成。
5.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S5步骤如下:
S501,判断待处理结果中每段添加的随机数的尾字节对应的数值是否等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值;若否,则进入步骤S502;若是,则进入步骤S503;
S502,对于所有随机数的尾字节对应的待处理结果中的数值不等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值的随机数,对该随机数的前一字节的数值进行修正:将待处理结果中该随机数的前一字节的数值减去1作为此字节真实值;
S503,从待处理的相减结果中去除添加的随机数字节,即得被减数与减数真实的相减结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338796.0A CN106027236B (zh) | 2016-05-20 | 2016-05-20 | 一种抗侧信道分析的大数相减方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338796.0A CN106027236B (zh) | 2016-05-20 | 2016-05-20 | 一种抗侧信道分析的大数相减方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106027236A CN106027236A (zh) | 2016-10-12 |
CN106027236B true CN106027236B (zh) | 2019-01-15 |
Family
ID=57095577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610338796.0A Active CN106027236B (zh) | 2016-05-20 | 2016-05-20 | 一种抗侧信道分析的大数相减方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106027236B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113573308B (zh) * | 2021-09-22 | 2022-01-25 | 四川创智联恒科技有限公司 | 一种提高空口安全的方法及模块 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506504A (zh) * | 2014-12-16 | 2015-04-08 | 成都驰通数码系统有限公司 | 一种无卡终端涉密信息的安全机制及安全装置 |
RU2598327C2 (ru) * | 2011-03-28 | 2016-09-20 | Сони Корпорейшн | Утройство для криптографической обработки данных, способ криптографической обработки данных и программа |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8855304B2 (en) * | 2011-06-23 | 2014-10-07 | Infosys Limited | System and method for generating session keys |
-
2016
- 2016-05-20 CN CN201610338796.0A patent/CN106027236B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2598327C2 (ru) * | 2011-03-28 | 2016-09-20 | Сони Корпорейшн | Утройство для криптографической обработки данных, способ криптографической обработки данных и программа |
CN104506504A (zh) * | 2014-12-16 | 2015-04-08 | 成都驰通数码系统有限公司 | 一种无卡终端涉密信息的安全机制及安全装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106027236A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1989726B (zh) | 用于执行加密计算的方法和装置 | |
CN103795527A (zh) | 防止基于功耗分析攻击aes算法的软件掩码防护方案 | |
US10521585B2 (en) | Method and apparatus for detecting side-channel attack | |
CN108833120B (zh) | 一种crt-rsa选择明文联合攻击方法及系统 | |
US10721056B2 (en) | Key processing method and device | |
CN104463012A (zh) | 虚拟机镜像文件的导出、导入方法及装置 | |
CN105022961A (zh) | 一种计算机数据的保护方法及装置 | |
CN106487499A (zh) | Rijndael算法的保护 | |
CN106547648A (zh) | 一种备份数据处理方法及装置 | |
CN105678173A (zh) | 基于硬件事务内存的vTPM安全保护方法 | |
CN106254059A (zh) | 一种运算方法和安全芯片 | |
CN103164187B (zh) | Rsa模幂电路及rsa安全加密芯片 | |
CN106027236B (zh) | 一种抗侧信道分析的大数相减方法 | |
CN107070633B (zh) | 一种抗高阶功耗分析的aes掩码加密方法 | |
CN104023009B (zh) | 一种Web系统许可证验证方法 | |
CN105933120A (zh) | 一种基于Spark平台的口令哈希值恢复方法和装置 | |
CN105872305A (zh) | 一种完全可分离的加密域图像可逆数据隐藏方法 | |
CN106936822A (zh) | 针对sms4抗高阶旁路分析的掩码实现方法及系统 | |
CN111817847B (zh) | 基于sike算法的旁路防御方法、装置、电子设备及可读介质 | |
CN104298897A (zh) | 基于混沌技术的嵌入式版权认证方法及专用处理器 | |
CN111092721B (zh) | 一种设置访问口令的方法及装置 | |
CN108574566A (zh) | 一种白盒加解密方法、装置及存储介质 | |
CN105656629B (zh) | 芯片中安全的非相邻表示型实现方法 | |
CN113408012A (zh) | 故障检测 | |
CN105721150B (zh) | 一种多变量二次方程的掩码加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |