掌桥专利:专业的专利平台
掌桥专利
首页

基于量子密钥的加解密系统

文献发布时间:2023-06-19 19:20:08


基于量子密钥的加解密系统

技术领域

本发明涉及量子通信领域,具体涉及基于量子密钥的加解密系统。

背景技术

现有的加解密系统加密数据时大多需要指定一个密钥或者在系统内部使用经典随机数充当加密密钥,然后用加密算法加密数据。对密钥的存储一般是以文件的形式存储在本地,解密时需要传入对应的密钥或者密钥标识才能解出明文。

现有技术无论是用开源代码实现的随机数发生器软件得到的随机数,还是用遵循NIST标准的随机数发生器得到的随机数,都是属于经典随机数,不是真随机是可以被预测的是不安全的。用经典随机数作为密钥自然也就会出现安全漏洞的风险。

现有技术一般将密钥分段存储在客户端的文件中,或将密钥存储在动态库中,但由于客户端或动态库是对外公开的,攻击者利用白盒攻击等手段只要多花点时间还是可以破解出密钥的。现有技术在解密时需要指定对应的密钥或者密钥的标识才能解出明文,这样不仅有暴露密钥的风险同时也显得系统复杂。

发明内容

为了解决上述问题,本发明提供基于量子密钥的加解密系统,所述加解密系统布置在需要实现加解密功能的计算机设备上;所述加解密系统依托量子密钥设备获取量子密钥,以动态库或者静态库的形式提供集成对接;所述加解密系统包括量子密钥申请模块、量子密钥存储模块、加密模块和解密模块;所述加解密系统定时通过所述密钥申请模块调用所述量子密钥设备提供的接口,从所述量子密钥设备获取量子密钥;所述密钥存储模块会将所述加解密系统的加密密钥和所述计算机设备进行绑定,然后通过白盒算法将所述加密密钥打乱加密后存储于内存数据库中;所述加密模块对数据进行加密处理,加密时使用者不需要传入加密密钥,只需要把要加密的明文数据及选择的加密算法给所述加解密系统,所述加解密系统会自动从所述内存数据库中获取加密密钥并应用加密算法对数据进行加密;所述解密模块对被加密后的密文数据进行解密处理,解密时使用者不需要传入所述加密密钥,只需要把要加密的密文给所述加解密系统,所述解密模块会自动匹配对应的加密密钥和加密算法对数据进行解密。

在一种实施方式中,所述密钥申请模块每次会申请获取到两个量子密钥分别记为qkey0和qkey1,每次获取到的量子密钥都是随机的;获取到的量子密钥中一个qkey0被所述密钥存储模块用做白盒算法的根密钥,另一个qkey1被所述加密模块和所述解密模块用做加密密钥。

在一种实施方式中,所述密钥存储模块会将所述计算机设备的机器码做哈希运算,即Hm=SM3(mac),mac是机器码,然后将Hm和qkey1按指定的格式进行拼接绑定,即qkey1'=Hm+qkey1,“+”表示拼接。

在一种实施方式中,以qkey0为白盒算法的根密钥计算出白盒密钥qkey0”,用白盒算法加密保护qkey1',qkey1"=E"qkey0(qkey1')。

在一种实施方式中,给密钥附加密钥标识并进行封装:Qkey1”=密钥标识+qkey0”+qkey1",将Qkey1”保存到内存数据库中。

在一种实施方式中,所述加解密系统收到要加密的明文数据data和指定的加密算法后,从内存数据库中找到Qkey1”,按照拼接格式分别解析出密钥标识、qkey0”、qkey1"。

在一种实施方式中,以qkey0”为白盒算法的密钥解密qkey1”,得到qkey1':D”qkey0”(qkey1”)=qkey1',解析qkey1'获取到量子密钥qkey1。

在一种实施方式中,以qkey1为密码密钥,用对应的加密算法加密明文数据data,得到密文数据data':data'=Eqkey1(data)。

在一种实施方式中,封装密文数据data':Data'=密钥标识+算法标识+data',“+”表示拼接,Data'即为最终加密后的密文数据;所述解密模块通过密钥标识匹配到对应的密钥、通过解密标识匹配到对应的加密算法。

在一种实施方式中,所述加解密系统收到加密的密文Data'后会根据拼接格式解析密文Data',拆分出密钥标识、算法标识和data';通过所述密钥标识在内存数据库中找到对应的Qkey1”并拆分出qkey0”和qkey1”。

在一种实施方式中,以qkey0”为白盒算法的密钥解密qkey1”,得到qkey1':D”qkey0”(qkey1”)=qkey1',解析qkey1'并拆分出Hm和量子密钥qkey1。

在一种实施方式中,所述加解密系统获取所述计算机设备的机器码并做哈希运算,把哈希值和Hm对比;如果两个值不相等,则说明机器码不一致,密钥和机器设备不匹配,所述加解密系统则不会对数据进行解密且返回出错提示;如果两个值相等说明机器码一致,则根据算法标识找到对应的加密算法并以qkey1为密钥对数据data'做解密运算:Dqkey1(data')=data,得到最终的明文数据data。

量子的状态具有“内禀随机性”,其随机性是微观粒子固有的特性。量子密钥设备利用这种内禀随机性,可以产生真正的随机数即量子密钥。本发明利用量子密钥设备产生的量子密钥来充当加解密系统的密钥。量子密钥是以量子力学为基础,量子力学中的不可克隆原理和海森堡测不准原理不仅保证了量子密钥的安全性,同时也解决经典密钥的伪随机问题。

本发明综合应用量子通信技术、白盒算法技术为加解密系统提供了安全的密钥,同时也将的密钥打乱隐藏在内存数据库中,使得在使用加解密系统时可以不要考虑密钥,这样既能保证了密钥及数据的安全性又能简化加解密系统的使用。

本发明使用用量子密钥代替传统的密钥,量子密钥具有真随机的特性可使密码算法实现“一次一密”的效果,量子密钥比传统密钥安全性更高。

加密密钥存储的安全性一直是网络安全等领域需解决的关键问题之一,直接在设备存储器中存放敏感的密钥信息容易遭到攻击者的物理破解或侧信道攻击。本发明中将密钥通过白盒算法混淆加密后,可抵御白盒密码攻击,防止攻击者通过读取设备内存等手段获取密钥数据。本发明依托量子通信技术应用量子密钥取代传统密钥同时结合密码算法对数据进行加密保护,能有效的抵御黑盒攻击。

在本发明中,加密明文数据时和解密密文数据时都对密钥进行了隐藏,密钥对外是不可见的不感知的,极大的提高了密钥的安全性及系统的易用性。本发明对外界隐藏密钥有效的保护了密钥,同时使得加密解密数据时更加的便捷。

在本发明中,把量子加密密钥和QEDS所在的计算机设备进行绑定,这样在本设备加密的数据就只能通过本设备才能进行解密,加强了数据的安全性,这样做可以使得通过QEDS加密过的数据只能在本机设备才能解密。

本发明中缩略语、英文和关键术语定义列表如下:

密钥:控制密码算法运算的关键信息或参数。

量子通信技术:量子通信作为量子信息科学的重要分支,是利用量子态作为信息载体来进行信息交互的通信技术。

量子密钥设备:产生量子密钥或量子随机数的设备,如:量子随机数发生器等。

量子随机数发生器:基于量子力学的基本原理产生真随机数的设备。

QKD设备:基于量子力学的基本原理保证通信双方之间能够生成一串完全相同且攻击者无法获取信息的随机数以作为共享密钥的设备。

QEDS:基于量子密钥的加解密系统,以动态库或者静态库的形式提供集成对接。

QKRD:量子密钥设备。

SM3(data):封装了国密SM3算法的方法,data是需要做SM3运算的数据。Eqkey(data):封装了加密算法的加密方法,表示以qkey为密钥用加密算法加密明文数据data。

Dqkey(data):封装了加密算法的解密方法,表示以qkey为密钥用加密算法对应的解密方法来解密数据data。

E"qkey(data):封装了白盒加密算法的白盒加密方法,表示以qkey为密钥用白盒加密算法加密数据data。

D"qkey(data):封装了白盒加密算法的白盒解密方法,表示以qkey为密钥用白盒加密算法对应的解密方法来解密数据data。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明量子密钥存储结构示意图;

图2是本发明基于量子密钥的加解密系统的系统架构图。

具体实施方式

为了使本领域技术领域人员更好地理解本申请中的技术方案,下面将结合实施例对本发明作进一步说明,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本申请保护的范围。下面结合附图及实施例对本发明作进一步描述。

在一种实施例中,如图2所示,基于量子密钥的加解密系统(简称QEDS,下同)须依托量子密钥设备(简称QKRD,下同)来获取量子密钥,以动态库或者静态库的形式提供集成对接。QEDS主要由量子密钥申请模块、量子密钥存储模块、加密模块和解密模块四大功能模块组成。

在一种实施例中,QEDS会定时的通过量子密钥申请模块调用QKRD提供的接口来从QKRD获取量子密钥,每次会申请获取到两个量子密钥分别记为qkey0和qkey1,每次获取到的量子密钥都是随机的,使得整个系统具备了“一次一密”的效果。获取到的量子密钥一个(qkey0)被存储模块用做白盒算法的根密钥,另一个(qkey1)被加密模块和解密模块用做加密密钥。

在一种实施例中,如图1所示,密钥存储模块会将QEDS的加密密钥和设备进行绑定,然后通过白盒算法将加密密钥打乱加密后存储于内存数据库中,密钥存储模块工作流程如下:

1.当密钥申请模块获取到量子密钥(qkey0和qkey1)后,密钥存储模块会将QEDS所在设备的机器码做哈希运算即Hm=SM3(mac),然后将Hm和qkey1按指定的格式进行拼接绑定即qkey1'=Hm+qkey1(加号表示拼接,下同)。

2.以qkey0为白盒算法的根密钥计算出白盒密钥qkey0”,用白盒算法加密保护qkey1',qkey1"=E"qkey0(qkey1')。

3.给密钥附加密钥标识并进行封装:Qkey1”=密钥标识+qkey0”+qkey1",将Qkey1”保存到内存数据库中。密钥标识具有隐藏密钥的作用,解密时可通过密钥标识匹配到对应的密钥。

机器码做哈希运算是为了不暴露机器码,即使Hm被意外暴露了攻击者也无法逆向推算出机器码。机器码和密钥绑定时按指定格式进行拼接也是对密钥和数据的一种保护,如果不知道封装的格式就算拿到了数据对攻击者来说也是一串无规律的乱码,给破解增加了难度。

由于访问内存数据库是需要口令的,并且内存数据库的口令是保存在QEDS内存中的,即将内存数据库的口令和QEDS进行了绑定,这样就使得内存数据库对QEDS具有依赖性,相比于以文件的形式存储会更加的安全。白盒密码算法的根密钥是动态的“一次一密”的量子密钥,即使意外暴露出了一个白盒密钥,攻击者也无法破译出其他的白盒算法密钥。QEDS的加密密钥是和计算机设备进行绑定的,这样做可以使得通过QEDS加密过的数据只能在本机设备才能解密,即使把内存数据库拷贝到其他设备也无通过QEDS解密算法进行加密。

加密功能模块即对数据进行加密处理,可以选择应用国际对称加密算法(AES、DES等)或国密对称加密算法(SM4等)对数据进行加密,但为了提升系统的简易性和安全性,加密时使用者不需要传入加密密钥,只需要把要加密的明文数据及选择的加密算法给QEDS,QEDS会自动从内存数据库中获取量子密钥并应用加密算法对数据进行加密,QEDS加密模块加密数据的工作流程如下:

1.QEDS收到要加密的明文数据data和指定的加密算法后,从内存数据库中找到Qkey1”,按照拼接格式分别解析出密钥标识、qkey0”、qkey1"。

2.以qkey0”为白盒算法的密钥解密qkey1”,得到qkey1':D”qkey0”(qkey1”)=qkey1'。

3.解析qkey1'获取到量子密钥qkey1。

4.以qkey1为密码密钥,用对应的加密算法加密明文数据data,得到密文数据data':data'=Eqkey1(data)。

5.封装密文数据data':Data'=密钥标识+算法标识+data',密钥标识具有隐藏密钥的作用,算法标识具有隐藏加密算法的作用;解密模块可以通过密钥标识匹配到对应的密钥,通过算法标识匹配到对应的加密算法。

6.Data'即为最终加密后的密文数据。

在一种实施方式中,解密功能模块即对被加密后的密文数据进行解密处理,同样为了提升系统的简易性和安全性,解密时使用者也不需要传入加密密钥,只需要把要加密的密文给QEDS,解密模块会自动匹配对应的密钥和加密算法进行解密,QEDS解密模块解密数据工作流程如下:

1.QEDS收到加密的密文Data'后会根据拼接格式解析密文Data',拆分出密钥标识、算法标识、data'。

2.通过密钥标识在内存数据库中找到对应的Qkey1”并拆分出qkey0”和qkey1”。

3.以qkey0”为白盒算法的密钥解密qkey1”,得到qkey1':D”qkey0”(qkey1”)=qkey1'。

4.解析qkey1'并拆分出Hm和量子密钥qkey1。

5.QEDS获取本机设备的机器码并做哈希运算,把哈希值和Hm对比。如果两个值不相等则说明机器码不一致,密钥和机器设备不匹配,QEDS则不会对数据进行解密且返回出错提示;如果两个值相等说明机器码一致,则根据算法标识找到对应的加密算法,并以qkey1为密钥对数据data'做解密运算:Dqkey1(data')=data,得到最终的明文数据data。

本领域的技术人员容易理解的是,在不冲突的前提下,上述各有利方式可以自由地组合、叠加。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

相关技术
  • 一种基于量子密钥分发技术的量子保密通信网络系统及其应用
  • 基于量子密钥卡的抗量子计算云存储方法和系统
  • 一种量子密钥芯片及基于量子密钥芯片的加解密方法
  • 基于量子密钥加密的云视频会议系统及其加解密方法
技术分类

06120115869220