
- •Національний університет "львівська політехніка"
- •Лабораторна робота №1
- •Лабораторна робота №2
- •Лабораторна робота №3
- •Лабораторна робота №4
- •2. Обчислити значення . Лабораторна робота №5
- •Лабораторна робота №6
- •Лабораторна робота №7
- •Лабораторна робота №8
- •Лабораторна робота №9
- •Лабораторна робота №10
- •Лабораторна робота №11
- •Лабораторна робота №12
- •Лабораторна робота №13
- •Лабораторна робота №14
- •Лабораторна робота №15
- •Лабораторна робота №16
- •Лабораторна робота №17
- •Лабораторна робота №18
Лабораторна робота №10
Тема:Визначення псевдопростих чисел Ейлера
Мета: Навчитися визначати псевдопрості числа Ейлера
Теоретичні відомості.
Критерій Ейлера
стверджує, що якщо п
- непарне просте число, то для всіх
виконується конгруенція
.
Непарне п,
котре задовольняє цю конгруенцію, але
не є простим, називається псевдопростим
числом Ейлера за основою х.
Завдання.
1. Програмно реалізувати визначення псевдопростих Ейлера.
2. Визначити будь-які два псевдопрості числа Ейлера.
Лабораторна робота №11
Тема:Тест простоти Міллера-Рабіна
Мета: Навчитися використовувати ймовірнісний тест простоти Міллера-Рабіна
Теоретичні відомості.
Тест
Міллера-Рабіна ймовірнісний і є формальним
підсиленням тесту Соловея-Штрассена
із вдвічі кращою оцінкою помилки.
Розглянемо сам тест: Вхід: п - непарне
натуральне число,
.
Вибрати випадкове х таке, що 1 <х<п.
Якщо НСД(х, п) 1, то зупинитись з резолюцією "п складене", інакше продовжувати.
Обчислити
.
Якщо
, то зупинитись з резолюцією "просте", інакше продовжувати.
Обчислювати
, доки не виявиться, що
Якщо
, то зупинитись з резолюцією "складене", а якщо
, то зупинитись з резолюцією "просте".
Завдання.
Програмно реалізувати алгоритм Міллера-Рабіна.
Знайти всі прості числа на відрізку [800;900].
Лабораторна робота №12
Тема: Генерування випадкового простого числа заданого порядку
Мета: Навчитися генерувати прості числа заданого порядку
Теоретичні відомості.
Вибирається випадкове натуральне число п заданого порядку. Далі перебираються числа п+1, п+2, п+3 і т.д., кожне з яких випробовується обраним тестом простоти. Цей процес продовжується поки чергове число n+m не витримає тест. Воно й береться в якості шуканого простого.
Завдання.
Програмно реалізувати алгоритм генерування простого числа заданого порядку.
Згенерувати випадкове просте число дванадцятого порядку.
Лабораторна робота №13
Тема: Добування квадратного кореня за простим модулем
Мета: Навчитися добувати квадратний корінь за простим модулем
Теоретичні відомості.
З означення квадратного кореня його значення у існує лише тоді, коли х - квадратичний лишок за модулем р, а оскільки квадратичність за простим модулем розпізнається ефективно, то можемо обмежитись згаданим випадком (х -квадратичний лишок за модулем р). У наступних двох часткових випадках задача розв'язується детермінованим чином.
Випадок 1: р=4m+3.
Значення
y шукаємо за формулою
.
Випадок 2: p=8m+5.
Обчислюємо
значення
.
Якщо отримуємо значення 1, то
.
В іншому випадку (отримується значення
-1), то
.
Завдання.
1. Програмно реалізувати алгоритм добування квадратного кореня за простим модулем.
2. Обчислити
.
Лабораторна робота №14
Тема: Добування квадратного кореня за модулем n=pq
Мета: Навчитися добувати квадратний корінь за модулем n=pq
Теоретичні відомості.
Нехай n=pq
є добутком
двох різних непарних простих чисел.
Припустимо, що
число х
взаємно просте з п,
і позначимо
,
.
Тоді мають місце такі факти.
1) Якщо у задовільняє конгруенцію
(1)
то лишки
,
(2)
задовільняють конгруенції
,
(3).
Навпаки, якщо у1 та у2 задовільняють конгруенцію (3), то кожне у, що задовільняє (2), задовільняє також і (1).
х є квадратичним лишком за модулем п тоді і лише тоді, коли х є квадратичним лишком за кожним з модулів р і q.
Якщо х є квадратичним лишком за модулем п, то конгруенція (1) має в рівно 4 різних розв'язки: у з лишками
, -y з лишками
, у' з лишками
, та -у' з лишками
.
Згідно цього твердження, для того, щоб розв'язати поставлену задачу (розв'язати конгруенцію (1)), потрібно перейти від модуля п до модулів р і q. Отже, задача розпізнавання квадратичності та добування квадратного кореня за модулем n=pq зводиться до факторизації чисел виду n=pq.
Коли нам стають відомі числа
р
та q,
ми можемо діяти
наступним чином. Слід
розв'язати обидві конгруенції (3) за
допомогою алгоритму добування квадратного
кореня за простим модулем, отримавши в
результаті y1
і у2.
Після цього
квадратний корінь у
визначається з умов (2) і Китайської
теореми про остачі
,
де u1 i
u2
ефективно знаходяться
з
за допомогою розширеного алгоритму
Евкліда.
Завдання.
1. Програмно реалізувати алгоритм добування квадратного кореня за модулем п = pq .
2. Обчислити
.