目录

序列密码的定义及基本介绍

序列密码的分类

序列密码的原理

线性反馈移位寄存器

伪随机性测试

m序列密码的破译

非线性序列

Geffe发生器

J-K触发器

Pless生成器

钟控序列生成器

门限发生器

典型的序列密码算法


序列密码的定义及基本介绍

  • 序列密码定义:明文消息按字符逐字符加密的一种算法,属于序列密码
  • 序列密码是为了接近一次一密的密码模式,因为一次一密的密码模式是无条件安全的。序列密码的关键在于密钥序列产生器,让生成的密钥序列具有不可预测性
  • 序列密码是一种有记忆的密码,它的加密不仅与明文,密钥有关,还和当前状态有关,比如在自同步序列密码中,每一位密钥的产生都要基于前n位的密钥,同时如果有一位密钥产生了错误,也会影响要接下来的n位密钥的正确性

序列密码的分类

  • 同步序列密码:这种密码的密钥序列的产生独立于明文消息和密文消息。发送方和接收方必须是同步的,用同样的密钥且该秘钥操作在同样的位置,才能保证解密。如果在传输过程中密文字符有插入或删除导致同步丢失,则解密失败,且只能通过重新同步来实现恢复。
  • 自同步序列密码:密钥序列的产生是密钥及固定大小的以往密文位的函数

序列密码的原理

密钥序列产生器通过种子密钥来产生密钥序列,然后明文序列和密钥序列进行模二加,生成密文序列

其中,种子密钥长度需要足够大,一般128位以上,密钥序列产生器(KG)生成的密钥序列需要具有极大周期等特性

密钥序列产生器包括驱动部分和组合部分,驱动部分产生控制生成器的状态序列,控制生成器的周期和统计特性,组合部分对驱动部分的各输出序列进行非线性组合,驱动器一般利用线性反馈移位寄存器实现。

线性反馈移位寄存器

这种移位寄存器每次会移出一个比特,相应地在寄存器末尾也会输入一个比特,这样往复循环,输出一个比特序列给非线性组合器。

常见的线性反馈移位寄存器

每次移出b1,然后bn后面接上一个

其中,接上的那一位为:

其中,Ci可能为1或者0,可以想象成只有Ci等于1的时候那个线才接通

具体的Ci到底取0还是取1,看那个反馈多项式的系数

反馈多项式怎么来?

看线性反馈移位寄存器总共有几位。如果为n位,寻找一个n次本原多项式作为反馈函数,也就是反馈多项式

  • 对于任意正整数n,至少存在一个n次本原多项式

看反馈多项式的X的i次方前面的系数是0还是1,决定Ci是0还是1

本原多项式是啥?这个可以百度百度,反正是有这么一个多项式,书上也有定义。

为什么要选择本原多项式作为反馈函数?

这样可以生成m序列,产生更多的伪随机数,周期最大。

伪随机性测试

单个位测试:检查1和0的个数是否大致相等

扑克牌测试

游程测试:游程是连续的1或0序列。测试各种长度的游程的个数是否位于规定的区间。

m序列密码的破译

周期为的LFSR所生成的序列称为m序列

在已知明文攻击下,若破译者已知2n位明密文对,则可确定一段2n位长的密钥序列K,从而确定反馈多项式的系数

所以尽管m序列随机性能良好,但好像挺容易破译,所以仅有线性移位寄存器并不够,还要有非线性组合部分

非线性序列

密钥序列产生器包括驱动器和非线性组合器F,驱动器的输出作为非线性组合器F的输入。驱动器使用了LFSR,保证了密钥序列的长周期和平衡性,下面介绍非线性组合子系统,从而应对密码攻击。

Geffe发生器

Geffe密钥序列发生器使用了3个LFSR以非线性方式组合而成,2个LFSR作为复合器的输入,第3个LFSR控制复合器的输出。

若a 1、a 2、a 3是3个LFSR的输出,则Geffe发生器输出为:
b=(a1∧a2)⊕(¬a1∧aз)=(a1∧a2)⊕(a1∧a3)⊕a3

这种发生器实现了周期最大化,并且0,1之间分布大致平衡,但比较弱,并不能抵御相关攻击。

J-K触发器

J-K触发器两个输入端J端和K端分别接上两个LFSR。它是输出Ck不仅依赖于输入,还依赖于前一位输出Ck−1 
J-K触发器具有良好的统计特性,但不能抵抗Ross Anderson的中间相遇一致性攻击和线性一致性攻击。

Pless生成器

Pless生成器是由多个J-K触发器序列驱动的多路复合序列方案

钟控序列生成器

用一个LFSR控制另外一个LFSR的移位时钟脉冲

门限发生器

使用可变数量的LFSR来避免一些安全问题,但并不能有效抵抗相关攻击

典型的序列密码算法

包括RC4算法,A5算法,HC算法,Rabbit算法,Salsa20算法,Sosemanuk算法,Grain v1算法,MICKEY 2.0算法,Trivium算法等

现代密码学-序列密码相关推荐

  1. 密码学基础(一)分组密码与序列密码

    密码学 密码学的发展历史 密码学简介 密码学的典型应用 密码学图解 密码算法特性 凯撒密码 序列密码 序列密码的分类 同步序列密码 自同步序列密码 密钥流产生器 分组密码 ECB(电子密码本模式) C ...

  2. 密码学基础知识(五)序列密码

    序列密码,也就是流密码,是对称密码.跟前面分组密码的区别就在于其加密变换的对象比分组的块小,一般是Bit.前面说过的vernam密码就是一种序列密码. 序列密码的特点有哪些呢? 明文:被加密的是叫明文 ...

  3. 信息安全密码学实验二:序列密码的设计与实现

    序列密码的设计与实现 一.实验目的 理解线性反馈移位寄存器的基本构造,编程实现一个简单的线性反馈移位寄存器并用输出序列对给定明文实施逐比特加密. 二.实验原理 给定前一状态的输出,将该输出的线性函数再 ...

  4. C语言实现RC4序列密码

    RC4序列密码 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变.它加解密使用相同的密钥,因此也属于对称加密算法. RC4密码与基于移位寄存器的序列密码不同 ...

  5. 密码学中经典算法及应用

    一.加密算法理论基础 1.1 背景 密码学相关安全技术在整个信息技术领域的重要地位无需多言.如果没有现代密码学和信息安全的研究成果,人类社会根本无法进入信息时代. 实际上,密码学和安全领域所涉及的知识 ...

  6. 区块链学习之密码学安全技术(五)

    Hash 算法与数字摘要 Hash (哈希或散列)算法它能将任意长度的二进制明文串映射为较短的(通常是固定长度的)二进制串(Hash值),并且不同的明文很难映射为相同的Hash值. Hash 定义 H ...

  7. 信息论——密码学笔记(七)

    一.信息论 Claude Elmwood Shannon于1948年首先确立了现代信息论. 1.信息量(amount of information):假设所有消息是等可能的,对消息中所有可能的值进行编 ...

  8. 序列密码体制——密码学笔记(三)

    一.密码学中的随机数 许多密码系统的安全性都依赖于随机数的生成,例如DES加密算法中的密钥,RSA加密和数字签名中的素数. 序列密码的保密性完全取决于密钥的随机性. 如果密钥是真正的随机数,则这种体制 ...

  9. 基础知识——密码学笔记(一)

    一.密码的常用术语 (一) 明文:待加密信息 密文:经过加密后的明文 加密:明文转为密文的过程 加密算法:明文转为密文的转换算法 加密密钥:通过加密算法进行加密操作用的密钥 解密:将密文转为明文的过程 ...

最新文章

  1. 【最大流】牛棚安排(jzoj 1259)
  2. cortex a7 a53_西昊人体工学椅A7开箱测评
  3. SQLServer------存储过程的使用
  4. 【SAR图像分辨率】匹配跟踪算法和自聚焦算法提高SAR图像分辨率
  5. 2018网络小说年度热词盘点
  6. 套路(二):火星求生的经济节奏引导
  7. 跑通Jetson Nano TensorRt sampleSSD例程
  8. 基于STM32MP157的鸿蒙学习(一)— 资料下载及入门
  9. 武汉大学 计算机学院 曹瑀,武大计算机青协
  10. WPS怎么转换成office
  11. 安全云是如何做好云安全的?
  12. python-列表去重
  13. English trip V1 - 10.Family Ties 家庭关系 Teacher:Emily Key: Possessive s (所有格 s)
  14. C++ winpcap网络抓包代码实现,以及抓包内容解析。
  15. 无边框透明窗口设置鼠标穿透与不穿透功能
  16. webix icon 图标
  17. viso 2013创建闪崩或异常退出
  18. MySQL数据库 第1章:数据库入门
  19. Python 抽取剔除视频帧工具
  20. js 字节数组操作,TCP协议组装

热门文章

  1. 怎样找优质的友情链接
  2. 今天,你刷牙“出血”了吗?
  3. 浏览器模拟器之Splash的使用
  4. spring boot response重写
  5. [Matlab] repmat函数用法
  6. [Shader] Shader Cookbook 使用表面着色器[2]
  7. 用Excel快速识别节假日,双休日
  8. 字符串汉字提取首字母
  9. 为什么说FPKM和RPKM都错了?
  10. 如何查询是否有电子驾照