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

一种基于国密算法的加/解密芯片、方法、设备和介质与流程

2022-11-16 16:08:19 来源:中国专利 TAG:


1.本发明涉及实时图像传输技术领域,主要是图像加解密传输,尤其涉及一种基于国密算法的加/解密芯片、方法、设备和介质。


背景技术:

2.国家密码管理局推出的sm系列密码算法是为了从根本上摆脱我国对国外密码技术的依赖,实现从密码算法层面掌控核心的信息安全技术。现有银联银行卡联网、银联ic两项规范都引入了国密算法相关要求。
3.在现有芯片中,大部分使用的是国密算法软件库的形式支持国密算法,使用这种方式虽然能够满足一定的应用需求,但是这种方式算法的加密和解密都由cpu完成对应算法数据的计算,这种方式效率低速度慢,对于实时性要求比较高的场景难以满足需求。比如对于实时图像传输领域,由于要对图像数据进行加解密,加解密的数据量大而且实时性要求比较高,这种软件库的方式将难以满足需求。
4.因此,有必要改善上述相关技术方案中存在的一个或者多个问题。
5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本发明的目的在于提供一种基于国密算法的加/解密芯片、方法、设备和介质,进而解决软件形式的加解密方式难以满足实时性要求比较高的加解密场景的问题。
7.本发明的目的采用以下技术方案实现:
8.第一方面,本发明提供了一种基于国密算法的加/解密芯片,该芯片包括:
9.中央处理器,用于发送待加密/待解密数据的第一数据信息;
10.国密算法硬件计算单元,用于接收所述第一数据信息,根据所述第一数据信息从存储器中获取所述待加密/待解密数据并对所述待加密/待解密数据进行加密/解密处理得到加密/解密数据;
11.所述国密算法硬件计算单元还用于将加密/解密数据存储至所述存储器,并向所述中央处理器发送所述加密/解密数据的第二数据信息;
12.所述中央处理器还用于根据所述第二数据信息控制通信单元从所述存储器中获取所述加密/解密数据并传输;
13.其中,所述第一数据信息包括第一数据起始位置信息和第一数据大小信息,所述第二数据信息包括第二数据起始位置和第二数据大小信息。
14.本发明的实施例中,所述国密算法硬件计算单元为硬件ip核。
15.本发明的实施例中,所述硬件ip核为通过布线方式设置在所述基于国密算法的加/解密芯片上的集成电路。
16.本发明的实施例中,所述硬件ip核为一集成电路芯片,镶嵌安装于所述基于国密
算法的加/解密芯片上。
17.本发明的实施例中,所述存储器为双倍速率同步动态随机存储器。
18.本发明的实施例中,所述国密算法硬件计算单元通过直接内存存取器从所述存储器中获取所述待加密/待解密数据,及将加密/解密数据存储至所述存储器。
19.第二方面,本发明提供了一种基于国密算法的加/解密方法,该方法包括:
20.国密算法硬件计算单元接收中央处理器发送的待加密/待解密数据的第一数据信息,所述第一数据信息包括第一数据起始位置信息和第一数据大小信息;
21.所述国密算法硬件计算单元根据所述第一数据信息从存储器中获取所述待加密/待解密数据;
22.所述国密算法硬件计算单元对所述待加密/待解密数据进行加密/解密处理得到加密/解密数据;
23.所述国密算法硬件计算单元将所述加密/解密数据存储至所述存储器;
24.所述国密算法硬件计算单元将所述加密/解密数据在所述存储器的第二数据信息发送至中央处理器,所述第二数据信息包括第二数据起始位置和第二数据大小信息。
25.第三方面,本发明提供了一种基于国密算法的加/解密方法,该方法包括:
26.中央处理器向国密算法硬件计算单元发送待加密/待解密数据的第一数据信息,所述第一数据信息包括第一数据起始位置信息和第一数据大小信息;
27.所述中央处理器接收所述国密算法硬件计算单元发送的加密/解密数据的第二数据信息,所述第二数据信息包括第二数据起始位置和第二数据大小信息;
28.所述中央处理器根据所述第二数据信息,控制通信单元从存储器中获取所述加密/解密数据并传输。
29.第四方面,本发明提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述基于国密算法的加/解密方法的步骤。
30.第五方面,本发明提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述基于国密算法的加/解密方法的步骤。
31.本发明的实施例提供的技术方案可以包括以下有益效果:
32.在本发明的实施例中,上述基于国密算法的加/解密芯片和加/解密方法,采用国密算法硬件计算单元对数据进行加解密处理,极大了提升了数据加解密的速度,能够较好的满足实时性传输情况下数据的加解密速度要求,使得国密算法能够在多领域得到更广泛的应用。
33.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
34.下面结合附图和实施例对本发明进一步说明。
35.图1是本发明实施例中基于国密算法的加/解密芯片结构示意图;
36.图2是本发明实施例中基于国密算法的加/解密方法流程示意图;
37.图3是本发明实施例中另一基于国密算法的加/解密方法流程示意图;
38.图4是本发明实施例中的一种电子设备的结构示意图;
39.图5是本发明实施例中的一种用于基于国密算法的加/解密方法的程序产品的结构示意图。
具体实施方式
40.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征可以以任何合适的方式结合在一个或更多实施方式中。
41.此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
42.本示例实施方式中首先提供了一种基于国密算法的加/解密芯片,参考图1中所示,该芯片包括:中央处理器(central processing unit,cpu)和国密算法硬件计算单元;所述中央处理器用于发送待加密/待解密数据的第一数据信息;所述国密算法硬件计算单元用于接收所述第一数据信息,根据所述第一数据信息从存储器中获取所述待加密/待解密数据并对所述待加密/待解密数据进行加密/解密处理得到加密/解密数据;所述国密算法硬件计算单元还用于将加密/解密数据存储至所述存储器,并向所述中央处理器发送所述加密/解密数据的第二数据信息;所述中央处理器还用于根据所述第二数据信息控制通信单元从所述存储器中获取所述加密/解密数据并传输;其中,所述第一数据信息包括第一数据起始位置信息和第一数据大小信息,所述第二数据信息包括第二数据起始位置和第二数据大小信息。
43.上述基于国密算法的加/解密芯片,采用国密算法硬件计算单元对数据进行加解密处理,极大了提升了数据加解密的速度,能够较好的满足实时性传输情况下数据的加解密速度要求,使得国密算法能够在多领域得到更广泛的应用。
44.具体的,上述基于国密算法的加/解密芯片可以是tequila芯片,该芯片为应用于零终端的芯片。当需要对待加密/待解密数据例如待加密/待解密的图像数据进行加/解密处理时,cpu可以通过发送控制信令的方式将第一数据信息,即待加密/解密的图像数据起始位置信息和数据大小信息发送至国密算法硬件计算单元,国密算法硬件计算单元根据数据起始位置信息在存储器中定位需要加密的数据起始位置,并根据数据大小信息获得需要加密的数据段。国密算法硬件计算单元对需要加密的数据段进行加/解密处理,处理完成后将处理后的加/解密数据再次存储到存储器中,然后将加/解密数据在存储器中的第二起始位置信息和第二数据大小信息通过信令作为第二信息发送给cpu。cpu接收到第二信息后,根据第二信息的内容,控制通信单元从所述存储器中获取所述加密/解密数据并传输。
45.下面,将参考图1对本示例实施方式中的上述基于国密算法的加/解密芯片的各个部分进行更详细的说明。
46.在一个实施例中,所述国密算法硬件计算单元可以为硬件ip核。具体的,ip核就是知识产权核或知识产权模块的意思,在eda技术开发中具有十分重要的地位。美国著名的dataquest咨询公司将半导体产业的ip定义为“用于asic或fpga中的预先设计好的电路功
能模块”。ip主要分为软ip、固ip和硬ip。
47.在一个实施例中,所述硬件ip核可以为通过布线方式设置在所述基于国密算法的加/解密芯片上的集成电路。具体的,所述硬件ip核可以是通过布线的方式设置在基于国密算法的加/解密芯片上的集成电路,且该集成电路与cpu电连接,该集成电路支持的可以是国密算法系列中的sm4算法。
48.在一个实施例中,所述硬件ip核为一集成电路芯片,镶嵌安装于所述基于国密算法的加/解密芯片上。具体的,所述硬件ip核可以是以集成电路板,该集成电路板被镶嵌安装在所述国密算法的加/解密芯片上,且该集成电路板与cpu电连接,该集成电路板支持的可以是国密算法系列中的sm4算法。
49.在一个实施例中,所述存储器为双倍速率同步动态随机存储器(double da ta rate,ddr)。具体的,双倍速率同步动态随机存储器是cpu能直接寻址的存储空间,由半导体器件制成,其特点是访问数据的速率快。
50.在一个实施例中,所述国密算法硬件计算单元通过直接内存存取器(direct memory access,dma)从所述存储器中获取所述待加密/待解密数据,及将加密/解密数据存储至所述存储器。具体的,直接内存存取器允许不同速度的硬件装置来沟通,而不需要依赖于cpu的大量中断负载。否则,cpu需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方,在这个时间中,cpu对于其他的工作来说就无法使用。因此,采用直接内存存取器来进行数据的存取传递,不需要依赖cpu,进一步的提升了加解密数据的吞吐量。
51.本示例实施方式中其次提供了一种基于国密算法的加/解密方法,请参考图2,该方法包括:
52.步骤s101:国密算法硬件计算单元接收中央处理器发送的待加密/待解密数据的第一数据信息,所述第一数据信息包括第一数据起始位置信息和第一数据大小信息;
53.步骤s102:所述国密算法硬件计算单元根据所述第一数据信息从存储器中获取所述待加密/待解密数据;
54.步骤s103:所述国密算法硬件计算单元对所述待加密/待解密数据进行加密/解密处理得到加密/解密数据;
55.步骤s104:所述国密算法硬件计算单元将所述加密/解密数据存储至所述存储器;
56.步骤s105:所述国密算法硬件计算单元将所述加密/解密数据在所述存储器的第二数据信息发送至中央处理器,所述第二数据信息包括第二数据起始位置和第二数据大小信息。
57.本示例实施方式中还提供了一种基于国密算法的加/解密方法,请参考图3,该方法包括:
58.步骤s201:中央处理器向国密算法硬件计算单元发送待加密/待解密数据的第一数据信息,所述第一数据信息包括第一数据起始位置信息和第一数据大小信息;
59.步骤s202:所述中央处理器接收所述国密算法硬件计算单元发送的加密/解密数据的第二数据信息,所述第二数据信息包括第二数据起始位置和第二数据大小信息;
60.步骤s203:所述中央处理器根据所述第二数据信息,控制通信单元从存储器中获取所述加密/解密数据并传输。
61.上述基于国密算法的加/解密方法,采用国密算法硬件计算单元对数据进行加解密处理,极大了提升了数据加解密的速度,能够较好的满足实时性传输情况下数据的加解密速度要求,使得国密算法能够在多领域得到更广泛的应用。
62.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
63.参见图4,本发明实施例还提供了一种电子设备300,电子设备300包括至少一个存储器310、至少一个处理器320以及连接不同平台系统的总线330。
64.存储器310可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)211和/或高速缓存存储器312,还可以进一步包括只读存储器(rom)313。
65.其中,存储器310还存储有计算机程序,计算机程序可以被处理器320执行,使得处理器320执行本发明任一项实施例中基于国密算法的加/解密方法的步骤,其具体实现方式与上述基于国密算法的加/解密方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。
66.存储器310还可以包括具有至少一个程序模块315的实用工具314,这样的程序模块315包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
67.相应的,处理器320可以执行上述计算机程序,以及可以执行实用工具314。
68.总线330可以表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
69.电子设备300也可以与一个或多个外部设备340例如键盘、指向设备、蓝牙设备等通信,还可与一个或者多个能够与该电子设备300交互的设备通信,和/或与使得该电子设备300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入输出接口350进行。并且,电子设备300还可以通过网络适配器360与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器360可以通过总线330与电子设备300的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储平台等。
70.本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序被执行时实现本发明实施例中基于国密算法的加/解密方法的步骤,其具体实现方式与上述基于国密算法的加/解密方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。
71.图5示出了本实施例提供的用于实现上述基于国密算法的加/解密方法的程序产品400,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设
备,例如个人电脑上运行。然而,本发明的程序产品400不限于此,在本发明中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品400可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
72.计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言诸如java、c 等,还包括常规的过程式程序设计语言诸如c语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
73.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献