考研复习 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触发器的初始状态和输出顺序。


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

相关推荐
2601_961845423 小时前
2027考研数学大纲|数一数二数三
考研·fpga开发·ar·vr·mr·oneflow
下午写HelloWorld7 小时前
【概念与应用】轻量级加密算法LEA、动态脱敏算法DDA、零知识证明ZKP和优化协同交互协议OCIP
算法·区块链·密码学·安全架构·零知识证明
2601_961845157 小时前
专升本资料哪个好|教材+真题+网课对比推荐PDF
考研·http·微服务·容器·visual studio
如君愿8 小时前
考研复习 Day 50 | 密码学--第八章 数字签名与身份认证(下)
密码学·课后习题
下午写HelloWorld9 小时前
后量子密码算法:协同签名研究综述
算法·密码学·后量子·协同签名
2601_961194029 小时前
考研专业课在哪里参加考试|考点|流程|资料已整理
linux·考研·ubuntu·缓存·centos·负载均衡
酉鬼女又兒10 小时前
零基础入门计算机网络:集线器与交换机区别、以太网交换机自学习转发流程及生成树协议STP全解析
服务器·网络·网络协议·tcp/ip·计算机网络·考研·职场和发展
2601_9618454210 小时前
2027考研政治大纲|核心考点
考研
夏语灬1 天前
cryptography:Python 密码学标准库的终极选择
开发语言·python·密码学
laoli_coding1 天前
数据机密性保护算法汇总(国际算法)
安全·网络安全·密码学