密码编码学与网络安全第七版习题8.2
这道题是密码学的作业,开始不会写,答案只有结果而没有过程,后来查了一些资料才算是搞明白了。
题目如下:
(a) 下述的伪随机数发生器可获得的最大周期是多少?
X_{n+1}=(aX_n)\mod{2^4}(b) 这时 a 为多少?
(c) 对种子有什么要求?
解答如下:
(a)#
首先引入这样一个结论:对任意的奇数a与正整数n,有:a^{2^n}≡1\pmod{2^{n+2}}。用归纳法证明这个结论:
当n=1时,存在整数b,c,使得
a^{2^n}=(2b+1)^2=4b(b+1)+1=2^3c+1≡1\pmod{2^3}假设当n=k时,命题成立,即
a^{2^k}≡1\pmod{2^{k+2}}则存在整数c,使得
a^{2^k}=2^{k+2}c+1当n=k+1时,存在整数k,b,使得
a^{2^{k+1}}=(2^{k+2}c+1)^2=2^{2k+4}c^2+2·2^{k+2}c+1=2^{k+3}c(2^{k+1}c+1)+1≡1\pmod{2^{k+3}}即当n=k+1时,命题成立。
由1,2可得,该命题成立。
若a与2^4不互素,即a为偶数,令a=2k,则
a^4=16k^4≡0\pmod{2^4}
从而
0=X_{n+4}≡a^4X_n\pmod{2^4}
产生的第四个数之后全为0,所以a与2^4互素。
又因为
a^{2^n}≡1\pmod{2^{n+2}}
所以
a^{2^{4-2}}=a^4≡1\pmod{2^4}
从而
a^4X_n≡X_n\pmod{2^4}
即
X_{n+4}=X_n
所以最大周期为4。
(b)#
由(a)可知,a为奇数。
经计算,a=7,9,15时,周期为2。
a=3,5,11,13时,周期为4。
(c)#
种子必须为奇数,否则周期会不大于2。
作者:MeanCoder
出处:https://www.cnblogs.com/meancoder/p/cryptography-and-network-security-problem-8-2.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】AI 的力量,开发者的翅膀:欢迎使用 AI 原生开发工具 TRAE
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
· 通过 Canvas 将后端发来的一帧帧图片渲染成“视频”的实现过程
· 当加密ID需要变成Guid:为什么我选择了AES-CBC而非GCM?
· 基于 epoll 的协程调度器——零基础深入浅出 C++20 协程
· 下划线字段在golang结构体中的应用
· SQL Server也能玩正则表达式?
· C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
· 直击痛点的开源项目「GitHub 热点速览」
· C# 13 与 .NET 9 跨平台开发实战(第一章:开发环境搭建与.NET概述-上篇)
· 我的AI自学路线,可能对你有用
· 记一次 .NET 某自动化智能制造软件 卡死分析