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

时间:2023-05-06 06:10:43
【文件属性】:

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

文件大小:3KB

文件格式:CPP

更新时间:2023-05-06 06:10:43

密码学 密码学课设 密码学实验

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,解密结束。


网友评论