這道題是密碼學的作業,開始不會寫,答案只有結果而沒有過程,后來查了一些資料才算是搞明白了。
題目如下:
(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。
