Центральная Научная Библиотека  
Главная
 
Новости
 
Разделы
 
Работы
 
Контакты
 
E-mail
 
  Главная    

 

  Поиск:  

Меню 

· Главная
· Биология
· Геология
· Зоология
· Коммуникации и связь
· Бухучет управленчучет
· Водоснабжение   водоотведение
· Детали машин
· Инновационный   менеджмент
· Качество упр-е   качеством
· Маркетинг
· Математика
· Мировая экономика МЭО
· Политология
· Реклама и PR
· САПР
· Биология и химия
· Животные
· Литература   языковедение
· Менеджмент
· Не Российское   законодательство
· Нотариат
· Информатика
· Исторические личности
· Кибернетика
· Коммуникация и связь
· Косметология
· Криминалистика
· Криминология
· Наука и техника
· Кулинария
· Культурология
· Логика
· Логистика
· Международное   публичное право
· Международное частное   право
· Международные   отношения
· Культура и искусства
· Металлургия
· Муниципальноое право
· Налогообложение
· Оккультизм и уфология
· Педагогика


Математические основы системы остаточных классов

Математические основы системы остаточных классов

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ФИЗИКО-МАТЕМАТИЧЕСКИЙ

КАФЕДРА АЛГЕБРЫ


Утверждена приказом по университету Допущена к защите

от ____________________№_________ «____» ______________200__г.

 Зав.кафедрой алгебры,

 к. ф.-м. наук, доц. Копыткова

 Людмила Борисовна

 М. П.


ДИПЛОМНАЯ РАБОТА


«МАТЕМАТИЧЕСКИЕ ОСНОВЫ СИСТЕМЫ ОСТАТОЧНЫХ КЛАССОВ»

Рецензенты: Выполнила:

___________________________ Пивоварова Елена Николаевна

___________________________ студентка 5 курса, гр. «Б»

 специальности математика

 очной формы обучения


Дата защиты: Научный руководитель:

«______» __________________ Копыткова Людмила Борисовна

к. ф.-м. н., доцент


Ставрополь, 2004 г.

Оглавление


Введение

Глава 1. Теоретико-числовая база построения СОК

§ 1. Сравнения и их основные свойства

§ 2. Теорема о делении с остатком. Алгоритм Евклида

§ 3. Китайская теорема об остатках и её роль в представлении чисел в СОК

§ 4. Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по данному модулю

§ 5. Числа Мерсенна, Ферма и операции над ними

Глава 2. Математические модели модулярного представления и параллельной обработки информации

§ 1. Представление числа в СОК. Модульные операции

§ 2. Основные методы и алгоритмы перехода от позиционного представления к остаткам

§ 3. Восстановление позиционного представления числа по его остаткам

§ 4. Расширение диапазона представления чисел

Глава 3. Программная эммуляция алгоритмов перевода чисел из СОК в ПСС и обратно и алгоритма RSA

Цитированная литература

Введение


Инженеры и программисты, а также математики знакомы с таким понятием как цифровая обработка сигналов. Напомним некоторые факты.

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

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

Вообще, идею теории чисел для получения алгоритмов вычислений используют в 2-х наиболее важных направлениях обработки сигналов:

- в вычислении свёртки;

- в вычислении дискретного преобразования Фурье.

Цель же дипломной работы:

- установить взаимосвязь СОК и теории чисел;

- изучить СОК и методы перевода чисел из ПСС в СОК и обратно;

- разработать и выполнить программы на языке Paskal, содержащие различные методы перевода чисел из ПСС в СОК и обратно.

Дипломная работа состоит из введения, трёх глав и списка литературы.

Во введении даётся краткое обоснование поставленных задач.

Первая глава содержит известные факты теории чисел в той мере, в какой они будут применяться в дальнейшем. Здесь излагаются самые элементарные понятия теории чисел, в частности, сравнения и их свойства, различные теоремы. А также главная теорема в СОК – китайская теорема об остатках.

Вторая глава посвящена представлению чисел в СОК и различным методам перевода чисел из СОК в ПСС и от ПСС в СОК.

Третья глава содержит программные разработки методов перевода чисел из ПСС в СОК и обратно.

Глава 1. Теоретико-числовая база построения СОК

 

§ 1. Сравнения и их основные свойства


Возьмём произвольное фиксированное натуральное число p и будем рассматривать остатки при делении на р различных целых чисел.

При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.

Определение. Целые числа а и b называются сравнимыми по модулю р, если разность чисел а – b делится на р, то есть, если . Соотношение между а, b и р запишем в виде:


 (1.1)


запись mod p будет означать, что , числа а и b – вычеты.

Если разность а – b не делится на р, то запишем:


.


Согласно определению  означает, что а делится на р.

Примеры:

, т. к. 101 – 17 = 84, а  или , т. к. числа 135 и 11 при делении на 4 дают остаток 3.

Теорема. а сравнимо с b тогда и только тогда, когда а и b имеют одинаковые остатки при делении на р, поэтому в качестве определения сравнения можно взять следующее:

Определение: Целые числа а и b называются сравнимыми по модулю р, если остатки от деления этих чисел на р равны.

Дадим основные свойства сравнений:

1.            Рефлексивность отношения сравнимости:



2.            Симметричность отношения сравнимости:

если, , то .

3.            Транзитивность отношения сравнимости:

если , , то .

4.            Если  и k – произвольное целое число, то .

5.            Если  и (k, p) = 1, то .

6.            Если  и k – произвольное натуральное число, то .

7.            Если , где k и р – произвольные натуральные числа, то .

8.            Если , , то  и .

9.            Если , , то .

10.        Если , то при любом целом n > 0, .

11.        Если  и  - произвольный многочлен с целыми коэффициентами, то .

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

13.        Если  и , то .

14.        Если , то множество общих делителей а и р совпадает с множеством общих делителей b и р. В частности,

15.        Если , , …, , то , где .

При делении целого числа на модуль р в остатке получается 0, 1, 2, 3,…, р – 1 чисел.

Отнесём все целые числа, дающие при делении на р один и тот же остаток в один класс, поэтому получится р – различных классов по модулю р.

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

Обозначим через А0 – класс вычетов, которые при делении на р дают остаток 0.

Например, числа вида .

Через А1 – числа, дающие при делении остаток 1.

Например, числа вида .

Через А2 – числа, дающие при делении остаток 2.

Например, числа вида .

Через Ар-1 – числа, дающие при делении остаток р – 1.

Например, числа вида .

Полной системой вычетов по модулю р называется совокупность р-целых чисел, содержащая точно по одному представителю из каждого класса вычетов по модулю р. Каждый класс вычетов по модулю р содержит в точности одно из чисел совокупности всех возможных остатков от деления на р: 0, 1, …, р – 1. Множество {0, 1, …, р – 1} называется полной системой наименьших неотрицательных вычетов по модулю р. Можно легко доказать, что любая совокупность р чисел (р >1), попарно несравнимых по модулю р, есть полная система вычетов по модулю р. Часто рассматривают полную систему наименьших положительных вычетов: 1, 2, …, р; полную систему наименьших по абсолютной величине вычетов:

 при чётном р и

 при р нечётном.


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

Число классов, взаимно простых с модулем р, равно значению функции Эйлера φ(р).

 

§ 2. Теорема о делении с остатком. Алгоритм Евклида


Рассмотрим пример. Пусть р = 6.

Тогда имеем шесть классов разбиения множества целых чисел по модулю 6:


r = 0;

r = 1;

r = 2;

r = 3;

r = 4;

r = 5;

где через r обозначен остаток от деления целого числа на 6.

Напомним теорему о делении с остатком:

Теорема: Разделить число на число , , с остатком, значит, найти пару целых чисел q и r, таких, что выполняются следующие условия: .

Легко доказывается, что для любых целых чисел а и деление с остатком возможно и числа q и r определяются однозначно. В нашем примере полная система наименьших неотрицательных вычетов есть множество {0, 1, 2, 3, 4, 5}; полная система наименьших положительных вычетов – множество {0, 1, 2, 3, 4, 5, 6}; полная система наименьших по абсолютной величине вычетов – множество {-2,-1, 0, 1, 2, 3}; приведённая система вычетов – множество {1,5}, так как ; фактор-множество  

Один из методов выполнения арифметических операций над данными целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, что целые числа представляются в одной из непозиционных систем – в системе остаточных классов. А именно: вместо операций над целыми числами оперируют с остатками от деления этих чисел на заранее выбранные простые числа – модули . Чаще всего числа  выбирают из множества простых чисел.

Пусть …, .

Так как в кольце целых чисел имеет место теорема о делении с остатком, т. е.  где , то кольцо Z, по определению, является евклидовым. Таким образом, в качестве чисел  можно выбрать остатки от деления числа А на рi соответственно.

Рассмотрим гомоморфное отображение:


.

Тогда каждому целому числу А можно поставить в соответствие кортеж  наименьших неотрицательных вычетов по одному из соответствующих классов.

Важно отметить, что при том нет никакой потери информации при условии, что , так как всегда, зная  можно восстановить, как мы увидим позже само число А. Поэтому кортеж можно рассматривать как один из способов представления целого числа А в компьютере – модулярное представление или представление в системе остаточных классов (СОК).

Для дальнейшего нам требуется расширенный алгоритм Евклида или его аналог – алгоритм нахождения линейного представления наибольшего общего делителя целых чисел: если числа а и b одновременно не равны нулю, то существуют целые числа х и у, такие, что .

Действительно, пусть d – наименьшее целое положительное число вида , например, , где числа х0 и у0 не обязательно определены однозначно. Существование числа d следует только из принципа полной упорядоченности. Очевидно, что d > 0. Остаётся показать, что . Для этого надо проверить выполнение двух условий: а)  и ; б) если  и , то . Допустим, что свойство а) не выполняется и для определённости положим, что |. Тогда по теореме о делении с остатком , и, следовательно,


,


 что противоречит минимальности d. Выполнение свойства б) проверяется непосредственно:


Рассмотрим теперь расширенный алгоритм Евклида для нахождения линейного представления наибольшего общего делителя . Значения х и у вычисляются в серии шагов, в каждом из которых мы выражаем аi (вычисленное в процессе работы алгоритма Евклида) в форме . А именно, рассмотрим последовательность


 

 

 

 

  

 

 


В левом столбце алгоритма записана последовательность делений, которая получается в результате работы алгоритма Евклида и которая разрешена относительно остатков. Согласно теореме Ламе (1844 г.) число делений, которое необходимо выполнить для нахождения (а, b), не превосходит числа цифр в меньшем из чисел а и b, умноженного на 5 (оценка наихудшего случая для алгоритма Евклида). Теорема Ламе доказывается на основе последовательности Фибоначчи.

Там же доказывается, что время выполнения алгоритма Евклида оценивается равенством , где L(a) и L(b) – число цифр в а и b соответственно. В правом столбце этого алгоритма каждый остаток выражен через . Надо вычислить  и . Очевидно, что  и . Сравнивая обе части на i-м шаге, получим


откуда получается следующая индуктивная процедура вычисления  и


:   

 

Пример. Применим расширенный алгоритм Евклида к числам а = 342, b = 612. Весь алгоритм представим в виде следующей таблицы.


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

Номер

итерации

q

A0

a1

x0

x1

Y0

y1

0

-

342

612

1

0

0

1

1

0

612

342

0

1

1

0

2

1

342

270

1

-1

0

1

3

1

270

72

-1

2

1

-1

4

3

72

54

2

-7

-1

4

5

1

54

18

-7

9

4

-5

6

3

18

0

9

-34

-5

19


Заметим, что равенство  выполняется на каждом шаге итерации. Алгоритм выдаёт d = 18, x = 9, y = -5 и тогда 18=342∙9 + 612∙(-5).

 

§ 3. Китайская теорема об остатках и её роль в представлении чисел в СОК


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

Теорема. Пусть  - попарно взаимно-простые числа, больше 1, и пусть . Тогда существует единственное неотрицательное решение по модулю Р следующей системы сравнений:


  …,  (3.1)


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


 колец .


Существует много различных доказательств этой теоремы. Приведём конструктивное доказательство китайской теоремы об остатках.

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


 


для некоторого целого числа . Подставив значение  в выражение

 


Теперь первые два сравнения могут быть заменены на одно


 (3.2)


Применим теперь описанную процедуру к сравнению (3.2) и к одному из оставшихся сравнений системы (3.1). Повторяя этот процесс k – 1 раз, мы в конечном итоге найдём число х, удовлетворяющее всем сравнениям системы (3.1).

Докажем единственность решения системы (3.1). Воспользуемся методом от противного. Предположим, что существует другое решение  системы (3.1). Тогда



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

Пример. Решим систему сравнений


 

Решение. Так как модули 13, 15, 19 попарно взаимно простые числа, то данная система имеет единственное решение по модулю . Сравнение  соответствует диофантовому уравнению , где . Заменяя х во втором сравнении системы на , получаем , т. е. . К числу 13 обратным мультипликативным элементом по модулю 15 является число 7. Умножая последнее сравнение на 7 и, переходя в нём к вычетам по модулю 15, получим . Таким образом, . Следовательно, , при этом все числа вида  являются решениями первых двух сравнений данной системы. Подставим в третье сравнение вместо х полученное выше значение  или . Так как (5, 19) = 1, то  или . Итак,


, то есть х = 274.


Исходя из конструктивного доказательства китайской теоремы об остатках, можно записать алгоритм решения системы линейных сравнений рассматриваемого вида следующим образом (греко-китайский алгоритм).

Вход: Пары ,  такие, что , , где каждое > 1 и (,) = 1 для  и  - короткие целые числа.

Выход: х – единственное наименьшее неотрицательное решение системы по модулю .

1.   Инициализация. Р:=1; х:=МОД(,) – подпрограмма нахождения остатка деления  на .

2.   Цикл для i от 1 до n – 1: MOДINV(p, );


q:=МОД(

3.   х:= х + pq, где MOДINV – подпрограмма вычисления мультипликативного обратного элемента.

4.   q:=МОД(

5.   Вернуть х.

Несложный анализ времени работы данного алгоритма показывает, что



где  - количество цифр числа Р, т. е. длина числа Р, при этом функция L ведёт себя как логарифм.

 

§ 4. Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по данному модулю


Вернёмся теперь к вопросу о мультипликативных обратных элементах в фактор-кольце Zp.

Теорема. Пусть , тогда класс  имеет мультипликативный обратный элемент по модулю р тогда и только тогда, когда (, р) = 1.

Теорема. Характеристика λ конечного поля – простое число.

Рассмотрим два способа вычисления обратных мультипликативных элементов. Первый способ основан на рассмотренном выше алгоритме Евклида, второй – на теореме Эйлера.

Первый способ. Из условия (а, р) = 1 получаем ах + ру = 1 или  и, следовательно, х – мультипликативный обратный к а по модулю р.

Второй способ. Предварительно напомним теорему Эйлера:

(а, р) = 1, доказательство которой достаточно простое и мы его не приводим, так как его можно найти в любой книге по теории чисел. Частным случаем теоремы Эйлера является малая теорема Ферма.

Малая теорема Ферма. Если р – простое число и а – произвольное целое число, не делящееся на р, то .

Следствие. В кольце Zp классов вычетов по модулю р из  следует, что

Таким образом, для вычисления мультипликативного обратного к классу  по модулю р в случае, когда , достаточно  возвести в степень k, где k = р – 2, если р – простое число, и  в противном случае.

Ясно, что при таком методе вычисления мультипликативного обратного элемента задача сводится к цепочке умножений и делений с остатком на модуль р. Эта задача решается без особых трудностей, если наименьший положительный вычет , где , представлен в СОК. Однако возникает вопрос об эффективности этого метода. Другими словами, является ли  наименьшим показателем степени, для которого ? Оказывается, что нет.

Из китайской теореме об остатках следует следующее

Утверждение. Пусть  - каноническое представление числа р. Тогда функция, которая каждому классу  ставит в соответствие кортеж , где  для , является кольцевым изоморфизмом кольца  класса вычетов по модулю р и кольца кортежей вида , где  для . Более того, если обозначить через * любую из кольцевых операций + или · , то



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

,


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


.


Можно сделать вывод о том, что произвольное целое положительное число А, 0 < A < P, где  и  для , однозначно представимо своими наименьшими неотрицательными остатками по модулю , причём сложение (а, следовательно, и вычитание) и умножение выполняются покомпонентно.

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

 

§ 5. Числа Ме