CN102142074A - 基于混沌的通用电子档案加解密方法 - Google Patents

基于混沌的通用电子档案加解密方法 Download PDF

Info

Publication number
CN102142074A
CN102142074A CN2011100793353A CN201110079335A CN102142074A CN 102142074 A CN102142074 A CN 102142074A CN 2011100793353 A CN2011100793353 A CN 2011100793353A CN 201110079335 A CN201110079335 A CN 201110079335A CN 102142074 A CN102142074 A CN 102142074A
Authority
CN
China
Prior art keywords
file
character
carry out
folder
formula
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100793353A
Other languages
English (en)
Other versions
CN102142074B (zh
Inventor
陈东明
陈晓东
刘永明
常云鹏
王晶
李黎丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN2011100793353A priority Critical patent/CN102142074B/zh
Publication of CN102142074A publication Critical patent/CN102142074A/zh
Application granted granted Critical
Publication of CN102142074B publication Critical patent/CN102142074B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

一种基于混沌的通用电子档案加解密方法,属于电子加解密技术领域。该方法包括文件的加密过程与解密过程和文件夹的加密过程与解密过程。本发明的优点:该方法将目标文件夹加密为Windows操作系统文件,利用混沌理论将文件夹下的文件逐个进行加密,实现了双重加密机制。而解密时利用密钥验证机制,逐步对文件和文件夹进行解密,实现了在安全性方面的双重保障,并且Windows操作系统在时间复杂度方面也有不错的表现。

Description

基于混沌的通用电子档案加解密方法
技术领域
本发明属于电子加解密技术领域,特别涉及一种基于混沌的通用电子档案加解密方法。
背景技术
近年来,保护数据不被泄漏成为人们关注的热点问题。入侵者可以通过直接盗取物理存储设备和网络攻击的手段来窃取数据;而且,由于文件共享等需求,数据会被多人进行访问,这也大大增加了数据泄漏的可能性。在计算机中,文件是数据的一种组织形式,所以对文件进行加密已经成为一种公认的比较成功的保护数据的方法。事实上,现今已经有了一些比较成熟的加密算法,如DES、AES、RSA等,并且有一些工具是基于这些加密算法产生的,用户可以通过这些工具实现加密和解密。但是,由于这些工具操作麻烦、没有和整个系统紧密地结合起来,而且随着这些加密算法被不断的研究,已经有越来越多的人注意到这些工具很容易受到攻击。因此,对于新的加密文件算法的研究成为了一种必然的趋势。
混沌理论作为近年来的研究热点,其在加解密领域里的应用也已经成为了前沿课题。而logistic映射作为经典的混沌映射,蕴含了现代混沌理论的基本思想,包括倍周期到混沌、分岔图等非线性理论的基本框架和模式。本发明正是基于logistic理论而编写的。
现有的文件夹加解密方法可分为两类:基于Windows操作系统本身进行加解密和基于文件夹加解密软件进行加解密。前者在加解密的时候有诸多不便,如只可以加解密NTFS分区卷上的文件和文件夹,对FAT分区卷上的文件和文件夹无效;无法加密标记为“系统”属性的文件,并且位于系统根目录结构中的文件也无法被加解密等等。后者大多是将文件夹隐藏,或者将该文件夹转化为其他的文件格式,而且其中的文件不能够被加解密,一旦通过某种方式获得文件夹中的文件,对文件夹的加解密也就失去了意义。
发明内容
针对现有技术存在的不足,本发明提供了一种基于混沌的通用电子档案加解密方法。
该方法包括文件的加密过程与解密过程和文件夹的加密过程与解密过程;
其中文件的加密过程,按如下步骤进行:
步骤1、浏览磁盘文件;
步骤2、选择待加密的文件,获得路径Path1,Path1是待加密的文件路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、定义一个整型变量L1用以记录密码的长度;
步骤5、将整型变量L1的值赋给一个新的整型变量Y;
步骤6、定义循环语句,循环执行次数为L1,循环执行过程按如下步骤进行:
步骤1)、在满足公式(1)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成一个整数N;
Xn+1=μXn(1-Xn)  μ∈(0,4],X∈(0,1)        (1)
上式为一维Logistic混沌映射公式,其中μ被称为Logistic参数,Xn被称为第一维伪随机数,n被称为伪随机数的个数。运用以上的迭代公式,从理论上来说只需要通过初始值的简单变化,就可以产生取值非常丰富的、差别很大的、很难推测的伪随机数序列。因此我们只需要简单选定初值μ和X0,然后通过不断的迭代运算,就可以产生一个很好的伪随机数序列。其中μ是一个介于(0,4]的数,X0是一个介于(0,1)的数。根据分析,发现μ取值在4附近的时候,伪随机数序列的取值区间范围较大,这个取值范围比较适合用来产生伪随机数序列。
步骤2)、执行公式M=N%256,得到一个小于256的整数M;
步骤3)、在满足公式(2)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成两个整数X和X′;
X n + 1 = μλ 1 * X n * ( 1 - X n ) + γ * Y n Y n + 1 = μλ 2 * Y n * ( 1 - Y n ) + γ * X n - - - ( 2 )
上式为二维Logistic混沌映射公式。式中,Xn被称为第一维伪随机数,Yn被称为第二维伪随机数,二维Logistic映射的混沌条件如下表所示
表1-1  二维Logistic映射的混沌条件
  γ   λ1   λ2
  γ∈[0.4,0.57]   λ1=0.6   λ2=0.4
  γ∈[0.3,0.54]   λ1=0.7   λ2=0.3
  γ∈[0.2,0.45]   λ1=0.8   λ2=0.2
  γ=0.1   λ1∈[0.65,0.9]   λ2∈[0.65,0.9]
二维Logistic映射的动力学行为是由动力学方程中的控制参数λ1、λ2、γ、μ来控制的,初始点(X0,Y0)=(0.1,0.11),γ=0.1时,在参数λ1=λ2=0.89时,Windows操作系统出现混沌现象。
步骤4)、分别执行公式Z=X%256和Z′=X′%256,得到两个小于256的整数Z和Z′;
步骤5)、密码的每个字节按序与M,Z,Z′进行异或运算,得到密钥K1;
步骤6)、Y按序与M,Z,Z′进行加法运算,得到新的值Y′;
步骤7)、Y′与K1进行异或运算,得到最终的密钥K2;
步骤7、打开所选文件,获得文件的字节数L2,L2即为文件的长度;
步骤8、定义一个字符数组D,数组大小为L2;
步骤9、从文件头部开始,将文件的内容读取到数组D中;
步骤10、定义循环语句,循环执行次数为L2,循环执行过程如下:
数组D中的每个字符按序与K2分别进行异或运算,加法运算,与L2进行异或运算,与(K2%L2)进行异或运算,再与K2进行减法运算,得到数组D中的新的每个字符;
步骤11、从文件头部开始,将数组D中的内容写回到所选文件中;
步骤12、删除数组D;
步骤13、定义字符数组C,C的内容是写定的字符串;
步骤14、定义循环语句,循环执行次数为L3,L3为C的大小,循环执行内容如下:使C的每个字符与K2进行异或运算,得到新的单个字符,直至循环结束;
步骤15、找到所选文件的尾部,将C的内容写在这里,作为密码验证信息;
步骤16、关闭所选文件,完成加密。
其中文件的解密过程,按如下步骤进行:
步骤1、浏览磁盘文件;
步骤2、选择待解密的文件,获得路径Path1′,Path1′是待解密的文件路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、定义一个整型变量L1用以记录密码的长度;
步骤5、将整型变量L1的值赋给一个新的整型变量Y;
步骤6、定义循环语句,循环执行次数为L1,循环执行过程按如下步骤进行:
步骤1)、在满足公式(1)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成一个整数N;
Xn+1=μXn(1-Xn)μ∈(0,4],X∈(0,1)            (1)
上式为一维Logistic混沌映射公式,其中μ被称为Logistic参数,Xn被称为伪随机数,n被称为伪随机数的个数。运用以上的迭代公式,从理论上来说只需要通过初始值的简单变化,就可以产生取值非常丰富的、差别很大的、很难推测的伪随机数序列。因此我们只需要简单选定初值μ和X0,然后通过不断的迭代运算,就可以产生一个很好的伪随机数序列。其中μ是一个介于(0,4]的数,X0是一个介于(0,1)的数。根据分析,发现μ取值在4附近的时候,伪随机数序列的取值区间范围较大,这个取值范围比较适合用来产生伪随机数序列。
步骤2)、执行式子M=N%256,得到一个小于256的整数M;
步骤3)、在满足公式(2)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成两个整数X和X′;
X n + 1 = μλ 1 * X n * ( 1 - X n ) + γ * Y n Y n + 1 = μλ 2 * Y n * ( 1 - Y n ) + γ * X n - - - ( 2 )
上式为二维Logistic混沌映射公式。二维Logistic映射的混沌条件如下表所示
表1-2  二维Logistic映射的混沌条件
  γ   λ1   λ2
  γ∈[0.4,0.57]   λ1=0.6   λ2=0.4
  γ∈[0.3,0.54]   λ1=0.7   λ2=0.3
  γ∈[0.2,0.45]   λ1=0.8   λ2=0.2
  γ=0.1   λ1∈[0.65,0.9]   λ2∈[0.65,0.9]
二维Logistic映射的动力学行为是由动力学方程中的控制参数λ1、λ2、γ、μ来控制的,初始点(X0,Y0)=(0.1,0.11),γ=0.1时,在参数λ1=λ2=0.89时,Windows操作系统出现混沌现象。
步骤4)、分别执行式子Z=X%256和Z′=X′%256,得到两个小于256的整数Z和Z′;
步骤5)、密码的每个字节按序与M,Z,Z′进行异或运算,得到密钥K1′;
步骤6)、Y按序与M,Z,Z′进行加法运算,得到新的值Y′;
步骤7)、Y′与K1′进行异或运算,得到最终的密钥K2′;
步骤7、打开所选文件,找到文件的末尾,获取文件末尾的后L3个字符,将其读入新定义的字符数组C′中;
步骤8、定义循环语句,循环执行次数为L3,循环执行内容如下:使C′的每个字符与K2′进行异或运算,得到新的单个字符,直至循环结束;
步骤9、比较C′的每个字符与C的每个字符,验证是否每个字符都相等,如果相等,执行步骤10,否则显示“解密失败”;
步骤10、打开所选文件,获得文件的字节数L2′,L2′即为文件的长度;
步骤11、定义一个字符数组D′,数组大小为L2′;
步骤12、从文件头部开始,将文件的内容读取到数组D′中;
步骤13、定义循环语句,循环执行次数为(L2′-L3),循环执行内容如下:数组D′中的前(L2′-L3)个字符分别按序与K2′进行加法运算,与(L2′-L3)进行异或运算,与(K2′%(L2′-L3))进行异或运算,与K2′进行减法运算,异或运算,得到数组D′中的新的每个字符;
步骤14、从文件头部开始,将数组D′中的内容写回到所选文件中;
步骤15、设置文件长度为(L2′-L3)。
步骤16、关闭所选文件,完成解密。
其中文件夹的加密过程,按如下步骤进行:
步骤1、浏览磁盘文件夹;
步骤2、选择待加密的文件夹,获得路径Pa1,Pa1是待加密的文件夹路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、对文件夹进行遍历操作。在Pa1后面添加“\\”和*.*,以获得对所有文件进行选定操作的权利;此时如果遇到了子文件夹,先过滤Windows操作系统在文件夹下自带的“.”和“..”文件夹,而后递归遍历该文件夹下的子文件夹,以获得对子文件夹下的所有文件的选定操作权利;
步骤5、对文件夹下的所有文件包括子文件夹下的所有文件逐个执行“文件加密过程”的步骤4-16,实现对所有文件的加密处理;
步骤6在待加密的文件夹名称的后面加上一个后缀,令其成为Windows操作系统文件格式,完成对文件夹的加密操作。
其中文件夹的解密过程,按如下步骤进行:
步骤1、浏览磁盘文件夹;
步骤2、选择待解密的文件夹,获得路径Pa1′,Pa1′是待加密的文件夹路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、过滤待解密文件夹的后缀,使其由Windows操作系统文件格式恢复为普通文件夹格式;
步骤5、对文件夹进行遍历操作。在Pa1′后面添加“\\”和*.*,以获得对所有文件进行选定操作的权利;此时如果遇到了子文件夹,先过滤Windows操作系统在文件夹下自带的“.”和“..”文件夹,而后递归遍历该文件夹下的子文件夹,以获得对子文件夹下的所有文件的选定操作权利;
步骤6、对文件夹下的所有文件(包括子文件夹下的所有文件)逐个执行“文件解密过程”的步骤4-16,实现对所有文件的解密处理。
本发明的优点:该方法将目标文件夹加密为Windows操作系统文件,利用混沌理论将文件夹下的文件逐个进行加密,实现了双重加密机制。而解密时利用密钥验证机制,逐步对文件和文件夹进行解密,实现了在安全性方面的双重保障,并且Windows操作系统在时间复杂度方面也有不错的表现。
附图说明
图1为本发明文件加密过程流程图;
图2为本发明文件解密过程流程图;
图3为本发明文件夹加密过程流程图;
图4为本发明文件夹解密过程流程图。
具体实施方式
本发明结合具体实施例和说明书附图加以详细说明。
开发环境硬件配置
版本:V7.99.10.1221
Windows操作系统:Microsoft Windows XP Professional(SP3)
CPU:英特尔Pentium Dual-Core E5200 @ 2.50GHz
内存:4GB(三星DDR2667MHz)
硬盘:500GB(剩余403.03GB)
该方法包括文件的加密过程与解密过程和文件夹的加密过程与解密过程;
其中文件的加密过程,按如下步骤进行:如图1所示,
步骤1、浏览磁盘文件;
步骤2、选择待加密的文件,获得路径Path1,Path1是待加密的文件路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、定义一个整型变量L1用以记录密码的长度;
步骤5、将整型变量L1的值赋给一个新的整型变量Y;
步骤6、定义循环语句,循环执行次数为L1,循环执行过程按如下步骤进行:
步骤1)、在满足公式(1)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成一个整数N;
Xn+1=μXn(1-Xn)μ∈(0,4],X∈(0,1)        (1)
上式为一维Logistic混沌映射公式,其中μ被称为Logistic参数,Xn被称为伪随机数,n被称为伪随机数的个数。运用以上的迭代公式,从理论上来说只需要通过初始值的简单变化,就可以产生取值非常丰富的、差别很大的、很难推测的伪随机数序列。因此我们只需要简单选定初值μ和X0,然后通过不断的迭代运算,就可以产生一个很好的伪随机数序列。其中μ是一个介于(0,4]的数,X0是一个介于(0,1)的数。根据分析,发现μ取值在4附近的时候,伪随机数序列的取值区间范围较大,这个取值范围比较适合用来产生伪随机数序列。本实施例定义μ=3.9,X0=0.01。
步骤2)、执行公式M=N%256,得到一个小于256的整数M;
步骤3)、在满足公式(2)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成两个整数X和X′;
X n + 1 = μλ 1 * X n * ( 1 - X n ) + γ * Y n Y n + 1 = μλ 2 * Y n * ( 1 - Y n ) + γ * X n - - - ( 2 )
上式为二维Logistic混沌映射公式。二维Logistic映射的混沌条件如下表所示
表1-1  二维Logistic映射的混沌条件
  γ   λ1   λ2
  γ∈[0.4,0.57]   λ1=0.6   λ2=0.4
  γ∈[0.3,0.54]   λ1=0.7   λ2=0.3
  γ∈[0.2,0.45]   λ1=0.8   λ2=0.2
  γ=0.1   λ1∈[0.65,0.9]   λ2∈[0.65,0.9]
二维Logistic映射的动力学行为是由动力学方程中的控制参数λ1、λ2、γ、μ来控制的,通常取μ=4。初始点(X0,Y0)=(0.1,0.11),γ=0.1时,在参数λ1=λ2=0.89时,Windows操作系统出现混沌现象。本实施例定义μ=4,(X0,Y0)=(0.1,0.11)γ=0.1,λ1=λ2=0.89。
步骤4)、分别执行公式Z=X%256和Z′=X′%256,得到两个小于256的整数Z和Z′;
步骤5)、密码的每个字节按序与M,Z,Z′进行异或运算,得到密钥K1;
步骤6)、Y按序与M,Z,Z′进行加法运算,得到新的值Y′;
步骤7)、Y′与K1进行异或运算,得到最终的密钥K2;
步骤7、打开所选文件,获得文件的字节数L2,L2即为文件的长度;
步骤8、定义一个字符数组D,数组大小为L2;
步骤9、从文件头部开始,将文件的内容读取到数组D中;
步骤10、定义循环语句,循环执行次数为L2,循环执行过程如下:
数组D中的每个字符按序与K2分别进行异或运算,加法运算,与L2进行异或运算,与(K2%L2)进行异或运算,再与K2进行减法运算,得到数组D中的新的每个字符;
步骤11、从文件头部开始,将数组D中的内容写回到所选文件中;
步骤12、删除数组D;
步骤13、定义字符数组C,C的内容是写定的字符串;
步骤14、定义循环语句,循环执行次数为L3,L3为C的大小,循环执行内容如下:使C的每个字符与K2进行异或运算,得到新的单个字符,直至循环结束;
步骤15、找到所选文件的尾部,将C的内容写在这里,作为密码验证信息;
步骤16、关闭所选文件,完成加密。
文件的加密结果如下表所示:
  加密前   加密后
  好好学习,天天向上!   傷>螓酚ǔH责」晖衰絇PP_D3
其中文件的解密过程,按如下步骤进行:如图2所示,
步骤1、浏览磁盘文件;
步骤2、选择待解密的文件,获得路径Path1′,Path1′是待解密的文件路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、定义一个整型变量L1用以记录密码的长度;
步骤5、将整型变量L1的值赋给一个新的整型变量Y;
步骤6、定义循环语句,循环执行次数为L1,循环执行过程按如下步骤进行:
步骤1)、在满足公式(1)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成一个整数N;
Xn+1=μXn(1-Xn)μ∈(0,4],X∈(0,1)        (1)
上式为一维Logistic混沌映射公式,其中μ被称为Logistic参数,Xn被称为伪随机数,n被称为伪随机数的个数。运用以上的迭代公式,从理论上来说只需要通过初始值的简单变化,就可以产生取值非常丰富的、差别很大的、很难推测的伪随机数序列。因此我们只需要简单选定初值μ和X0,然后通过不断的迭代运算,就可以产生一个很好的伪随机数序列。其中μ是一个介于(0,4]的数,X0是一个介于(0,1)的数。根据分析,发现μ取值在4附近的时候,伪随机数序列的取值区间范围较大,这个取值范围比较适合用来产生伪随机数序列。本实施例定义μ=3.9,X0=0.01。
步骤2)、执行式子M=N%256,得到一个小于256的整数M;
步骤3)、在满足公式(2)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成两个整数X和X′;
X n + 1 = μλ 1 * X n * ( 1 - X n ) + γ * Y n Y n + 1 = μλ 2 * Y n * ( 1 - Y n ) + γ * X n - - - ( 2 )
上式为二维Logistic混沌映射公式。二维Logistic映射的混沌条件如下表所示
表1-2  二维Logistic映射的混沌条件
  γ   λ1   λ2
  γ∈[0.4,0.57]   λ1=0.6   λ2=0.4
  γ∈[0.3,0.54]   λ1=0.7   λ2=0.3
  γ∈[0.2,0.45]   λ1=0.8   λ2=0.2
  γ=0.1   λ1∈[0.65,0.9]   λ2∈[0.65,0.9]
二维Logistic映射的动力学行为是由动力学方程中的控制参数λ1、λ2、γ、μ来控制的,通常取μ=4。初始点(X0,Y0)=(0.1,0.11),γ=0.1时,在参数λ1=λ2=0.89时,Windows操作系统出现混沌现象。本实施例定义μ=4,(X0,Y0)=(0.1,0.11)γ=0.1,λ1=λ2=0.89。
步骤4)、分别执行式子Z=X%256和Z′=X′%256,得到两个小于256的整数Z和Z′;
步骤5)、密码的每个字节按序与M,Z,Z′进行异或运算,得到密钥K1′;
步骤6)、Y按序与M,Z,Z′进行加法运算,得到新的值Y′;
步骤7)、Y′与K1′进行异或运算,得到最终的密钥K2′;
步骤7、打开所选文件,找到文件的末尾,获取文件末尾的后L3个字符,将其读入新定义的字符数组C′中;
步骤8、定义循环语句,循环执行次数为L3,循环执行内容如下:使C′的每个字符与K2′进行异或运算,得到新的单个字符,直至循环结束;
步骤9、比较C′的每个字符与C的每个字符,验证是否每个字符都相等,如果相等,执行步骤10,否则显示“解密失败”;
步骤10、打开所选文件,获得文件的字节数L2′,L2′即为文件的长度;
步骤11、定义一个字符数组D′,数组大小为L2′;
步骤12、从文件头部开始,将文件的内容读取到数组D′中;
步骤13、定义循环语句,循环执行次数为(L2′-L3),循环执行内容如下:数组D′中的前(L2′-L3)个字符分别按序与K2′进行加法运算,与(L2′-L3)进行异或运算,与(K2′%(L2′-L3))进行异或运算,与K2′进行减法运算,异或运算,得到数组D′中的新的每个字符;
步骤14、从文件头部开始,将数组D′中的内容写回到所选文件中;
步骤15、设置文件长度为(L2′-L3)。
步骤16、关闭所选文件,完成解密。
文件的解密结果如下表所示:
  解密前   解密后
  傷>螓酚ǔH责」晖衰絇PP_D3   好好学习,天天向上!
其中文件夹的加密过程,按如下步骤进行:
步骤1、浏览磁盘文件夹;
步骤2、选择待加密的文件夹,获得路径Pa1,Pa1是待加密的文件夹路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、对文件夹进行遍历操作。在Pa1后面添加“\\”和*.*,以获得对所有文件进行选定操作的权利;此时如果遇到了子文件夹,先过滤Windows操作系统在文件夹下自带的“.”和“..”文件夹,而后递归遍历该文件夹下的子文件夹,以获得对子文件夹下的所有文件的选定操作权利;
步骤5、对文件夹下的所有文件包括子文件夹下的所有文件逐个执行“文件加密过程”的步骤4-16,实现对所有文件的加密处理;
步骤6在待加密的文件夹名称的后面加上一个后缀
——“.{E211B736-43FD-11D1-9EFB-0000F8757FCD}”,令其成为Windows操作系统文件格式,完成对文件夹的加密操作。
文件夹的加密结果如下表所示:
  加密前   加密后
  普通文件夹/文件内容可读   系统文件/文件内容不可读
其中文件夹的解密过程,按如下步骤进行:
步骤1、浏览磁盘文件夹;
步骤2、选择待解密的文件夹,获得路径Pa1′,Pa1′是待加密的文件夹路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、过滤待解密文件夹的后缀——“.{E211B736-43FD-11D1-9EFB-0000F8757FCD}”,使其由Windows操作系统文件格式恢复为普通文件夹格式;
步骤5、对文件夹进行遍历操作。在Pa1′后面添加“\\”和*.*,以获得对所有文件进行选定操作的权利;此时如果遇到了子文件夹,先过滤Windows操作系统在文件夹下自带的“.”和“..”文件夹,而后递归遍历该文件夹下的子文件夹,以获得对子文件夹下的所有文件的选定操作权利;
步骤6、对文件夹下的所有文件(包括子文件夹下的所有文件)逐个执行“文件解密过程”的步骤4-16,实现对所有文件的解密处理。
文件夹的解密结果如下表所示:
  解密前   解密后
  系统文件/文件内容不可读   普通文件夹/文件内容可读

Claims (3)

1.一种基于混沌的通用电子档案加解密方法,其特征在于:该方法包括文件的加密过程与解密过程和文件夹的加密过程与解密过程;
其中文件的加密过程,按如下步骤进行:
步骤1、浏览磁盘文件;
步骤2、选择待加密的文件,获得路径Path1,Path1是待加密的文件路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、定义一个整型变量L1用以记录密码的长度;
步骤5、将整型变量L1的值赋给一个新的整型变量Y;
步骤6、定义循环语句,循环执行次数为L1:
步骤7、打开所选文件,获得文件的字节数L2,L2即为文件的长度;
步骤8、定义一个字符数组D,数组大小为L2;
步骤9、从文件头部开始,将文件的内容读取到数组D中;
步骤10、定义循环语句,循环执行次数为L2,循环执行过程如下:数组D中的每个字符按序与K2分别进行异或运算,加法运算,与L2进行异或运算,与K2%L2进行异或运算,再与K2进行减法运算,得到数组D中的新的每个字符;
步骤11、从文件头部开始,将数组D中的内容写回到所选文件中;
步骤12、删除数组D;
步骤13、定义字符数组C,C的内容是写定的字符串;
步骤14、定义循环语句,循环执行次数为L3,L3为C的大小,循环执行内容如下:使C的每个字符与K2进行异或运算,得到新的单个字符,直至循环结束;
步骤15、找到所选文件的尾部,将C的内容写在这里,作为密码验证信息;
步骤16、关闭所选文件,完成加密;
其中文件的解密过程,按如下步骤进行:
步骤1、浏览磁盘文件;
步骤2、选择待解密的文件,获得路径Path1′,Path1′是待解密的文件路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、定义一个整型变量L1用以记录密码的长度;
步骤5、将整型变量L1的值赋给一个新的整型变量Y;
步骤6、定义循环语句,循环执行次数为L1:
步骤7、打开所选文件,找到文件的末尾,获取文件末尾的后L3个字符,将其读入新定义的字符数组C′中;
步骤8、定义循环语句,循环执行次数为L3,循环执行内容如下:使C′的每个字符与K2′进行异或运算,得到新的单个字符,直至循环结束;
步骤9、比较C′的每个字符与C的每个字符,验证是否每个字符都相等,如果相等,执行步骤10,否则显示“解密失败”;
步骤10、打开所选文件,获得文件的字节数L2′,L2′即为文件的长度;
步骤11、定义一个字符数组D′,数组大小为L2′;
步骤12、从文件头部开始,将文件的内容读取到数组D′中;
步骤13、定义循环语句,循环执行次数为L2′-L3,循环执行内容如下:数组D′中的前L2′-L3个字符分别按序与K2′进行加法运算,与L2′-L3进行异或运算,与K2′%(L2′-L3)进行异或运算,与K2′进行减法运算,异或运算,得到数组D′中的新的每个字符;
步骤14、从文件头部开始,将数组D′中的内容写回到所选文件中;
步骤15、设置文件长度为L2′-L3;
步骤16、关闭所选文件,完成解密;
其中文件夹的加密过程,按如下步骤进行:
步骤1、浏览磁盘文件夹;
步骤2、选择待加密的文件夹,获得路径Pa1,Pa1是待加密的文件夹路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、对文件夹进行遍历操作,在Pa1后面添加“\\”和*.*,以获得对所有文件进行选定操作的权利;此时如果遇到了子文件夹,先过滤Windows操作系统在文件夹下自带的“.”和“..”文件夹,而后递归遍历该文件夹下的子文件夹,以获得对子文件夹下的所有文件的选定操作权利;
步骤5、对文件夹下的所有文件包括子文件夹下的所有文件逐个执行“文件加密过程”的步骤4-16,实现对所有文件的加密处理;
步骤6在待加密的文件夹名称的后面加上一个后缀,令其成为Windows操作系统文件格式,完成对文件夹的加密操作;
其中文件夹的解密过程,按如下步骤进行:
步骤1、浏览磁盘文件夹;
步骤2、选择待解密的文件夹,获得路径Pa1′,Pa1′是待加密的文件夹路径;
步骤3、输入密码,定义字符指针P获得用户输入的密码的内容;
步骤4、过滤待解密文件夹的后缀,使其由Windows操作系统文件格式恢复为普通文件夹格式;
步骤5、对文件夹进行遍历操作,在Pa1′后面添加“\\”和*.*,以获得对所有文件进行选定操作的权利;此时如果遇到了子文件夹,先过滤Windows操作系统在文件夹下自带的“.”和“..”文件夹,而后递归遍历该文件夹下的子文件夹,以获得对子文件夹下的所有文件的选定操作权利;
步骤6、对文件夹下的所有文件包括子文件夹下的所有文件逐个执行“文件解密过程”的步骤4-16,实现对所有文件的解密处理。
2.根据权利要求1所述的基于混沌的通用电子档案加解密方法,其特征在于:所述的文件加密过程中的步骤6,按如下步骤进行:
步骤1)、在满足公式(1)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成一个整数N;
Xn+1=μXn(1-Xn)μ∈(0,4],X∈(0,1)        (1)
上式为一维Logistic混沌映射公式,其中μ被称为Logistic参数,Xn被称为第一维伪随机数,n被称为伪随机数的个数,运用以上的迭代公式,选定初值μ和X0,然后通过不断的迭代运算,产生一个伪随机数序列,其中μ是一个介于(0,4]的数,X0是一个介于(0,1)的数;
步骤2)、执行公式M=N%256,得到一个小于256的整数M;
步骤3)、在满足公式(2)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成两个整数X和X′;
X n + 1 = μλ 1 * X n * ( 1 - X n ) + γ * Y n Y n + 1 = μλ 2 * Y n * ( 1 - Y n ) + γ * X n - - - ( 2 )
上式为二维Logistic混沌映射公式,式中Xn被称为第一维伪随机数,Yn被称为第二维伪随机数,二维Logistic映射的混沌条件如下表所示
表1-1  二维Logistic映射的混沌条件
  γ   λ1   λ2   γ∈[0.4,0.57]   λ1=0.6   λ2=0.4   γ∈[0.3,0.54]   λ1=0.7   λ2=0.3   γ∈[0.2,0.45]   λ1=0.8   λ2=0.2   γ=0.1   λ1∈[0.65,0.9]   λ2∈[0.65,0.9]
二维Logistic映射的动力学行为是由动力学方程中的控制参数λ1、λ2、γ、μ来控制的,初始点(X0,Y0)=(0.1,0.11),γ=0.1时,在参数λ1=λ2=0.89时,Windows操作系统出现混沌现象;
步骤4)、分别执行公式Z=X%256和Z′=X′%256,得到两个小于256的整数Z和Z′;
步骤5)、密码的每个字节按序与M,Z,Z′进行异或运算,得到密钥K1;
步骤6)、Y按序与M,Z,Z′进行加法运算,得到新的值Y′;
步骤7)、Y′与K1进行异或运算,得到最终的密钥K2,。
3.根据权利要求1所述的基于混沌的通用电子档案加解密方法,其特征在于:所述的文件解密过程中的步骤6,按如下步骤进行:
步骤1)、在满足公式(1)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成一个整数N;
Xn+1=μXn(1-Xn)μ∈(0,4],X∈(0,1)        (1)
上式为一维Logistic混沌映射公式,其中μ被称为Logistic参数,Xn被称为第一维伪随机数,n被称为伪随机数的个数,运用以上的迭代公式,选定初值μ和X0,然后通过不断的迭代运算,产生一个伪随机数序列,其中μ是一个介于(0,4]的数,X0是一个介于(0,1)的数;
步骤2)、执行式子M=N%256,得到一个小于256的整数M;
步骤3)、在满足公式(2)的条件下,利用已定义的初始值获得当次迭代后小数点的4、5、6位组成两个整数X和X′;
X n + 1 = μλ 1 * X n * ( 1 - X n ) + γ * Y n Y n + 1 = μλ 2 * Y n * ( 1 - Y n ) + γ * X n - - - ( 2 )
上式为二维Logistic混沌映射公式,式中Xn被称为第一维伪随机数,Yn被称为第二维伪随机数,二维Logistic映射的混沌条件如下表所示
表1-2  二维Logistic映射的混沌条件
  γ   λ1   λ2   γ∈[0.4,0.57]   λ1=0.6   λ2=0.4   γ∈[0.3,0.54]   λ1=0.7   λ2=0.3   γ∈[0.2,0.45]   λ1=0.8   λ2=0.2   γ=0.1   λ1∈[0.65,0.9]   λ2∈[0.65,0.9]
二维Logistic映射的动力学行为是由动力学方程中的控制参数λ1、λ2、γ、μ来控制的,初始点(X0,Y0)=(0.1,0.11),γ=0.1时,在参数λ1=λ2=0.89时,Windows操作系统出现混沌现象;步骤4)、分别执行式子Z=X%256和Z′=X′%256,得到两个小于256的整数Z和Z′;
步骤5)、密码的每个字节按序与M,Z,Z′进行异或运算,得到密钥K1′;
步骤6)、Y按序与M,Z,Z′进行加法运算,得到新的值Y′;
步骤7)、Y′与K1′进行异或运算,得到最终的密钥K2′。
CN2011100793353A 2011-03-31 2011-03-31 基于混沌的通用电子档案加解密方法 Expired - Fee Related CN102142074B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100793353A CN102142074B (zh) 2011-03-31 2011-03-31 基于混沌的通用电子档案加解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100793353A CN102142074B (zh) 2011-03-31 2011-03-31 基于混沌的通用电子档案加解密方法

Publications (2)

Publication Number Publication Date
CN102142074A true CN102142074A (zh) 2011-08-03
CN102142074B CN102142074B (zh) 2013-04-10

Family

ID=44409576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100793353A Expired - Fee Related CN102142074B (zh) 2011-03-31 2011-03-31 基于混沌的通用电子档案加解密方法

Country Status (1)

Country Link
CN (1) CN102142074B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338445A (zh) * 2013-06-19 2013-10-02 深圳市垦鑫达科技有限公司 文件加解密方法及系统
CN103810435A (zh) * 2013-12-23 2014-05-21 潍柴动力股份有限公司 一种Simulink模型的加密和解密方法,及相关装置
CN104732159A (zh) * 2013-12-24 2015-06-24 北京慧眼智行科技有限公司 一种文件处理方法及装置
CN111177760A (zh) * 2019-12-30 2020-05-19 核工业北京地质研究院 一种基于异或算法改进的数据加密解密方法
CN111192187A (zh) * 2018-08-27 2020-05-22 优信数享(北京)信息技术有限公司 一种解密方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040120521A1 (en) * 2002-10-10 2004-06-24 Henson Kevin M. Method and system for data encryption and decryption
CN101216868A (zh) * 2007-01-05 2008-07-09 李树德 一种应用混沌密码流加密的方法和系统
CN101840485A (zh) * 2010-05-19 2010-09-22 韩萧 文件混序分割存储与合成互验的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040120521A1 (en) * 2002-10-10 2004-06-24 Henson Kevin M. Method and system for data encryption and decryption
CN101216868A (zh) * 2007-01-05 2008-07-09 李树德 一种应用混沌密码流加密的方法和系统
CN101840485A (zh) * 2010-05-19 2010-09-22 韩萧 文件混序分割存储与合成互验的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338445A (zh) * 2013-06-19 2013-10-02 深圳市垦鑫达科技有限公司 文件加解密方法及系统
CN103810435A (zh) * 2013-12-23 2014-05-21 潍柴动力股份有限公司 一种Simulink模型的加密和解密方法,及相关装置
CN104732159A (zh) * 2013-12-24 2015-06-24 北京慧眼智行科技有限公司 一种文件处理方法及装置
CN104732159B (zh) * 2013-12-24 2019-01-25 北京慧眼智行科技有限公司 一种文件处理方法及装置
CN111192187A (zh) * 2018-08-27 2020-05-22 优信数享(北京)信息技术有限公司 一种解密方法及系统
CN111192187B (zh) * 2018-08-27 2023-10-24 优信数享(北京)信息技术有限公司 一种解密方法及系统
CN111177760A (zh) * 2019-12-30 2020-05-19 核工业北京地质研究院 一种基于异或算法改进的数据加密解密方法

Also Published As

Publication number Publication date
CN102142074B (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
JP5700481B2 (ja) 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
Peterson Cryptkeeper: Improving security with encrypted RAM
CN101311942B (zh) 对软件进行加密、解密的方法及加密、解密的装置
TWI567557B (zh) 具防護重播攻擊之用於記憶體加密的可微調加密模式
CN102142074B (zh) 基于混沌的通用电子档案加解密方法
CN103210396A (zh) 包括用于保护敏感代码和数据的架构的方法和装置
CN103607279A (zh) 基于多核处理器的密钥保护方法及系统
CN109522758B (zh) 硬盘数据管理方法及硬盘
US6526145B2 (en) Data encryptor/decryptor using variable in-place I/O
CN105678173A (zh) 基于硬件事务内存的vTPM安全保护方法
James Stephen et al. Program analysis for secure big data processing
Visconti et al. Examining PBKDF2 security margin—Case study of LUKS
Sassani et al. Evaluating encryption algorithms for sensitive data using different storage devices
WO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
Agostini et al. BitCracker: BitLocker meets GPUs
CN113904823B (zh) 常数级授权计算复杂度的属性基可搜索加密方法及系统
CN103154967A (zh) 修改元素的长度以形成加密密钥
Nguyen et al. Duetsgx: Differential privacy with secure hardware
TW200846972A (en) Method for generating and using a key for encryption and decryption in a computer device
US10505714B2 (en) Floating point cohort based encryption
Arthur et al. History of the TPM
Shen et al. BMSE: Blockchain-based multi-keyword searchable encryption for electronic medical records
CN104951407A (zh) 一种可加密u盘及其加密方法
JP6212377B2 (ja) 演算装置、演算方法およびコンピュータプログラム
Tarle et al. On the information security using Fibonacci series

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20110803

Assignee: Shenyang Rong Xun Information Technology Industry Co.,Ltd.

Assignor: Northeastern University

Contract record no.: 2014210000006

Denomination of invention: Chaos based universal electronic file encryption and decryption method

Granted publication date: 20130410

License type: Common License

Record date: 20140128

EE01 Entry into force of recordation of patent licensing contract
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130410

CF01 Termination of patent right due to non-payment of annual fee