CN106027236A - 一种抗侧信道分析的大数相减方法 - Google Patents

一种抗侧信道分析的大数相减方法 Download PDF

Info

Publication number
CN106027236A
CN106027236A CN201610338796.0A CN201610338796A CN106027236A CN 106027236 A CN106027236 A CN 106027236A CN 201610338796 A CN201610338796 A CN 201610338796A CN 106027236 A CN106027236 A CN 106027236A
Authority
CN
China
Prior art keywords
random number
minuend
byte
subtrahend
numerical value
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
Application number
CN201610338796.0A
Other languages
English (en)
Other versions
CN106027236B (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.)
Wuhan Tianyu Information Industry Co Ltd
Original Assignee
Wuhan Tianyu Information Industry Co Ltd
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 Wuhan Tianyu Information Industry Co Ltd filed Critical Wuhan Tianyu Information Industry Co Ltd
Priority to CN201610338796.0A priority Critical patent/CN106027236B/zh
Publication of CN106027236A publication Critical patent/CN106027236A/zh
Application granted granted Critical
Publication of CN106027236B publication Critical patent/CN106027236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation 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 (6)

1.一种抗侧信道分析的大数相减方法,其特征在于:
对被减数和减数的原数据按同一规则随机分段,并在每两段之间和原数据前、后分别添加随机长度的随机数,然后对添加随机数后的被减数与减数进行大数相减操作,得到相减结果后去除添加的随机数,恢复被减数与减数真实的相减结果。
2.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于,其步骤包括:
S1,对被减数和减数的原数据按同一规则随机分段;
S2,在被减数和减数的每两段之间和原数据前、后分别添加随机长度的随机数;
S3,对添加的每段随机数首字节进行处理以保证被减数添加的每个随机数的首字节的数值大于减数对应位置添加的随机数的首字节的数值,并对每段随机数的尾字节进行相同处理;
S4,对添加随机数后的被减数与减数进行大数相减操作,得到待处理的相减结果;
S5,对待处理的相减结果进行修正,并从待处理的相减结果中去除添加的随机数,得出被减数与减数真实的相减结果。
3.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S1步骤如下:
S101,设置被减数分段规则中每段的最大长度和最大分段数;
S102,在上述最大长度范围内任选一个数值作为分段的实际长度对被减数进行分段,不断重复上述操作直至各段实际长度之和大于或等于被减数原数据长度,或者直至实际分段数大于或等于最大分段数;
S103,调整分段后最后一段的数据长度,使各段实际长度之和等于被减数和减数的原数据长度,调整后最后一段的数据长度作为其实际长度;
S104,按照被减数分段时的各段实际长度和实际段数对减数进行分段。
4.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S2步骤如下:
S201,设置添加随机数的随机数最大长度;
S202,在被减数和减数的每两段之间和原数据前、后分别添加随机数,在上述随机数最大长度范围内任选一个数值作为每段添加的随机数的实际长度。
5.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S3步骤如下:
S301,判断被减数添加的每个随机数的首字节的数值是否大于减数对应位置添加的随机数的首字节的数值,若不大于,则进入步骤S302;若大于,则进入步骤S303;
S302,将减数里添加的随机数的首字节多次减去被减数对应位置添加的随机数的首字节,直至减数里该首字节的数值小于被减数里对应位置首字节的值为止;
S303,判断被减数添加的每个随机数的尾字节的数值是否大于减数对应位置添加的随机数的尾字节的数值,若不大于,则进入步骤S304;若大于,则进入步骤S305;
S304,将减数里添加的随机数的尾字节多次减去被减数对应位置添加的随机数的尾字节,直至减数里该尾字节的数值小于被减数里对应位置尾字节的值为止;
S305,随机数添加完成。
6.如权利要求1所述的一种抗侧信道分析的大数相减方法,其特征在于:步骤S5步骤如下:
S501,判断待处理结果中每段添加的随机数的尾字节对应的数值是否等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值;若否,则进入步骤S502;若是,则进入步骤S503;
S502,对于所有随机数的尾字节对应的待处理结果中的数值不等于该段被减数中随机数尾字节与减数中随机数尾字节单独相减的数值的随机数,对该随机数的前一字节的数值进行修正:将待处理结果中该随机数的前一字节的数值减去1作为此字节真实值;
S503,从待处理的相减结果中去除添加的随机数字节,即得被减数与减数真实的相减结果。
CN201610338796.0A 2016-05-20 2016-05-20 一种抗侧信道分析的大数相减方法 Active CN106027236B (zh)

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 true CN106027236A (zh) 2016-10-12
CN106027236B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113573308A (zh) * 2021-09-22 2021-10-29 四川创智联恒科技有限公司 一种提高空口安全的方法及模块

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120328098A1 (en) * 2011-06-23 2012-12-27 Infosys Limited System and method for generating session keys
CN104506504A (zh) * 2014-12-16 2015-04-08 成都驰通数码系统有限公司 一种无卡终端涉密信息的安全机制及安全装置
RU2598327C2 (ru) * 2011-03-28 2016-09-20 Сони Корпорейшн Утройство для криптографической обработки данных, способ криптографической обработки данных и программа

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2598327C2 (ru) * 2011-03-28 2016-09-20 Сони Корпорейшн Утройство для криптографической обработки данных, способ криптографической обработки данных и программа
US20120328098A1 (en) * 2011-06-23 2012-12-27 Infosys Limited System and method for generating session keys
CN104506504A (zh) * 2014-12-16 2015-04-08 成都驰通数码系统有限公司 一种无卡终端涉密信息的安全机制及安全装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113573308A (zh) * 2021-09-22 2021-10-29 四川创智联恒科技有限公司 一种提高空口安全的方法及模块

Also Published As

Publication number Publication date
CN106027236B (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
CN1989726B (zh) 用于执行加密计算的方法和装置
US7162033B1 (en) Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm
CN108833120B (zh) 一种crt-rsa选择明文联合攻击方法及系统
CN103795527A (zh) 防止基于功耗分析攻击aes算法的软件掩码防护方案
CN103259647B (zh) 加密系统边信道攻击测试方法
CN107276752A (zh) 对云支付限制密钥进行解密的方法、装置和系统
CN109598122A (zh) 用于检测侧信道攻击的方法和装置
US20180183569A1 (en) Key processing method and device
CN109165531B (zh) 一种aes掩码方法、电子设备及存储介质
CN106254059A (zh) 一种运算方法和安全芯片
CN103164187B (zh) Rsa模幂电路及rsa安全加密芯片
CN106027236A (zh) 一种抗侧信道分析的大数相减方法
Luo et al. Effective simple-power analysis attacks of elliptic curve cryptography on embedded systems
CN114465728B (zh) 攻击椭圆曲线签名算法的方法、装置、设备及存储介质
CN117294429B (zh) 基于区块链的公共资源交易数据加解密方法、系统及介质
CN105872305A (zh) 一种完全可分离的加密域图像可逆数据隐藏方法
CN109039590A (zh) 存储器、电子设备及其防止侧信道攻击的加解密方法
CN105897398A (zh) 一种des加密过程的密钥保护方法及系统
CN111742519A (zh) 用于公开密钥加密算法的密钥比特变数随机化的装置及方法
CN105656629B (zh) 芯片中安全的非相邻表示型实现方法
CN104318461A (zh) 一种基于密码机和USBKey的防伪码生成与验证方法
CN111817847B (zh) 基于sike算法的旁路防御方法、装置、电子设备及可读介质
Chen et al. Timing leakage to break SM2 signature algorithm
CN113408012A (zh) 故障检测
CN104125061A (zh) 使用rsa加密算法的电子部件中的防攻击方法

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