一种运行加密文件的方法和装置转让专利

申请号 : CN201310305978.4

文献号 : CN104298926B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李丹华

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施方式提出了一种运行加密文件的方法和装置。方法包括:按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;根据预定混淆方式对所述N份子文件进行混淆;按照对应于该预定混淆方式的反混淆方式以及所述密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。本发明实施方式提高了文件安全性。

权利要求 :

1.一种运行加密文件的方法,其特征在于,该方法包括:按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;

根据预定混淆方式对所述N份子文件进行混淆;

按照对应于该预定混淆方式的反混淆方式以及所述密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。

2.根据权利要求1所述的运行加密文件的方法,其特征在于,按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N包括:获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值作为该位数的文件分割值;

计算各个位数的位数值之和N;

所述依次读取密钥串中每个位数的文件分割值个子文件为:依次读取密钥串中每个位数的位数值个子文件。

3.根据权利要求1所述的运行加密文件的方法,其特征在于,按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N包括:获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的平方作为该位数的文件分割值;

计算各个位数的文件分割值之和N;

所述依次读取密钥串中每个位数的文件分割值个子文件为:依次读取密钥串中每个位数的位数值的平方个子文件。

4.根据权利要求1所述的运行加密文件的方法,其特征在于,按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N包括:获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的立方作为该位数的文件分割值;

计算各个位数的文件分割值之和N;

所述依次读取密钥串中每个位数的文件分割值个子文件为:依次读取密钥串中每个位数的位数值的立方个子文件。

5.根据权利要求1所述的运行加密文件的方法,其特征在于,所述根据预定混淆方式对所述N份子文件进行混淆为:根据首尾对调的混淆方式对所述N份子文件进行混淆。

6.一种运行加密文件的装置,其特征在于,包括文件切割单元、文件混淆单元和文件读取单元,其中:文件切割单元,用于按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;

文件混淆单元,用于根据预定混淆方式对所述N份子文件进行混淆;

文件读取单元,用于按照对应于该预定混淆方式的反混淆方式以及密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。

7.根据权利要求6所述的运行加密文件的装置,其特征在于,文件切割单元,用于获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值作为该位数的文件分割值;计算各个位数的位数值之和N;

文件读取单元,用于依次读取密钥串中每个位数的位数值个子文件。

8.根据权利要求6所述的运行加密文件的装置,其特征在于,文件切割单元,用于获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的平方作为该位数的文件分割值;计算各个位数的文件分割值之和N;

文件读取单元,用于依次读取密钥串中每个位数的位数值的平方个子文件。

9.根据权利要求6所述的运行加密文件的装置,其特征在于,文件切割单元,用于获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的立方作为该位数的文件分割值;计算各个位数的文件分割值之和N;

文件读取单元,用于依次读取密钥串中每个位数的位数值的立方个子文件。

10.根据权利要求6所述的运行加密文件的装置,其特征在于,文件混淆单元,用于根据首尾对调的混淆方式对所述N份子文件进行混淆。

说明书 :

一种运行加密文件的方法和装置

技术领域

[0001] 本发明实施方式涉及信息处理技术领域,更具体地,涉及一种运行加密文件的方法和装置。

背景技术

[0002] 在当今的信息时代中,各种信息设备应运而生。而且,随着电子消费、计算机、通信(3C)融合的到来,人们越来越多地将注意力放到了对各个不同领域的信息设备进行综合利用的研究上,以充分利用现有资源设备来为人们更好的服务。在这些资源设备的工作处理过程中,经常涉及到计算机文件的处理。
[0003] 计算机文件(或称文件、电脑档案、档案),是存储在某种长期储存设备上的一段数据流。长期储存设备一般指磁盘、光盘、磁带等。计算机文件的特点是所存信息可以长期、多次使用,通常不会因为断电而消失。虽然一个文件表现为一个单一的流,但它经常在磁盘不同的位置存储为多个数据碎片(甚至是多个磁盘)。操作系统会将它们组织成文件系统,每个文件放在特定的文件夹或目录中。
[0004] 为了文件的安全性考虑,一些计算机文件会被加密,从而形成加密文件。文件加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
[0005] 在现有技术中,在打开或运行加密文件时,会采取先解密后运行的方式。此时运行的文件是已被解密的文件,同时会产生临时的解密文件。由于需要先解密后运行,解密后的文件将会运行在内存或者以临时文件的形式存储在存储设备内。运行在内存内的解密文件可以通过一些内存读取工具被读取出来,而对于以临时文件形式存储的解密文件,则可以直接从临时文件中被导出。因此,现有技术中运行加密文件的方法,具有安全性弱的缺点。

发明内容

[0006] 本发明实施方式提出一种运行加密文件的方法,以提高文件安全性。
[0007] 本发明实施方式还提出了一种运行加密文件的装置,以提高文件安全性。
[0008] 本发明实施方式的具体方案如下:
[0009] 一种运行加密文件的方法,该方法包括:
[0010] 按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;
[0011] 根据预定混淆方式对所述N份子文件进行混淆;
[0012] 按照对应于该预定混淆方式的反混淆方式以及所述密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。
[0013] 一种运行加密文件的装置,包括文件切割单元、文件混淆单元和文件读取单元,其中:
[0014] 文件切割单元,用于按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;
[0015] 文件混淆单元,用于根据预定混淆方式对所述N份子文件进行混淆;
[0016] 文件读取单元,用于按照对应于该预定混淆方式的反混淆方式以及密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。
[0017] 从上述技术方案可以看出,在本发明实施方式中,按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;根据预定混淆方式对所述N份子文件进行混淆;按照对应于该预定混淆方式的反混淆方式以及所述密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。由此可见,应用本发明实施方式之后,在加密文件的运行过程中,运行的内容仍为加密内容,即使该运行内容被导出,仍然可以保证文件安全性,因此提高了文件安全性。

附图说明

[0018] 图1为根据本发明实施方式运行加密文件的方法流程图;
[0019] 图2为根据本发明实施方式加密文件切割示意图;
[0020] 图3为根据本发明实施方式子文件分布示意图;
[0021] 图4为根据本发明实施方式子文件被混淆后示意图;
[0022] 图5为根据本发明实施方式计数展示装置结构图。

具体实施方式

[0023] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
[0024] 图1为根据本发明实施方式运行加密文件的方法流程图。
[0025] 如图1所示,该方法包括:
[0026] 步骤101:按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件。
[0027] 在这种,加密文件可以是针对各种计算机文件执行加密操作后所形成的文件。其中:计算机文件可以分为二进制文件和ASCII文件,图形文件及文字处理程序等计算机程序都属于二进制文件。这些文件含有特殊的格式及计算机代码;ASCII则是可以用任何文字处理程序阅读的简单文本文件。
[0028] 在本发明实施方式中,可以基于每个位数的位数值来计算该位数的文件分割值。
[0029] 在一个实施方式中:
[0030] 获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值作为该位数的文件分割值;然后再计算各个位数的位数值之和N,以作为文件分割值之和。
[0031] 比如,假设某加密文件的密钥为54312。该密钥中,第一位数的位数值为5;第二位数的位数值为4;第3位数的位数值为3;第4位数的位数值为1;第5位数的位数值为2,则计算各个位数的位数值之和,得到5+4+3+1+2=15,则15即为文件分割值之和,可以将该加密文件平均切割为15个子文件。
[0032] 在一个实施方式中:
[0033] 获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的平方作为该位数的文件分割值;再计算各个位数的位数值之和N,以将N作为文件分割值之和。
[0034] 比如,假设某加密文件的密钥为54312。该密钥中,第一位数的位数值为5;第二位数的位数值为4;第3位数的位数值为3;第4位数的位数值为1;第5位数的位数值为2,则计算各个位数的位数值的平方之和,得到52+42+32+12+22=55,则55即为文件分割值之和,可以将该加密文件平均切割为55个子文件。
[0035] 在一个实施方式中:
[0036] 获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的立方作为该位数的文件分割值;再计算各个位数的位数值之和N,以将N作为文件分割值之和。
[0037] 比如,假设某加密文件的密钥为54312。该密钥中,第一位数的位数值为5;第二位数的位数值为4;第3位数的位数值为3;第4位数的位数值为1;第5位数的位数值为2,则计算各个位数的位数值的平方之和,得到53+43+33+13+23=225,225即为文件分割值之和,可以将该加密文件平均切割为225个子文件。
[0038] 以上详细描述了基于每个位数的位数值计算相应位数的文件分割值的示例,本领域技术人员可以意识到,还可以应用其他算法计算各个位数的文件分割值,本发明实施方式对此并无限定。
[0039] 计算各个位数的文件分割值之和(N)之后,可以将加密文件切割为N份子文件,优选地,将加密文件平均切割为N份子文件。
[0040] 步骤102:根据预定混淆方式对所述N份子文件进行混淆。
[0041] 在对加密文件进行分割以形成N子文件之后,可以根据预定混淆方式对该N份子文件进行混淆。比如,可以通过首尾对调的混淆方式对N份子文件进行混淆。也可以采用相同间隔对调等混淆方式对N份子文件进行混淆,本发明实施方式对此并无限定。
[0042] 步骤103:按照对应于该预定混淆方式的反混淆方式以及所述密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。
[0043] 在这里:
[0044] 当在步骤101中将每个位数的位数值作为该位数的文件分割值之时,可以依次读取密钥串中每个位数的位数值个子文件。
[0045] 当在步骤101中将每个位数的位数值的平方作为该位数的文件分割值之时,可以依次读取密钥串中每个位数的位数值的平方个子文件。
[0046] 当在步骤101中将每个位数的位数值的立方作为该位数的文件分割值之时,可以依次读取密钥串中每个位数的位数值的立方个子文件。
[0047] 可见,在本发明实施方式中,主要包括加密文件的混淆和混淆文件的运行两部分,[0048] 加密文件的混淆包括根据密钥生成加密规则的步骤。可以将用户设定的密钥(例如简单密码:54321),转化混淆的密钥规则,具体方式如下:获得待加密文件的编码内容长度,例如一个文件的编码长度为100万行,顺序是从1至100万。此时将密钥(例如54321)里面包含的数字信息用作分割行数。例如将100万的编码内容切割成5份,原来的从头开始的第一份文件移至最后(从1变成5),第二份内容移至第四份(从2变成4),如此类推,此时新产生的文件已完成混淆。
[0049] 针对混淆文件的运行,主要包括:当混淆文件运行时,同时加载密钥文件。当文件加载时,根据密钥文件的排序,加载排序对应切割块的内容。例如密钥为54321,则先加载第五份内容,然后第四份….如此类推。此时由于采取的是分区段加载的方式,即便可以从内存中读出文件,该文件也是被混淆过的,不会造成泄露。
[0050] 下面结合上述描述,以一个具体示例详细描述本发明。
[0051] 假设有一个计算机加密文件,其密钥为7位,具体为4941678。
[0052] 可以将每个位数的位数值作为该位数的文件分割值。那么第一位数的位数值为4;第二位数的位数值为9;第3位数的位数值为4;第4位数的位数值为1;第5位数的位数值为6;
第6位数的位数值为7;第8位数的位数值为8。
[0053] 计算各个位数的位数值之和,得到4+9+4+1+6+7+8=39,则39即为文件分割值之和,可以将该加密文件平均切割为39个子文件,按照原始代码顺序,分别为第1~39份子文件。
[0054] 图2为根据本发明实施方式加密文件切割示意图。
[0055] 假定该加密文件为78万行二进制代码,则可以平均切割出39个子文件,而且每个子文件为2万行二进制代码。
[0056] 由于该密钥为7位的,因此可以将所有的子文件分布为7份。
[0057] 图3为根据本发明实施方式子文件分布示意图,如图3所示,从左到右有7份存储空间。其中:
[0058] 在第一份存储空间中,存储有4份子文件,分别是第1~4份;在第二份存储空间中,存储有9份子文件,分别是第5~13份子文件;在第三份存储空间中,存储有4份子文件,分别是第14~17份子文件;在第四份存储空间中,存储有1份子文件,是第18份子文件;在第五份存储空间中,存储有6份子文件,分别是第19~24份子文件;在第六份存储空间中,存储有7份子文件,分别是第25~31份子文件;在第七份存储空间中,存储有8份子文件,分别是第32~39份子文件。而且在每份存储空间中,存储顺序均是从左右到顺序存储。
[0059] 然后,针对该子文件执行首尾对调以实现混淆。
[0060] 图4为根据本发明实施方式子文件被混淆后示意图。
[0061] 如图4所示,混淆结果为:从左到右有7份存储空间。
[0062] 在第一份存储空间中,存储有8份子文件,分别是第32~39份子文件;在第二份存储空间中,存储有7份子文件,分别是第25~31份子文件;在第三份存储空间中,存储有6份子文件,分别是第19~24份子文件;在第四份存储空间中,存储有1份子文件,是第18份子文件;在第五份存储空间中,存储有4份子文件,分别是第14~17份子文件;在第六份存储空间中,存储有9份子文件,分别是第5~13份子文件;在第七份存储空间中,存储有4份子文件,分别是第1~4份;而且在每份存储空间中,存储顺序均是从左右到顺序存储。
[0063] 经过混淆后,首份存储空间的实际存储内容为第32~39份子文件,如果根据自然顺序读取则无法读取。当需要顺序读取时,可以根据密钥信息进行解析。
[0064] 由于密钥为7位,因此可以确定存储空间为7份;而且根据密钥计算得到文件分割值之和为39,因此实际上是从39份子文件中顺序读取7份存储空间。
[0065] 继续分析,由于第一个密钥位为4,因此根据反混淆方式,应该首先从尾部(即第七份存储空间)读取4份子文件,即顺序读取第1~4份子文件。类似地,在顺序读取第1~4份子文件之后,由于第二个密钥位为9,则接着从第六份存储空间读取9份子文件,即顺序读取第5~13份子文件;由于第三个密钥位为4,则接着从第五份存储空间读取4份子文件,即顺序读取第14~17份子文件;由于第四个密钥位为1,则接着从第四份存储空间读取1份子文件,即读取第15份子文件;由于第五个密钥位为6,则接着从第三份存储空间读取6份子文件,即顺序读取第19~24份子文件;由于第六个密钥位为7,则接着从第二份存储空间读取7份子文件,即顺序读取第25~31份子文件;由于第七个密钥位为8,则接着从第1份存储空间读取
8份子文件,即顺序读取第32~39份子文件。由此可见,实现了针对加密文件的正确顺序读取。
[0066] 基于上述详细分析,本发明实施方式还提出了一种运行加密文件的装置。
[0067] 图5为根据本发明实施方式运行加密文件的装置的结构图。
[0068] 如图5所示,包括文件切割单元501、文件混淆单元502和文件读取单元503,其中:
[0069] 文件切割单元501,用于按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;
[0070] 文件混淆单元502,用于根据预定混淆方式对所述N份子文件进行混淆;
[0071] 文件读取单元503,用于按照对应于该预定混淆方式的反混淆方式以及密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。
[0072] 在一个实施方式中:
[0073] 文件切割单元501,用于获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值作为该位数的文件分割值;计算各个位数的位数值之和N;
[0074] 文件读取单元503,用于依次读取密钥串中每个位数的位数值个子文件。
[0075] 在一个实施方式中:
[0076] 文件切割单元501,用于获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的平方作为该位数的文件分割值;计算各个位数的位数值之和N;
[0077] 文件读取单元503,用于依次读取密钥串中每个位数的位数值的平方个子文件。
[0078] 在一个实施方式中:
[0079] 文件切割单元501,用于获取加密文件的密钥串中每个位数的位数值,并将所述每个位数的位数值的立方作为该位数的文件分割值;计算各个位数的位数值之和N;
[0080] 文件读取单元503,用于依次读取密钥串中每个位数的位数值的立方个子文件。
[0081] 在一个实施方式中:
[0082] 文件混淆单元502,用于根据首尾对调的混淆方式对所述N份子文件进行混淆[0083] 用户可以在各种终端上运行加密文件,这些终端可以包括但是不局限于:功能手机、智能手机、掌上电脑、个人电脑(PC)、平板电脑或个人数字助理(PDA),等等。
[0084] 以上虽然详细罗列了终端的具体实例,本领域人员可以意识到,这些罗列仅是阐述目的,并不用于限定本发明实施方式的保护范围。
[0085] 实际上,可以通过多种形式来具体实施本发明实施方式所提出的运行加密文件的方法和装置。
[0086] 比如,可以遵循一定规范的应用程序接口,将运行加密文件的方法编写为安装到个人电脑、移动终端等中的插件程序,也可以将其封装为应用程序以供用户自行下载使用。当编写为插件程序时,可以将其实施为ocx、dll、cab等多种插件形式。也可以通过Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等具体技术来实施本发明实施方式所提出的运行加密文件的方法。
[0087] 可以通过指令或指令集存储的储存方式将本发明实施方式所提出的运行加密文件的方法存储在各种存储介质上。这些存储介质包括但是不局限于:软盘、光盘、DVD、硬盘、闪存、U盘、CF卡、SD卡、MMC卡、SM卡、记忆棒(Memory Stick)、xD卡等。
[0088] 另外,还可以将本发明实施方式所提出的运行加密文件的方法应用到基于闪存(Nand flash)的存储介质中,比如U盘、CF卡、SD卡、SDHC卡、MMC卡、SM卡、记忆棒、xD卡等。
[0089] 综上所述,在本发明实施方式中,按照预定方式计算加密文件的密钥串中每个位数的文件分割值,计算各个位数的文件分割值之和N,并将所述加密文件切割为所述N份子文件;根据预定混淆方式对所述N份子文件进行混淆;按照对应于该预定混淆方式的反混淆方式以及所述密钥串的位数顺序,依次读取密钥串中每个位数的文件分割值个子文件。由此可见,应用本发明实施方式之后,在加密文件的运行过程中,运行的内容仍为加密内容,即使该运行内容被导出,仍然可以保证文件安全性,因此提高了文件安全性。
[0090] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。