2.1 流密码(stream cipher)

2.1 流密码(stream cipher)的基本概念

流密码定义

流密码(stream cipher),也称为序列密码(Sequence Cipher),特点是明文消息按字符(如单个字母)或比特(编码的基本单元)逐位加密,字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流实现。

流密码的基本思想

密钥k产生一个密钥流z
密钥流z:z=z0z1z2
消息流m:m=m0m1m2
密文流c:c=c0c1c2…=Ez0(m0) Ez1(m1) Ez2(m2)…

滚动密钥流

密钥流由密钥流发生器 f 产生:

zi=f(k,σi)

  • 流密码的滚动密钥由函数f密钥k指定的初态σ~0~完全确定;

  • f 是由k, σi产生的函数

  • σi:加密器中的记忆元件在时刻 i 的状态,可表示为 σi=(an, an-1, … , a1)

  • 记忆元件:由一组移位寄存器(Feedback Shift Register, FSR)构成,这里假设有n个移位寄存器.

Feedback Shift Register, FSR
输入加密器的明文可能影响加密器中的内部记忆元件的存储状态,因而σi(i>0)可能依赖于k,σ0,m0,m1,…,mi-1,即前 i 个明文和密钥及初态

流密码的分类

按照加密器中记忆元件的存储状态σi是否依赖于输入的明文字符流,流密码可进一步分成同步流密码自同步流密码两种

同步流密码:密码序列仅仅取决于密钥,即σi 独立于明文字符流;

自同步步流密码:密钥序列则取决于密钥和密文

由于自同步流密码的密钥流产生与明文有关,所以理论上难于分析。绝大多数实际中使用的序列密码都是同步流密码,因为密文不依赖于此前的明文字符,因此可将同步流密码的加密器分为密钥流产生器加密变换器两个部分

加密变换:

加密变换 Ezi可有多种选择,保证变换可逆性即可

  • 比如明文流和密钥流对应位异或;
  • 实际数字保密通信系统一般都是二元的{0,1},在有限域GF(2)上讨论二元加法流密码是目前最常用的流密码体制;
    加密变换可表示为yi=zi ⊕ xi,加法流密码体制模型

同步流密码算法的设计主要是密钥流产生器的设计

密钥产生器目标是:使密钥k经其扩展成的密钥流序列z具有:

  • 极大的周期
  • 良好的统计特性
  • 抗差分分析
  • 抗线性分析等性质

同步流密码体制模型
加密变换:Ezi(xi)
解密变换:Dzi(mi)

2.2 有限状态自动机

有限状态自动机的模型

在这里插入图片描述
有限状态自动机的有向图表示
在这里插入图片描述
有限状态自动机的实例
在这里插入图片描述
有限状态自动机的矩阵表示
在这里插入图片描述

2.3 密钥流生成器

同步流密码的关键是密钥流产生器(Key Generator)

密钥流生成器定义

在这里插入图片描述

作为有限状态自动机的密钥流生成器模型

在这里插入图片描述

密钥流生成器设计的关键——实现非线性函数

在这里插入图片描述

密钥流生成器的分解

  • 由于具有非线性的φ的有限状态自动机理论很不完善,相应的密钥流产生器的分析工作受到极大的限制。
  • 相反地,当采用线性的φ和非线性的ψ时,将能够进行深入的分析并可以得到好的生成器
  • 为方便讨论,可将这类生成器分成驱动部分和非线性组合部分在这里插入图片描述

常见的两种密钥流产生器

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值