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

一种量子密钥安全存储系统的制作方法

2021-10-29 22:40:00 来源:中国专利 TAG:量子 密钥 加密 存储系统 信息


1.本发明涉及量子信息处理与量子密钥加密和存储领域,具体涉及一种量子密钥安全存储系统。


背景技术:

2.信息安全的保证就依赖于对密钥的保护,而随机数产生的密钥一般属于明文,且模拟电路设计的真随机数产生器往往速度比较慢,所以对于产生的密钥需要进行安全存储。
3.传统的量子密钥安全存储一般采用软加密或者硬件加密其中一种方法,无论是硬加密还是软加密都有一定的缺陷,单一的加密方法相对来说都是比较容易被破解的。
4.根据《cn106529651a一种采用双重加密算法的射频卡片》的现有双重加密方法,该方法将加密数据存储在flash里面,flash擦写次数少(10000次)。
5.根据《cn108259162a一种密钥存储方法》的现有密钥存储方法,该方法只采用算法变换对密钥进行处理,加密度相对不高。
6.因此,需要对现有技术进行改进提高量子密钥存储的安全性能。


技术实现要素:

7.为了解决上述技术问题,提出了一种提高量子密钥的安全性能的量子密钥安全存储系统。
8.为实现上述目的,本发明采取的技术方案如下:一种量子密钥安全存储系统,包括硬件加密模块、上位机、软件加密单元以及密钥存储单元和数据库,其中:
9.所述主控单元控制硬件加密单元对原始密钥进行加密得到第一加密密钥key1,所述第一加密密钥key1通过密钥存储单元存储到所述数据库中同时回传给所述主控单元,由主控单元通过网络接口将第一加密密钥传key1传送给上位机;
10.所述上位机接收到第一加密密钥key1后访问所述数据库,并通过软件加密单元调用数据库中的加密函数对所述第一加密密钥key1进行二次加密处理得到第二加密密钥key2,同时将第二加密信息key2通过密钥存储单元存储到所述数据库中。
11.优选地,还包括软件解密单元和硬件解密单元,其中:
12.软件解密单元通过调用解密函数对加密信息进行解密,解密后的信息传给上位机,上位机通过接口传输给所述主控单元,所述主控单元控制硬件解密单元将信息再次解密,获得原始密钥。
13.优选地,所述主控单元内设置状态机用于对硬件加密单元的进行逻辑控制,控制加密单元对原始密钥进行加密,所述硬件加密单元通过接口调用scb2专用算法对原始密钥进行加密。
14.优选地,所述软件加密单元通过sql语句调用mysql数据库里的encode()加密函数对第一加密密钥进行加密处理。
15.优选地,所述第二加密密钥key2通过sql插入语句存入数据库中。
16.优选地,所述第二加密密钥key2采用二进制字符串表示,以blob类型存储。
17.优选地,所述密钥存储单元通insert into语句对第二加密密钥key2进行存储.
18.优选地,所述key2存储时先通过hex()函数将key2十六进制化,再存入数据库的varchar列中。
19.优选地,还包括查询模块,所述查询模块使用select语句查找数据。
20.本发明有益的技术效果:本发明中主要采用硬件加密和软件数据库加密存储相结合的方法对量子密钥进行安全存储,原始密钥先采用硬件加密,经过硬件加密后进一步软件数据库加密处理。通过硬加密和软加密双重加密提高了加密强度,而数据库存储密钥解决了随机数产生密钥慢需要存储等待的问题,同时也解决硬件加密存储容量小无法存储太多密钥的问题。所以硬件加密、软件数据库存储加密的方法可以实现密钥安全存储。
附图说明
21.图1为本发明的量子密钥加密的整体结构框图;
22.图2为本发明加密过程的流程图;
23.图3为本发明解密过程的流程图;
24.图4为本发明加密过程的详细流程图;
25.图5为本发明量子密钥存储过程的详细流程图。
具体实施方式
26.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明,但本发明要求保护的范围并不局限于下述具体实施例。
27.如图1

5所示,一种量子密钥安全存储系统,包括主控单元,硬件加密单元、上位机、软件加密单元、密钥存储单元和数据库,其中:
28.主控单元采用fpga主控单元;
29.所述主控单元控制硬件加密单元对原始密钥key进行加密得到第一加密密钥key1,原始密钥key采用密钥生成器生成;所述第一加密密钥key1通过密钥存储单元存储到所述数据库中同时回传给所述主控单元,由主控单元通过网络接口将第一加密密钥传key1传送给上位机,网络接口为以太网ip接口。
30.其中fpga主控单元包括fpga核心芯片,fpga核心芯片采用ep4cgx系列芯片。硬件加密模块包括硬件加密芯片,硬件加密芯片采用ssx30系列芯片型号,硬件加密芯片支持scb2专用算法,最高加解密速度可达1.4gbps,调用该算法时,需要通过硬件加密芯片的接口进行调用。
31.所述fpga主控单元内设置状态机用于对硬件加密单元的进行逻辑控制,控制硬件加密单元对原始密钥进行加密key,所述硬件加密单元通过接口调用scb2专用算法对原始密钥key进行加密得到第一加密密钥key1。
32.主控单元通过网络接口将第一加密密钥传key1传送给上位机,上位机通过软件加密单元访问数据库,调用数据库中的加密函数对所述第一加密密钥key1进行二次加密处理得到第二加密密钥key2,同时将第二加密密钥key2通过密钥存储单元存储到所述数据库中
(其中key1不需要存储,得到key2之后key1自动销毁)将第二加密密钥key2存储到密钥存储单元提高了密钥安全性,同时对密钥进行存储解决了随机数产生密钥慢的问题同时也解决硬件加密存储容量小的问题。
33.所述软件加密单元通过sql(sql语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统)语句调用所述数据库,本实施例中数据库采用mysql数据库(mysql是一种开放源代码的关系型数据库管理系统,mysql数据库使用最常用的数据库管理语言
‑‑
结构化查询语言(sql)进行数据库管理)中的encode()加密函数和decode()解密函数对加密密钥进行加密和解密处理。
34.优选地,还包括软件解密单元和硬件解密单元,其中:
35.软件解密单元通过调用解密函数对加密信息进行解密,解密后的信息传给上位机,上位机通过接口传输给所述主控单元,所述主控单元控制硬件解密单元将信息再次解密,获得原始密钥。
36.密钥的使用包括解密过程,解密过程中包括软件解密单元和硬件解密单元,其中:
37.软件解密单元通过调用解密函数decode()对加密信息进行解密,解密后的信息传给上位机,上位机通过接口传输给所述主控单元,所述主控单元控制硬件解密单元将信息再次解密,获得原始密钥。
38.优选地,将所述第一加密密钥key1命名为name,通过sql插入语句将key2存入数据库中。
39.具体地,所述软件加密单元加密过程如下:
40.使用encode()函数处理,其语句如下:
41.encode('key1','salt')
42.其中key1为待加密字符串,salt为密钥,表示函数encode()通过密钥salt将key1加密。
43.软件加密的得到的结果第二加密密钥key2是一个二进制字符串,以blob类型存储,
44.所述解密模块通过decode()函数进行解密,其语句如下:
45.decode(datakey,'salt');
46.其中datakey为已加密的二进制串,salt为加密时自定义的密钥。
47.所述密钥存储单元通insert into语句对第二加密密钥key2进行存储,存储过程如下:
48.使用sql插入加密语句进行存储,语句内容如下:
49.insert into keytab(username,datakey)values('name',hex(encode('key1','salt')))
50.其中name的密码是key1,salt是自定义的密钥,因为encode('key1','salt')加密完的结果key2是blob类型的在存储时需转换,通过hex()函数将key2十六进制化,再存入数据库的varchar列。使用insert into语句可以将存储的数据插入指定的keytab存储表中特定的username列和datakey列。
51.插入结果可简单描述如下表1keytab存储表:
52.表1 keytab存储表
53.012341usernameaddressdatakeyother2name key2 3............
54.通过上述语句是把数据存储在自己设定username和datakey的数据列里。
55.优选地,还包括查询模块,所述查询模块使用select语句;当使用密钥加密数据时需要通过sql查询语句查找插入的数据,首先找出key1。
56.sql查询解密语句如下:
57.select decode(unhex(datakey,'salt'))from keytab where username='name';
58.使用select decode语句可以根据需要查询指定keytab存储表中某一特定数据name。在解密时需调用unhex()函数取出插入时转化为十六进制的key2,通过unhex()函数在用解密函数decode()处理得到key1。从语句中可见只有同时知道name和salt的人才能解密出key1,进一步提高了密钥安全性。
59.插入结果可简单描述如下表1keytab存储表:
60.表1 keytab存储表
61.012341usernameaddressdatakeyother2name key2 3............
62.通过上述语句是把数据存储在自己设定username和datakey的数据列里。
63.通过select查询语句查询keytab表里的username和datakey根据需要读取name和key2。
64.根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对发明构成任何限制。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜