首页 理论教育 混沌密码:设计与实现方案

混沌密码:设计与实现方案

时间:2023-07-02 理论教育 版权反馈
【摘要】:M.S.Baptista提出一种在伪随机序列中搜索明文的混沌密码。李树钧首次明确建议用混沌系统来构造动态S盒密码,此密码包含一子混沌流密码和一子混沌分组密码。

混沌密码:设计与实现方案

混沌密码从总体上看有两种通用的设计思路:

●使用混沌系统生成伪随机密钥流,该密钥流直接用于掩盖明文;

●使用明文和/或密钥为初始条件和/或控制参数,通过迭代/反迭代多次的方法得到密文。

第一种思路对应于序列密码;而第二种思路对应于分组密码。除了上述两种以外,最近还出现了一些新的设计思路,比如基于搜索机制的混沌密码方案;S盒混沌分组密码;基于混沌系统的概率分组密码以及一些将混沌映射和传统密码学或其他混沌映射相结合的组合密码方案等。

1.数字混沌流密码

密码按加密形式可分为流密码和分组密码,前者又称为序列密码。数字混沌序列密码是用混沌系统来代替传统流密码的密钥流生成器。它是指利用单个或者单个级联的混沌系统产生的随机序列作为密钥,实现对原文的加密(包括文本、图像、声音和视频等)。至今已有许多混沌系统被用来设计产生流密钥,如二维的Hénon吸引子、Logistic映射、改进的Logis-tic映射、分段线性混沌映射和Lorenz系统等。为了增强安全性,可以考虑使用多混沌系统。比如可以让两个混沌系统的输出{x1{i},x2{i}}按约定方法进行比较以生成伪随机比特流{ki)}。若x1i)>x2i),则ki)=1;若x1i)<x2i),则ki)=0;若x1i)=x2i),则不输出任何数。

因为混沌序列的伪随机特性、长周期的遍历性等特性完全满足密钥流的要求,而且比传统密钥流生成器产生的密钥流的周期更长、统计特性更好。

2.混沌分组密码

混乱和扩散理论是分组密码算法设计的基石。混乱试图隐藏明文、密文和密钥之间的任何关系,可以通过一个复杂的替代算法来达到这个目的;而扩散则是把单个明文单位或密钥位的影响尽可能地扩大到更多的密文中去,可以通过重复使用数据的某种置换,并对置换结果再应用某个函数的方式来达到。

混沌分组密码通常以明文和/或密钥作为初始条件和/或控制参数,迭代/反迭代混沌系统产生密文。例如Y.Habutsu等提出了用斜Tent映射实现加密,具体做法如下:

以参数a为密钥,将明文分组p变换成(0,1)作为系统的初值。

加密时,计算n次逆映射F-1得到密文c

c=F-1F-1(…F-1p)…))=F-np

在每次迭代时,需要随机地从F-1的两个等式中选择一个,这意味着一个明文组将可能有2n种密文形式,只有其中的某一种密文形式被发送给对方。

解密时,计算n次映射F恢复出明文p

p=FF(…Fc)…))=Fnc)=FnF-np))

由于F是一个二对一的映射,所以在这个计算过程中只需要一个参数a,而不需要在加密过程中每次迭代所选取的是哪一个方程。(www.xing528.com)

3.基于搜索的混沌密码

基于搜索的混沌密码的特点是从伪随机序列中搜索明文。其中具有代表性的有两大类,分别由M.S.Baptista和E.Alvarez首次提出。

M.S.Baptista提出一种在伪随机序列中搜索明文的混沌密码。此类密码的伪随机序列就是其自身的混沌轨道。其基本原理可以简述如下:

将混沌间隙分成S单元,每个单元代表不同的明文;迭代混沌系统,直至混沌轨道到达明文所代表的单元;记录迭代的次数,作为密文。

E.Alvarez提出了另一种在伪随机序列中搜索明文的混沌密码。此类密码的基本原理简述如下:

首先根据门限来产生伪随机序列,任意选取初始值启动混沌系统,根据门限Ui来产生伪随机序列C;然后在C中搜索含有bi位的明文,直至找到;记录混沌系统的当前状态,并将Uibi记录为密文。如果在相当长的时间内没有找到,就将bi减1,重复上述过程,直至将明文找到。

4.S盒混沌分组密码

通过混沌系统来构造S盒分组密码,是把混沌密码和传统密码结合起来的重要方式。由混沌系统来构造S盒分组密码有两种:动态S盒和静态S盒。

L.Kocarev等人自1998年起,提出引入混沌系统构造静态S盒分组密码。李树钧首次明确建议用混沌系统来构造动态S盒密码,此密码包含一子混沌流密码和一子混沌分组密码。其基本原理如下:

使用n+1个分段线性混沌映射,其中2n个用来加密ECS(加密混沌系统),而剩下的1个用来控制CCS(控制混沌系统)。CCS系统的初始条件和控制参数作为密钥。在子流密码中,用2n个ECS系统迭代产生的信号来遮掩明文;在子分组密码中,通过对这2n个ECS混沌系统的混沌轨道的分类,动态产生伪随机S盒;接着用这个S盒来替代被流密码遮掩过的明文。这种密码的加密速度快,而且容易硬件实现,但是安全性不高,可以通过内部反馈或密文反馈来提高安全性。

5.基于混沌系统的概率分组密码

Papadimitriou提出的密码是一种概率分组密码。它将d比特的明文加密为e比特的密文(ed)。其基本原理如下:

1)给定一个(或多个)混沌系统产生一个归一化的(即缩放到[0,1]单元区间上)拟混沌轨道978-7-111-37285-1-Chapter10-10.jpg

2)使用978-7-111-37285-1-Chapter10-11.jpg来构造一个虚拟状态空间,即一个由2d个虚拟吸引子的列表,要求这2d个虚拟吸引子将分别对应2e个虚拟状态1~2e。构造方法是:在序列978-7-111-37285-1-Chapter10-12.jpg中搜索1~2e,直到所有的整数都被找到为止(即置乱1~2e的排列次序);选择2d个状态作为虚拟吸引子,并伪随机地将剩下的2e-2d个状态分配到这2d个虚拟吸引子上去。

3)使用一个一一置换矩阵P将每个虚拟吸引子Va和一个消息明文字符联系起来。P是一个索引自0开始的1×2d的向量,其元素是2d个置乱的位于1~2e的虚拟吸引子。

但此类密码有几个缺点:明文长度d和密文长度e在可实现性和安全性上存在矛盾;没有明确地给出如何选取2d个虚拟吸引子和分配2e个虚拟状态等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈