序列密码
- 格式:ppt
- 大小:348.00 KB
- 文档页数:44


第三章 序列密码
在第二章中,咱们证明了理论上保密的密码体制是存在的,这种密码体制是利用随机的密钥序列1}{iik对明文序列1}{iim加密取得密文序列1}{iic。可是,由于随机的密钥序列1}{iik必需与明文等长,因此其生成、分派、存储和利用都存在必然的困难,因这人们假想利用少量的真随机数按必然的固定规那么生成的“伪随机”的密钥序列代替真正的随机序列,这就产生了序列密码。因此,序列密码脱胎于“一次一密”密码体制。
由于序列密码中的密钥序列是由少量的真随机数按必然的固定规那么生成的,因此不可能是真正随机的。因此,如何刻画密钥序列的“伪随机性”,如何保证密钥序列的“伪随机性”可不能造成加密算法在实际中被破,是序列密码设计中需要解决的问题。另外,由于序列密码只需分派和存储少量的真随机数就可对任意长度的明文加密,因此克服了完全保密的密码体制在实践中在密钥分派中碰到的难题。序列密码中利用的少量真随机数确实是序列密码的密钥,有人也称之为“种子密钥”。
由于序列密码算法在公布资料中不多,而且所需的理论基础也较多,因此本章不对序列密码做过量介绍。本章仅从伪随机序列的常规特性、序列密码的大体模型、理论基础、Walsh谱理论、大体编码技术和具体实例动身,介绍序列密码的设计理论,同时也简单介绍对序列密码的分析方式。
为幸免序列密码的密钥与密钥序列的概念混淆,以下本书均称序列密码的由密钥产生的密钥序列为乱数序列。在本书中,nZ2和n}1,0{都表示所有二元n维向量组成的集合和二元域上的n维线性空间,并将12Z简记为2Z;)/(nZ表示集合}1,,2,1,0{n和模n剩余类环,)(qGF表示q元域。本书有时也将n维二元向量),,,(021xxxnn不加说明地等同于)2/(nZ中的元素011211222xxxxxnnnn。 § 伪随机序列的常规特性
§3.1.1 周期序列和最终周期序列
常用流密码算法(RC4算法与A5算法)
流密码(Stream Cipher),是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。 1949年Shannon证明了只有一次一密的密码体制是绝对安全的,这给序列密码技术的研究以强大的支持,序列密码方案的发展是模仿一次一密系统的尝试,或者说“一次一密”的密码方案是序列密码的雏形。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密,加解密时一 次处理明文中的一个或几个比特。
RC4算法:
RC4算法非常简单,易于描述:用从1到256个字节(8到2048位)的可变长度密钥初始化一个256个字节的状态矢量S,S的元素记为S[0],S[1],⋯ ,S[255],从始至终置换后的S包含从0到255的所有8比特数.对于加密和解密,字节K由S中256个元素按一定方式选出一个元素而生成.每生成一个K的值,S中的元素就被重新置换一次.
1 初始化S
开始时,S中元素的值被置为按升序从0到255,即s[0]=0,S[1]=1,⋯ ,S[255]=255.同时建立一个临时矢量T.如果密钥K的长度为256字节,则将K赋给T.否则,若密钥长度为keylen字节,则将K的值赋给T的前keylen个元素,并循环重复用K的值赋给T剩下的元素,直到T的所有元素都被赋值.这些预操作可概括如下:
/*初始化*/
for i=0 to 255 do
S[i]=i;
T[i]=K[i mod keylen]
然后用T产生S的初始置换.从S[0]到S[255],对每个S[i],根据由T[i]确定的方案,将S[i]置换为S中的另一字节:
分组密码与流密码
第一节 什么是分组密码
分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。现代分组密码的研究始于20世纪70年代中期,至今已有20余年历史,这期间人们在这一研究领域已经取得了丰硕的研究成果。大体上,分组密码的研究包括三方面:分组密码的设计原理,分组密码的安全性分析和分组密码的统计性能测试。
第二节 分组密码的设计原则
Claude Shannon在1949年提出了代替—置换(S-P)网络的想法,成为当代分组加密法的基础,而代替和置换就是两种基本的密码学运算。
Shannon又提出扩散(diffusion)和扰乱(confusion)是影响密码安全的主要因素。扩散的目的是让明文中的单个数字影响密文中的多个数字,从而使明文的统计特征在密文中消失,相当于明文的统计结构被扩散。例如,最简单的方法让明文中的一个数字影响密文中的k个数字,可以用:
扰乱是指让密钥与密文的统计信息之间的关系变得复杂,从而增加通过统计方法进行攻击的难度。扰乱可以通过各种代换算法实现。
设计安全的分组加密算法,需要考虑对现有密码分析方法的抵抗,如差分分析、线性分析等,还需要考虑密码安全强度的稳定性。此外,用软件实现的分组加密要保证每个组的长度适合软件编程(如8、16、32……),尽量避免位置换操作,以及使用加法、乘法、移位等处理器提供的标准指令;从硬件实现的角度,加密和解密要在同一个器件上都可以实现,即加密解密硬件实现的相似性。
第三节 Feistel加密结构
如今许多对称式分组密码都是以Horst Feistel提出的“Feistel加密法”的结构为基础。Feistel加密法以不可逆的混合式加密为基础,将输入的区段分为两半,分多个回合来处理,每回合左半部资料会执行一次替换运算,替换运算会将右半部回合函式F的结果,以XOR运算方式与左半部资料结合起来,然后交换左右两半资料。这一思路充分展现了Shannon的SP网络概念。
DNA序列与遗传密码解析
DNA(脱氧核糖核酸)是生物体内负责遗传信息传递的核酸分子。它由含有四种碱基(腺嘌呤,胸腺嘧啶,鸟嘌呤和胞嘧啶)的线性链条组成。DNA序列和遗传密码是生命起源和进化中的核心要素。本文将探讨DNA序列与遗传密码的意义及其解析方法。
DNA序列是DNA分子中碱基的排列顺序。这个序列是组成生物体的基本单位,决定了生命体的特征和功能。通过分析和解读DNA序列,我们能够了解生物体的遗传信息和进化历程。解析DNA序列是生物学和遗传学研究的重要手段,也是基因工程和生物技术的基础之一。
遗传密码是一种特殊的编码方式,用来将DNA序列中的碱基信息转化为核糖体在蛋白质合成过程中所识别的氨基酸。遗传密码由三个碱基组成的密码子来表示,每个密码子对应一个氨基酸或终止信号。在蛋白质合成过程中,mRNA(信使RNA)通过核糖体与tRNA(转运RNA)相互作用,将特定的氨基酸带入蛋白质合成链中,从而合成出特定的蛋白质。
DNA序列的解析主要包括基因识别、密码子译码和蛋白质合成三个方面。基因识别是指通过比对DNA序列与已知的基因库来寻找和识别潜在基因。这项工作可以利用计算机算法进行,通过分析DNA序列中的起始和终止密码子以及编码区域来确定基因的位置和可能功能。
密码子译码是将DNA序列中的密码子与相应的氨基酸进行对应,得到相应的蛋白质合成信息。在密码子表中,有61个密码子对应不同的氨基酸,还有3个密码子用于指示终止蛋白质合成的结束。研究人员通过构建密码子表和运用分子遗传学和生物化学技术,成功揭示了遗传密码的结构和功能。
蛋白质合成是基于DNA中的密码子进行的,它是将DNA信息转化为蛋白质的过程。在蛋白质合成过程中,mRNA通过核糖体与tRNA相互作用,在多个步骤中将氨基酸连接成一个多肽链。通过分析DNA、mRNA和tRNA之间的相互作用以及氨基酸的连接规则,我们可以更好地理解蛋白质的合成过程。
DNA序列和遗传密码的解析在生物科学研究中发挥着重要的作用。它们帮助我们深入了解生物体的遗传信息、基因功能和进化过程。同时,DNA序列和遗传密码的解析也为新药研发、疾病诊断和个性化医疗提供了重要的依据。