一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于SM9算法的加密装置及其实现方法与流程

2022-07-01 22:52:57 来源:中国专利 TAG:

一种基于sm9算法的加密装置及其实现方法
技术领域
1.本发明涉及安全技术领域,尤其涉及一种基于sm9算法的加密装置及其实现方法。


背景技术:

2.智能卡、rfid卡等轻量级装置在身份识别和敏感数据存储等领域具有广泛的应用。安全需求的日益增加推动了公钥密码体系的应用与普及。然而,由于计算能力和硬件资源的限制,在轻量级装置中集成公钥密码体系面临诸多挑战。
3.对于公钥加密算法来说,在进行加密运算之前需要检查公钥是否到期,以确保其有效性。该过程需要装置根据当前时间来查询。而对于诸如无源rfid标签等轻量级装置来说,其自身没有时钟机制,该过程无法实现。由于其算法自身的特点,sm9加密运算之前无需进行公钥有效期验证,因此sm9算法在轻量级装置应用中有着独特的优势。
4.sm9算法中模幂和双线性对运算量巨大,其硬件实现需要大量资源。在传统的sm9算法硬件实现方案中,硬件加速引擎由两部分组成:有限域运算硬件单元和椭圆曲线运算硬件单元。有限域运算硬件单元完成模加、模乘、模逆运算。椭圆曲线运算硬件单元完成椭圆曲线的点加、倍点和点乘运算。两套独立的硬件单元在运行中会消耗大量功耗,因此,在以无源标签为代表的轻量级装置中,sm9算法的使用受到限制。


技术实现要素:

5.针对上述现有技术中存在的不足,本发明的目的是一种基于sm9算法的加密装置及其实现方法,通过对sm9算法中的有限域运算和椭圆曲线运算进行分解,降低了算法中原子操作的颗粒度,实现了域运算和椭圆曲线运算两套硬件的合并。
6.为了达到上述技术目的,本发明所采用的技术方案是:
7.一种基于sm9算法的加密装置,所述加密装置包括中央处理器、sm9算法运算协处理器、数据存储器和指令存储器,其中,中央处理器连接sm9算法运算协处理器、数据存储器和指令存储器,数据存储器连接sm9算法运算协处理器,数据存储器通过中央处理器连接指令存储器;
8.sm9算法运算协处理器包括低颗粒度公钥引擎、硬件哈希引擎和硬件随机数发生器引擎;
9.中央处理器执行sm9算法的软件调度,并控制存储单元实现数据搬移操作,控制协处理器实现硬件加速;
10.数据存储器为非易失性存储器,用于装置运算数据的导入、导出和暂存,并实现中央处理器与sm9算法运算协处理器的数据交互;
11.指令存储器为只读存储器,用于存储编译后的sm9算法库;
12.sm9算法运算协处理器用于为sm9算法中椭圆曲线、哈希、有限域运算提供硬件加速,并为所述加密装置的系统安全提供可靠的随机源。
13.优选地,所述低颗粒度公钥引擎处理sm9算法中的基域和扩域上的域运算和椭圆
曲线点运算。
14.优选地,所述硬件随机数发生器引擎采用基于时钟抖动的反馈振荡环电路结构。
15.优选地,所述硬件随机数发生器引擎生成满足国密算法sm9协议安全需求的随机数,提供给低颗粒度公钥引擎进行运算,保证算法实现的安全性。
16.优选地,所述硬件哈希引擎用于sm9算法协议中的哈希运算,实现sm9算法。
17.一种基于sm9算法的实现方法,基于所述的加密装置,所述实现方法的具体步骤如下:
18.步骤1、系统上电,启动中央处理器启动,中央处理器处于待机状态,等待外部指令;
19.步骤2、输入外部指令启动sm9算法运算,并进行数据传输,将所述加密装置的系统参数和sm9算法输入数据搬移至目标地址;
20.步骤3、中央处理器执行指令,启动sm9算法运算协处理器;
21.步骤4、启动硬件随机数发生器引擎,生成随机数;
22.步骤5、启动低颗粒度公钥引擎,并读取上述步骤4所生成的随机数,进行sm9算法运算,生成中间运算结果;
23.步骤6、启动硬件哈希引擎,读取步骤5所生成的中间运算结果,进行哈希运算,并将哈希运算结果返回至低颗粒度公钥引擎,进行sm9算法后续运算;
24.步骤7、sm9算法运算协处理器运行时,中央处理器辅助sm9算法运算协处理器进行低颗粒度公钥引擎、硬件随机数发生器引擎和硬件哈希引擎之间的调度;
25.步骤8、sm9算法运算协处理器运算结束后,生成最终运算结果,所述加密装置进行数据传输,并将最终运算结果搬移至目标地址。
26.本发明的基于sm9算法的加密装置及其实现方法,所述加密装置采用了中央处理器、sm9算法运算协处理器、数据存储器和指令存储器的结构,所获得的有益效果是:
27.其一,在所述加密装置中,引入低颗粒度公钥引擎,通过将扩域运算和椭圆曲线运算进行颗粒度分解,基于一套基域上的域运算硬件单元支持了基域和扩域的域运算和椭圆曲线运算,实现一套硬件支持四种运算,提高了硬件资源利用率,降低了所述加密装置的系统功耗。
28.其二,本发明的硬件随机数发生器引擎从熵源上保证了数据的随机性,较传统的软件随机数生成算法,具有更稳定安全的随机源,提高了sm9算法协议层的安全性。
29.其三,本发明中的硬件哈希加速引擎,加速了sm9算法实现性能,减小中央处理器的负荷。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
31.图1是本发明具体实施的基于sm9算法的加密装置结构图。
32.图2是本发明具体实施的低颗粒度公钥引擎的实现原理图。
33.图3是本发明具体实施的基于sm9算法的实现方法流程图。
具体实施方式
34.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
36.参看图1,为本发明具体实施的基于sm9算法的加密装置结构图。所述加密装置包括中央处理器(简写“cpu”)100、sm9算法运算协处理器200、数据存储器300和指令存储器400,其中,其中,中央处理器100连接sm9算法运算协处理器200、数据存储器300和指令存储器400,数据存储器300连接sm9算法运算协处理器200,数据存储器300通过中央处理器100连接指令存储器400;
37.sm9算法运算协处理器200包括低颗粒度公钥引擎210、硬件随机数发生器引擎220和硬件哈希引擎230;
38.中央处理器100执行sm9算法的软件调度,并控制存储单元实现数据搬移操作,控制协处理器实现硬件加速;
39.数据存储器300为非易失性存储器,用于装置运算数据的导入、导出和暂存,并实现中央处理器100与sm9算法运算协处理器200的数据交互;
40.指令存储器400为只读存储器,用于存储编译后的sm9算法库;
41.sm9算法运算协处理器200用于为sm9算法中椭圆曲线、哈希、有限域运算提供硬件加速,并为所述加密装置的系统安全提供可靠的随机源。
42.参看图1,本具体实施中,硬件随机数发生器引擎220采用基于时钟抖动(clock jitter)的反馈振荡环电路结构,这种结构独立于数字工艺,可产生高速稳定的真随机源。相对于传统的软件随机数生成算法,具有更高的安全性,并节省中央处理器的运行时间。
43.参看图1,本具体实施中,硬件哈希引擎230基于国密sm9算法实现,用于sm9协议中的哈希运算。哈希引擎实现时采用了多轮迭代合并的非流水结构,在保证数据吞吐率的前提下,降低了系统频率,实现适用于轻量级装置的低频低功耗硬件单元。
44.参看图2,为本发明具体实施的低颗粒度公钥引擎的实现原理图。本具体实施例中,所述低颗粒度公钥引擎210处理sm9算法中的基域和扩域上的域运算和椭圆曲线点运算。通过将扩域运算和椭圆曲线运算进行颗粒度分解,利用一套基域上的域运算硬件单元进行图2所示的扩张和调度,在图2中,一套基域运算单元2102扩张到扩域运算单元2101,基域运算单元2102调度基域ecc,扩域运算单元2101调度扩域ecc,实现了支持两种域(基域和扩域)上的两种运算(域运算和点运算)的功能组合。这种设计方案通过一套硬件支持四种运算,节省硬件资源,为无源标签这类的轻量级装置支持sm9运算提供了基础。
45.参看图3,本发明具体实施的基于sm9算法的实现方法流程图。本具体实施例中,所述实现方法的具体步骤如下:
46.步骤1、系统上电,启动中央处理器100启动,中央处理器100处于待机状态,等待外
部指令;
47.步骤2、输入外部指令启动sm9算法运算,并进行数据传输,将所述加密装置的系统参数和sm9算法输入数据搬移至目标地址;
48.步骤3、中央处理器100执行指令,启动sm9算法运算协处理器200;
49.步骤4、启动硬件随机数发生器引擎220,生成随机数;
50.步骤5、启动低颗粒度公钥引擎210,并读取上述步骤4所生成的随机数,进行sm9算法运算,生成中间运算结果;
51.步骤6、启动硬件哈希引擎230,读取步骤5所生成的中间运算结果,进行哈希运算,并将哈希运算结果返回至低颗粒度公钥引擎210,进行sm9算法后续运算;
52.步骤7、sm9算法运算协处理器200运行时,中央处理器100辅助sm9算法运算协处理器200进行低颗粒度公钥引擎210、硬件随机数发生器引擎220和硬件哈希引擎230之间的调度;
53.步骤8、sm9算法运算协处理器200运算结束后,生成最终运算结果,所述加密装置进行数据传输,并将最终运算结果搬移至目标地址。
54.以上对本发明所提供的一种基于sm9算法的加密装置及其实现方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
55.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
56.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
57.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献