一种文件分享时的快速加解密方法与流程

文档序号:16276815发布日期:2018-12-14 22:38阅读:352来源:国知局

本发明属于快速加解密领域,更具体的说,涉及一种文件分享时的快速加解密方法。

背景技术

首先解释一下后续用到的密码术语,以方便理解。

对称密码算法:加密和解密使用相同密钥的密码算法。对称密钥:用于对称密码算法的密钥。公钥密码算法:又称为非对称密码算法,加密和解密使用不同密钥的密码算法,其中一个密钥(公钥)可以公开,另一个密钥(私钥)必须保密,且由公钥求解私钥是计算不可行的。公钥:公钥密码算法中可以公开的密钥。私钥:公钥密码算法中只能由拥有者使用的不公开密钥。主密钥:处于对称密码系统层次化密钥结构中的顶层,用于下层密钥的产生或保护。密文:指加密后的数据。明文:指未加密的数据或解密还原后的数据。

在商业上,数据或文件的加密分享很常见。比如公司a把重要的合同或其他资料通过电子邮件的方式发给公司b,为了防止合同中的敏感信息被第三方窃取,公司a需要对合同进行加密,然后发送。公司b收到邮件后,需要先对合同进行解密处理。

为了实现上述的加解密过程,国际上通用的做法是使用公钥密码算法和对称密码算法共同完成。文件加密分享的步骤如下:

给每个被加密的文件生成一个随机的对称密钥,称为文件密钥,每个文件都有自己唯一的文件密钥;

公司a采用对称密码算法和文件密钥对文件进行加密;

公司a用公司b的公钥对文件密钥进行加密;

公司a把加密后的文件和加密后的文件密钥一起发给公司b;

公司b收到后,先用自己的私钥解密出文件密钥;

公司b用文件密钥,配合对称密码算法,解密出文件。

任何个人和实体都可以通过上述方法实现安全的密文分享。

理论上,公司a可以直接用公司b的公钥来加密整个文件,无需使用对称密码算法,然后公司b用自己的私钥直接解密出文件。但实际问题是,公钥密码算法的加解密速度非常慢,通常比对称密码算法慢几百倍至数千倍,甚至更多,不适合用来加密大量数据。因此国际上主流的加密文件分享方式,都是由公钥密码算法和对称密码算法共同实现。

上述方法尽管很流行也很实用,但是缺点也非常明显:当文件数非常多的时候,用公钥密码算法加解密文件密钥的速度依然很慢。



技术实现要素:

本发明主要解决的技术问题是提供一种文件分享时的快速加解密方法,当文件数非常多的时候,可以有效提高文件分享时的加解密速度。

为解决上述技术问题,本发明一种文件分享时的快速加解密方法包括如下步骤:

步骤一、文件分享者给每个被加密文件生成一个随机对称密钥,即文件密钥;

步骤二、文件分享者用对称密码算法和文件密钥对文件进行加密;

步骤三、文件分享者用对称密码算法和文件分享者与文件接收者之间的联合密钥加密所有文件密钥,然后文件分享者用文件分享者与文件接收者的公钥分别加密联合密钥,并使得加密后的联合密钥被文件接收者获得;

步骤四、文件分享者把加密后的文件和加密后的文件密钥一起发给文件接收者;

步骤五、文件接收者接收到加密后的文件和加密后的文件密钥后,获取被自己公钥加密后的联合密钥;

步骤六、文件接收者用自己的私钥解密出联合密钥,并配合对称密码算法,解密出所有文件的文件密钥;

步骤七、文件接收者用解密出的文件密钥解密出文件。

作为本技术方案的进一步优化,本发明一种文件分享时的快速加解密方法所述文件分享者用对称密码算法和文件分享者与文件接收者之间的联合密钥加密所有文件密钥,然后文件分享者用文件分享者与文件接收者的公钥分别加密联合密钥,并使得加密后的联合密钥被文件接收者获得,具体过程为:

s1、如果文件分享者第一次分享文件给文件接收者,则:

s11、文件分享者生成一个随机主密钥mk,即文件分享者与文件接收者之间的联合密钥,并配合使用对称密码算法来加密所有文件密钥;

s12、文件分享者用文件分享者和文件接收者的公钥分别加密联合密钥,并把结果存储在文件分享者和文件接收者可共同访问的位置;

s2、如果文件分享者不是第一次分享文件给文件接收者,则:

s21、文件分享者从s12中所述的位置上获取被自己公钥加密后的联合密钥,用私钥解密出联合密钥,然后用联合密钥加密文件分享者和文件接收者之间共享的所有文件的文件密钥。

作为本技术方案的进一步优化,本发明一种文件分享时的快速加解密方法所述文件分享者和文件接收者可共同访问的位置为网络服务器。

作为本技术方案的进一步优化,本发明一种文件分享时的快速加解密方法所述联合密钥为对称密钥。

一种文件分享时的快速加解密方法的有益效果为:

当文件数非常多的时候,可以有效提高文件分享时的加解密速度,并且随着文件个数的增加,优势越来越大,比传统方法快很多。

具体实施方式

本发明主要解决的技术问题是提供一种文件分享时的快速加解密方法,当文件数非常多的时候,可以有效提高文件分享时的加解密速度。

为解决上述技术问题,本发明一种文件分享时的快速加解密方法包括如下步骤:

步骤一、文件分享者给每个被加密文件生成一个随机对称密钥,即文件密钥;

步骤二、文件分享者用对称密码算法和文件密钥对文件进行加密;

步骤三、文件分享者用对称密码算法和文件分享者与文件接收者之间的联合密钥加密所有文件密钥,然后文件分享者用文件分享者与文件接收者的公钥分别加密联合密钥,并使得加密后的联合密钥被文件接收者获得;

步骤四、文件分享者把加密后的文件和加密后的文件密钥一起发给文件接收者;

步骤五、文件接收者接收到加密后的文件和加密后的文件密钥后,获取被自己公钥加密后的联合密钥;

步骤六、文件接收者用自己的私钥解密出联合密钥,并配合对称密码算法,解密出所有文件的文件密钥;

步骤七、文件接收者用解密出的文件密钥解密出文件。

所述文件分享者用对称密码算法和文件分享者与文件接收者之间的联合密钥加密所有文件密钥,然后文件分享者用文件分享者与文件接收者的公钥分别加密联合密钥,并使得加密后的联合密钥被文件接收者获得,具体过程为:

s1、如果文件分享者第一次分享文件给文件接收者,则:

s11、文件分享者生成一个随机主密钥mk,即文件分享者与文件接收者之间的联合密钥,并配合使用对称密码算法来加密所有文件密钥;

s12、文件分享者用文件分享者和文件接收者的公钥分别加密联合密钥,并把结果存储在文件分享者和文件接收者可共同访问的位置;

s2、如果文件分享者不是第一次分享文件给文件接收者,则:

s21、文件分享者从s12中所述的位置上获取被自己公钥加密后的联合密钥,用私钥解密出联合密钥,然后用联合密钥加密文件分享者和文件接收者之间共享的所有文件的文件密钥。

所述文件分享者和文件接收者可共同访问的位置为网络服务器。

所述联合密钥为对称密钥。

国际上通用的做法是使用公钥密码算法和对称密码算法共同完成。文件加密分享的步骤如下:

给每个被加密的文件生成一个随机的对称密钥,称为文件密钥。每个文件都有自己唯一的文件密钥;

a采用对称密码算法和文件密钥对文件进行加密;

a用b的公钥对文件密钥进行加密;

a把加密后的文件和加密后的文件密钥一起发给b;

b收到加密后的文件和加密后的文件密钥后,先用自己的私钥解密出文件密钥;

b用文件密钥,配合对称密码算法,解密出文件。

任何个人和实体都可以通过上述方法实现安全的密文分享。

以公钥密码算法rsa-4096为例,加解密256位的文件密钥,在cpu为intelcorei7-7700,ram是16gb的计算机上,循环1000次,加密和解密用的总时间分别是595ms和34779ms。单次加密和解密的时间分别是0.595ms和34.779ms。

如果要解密1000个文件,只解密文件密钥就要34秒,在实时加解密的软硬件系统中,会造成系统卡住34秒,导致用户体验非常差,这对商业软硬件来说,是无法接受的。

如果有10000个文件,在加密时,文件密钥的加密时间就会长达5.95秒,也会导致用户体验差。对于商业上的服务器而言,上面存储文件数可能会多达数亿甚至数十亿个,加解密时会造成严重的延时问题。

在本方法中,a和b之间所有共享文件的文件秘钥不再用b的公钥和私钥进行加解密,而是用二者的联合密钥加解密,使用的是更快的对称密码算法。联合密钥被a和b的公钥分别加密。

上述方法也可以用于多方间的文件共享,只需在s12中用多方的公钥加密联合密钥即可。

假设b要解密a分享给他的1000个文件,则只需用私钥进行1次解密操作,得到联合密钥,耗时34.779ms。然后用联合密钥解密1000次,得到每个文件的文件密钥。

对称密码算法以aes-256为例,加密和解密256位的文件密钥,在cpu为intelcorei7-7700,ram是16gb的计算机上,执行1000次,加密和解密所用的总时间分别是0.441ms和0.443ms。

使用上述快速方法,b解密出1000个文件密钥所需的总时间是:34.779+0.443=35.222ms,远小于传统方法的34799ms。

在cpu为intelcorei7-7700,ram是16gb的计算机上,假设使用的公钥密码算法是rsa-4096,对称密码算法是aes-256,加密和解密n个文件密钥。

用传统方法,加密时间tc1和解密时间tc2分别为:

tc1=0.595×n

tc2=34.779×n

tc1和tc2的单位是ms。

用本发明的快速方法,加密时间tk1和解密时间tk2分别为:

tk1和tk2的单位是ms。

当文件个数n增大时,本发明的快速方法和传统方法的加解密时间如表1所示。

表1本发明的快速方法和传统方法的加解密时间

从表1中可以看出,本发明加密和解密文件密钥所用的时间远小于传统方法,且随着文件个数的增加,优势越来越大,比传统方法快很多。因此,当文件数非常多的时候,可以有效提高文件分享时的加解密速度

当然,上述说明并非对本发明的限制,本发明也不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也属于本发明的保护范围。

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