CN101938350B - 一种基于组合编码的文件加密和解密的方法 - Google Patents

一种基于组合编码的文件加密和解密的方法 Download PDF

Info

Publication number
CN101938350B
CN101938350B CN2010102285445A CN201010228544A CN101938350B CN 101938350 B CN101938350 B CN 101938350B CN 2010102285445 A CN2010102285445 A CN 2010102285445A CN 201010228544 A CN201010228544 A CN 201010228544A CN 101938350 B CN101938350 B CN 101938350B
Authority
CN
China
Prior art keywords
key
sequence
group
packet
data
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.)
Expired - Fee Related
Application number
CN2010102285445A
Other languages
English (en)
Other versions
CN101938350A (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.)
Heilongjiang University
Original Assignee
Heilongjiang University
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 Heilongjiang University filed Critical Heilongjiang University
Priority to CN2010102285445A priority Critical patent/CN101938350B/zh
Publication of CN101938350A publication Critical patent/CN101938350A/zh
Application granted granted Critical
Publication of CN101938350B publication Critical patent/CN101938350B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

一种基于组合编码的文件加密和解密的方法,属于信息安全领域,本发明为解决现有对文件加密、解密方法的保密性能差的问题。本发明文件加密的方法:根据初始密钥求解所有的密钥序列,每轮加密都先对分组序列中的数据进行全排列,形成字典空间,计算出序数,然后按规则进行拼接新序列,该轮所有组的密钥序列进行循环拼接后与新序列进行异或,奇数轮时形成的加密文件前后置换元素,经过四轮加密形成最终加密文件;解密过程是加密的逆过程,遇奇数轮先前后置换元素,然后与循环拼接的密钥序列进行异或,采用穷举方法逐个解析分组序列的元素,将解析完毕的m个分组序列及余数进行拼接,作为待解密文件,经过四轮完成解密。

Description

一种基于组合编码的文件加密和解密的方法
技术领域
本发明涉及一种基于组合编码的文件加密和解密的方法,属于信息安全领域。
背景技术
在信息技术飞速发展的现代社会,信息安全占有重要地位,而密码技术是信息安全的保障及核心。
密码作为保密信息手段,根据对明文处理方式不同,密码编码系统有分组密码和流密码两类,分组加密一次处理一组元素的输入,分组密码体制属于传统加密体制,目前已有大量分组密码,如DES的各种变形、IDEA算法、SAFER系列算法、RC系列算法等。
分组密码的设计准则包括安全性准则和实现性准则。安全性设计准则主要包括三方面:密码算法设计准则、密钥长度设计准则和分组长度设计准则。
(1)密码算法设计准则
现代密码体制的安全性仅依赖于密钥的保密,而不依赖于算法保密。总之,密码算法设计要遵循表1所示准则。
表1密码算法设计准则
其中,混乱和扩散是香农1945年提出的两种隐藏明文冗余度的基本技术,是加密算法设计的基石。而所谓弱密钥是指对于初始密钥k,生成的子密钥都相等,则称k是弱密钥;若有一对密钥k1,k2,使得两密钥互为加密/解密密钥,则称k1,k2是半弱密钥。
(2)密钥长度设计准则
必须保证密钥长度足够大,才能使密码算法抵抗强力攻击,密钥越长意味着安全性越高,但是加密/解密的速度也越慢。目前64位密钥长度已经不能满足安全需要,所以128/192/256位成了常用的长度。
(3)分组长度设计准则
为阻止对分组密码进行统计分析,分组长度必须足够大。分组越大意味着安全性越高,但是加密/解密的速度也越慢。目前128位的分组大小被认为是一个合理的折衷。由于目前分组密码通常是简单的代换密码,而明文又有一定的冗余度,因此理论上可以对密文进行频率统计分析。但是当分组长度足够大时,这种分析就需要大量的密文数据,从而使计算不可行。此外,由于分组密码需要迭代计算,因此安全性准则通常还包括以下几点:
(1)迭代轮数
迭代轮数应该足够多。一般来说,循环迭代轮数越多安全性越高,常用16轮循环,也有11轮、8轮或6轮的,通常是安全性与实现性的折中。
(2)迭代轮函数
迭代轮函数要足够复杂,复杂性越高,抗击密码分析的能力就越强。
(3)密钥编排算法
一般说来,推测各个子密钥和由此推出主密钥的难度越大越好。因此子密钥编排算法越复杂,密码分析就越困难。子密钥生成算法同样要满足扩散性好以及具有混乱特性。
分组密码的实现性准则主要讨论如何提高算法的执行速度。分组密码既可以用软件实现,也可以用硬件实现。硬件实现的优点是可以获得高速率,而软件实现的优点是灵活性强、代价低。
现有加密/解密技术中变换算法所涉及矩阵固定,如S-盒表、各种置换表是固定的,另外,各分组密钥通常是相同的,这些因素使得加密技术的机密性存在隐患,保密性能差。
发明内容
本发明目的是为了解决现有对文件加密、解密方法的保密性能差的问题,提供了一种基于组合编码的文件加密和解密的方法。
本发明基于组合编码的文件加密的方法:
设定第一轮加密时,第1组分组序列的分组密钥为初始密钥K0,初始密钥K0的单位长度为k比特,每轮加密时都将待加密文件按组长度为n分成m组分组序列和一个余数,一种基于组合编码的文件加密的方法包括以下步骤:
步骤一、根据所述初始密钥K0确定第一轮加密时所有组的分组密钥Km-1
步骤二、根据分组密钥Km-1确定该组所有轮加密时的子密钥K(m-1)(w-1),w为文件加密轮数,
步骤三、初始化加密的轮数w=1,
步骤四、将待加密文件按组长度为n进行分组,
每组分组序列的元素数目为n,每个元素的单位长度为k比特,
步骤五、对每组分组序列的数据进行全排列,形成字典空间C(m-1)(w-1),并按如下公式求取每组序列在各自字典空间中的序数N(m-1)(w-1)
N ( m - 1 ) ( w - 1 ) = Σ j = 1 n Σ x = 1 i - 1 ( n - j ) ! ( Π q = 1 x - 1 ( w q ! ) ) × ( w x - 1 ) × ( Π q = x + 1 ii ( w q ! ) ) ,
其中,j表示当前被处理元素在分组序列中的位置,i表示当前被处理元素在当前组对应的密钥序列中的位置,wx为密钥序列中x位置的元素在分组序列中未经处理的数目,q表示除了x以外的元素的位置,wq是各个元素数目减去前面j个字符中已经出现过的相应元素的数目,ii表示分组序列中密钥元素数目不为零的密钥元素总数,N(m-1)(-1)≥0,
步骤六、按分组序列含对应密钥各元素的数目+分组序列的序数的原则将当前轮各组序列进行重新拼接,结尾处加入余数长度,形成新的待加密文件,
即,新的待加密文件拼接为:
第1组分组序列含对应密钥各元素的数目+第1组分组序列的序数N0(w-1)+第2组分组序列含对应密钥各元素的数目+第2组分组序列的序数N1(w-1)+……+第m组分组序列含对应密钥各元素的数目+第m组分组序列的序数N(m-1)(w-1)+余数长度,
步骤七、将该轮所有组的密钥序列进行循环拼接,使其长度与步骤六形成的新的待加密文件的长度相同,然后与步骤六形成的新的待加密文件进行异或,结果作为下一轮的待加密文件,
步骤八、判断w是否为奇数,
判断结果为是,执行步骤九,判断结果为否,执行步骤十,
步骤九、将步骤七形成的下一轮的待加密文件中所有元素的位置前后置换,作为该轮形成的加密文件,并作为下一轮待加密文件,
步骤十、判断是否满足下述条件:w≥4,
判断结果为否,令w=w+1,执行步骤四,判断结果为是,将本轮形成的加密文件作为最终结果,完成对文件的加密。
本发明基于组合编码的文件解密的方法:
已知该文件在第一轮加密时,第1组分组序列的分组密钥为初始密钥K0,初始密钥K0的单位长度为k比特,已知该文件的被加密轮数为w轮,本方法的解密从第w轮开始,
一种基于组合编码的文件解密的方法包括以下步骤:
步骤1、根据所述初始密钥K0确定第一轮加密时所有组的分组密钥Km-1
步骤2、根据分组密钥Km-1确定该组所有轮加密时的子密钥K(m-1)(w-1)
步骤3、初始化被加密的轮数w=4,
步骤4、判断w是否为奇数,
判断结果为是,执行步骤5,判断结果为否,执行步骤6,
步骤5、将待解密文件的所有元素的位置前后倒置,作为本轮的待解密文件,
步骤6、将该轮所有组的密钥序列进行循环拼接,使其长度与本轮的待解密文件的长度相同,然后与本轮的待解密文件进行异或,异或结果作为该轮待解密文件,
步骤7、将该轮待解密文件根据相关标志进行分组,形成m组数据,相关标志包括密钥各元素数目和序数长度,
步骤8、通过步骤7每组数据中含对应密钥各元素的数目、分组序列的序数和余数长度信息,逐个解析步骤7获得的m组数据,
步骤9、按照当前分组序列对应的密钥序列中元素的顺序,采用穷举方法解析该组分组序列的数据,将解析完毕的m个分组序列及余数进行拼接,作为下一轮待解密文件,
步骤10、判断是否满足下述条件:w≤1,
判断结果为否,令w=w-1,执行步骤4,判断结果为是,将本轮形成的解密文件作为最终结果,完成对文件的解密。
本发明的优点:组合加密技术算法独特,不涉及固有矩阵参与运算,此外,现有加密算法分组密钥通常相同,而组合加密技术中子密钥与分组密钥都不相同,并且同初始的主密钥空间一样大,从而加大了推测各个子密钥、分组密钥和由此推出初始主密钥的难度,使得保密性更强。该加密方法适合对文件进行软件加密。
附图说明
图1是本发明基于组合编码的文件加密的方法流程图,图2是本发明基于组合编码的文件解密的方法流程图,图3是密钥关系图。
具体实施方式
具体实施方式一:下面结合图1和图3说明本实施方式,本实施方式是一种基于组合编码的文件加密的方法,设定第一轮加密时,第1组分组序列的分组密钥为初始密钥K0,初始密钥K0的单位长度为k比特,每轮加密时都将待加密文件按组长度为n分成m组分组序列和一个余数,一种基于组合编码的文件加密的方法包括以下步骤:
步骤一、根据所述初始密钥K0确定第一轮加密时所有组的分组密钥Km-1
步骤二、根据分组密钥Km-1确定该组所有轮加密时的子密钥K(m-1)(w-1),w为文件加密轮数,
步骤三、初始化加密的轮数w=1,
步骤四、将待加密文件按组长度为n进行分组,
每组分组序列的元素数目为n,每个元素的单位长度为k比特,
步骤五、对每组分组序列的数据进行全排列,形成字典空间C(m-1)(w-1),并按如下公式求取每组序列在各自字典空间中的序数N(m-1)(w-1)
N ( m - 1 ) ( w - 1 ) = Σ j = 1 n Σ x = 1 i - 1 ( n - j ) ! ( Π q = 1 x - 1 ( w q ! ) ) × ( w x - 1 ) × ( Π q = x + 1 ii ( w q ! ) ) ,
其中,j表示当前被处理元素在分组序列中的位置,i表示当前被处理元素在当前组对应的密钥序列中的位置,wx为密钥序列中x位置的元素在分组序列中未经处理的数目,q表示除了x以外的元素的位置,wq是各个元素数目减去前面j个字符中已经出现过的相应元素的数目,ii表示分组序列中密钥元素数目不为零的密钥元素总数,N(m-1)(w-1)≥0,
步骤六、按分组序列含对应密钥各元素的数目+分组序列的序数的原则将当前轮各组序列进行重新拼接,结尾处加入余数长度,形成新的待加密文件,
即,新的待加密文件拼接为:
第1组分组序列含对应密钥各元素的数目+第1组分组序列的序数N0(w-1)+第2组分组序列含对应密钥各元素的数目+第2组分组序列的序数N1(w-1)+……+第m组分组序列含对应密钥各元素的数目+第m组分组序列的序数N(m-1)(w-1)+余数长度,
步骤七、将该轮所有组的密钥序列进行循环拼接,使其长度与步骤六形成的新的待加密文件的长度相同,然后与步骤六形成的新的待加密文件进行异或,结果作为下一轮的待加密文件,
步骤八、判断w是否为奇数,
判断结果为是,执行步骤九,判断结果为否,执行步骤十,
步骤九、将步骤七形成的下一轮的待加密文件中所有元素的位置前后置换,作为该轮形成的加密文件,并作为下一轮待加密文件,
步骤十、判断是否满足下述条件:w≥4,
判断结果为否,令w=w+1,执行步骤四,判断结果为是,将本轮形成的加密文件作为最终结果,完成对文件的加密。
k与n越长,保密性越好,当k>=6时,才能满足保密需要
根据密钥单位长度k可以得到不同密钥元素数目为2k,确定双方约定的密钥顺序,密钥中含有2k个元素,且每个元素不重复,统计分组数据中各个密钥元素的数目分别为:n1,n2......
步骤一中的分组密钥Km-1的获取方法为:
第一轮加密时,每组分组密钥Km-1将其前一组密钥序列的数据先循环右移或左移一位,形成待用密钥序列,然后采用数据替代法生成当前组的分组密钥Km-1
采用数据替代法生成当前组的分组密钥Km-1的过程为:找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前组的分组密钥Km-1第x号位置的数据。
下面给出一个具体的实施例:
假定前一组密钥序列如表1所示:
表1
  位置   0   1   2   3   11   12   18   19   26   27
  数据   18   12   1   26   3   27   11   28   5   19
将表1中数据循环右移一位后形成待用密钥序列如表2所示:
表2
  位置  0   1   2   3   11   12   18   19   26   27
  数据  9   18   12   1   15   3   12   11   4   5
将表2中数据采用数据替代法生成当前组的分组密钥Km-1如表3所示:
表3
  位置  0   1   2   3   11   12   18   19   26   27
  数据  7   12   3   18   7   1   3   15   6   8
步骤二中的子密钥K(m-1)(w-1)的获取方法为:
第m-1组的子密钥K(m-1)(w-1)根据当前组的前一轮的分组密钥采用数据替代法生成,具体过程为:
令第m-1组的前一轮的分组密钥作为待用密钥序列,
找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前第m-1组的子密钥K(m-1)(w-1)第x号位置的数据,形成新的序列,
然后将所述新的序列的数据循环右移或左移一位作为第m-1组的子密钥K(m-1)(w-1)
下面给出一个具体的实施例:
假定当前组为第m-1组,它的前一轮分组密钥的密钥序列,即待用序列如表4所示:
表4
  位置   0   1   2   3   11   12   18   19   26   27
  数据   18   12   1   26   3   27   11   28   5   19
找到表1所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前第m-1组的子密钥K(m-1)(w-1)第x号位置的数据,形成新的序列,如表5所示:
表5
  位置   0   1   2   3   11   12   18   19   26   27
  数据   11   27   12   5   26   19   3   13   8   28
然后将表5新的序列的数据循环右移一位作为第m-1组的子密钥K(m-1)(w-1),如表6所示:
表6
  位置  0   1   2   3   11   12   18   19   26   27
  数据  9   11   27   12   7   26   25   3   6   8
步骤五中字典空间C(m-1)(w-1)含有
Figure GSB00000631710600081
个不同的排列,n1、n2、...、
Figure GSB00000631710600082
为当前组的分组序列中含有对应的密钥序列中各密钥元素的数目,也相当于当前组的分组序列中不同的元素的重复次数。
步骤五序数N(m-1)(w-1)所占位数与当前组的分组序列的最大序数P所占位数相同,最大序数P按下述公式获取:
P = C 2 k n 1 × C 2 k - n 1 n 2 × C 2 k - n 1 - n 2 n 3 × . . . . . . × C n 2 k n 2 k - 1 , P≥0,
最大序数P从0开始计数,上式简约后形成公式:
P = n ! Π i = 1 2 k ( n i ! ) - 1 .
当前组的分组序列中含有对应的密钥序列中各密钥元素的数目分别为:n1,n2,......,
Figure GSB00000631710600091
P所占空间位数决定了最终所求分组序列对应序数应该占用的位数。最大序数P占用几位,序数N(m-1)(w-1)就占用几位,不足的用0补齐。
步骤六中按分组序列含对应密钥各元素的数目的存储格式为:
按照密钥序列中元素大小的顺序进行存储,设定密钥序列中元素的数目为a,如果某元素数目每达到2k-1的倍数,便增加k位,存储前a-1个密钥元素的数目,最后一个元素数目由分组序列长度减去已经存储的前a-1个密钥元素数目获得。
当分组序列的长度不是组长度n的整数倍的时候,会出现余数,在形成的新序列中记录余数长度,步骤六中余数长度为:
下面给出一个具体的加密的实施例。
假设待加密数据二进制序列为:
110001100001100001001101101101110101100001001101
设密钥单位长度k=2和组长度n=12。则密钥所涉及不同元素数目为22=4,不同元素分别为0,1,2,3。通常n为不同元素数目的整数倍。待加密序列可以分为2组:110001100001100001001101;101101110101100001001101(转换为4进制,每组为n=12个元素:3,0,1,2,0,1,2,0,1,0,3,1;2,3,1,3,1,1,2,0,1,0,3,1)。
第一轮加密时,分组序列长度是n的整数倍(4进制),没有多余数据,因此序列后面拼接序列长度00(二进制为0000,占用空间),即序列经过预处理后变为:
二进制:110001100001100001001101;101101110101100001001101;0000
四进制:301201201031;231311201031;00
设初始密钥K0为:2,0,3,1。则对于第1组分组序列为3,0,1,2,0,1,2,0,1,0,3,1(110001100001100001001101),各密钥元素数目分别为:2,4,2,4,可以算出最大序数为
Figure GSB00000631710600094
(32C1B,占用18位,也就是说在下面加密过程中,最终得到的和所占空间不超过18位)。
主要加密算法的计算过程为:
(1)处理第1个元素:第1组分组序列的第1个元素为3,在与其对应的密钥序列(初始密钥K0)中,3前面有的元素有2和0,
1)若第一个元素为2: C 11 1 * C 10 4 * C 6 2 * C 4 4 = 11 ! / ( 1 ! * 4 ! * 2 ! * 4 ! ) = 34650
2)若第一个元素为0: C 11 2 * C 9 3 * C 6 2 * C 4 4 = 11 ! ( 2 ! * 3 ! * 2 ! * 4 ! ) = 69300
本组排列组合数为:34650+69300=103950。
处理完第1个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为2,4,1,4。
(2)处理第2个元素:第1组分组序列的第2个元素为0,在与其对应的密钥序列(初始密钥K0)中,0前面有的元素为2,
1)若第二个元素为2: C 10 1 * C 9 4 * C 5 1 * C 4 4 = 6300
本组排列组合数为:6300
处理完第2个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为2,3,1,4。
(3)处理第3个元素:第1组分组序列的第3个元素为1,在与其对应的密钥序列(初始密钥K0)中,1前面有2,0,3,
1)若第三个元素为2: C 9 1 * C 8 3 * C 5 1 * C 4 4 = 2520
2)若第三个元素为0: C 9 2 * C 7 2 * C 5 1 * C 4 4 = 3780
3)若第三个元素为3: C 9 2 * C 7 3 * C 4 4 = 1260
本组排列组合数为:2520+3780+1260=7560
处理完第3个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为2,3,1,3。
(4)处理第4个元素:第1组分组序列的第4个元素为2,在与其对应的密钥序列(初始密钥K0)中,无其它元素,不处理。
此时,分组序列含有密钥序列[2,0,3,1]各元素的数目变为1,3,1,3。
(5)处理第5个元素:第1组分组序列的第5个元素为0,在与其对应的密钥序列(初始密钥K0)中,0前面有的元素为2,
1)若第五个元素为2: C 7 3 * C 4 1 * C 3 3 = 140
本组排列组合数为:140
处理完第5个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为1,2,1,3。
(6)处理第6个元素:第1组分组序列的第6个元素为1,在与其对应的密钥序列(初始密钥K0)中,1前面有的元素为2,0,3,
1)若第六个元素为2: C 6 2 * C 4 1 * C 3 3 = 60
2)若第六个元素为0: C 6 1 * C 5 1 * C 4 1 * C 3 3 = 120
3)若第六个元素为3: C 6 1 * C 5 2 * C 3 3 = 60
本组排列组合数为:60+120+60=240
处理完第6个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为1,2,1,2。
(7)处理第7个元素:第1组分组序列的第7个元素为2,在与其对应的密钥序列(初始密钥K0)中,2前面无其它元素,不处理。
处理完第7个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,2,1,2。
(8)处理第8个元素:第1组分组序列的第8个元素为0,在与其对应的密钥序列(初始密钥K0)中,0前面的2已经被处理完毕,无其它元素,不处理。
处理完第8个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,1,1,2。
(9)处理第9个元素:第1组分组序列的第9个元素为1,在与其对应的密钥序列(初始密钥K0)中,1前面有的元素为0,3,
1)若第九个元素为0: C 3 1 * C 2 2 = 3
2)若第九个元素为3: C 3 1 * C 2 2 = 3
本组排列组合数为:3+3=6
处理完第9个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,1,1,1。
(10)处理第10个元素:第1组分组序列的第10个元素为0,在与其对应的密钥序列(初始密钥K0)中,0前面无其它元素,不处理。
处理完第10个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,0,1,1。
(11)处理第11个元素:第1组分组序列的第11个元素为3,在与其对应的密钥序列(初始密钥K0)中,3前面无其它元素,不处理。
处理完第11个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,0,0,1。
(12)最后一个元素不需要考虑。
最终将所有得到数据相加得到一个序数:第一轮加密第1组分组序列的序数N00=118196(1CDB4),转换为18位二进制数据为0111001110110110100。
对于第2组分组序列的数据2,3,1,3,1,1,2,0,1,0,3,1来说,可以由初始密钥2,0,3,1按照先循环左移后置换推出:
Figure GSB00000631710600121
所以第一轮第2组组密钥为0231,各元素数目分别为2,2,3,5,可以算出最大序数P为(289AF,18位,也就是说在其加密算法中,最终得到的和所占空间不超过18位),具体计算过程类似第一组数据的计算,最后得到和为SUM=41046(A056),转换为18位二进制数据为001010000001010110。
最后要将两组数据(包括各密钥元素数目及和值)以及本轮余数部分数据的数目进行拼接形成新的序列,与各组的密钥循环异或后,还可以反向变换(二进制序列首尾数据交换,仅在奇数轮时实施)以便进行下一轮加密,而第p组轮密钥则可以遵循先置换再循环左移的策略。共进行四轮变换。
数据拼接:第1组的0123数目分别为4,4,2,2(可以通过12-4-4-2算出,不必存储)。
第2组的0123数目分别为2,5,2,3(可以通过12-2-5-2算出,不必存储)。
存储密钥元素数目时,本例中逢3倍数则增加位数,如10为2,1100为3,1110为5,111100为6......这样拼接新序列为(二进制):
1101110110011100110110110100101110100010100000010101100000
31312130312310232202200111200
转换为四进制并重新分组(n=12):
313121303123;102322022001;11200
拼接余数部分数据的数目(5个,占
Figure GSB00000631710600123
二进制为0101,四进制为11)后:
313121303123;102322022001;1120011
上述序列二进制形式为:
11011101100111001101101101001011101000101000000101011000000101
与各组的密钥(20310231即1000110100101101)循环异或:
11011101100111001101101101001011101000101000000101011000000101
10001101001011011000110100101101100011010010110110001101001011
01010000101100010101011001100110001011111010110011010101001110
在对其进行第一轮和第三轮(奇数轮)变换计算时,需要将其反向操作:
01110010101011001101011111010001100110011010101000110100001010
这样便得到第二轮进行变换的序列,转换4进制形式为:
130222303113;310121212222;0310022
(多余数据0310022将不作处理,组合加密技术加密后数据量会增加,但是随着密钥单位长度和分组长度的增加,所增加数据量会相对变小)
而第二轮子密钥分别为:
子密钥1:
子密钥2:
接下来便可以进行第二轮变换。
第三轮子密钥分别为:
子密钥1:
子密钥2:
Figure GSB00000631710600134
第四轮子密钥分别为:
子密钥1:
Figure GSB00000631710600135
子密钥2:
Figure GSB00000631710600141
总共需要进行四轮变换。
具体实施方式二:下面结合图2和图3说明本实施方式,一种基于组合编码的文件解密的方法包括以下步骤:
已知该文件在第一轮加密时,第1组分组序列的分组密钥为初始密钥K0,初始密钥K0的单位长度为k比特,已知该文件的被加密轮数为w轮,本方法的解密从第w轮开始,
一种基于组合编码的文件解密的方法包括以下步骤:
步骤1、根据所述初始密钥K0确定第一轮加密时所有组的分组密钥Km-1
步骤2、根据分组密钥Km-1确定该组所有轮加密时的子密钥K(m-1)(w-1)
步骤3、初始化被加密的轮数w=4,
步骤4、判断w是否为奇数,
判断结果为是,执行步骤5,判断结果为否,执行步骤6,
步骤5、将待解密文件的所有元素的位置前后倒置,作为本轮的待解密文件,
步骤6、将该轮所有组的密钥序列进行循环拼接,使其长度与本轮的待解密文件的长度相同,然后与本轮的待解密文件进行异或,异或结果作为该轮待解密文件,
步骤7、将该轮待解密文件根据相关标志进行分组,形成m组数据,相关标志包括密钥各元素数目和序数长度,
步骤8、通过步骤7每组数据中含对应密钥各元素的数目、分组序列的序数和余数长度信息,逐个解析步骤7获得的m组数据,
步骤9、按照当前分组序列对应的密钥序列中元素的顺序,采用穷举方法解析该组分组序列的数据,将解析完毕的m个分组序列及余数进行拼接,作为下一轮待解密文件,
步骤10、判断是否满足下述条件:w≤1,
判断结果为否,令w=w-1,执行步骤4,判断结果为是,将本轮形成的解密文件作为最终结果,完成对文件的解密。
步骤1中的分组密钥Km-1的获取方法为:
第一轮加密时,每组分组密钥Km-1将其前一组密钥序列的数据先循环右移或左移一位,形成待用密钥序列,然后采用数据替代法生成当前组的分组密钥Km-1
采用数据替代法生成当前组的分组密钥Km-1的过程为:找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前组的分组密钥Km-1第x号位置的数据;
步骤2中的子密钥K(m-1)(w-1)的获取方法为:
第m-1组的子密钥K(m-1)(w-1)根据当前组的前一轮的分组密钥采用数据替代法生成,具体过程为:
令第m-1组的前一轮的分组密钥作为待用密钥序列,
找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前第m-1组的子密钥K(m-1)(w-1)第x号位置的数据,形成新的序列,
然后将所述新的序列的数据循环右移或左移一位作为第m-1组的子密钥K(m-1)(w-1)
步骤7将该轮待解密文件根据相关标志进行分组,形成m组数据,这是一个大致分组的过程,每组的数据都包括的信息是密钥各元素数目和序数长度,因此,我们根据这些信息进行分段,将该轮待解密文件进行分组。
步骤8中分组序列的序数所占位数与当前组的分组序列的最大序数P所占位数相同,最大序数P按下述公式获取:
P = C 2 k n 1 × C 2 k - n 1 n 2 × C 2 k - n 1 - n 2 n 3 × . . . . . . × C n 2 k n 2 k - 1 , P≥0,
当前组的分组序列中含有对应的密钥序列中各密钥元素的数目分别为:n1,n2,......,
Figure GSB00000631710600152
步骤9所述的下一轮待解密文件的获取过程为:
按照当前分组序列对应的密钥序列中元素的顺序,采用穷举方法解析该组分组序列的数据,将解析完毕的m个分组序列及余数进行拼接,
按照该组分组序列对应的密钥序列中元素的顺序来假定被测位置的元素,然后根据假定元素,并根据下述公式获取相应排列组合值ph(j,x):
p h ( j , x ) = ( n - j ) ! ( Π q = 1 x - 1 ( w q ! ) ) × ( w x - 1 ) × ( Π q = x + 1 ii ( w q ! ) ) ,
h=1,2,……,p1(j,x)、p2(j,x)、……分别代表假定被测位置的元素为所述密钥序列中第1元素时的排列组合值、假定被测位置的元素为所述密钥序列中第2元素时的排列组合值……
其中,j表示当前被处理元素在分组序列中的位置,i表示当前被处理元素在当前组对应的密钥序列中的位置,wx为密钥序列中x位置的元素在分组序列中未经处理的数目,q表示处理元素在x中取值位置(q表示除了x以外的元素的位置),wq是各个元素数目减去前面j个字符中已经出现过的相应元素的数目,ii表示分组序列中密钥元素数目不为零的密钥元素总数,
当h=1,让p1(j,x)与当前组的分组序列的序数进行比较,若序数大于等于p1(j,x),则计算假定被测位置的元素为所述密钥序列中第2元素时的排列组合值p2(j,x),判断序数是否大于等于p1(j,x)+p2(j,x)......直到判断出序数小于某个p1(j,x)+p2(j,x)+......+pr(j,x),此时pr(j,x)对应的密钥密序列中的假定元素就是该位置拥有的元素,并将当前组分组序列拥有该元素的数目自减1,
按如下公式计算出当前组分组序列的新的序数,用于下一位置的元素的确定:
新的序数=原有序数-(p1(j,x)+p2(j,x)+......+pr-1(j,x)),
依此类推,解析出当前组分组序列中的所有元素,
进而,将解析完毕的m个分组序列及余数进行拼接,作为下一轮待解密文件。
解密基本上是加密的逆过程。
下面给出一个具体的实施例。
待解密序列为:
01110010101011001101011111010001100110011010101000110100001010
w为奇数轮时,需反向置换操作,如w为偶数轮,则无需反向置换操作:假定此时w为奇数轮,则反向置换为:
01010000101100010101011001100110001011111010110011010101001110与密钥(20310231即1000110100101101)循环异或:
01010000101100010101011001100110001011111010110011010101001110
10001101001011011000110100101101100011010010110110001101001011
11011101100111001101101101001011101000101000000101011000000101
解析上述序列:
1101:4;1101:4;10:2,
因此第一组密钥元素0123数目分别为4,4,2,2(最后元素3的数目由12-4-4-2算出)
由最大序数(32C1B,18位)可以计算出序列后面18位为第一组数据序数所占空间:011100110110110100(十六进制:1CDB4;十进制:118196)
根据序数以及密钥(2031,数目分别为2,4,2,4)解析当前组的分组序列原序列过程如下:
(1)解析第一个元素
1)若第一元素为2:
C 11 1 * C 10 4 * C 6 2 * C 4 4 = 11 ! / ( 1 ! * 4 ! * 2 ! * 4 ! ) = 34650 < 118196 , 所以不是2。
2)若第一个元素为0: C 11 2 * C 9 3 * C 6 2 * C 4 4 = 11 ! ( 2 ! * 3 ! * 2 ! * 4 ! ) = 69300 .
34650+69300=103950<118196,所以不是0。
3)若第一个元素为3: C 11 2 * C 9 4 * C 5 1 * C 4 4 = 34650 .
34650+69300+34650=138600>118196,所以第一元素是3。
调整序数:118196-103950=14246。
处理完第1个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为2,4,1,4。
(2)解析第二个元素
1)若第二元素为2,则 C 10 1 * C 9 4 * C 5 1 * C 4 4 = 6300 < 14246 , 所以不是2。
2)若第二个元素为0: C 10 2 * C 8 3 * C 5 1 * C 4 4 = 12600 .
6300+12600>14246,所以第二元素是0。
调整序数:14246-6300=7946。
处理完第2个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为2,3,1,4。
(3)解析第三个元素
1)若第三元素为2,则 C 9 1 * C 8 3 * C 5 1 * C 4 4 = 2520 < 7946 , 所以不是2。
2)若第三个元素为0: C 9 2 * C 7 2 * C 5 1 * C 4 4 = 3780 .
2520+3780<7946,所以不是0。
3)若第三个元素为3: C 9 2 * C 7 3 * C 4 4 = 1260 .
2520+3780+1260=7560<7946,所以不是3。
4)若第三个元素为1: C 9 2 * C 7 3 * C 4 1 * C 3 3 = 5040 .
2520+3780+1260+5040>7946,所以第三元素是1。
调整序数:7946-7560=386。
处理完第3个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为2,3,1,3。
(4)解析第四个元素
1)若第四元素为2,则 C 8 1 * C 7 3 * C 4 1 * C 3 3 = 1120 > 386 , 所以第四元素是2,不需要调整序数。
处理完第4个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为1,3,1,3。
(5)解析第五个元素
1)若第五元素为2,则 C 7 3 * C 4 1 * C 3 3 = 140 < 386 , 所以不是2。
2)若第五个元素为0: C 7 1 * C 6 2 * C 4 1 * C 3 3 = 420 .
140+420>386,所以第五个元素是0。
调整序数:386-140=246。
处理完第5个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为1,2,1,3。
(6)解析第六个元素
1)若第六元素为2,则 C 6 2 * C 4 1 * C 3 3 = 60 < 246 , 所以不是2。
2)若第六个元素为0: C 6 1 * C 5 1 * C 4 1 * C 3 3 = 120 .
60+120=180<246,所以不是0。
3)若第六元素为3,则 C 6 1 * C 5 2 * C 3 3 = 60 .
60+120+60=240<246,所以不是3。
4)若第六个元素为1: C 6 1 * C 5 2 * C 3 1 * C 2 2 = 180 .
60+120+60+180>246,所以第六个元素是1。
调整序数:246-240=6。
处理完第6个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为1,2,1,2。
(7)解析第七个元素
1)若第七元素为2,则 C 5 2 * C 3 1 * C 2 2 = 30 < 6 , 所以第七个元素是2。
不需要调整序数。
处理完第7个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,2,1,2。
(8)解析第八个元素
由于元素2已经没有了,因此从0开始考察
1)若第八元素为0,则 C 4 1 * C 3 1 * C 2 2 = 12 > 6 , 所以第八个元素是0。
不需要调整序数。
处理完第8个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,1,1,2。
(9)解析第九个元素
1)若第九元素为0,则所以第九个元素是不0。
2)若第九元素为3,则
Figure GSB00000631710600194
3+3=6<=6,所以第九个元素是不3。
3)若第九元素为1,则
Figure GSB00000631710600195
3+3+6>6,所以第九个元素是1。
调整序数:6-6=0。
处理完第9个元素后,分组序列含有密钥序列[2,0,3,1]各元素的数目变为0,1,1,1。
(10)因序数已经为0,所以密钥序列中剩余元素按序为所求元素0,3,1。否则,将计算到n-1步。
这样,便推算出所求序列为:301201201031
同理,可以解析出第2组序列为231311201031。
由解密序列二进制形式最后4位0101可知余数部分含5位四进制数,表明第二轮解密时多余数据不需要解码。而最后4位的前4位为0000,表明原始序列由2个整分组数据组成,没有余数部分。
拼接两组数据恢复原始序列为301201201031231311201031,二进制形式为110001100001100001001101101101110101100001001101。以此类推,获得最终的解密文件。

Claims (10)

1.一种基于组合编码的文件加密的方法,其特征在于,
设定第一轮加密时,第1组分组序列的分组密钥为初始密钥K0,初始密钥K0的单位长度为k比特,每轮加密时都将待加密文件按组长度为n分成m组分组序列和一个余数,一种基于组合编码的文件加密的方法包括以下步骤:
步骤一、根据所述初始密钥K0确定第一轮加密时所有组的分组密钥Km-1
步骤二、根据分组密钥Km-1确定该组所有轮加密时的子密钥K(m-1)(w-1),w为文件加密轮数,
步骤三、初始化加密的轮数w=1,
步骤四、将待加密文件按组长度为n进行分组,
每组分组序列的元素数目为n,每个元素的单位长度为k比特,
步骤五、对每组分组序列的数据进行全排列,形成字典空间C(m-1)(w-1),并按如下公式求取每组序列在各自字典空间中的序数N(m-1)(w-1)
N ( m - 1 ) ( w - 1 ) = &Sigma; j = 1 n &Sigma; x = 1 i - 1 ( n - j ) ! ( &Pi; q = 1 x - 1 ( w q ! ) ) &times; ( w x - 1 ) &times; ( &Pi; q = x + 1 ii ( w q ! ) ) ,
其中,j表示当前被处理元素在分组序列中的位置,i表示当前被处理元素在当前组对应的密钥序列中的位置,wx为密钥序列中x位置的元素在分组序列中未经处理的数目,q表示除了x以外的元素的位置,wq是各个元素数目减去前面j个字符中已经出现过的相应元素的数目,ii表示分组序列中密钥元素数目不为零的密钥元素总数,N(m-1)(w-1)≥0,
步骤六、按分组序列含对应密钥各元素的数目+分组序列的序数的原则将当前轮各组序列进行重新拼接,结尾处加入余数长度,形成新的待加密文件,
即,新的待加密文件拼接为:
第1组分组序列含对应密钥各元素的数目+第1组分组序列的序数N0(w-1)+第2组分组序列含对应密钥各元素的数目+第2组分组序列的序数N1(w-1)+……
+第m组分组序列含对应密钥各元素的数目+第m组分组序列的序数N(m-1)(w-1)
+余数长度,
步骤七、将该轮所有组的密钥序列进行循环拼接,使其长度与步骤六形成的新的待加密文件的长度相同,然后与步骤六形成的新的待加密文件进行异或,结果作为下一轮的待加密文件,
步骤八、判断w是否为奇数,
判断结果为是,执行步骤九,判断结果为否,执行步骤十,
步骤九、将步骤七形成的下一轮的待加密文件中所有元素的位置前后置换,作为该轮形成的加密文件,并作为下一轮待加密文件,
步骤十、判断是否满足下述条件:w≥4,
判断结果为否,令w=w+1,执行步骤四,判断结果为是,将本轮形成的加密文件作为最终结果,完成对文件的加密。
2.根据权利要求1所述的一种基于组合编码的文件加密的方法,其特征在于,步骤一中的分组密钥Km-1的获取方法为:
第一轮加密时,每组分组密钥Km-1将其前一组密钥序列的数据先循环右移或左移一位,形成待用密钥序列,然后采用数据替代法生成当前组的分组密钥Km-1
采用数据替代法生成当前组的分组密钥Km-1的过程为:找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前组的分组密钥Km-1第x号位置的数据。
3.根据权利要求1所述的一种基于组合编码的文件加密的方法,其特征在于,步骤二中的子密钥K(m-1)(w-1)的获取方法为:
第m-1组的子密钥K(m-1)(w-1)根据当前组的前一轮的分组密钥采用数据替代法生成,具体过程为:
令第m-1组的前一轮的分组密钥作为待用密钥序列,
找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前第m-1组的子密钥K(m-1)(w-1)第x号位置的数据,形成新的序列,
然后将所述新的序列的数据循环右移或左移一位作为第m-1组的子密钥K(m-1)(w-1)
4.根据权利要求1所述的一种基于组合编码的文件加密的方法,其特征在于,步骤五中字典空间C(m-1)(w-1)含有
Figure FSB00000631710500031
个不同的排列,n1、n2、...、
Figure FSB00000631710500032
为当前组的分组序列中含有对应的密钥序列中各密钥元素的数目。
5.根据权利要求1所述的一种基于组合编码的文件加密的方法,其特征在于,步骤五序数N(m-1)(w-1)所占位数与当前组的分组序列的最大序数P所占位数相同,最大序数P按下述公式获取:
P = C 2 k n 1 &times; C 2 k - n 1 n 2 &times; C 2 k - n 1 - n 2 n 3 &times; . . . . . . &times; C n 2 k n 2 k - 1 , P≥0,
当前组的分组序列中含有对应的密钥序列中各密钥元素的数目分别为:n1,n2,......,
Figure FSB00000631710500034
6.根据权利要求1所述的一种基于组合编码的文件加密的方法,其特征在于,步骤六中按分组序列含对应密钥各元素的数目的存储格式为:
按照密钥序列中元素大小的顺序进行存储,设定密钥序列中元素的数目为a,如果某元素数目每达到2k-1的倍数,便增加k位,存储前a-1个密钥元素的数目,最后一个元素数目由分组序列长度减去已经存储的前a-1个密钥元素数目获得。
7.根据权利要求1所述的一种基于组合编码的文件加密的方法,其特征在于,步骤六中余数长度为:
Figure FSB00000631710500035
8.一种基于组合编码的文件解密的方法,其特征在于,
已知该文件在第一轮加密时,第1组分组序列的分组密钥为初始密钥K0,初始密钥K0的单位长度为k比特,已知该文件的被加密轮数为w轮,本方法的解密从第w轮开始,
一种基于组合编码的文件解密的方法包括以下步骤:
步骤1、根据所述初始密钥K0确定第一轮加密时所有组的分组密钥Km-1
步骤2、根据分组密钥Km-1确定该组所有轮加密时的子密钥K(m-1)(w-1)
步骤3、初始化被加密的轮数w=4,
步骤4、判断w是否为奇数,
判断结果为是,执行步骤5,判断结果为否,执行步骤6,
步骤5、将待解密文件的所有元素的位置前后倒置,作为本轮的待解密文件,
步骤6、将该轮所有组的密钥序列进行循环拼接,使其长度与本轮的待解密文件的长度相同,然后与本轮的待解密文件进行异或,异或结果作为该轮待解密文件,
步骤7、将该轮待解密文件根据相关标志进行分组,形成m组数据,相关标志包括密钥各元素数目和序数长度,
步骤8、通过步骤7每组数据中含对应密钥各元素的数目、分组序列的序数和余数长度信息,逐个解析步骤7获得的m组数据,
步骤9、按照当前分组序列对应的密钥序列中元素的顺序,采用穷举方法解析该组分组序列的数据,将解析完毕的m个分组序列及余数进行拼接,作为下一轮待解密文件,
步骤10、判断是否满足下述条件:w≤1,
判断结果为否,令w=w-1,执行步骤4,判断结果为是,将本轮形成的解密文件作为最终结果,完成对文件的解密。
9.根据权利要求8所述的一种基于组合编码的文件解密的方法,其特征在于,步骤1中的分组密钥Km-1的获取方法为:
第一轮加密时,每组分组密钥Km-1将其前一组密钥序列的数据先循环右移或左移一位,形成待用密钥序列,然后采用数据替代法生成当前组的分组密钥Km-1
采用数据替代法生成当前组的分组密钥Km-1的过程为:找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前组的分组密钥Km-1第x号位置的数据;
步骤2中的子密钥K(m-1)(w-1)的获取方法为:
第m-1组的子密钥K(m-1)(w-1)根据当前组的前一轮的分组密钥采用数据替代法生成,具体过程为:
令第m-1组的前一轮的分组密钥作为待用密钥序列,
找到所述待用密钥序列的第x号位置数据y,再寻找待用密钥序列第y号位置的数据z,将数据z作为当前第m-1组的子密钥K(m-1)(w-1)第x号位置的数据,形成新的序列,
然后将所述新的序列的数据循环右移或左移一位作为第m-1组的子密钥K(m-1)(w-1)
步骤8中分组序列的序数所占位数与当前组的分组序列的最大序数P所占位数相同,最大序数P按下述公式获取:
P = C 2 k n 1 &times; C 2 k - n 1 n 2 &times; C 2 k - n 1 - n 2 n 3 &times; . . . . . . &times; C n 2 k n 2 k - 1 , P≥0,
当前组的分组序列中含有对应的密钥序列中各密钥元素的数目分别为:n1,n2,......,
Figure FSB00000631710500052
10.根据权利要求8所述的一种基于组合编码的文件解密的方法,其特征在于,步骤9中所述的下一轮待解密文件的获取过程为:
按照当前分组序列对应的密钥序列的顺序,采用穷举方法解析该组分组序列的数据,将解析完毕的m个分组序列及余数进行拼接,
按照该组分组序列对应的密钥序列中元素的顺序来假定被测位置的元素,然后根据假定元素,并根据下述公式获取相应排列组合值ph(j,x):
p h ( j , x ) = ( n - j ) ! ( &Pi; q = 1 x - 1 ( w q ! ) ) &times; ( w x - 1 ) &times; ( &Pi; q = x + 1 ii ( w q ! ) ) ,
h=1,2,……,p1(j,x)、p2(j,x)、……分别代表假定被测位置的元素为所述密钥序列中第1元素时的排列组合值、假定被测位置的元素为所述密钥序列中第2元素时的排列组合值……
其中,j表示当前被处理元素在分组序列中的位置,i表示当前被处理元素在当前组对应的密钥序列中的位置,wx为密钥序列中x位置的元素在分组序列中未经处理的数目,q表示除了x以外的元素的位置,wq是各个元素数目减去前面j个字符中已经出现过的相应元素的数目,ii表示分组序列中密钥元素数目不为零的密钥元素总数,
当h=1,让p1(j,x)与当前组的分组序列的序数进行比较,若序数大于等于p1(j,x),则计算假定被测位置的元素为所述密钥序列中第2元素时的排列组合值p2(j,x),判断序数是否大于等于p1(j,x)+p2(j,x)......直到判断出序数小于某个p1(j,x)+p2(j,x)+......+pr(j,x),此时pr(j,x)对应的密钥密序列中的假定元素就是该位置拥有的元素,并将当前分组序列拥有该元素的数目自减1,
按如下公式计算出当前组分组序列的新的序数,用于下一位置的元素的确定:
新的序数=原有序数-(p1(j,x)+p2(j,x)+......+pr-1(j,x)),
依此类推,解析出当前组分组序列中的所有元素,
进而,将解析完毕的m个分组序列及余数进行拼接,作为下一轮待解密文件。
CN2010102285445A 2010-07-16 2010-07-16 一种基于组合编码的文件加密和解密的方法 Expired - Fee Related CN101938350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102285445A CN101938350B (zh) 2010-07-16 2010-07-16 一种基于组合编码的文件加密和解密的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102285445A CN101938350B (zh) 2010-07-16 2010-07-16 一种基于组合编码的文件加密和解密的方法

Publications (2)

Publication Number Publication Date
CN101938350A CN101938350A (zh) 2011-01-05
CN101938350B true CN101938350B (zh) 2012-06-06

Family

ID=43391500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102285445A Expired - Fee Related CN101938350B (zh) 2010-07-16 2010-07-16 一种基于组合编码的文件加密和解密的方法

Country Status (1)

Country Link
CN (1) CN101938350B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109474418A (zh) * 2019-01-22 2019-03-15 网易(杭州)网络有限公司 文档加密方法、文档解密方法、装置、介质和计算设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955747B (zh) * 2011-08-24 2015-05-20 群联电子股份有限公司 金钥传送方法、存储器控制器与存储器储存装置
US10797722B2 (en) * 2016-06-10 2020-10-06 The Boeing Company System and method for providing hardware based fast and secure expansion and compression functions
CN108632215B (zh) * 2017-03-20 2021-04-20 展讯通信(上海)有限公司 数字通信加解密方法及装置
CN109327276B (zh) * 2017-07-31 2021-07-09 华为技术有限公司 安全编码方法、解码方法及设备
CN110958252B (zh) * 2019-12-05 2020-11-27 深信服科技股份有限公司 一种网络安全设备及其网络攻击检测方法、装置和介质
CN114615001B (zh) * 2020-12-04 2024-05-10 千寻位置网络有限公司 数据帧加密方法、数据帧解密方法及相关设备
CN113726742B (zh) * 2021-07-30 2023-07-21 昆山丘钛微电子科技股份有限公司 测试认证方法、装置、电子设备及介质
CN114661524B (zh) * 2022-03-21 2023-06-02 重庆市规划和自然资源信息中心 基于日志分析的不动产登记数据回备技术的实现方法
CN115801321B (zh) * 2022-10-20 2023-11-14 北京海泰方圆科技股份有限公司 一种数据组合加密方法及装置
CN116894273B (zh) * 2023-09-11 2023-11-21 四川建设网有限责任公司 基于异或和求余的文件加密方法、解密方法、设备及介质
CN118520485B (zh) * 2024-07-23 2024-09-20 四川省医学科学院·四川省人民医院 一种智慧医疗信息管理方法及系统
CN118607016A (zh) * 2024-08-09 2024-09-06 海门兴虹环保科技有限公司 一种环境监测过程中数据防篡改加密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101237321A (zh) * 2008-02-03 2008-08-06 西北农林科技大学 基于循环队列移位规则的加密方法
CN101237322A (zh) * 2008-02-03 2008-08-06 西北农林科技大学 基于双循环队列移位和换位规则的加密方法
CN101383703A (zh) * 2008-09-12 2009-03-11 华南理工大学 基于广义信息域的动态加密系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101237321A (zh) * 2008-02-03 2008-08-06 西北农林科技大学 基于循环队列移位规则的加密方法
CN101237322A (zh) * 2008-02-03 2008-08-06 西北农林科技大学 基于双循环队列移位和换位规则的加密方法
CN101383703A (zh) * 2008-09-12 2009-03-11 华南理工大学 基于广义信息域的动态加密系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陆军,刘大昕.组合编码方法的应用研究.《计算机科学》.2010,第37卷(第7A期),第42-44页. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109474418A (zh) * 2019-01-22 2019-03-15 网易(杭州)网络有限公司 文档加密方法、文档解密方法、装置、介质和计算设备

Also Published As

Publication number Publication date
CN101938350A (zh) 2011-01-05

Similar Documents

Publication Publication Date Title
CN101938350B (zh) 一种基于组合编码的文件加密和解密的方法
CN101764686B (zh) 一种用于网络与信息安全的加密方法
EP3588838A1 (en) Chaotic map-based digital chaotic encryption method
EP3186802B1 (en) Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
CN101895389B (zh) 采用比例计算的基于组合编码的文件加密和解密的方法
Rahim et al. Cryptography technique with modular multiplication block cipher and playfair cipher
CN107147487B (zh) 对称密钥随机分组密码
US5768390A (en) Cryptographic system with masking
EP1833190B1 (en) Table splitting for cryptographic processes
CN101378314B (zh) 一种密钥序列的生成方法和密钥产生装置
CN104065474B (zh) 一种轻量级Surge分组密码实现方法
CN104184579A (zh) 基于双伪随机变换的轻量级分组密码vh算法
KR101095386B1 (ko) 이산화된 카오스 함수를 이용한 암호 시스템
CN115766190B (zh) 一种任意集合元素加密方法、解密方法及电子设备
Zhu et al. A novel 3D vector decomposition for color-image encryption
CN114598444A (zh) 基于sm4和动态s盒的音频加密方法
Patel et al. Hybrid security algorithms for data transmission using AES-DES
CN108124076A (zh) 基于异构混沌和keccak哈希函数的图像加密方法
CN106921486A (zh) 数据加密的方法和装置
CN107493164B (zh) 一种基于混沌系统的des加密方法和系统
CN110247754B (zh) 一种分组密码fbc的实现方法及装置
CN114978475A (zh) 基于aes-128算法的汽车仪表加解密处理方法和系统
CN113691364A (zh) 一种基于位片技术的动态s盒分组密码的加密及解密方法
CN109409106B (zh) 一种新型无穷字母表的香农完美保密方法
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120606

Termination date: 20150716

EXPY Termination of patent right or utility model