当前位置: 首页 > news >正文

【密码学——基础理论与应用】李子臣编著 第五章 序列密码 课后习题

免责声明

这里都是自己搓或者手写的。
里面不少题目感觉有问题或者我的理解有偏颇,请大佬批评指正!
不带思考抄作业的请自动退出,我的并非全对,仅仅提供思维!

题目

逐题解析

5.1

我们先要知道三阶LFSR函数的表达式:

f(a_1,a_2,a_3)=c_3a_1 \oplus c_2a_2 \oplus c_1a_3

重要的是要读懂这句话:“c3=1时有4种线性反馈函数”,实际上就是c2c1分别为00,01,10,11的情况

情况1:c2c1=00

a3a2a1输出
101
1101
0110
1011

T=3,输出序列为(101)^\infty

情况2:c2c1=01

a3a2a1输出
101
0101
1010

T=2,输出序列为(10)^\infty

情况3:c2c1=10

a3a2a1输出
101
1101
1110
0111
0011
1001
0100
1010

T=7,输出序列为(1011100)^\infty

情况4:c2c1=11

a3a2a1输出
101
0101
1010

T=2,输出序列为(10)^\infty

5.2

a4a3a2a1输出
1011
11011
11101
01110
00111
00011
00001
10000
01000
10100
01010
00101
10010
11001
01100
10110

T=15,输出序列为(11011 10000 10100)^\infty

5.3

a2a1a0输出
011
1011
1101
1110
0111

T=4,输出序列为(1101)^\infty

5.4

 (1)

(2)

f(a_1,a_2,a_3,a_4)=a_1 \oplus a_2 \oplus a_3 \oplus a_4

(3)

(1000)序列

a4a3a2a1输出
0001
10001
11000
01100
00110
00011

T=5,输出序列为(10001)^\infty

(0010)序列

a4a3a2a1输出
0010
10010
01001
10100
01010
00101

T=5,输出序列为(01001)^\infty

(1111)序列

a4a3a2a1输出
1111
01111
10111
11011
11101
11110

T=5,输出序列为(11110)^\infty

5.5

结构常数为[1,0,1,1,1]。

5.6

由题可得反馈函数为f(a_1,a_2,a_3,a_4)=a_1 \oplus a_3 \oplus a_4
或者序列的递推关系式(二者不一样)为a_{5+k}=a_{1+k} \oplus a_{3+k} \oplus a_{4+k}

a4a3a2a1输出
1011
01011
00101
00010
10001
11000
01100
10110

T=7,输出序列为(1101000)^\infty

5.7

我其实不懂这题,书上一大堆乱七八糟的数学推导,只能问chatgpt,给出了一条结论(算是通过背结论做题吧)

5.8

线性综合解为<1+x^2+x^3,3>。

我单独写了一篇讲B-M算法的博客:

见密码学——序列密码 序列线性复杂度 B-M算法 例题演示-CSDN博客

5.9

(1)课本P96定义5.8套的去 2^29-1(因为全为0不符合LFSR)

(2)上下同乘(1+x^3)

变成\frac{1+x^2+x^3+x^8}{1+x^9}

根据分子知输出序列为(101100001)^\infty

(和5.7如出一辙,夸自己超强的自学能力嘻嘻,再度验证密码学的教材和老师就是路边一坨)

(3)课本97定理5.11套的去  2^24-1  2^(25-15-2)=2^8

http://www.dtcms.com/a/133471.html

相关文章:

  • spring.factories文件作用详解,@SpringBootApplication启动过程与其关联
  • SpringCloud-快速通关(二)
  • Scrapy结合Selenium实现搜索点击爬虫的最佳实践
  • 一站式Windows下Docker开启MySQL并链接本地Navicat(附乱码解决方案)
  • Docker学习笔记-docker安装、删除
  • 单片机任意普通IO引脚使用定时器扩展外部中断的巧妙方法
  • 如何撤回刚提交的 commit
  • 在交换机上划分VLAN并配置IP地址的完整指南
  • C数据结构--顺序表
  • 【Linux】41.网络基础(2.3)
  • SQL 查询中 ORDER BY 的执行顺序
  • 30学Java第十天——类加载的过程
  • **searchProperties 是什么,python中**是什么:解包字典的操作符
  • camx的xml解析
  • 【跳坑日记】Jetson 6.2 编译cuda-sample报错:No CMAKE_CUDA_COMPILER could be found
  • java android持久化数据
  • c#内存泄露的原因和解决办法
  • 全新电脑如何快速安装nvm,npm,pnpm
  • 批量将文件夹名称、文件夹路径提取到 Excel 清单
  • git在IDEA中使用技巧
  • RabbitMQ消息的可靠性
  • 腾讯云golang一面
  • Project ERROR: liblightdm-qt5-3 development package not found问题的解决方法
  • 基于 Python 和 OpenCV 技术的疲劳驾驶检测系统(2.0 全新升级,附源码)
  • 双向链表中间插入节点,删除节点
  • Trae CN 使用入门指南
  • 【uniapp-兼容性处理】swiper在iOS上偶发出现后几张图片白屏情况
  • Vue使用axios实现:上传文件、下载文件
  • .NET Core DI(依赖注入)的生命周期及应用场景
  • React 更新state中的对象