.


:




:

































 

 

 

 


3

3.1 : , .

. , . , 2. , T( i ) , 64 . ( i ) .

: ( i ) = ( i ) Å ( i ) , i = 1... M,

( i ) i - ;

( i ) i - ;

( i ) i - ;

M - .

. : (i) = (i) Å (i) , i = 1... M.

, , , 2, . . . . , , , , . ( ) :

¨ ;

¨ , , ;

¨ .

. , .

. Y1, Y2,..., Yi-1, Yi,..., Yi = (a Yi-1 + b) mod m, Yi - i- () ; Yi-1 ; a ; b ; Y0 ( ). Yi Yi-1 , b m. , a b, m. m 2n, n - , , m=2311. . , , b , a mod 4 = 1.

: Yi = (a Yi-1) mod m. a m , . Yi Yi-1 Yi-2 m: Yi = (Yi-1 + Yi-2) mod m. : Yi = (*Yi-1 + μ) mod m.

1. .

2. .

3. .

4. , 2 .

5. , 2, 6.

6. .

1. .

2. .

3. .

4. , 2 .

5. , 2, 6.

6. .

 

, e Fin. () Fout. a = 5, m = 4096, Y0 = 4003.

#include<iostream>

#include<math.h>

#include<string>

#define a 5

#define m 4096

#define y0 4003

#define n 8

#define N 256 //

int Rnd(char*);

int main(){

char G[n];

char Fin[N], Fout[N], ch, Buff[n], Text[n];

int i, j;

std::cin.getline(Fin,N);

j=0;

do{

Rnd(G);

for(i=0;i<n;i++) {

ch=Fin[j];

Buff[i]=int(ch);

Text[i]=Buff[i]^G[i];

Fout[i]=char(Text[i];}

j++;

} while(Fin[j]!=NULL);

return 1;}

//

int Rnd(char *t){

int i, y;

for(y=y0,i=0;i<n; i++){

y=(a*y)%m;

t[i]=y;}

return 1;}

(1,3,,29) , (2,4,,30) . , . , .

 

.      
1-2 m = 4096, Y0 = 4003, Y1 = 59
3-4 = 5, b=7, m = 4096, Y0 = 4003
5-6 = 7, m = 4096, Y0 = 502
7-8 m = 4096*4, Y0 = m-5, Y1 = 4091
9-10 =5, m = 4096, Y0 = m-5
11-12 = 5, m = 4096, Y0 = 3091
13-14 = 2045, m = 4096, μ=1162, Y0 = 4001
15-16 = 9, b=5, m = 4096, Y0 = 502
17-18 = 165, m = 4096*4, μ=3463, Y0 =3887
19-20 m = 4096*4, Y0 = 3971, Y1 = 1013
21-22 = 9, m = 4096, Y0 -
23-24 = 5, b=5, m = 4096*4, Y0 = 3215
25-26 m = 4096, Y0 Y1 -
27-28 M = 4096*4, Y0 = 3215, Y1 = 4073
29-30 = 5, m = 4096*4, Y0 = 3091

 

3.5

1. ? ?

2. ? ?

3. ? ?

4. .

5. .

6. .

 



<== | ==>
- | Microsoft Excel
:


: 2017-04-14; !; : 1887 |


:

:

.
==> ...

2024 - | 1893 -


© 2015-2024 lektsii.org - -

: 0.013 .