![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Пользователь
Регистрация: 26.10.2014
Сообщений: 27
|
![]()
Преподаватель дал задание реализовать алгоритм RSA. Попытался сделать по этому мануалу: http://www.e-nigma.ru/stat/rsa/
Интересно то, что для чисел, которые даны в мануале, все работает, но если искать самому в коде другие, то получается вообще непонятно что. Походу в примере они взяли числа и им повезло. Либо я что-то не так делаю. Пожалуйста, проверьте меня, что может быть не так. Заккоменчены те числа, для которых работает. Код:
Цитата:
Помогите пожалуйста разобраться |
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Весь код в bukvatocifra и cifratobukva можно одной строчкой заменить используя ord и chr. А разбираться нужно в отладчике
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 26.10.2014
Сообщений: 27
|
![]()
Я пытался, разбирался, пробовал, я вручную пересчитывал. Также получается. Мне кажется. ошибка в алгоритме самом RSA. На счет одной строчки кода-точно, Ord и Char, забыл. Спасибо.
Последний раз редактировалось danek130995; 21.11.2015 в 00:08. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
![]()
Скорее в его конкретной реализации и/или конкретных исходных данных.
![]() Или они эти числа просто выбрали правильно, то есть в соответствии с описанием алгоритма. К слову, в приведённом Вами мануале чёрным по белому написано: Цитата:
Числа не только "маленькие". Одно из них ещё и составное. В общем, внимательно перечитывайте мануал и сверяйте с ним Ваши данные и код. Если что, лучший друг программиста (уже упомянутый отладчик ![]() |
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 26.10.2014
Сообщений: 27
|
![]()
Ой, забыл про простые числа, спасибо! Сейчас попробую. А маленькие взял чтобы проверить вручную легче было. На самом деле маленькие можно брать, главное чтобы простые были. Просто если они маленькие шифр легче взломать
Для больших p и q рандомить может бесконечно.. Теперь я проверяю числа на простые, но работает все равно неверно: Код:
Цитата:
Код:
Последний раз редактировалось Аватар; 23.11.2015 в 09:44. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 26.10.2014
Сообщений: 27
|
![]()
нашел ошибку-невнимательно смотрел мануал, буква должна быть представлена в виде числа до n-1.
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 26.10.2014
Сообщений: 27
|
![]()
Аватар, я заменил код cifratobukva и bukvatocifra, но он возвращает непонятные значки, а то вообще не возвращает.
Код:
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Ну во-первых нужно со смещением. Ord('A') совсем не 1
Во-вторых, если делфи юникодный, то так не пойдет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 26.10.2014
Сообщений: 27
|
![]()
Аватар, так у меня кодируется А не как единица, а кодируется уже ее номер char. Зачем тут смещение? У меня Lazarus
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
для прописных (Больших) латинских букв (и исключительно только для них!) попробуйте такой вариант:
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм RSA | Анна Сафронова | Помощь студентам | 2 | 02.06.2013 11:54 |
Алгоритм RSA | Daniel58 | Помощь студентам | 1 | 29.03.2012 13:40 |
алгоритм цифровой подписи RSA | Nin | Помощь студентам | 2 | 25.04.2011 18:58 |
RSA алгоритм в Maple. | pokerBORODA | Фриланс | 2 | 17.02.2010 19:06 |