CN105099654A - 基于耦合自触发元胞自动机加解密方法 - Google Patents
基于耦合自触发元胞自动机加解密方法 Download PDFInfo
- Publication number
- CN105099654A CN105099654A CN201510334344.0A CN201510334344A CN105099654A CN 105099654 A CN105099654 A CN 105099654A CN 201510334344 A CN201510334344 A CN 201510334344A CN 105099654 A CN105099654 A CN 105099654A
- Authority
- CN
- China
- Prior art keywords
- cellular
- cellular automata
- encryption
- automata
- value
- 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.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于耦合自触发元胞自动机的加解密算法,根据耦合和触发元胞自动机的性质,采用相互作用的n个元胞自动机作为一个整体,构造出耦合自触发元胞自动机加解密***。仿真实验结果表明,该算法极大地提高了密钥空间,有效地阻止了蛮力攻击;同时,加密时随机数的引入使得攻击者不可能获得唯一的明文密文对,从而有效地抵御了已知明文攻击和选择密文攻击。
Description
技术领域
本发明属于密码学技术,具体涉及一种耦合自触发元胞自动机加解密方法。
背景技术
元胞自动机是时间、空间和状态均离散的动力学***,其固有组成单元的简单性、单元之间作用的局部性和信息处理的高度并行性,并表现出复杂的全局性等特点使得元胞自动机适合于密码学中的应用。
元胞自动机(CellularAutomata,CA)是一时间和空间均离散的动力学***,散布在规则网格中的每一个元胞取有限的离散状态,遵循同样的作用规则,依据确定的局部规则作同步更新,大量元胞通过简单的相互作用而构成动态***的演化。元胞自动机最早是由vonNeumann提出的,目的是为研究具有自我复制特性和通用计算能力的元胞自动机。元胞自动机致力于抽象出复杂现象的基本动力学模型,通过计算机完成实验和接受检验。元胞自动开放性的、动态的、不可预测的特点在不同领域中得到了充分的体现,为复杂***提供了新的思路和实验手段。
元胞自动机在对称密码方面的应用,国内外也有相关的研究。Oliveira等人在考虑双向触发元胞自动机的情况下,建立基于双向触发元胞自动机的加密算法,该算法增加了更多的扰乱,提高了算法的加密强度。但在规则半径相同时,双触发元胞自动机的数量较少,要想提高加密强度,就要增大规则半径,这增加了计算量。
发明内容
本发明的目的在于提供一种耦合自触发元胞自动机加解密方法,该方法具有加密强度高,节省计算内存需求和计算时间的优点。
实现本发明目的的技术方案为:
耦合自触发元胞自动机加密算法,步骤如下:
1)令j为加密轮数,j=0;
2)明文(字符串)经编码器编码成三列长度都为N的二进制位串A、B和C,用随机源生成6r位随机数;随机数的引入使得单个误差在明文中传播过程较为明显;
3)在每列明文编码的后面分别添加2r位,同时分别存储在三个寄存器R1、R2和R3中;
4)将指针k置于最右侧元胞,即令k=N+2r-1;
5)在计算指针k对应的元胞的先导状态值时,根据该元胞当前状态值和寄存器R1、R2和R3中的值,从规则表中的相应规则得到元胞的先导状态值(规则表即加密过程中用到的触发规则);
6)同时让寄存器R1、R2和R3右移一位;
7)将(fi,gi,hi)的值分别置入R1、R2和R3的左侧,然后指针k左移一位((fi,gi,hi)为加密密钥);
8)重复4)5)6),直到k=0。
9)j=j+1,判断j是否等于加密轮数n,若相等则加密结束,否则返回步骤2);
耦合自触发元胞自动机解密算法,步骤如下:
1)令j为解密轮数,j=0;
2)解密过程为加密的逆过程,在解密过程中,首先生成一个解密指针p,p指向最左端元胞,令N为最右端数据,则k=N-2r;
3)根据解密密钥确定(fi,gi,hi)的值(此时(fi,gi,hi)为解密密钥);
4)把这个值赋给p当前指向的元胞,并把p值加1;
5)重复3)4),直到p=k,完成一轮迭代;
6)j=j+1,判断j是否等于解密轮数n,若相等则解密结束,否则返回步骤2)。
本发明与现有加解密技术相比,其显著优点为:(1)本发明提出的耦合自触发元胞自动机能在不增加计算量的同时,利用耦合来有效提高加密强度。耦合自触发元胞自动机具有简单的局部作用、内在的并行性、适合于硬件实现等特点,因而可以快速完成加密解密;(2)算法在不增加***复杂度的情况下,极大地提高了密钥空间。在较小的规则半径下,能有效地阻止蛮力攻击;(3)加密时随机数的引入使得攻击者不可能获得唯一的明文密文对,从而有效地抵御了已知明文攻击和选择密文攻击,同时具有抵御差分分析的能力。
附图说明
图1加解密算法结构图。
图2元胞自动机的构成图。
图3一维、邻居半径r=2的元胞自动机模型图。
图4邻居元胞图。
图5耦合元胞自动机模型图。
图6基本元胞的计算框图。
图7耦合自触发元胞自动机模型图。
图8自触发规则的构造流程图。
图9耦合自触发元胞自动机数据加密过程图。
图10耦合自触发元胞自动机数据加密流程图。
图11耦合自触发元胞自动机数据解密过程图。
图12耦合自触发元胞自动机数据解密流程图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
根据耦合和自触发元胞自动机的性质,采用相互作用的n个元胞自动机作为一个整体,构造出耦合触发元胞自动机加解密***。仿真实验结果表明,该算法极大地提高了密钥空间,有效地阻止了蛮力攻击;同时,加密时随机数的引入使得攻击者不可能获得唯一的明文密文对,从而有效地抵御了已知明文攻击和选择密文攻击。耦合自触发元胞自动机密码***采用耦合自触发元胞自动机触发规则作为密钥,将明文编码作为初始状态,通过反向演化获得的状态来构成密文;接收方收到密文后,正向迭代这个不可逆CA***,经过与加密时相同的演化,恢复出明文。
元胞自动机是一时间和空间均离散的动力学***,分布在n维(n通常为1,2,3)规则网格中的每一个元胞取有限的离散状态,遵循同样的作用规则,依据确定的局部规则作同步更新,大量元胞通过简单的相互作用而构成动态***的演化。元胞自动机由元胞、元胞空间、邻居及转换规则四部分组成,元胞自动机可以视为由一个元胞空间和定义于该空间的变换函数所组成(如图1)。元胞单元与它周围的其他元胞单元之间的相互影响的关系,被称为邻居关系(如图2)。二维元胞自动机的邻居定义较为复杂,图3为VonNeumann型和梯型两种邻居模型。图3中深色元胞为中心元胞,浅色元胞为邻居。
耦合元胞自动机是指两个元胞自动机的状态相互影响,相互作用,共同决定CA***的演化状态,即某个元胞自动机的下一时刻状态除了取决于自身现有的状态外还与其它元胞自动机的现有状态相关(如图4)。
两个简单元胞自动机A和B,它们具有相同的有限状态集S,其构形表示如下:
a=(…,ai-r,…ai-1,ai,ai+1,…,ai+r,…)
b=(…,bi-r,…bi-1,bi,bi+1,…,bi+r,…)
演化规则如下:
针对元胞空间中的基本元胞建立状态转移函数。图5给出了基本元胞在元胞自动机模型中的计算框图。
耦合自触发元胞自动机是一类特殊的元胞自动机,它由n个元胞自动机作为一个集团,每个元胞自动机具有相同的状态集S,根据各自的规则进行演化。耦合是指n个元胞自动机相互作用,相互影响成为一个元胞自动机组。触发是指如果改变元胞自动机中的一个元胞的状态,则其演化的状态也随之改变的性质(如图6)。耦合触发元胞自动机数据加密过程如图8所示,耦合触发元胞自动机数据加密流程图如图9所示。耦合触发元胞自动机数据解密过程如图10所示,耦合触发元胞自动机数据解密流程图如图11所示。
本发明的具体实施步骤如下。
耦合自触发元胞自动机加密算法,步骤如下:
第一步,明文经编码器编码成三列长度都为N的二进制位串A、B和C,用随机源生成6r位随机数。原明文形式可以是字符串或字符数组或者Byte数组,然后将原明文转化为二进制,若明文二进制长度为3的倍数,就刚好编码成三列等长N的二进制位串;若不够3的倍数,就在后面补1个或2个0或1,使其长度达到3的倍数。r为加密半径,元胞单元与它周围的其他元胞单元之间的相互影响的关系,称为邻居关系。加密半径为r表示元胞与它周围距离为r的元胞单元相互作用。加密时引入随机数使得攻击者不可能获得唯一的明文密文对,从而有效地抵御了已知明文攻击和选择密文攻击。
第二步,在每列明文编码的后面分别添加2r位随机数,同时分别存储在三个寄存器R1、R2和R3中;
第三步,将指针k置于最右侧元胞,即k=N+2r-1;k为指针位置,即要加密的那一位。寄存器主要保存中间加密信息,以供需要使用的时候可以调用。
第四步,在计算指针k对应的元胞的先导状态值时,根据该元胞当前状态值和寄存器R1、R2和R3中的值,通过规则表中的相应规则获得元胞的先导状态值。规则表即加密过程中用到的触发规则。元胞自动机的触发规则就是根据元胞当前状态及其邻居状态确定下一时刻该细胞状态的动力学函数,简单讲,就是一个状态转移函数。这些函数决定了元胞自动机每个细胞的将来演化状态,构造了一种有简单的、离散的空间和时间的局部物理成分。该规则给出每个细胞在下一时刻的状态,且该规则在时间上是该细胞自身的状态及它的邻居的状态的函数,我们把一个细胞所有可能的状态连同管理该细胞状态变换的规则一起称为一个变换函数。耦合触发元胞自动机密码***的状态转移函数如下式所示:
一般触发规则的长度越长,则加密强度越强。
第五步,同时让寄存器R1、R2和R3右移一位。在加密过程中,利用耦合自触发元胞自动机密码***的状态转移函数,可以得到加密时每个元胞的计算模式。
第六步,从1至255号规则中挑选一个规则组(fi,gi,hi)分别置入R1、R2和R3的左侧,然后指针k左移一位((fi,gi,hi)为第i轮加密的密钥);
第七步,重复第四至六步,直到k=0,此时所有明文位都已经过加密变换。
此时完成一轮加密操作,一般为了使加密强度足够强,都会进行n轮加密。因此,加密轮数也是一个非常重要的参数。随着规则半径的增大和耦合自动机个数的增加,密钥空间成指数级增长,从而有效地抵御了穷举攻击,可以认为***在计算上是安全的。对同一明文的加密由于每次引入随机数使得攻击者不可能获得唯一的明文密文对,从而有效地抵御了已知明文攻击和选择密文攻击。
耦合自触发元胞自动机解密算法,步骤如下:
解密过程为加密的逆过程,在解密过程中,利用耦合自触发元胞自动机密码***的状态转移函数,和解密密钥[(f1,g1,h1),(f2,g2,h2),...,(fn,gn,hn)],可以得到解密时每个元胞的计算模式。
第一步,首先生成一个解密指针p,p指向最左端数据,N为最右端数据,则令k=N-2r。解密时,密文数据长度为N。
第二步,根据解密密钥确定(fi,gi,hi)的值;
第三步,把这个值赋给p当前指向的元胞,并把p值加1;
第四步,重复第二步和第三步,直到p=k,完成一轮解密。
如果进行了n轮加密,则执行n轮解密,即可得到明文。
本发明以三个初等自触发元胞自动机A,B和C的耦合来进行加密。耦合自触发元胞自动机是一类特殊的元胞自动机,它由n个元胞自动机作为一个集团,每个元胞自动机具有相同的状态集S,根据各自的规则进行演化。耦合是指n个元胞自动机相互作用,相互影响成为一个元胞自动机组。自触发是指如果改变元胞自动机中的一个元胞的状态,则其演化的状态也随之改变的性质。
触发规则的构造。利用触发元胞自动机的特殊性质,可以构造出任意半径的元胞自动机规则。假设元胞自动机的规则半径为r,对2个状态(即只有0状态和1状态)的元胞,其规则空间大小S=22r+1,每个元胞自动机可以采用其中任何一种触发规则作为自己的规则。以自触发元胞自动机为例,构造半径为r的触发规则,其演化规则长度为22r+1位。
实验比较:
与RSA算法加密性能对比
待加密数据长度:43B
加密算法参数:全部采用默认参数(RSA密钥长度为512位)
表1加解密时间对比
与DES算法加密性能对比
待加密数据长度:43B
加密算法参数:全部采用默认参数(DES密钥长度为64位)
表2加解密时间对比
Claims (1)
1.一种基于耦合自触发元胞自动机加解密方法,包括耦合自触发元胞自动机加密方法和解密方法,其特征在于:
耦合自触发元胞自动机加密方法的具体步骤如下:
1)明文经编码器编码成三列长度都为N的二进制位串A、B和C,用随机源生成6r位随机数,r为元胞自动机规则半径;
2)在每列明文编码的后面分别添加2r位,同时分别存储在三个移位寄存器R1、R2和R3中;
3)将指针k置于最右侧元胞,即令k=N+2r-1;
4)计算指针k对应元胞的先导状态值:根据该元胞当前状态值和移位寄存器R1、R2和R3中的值,从规则表中的相应规则得到元胞的先导状态值;
5)移位寄存器R1、R2和R3右移一位;
6)将(fi,gi,hi)的值分别置入R1、R2和R3的左侧,然后指针k左移一位,(fi,gi,hi)为每轮的加密密钥;
7)重复步骤4)、5)、6),直到k=0;
此时完成一轮加密操作,如果需要进行n轮加密,则迭代n次;
耦合自触发元胞自动机解密算法的具体步骤如下:
1)首先生成一个解密指针p,p指向密文最左端数据,N为密文最右端数据,则设k=N-2r;
2)根据解密密钥确定(fi,gi,hi)的值;
3)把这个值赋给p当前指向的元胞,并把p值加1;
4)重复步骤2)、3),直到p=k,完成一轮解密;
如果进行了n轮加密,则执行n轮解密,即可得到明文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510334344.0A CN105099654A (zh) | 2015-06-16 | 2015-06-16 | 基于耦合自触发元胞自动机加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510334344.0A CN105099654A (zh) | 2015-06-16 | 2015-06-16 | 基于耦合自触发元胞自动机加解密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105099654A true CN105099654A (zh) | 2015-11-25 |
Family
ID=54579300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510334344.0A Pending CN105099654A (zh) | 2015-06-16 | 2015-06-16 | 基于耦合自触发元胞自动机加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105099654A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971367A (zh) * | 2017-03-23 | 2017-07-21 | 河海大学 | 一种基于可逆仿生元胞自动机的图像加密方法 |
CN108388690A (zh) * | 2018-01-16 | 2018-08-10 | 电子科技大学 | 元胞自动机实验平台 |
CN111669273A (zh) * | 2020-06-01 | 2020-09-15 | 广东利元亨智能装备股份有限公司 | 一种基于元胞自动机理论的加密方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523365A (zh) * | 2011-12-05 | 2012-06-27 | 河海大学 | 一种基于元胞自动机的图像加密和解密方法 |
CN102546158A (zh) * | 2011-12-22 | 2012-07-04 | 河海大学 | 一种基于奇偶元胞自动机的分组加密方法 |
-
2015
- 2015-06-16 CN CN201510334344.0A patent/CN105099654A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523365A (zh) * | 2011-12-05 | 2012-06-27 | 河海大学 | 一种基于元胞自动机的图像加密和解密方法 |
CN102546158A (zh) * | 2011-12-22 | 2012-07-04 | 河海大学 | 一种基于奇偶元胞自动机的分组加密方法 |
Non-Patent Citations (1)
Title |
---|
朱保平等: "耦合触发细胞自动机加密算法研究", 《南京理工大学学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971367A (zh) * | 2017-03-23 | 2017-07-21 | 河海大学 | 一种基于可逆仿生元胞自动机的图像加密方法 |
CN108388690A (zh) * | 2018-01-16 | 2018-08-10 | 电子科技大学 | 元胞自动机实验平台 |
CN108388690B (zh) * | 2018-01-16 | 2021-04-30 | 电子科技大学 | 元胞自动机实验平台 |
CN111669273A (zh) * | 2020-06-01 | 2020-09-15 | 广东利元亨智能装备股份有限公司 | 一种基于元胞自动机理论的加密方法 |
CN111669273B (zh) * | 2020-06-01 | 2021-07-27 | 广东利元亨智能装备股份有限公司 | 一种基于元胞自动机理论的加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sahari et al. | A pseudo-random numbers generator based on a novel 3D chaotic map with an application to color image encryption | |
Liu et al. | Chaos‐based fast colour image encryption scheme with true random number keys from environmental noise | |
Liu et al. | Image block encryption algorithm based on chaotic maps | |
Bakhshandeh et al. | An authenticated image encryption scheme based on chaotic maps and memory cellular automata | |
Chen et al. | An efficient image encryption scheme using lookup table-based confusion and diffusion | |
Zhang et al. | A novel image encryption scheme based on a linear hyperbolic chaotic system of partial differential equations | |
Ye et al. | An efficient chaotic image encryption algorithm based on a generalized Arnold map | |
Megha Mukundan et al. | Hash‐One: a lightweight cryptographic hash function | |
Murugan et al. | Image encryption scheme based on block‐based confusion and multiple levels of diffusion | |
Li et al. | Cryptanalysis and improvement of a chaotic image encryption by first-order time-delay system | |
Chen et al. | Differential cryptanalysis of a medical image cryptosystem with multiple rounds | |
Artuğer et al. | An effective method to improve nonlinearity value of substitution boxes based on random selection | |
Wang et al. | A novel block cryptosystem based on the coupled chaotic map lattice | |
CN104851071A (zh) | 一种基于三维混沌***的数字图像加密方法 | |
Zaibi et al. | Efficient and secure chaotic S‐Box for wireless sensor network | |
Liu et al. | Chaos-based image hybrid encryption algorithm using key stretching and hash feedback | |
CN106656459A (zh) | 一种针对sm3‑hmac的侧信道能量分析方法和装置 | |
Yang et al. | Impossible differential attacks on the SKINNY family of block ciphers | |
CN115499117A (zh) | 区块链交易网络的密钥对生成方法及数据传输方法 | |
CN105099654A (zh) | 基于耦合自触发元胞自动机加解密方法 | |
Behnia et al. | Applications of tripled chaotic maps in cryptography | |
Mhaibes et al. | Simple Lightweight Cryptographic Algorithm to Secure Imbedded IoT Devices. | |
Negi et al. | Cryptography Playfair cipher using linear feedback shift register | |
Takahashi et al. | Fault analysis on SIMON family of lightweight block ciphers | |
Tao et al. | A Snake Encryption Algorithm for Image with Multiple Chaos Fusion. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151125 |