Я придумал, самый быстрый алгоритм проверки числа на простоту.
Длинные простые числа нужны для построения закрытого и открытого ключей для шифрования данных.
Сами простые числа ищут с помощью наиболее быстрого алгоритма Миллера-Рабина.
При этом указывается что число "вероятно простое". А для абсолютного доказательства простоты числа, якобы нужен
намного более трудоёмкий алгоритм (тот же "полный тест Миллера" - уже использует намного больше проверок на сильную псевдопростоту
по разным основаниям).
https://ru.wikipedia.org/wiki/Тест_Миллера_(теория_чисел)И то, не даже проведя "полный тест Миллера" - мы якобы, не будем уверены что число будет простым (это так если верна Обобщённая гипотеза Римана).
Но позвольте, если для шифрования-дешифрования нужны именно простые числа, то это способ
доказать достоверно простоту числа, и может быть
это самый
быстрый алгоритм?
1) Генерируем быстро два длинных
вероятно простых числа по быстрому алгоритму Миллера-Рабина.
Не доказано пока, что они простые? Хорошо, далее,
2) Перемножаем их, получаем полупростое число - из него строим открытый ключ для шифрования, и закрытый ключ (я так понял, на основе простых чисел).
3) берем файл как множество байт, шифруем его открытым ключом.
(Чтобы расшифровать, нужно найти закрытый ключ, а для этого пришлось бы раскладывать длинное полупростое на множители) ,
4) берём закрытый ключ и дешифруем файл. Получили исходный ?
Значит
ключи верно построены. Для этого требовалось в самом начале найти именно
простые числа.
Отсюда вывод: числа оказались действительно простыми, иначе мы бы неправильно дешифровали бы файл.
Тем самым мы
доказали, что этот "алгоритм" поиска простых чисел - самый быстрый (почти как и Миллера-Рабина, т.к. добавлено только шифрование+дешифрование),
и он же детерминированный а не вероятностный.
Верно? Но если в моих рассуждениях есть ошибка, тогда из этого следует что вовсе не обязательно использовать достоверно простые числа -
может быть и
составные числа сойдут для целей шифрования-дешифрования.
Если есть специалисты в этой области, помогите, может быть я в чём то неправ.
Спасибо .