数据处理方法(LFSR)

news2024/11/18 21:48:06

一、线性反馈移位寄存器(LFSR)编码概述

        线性反馈移位寄存器(LFSR):通常由移位寄存器和异或门逻辑组成。其主要应用在: 伪随机数,伪噪声序列,计数器,BIST,数据的加密和 CRC 校验等。

        一个反馈移位寄存器(feedback shift register)由两部分组成:移位寄存器和反馈 函数(feedback function)。移位寄存器是位序列,具有 n 位长的移位寄存器称为 n 位移 位寄存器。每次输出一位,移位寄存器中所有位右移一个位。新的最左端的位根据寄存器中 其他位计算得到。移位寄存器输出的一个位常常是最低有效的位。移位寄存器的周期是指输 出序列从开始到重复时的长度。

图 1 反馈移位寄存器

        密码设计者喜欢用移位寄存器构造序列密码,因为这容易通过数字硬件实现。最简单的反馈移位寄存器是线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)。反馈函数跟寄存器中某些位简单异或,这些位叫做抽头序列(tap sequence),有时也叫 Fibonacci配置(Fibonacci configuration)。因为这是一个简单的反馈序列,因此大量的数学理论都能用于分析 LFSR。密码设计者喜欢分析序列确保它们是随机并充分安全的。

二、线性反馈移位寄存器(LFSR)编码过程
        LFSR 的反馈函数就是简单地对移位寄存器中的某些位进行异或,并将异或的结果填充到 LFSR 的最左端。对于 LFSR 中每一位的数据,可以参与异或,也可以不参与异或。其中,我们把参与异或的位称为抽头。
        如下图所示,如果移位寄存器中的值为{b1, b2, ...., bn},则第 n+1 位的值可以表示为 bn+1=c1b1⊕c2b2...⊕cnbn,其中 bi,i∈[1,n]表示移位寄存器的数据(0 或 1);ci,i∈[1,n]表示第 i 位是否是抽头,如果是,则 ci=1,表示该位将参与运算;如果不是,则 ci=0,表示该位将不参与运算。上式表示了 LFSR 的一种递推关系,在这个式子中,可以明显看出,ci将抽头位选出并留下来参与运算,并且将不是抽头的位剔除掉。

图 2 线性反馈移位寄存器

LFSR 也具有周期。由于一个 n 级 LFSR 最多只能遍历一种状态,因此,当 LFSR 移位到一定程度时,一定会出现重复的状态。而相同状态生成的反馈函数结果总是相同的,因此,LFSR 会陷入一种循环,即 LFSR 存在周期。为了能够产生足够安全的密钥,我们通常要求LFSR 的周期能够足够大。一个 n 级 LFSR 最多只能遍历 2n-1 个状态,也就是说,一个 n 级LFSR 的最大周期就是 2
n-1,我们把周期为 2n-1 的 LFSR 所生成的序列称为 m 序列。m 序列LFSR 反馈函数对应的特征多项式被称为本原多项式。
        产生一个给定阶数的本原多项式最简单的方法是选择一个随机的多项式,然后测试它是否本 原。下表 列 举 了一些 不 同 阶 数的 本 原 多项式 , 例如(32,7,5,3,2,1,0 ) 是指,这样很容易把它转变成最大周期 LFSR。第一个数是 LFSR 的长度,最后
一个数为常数 0,可以忽略,除 0 以外的所有数字指明了抽头序列,这些抽头从移位寄存器的左边开始计数。当移位寄存器比计算机的字还要长时,这个程序的计算时间会无限延长。因此,本题所列举的本原多项式只包含 32 位寄存器及以内,公式如下表所示:

        根据值{b1, b2, ...., bn},循环 n 位 LFSR,然后从前往后取前 48 位,得到的六个字节就是烽火台开启码。

 三、线性反馈移位寄存器(LFSR)编码示例
1. 从二维码(1)中提取的原始数据位{1,1,1,1},可得到寄存器的初始值为 1111。
2. 从二维码(2)提取本原多项式{1,0,0,1},查表可知本原多项式的(反馈函数)抽头位置在第 1 位和第 4 位。
3. 因寄存器 n 的位数为 4,可得不重复消息为 15,直至消息重复之前能够产生下列内部状态序列表: 

 4. 将输出数据重复生成至满足 6 字节报警码,输出序列最低有效位串为:
11110101 10010001 11101011 00100011 11010110 01000111
5. 最后得到 6 字节开启码为:0xF5、0x91、0xEB、0x23、0xD6、0x47

例:

如:
	A{1,1,1,1}	CX = 0X0F  
	B{1,0,0,1}	GX = 0X09
	开启码:0xF5、0x91、0xEB、0x23、0xD6、0x47
如:
	A{1,1,0,1,1,0,1,1} 高位在后 低位在前	CX = 0XDB
	B{0,1,1,1,0,0,0,1} 高位在后 低位在前	GX = 0X8E
	开启码:0xDB、0xFA、0x8D、0x81、0xF2、0xD0
如:
	A{1,0,0,1,1,0,1,1} 高位在后 低位在前	CX = 0XD9
	B{0,1,1,1,0,0,0,1} 高位在后 低位在前	GX = 0X8E
	开启码:0x9B、0x03、0xE5、0xA0、0x85、0xDC

运行效果: 

源码下载链接:

(2条消息) 线性反馈移位寄存器(LFSR):通常由移位寄存器和异或门逻辑组成资源-CSDN文库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树脂吸附含钴废水的实际案例

三元聚合物-锂电池是指正极材料使用锂、镍、钴、锰三元正极材料的锂电池,锂离子电池的正极材料有很多种,主要有钴酸锂、锰酸锂、镍酸锂、三元材料、磷酸铁锂等。用三元材料作为正极材料的动力锂电池,近年来凭借其容量高、循环稳定性&#xff…

Java笔记一(黑马)

目录 一.标准的javaBean二.反射1.获取class对象的三种方式2.反射获取构造方法3.反射获取成员变量4.反射获取成员方法 三.网络编程TCP Serve/ClientNIO框架Netty 一.标准的javaBean package com.itheima.domain;public class Student {//1.成员变量私有化//2.空参,带…

数据结构-树及相关算法

二叉树 递归算法的关键要明确函数的定义,相信这个定义,而不要跳进递归细节。 写二叉树的算法题,都是基于递归框架的,我们先要搞清楚 root 节点它自己要做什么,然后根据题目要求选择使用前序,中序&#xff0…

colmap使用教程

COLMAP 是具有图形和命令行界面的通用运动结构 (SfM) 和多视图立体 (MVS) 管道。 它为有序和无序图像集的重建提供了广泛的功能。 常见的基于nerf算法均需要colmap来计算位姿 安装colmap: conda install colmap 需要使用python9 step1:准备多视角图…

第十三节 I/O流与文件操作

文件读写 输入输出流 文本文件 一个字节一个字节写 8位十进制最大255 int read() throws IOException 字节 java.io.OutputStream 将十进制数按字节 用文件的类 表达文件 1.txt 相对路径 :工程是同级的 绝对路径C盘下 D 万物皆对象 都能封装成对象…

xss-flash钓鱼配合msf捆绑上线

这里写目录标题 一,后门文件生成与制作二,flash安装钓鱼网站搭建三,监听四,钓鱼 一,后门文件生成与制作 打开kali,查看ip add 查看 ip 地址为 192.168.1.8 输入 msfconsole 1.生成后门 msfvenom -p window…

LeetCode 1026. Maximum Difference Between Node and Ancestor【DFS,BFS,树】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

Direct3D 12——模板——平面镜效果

1.将实物照常渲染到后台缓冲区内(不包括镜子)。注意,此步骤不修改模 板缓冲区。 2.清理模板缓冲区,将其整体置零。 将实物都绘制到后台缓冲区中,并将模板缓冲区清理为0 (用浅灰色来表示)。 绘…

socked编程

socket是什么?套接字是什么? 什么是 socket? socket 的原意是“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台…

Motion Planning学习笔记一:配置空间、图、图搜索、图遍历

学习高飞博士的路径规划课程所总结的学习笔记。 目录 1、配置空间(Configuration Space, C-space) 2、图(Graphs) 3、图搜索(Graph Search Basis) 3.1、总体框架 3.2、两种基本的图遍历算法 3.3、启…

漫谈大数据 - HiveSQL总结(二)查询操作

导语:HiveSQL各关键字详解,hive函数大全,类似于个人记录工具书,后续遇到其他的也会继续加进来。 有关hive库表操作请见上篇:漫谈大数据 - HiveSQL总结(一)库表操作_昊昊该干饭了的博客-CSDN博客…

一条SQL如何被MySQL架构中的各个组件操作执行的?

文章目录 1. 单表查询SQL在MySQL架构中的各个组件的执行过程2. SELECT的各个关键字在哪里执行?3. 表关联查询SQL在MySQL架构中的各个组件的执行过程4. LEFT JOIN将过滤条件放在子查询中再关联和放在WHERE子句上有什么区别?5. 聚集索引和全表扫描有什么区…

推动开发者平台本土化,高通加速中国XR内容生态发展

随着VR和AR技术快速发展,产品不断成熟,体验也变得越来越优秀。据悉,Meta Quest系列VR头显出货量超2000万台,基本证明了VR开始在消费类电子产品中占据一席之地。与此同时,近两年AR眼镜也在逐渐升温,成为了创…

day17_异常

今日内容 零、 复习昨日 一、作业 二、异常 三、自定义异常 零、 复习昨日 见晨考,重点是String类的方法 StringBuffer和StringBuiler面试问 日期解析和格式化 int i Integer.parseInt(“111”); 一、作业 略,见答案二、异常 2.1 介绍 异常,就是程序出现的不正常的情况. 2.2…

RPA流程自动化技术在金融机构的落地方案详解

金融机构在面向数字化运营的转型过程中,需将智能流程自动化技术整合到数字化转型战略中,规划建设统一的企业流程自动化处理平台,作为数字化运营的辅助支撑类系统,明确流程治理方法和运营模式,确保足够的规模弹性&#…

【深度学习】Softmax回归及前馈神经网络

1 实验内容简介 1.1 实验目的 (1)熟练掌握tensor相关各种操作; (2)掌握广义线性回归模型(logistic模型、sofmax模型)、前馈神经网络模型的原理; (3)熟练掌…

第一章: uniapp引入axios异步框架

第一章: uniapp引入axios异步框架 在学习uniapp的过程中,发现uniapp框架默认集成request请求框架存在问题,发送请求时在header中塞入token值,而后台接收不到,也就是说uniapp默认的request请求框架,不支持在…

巨烽数字化采购项目启动,甄云助力医疗影像显示领军企业数智化升级

近日,医疗影像显示行业的领军者深圳市巨烽显示科技有限公司(以下简称“巨烽”)联合甄云科技举办数字化采购管理项目启动会,双方相关部门负责人及项目组成员参加了此次会议。 会上,就巨烽的数字化采购管理系统建设升级…

AI写作机器人-ai文章生成器在线

使用AI续写生成器,让内容创作事半功倍! 随着人工智能技术的不断进步和应用,AI续写生成器的出现为内容创作带来了全新的革命。这种技术可以让你的写作事半功倍,让你轻松生成高质量的文章和内容。在这篇文章中,我们将介绍…

如何伪原创-自媒体伪原创软件

批量文字伪原创的作用 批量文字伪原创是指通过对原文进行修改、改写、调整等方式,生成大量新的类似原文的文本。其作用主要包括以下几个方面: 提高文本的独创性:批量伪原创可以有效地避免大量相似内容的出现,从而提高文本的独创性…