[Список тем] [Вступление к этой теме] Страницы темы: [1] [2]
Нахождение обратного вычета - задача постоянно решаемая в системах шифрования с открытым ключем.
Для небольших n в системе обратимых вычетов количество элементов не
значительно, и перемножая их попарно можно сравнительно легко для каждого
вычета найти обратный.
Пример: n = 18. Система обратимых вычетов {1, 5, 7, 11, 13, 17}.
1*1=1 ≡ 1 (mod 18).
5*5=25 ≡ 7 (mod 18); 5*7=35 ≡ 17 (mod 18); 5*11=55 ≡ 1 (mod 18).
7*7=49 ≡ 13 (mod 18); 7*13=91 ≡ 1 (mod 18).
17*17=289 ≡ 1 (mod 18).
Обратны самим себе 1 и 17, взаимно обратны 5 и 11, 7 и 13.
Найти b=a-1 можно легко, если для модуля n имеется таблица умножения. На пересечении строки и столбца будет 1 только для взаимно обратных вычетов, стоящих в заголовке таблицы /в верхней строке и крайнем левом столбце/. Пример: n = 5
* | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 2 | 3 | 4 |
2 | 0 | 2 | 4 | 1 | 3 |
3 | 0 | 3 | 1 | 4 | 2 |
4 | 0 | 4 | 3 | 2 | 1 |
1-1 = 1. 2-1 = 3, 3-1 = 2, 4-1 = 4 (mod 5).
ax≡ 1 (mod n) означает, что существует y, такое, что ax = 1 + ny. Такое уравнение в целых числах называется Диафантовым, а метод его решения - алгоритмом Евклида.
На каждом шаге решения необходимо:
Пример: a=5; n=18.
5x ≡ 1 (mod 18) означает 5x = 1 + 18y.
Где 18y=15y+3y
x = 3y + ((3y+1)/5). Обозначим дробную часть
выражения новой целой переменной z. ((3y+1)/5)=z
→ x = 3y + z.
Предыдущую переменную выражаем через последующую.
3y+1 = 5z. Исключаем целую часть y = (5z - 1)/3
= z + ((2z-1)/3. Дробную часть обозначаем переменной t.
(2z-1)/3 = t → y = z +
t.
Выражаем z через t.
2z-1 = 3t → z = (3t + 1)/2.
Исключаем целую часть z = t+(t+1)/2. Дробную
часть обозначаем переменной u. (t+1)/2 = u
→ z = t+u.
Выражаем t через u.
(t+1) = 2u → t = 2u -1. Дробной части нет.
Выражаем все переменные через последнюю:
t = 2u -1
z = t+u = 2u -1 + u = 3u -1
y = z + t = 3u -1 + 2u -1 = 5u -2
x = 3y + z = 3*(5u -2) + 3u -1 = 18u - 7
Все переменные - целые. 18u кратно модулю и на результат не влияет.
x ≡ -7 ≡ 11 (mod 18).
Проверка 5*11= 55 = 54+1 ≡ 1 (mod 18).
Определение |
---|
Классы вычетов по модулю n, элементы которых взаимно просты с n, называется приведенными классами Z*n, |
любая система чисел, взятых по одному из каждого приведенного класса, называется приведенной системой вычетов. |
Приведенная система вычетов состоит из φ(n) элементов, где φ(n) = |Z*n| - функция Эйлера, указывающая количество чисел в множестве 1, ... , n-1, взаимно простых с n.
Теорема Эйлера. |
---|
Если а и n взаимно просты, то aφ(n) ≡ 1 (mod n). |
Если n = p- простое число, то φ(p) = p-1
Малая теорема Ферма |
---|
aφ(p)-1 ≡ 1 (mod p). |
[Список тем] [Вступление к этой теме] Страницы темы: [1] [2]