本发明涉及安全技术领域,特别涉及一种文件加密方法及装置。
背景技术:
随着电子信息技术的高速发展,利用网络传输文件越来越普及,为了保证文件在网络传输中的安全性,需要对文件进行加密。
现有技术中,常用非对称加密算法中的RSA算法进行加密。在利用RSA算法加密时,需要生成公钥(e,N)和私钥(d,N),由于参数N为两个大素数的乘积,在生成公钥和私钥时,需要根据加密等级需要选取大素数。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:当一个数较大时,判断该数是不是素数耗费的时间越多,导致加密文件耗费的时间增加,加密文件的效率不高。
技术实现要素:
为了解决在加密文件时,选取合适的加密参数耗时较长,不利于在满足文件加密的安全性需求的情况下快速对文件进行加密的问题,本发明提供一种文件加密方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种文件加密方法,所述方法包括:
获取文件加密指令;
根据所述文件加密指令获取参数N;
检测AN-1modN的值是否为1,A的初始值为2;
若所述AN-1modN的值为1,则检测modN的值是否为(N-1);
若所述modN的值为(N-1),则检测modN的值是否为1;
若所述modN的值不为1,则将所述参数N标记为预定参数;
利用所述预定参数对文件进行加密;
其中,N=2M·P+1,P为素数,M为正整数。
可选的,所述检测modN的值是否为1之后,所述方法还包括:
若所述modN的值为1,则令A=A+1,重新执行所述检测AN-1modN的值是否为1的步骤。
可选的,所述检测modN的值是否为(N-1)之后,所述方法还包括:
若所述modN的值不为(N-1)且所述modN的值为1,则令A=A+1,重新执行所述检测AN-1modN的值是否为1的步骤。
根据本发明实施例的第二方面,提供一种文件加密装置,所述装置包括:
指令获取模块,用于获取文件加密指令;
参数获取模块,用于根据所述文件加密指令获取参数N;
第一检测模块,用于检测AN-1modN的值是否为1,A的初始值为2;
第二检测模块,用于当所述AN-1modN的值为1时,检测modN的值是否为(N-1);
第三检测模块,用于当所述modN的值为(N-1)时,检测modN的值是否为1;
标记模块,用于当所述modN的值不为1时,将所述参数N标记为预定参数;
加密模块,用于利用所述预定参数对文件进行加密;
其中,N=2M·P+1,P为素数,M为正整数。
可选的,所述装置还包括:
执行模块,用于当所述modN的值为1时,令A=A+1,重新执行所述检测AN-1modN的值是否为1的步骤。
可选的,所述执行模块,还用于当所述modN的值不为(N-1)且所述modN的值为1时,令A=A+1,重新执行所述检测AN-1modN的值是否为1的步骤。
本发明的实施例提供的技术方案可以包括以下有益效果:
通过根据文件加密指令获取参数N,检测AN-1modN的值是否为1,在AN-1modN的值为1时,检测modN的值是否为(N-1),在modN为(N-1)时,检测modN的值是否为1,在modN的值不为1时,将参数N标记为预定参数,利用预定参数对文件进行加密,解决了在加密文件时,选取合适的加密参数耗时较长,不利于在满足文件加密的安全性需求的情况下快速对文件进行加密的问题,达到了能够提高在满足文件加密的安全性需求的同时提高文件加密效率的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种文件加密方法的流程图;
图2是根据另一示例性实施例示出的一种文件加密方法的流程图;
图3是根据一示例性实施例示出的一种文件加密装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种文件加密方法的流程图,本实施例以该方法应用于诸如个人电脑、平板电脑之类的电子设备中进行举例说明。该方法可以包括以下几个步骤:
步骤101,获取文件加密指令。
可选的,接收作用在电子设备上的文件加密指令;或者,其他设备通过有线网络或无线网络发送文件加密指令,接收文件加密指令。
步骤102,根据文件加密指令获取参数N。
其中,N=2M·P+1,P为素数,M为正整数。
根据文件加密指令,随机确定M,以及从已知的素数中随机确定P,按公式N=2M·P+1计算得到参数N。比如:随机确定M=1,确定P=3,则N=7。
步骤103,检测AN-1modN的值是否为1。
A的初始值为2。
若AN-1modN的值为1,则执行步骤104。
步骤104,若AN-1modN的值为1,则检测modN的值是否为(N-1)。
若modN的值为(N-1),则执行步骤105。
步骤105,若modN的值为(N-1),则检测modN的值是否为1。
若modN的值不为1,则执行步骤106。
步骤106,若modN的值不为1,则将参数N标记为预定参数。
若参数N满足AN-1modN的值为1,modN的值为(N-1),modN的值不为1,则说明该参数N为素数,将参数N标记为预定参数。
需要说明的是,可以重复多次执行步骤102至步骤106来获取多个预定参数。
步骤107,利用预定参数对文件进行加密。
可选的,需要利用素数的文件加密方式都可以利用预定参数。
比如,利用非对称算法RSA算法对文件进行加密,则可以执行多次步骤102至步骤107,得到多个预定参数,将多个预定参数应用于RSA算法中,对文件进行加密。
由于确定一个位数较大的素数比较困难,可以利用已知的素数构造出一个数,并验证构造出的数是不是素数,有利于提高寻找素数的效率;另外由于加密文件时文件的安全性等级与加密时使用的素数的位数相关,当素数的位数越大,则加密文件的安全性越高,通过本发明实施例提供的文件加密方法,能够快速确定出根据已知素数构造出的数是不是素数,能够提高加密过程中获取加密参数的效率。
综上所述,本发明实施例提供的文件加密方法,通过根据文件加密指令获取参数N,检测AN-1modN的值是否为1,在AN-1modN的值为1时,检测modN的值是否为(N-1),在modN为(N-1)时,检测modN的值是否为1,在modN的值不为1时,将参数N标记为预定参数,利用预定参数对文件进行加密,解决了在加密文件时,选取合适的加密参数耗时较长,不利于在满足文件加密的安全性需求的情况下快速对文件进行加密的问题,达到了能够提高在满足文件加密的安全性需求的同时提高文件加密效率的效果。
图2是根据另一示例性实施例示出的一种文件加密方法的流程图,本实施例以该方法应用于诸如个人电脑、平板电脑之类的电子设备中进行举例说明。该方法可以包括以下几个步骤:
步骤201,获取文件加密指令。
可选的,接收作用在电子设备上的文件加密指令;或者,其他设备通过有线网络或无线网络发送文件加密指令,接收文件加密指令。
步骤202,根据文件加密指令获取参数N。
其中,N=2M·P+1,P为素数,M为正整数。
步骤203,检测AN-1modN的值是否为1。
A的初始值为2。
若AN-1modN的值为1,则执行步骤204;若AN-1modN的值不为1,则停止执行该加密方法。
步骤204,若AN-1modN的值为1,则检测modN的值是否为(N-1)。
若modN的值为(N-1),则执行步骤205。
当modN的值不为(N-1)且modN的值为1时,执行步骤206;
当modN的值为除(N-1)和1以外的其他数时,停止执行该加密方法。也即跳出循环。
步骤205,当modN的值为(N-1)时,检测modN的值是否为1。
若modN的值不为1,则执行步骤207;若modN的值为1,则执行步骤208。
步骤206,当modN的值不为(N-1)且modN的值为1时,令A=A+1,重新执行步骤203。
步骤207,当modN的值不为1时,将参数N标记为预定参数。
步骤208,当modN的值为1时,令A=A+1,重新执行步骤203。
需要说明的是,可以重复多次执行步骤202至步骤208来获取多个预定参数。
步骤209,利用预定参数对文件进行加密。
该步骤已在上述步骤107中进行了阐述,这里步骤赘述。
综上所述,本发明实施例提供的文件加密方法,通过根据文件加密指令获取参数N,检测AN-1modN的值是否为1,在AN-1modN的值为1时,检测modN的值是否为(N-1),在modN为(N-1)时,检测modN的值是否为1,在modN的值不为1时,将参数N标记为预定参数,利用预定参数对文件进行加密,解决了在加密文件时,选取合适的加密参数耗时较长,不利于在满足文件加密的安全性需求的情况下快速对文件进行加密的问题,达到了能够提高在满足文件加密的安全性需求的同时提高文件加密效率的效果。
在一个示例性的例子中,获取文件加密指令,根据文件加密指令获取参数N,具体地,随机确定M=1,从已知的素数中随机确定出P=3,则N=21·3+1=7,由于A的初始值为2,继续执行如下步骤:
步骤s1:检测AN-1modN的值是否为1。
检测结果为26mod7的值为1,则执行步骤s2:
步骤s2:检测modN的值是否为(N-1)。
检测结果为23mod7的值为1,则令A=A+1=3,重新执行步骤s1。
也即,检测36mod7的值是否为1,检测结果为36mod7的结果为1,则执行步骤s2,检测33mod7的值为是否为6,检测结果为33mod7的值为6,则执行步骤s3。
步骤s3:检测modN的值是否为1。
此时,A=3,检测mod7的值是否为1,检测结果为mod7的值为2,则执行步骤s4。
步骤s4,将参数N标记为预定参数。
还可以重复上述步骤,获取参数N=11,将参数11标记为预定参数。
步骤s5,利用预定参数对文件进行加密。
利用预定参数7和预定参数11对文件进行加密。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图3是根据一示例性实施例示出的一种文件加密装置的结构示意图。该装置可通过软件、硬件或两者的结合实现成为执行该文件加密方法的电子设备。该装置包括:
指令获取模块310,用于获取文件加密指令。
参数获取模块320,用于根据文件加密指令获取参数N。
第一检测模块330,用于检测AN-1modN的值是否为1,A的初始值为2。
第二检测模块340,用于当AN-1modN的值为1时,检测modN的值是否为(N-1)。
第三检测模块350,用于当modN的值为(N-1)时,检测modN的值是否为1。
标记模块360,用于当modN的值不为1时,将参数N标记为预定参数。
加密模块370,用于利用预定参数对文件进行加密。
其中,N=2M·P+1,P为素数,M为正整数。
综上所述,本发明实施例提供的文件加密装置,通过根据文件加密指令获取参数N,检测AN-1modN的值是否为1,在AN-1modN的值为1时,检测modN的值是否为(N-1),在modN为(N-1)时,检测modN的值是否为1,在modN的值不为1时,将参数N标记为预定参数,利用预定参数对文件进行加密,解决了在加密文件时,选取合适的加密参数耗时较长,不利于在满足文件加密的安全性需求的情况下快速对文件进行加密的问题,达到了能够提高在满足文件加密的安全性需求的同时提高文件加密效率的效果。
可选的,该装置还包括:执行模块,用于当modN的值为1时,令A=A+1,重新执行检测AN-1modN的值是否为1的步骤。
可选的,执行模块,还用于当modN的值不为(N-1)且modN的值为1时,令A=A+1,重新执行检测AN-1modN的值是否为1的步骤。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。