Page 36 - 4395
P. 36
3 % Визначаються ключі системи RSA
4
5 p=23; q=31;
6 n=p*q;
7 E=(p-1)*(q-1); % Е - функція Ейлера
8 % вибір відкритого ключа e треба провести окремо з
9 % врахуванням всіх простих чисел primes(E), менших Е
10 e=653;
11 d=inverse(e,E);
12 % Перевірка
13 if gcd(e*d,n)~=1
14 print('Ключі обрано невірно!')
15 keyboard
16 end
17 disp(' ')
18 disp('CТВОРЕННЯ КЛЮЧІВ')
19 fprintf('Вихідні взаємно прості числа: p = %d, q = %d',p,q)
20 fprintf('\nМодуль шифрування: n = %d',n)
21 fprintf('\nФункція Ейлера: Е =%d',E)
22 fprintf('\nВідкритий ключ: e =%d, n = %d',e,n)
23 fprintf('\nТаємний ключ: d =%d, n = %d\n',d,n)
24 % Для режиму цифрового підпису
25 % необхідно провести обмін значеннями ключів
26 if strcmp(alternative,'Signature')=1
27 v=e; e=d; d=v;
28 end
В.6 Текст програми SCRIPT-файлу ENCRYPT
1 % M-file encrypt
2
3 % Виконується шифрування відкритого тексту
4
5 % Уведіть явний текст як значення змінної PLAIN:
6 % англійською у режимі шифрування-дешифрування;
7 % українською у режимі цифрового підпису
8 plain='A Happy New Year!'; % режим 'Crypt'
9 %plain='Будьмо обережні!'; % режим 'Signature'
10 disp(' ')
36