基于移位寄存器的序列密码
深入浅出密码学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。
基于移位寄存器的序列密码相关推荐
- matlab模拟二分频器,基于移位寄存器的分频器
基于移位寄存器的分频器 [复制链接] (二)可编程分频器 在数字系统设计中,经常需要频率不同的时钟信号.它们通常都是系统时钟CP的若干分频,并且分频比往往是可变的,这种分频器称为可编程分频器.采用SS ...
- C语言实现RC4序列密码
RC4序列密码 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变.它加解密使用相同的密钥,因此也属于对称加密算法. RC4密码与基于移位寄存器的序列密码不同 ...
- 密码学的100个基本概念
密码学的100个基本概念 一.密码学历史 二.密码学基础 三.分组密码 四.序列密码 五.哈希函数 六.公钥密码 七.数字签名 八.密码协议 九.密钥管理 十.量子密码 2022年主要完成了密码学专栏 ...
- 应用密码学(张仕斌)第五章
序列密码体制 引言Vernam(弗纳姆)密码技术 1917年美国电话电报公司的GilbertVernam为电报通信设计了一种十分方便的密码技术.后来称之为Vernam密码技术. 它是一种代数密码技术: ...
- 密码学基础知识(五)序列密码
序列密码,也就是流密码,是对称密码.跟前面分组密码的区别就在于其加密变换的对象比分组的块小,一般是Bit.前面说过的vernam密码就是一种序列密码. 序列密码的特点有哪些呢? 明文:被加密的是叫明文 ...
- 基于JPBC的SM9算法的java实现与测试
文章目录 源码下载 确定参数 R-ate双线性对 定义曲线 辅助方法 密钥结构与算法结果值结构 密钥生成中心KGC SM9算法实现 测试<GMT 0044-2016 SM9标识密码算法:第5部分 ...
- 密码学的安全性浅析-2
点击蓝字 关注我们 密码学的安全性浅析-1 分组密码 分组密码是一种对称密钥算法.它将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密.分组加密是极其重要的加密协议组成,其中典型的如 ...
- 环形、扭环、LFSR计数器
目录 环形计数器 扭环计数器 线性反馈移位寄存器 从这个题目来谈起今天的话题:移位寄存器由8级触发器构成,则构成的扭环计数器有多少个有效状态?环形计数器?线性反馈移位寄存器? 环形计数器 规则:环形计 ...
- 同步fifo的串并_同步fifo
利用verilog实现FIFO 摘要:本文先介绍了一下关于FIFO的基本概念,工作原理,功能,同步与异步的分类等.然后基于RAM实现了一个同步FIFO.该FIFO通过巧妙地应用地址位和状态位的结合实现 ...
最新文章
- Google Brain团队最新视频介绍
- Android入门:Activity四种启动模式
- linux虚拟实验服务,Linux虚拟服务器(LVS)实验文档PDF
- Codeforces Round #709 (Div. 1, based on Technocup 2021 Final Round) A. Basic Diplomacy
- 520 钻石争霸赛 题解
- Inside Dynamics Axapta源代码赏析(四)
- ASP.NET 页面生存周期概览
- java 根据身份证计算年龄(周岁)
- html背景纯白,纯白色背景图片全白
- 方案分享 | 淘宝首页那些“辣眼睛”的图去哪了?
- 计算机大一新生打字速度,打字速度比赛策划书5篇.doc
- abrt-hook-ccpp
- 关于怎么在图片里加边框,这几个好用软件就能实现
- java 中文转码_java 下载文件中文名称转码详解
- 护肤品行业竞争格局:2022年外资品牌护肤品占据主导地位
- mysql case when 优化_SQL 逻辑优化 case when 转为 union all
- c语言编写邮箱注册登录的程序,c语言实现邮箱地址验证
- ASP.NET WebForm / MVC 源码分析
- 英语作文计算机的利弊,电脑的利弊英语作文范文阅读
- J-Link仿真器与JTAG和SWD下载与接线介绍
热门文章
- 11个三相异步电动机常见故障与维修方法。
- 我们计划招收300名学员,免费攻读人工智能专业!
- 关于数据中心的选址大全
- 成功解决ImportError: cannot import name ‘joblib‘
- Dataset之MapillaryVistas:MapillaryVistas数据集的简介、下载、使用方法之详细攻略
- MAT之ACA:利用ACA解决TSP优化最佳路径问题
- 使用PyTorch创建神经网络
- C/C++调试:gdbserver的简单使用
- fekit前端代码模块化工具
- [Android] 任意时刻从子线程切换到主线程的实现