基于循环队列移位规则的加密方法

文档序号:7684258阅读:210来源:国知局
专利名称:基于循环队列移位规则的加密方法
技术领域
本发明涉及一种传统加密方法,尤其涉及一种基于循环队列移位规则的传 统加密方法。
背景技术
传统加密方法主要通过代换和置换两种方式实现信息的隐藏。典型的置换 加密方法包括栅栏置换、转轮机等。其中置换方式不隐藏原明文的信息,采用 将组成明文的信息重新排序以达到信息隐藏的目的。但是,现有的置换移位加密方法加密强度小、对信息置乱度低,有些加密 方法如转轮机等只适用于硬件实现。发明内容本发明目的是提出一种基于循环队列移位规则的加密方法,其解决了现有 移位加密方法加密强度小、速度低、操作性差等问题,适用于软、硬件实现。 本发明的技术解决方案是-一种基于循环队列移位规则的加密方法,具体步骤如下 步骤l]取 附x w 的明文信息矩阵A;步骤2]创建随机整数序列XHreN, r^max(m, n)};步骤3]用户根据加密强度要求,输入一个整数w作为矩阵变换次数;步骤4]在随机整数序列X中任取随机数k,运算l^k mod 5;当k=0时,从随机整数序列X中取4个随机数Lh L2、 L3、 U,要求L〈U 《m, L2<L4《n;然后以第Lt行作为起始行、以第"行作为结束行、以第U列作 为起始列、以第U列作为结束列,构建变换矩阵A',记录操作过程,形成一个 子密钥;当1^1时,从随机整数序列X中任取随机数x,运算^l+(xmod (1+L3-L0); 对变换矩阵A'中的第x行进行循环左移位,记录操作过程,形成一个子密钥;当k=2时,从随机整数序列X中任取随机数x,运算x=l+(x mod (1+L4-L2)), 对变换矩阵A'中的第x列进行循环下移位,记录操作过程,形成一个子密钥;当k=3时,从随机整数序列X中任取随机数x,运算x=l+(x mod (1+L3-L》), 对变换矩阵A'中的第x行进行循环右移位,记录操作过程,形成一个子密钥;当k=4时,从随机整数序列X中任取随机数x,运算x二l+(x mod L2)),对变换矩阵A'中的第x列进行循环上移位,记录操作过程,形成一个子密钥;当第l次运算时k40,构建变换矩阵A' =A,即L二1、 U二l、 L3=m、 U:n记 录操作过程,形成第一个子密钥;步骤5]重复步骤4]共w次,得到mu的密文矩阵Z;步骤6]将各子密钥依次排列得到密钥。当明文信息不是矩阵形式时,上述骤l]具体包括以下步骤用户输入整数 m、 n,将需要加密的明文信息从左到右、从上到下依次填入mx"矩阵,形成明 文信息矩阵A;上述步骤5]具体包括以下步骤重复步骤4]共W次,得到mx"的 密文矩阵Z;按照从左到右、从上到下的方式读取密文矩阵Z,得到密文信息; 上述步骤6]具体包括以下步骤将m、 n以及各子密钥依次排列得到密钥。上述明文信息可以是文本信息、图形信息、图像信息或流媒体信息。本发明的优点如下1、 加解密速度快本加密方法属于古典置换加密,加密方法变换简单,采 用最基本的移位操作,没有附加特别的变换过程,能利用较少的资源实现快速 的加解密过程;2、 加密方法实现简单,适用面广加密方法原理相对简单,既能利用硬件 也可基于软件实现;3、 加密方法加密强度高,安全性好对于"x"的矩阵进行W次变换,加密 方法强度可达到"、4、 加密方法适用面广加密方法既可用于文本加密,也可适用于图形、图 像、流媒体等多媒体信息加密。


图1是本发明加密方法的加密过程示意图。
具体实施方式
一种基于循环队列移位规则的加密方法如下步骤1]用户输入整数m、 n,将需要加密的明文信息从左到右、从上到下 依次填入mxn矩阵,形成明文信息矩阵A;步骤2]创建随机整数序列X^rEN, r^max(m, n)};步骤3]用户根据加密强度要求,输入一个整数w作为矩阵变换次数;步骤4]在随机整数序列X中任取随机数k,运算k二k mod 5;当k^时,从随机整数序列X中取4个随机数U、 L2、 L3、 L4,要求L〈 L3 ^m, L2〈I^^n;然后以第L,行作为起始行、以第L3行作为结束行、以第U列作 为起始列、以第U列作为结束列,构建变换矩阵A',记录操作过程,格式为 ftfLVU/lVU形成一个子密钥;当k二l时,从随机整数序列X中任取1个随机数x,运算x=l+(x mod L)),对变换矩阵A'中的第x行进行循环左移位,记录操作过程,格式 为ttax,形成一个子密钥;当k二2时,从随机整数序列X中任取1个随机数x,运算x=l+(x mod (1+L4-L2)),对变换矩阵A'中的第x列进行循环下移位,记录操作过程,格式 为ttbx,形成一个子密钥;当k二3时,从随机整数序列X中任取1个随机数x,运算x=l+(x mod (l+U-U),对变换矩阵A'中的第x行进行循环右移位,记录操作,格式为ftcx, 形成一个子密钥;当k二4时,从随机整数序列X中任取1个随机数x,运算x=l+(x mod (1+L4-L2)),对变换矩阵A,中的第x列进行循环上移位,记录操作过程,格式 为ttdx,形成一个子密钥;若第l次运算时k共0,则构建变换矩阵A, =A,即L产l、 L2=l、 U=m、 L4=n, 记录tt flVU/U/U形成第一个子密钥;步骤5]重复步骤4]共w次,得到mx"的密文矩阵Z;按照从左到右、从上到下的方式读取密文矩阵Z,得到密文信息;步骤6]将m、 n以及各子密钥依操作次序排列得到密钥,并以文件形成安全 存放,密钥文件的格式为nAntt fLi/L/U/Utexttb 。针对上述加密过程,基于循环队列移位规则的解密过程如下步骤l]从密钥文件中取前两个数据m和n,得到密文矩阵Z的行数m和列数n;步骤2]将密文信息按照从左到右、从上到下的方式依次填入mx"矩阵,形成密文矩阵Z;步骤3]在密钥中以針为子密钥段的分段标志,取最后一个子密钥段; 步骤4]用子密钥段对密文矩阵的解密操作过程如下以第L行作为起始行、以第U行作为结束行、以第U列作为起始列、以第 U列作为结束列,确定密文矩阵Z的一个变换矩阵Z';依照从后向前的次序,用子密钥段中的各个子密钥对变换矩阵Z'进行解密 操作当子密钥为fex时,对变换矩阵Z'中的第X行进行循环右移位; 当子密钥为恥x时,对变换矩阵Z'中的第x列进行循环上移位; 当子密钥为ttcx时,对变换矩阵Z'中的第X行进行循环左移位; 当子密钥为ftdx时,对变换矩阵Z'中的第X列进行循环下移位; 步骤5]删除该子密钥段;步骤6]重复步骤3]至步骤5],直到密钥为空为止,完成解密操作过程,得到明文矩阵A;步骤7]按照从左到右、从上到下读取明文矩阵A,得到明文信息。以图1为例,采用本发明方法对信息1、 2、 3,……,20进行加密,过程如下1、 用户输入111=4, n=5,构造明文矩阵A,如图1A;2、 用户输入加密强度w二6;3、 创建随机整数序列X二(3, 4, 5, 1, 4, 5, 3, 2,……};4、 第一次操作过程在随机整数序列X中任取l^5,运算k二kmod5二0,则 在随机整数序列X取L,=2、 L2=3、 L3=4、 L4=5,选取明文矩阵A的第2行至第4 行、第3列至第5列的构建变换矩阵A',如图1B中黑框部分所示,记录操作 为針2/3/4/5,作为一个子密钥;5、 第二次操作过程在随机整数序列X中任取k=4,运算k=k mod 5=4,则在随机整数序列X中任取x二4,运算Fl+(xmod (1+L4-U)二2,对变换矩阵 A'的第2列进行向上的循环移位,形成如图1C的结果,记录操作过程为ftd2,作为一个子密钥;6、 第三次操作过程在随机整数序列X中任取k=3,运算k=k mod 5=3, 则在随机整数序列X中任取^5,运算Fl+(xmod (1+L3-L》)二3,对变换矩阵 A'的第3行进行向右的循环移位,形成如图1D的结果,记录操作过程为ftc3,作为一个子密钥;7、 第四次操作过程在随机整数序列X中任取k^,运算k二kmod5^,再 在随机整数序列X中取L,二1、 U二l、 L3=3、 L4=4,选取第1行至第3行、第l列 至第4列的变换矩阵A",如图IE中黑框部分所示,记录操作过程为針1/1/3/4, 作为一个子密钥;8、 第五次操作过程在随机整数序列X中任取k=l,运算k=k mod 5=1, 再在随机整数序列X中任取f3,运算Fl+(xmod (1+L3-L》)二l,对变换矩阵 A"的第1行进行向左的循环移位,形成如图IF的结果,记录操作过程为ttal, 作为一个子密钥;9、 第六次操作过程在随机整数序列X中任取k=2,运算k=k mod 5=2, 再在随机整数序列X中任取x二3,运算x二l+(xmod (1+L4-L》)二4,对变换矩阵 A"的第4列进行向下的循环移位,形成如图1G的结果,记录操作过程为ftb4,作为一个子密钥。10、 连接子密钥,得到密钥为4\5#f2/3/4/5#d2#c3#fl/l/3/4#al#b4;从 图G中得到密文为2、 3、 4、 19、 5、 6、 7、 8、 1、 10、 11、 12、 13、 14、 15、16、 17、 20、 18、 9。对密文为2、 3、 4、 19、 5、 6、 7、 8、 1、 10、 11、 12、 13、 14、 15、 16、17、 20、 18、 9进行解密的过程如下1、 从密钥中取前两个数字4和5,得到密文矩阵Z为4行和5列,将密文 2、 3、 4、 19、 5、 6、 7、 8、 1、 10、 11、 12、 13、 14、 15、 16、 17、 20、 18、 9 填入4X5的密文矩阵Z中;2、 在密钥中以ftf为子密钥段的分段标志,取最后一个子密钥段 #fl/l/3/4#alftb4;3、 以第l行作为起始行、以第3行作为结束行、以第l列作为起始列、以 第4列作为结束列,确定密文矩阵Z的一个变换矩阵Z",见图1G黑框部分;4、 取最后一个子密钥恥4,对变换矩阵Z"中的第4列进行循环上移位,得图1F;5、 再取倒数第二个子密钥ttal,对变换矩阵Z"中的第1行进行循环右移位, 得图1E;6、 删除最后一个子密钥段ttfl/l/3/4felftb4;7、 取密钥中的最后一个子密钥段針2/3/4/5ftd2ttc3;8、 以第2行作为起始行、以第4行作为结束行、以第3列作为起始列、以 第5列作为结束列,确定密文矩阵Z的一个变换矩阵Z',见图1D黑框部分;9、 取最后一个子密钥ttc3,对变换矩阵Z'中的第3行进行循环左移位,得图1C;10、 再取倒数第二个子密钥M2,对变换矩阵Z'中的第2列进行循环下移 位,得图1B;12、 删除最后一个子密钥段ttf2/3/4/5ttd2ttc3;完成解密操作过程,得到明文矩阵A;13、 按照从左到右、从上到下读取明文矩阵A,得到明文信息l、 2、 3、 4、 5、 6......19、 20。本发明的技术基础1、 循环队列,是一种基本的数据结构。对于一个有序数据序列 X={Xl, x2,……,Xn-b x , n〉2},定义了移动操作R=(r正,r反),对X的r £操作为X' 二{ xn ,Xl,X2,......,xn-, ,n〉2}即正向循环移动,对X的r反操作为X, 二{ x2,......,Xh , xn ,Xi,n〉2)即反向循环移动;2、 对于一个m^矩阵A(或其任一变换矩阵A'),将其行或列可分别看作 循环队列,这样就有行的左移和右移或列的下移和上移4种操作方式。
权利要求
1、一种基于循环队列移位规则的加密方法,其特征在于所述加密方法的步骤如下步骤1]取m×n的明文信息矩阵A;步骤2]创建随机整数序列X={r∈N,r≤max(m,n)};步骤3]用户根据加密强度要求,输入一个整数w作为矩阵变换次数;步骤4]在随机整数序列X中任取随机数k,运算k=k mod 5;当k=0时,从随机整数序列X中取4个随机数L1、L2、L3、L4,要求L1<L3≤m,L2<L4≤n;然后以第L1行作为起始行、以第L3行作为结束行、以第L2列作为起始列、以第L4列作为结束列,构建变换矩阵A’,记录操作过程,形成一个子密钥;当k=1时,从随机整数序列X中任取随机数x,运算x=1+(x mod(1+L3-L1));对变换矩阵A’中的第x行进行循环左移位,记录操作过程,形成一个子密钥;当k=2时,从随机整数序列X中任取随机数x,运算x=1+(x mod(1+L4-L2)),对变换矩阵A’中的第x列进行循环下移位,记录操作过程,形成一个子密钥;当k=3时,从随机整数序列X中任取随机数x,运算x=1+(x mod(1+L3-L1)),对变换矩阵A’中的第x行进行循环右移位,记录操作过程,形成一个子密钥;当k=4时,从随机整数序列X中任取随机数x,运算x=1+(x mod(1+L4-L2)),对变换矩阵A’中的第x列进行循环上移位,记录操作过程,形成一个子密钥;当第1次运算时k≠0,构建变换矩阵A’=A,即L1=1、L2=1、L3=m、L4=n记录操作过程,形成第一个子密钥;步骤5]重复步骤4]共w次,得到m×n的密文矩阵Z;步骤6]将各子密钥依次排列得到密钥。
2、 根据权利要求1所述的基于循环队列移位规则的加密方法,其特征在于 所述步骤l]具体包括以下步骤用户输入整数m、 n,将需要加密的明文信息从左到右、从上到下依次填入mx"矩阵,形成明文信息矩阵A;所述步骤5]具体包括以下步骤重复步骤4]共W次,得到附x"的密文矩阵 Z;按照从左到右、从上到下的方式读取密文矩阵Z,得到密文信息;所述步骤6]具体包括以下步骤将m、 n以及各子密钥依次排列得到密钥。 3、根据权利要求1或2所述的基于循环队列移位规则的加密方法,其特征 在于-所述明文信息包括文本信息、图形信息、图像信息或流媒体信息。
全文摘要
本发明涉及一种基于循环队列移位规则的加密方法,包括以下步骤取明文信息矩阵;创建随机整数序列;用户输入矩阵变换次数;在随机整数序列中任取随机数并取整;根据设定的余数规则对变换矩阵的其中一行或一列进行循环队列移位;经多次变换后,得到密文矩阵;将各次变换操作过程记录为子密钥依次排列得到密钥。本发明属于古典置换加密,采用最基本的移位操作,利用较少的资源实现快速的加解密过程,解决了现有移位加密方法加密强度小、速度低、操作性差等问题,具有加解密速度快、加密方法实现简单、加密方法加密强度高、安全性好、适用面广的优点,适用于软、硬件实现。
文档编号H04L9/16GK101237321SQ20081001749
公开日2008年8月6日 申请日期2008年2月3日 优先权日2008年2月3日
发明者阳 张, 旭 景, 武苏里, 谢小军 申请人:西北农林科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1