System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种SM2私钥授权码快速验证方法及其应用技术_技高网

一种SM2私钥授权码快速验证方法及其应用技术

技术编号:40358191 阅读:7 留言:0更新日期:2024-02-09 14:44
本发明专利技术公开一种SM2私钥授权码快速验证方法及其应用,根据不同的对称密钥加密或解密相同数据所得加密密文或解密明文也必然不同的原理,应用运算命令逻辑通道,充分利用CCP907T安全芯片算法安全引擎(SEC)的独立于CPU的硬件算法自主调度能力,实现减少CPU资源消耗的同时可以支持并行处理私钥授权码验证的方法。解决基于CCP907T安全芯片的密码卡的获取私钥使用权限接口中私钥授权码验证消耗大量CPU资源且不能并行处理的技术问题,可显著提升在多线程应用中的性能。

【技术实现步骤摘要】

本专利技术涉及计算机和密码安全领域,具体为一种sm2私钥授权码快速验证方法及其应用。


技术介绍

1、目前,soc芯片(system on chip,称为系统级芯片,也称片上系统)广泛用于与pci-e密码卡产品。pci-e密码卡采用的soc芯片支持相应的密码算法,例如苏州国芯科技有限公司的ccp907t芯片具有的算法安全引擎(sec)为实现各种密码算法的协处理器。

2、pci-e密码卡支持的应用接口的性能高低是其市场竞争力的关键因素。例如,《密码设备应用接口规范gm/t 0018-2012》行业标准中所规定的应用接口广泛应用于国密领域,其主要分为运算类接口和管理类接口。

3、管理类接口中的获取私钥使用权限接口(函数名为sdf_getprivatekeyaccessright)是运算类接口中使用私钥进行运算接口的前置调用接口,因此具备高性能的获取私钥使用权限接口也是满足市场需求的关键。

4、由于芯片特性,基于ccp907t芯片的pci-e密码卡与主机物理连接后可通过运算命令逻辑通道并行处理运算命令,但通过管理命令逻辑通道只能串行处理管理命令。在多线程的应用场景中管理命令的处理性能将明显低于运算命令的处理性能。

5、现有技术方案:

6、1)基于ccp907t芯片的密码卡与主机通过pci-e接口物理连接;

7、2)主机通过管理命令逻辑通道,将获取私钥使用权限作为管理命令发送给密码卡的ccp907t芯片处理,管理命令包括私钥授权管理命令的标识码、私钥索引号和私钥授权码

8、3)芯片首先判断管理命令标识码是否与私钥授权管理命令标识码一致,一致后执行私钥授权码验证操作:

9、(1)使用芯片中的算法安全引擎去计算主机发送的私钥授权码的杂凑值(记为a);

10、(2)根据私钥索引号获取相应私钥索引位的私钥授权码的杂凑值(记为b);

11、(3)对比a与b是否相等,相等则通过私钥授权码验证,否则验证不通过;

12、(4)芯片将验证结果作为管理命令的返回发送到主机。

13、4)主机根据验证结果决定获取私钥使用权限是否成功。验证通过则获取私钥使用权限成功,验证不通过则获取私钥使用权限失败。

14、其中2)和3)步骤为获取私钥使用权限接口中的私钥授权码验证方法的现有技术方案。

15、现有私钥授权码验证技术方案是应用管理命令逻辑通道,通过密码卡的cpu对私钥授权码进行操作来完成验证,需要消耗大量的cpu资源,且只能串行处理。在多线程调用获取私钥使用权限接口的应用中会进一步凸显该接口性能低、耗时长的缺陷。


技术实现思路

1、鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种sm2私钥授权码快速验证方法,根据不同的对称密钥加密或解密相同数据所得加密密文或解密明文也必然不同的原理,应用运算命令逻辑通道,充分利用ccp907t安全芯片算法安全引擎(sec)的独立于cpu的硬件算法自主调度能力,实现减少cpu资源消耗的同时可以支持并行处理私钥授权码验证的方法。解决基于ccp907t安全芯片的密码卡的获取私钥使用权限接口中私钥授权码验证消耗大量cpu资源且不能并行处理的技术问题,可显著提升在多线程应用中的性能。

2、为实现上述目的及其他相关目的,本专利技术提供以下技术方案:

3、首先进行初始化:主机通过管理命令逻辑通道,执行密钥产生管理命令,密码卡产生索引号为id1的密钥数据结构;执行获取密钥地址管理命令,主机获取各个索引号的密钥地址结构;

4、然后执行下面步骤:

5、步骤s1:主机通过运算命令逻辑通道,使用密码卡对私钥授权码a1进行杂凑运算,获取杂凑值为b1;

6、步骤s2:主机将杂凑值b1处理到对称算法的密钥长度,得到c1作为密钥值;

7、步骤s3:主机通过所述运算命令逻辑通道,使用密码卡,以密钥值c1作为对称密钥,以d1为待处理数据,进行对称运算,获得运算结果e1;

8、步骤s4:主机通过私钥索引号id1从各个索引号的密钥地址结构中得到密码卡内相同索引号的密钥数据结构中的对称密钥c2的内存地址值addr;

9、步骤s5:主机通过所述运算命令逻辑通道,使用密码卡,以步骤s4所述的对称密钥c2的内存地址值addr为对称密钥的内存地址值,以d1为待处理数据,进行对称运算,获得运算结果e2;所述私钥索引号id1为获取私钥使用权限接口的入参;

10、步骤s6:主机对比e1和e2数据是否相等,相等则私钥授权码验证通过,不相等则私钥授权码验证不通过。

11、有益效果

12、本专利技术在私钥授权码验证过程中使用的杂凑运算的算法和对称运算的算法、模式和操作各具有多种选择,并且可以灵活组合。本专利技术根据不同的对称密钥加密或解密相同数据所得加密密文或解密明文也必然不同的原理,通过运算命令逻辑通道使密码卡进行杂凑运算和对称运算,主机负责对比对称运算结果的方法完成私钥授权码的验证,避免了私钥授权码验证过程中使用管理命令逻辑通道。本专利技术中需要使用管理命令逻辑通道的操作都集中在初始化步骤,初始化步骤仅需在获取私钥使用权限接口使用之前运行一次,避免了管理命令逻辑通道仅可串行处理管理命令且消耗大量cpu资源的缺点;私钥授权码验证过程所有步骤(s1-s6)都使用运算命令逻辑通道,充分通过运算命令逻辑通道发挥ccp907t安全芯片算法安全引擎(sec)的独立于cpu的硬件算法自主调度能力,实现减少cpu资源消耗的同时支持并行处理私钥授权码的验证。

13、以具体实施为例,进行获取私钥使用权限接口性能测试。64线程,每个线程调用接口1000次的测试条件下,接口性能为80000次/秒;单个线程调用接口1000次的测试条件下,接口性能为10000次/秒。

14、以现有技术方案例,进行获取私钥使用权限接口性能测试。64线程,每个线程调用接口1000次的测试条件下,接口性能为1700次/秒;单个线程调用接口1000次的测试条件下,接口性能为1650次/秒。

15、本专利技术技术方案比现有技术相比,获取私钥使用权限接口的私钥授权码验证过程在多线程应用情况下,性能提升可达到47倍左右;在单线程应用情况下,性能提升可达到6倍左右。

本文档来自技高网...

【技术保护点】

1.一种SM2私钥授权码快速验证方法,其特征为:

2.根据权利要求1所述的一种SM2私钥授权码快速验证方法,其特征为:执行初始化过程进一步包括如下内容:主机通过管理命令逻辑通道,发送密钥产生管理命令、索引号ID1和私钥授权码A2到所述密码卡,密码卡根据密钥产生管理命令,产生指定索引号ID1的密钥数据结构到密码卡的内存并保存到密码卡的存储器,并返回密钥产生管理命令执行结果到主机;所述密钥数据结构包括一个索引号、一个签名密钥对、一个加密密钥对和一个对称密钥C2;所述索引号ID1为一个范围从1开始的正整数,最大值根据密码卡的密钥能力确定;所述签名密钥对包括一个私钥和一个公钥,私钥用于对数据进行签名,公钥用于验证签名的有效性;所述加密密钥对包括一个私钥和一个公钥,公钥用于加密数据,私钥用于解密数据;所述对称密钥C2为密码卡对A2进行杂凑运算得到杂凑值B2,对B2经过步骤S2中的所述处理得到的数据,C2用作私钥授权码验证过程中的对称运算的对称密钥,加密或者解密待处理数据D1;所述密码卡持久化保存的值为C2,不会保存和直接使用A2,避免直接明文存储私钥授权码A2,同时省略私钥授权码验证过程中将A2重新进行杂凑运算并处理得到C2的过程,使得所述主机在初始化步骤中提前获取密码卡中各个索引号的密钥数据结构中的对称密钥的内存地址;在步骤S1中所述的杂凑运算的算法与对A2进行的杂凑运算的算法一致;在主机调用获取私钥使用权限接口之前,主机通过管理命令逻辑通道,发送获取密钥地址管理命令给密码卡,密码卡将内存中的各个索引号的密钥数据结构中的对称密钥的内存地址和索引号通过管理命令逻辑通道返回主机,主机即可获得与密码卡内各个索引号的密钥数据结构对应的各个索引号的密钥地址结构;所述密钥地址结构包括一个索引号和一个对称密钥内存地址,所述索引号与所述密钥数据结构中的索引号含义相同,所述对称密钥内存地址为与其所属密钥地址结构中索引号相同的密码卡内密钥数据结构中对称密钥的内存地址;所述内存地址是内存中每个存储单元的唯一标识符,通过内存地址可以唯一访问和定位内存中的数据。

3.根据权利要求1所述的一种SM2私钥授权码快速验证方法,其特征为:所述步骤S1中,所述私钥授权码A1为获取私钥使用权限接口的入参;所述杂凑运算是把任意长度的输入数据变化成较短的固定长度的杂凑值的一种函数,变化过程是单向的,逆向操作难以完成,两个不同的输入数据产生不相同的杂凑值,两个相同的输入数据产生相同的杂凑值;所述获取私钥使用权限接口为《密码设备应用接口规范GM/T 0018-2012》行业标准中设备管理类函数里的一个功能是获取密码卡内指定索引号的密钥数据结构中签名密钥对的私钥和加密密钥对的私钥的使用权的函数,其函数名称为SDF_GetPrivateKeyAccessRight,函数入参包括密码卡内存储私钥的索引号,记为ID1、待验证的私钥授权码,记为A1;函数原理是判断入参私钥授权码A1是否正确,正确则获取私钥使用权限成功,否则失败;所述杂凑运算的算法与初始化步骤中密钥产生时设置的私钥授权码A2使用的杂凑运算的算法一致,作用是在杂凑算法一致的情况下,根据A1和A2的杂凑值B1和B2是否相同判断A1和A2是否相同,B1和B2相同则A1和A2相同;所述杂凑运算的算法包括但不限于SM3、SHA1、SHA256、SHA384、SHA512等CCP907T安全芯片支持的杂凑算法。

4.根据权利要求1所述的一种SM2私钥授权码快速验证方法,其特征为:所述步骤S2中,所述处理包括填充、压缩或不处理;所述对称算法为步骤S3中的对称运算算法;处理包括:当密钥长度大于杂凑值B1长度时,对杂凑值B1进行填充得到密钥值C1;当密钥长度小于杂凑值B1长度时,对杂凑值B1进行压缩得到密钥值C1;当密钥长度等于杂凑值B1的长度时,密钥值C1则为杂凑值B1。

5.根据权利要求1所述的一种SM2私钥授权码快速验证方法,其特征为:所述步骤S3中,所述对称运算为所述主机将对称密钥C1、待处理数据D1、对称运算的算法标识、对称运算的模式标识、对称运算的操作标识和IV值,通过所述运算命令逻辑通道传递给所述密码卡,所述密码卡根据收到的算法标识和模式标识,使用相应对称运算的算法和模式,以C1为对称密钥,根据操作标识对D1进行相应操作得到运算结果E1,E1通过所述运算命令逻辑通道返回到所述主机;所述对称运算的算法包括但不限于SM1、SM4、AES、DES、3DES等CCP907T安全芯片支持的对称算法;所述对称运算的操作包括加密操作、解密操作;当对称运算的操作为加密操作时,D1为待加密明文,E1为加密密文;当对称运算的操作为解密操作时,D1为待解密密文,E1为解密明文;所述D1为预先设置的...

【技术特征摘要】

1.一种sm2私钥授权码快速验证方法,其特征为:

2.根据权利要求1所述的一种sm2私钥授权码快速验证方法,其特征为:执行初始化过程进一步包括如下内容:主机通过管理命令逻辑通道,发送密钥产生管理命令、索引号id1和私钥授权码a2到所述密码卡,密码卡根据密钥产生管理命令,产生指定索引号id1的密钥数据结构到密码卡的内存并保存到密码卡的存储器,并返回密钥产生管理命令执行结果到主机;所述密钥数据结构包括一个索引号、一个签名密钥对、一个加密密钥对和一个对称密钥c2;所述索引号id1为一个范围从1开始的正整数,最大值根据密码卡的密钥能力确定;所述签名密钥对包括一个私钥和一个公钥,私钥用于对数据进行签名,公钥用于验证签名的有效性;所述加密密钥对包括一个私钥和一个公钥,公钥用于加密数据,私钥用于解密数据;所述对称密钥c2为密码卡对a2进行杂凑运算得到杂凑值b2,对b2经过步骤s2中的所述处理得到的数据,c2用作私钥授权码验证过程中的对称运算的对称密钥,加密或者解密待处理数据d1;所述密码卡持久化保存的值为c2,不会保存和直接使用a2,避免直接明文存储私钥授权码a2,同时省略私钥授权码验证过程中将a2重新进行杂凑运算并处理得到c2的过程,使得所述主机在初始化步骤中提前获取密码卡中各个索引号的密钥数据结构中的对称密钥的内存地址;在步骤s1中所述的杂凑运算的算法与对a2进行的杂凑运算的算法一致;在主机调用获取私钥使用权限接口之前,主机通过管理命令逻辑通道,发送获取密钥地址管理命令给密码卡,密码卡将内存中的各个索引号的密钥数据结构中的对称密钥的内存地址和索引号通过管理命令逻辑通道返回主机,主机即可获得与密码卡内各个索引号的密钥数据结构对应的各个索引号的密钥地址结构;所述密钥地址结构包括一个索引号和一个对称密钥内存地址,所述索引号与所述密钥数据结构中的索引号含义相同,所述对称密钥内存地址为与其所属密钥地址结构中索引号相同的密码卡内密钥数据结构中对称密钥的内存地址;所述内存地址是内存中每个存储单元的唯一标识符,通过内存地址可以唯一访问和定位内存中的数据。

3.根据权利要求1所述的一种sm2私钥授权码快速验证方法,其特征为:所述步骤s1中,所述私钥授权码a1为获取私钥使用权限接口的入参;所述杂凑运算是把任意长度的输入数据变化成较短的固定长度的杂凑值的一种函数,变化过程是单向的,逆向操作难以完成,两个不同的输入数据产生不相同的杂凑值,两个相同的输入数据产生相同的杂凑值;所述获取私钥使用权限接口为《密码设备应用接口规范gm/t 0018-2012》行业标准中设备管理类函数里的一个功能是获取密码卡内指定索引号的密钥数据结构中签名密钥对的私钥和加密密钥对的私钥的使用权的函数,其函数名称为sdf_getprivatekeyaccessright,函数入参包括密码卡内存储私钥的索引号,记为id1、待验证的私钥授权码,记为a1;函数原理是判断入参私钥授权码a1是否正确,正确则获取私钥使用权限成功,否则失败;所述杂凑运算的算法与初始化步骤中密钥产生时设置的私钥授权码a2使用的杂凑运算的算法一致,作用是在杂凑算法一致的情况下,根据a1和a2的杂凑值b1和b2是否相同判断a1和a2是否相同,b1和b2相同则a1和a2相同;所述杂凑运算的算法包括但不限于sm3、sha1、sha256、sha384、sha512等ccp907t安全芯片支持的杂凑算法。

4.根据权利要求1所述的一种sm2私钥授权码快速验证方法,其特征为:所述步骤s2中,所述处理包括填充、压缩或不处理;所述对称算法为步骤s3中的对称运算算法;处理包括:当密钥长度大于杂凑值b1长度时,对杂凑值b1进行填充得到密钥值c1;当密钥长度小于杂凑值b1长度时,对杂凑值b1进行压缩得到密钥值c1;当密钥长度等于杂凑值b1的长度时,密钥值c1则为杂凑值b1。

5.根据权利要求1所述的一种sm2私钥授权码快速验证方法,其特征为:所述步骤s3中,所述对称运算为所述主机将对称密钥c1、待处理数据d1、对称运算的算法标识、对称运算的模式标识、对称运算的操作标识和iv值,通过所述运算命令逻辑通道传递给所述密码卡,所述密码卡根据收到的算法标识和模式标识,使用相应对称运算的...

【专利技术属性】
技术研发人员:刘歆贾政权郝傲辉郭春碌孙浩浩
申请(专利权)人:中安网脉北京技术股份有限公司
类型:发明
国别省市:

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

1