CN101237321B - 基于循环队列移位规则的加密方法 - Google Patents

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

Info

Publication number
CN101237321B
CN101237321B CN2008100174934A CN200810017493A CN101237321B CN 101237321 B CN101237321 B CN 101237321B CN 2008100174934 A CN2008100174934 A CN 2008100174934A CN 200810017493 A CN200810017493 A CN 200810017493A CN 101237321 B CN101237321 B CN 101237321B
Authority
CN
China
Prior art keywords
key
matrix
sub
row
encryption method
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
CN2008100174934A
Other languages
English (en)
Other versions
CN101237321A (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.)
Northwest A&F University
Original Assignee
Northwest A&F 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 Northwest A&F University filed Critical Northwest A&F University
Priority to CN2008100174934A priority Critical patent/CN101237321B/zh
Publication of CN101237321A publication Critical patent/CN101237321A/zh
Application granted granted Critical
Publication of CN101237321B publication Critical patent/CN101237321B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种基于循环队列移位规则的加密方法,包括以下步骤:取明文信息矩阵;创建随机整数序列;用户输入矩阵变换次数;在随机整数序列中任取随机数并取整;根据设定的余数规则对变换矩阵的其中一行或一列进行循环队列移位;经多次变换后,得到密文矩阵;将各次变换操作过程记录为子密钥依次排列得到密钥。本发明属于古典置换加密,采用最基本的移位操作,利用较少的资源实现快速的加解密过程,解决了现有移位加密方法加密强度小、速度低、操作性差等问题,具有加解密速度快、加密方法实现简单、加密方法加密强度高、安全性好、适用面广的优点,适用于软、硬件实现。

Description

基于循环队列移位规则的加密方法
技术领域
本发明涉及一种传统加密方法,尤其涉及一种基于循环队列移位规则的传统加密方法。
背景技术
传统加密方法主要通过代换和置换两种方式实现信息的隐藏。典型的置换加密方法包括栅栏置换、转轮机等。其中置换方式不隐藏原明文的信息,采用将组成明文的信息重新排序以达到信息隐藏的目的。
但是,现有的置换移位加密方法加密强度小、对信息置乱度低,有些加密方法如转轮机等只适用于硬件实现。
发明内容
本发明目的是提出一种基于循环队列移位规则的加密方法,其解决了现有移位加密方法加密强度小、速度低、操作性差等问题,适用于软、硬件实现。
本发明的技术解决方案是:
一种基于循环队列移位规则的加密方法,具体步骤如下:
步骤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]将各子密钥依次排列得到密钥。
当明文信息不是矩阵形式时,上述骤1]具体包括以下步骤:用户输入整数m、n,将需要加密的明文信息从左到右、从上到下依次填入m×n矩阵,形成明文信息矩阵A;上述步骤5]具体包括以下步骤:重复步骤4]共w次,得到m×n的密文矩阵Z;按照从左到右、从上到下的方式读取密文矩阵Z,得到密文信息;上述步骤6]具体包括以下步骤:将m、n以及各子密钥依次排列得到密钥。
上述明文信息可以是文本信息、图形信息、图像信息或流媒体信息。
本发明的优点如下:
1、加解密速度快:本加密方法属于古典置换加密,加密方法变换简单,采用最基本的移位操作,没有附加特别的变换过程,能利用较少的资源实现快速的加解密过程;
2、加密方法实现简单,适用面广:加密方法原理相对简单,既能利用硬件也可基于软件实现;
3、加密方法加密强度高,安全性好:对于n×n的矩阵进行w次变换,加密方法强度可达到nw
4、加密方法适用面广:加密方法既可用于文本加密,也可适用于图形、图像、流媒体等多媒体信息加密。
附图说明
图1是本发明加密方法的加密过程示意图。
具体实施方式
一种基于循环队列移位规则的加密方法如下:
步骤1]用户输入整数m、n,将需要加密的明文信息从左到右、从上到下依次填入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’,记录操作过程,格式为#fL1/L2/L3/L4,形成一个子密钥;
当k=1时,从随机整数序列X中任取1个随机数x,运算x=1+(x mod(1+L3-L1)),对变换矩阵A’中的第x行进行循环左移位,记录操作过程,格式为#ax,形成一个子密钥;
当k=2时,从随机整数序列X中任取1个随机数x,运算x=1+(x mod(1+L4-L2)),对变换矩阵A’中的第x列进行循环下移位,记录操作过程,格式为#bx,形成一个子密钥;
当k=3时,从随机整数序列X中任取1个随机数x,运算x=1+(x mod(1+L3-L1)),对变换矩阵A’中的第x行进行循环右移位,记录操作,格式为#cx,形成一个子密钥;
当k=4时,从随机整数序列X中任取1个随机数x,运算x=1+(x mod(1+L4-L2)),对变换矩阵A’中的第x列进行循环上移位,记录操作过程,格式为#dx,形成一个子密钥;
若第1次运算时k≠0,则构建变换矩阵A’=A,即L1=1、L2=1、L3=m、L4=n,记录#fL1/L2/L3/L4,形成第一个子密钥;
步骤5]重复步骤4]共w次,得到m×n的密文矩阵Z;按照从左到右、从上到下的方式读取密文矩阵Z,得到密文信息;
步骤6]将m、n以及各子密钥依操作次序排列得到密钥,并以文件形成安全存放,密钥文件的格式为m\n# fL1/L2/L3/L4#ax#b……。
针对上述加密过程,基于循环队列移位规则的解密过程如下:
步骤1]从密钥文件中取前两个数据m和n,得到密文矩阵Z的行数m和列数n;
步骤2]将密文信息按照从左到右、从上到下的方式依次填入m×n矩阵,形成密文矩阵Z;
步骤3]在密钥中以#f为子密钥段的分段标志,取最后一个子密钥段;
步骤4]用子密钥段对密文矩阵的解密操作过程如下:
以第L1行作为起始行、以第L3行作为结束行、以第L2列作为起始列、以第L4列作为结束列,确定密文矩阵Z的一个变换矩阵Z’;
依照从后向前的次序,用子密钥段中的各个子密钥对变换矩阵Z’进行解密操作:
当子密钥为#ax时,对变换矩阵Z’中的第x行进行循环右移位;
当子密钥为#bx时,对变换矩阵Z’中的第x列进行循环上移位;
当子密钥为#cx时,对变换矩阵Z’中的第x行进行循环左移位;
当子密钥为#dx时,对变换矩阵Z’中的第x列进行循环下移位;
步骤5]删除该子密钥段;
步骤6]重复步骤3]至步骤5],直到密钥为空为止,完成解密操作过程,得到明文矩阵A;
步骤7]按照从左到右、从上到下读取明文矩阵A,得到明文信息。
以图1为例,采用本发明方法对信息1、2、3,……,20进行加密,过程如下:
1、用户输入m=4,n=5,构造明文矩阵A,如图1A;
2、用户输入加密强度w=6;
3、创建随机整数序列X={3,4,5,1,4,5,3,2,……};
4、第一次操作过程:在随机整数序列X中任取k=5,运算k=kmod 5=0,则在随机整数序列X取L1=2、L2=3、L3=4、L4=5,选取明文矩阵A的第2行至第4行、第3列至第5列的构建变换矩阵A’,如图1B中黑框部分所示,记录操作为#f2/3/4/5,作为一个子密钥;
5、第二次操作过程:在随机整数序列X中任取k=4,运算k=k mod 5=4,则在随机整数序列X中任取x=4,运算x=1+(x mod(1+L4-L2))=2,对变换矩阵A’的第2列进行向上的循环移位,形成如图1C的结果,记录操作过程为#d2,作为一个子密钥;
6、第三次操作过程:在随机整数序列X中任取k=3,运算k=k mod 5=3,则在随机整数序列X中任取x=5,运算x=1+(x mod(1+L3-L1))=3,对变换矩阵A’的第3行进行向右的循环移位,形成如图1D的结果,记录操作过程为#c3,作为一个子密钥;
7、第四次操作过程:在随机整数序列X中任取k=0,运算k=k mod 5=0,再在随机整数序列X中取L1=1、L2=1、L3=3、L4=4,选取第1行至第3行、第1列至第4列的变换矩阵A”,如图1E中黑框部分所示,记录操作过程为#f1/1/3/4,作为一个子密钥;
8、第五次操作过程:在随机整数序列X中任取k=1,运算k=k mod 5=1,再在随机整数序列X中任取x=3,运算x=1+(x mod(1+L3-L1))=1,对变换矩阵A”的第1行进行向左的循环移位,形成如图1F的结果,记录操作过程为#a1,作为一个子密钥;
9、第六次操作过程:在随机整数序列X中任取k=2,运算k=k mod 5=2,再在随机整数序列X中任取x=3,运算x=1+(x mod(1+L4-L2))=4,对变换矩阵A”的第4列进行向下的循环移位,形成如图1G的结果,记录操作过程为#b4,作为一个子密钥。
10、连接子密钥,得到密钥为:4\5#f2/3/4/5#d2#c3#f1/1/3/4#a1#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填入4×5的密文矩阵Z中;
2、在密钥中以#f为子密钥段的分段标志,取最后一个子密钥段#f1/1/3/4#a1#b4;
3、以第1行作为起始行、以第3行作为结束行、以第1列作为起始列、以第4列作为结束列,确定密文矩阵Z的一个变换矩阵Z”,见图1G黑框部分;
4、取最后一个子密钥#b4,对变换矩阵Z”中的第4列进行循环上移位,得图1F;
5、再取倒数第二个子密钥#a1,对变换矩阵Z”中的第1行进行循环右移位,得图1E;
6、删除最后一个子密钥段#f1/1/3/4#a1#b4;
7、取密钥中的最后一个子密钥段#f2/3/4/5#d2#c3;
8、以第2行作为起始行、以第4行作为结束行、以第3列作为起始列、以第5列作为结束列,确定密文矩阵Z的一个变换矩阵Z’,见图1D黑框部分;
9、取最后一个子密钥#c3,对变换矩阵Z’中的第3行进行循环左移位,得图1C;
10、再取倒数第二个子密钥#d2,对变换矩阵Z’中的第2列进行循环下移位,得图1B;
12、删除最后一个子密钥段#f2/3/4/5#d2#c3;完成解密操作过程,得到明文矩阵A;
13、按照从左到右、从上到下读取明文矩阵A,得到明文信息1、2、3、4、5、6……19、20。
本发明的技术基础:
1、循环队列,是一种基本的数据结构。对于一个有序数据序列X={x1,x2,……,xn-1,xn,n>2},定义了移动操作R=(r,r),对X的r操作为X’={xn,x1,x2,……,xn-1,n>2}即正向循环移动,对X的r操作为X’={x2,……,xn-1,xn,x1,n>2}即反向循环移动;
2、对于一个m*n矩阵A(或其任一变换矩阵A’),将其行或列可分别看作循环队列,这样就有行的左移和右移或列的下移和上移4种操作方式。

Claims (3)

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所述的基于循环队列移位规则的加密方法,其特征在于:
所述步骤1]具体包括以下步骤:用户输入整数m、n,将需要加密的明文信息从左到右、从上到下依次填入m×n矩阵,形成明文信息矩阵A;
所述步骤5]具体包括以下步骤:重复步骤4]共w次,得到m×n的密文矩阵Z;按照从左到右、从上到下的方式读取密文矩阵Z,得到密文信息;
所述步骤6]具体包括以下步骤:将m、n以及各子密钥依次排列得到密钥。
3. 根据权利要求1或2所述的基于循环队列移位规则的加密方法,其特征在于:
所述明文信息包括文本信息、图形信息、图像信息或流媒体信息。
CN2008100174934A 2008-02-03 2008-02-03 基于循环队列移位规则的加密方法 Expired - Fee Related CN101237321B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100174934A CN101237321B (zh) 2008-02-03 2008-02-03 基于循环队列移位规则的加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100174934A CN101237321B (zh) 2008-02-03 2008-02-03 基于循环队列移位规则的加密方法

Publications (2)

Publication Number Publication Date
CN101237321A CN101237321A (zh) 2008-08-06
CN101237321B true CN101237321B (zh) 2010-12-08

Family

ID=39920697

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100174934A Expired - Fee Related CN101237321B (zh) 2008-02-03 2008-02-03 基于循环队列移位规则的加密方法

Country Status (1)

Country Link
CN (1) CN101237321B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938350B (zh) * 2010-07-16 2012-06-06 黑龙江大学 一种基于组合编码的文件加密和解密的方法
CN101895389B (zh) * 2010-07-16 2012-06-06 黑龙江大学 采用比例计算的基于组合编码的文件加密和解密的方法
CN102904711B (zh) * 2011-07-25 2016-02-03 深圳市金溢科技股份有限公司 信息加密方法
CN102271036B (zh) * 2011-08-29 2014-10-15 田耕 一种利用多矩阵的数字信号加密方法
CN107392834B (zh) * 2017-07-28 2021-02-26 江西农业大学 一种随机循环移位的图像加密方法
CN107786333B (zh) * 2017-11-02 2023-11-28 浙江工业大学 一种基于时间透镜成像的光信号二维加/解密系统
CN108964872B (zh) * 2018-07-23 2020-05-26 武汉大学 一种基于aes的加密方法及装置
CN109462469A (zh) * 2018-11-13 2019-03-12 常熟理工学院 基于排列和置换的网络流媒体信息安全加密方法及系统
CN109873700B (zh) * 2019-01-16 2023-10-10 内蒙古惠强科技有限公司 密钥生成方法、装置、计算机可读存储介质及终端设备
CN109787750A (zh) * 2019-03-12 2019-05-21 广州合众互联信息技术有限公司 通信报文的编解码方法、装置、设备和存储介质
CN112367157B (zh) * 2020-10-31 2023-05-12 深圳供电局有限公司 一种物联网环境加密方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1275846A (zh) * 1999-05-26 2000-12-06 松下电器产业株式会社 数据加密装置和方法
CN1528066A (zh) * 2001-05-31 2004-09-08 高通股份有限公司 进行kasumi计算的装置和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1275846A (zh) * 1999-05-26 2000-12-06 松下电器产业株式会社 数据加密装置和方法
CN1528066A (zh) * 2001-05-31 2004-09-08 高通股份有限公司 进行kasumi计算的装置和方法

Also Published As

Publication number Publication date
CN101237321A (zh) 2008-08-06

Similar Documents

Publication Publication Date Title
CN101237321B (zh) 基于循环队列移位规则的加密方法
CN100589380C (zh) 基于双循环队列移位和换位规则的加密方法
JP4967544B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN103345609B (zh) 一种文本加解密方法和加解密设备
CN104363091A (zh) 一种自动检索密钥和选择算法的加解密方法
EP2016524B1 (en) Robust cipher design
CN106327414A (zh) 一种基于明文自身特性的双混沌图像加密方法
CN101663856B (zh) 密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法
KR20080031906A (ko) 데이터 요소 암호화 방법 및 데이터 암호화 방법
US10225074B2 (en) Encryption system and method based on biometric technology
CN1241352C (zh) 加密二进制编码信息的方法
CN110149200A (zh) 一种基于动态dna和4d混沌的彩色图像加密方法
CN107332657A (zh) 一种基于区块链数字签名的加密方法及系统
CN105916141A (zh) 一种自同步的祖冲之加解密算法的实现系统及其方法
CN1523810A (zh) 设计最优加密函数的方法和优化的加密设备
Meghrajani et al. Universal share for multisecret image sharing scheme based on Boolean operation
EP1507356A2 (en) Cryptographic method
CN1190034C (zh) 一种分组密码加密方法
CN1168058C (zh) 一种动态密码编制的数据加密方法
Verma et al. Modified caesar cipher using rectangular method for enhanced security
JP2013098722A (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号方法、およびプログラム
CN116318615B (zh) 基于超混沌系统与dna编码结合的图像加密方法和解密方法
JP5706751B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
RU2007123714A (ru) Способ криптографического преобразования блоков цифровых данных

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

Granted publication date: 20101208

Termination date: 20120203