CN102904711B - 信息加密方法 - Google Patents

信息加密方法 Download PDF

Info

Publication number
CN102904711B
CN102904711B CN201110208439.XA CN201110208439A CN102904711B CN 102904711 B CN102904711 B CN 102904711B CN 201110208439 A CN201110208439 A CN 201110208439A CN 102904711 B CN102904711 B CN 102904711B
Authority
CN
China
Prior art keywords
byte
key
information
array matrix
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.)
Active
Application number
CN201110208439.XA
Other languages
English (en)
Other versions
CN102904711A (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.)
Shenzhen Genvict Technology Co Ltd
Original Assignee
Shenzhen Genvict Technology Co Ltd
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 Shenzhen Genvict Technology Co Ltd filed Critical Shenzhen Genvict Technology Co Ltd
Priority to CN201110208439.XA priority Critical patent/CN102904711B/zh
Publication of CN102904711A publication Critical patent/CN102904711A/zh
Application granted granted Critical
Publication of CN102904711B publication Critical patent/CN102904711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种信息加密方法,该方法包括:将需要加密的信息根据与所述信息中的每个字符所对应的ASCII码按位展开为L1个字节,并存储在M×N大小的数组Matrix[M][N]中,其中,M×N=L1×8,M、N、L1均为整数;任取随机密钥K,密钥长度为L2个字节,依次使用密钥K中的每一个字节K[I],0≤I≤L21,根据字节K[I]的位数据,对数组Matrix[M][N]进行移位操作;将移位后的数组Matrix[M][N]按位还原为L1个字节数据,完成加密过程。本发明的加密方法不限定密钥长度和信息分组的长度,具有比较大的灵活性,算法的选取完全取决于实施的需要,更增加了破解的难度。

Description

信息加密方法
技术领域
本发明涉及信息加密技术领域,更具体地讲,本发明涉及一种利用魔方旋转原理进行加密的方法,属于对称密钥的加密方法。
背景技术
信息加密方法一般分为对称密钥加密方法和非对称密钥(公开密钥)加密方法两种。随着现代通信信息量不断加大,人们对信息安全的认识和要求越来越高。为了保证传输过程中通信内容不会泄密,可供使用的信息加密传输方法有很多。由于公知的非对称密钥方法(如RSA,ECC等)计算强度太大并不适合大数据量通信时使用,相对而言对称密钥加密方法更适合一些。常用的对称密钥加密方法有DES、AES等标准公开的算法,但是这些公开算法的计算量非常大,加密和解密的时间成本很高,也不利于大数据量通信的加密。为了提高计算速度,出现了各种基于硬件的DES加密芯片,系统在提高加密运算速度的同时也增加了系统的经济成本。
下面对DES和AES的安全性和效率进行比较。
自DES算法1977年首次公诸于世以来,学术界对其进行了深入的研究,围绕它的安全性展开了激烈的争论。在技术上,对DES的批评主要集中在以下3个方面:
1、作为分组密码,DES的加密单位仅有64位二进制,这对于数据传输来说太小,因为每个分组仅含8个字符,而且其中某些位还要用于奇偶校验或其它通信开销。
2、DES的密钥的位数太短,只有56比特,而且各次迭代中使用的密钥kf是递推产生的,这种相关必然降低密码体制的安全性。在现有技术下用穷举法寻找密钥已趋于可行。1999年在电子前沿组织(ElectronicFrontierFoundation,EFF)进行的一次测试中,只用了不到3天的时间就破解了一个DES加密系统。因此,若要保护10年以上的数据最好不要采用DES算法。
3、DES不能对抗差分和线性密码分析。
相对DES算法来说,AES算法无疑解决了上述问题,主要表现在如下几方面:
1、AES标准支持可变分组长度,分组长度可设定为32比特的任意倍数,最小值为128比特,最大值为256比特。
2、AES的密钥长度比DES大,它也可设定为32比特的任意倍数,最小值为128比特,最大值为256比特,用穷举法不可能破解。假设取密钥长度为128比特,那么要破解2128个可能的密钥的密文平均要尝试的密钥的个数为2127,一台计算机用穷举法破解大概需要的时间为1000年。可以看出这实际上是不可行的。在可预计的将来,如果计算机的运行速度没有根本性的提高,用穷举法破解AES密钥几乎不可能。
3、AES算法的设计策略是宽轨迹策略(WideTrailStrategy,WTS),WTS是针对差分分析和线性分析提出的,可对抗差分密码分析和线性密码分析。
根据DES和AES的算法实现的程序实测结果,AES算法性能大约为DES算法的3倍,经优化的AES算法的性能比DES算法性能大约高5倍左右。
DES和AES算法已经公布多年,随着时间的推移,已有多种有效破解DES和AES的方法公布。虽然AES算法的安全性比DES算法的安全性有大幅度提升,但原因是因为密钥长度的加长。虽然AES算法性能比DES算法性能高,但并没有达到数量级的提高,两者性能还是处于同一个数量级的水平。
随着通信量的加大,需要一种高效率、低成本并且高强度的信息加密方法,以支持大数据量通信。
发明内容
本发明针对DES、AES等方法的不足之处,提供一种高强度、高效率、低成本的对称密钥加密方法,主要解决信息在传输过程中被非法截获而被还原的问题。
根据本发明的一方面,提供一种信息加密方法,该方法包括:将需要加密的信息根据与所述信息中的每个字符所对应的ASCII码按位展开为L1个字节,并存储在M×N大小的数组Matrix[M][N]中,其中,M×N=L1×8,M、N、L1均为整数;任取随机密钥K,密钥长度为L2个字节,依次使用密钥K中的每一个字节K[I],0≤I≤L2-1,根据字节K[I]的位数据,对数组Matrix[M][N]进行移位操作;将移位后的数组Matrix[M][N]按位还原为L1个字节数据,完成加密过程。
优选地,在将需要加密的信息的L1个字节存储在数组Matrix[M][N]中之前,可使用密钥K对所述L1个字节进行数据预处理,使得需要加密的信息与原文信息不同。
优选地,如果L1=8,L2=8,则M=8,N=8,并且所述移位操作可包括:循环取密钥K的每一个字节K[I],0≤I≤7,设置循环变量I、J、X、Y,I为字节K[I]的序号,J为字节K[I]的第0、1位所对应的十进制数值,X为字节K[I]的第2、3、4位所对应的十进制数值,Y为字节K[I]的5、6、7位所对应的十进制数值;设置临时数组T,将数组Matrix[8][8]的第I行的8个数据顺序存储在临时数组T中,将数组Matrix[8][8]的第2J列的8个数据顺序移位至数组Matrix[8][8]的第I行,将数组Matrix[8][8]的第X行的8个数据顺序移位至数组Matrix[8][8]的第2J列,将数组Matrix[8][8]的第Y列的8个数据顺序移位至数组Matrix[8][8]的第X行,将存储在临时数组T中的8个数据顺序存储在数组Matrix[8][8]的第Y列中。
优选地,数据预处理可包括:将8字节信息的每一个字节与8字节密钥K的相应字节进行异或运算。
优选地,如果8≤L1≤16,则M=8,N=L1,并且所述移位操作可包括:循环取密钥K的每一个字节K[I],0≤I≤L2-1,设置循环变量I、J、X、Y,I为字节K[I]的序号,J为字节K[I]的第0、1位所对应的十进制数值,X为字节K[I]的第2、3、4位所对应的十进制数值,Y为字节K[I]的5、6、7位所对应的十进制数值,其中,如果密钥长度L2>8,则当I≥8时,将I设置为等于当前循环次数取8的模;设置临时数组T,将数组Matrix[8][L1]的左侧8×8子数组的第I行的8个数据存储在临时数组T中,将数组Matrix[8][L1]的第(2J+L1-8)列的8个数据移位至数组Matrix[8][L1]的左侧8×8子数组的第I行,将数组Matrix[8][L1]的左侧8×8子数组的第X行的8个数据移位至数组Matrix[8][L1]的第(2J+L1-8)列,将数组Matrix[8][L1]的第(Y+L1-8)列的8个数据移位至数组Matrix[8][L1]的左侧8×8子数组的第X行,将存储在临时数组T中的8个数据依次存储在数组Matrix[8][L1]的第(Y+L1-8)列中。
优选地,数据预处理可包括:将所述信息的每一个字节与密钥K的相应字节相加,相加的结果如果大于255,则溢出后只取最后一个字节,其中,如果密钥的长度L2不等于L1,则根据密钥K的长度L2,将密钥K拼接或裁减为L1字节。
优选地,如果L1=32,则M=16,N=16,并且所述移位操作可包括:循环取密钥K的每一个字节K[I],0≤I≤L2-1,设置循环变量I、X、Y,I为字节K[I]的序号,X为字节K[I]的高4位所对应的十进制数值,Y为字节K[I]的低4位所对应的十进制数值,其中,如果密钥长度L2>16,则当I≥16时,将I设置为等于当前循环次数取16的模;将数组Matrix[16][16]的第I行向左或向右循环旋转X个数据,将数组Matrix[16][16]的第J列向上或向下循环旋转Y个数据。
优选地,数据预处理可包括:所述信息的每一个字节与密钥K的相应字节相减,相减的结果如果小于0,则溢出后只取最后一个字节,其中,如果密钥的长度L2不等于32,则根据密钥K的长度L2,将密钥K拼接或裁减为32字节。
优选地,如果L1=32,则设置数组Matrix[8×32],将32字节的所述信息按位依次填入数组Matrix[8×32],所述移位操作可包括:循环取密钥K的每一个字节K[I],0≤I≤L2-1,设置循环变量J、X、Y,J为字节K[I]的第2-7位所对应的十进制数值,X为字节K[I]的高4位所对应的十进制数值,Y为字节K[I]的低4位所对应的十进制数值;将数组Matrix[8×32]的第4J个数据开始的X个数据向左或向右循环旋转Y个数据。
优选地,数据预处理可包括:将所述信息的每一个字节Data[I]与密钥的相应字节K[I%L2]相加,1≤I≤L1-1,所得结果再与所述信息的前I-1个字节的累加和相加,相加的结果如果大于255,溢出后只取最后一个字节,其中,I%L2表示循环变量I对L2取模。
本发明的加密方法不限定密钥长度和信息分组的长度,具有比较大的灵活性,算法的选取完全取决于实施的需要,更增加了破解的难度。当信息量比较大时,可将信息分组长度设的更大一点,运算效率可成倍提高。
附图说明
图1是本发明的数据加密方法的总体框图。
图2是本发明的数据加密方法的总体流程图。
图3是本发明实施例1的加密过程的示意图。
图4是本发明实施例2的加密过程的示意图。
图5是本发明实施例3的加密过程的示意图。
图6是本发明实施例4的加密过程的示意图。
具体实施方式
通过结合附图,从下面的实施例的描述中,本发明这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:图1是根据本发明的数据加密/解密方法的总体框图。如图1所示,根据本发明的信息加密方法的主要技术构思包括以下内容。
在信息发送方10,通信节点A可包括加密模块11,加密模块11用于对发送的信息进行加密。加密模块11可以是软件模块,也可以是硬件模块。加密模块11随机生成长度为LK(LK≥8)字节的密钥Key,密钥Key可存储在加密模块11中。
加密模块11所使用的加密算法Enc(Key,Msg)利用密钥的随机性对信息进行移位,来对信息加密,其中,Key为密钥,Msg为要进行加密的信息。解密算法Dec(Key,Msg)执行加密算法Enc(Key,Msg)的逆过程。其中,Key为密钥的内容,Msg为要进行加密信息。加密过程具有非常高的时间效率。
通信节点A在发送信息之前根据与所述信息中的每个字符所对应的ASCII码按位展开为L1个字节,L1即为所述信息中的字符的数量。具体地讲,对于将要加密的信息中的每个字符m,m具有唯一的ASCII码二进制数(共8位),因此一个信息字符对应于一个字节的ASCII码二进制数。通信节点A使用加密模块11对展开的每一个字节按位进行移位加密。然后,通信节点A使用加密模块11对每一个信息字节按位进行移位加密,并将加密的信息通过通信链路发送到通信节点B。通信节点B可获得加密的信息。
如果所述信息中的字符的数量L1较大(例如大于特定值),则还可先将信息分割成信息字节分组,字节分组长度为LM(LM≥8),即,每个字节分组具有LM个字节。由LM个字符构成的信息字节分组对应于长度为LM的字节分组。因此,每一个信息字节分组可以看作是字符数量较少的待加密的信息的展开字节。然后,通信节点A使用加密模块11对每一个信息字节分组中的每个字节按位进行移位加密,并将加密的信息通过通信链路发送到通信节点B。
在信息接收方20,通信节点B可包括解密模块21,用于对接收到的加密信息进行解密。解密模块21可以是软件模块,也可以是硬件模块。解密模块21使用解密算法Dec(Key,Msg’)对接收到的加密信息进行解密。解密算法Dec(Key,Msg’)执行加密算法Enc(Key,Msg)的逆过程,其中,Key为密钥的内容,Msg’为加密的信息。解密过程也具有非常高的时间效率。
通信节点B接收到加密的信息后,使用解密模块21对加密的信息进行解密,获得解密的ASCII码二进制数,进而获得对应的信息原文。在信息被分割为多个信息字节分组的情况下,通信节点B按约定的长度LM(LM≥8)将该信息进行字节分组,依次对每一个信息字节分组进行解密,再将各个解密的信息串接起来,进而获得对应的信息原文。
图2是根据本发明的数据加密方法的总体流程图。
参照图2,在步骤201,将需要加密的信息根据与所述信息中的每个字符所对应的ASCII码按位展开为L1个字节,并存储在M×N大小的数组Matrix[M][N]中,其中,M×N=L1×8,M、N、L1均为整数。
在步骤202,任取随机密钥Key(以下简称为密钥K),密钥长度为L2个字节,L2可以任意。依次使用密钥K中的每一个字节K[I],0≤I≤L2-1,根据字节K[I]的位数据,对数组Matrix[M][N]进行移位操作。移位操作将循环L2次。
在步骤203,将移位后的数组Matrix[M][N]按位还原为L1个字节数据,加密过程结束。
在解密过程中,按照与加密操作相反的操作得到对应的ASCII码,进而可获得信息原文。
优选的是,在将需要加密的信息的L1个字节存储在M×N大小的数组Matrix[M][N]中之前,可使用密钥K对L1个字节进行数据预处理,使得需要加密的信息与原文信息不同。可使用多种数据预处理方式,将结合具体实施例进行详细描述。
实施例1
下面描述根据本发明实施例1的信息加密方法。图3示出了根据本发明实施例1的加密过程的示意图。
在本实施例中,以8字节长度的密钥和8字节长度的信息分组为例,具体加密过程如下:
(1)将8字节信息的每一个字节与8字节密钥的相应字节进行数据预处理,具体地,可将8字节信息的每一个字节与8字节密钥的相应字节进行异或运算。
(2)设置一个8×8字节的数组Matrix[8][8](即,M=8,N=8),把8字节预处理后的64个位数据按顺序填入该数组内。
(3)循环取密钥K的每一个字节K[I],0≤I≤7,设置循环变量I、J、X、Y,I为字节K[I]的序号,J=字节K[I]的第0、1位所对应的十进制数值(例如,K[I]的第0、1位为10,则J=1×21+0×20=2),X为字节K[I]的第2、3、4位所对应的十进制数值(例如,字节K[I]的第2、3、4位为101,则X=1×22+0×21+1×20=5),Y为字节K[I]的5、6、7位所对应的十进制数值。可以得知,0≤2J、X、Y≤7。
(4)将数组Matrix[8][8]的第I行的8个数据、数组Matrix[8][8]的第2J列的8个数据分别交换,将数组Matrix[8][8]的第X行的8个数据以及数组Matrix[8][8]的第Y列的8个数据分别交换。
例如,可设置临时数组T,将数组Matrix[8][8]的第I行的8个数据顺序存储在临时数组T中,将数组Matrix[8][8]的第2J列的8个数据顺序移位至数组Matrix[8][8]的第I行,将数组Matrix[8][8]的第X行的8个数据顺序移位至数组Matrix[8][8]的第2J列,将数组Matrix[8][8]的第Y列的8个数据顺序移位至数组Matrix[8][8]的第X行,将存储在临时数组T中的8个数据顺序存储在数组Matrix[8][8]的第Y列中。
为描述方便,可定义“T=I”表示T的8个数据等于数组Matrix[8][8]的第I行的8个数据。按照以下顺序完成数据移位交换过程:T=I,I=2J,2J=X,X=Y,Y=T。
(5)将Matrix[8][8]的64个数据还原成8个字节,完成加密过程。
在解密过程中,按照与加密过程相反的操作得到可获得信息原文。
实施例2
下面描述根据本发明实施例2的信息加密方法。图4示出了根据本发明实施例2的加密过程的示意图。
设密钥长度为L2字节,信息字节分组长度为L1(8≤L1≤16)字节,则M=8,N=L1。本实施例的步骤与实施例1的步骤不同之处在于数据预处理和移位操作,因此仅对数据预处理和移位操作进行描述。
数据预处理:将信息字节分组的每一个字节与密钥的相应字节相加,相加的结果如果大于255,则溢出后只取最后一个字节。如果密钥的长度L2不等于L1,则可根据密钥的长度L2,将密钥拼接或裁减为L1字节。
移位操作:循环取密钥K的每一个字节K[I],0≤I≤7,设置循环变量I、J、X、Y,I为字节K[I]的序号,J为字节K[I]的第0、1位所对应的十进制数值,X为字节K[I]的第2、3、4位所对应的十进制数值,Y为字节K[I]的5、6、7位所对应的十进制数值;设置数组Matrix[8][L1],将Matrix[8][L1]分为左侧8×8子数组和右侧8×8子数组(如图4中区域A和区域B所示)。将预处理后的L1字节数据按位依次填入数组Matrix[8][L1]中。为了使得右侧8×8子数组中存在将被移位的行数据和列数据,将2J和Y分别加上偏移量(L1-8),即,数组Matrix[8][L1]的第(2J+L1-8)列以及第(Y+L1-8)列位于区域B中。设置临时数组T,将数组Matrix[8][L1]的左侧8×8子数组的第I行的8个数据存储在临时数组T中,将数组Matrix[8][L1]的第(2J+L1-8)列的8个数据移位至数组Matrix[8][L1]的左侧8×8子数组的第I行,将数组Matrix[8][L1]的左侧8×8子数组的第X行的8个数据移位至数组Matrix[8][L1]的第(2J+L1-8)列,将数组Matrix[8][L1]的第(Y+L1-8)列的8个数据移位至数组Matrix[8][L1]的左侧8×8子数组的第X行,将存储在临时数组T中的8个数据依次存储在数组Matrix[8][L1]的第(Y+L1-8)列中。图4示出了L1=12的示例。
移位操作要循环L2次,图4示出了L2=8的示例。如果密钥长度L2>8,则当I≥8时,可将I设置为等于当前循环次数取8的模,例如,当前循环次数是第9次循环,则I为9取8的模(等于1)。
实施例3
下面描述根据本发明实施例3的信息加密方法。图5示出了根据本发明实施例3的加密过程的示意图。
设密钥长度为L2字节,信息字节分组长度L1为32字节。本实施例的步骤与实施例1的步骤不同之处在于数据预处理和移位操作,因此仅对数据预处理和移位操作进行描述。
数据预处理:如果密钥长度L2不等于32,可根据密钥的长度,将密钥拼接或裁减为32字节。然后将信息字节分组的每一个字节与密钥的相应字节相减,相减的结果如果小于0,则溢出后只取最后一个字节。
移位操作:设置数组Matrix[16][16],将预处理后的32字节数据按位依次填入数组Matrix[16][16]中。循环取密钥的每一个字节K[I],设置循环变量X、Y,X为字节K[I]的高4位所对应的十进制数值,Y为字节K[I]的低4位所对应的十进制数值。可以得知,0≤X、Y≤15。将数组Matrix[16][16]的第I行向左或向右循环旋转X个数据,将数组Matrix[16][16]的第J列向上或向下循环旋转Y个数据。
移位操作要循环L2次,图5示出了L2=16的示例。如果密钥长度L2>16,则当I≥16时,可将I设置为等于当前循环次数取16的模,例如,当前循环次数是第17次循环,则I为17取16的模(等于1)。
实施例4
下面描述根据本发明实施例4的信息加密方法。图6示出了根据本发明实施例4的加密过程的示意图。
设信息字节分组长度L1=32,本实施例的步骤与实施例1的步骤不同之处在于数据预处理和移位操作,因此仅对数据预处理和移位操作进行描述。
数据预处理:将信息的每一个字节Data[I](1≤I≤L1-1)与密钥的相应字节K[I%L2]相加(这里,I%L2表示循环变量I对L2取模),所得结果再与信息的前I-1个字节的累加和Sum(Data,I-1)相加,相加的结果如果大于255,溢出后只取最后一个字节。可以看出,没有对信息的第一个字节Data[0]进行数据预处理。
移位操作:设置数组Matrix[8×32],将预处理后的字节数据按位依次填入数组Matrix[8×32]。循环取密钥的每一个字节K[I],0≤I≤L2-1,设置循环变量J、X、Y,J为字节K[I]的第2-7位所对应的十进制数值,X为字节K[I]的高4位所对应的十进制数值,Y为字节K[I]的低4位所对应的十进制数值。可以得知,0≤J≤63,0≤X、Y≤15。将数组Matrix[8×32]的第4J个数据开始的X个数据向左或向右循环旋转Y数据。
移位操作要循环L2次,图5示出了L2=16的示例。此外,图5示出了一共16次移位操作中的3次移位操作。
以上的实施例中提到了不同的数据预处理方式和不同的移位操作,实际上远远不止这几种方式,本领域技术人员可容易地使用另外的数据预处理方式和不同的移位操作,还可对数据预处理方式和移位操作进行不同的组合。
本发明对信息的加密仅仅对数据进行移位处理,解密过程相反,其计算效率是非常高的。经实际测试,在同等条件下,本发明的加密方法的加密速度是DES的60倍以上,是AES的10倍以上,加密效率提高了一个数量级。
本发明的加密方法的加密强度依赖于密钥的随机性,对于加密过程的每一个循环,密钥的每一个字节都是随机的,则循环变量I、J、X、Y也是随机的,加密过程没有规律。当尝试用暴力方法破解时,可能尝试的某一条密钥对某一个信息分组是正确的,但对下一个信息分组是错误的。对于某一个信息分组,可能会有无数个密钥符合要求,但其中只有一个密钥是正确的。本发明的加密方法不限定密钥长度和信息分组的长度,具有比较大的灵活性,算法的选取完全取决于实施的需要,更增加了破解的难度。当信息量比较大时,可将信息分组长度设的更大一点,运算效率可成倍提高。
本发明的加密方法的加密强度取决于密钥的长度,它的加密强度与等长密钥的AES算法的加密强度相当。
虽然本发明是参照其示例性的实施例被具体描述和显示的,但是本领域的普通技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种改变。

Claims (6)

1.一种信息加密方法,包括:
将需要加密的信息根据与所述信息中的每个字符所对应的ASCII码按位展开为L1个字节,并将所述L1个字节存储在M×N大小的数组Matrix[M][N]中,其中,M×N=L1×8,M、N、L1均为整数;
任取随机密钥K,密钥长度为L2个字节,依次使用密钥K中的每一个字节K[I],0≤I≤L2-1,根据字节K[I]的位数据,对数组Matrix[M][N]进行移位操作;
将移位后的数组Matrix[M][N]按位还原为L1个字节数据,完成加密过程,
其特征在于,如果L1=8,L2=8,则M=8,N=8,并且所述移位操作包括:
循环取密钥K的每一个字节K[I],0≤I≤7,设置循环变量I、J、X、Y,I为字节K[I]的序号,J为字节K[I]的第0、1位所对应的十进制数值,X为字节K[I]的第2、3、4位所对应的十进制数值,Y为字节K[I]的5、6、7位所对应的十进制数值;
设置临时数组T,将数组Matrix[8][8]的第I行的8个数据顺序存储在临时数组T中,将数组Matrix[8][8]的第2J列的8个数据顺序移位至数组Matrix[8][8]的第I行,将数组Matrix[8][8]的第X行的8个数据顺序移位至数组Matrix[8][8]的第2J列,将数组Matrix[8][8]的第Y列的8个数据顺序移位至数组Matrix[8][8]的第X行,将存储在临时数组T中的8个数据顺序存储在数组Matrix[8][8]的第Y列中。
2.根据权利要求1所述的信息加密方法,其特征在于:在将需要加密的信息的8个字节存储在数组Matrix[8][8]中之前,使用密钥K对所述8个字节进行数据预处理,使得需要加密的信息与原文信息不同。
3.根据权利要求2所述的信息加密方法,其特征在于,数据预处理包括:将8字节信息的每一个字节与8字节密钥K的相应字节进行异或运算。
4.一种信息加密方法,包括:
将需要加密的信息根据与所述信息中的每个字符所对应的ASCII码按位展开为L1个字节,并将所述L1个字节存储在M×N大小的数组Matrix[M][N]中,其中,M×N=L1×8,M、N、L1均为整数;
任取随机密钥K,密钥长度为L2个字节,依次使用密钥K中的每一个字节K[I],0≤I≤L2-1,根据字节K[I]的位数据,对数组Matrix[M][N]进行移位操作;
将移位后的数组Matrix[M][N]按位还原为L1个字节数据,完成加密过程,
其特征在于,如果8≤L1≤16,则M=8,N=L1,并且所述移位操作包括:
循环取密钥K的每一个字节K[I],0≤I≤L2-1,设置循环变量I、J、X、Y,I为字节K[I]的序号,J为字节K[I]的第0、1位所对应的十进制数值,X为字节K[I]的第2、3、4位所对应的十进制数值,Y为字节K[I]的5、6、7位所对应的十进制数值,其中,如果密钥长度L2>8,则当I≥8时,将I设置为等于当前循环次数取8的模;
设置临时数组T,将数组Matrix[8][L1]的左侧8×8子数组的第I行的8个数据存储在临时数组T中,将数组Matrix[8][L1]的第(2J+L1-8)列的8个数据移位至数组Matrix[8][L1]的左侧8×8子数组的第I行,将数组Matrix[8][L1]的左侧8×8子数组的第X行的8个数据移位至数组Matrix[8][L1]的第(2J+L1-8)列,将数组Matrix[8][L1]的第(Y+L1-8)列的8个数据移位至数组Matrix[8][L1]的左侧8×8子数组的第X行,将存储在临时数组T中的8个数据依次存储在数组Matrix[8][L1]的第(Y+L1-8)列中。
5.根据权利要求4所述的信息加密方法,其特征在于:在将需要加密的信息的L1个字节存储在数组Matrix[8][L1]中之前,使用密钥K对所述L1个字节进行数据预处理,使得需要加密的信息与原文信息不同。
6.根据权利要求5所述的信息加密方法,其特征在于,数据预处理包括:将所述信息的每一个字节与密钥K的相应字节相加,相加的结果如果大于255,则溢出后只取最后一个字节,
其中,如果密钥的长度L2不等于L1,则根据密钥K的长度L2,将密钥K拼接或裁减为L1字节。
CN201110208439.XA 2011-07-25 2011-07-25 信息加密方法 Active CN102904711B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110208439.XA CN102904711B (zh) 2011-07-25 2011-07-25 信息加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110208439.XA CN102904711B (zh) 2011-07-25 2011-07-25 信息加密方法

Publications (2)

Publication Number Publication Date
CN102904711A CN102904711A (zh) 2013-01-30
CN102904711B true CN102904711B (zh) 2016-02-03

Family

ID=47576765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110208439.XA Active CN102904711B (zh) 2011-07-25 2011-07-25 信息加密方法

Country Status (1)

Country Link
CN (1) CN102904711B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570427A (zh) * 2016-11-08 2017-04-19 深圳市新国都支付技术有限公司 一种Flash加密存储方法及装置
CN110768785A (zh) * 2019-10-22 2020-02-07 宜人恒业科技发展(北京)有限公司 一种编、解码方法、相关装置及计算机设备

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103117832A (zh) * 2013-02-07 2013-05-22 哈尔滨工业大学 高强度信息加密方法
CN104092535B (zh) * 2014-07-24 2017-09-15 福建升腾资讯有限公司 一种实现des密码加密的方法
CN105100085B (zh) * 2015-07-07 2018-03-02 浪潮通用软件有限公司 一种对信息进行加密和解密的方法和装置
CN107483193A (zh) * 2017-08-31 2017-12-15 郑州云海信息技术有限公司 一种加密方法、解密方法、加密装置和解密装置
CN108052805B (zh) * 2017-11-20 2021-07-30 北京旋极信息技术股份有限公司 一种数据加解密方法和装置
CN109379178B (zh) * 2018-11-15 2022-01-11 成都卫士通信息产业股份有限公司 加解密装置构建方法、系统、介质及设备
CN110247912B (zh) * 2019-06-14 2021-10-26 广州中安电工高新科技股份有限公司 一种数据处理方法及装置
CN110941817B (zh) * 2019-12-10 2022-02-22 中国银行股份有限公司 一种密码加密及密文解密的方法和装置
CN111563264A (zh) * 2020-04-21 2020-08-21 仲恺农业工程学院 基于大数据信息安全事件自动关联及快速响应系统及方法
CN113434877A (zh) * 2021-06-23 2021-09-24 平安国际智慧城市科技股份有限公司 用户输入数据的加密、解密方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
CN101013938A (zh) * 2007-01-12 2007-08-08 广州市诚毅科技软件开发有限公司 一种分组密码加密方法
CN101098233A (zh) * 2007-07-09 2008-01-02 姚锡根 一种获取确定序列加密法
CN101237321A (zh) * 2008-02-03 2008-08-06 西北农林科技大学 基于循环队列移位规则的加密方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
CN101013938A (zh) * 2007-01-12 2007-08-08 广州市诚毅科技软件开发有限公司 一种分组密码加密方法
CN101098233A (zh) * 2007-07-09 2008-01-02 姚锡根 一种获取确定序列加密法
CN101237321A (zh) * 2008-02-03 2008-08-06 西北农林科技大学 基于循环队列移位规则的加密方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570427A (zh) * 2016-11-08 2017-04-19 深圳市新国都支付技术有限公司 一种Flash加密存储方法及装置
CN110768785A (zh) * 2019-10-22 2020-02-07 宜人恒业科技发展(北京)有限公司 一种编、解码方法、相关装置及计算机设备

Also Published As

Publication number Publication date
CN102904711A (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
CN102904711B (zh) 信息加密方法
CN106656475B (zh) 一种用于高速加密的新型对称型密钥加密方法
KR101267109B1 (ko) 준군을 이용한 암호화 프리미티브, 에러 코딩, 및 의사난수 향상 방법
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
CN107147488A (zh) 一种基于sm2加解密算法的签名验签系统和方法
CN101262341A (zh) 一种会务系统中混合加密方法
US20140317407A1 (en) Incremental mac tag generation device, method, and program, and message authentication device
US6640303B1 (en) System and method for encryption using transparent keys
CN109861809B (zh) 一种实用化的分组随机加解密方法
CN107911354B (zh) 一种复合并行数据加密方法
CN112165443A (zh) 一种多密钥信息加密解密方法、装置及存储介质
CN116321129B (zh) 一种轻量级的基于动态密钥的电力交易专网通信加密方法
CN116418481A (zh) 一种文本隐私数据双重加密保护方法、装置及设备
CN114172651B (zh) 一种sm9公钥加密算法、解密算法的gpu加速实现方法
RU2459367C2 (ru) Способ формирования переменного ключа для блочного шифрования и передачи шифрованных данных
CN101826959B (zh) 一种面向字节的密钥流生成方法及加密方法
CN109831305A (zh) 基于非对称密钥池的抗量子计算签密方法和系统
CN103684748B (zh) 对称式加解密方法、对称式加解密系统
CN111314053B (zh) 一种数据加密和解密方法
KR20220137024A (ko) 대칭 비동기 생성 암호화 방법
CN112367159A (zh) 一种面向医疗数据安全存储的混合加、解密方法及系统
CN114124354B (zh) 确定性鉴别加解密装置及方法
CN113923029B (zh) 基于ecc混合算法的物联网信息加密方法
CN103634113A (zh) 一种带用户/设备身份认证的加解密方法及装置
CN117544418B (zh) 一种基于报文加解密实现不同终端互信的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: Nanshan District Keyuan Road Shenzhen city Guangdong province 518057 Tsinghua building A building 12 layer

Applicant after: SHENZHEN GENVICT TECHNOLOGY CO., LTD.

Address before: Nanshan District Keyuan Road Shenzhen city Guangdong province 518057 Tsinghua building A building 12 layer

Applicant before: Shenzhen Jinyi Technologies Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SHENZHEN JINYI TECHNOLOGIES CO., LTD. TO: SHENZHEN GENVICT TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant