基于非对称密钥池的抗量子计算云存储方法和系统与流程

文档序号:16888041发布日期:2019-02-15 22:48阅读:159来源:国知局
基于非对称密钥池的抗量子计算云存储方法和系统与流程

本发明涉及云存储领域,尤其涉及一种基于非对称密钥池的云存储安全控制的方法和系统。



背景技术:

随着科技的发展,云存储已经越来越成为一种趋势,各种云存储技术层出不穷,为了保证云存储数据的安全,通常会利用各种加密方法来保证数据的安全性,例如,可以通过非对称密钥加密来保证数据的安全性,非对称密钥加密需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公钥,另一个由用户自己秘密保存,即私钥。信息发送者用公钥去加密,而信息接收者用私钥去解密;或者信息发送者用私钥去加密,而信息接收者用公钥去解密。

由于云存储中多采用共享存储,这使得服务商需要对私钥进行控制,导致私钥的安全性较低。公开号为cn103236934a,发明名称为“一种云存储安全控制的方法”的发明专利文献,公开了一种用于解决私钥安全性较低的问题的方法。该发明使用两种不同的加密方式对用户的私钥进行加密并分别存储。

正如大多数人所了解的,量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如rsa加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为rsa、离散对数加密算法的破解提供可能。

当前企业或事业单位有时有数据上云的需求,而公有云一般不容易受这些单位信任,被认为信息安全可能有问题,或者密钥容易被黑客所获得并破解,因此造成了公有云客户对数据上云有后顾之忧。

现有技术存在的问题:

(1)在云服务器上进行密钥存储有一定的危险性。公有云客户对数据上云有后顾之忧。

(2)公开号为cn103236934a,发明名称为“一种云存储安全控制的方法”的发明专利文献,使用用户公钥对文件密钥进行加密,由于量子计算机能快速通过公钥得到对应的私钥,因此该方案很容易被量子计算机破解。



技术实现要素:

基于此,有必要针对上述问题,提供一种基于非对称密钥池的抗量子计算云存储方法和系统。

一种基于非对称密钥池的抗量子计算云存储方法,包括用户端将利用文件密钥加密的数据文件上传至服务器,所述用户端配置有量子密钥卡,所述文件密钥是利用量子密钥卡所产生的文件密钥真随机数生成,且所述用户端将所述文件密钥真随机数以加密形式上传至所述服务器;所述文件密钥真随机数的加密方式为使用公钥加密文件密钥真随机数得到个人密钥以及使用文件特征值加密文件密钥真随机数得到数据密钥;其中,所述公钥利用量子密钥卡所产生的公钥密钥真随机数生成;所述用户端将所述个人密钥、所述数据密钥以及公钥密钥真随机数上传所述服务器。

当前有很多存储云服务,其中包括很多公有云。在本实施例中,存储云的服务器简称为服务器,成员所使用的存储云客户端为用户端。本发明中用户端为接入存储云的设备,可为移动终端,或为固定终端,终端均配备有量子密钥卡,量子密钥卡的描述可见申请号为“201610843210.6”的专利。当为移动终端时,量子密钥卡优选为量子密钥sd卡;当为固定终端时,量子密钥卡优选为量子密钥usbkey或主机量子密钥板卡。

文件密钥的生成和数据文件的加密在量子密钥卡内完成,保证用户端加密程序执行环境安全,量子密钥卡内的文件密钥真随机数生成文件秘钥,保证文件秘钥的真随机性,大大提高文件秘钥的安全性,同时量子密钥卡为独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低,文件密钥真随机数以加密形式上传至服务器,而非文件密钥存储,解决了密钥存储在服务器上被窃取的危险性。

有选地,所述用户端有一个或多个,各用户端配置的量子密钥卡中存储有相同的密钥池,上传数据文件的用户端通过己方的密钥池生成文件密钥以加密数据文件,下载数据文件的用户端利用来自服务器的真随机数结合己方的密钥池相应生成文件密钥以解密出数据文件。

本专利的量子密钥卡颁发方为量子密钥卡的主管方,一般为某企业或事业单位的管理部门;量子密钥卡被颁发方为量子密钥卡的主管方所管理的成员,一般为某企业或事业单位的各级员工,其使用用户端进行云端数据存取。用户端首先到量子密钥卡的主管方申请开户。当用户端进行注册登记获批后,将得到量子密钥卡(具有唯一的量子密钥卡id)。量子密钥卡存储了客户注册登记信息,还内置有身份认证协议,至少包括密钥生成算法以及认证函数,或其他与身份认证相关的算法。量子密钥卡中的用户侧密钥都下载自同一个量子网络服务站,且对同一个量子密钥卡的主管方来说,其颁发的每个量子密钥卡中存储的密钥池是完全一致的。优选为,量子密钥卡中存储的密钥池大小可以是1g、2g、4g、8g、16g、32g、64g、128g、256g、512g、1024g、2048g、4096g等等。其容量取决于主管方对安全的要求,容量越大安全性越高。

有选地,所述各用户端的密钥池包括:

群组型对称密钥池,用于生成所述文件密钥;

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

非对称密钥,所述非对称密钥为用户端私钥。

本发明中,量子密钥卡的密钥区如图2所示,分为群组型对称密钥池、非对称密钥池(公钥)以及非对称密钥(私钥)。其中,公钥区拥有本组织所有用户的公钥,私钥区存储本用户的私钥。

优选地,所述文件密钥生成方法包括:将所述文件密钥真随机数结合文件密钥种子指针函数得到文件密钥种子指针,利用该文件密钥种子指针从所述量子密钥卡中所述群组型对称密钥池中提取对应的文件密钥种子,该文件密钥种子结合文件密钥函数得到所述文件密钥;所述用户端还将所述文件密钥种子指针函数id和文件密钥函数的id发送至所述服务器。

优选地,所述公钥生成方法包括:所述公钥密钥真随机数结合公钥指针函数得到公钥指针,利用该公钥指针从所述量子密钥卡中所述非对称密钥池中提取对应的公钥。

优选地,所述文件密钥种子指针函数id和文件密钥函数id作为所述服务器是否进行去重的标识。

优选地,多个用户端共享数据文件时,共享用户端和被共享用户端均公开所述公钥密钥真随机数,所述共享用户端通过公开所述公钥密钥真随机数生成所述被共享用户端的个人密钥,上传所述个人密钥至所述服务器进而实现对所述被共享用户端的文件共享。

一种基于非对称密钥池的抗量子计算云存储方法,包括服务器接收并存储来自用户端利用文件密钥加密的数据文件,所服务器还接收并存储来自用户端的个人密钥、数据密钥以及公钥密钥真随机数,所述个人密钥和所述数据密钥由所述文件密钥真随机数加密获得;

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

优选地,所述服务器还接收并存储来自所述用户端的与生成所述文件密钥相关的函数id,其中两个函数id作为服务器是否进行去重的指示标识;

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

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

一种基于非对称密钥池的抗量子计算云存储系统,包括服务器和用户端,所述用户端将利用文件密钥加密的数据文件上传至所述服务器,所述用户端配置有量子密钥卡,所述文件密钥是利用所述量子密钥卡所产生的文件密钥真随机数生成,且所述用户端还将所述文件密钥真随机数以加密形式上传至所述服务器;所述文件密钥真随机数的加密方式为使用公钥加密文件密钥真随机数得到个人密钥以及使用文件特征值加密文件密钥真随机数得到数据密钥,其中所述公钥利用量子密钥卡所产生的公钥密钥真随机数生成,,所述用户端上传所述个人密钥、所述数据密钥以及公钥密钥真随机数至所述服务器;所述服务器接收并存储来自所述用户端的个人密钥、公钥密钥真随机数以及数据文件;用户端下载个人密钥、公钥密钥真随机数以及利用文件密钥加密的数据文件,用户端使用私钥解密所述个人密钥得到文件密钥真随机数进而生成文件密钥,利用所述文件密钥解密利用文件密钥加密的数据文件获得数据文件。

上述基于非对称密钥池的抗量子计算云存储方法和系统,用户端将利用文件密钥加密的数据文件上传至服务器,用户端配置有量子密钥卡,所述文件密钥是利用量子密钥卡所产生的文件密钥真随机数生成,且所述用户端还将所述文件密钥真随机数以加密形式上传至所述服务器,其加密方式为使用公钥加密文件密钥真随机数得到个人密钥以及使用文件特征值加密文件密钥真随机数得到数据密钥,其中所述公钥利用量子密钥卡所产生的公钥密钥真随机数生成,所述用户端上传所述个人密钥、所述数据密钥以及公钥密钥真随机数至所述服务器;所述服务器接收并存储来自所述用户端的个人密钥、公钥密钥真随机数以及数据文件;用户端下载个人密钥、公钥密钥真随机数以及利用文件密钥加密的数据文件,用户端使用私钥解密所述个人密钥进而获得数据文件。利用量子密钥卡存储公钥,量子密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低,同时服务器端都无法接触到用户端各类密钥(公钥、私钥、文件密钥等)以及明文数据文件,保证在云服务器上进行数据存储的安全性。

附图说明

图1为本发明实施例提供的存储系统的结构示意图;

图2为本发明实施例提供的用户端的密钥区结构示意图;

图3为本发明实施例提供的公钥存储方式流程图;

图4为本发明实施例提供的文件密钥生成流程图;

图5为本发明实施例提供的公钥读取方式流程图;

图6为本发明实施例1提供的存储方法的流程图;

图7为本发明实施例2提供的读取方法的流程图。

具体实施方式

以下步骤中,在各用户端涉及的多处操作,都在匹配的量子密钥卡中进行。

图1为本发明实施例提供的基于非对称密钥池的云存储系统的结构示意图,包括服务器和用户端,所述用户端将利用文件密钥加密的数据文件上传至所述服务器,所述用户端配置有量子密钥卡,所述文件密钥是利用所述量子密钥卡所产生的文件密钥真随机数生成,且所述用户端还将所述文件密钥真随机数以加密形式上传至所述服务器;

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

所述用户端包括:hash值计算模块、密钥生成模块以及加解密模块。

hash值计算模块,用于计算新用户的数据文件的hash值,将此hash值上传给服务器,以供服务器判断模块判断已存储数据文件中是否存在具有相同hash值的数据文件。

密钥生成模块,用于在服务器的判断模块判断的结果为否时,生成文件密钥。

在本实施例中,用户端有一个或多个,各用户端配置的量子密钥卡中存储有相同的密钥池,上传数据文件的用户端通过己方的密钥池生成文件密钥以加密数据文件,下载数据文件的用户端利用来自服务器的真随机数结合己方的密钥池相应生成文件密钥以解密出数据文件。

所述各用户端的密钥生成模块除了带有用于生成文件密钥的群组型对称密钥池,还有用于存储公钥的非对称密钥池。对称密钥池表示为kp,非对称密钥池表示为kpp。其中公钥区拥有本组织所有用户的公钥。公钥的存储方式如图3所示,对某个用户随机取公钥密钥随机数rk,结合特定的公钥指针函数frkp得到公钥指针rkp并从相应的非对称密钥池中的对应位置存入该用户的公钥krk。

文件密钥生成方法,如图4所示,首先使用匹配的量子密钥卡内的真随机数发生器生成文件密钥随机数rf;然后结合特定的文件密钥种子指针函数frfp得到文件密钥种子指针rfp并从对称密钥池中提取出相应的文件密钥种子krf;然后结合文件密钥函数fkf生成文件密钥kf。

所述文件密钥种子指针函数frfp和文件密钥函数fkf为量子密钥卡主管方可定制。

文件密钥种子指针函数frfp为对真随机数进行某种数值变换后取模,例如frfp(r)=(r+d)%s,

其中r为输入变量(此处为真随机数),d为偏移量,%为取模运算,s为密钥池总大小。当然根据设计需要,文件密钥种子指针函数frfp不限于此,只要能够得到文件密钥种子指针rfp即可。

文件密钥函数fkf为对输入数据进行某种数值变换后取模,例如fkf(x)=(ax+b)%2len

其中x为输入变量,a、b为变换参数,%为取模运算,len为用户指定的密钥长度(单位:bit)。当然根据设计需要,文件密钥函数fkf不限于此,只要能够生成文件密钥kf即可。

由于本专利突出点为抗量子计算攻击,所以所有用户的frfp和fkf都一样。

加解密模块,用于利用文件密钥对数据文件进行加密;以及利用两种不同加密方式对文件密钥随机数rf进行加密形成个人密钥和数据密钥;其中,以用户私钥为解密密钥对个人密钥进行解密后可以获得文件密钥随机数rf;以加密前的数据文件的特征值为解密密钥对数据密钥进行解密后可以获得文件密钥随机数rf;由文件密钥随机数rf可得到文件密钥。

服务器接收并存储来自用户端利用文件密钥加密的数据文件,其特征在于,所服务器还接收并存储来自用户端的个人密钥、数据密钥以及公钥密钥真随机数,所述个人密钥和所述数据密钥由所述文件密钥真随机数加密获得;

所述服务器包括:存储模块、判断模块以及密钥授权模块。

存储模块,用于存储文件的hash值、加密后的数据文件、个人密钥和数据密钥;

判断模块,用于去重判断,在存储用户的数据文件前,判断已存储数据文件中是否存在相同的数据文件并通知密钥授权模块;若判断结果为是,则通知密钥授权模块向用户端发送数据密钥,若判断结果为否,则将收到的hash值发送给存储模块保存。

具体地,所述服务器还接收并存储来自所述用户端的与生成所述文件密钥相关的函数id,其中两个函数id作为服务器是否进行去重的指示标识;

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

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

密钥授权模块,用于在判断模块判断的结果为是时,向用户端发送数据密钥,在判断模块判断的结果为否时,向用户端发送无相同数据文件的信息。

在本实施例中,密钥授权模块又分为发送子模块和接受子模块。发送子模块用于发送数据密钥或信息,接受子模块用于接收到来自用户端的所述用户的个人密钥、数据密钥以及加密后的数据文件,将其发送给存储模块保存。

用户端下载个人密钥、公钥密钥真随机数以及利用文件密钥加密的数据文件,用户端使用私钥解密所述个人密钥得到文件密钥真随机数进而生成文件密钥,利用所述文件密钥解密利用文件密钥加密的数据文件获得数据文件。

以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。

实施例1

图6为本发明实施例提供的一种基于非对称密钥池的抗量子计算云存储方法的流程图,具体步骤如下:

步骤1.1:用户端将数据文件的hash值和各个算法id上传至服务器:用户端上传数据文件之前,先计算出数据文件的hash值,并将该hash值上传至服务器。同时上传的还有各个函数的id(包括文件密钥种子指针函数frfp以及文件密钥函数fkf,下文同理)。服务器为了减轻存储压力,将对文件进行密文去重,即鉴别重复文件。

步骤1.2:服务器鉴别重复文件:服务器对文件的hash值以及各个算法id进行综合考虑来鉴别重复文件,即如果两份文件具有相同的hash值且frfp和fkf的id分别相同则认为有相同的数据文件需要去重。若服务器判断不需要去重,服务器保存收到的这个hash值以及各个算法id,并执行步骤1.3.1。若需要去重,服务器执行步骤1.4.1。

本领域技术人员可以理解,在某些情况下,同一用户可能会先后上传同一数据文件,那么在该用户期待再次以相同frfp、fkf上传已上传数据文件时,服务器端如果判断该数据文件来源于同一用户,将不执行任何操作。

步骤1.3:若服务器不需要去重:

步骤1.3.1:服务器通知用户端生成随机数:服务器保存收到的hash值和算法id后,将服务器不存在具有相同数据文件的信息发送给用户端。

步骤1.3.2:用户端处理信息并将需要存储在服务器上的内容发送给服务器:用户端收到服务器不存在具有相同的数据文件的信息后,用户端根据所匹配的真随机数发生器生成文件密钥随机数rf并进一步得到文件密钥kf,具体步骤如图4所示,文字描述如下:

根据匹配的量子密钥卡生成文件密钥随机数rf,rf结合特定的文件密钥种子指针函数frfp得到文件密钥种子指针rfp并从对称密钥池中提取出相应的文件密钥种子krf;然后结合文件密钥函数fkf生成文件密钥kf。

得到文件密钥kf后,用户端使用文件密钥加密数据文件得到密文kff,加密算法可为对称加密算法;

用户端使用公钥加密文件密钥随机数rf得到个人密钥。本专利明文公钥不公开,仅公开共公钥密钥随机数。由公钥密钥随机数rk得到公钥krk的过程如图5所示,文字描述如下:

使用自己的公钥密钥随机数rk结合特定的公钥指针函数frkp得到公钥指针rkp,然后从相应的非对称密钥池中的对应位置取出公钥krk。

用户端生成文件特征值,并使用文件特征值加密文件密钥随机数rf得到数据密钥;文件特征值的计算方法为预定义的算法,可以是但不限于hash计算、文件压缩或其他文件特征计算算法;

用户端将密文、算法id、个人密钥、公钥密钥随机数以及数据密钥发送至服务器。

步骤1.3.3:服务器保存相应信息:服务器将收到的密文、算法id、个人密钥、公钥密钥随机数以及数据密钥进行保存。

步骤1.4:若服务器需要去重:

步骤1.4.1:服务器向用户端发送数据密钥:服务器将该文件的数据密钥发送给用户端。

步骤1.4.2:用户端处理信息并将需要存储在服务器上的内容发送给服务器:用户端收到数据密钥后,根据数据文件生成文件特征值,并使用文件特征值解密数据密钥得到文件密钥随机数rf。

用户端根据公钥密钥随机数rk得到公钥kf,具体过程如图5所示。使用公钥公钥加密文件密钥随机数rf得到个人密钥,并将个人密钥发送给服务器,一并发送的还有公钥密钥随机数rk。

步骤1.4.3:服务器保存相应信息:服务器收到该个人密钥和公钥密钥随机数后进行保存。

非对称密钥池中的公钥还可以在用户端共享文件时用于数字签名的颁发。例如用户端a将一个文件作为可共享给用户端b的文件时,在生成a的个人密钥的同时,一并生成一个b的个人密钥,即通过b的公钥密钥随机数krb提取出b的公钥kbp,提取过程如图5所示,文字描述与上文一致。使用b的公钥加密文件密钥随机数rf可得到b的个人密钥。为了确保用户端b信任用户端a共享的密文,用户端a在自己上传的密文后添加一个数字签名。数字签名的颁发和验证过程如下:用户端a对原文进行单项散列函数运算得到一个消息摘要,再使用私钥对其进行数字签名算法加密得到一个数字签名。生成一个随机数r加密数字签名,并将加密签名和使用a的私钥加密的随机数与密文一并存储在服务器上。用户端b验证这个签名时,通过a的公钥密钥随机数kra提取出a的公钥kap,用户端b使用a的公钥对加密密钥进行解密得到随机数r,使用随机数r解密加密签名得到数字签名。再使用a的公钥对数字签名进行解密,并与对原文进行单项散列函数运算的结果进行对比,结果一致则信任该文件是用户端a上传的。

实施例2

图7为本发明实施例提供的一种基于非对称密钥池的抗量子计算云存储中文件读取方法的流程图,具体过程如下:

步骤2.1:用户端上传数据文件hash值和各个算法id:用户端将想要读取的文件的hash值以及各个算法id上传至服务器。

步骤2.2:服务器将相应信息发送至用户端:服务器收到文件hash值和算法id后,找到与该hash值和算法id对应的信息,将密文和个人密钥以及公钥密钥随机数rk发送至用户端。

步骤2.3:用户端得到文件密钥:用户端使用私钥解密个人密钥得到文件密钥随机数rf并进一步得到文件密钥kf,具体步骤如图4所示。

步骤2.4:用户端得到数据文件:用户端使用文件密钥解密从服务器得到的密文,得到数据文件,完成对服务器文件的读取。

量子密钥卡从智能卡技术上发展而来,是结合了量子物理学技术(搭载量子随机数发生器的情况下)、密码学技术、硬件安全隔离技术的身份认证和加解密产品。量子密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,量子密钥卡成为私钥和密钥池的安全载体。每一个量子密钥卡都有硬件pin码保护,pin码和硬件构成了用户使用量子密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的量子密钥卡和用户pin码,才可以登录系统。即使用户的pin码被泄露,只要用户持有的量子密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的量子密钥卡遗失,拾到者由于不知道用户pin码,也无法仿冒合法用户的身份。

本发明云存储全过程中,服务器端都无法接触到用户端各类密钥(公钥、私钥、文件密钥等)以及明文数据文件。不仅如此,服务器上存储的个人密钥与数据密钥为使用不同方法加密的随机数,该随机数结合特定的密钥选择算法可得到一个指针。该指针指向密钥池中某个特定的区域,在没有得到密钥池的情况下,即使破解了个人密钥或数据密钥也无法得到加密文件的文件密钥。本专利使用仅对量子密钥卡公开的公钥对文件密钥进行加密,且使用量子密钥卡存储公钥,量子密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。由于量子计算机无法得到用户公钥,于是也无法得到对应的私钥,因此该方案不容易被量子计算机破解。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1