Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП - отеты на билеты.docx
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
74.69 Кб
Скачать

5. Метод конструирования простых чисел (теорема Демитко).

Вопрос: Метод конструирования простых чисел на основе теоремы Демитко (с примером).

Источник: Яковлев, Коржик. Гл. 3 «Генерирование ключевых параметров», §3.4.

Теорема Демитко (конструктивный метод генерации простых): если p₀ — простое, R — некоторое натуральное число, и p = 2·R·p₀ + 1, причём выполняются условия:

1) a^(p-1) ≡ 1 (mod p) для некоторого a

2) a^((p-1)/q) ≢ 1 (mod p) для всех простых делителей q числа (p-1)

то p — простое.

Пример:

Возьмём p₀ = 5 (простое), R = 3.

p = 2·3·5 + 1 = 31.

Проверяем: выберем a=3. 3^30 mod 31: по малой теореме Ферма = 1. ✓

Простые делители (p-1)=30: 2, 3, 5.

3^(30/2)=3^15 mod31=... вычисляем: 3^5=243≡243-7·31=243-217=26, 3^10≡26²=676≡676-21·31=676-651=25, 3^15≡25·26=650≡650-20·31=650-620=30≡-1≢1 ✓

3^(30/3)=3^10≡25≢1 ✓; 3^(30/5)=3^6=729≡729-23·31=729-713=16≢1 ✓

Все условия выполнены → p=31 простое.

6. Решение уравнения x²≡a (mod p) при p=4k+1.

Вопрос: Порядок решения уравнения x²≡a (mod p) при p=4k+1. Пример.

Источник: Яковлев, Коржик. Гл. 2 «Теоретико-числовые основы», §2.4.

При p=4k+3 формула проста, но при p=4k+1 (т.е. p≡1 mod 4) нет явной формулы — используется алгоритм Тонелли-Шэнкса (или алгоритм Ципа).

Алгоритм Тонелли-Шэнкса:

1) Представить p-1 = Q·2^S, где Q нечётное.

2) Найти квадратичный невычет n: (n/p) = -1.

3) Инициализировать: M=S, c=n^Q mod p, t=a^Q mod p, R=a^((Q+1)/2) mod p.

4) Цикл: если t=1, вернуть R. Иначе найти наименьшее i: t^(2^i)≡1(mod p). Обновить: b=c^(2^(M-i-1)), R=R·b, t=t·b², c=b², M=i. Повторять.

Пример: p=17 (=4·4+1), a=2.

p-1=16=2^4, Q=1, S=4.

Найдём невычет: 3^8 mod17=6561 mod17. 6561=386·17-1, 3^8≡16≡-1(mod17). Значит n=3.

c=3^1=3, t=2^1=2, R=2^1=2, M=4.

t=2≠1. Найдём i: 2^1=2, 2^2=4, 2^4=16≡-1... Пересчёт: 2^(2^1)=4, 2^(2^2)=16≡-1, 2^(2^3)≡1 → нет... Уточнение: i=1 если t²≡1. 2²=4≠1; i=2: 4²=16≡-1≠1; i=3: 16²=256≡256-15·17=256-255=1. i=3.

b=3^(2^(4-3-1))=3^1=3; R=2·3=6; t=2·9=18≡1; M=3. Теперь t=1 → ответ R=6.

Проверка: 6²=36≡36-2·17=2(mod17) ✓. Второй корень: 17-6=11. 11²=121=7·17+2 ✓.

7. Решение уравнения x²≡a (mod p) при p=4k+3.

Вопрос: Порядок решения уравнения x²≡a (mod p) при p=4k+3. Пример.

Источник: Яковлев, Коржик. Гл. 2, §2.4.

При p≡3(mod4) формула явная: x ≡ ±a^((p+1)/4) (mod p).

Доказательство кратко:

x² ≡ a (mod p). Проверим: (a^((p+1)/4))² = a^((p+1)/2) = a · a^((p-1)/2) = a · 1 = a (по критерию Эйлера, если a — вычет).

Пример: p=11 (=4·2+3), a=3.

Проверяем, что a — вычет: 3^((11-1)/2)=3^5=243≡243-22·11=243-242=1(mod11). Да.

x = 3^((11+1)/4) = 3^3 = 27 ≡ 27-2·11=5 (mod11).

Проверка: 5²=25≡3(mod11) ✓. Второй корень: 11-5=6. 6²=36≡3(mod11) ✓.

Ответ: x ≡ ±5 (mod11), то есть x=5 или x=6.

8. Решение x²≡a (mod n), n=p·q.

Вопрос: Порядок решения уравнения x²≡a (mod n), n=p·q — простые числа.

Источник: Яковлев, Коржик. Гл. 2, §2.4; Гл. 4 «Асимметричные криптосистемы», §4.3.

Используется КТО. Нужно найти x₁: x₁²≡a(mod p) и x₂: x₂²≡a(mod q), затем по КТО найти 4 корня модуля n.

Алгоритм:

1) r₁ = sqrt(a mod p) — два корня ±r₁ по mod p (при p≡3(mod4): r₁=a^((p+1)/4) mod p)

2) r₂ = sqrt(a mod q) — два корня ±r₂ по mod q

3) По КТО восстановить 4 корня из пар (+r₁,+r₂), (+r₁,-r₂), (-r₁,+r₂), (-r₁,-r₂)

Пример: n=77=7·11, a=2.

p=7 (7≡3 mod4): r₁=2^((7+1)/4)=2^2=4(mod7). Проверка: 4²=16≡2(mod7) ✓. Корни по mod7: ±4 → 4 и 3.

q=11 (11≡3 mod4): r₂=2^3=8≡8(mod11). Проверка: 8²=64≡9(mod11)... Пересчёт: 2^((11+1)/4)=2^3=8. 8²=64=5·11+9≢2. Тогда 2 не вычет mod 11? 2^5=32≡10≡-1(mod11). Действительно (2/11)=-1. Значит уравнение x²≡2(mod11) решений не имеет, и x²≡2(mod77) тоже не имеет.

Возьмём a=4: r₁=4^2=16≡2(mod7), r₁=2,5. r₂=4^3=64≡9≡-2(mod11), корни 9 и 2.

Пары: (2,9),(2,2),(5,9),(5,2). По КТО с M=77, M₁=11, M₂=7, y₁=2, y₂=8:

x₁=2·11·2+9·7·8=44+504=548≡548mod77=548-7·77=548-539=9(mod77). Аналогично для остальных.

Итог: уравнение x²≡a(mod n) имеет 4 решения (или 0, если a не вычет по обоим модулям).