魔方加密和解密方法

文档序号:7854752阅读:2690来源:国知局
专利名称:魔方加密和解密方法
技术领域
本发明属于计算机中的信息安全技术领域,是一种通用的数据加解密方法,应用于计算机安全、通信安全及国防等领域。
背景技术
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”, 达到保护数据不被非法窃取、阅读的目的。该过程的逆过程为解密,即将密文信息还原为明文的过程。加密方法通常分为两大类“对称式”加密方法和“非对称式”加密方法。对称加密方法主要有DES (Data Encryption Standard),数据加密标准,速度较快,适用于加密大量数据的场合;RC2和RC4,用变长密匙对大量数据进行加密,比DES快;IDEA (International Data Encryption Algorithm)国际数据加密算法,使用 128 位密匙提供非常强的安全性;AES (Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;非对称加密方法主要有RSA,一种支持变长密匙的公共密匙算法,需要加密的文件块的长度也是可变的。随着计算机软硬件技术的飞速发展,CPU运算速度不断提高,现在传统的常用加密算法因其密匙的长度基本都是固定的或受限的(〈=128位),其被破译的难度正逐渐降低,这就迫切地需要找到一种新的加密算法来提高加密强度。

发明内容
本发明提出一种密匙长度不受限制且加密强度足够高的加密方法,从而解决加密后的密文被性能极快的计算机用穷举和密码攻击等方法进行破解的可能。本发明的另一目的还在于提供基于上述加密方法的解密方法。一种魔方加密方法,令密匙字符串中每个字符表示为魔方的一种旋转操作,一种旋转操作对应一系列魔方方块序号的换位操作,魔方方块序号对应明文比特流数值的比特位位置该加密方法具体为(Al)将明文转换为二进制,并按每64位比特位为一段分割成若干换位段,最后一段不足64位的用预定字符补齐;(A2)依序逐一从密匙字符串提取单个字符,按照该字符对应的一系列的魔方方块序号换位操作分别对每一换位段的相应bit位进行换位操作;(A3)依序将每一换位段的换位操作结果相连,并按6位比特位为一段分成若干段,将各段对应的十进制数值按照ASCII码表转换成相应的字符,转换得到的字符组成的字符串即为密文。进一步地,所述步骤(A2)依序逐一从密匙字符串提取单个字符X,按照该字符X对应的一系列的魔方方块序号换位操作分别对每一换位段的相应bit位进行换位操作后,还将该换位操作结果进行bit位循环左移或右移,并将循环左移或右移结果与由八个字符X组成的字符串进行异或运算。基于所述魔方加密法的魔方解密法,具体为(BI)将密文的每个字符按照ASCII码表转换成相应的6位比特位的二进制字符串;(B2)依序将步骤(BI)得到的各二进制字符串相连,并按每64位比特位为一段分割成若干逆换位段;(B2)依序逐一从密匙字符串提取单个字符,按照该字符对应的一系列的魔方方块序号换位操作的逆操作分别对每一逆换位段的相应bit位进行换位操作,将该换位操作结 果按照ASCII码表转换为相应的字符即得明文。进一步地,基于所述魔方加密法的魔方解密法,具体为(Cl)将密文的每个字符按照ASCII码表转换成相应的6位比特位的二进制字符串;(C2)依序将步骤(Cl)得到的二进制字符串相连,并按每64位比特位为一段分割成若干逆换位段;(C3)依序逐一从密匙字符串提取单个字符X,将各逆换位段分别与由八个字符X组成的字符串进行异或运算,并对异或运算结果进行bit位循环右移或左移;(C4)按照字符X对应的一系列的魔方方块序号换位操作的逆操作分别对每一字符循环右移或左移后的逆换位段的相应bit位进行换位操作,将该换位操作结果按照ASCII码表转换为相应的字符即得明文。本发明魔方加密方法借鉴了魔方旋转的概念,解密速度快,密匙长度不受任何限制,加密强度大,密文对密匙的依存度很高,可以防范各种密码攻击、枚举攻击等破解方法。


图I为本发明的加密过程流程图。图2为本发明的解密过程流程图。图3为本发明中使用的魔方编码图。图4为实例加密过程示意图,图4a为明文的二进制示意图,图4b为第一组换位示意图,图4c为经密匙的第一个字符“I”加密处理后的结果示意图,图4d为bit位循环左移结果示意图,图4e为异或结果示意图,图4f为为经密匙的最后一个字符“5”加密处理后的结果示意图,图4g为按字节分段结果图,图4h为按6个比特分段示意图。
具体实施例方式下面结合附图和实施例对本发明作进一步地详细描述,但该实施例不应理解为对本发明的限制。本发明方法取名为“魔方加密算法”,在算法中对密匙做了特殊的定义,密匙是用一个不限长度的字符串来表示的,其中每个字符设定为对明文比特位数值的一系列换位操作,该操作借鉴了魔方旋转的概念,如图3所示,对于一个标准的魔方来说,它有6个面,每一面又有3X3个小方块,本发明对每一个小方块按一定的顺序编上号,其编号就对应于一段比特流的每一位的序号,当魔方完成一个转动操作时,魔方上的小方块位置发生了变化,记录下小方块的变化过程,并把这个过程对应于6X3X3=54位比特流对应位置的数值进行换位。本发明所指魔方不仅仅包括正六方体每一面有3X3个方块的魔方,还包括每一面有4X 4个方块的正六方体魔方,直到每面有nXn个方块的正六方体或多面体魔方,还包括
魔筒等。为了本发明目的,本发明采用的方法是加密时依次从左向右取密匙中的一个字符,然后以该字符设定的换位规则对明文的比特位数值进行一系列换位,并循环左移后用该字母进行异或操作,最后就得到了密文。解密过程就是对上述操作过程进行逆操作。如图I所示,本发明加密方法具体步骤说明如下步骤I :将明文按每64位比特数值为一段分割成若干段,最后一段不足64位的用“0 “补齐(不局限采用0,可任意指定字符),分段后的明文表示为HIinyVmn ;步骤2 :假设密匙字符串为X1X2X3-Xt,其中定义每个字符代表魔方的一种旋转操作,并且映射为对64位比特数值的换位方法。步骤3 :首先对段Hi1进行加密处理取密匙的第一个字符X1,按照X1的定义对Hl1进行换位操作,结果记为F1 ;步骤4 :将r:中的bit位循环左移2位,得到S1 ;步骤5 :将S1与由八个X1构成的字符串进行异或运算,得到h ;步骤6 :依次取密匙的下一个字符,重复步骤3、步骤4、步骤5直到取完密匙的所有字符,最后得到的结果即为Hl1加密后的结果;步骤7 :依次取明文的下一段,重复执行步骤3、步骤4、步骤5,完成对明文所有分段的加密处理。步骤8 :把所有的ei、e2、e3、…en合并成一个字符串,并按每6个比特为一段分成若干段;将每一段对应的二进制数值,按照编码表转换成一个字符;所有的字符组成一个长的字符串,即为密文。字符与旋转操作的映射关系可自行设计,没有条件限制。步骤4和步骤5是为进一步增强魔方加密法的加密强度,循环左移和右移l 63bit位均可。本发明解密方法如图2所示,就是对图I所示流程进行逆操作,在此不再赘述。实施例明文abcdefgh密匙12345I)该实例中明文为8个字节(即64位比特),不需要做分段处理。明文的二进制如图4a表示2)通过查询表2和表1,分别得到组成密匙的字符“1”、“2”、“3”、“4”、“5”的魔方
换位规则。、
3)从左到右取密匙的第一个字符“1”,按字符“I”的魔方换位规则对明文进行换位。具体来说,字符“ I ”的换位规则是如图4b所示,第一组换位第3位换到第34位,第34位换到第52位,第52位换到第12位,第12位换到第3位。
第二组换位第6位换到第31位,第31位换到第49位,第49位换到第15位,第15位换到第6位。第三组换位第9位换到第28位,第28位换到第46位,第46位换到第18位,第18位换到第9位。第四组换位第19位换到第21 位,第21位换到第27位,第27位换到第25位,第25位换到第19位。第五组换位第20位换到第24位,第24位换到第26位,第26位换到第22位,第22位换到第20位。经密匙的第一个字符“I”加密处理后的结果&如图4c所示。4)将F1整体循环左移2位得到S1,结果如图4d所示。5)将八个字符“I”组成的字符串与S1异或得到结果^结果如图4e所示。6)依次取密匙的下一个字符为“2”,重复3),4),5)的过程得到t2。7)依次取密匙的下一个字符为“3”,重复3),4),5)的过程得到t3。8)依次取密匙的下一个字符为“4,重复3),4),5)的过程得到t4。9)取密匙的最后一个字符为“5”,重复3),4),5)的过程得到t5,如图4f所示。10)将t5按3个字节一段分成3段,最后一段只有2个字节用字符“=”补齐,这里字符“=”起到结束标志的作用,结果如图4g所示把第一段按6个比特为一组分成4组,如图4h所示。将每一组对应的十进制数值加1,以该数值为位置序号将每组比特值转换为字符串 “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi jklmnopqrstuvwxyz012345678^&” 中某一个字符,例如第一段6个比特的二进制为011010,其十进制数值为26,对应上面字符串中第26+1位的字符为“a”。以此方法将转换后的所有字符合并即得到最终的密文“aFDCu27k*nQ=,,。此结果即为加密后的结果,解密过程即为以上过程的逆过程。表I魔方27种操作对应的比特流换位规则
权利要求
1.一种魔方加密方法,令密匙字符串中每个字符表示为魔方的一种旋转操作,一种旋转操作对应一系列魔方方块序号的换位操作,魔方方块序号对应明文比特流数值的比特位位置该加密方法具体为 (Al)将明文转换为二进制,并按每64位比特位为一段分割成若干换位段,最后一段不足64位的用预定字符补齐; (A2)依序逐一从密匙字符串提取单个字符,按照该字符对应的一系列的魔方方块序号换位操作分别对每一换位段的相应bit位进 行换位操作; (A3)依序将每一换位段的换位操作结果相连,并按6位比特位为一段分成若干段,将各段对应的十进制数值按照ASCII码表转换成相应的字符,转换得到的字符组成的字符串即为密文。
2.根据权利要求I所述的魔方加密法,其特征在于,所述步骤(A2)依序逐一从密匙字符串提取单个字符X,按照该字符X对应的一系列的魔方方块序号换位操作分别对每一换位段的相应bit位进行换位操作后,还将该换位操作结果进行bit位循环左移或右移,并将循环左移或右移结果与由八个字符X组成的字符串进行异或运算。
3.基于权利要求I所述的魔方加密法的魔方解密法,具体为 (BI)将密文的每个字符按照ASCII码表转换成相应的6位比特位的二进制字符串; (B2)依序将步骤(BI)得到的各二进制字符串相连,并按每64位比特位为一段分割成若干逆换位段; (B2)依序逐一从密匙字符串提取单个字符,按照该字符对应的一系列的魔方方块序号换位操作的逆操作分别对每一逆换位段的相应bit位进行换位操作,将该换位操作结果按照ASCII码表转换为相应的字符即得明文。
4.基于权利要求I所述的魔方加密法的魔方解密法,具体为 (Cl)将密文的每个字符按照ASCII码表转换成相应的6位比特位的二进制字符串; (C2)依序将步骤(Cl)得到的二进制字符串相连,并按每64位比特位为一段分割成若干逆换位段; (C3)依序逐一从密匙字符串提取单个字符X,将各逆换位段分别与由八个字符X组成的字符串进行异或运算,并对异或运算结果进行bit位循环右移或左移; (C4)按照字符X对应的一系列的魔方方块序号换位操作的逆操作分别对每一字符循环右移或左移后的逆换位段的相应bit位进行换位操作,将该换位操作结果按照ASCII码表转换为相应的字符即得明文。
全文摘要
本发明公开了一种魔方加密方法,属于计算机信息安全技术领域。该方法对密匙做了特殊定义,令密匙字符串中每个字符表示为魔方的一种旋转操作,旋转操作对应一系列魔方方块序号的换位规则;加密时依次从左向右取密匙中的一个字符,然后以该字符设定的换位规则对明文的比特位数值进行一系列换位,并循环左移或右移后用该字母进行异或操作,最后就得到了密文。本发明还提供基于上述加密方法的解密方法,其解密过程就是对加密操作过程进行逆操作。本发明借鉴了魔方旋转的概念,解密速度快,密匙长度不受任何限制,加密强度大,密文对密匙的依存度很高,可以防范各种密码攻击、枚举攻击等破解方法。
文档编号H04L9/28GK102752108SQ20121022026
公开日2012年10月24日 申请日期2012年6月29日 优先权日2012年6月29日
发明者周雪斌, 梁俊杰 申请人:湖北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1