考研复习 Day 42 | 密码学--第五章 序列密码(上)

注:以下内容参考《新编密码学》范九伦 张雪锋 侯红霞 编著


5.1 序列密码的基本原理

5.1.1 序列密码的设计思想

序列密码(流密码)每次只对明文中的单个位(或字节)进行加密变换。其核心是密钥流生成器:由种子密钥生成一个伪随机密钥流,再与明文流逐比特异或得到密文流。Shannon证明了一次一密是不可破译的,这为序列密码提供了理论依据。

按照密钥流产生方式的不同,序列密码分为同步序列密码 和自同步序列密码两种。

1. 同步序列密码

密钥流 ki 的产生完全独立于消息流 mi(明文或密文)。其数学模型为:

σ(i+1)=F(σi,k)

ki=G(σi,k)

ci=E(ki,mi)(通常为异或)

mi=D(ki,ci)

特点:

  • 无错误传播:1位密文错误只影响1位明文。

  • 同步性要求高:插入或删除密文字符会破坏同步,需用特殊标记、重同步或冗余检测。

  • 主动攻击可检测:插入、删除或重放会破坏同步,可能被检测。

2. 自同步序列密码

密钥流 ki 的产生依赖于前面有限个(n个)密文字符。其数学模型为:

σ(i+1)=F(σi,ci,c(i−1),...,c(i−n+1),k)

ki=G(σi,k)

ci=E(ki,mi)

mi=D(ki,ci)

特点:

  • 有错误传播:1位密文错误会影响后续最多 nn 位明文。

  • 自同步能力:收到 nn 个正确密文后自动恢复同步。

5.1.2 序列随机性能评价

为度量周期序列的随机性,Golomb提出了三个必要条件(Golomb随机性假设):

  1. 在一个周期内,0和1的个数相差不超过1。

  2. 在一个周期内,游程分布合理:长度为 i 的游程数占游程总数的 1/2^i,且0游程与1游程数目相等或相差1。

  3. 序列的自相关函数是双值的(周期自相关为常数,非周期自相关很小)。

对于长度为 n 的二进制序列,常用五种统计测试方法:

  • 频率测试:检查0和1个数是否相近。
  • 序列测试:检查00、01、10、11的分布是否均匀。
  • 扑克测试:将序列分成长度为 m 的块,检查所有块的出现频率是否均匀。
  • 游程测试:检查各长度游程的数目是否符合预期。
  • 自相关测试:检查序列与其移位后的序列的相关性。

实例


5.2 反馈移位寄存器

5.2.1 线性反馈移位寄存器(LFSR)

LFSR是许多密钥流生成器的核心部件,具有以下优点:

  • 适合硬件实现

  • 可产生大周期序列

  • 序列统计特性良好

  • 便于代数分析

定义:一个长度为 L 的LFSR由 L 个级(存储单元)和一个时钟构成。每个时间单位执行:

  1. 输出第0级的内容作为输出位。

  2. 各级内容向右移动一位。

  3. 计算反馈比特 sj=(c1s(j−1)+⋯+cLs(j−L))mod  2,存入最高级。

多项式表示:C(D)=1+c₁D+c₂D²+⋯+cLD^L∈Z₂D。若 cL=1,称为非奇异的。

递推公式:

例5.2:LFSR(4, 1+D+D⁴) 的结构如图,初始状态为 0,1,1,0 时,输出序列周期为15。

5.2.2 m 序列

当LFSR的连接多项式是本原多项式时,输出序列达到最大周期 2^L−1,称为 m 序列(最大长度序列)。

m 序列的性质:

  • 周期:2^L−1

  • 游程分布:在一个周期内,1的游程总数为 2L−2,0的游程总数也为 2L−2,长度为 r 的游程占 1/2r,满足Golomb条件2。

  • 自相关函数:满足Golomb条件3。

  • 线性复杂度:等于 L。

定理5.3(换行定理):mm 序列的异相自相关函数等于 −1/(2^L−1)。


5.3 基于LFSR的生成器

1) Geffe 生成器

使用3个LFSR,非线性组合方式为:

k=(s1∧s2)⊕((¬s1)∧s3)=(s1∧s2)⊕s1∧s2⊕s3

即:当 LFSR-1 输出1时,选择 LFSR-2;当 LFSR-1 输出0时,选择 LFSR-3。

参数:若三个LFSR长度分别为 n1,n2,n3,则线性复杂度为 (n1+1)*n3+n1n2,周期为各周期的最小公倍数(本原多项式次数互素时,周期为 ∏(2^ni−1))。

安全性:Geffe生成器不安全,因为LFSR-1和LFSR-3的状态信息会在输出中泄露。

2) Jennings 生成器

使用2个LFSR,LFSR-1控制选择器从LFSR-2中选取一位,再通过映射函数输出。密钥为两个LFSR的初始状态和映射函数。

3) J-K 触发器

使用2个LFSR,输出由J-K触发器的真值表决定:

递推公式:cn=((an+bn+1)⋅c(n−1)+an)mod  2

安全性问题:由 cn 和 c(n+1) 可反推 a(n+1) 或 b(n+1),不安全。

4) Pless 生成器

由8个LFSR组成4个J-K触发器,外加一个循环计数器控制输出。8个LFSR的级数互素,使得最终输出周期为各周期乘积。密钥包括8个LFSR的初始状态、J-K触发器的初始状态和输出顺序。


注:以上内容的理解和计算,如果有任何错误,希望各位读者和大佬指出改正,非常感谢!!!

相关推荐
库玛西19 小时前
外部排序全解析:败者树、置换-选择排序与最佳归并树
c语言·数据结构·c++·笔记·考研·算法
库玛西19 小时前
计算机网络第三章:数据链路层
服务器·网络·计算机网络·考研·算法·面试
m0_565827375 天前
特殊句式:倒装、强调、虚拟语气
考研
我的愿望是成为富婆5 天前
2027届应用统计学专业秋招:从统计基础到SQL、项目与业务表达
考研
m0_565827375 天前
非谓语动词,长难句核心难点
考研
m0_565827375 天前
长难句综合实战,全书复盘总结
考研
火眼金睛记单词7 天前
攻克考研英语熟词僻义:解锁高分密码的关键一步
经验分享·考研·小程序
deepseek238 天前
AI 模型隐藏任意能力拆解:把加密神经网络塞进宿主权重,能力评估为什么在密码学上抓不到
人工智能·深度学习·神经网络·密码学·模型安全
killerbasd8 天前
总结 10.13
考研
曼岛_11 天前
[图解密码学]第1章 密码学是什么
网络·密码学·图解密码学