CN105656629B - 芯片中安全的非相邻表示型实现方法 - Google Patents
芯片中安全的非相邻表示型实现方法 Download PDFInfo
- Publication number
- CN105656629B CN105656629B CN201410686661.4A CN201410686661A CN105656629B CN 105656629 B CN105656629 B CN 105656629B CN 201410686661 A CN201410686661 A CN 201410686661A CN 105656629 B CN105656629 B CN 105656629B
- Authority
- CN
- China
- Prior art keywords
- chip
- randombit
- pseudo
- data
- mod
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种芯片中安全的非相邻表示型实现方法,包括在智能卡或非智能卡芯片上,在硬件或软件上需要对数据K进行NAF计算时,通过对运算过程插入适量的伪操作,使得攻击者在功耗上不能够有效地分辨出运算数据对功耗的影响,从而抵御了侧信道攻击;同时,通过随机数打乱了插入伪操作的时机,使得攻击者不能够准确地对故障注入点进行判断和分析,从而抵御了故障注入攻击。本发明能够有效抵御侧信道攻击和故障注入攻击,提高芯片的安全性。本发明适用于芯片中的硬件和软件实现的安全算法,特别适用于应用密码安全芯片的金融卡、交通卡等等。
Description
技术领域
本发明涉及芯片中公钥密码体制的安全执行领域,具体涉及一种芯片中安全的非相邻表示型实现方法。
背景技术
在公钥密码体制的密码执行的整个过程中,都需要保证私钥的安全性。而为了能够保证私钥的安全性,通常在私钥参与密码运算之前,将私钥d通过NAF(非相邻表示型)方法进行变换,得到有规则或无规则的二进制的比特序列,然后使用该序列进行后续的密码运算,使得密码的运算更加安全与效率。典型的例子如椭圆曲线密码算法里的点乘中的标量,还有参与RSA密码运算的指数等等。
而在攻击方面,攻击者可以采取对密码运算过程中进行密码攻击,也可以从密码运算的外围进行攻击。事实上,密码运算的外围往往是攻击者选择攻击点的首选。例如,在椭圆曲线密码体制中,主要的运算是计算点乘d*P,这里P是椭圆曲线上的点,系数d是整数。d往往是敏感数据,例如在ANSI X9.63和ISO/IEC 15946-3标准以及IEEE P1363a标准草案中,已使ECIES标准化,而在椭圆曲线加密方案(ECIES)的解密中,在执行步骤Z=hdR时,d就是私钥,所以在进行点乘之前,需要对d进行NAF变换处理,而此时的处理过程往往成为攻击者攻击的时机。
大多数现代密码设备的计算部件是集成电路芯片,由于它保护的对象具有较强的私密性,因此其安全性一直备受关注。公钥密码体制包括RSA和ECC作为在密码设备中应用较为广泛的密码协议,它们在数学上均具有较强的安全性,但在密码设备上进行实现时,又会面临较多的攻击方式。比如利用密码设备所泄漏的一些侧信道信息来攻破这些密码系统的一种很有威胁的攻击方式,一般把这种攻击叫做侧信道攻击(Side-Channel Attacks,简称SCA);而另一种很有威胁的攻击方式则是差分故障攻击(Differential DefaultAttacks),它的原理主要是在密码运算的过程中向某个或某几个特定的时间点注入故障,从而将正确的结果和所有错误的结果进行归纳分析得出最终的秘密数据。
根据传统的NAF设计,如下所示:
输入:窗口宽度w,一个正整数k。、
输出:NAFw(k)。
1.i←0。
2.当k≥1时,重复执行
2.1若k是奇数,则ki←k mod 2w,k←ki。
2.2否则,ki←0。
2.3
3.返回(ki-1,ki-2,...,k1,k0)。
由于在步骤2.1和步骤2.2中,操作有比较大的差别,导致它们在功耗中的信息特征也非常明显,可参考图3所示,即使用侧信道攻击方法就很轻易能够得出数据K的每一比特是0还是1;而为了解决这个问题,解决方法往往是在步骤2.2中加入了适当的伪操作,使得步骤2.1和步骤2.2的功耗特征达到平衡。但是即便这样,也还是带来相应的问题,即这样的解决方法不能够对故障注入攻击免疫。
发明内容
本发明要解决的技术问题是提供一种芯片中安全的非相邻表示型实现方法,具有更强的抵抗SCA攻击和DFA(故障注入分析)攻击的能力,同时,效率的影响和安全的强度可控可调。
为解决上述技术问题,本发明的芯片中安全的非相邻表示型实现方法,包括如下步骤:
步骤1,读取需要进行NAF计算的数据K和用于伪造数据K的随机数Kd以及随机比特序列RandomBit;
步骤2,当K>0,重复执行以下操作,其中Kdi为临时变量,ki和i为输出变量:
a、如果RandomBit最低比特为1,则执行下列伪操作S1;
S1的核心运算如下:
Kdi←Kd mod2w,Kd←Kd-Kdi,
RandomBit←Randombit/2,
b、否则如果K的最低比特为1,则执行下列真操作S2;
S2的核心运算如下:
ki←K mod 2w,K←K-ki,
c、否则执行下列真操作与伪操作的结合S3;
S3的核心运算如下:
Kdi←Kd mod 2w,Kd←Kd-Kdi,
步骤3,输出ki和i。
所述的用于伪造数据K的随机数Kd,包括任意在运算执行时所表现出来的信息特征上与数据K的信息特征相似的数据。
步骤1中所述的随机比特序列RandomBit,包括任意占空比可控的随机比特序列。
步骤2中所述的伪操作S1,除了其核心运算Kdi←Kd mod 2w,Kd←Kd-Kdi和RandomBit←Randombit/2以外,包括任意在运算执行时能够达到与操作S2的信息特征相似的操作。
步骤2中所述的真操作与伪操作的结合S3,除了其核心运算ki←K mod 2w,K←K-ki和以外,包括任意在运算执行时能够达到与操作S2的信息特征相似的操作。
鉴于现有的NAF方法实现中存在的问题,本发明提供了一种适合密码设计硬件或软件的抵抗SCA攻击和DFA攻击的非相邻表示型实现方法。相对于传统的方法,本发明的方法具有更强的抵抗SCA攻击和DFA攻击的能力,同时,效率的影响和安全的强度可控可调。因此,特别适用于智能卡等计算资源受限的嵌入式设备应用。
本发明的主体在于将随机数Kd和占空比可控的随机数比特序列RandomBit引入NAF的计算过程当中。其中Kd是与K对应的随机数,用于在计算过程中,模仿数据K在运算中所表现出来的信息特征,从而达到混淆真假数据K运算的目的。其中RandomBit是用于控制效率和安全的随机数比特序列,RandomBit的相应位为1时,则该轮运算执行伪操作S1;否则,该轮运算执行真操作S2或者真操作与伪操作的结合S3。当随机数RandomBit的比特序列中比特位为1较多时,插入的伪操作S1相应地变多,运算效率也会相应的降低,安全性则呈现一种类似正态分布的形状,即比特1呈现得过多或过少都降低NAF计算的安全性,同时比特1过于集中而不够随机也会降低NAF计算的安全性。即只有当随机数Random的比特序列中比特位为1达到一定的数量且分布较为随机的时候,安全性才是最高的。步骤2中的操作S1的核心运算Kdi←Kd mod 2w,Kd←Kd-Kdi主要作用是保持与S2和S3的行为方式一致以保证相同的信息特征,核心运算RandomBit←Randombit/2的主要作用是为了遍历随机数序列RandomBit的比特位。步骤2的操作S2的核心运算ki←K mod 2w,K←K-ki和都是需要执行的真操作,是其他伪操作设计时需要严格参考的对象。步骤3的操作S3的核心运算Kdi←Kd mod 2w,Kd←Kd-Kdi是伪操作,其主要作用是使得操作S3能够保持与S1和S2具有相同的信息特征。步骤3的操作S3的核心运算是操作S3需要做的真操作。三个操作S1,S2和S3在实现过程中需要保证它们的信息特征是尽可能一样的,以致攻击者不能够从信息特征中找出它们之间的相关性。
采用本发明的方法,当芯片进行密码运算潜在受到SCA攻击和DFA攻击的软件或硬件密码设备运行公钥体制时,在需要对秘密密钥或保密参数进行NAF计算的情况下,本发明能够有效性抵抗故障攻击、侧信道分析和模板攻击。同时还能根据应用需求,设计与系统相匹配的效率和安全性。
本发明适用于芯片中的硬件和软件实现的安全算法,特别适用于应用密码安全芯片的金融卡、交通卡等等。
本发明的其他优点,目的和特征将部分地在随后的描述中阐明,并且对本领域普通技术人员来说,部分内容将在审查下列内容时变得清楚,或者可以由本发明的实践而得知。利用在书面描述及其权利要求以及附图中具体指出的结构,可以实现和达到本发明的目的和其他优点。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是所述芯片中的安全的NAF实现方法流程图;
图2是所述芯片中安全的NAF实现方法的功耗图;
图3是芯片中的传统的NAF设计方法的功耗图。
具体实施方式
为了便于表述,本实例暂定Kd为占空比为1/20的随机数,非相邻表示型的窗口w为4。
如图1所示,所述芯片中安全的NAF实现方法,当潜在受到SCA攻击和DFA攻击的软件或硬件密码设备运行公钥体制时,在需要对秘密密钥或保密参数进行NAF计算的情况下,具体执行如下步骤(其中,Ki代表输出参数,K代表输入参数):
第一步,输入需要表示成非相邻表示型的数据的地址K,K的非相邻表示型的输出地址Ki。
第二步,产生一个随机数Kd和1/20占空比的随机序列RandomBit。所述的随机数Kd从本质上来看跟数据K是没有任何分别的。
第三步,判断数据K是否为0,为0则转到第四步,返回计数值i,程序结束,否则执行以下操作:
a、如果Kd最低比特为1,则执行下列伪操作S1,S1的具体操作如下所示。回到第三步。
①kdi←kd mod24,kd←kd-kdi。
②RandomBit←RandomBit/2。
③Kd←Kd/24;i_d++。
b、否则如果数据K的最低比特为1,则执行下列真操作S2,S2的具体操作如下所示。回到第三步。
(a)ki←k mod24,k←k-ki。
(b)RandomBit←RandomBit/2。
(c)K←K/24;i++。
c、否则执行下列真操作与伪操作的结合S3,S3的具体操作如下所示。回到第三步。
(A)kdi←kd mod24,kd←kd-kdi。
(B)RandomBit←RandomBit/2。
(C)K←K/24;i++。
所述芯片中安全的NAF实现方法,具有以下优点:
第一,为了保证代码保持一致性,需要S1,S2和S3三个操作内容所执行的汇编指令完全一样,所消耗的指令周期也完全一样,这就使得该方法无论是放在任何不同的存储介质之间复制数据,例如在SRAM(静态随机存储器)之间复制数据或者从EEPROM(带电可擦可编程只读存储器)到SRAM之间复制数据,显而易见,该方法的三个执行阶段所消耗的时间都应该是一样的。
第二,由于这一过程中所有的代码虽然逻辑不同,但是代码是相同的,所以它们的能耗表现基本是一样。由于代码完全相同,而且功耗特征的体现主要是由处理器的基本操作单元引起的,简而言之就是从指令执行单元体现出来的,从而使得这三个执行阶段所表现出来的功耗特征应该都是类似的。
第三,引入了随机数Kd因素,即Kd不作为真正的结果但是会直接影响整个程序运行时体现出来的信息特征,从而使得攻击者难以判断真假功耗特征,有效抵抗了SCA攻击。
第四,引入了占空比可调的随机比特序列RandomBit,RandomBit的是安全性和效率性的关键指标,占空比过高或过低都会降低安全性,选择合适的占空比,可根据实际应用调节RandomBit的占空比让程序的效率和安全性达到最佳状态。
将上述实施方式应用到单片机芯片中采集到的功耗如图2所示,从图2不难看出整个NAF的运算过程都是非常整齐平均的。
与本发明形成鲜明对比的是,去掉Kd和RandomBit的影响后,上述实施方式应用到单片机芯片中采集到的功耗如图3所示,从图3不难看出整个NAF的运算过程中,数据K的比特1和比特0非常明显。倘若波形经过精心处理之后,破解数据K将变得轻而易举。
综上所述,本发明在芯片中需要对数据进行非相邻表示型计算时,能够做到时间上保持一致、功耗上保持一致,且由于加入了随机性因子,从而扰乱了伪操作插入的时间,使得攻击者进行DFA攻击试验时无法确定真假操作,进行SPA攻击试验时也无法找到明显的功耗特征。与传统方法相比,本发明满足了抵御SCA和DFA等等攻击手段,安全性有了质的飞跃。
以上所述仅为本发明的具体实施方式和实施例,本发明保护范围并不局限于此。
Claims (5)
1.一种芯片中安全的非相邻表示型实现方法,其特征在于,包括如下步骤:
步骤1,读取需要进行NAF计算的数据K和用于伪造数据K的随机数Kd以及随机比特序列RandomBit;
步骤2,当K>0,重复执行以下操作,其中Kdi为临时变量,ki和i为输出变量:
a、如果RandomBit最低比特为1,则执行下列伪操作S1;
S1的核心运算如下:
Kdi←Kd mod 2w,Kd←Kd-Kdi,
RandomBit←Randombit/2,
b、否则如果K的最低比特为1,则执行下列真操作S2;
S2的核心运算如下:
ki←K mod 2w,K←K-ki,
c、否则执行下列真操作与伪操作的结合S3;
S3的核心运算如下:
Kdi←Kd mod 2w,Kd←Kd-Kdi,
步骤3,输出ki和i。
2.如权利要求1所述的方法,其特征在于:所述的用于伪造数据K的随机数Kd,包括任意在运算执行时所表现出来的信息特征上与数据K的信息特征相似的数据。
3.如权利要求1所述的方法,其特征在于:步骤1中所述的随机比特序列RandomBit,包括任意占空比可控的随机比特序列。
4.如权利要求1所述的方法,其特征在于:步骤2中所述的伪操作S1,除了其核心运算Kdi←Kd mod 2w,Kd←Kd-Kdi和RandomBit←Randombit/2以外,包括任意在运算执行时能够达到与操作S2的信息特征相似的操作。
5.如权利要求1所述的方法,其特征在于:步骤2中所述的真操作与伪操作的结合S3,除了其核心运算ki←K mod 2w,K←K-ki和以外,包括任意在运算执行时能够达到与操作S2的信息特征相似的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410686661.4A CN105656629B (zh) | 2014-11-25 | 2014-11-25 | 芯片中安全的非相邻表示型实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410686661.4A CN105656629B (zh) | 2014-11-25 | 2014-11-25 | 芯片中安全的非相邻表示型实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105656629A CN105656629A (zh) | 2016-06-08 |
CN105656629B true CN105656629B (zh) | 2018-12-11 |
Family
ID=56480375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410686661.4A Active CN105656629B (zh) | 2014-11-25 | 2014-11-25 | 芯片中安全的非相邻表示型实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105656629B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039590A (zh) * | 2017-06-09 | 2018-12-18 | 深圳九磊科技有限公司 | 存储器、电子设备及其防止侧信道攻击的加解密方法 |
CN108737073B (zh) * | 2018-06-22 | 2021-09-28 | 北京智芯微电子科技有限公司 | 分组加密运算中抵抗能量分析攻击的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902897A (zh) * | 2011-07-25 | 2013-01-30 | 上海华虹集成电路有限责任公司 | 适用于ecc点乘算法的抗无穷远点攻击的方法 |
CN103078732A (zh) * | 2013-01-08 | 2013-05-01 | 武汉大学 | 一种素域椭圆曲线加密的点乘加速电路 |
CN103455445A (zh) * | 2012-05-31 | 2013-12-18 | 上海华虹集成电路有限责任公司 | 智能卡系统抵抗故障攻击的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1946204B1 (en) * | 2005-10-28 | 2010-04-28 | Telecom Italia S.p.A. | A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems |
WO2009024520A1 (en) * | 2007-08-17 | 2009-02-26 | International Business Machines Corporation | Method and system for atomicity for elliptic curve cryptosystems |
JP5225115B2 (ja) * | 2009-01-15 | 2013-07-03 | 株式会社東芝 | Naf変換装置 |
-
2014
- 2014-11-25 CN CN201410686661.4A patent/CN105656629B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902897A (zh) * | 2011-07-25 | 2013-01-30 | 上海华虹集成电路有限责任公司 | 适用于ecc点乘算法的抗无穷远点攻击的方法 |
CN103455445A (zh) * | 2012-05-31 | 2013-12-18 | 上海华虹集成电路有限责任公司 | 智能卡系统抵抗故障攻击的方法 |
CN103078732A (zh) * | 2013-01-08 | 2013-05-01 | 武汉大学 | 一种素域椭圆曲线加密的点乘加速电路 |
Also Published As
Publication number | Publication date |
---|---|
CN105656629A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ors et al. | Power-analysis attack on an ASIC AES implementation | |
Medwed et al. | Template attacks on ECDSA | |
CN103560877B (zh) | 攻击密钥的方法及装置 | |
US7292060B2 (en) | Logic circuit and method thereof | |
EP2207087B1 (en) | Method for protecting a cryptographic device against SPA, DPA and timing attacks | |
CN102970132B (zh) | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 | |
CN103166751A (zh) | 用于保护分组密码免受模板攻击的方法和装置 | |
US8817973B2 (en) | Encrypting method having countermeasure function against power analyzing attacks | |
CN103903043B (zh) | 一种智能卡三位一体抗侧信道攻击防护方法和系统 | |
CN111817842B (zh) | 一种针对rsa-crt运算的能量分析攻击测试装置和方法 | |
US20180183569A1 (en) | Key processing method and device | |
US10567155B2 (en) | Securing a cryptographic device | |
WO2017037725A1 (en) | Randomized logic against side channel attacks | |
US9363073B2 (en) | Cryptographic countermeasure method by deriving a secret data | |
EP1646174A1 (en) | Method and apparatus for generating cryptographic sets of instructions automatically and code generation | |
CN102970131A (zh) | 一种防止对分组算法进行功耗攻击的电路结构 | |
CN105656629B (zh) | 芯片中安全的非相邻表示型实现方法 | |
CN105740730B (zh) | 芯片中安全的点乘实现方法 | |
KR101997005B1 (ko) | 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로 | |
JP2004310752A (ja) | データ処理装置における誤り検出 | |
US10545759B2 (en) | Random execution of multiple different and independent branches of a sensitive computation against various attacks | |
KR102466273B1 (ko) | 암호 연산 멀티스레딩 장치 및 방법 | |
Chen et al. | Mind your nonces moving: Template-based partially-sharing nonces attack on SM2 digital signature algorithm | |
JP4634788B2 (ja) | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード | |
Li et al. | FPGA implementation of AES algorithm resistant power analysis attacks |
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 |