![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 28.04.2014
Сообщений: 0
|
![]()
Здравствуйте кодеры, необходима помощь, деньги не жалею, необходимо написать программу RSA шифрование текста по Эйлеру
МОЙ СКАЙП:igorek1991.92 1)Сам написал только генерацию случайных чисел и подсчет n, f(n), e, d 2)Получил текст со строки 3) необходимо зашифровать, вывести зашифрованный текст и расшифровать program rsa; uses crt; label lab1,lab2,lab3; var p,q,fn,i,k,s: longint; e,d,n,nilgint,dp,dq,ap,aq: integer; txt, txt2, txt3: string; logres: string; c: Byte; //ФУНКЦИЯ ПРОВЕРКИ НА ПРОСТОЕ Function p_number(X: LongInt): boolean; var i: LongInt; Begin if x > 1 then begin Result:= false; for i:= 2 to trunc(sqrt(x)) do if x mod i = 0 then Exit; Result:= true; end else Result:= false; end; //ФУНКЦИЯ НОД Function HOD(a, b : int64) : int64; var r: int64; begin if ((a = 0)or(b = 0)) then begin Result:= abs(a + b); exit; end; r:= a - b * (a div b); while r <> 0 do begin a:= b; b:= r; r:= a - b * (a div b); end; Result:= b; end; //ПОИСК ПРОСТЫХ P И Q begin begin clrscr; writeln (' 1 этап - поиск простых p и q'); readkey; p:= 0; q:= 0; lab1: p:= Random(600)+20; q:= Random(600)+20; if (p=q) then goto lab1 else if (p>q) then goto lab1 else writeln ('p - ',p); writeln ('q - ',q); While not p_number(p) do dec(p); While not p_number(q) do dec(q); writeln ('p (простое) - ',p); writeln ('q (простое) - ',q); readkey; n:=abs(p * q); writeln ('Модуль n - ',n); readkey; end; begin fn:=((p-1)*(q-1)); writeln ('Функция Эйлера fn = ',fn); readkey; end; begin for i:= 2 to fn - 1 do if HOD(fn,i)= 1 then break; writeln ('Открытая экспонента e = ',i); readkey; end; begin for i:= 1 to n do if (i*e)mod(p-1)*(q-1)=1 then break; writeln ('Секретная экспонента d = ',i); readkey; end; writeln ('ВВЕДИТЕ ТЕКСТ ДЛЯ ШИФРОВКИ'); readln(txt); writeln ('Введенный текст: ',txt); end. Последний раз редактировалось crazyTM; 29.04.2014 в 00:02. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Rsa | Lokomoss | Помощь студентам | 0 | 17.10.2012 22:33 |
RSA | raden | C++ Builder | 3 | 27.02.2012 16:36 |
RSA | fawr | Помощь студентам | 0 | 02.05.2011 13:59 |
rsa | zaya | Помощь студентам | 1 | 28.04.2011 17:07 |
RSA | daitro | Фриланс | 4 | 11.06.2009 12:19 |