.


:




:

































 

 

 

 


.




. () . .

. , , .

.

.

, . . , , . .

, . () . , .Δ, . .

, .

().

, , . .

. , .

. T(i),

T(i+1) = (A*T(i)+C)modm,

- , (0) - , . , .

, . m 2n, n - . , . , , , . . , , - , mod 4 = 1.

. , x(j) b, j=1, 2,..., n. G H(j).

-

- , .

- , k - . k 2. .

:

r1:=r0 r2:=r1... rk-1:=rk-2

r0:=a0r1 Åa1r2 Å...Åak-2rk-1

i:=rk-1-

r0 r1... rk-1 - k , a0 a1... ak-1 - k-1. i - i- .

- 2 k -1.

- , .. - k. 3.1.

3.1

k
   
   
   
   
   
   
   

, .

, -. -. k=10 1023 ( -) 388000.

( Ȕ ), .

, .

. , , , . , .

, ( 0;1), - , , 2 (.. 0+0=1+1=0, 0+1=1+0=1). .

, , . , - , , . 30- . - .

, , , . , , .

= 10011000100010001001010010010000

00010010000000110000101000000111

= 1000 1010 1000 1011 1001 1110 1001 0111

00010111000011010001100100001100

= 10001111100001011000110110011100

, , , , , .

- , , - , . - , . , , , , , , , (, , ).

, .

. . A B C .

A + B, (A+B) C

A + B C =

A + B -C, (+ B) ,

A - B, (A-B)

A - B C =

A - B + C, (- B)

=3

0+0=0 1+0=1 2+0=2

0+1=1 1+1=2 2+1=0

0+2=2 1+2=0 2+2=1

0-0=0 1-0=1 2-0=2

0-1=2 1-1=0 2-1=1

0-2=1 1-2=2 2-2=0

( =33). 0 (-1).

-, , , 0 -1, , , C - , 0 -1 , .

: 3. , 2 .

, , . , , , , . , , , , . , , , . , . :

1. ( , , ).

2. ( ) .

 

 

#include <iostream>

#include <string>

#include <vector> // ? Vector

 

using namespace std;

 

string alphavit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()_+-;:?<>/{}[]\\\"'";

int gen_num(int input){

return (11 * input + 3) % 50;}

 

void xor_alg(string input_str, long long int key){ \\ xor?

vector<int> gamma;

vector<int> code;

for(int i=0; i<input_str.size(); i++){

for(int j=0; j<alphavit.size(); j++){

if(input_str[i] == alphavit[j]){

code.push_back(j); \\ ? ()

break;

}}}

gamma.push_back(gen_num(key)); \\ ? ()

for(int i=0; i<code.size(); i++){

gamma.push_back(gen_num(gamma.back())); \\ ? ()

 

}

cout << endl;

for(int i=0; i<code.size(); i++){

int new_code = code[i] ^ gamma[i]; // ^- XOR

cout << alphavit[new_code];

new_code = 0; // 0? new_code

}}

int main(){

string input_buffer;

long long int key_buffer = 0;

cout << "Enter a word: ";

cin >> input_buffer;

cout << "Enter a key: ";

cin >> key_buffer;

xor_alg(input_buffer, key_buffer);

return 0;

́ ́ 2 (́ ́, ́ Ȼ, , XOR, , , ) , . , , . , 1, . 2, .

 

 

toupper:

  int toupper(int character);

ctype.h
cctype ++

toupper . , , . , , .

, , , .

++ toupper <locale>.

:

  • haracter
    , , int, EOF.

, , , . int, char.

 

tolower:

  int tolower (int c);

ctype.h
cctype ++

tolower . , , . , , .

, , , .

++ tolower <locale>.

:

  • haracter
    , , int, EOF.

, , , . int, char.

 





:


: 2016-12-04; !; : 823 |


:

:

,
==> ...

1586 - | 1348 -


© 2015-2024 lektsii.org - -

: 0.048 .