深入浅出密码学2.3

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

一个LFSR由若干时钟储存元件(触发器)和一个反馈路径组成。储存元件的数目给出了LFSR的度。反馈网络计算移位寄存器中某些触发器的XOR和,并将其作为上一个触发器的输入。

简单LFSR

例如一个度m=3,有三个触发器FF2、FF1、FF0。且反馈路径如图:
内部状态由si表示,在每个时钟滴答内,内部状态位会向右移动一位。最右边的状态位为当前输出位。最左边的状态位则是在反馈路径中计算的,它是前面时钟周期中一些触发器值的XOR和。

由实例得出,度为3的LFSR输出的周期长度为7,且当初始状态位为s0,s1,s2时,有si+3≡si+1+si mod 2。

LFSR的数字描述

度为m,初始值为sm-1,…,s0、反馈系数为pi的通用LFSR(线性反馈移位寄存器)形式为:
此LFSR拥有m个触发器和m个可能的反馈位置,反馈路径的活跃取决于反馈系数p。

当pi=1时开关被关闭,那么反馈就是活跃的,而如果pi=0时开关打开,此时触发器的输出就不会被反馈。

假设某个LFSR初始加载的值为s0,…,sm-1,则LFSR的下一个输出位sm=sm-1pm-1+sm-2pm-2+…+s0p0 mod 2。

定理:度为m的LFSR可以产生的最大序列长度为2m-1。

因为一个m位状态向量只能得到2m-1个非零状态,所以在出现重复之前的最长序列长度位为2m-1。

注意,必须排除所有为零的状态。如果一个LFSR全零,它就会陷入这个状态,也就是之后的数也都是0了。

只有特定位置(p0,…,pm-1)才能得到最大长度的LFSR。

基于移位寄存器的序列密码相关推荐

  1. matlab模拟二分频器,基于移位寄存器的分频器

    基于移位寄存器的分频器 [复制链接] (二)可编程分频器 在数字系统设计中,经常需要频率不同的时钟信号.它们通常都是系统时钟CP的若干分频,并且分频比往往是可变的,这种分频器称为可编程分频器.采用SS ...

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

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

  3. 密码学的100个基本概念

    密码学的100个基本概念 一.密码学历史 二.密码学基础 三.分组密码 四.序列密码 五.哈希函数 六.公钥密码 七.数字签名 八.密码协议 九.密钥管理 十.量子密码 2022年主要完成了密码学专栏 ...

  4. 应用密码学(张仕斌)第五章

    序列密码体制 引言Vernam(弗纳姆)密码技术 1917年美国电话电报公司的GilbertVernam为电报通信设计了一种十分方便的密码技术.后来称之为Vernam密码技术. 它是一种代数密码技术: ...

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

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

  6. 基于JPBC的SM9算法的java实现与测试

    文章目录 源码下载 确定参数 R-ate双线性对 定义曲线 辅助方法 密钥结构与算法结果值结构 密钥生成中心KGC SM9算法实现 测试<GMT 0044-2016 SM9标识密码算法:第5部分 ...

  7. 密码学的安全性浅析-2

    点击蓝字 关注我们 密码学的安全性浅析-1 分组密码 分组密码是一种对称密钥算法.它将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密.分组加密是极其重要的加密协议组成,其中典型的如 ...

  8. 环形、扭环、LFSR计数器

    目录 环形计数器 扭环计数器 线性反馈移位寄存器 从这个题目来谈起今天的话题:移位寄存器由8级触发器构成,则构成的扭环计数器有多少个有效状态?环形计数器?线性反馈移位寄存器? 环形计数器 规则:环形计 ...

  9. 同步fifo的串并_同步fifo

    利用verilog实现FIFO 摘要:本文先介绍了一下关于FIFO的基本概念,工作原理,功能,同步与异步的分类等.然后基于RAM实现了一个同步FIFO.该FIFO通过巧妙地应用地址位和状态位的结合实现 ...

最新文章

  1. Google Brain团队最新视频介绍
  2. Android入门:Activity四种启动模式
  3. linux虚拟实验服务,Linux虚拟服务器(LVS)实验文档PDF
  4. Codeforces Round #709 (Div. 1, based on Technocup 2021 Final Round) A. Basic Diplomacy
  5. 520 钻石争霸赛 题解
  6. Inside Dynamics Axapta源代码赏析(四)
  7. ASP.NET 页面生存周期概览
  8. java 根据身份证计算年龄(周岁)
  9. html背景纯白,纯白色背景图片全白
  10. 方案分享 | 淘宝首页那些“辣眼睛”的图去哪了?
  11. 计算机大一新生打字速度,打字速度比赛策划书5篇.doc
  12. abrt-hook-ccpp
  13. 关于怎么在图片里加边框,这几个好用软件就能实现
  14. java 中文转码_java 下载文件中文名称转码详解
  15. 护肤品行业竞争格局:2022年外资品牌护肤品占据主导地位
  16. mysql case when 优化_SQL 逻辑优化 case when 转为 union all
  17. c语言编写邮箱注册登录的程序,c语言实现邮箱地址验证
  18. ASP.NET WebForm / MVC 源码分析
  19. 英语作文计算机的利弊,电脑的利弊英语作文范文阅读
  20. J-Link仿真器与JTAG和SWD下载与接线介绍

热门文章

  1. 11个三相异步电动机常见故障与维修方法。
  2. 我们计划招收300名学员,免费攻读人工智能专业!
  3. 关于数据中心的选址大全
  4. 成功解决ImportError: cannot import name ‘joblib‘
  5. Dataset之MapillaryVistas:MapillaryVistas数据集的简介、下载、使用方法之详细攻略
  6. MAT之ACA:利用ACA解决TSP优化最佳路径问题
  7. 使用PyTorch创建神经网络
  8. C/C++调试:gdbserver的简单使用
  9. fekit前端代码模块化工具
  10. [Android] 任意时刻从子线程切换到主线程的实现