验证加密文件安全性的方法及装置与流程

文档序号:12133530阅读:241来源:国知局
验证加密文件安全性的方法及装置与流程

本发明涉及安全技术领域,特别涉及一种验证加密文件安全性的方法及装置。



背景技术:

随着电子信息技术的高速发展,为了保证文件在网络传输中的安全性,通常在传输文件之前利用加密算法对文件进行加密。

加密文件通常都存在一个保密时效,根据保密时效确定加密参数,并根据加密参数对文件进行加密。

然而,随着量子计算机的发展,利用量子计算机解密加密文件的速度提高,使得原本安全可靠的加密文件也能够被快速破译,加密文件的安全性无法保证。



技术实现要素:

为了解决随着计算机解密加密文件的速度的提高,加密文件的安全性得不到保证的问题,本发明提供一种验证加密文件安全性的方法及装置。所述技术方案如下:

根据本发明实施例的第一方面,提供一种验证加密文件安全性的方法,所述方法包括:

获取加密文件,所述加密文件通过非对称加密算法加密;

获取用于加密所述加密文件的公开的密钥对(e,N);

针对所述密钥对(e,N)中的参数N,检测i2modN的值是否为0或1,i为大于等于2的整数;

若所述i2modN的值既不为0也不为1且则令i=i+1,重复执行所述检测所述i2modN的值是否为0或1的步骤;

将检测所述i2modN的值是否为0或1所耗费的时间作为所述解密时间,检测所述解密时间是否小于预定时间;

若所述解密时间小于所述预定时间,则重新确定所述密钥对(e,N)。

可选的,所述检测i2modN的值是否为0或1,包括:

从i=2开始,检测所述i2modN的值是否为0或1;

或,

从开始,检测所述i2modN的值是否为0或1;

其中,利用如下公式检测(i+1)2modN的值是否为0或1:

(i+1)2modN=i2modN+2imodN+1modN。

可选的,该方法还包括:

当所述i2modN的值为0或1时,将令所述i2modN的值为0或1的i记为m;

确定出m-1和所述参数N之间的第一最小公倍数,以及m+1和所述N之间的第二最小公倍数;

利用所述第一最小公倍数和所述第二最小公倍数表示所述参数N。

根据本发明实施例的第二方面,提供一种验证加密文件安全性的装置,所述装置包括:

文件获取模块,用于获取加密文件,所述加密文件通过非对称加密算法加密;

密钥获取模块,用于获取用于加密所述加密文件的公开的密钥对(e,N);

第一检测模块,用于针对所述密钥对(e,N)中的参数N,检测i2modN的值是否为0或1,i为大于等于2的整数;

第一检测模块,还用于若所述i2modN的值既不为0也不为1且则令i=i+1,重复执行所述检测所述i2modN的值是否为0或1的步骤;

第二检测模块,用于将检测所述i2modN的值是否为0或1所耗费的时间作为所述解密时间,检测所述解密时间是否小于预定时间;

确定模块,用于若所述解密时间小于所述预定时间,则重新确定所述密钥对(e,N)。

可选的,所述第一检测模块,具体用于:

从i=2开始,检测所述i2modN的值是否为0或1;

或,

从开始,检测所述i2modN的值是否为0或1;

其中,利用如下公式检测(i+1)2modN的值是否为0或1:

(i+1)2modN=i2modN+2imodN+1modN。

可选的,该所述装置还包括:

标记模块,用于当所述i2modN的值为0或1时,将令所述i2modN的值为0或1的i记为m;

最小公倍数确定模块,用于确定出m-1和所述参数N之间的第一最小公倍数,以及m+1和所述N之间的第二最小公倍数;

参数表示模块,用于利用所述第一最小公倍数和所述第二最小公倍数表示所述参数N。

本发明的实施例提供的技术方案可以包括以下有益效果:

通过获取加密文件以及用于加密加密文件的密钥对(e,N),针对密钥对(e,N)中的参数N,确定i2modN的值是否为0或1,并将确定i2modN的值是否为0或1的时间确定为解密时间,在解密时间小于预定时间时,确定加密文件的安全性不高,重新确定密钥对(e,N);解决了随着计算机解密加密文件的速度的提高,加密文件的安全性得不到保证的问题;达到了能够预先验证加密文件的安全性,在加密文件的安全性不高的情况下,重新加密文件来提高加密文件的安全性的效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种验证加密文件安全性的方法的流程图;

图2是根据另一示例性实施例示出的一种验证加密文件安全性的方法的流程图;

图3是根据一示例性实施例示出的一种验证加密文件安全性的装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种验证加密文件安全性的方法的流程图。本实施例以该方法应用于诸如平板电脑、个人电脑之类的电子设备中进行举例说明。该方法包括可以包括以下几个步骤:

步骤101,获取加密文件,加密文件通过非对称加密算法加密。

可选的,加密文件是预先存储在电子设备中的,或者加密文件是其他电子设备通过有线网络或无线网络发送的。

非对称算法包括RSA算法、DSA算法、ECC算法、Diffie-Hellman算法中的至少一种。

步骤102,获取用于加密加密文件的公开的密钥对(e,N)。

公开的密钥对(e,N)是指参数N和参数e都对外公开。

可选的,根据加密文件和密钥对(e,N)之间的对应关系,确定用于加密加密文件的密钥对(e,N)。

步骤103,针对密钥对(e,N)中的参数N,检测i2modN的值是否为0或1,i为大于等于2的整数。

可选的,i的初始值为2。

当i2modN的值为0或1时,停止执行该方法。

步骤104,若i2modN的值既不为0也不为1且则令i=i+1,重复执行步骤103。

在时,若i2modN的值不是0或1,则令i=i+1,再次检测i2modN的值是否为0或1,依此反复循环,直到i2modN的值为0或1,或者,i2modN的值既不是0也不是1,则计算到为止。

步骤105,将检测i2modN的值是否为0或1所耗费的时间作为解密时间,检测解密时间是否小于预定时间。

若i2modN的值为0或1,则将从开始到检测出i2modN的值为0或1所耗费的时间作为解密时间;

若从i的初始值开始到i2modN的值既不为0也不为1,则将从开始检测i2modN的值是否为0或1到结束所耗费的时间作为解密时间。

可选的,解密时间可以根据参数N的数值大小,预测出解密时间。

可选的,预定时间是预先设定的。预定时间是加密文件所需要保密的时间也即保密时效。比如:加密文件的保密时效为1年,则预定时间为1年。

若解密时间大于预定时间,则说明破解加密文件的时间大于加密文件所需要保密的时间,加密文件的安全性可靠;若解密时间小于预定时间,则说明破解加密文件的时间小于加密文件所需要保密的时间,加密文件的安全性不可靠,需要重新确定加密参数,相应地,需要重新确定加密文件所用的密钥对(e,N)。

若解密时间小于预定时间,则执行步骤106。

步骤106,若解密时间小于预定时间,则重新确定密钥对(e,N)。

在重新确定密钥对(e,N)时,重新确定的参数N所对应的解密时间需要大于加密文件的保密时效,以此保证加密文件的安全性。比如:加密文件的保密时效为1年,则重新确定的参数N对应的解密时间为1.1年。

综上所述,本发明实施例提供的验证加密文件安全性的方法,通过获取加密文件以及用于加密加密文件的密钥对(e,N),针对密钥对(e,N)中的参数N,检测i2modN的值是否为0或1,并将检测i2modN的值是否为0或1的时间确定为解密时间,在解密时间小于预定时间时,确定加密文件的安全性不高,重新确定密钥对(e,N);解决了随着计算机解密加密文件的速度的提高,加密文件的安全性得不到保证的问题;达到了能够预先验证加密文件的安全性,在加密文件的安全性不高的情况下,重新加密文件来提高加密文件的安全性的效果。

图2是根据另一示例性实施例示出的一种验证加密文件安全性的方法的流程图。本实施例以该方法应用于诸如平板电脑、个人电脑之类的电子设备中进行举例说明。该方法包括可以包括以下几个步骤:

步骤201,获取加密文件,加密文件通过非对称加密算法加密。

该步骤已在步骤101中进行了阐述,这里不再赘述。

步骤202,获取用于加密加密文件的公开的密钥对(e,N)。

该步骤已在步骤102中进行了阐述,这里不再赘述。

步骤203,针对密钥对(e,N)中的参数N,检测i2modN的值是否为0或1,i为大于等于2的整数。

该步骤可由如下两种步骤实现:

一、i的初始值为2,从i=2开始,检测i2modN的值是否为0或1。

二、从开始,检测i2modN的值是否为0或1。

比如:N=55,从i=7开始,检测i2modN的值是否为0或1。

当i2modN的值为0或1时,停止执行该方法。

步骤204,在时,令i=i+1,重复执行步骤103。

当i2modN的值为0或1时,停止执行该方法。

步骤204,若i2modN的值既不为0也不为1且则令i=i+1,重复执行步骤203。

在时,若i2modN的值不是0或1,则令i=i+1,再次检测i2modN的值是否为0或1,依此反复循环,直到i2modN的值为0或1,或者,i2modN的值既不是0也不是1,则计算到为止。

利用如下公式检测(i+1)2modN的值是否为0或1:

(i+1)2modN=i2modN+2imodN+1modN。

比如:N=55,从i=7开始检测i2modN的值是否为0或1;

当i=7时,i2modN=72mod55=49;

当i=i+1=7+1=8时,

(i+1)2modN=i2modN+2imodN+1modN=49+14+1=64-55=9;

……

需要说明的是,当i2modN+2imodN+1modN大于N时,(i+1)2modN=i2modN+2imodN+1modN-N。

需要说明的是,可以分组检测i2modN的值是否为0或1。也即将i分为若干组,若干组并行检测i2modN的值是否为0或1。

比如:N=55,2≤i≤27,令i取值为2至10为一组,计算i2modN的值是否为0或1,令i取值为11值20为一组,计算i2modN的值是否为0或1,令i取值为21至27为一组,计算i2modN的值是否为0或1。

在计算(i+1)2modN时,利用i2modN+2imodN+1modN得到(i+1)2modN的值,将原本的乘除法转换为加减法,提高了验证文件安全性的效率。

步骤205,将检测i2modN的值是否为0或1所耗费的时间作为解密时间,检测解密时间是否小于预定时间。

若i2modN的值为0或1,则将从开始到检测出i2modN的值为0或1所耗费的时间作为解密时间;

若从i的初始值开始到i2modN的值既不为0也不为1,则将从开始检测i2modN的值是否为0或1到结束所耗费的时间作为解密时间。

需要说明的是,若直到i2modN的值都不为0或1,则表明参数N为素数;若在时,i2modN的值为0或1,则表明参数N为合数。

可选的,解密时间可以根据参数N的数值大小,预测出解密时间。

可选的,预定时间是预先设定的。预定时间是加密文件所需要保密的时间也即保密时效。比如:加密文件的保密时效为1年,则预定时间为1年。

若解密时间大于预定时间,则说明破解加密文件的时间大于加密文件所需要保密的时间,加密文件的安全性可靠;若解密时间小于预定时间,则说明破解加密文件的时间小于加密文件所需要保密的时间,加密文件的安全性不可靠,需要重新确定加密参数,相应地,需要重新确定加密文件所用的密钥对(e,N)。

若解密时间小于预定时间,则执行步骤206。

步骤206,若解密时间小于预定时间,则重新确定密钥对(e,N)。

该步骤已在步骤106中进行了阐述,这里不再赘述。

步骤207,当i2modN的值为0或1时,将令i2modN的值为0或1的i记为m。

比如:N=55,当i=21时,i2modN的值为1,则记m=21。

步骤208,确定出m-1和参数N之间的第一最小公倍数,以及m+1和参数N之间的第二最小公倍数。

比如:N=55,m=21,m-1=20,m+1=22,(m-1)与N之间的第一最小公倍数为5,(m+1)与N之间的第二最小公倍数为11。

步骤209,利用第一最小公倍数和第二最小公倍数表示参数N。

当i2modN的值为1时,N=p1·p2......pn,pi为素数,且pi为N与(m-1)或N与(m+1)之间的最小公倍数。

当i2modN的值为0时,N=p1i·p2......pn,pi为素数,且pi为N与(m-1)或N与(m+1)之间的最小公倍数。

综上所述,本发明实施例提供的验证加密文件安全性的方法,通过获取加密文件以及用于加密加密文件的密钥对(e,N),针对密钥对(e,N)中的参数N,确定i2modN的值是否为0或1,并将确定i2modN的值是否为0或1的时间确定为解密时间,在解密时间小于预定时间时,确定加密文件的安全性不高,重新确定密钥对(e,N);解决了随着计算机解密加密文件的速度的提高,加密文件的安全性得不到保证的问题;达到了能够预先验证加密文件的安全性,在加密文件的安全性不高的情况下,重新加密文件来提高加密文件的安全性的效果。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

请参考图3,其示出了本发明一个实施例中提供的验证加密文件安全性的装置的结构示意图。该装置可以通过软件、硬件或两者的结合实现成为用于执行验证加密文件安全性的电子设备。该装置包括:

文件获取模块310,用于获取加密文件,加密文件通过非对称加密算法加密。

密钥获取模块320,用于获取用于加密加密文件的公开的密钥对(e,N)。

第一检测模块330,用于针对密钥对(e,N)中的参数N,检测i2modN的值是否为0或1,i为大于等于2的整数。

第一检测模块340,还用于若i2modN的值既不为0也不为1且则令i=i+1,重复执行检测i2modN的值是否为0或1的步骤。

第二检测模块350,用于将检测i2modN的值是否为0或1所耗费的时间作为解密时间,检测解密时间是否小于预定时间。

确定模块360,用于若解密时间小于预定时间,则重新确定密钥对(e,N)。

综上所述,本发明实施例提供的验证加密文件安全性的装置,通过获取加密文件以及用于加密加密文件的密钥对(e,N),针对密钥对(e,N)中的参数N,确定i2modN的值是否为0或1,并将确定i2modN的值是否为0或1的时间确定为解密时间,在解密时间小于预定时间时,确定加密文件的安全性不高,重新确定密钥对(e,N);解决了随着计算机解密加密文件的速度的提高,加密文件的安全性得不到保证的问题;达到了能够预先验证加密文件的安全性,在加密文件的安全性不高的情况下,重新加密文件来提高加密文件的安全性的效果。

可选的,所述第一检测模块,具体用于:

从i=2开始,检测i2modN的值是否为0或1;

或,

从开始,检测i2modN的值是否为0或1;

其中,利用如下公式检测(i+1)2modN的值是否为0或1:

(i+1)2modN=i2modN+2imodN+1modN。

可选的,该装置还包括:

标记模块,用于当i2modN的值为0或1时,将令i2modN的值为0或1的i记为m;

最小公倍数确定模块,用于确定出m-1和参数N之间的第一最小公倍数,以及m+1和N之间的第二最小公倍数;

参数表示模块,用于利用第一最小公倍数和第二最小公倍数表示参数N。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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