简单的线性反馈移位寄存器(LFSR)C语言实现

上传者: 44219914 | 上传时间: 2021-08-30 21:32:35 | 文件大小: 3KB | 文件类型: CPP
1)利用C\C++语言实现给定的LFSR;
2)通过不同初始状态生成相应的序列,并观察它们的周期有什么特点;
3)利用生成的序列对文本进行加/解密(按对应位作模2加运算)。
步骤:
(1)生成序列:使用#include库构造序列,使用bint.to_string()将输入的01串转成字符串,用str暂存。将bint[3]和bint[0]异或,赋值给bint[4]也就是a5,循环左移,将bint转成字符串后s1[4]就是生成的a1,将 a1添加到s2后面。当str与现在的bint相同,即周期结束,跳出循环,s2就是生成的完整序列。
(2)加密过程:生成31位序列后,读取待加密文本的每一个字符,和0XFF相与得到8位01串,依次与31位序列按位异或,结果得到8位01串,得到密文,写入ciphertext.txt。
(3)解密过程:每次读入ciphertext.txt中的8个01字符,将其再依次与31位序列按位异或,得到加密前的01串,根据这个01字符串,先转成bitset类型,再转成char型,将每个字母写入解密文件deciphertext.txt,解密结束。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明