Большой алгоритм RSA премьера - тест на простоту

Предупреждение: Данная статья является блоггер оригинала статьи, перепечатана необходимость добавить ссылку описания. https://blog.csdn.net/makenothing/article/details/90318351

0 Введение

Алгоритм RSA основан на очень простом арифметическом факт: умножая два больших простых чисел очень просто, но факторинг хотят , чтобы их продукт чрезвычайно сложно.
В данной статье рассматриваются соответствующие знания о простых числах.

Испытание 1 на простоту

Вопрос 1: Как определить, является ли большое число простое число

1,1 проба деление

Trial деление: определяется ли п является простым, цикл писать свою способность к делению п от 2 SQRT (п) определяется, если оно не может быть простым числом п.

Если п мало, то с помощью пробного деления , конечно , очень эффективно и быстро. Но когда великое русское время, этот алгоритм не может работать
с RSA1024 например, когда открытым ключом

0x890e23101a542913da8a4350672c9ef8e7b34c2687ce8cd8db3fb34244a791d60c9dc0a53172a56dcc8a66f553c0ae51e9e2e2ce9486fa6b00a6c556bfed139001133cdfe5921c425eb8823b1bd0a4c00920d24bee2633256328502eadbfac1420f9a5f47139de6f14d8eb7c2b7c0cec42530c0a71dadb80c7214f5cd19a3f2f

, Два простых фактора

0xe5a111a219c64f841669400f51a54dd4e75184004f0f4d21c6ae182cfb528652a02d6d677a72b564c505b1ed42a0c648dbfe14eb66b04c0d60ba3872826c32e7

и

0x98cb760764484e29245521be08e7f38edeebfca8427149524ba7f4735e1d5f3a45d585cb3722ff4c07c19165be738311dc346a914966f5b311416fed3b425079

Он был преобразован в десятичную

12026655772210679470465581609002525329245773732132014742758935511187863487919026457076252932048619706498126046597130520643092209728783224795661331197604583

и

8002511426596424351829267099531651390448054153452321185350746845306277585856673898048740413439442356860630765545600353049345324913056448174487017235828857

Это на 155 и 154-значное число цифр, около 511 мощностью 2, которая обычно не рассчитывается!
Конечно, не нет способа, математики всегда некоторые нечестные для нас , чтобы показать путь.

1.2 Маленькая теорема Ферма

малая теорема Ферма является теорема в теории чисел: Если это целое число, р простое число, то ап-а является кратным р, он может быть выражен в виде р ≡a ( по модулю р) , если кратный А не р этой теоремы Она также может быть записана в виде р -1≡1 ( по модулю р)

Следует отметить, что малая теорема Ферма является необходимым условием для оценки , является ли число простым, не является достаточным условием, потому что есть некоторые псевдо-простые числа удовлетворяют малой теоремы Ферма не является простым числом, например, 2 340 ≡ 1 (mod341), но 341 = 11 × 31

1.3 тест ферма

Мы будем рассматривать только случай , когда а = 2, если мы рассмотрим случай , когда а = 3, составное число может быть передан тест при а = 2, результаты расчетов при а = 3 , но исключает возможность простых чисел. Соответственно, он расширяет определение числа псевдопростого числа , удовлетворяющее сказал н- -1modn составного число п = 1 называется число псевдопростого числа (псевдопростым число основывать а) в качестве основани в. Псевдо премьер фронт 1 млрд натуральных чисел 2 и 3 , в то же время, в конце только 1272, только менее четверти этого числа. Это говорит нам о том , что если оба проверить = 2 и = 3 в обоих случаях, вероятностные алгоритмы ошибки вплоть до 0,000025. Легко думать, тем больше выбор , чтобы протестировать, более точный алгоритм. Наш подход , как правило , случайным образом выбирается положительное целое число протестирована в нескольких несколько раз небольшого теста в базе , как, до тех пор , пока человек не проходит тест может определить это число является составным числом.这就是Fermat素性测试。

Тест на простоту 1.4 Миллера-Рабина

Для того, чтобы проверить , является ли N простого числа, N-1 сначала разложить на 2 S D. В начале каждого теста, случайным образом выбирается первый диапазон [1, N-1] из целых чисел а, если после всех r∈ [0, с-1] , когда А Д MODn ≠. 1 и А 2rd MODn ≠ -1, N является составным числом. В противном случае, N 3/4 вероятность простого числа.

Как тест ферма, Миллер-Рабин тест может простоту еще определить число 可能является простым, но этот метод имеет свои быстрое, эффективный и широко используются.

Мы решили проверить простые числа типа

Детерминированная определение большого целого числа является простым простым методом испытания -AKS

АКС воспламеняет тест (также известный как Агроэлы-Kayal-Саксен воспламеняет тестирование и круговой AKS тест) является решением типа алгоритмов простого тестирования, три из Индийского института компьютерных технологий ученые Канпера, Маниндра Агравал, Neeraj Kayal и Нитин Саксена, 2002 6 августа опубликовал статью под названием PRIMES в P (простое число принадлежит Р) бумаге. Поэтому авторы завоевали множество наград, в том числе гёделевских премий и в 2006 году Фулкерсон премии 2006 года. Этот алгоритм может быть в полиномиальное время, мы решим, является ли данное число является простым числом или составным числом.

2 генерации больших простых чисел

Самый простой способ заключается в случайном порядке искать, например, генерировать 100 больших простых чисел, мы сначала сгенерировать случайную последовательность чисел, а затем с помощью теста на простоту Миллера-Рабина , чтобы проверить это может быть, если не простое число, то случайным образом так цикл продолжается.
Конечно, мы можем использовать случайный метод поиска (полностью отличаются каждый раз , когда он генерирует случайное число), случайный алгоритм поиска увеличиваются (после генерации случайного числа, каждый из которых проходит его 2) может быть использован
на этапе генерирования п-разрядный десятичное большое простое числа следующим образом :

  1. Генерация nслучайных чисел бит pи самый старший бит не может 0,
  2. Если младший бит четное, а затем добавить его , 1чтобы гарантировать , что число является нечетным числом, чтобы сэкономить время
  3. Число тестов может быть 10000простое число (меньшее общее 1228число) делится, так что вы можете быстро устранить многие составное число, чтобы сэкономить время
  4. В это генерирует случайное число с, чтобы в нижней части , чтобы быть испытанием на простоту Миллера-Рабина, если р связан в качестве иллюстрации. Если повторный выбор с помощью теста на р. Выбор должен быть выбран в качестве небольшого прайм - тайм, в целях повышения скорости обработки. После того, как приблизительно в пять раз теста на простоту Миллера-Рабина, точность является относительно высоким2p-1apa
  5. Если pкаждый тест проходит, то , что р является простым числом. В противном случае p←p+2, с повторным тестированием

Большой простой процесс генерации число имеет два ключевых момента, тест на простоту, другое случайное число генерируется. Бывший для обеспечения точности и эффективности, последний должен обеспечивать безопасность, то есть, чтобы создать истинное случайное число

Большинство программ и случайное число (например, C и MATLAB являются) действительно просто псевдослучайным язык. Есть (например, линейной конгруэнтной) с помощью функции можно определить с помощью затравки (например, часы), сгенерированный псевдо-случайное число. Тем не менее, UNIX ядро ​​генератор случайных чисел (/ DEV / случайный), который теоретически может привести к истинным случайным образом. Т.е., генерация случайного чисел, производящая функция независимо друг от друга, или недетерминированные генераторы. Таким образом, в теории, компьютер может генерировать случайные числа статистической значимость.

Ссылка: Open Source библиотеки шифрования Javascript

Последующий

программа Prism

Согласно конфиденциальным документам , предусмотренным Сноуден АНБ бывшего корреспондентом дисплея, NSA с RSA достиг контракт 10 миллионов долларов, бывшего в последней имплантации изъяна в формуле программного обеспечения для шифрования, оставляя «заднюю дверь для себя ". Сообщается , что дефекты программного обеспечения RSA есть формула называется BSAFE, а имя формулы дефекта для двойной эллиптических кривых, разработанный АНБ из него. Содержимое файла отметил, что RSA с 2004 года использует эту формулу изъян в их программном обеспечении.
RSA Security Shi, Ади Шамир и Лен Адлеман в 1982 году, основан изобретатель Рон Ривестом RSA алгоритм, то на 2,1 млрд долларов приобретения корпорации EMC в 2006 году. Алгоритм является наиболее известным из которых является дефект Dual_EC_DRBG, шифровальщики несколько лет назад обнаружил проблему. Алгоритм шифрования можно рассматривать как генератор случайных чисел, но некоторые номера фиксированы, шифровальщики могут осуществляться в качестве мастер - ключа , чтобы прорвать ряд встроенных алгоритмов.

Сам алгоритм RSA не является проблемой, до тех пор, как ваш ключ действительно случайным образом генерируется угадать ключ так же трудно иголку в стоге сена вообще, существующий компьютер, конечно, не может нарушить ваши зашифрованные файлы в цикле замены пароля. Однако, если этот случайный алгоритм является ложным? Если это только ключ, сгенерированный в небольшой коллекции этого? Ваши зашифрованные файлы мгновенно посмотрел на это АНБ делать.

рекомендация

отblog.csdn.net/makenothing/article/details/90318351