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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 16:35   #1
opa-95
Новичок
Джуниор
 
Регистрация: 16.01.2011
Сообщений: 2
Радость Реализацbz RSA на pascal

Всем привет , помогите реализовать алгоритм rsa на pascal

я начал его делать но в программировании я не давно и некоторые моменты ещё не изучил и возникли проблему с реализацией...
вот что я написал :
Код:
program rsa;
uses crt;
var m,p,q,z,n,c,b : longint;
     i,i1,k,k1: integer;
begin
clrscr;
writeln (' 1 этап - поиск простых p и q');
readkey;
while k <> 2 do 
        begin 
        randomize;
        p:=random (35405-10000+1)+10000;
        if (p mod 2)=0 then continue
        else          begin 
                       k:=0
                       for i:=1 to p do
                       if (p mod i)= 0 then k:=k+1;
                       end;
        end;
writeln ('p -  ');
c:=99999;
b:=50000;
while k1 <> 2 do 
        begin 
        randomize;
        q:=random (c-b+1)+b;
        if (q mod 2)=0 then continue
        else          begin 
                       k1:=0
                       for i1:=1 to p do
                       if (q mod i1)= 0 then k1:=k1+1;
                       end;
        end;
writeln ('q - ',q);
readkey;
writeln ('2 этап вычесление n');
readkey;
n:=p*q;
writeln ('n - ',n);
readkey;
writeln ('3 этап поиск функции эйлера');
readkey;
m:=(p-1)*(q-1);
writeln('m - ',m);
readkey;
и всё ((( я застрял Помогите дописать пожалуйста и ответь на вопросы дурака))
1 можно ли увеличить числа , скажем не 2 ^ 31 -1 а больше???
2- как улучшить уже написанную программу через процедру

Последний раз редактировалось Stilet; 16.01.2011 в 17:28.
opa-95 вне форума Ответить с цитированием
Старый 16.01.2011, 17:46   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

rsa — это достаточно сложный для реализации "с нуля" код. Нужно поднимать работу с большими числами, никакие integer и int64 не подойдут. Если вам просто поупражняться, поделите для начала число A=123987457896498757690324909845698 568743758876 на B=234567764365786346794587435987560 987. С остатком. Потом умножьте результат на B, добавьте остаток. Должно получиться А. Получилось? Тогда продолжайте, остальное будет проще.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 16.01.2011, 17:59   #3
opa-95
Новичок
Джуниор
 
Регистрация: 16.01.2011
Сообщений: 2
По умолчанию

я понимаю что тяжело реализовать rsa в integer
так же знаю что нужны большие числа
но моя задача ее завершить

и что бы программа могла делать :
1. Выбираются 2 простых числа p и q.
2. Вычистляется их произведение N=p*q
3. Вычисляется значение функции Эйлера f(p,q)=(p-1)*(q-1)
4. Выбирается простое число e которое взаимопростое с f(p,q)
5. Выбирается число d удовлетворяющее условию e*d mod f(p,q)=1

4 и 5 пункт я не могу написать помогите с ним они делаются через расширенный алгоритм эвклида
opa-95 вне форума Ответить с цитированием
Старый 05.04.2013, 16:51   #4
Ежик
Пользователь
 
Регистрация: 23.04.2010
Сообщений: 12
По умолчанию

пункт 4 выглядит так:
{ СОЗДАНИЕ ЗАКРЫТОГО КЛЮЧА 1<e<phi(n)}
function Get_e:Integer;
var
chislo:Integer;
proverka:boolean;
begin
Randomize;
Repeat
chislo:=RandomRange(2,phi-1);
proverka:=NOD(chislo, phi);
Until proverka=true;

Get_e:=chislo;

end;
Ежик вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать RSA fotopo Помощь студентам 0 01.04.2010 11:57
RSA lennon Помощь студентам 0 22.11.2009 17:31
RSA daitro Фриланс 4 11.06.2009 12:19
Алгорим RSA LT. Помощь студентам 4 05.06.2009 22:36