|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.01.2011, 16:35 | #1 |
Новичок
Джуниор
Регистрация: 16.01.2011
Сообщений: 2
|
Реализацbz RSA на pascal
Всем привет , помогите реализовать алгоритм rsa на pascal
я начал его делать но в программировании я не давно и некоторые моменты ещё не изучил и возникли проблему с реализацией... вот что я написал : Код:
1 можно ли увеличить числа , скажем не 2 ^ 31 -1 а больше??? 2- как улучшить уже написанную программу через процедру Последний раз редактировалось Stilet; 16.01.2011 в 17:28. |
16.01.2011, 17:46 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
rsa — это достаточно сложный для реализации "с нуля" код. Нужно поднимать работу с большими числами, никакие integer и int64 не подойдут. Если вам просто поупражняться, поделите для начала число A=123987457896498757690324909845698 568743758876 на B=234567764365786346794587435987560 987. С остатком. Потом умножьте результат на B, добавьте остаток. Должно получиться А. Получилось? Тогда продолжайте, остальное будет проще.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
16.01.2011, 17:59 | #3 |
Новичок
Джуниор
Регистрация: 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 пункт я не могу написать помогите с ним они делаются через расширенный алгоритм эвклида |
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; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать 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 |