抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置制造方法及图纸

技术编号:34601639 阅读:21 留言:0更新日期:2022-08-20 09:04
本发明专利技术公开了一种抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置,属于密码技术领域。所述方法包括:在初始化可信环境下,将对称密码算法密钥置于特权寄存器,并使用对称密码算法密钥生成随机数k1的密文与私钥的密文,及计算标量乘k1

【技术实现步骤摘要】
抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置


[0001]本专利技术属于密码
,提出一种抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置,对密钥提供保护,切实保证密码算法的实用性。

技术介绍

[0002]密码软件系统被广泛应用到各种计算机和网络应用中,为数据安全提供保障。但是密码软件并没有为密钥提供专有的保护方案。密钥是密码技术发挥作用的前提,密钥泄露会严重威胁密码系统的安全。密码软件实现时,密钥通常以明文形式出现在内存中,容易通过内存信息泄露攻击被敌手获取。内存信息泄露攻击可以通过多种手段实施。攻击者可以通过各种漏洞发起软件级别的内存信息泄露攻击;也可以物理上接近目标机器,发起冷启动攻击和DMA(Direct Memory Access)攻击。因此,为密钥提供有效的保护方案刻不容缓。
[0003]公钥密码是现代密码学的重要组成部分,可以有效解决密钥的分发和管理以及签名和认证问题。椭圆曲线加密算法(ECC)是一类备受关注的公钥密码算法,具有密钥长度短,计算速度快,节省计算资源的优点。椭圆曲线密码的主要用途之一是构造数字签名算法,具体的ECC数字签名算法有SM2签名算法、ECDSA签名算法或EC

Schnorr签名算法等。签名算法依靠私钥对消息签名。攻击者一旦通过内存信息泄露攻击获取到私钥信息,就可以伪造签名。所以,如何安全地实现基于ECC的签名方案,使其具有抵抗内存信息泄露的能力非常关键。
[0004]为了抵抗内存信息泄露攻击,已经有一些方案提出。基于硬件特性的方案利用Intel SGX(Software Guard eXtensions)、MPK(Memory Protection Keys)保护密钥。但是,这些密钥保护方案需要专有的硬件支持。此外,SGX引入了额外的侧信道攻击,MPK只能抵抗软件级别的内存信息泄露攻击,无法抵抗冷启动攻击。基于软件的方案使用处理器内部的寄存器完成全部的密码计算,攻击者无法获取到寄存器中的数据。但是,由于寄存器资源的稀缺性,完全在寄存器内部实现密码运算会造成性能、可扩展性、兼容性方面的缺陷。此外,完全在寄存器内部实现密码运算设计到大量的代码重构,开发难度巨大。

技术实现思路

[0005]针对以上问题,本专利技术提出了一种抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置,用以保证密钥安全。本专利技术不依赖任何硬件特性,并且没有在寄存器内部实现全部的密码运算,而是将ECC签名算法实现拆分为两部分,只在寄存器中实现简单的运算,复杂的运算放在内存中实现。但是,即使攻击者获取到内存中的全部数据,也无法恢复出ECC签名算法的密钥。在抵抗内存信息泄露的同时,大幅度降低了开发难度,减少了性能开销,提高了方案的兼容性和可扩展性。
[0006]本专利技术的
技术实现思路
包括:
[0007]一种抗内存信息泄露攻击的椭圆曲线数字签名计算方法,其步骤包括:
[0008]在初始化可信环境下,将对称密码算法的密钥置于特权寄存器,并使用对称密码算法密钥生成随机数k1的密文与私钥的密文,及计算标量乘k1
×
G的值,其中k1∈[1,n

1],n为椭圆曲线的阶,G为椭圆曲线的基点;
[0009]每次签名时,基于选取的签名算法与所述标量乘k1
×
G的值,计算用于生成参数s的明文数据,其中所述用于生成参数s的明文数据包括:参数r或基于参数r计算的数据;
[0010]寄存器根据所述明文数据、随机数k1的密文与私钥的密文,计算参数s;
[0011]使用(r,s)对消息进行签名。
[0012]进一步地,所述数字签名算法包括:SM2签名算法、ECDSA签名算法或EC

Schnorr签名算法,所述对称密码算法包括:AES算法或SM4算法。
[0013]进一步地,选取SM2签名算法时,通过以下步骤计算用于生成参数s的明文数据:
[0014]1)基于SM2签名算法的已知参数计算参数e;
[0015]2)选择随机数k2,其中k2∈[1,n

1];
[0016]3)计算标量乘k2
×
G的值;
[0017]4)将标量乘k1
×
G的值与标量乘k2
×
G的值相加,得到k
×
G的值,其中k为随机数;
[0018]5)根据k
×
G的值,计算参数r;
[0019]6)将参数r与随机数k2作为用于生成参数s的明文数据。
[0020]进一步地,选取SM2签名算法时,通过以下步骤在寄存器中计算参数s:
[0021]1)在寄存器内部使用对称密码算法密钥解密随机数k1的密文与私钥的密文,得到随机数k1与私钥;
[0022]2)根据随机数k1、随机数k2及椭圆曲线的阶n,在寄存器中恢复随机数k;
[0023]3)基于随机数k、参数r、私钥及椭圆曲线的阶n,在寄存器中计算参数s。
[0024]进一步地,选取ECDSA签名算法时,通过以下步骤计算用于生成参数s的明文数据:
[0025]1)对消息m进行哈希计算,得到参数z;
[0026]2)选择随机数k2,其中k2∈[1,n

1];
[0027]3)计算标量乘k2
×
G的值;
[0028]4)将标量乘k1
×
G的值与标量乘k2
×
G的值相加,得到k
×
G的值,其中k为随机数;
[0029]5)根据k
×
G的值,计算参数r;
[0030]6)将参数z、参数r与随机数k2作为用于生成参数s的明文数据。
[0031]进一步地,选取ECDSA签名算法时,通过以下步骤在寄存器中计算参数s:
[0032]1)在寄存器内部使用对称密码算法密钥解密随机数k1的密文与私钥的密文,得到随机数k1与私钥;
[0033]2)根据随机数k1、随机数k2及椭圆曲线的阶n,在寄存器中恢复随机数k;
[0034]3)基于参数z、随机数k、参数r、私钥及椭圆曲线的阶n,在寄存器中计算参数s。
[0035]进一步地,选取EC

Schnorr签名算法时,通过以下步骤计算用于生成参数s的明文数据:
[0036]1)对消息m进行哈希计算,得到消息摘要H(m);
[0037]2)选择随机数k2,其中k2∈[1,n

1];
[0038]3)计算标量乘k2
×
G的值;
[0039]4)将标量乘k1
×
G的值与标量乘k2
×
G的值相加,得到k
×
G的值,其中k为随机数;
[0040]5)根据k
×
G的值,得到参数r;
[0041]6)通过消息摘要H(m)、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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

【专利技术属性】
技术研发人员:王伟付裕林璟锵宋利王琼霄
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1