Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В математике , в частности , в области теории чисел , в модульном мультипликативном обратном А.Н. целого представляет собой целое число х , что произведение ах является конгруэнтно 1 по отношению к модулю м . [1] В стандартных обозначениях модулярной арифметики это сравнение записывается как

что является сокращенным способом записать утверждение, что m делит (поровну) величину ax - 1 , или, другими словами, остаток после деления ax на целое число m равен 1. Если a имеет обратный по модулю m, существует бесконечное число решений этого сравнения, образующих класс сравнения по этому модулю. Более того, любое целое число, которое конгруэнтно a (т. Е. В классе конгруэнтности a ), будет иметь любой элемент класса конгруэнтности x как модульный мультипликативный обратный. Используя обозначение, чтобы указать класс конгруэнтности, содержащийw , это можно выразить, сказав, что мультипликативный обратный по модулю класс конгруэнции класс конгруэнции такой, что:

где символ обозначает умножение классов эквивалентности по модулю m . [2] Написанная таким образом аналогия с обычной концепцией мультипликативного обратного в множестве рациональных или действительных чисел четко представлена, заменяя числа классами сравнения и соответствующим образом изменяя бинарную операцию .

Как и в случае аналогичной операции с действительными числами, основное использование этой операции заключается в решении, когда это возможно, линейных сравнений вида

Нахождение модульных мультипликативных инверсий также имеет практическое применение в области криптографии , то есть криптографии с открытым ключом и алгоритма RSA. [3] [4] [5] Преимуществом компьютерной реализации этих приложений является то, что существует очень быстрый алгоритм ( расширенный алгоритм Евклида ), который можно использовать для вычисления модульных мультипликативных обратных величин.

Модульная арифметика [ править ]

Для данного положительного целого числа m два целых числа a и b называются конгруэнтными по модулю m, если m делит их разность. Это бинарное отношение обозначается как,

Это отношение эквивалентности на множестве целых чисел, , а классы эквивалентности называются классы конгруэнтных по модулю т или классы вычетов по модулю т . Обозначим через класс сравнения, содержащий целое число a , [6], тогда

Линейная конгруэнтность представляет собой модульное конгруэнтность формы

В отличие от линейных уравнений над вещественными числами, линейные сравнения могут иметь ноль, одно или несколько решений. Если x - решение линейной конгруэнции, то каждый элемент в также является решением, поэтому, говоря о количестве решений линейной конгруэнции, мы имеем в виду количество различных классов конгруэнции, которые содержат решения.

Если d является наибольшим общим делителем из и т то линейное сравнение ахЬ ( по модулю т ) имеет решение , если и только если г делит б . Если d делит b , то существует ровно d решений. [7]

Модульное мультипликативное обратное целое число a по модулю m является решением линейного сравнения

Предыдущий результат говорит, что решение существует тогда и только тогда, когда gcd ( a , m ) = 1 , то есть a и m должны быть взаимно простыми (т.е. взаимно простыми). Более того, когда это условие выполняется, существует ровно одно решение, т. Е. Когда оно существует, модульный мультипликативный обратный элемент единственен. [8]

Когда ax ≡ 1 (mod m ) имеет решение, его часто обозначают так -

но это злоупотребление нотации , поскольку модульным мультипликативного обратного представляет собой целое число , и -1 не является целым числом , когда представляет собой целое число , отличное от 1 или - 1. Запись будет правильным , если интерпретируется как лексемы, обозначающие класс конгруэнции , поскольку мультипликативный обратный класс конгруэнции является классом конгруэнции с умножением, определенным в следующем разделе.

Целые числа по модулю m [ править ]

Отношение сравнения по модулю m разбивает множество целых чисел на m классов сравнения. Операции сложения и умножения могут быть определены для этих m объектов следующим образом: чтобы сложить или умножить два класса сравнения, сначала выберите представителя (любым способом) из каждого класса, затем выполните обычную операцию для целых чисел на двух представителях. и, наконец, возьмем класс сравнения, в котором лежит результат целочисленной операции как результат операции над классами сравнения. В символах, с и представляющих операции над классами конгруэнтности, эти определения

а также

Эти операции четко определены , что означает, что конечный результат не зависит от выбора представителей, которые были сделаны для получения результата.

В м классы конгруэнтно с этими двумя определенными операциями образуют кольцо , называемое кольцом целых чисел по модулю т . Для этих алгебраических объектов используется несколько обозначений, чаще всего или , но в некоторых элементарных текстах и ​​областях применения используются упрощенные обозначения, когда путаница с другими алгебраическими объектами маловероятна.

Классы сравнения целых чисел по модулю m традиционно назывались классами вычетов по модулю m , что отражает тот факт, что все элементы класса сравнения имеют один и тот же остаток (т. Е. «Остаток») после деления на m . Любой набор из m целых чисел, выбранный так, что каждое происходит из другого класса сравнения по модулю m, называется полной системой вычетов по модулю m . [9] В алгоритме деление показывает , что множество целых чисел, {0, 1, 2, ..., т - 1} образуют полную систему вычетов по модулю т , известный как наименее остаток системы по модулю т. При работе с арифметическими задачами иногда удобнее работать с полной системой вычетов и использовать язык сравнений, в то время как в других случаях более полезна точка зрения классов конгруэнции кольца . [10]

Мультипликативная группа целых чисел по модулю m [ править ]

Не каждый элемент полной системы вычетов по модулю m имеет модульную мультипликативную инверсию, например, ноль никогда не имеет. После удаления элементов полной системы вычетов, которые не являются взаимно простыми с m , то, что осталось, называется редуцированной системой вычетов , все элементы которой имеют модульные мультипликативные инверсии. Количество элементов в приведенной системе вычетов равно , где - функция Эйлера , т. Е. Количество положительных целых чисел, меньших m , которые взаимно просты с m .

В общем кольце с единицей не каждый элемент имеет обратный мультипликатив, и те, которые имеют, называются единицами . Поскольку произведение двух единиц является единицей, единицы кольца образуют группу , группу единиц кольца и часто обозначаются R ×, если R - это имя кольца. Группа единиц кольца целых чисел по модулю m называется мультипликативной группой целых чисел по модулю m , и она изоморфна приведенной системе вычетов. В частности, он имеет порядок (размер) ,.

В случае, когда m является простым числом , скажем p , тогда и все ненулевые элементы имеют мультипликативные обратные, таким образом , это конечное поле . В этом случае мультипликативная группа целых чисел по модулю p образует циклическую группу порядка p - 1 .

Пример [ править ]

Чтобы проиллюстрировать приведенные выше определения, рассмотрим следующий пример с использованием модуля 10.

Два целых числа совпадают по модулю 10 тогда и только тогда, когда их разность делится на 10, например

так как 10 делит 32 - 12 = 20, и
поскольку 10 делит 111 - 1 = 110.

Вот некоторые из десяти классов конгруэнтности по этому модулю:

а также

Линейное сравнение 4 x ≡ 5 (mod 10) не имеет решений, так как целые числа, которые конгруэнтны 5 (т.е. входящие), все нечетные, а 4 x всегда четные. Однако линейное сравнение 4 x ≡ 6 (mod 10) имеет два решения, а именно x = 4 и x = 9 . НОД (4, 10) = 2 и 2 не делит 5, но делает разрыв 6.

Поскольку gcd (3, 10) = 1 , линейное сравнение 3 x ≡ 1 (mod 10) будет иметь решения, то есть будут существовать модульные мультипликативные обратные числа 3 по модулю 10. Фактически, 7 удовлетворяет этому сравнению (т. Е. 21 - 1 = 20). Однако другие целые числа также удовлетворяют сравнению, например 17 и −3 (т.е. 3 (17) - 1 = 50 и 3 (−3) - 1 = −10). В частности, каждое целое число в удовлетворяет сравнению, поскольку эти целые числа имеют вид 7 + 10 r для некоторого целого числа r и

явно делится на 10. Это сравнение имеет только один класс конгруэнции решений. Решение в этом случае можно было бы получить, проверив все возможные случаи, но для больших модулей потребуются систематические алгоритмы, которые будут приведены в следующем разделе.

Произведение классов конгруэнтности и может быть получено путем выбора элемента , скажем, 25, и элемента , скажем, −2, и наблюдения, что их произведение (25) (- 2) = −50 находится в классе конгруэнции . Таким образом, . Сложение определяется аналогичным образом. Десять классов сравнения вместе с этими операциями сложения и умножения классов сравнения образуют кольцо целых чисел по модулю 10, т . Е ..

Полная система вычетов по модулю 10 может быть набором {10, −9, 2, 13, 24, −15, 26, 37, 8, 9}, где каждое целое число находится в другом классе сравнения по модулю 10. Уникальная система наименьших вычетов по модулю 10 это {0, 1, 2, ..., 9}. Система приведенных остатков по модулю 10 может быть {1, 3, 7, 9}. Произведение любых двух классов конгруэнтности, представленных этими числами, снова является одним из этих четырех классов конгруэнтности. Это означает, что эти четыре класса конгруэнции образуют группу, в данном случае циклическую группу четвертого порядка, имеющую либо 3, либо 7 в качестве (мультипликативного) генератора. Представленные классы конгруэнции образуют группу единиц кольца . Именно эти классы конгруэнции имеют модульные мультипликативные инверсии.

Вычисление [ править ]

Расширенный алгоритм Евклида [ править ]

Модульный мультипликативный обратный к модулю м можно найти с помощью расширенного алгоритма Евклида.

Алгоритм Евклида определяет наибольший общий делитель (GCD) двух целых чисел, скажем , и т . Если a имеет мультипликативный обратный по модулю m , этот gcd должен быть 1. Последнее из нескольких уравнений, созданных алгоритмом, может быть решено для этого gcd. Затем, используя метод, называемый «обратная подстановка», можно получить выражение, связывающее исходные параметры и этот НОД. Другими словами, можно найти целые числа x и y, удовлетворяющие тождеству Безу ,

Переписанный, это

это,

Итак, была вычислена модульная мультипликативная обратная к a . Более эффективной версией алгоритма является расширенный алгоритм Евклида, который с помощью вспомогательных уравнений сокращает два прохода алгоритма (обратная подстановка может рассматриваться как прохождение алгоритма в обратном направлении) до одного.

В нотации большого O этот алгоритм работает за время O (log ( m ) 2 ) , предполагая, что | а | < m , и считается очень быстрым и обычно более эффективным, чем его альтернатива, возведение в степень.

Использование теоремы Эйлера [ править ]

В качестве альтернативы расширенному алгоритму Евклида теорема Эйлера может использоваться для вычисления модульных обратных величин. [11]

Согласно теореме Эйлера , если является взаимно просты с т , то есть, НОД ( , м ) = 1 , то

где - функция Эйлера . Это следует из того факта , что принадлежит мультипликативной группе × тогда и только тогда , когда является взаимно просты в м . Следовательно, модульное мультипликативное обратное можно найти напрямую:

В частном случае, когда m - простое число, а модульный обратный равен

Этот метод обычно медленнее, чем расширенный алгоритм Евклида, но иногда используется, когда реализация для модульного возведения в степень уже доступна. К недостаткам этого метода можно отнести:

  • Значение должно быть известно и наиболее эффективным известное вычисление требует м «s факторизации . Широко распространено мнение, что факторизация представляет собой сложную в вычислительном отношении проблему. Однако вычисление несложно, когда известно факторизация m на простые множители .
  • Относительная стоимость возведения в степень. Хотя это может быть реализовано более эффективно с использованием модульного возведения в степень , при больших значениях m это наиболее эффективно вычисляется с помощью метода редукции Монтгомери . Сам этот алгоритм требует модульного обратного модуля m , который и должен был быть вычислен в первую очередь. Без метода Монтгомери стандартное двоичное возведение в степень , которое требует деления по модулю m на каждом шаге, является медленной операцией, когда m велико.

Одним из заметных преимуществ этого метода является то, что отсутствуют условные переходы, которые зависят от значения a , и, таким образом, значение a , которое может быть важным секретом в криптографии с открытым ключом , может быть защищено от атак по побочным каналам . По этой причине стандартная реализация Curve25519 использует этот метод для вычисления обратного.

Множественные инверсии [ править ]

Можно вычислить обратное значение нескольких чисел a i по модулю общего m с помощью одного вызова алгоритма Евклида и трех умножений на каждый дополнительный ввод. [12] Основная идея заключается в том, чтобы сформировать произведение всех я , инвертный , что, затем умножить на виде J для всех Jя оставить только нужные A−1
я
.

В частности, алгоритм (вся арифметика выполняется по модулю m ):

  1. Вычислите префиксные произведения для всех in .
  2. Вычислить b−1
    п
    используя любой доступный алгоритм.
  3. Для i от n до 2 вычислить
    • а−1
      я
      = b−1
      я
      b i −1
      и
    • б-1
      я -1
      = b−1
      я
      а я
      .
  4. Наконец,−1
    1
    = b−1
    1
    .

Можно выполнять умножения в древовидной структуре, а не линейно, чтобы использовать параллельные вычисления .

Приложения [ править ]

Нахождение модульной мультипликативной обратной имеет множество приложений в алгоритмах, основанных на теории модульной арифметики. Например, в криптографии использование модульной арифметики позволяет выполнять некоторые операции быстрее и с меньшими требованиями к памяти, в то время как другие операции становятся более сложными. [13]Обе эти функции можно использовать с пользой. В частности, в алгоритме RSA шифрование и дешифрование сообщения выполняется с использованием пары чисел, которые являются обратными по отношению к тщательно выбранному модулю. Один из этих номеров обнародован и может использоваться в процедуре быстрого шифрования, а другой, используемый в процедуре дешифрования, остается скрытым. Считается, что определение скрытого номера из общедоступного номера невозможно с вычислительной точки зрения, и именно это заставляет систему работать для обеспечения конфиденциальности. [14]

В качестве другого примера в другом контексте рассмотрим задачу точного деления в информатике, где у вас есть список нечетных чисел размером со слово, каждое из которых делится на k, и вы хотите разделить их все на k . Одно из решений следующее:

  1. Используйте расширенный алгоритм Евклида для вычисления k −1 , модульного мультипликативного обратного k mod 2 w , где w - количество битов в слове. Это обратное будет существовать, поскольку числа нечетные, а модуль не имеет нечетных множителей.
  2. Для каждого числа в списке умножьте его на k −1 и возьмите младшее значащее слово результата.

На многих машинах, особенно без аппаратной поддержки деления, деление является более медленной операцией, чем умножение, поэтому такой подход может привести к значительному ускорению. Первый шаг относительно медленный, но его нужно сделать только один раз.

Модульные мультипликативные инверсии используются для получения решения системы линейных сравнений, которое гарантируется китайской теоремой об остатках .

Например, система

X ≡ 4 (мод. 5)
X ≡ 4 (мод. 7)
X ≡ 6 (мод.11)

имеет общие решения, так как 5,7 и 11 попарно взаимно просты . Решение дается

Х = t 1 (7 × 11) × 4 + t 2 (5 × 11) × 4 + t 3 (5 × 7) × 6

где

t 1 = 3 является модульным мультипликативным обратным 7 × 11 (mod 5),
t 2 = 6 является модульным мультипликативным обратным 5 × 11 (mod 7) и
t 3 = 6 является модульным мультипликативным обратным 5 × 7 (mod 11).

Таким образом,

Х = 3 × (7 × 11) × 4 + 6 × (5 × 11) × 4 + 6 × (5 × 7) × 6 = 3504

и в его уникальной сокращенной форме

X ≡ 3504 ≡ 39 (мод. 385)

поскольку 385 - это НОК 5,7 и 11.

Кроме того, модульные мультипликативные обратные фигуры занимают видное место в определении суммы Клоостермана .

См. Также [ править ]

  • Инверсивный конгруэнтный генератор - генератор псевдослучайных чисел, который использует модульные мультипликативные инверсии
  • Рациональная реконструкция (математика)

Заметки [ править ]

  1. Перейти ↑ Rosen 1993 , p. 132
  2. ^ Шумахер 1996 , стр. 88
  3. ^ Стинсон, Дуглас Р. (1995), Криптография / Теория и практика , CRC Press, стр. 124–128, ISBN 0-8493-8521-0
  4. ^ Trappe и Вашингтон 2006 , стр. 164-169
  5. ^ Мориарти, K .; Калиски, Б .; Jonsson, J .; Руш, А. (2016). «PKCS # 1: Спецификации криптографии RSA, версия 2.2» . Инженерная группа Интернета RFC 8017 . Инженерная группа Интернета . Проверено 21 января 2017 года .
  6. ^ Часто используются другие обозначения, включая [ a ] и [ a ] m .
  7. ^ Ирландия и Розен 1990 , стр. 32
  8. ^ Шуп, Виктор (2005), Вычислительное введение в теорию чисел и алгебру , Cambridge University Press, теорема 2.4, с. 15, ISBN 9780521851541
  9. Перейти ↑ Rosen 1993 , p. 121
  10. ^ Ирландия и Розен 1990 , стр. 31 год
  11. ^ Томас Koshy. Элементарная теория чисел с приложениями , 2-е издание. ISBN 978-0-12-372487-8 . С. 346. 
  12. ^ Брент, Ричард П .; Циммерманн, Пауль (декабрь 2010 г.). «§2.5.1 Несколько инверсий сразу» (PDF) . Современная компьютерная арифметика . Кембриджские монографии по вычислительной и прикладной математике. 18 . Издательство Кембриджского университета. С. 67–68. ISBN  978-0-521-19469-3.
  13. ^ Trappe и Вашингтон 2006 , стр. 167
  14. ^ Trappe и Вашингтон 2006 , стр. 165

Ссылки [ править ]

  • Ирландия, Кеннет; Розен, Майкл (1990), Классическое введение в современную теорию чисел (2-е изд.), Springer-Verlag, ISBN 0-387-97329-X
  • Розен, Кеннет Х. (1993), Элементарная теория чисел и ее приложения (3-е изд.), Addison-Wesley, ISBN 978-0-201-57889-8
  • Шумахер, Кэрол (1996). Глава нулевая: основные понятия абстрактной математики . Эддисон-Уэсли. ISBN 0-201-82653-4.
  • Трапп, Уэйд; Вашингтон, Лоуренс К. (2006), Введение в криптографию с теорией кодирования (2-е изд.), Прентис-Холл, ISBN 978-0-13-186239-5

Внешние ссылки [ править ]

  • Вайсштейн, Эрик В. «Модульная инверсия» . MathWorld .
  • Гевара Васкес, Фернандо предоставляет решенный пример решения мультипликативной обратной по модулю с использованием алгоритма Евклида.