【密码学】第二章、流密码

本文详细探讨了流密码的工作原理,包括密钥流生成、伪随机性和Golomb伪随机性公设。重点介绍了LFSR及其在构造密钥流中的关键角色,以及m序列的特性。此外,文章还涵盖了流密码的安全评估,包括周期性、线性复杂性和随机性。
摘要由CSDN通过智能技术生成

密码概况

  • 流密码是一种重要的密码体制
    • 明文按字符或比特逐位加密
    • 也称为序列密码
  • 主要是硬件实现
  • 常见密码
    • ZUCA5SNOWRC4

基本思想

  • 利用密钥k产生密钥流,并对明文串加密。
    y = y 0 y 1 y 2 . . . = E z 0 E z 1 E z 2 . . . y=y_0y_1y_2...=E_{z_0}E_{z_1}E_{z_2}... y=y0y1y2...=Ez0Ez1Ez2...
  • 密钥流发生器

z i = f ( k , σ i ) , σ i 是 在 i 时 刻 的 状 态 z_i=f(k,\sigma^i), \sigma_i是在i时刻的状态 zi=f(k,σi),σii

算法需求

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

伪随机性

  • 二元序列
    a = ( a 1 , a 2 , . . . , a n , . . . ) a=(a_1,a_2,...,a_n,...) a=(a1,a2,...,an,...)
  • 周期
    a k = a k + l p ( a ) = M i n i m u m   p o s i t i v e   i n t e g e r   l a_k=a_{k+l}\\ p(a)=Minimum\ positive\ integer\ l ak=ak+lp(a)=Minimum positive integer l
  • 游程
    • 一连串两两相临的项分别称为1游程和0游程。
  • 自相关函数
    R ( τ ) = ( 1 / T ) ∑ k = 1 T ( − 1 ) a k ( − 1 ) a k + τ 0 ≤ τ ≤ T − 1 W h e n   τ = 0 , R ( τ ) = 1 W h e n   τ ≠ 0 , R ( τ )   i s   o u t   o f   p h a s e   a u t o c o r r e l a t i o n   f u n c t i o n R(\tau)=(1/T)\sum^T_{k=1}(-1)^{a_k}(-1)^{a_{k+\tau}}\\ 0\leq \tau \leq T-1\\ When\ \tau=0,R(\tau)=1\\ When\ \tau \neq 0,R(\tau)\ is\ out\ of\ phase\ autocorrelation\ function R(τ)=(1/T)k=1T(1)ak(1)ak+τ0τT1When τ=0R(τ)=1When τ=0R(τ) is out of phase autocorrelation function
  • Golomb伪随机性公设
    • 一个周期内,01的个数相差最多为1
      • 此时01出现的概率基本相同
    • 一个周期内,长为i的游程占游程总数的1/2^i,且等长的游程中0游程的个数和1游程的个数相等
      • 此时01在每个位置上出现的概率相同。
    • 异相自相关函数是一个常数
      • 通过对比序列与其平移后的序列,不能得出其他信息。
  • 额外条件
    • 周期足够大10^50以上)
    • 序列易高速生成
    • 序列部分暴露时,要分析整个序列在计算上不可行

第三条被称为不可预测性,决定了密码的强度,是流密码理论的核心

线性反馈移位寄存器LFSR

概述

a n + 1 = f ( a 1 , a 2 , . . . , a n ) = c 1 a n ⊕ c 2 a n − 1 ⊕ . . . ⊕ c n a 1 a n + t = c 1 a n + t − 1 ⊕ c 2 a n + t − 2 ⊕ . . . ⊕ c n a t a_{n+1}=f(a_1,a_2,...,a_n)=c_1a_n\oplus c_2a_{n-1}\oplus ...\oplus c_na_1\\ a_{n+t}=c_1a_{n+t-1}\oplus c_2a_{n+t-2}\oplus ...\oplus c_na_t an+1=f(a1,a2,...,an)=c1anc2an1...cna1an+t=c1an+t1c2an+t2...cnat

  • 实现简单、速度快、有成熟理论,是构造密钥流生成器的最重要的部件之一

性质

  • 假定ci中至少有一个不为0cn=1
  • 输出序列
    • 性质完全由其反馈函数f决定。
    • 周期等于状态周期最大2^n -1
  • nLFSR
    • 状态数最多2^n
    • 状态周期最大2^n -1

周期达到2^n -1时,序列称为m序列。

一元多项式

  • 延迟算子D
    D a k = a k − 1 Da_k=a_{k-1} Dak=ak1
  • 反馈多项式
    a n + k = c 1 a n + k − 1 ⊕ c 2 a n + k − 2 ⊕ . . . ⊕ c n a t 0 = a n + k ⊕ c 1 a n + k − 1 ⊕ c 2 a n + k − 2 ⊕ . . . ⊕ c n a t M u l t i p l y   b o t h   s i d e s   b y   D n + k , g e t p ( D ) = 1 + c 1 D + . . . + c n − 1 D n − 1 + c n D n T h e   h i g h e r   o r d e r   p o l y n o m i a l s   o f   o n e   e l e m e n t   a r e   o b t a i n e d   b y   r e c u r s i o n   r e l a t i o n : p ( x ) = 1 + c 1 x + . . . + c n − 1 x n − 1 + c n x n a_{n+k}=c_1a_{n+k-1}\oplus c_2a_{n+k-2}\oplus ...\oplus c_na_t\\ 0=a_{n+k}\oplus c_1a_{n+k-1}\oplus c_2a_{n+k-2}\oplus ...\oplus c_na_t\\ Multiply\ both\ sides\ by\ D^{n+k},get\\ p(D)=1+c_1D+...+c_{n-1}D^{n-1}+c_nD^n\\ The\ higher\ order\ polynomials\ of\ one\ element\ are\ obtained\ by\ recursion\ relation:\\ p(x)=1+c_1x+...+c_{n-1}x^{n-1}+c_nx^n an+k=c1an+k1c2an+k2...cnat0=an+kc1an+k1c2an+k2...cnatMultiply both sides by Dn+kgetp(D)=1+c1D+...+cn1Dn1+cnDnThe higher order polynomials of one element are obtained by recursion relation:p(x)=1+c1x+...+cn1xn1+cnxn
  • p(x)即为LFSR特征多项式

m-序列

产生条件

  • n不可约多项式p(x)的阶为2^n -1,则称其为n本原多项式
    • 多项式阶k的定义:
      p ( x ) ∣ ( x k − 1 ) p(x)|(x^k-1) p(x)(xk1)
  • {ai}m序列的充要条件是p(x)为本原多项式。
    • 证明

随机性

  • 满足Golomb的三个随机性公设。
    • 01出现次数分别为2^(n-1) -12^(n-1)
    • 总游程数为2^(n-1),长为i的游程有2^(n-1-i)个,且01游程各半,n-1长的0游程一个,n长的1游程一个。

一个周期的大小等于一个周期的比特位数

  • {ai}的自相关函数
    R ( τ ) = { 1 , τ = 0 − 1 2 n − 1 , 0 < τ ≤ 2 n − 2 R(\tau)=\left\{ \begin{aligned} 1,\tau=0 \\ -\frac{1}{2^n-1},0<\tau \leq 2^n-2 \end{aligned} \right. R(τ)=1,τ=02n11,0<τ2n2

安全性

  • 已知一段序列(长度最小为n)和反馈多项式,可以依次求出其后的序列
  • 但是否能通过序列推断反馈多项式呢?
    • 知道{ai}的连续2n位,可以通过解方程求出。
    • 使用Berlekamp-Massey算法可以得到线性反馈移位寄存器综合解

求解时,有n个未知数,故需要n个方程。

  • 密钥流生成器的基本原则
    • 周期长
    • 高线性复杂度
    • 统计性能良好
    • 足够“混乱”
    • 足够“扩散”
    • 抵抗不同形式的攻击
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值