密码编码学与网络安全第七版习题8.2
这道题是密码学的作业,开始不会写,答案只有结果而没有过程,后来查了一些资料才算是搞明白了。
题目如下:
(a) 下述的伪随机数发生器可获得的最大周期是多少?
Xn+1=(aXn)mod24(b) 这时 a 为多少?
(c) 对种子有什么要求?
解答如下:
(a)#
首先引入这样一个结论:对任意的奇数a与正整数n,有:a2n≡1(mod2n+2)。用归纳法证明这个结论:
当n=1时,存在整数b,c,使得
a2n=(2b+1)2=4b(b+1)+1=23c+1≡1(mod23)假设当n=k时,命题成立,即
a2k≡1(mod2k+2)则存在整数c,使得
a2k=2k+2c+1当n=k+1时,存在整数k,b,使得
a2k+1=(2k+2c+1)2=22k+4c2+2·2k+2c+1=2k+3c(2k+1c+1)+1≡1(mod2k+3)即当n=k+1时,命题成立。
由1,2可得,该命题成立。
若a与24不互素,即a为偶数,令a=2k,则
a4=16k4≡0(mod24)
从而
0=Xn+4≡a4Xn(mod24)
产生的第四个数之后全为0,所以a与24互素。
又因为
a2n≡1(mod2n+2)
所以
a24−2=a4≡1(mod24)
从而
a4Xn≡Xn(mod24)
即
Xn+4=Xn
所以最大周期为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 国际」许可协议进行许可。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· 用99元买的服务器搭一套CI/CD系统
· Excel百万数据如何快速导入?
· ShadowSql之.net sql拼写神器