【技术实现步骤摘要】
抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置
[0001]本专利技术属于密码
,提出一种抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置,对密钥提供保护,切实保证密码算法的实用性。
技术介绍
[0002]密码软件系统被广泛应用到各种计算机和网络应用中,为数据安全提供保障。但是密码软件并没有为密钥提供专有的保护方案。密钥是密码技术发挥作用的前提,密钥泄露会严重威胁密码系统的安全。密码软件实现时,密钥通常以明文形式出现在内存中,容易通过内存信息泄露攻击被敌手获取。内存信息泄露攻击可以通过多种手段实施。攻击者可以通过各种漏洞发起软件级别的内存信息泄露攻击;也可以物理上接近目标机器,发起冷启动攻击和DMA(Direct Memory Access)攻击。因此,为密钥提供有效的保护方案刻不容缓。
[0003]公钥密码是现代密码学的重要组成部分,可以有效解决密钥的分发和管理以及签名和认证问题。椭圆曲线加密算法(ECC)是一类备受关注的公钥密码算法,具有密钥长度短,计算速度快,节省计算资源的优点。椭圆曲线密码的主要用途之一是构造数字签名算法,具体的ECC数字签名算法有SM2签名算法、ECDSA签名算法或EC
‑
Schnorr签名算法等。签名算法依靠私钥对消息签名。攻击者一旦通过内存信息泄露攻击获取到私钥信息,就可以伪造签名。所以,如何安全地实现基于ECC的签名方案,使其具有抵抗内存信息泄露的能力非常关键。
[0004]为了抵抗内存信息泄露攻击,已经有一些方案提出。基于硬件特性的方案利 ...
【技术保护点】
【技术特征摘要】
1.一种抗内存信息泄露攻击的椭圆曲线数字签名计算方法,其步骤包括:在初始化可信环境下,将对称密码算法密钥置于特权寄存器,并使用对称密码算法密钥生成随机数k1的密文与私钥的密文,及计算标量乘k1
×
G的值,其中k1∈[1,n
‑
1],n为椭圆曲线的阶,G为椭圆曲线的基点;每次签名时,基于选取的签名算法与所述标量乘k1
×
G的值,计算用于生成参数s的明文数据,其中所述用于生成参数s的明文数据包括:参数r或基于参数r计算的数据;寄存器根据所述明文数据、随机数k1的密文与私钥的密文,计算参数s;输出(r,s)作为消息的数字签名。2.如权利要求1所述的方法,其特征在于,所述数字签名算法包括:SM2签名算法、ECDSA签名算法或EC
‑
Schnorr签名算法,所述对称密码算法包括:SM4算法或AES算法。3.如权利要求2所述的方法,其特征在于,选取SM2签名算法时,通过以下步骤计算用于生成参数s的明文数据:1)基于SM2签名算法的已知参数计算参数e;2)选择随机数k2,其中k2∈[1,n
‑
1];3)计算标量乘k2
×
G的值;4)将标量乘k1
×
G的值与标量乘k2
×
G的值相加,得到k
×
G的值,其中k为随机数;5)根据k
×
G的值,计算参数r;6)将参数r与随机数k2作为用于生成参数s的明文数据。4.如权利要求3所述的方法,其特征在于,选取SM2签名算法时,通过以下步骤在寄存器中计算参数s:1)在寄存器内部使用对称密码算法密钥解密随机数k1的密文与私钥的密文,得到随机数k1与私钥;2)根据随机数k1、随机数k2及椭圆曲线的阶n,在寄存器中恢复随机数k;3)基于随机数k、参数r、私钥及椭圆曲线的阶n,在寄存器中计算参数s。5.如权利要求2所述的方法,其特征在于,选取ECDSA签名算法时,通过以下步骤计算用于生成参数s的明文数据:1)对消息m进行哈希计算,得到参数z;2)选择随机数k2,其中k2∈[1,n
‑
1];3)计算标量乘k2
×
G的值;4)将标量乘k1
【专利技术属性】
技术研发人员:王伟,付裕,林璟锵,宋利,王琼霄,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。