Вверх ↑
Этот топик читают: Гость
Ответов: 12
Рейтинг: 0
#1: 2017-08-29 10:32:25 ЛС | профиль | цитата
Здравствуйте уважаемые форумчане! Помогите пожалуйста решить одну задачу. Я хочу реализовать протокол Диффи - Хеллмана в HiAsm, но есть проблема. Как я понял, компонент Math не умеет проводить разные математические операции с огромными числами (более 500 знаков)? Допустим, возвести в степень число: 3841287847......(140 знаков)^43829583279205932374502. Далее, найти остаток числа в степени по модулю (mod). При попытки произвести данную операцию, появляется ошибка:
Новый точечный рисуно2к.jpg
Подскажите, что делать? Может быть есть сторонний компонент для выполнения подобных операций?

Редактировалось 1 раз(а), последний 2017-08-29 10:33:01
карма: 0
Функция будильника еще поспать, ввела программиста утром в бесконечный цикл.
0
Ответов: 4629
Рейтинг: 749
#2: 2017-08-29 10:53:30 ЛС | профиль | цитата
На данный момент этого нет. Если действительно имеешь желание делать это для HiAsm, предлагаю реализовать математику с большими числами и сделать для этого несколько компонентов (собственно, математика и преобразование в/из строки, или как пожелаешь). Чтобы не писать математику с 0, можно попробовать адаптировать это: http://www.submanifold.be/triade/GInt/gint.html

На основе такой математики можешь продолжить делать компоненты Диффи-Хельмана. Надеюсь, у тебя знаний Delphi для этого достаточно.
Можно проверить, есть ли этот алгоритм в Windows Cryptography API (у нас так реализованы компоненты RSA), тогда будет проще.
карма: 26

0
Ответов: 12
Рейтинг: 0
#3: 2017-08-29 10:59:36 ЛС | профиль | цитата
Netspirit писал(а):
Чтобы не писать математику с 0, можно попробовать адаптировать это: http://www.submanifold.be/triade/GInt/gint.html

Спасибо. Можно попробовать.
карма: 0
Функция будильника еще поспать, ввела программиста утром в бесконечный цикл.
0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)