基于公共非对称密钥池的抗量子计算代理云存储方法和系统转让专利

申请号 : CN201811101347.X

文献号 : CN109302283B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 富尧钟一民杨羽成

申请人 : 如般量子科技有限公司

摘要 :

本发明涉及基于公共非对称密钥池的抗量子计算代理云存储方法和系统,用户端通过密钥池装置将利用文件密钥加密的数据文件上传至服务器,服务器接收并存储以公钥加密的文件密钥真随机数,公钥由公钥密钥真随机数生成,用户端发送读请求至密钥池装置,密钥池装置下载加密的文件密钥真随机数、公钥密钥真随机数以及利用加密的数据文件,并与私钥私钥结合得到文件密钥,进而获得数据文件,所述密钥池装置将数据文件加密传至用户端,进而完成服务器文件读取。服务器端无法接触用户端密钥及数据文件,使用仅对量子密钥卡公开的公钥对文件密钥加密,降低被恶意恶意操作窃取密钥的可能,同时量子计算机无法得到用户公钥,降低被量子计算机破解的风险。

权利要求 :

1.一种基于公共非对称密钥池的抗量子计算代理云存储方法,包括用户端上传数据文件至密钥池装置,所述密钥池装置将利用文件密钥加密的数据文件上传至服务器,且所述密钥池装置将所述文件密钥真随机数以加密形式上传至所述服务器;其特征在于,所述用户端及所述密钥池装置均配置有量子密钥卡,所述用户端上传数据文件至密钥池装置包括:用户端利用真随机数R加密数据文件得到密文,并将所述密文以及利用密钥池装置公钥加密的真随机数R发送至所述密钥池装置;

所述文件密钥生成方法包括:将所述文件密钥真随机数结合文件密钥种子指针函数得到文件密钥种子指针,利用该文件密钥种子指针从所述密钥池装置中提取对应的加密的文件密钥种子,并利用所述密钥池装置生成的真随机数解密得到文件密钥种子,该文件密钥种子结合文件密钥函数得到所述文件密钥;所述密钥池装置还将所述文件密钥种子指针函数ID和文件密钥函数的ID发送至所述服务器;

所述文件密钥真随机数的加密方式为使用所述密钥池装置内的公钥加密文件密钥真随机数得到个人密钥以及使用文件特征值加密文件密钥真随机数得到数据密钥;

其中,所述公钥利用所述密钥池装置内的量子密钥卡所产生的公钥密钥真随机数生成;所述密钥池装置将所述个人密钥、所述数据密钥以及公钥密钥真随机数上传所述服务器。

2.根据权利要求1所述的基于公共非对称密钥池的抗量子计算代理云存储方法,其特征在于,所述密钥池装置包括:

公共密钥池,用于生成所述文件密钥;

非对称密钥池,所述非对称密钥池内存储群组内所有用户端的公钥,所述非对称密钥池与所述公钥密钥真随机数结合提取出公钥。

3.根据权利要求2所述的基于公共非对称密钥池的抗量子计算代理云存储方法,其特征在于,所述用户端有一个或多个,所述密钥池装置内存储有供各用户端访问的公共密钥池,所述用户端与所述密钥池装置通信连接,上传数据文件的用户端利用所述公共密钥池生成文件密钥以加密数据文件,下载数据文件的用户端利用所述公共密钥池结合来自服务器的真随机数相应生成文件密钥以解密出数据文件。

4.根据权利要求3所述的基于公共非对称密钥池的抗量子计算代理云存储方法,其特征在于,所述公钥生成方法包括:所述公钥密钥真随机数结合公钥指针函数得到公钥指针,利用该公钥指针从对应量子密钥卡中提取对应的公钥;当量子密钥卡为用户端所配有时,该公钥指针从对应量子密钥卡中的公钥密钥池提取对应的公钥;当量子密钥卡为密钥池装置所配有时,该公钥指针从对应量子密钥卡中的所述非对称密钥池提取对应的公钥。

5.根据权利要求1所述的基于公共非对称密钥池的抗量子计算代理云存储方法,其特征在于,所述文件密钥种子指针函数ID和文件密钥函数ID作为所述服务器是否进行去重的标识。

6.根据权利要求4所述的基于公共非对称密钥池的抗量子计算代理云存储方法,其特征在于,所述用户端将真随机数和数据文件加密后上传至所述密钥池装置,加密方式为使用真随机数加密所述数据文件得到密文,以及使用所述密钥池装置的公钥加密真随机数得到真随机数密文;所述密钥池装置使用私钥解密所述真随机数密文得到真随机数,以及使用所述真随机数解密所述密文得到所述数据文件。

7.一种基于公共非对称密钥池的抗量子计算代理云存储方法,包括服务器接收并存储来自密钥池装置利用文件密钥加密的数据文件,所述文件密钥是利用所述密钥池装置所配有的量子密钥卡中产生的文件密钥真随机数生成,其特征在于,所述数据文件以及文件密钥采用如权利要求1~6中任一项所述的抗量子计算代理云存储方法生成,所述服务器还接收并存储所述利用密钥池装置公钥加密的真随机数R;

所述服务器还接收并存储来自所述密钥池装置的个人密钥、数据密钥以及公钥密钥真随机数,所述个人密钥和所述数据密钥由所述文件密钥真随机数加密获得;

所述文件密钥真随机数的加密方式为使用公钥加密文件密钥真随机数得到个人密钥,以及使用文件特征值加密文件密钥真随机数得到数据密钥,其中所述公钥利用量子密钥卡所产生的公钥密钥真随机数生成。

8.根据权利要求7所述的基于公共非对称密钥池的抗量子计算代理云存储方法,其特征在于,所述服务器还接收并存储来自所述密钥池装置的与生成所述文件密钥相关的函数ID,其中两个函数ID作为服务器是否进行去重的指示标识;

当服务器依据所述指示标识判断去重时,所述服务器向用户端发送数据密钥;

当服务器依据所述指示标识判断不需去重时,接受存储来自所述用户端的与生成所述文件密钥相关的函数ID。

9.一种基于公共非对称密钥池的抗量子计算代理云存储系统,包括服务器、密钥池装置和用户端,其特征在于,所述用户端及所述密钥池装置均有量子密钥卡;

用户端利用真随机数R加密数据文件得到密文,并将所述密文以及利用密钥池装置公钥加密的真随机数R发送至所述密钥池装置;

所述密钥池装置将利用文件密钥加密的数据文件上传至所述服务器;所述密钥池装置还将所述文件密钥真随机数结合文件密钥种子指针函数得到文件密钥种子指针,利用该文件密钥种子指针从所述密钥池装置中提取对应的加密的文件密钥种子,并利用所述密钥池装置生成的真随机数解密得到文件密钥种子,该文件密钥种子结合文件密钥函数得到所述文件密钥;所述密钥池装置还将所述文件密钥种子指针函数ID和文件密钥函数的ID发送至所述服务器;

所述文件密钥真随机数的加密方式为使用公钥加密文件密钥真随机数得到个人密钥以及使用文件特征值加密文件密钥真随机数得到数据密钥,其中所述公钥利用所述密钥池装置中量子密钥卡所产生的公钥密钥真随机数生成,所述密钥池装置上传所述个人密钥、所述数据密钥以及公钥密钥真随机数至所述服务器;

所述服务器接收并存储来自所述密钥池装置的个人密钥、公钥密钥真随机数以及数据文件;

用户端发送读请求至密钥池装置,密钥池装置下载个人密钥、公钥密钥真随机数以及利用文件密钥加密的数据文件,所述密钥池装置使用私钥解密所述个人密钥得到文件密钥真随机数进而生成文件密钥,利用所述文件密钥解密利用文件密钥加密的数据文件获得数据文件,所述密钥池装置将利用自身生成的随机数及用户端公钥将数据文件加密传至用户端,进而完成服务器文件读取。

说明书 :

基于公共非对称密钥池的抗量子计算代理云存储方法和系统

技术领域

[0001] 本发明涉及云存储领域,尤其涉及基于公共密钥池的一种云存储安全控制的方法和系统。

背景技术

[0002] 随着科技的发展,云存储已经越来越成为一种趋势,各种云存储技术层出不穷,为了保证云存储数据的安全,通常会利用各种加密方法来保证数据的安全性,例如,可以通过非对称密钥加密来保证数据的安全性,非对称密钥加密需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公钥,另一个由用户自己秘密保存,即私钥。信息发送者用公钥去加密,而信息接收者用私钥去解密。
[0003] 由于云存储中多采用共享存储,这使得服务商需要对私钥进行控制,导致私钥的安全性较低。公开号为CN103236934A,发明名称为“一种云存储安全控制的方法”的发明专利文献,公开了一种用于解决私钥安全性较低的问题的方法。该发明使用两种不同的加密方式对用户的私钥进行加密并分别存储。
[0004] 正如大多数人所了解的,量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如RSA加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。
[0005] 当前企业或事业单位有时有数据上云的需求,而公有云一般不容易受这些单位信任,被认为信息安全可能有问题,或者密钥容易被黑客所获得并破解,因此造成了公有云客户对数据上云有后顾之忧。
[0006] 现有技术存在的问题:
[0007] (1)在服务器上进行密钥存储有一定的危险性。公有云客户对数据上云有后顾之忧。
[0008] (2)公开号为CN103236934A,发明名称为“一种云存储安全控制的方法”的发明专利文献,使用用户公钥对文件密钥进行加密,由于量子计算机能快速通过公钥得到对应的私钥,因此该方案很容易被量子计算机破解。

发明内容

[0009] 基于此,有必要针对上述问题,提供一种基于公共非对称密钥池的抗量子计算代理云存储方法,包括用户端上传数据文件至密钥池装置,所述密钥池装置将利用文件密钥加密的数据文件上传至服务器,所述用户端及所述密钥池装置均配置有量子密钥卡,所述文件密钥是利用所述密钥池装置所配有的量子密钥卡中产生的文件密钥真随机数生成,且所述密钥池装置将所述文件密钥真随机数以加密形式上传至所述服务器;
[0010] 所述文件密钥真随机数的加密方式为使用所述密钥池装置内的公钥加密文件密钥真随机数得到个人密钥以及使用文件特征值加密文件密钥真随机数得到数据密钥;
[0011] 其中,所述公钥利用所述密钥池装置内的量子密钥卡所产生的公钥密钥真随机数生成;所述密钥池装置将所述个人密钥、所述数据密钥以及公钥密钥真随机数上传所述服务器。
[0012] 当前有很多存储云服务,其中包括很多公有云。下文中,存储云的服务器即云服务端简称为服务器,云用户端群组中的云用户端简称为用户端。
[0013] 本发明中用户端为接入存储云的设备,可为移动终端,或为固定终端。终端均配备有密钥卡。密钥卡存储了用户的公钥和私钥以及一个根密钥,密钥卡还存有客户的注册登记信息,内置有身份认证协议,至少包括密钥生成算法以及认证函数,或其他与身份认证相关的算法。密钥卡中还带有随机数发生器。其中,文件密钥的生成和数据文件的加密在量子密钥卡内完成,保证用户端加密程序执行环境安全,量子密钥卡内的文件密钥真随机数生成文件密钥,保证文件密钥的真随机性,大大提高文件秘钥的安全性,同时量子密钥卡为独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低,真随机数以加密形式上传至服务器,而非文件密钥存储,解决了密钥存储在服务器上被窃取的危险性。
[0014] 可选地,所述密钥池装置包括:
[0015] 公共密钥池,用于生成所述文件密钥;
[0016] 非对称密钥池,所述非对称密钥池内存储群组内所有用户端的公钥,所述非对称密钥池与所述公钥密钥真随机数结合提取出公钥。
[0017] 可选地,所述用户端有一个或多个,所述密钥池装置内存储有供各用户端访问的公共密钥池,所述用户端与所述密钥池装置通信连接,上传数据文件的用户端利用所述公共密钥池生成文件密钥以加密数据文件,下载数据文件的用户端利用所述公共密钥池结合来自服务器的真随机数相应生成文件密钥以解密出数据文件。
[0018] 本实施例中,属于一个用户端群组的各个用户端所匹配的密钥卡颁发方为密钥卡的主管方,一般为某企业或事业单位的管理部门;密钥卡被颁发方为密钥卡的主管方所管理的成员,一般为某企业或事业单位的各级员工,其使用存储云用户端进行云端数据存取,下文统称成员所使用的存储云用户端为用户端。用户端首先到密钥卡的主管方申请开户。当用户端进行注册登记获批后,将得到密钥卡(具有唯一的ID)。
[0019] 各用户端拥有存储在所述密钥池装置内的公共密钥池,可实现多个用户端文件共享,同时密钥池的设定,使得下载数据文件的用户端需利用来自服务器的真随机数结合所述公共密钥池相应生成文件密钥,在没有得到密钥池的情况下,即使得到真随机数也无法得到加密文件的文件密钥,进一步提高文件密钥的安全性。
[0020] 可选地,所述文件密钥生成方法包括:将所述文件密钥真随机数结合文件密钥种子指针函数得到文件密钥种子指针,利用该文件密钥种子指针从所述密钥池装置中提取对应的加密的文件密钥种子,并利用所述密钥池装置生成的真随机数解密得到文件密钥种子,该文件密钥种子结合文件密钥函数得到所述文件密钥;所述密钥池装置还将所述文件密钥种子指针函数ID和文件密钥函数的ID发送至所述服务器。
[0021] 可选地,所述公钥生成方法包括:所述公钥密钥真随机数结合公钥指针函数得到公钥指针,利用该公钥指针从对应量子密钥卡中提取对应的公钥;当量子密钥卡为用户端所配有时,该公钥指针从对应量子密钥卡中的公钥密钥池提取对应的公钥;当量子密钥卡为密钥池装置所配有时,该公钥指针从对应量子密钥卡中的所述非对称密钥池提取对应的公钥。
[0022] 可选地,所述文件密钥种子指针函数ID和文件密钥函数ID作为所述服务器是否进行去重的标识。
[0023] 可选地,所述用户端将真随机数和数据文件加密后上传至所述密钥池装置,加密方式为使用真随机数加密所述数据文件得到密文,以及使用所述密钥池装置的公钥加密真随机数得到真随机数密文;所述密钥池装置使用私钥解密所述真随机数密文得到真随机数,以及使用所述真随机数解密所述密文得到所述数据文件。
[0024] 一种基于公共非对称密钥池的抗量子计算代理云存储方法,包括服务器接收并存储来自密钥池装置利用文件密钥加密的数据文件,所述文件密钥是利用所述密钥池装置所配有的量子密钥卡中产生的文件密钥真随机数生成,所服务器还接收并存储来自所述密钥池装置的个人密钥、数据密钥以及公钥密钥真随机数,所述个人密钥和所述数据密钥由所述文件密钥真随机数加密获得;
[0025] 所述文件密钥真随机数的加密方式为使用公钥加密文件密钥真随机数得到个人密钥,以及使用文件特征值加密文件密钥真随机数得到数据密钥,其中所述公钥利用量子密钥卡所产生的公钥密钥真随机数生成。
[0026] 可选地,所述服务器还接收并存储来自所述所述密钥池装置的与生成所述文件密钥相关的函数ID,其中两个函数ID作为服务器是否进行去重的指示标识;
[0027] 当服务器依据所述指示标识判断去重时,所述服务器向所述用户端发送数据密钥;
[0028] 当服务器依据所述指示标识判断不需去重时,接受存储来自所述用户端的与生成所述文件密钥相关的函数ID。
[0029] 一种基于公共非对称密钥池的抗量子计算代理云存储系统,包括服务器、密钥池装置和用户端,用户端上传数据文件至密钥池装置,所述密钥池装置将利用文件密钥加密的数据文件上传至所述服务器,所述用户端及所述密钥池装置均有量子密钥卡,所述文件密钥是利用所述密钥池装置所配有的量子密钥卡中产生的文件密钥真随机数生成,且所述密钥池装置还将所述文件密钥真随机数以加密形式上传至所述服务器;
[0030] 所述文件密钥真随机数的加密方式为使用公钥加密文件密钥真随机数得到个人密钥以及使用文件特征值加密文件密钥真随机数得到数据密钥,其中所述公钥利用所述密钥池装置中量子密钥卡所产生的公钥密钥真随机数生成,所述密钥池装置上传所述个人密钥、所述数据密钥以及公钥密钥真随机数至所述服务器;
[0031] 所述服务器接收并存储来自所述密钥池装置的个人密钥、公钥密钥真随机数以及数据文件;
[0032] 用户端发送读请求至密钥池装置,密钥池装置下载个人密钥、公钥密钥真随机数以及利用文件密钥加密的数据文件,所述密钥池装置使用私钥解密所述个人密钥得到文件密钥真随机数进而生成文件密钥,利用所述文件密钥解密利用文件密钥加密的数据文件获得数据文件,所述密钥池装置将利用自身生成的随机数及用户端公钥将数据文件加密传至用户端,进而完成服务器文件读取。
[0033] 上述基于公共非对称密钥池的抗量子计算代理云存储方法和系统,包括服务器、密钥池装置和用户端,用户端通过密钥池装置将利用文件密钥加密的数据文件上传至服务器,用户端及密钥池装置均有量子密钥卡,文件密钥是利用密钥池装置所配有的量子密钥卡中产生的文件密钥真随机数生成,且密钥池装置还将文件密钥真随机数以公钥以及使用文件特征值加密形式上传至所述服务器,其中所述公钥利用所述密钥池装置中量子密钥卡所产生的公钥密钥真随机数生成,密钥池装置上传公钥密钥真随机数至服务器;服务器接收并存储来自所述密钥池装置的相关数据参数,用户端发送读请求至密钥池装置,密钥池装置下载加密的文件密钥真随机数、公钥密钥真随机数以及利用加密的数据文件,密钥池装置使用私钥解密加密的文件密钥真随机数进而生成文件密钥,利用文件密钥解密加密的数据文件获得数据文件,所述密钥池装置将利用自身生成的随机数及用户端公钥将数据文件加密传至用户端,进而完成服务器文件读取。服务器端无法接触到用户端各类密钥以及数据文件,同时使用仅对量子密钥卡公开的公钥对文件密钥进行加密,由于量子密钥卡为独立的硬件隔离设备,大大降低被恶意软件或恶意操作窃取密钥的可能性,同时量子计算机无法得到用户公钥,于是也无法得到对应的私钥,因此降低了被量子计算机破解的风险。

附图说明

[0034] 图1为本发明实施例提供的存储系统的结构示意图;
[0035] 图2为公共密钥池装置的结构示意图;
[0036] 图3为随机数发生器产生的随机数的加密方式示意图;
[0037] 图4为本发明实施例提供的文件密钥生成流程图;
[0038] 图5为本发明实施例提供的公钥存储方式流程图;
[0039] 图6为本发明实施例提供的公钥读取方式流程图;
[0040] 图7为本发明实施例提供的存储方法的时序图;
[0041] 图8为本发明实施例提供的读取方法的时序图;
[0042] 图9为本发明实施例1提供的存储方法的流程图;
[0043] 图10为本发明实施例2提供的读取方法的流程图。

具体实施方式

[0044] 图1为本发明实施例提供的基于公共非对称密钥池的抗量子计算代理云存储系统的结构示意图,公共密钥池装置与用户端群组CC以及云存储CS分别网络连接。其中用户端群组CC由多个用户端组成。每个用户端都有自己匹配的密钥卡,每个密钥卡内部存储该用户端的私钥KA以及公钥密钥池,密钥池中存有所有成员的公钥。密钥卡中还存储有该用户端的公钥指针随机数,图1中KRA/KA即指A的公钥指针随机数/私钥。用户端A对外公开的公钥KRA,即公钥的指针随机数。用户端群组中的其他成员同理。
[0045] 公钥的存储方式如图5所示,文字描述如下:对某个用户随机取公钥指针随机数rk,结合特定的公钥指针函数frkp得到公钥指针rkp并从相应的非对称密钥池中的对应位置存入该用户的公钥krk。
[0046] 公共密钥池装置P的结构示意图如图2所示,公共密钥池装置P带有量子密钥卡,装置P带有根密钥区,可以取出根密钥KR。密钥池装置P还带有随机数产生器,该随机数产生器优选为量子随机数发生器,可产生真随机数作为密钥的密钥,该密钥的密钥称为KKP。KP指用户端群组CC所拥有的公共密钥池,存储在P装置。KP容量巨大,例如可以从1G~4096G不等,均为真随机数,优选为量子随机数。P可存储多个KP,图中P存储有1~M共M个KP区域。KP用密钥池装置中的随机数产生器产生的KKP加密,KKP的加密方式如图3所示,用KR以及各个用户端A、B、……N的公钥KAP、KBP、……KNP分别加密。
[0047] 公共密钥池装置P中除了含有公共密钥池KP,还有用于存储公钥的非对称密钥池,非对称密钥池表示为KPP。其中公钥区拥有本组织所有用户以及公共密钥池装置P的公钥。公共密钥池装置P对外公开的公钥为KRP,即公共密钥池装置的公钥指针随机数。
[0048] 图4所示的文件密钥生成流程中,文件密钥种子指针函数frfp和文件密钥函数fkf为公共密钥池主管方可定制,通常与用户端群组的主管方一致。
[0049] 文件密钥种子指针函数frfp为对随机数进行某种数值变换后取模,例如frfp(r)=(r+d)%s,
[0050] 其中r为输入变量(此处为随机数),d为偏移量,%为取模运算,s为密钥池总大小。当然根据设计需要,文件密钥种子指针函数frfp不限于此,只要能够得到文件密钥种子指针rfp即可。
[0051] 文件密钥函数fkf为对输入数据进行某种数值变换后取模,例如fkf(x)=(ax+b)%2len,
[0052] 其中x为输入变量,a、b为变换参数,%为取模运算,len为用户指定的密钥长度(单位:bit)。当然根据设计需要,文件密钥函数fkf不限于此,只要能够生成文件密钥kf即可。
[0053] 在本实施例中,所以所有用户的文件密钥种子指针函数frfp和文件密钥函数fkf都一样。当然根据设计需要,所述各用户端的文件密钥种子指针函数frfp和文件密钥函数fkf可不相同。
[0054] 在各用户端涉及的多处操作,都在匹配的密钥卡中进行。在公共密钥池涉及的多处操作,都在匹配的量子密钥卡中进行。
[0055] 所述用户端有一个或多个,所述密钥池装置内存储有供各用户端访问的公共密钥池,所述用户端与所述密钥池装置通信连接,上传数据文件的用户端利用所述公共密钥池生成文件密钥以加密数据文件,下载数据文件的用户端利用所述公共密钥池结合来自服务器的真随机数相应生成文件密钥以解密出数据文件。
[0056] 以下结合附图及实施例,对本发明进行进一步详细说明。
[0057] 实施例1
[0058] 图7为本发明实施例提供的存储方法的时序图。图9为本发明实施例提供的一种存储方法的流程图。基于公共非对称密钥池的抗量子计算代理云存储方法,具体步骤如下:
[0059] 步骤1.1:用户端加密文件并发送至密钥池装置。
[0060] 用户端使用随机数发生器生成的真随机数R加密数据文件得到密文M1,并使用P的公钥加密真随机数R,将这两部分发送给密钥池装置P。从公钥密钥池中提取P的公钥,由P的公钥指针随机数得到公钥的过程如图6所示,描述如下:
[0061] 使用公钥指针随机数rk结合特定的公钥指针函数frkp得到公钥指针rkp,然后从相应的公钥密钥池中的对应位置取出公钥krk。
[0062] 步骤1.2:密钥池装置解密文件:密钥池装置P使用自己的私钥解密得到真随机数R,使用R解密密文M1得到明文形式的数据文件。
[0063] 步骤1.3:密钥池装置将数据文件的Hash值和各个算法ID上传至服务器:密钥池装置上传数据文件之前,先计算出数据文件的Hash值,并将该Hash值上传至服务器。同时上传的还有各个算法的ID(包括文件密钥种子指针函数frfp以及文件密钥函数fkf,下文同理)。服务器为了减轻存储压力,将对文件进行密文去重,即鉴别重复文件。
[0064] 步骤1.4:服务器鉴别重复文件:服务器对文件的Hash值以及各个算法ID进行综合考虑来鉴别重复文件,即如果两份文件具有相同的Hash值且frfp和fkf的ID分别相同则认为有相同的数据文件需要去重。若服务器判断不需要去重,服务器保存收到的这个Hash值以及各个算法ID,并执行步骤步骤1.5。。若需要去重,服务器执行步骤步骤1.6。
[0065] 本领域技术人员可以理解,在某些情况下,同一用户可能会先后上传同一数据文件,那么在该用户期待再次以相同frfp、fkf上传已上传数据文件时,服务器如果判断该数据文件来源与同一用户,将不执行任何操作。
[0066] 步骤1.5:若服务器不需要去重:
[0067] 步骤1.5.1:服务器通知用户端生成随机数:服务器保存收到的Hash值和算法ID后,将服务器不存在具有相同数据文件的信息发送给密钥池装置P。
[0068] 步骤1.5.2:密钥池装置处理信息并将需要存储在服务器上的内容发送给服务器:密钥池装置收到服务器不存在具有相同的数据文件的信息后,密钥池装置根据所匹配的真随机数发生器生成文件密钥随机数rf并进一步得到文件密钥kf,具体步骤如图4所示,具体步骤如下:
[0069] 根据匹配的量子密钥卡生成文件密钥随机数rf,rf结合特定的文件密钥种子指针函数frfp得到文件密钥种子指针rfp并从密钥池中提取出相应的加密的文件密钥种子即加密的krf,使用KKP对密钥进行解密得到文件密钥种子krf;然后结合文件密钥函数fkf生成文件密钥kf。
[0070] 得到文件密钥kf后,密钥池装置使用文件密钥加密数据文件得到密文kff,加密算法可为对称加密算法;
[0071] 密钥池装置P通过使用自己的公钥指针随机数KRP在公钥密钥池即KPP区域提取出自己的公钥,提取过程如图6所示,具体步骤与上文一致。然后密钥池装置P使用自己的公钥加密文件密钥随机数rf得到个人密钥。
[0072] 密钥池装置P生成文件特征值,并使用文件特征值加密文件密钥随机数rf得到数据密钥;文件特征值的计算方法为预定义的算法,可以是但不限于Hash计算、文件压缩或其他文件特征计算算法;
[0073] 密钥池装置P将密文、算法ID、个人密钥以及数据密钥发送至服务器。
[0074] 步骤1.5.3:服务器保存相应信息:服务器将收到的密文、算法ID、个人密钥以及数据密钥进行保存。
[0075] 步骤1.6:若服务器需要去重:
[0076] 步骤1.6.1:服务器向密钥池装置发送数据密钥:服务器将该文件的数据密钥发送给密钥池装置。
[0077] 步骤1.6.1:密钥池装置处理信息并将需要存储在服务器上的内容发送给服务器:密钥池装置收到数据密钥后,根据数据文件生成的文件特征值,并使用文件特征值解密数据密钥得到文件密钥随机数rf。
[0078] 密钥池装置使用自己的公钥指针随机数KRP在公钥密钥池即KPP区域提取自己的公钥,提取过程如图6所示,具体步骤与上文一致。
[0079] 密钥池装置使用提取出的公钥加密文件密钥随机数rf得到个人密钥,并将个人密钥发送给服务器。
[0080] 步骤1.6.1:服务器保存相应信息:服务器收到该个人密钥后进行保存。
[0081] 实施例2
[0082] 图8为本发明实施例提供的读取方法的时序图。图10为本发明实施例提供的一种文件读取方法的流程图。基于公共非对称密钥池的抗量子计算代理云存储方法中的文件读取方法,具体步骤如下:
[0083] 步骤2.1:步骤2.1:用户端发起读取文件请求。
[0084] 用户端将想要读取的文件的Hash值作为一个请求,使用随机数发生器生成的真随机数R加密这个请求,并使用P的公钥加密真随机数R,将这两部分发送给密钥池装置P。
[0085] 步骤2.2:密钥池装置解密文件。
[0086] 密钥池装置P使用自己的私钥解密得到真随机数R,使用R解密请求得到文件的Hash值。
[0087] 步骤2.3:密钥池装置将请求发送至服务器。
[0088] 密钥池装置把作为读取文件请求的文件Hash值和各个算法ID上传至服务器。
[0089] 步骤2.4:服务器返回相应信息。
[0090] 服务器收到文件Hash值和算法ID后,找到与该Hash值和算法ID对应的信息,将密文、个人密钥发送至密钥池装置。
[0091] 步骤2.5:密钥池装置得到文件密钥。
[0092] 密钥池装置使用私钥解密个人密钥得到文件密钥随机数rf,并进一步得到文件密钥kf,具体步骤如图4所示。密钥池装置使用文件密钥解密密文后得到明文形式的数据文件,使用随机数发生器生成一个新的真随机数R’对数据文件进行加密得到密文M’,从公钥密钥池中提取出对应的用户端的公钥加密真随机数R’,连同密文M’一起发送至用户端。
[0093] 步骤2.6:用户端得到数据文件:用户端使用自己的私钥解密得到R’,使用R’解密密文M’得到数据文件,完成对服务器文件的读取。
[0094] 量子密钥卡从智能卡技术上发展而来,是结合了量子物理学技术(搭载量子随机数发生器的情况下)、密码学技术、硬件安全隔离技术的身份认证和加解密产品。量子密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,量子密钥卡成为私钥和密钥池的安全载体。每一个量子密钥卡都有硬件PIN码保护,PIN码和硬件构成了用户使用量子密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的量子密钥卡和用户PIN码,才可以登录系统。即使用户的PIN码被泄露,只要用户持有的量子密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的量子密钥卡遗失,拾到者由于不知道用户PIN码,也无法仿冒合法用户的身份。
[0095] 本发明云存储全过程中,服务器端都无法接触到用户端各类密钥(公钥、私钥、文件密钥等)以及明文数据文件。不仅如此,服务器上存储的个人密钥与数据密钥为使用不同方法加密的随机数,该随机数结合特定的密钥选择算法可得到一个指针。该指针指向密钥池中某个特定的区域,在没有得到密钥池的情况下,即使破解了个人密钥或数据密钥也无法得到加密文件的文件密钥。同时使用仅对量子密钥卡公开的公钥对文件密钥进行加密,且使用量子密钥卡存储公钥,量子密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。由于量子计算机无法得到用户公钥,于是也无法得到对应的私钥,因此该方案不容易被量子计算机破解。
[0096] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0097] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。