- Китайская теорема об остатках
-
Несколько связанных утверждений известны под именем китайской теоремы об остатках. Эта теорема в её арифметической формулировке была описана в трактате китайского математика Сунь Цзы «Сунь Цзы Суань Цзин» (кит. упр. 孙子算经, пиньинь: sunzi suanjing), предположительно датируемом третьим веком н.э. и затем была обобщена Цинь Цзюшао в его книге "Математические рассуждения в 9 главах" датируемой 1247 годом, где было приведено точное решение.[1]
Если натуральные числа
попарно взаимно просты, то для любых целых
таких, что
при всех
, найдётся число
, которое при делении на
даёт остаток
при всех
. Более того, если найдутся два таких числа
и
, то
.
Содержание
Доказательства
Метод математической индукции по n
Воспользуемся методом математической индукции. При
утверждение теоремы очевидно. Пусть теорема справедлива при
, т. е. существует число
, дающее остаток
при делении на
при
. Обозначим
и рассмотрим числа
. Покажем, что хотя бы одно из этих чисел даёт остаток
при делении на
. Допустим это не так. Поскольку количество чисел равно
, а возможных остатков при делении этих чисел на
может быть не более чем
(ведь ни одно число не даёт остаток
), то среди них найдутся два числа, имеющих равные остатки (принцип ящиков Дирихле). Пусть это числа
и
при
,
и
. Тогда их разность
делится на
, что невозможно, т. к.
и
взаимно просто с
, ибо числа
попарно взаимно просты (по условию). Противоречие.
Таким образом, среди рассматриваемых чисел найдётся число
, которое при делении на
даёт остаток
. В то же время при делении на
число
даёт остатки
соответственно.
Докажем теперь, что
. В самом деле
, то есть
. Так как все
взаимно просты, то
делится на их произведение. ■
Конструктивный метод доказательства
Описанное ниже доказательство теоремы помогает решить практически важную задачу - поиск решения системы линейных уравнений по модулю.[2] Рассмотрим систему уравнений:
(1) Если наборы
и
удовлетворяют условию теоремы, то решение системы (1) существует и единственно с точностью до операции взятия по модулю
, где
. Причем справедлива формула:[2][3][4]
, где
, а
(2) Покажем, что определенный таким образом
является решением - проверим,что для него выполняется i-ое равенство в системе[3]:
Второе равенство справедливо т.к.
при всех i ≠ j, третье т.к.
является обратным для
по модулю
. Повторяя рассуждения для всех i убедимся, что
, определенный формулой (2) является решением для (1).
В силу выбранного числавсе числа
будут удовлетворять системе.
Покажем теперь, что среди чисел(множество
) не найдется другого решения кроме найденного нами ранее. Проведем доказательство этого факта от противного. Предположим, что получилось найти хотя бы два решения
для некоторого набора остатков
. Так как множество
всех допустимых наборов
является равномощным множеству
, то для
и
выполнено
. Однако, по доказанному ранее, для любого набора из
существует решение из
, следовательно по принципу Дирихле найдутся как минимум 2 набора остатков, которым соответствует одно и то же
. Для такого
найдется
такое, что
,
и
≠
противоречие.[5] ■
Замечания
Из доказанного выше, следует, что существует взаимно однозначное соответствие между вектором остатков из
и числом из множества
для любого набора
, что означает, что отображение
на
заданное (2) является биективным.[5] ■
Заметим также, что кроме соответствия
;
;
Битовая сложность перехода от вектора остатков к числу оценивается как
, где k - длина восстанавливаемого числа в битах.[8]
Алгоритмы поиска решений
Приведем ниже алгоритмы решения задачи, которая ставится в теореме - восстановление числа
по набору его остатков от деления на некоторые заданные взаимно простые числа
.
Элементарная алгебра
Как пример, рассмотрим систему:
Для решения системы, выпишем отдельно решения первого, второго и третьего уравнений (достаточно выписать решения не превосходящие 2×3×7 = 42):
Очевидно, что множество решений системы будет пересечение представленных выше множеств. По утверждению теоремы решение существует и единственно с точностью до операции взятия по модулю
. В нашем случае :
или
Для того, чтобы продемонстрировать другой путь, переформулируем задачу. Найдем тройку чисел (u, v, w), таких, что:
Подставив x из первого уравнения во второе получим:
, тогда
, или
, или
подставив затем x из первого уравнения в третье с учетом выражения для
получим
или
, тогда
Тогда
;
Алгоритм на основе КТО
Алгоритм сводится к поиску решений по формуле, данной в теореме[9].
Шаг 1. Вычисляем
Шаг 2. Для всех
находим
Шаг 3. Находим
например используя расширенный алгоритм Евклида
Шаг 4. Вычисляем искомое значение по формуле
, где
Алгоритм Гарнера
Рассмотрим набор модулей
, удовлетворяющих условию теоремы. Другой теоремой из теории чисел утверждается, что любое число 0 ≤
<
однозначно представимо в виде[10]:
.
Вычислив по порядку все коэффициенты
для
мы сможем подставить их в формулу и найти искомое решение[11]:
Обозначим через
и рассмотрим выражение для
по модулю
, где
получим:
;
;
;
;
;
Алгоритм нахождения коэффициентов
для наглядности продемонстрируем кодом в предположении, что массивы int[ ] a, int[ ] remainders и двумерный массив обратных элементов int[ ][ ] inverses, уже инициализованы нужными значениями.
for (int i = 0; i < n; i ++) { x[i] = remainders[i]; for (int j = 0; j < i; j ++ ) { x[i] = inverses[j][i] * (x[i] - x[j]); x[i] = x[i] % a[i]; if (x[i] < 0) x[i] += a[i]; } }
Сложность вычисления коэффициентов
для данного алгоритма
. Такая же сложность и восстановления искомого числа по найденным коэффициентам.
Вариации и обобщения
Формулировка для колец
Пусть
— коммутативные кольца с единицей,
сюръективные гомоморфизмы, обладающие свойством
для всех
. Тогда гомоморфизм
, заданный формулой
является сюръективным. Более того,
определяет изоморфизм
.
Если положить
и определить гомоморфизмы следующим образом
то мы получим арифметическую версию теоремы.
Также часто встречается следующая эквивалентная формулировка для колец, где
имеют форму
,
являются естественными проекциями на
и требуется, чтобы
для любых
.
Применения
Китайская теорема об остатках широко применяется в теории чисел, криптографии и других дисциплинах.
- Взаимно однозначное соответствие между некоторым числом и набором его остатков, определяемым набором взаимно простых чисел, существование которого утверждается в теореме, на практике помогает работать не с длинными числами, а с наборами их коротких по длине остатков. Кроме того вычисления по каждому из модулей можно выполнять параллельно. [12]. Если в качестве базиса взять к примеру первые 500 простых чисел, длина каждого из которых не превосходит 12 бит, то этого хватит для представления десятичных чисел длины 1519 знаков. (Откуда взялось число 1519 понять очень просто: сумма десятичных логарифмов первых 500 простых чисел есть 1519.746…).
Например, в алгоритме RSA вычисления производятся по модулю очень большого числа n, представимого в виде произведения двух больших простых чисел. КТО позволяет перейти к вычислениям по модулю этих простых делителей которые по величине уже порядка корня из n, а значит имеют в два раза меньшую битовую длину. [13]
Отметим также, что применение вычислений согласно КТО делает алгоритм RSA восприимчивым к атакам по времени[14]
- На теореме основаны Схема Асмута — Блума и Схема Миньотта пороговые схемы разделения секрета в группе участников - секрет могут узнать только k из n участников объединив свои ключи.[15]
- Одним из применения является быстрое преобразование Фурье на основе простых чисел[16]
- Теорема лежит в основе принципа Хассе поиска целочисленных корней уравнения. [17]
- Из теоремы следует мультипликативность функции Эйлера.
- На теореме основывается Алгоритм Полига — Хеллмана нахождения дискретного логарифма за полиномиальное время для чисел имеющих специальный вид.[18]
- Теорема имеет множество применений в шифровании и дешифровании в криптографических системах, например, в криптосистеме Рабина или в шифре Виженера.[19]
Примечания
- ↑ Ишмухаметов, 2011, p. 36
- ↑ 1 2 Нестеренко, 2011, p. 19
- ↑ 1 2 Габидулин, 2011, p. 229
- ↑ Осипов Н.Н., 2008, p. 80
- ↑ 1 2 Осипов Н.Н., 2008, p. 19
- ↑ Габидудин, 2011, p. 230
- ↑ Шнаер, 2004, p. 249
- ↑ Габидудин, 2011, p. 229
- ↑ Нестеренко, 2011, p. 20
- ↑ Нестеренко, 2011, Теорема 2.4, p. 21
- ↑ Нестеренко, 2011, p. 22
- ↑ Переславцев, 2009, Вестник ТГУ, 2009. — № 4
- ↑ Шнаер, 2004, p. 250
- ↑ Ян Сонг Й, 2011, 8.4
- ↑ Модульное разделение секрета и системы электронного голосования
- ↑ R. Tolimieri FFT Algorithms
- ↑ Otmar Venjakob p-adic Numbers and the Hasse Principle
- ↑ Василенко, 2003, с. 130-131
- ↑ М. П. Минеев, В. Н. Чубариков об одном применении китайской теоремы об остатках к шифру Виженера (2010)
Литература
- С. Ленг Алгебра. — М.: Мир, 1968. — С. 82—83.
- Габидулин Э. М., Кшевецкий А. С.б Колыбельников А. И. Защита информации: учебное пособие. — М.: МФТИ, 2011. — 262 с. — ISBN 5-7417-0377-9
- Н.Смарт Криптография. — 2005. — 528 с.
- Осипов Н.Н. Теория чисел. — 2008. — С. 117.
- Нестеренко А Введение в современную криптографию.Теоретико-числовые алгоритмы. — 2011. — 190 с.
- Ишмухаметов Ш.Т. Методы факторизации натуральных чисел. — 2011. — 202 с.
- Переславцев О.Н. Распараллеливание алгоритмов с применением китайской теоремы об остатках. — Вестник ТГУ, 2009. — № 4. — ISSN 1810-0198.
- Фергюсон, Нильс, Шнаер, Брюс Практическая криптография. — М.: Вильямс, 2004. — 432 с. — ISBN 5-8459-0733-0
- Ян Сонг Й Криптоанализ RSA. — 2011. — 312 с. — ISBN 978-5-93972-873-7
- Шенец Н.Н. Модульное разделение секрета и системы электронного голосования. — Вестник БГУ, 2011. — № 1.
- О. Н. Василенко Теоретико-числовые алгоритмы в криптографии. — М.: МЦНМО, 2003. — 328 с. — 1000 экз. — ISBN 5-94057-103-4
Ссылки
- Осипов Н.Н., Теория чисел (2008)
- Шенец Н.Н.,Модульное разделение секрета и системы электронного голосования(2011)
- Ишухаметов Ш.Т.,Методы факторизации натуральных чисел(2011)
- Нестеренко , Введение в современную криптографию Теоретико-числовые алгоритмы (2011)
- М. П. Минеев, В. Н. Чубариков об одном применении китайской теоремы об остатках к шифру Виженера (2010)
Эта статья выставлена на рецензию.
Пожалуйста, выскажите своё мнение о ней на подстранице рецензии.Категории:- Теория чисел
- Теоремы
- Криптография
Wikimedia Foundation. 2010.