Опубликован: 19.01.2010 | Уровень: специалист | Доступ: свободно
Лекция 13:

Квадратичное сравнение

< Лекция 12 || Лекция 13: 1234 || Лекция 14 >

13.3. Рекомендованная литература

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

Книги

[Ros06] [Cou99], [BW00] и [Bla03] — для тем, которые обсуждаются в этой лекции.

Сайты

Нижеследующие сайты дают больше информации о темах, обсужденных в этой лекции.

13.4. Итоги

  • Положительные целые числа могут быть разделены на три группы: число 1, простые числа и составные объекты. Положительное целое число — простое число, такое и только такое, если оно точно делится без остатка на два различных целых числа, а именно на 1 и непосредственно само на себя. Составной объект — положительное целое число по крайней мере с двумя делителями.
  • Эйлеровская phi -функция \varphi (n), которую иногда называют функцией-тотиентом Эйлера, играет очень важную роль в криптографии. Функция указывает число целых чисел, которые меньше чем n и являются взаимно простыми с n.
  • В таблице 13.6 показаны малая теорема Ферма и теорема Эйлера, которые рассмотрены в этой лекции.
    Таблица 13.6. Малая теорема Ферма и теорема Эйлера
    Ферма Первая версия : Если НОД(a,p) = 1, то ap-1 \equiv 1(mod p)
    Вторая версия: ap \equiv a(mod p)
    Эйлер Первая версия: Если НОД(a,n) = 1, то a \phi (n) \equiv 1 (mod p)
    Вторая версия: Если n= p x q и a < n, то a>kx \phi (n)+1 \equiv a(mod n)
  • Чтобы получить большое простое число, мы выбираем большое случайное число и проверяем его — убеждаемся, что оно простое. Алгоритмы, которые решают эту проблему, могут быть разделены на две обширные категории: детерминированные алгоритмы и вероятностные алгоритмы. Некоторые вероятностные алгоритмы для испытания простоты чисел – это испытание Ферма, испытание квадратного корня и испытание Миллера-Рабина. Некоторые детерминированные алгоритмы — испытание на делимости и AKS-алгоритм.
  • Согласно основной теореме арифметики, любое положительное целое число, большее, чем 1, может быть разложено на множители в виде простых чисел. Мы рассмотрели несколько методов разложения на множители, включая проверку делением — Ферма, метод Полларда p – 1, метод РО ( \rho ) Полларда, квадратичное решето и решето поля чисел.
  • Китайская теорема об остатках (Chinese Reminder Theorem — CRT) используется, чтобы решить систему уравнений для вычетов с одной переменной, но с различными взаимно простыми модулями.
  • Мы рассмотрели решение квадратичного сравнения по модулю в виде простого числа и квадратичного сравнения по составному модулю. Однако, если модуль является большим, решение квадратичного сравнения по сложности совпадает с разложением модуля на множители.
  • В криптографии применяется операция по модулю — возведение в степень. Для быстрого возведения в степень можно использовать метод "возведения в квадрат и умножения". Криптография также включает модульные логарифмы. Если возведение в степень применяется, чтобы зашифровать или расшифровывать информацию, то противник может использовать логарифмы для организации "атаки". Сложность операции, обратной возведению в степень, велика. Хотя возведение в степень может быть сделано с помощью быстрого алгоритма, применение модульного логарифма для больших значений модуля имеет ту же сложность, что и проблема разложения на множители.

13.5. Набор для практики

Обзорные вопросы

  1. Объясните разницу между простым числом и составным целым числом.
  2. Определите взаимно простые числа и их свойства.
  3. Определите следующие функции и их приложения:
    • \pi (n) функция
    • Функция (тотиент) Эйлера
  4. Объясните "решето Эратосфена" и его приложения.
  5. Определите малую теорему Ферма и объяснить ее приложения.
  6. Определите теорему Эйлера и объясните ее приложения.
  7. Что такое простые числа Мерсенны? Что такое простые числа Ферма?
  8. Объясните разницу между детерминированными и вероятностными алгоритмами для определения простых чисел.
  9. Перечислите некоторые алгоритмы для разложения на множители простых чисел.
  10. Определите Китайскую теорему об остатках и ее приложения.
  11. Определите квадратичное сравнение и важность вычетов (QRs) и невычетов (QNRs) в решении квадратных уравнений.
  12. Определите дискретные логарифмы и объяснить их важность в решении логарифмических уравнений.

Упражнения

  1. Используя аппроксимацию, найдите:
    • число простых чисел между 100 000 и 200 000.
    • число составных целых чисел между 100 000 и 200 000
    • отношение простых чисел к составным в вышеупомянутом диапазоне и сравните это с тем же самым между 1 – 10.
  2. Найти наибольший простой сомножитель следующих составных целых чисел: 100, 1000, 10 000, 100 000 и 1 000 000. Также найти наибольший простой сомножитель 101, 1001, 10 001, 100 001 и 1 000 01.
  3. Покажите, что каждое простое число может быть представлено в форме либо 4k + 1, либо 4k + 3, где k — положительное целое число.
  4. Найдите некоторые простые числа в форме 5k + 1, 5k + 2, 5 k + 3 и 5k + 4, где k: является положительным целым числом.
  5. Найдите значение \varphi (29), \varphi (32), \varphi (80)
, \varphi (100), \varphi (101)
  6. Покажите, что 224 – 1 и 216 – 1 – составные числа. Подсказка: используйте выражение (a2 – b2).
  7. Есть предположение, что каждое целое число, большее, чем 2, может быть представлено как сумма двух простых чисел. Проверьте это предположение для 10, 24, 28 и 100.
  8. Есть предположение, что есть много простых чисел в форме n2 + 1. Найдите некоторые из них.
  9. Найдите результаты после использования малой теоремы Ферма:
    • 515 mod 13
    • 1518 mod 17
    • 45617 mod 17
    • 145 mod 101
  10. Найдите, используя Малую теорему Ферма, результаты выражений, приведенных ниже:
    • 5-1 mod 13
    • 15-1 mod 17
    • 27-l mod 41
    • 70-1 mod 101

    Обратите внимание, что все модули — простые числа.

  11. Найдите, используя теорему Эйлера, результаты выражений, приведенных ниже:
    • 12-1 mod 77
    • 16-1 mod 323
    • 20-1 mod 403
    • 44-1 mod 667

    Обратите внимание, что 77 = 7 \times 11, 323 = 17 \times 19, 403 = 31 \times 13 и 667 = 23 \times 29.

  12. Определите, являются ли следующие числа Мерсенны простыми числами: М23, М29 и М31. Подсказка: любой делитель числа Мерсенны имеет форму 2kp + 1.
  13. Приведите некоторые примеры, чтобы показать, что если 2n – 1 — простое число, то n — простое число. Этот факт может использоваться для проверки на простоту? Объясните, как.
  14. Определите, сколько из следующих целых чисел пройдут испытание Ферма на простоту чисел: 100, 110, 130, 150, 200, 250, 271, 341, 561. Используйте основание 2.
  15. Определите, сколько из следующих целых чисел пройдут испытание Миллера-Рабина на простоту чисел: 100, 109, 201, 271, 341, 349. Используйте основание 2.
  16. Используйте рекомендованное испытание, чтобы определить, является ли любое из следующих целых чисел простым числом: 271, 3149, 9673.
  17. Используйте a = 2, x = 3 и несколько простых чисел, чтобы показать, что если p — простое число, то выполняется следующее сравнение: (x – a) p = (xp – a) (mod p).
  18. Говорят, что n -ное простое число может быть приближенно вычислено как pn = n ln n. Проверьте это на нескольких простых числах.
  19. Найдите значение x для следующих наборов сравнений, используя китайскую теорему об остатках.
    • x \equiv 2\bmod {\text{ }}7, и x \equiv 3\bmod {\text{ }}9
    • x \equiv 4\bmod {\text{ }}5, и x \equiv 10\bmod {\text{ }}11
    • x \equiv 7\bmod {\text{ }}13, и x \equiv 11\bmod {\text{ }}12
  20. Найдите весь QRs и QNRs в Z13*, Z17* и Z23*.
  21. Используя квадратичные вычеты, решите следующие сравнения:
    • {x^2} \equiv 4\bmod {\text{ }}7
    • {x^2} \equiv 5\bmod {\text{ }}11
    • {x^2} \equiv 7\bmod {\text{ }}13
    • {x^2} \equiv 12\bmod {\text{ }}17
  22. Используя квадратичные вычеты, решите следующие сравнения:
    • {x^2} \equiv 4\bmod {\text{ }}14
    • {x^2} \equiv 5\bmod {\text{ }}10
    • {x^2} \equiv 7\bmod {\text{ }}33
    • {x^2} \equiv 12\bmod {\text{ }}34
  23. Найдите результаты приведенных ниже выражений, используя метод "возведения в квадрат и умножения".
    • 2124 mod 8
    • 32023 mod 461
    • 173641 mod 2134
    • 200135 mod 2000
  24. Для группы G = \<{Z_{19^*}}, \times \>:
    • Найдите порядок группы
    • Найдите порядок каждого элемента в группе
    • Найдите число первообразных корней в группе
    • Найдите первообразные корни в группе
    • Покажите, что группа является циклической
    • Составьте таблицу дискретных логарифмов
  25. Используя свойства дискретных логарифмов, покажите, как решить сравнения:
    • {x^5} \equiv 11\bmod {\text{ }}17
    • 2{x^{11}} \equiv 22\bmod {\text{ }}19
    • 5{x^{12}} + 6x \equiv 8\bmod {\text{ }}23
  26. Пусть мы имеем компьютер, выполняющий операции со скоростью 1 миллион бит в секунду. Вы хотите затратить только 1 час на испытание простоты чисел. Какое наибольшее число вы можете проверить, используя следующие методы, проверяющие простоту чисел?
    • теория делимости
    • AKS-алгоритм
    • Ферма
    • извлечением квадратного корня
    • Миллера-Рабина
  27. Пусть мы имеем компьютер, выполняющий операции со скоростью 1 миллион бит в секунду. Вы хотите потратить только 1 час на разложение составного целого числа. Какое наибольшее число вы можете разложить на множители, используя следующие методы разложения на множители?
    • проверка делением
    • Ферма
    • Полларда (РО)
    • квадратичное решето
    • решето поля чисел
  28. Метод "возведения в квадрат и умножения" — быстрый алгоритм возведения в степень — позволяет нам останавливать программу, если значение основания становится равным 1. Измените алгоритм 13.1, чтобы показать это.
  29. Перепишите алгоритм 13.1, чтобы проверить биты в порядке от самого старшего к самому младшему.
  30. Метод "возведения в квадрат и умножения" — быстрый алгоритм возведения в степень — может также быть спроектирован для проверки, является ли число четным или нечетным, вместо того чтобы проверять его разряды. Перепишите алгоритм 13.1, чтобы показать это.
  31. Напишите алгоритм в псевдокоде для испытания простоты чисел по методу Ферма.
  32. Напишите алгоритм в псевдокоде для испытания простоты чисел методом извлечения квадратного корня.
  33. Напишите алгоритм в псевдокоде для китайской теоремы об остатках.
  34. Напишите алгоритм в псевдокоде, чтобы найти вычет (QR) и невычет (QNR) для любого Zp*.
  35. Напишите алгоритм в псевдокоде для нахождения первообразного корня для множества Zp*.
  36. Напишите алгоритм в псевдокоде, чтобы найти все первообразные корни для множества Zp*.
  37. Напишите алгоритм, чтобы найти и хранить дискретные логарифмы для множества Zp*.
< Лекция 12 || Лекция 13: 1234 || Лекция 14 >
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Дмитрий Жерлицын
Дмитрий Жерлицын
Украина, г. Донецк, Донецкий национальный университет, 2012