Skip to content

Latest commit

 

History

History
44 lines (22 loc) · 2.53 KB

File metadata and controls

44 lines (22 loc) · 2.53 KB

现代密码学

[toc]

流密码

一次一密

密钥是随机产生的,而且只能使用一次

  • 密钥仅仅使用一次
  • 无条件安全
  • 加密和解密为加法运算,效率较高

缺点:密钥长度至少与明文长度一样长,密钥共享困难,不太实用

流密码的定义

流密码是一种重要的密码机制

  • 明文信息按字符或者比特逐位加密
  • 流密码也称之为序列密码

流密码主要是基于硬件实现的

内部记忆元件的状态独立于明文字符的叫做同步流密码,或者叫做自同步流密码。

同步流密码

在同步流密码中,独立于明文和密文消息生成一个伪随机数字流,然后与明文(加密)或密文(解密)组合。在最常见的形式中,使用二进制数字比特),并且使用独占或操作(XOR)将密钥流与明文结合。这被称为二元加法流密码。

在同步流密码中,发送方和接收方必须准确地进行解密才能成功。如果在传输过程中将数字添加到消息中或从消息中删除数字,则同步丢失。为了恢复同步,可以系统地尝试各种偏移量以获得正确的解密。另一种方法是在输出中的标准点处用标记标记密文。

但是,如果一个数字在传输中被损坏而不是被添加或丢失,则明文中只有一个数字会受到影响,并且错误不会传播到消息的其他部分。当传输错误率很高时,此属性非常有用;然而,这样做不太可能在没有进一步机制的情况下检测到错误。而且,由于这个特性,同步流密码非常容易受到主动攻击:如果攻击者可以改变密文中的数字,他可能能够对相应的明文位进行可预测的改变;例如,翻转密文中的一位会导致相同的位在明文中翻转。

自同步流密码

另一种方法使用几个前N个密文数字来计算密钥流。这种方案被称为自同步流密码,异步流密码或密文自动密钥(CTAK)。自同步的想法在1946年获得专利,其优点是接收器在接收到N个密文数字后会自动与密钥流生成器同步,如果数字被丢弃或添加到消息流中,更容易恢复。一位数错误的效果有限,仅影响N个明文数字。

自同步流密码的一个例子是密码反馈(OFB)模式中的分组密码。