密码学系列文(2)--流密码

一、流密码的基本概念

RC4(Rivest Cipher 4)是由密码学家 Ron Rivest(RSA 算法发明者之一)于 1987 年设计的对称流加密算法。它以简单、高效著称,曾广泛应用于网络安全协议(如 SSL/TLS、WEP/WPA),但因存在严重安全漏洞,现已逐渐被淘汰。

1.1 流密码概念

流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如0,1数字),字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流实现;

  • 流密码强度完全依赖于密钥序列的随机性和不可预测性;
  • 核心问题是密钥流生成器的设计
  • 保持收发两端密钥流的精确同步是实现可靠解密的关键技术;

流密码框图如下:KG指密钥流生成器

  • 消息流:,其中
  • 密文流:,其中
  • 密钥流:
  • 加法流密码:

密钥流:是一个完全随机的非周期序列,可以实现一次一密体制。但需要无限存储单元和复杂的输出逻辑函数是第时刻密钥流生成器的内部状态,以存储单元的存数矢量描述。

1.2 有限状态自动机FA

具有离散输入和输出(输入集和输出集均有限)的一种数学模型

  • 有限状态集
  • 有限输入字符集
  • 有限输出字符集
  • 转移函数,第时刻输入,输出;

例如2-1:

转移函数:

|-----------------------------------|-----------------------------------|-----------------------------------|-----------------------------------|
| | | | |
| | | | |
| | | | |
| | | | |

|-----------------------------------|-----------------------------------|-----------------------------------|-----------------------------------|
| | | | |
| | | | |
| | | | |
| | | | |

那么FA的状态图表示为:初始状态为

若输入为

那么输出为,状态转移为

1.3 作为FA的密钥流产生器

  • 同步流密码的密钥流产生器可看为一个参数为的FA;
  • 输出集,状态集,状态转移函数和输出函数,初始状态
  • 设计的关键是
  • 具有非线性的的FA理论很不完善,通常采用线性以及非线性的
  • 可将此类产生器分为驱动部分和非线性组合部分
  • 驱动部分控制状态转移
  • 非线性组合部分提供统计特性良好的序列

两种目前最为流行和实用的密钥流产生器如图所示,其驱动部分是一个或多个线性反馈移位寄存器:

1.4 流密码的分类

1.4.1 同步流密码SSC

与明文消息无关,密钥流将独立于明文

同步流密码的特点

  • 对于明文而言,这类加密变换是无记忆的,但它是时变的;
  • 只有保持两端精确同步才能正常工作;
  • 对主动攻击时异常敏感而利于检测;
  • 无差错传播
1.4.2 自同步流密码SSSC

依赖于,使密文不仅与当前输入有关,而且由于的关系而与以前的输入有关。一般在有限的级存储下将与有关。

优点:具有自同步能力,强化了其抗统计分析的能力;

缺点:有位长的差错传播;

如图所示:

1.5 序列的伪随机性

1.5.1 周期
  • 周期:序列,使对所有成立的最小整数;
  • 长度为的串,在序列的一个周期中,

例如:长度为的1串和长度为的0串:...011...10...和...100...01...

1.5.2 自相关函数

上周期为的序列的自相关函数定义为:

时,;当时,称为异相自相关函数。

1.5.3 Golomb随机性公设

Golomb对伪随机周期序列提出了应满足的如下三个随机性公设:

  • 在序列的一个周期内,0与1的个数相差至多为1;
  • 在序列的一个周期内,长为1的游程占游程总数的 ,长为2的游程占游程总数的 ,... ,长为的游程占游程总数的 , ,且在等长的游程中0的游程个数和1的游程个数相等;
  • 异自相关函数是一个常数;
1.5.4 密码系统随机性条件

一个伪随机序列应满足另外的三个条件:

  • 的周期相当大。
  • 的确定是计算上容易的。
  • 由密文及相应的明文的部分信息,不能确定整个。(不可预测性)

二、线性反馈移位寄存器序列

2.1 相关概念

  • 级数(Stages):存储单元数;
  • 状态(State):个存储单元的存数
  • 反馈函数:是状态的函数;
  • 线性反馈移位寄存器(LFSR):为线性函数
  • 非线性反馈移位寄存器:为非线性函数

如图所示:n级反馈移位寄存器

2.2 线性反馈移位寄存器

如果移位寄存器的反馈函数的线性函数,则称之为线性反馈移位寄存器LFSR,此时可写为;

那么输出序列满足,其中为非负正整数。

2.2.1 最长周期

在线性反馈移位寄存器中总是假定中至少由一个不为 0,

否则 ,这样的话,在 个脉冲后状态必然是 ,且这个状态必将一直持续下去。

因此线性移位器序列的最长周期为

2.2.2 m序列
  • 的LFSR序列称为序列
  • 序列循环地遍历所有个非零状态,且任一非零输出皆为的移位,或为其循环等价序列;
  • 初始状态不同个的序列共有个,他们的全体记为,他们只是状态前后次序之别。

m序列满足Golomb的三个随机性公设

2.2.3 特征多项式

LFSR的特征多项式为:

三、非线性序列

相关推荐
奇遇0.004875 天前
tryhackme-公钥密码学基础
密码学·tryhackme
0x派大星7 天前
区块链中的数字签名:安全性与可信度的核心
区块链·密码学
CourserLi8 天前
【AI 解题】Yusa的密码学课堂 2026.1.25
人工智能·密码学
半路_出家ren9 天前
3.python模拟勒索病毒
python·网络安全·密码学·网络攻击模型·base64·病毒·勒索病毒
栗子~~11 天前
区块链中的密码学
区块链·密码学
半路_出家ren11 天前
1.古典密码概述
python·网络安全·密码学·古典密码·加密方式
码不停蹄Zzz15 天前
密码学算法之数字签名和认证协议篇(一)
密码学
じ☆冷颜〃16 天前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
要做朋鱼燕17 天前
【AES加密专题】3.工具函数的编写(1)
笔记·密码学·嵌入式·aes
lightningyang19 天前
利用 OpenSSL 进行国际算法加密通信实验
服务器·密码学·openeuler·天枢一体化虚拟仿真靶场平台·openssl国际算法加密通信·密码实训