Розширений алгоритм Евклида.

Конгруенції за модулем.

Модульна арифметика

 

Лишки за модулем .

Кожне ціле число можна розділити з остачею на натуральне число : , < .

Остача від ділення числа на називається лишком (у даному випадку - лишком числа за модулем ). Операція, що співставляє числу його лишок за модулем , називається зведенням за модулем .

Означення.Два цілих числа і конгруентні за модулем , якщо їхня різниця ділиться на .

Відношення конгруентності записується у виді: , , . Замість знака конгруенції часто використовується знак рівності. Числа, що мають однакові остачі від ділення на , конгруентні за модулем .

Стандартні значення лишків за модулем , належать множині (т.зв. система найменших додатних лишків).

Лишок суми за модулем дорівнює сумі лишків, зведеної, якщо необхідно, ще раз за модулем . Аналогічною властивістю володіє лишок добутку.

Відношення конгруентності дозволяє розбити множину цілих чисел на класи. Елементи одного класу мають однакові лишки за модулем . Очевидно, класи не перерізаються. Кожному класу відповідає один найменший додатний лишок і навпаки.

Лишок суми або добутку за модулем елементів і не залежить від вибору цих елементів, а залежить лише від вибору класів і .

Можна побудувати кільце, елементами якого є класи лишків, а операції виконуються через дії над відповідними найменшими додатними лишками.

Наприклад, якщо , то клас, що містить , є множиною виду . Оскільки множина цілих чисел є кільцем, то наша відповідність між класами і лишками є гомоморфізмом кілець. Образ цього гомоморфізму (кільце класів лишків за модулем ) називається фактором-кільцем кільця цілих чисел за модулем і звичайно позначається . Зауважимо, що нулем у кільці лишків у кільці є клас .

При зашифруванні інформації використовуються взаємно однозначні перетворення даних. Для перебування зворотних елементів у кільці можна використовувати т.зв. розширений алгоритм Евкліда.

 

 

Цей алгоритм призначений для пошуку целочисленного розвязку , , рівняння , > , , де і також цілі.

Розглянемо схему розширеного алгоритму Евклида на прикладі чисел 15 і 25. Ми будемо знаходити залишки і (неповні) частки від розподілу двох чисел, тобто користуватися рівностями виду , де всі числа цілі і < .

Оскільки повиннео виконуватися нерівність > , те змінимо позначення: , .

Випишемо послідовність рядків:

 

( , ).

Пояснення. Ділимо на з остачею. Одержуємо: тобто , відкіля , . Перевіряємо: ? Ні – працюємо далі. Обчислюємо : . Формуємо черговий рядок: .

Вихідними даними для кроку 2 будуть рядки (з попереднього кроку) і . З цими рядками діємо аналогічно.

Якщо чергова остача від ділення дорівнює 0, виписуємо розвязок з даних попереднього кроку (див. нижче).

( , )

( , ).

При формуванні чергового рядка, остачу , виписуємо рішення з даних попереднього кроку:

НОД , , НОД .