数据加解密方法、装置、设备及存储介质与流程

文档序号:23944764发布日期:2021-02-16 18:47阅读:121来源:国知局
数据加解密方法、装置、设备及存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种数据加解密方法、装置、设备及存储介质。



背景技术:

随着移动通信和云计算技术的快速发展,移动云计算通过移动网络能够向人们提供自由、方便、按需使用存储和计算的云服务模式。移动云服务除了具备传统云计算的便捷云端数据存储、大量的开放软件服务、无所不在的强大云计算支撑、终端配置要求低等特点,融合了移动通信设备和互联网,将云服务从云端推送到移动终端。

然而,存储在云端的海量数据往往包含个人隐私信息,如电子病历、隐私邮件、个人机密信息、金融战略文件等,这些隐私信息的泄露势必对个人或企业造成重大损失。而目前采用的保密处理是通过使用多种加密算法来对待传输的数据进行加密,但是其加密大部分是针对于数据量小的文件来加密,而对于数据量较大的,则其计算还需要结合其他的算法实现,这样的加密方式不利于在轻量级设备上进行推广,其兼容性较差。



技术实现要素:

本发明的主要目的在于提供一种数据加解密方法、装置、设备及存储介质,用于解决现有技术中数据传输过程加解密方式过于复杂,不兼容轻量级设备实现的技术问题。

本发明第一方面提供了一种数据加解密方法,所述数据加解密方法包括:

获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于所述数据加密安全参数,确定系统公钥和主密钥;

根据所述用户身份标识信息,通过预置密钥修改算法对所述主密钥进行修改,得到用户私钥和转化密钥;

根据所述系统公钥,利用预置离线加密算法,对所述数据明文进行离线加密,生成离线密文;

基于所述用户身份标识信息和所述转化密钥,利用预置密文转换算法对所述离线密文进行转换,生成转化密文,并存储于存储单元中;

在接收到数据读取指令时,从所述存储单元中读取所述转化密文,并利用所述用户私钥进行解密,得到所述数据明文。

可选的,在本发明的第一方面的第一种实现方式中,所述基于所述数据加密安全参数,确定系统公钥和主密钥包括:

对所述数据加密安全参数进行预处理,生成一个循环群,其中所述循环群包括至少一个素数;

通过随机算法,从所述循环群中选取一个素数作为第一随机数;

根据所述第一随机数,利用预置初始化算法进行系统密钥的生成计算,生成主密钥和系统公钥。

可选的,在本发明的第一方面的第二种实现方式中,所述根据所述用户身份标识信息,通过预置密钥修改算法对所述主密钥进行修改,得到用户私钥和转化密钥包括:

利用所述随机算法,从所述循环群中选取一个素数作为第二随机数;

将所述用户身份标识信息、所述第二随机数和所述主密钥输入至预置密钥修改算法中进行密钥转化处理,生成用户私钥和转化密钥。

可选的,在本发明第一方面的第三种实现方式中,所述根据所述系统公钥,利用预置离线加密算法,对所述数据明文进行离线加密,生成离线密文包括:

利用所述随机算法,从所述循环群中选取一个素数作为第三随机数;

根据所述第三随机数,利用预置离线加密算法对所述数据明文进行加密,生成离线密文;

提取所述数据明文中的关键词信息,并基于所述关键词信息创建关键词索引;

利用所述用户私钥对所述关键词索引进行加密,得到加密索引,并创建所述加密索引与所述离线密文之间的对应关系。

可选的,在本发明第一方面的第四种实现方式中,所述提取所述数据明文中的关键词信息,并基于所述关键词信息创建关键词索引包括:

对所述数据明文进行关键词提取,并对提取到的关键词进行筛选处理,得到至少一个关键词信息;

利用通配符处理规则,对所述至少一个关键词信息进行扩展处理,生成模糊集,其中所述扩展处理为基于所述通配符处理规则中的编辑距离计算与所述关键词信息相似的相似特征;

基于所述模糊集创建关键词索引。

可选的,在本发明第一方面的第五种实现方式中,所述基于所述用户身份标识信息和所述转化密钥,利用预置密文转换算法对所述离线密文进行转换,生成转化密文包括:

根据所述加密索引与所述离线密文之间的对应关系从离线密文表中查找到与所述加密索引相对应的离线密文,其中所述离线密文表中包括多个不同的离线密文,一个离线密文对应一个加密索引;

基于所述用户身份标识信息,从密钥表中查找与所述用户身份标识信息相对应的转化密钥,其中,所述密钥表中包括多个不同用户的转化密钥;

根据所述转化密钥,调用密文转换算法对所述离线密文进行转换,生成转化密文。

可选的,在本发明第一方面的第六种实现方式中,所述从所述存储单元中读取所述转化密文,并利用所述用户私钥进行解密,得到所述数据明文包括:

读取述存储单元中的所述转化密文;

提取所述转化密文中的用户身份标识信息,并验证所述用户身份标识信息与所述转化密文中包含的访问策略是否相符;

若相符,则根据所述用户私钥,调用预置解密算法对所述转化密文进行解密,生成解密参数;

对所述解密参数和所述转化密文进行幂乘运算,得到所述数据明文。

本发明第二方面提出一种数据加解密装置,所述数据加解密装置包括:

预处理模块,用于获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于所述数据加密安全参数,确定系统公钥和主密钥;

密钥生成模块,用于根据所述用户身份标识信息,通过预置密钥修改算法对所述主密钥进行修改,得到用户私钥和转化密钥;

离线密文生成模块,用于根据所述系统公钥,利用预置离线加密算法,对所述数据明文进行离线加密,生成离线密文;

转化密文生成模块,用于基于所述用户身份标识信息和所述转化密钥,利用预置密文转换算法对所述离线密文进行转换,生成转化密文,并存储于存储单元中;

解密模块,用于在接收到数据读取指令时,从所述存储单元中读取所述转化密文,并利用所述用户私钥进行解密,得到所述数据明文。

可选的,在本发明第二方面的第一种实现方式中,所述预处理模块具体用于:

对所述数据加密安全参数进行预处理,生成一个循环群,其中所述循环群包括至少一个素数;

通过随机算法,从所述循环群中选取一个素数作为第一随机数;

根据所述第一随机数,利用预置初始化算法进行系统密钥的生成计算,生成主密钥和系统公钥。

可选的,在本发明第二方面的第二种实现方式中,所述密钥生成模块具体用于:

利用所述随机算法,从所述循环群中选取一个素数作为第二随机数;

将所述用户身份标识信息、所述第二随机数和所述主密钥输入至预置密钥修改算法中进行密钥转化处理,生成用户私钥和转化密钥。

可选的,在本发明第二方面的第三种实现方式中,所述离线密文生成模块包括:

选取单元,用于利用所述随机算法,从所述循环群中选取一个素数作为第三随机数;

离线加密单元,用于根据所述第三随机数,利用预置离线加密算法对所述数据明文进行加密,生成离线密文;

关键词索引创建单元,用于提取所述数据明文中的关键词信息,并基于所述关键词信息创建关键词索引;

索引加密单元,用于利用所述用户私钥对所述关键词索引进行加密,得到加密索引,并创建所述加密索引与所述离线密文之间的对应关系。

可选的,在本发明第二方面的第四种实现方式中,所述关键词索引创建单元具体用于:

对所述数据明文进行关键词提取,并对提取到的关键词进行筛选处理,得到至少一个关键词信息;

利用通配符处理规则,对所述至少一个关键词信息进行扩展处理,生成模糊集,其中所述扩展处理为基于所述通配符处理规则中的编辑距离计算与所述关键词信息相似的相似特征;

基于所述模糊集创建关键词索引。

可选的,在本发明第二方面的第五种实现方式中,所述转化密文生成模块具体用于:

根据所述加密索引与所述离线密文之间的对应关系从离线密文表中查找到与所述加密索引相对应的离线密文,其中所述离线密文表中包括多个不同的离线密文,一个离线密文对应一个加密索引;

基于所述用户身份标识信息,从密钥表中查找与所述用户身份标识信息相对应的转化密钥,其中,所述密钥表中包括多个不同用户的转化密钥;

根据所述转化密钥,调用密文转换算法对所述离线密文进行转换,生成转化密文。

可选的,在本发明第二方面的第六种实现方式中,所述解密模块具体用于:

读取述存储单元中的所述转化密文;

提取所述转化密文中的用户身份标识信息,并验证所述用户身份标识信息与所述转化密文中包含的访问策略是否相符;

若相符,则根据所述用户私钥,调用预置解密算法对所述转化密文进行解密,生成解密参数;

对所述解密参数和所述转化密文进行幂乘运算,得到所述数据明文。

本发明第三方面提供了一种数据加解密设备,其特征在于,所述数据加解密设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据加解密设备执行如权利要求1-7中任一项所述的数据加解密方法的步骤。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当其在计算机上运行时,使得计算机执行上述的数据加解密方法的步骤。。

本发明提供的技术方案中,通过获取待传输的数据明文、用户身份标识信息和数据加密安全参数,确定系统公钥和主密钥;根据用户身份标识信息,通过预置密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥;根据系统公钥,对数据明文进行离线加密,生成离线密文;基于用户身份标识信息和转化密钥,对离线密文进行转换,生成转化密文,并存储于存储单元中;在接收到数据读取指令时,从存储单元中读取转化密文,并利用用户私钥进行解密,得到数据明文。本发明提出的技术方案减少了移动终端运行加密和解密的开销,使得该技术方案适合于轻量级移动设备。

附图说明

图1为本发明实施例中数据加解密方法的第一个实施例示意图;

图2为本发明实施例中数据加解密方法的第二个实施例示意图;

图3为本发明实施例中数据加解密方法的第三个实施例示意图;

图4为本发明实施例中数据加解密方法的第四个实施例示意图;

图5为本发明实施例中数据加解密装置的一个实施例示意图;

图6为本发明实施例中数据加解密装置的另一个实施例示意图;

图7为本发明实施例中数据加解密设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种数据加解密方法、装置、设备及存储介质,通过获取待传输的数据明文、用户身份标识信息和数据加密安全参数,确定系统公钥和主密钥;根据用户身份标识信息,通过预置密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥;根据系统公钥,对数据明文进行离线加密,生成离线密文;基于用户身份标识信息和转化密钥,对离线密文进行转换,生成转化密文,并存储于存储单元中;在接收到数据读取指令时,从存储单元中读取转化密文,并利用用户私钥进行解密,得到数据明文。本发明实施例提出的技术方案减少了移动终端运行加密和解密的开销,使得该技术方案适合于轻量级移动设备。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体内容进行描述,请参阅图1,本发明实施例中数据加解密方法的第一个实施例包括:

101,获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于数据加密安全参数,确定系统公钥和主密钥;

在移动云计算环境中,可信权威中心首先执行初始化算法,生成主密钥Msk和系统公钥Pk。

初始化算法主要是密钥管理机构KMS将数据加密安全参数k作为输入,输出阶为素数q的循环群G,素数q的二进制长度为k,g为G的生成元,该循环群G还包含一个哈希函数f,并且G中的DDHP(判定性Diffie-Hellmen假设)是困难的;

从Zq*中选取一个随机数x,计算出h=gx;将PK=(G,g,q,h,f)作为公钥输出,将MSK=x作为主密钥。

102,根据用户身份标识信息,通过预置密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥;

用户向权威中心提交自己的身份标识信息,权威中心执行密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥,给用户颁发相应的用户私钥。

密钥修改算法主要是,对于用户i,密钥管理机构KMS从Zq*中随机选择一个数xi1,然后计算xi2=x-xi1。

密钥管理机构KMS将用户私钥Kui=(xi1)发送给用户i,将转化密钥Ksi=(i,xi2)发送给服务器。服务器接收到Ksi后,就更新存储在它上面的用户-密钥映射关系Ks=Ks∪(i,xi2)。

103,根据系统公钥,利用预置离线加密算法,对数据明文进行离线加密,生成离线密文;

移动用户在其可信环境中,利用高性能设备执行离线加密算法,计算离线密文,并将其保存在移动设备中。利用离线加密算法系统公钥Pk作为输入,然后输出离线密文CToff。

离线密文生成的过程主要是:给定一个文件File={<fid1,file1>,<fid2,file2>…<fidn,filen>},关键词wi以及编辑距离d1;根据基于通配符的方法求出关键词wi的模糊集Swi,d1;输出索引Index={<Swi,d1,fidwi>},wi∈file1∪file2∪…∪filen,其中fidwi是包含关键词wi的所有文件的文件号;用户执行算法加密数据,有两种数据需要进行加密,一个是文件filei,一个是索引Index。具体过程如下:

加密文件:利用ElGamal代理加密算法离线加密文件为C(filei)=(gx,grxi1filei)。其中r是从Zq*中随机选择的一个随机数,filei∈File。

加密索引:xi1是用户i的私钥,它可以生成另一个密钥KI用来加密索引。通过哈希函数f产生密钥KI=f(xi1);加密索引文件Index:Index={〈{Tw(KI)}w∈Swi,d1,Enc(KI,fidw)〉},其中T可以通过RSA实现,Enc可以通过AES或者DES实现;将加密好的文件与索引传给服务器。

其中RSA是指RSA算法,RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。RSA算法执行过程通常是先生成一对RSA密钥,其中RSA密钥之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。

Enc是对称加密算法,在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

AES是指密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法。AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:矩阵中的每一个字节都与该次回合金钥(round key)做XOR运算;每个子密钥由密钥生成方案产生;通过一个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节;将矩阵中的每个横列进行循环式移位;使用线性转换来混合每内联的四个字节。

DES指数据加密标准,是一种使用密钥加密的块算法。DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位(实际用到了56位,第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),其算法主要分为两步:初始置换和逆置换。

104,基于用户身份标识信息和转化密钥,利用预置密文转换算法对离线密文进行转换,生成转化密文,并存储于存储单元中;

利用在线加密算法输入用户身份ID和离线密文CToff,输出转化密文CT。服务器接收到加密的离线密文与索引后,会执行算法对密文进行转化。具体过程如下:服务器先找到与用户i对应的服务器密钥xi2,计算(gr)xi2*grxi1filei=grxfilei,对离线密文进行再次加密,最终生成密文C*(filei)=(gx,grxfilei)filei∈File。

然后用户j在服务器上发送文件查询信息,服务器接收到查询信息后先找到存储在其上的用户j对应的服务器密钥Ksj=xj2,利用xj2对C*(filei)进行密文的转化,计算grxfilei*(gr)-xj2=g(x-xj2)rfilei=grxj1filei,因此密文变成转化密文C’(filei)=(gr,grxj1filei)。服务器将C’(filei)发给用户j。

105,在接收到数据读取指令时,从存储单元中读取转化密文,并利用用户私钥进行解密,得到数据明文。

用户j收到服务器发来的密文C’(filei)后,利用自己手中的密钥xj1去计算grxj1filei*(gr)-xj1=filei,进而解密该加密文件,得到最终明文文件。

该实施例通过获取待传输的数据明文、用户身份标识信息和数据加密安全参数,确定系统公钥和主密钥;根据用户身份标识信息,通过预置密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥;根据系统公钥,对数据明文进行离线加密,生成离线密文;基于用户身份标识信息和转化密钥,对离线密文进行转换,生成转化密文,并存储于存储单元中;在接收到数据读取指令时,从存储单元中读取转化密文,并利用用户私钥进行解密,得到数据明文,这样就减少了移动终端运行加密和解密的开销。

请参阅图2,本发明实施例中数据加解密方法的第二个实施例包括:

201,获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于数据加密安全参数,确定系统公钥和主密钥;

在移动云计算环境中,可信权威中心首先根据待传输的数据明文、用户身份标识信息和数据加密安全参数执行初始化算法,生成主密钥Msk和系统公钥Pk。

202,根据用户身份标识信息,通过预置密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥;

用户向权威中心提交自己的身份标识信息,权威中心执行密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥,并给用户颁发相应的用户私钥。

203,利用随机算法,从循环群中选取一个素数作为第三随机数;

利用随机算法,从循环群中选取一个素数作为第三随机数就是KMS从Zq*中随机选择一个素数作为第三随机数。

204,根据第三随机数,利用预置离线加密算法对数据明文进行加密,生成离线密文;

利用离线加密算法加密文件的过程为C(filei)=(gx,grxi1filei)。其中r是从Zq*中随机选择的一个随机数,即第三随机数,filei∈File。

205,对数据明文进行关键词提取,并对提取到的关键词进行筛选处理,得到至少一个关键词信息;

获取到数据明文后,对数据明文进行关键词的提取,并将提取到的所有关键词再不断进行筛选,最后得到至少一个关键词信息。

206,利用通配符处理规则,对至少一个关键词信息进行扩展处理,生成模糊集,其中扩展处理为基于通配符处理规则中的编辑距离计算与关键词信息相似的相似特征;

确定文件File={<fid1,file1>,<fid2,file2>…<fidn,filen>},经过关键词提取到关键词wi以及调用基于通配符处理规则中的编辑距离d1;根据基于通配符的方法求出关键词wi的模糊集Swi,d1。

207,基于模糊集创建关键词索引;

基于模糊集Swi,输出关键词索引Index={<Swi,d1,fidwi>},wi∈file1∪file2∪…∪filen,其中fidwi是包含关键词wi的所有文件的文件号。

208,利用用户私钥对关键词索引进行加密,得到加密索引,并创建加密索引与离线密文之间的对应关系。

因为xi1是用户i的用户私钥,它可以生成另一个密钥KI用来加密索引。其中通过哈希函数f产生密钥KI=f(xi1)。执行加密索引文件Index的算法为Index={〈{Tw(KI)}w∈Swi,d1,Enc(KI,fidw)〉},其中T可以通过RSA实现,Enc可以通过AES或者DES实现。

对关键词索引进行加密之后,根据关键词索引和数据明文的对应关系建立加密索引与离线密文之间的对应关系。

209,基于用户身份标识信息和转化密钥,利用预置密文转换算法对离线密文进行转换,生成转化密文,并存储于存储单元中;

利用在线加密算法输入用户身份ID和离线密文CToff,输出转化密文CT。服务器接收到加密的离线密文与索引后,会执行算法对密文进行转化。具体过程如下:服务器先找到与用户i对应的服务器密钥xi2,计算(gr)xi2*grxi1filei=grxfilei,对离线密文进行再次加密,最终生成密文C*(filei)=(gx,grxfilei)filei∈File。

然后用户j在服务器上发送文件查询信息,服务器接收到查询信息后先找到存储在其上的用户j对应的转化密钥Ksj=xj2,利用xj2对C*(filei)进行密文的转化,计算grxfilei*(gr)-xj2=g(x-xj2)rfilei=grxj1filei,因此密文变成转化密文C’(filei)=(gr,grxj1filei),并将该转化密文存储在存储单元中,最后服务器会将C’(filei)发给用户j。

210,在接收到数据读取指令时,从存储单元中读取转化密文,并利用用户私钥进行解密,得到数据明文。

用户j收到服务器发来的密文C’(filei)后,利用自己手中的密钥xj1去计算grxj1filei*(gr)-xj1=filei,进而解密该加密文件,得到最终明文文件。

在本实施例中,通过对数据明文构建一个关键词索引,并对数据明文和关键词索引进行加密,在用户查找文件时,服务器可以根据用户给出的查询信息中包含的加密索引查找到相关的加密文件,这大大方便了用户对于文件的读取和查找,提高了查找文件的效率。

请参阅图3,本发明实施例中数据加解密方法的第三个实施例包括:

301,获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于数据加密安全参数,确定系统公钥和主密钥;

在移动云计算环境中,可信权威中心首先根据待传输的数据明文、用户身份标识信息和数据加密安全参数执行初始化算法,生成主密钥Msk和系统公钥Pk。

302,根据用户身份标识信息,通过预置密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥;

用户向权威中心提交自己的身份标识信息,权威中心执行密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥,并给用户颁发相应的用户私钥。

303,根据系统公钥,利用预置离线加密算法,对数据明文进行离线加密,生成离线密文;

利用离线加密算法加密文件的过程为C(filei)=(gx,grxi1filei)。其中r是从Zq*中随机选择的一个随机数,filei∈File。

304,根据加密索引与离线密文之间的对应关系从离线密文表中查找到与加密索引相对应的离线密文,其中离线密文表中包括多个不同的离线密文,一个离线密文对应一个加密索引;

获取到数据明文后,会提取数据明文中的关键词信息,并基于关键词信息创建关键词索引,利用用户私钥对关键词索引进行加密,得到加密索引,并创建加密索引与离线密文之间的对应关系。

在用户给服务器发送文件查询信息就是给服务器发送加密索引,服务器会根据加密索引与离线密文之间的对应关系,利用加密索引从离线密文表中查找到离线密文。

具体的,用户j想要通过加密索引去搜索相关文件,首先通过算法产生一个陷门。具体过程为:根据加密索引中的关键词w',调用通配符规则中的编辑距离d2,利用基于通配符方法构造一个模糊集Fuzzy=S w',d2={w1,w2,…wn}。并利用密钥KI生成一个陷门FuzzyEnc={Twi(KI)}wi∈Fuzzy;用户将FuzzyEnc发送给服务器。服务器接收到用户发送的陷门后,就在其自身上进行模糊检索。

模糊检索的具体过程为:服务器接收到FuzzyEnc后,就会用FuzzyEnc与关键词索引进行比较,返回所有满足条件的密文Enc(KI,fidw),服务器对Enc(KI,fidw)进行解密后得到fidw,也就得到相关的离线密文C*(filei)。

305,基于用户身份标识信息,从密钥表中查找与用户身份标识信息相对应的转化密钥,其中,密钥表中包括多个不同用户的转化密钥;

转化密钥是利用用户身份信息生成的,所以转化密钥会包含有用户身份表示信息,一个转化密钥对应着一个用户的身份信息。因此可以根据用户身份标识信息,从存储有转化密钥的密钥表中查找到与身份标识信息相对应的转化密钥。

306,根据转化密钥,调用密文转换算法对离线密文进行转换,生成转化密文;

服务器接收到用户j的查询信息后先找到存储在其上的用户j对应的转化密钥Ksj=xj2,利用xj2对C*(filei)进行密文的转化,计算grxfilei*(gr)-xj2=g(x-xj2)rfilei=grxj1filei,因此密文变成转化密文C’(filei)=(gr,grxj1filei)。

307,在接收到数据读取指令时,从存储单元中读取转化密文,并利用用户私钥进行解密,得到数据明文。

用户j收到服务器发来的密文C’(filei)后,利用自己手中的密钥xj1去计算grxj1filei*(gr)-xj1=filei,进而解密该加密文件,得到最终明文文件。

在本实施例中,通过密文转化算法对离线密文进行转换,生成了一个转化密文存储在服务器中,这使得服务器也无法直接对该密文进行解密读取到数据明文,确保了文件可以被保护,不会被服务器所解密和公开,保证了用户的隐私安全。

请参阅图4,本发明实施例中多人佛乐生成方法的第四个实施例包括:401,获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于数据加密安全参数,确定系统公钥和主密钥;

在移动云计算环境中,可信权威中心首先根据待传输的数据明文、用户身份标识信息和数据加密安全参数执行初始化算法,生成主密钥Msk和系统公钥Pk。

402,根据用户身份标识信息,通过预置密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥;

用户向权威中心提交自己的身份标识信息,权威中心执行密钥修改算法对主密钥进行修改,得到用户私钥和转化密钥,并给用户颁发相应的用户私钥。

403,根据系统公钥,利用预置离线加密算法,对数据明文进行离线加密,生成离线密文;

利用离线加密算法加密文件的过程为C(filei)=(gx,grxi1filei)。其中r是从Zq*中随机选择的一个随机数。

404,基于用户身份标识信息和转化密钥,利用预置密文转换算法对离线密文进行转换,生成转化密文,并存储于存储单元中;

利用在线加密算法输入用户身份ID和离线密文CToff,输出转化密文CT。服务器接收到加密的离线密文与索引后,会执行算法对密文进行转化。具体过程如下:服务器先找到与用户i对应的服务器密钥xi2,计算(gr)xi2*grxi1filei=grxfilei,对离线密文进行再次加密,最终生成密文C*(filei)=(gx,grxfilei)filei∈File。

然后用户j在服务器上发送文件查询信息,服务器接收到查询信息后先找到存储在其上的用户j对应的转化密钥Ksj=xj2,利用xj2对C*(filei)进行密文的转化,计算grxfilei*(gr)-xj2=g(x-xj2)rfilei=grxj1filei,因此密文变成转化密文C’(filei)=(gr,grxj1filei),并将该转化密文存储在存储单元中。

405,读取述存储单元中的转化密文;

服务器直接读取存储在存储单元中的转化密文,并将该转化密文发送给查询用户。

406,提取转化密文中的用户身份标识信息,并验证用户身份标识信息与转化密文中包含的访问策略是否相符;

转化密文是利用转化密钥生成的,所以转化密文中也包含有用户身份标识信息,并且由于文件是可以多人共享的,所以转化密文中的用户身份标识信息不止一个,多个用户身份标识信息构成了转化密文的访问策略,访问策略是可以根据查询用户的用户身份标识信息与转化密文的用户身份标识信息进行比对。提取转化密文中的用户身份标识信息,并与查询用户的用户身份标识信息进行比对,验证用户身份标识信息与转化密文中包含的访问策略是否相符。

407,若相符,则根据用户私钥,调用预置解密算法对转化密文进行解密,生成解密参数;

如果用户身份标识信息与转化密文中包含的访问策略相符,就说明该查询用户可以读取该转化密文。利用解密算法,输入私钥SKID和转化密文CT',对转化密文进行解密,在此过程中会输出一个参数T’,并进行计算得到解密参数T0=(T')SKID-1

408,对解密参数和转化密文进行幂乘运算,得到数据明文。

利用解密参数和转化密文,通过一个幂乘计算grxj1filei*(gr)-xj1=filei,然后就可以得到数据明文。

在本实施例中,在利用用户私钥进行解密的过程中,通过提取转化密钥中的用户身份标识信息,并验证用户身份标识信息和转化密文的访问策略是否相符,保证了服务器上存储的文件的隐私性,确保不会被不明用户读取到文件,再利用一个解密参数,通过一个幂乘计算就可以获得明文,大大减少了解密开销,方便对数据明文进行提取。

上面对本发明实施例中的数据加解密方法进行了描述,下面对本发明实施例中的数据加解密装置进行描述,请参照图5,本发明实施例中的数据加解密装置的一个实施例包括:

预处理模块501,用于获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于所述数据加密安全参数,确定系统公钥和主密钥;

密钥生成模块502,用于根据所述用户身份标识信息,通过预置密钥修改算法对所述主密钥进行修改,得到用户私钥和转化密钥;

离线密文生成模块503,用于根据所述系统公钥,利用预置离线加密算法,对所述数据明文进行离线加密,生成离线密文;

转化密文生成模块504,用于基于所述用户身份标识信息和所述转化密钥,利用预置密文转换算法对所述离线密文进行转换,生成转化密文,并存储于存储单元中;

解密模块505,用于在接收到数据读取指令时,从所述存储单元中读取所述转化密文,并利用所述用户私钥进行解密,得到所述数据明文。

在本发明实施例中,所述数据加解密装置运行了上述的数据加解密方法,通过对数据明文进行加密生成离线密文,并经过转化密文生成模块生成转化密文,再经过解密模块对转化密文进行解密,从而获得明文,该装置保护了用户数据的隐私性,确保不会被服务器或不明用户读取到数据明文,同时也减少了加解密的开销。

请参阅图6,本发明实施例中的数据加解密装置的另一个实施例包括:

预处理模块501,用于获取待传输的数据明文、用户身份标识信息和数据加密安全参数,并基于所述数据加密安全参数,确定系统公钥和主密钥;

密钥生成模块502,用于根据所述用户身份标识信息,通过预置密钥修改算法对所述主密钥进行修改,得到用户私钥和转化密钥;

离线密文生成模块503,用于根据所述系统公钥,利用预置离线加密算法,对所述数据明文进行离线加密,生成离线密文;

转化密文生成模块504,用于基于所述用户身份标识信息和所述转化密钥,利用预置密文转换算法对所述离线密文进行转换,生成转化密文,并存储于存储单元中;

解密模块505,用于在接收到数据读取指令时,从所述存储单元中读取所述转化密文,并利用所述用户私钥进行解密,得到所述数据明文。

在本实施例中,所述预处理模块501具体用于:

对所述数据加密安全参数进行预处理,生成一个循环群,其中所述循环群包括至少一个素数;

通过随机算法,从所述循环群中选取一个素数作为第一随机数;

根据所述第一随机数,利用预置初始化算法进行系统密钥的生成计算,生成主密钥和系统公钥。

在本实施例中,所述密钥生成模块502具体用于:

利用所述随机算法,从所述循环群中选取一个素数作为第二随机数;

将所述用户身份标识信息、所述第二随机数和所述主密钥输入至预置密钥修改算法中进行密钥转化处理,生成用户私钥和转化密钥。

在本实施例中,所述离线密文生成模块503包括:

选取单元5031,用于利用所述随机算法,从所述循环群中选取一个素数作为第三随机数;

离线加密单元5032,用于根据所述第三随机数,利用预置离线加密算法对所述数据明文进行加密,生成离线密文;

关键词索引创建单元5033,用于提取所述数据明文中的关键词信息,并基于所述关键词信息创建关键词索引;

索引加密单元5034,用于利用所述用户私钥对所述关键词索引进行加密,得到加密索引,并创建所述加密索引与所述离线密文之间的对应关系。

在本实施例中,所述关键词索引创建单元5033具体用于:

对所述数据明文进行关键词提取,并对提取到的关键词进行筛选处理,得到至少一个关键词信息;

利用通配符处理规则,对所述至少一个关键词信息进行扩展处理,生成模糊集,其中所述扩展处理为基于所述通配符处理规则中的编辑距离计算与所述关键词信息相似的相似特征;

基于所述模糊集创建关键词索引。

在本实施例中,所述转化密文生成模块504具体用于:

根据所述加密索引与所述离线密文之间的对应关系从离线密文表中查找到与所述加密索引相对应的离线密文,其中所述离线密文表中包括多个不同的离线密文,一个离线密文对应一个加密索引;

基于所述用户身份标识信息,从密钥表中查找与所述用户身份标识信息相对应的转化密钥,其中,所述密钥表中包括多个不同用户的转化密钥;

根据所述转化密钥,调用密文转换算法对所述离线密文进行转换,生成转化密文。

在本实施例中,所述解密模块505具体用于:

读取述存储单元中的所述转化密文;

提取所述转化密文中的用户身份标识信息,并验证所述用户身份标识信息与所述转化密文中包含的访问策略是否相符;

若相符,则根据所述用户私钥,调用预置解密算法对所述转化密文进行解密,生成解密参数;

对所述解密参数和所述转化密文进行幂乘运算,得到所述数据明文。

在本实施例中,通过上述装置的实施,在执行加解密的过程中,仅需要执行少量运算就可以生成密文,而且用户也只需要经过一个幂乘计算就可以获得明文,大大减少了加解密过程产生的开销,同时也很好地保护了用户的隐私数据。

上面图5和图6从模块化功能实体的角度对本发明实施例中的数据加解密装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据加解密设备进行详细描述。

图7是本发明实施例提供的一种数据加解密设备的结构示意图,该数据加解密设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据加解密设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在数据加解密设备700上执行存储介质730中的一系列指令操作。

数据加解密设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图7示出的数据加解密设备结构并不构成对数据加解密设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述数据加解密方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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