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

文档序号:7684259阅读:153来源:国知局
专利名称:基于双循环队列移位和换位规则的加密方法
技术领域
本发明涉及一种传统加密方法,尤其涉及一种基于双循环队列移位规则和 换位规则的传统加密方法。
背景技术
传统加密方法主要通过代换和置换两种方式实现信息的隐藏。典型的置换 加密方法包括栅栏置换、转轮机等。其中置换方式不隐藏原明文的字符,采用 将组成明文的字符重新排序以达到信息隐藏的目的。但是,现有的置换移位加密方法的加密强度小、对信息置乱度低,有些加 密方法如转轮机等只适用于硬件实现。发明内容本发明目的是提出一种基于双循环队列移位和换位规则的加密方法,其解 决了现有置换加密方法加密强度小、速度低、操作性差等问题,适用于软、硬 件实现。本发明的技术解决方案是一种基于双循环队列移位和换位规则的加密方法,具体步骤如下步骤l]取mxn的明文信息矩阵A;步骤2]创建随机整数序列X^rEN, r^max(m, n)};步骤3]用户根据加密强度要求,输入一个整数w作为矩阵变换次数;步骤4]在随机整数序列X中任取随机数k,运算k=k mod 5;当h0时,从随机整数序列X中取4个随机数L、 L2、 U、 L4,要求L〈L3 《m, L<U《n;然后以第L,行作为起始行、以第U行作为结束行、以第U列作 为起始列、以第U列作为结束列,构建变换矩阵A',记录操作过程,形成一个 子密钥;当k=l时,从随机整数序列X中任取随机数x、 y、 z,要求x^y,运算x二l+(xmod (1+L3-L,)),运算y二l+(ymod (l+L-L》),运算z=z mod 2,对变换矩阵A, 中的第x行和第y行进行循环左移位,当2=0时,不换位,当2=1时,则换位, 记录操作过程,形成一个子密钥;当k=2时,从随机整数序列X中任取随机数x、 y、 z,要求x^y,运算x=l+(x mod (1+L4-L2)),运算y=l+(y mod (1+L4-L2)),运算z=z mod 2,对变换矩阵A, 中的第x列和第y列进行循环下移位,当z二0时,不换位,当2=1时,则换位, 记录操作过程,形成一个子密钥;当k=3日寸,从随机整数序列X中任取随机数x、 y、 z,要求x^y,运算x=l+(x mod (l+LfLj),运算y二l+(ymod (l+L:厂L》),运算z二z mod 2,对变换矩阵A, 中的第x行和第y行进行循环右移位,当z=0时,不换位,当z=l时,则换位, 记录操作过程,形成一个子密钥;当k二4时,从随机整数序列X中任取随机数x、 y、 z,要求x#y,运算x=l+(x mod (l+L厂L》),运算尸l+(ymod L2)),运算z二z mod 2,对变换矩阵A,中的第x列和第y列进行循环上移位,当z二0时,不换位,当z二l时,则换位, 记录操作过程,形成一个子密钥;若第1次运算k时得到的k#0,构建变换矩阵A' =A,即Lr=l、 L2=l、 L3=m、 L=n,记录操作过程,形成第一个子密钥;步骤5]重复步骤4]共w次,得到mx"的密文矩阵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,将需要加密的明文信息从左到右、从上到下依次 填入mx"矩阵,形成明文信息矩阵A;步骤2]创建随机整数序列X^reN, r^max(m, n)};步骤3]用户根据加密强度要求,输入一个整数w作为矩阵变换次数;步骤4]在随机整数序列X中任取随机数k,运算k二k mod 5;当k二0时,从随机整数序列X中取4个随机数L、 L2、 L3、 L4,要求L〈L3 《m, L2<L4《n;然后以第L,行作为起始行、以第U行作为结束行、以第U列作 为起始列、以第U列作为结束列,构建变换矩阵A',记录操作过程为 ttfLi/U/lVU形成一个子密钥;当k=l时,从随机整数序列X中任取随机数x、 y、 z,要求x^y,运算x=l+(x mod (l+U-L》),运算y二l+(ymod L)),运算z=z mod 2,对变换矩阵A,中的第x行和第y行进行循环左移位,当z=l时,则移出变换矩阵A'的两个 信息交换位置后再放入变换矩阵A'中,当z=0时,不换位,记录操作过程为 ttax/y/z,形成一个子密钥;当k二2时,从随机整数序列X中任取随机数x、 y、 z,要求x^y,运算x=l+(x mod (1+L4-L2)),运算y二l+(ymod (l+U-U)),运算z=z mod 2,对变换矩阵A' 中的第x列和第y列进行循环下移位,当z=l时,则移出变换矩阵A'的两个信息交换位置后再放入变换矩阵A'中,当z=0时,不换位,记录操作过程为 ftbx/y/z,形成一个子密钥;当k=3时,从随机整数序列X中任取随机数x、 y、 z,要求x^y,运算x=l+(x mod (1+L:,-L,)),运算y二l+(ymod (l+L厂L》),运算z=z mod 2,对变换矩阵A, 中的第x行和第y行进行循环右移位,当z=l时,则移出变换矩阵A'的两个 信息交换位置后再放入变换矩阵A'中,当2=0时,不换位,则换位,记录操作 过程ftcx/y/z,形成一个子密钥;当k=4时,从随机整数序列X中任取随机数x、 y、 z,要求x^y,运算x二l+(x mod (l+LfL2)),运算y二l+(ymod (1+L4-L2)),运算z=z mod 2,对变换矩阵A' 中的第x列和第y列进行循环上移位,当z=l时,则移出变换矩阵A,的两个 信息交换位置后再放入变换矩阵A'中,当z二0时,不换位,记录操作过程 #dx/y/z,形成一个子密钥;若第1次运算k时得到的k#0,构建变换矩阵A, =A,即L产l、 L2=l、 L3=m、 U二n,记录操作过程为ttf!VL2/L3/U,形成第一个子密钥;歩骤5]重复步骤4]共w次,得到mx"的密文矩阵Z;按照从左到右、从上 到下的方式读取密文矩阵Z,得到密文信息;步骤6]将m、 n以及各子密钥依操作次序排列得到密钥,并以文件形成安全 存放,密钥文件的格式为nAntt fiyL/h/l^ax/y/zfflDx/y/z……。针对上述加密过程,基于双循环队列移位和换位规则的解密过程如下步骤1]从密钥文件中取前两个数据m和n,得到密文矩阵Z的行数m和列数n;步骤2]将密文信息按照从左到右、从上到下的方式依次填入mx"矩阵,形成密文矩阵Z;步骤3]在密钥中以ttf为子密钥段的分段标志,取最后一个子密钥段; 步骤4]用子密钥段对密文矩阵的解密操作过程如下以第L行作为起始行、以第U行作为结束行、以第U列作为起始列、以第 U列作为结束列,确定密文矩阵Z的一个变换矩阵Z';依照从后向前的次序,用子密钥段中的各个子密钥对变换矩阵Z'进行解密 操作当子密钥为ttax/y/z时,对变换矩阵Z'中的第x行和第y行进行循环右移 位;当2=1时,则移出变换矩阵A'的两个信息交换位置后再放入变换矩阵A' 中,当z=0时,不换位;当子密钥为恥x/y/z时,对变换矩阵Z,中的第x列和第y列进行循环上移 位;当z4时,则移出变换矩阵A'的两个信息交换位置后再放入变换矩阵A' 中,当2=0时,不换位;当子密钥为ttcx/y/z时,对变换矩阵Z'中的第x行和第y行进行循环左移 位;当^1时,则移出变换矩阵A'的两个信息交换位置后再放入变换矩阵A' 中,当z^时,不换位;当子密钥为ttdx/y/z时,对变换矩阵Z'中的第x列和第y列进行循环下移 位;当z二l时,则移出变换矩阵A'的两个信息交换位置后再放入变换矩阵A' 中,当z=0时,不换位;步骤5]删除该子密钥段;步骤6]重复步骤3]至步骤5],直到密钥为空为止,完成解密操作过程,得到明文矩阵A;歩骤7]按照从左到右、从上到下读取明文矩阵A,得到明文信息。 以图1为例,采用本发明方法对信息l、 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, y=5、 z=l,运算x二l+(xmod (1+L4_L2)) =2, 运算尸l+(ymod (1+L4-L2))=3,运算z二zmod2:l,对变换矩阵A,的第2列和 第3列进行向上的循环移位,并换位,形成如图1C的结果,记录操作过程为 #d2/3/l,作为一个子密钥;6、 第三次操作过程在随机整数序列X中任取k=3,运算k=k mod 5=3, 则在随机整数序列X中任取x=5, y=3、 z=2,运算x二l+(x mod (1+L4-L2))=3, 运算尸l+(ymod (l+L厂L2))=l,运算z=z mod 2二0,对变换矩阵A,的第1行和 第3行进行向右的循环移位,形成如图ID的结果,记录操作过程为ftc3/1/0, 作为一个子密钥;7、 第四次操作过程在随机整数序列X中任取k=0,运算k=k mod 5=0, 再在随机整数序列X中取L,=l、 L2=l、 L:,=3、 U=4,选取第1行至第3行、第1 列至第4列的变换矩阵A",如图IE中黑框部分所示,记录操作过程为 ttfl/1/3/4,作为一个子密钥;8、 第五次操作过程在随机整数序列X中任取k=l,运算k=k mod 5=1, 再在随机整数序列X中任取x=3, y=5、 z=l,运算x二l+(xmod (1+L3-L》)=l, 运算y二l+(ymod (l+L厂L,)) =3,运算z二zmod24,对变换矩阵A"的第1行和 第3行进行向左的循环移位,并换位,形成如图IF的结果,记录操作过程为 #al/3/l,作为一个子密钥;9、 第六次操作过程在随机整数序列X中任取k二2,运算k=k mod 5=2, 再在随机整数序列X中任取x二3, y=l、 z=l,运算x二l+(x mod (1+L4-L2))=4, 运算y-l+(ymod L2))=2,运算z二z mod 2二0,对变换矩阵A"的第4列和第2列进行向下的循环移位,形成如图1G的结果,记录操作过程为能4/2/0, 作为一个子密钥;10、 得到密钥4\5#f2/3/4/5#d2/3/lttc3/l/0#fl/l/3/4#al/3/lftb4/2/0; 密文为2、 13、 4、 1、 5、 6、 3、 15、 11、 14、 12、 7、 19、 8、 20、 16、 17、 9、 18、 10。对密文为2、 13、 4……16、 17、 9、 18、 IO进行解密的过程如下:1、 从密钥中取前两个数字4和5,得到密文矩阵Z为4行和5列,将密文 2、 13、 4、 1、 5、 6、 3、 15、 11、 14、 12、 7、 19、 8、 20、 16、 17、 9、 18、 10 填入4X5的密文矩阵Z中;2、 在密钥中以針为子密钥段的分段标志,取最后一个子密钥段 針l/l/3/4fel/3/l恥4/2/0;3、 以第l行作为起始行、以第3行作为结束行、以第l列作为起始列、以第4列作为结束列,确定密文矩阵Z的一个变换矩阵Z",见图1G黑框部分;4、 取最后一个子密钥ttb4/2/0,对变换矩阵Z"中的第4列和第2列进行循环上移位,得图1F;5、 再取倒数第二个子密钥tta1/3/1,对变换矩阵Z"中的第1行和第3行进 行循环右移位,并换位,得图1E;6、 删除最后一个子密钥段ttfl/l/3/4ttal/3/lftb4/2/0;7、 取密钥中的最后一个子密钥段針2/3/4/5tfd2/3/lttc3/l/0;8、 以第2行作为起始行、以第4行作为结束行、以第3列作为起始列、以 第5列作为结束列,确定密文矩阵Z的一个变换矩阵Z',见图1D黑框部分;9、 取最后一个子密钥ttc3/1/0,对变换矩阵Z'中的第3行和第1行进行循 环左移位,得图1C;10、 再取倒数第二个子密钥ttd2/3/1,对变换矩阵Z'中的第2列和第3列 进行循环下移位,并换位,得图1B;12、 删除最后一个子密钥段針2/3/4/5ttd2/3/lttc3/l/0;完成解密操作过程, 得到明文矩阵A;13、 按照从左到右、从上到下读取明文矩阵A,得到明文信息l、 2、 3、 4、 5、 6......19、 20。本发明的技术基础1、 循环队列,是一种基本的数据结构。对于一个有序数据序列 X={Xl,x2,……,XH,Xn ,n〉2L定义了移动操作I^(rE, r反),对X的r正操作为X, ={ x ,Xl,x2,......,Xh ,n〉2}即正向循环移动,对X的r反操作为X' ={ x2,......,xn—, , x,, ,x,,n〉2)即反向循环移动;2、 对于一个m^矩阵A(或其任一子阵A'),将其行或列可分别看作循环 队列,这样就有行的左移和右移或列的下移和上移4种操作方式;3、 双循环队列将矩阵A (或其任一子阵A')的两行或两列看作队列, 同时进行移动操作;4、 换位双循环队列移动时,移出矩阵A (或其任一子阵A')的两个数 据,交换位置放入矩阵中。
权利要求
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、y、z,要求x≠y,运算x=1+(xmod(1+L3-L1)),运算y=1+(y mod(1+L3-L1)),运算z=z mod 2,对变换矩阵A’中的第x行和第y行进行循环左移位,当z=0时,不换位,当z=1时,则换位,记录操作过程,形成一个子密钥;当k=2时,从随机整数序列X中任取随机数x、y、z,要求x≠y,运算x=1+(xmod(1+L4-L2)),运算y=1+(y mod(1+L4-L2)),运算z=z mod 2,对变换矩阵A’中的第x列和第y列进行循环下移位,当z=0时,不换位,当z=1时,则换位,记录操作过程,形成一个子密钥;当k=3时,从随机整数序列X中任取随机数x、y、z,要求x≠y,运算x=1+(xmod(1+L3-L1)),运算y=1+(y mod(1+L3-L1)),运算z=z mod 2,对变换矩阵A’中的第x行和第y行进行循环右移位,当z=0时,不换位,当z=1时,则换位,记录操作过程,形成一个子密钥;当k=4时,从随机整数序列X中任取随机数x、y、z,要求x≠y,运算x=1+(xmod(1+L4-L2)),运算y=1+(y mod(1+L4-L2)),运算z=z mod 2,对变换矩阵A’中的第x列和第y列进行循环上移位,当z=0时,不换位,当z=1时,则换位,记录操作过程,形成一个子密钥;若第1次运算k时得到的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次,得到mx"的密文矩阵 Z;按照从左到右、从上到下的方式读取密文矩阵Z,得到密文信息;所述步骤6]具体包括以下步骤将m、 n以及各子密钥依次排列得到密钥。
3、 根据权利要求1或2所述的基于循环队列移位规则的加密方法,其特征在于所述明文信息包括文本信息、图形信息、图像信息或流媒体信息。
全文摘要
本发明涉及一种双循环队列移位和换位规则的加密方法,包括以下步骤取明文信息矩阵;创建随机整数序列;用户输入矩阵变换次数;在随机整数序列中任取随机数并取整;根据设定的余数规则对变换矩阵的其中一行或一列进行循环队列移位并可换位;经多次变换后,得到密文矩阵;将各次变换操作过程记录为子密钥依次排列得到密钥。本发明属于古典置换加密,采用最基本的移位操作,利用较少的资源实现快速的加解密过程,解决了现有移位加密方法加密强度小、速度低、操作性差等问题,具有加解密速度快、加密方法实现简单、加密方法加密强度高、安全性好、适用面广的优点,适用于软、硬件实现。
文档编号H04L9/18GK101237322SQ20081001749
公开日2008年8月6日 申请日期2008年2月3日 优先权日2008年2月3日
发明者阳 张, 旭 景, 武苏里, 谢小军 申请人:西北农林科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1