|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
Как найти простое число p, для которого (p - 1) / 2 также будет простым (алгоритм Диффи-Хелмана)10.02.2018, 14:48. Показов 1460. Ответов 8
Метки нет (Все метки)
Друзья! Нужно реализовать алгоритм Диффи-Хелмана. И использовать, то есть числа должны быть не маленькими демонстрационными, но достаточно большими.
А где их брать? Число p я решил взять здесь Там, правда, ограничение в 128 цифр, но лучше ничего не нашёл. Не по теме: Число g решил взять здесь (используем функцию PrimitiveRoot) Инструмент для работы с большими числами есть, класс Verylong на плюсах. ++++++++++++++++++++++++++ Дело в том, что не каждое найденное число p подойдёт, а нужно также проверять (p - 1) / 2 на простоту; назовём его p_0 И в этом-то вся загвоздка. Например, на указанном выше сайте я взял случайное простое число p. 4564765766786237648768678267813467832652 36523682634685634890963 Нашёл p_0 2282382883393118824384339133906733916326 18261841317342817445481 И как же мне проверить его на простоту? На сайте, который я указал, проверка делается и для моей задачи она бы подошла. Но дело в том, что если p_0 не окажется простым, то мне нужно вновь будет генерить p, находить p_0 и вновь проверять его на этом сайте на простоту. И всё вручную. И сколько таких попыток нужно будет сделать- неизвестно, может 10, а может 1000000. Вручную. Не подходит такой вариант мне. ++++++++++++++++++++++++++ Спас бы такой инструментарий: 1) Инструмент, с помощью которого можно проверить число на простоту. Имеется ввиду экзешник какой-нибудь, которому можно параметрами подавать несколько простых чисел. То есть, допустим, запускаю я экзешник в командной строке и параметром к нему файл со списком простых чисел. Тогда был бы разговор. Сам я такого экзешника реализовать не могу, ибо нормального быстрого (читай не миллионолетнего) алгоритма проверки числа на простоту я просто не знаю. А он есть, судя по быстроте работы вышеуказанного сайта. и 2) Генератор простых чисел. Можно, конечно, реализовать решето Эратосфена. Но этот алгоритм, как я понял, работает в промежутке от 1 до n, то есть ОЧЕНЬ ДОЛГО, опять миллионы лет. А мне нужно искать сразу большие числа то есть рассматривать, промежуток, к примеру от 10000000000 до 10000000000000000. Такие дела. Где такой инструментарий знать, я не знаю. Может, кто что подскажет, может онлайн генераторы какие путёвые есть? Спасибо, кто откликнется.
0
|
|
| 10.02.2018, 14:48 | |
|
Ответы с готовыми решениями:
8
Алгоритм Диффи-Хелмана для 4-х абонентов Алгоритм Диффи-Хелмана на элиптических кривых. Длина ключа Требуется совет в реализации агоритма Диффи-Хелмана Delphi |
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
|
|
| 10.02.2018, 20:51 | |
|
Нужно просто найти пару подходящих чисел в интернете.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 11.02.2018, 11:36 [ТС] | ||
|
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 12.02.2018, 18:08 [ТС] | ||
|
Взять, например, это инструмент
http://www.softpedia.com/get/O... ator.shtml За час-другой сгенерил мне 500 простых чисел, начиная от 100000000. Среди них удовлетворяющих условию (если p простое число, то (p - 1) / 2 тоже простое число), вот они:
То есть искать солидный ресурс в инете. Такой, чтобы генерил такие числа, только шуба бы заворачивалась. Есть такой в природе или комп для этого нужно мастырить?
0
|
||
|
167 / 106 / 30
Регистрация: 19.01.2013
Сообщений: 847
|
|
| 14.02.2018, 10:09 | |
|
у меня где-то были простые числа в 1024 бита и в 2048 бит.
Надо? Добавлено через 2 минуты В своё время я занимался такой проблемой как генерация простых чисел. И я чуть не поседел). Короче нет в нете генераторов таких чисел и вообще не понятно откуда они беруться. Но в любом случае можете взять простое число из ГОСТ 34.10 и из американских стандартов для алгоритам какого-то. не помню уже. Для AES что ли... Добавлено через 25 секунд НО! они бубут в 16 ричной Системе Счисления.
0
|
|
|
167 / 106 / 30
Регистрация: 19.01.2013
Сообщений: 847
|
||
| 15.02.2018, 09:11 | ||
|
Вот хороший сайт, где можно скачать стандарты:
http://meganorm.ru/list/8-0.htm Вот гост: http://meganorm.ru/Index/6/6784.htm Смотрите там примеры. p- это простое число. Там 2 примера, вам наверное хватит. Также я в нете нашёл какого-то чувака из университета США, так он свои простые числа сгенерировал. Воте ещё кривые: http://www.secg.org/SEC2-Ver-1.0.pdf Гуглится этот стандарт по запросу: parameters for elliptical curve NIST Вы дальше википедии ничего не видите что-ли? Добавлено через 1 минуту Добавлено через 5 минут Сейчас я чисто случайно открыл ГОСТ за 94 год. Я слышал, что он очень жёсткий, поэтому даже не открывать не стал в своё время. В общем ознакомтесь с ним. В разделе 7 есть алгоритм генерирования простых чисел порядка 512 бит! Конечно сейчас 512 - малова-то. Но наверное можно как-то переделать этот алгоритм так, чтобы он выдавал числа длинной и 1024 бита. А вообще я так и не нашёл нормальных алгоритмов вычисления параметров для элептической кривой. Например амеры предлагают брать параметр a=1. Мне кажется, что это как-то не правильно. Добавлено через 15 секунд http://meganorm.ru/Index/46/46926.htm - ссылку забыл) Добавлено через 9 минут Кстати на C# есть проекта позволяющие генерировать простые числа. НО! Эти поекты работают для чисел порядка 100000. У меня комп i-7, 4 ядра физически, 8 процессов. Чтобы сгенерировать такое число я потратил по моему около часа. Когда я генерировал число порядка 10^6. Я и за 2 часа не смог его создать. Т.е. сгенерировать простое число- ну никак нельзя дома имея опенсоурсные решения. Нужно заранее знать, что число простое. В принципе алгоритм из госта 94 года хороший для этого. По крайней мере он есть. Для ознакомления можете посмотреть признаки простого числа. Есть статьи на хабрахабре. КОрчое я их читал, читал. И понял, что простые числа слишком сложны для меня))). Особенно в плане генерации).
0
|
||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
|
||
| 15.02.2018, 14:50 | ||
|
Я за 10 сек простой программой (в одном потоке) сгенерировал 106 простых чисел. Последнее - 15,485,867.
0
|
||
|
167 / 106 / 30
Регистрация: 19.01.2013
Сообщений: 847
|
|
| 16.02.2018, 08:28 | |
|
значит у меня плохая программа была.
Я на c# прогаю. Он для таких дел не очень). Что скажите по поводу алгоритма из -94 ГОСта? Добавлено через 1 минуту Но всё равно это не тот порядок, который нужен. Не помню я порядок который нужен, но это выходит за пределы 10^9 точно.
0
|
|
| 16.02.2018, 08:28 | |
|
Помогаю со студенческими работами здесь
9
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число Дано простое число. Составить функцию, которая будет находить следующее за ним простое число. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|