序列密码(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

序列密码设计思想简述

序列密码是通过位方式操作,采用一次一密的加密方式,如果产生的密钥序列为随随机序列,理论上是不可破译的,但是这会造成密钥长度与明文一样长,存储和传递密钥的代价很大,所以在实际应用中很少使用。实际的做法是根据一组密钥源和一个密钥序列产生器(KG)生成伪随机密钥序列,这样就解决了由于密钥过长产生的存储和传递问题,问题的关键在于KG的设计,使其产生的k伪随机序列尽可能满足随机性。

所有的密钥序列,都是由种子密钥K经过变化产生的,密钥亮的大小取决于K的变化量的大小。但是K毕竟是有限的位,其变化量也是有限的不会超过n2,为了更好地抵抗统计分析,尽可能的使k的周期最大化,且k的变化具有均匀分布的特性,所有的变化都可能出现,且出现的概率相同。由k推测KG或K在计算上不可行,满足Shannon 混乱原则和扩散原则。能抵抗各种已知攻击。KG应该具有可重复性,即输入K相同不论何时何地输出的k应该相同,以上所述是KG的设计原则。

KG设计完成后,还需要利用一些方法对其产生的k进行随机性、混乱性、扩散性、密码分析等各种检测,检测KG的设计是否满足上述的原则。

驱动子系统f,类似于分组密码中的P盒,属于线性变换,由种子密钥K控制,设计简单,无法单独完成混淆,无法抵御线性分析和统计分析,f的作用在于生成多个统计性能良好(大周期、均匀分布)

的子序列,线性变换还有扩散的作用,即生成序列中一位的变化造成子序列中大量位的变化,子序列中的任何一位与生成序列中的每一位存在关系。非线性组合子系统F,类似于分组密码中的S盒,由种子密钥K控制,对f提供的多个子序列进行非线性组合,使其线性复杂度实现最大化,提供序列的混乱性,使明文、密文、密钥之间的关系尽可能的复杂,防止线性攻击和统计分析。另外f与F要相互独立,F不能泄漏任何f的结构信息。

序列密码与分组密码的最大不同之处在于,序列密码具有记忆性,分组密码没有记忆性。序列密码是有状态的,与加密到第几步有很大关系,也叫状态密码,而分组密码的每个分组的加密密钥都是一样的,如果对分组密码的密钥产生加入记忆模块,那么就变成了序列密码。

同步序列密码中的发送者与接受者必须同步,因为密钥流是按照先后顺序产生的且与密文没有任何关系,如过有一位密文被删除,则后面的解密全部出现错误,如果有一位被修改则只会错误一位。自同步序列密码的状态转移函数即f,是带反馈的模式,密钥流的产生于固定长度的密文,自同步序列密码可以克服同步序列密码的缺点,有限的错误传播,自同步特性,密文的修改会造成一段密文的错误,修改插入重放一位密文的检测更加困难。因为每个明文都会影响后面的密文,明文的统计特性大大削弱了,能很好的抵抗明文冗余攻击。每个密钥都将影响随后的所有密钥,每个密文将会影响随后的所有密文,这种带反馈的KG可以很好的消除密钥和明文的统计特性。

相关文档
最新文档