CN106372529B - 一种文件加解密的方法和系统 - Google Patents
一种文件加解密的方法和系统 Download PDFInfo
- Publication number
- CN106372529B CN106372529B CN201610707462.6A CN201610707462A CN106372529B CN 106372529 B CN106372529 B CN 106372529B CN 201610707462 A CN201610707462 A CN 201610707462A CN 106372529 B CN106372529 B CN 106372529B
- Authority
- CN
- China
- Prior art keywords
- data element
- original document
- code key
- file
- encryption
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Abstract
本发明涉及一种文件加解密的方法和系统。所述方法包括:创建秘钥数组以及跳跃函数;读取原始文件的数据元素;分别将原始文件的数据元素作为跳跃函数的因变量,计算跳跃函数对应的值,将对应的值作为索引查询秘钥数组,得到各个数据元素对应的秘钥;将所述原始文件的各个数据元素分别与其对应的秘钥异或得到加密文件;将加密文件的各个数据元素分别与其对应的秘钥异或还原得到原始文件。本发明基于异或的可逆性,创建跳跃函数,实现跳跃式索引原始文件的数据元素应对的秘钥,将原始文件的数据元素和对应的秘钥异或得到加密文件,将加密文件的数据元素和对应的秘钥异或还原得到原始文件,能够很好的在内存小的嵌入式设备上实现文件的加解密。
Description
技术领域
本发明涉及文件安全领域,特别是涉及一种文件加解密的方法和系统。
背景技术
在嵌入式设备生产时,程序文件要发放工厂,程序文件容易被竞争对手获取;远程文件升级时,升级文件易被截获。所以在程序文件发放工厂或者远程文件升级时,通常采用一种文件加密算法进行加密保护。现有的一些加密算法过于复杂、代码量大,导致占用内存大,无法在内存小的嵌入式设备上实现。
发明内容
基于此,有必要针对在内存小的设备上难以实现文件加解密的问题,提供一种文件加解密的方法和系统。
一种文件加解密的方法,包括:创建秘钥数组以及跳跃函数;所述秘钥数组包含多个秘钥;读取原始文件的数据序列,所述数据序列包含多个数据元素;分别将所述原始文件的数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值,将对应的值作为索引查询所述秘钥数组,得到各个数据元素对应的秘钥;将所述原始文件的各个数据元素分别与其对应的秘钥进行异或运算,得到所述原始文件的加密文件;将所述加密文件的各个数据元素分别与其对应的秘钥进行异或运算,还原得到原始文件。
一种文件加解密的系统,包括:秘钥数组创建模块、跳跃函数设置模块、原始文件读取模块、计算模块、加密模块和还原模块;所述秘钥数组创建模块,用于创建秘钥数组,所述秘钥数组包含多个秘钥;所述跳跃函数设置模块,用于设置跳跃函数;所述原始文件读取模块,用于读取原始文件的数据序列,所述数据序列包含多个数据元素;所述计算模块,用于分别将所述原始文件的数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值,将对应的值作为索引查询所述秘钥数组,得到各个数据元素对应的秘钥;所述加密模块,用于将所述原始文件的各个数据元素分别与其对应的秘钥进行异或运算,得到所述原始文件的加密文件;所述还原模块,用于将所述加密文件的各个数据元素分别与其对应的秘钥进行异或运算,还原得到原始文件。
本方法基于异或的可逆性,创建跳跃函数,实现跳跃式索引原始文件的数据元素应对的秘钥,将原始文件的数据元素和对应的秘钥异或得到加密文件,将加密文件的数据元素和对应的秘钥异或还原得到原始文件,能够很好的在内存小的嵌入式设备上实现文件的加解密。
附图说明
图1为一实施例的一种文件加解密的方法的示意性流程图;
图2为另一实施例的一种文件加解密的方法的示意性流程图;
图3为一实施例的一种文件加解密的系统的示意性结构图。
具体实施方式
为了更进一步阐述本发明所采取的技术手段及取得的效果,下面结合附图及较佳实施例,对本发明的技术方案,进行清楚和完整的描述。
图1为一实施例的一种文件加解密的方法的示意性流程图。
如图1所示,一种文件加解密的方法,包括:
S101,创建秘钥数组以及跳跃函数;所述秘钥数组包含多个秘钥。
作为一优选实施方式,创建秘钥数组为:
K[n]={K1,K2,K3...KN}
其中,n∈[1,N],N是秘钥数组的长度,即秘钥数组中秘钥的总数;所述秘钥数组自由设定,可以是非零随机数(全零起不到加密效果)。所述秘钥数组的长度N可以根据加密复杂度进行选择,越长越复杂。秘钥的大小可以是8bit、16bit、32bit、64bit,具体大小可以根据进行加密的微处理器(CPU)的位数确定。
作为一优选实施方式,设置所述跳跃函数为:y=F(x),
其中:x的具体取值是原始文件的数据元素,k是原始文件的各个数据元素的bit数,N是秘钥数组中秘钥的总数,y为跳跃函数的值,因此,通过不同的参数x计算出不同的索引y,可以跳跃式选取原始文件的数据元素对应的秘钥,实现异或加密。
S102,读取原始文件的数据序列,所述数据序列包含多个数据元素。
作为一优选实施方式,读取的原始文件的数据序列为:
D[m]={D1,D2,D3...DM}
其中,m∈[1,M],M是所述原始文件中数据元素的总数;原始文件的数据元素可以是8bit、16bit、32bit、64bit,具体大小与秘钥数组中的秘钥的具体大小一致。
S103,分别将所述原始文件的数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值,将对应的值作为索引查询所述秘钥数组,得到各个数据元素对应的秘钥。
S104,将所述原始文件的各个数据元素分别与其对应的秘钥进行异或运算,得到所述原始文件的加密文件。
作为一优选实施方式,通过下式可以得到加密文件中的数据元素:
其中,m∈[1,M],n∈[1,N],是异或符号,D[m]是原始文件的第m个数据元素,E[m]是加密文件的第m个数据元素,F(D(m))是原始文件的第m个数据元素对应的索引。
S105,将所述加密文件的各个数据元素分别与其对应的秘钥进行异或运算,还原得到原始文件。
作为一优选实施方式,通过下式可以还原得到原始文件中的数据元素:
其中,m∈[1,M],n∈[1,N],是异或符号,D[m]是原始文件的第m个数据元素,E[m]是加密文件的第m个数据元素,F(D(m))是原始文件的第m个数据元素对应的索引。
本实施例基于异或的可逆性,创建跳跃函数,实现跳跃式索引原始文件的数据元素对应的秘钥,将原始文件的数据元素和对应的秘钥异或得到加密文件,将加密文件的数据元素和对应的秘钥异或还原得到原始文件,能够很好的在内存小的嵌入式设备上实现文件的加解密。
图2为另一实施例的一种文件加解密的方法的示意性流程图。
如图2所示,一种文件加解密的方法,包括:
S201,创建秘钥数组:
K[n]={K1,K2,K3…KN};
其中,n∈[1,N],N是秘钥数组的长度。
S202,创建跳跃函数:y=F(x)。
作为一优选实施例,y=F(D(m-1))=D(m-1)%N+1。
S203,读取原始文件的数据序列:
D[m]={D1,D2,D3…DM};
其中,m∈[1,M],M是所述原始文件的数据元素的总数。
S204,设置起始索引S;获取所述起始索引对应的秘钥数组的秘钥,将其作为原始文件的第1个数据元素的秘钥。
S205,分别将所述原始文件的非第一个数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值,将对应的值作为索引查询所述秘钥数组,得到各个数据元素对应的秘钥。
S206,通过下式对原始文件中的数据元素加密:
S207,通过下式对加密文件中的数据元素还原:
其中,D[1]是原始文件的第1个数据元素,D[m]是原始文件的第m个数据元素,E[1]是加密文件的第1个数据元素,E[m]是加密文件的第m个数据元素,M是原始文件的数据序列总数,S是起始索引,K[S]是原始文件的第1个数据元素对应的秘钥,F(D[m-1])是原始文件的第m个数据元素D[m]对应的跳跃函数的值,K[F(D[m-1])]是原始文件的第m个数据元素D[m]对应的密钥。
作为一优选实施方式,对原始文件中的数据序列的加密可以按序进行,具体如下:读取原始文件的数据元素D[m],判断所述数据元素D[m]是否是原始文件的第1个数据元素D[1],若是,获取起始索引S对应的秘钥数组的秘钥;若所述数据元素不是原始文件的第1个数据元素,用所述数据元素D[m-1]计算跳跃函数的值,将其作为数据序列D[m]对应的秘钥索引,然后将原始文件的数据元素D[m]和索引到的秘钥进行异或运算,得到数据元素D[m]对应的加密数据元素;读取原始文件的数据元素D[m+1],用所述数据元素D[m]计算跳跃函数的值,将其作为数据元素D[m+1]对应的秘钥索引,然后将原始文件的数据元素D[m+1]和索引到的秘钥进行异或运算,得到数据元素D[m+1]对应的加密数据元素;判断m+1是否大于等于原始文件的元素总数M,若m+1大于等于原始文件的元素总数M,则结束加密;若m+1小于原始文件的元素总数M,重复上述步骤,最后得到原始文件的加密文件。
作为一优选实施方式,对加密文件中的数据元素的还原可以按序进行。具体如下:读取加密文件的数据元素E[m],判断所述数据元素E[m]是否是加密文件的第1个数据元素E[1],若是,获取起始索引S对应的秘钥数组的秘钥;若所述数据元素不是加密文件的第1个数据元素,用对应跳跃函数的值作为的秘钥数组的索引,然后将加密文件的数据元素和索引到的秘钥进行异或运算,还原得到原始文件的数据元素D[m];读取原始文件的数据元素E[m+1],将加密文件的数据元素E[m+1]和对应的秘钥进行异或运算,还原得到原始文件的数据元素D[m+1],判断m+1是否大于等于加密文件的元素总数M,若m+1大于等于加密文件的元素总数M,则结束加密;若m+1小于加密文件的元素总数M,重复上述步骤,最后还原得到原始文件。
本实施例基于异或的可逆性,通过创建秘钥数组,引入跳跃函数,能够在资源有限的嵌入式设备上进行复杂的加解密文件,且可高效的实现边读取边解密。
图3为一实施例的一种文件加解密的系统的示意性结构图。
如图3所示,一种文件加解密的系统,包括:秘钥数组创建模块101、跳跃函数设置模块102、原始文件读取模块103、计算模块104、加密模块105和还原模块106;所述秘钥数组创建模块101,用于创建秘钥数组,所述秘钥数组包含多个秘钥;所述跳跃函数设置模块102,用于设置跳跃函数;所述原始文件读取模块103,用于读取原始文件的数据序列,所述数据序列包含多个数据元素;所述计算模块104,用于分别将所述原始文件的数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值,将对应的值作为索引查询所述秘钥数组,得到各个数据元素对应的秘钥;所述加密模块105,用于将所述原始文件的各个数据元素分别与其对应的秘钥进行异或运算,得到所述原始文件的加密文件;所述还原模块106,用于将所述加密文件的各个数据元素分别与其对应的秘钥进行异或运算,还原得到原始文件。
作为一优选实施方式,所述跳跃函数设置模块设置的跳跃函数为:
y=F(D(m-1))=D(m-1)%N+1;
其中,D[m]是原始文件的第m个数据元素。
作为一优选实施方式,所述文件加解密的系统还包括起始索引设置模块;所述起始索引设置模块用于设置起始索引S;获取所述起始索引对应的秘钥数组的秘钥,将其作为原始文件的第1个数据元素的秘钥。
作为一优选实施方式,所述加密模块105通过下式对原始文件中的数据元素加密:
其中,D[1]是原始文件的第1个数据元素,D[m]是原始文件的第m个数据元素,E[1]是加密文件的第1个数据元素,E[m]是加密文件的第m个数据元素,M是原始文件的数据序列总数,S是起始索引,K[S]是原始文件的第1个数据元素对应的秘钥,F(D[m-1])是原始文件的第m个数据元素D[m]对应的跳跃函数的值,K[F(D[m-1])]是原始文件的第m个数据元素D[m]对应的密钥。
作为一优选实施方式,所述还原模块106通过下式对加密文件还原:
本实施例基于异或的可逆性,通过跳跃函数设置模块创建跳跃函数,实现跳跃式索引原始文件的数据元素对应的秘钥,加密模块将原始文件的数据元素和对应的秘钥异或得到加密文件,还原模块将加密文件的数据元素和对应的秘钥异或还原得到原始文件,能够很好的在内存小的嵌入式设备上实现文件的加解密。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种文件加解密的方法,其特征在于,包括:
创建秘钥数组以及跳跃函数;所述秘钥数组包含多个秘钥;创建秘钥数组为:K[n]={K1,K2,K3…KN};其中,n∈[1,N];创建的跳跃函数为y=F(x);其中:x的具体取值是原始文件的数据元素,k是原始文件的各个数据元素的bit数,N是秘钥数组中秘钥的总数,y为跳跃函数的值;
读取原始文件的数据序列,所述数据序列包含多个数据元素;
分别将所述原始文件的数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值,将对应的值作为索引查询所述秘钥数组,得到各个数据元素对应的秘钥;
将所述原始文件的各个数据元素分别与其对应的秘钥进行异或运算,得到所述原始文件的加密文件;
将所述加密文件的各个数据元素分别与其对应的秘钥进行异或运算,还原得到原始文件。
2.根据权利要求1所述的文件加解密的方法,其特征在于,分别将所述原始文件的数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值的步骤之前还包括:
设置起始索引;
获取所述起始索引对应的秘钥数组的秘钥,将其作为原始文件的第1个数据元素的秘钥。
3.根据权利要求2所述的文件加解密的方法,其特征在于,将所述原始文件的各个数据元素分别与其对应的秘钥进行异或运算,得到所述原始文件的加密文件的步骤包括:
通过下式对原始文件中的数据元素加密:
其中,D[1]是原始文件的第1个数据元素,D[m]是原始文件的第m个数据元素,E[1]是加密文件的第1个数据元素,E[m]是加密文件的第m个数据元素,M是原始文件的数据元素总数,S是起始索引,K[S]是原始文件的第1个数据元素对应的秘钥,F(D[m-1])是原始文件的第m个数据元素D[m]对应的跳跃函数的值,K[F(D[m-1])]是原始文件的第m个数据元素D[m]对应的密钥。
4.根据权利要求2所述的文件加解密的方法,其特征在于,将所述加密文件的各个数据元素分别与其对应的秘钥进行异或运算,还原得到原始文件的步骤包括:
通过下式对加密文件中的数据元素还原:
其中,D[1]是原始文件的第1个数据元素,D[m]是原始文件的第m个数据元素,E[1]是加密文件的第1个数据元素,E[m]是加密文件的第m个数据元素,M是原始文件的数据元素总数,S是起始索引,K[S]是原始文件的第1个数据元素对应的秘钥,F(D[m-1])是原始文件的第m个数据元素D[m]对应的跳跃函数的值,K[F(D[m-1])]是原始文件的第m个数据元素D[m]对应的密钥。
5.一种文件加解密的系统,其特征在于,包括:秘钥数组创建模块、跳跃函数设置模块、原始文件读取模块、计算模块、加密模块和还原模块;
所述秘钥数组创建模块,用于创建秘钥数组,所述秘钥数组包含多个秘钥;创建秘钥数组为:K[n]={K1,K2,K3…KN};其中,n∈[1,N];
所述跳跃函数设置模块,用于设置跳跃函数;所述设置模块设置的跳跃函数为y=F(x);其中:x的具体取值是原始文件的数据元素,k是原始文件的各个数据元素的bit数,N是秘钥数组中秘钥的总数,y为跳跃函数的值;
所述原始文件读取模块,用于读取原始文件的数据序列,所述数据序列包含多个数据元素;
所述计算模块,用于分别将所述原始文件的数据元素作为所述跳跃函数的因变量,计算所述跳跃函数对应的值,将对应的值作为索引查询所述秘钥数组,得到各个数据元素对应的秘钥;
所述加密模块,用于将所述原始文件的各个数据元素分别与其对应的秘钥进行异或运算,得到所述原始文件的加密文件;
所述还原模块,用于将所述加密文件的各个数据元素分别与其对应的秘钥进行异或运算,还原得到原始文件。
6.根据权利要求5所述的文件加解密的系统,其特征在于,还包括:起始索引设置模块;
所述起始索引设置模块,用于设置起始索引;获取所述起始索引对应的秘钥数组的秘钥,将其作为原始文件的第1个数据元素的秘钥。
7.根据权利要求6所述的文件加解密的系统,其特征在于,加密模块通过下式对原始文件中的数据元素加密:
其中,D[1]是原始文件的第1个数据元素,D[m]是原始文件的第m个数据元素,E[1]是加密文件的第1个数据元素,E[m]是加密文件的第m个数据元素,M是原始文件的数据元素总数,S是起始索引,K[S]是原始文件的第1个数据元素对应的秘钥,F(D[m-1])是原始文件的第m个数据元素D[m]对应的跳跃函数的值,K[F(D[m-1])]是原始文件的第m个数据元素D[m]对应的密钥。
8.根据权利要求6所述的文件加解密的系统,其特征在于,还原模块通过下式对加密文件中的数据元素还原:
其中,D[1]是原始文件的第1个数据元素,D[m]是原始文件的第m个数据元素,E[1]是加密文件的第1个数据元素,E[m]是加密文件的第m个数据元素,M是原始文件的数据元素总数,S是起始索引,K[S]是原始文件的第1个数据元素对应的秘钥,F(D[m-1])是原始文件的第m个数据元素D[m]对应的跳跃函数的值,K[F(D[m-1])]是原始文件的第m个数据元素D[m]对应的密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610707462.6A CN106372529B (zh) | 2016-08-23 | 2016-08-23 | 一种文件加解密的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610707462.6A CN106372529B (zh) | 2016-08-23 | 2016-08-23 | 一种文件加解密的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106372529A CN106372529A (zh) | 2017-02-01 |
CN106372529B true CN106372529B (zh) | 2019-05-07 |
Family
ID=57878825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610707462.6A Active CN106372529B (zh) | 2016-08-23 | 2016-08-23 | 一种文件加解密的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106372529B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613071A (zh) * | 2020-12-25 | 2021-04-06 | 武汉市多比特信息科技有限公司 | 一种文件的加密方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101116081A (zh) * | 2005-02-11 | 2008-01-30 | 通用数据保护公司 | 用于微处理器数据安全的方法和系统 |
CN104252426A (zh) * | 2013-06-28 | 2014-12-31 | 国际商业机器公司 | 利用自加密驱动器加密盘驱动器上的数据的方法和系统 |
-
2016
- 2016-08-23 CN CN201610707462.6A patent/CN106372529B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101116081A (zh) * | 2005-02-11 | 2008-01-30 | 通用数据保护公司 | 用于微处理器数据安全的方法和系统 |
CN104252426A (zh) * | 2013-06-28 | 2014-12-31 | 国际商业机器公司 | 利用自加密驱动器加密盘驱动器上的数据的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106372529A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689947B (zh) | 一种数据处理的方法和装置 | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
US10853497B2 (en) | Method and system for providing an update of code on a memory-constrained device | |
CN109921894B (zh) | 数据传输加密方法、装置及存储介质、服务器 | |
KR101393806B1 (ko) | 다단계 물리적 복제 불가 함수 시스템 | |
CN111586076B (zh) | 基于混合密码的遥控遥测信息防篡改加解密方法和系统 | |
CN103166751A (zh) | 用于保护分组密码免受模板攻击的方法和装置 | |
KR101989813B1 (ko) | 특정 포맷을 가지는 대체 데이터의 생성 및 검증 | |
CN101739400A (zh) | 生成索引的方法和装置以及检索方法和装置 | |
EP2991264B1 (en) | Encrypted text matching system, method and program | |
CN109150903A (zh) | 一种账号管理方法、装置、存储介质和终端设备 | |
CN103095449B (zh) | 一种基于流密码的动态加密解密方法 | |
CN107368744A (zh) | 用于更新固件组件的方法以及测量和控制技术的设备 | |
US20220012186A1 (en) | Diversifying a base symmetric key based on a public key | |
EP3032523A1 (en) | Information processing device, program, and storage medium | |
CN110704854A (zh) | 针对文本数据保留格式的流式加密方法 | |
Murugan et al. | Cloud storage security scheme using DNA computing with morse code and zigzag pattern | |
CN102571804A (zh) | 基于产品标识码的物联网中心首次登录方法 | |
EP2991265B1 (en) | Encrypted text matching system, method and program | |
CN103580873A (zh) | 身份认证方法、系统以及密码保护装置 | |
CN106372529B (zh) | 一种文件加解密的方法和系统 | |
CN112307503B (zh) | 签章管理方法、装置和电子设备 | |
CN105718978B (zh) | Qr码的生成方法、装置及解码方法、装置 | |
EP2991266B1 (en) | Encrypted text matching system, method, and computer readable medium | |
CN115935299A (zh) | 授权控制方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |