Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2014, 23:26   #1
crazyTM
Новичок
Джуниор
 
Регистрация: 28.04.2014
Сообщений: 0
По умолчанию Реализовать RSA PascalABC

Здравствуйте кодеры, необходима помощь, деньги не жалею, необходимо написать программу 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.
crazyTM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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