Loading [MathJax]/extensions/TeX/mathchoice.js

密码编码学与网络安全第七版习题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}}。用归纳法证明这个结论:

  1. n=1时,存在整数bc,使得

    a^{2^n}=(2b+1)^2=4b(b+1)+1=2^3c+1≡1\pmod{2^3}

  2. 假设当n=k时,命题成立,即

    a^{2^k}≡1\pmod{2^{k+2}}

    则存在整数c,使得

    a^{2^k}=2^{k+2}c+1

    n=k+1时,存在整数kb,使得

    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可得,该命题成立。

a2^4不互素,即a为偶数,令a=2k,则

a^4=16k^4≡0\pmod{2^4}

从而

0=X_{n+4}≡a^4X_n\pmod{2^4}

产生的第四个数之后全为0,所以a2^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 国际」许可协议进行许可。

posted @   MeanCoder  阅读(1285)  评论(0)    收藏  举报
编辑推荐:
· 通过 Canvas 将后端发来的一帧帧图片渲染成“视频”的实现过程
· 当加密ID需要变成Guid:为什么我选择了AES-CBC而非GCM?
· 基于 epoll 的协程调度器——零基础深入浅出 C++20 协程
· 下划线字段在golang结构体中的应用
· SQL Server也能玩正则表达式?
阅读排行:
· C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
· 直击痛点的开源项目「GitHub 热点速览」
· C# 13 与 .NET 9 跨平台开发实战(第一章:开发环境搭建与.NET概述-上篇)
· 我的AI自学路线,可能对你有用
· 记一次 .NET 某自动化智能制造软件 卡死分析
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示