CN105763327A - 智能卡中安全的随机数产生方法 - Google Patents

智能卡中安全的随机数产生方法 Download PDF

Info

Publication number
CN105763327A
CN105763327A CN201410783819.XA CN201410783819A CN105763327A CN 105763327 A CN105763327 A CN 105763327A CN 201410783819 A CN201410783819 A CN 201410783819A CN 105763327 A CN105763327 A CN 105763327A
Authority
CN
China
Prior art keywords
computing
ede
seed
data
random
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.)
Pending
Application number
CN201410783819.XA
Other languages
English (en)
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.)
Shanghai Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit 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 Shanghai Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN201410783819.XA priority Critical patent/CN105763327A/zh
Publication of CN105763327A publication Critical patent/CN105763327A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种智能卡中安全的随机数产生方法。使用如下步骤可以实现本发明。步骤1,使用智能卡芯片内部的参数作为初始化种子V0和密钥K;步骤2,使用密钥为K的对称加密算法模块EDE对当前芯片内部参数DTi和种子Vi执行相关加密运算,获取结果Ri;步骤3,使用单向函数Fun()对数据Ri执行运算,获取当前轮的随机数Qi。步骤4,利用加密算法模块EDE对参数DTi和数据Ri执行相关加密运算获取下一轮运算所需的种子Vi+1;步骤5,返回步骤2进行下一轮的运算,直到获取所需长度的随机数{Q0,Q1...Qn}。本发明在获取随机数{Q0,Q1...Qn}的过程中,可以有效地防止随机数被预测或者攻击,从而提高算法的安全强度。

Description

智能卡中安全的随机数产生方法
技术领域
本发明涉及信息加密领域,特别是涉及一种智能卡中安全的随机数产生方法。
背景技术
密码算法是智能卡安全防护的核心组件,随机数对多种密码算法(例如RSA、DES、AES算法)都起着关键性作用。高质量的随机数拥有良好的随机性,且难以预测,对于整个密码系统起着重要作用。传统的基于密码算法的随机数生成算法虽然是密码学安全意义上的随机数生成算法,但在实际应用中,传统的随机数生成算法容易遭受包括功耗分析在内的多种方法的攻击。
在智能卡的密码应用中,随机数可以用在身份认证、产生私钥或者直接作为私钥来使用。如果生成这些参数的随机数生成器被破解,那么整个密码系统的安全性就没有任何保障。传统的随机数生算法使用密码算法来保障算法的安全性,基于密码运算的困难性可以实现多种高度安全的随机数产生器。在美国的ANSIX9.17标准中,提出了基于3DES运算破解困难的随机数生成算法。但是在智能卡的实际应用中,ANSIX9.17标准中的随机数生成算法(参见图1)难以抵抗多种破解和攻击手段。
对于图1所示的ANSIX9.17标准,其输出Ri即系统产生的随机数,是公开数据,同时Ri也是3DES加密算法的输出结果,对于功耗分析而言,只要知道了算法的输入或者输出,就能穷举子密钥并计算中间值来展开攻击,并通过大量采集密码运行时的功耗通过统计分析出其运算密钥K1、K2,从而破解整个ANSIX9.17标准的系统。
图1中,输入:EDE=3DES(K1,K2);(K1,K2)=3DES密钥(8bytes×2);Vi=第i轮种子(8bytes);DTi=第i轮时间信息(8bytes)。
输出:Vi+1=第(i+1)轮种子(8bytes);Ri=第i轮输出随机数(8bytes)。
发明内容
本发明要解决的技术问题是提供一种智能卡中安全的随机数产生方法。可以有效地防止随机数被预测或者攻击,从而提高算法的安全强度。
为解决上述技术问题,本发明的智能卡中安全的随机数产生方法,包括如下步骤:
步骤1,使用随机信息作为初始化的种子V0和密钥K;
步骤2,使用密钥为K的对称加密算法模块EDE对当前随机信息DTi和种子Vi执行相关密码运算,获取结果Ri
步骤3,使用单向函数Fun()对步骤2获取的数据Ri进行单向运算,并获得第i轮产生的随机数Qi
步骤4,使用密钥为K的对称加密算法模块EDE对当前随机信息DTi和步骤2获取的数据Ri执行相关密码运算获取第(i+1)轮运算所需的新种子Vi+1
步骤5,返回步骤2进行下一轮运算,直到获取所需长度的随机数{Q0,Q1...Qn};其中,i∈[0,n]。
本发明需要隐藏初始化种子V0、密钥K以及密码运算的中间数据Ri。对密码运算的中间数据Ri需要使用单向函数进行额外运算。根据实际需求使用合适的单向函数Fun()和对称加密算法模块EDE。利用芯片内部参数信息产生初始化种子V0、密钥K、以及每轮运算所需的内部参数DTi。本发明通过增加单向函数运算可以有效地提高抗攻击能力、增加算法的安全强度。
根据之前的叙述,原本的ANSIX9.17标准会遭到功耗攻击的关键原因就在于其运算的输出对攻击而言是已知的,而在添加了单向函数Fun()之后,由于单向函数的不可逆推性,根据输出随机数Qi无法反推出3DES的加密结果Ri,即3DES加密的输入输出均未知且无法计算,从而无法通过穷举子密钥来计算3DES算法过程中的中间值,使得对其功耗分析无法进行。因此本发明具有抵抗功耗攻击的能力。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是所述的ANSIX9.17标准中随机数发生器算法结构示意图。
图2是所述的单向函数结构示意图。
图3是所述的智能卡中安全的随机数产生方法示意图。
具体实施方式
结合图3所示,所述智能卡中安全的随机数产生方法,包括如下步骤:
步骤1,使用随机信息作为初始化的种子V0和密钥K。
步骤2,使用密钥为K的对称加密算法模块EDE对当前随机信息DTi和种子Vi执行相关密码运算,获取结果Ri。所述的加密算法模块EDE可以是DES/3DES、AES等公知的高效安全对称算法。所述的对当前随机信息DTi和种子Vi执行相关密码运算,执行如下运算:
R i = EDE K [ V i ⊕ EDE K [ DT i ] ] .
步骤3,使用单向函数Fun()对步骤2获取的数据Ri进行单向运算,并获得第i轮产生的随机数Qi。所述的单向函数Fun()可以根据需求选择公知的单向算法,例如有损压缩运算(多位数据异或输出)、摘要算法(md5)、安全散列算法(SHA,SHA256,SHA512)以及其它基于困难问题的单向算法。所述的对数据Ri进行单向运算,执行如下运算:
Qi=Fun(Ri)。
单向函数Fun()的结构参见图2。
步骤4,使用密钥为K的对称加密算法模块EDE对当前随机信息DTi和步骤2获取的数据Ri执行相关密码运算获取第(i+1)轮运算所需的新种子Vi+1。所述的对当前随机信息DTi和数据Ri执行相关密码运算;执行如下运算:
V i + 1 = EDE K [ R i ⊕ EDE K [ DT i ] ] .
步骤5,返回步骤2进行下一轮运算,直到获取所需长度的随机数{Q0,Q1...Qn};其中,i∈[0,n]。
步骤1所述的初始化种子V0、密钥K,以及每轮运算所需的随机信息DTi可以采用智能卡芯片内部的时钟周期、噪声信号或者电流、电压等系统随机参数信息。
下面是一个生成16字节随机数的实施例,通过该实施例来演示所述智能卡中安全的随机数产生方法的用法。该实施例的具体执行流程如下:
第一步,使用芯片内部的硬件噪声信号作为初始化信息参数:初始化种子V0(8字节),密钥K1,K2(两个8字节参数)。这三个参数是该方案的关键参数,需要做数据保护,防止被窃取。
第二步,使用密钥为K1,K2的2Key3Des(EDE)加密运算模块,执行如下运算: R i = EDE K 1 , K 2 [ V i ⊕ EDE K 1 , K 2 [ DT i ] ] . 其中为了增加安全性,使用芯片内部的硬件噪声信号作为运算数据DTi,DTi在每轮运算中不断更新变化。
第三步,将获取的8字节密码运算结果Ri进行有损压缩运算,每4比特数据进行异或运算,输出1比特数据。将2字节的运算结果Qi数据作为第i轮随机数进行输出。
第四步,根据第二步的运算结果Ri执行如下运算: V i + 1 = EDE K 1 , K 2 [ R i ⊕ EDE K 1 , K 2 [ DT i ] ] . 获取第(i+1)轮运算所需的随机数新种子。
第五步,返回第二步继续下一轮运算直到获取16字节的随机数{Q0,Q1...Q7}。
使用上述方法能够保证随机数在生成过程中是有安全防护的;极大地提高了算法的安全性,可以抵抗随机数被预测或者被破解的风险。同时,使用软硬件容易实现的单向函数对算法效率的影响有限。
本发明并不限于上文讨论的实施方式。以上对具体实施方式的描述旨在于为了描述和说明本发明涉及的技术方案。基于本发明启示的显而易见的变换或替代也应当被认为落入本发明的保护范围。以上的具体实施方式用来揭示本发明的最佳实施方法,以使得本领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来完成本发明提供的功能。

Claims (7)

1.一种智能卡中安全的随机数产生方法,其特征在于,包括如下步骤:
步骤1,使用随机信息作为初始化的种子V0和密钥K;
步骤2,使用密钥为K的对称加密算法模块EDE对当前随机信息DTi和种子Vi执行相关密码运算,获取结果数据Ri
步骤3,使用单向函数Fun()对步骤2获取的数据Ri进行单向运算,并获得第i轮产生的随机数Qi
步骤4,使用密钥为K的对称加密算法模块EDE对当前随机信息DTi和步骤2获取的数据Ri执行相关密码运算获取第(i+1)轮运算所需的新种子Vi+1
步骤5,返回步骤2进行下一轮运算,直到获取所需长度的随机数{Q0,Q1...Qn};其中,i∈[0,n]。
2.按照权利要求1所述的方法,其特征在于:步骤3所述的单向函数Fun()可以根据需求选择公知的单向算法。
3.按照权利要求1所述的方法,其特征在于:步骤2所述的加密算法模块EDE是包括DES/3DES和AES在内的公知的安全对称算法。
4.按照权利要求1所述的方法,其特征在于:步骤1所述的初始化种子V0、密钥K,以及每轮运算所需的随机信息DTi可以采用智能卡芯片内部的包括时钟周期和噪声信号或者电流和电压在内的系统随机参数信息。
5.按照权利要求1所述的方法,其特征在于:步骤2所述的对当前随机信息DTi和种子Vi执行相关密码运算,执行如下运算:
R i = E DE K [ V i ⊕ EDE K [ DT i ] ] .
6.按照权利要求1所述的方法,其特征在于:步骤3所述的对数据Ri进行单向运算,执行如下运算:
Qi=Fun(Ri)。
7.按照权利要求1所述的方法,其特征在于:步骤4所述的对当前随机信息DTi和数据Ri执行相关密码运算,执行如下运算:
V i + 1 = E DE K [ R i ⊕ EDE K [ DT i ] ] .
CN201410783819.XA 2014-12-16 2014-12-16 智能卡中安全的随机数产生方法 Pending CN105763327A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410783819.XA CN105763327A (zh) 2014-12-16 2014-12-16 智能卡中安全的随机数产生方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410783819.XA CN105763327A (zh) 2014-12-16 2014-12-16 智能卡中安全的随机数产生方法

Publications (1)

Publication Number Publication Date
CN105763327A true CN105763327A (zh) 2016-07-13

Family

ID=56339322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410783819.XA Pending CN105763327A (zh) 2014-12-16 2014-12-16 智能卡中安全的随机数产生方法

Country Status (1)

Country Link
CN (1) CN105763327A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019080109A1 (zh) * 2017-10-27 2019-05-02 福建联迪商用设备有限公司 一种终端随机数发生的方法及系统
CN113127940A (zh) * 2021-04-30 2021-07-16 武汉天喻信息产业股份有限公司 一种智能卡抗侧信道攻击防护方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1832396A (zh) * 2005-11-07 2006-09-13 北京浦奥得数码技术有限公司 一种伪随机数生成方法
US20070067374A1 (en) * 2005-02-03 2007-03-22 Sanyo Electric Co., Ltd Random Number Generating Circuit
CN101473298A (zh) * 2006-06-20 2009-07-01 Nxp股份有限公司 随机数发生器系统、产生随机数的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067374A1 (en) * 2005-02-03 2007-03-22 Sanyo Electric Co., Ltd Random Number Generating Circuit
CN1832396A (zh) * 2005-11-07 2006-09-13 北京浦奥得数码技术有限公司 一种伪随机数生成方法
CN101473298A (zh) * 2006-06-20 2009-07-01 Nxp股份有限公司 随机数发生器系统、产生随机数的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨义先等: "第1章 移动通信系统的安全基础", 《无线通信安全技术》 *
郭亚军等: "第3章 对称密码技术", 《信息安全原理与技术(第2版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019080109A1 (zh) * 2017-10-27 2019-05-02 福建联迪商用设备有限公司 一种终端随机数发生的方法及系统
CN113127940A (zh) * 2021-04-30 2021-07-16 武汉天喻信息产业股份有限公司 一种智能卡抗侧信道攻击防护方法和装置

Similar Documents

Publication Publication Date Title
CN104468089B (zh) 数据保护装置及其方法
CN1989726B (zh) 用于执行加密计算的方法和装置
CN103067155A (zh) 一种防止基于功耗分析的des算法攻击的方法及测试电路
CN104410616A (zh) 数据加密、解密、传输方法和系统
CN102970132B (zh) 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
CN104253684A (zh) 加密方法和加密装置
CN105553638A (zh) 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN103795527A (zh) 防止基于功耗分析攻击aes算法的软件掩码防护方案
WO2015193789A1 (en) Differential power analysis countermeasures
CN103019648A (zh) 一种带有数字后处理电路的真随机数发生器
CN101695021A (zh) 一种抗spa/dpa攻击的系统和方法
CN103020891A (zh) 一种基于复合混沌序列与移位的彩色图像加密方法
CN103634102A (zh) 一种侧信道攻击和故障攻击的防护方法
CN102710413A (zh) 一种抗dpa/spa攻击的系统和方法
CN103916236A (zh) 面向aes算法的抗功耗攻击方法及电路实现
CN104301095A (zh) Des轮运算方法和电路
CN104486068A (zh) 基于非线性循环移位寄存器的流密码算法snrr
CN103746805A (zh) 外部认证密钥的生成方法和系统
CN105763327A (zh) 智能卡中安全的随机数产生方法
Xu et al. Pushing the limit of PFA: enhanced persistent fault analysis on block ciphers
CN111314270B (zh) 一种基于有效期均匀分布对称算法的数据加密和解密方法
JP6194136B2 (ja) 疑似乱数生成装置及び疑似乱数生成プログラム
CN207530855U (zh) 分组密码芯片低功耗攻击防御装置
CN102932147A (zh) 基于隐马尔科夫模型的椭圆曲线密码计时攻击方法
CN103023641B (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160713