Как теория чисел помогает в шифровальном деле

6
ëéêéëéÇëäàâ éÅêÄáéÇÄíÖãúçõâ ÜìêçÄã, ‹6, 1996 122 КАК ТЕОРИЯ ЧИСЕЛ ПОМОГАЕТ В ШИФРОВАЛЬНОМ ДЕЛЕ Ç. Ä. ìëèÖçëäàâ åÓÒÍÓ‚ÒÍËÈ „ÓÒÛ‰‡ÒÚ‚ÂÌÌ˚È ÛÌË‚ÂÒËÚÂÚ ËÏ. å.Ç. ãÓÏÓÌÓÒÓ‚‡ 1. èéëíÄçéÇäÄ áÄÑÄóà Когда участники процесса обмена сообщениями не желают, чтобы их сообщения были поняты кем- либо посторонним, они прибегают к шифрам. Со- средоточимся на тех важных случаях, когда среди участников выделяются один Получатель и один или несколько Отправителей. Потребуем выполне- ния следующих условий. 1. Расшифровать зашифрованное сообщение мо- жет только Получатель. Ключ к расшифровке на- столько секретен, что неизвестен даже Отправителям. 2. Напротив, ключ к шифровке публикуется По- лучателем совершенно открыто, так что зашифро- вать сообщение может всякий желающий. Такой ключ называется открытым ключом. Всякая система шифровки и дешифровки, удов- летворяющая сформулированным выше двум требо- ваниям, называется системой тайнописи с откры- тым ключом (по-английски: public-key cryptosystem). Естественно встает вопрос, возможна ли подобная система. Оказывается, да, возможна [5, n° 6.2]. Одна их таких систем была указана тремя математиками, Ривéстом (R.L. Rivest), Шамиром (F. Shamir) и Ад- леманом (L.M. Adleman), в их совместной публика- ции [4]. По начальным буквам фамилий система носит название Система РША (в оригинале RSA). Она опирается на факты из теории чисел. Цель на- стоящей статьи – изложить в доступной форме Си- стему РША. 2. éÅôàÖ èêÖÑëíÄÇãÖçàü é òàîêÄï 2.1. ëÓÓ·˘ÂÌËfl Ë ¯ËÙÓ„‡ÏÏ˚ “Шифрование производится путем замены це- лых фраз, слов, слогов или отд. букв цифрами или буквами в различных комбинациях на основе зара- нее принятой системы, являющейся соответствен- но ключом для расшифровки текста”, – указывает Большая Советская Энциклопедия (изд. 3-е, т. 29, стлб. 1241). Эта формулировка не совсем точна: ведь при тайнописи с открытым ключом система шиф- рования не является ключом для расшифровки. В общем случае ситуация выглядит так. Сообще- ние шифруется Отправителем и расшифровывается Получателем. Таким образом, от Отправителя к По- лучателю идет не само исходное сообщение М, а его зашифрованный образ С, который будем называть HOW NUMBER THEORY HELPS CRYPTOGRAPHY V. A. USPENSKY Is it possible to invent such a method of encod- ing that everyone could cipher a message, and nobody but those who know the secret could decode the message? This paper offers a solu- tion to that problem which is given by number the- ory. åÓÊÌÓ ÎË ÔˉÛχڸ Ú‡- ÍÓÈ ÒÔÓÒÓ· ¯ËÙÓ‚‡- ÌËfl, ˜ÚÓ·˚ ¯ËÙÓ‚‡Ú¸ ÒÓÓ·˘ÂÌËfl ÏÓ„ ͇ʉ˚È, ‡ ‡Ò¯ËÙÓ‚‡Ú¸ – ÚÓθ- ÍÓ Á̇˛˘ËÈ ÒÂÍÂÚÌ˚È Íβ˜? Ç Òڇڸ ‡ÒÒ͇- Á˚‚‡ÂÚÒfl Ó Â¯ÂÌËË, ÍÓ- ÚÓÓ ÚÂÓËfl ˜ËÒÂÎ Ô‰·„‡ÂÚ ‰Îfl ÔÓÒÚ‡‚- ÎÂÌÌÓÈ Á‡‰‡˜Ë. © ìÒÔÂÌÒÍËÈ Ç.Ä., 1996

Upload: -

Post on 08-Dec-2016

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Как теория чисел помогает в шифровальном деле

ëéêéëéÇëäàâ éÅêÄáéÇÄíÖãúçõâ ÜìêçÄã, ‹6, 1996

122

КАК ТЕОРИЯ ЧИСЕЛ ПОМОГАЕТ В ШИФРОВАЛЬНОМ ДЕЛЕ

Ç. Ä. ìëèÖçëäàâ

åÓÒÍÓ‚ÒÍËÈ „ÓÒÛ‰‡ÒÚ‚ÂÌÌ˚È ÛÌË‚ÂÒËÚÂÚËÏ. å.Ç. ãÓÏÓÌÓÒÓ‚‡

1. èéëíÄçéÇäÄ áÄÑÄóà

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

1. Расшифровать зашифрованное сообщение мо-жет только Получатель. Ключ к расшифровке на-столько секретен, что неизвестен даже Отправителям.

2. Напротив, ключ к шифровке публикуется По-лучателем совершенно открыто, так что зашифро-вать сообщение может всякий желающий. Такойключ называется

открытым ключом.

Всякая система шифровки и дешифровки, удов-летворяющая сформулированным выше двум требо-ваниям, называется

системой тайнописи с откры-тым ключом

(по-английски: public-key cryptosystem).Естественно встает вопрос, возможна ли подобнаясистема. Оказывается, да, возможна [5, n

°

6.2]. Однаих таких систем была указана тремя математиками,Рив

é

стом (R.L. Rivest), Шамиром (F. Shamir) и Ад-леманом (L.M. Adleman), в их совместной публика-ции [4]. По начальным буквам фамилий системаносит название

Система РША

(в оригинале RSA).Она опирается на факты из теории чисел. Цель на-стоящей статьи – изложить в доступной форме Си-стему РША.

2. éÅôàÖ èêÖÑëíÄÇãÖçàü é òàîêÄï

2.1. ëÓÓ·˘ÂÌËfl Ë ¯ËÙÓ„‡ÏÏ˚

“Шифрование производится путем замены це-лых фраз, слов, слогов или отд. букв цифрами илибуквами в различных комбинациях на основе зара-нее принятой системы, являющейся соответствен-но ключом для расшифровки текста”, – указываетБольшая Советская Энциклопедия (изд. 3-е, т. 29,стлб. 1241). Эта формулировка не совсем точна: ведьпри тайнописи с открытым ключом система шиф-рования не является ключом для расшифровки.

В общем случае ситуация выглядит так. Сообще-ние шифруется Отправителем и расшифровываетсяПолучателем. Таким образом, от Отправителя к По-лучателю идет не само исходное сообщение

М

, а егозашифрованный образ

С

, который будем называть

HOW NUMBER THEORY HELPS CRYPTOGRAPHY

V. A. USPENSKY

Is it possible to inventsuch a method of encod-ing that everyone couldcipher a message, andnobody but those whoknow the secret coulddecode the message?This paper offers a solu-tion to that problem whichis given by number the-ory.

åÓÊÌÓ ÎË ÔˉÛχڸ Ú‡-ÍÓÈ ÒÔÓÒÓ· ¯ËÙÓ‚‡-ÌËfl, ˜ÚÓ·˚ ¯ËÙÓ‚‡Ú¸ÒÓÓ·˘ÂÌËfl ÏÓ„ ͇ʉ˚È,‡ ‡Ò¯ËÙÓ‚‡Ú¸ – ÚÓθ-ÍÓ Á̇˛˘ËÈ ÒÂÍÂÚÌ˚ÈÍβ˜? Ç Òڇڸ ‡ÒÒ͇-Á˚‚‡ÂÚÒfl Ó Â¯ÂÌËË, ÍÓ-ÚÓÓ ÚÂÓËfl ˜ËÒÂÎÔ‰·„‡ÂÚ ‰Îfl ÔÓÒÚ‡‚-ÎÂÌÌÓÈ Á‡‰‡˜Ë.

© ì

ÒÔÂÌ

ÒÍËÈ

Ç.Ä

., 19

96

Page 2: Как теория чисел помогает в шифровальном деле

ìëèÖçëäàâ Ç.Ä.

äÄä íÖéêàü óàëÖã èéåéÉÄÖí Ç òàîêéÇÄãúçéå ÑÖãÖ

123

шифрограммой

исходного сообщения

.

Получив ши-фрограмму

С

, Получатель восстанавливает

М

. Пе-рескажем то же на математическом языке. В распо-ряжении Отправителя имеется

шифровальный ключ

,то есть функция

E

, преобразующая сообщение

М

вшифрограмму

С

.

В распоряжении Получателя име-ется

дешифровальный ключ

, то есть функция

D

, пре-образующая шифрограмму

С

в исходное сообщение

М

, так что

D

(

E

(

M

)) =

M

, откуда

E

(

D

(

C

)) =

C

.

Каждое сообщение есть конечная последова-тельность каких-то символов: букв, цифр, знаковпрепинания и т.п. (Пробел есть особый знак препи-нания; удобно изображать его каким-либо симво-лом, например, решеткой #; тогда, скажем, фраза“4 мая” запишется так: “4#мая”.) Все эти символывыбираются из заранее указанного конечного спис-ка. Любой такой список символов называется

алфа-витом

, члены этого списка –

буквами

, а произволь-ная конечная цепочка букв –

словом в данномалфавите

. (Так, выражение “ъъыйЩйь” есть словов русском алфавите.) Если расширить русский ал-фавит за счет цифр, знаков препинания и некото-рых других стандартных знаков, то любой русскийтекст можно считать словом в этом расширенномалфавите. А любой английский, французский и т.д.текст можно считать словом в расширенном латин-ском алфавите. Теперь ясно, что каждое сообще-ние есть слово в подходящем

Алфавите Сообщений.

А каждая шифрограмма есть слово в

Алфавите Ши-фрограмм.

2.2. èÂÂıÓ‰ Í ‰‚Ó˘ÌÓÏÛ ‡ÎÙ‡‚ËÚÛ

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

двоичными.

В самом деле, пусть в рассматриваемом нами алфа-вите

m

букв и пусть 2

s

$

m

. Количество слов длины

s

в двоичном алфавите {0, 1} равно 2

s

; поскольку этихслов оказалось не меньше, чем букв в исходном ал-фавите, то каждую букву исходного алфавита можновзаимно однозначно закодировать в виде некоторо-го двоичного слова длины

s.

Каждое слово длины

k

висходном алфавите превратится после замены каж-дой его буквы на ее двоичный код в свой

двоичныйобраз

, а именно, в двоичное слово, имеющее длину

sk

. При этом исходное слово легко восстанавливает-ся по его двоичному образу.

Пример

. Алфавит, достаточный для записи сооб-щений на русском языке, должен включать 33 про-писные и 33 строчные русские буквы, 10 цифр, зна-ки препинания, знаки номера, параграфа и т.д.Можно надеяться, в этом алфавите будет менее, чем2

7

букв. Поэтому каждую из этих букв можно зако-дировать посредством 7-буквенного двоичного сло-ва. Пусть, например, двоичные слова 0000001,0011010, 1000001, 1000110, 1111111 служат, соответ-ственно, кодами для букв а, м, я, 4, #. Тогда для вы-

ражения “4#мая” его двоичным образом будет сло-во 10001101111111001101000000011000001.

Начиная с этого места изложения примем, что иАлфавит Сообщений, и Алфавит Шифрограмм явля-ются каждый двоичным алфавитом, так что все сооб-щения и все шифрограммы суть двоичные слова.

2.3. èÂÂıÓ‰ Í ˜ËÒ·Ï

Числа в нашей статье будут только целые, какправило неотрицательные.

Двоичное слово 10 служит записью числа два вдвоичной системе счисления, короче, двоичной за-писью числа два. А слово 101 служит двоичной за-писью числа пять. Будем рассматривать только дво-ичные слова, начинающиеся с единицы. Каждое изних есть двоичная запись какого-либо положи-тельного числа, и мы отождествим эти слова с темичислами, записями которых они служат. Теперь всесообщения и все шифрограммы сделались поло-жительными числами.

Замечание

. А как же все-таки быть, если сообще-ние, закодированное в соответствии с п. 2.2., начи-налось с 0? Простейший способ разрешения про-блемы таков: после создания двоичного образа надок этому образу приписать спереди 1.

Мы совершили простую, но важную процедуру:арифметизацию ситуации. Теперь функции

E

и

D

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

Е

с числовымиже значениями. Выбрав сообщение

М

, Отправительнаправляет Получателю число

Е

(

М

). Получатель,пользуясь функцией

D

, находит исходное

М

в каче-стве

D

(

E

(

M

)).

Коль скоро сообщения стали числами, мы мо-жем интересоваться их числовыми свойствами, на-пример, четностью или нечетностью или, вообще,делимостью.

Пусть даны неотрицательное

a

и положительное

b

; тогда

a

можно и притом единственным образомпредставить в виде

a

=

bq

+

r

, где

q

и

r

суть

числа и0

#

r <

b

. Процедура такого представления называ-ется

делением с остатком числа a

на число

b

, а числа

q

и

r

неполным

частным

и

остатком

. Остатком мо-жет оказаться любое число от 0 до

b

1. Если этотостаток

r

равен

нулю, то неполное частное называ-ют

полным частным,

или просто

частным.

3. ëàëíÖåÄ êòÄ

Напомним, что два числа называются

взаимнопростыми

, если их наибольший общий делитель ра-вен единице. В системе РША допустимыми сооб-щениями служат положительные числа, меньшиенекоторого весьма большого числа

n

, публично

Page 3: Как теория чисел помогает в шифровальном деле

ëéêéëéÇëäàâ éÅêÄáéÇÄíÖãúçõâ ÜìêçÄã, ‹6, 1996

124

объявляемого Получателем, и являющиеся взаимнопростыми с этим

n

. Это число

n

будем именовать

модулем системы РША

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

Здесь у читателя может возникнуть законное не-удовольствие. Кажется естественным, что множест-во возможных сообщений не должно зависеть отправил шифрования, а тем самым и от модуля сис-темы. Ведь это множество определяется запасом техсведений, в передаче которых может возникнутьнужда. Мы уже поняли, что сведения эти могут ко-дироваться числами. Но множество этих чисел-со-общений должно, по логике вещей, возникать дошифровального ключа, а не управляться им. Мы ужеобъявили сообщением всякое число, которое обла-дает одновременно следующими двумя свойствами:(1) оно меньше модуля; (2) оно взаимно просто сним. Первое из названных свойств не противоречиттой содержательной картине, математическую мо-дель которой мы здесь описываем. Действительно,разумно считать, что реальными сообщениями мо-гут служить не произвольные слова в Алфавите Со-общений, но лишь слова некоторой ограниченнойзаранее длины. А тогда при переходе к числам, опи-санном в п. 2.3., все сообщения оказываются числа-ми, не превосходящими некоторого фиксированно-го ограничителя

m

. И если только модуль системыдостаточно велик, а именно, не меньше, чем

m

, токаждое число-сообщение, которое может возник-нуть в реальности, оказывается удовлетворяющимсвойству (1). Хуже обстоит дело со свойством (2):ведь нет оснований ожидать, что подлежащая пере-даче информация, записанная в виде слова и затемподвергнутая арифметизации, непременно приведетк числу, являющемуся взаимно простым с модулемсистемы. В то же время именно требование взаимнойпростоты с модулем обеспечивает возможность де-шифровки. Как же быть? Здесь возможны два ответа.Ответ первый: в подавляющем большинстве случаеввозникающее число-сообщение окажется взаимнопростым с модулем. Однако, сколь бы редки ни былиисключения, они все же существуют. И если переда-ваемое сообщение окажется числом, не взаимнопростым с модулем, его шифрограмму невозможнобудет расшифровать. Поэтому для тех, кто не го-тов соглашаться даже на самый ничтожный риск,в п. 6.3. будет предложен второй ответ.

Система РША функционирует следующим об-разом.

Получатель публикует в открытой печати, во-первых, модуль системы

n

, а, во-вторых, некотороечисло

e

, которое назовем

открытым показателем

.Шифровальный ключ

E

так задается при помощиэтих двух параметров: чтобы найти

E

(

M

), надлежитвозвести

M

в степень

e

и затем взять остаток от деле-ния

M

e

на

n

; этот остаток и есть

E

(

M

).

А Получатель, получив шифрограмму

C

, посту-пает так. Он возводит

C

в одному ему известную сте-

пень

d

и берет остаток от деления результата на

n

;это и есть

M

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

D

(

C

) есть остаток отделения на

n

числа

C

d

. Число

d

будем называть за-крытым показателем. Разумеется, как публикуемыеПолучателем модуль n и открытый показатель e, таки хранимый в тайне закрытый показатель d должныбыть связаны некоторыми соотношениями. Болеетого, Получатель должен хранить в тайне некото-рую дополнительную информацию, материализо-ванную в виде пары простых чисел.

Напомним, что число называется простым, еслионо больше единицы и не имеет делителей, отлич-ных от единицы и самого себя. По теореме Евклида[3, Кн. IX, Предл. 20], простых чисел бесконечномного; вот начало их ряда: 2, 3, 5, 7, 11, 13, 17, 19, …

В окончательном оформлении система РШАвыглядит так. Получатель сперва выбирает дваочень больших (содержащих каждое сотни знаков всвоей десятичной записи) простых чисел p и q. Воз-можность выбора сколь угодно больших простыхчисел гарантируется теоремой Евклида. Произведе-ние pq Получатель публикует в качестве модуля си-стемы. Сами же множители p и q Получатель держитв тайне! Затем он случайным образом выбирает не-которое положительное e, являющееся взаимнопростым с произведением (p − 1)(q − 1), и публикуетэто e в качестве открытого показателя. Наконец,Получатель находит положительное d, удовлетворя-ющее тому условию, что остаток от деления произ-ведения ed на произведение (p − 1)(q − 1) равен 1.Это d Получатель хранит в тайне в качестве закры-того показателя.

Мы видим, что центральную роль играет то об-стоятельство, что закрытый показатель известентолько Получателю и более никому. Здесь можетвозникнуть законный вопрос. Если Получательумеет, зная e, найти требуемое d, то ведь это же мо-жет сделать и любой другой! Нет, ответим мы, дляэтого надо знать p и q : вспомним требования,предъявляемые к d. Прекрасно, возразит читатель,любой может узнать p и q, коль скоро опубликованоих произведение: достаточно разложить это произ-ведение на простые множители. Вот в этом месте икроется главная хитрость системы РША. Дело втом, что разложить очень большое число на множи-тели весьма и весьма сложно. Даже если мы – как вданном случае – заведомо знаем, что число являет-ся произведением ровно двух простых множителей.Таким образом, не зная p и q, а зная, только их про-изведение, найти p и q практически невозможно.Это утверждение о практической невозможностине является, конечно, строгой математической те-оремой, а скорее экспериментальным фактом.Просто все известные к этому времени алгоритмыразложения чисел на простые множители не поз-воляют в обозримое время найти множители p и qпо их произведению (в предложении, что эти p и qдостаточно велики).

Page 4: Как теория чисел помогает в шифровальном деле

ìëèÖçëäàâ Ç.Ä. äÄä íÖéêàü óàëÖã èéåéÉÄÖí Ç òàîêéÇÄãúçéå ÑÖãÖ 125

Придирчивый читатель не успокоится и здесь.Ведь если мы говорим о вычислениях, совершаемыхв “обозримое время”, то можно ли считать таковы-ми возведение чисел M и C в степени e и d? Ответ та-ков. Нас интересуют не сами числа Me и Cd, которыедействительно могут оказаться “сверхбольшими”, алишь их остатки от деления на n. Для получения жеуказанных остатков нет нужды вычислять сами Me иCd полностью: на каждом из промежуточных этаповвычисления достаточно довольствоваться остаткомот деления на n соответствующего промежуточногорезультата.

Но тут уже начинается чистая математика, к ка-ковой мы и переходим. Эта математика должнаобосновать систему РША.

4. äêÄíäéÖ íÖéêÖíàäé-óàëãéÇéÖ éÅéëçéÇÄçàÖ

Все термины и обозначения этого параграфа бу-дут разъяснены в п. 5.

По теореме Эйлера Mφ(n) ≡ 1 (mod n), где M – со-общение, а φ(n) – функция Эйлера. В нашем случаеn = pq и потому φ(n) = (p − 1)(q − 1). Поэтому

Cd ≡ Med ≡ M1 + k(p − 1)(q − 1) ≡ M(M(p − 1)(q − 1))k ≡ M (mod n). (*)

5. èéÑêéÅçéÖ íÖéêÖíàäé-óàëãéÇéÖ êÄáöüëçÖçàÖ

Числа n, p, q, e, d имеют указанный выше смысл.

5.1. 뇂ÌÂÌËfl

Если разность чисел (возможно, отрицатель-ных) a и b делится на положительное m, то говорят,что a и b сравнимы по модулю m, и выражают это написьме в форме так называемого сравнения a ≡ b(mod m). Например, 16 ≡ 41 (mod 5).

Замечание. Два неотрицательных числа сравни-мы по модулю m тогда и только тогда, когда совпа-дают их остатки от деления на m; проверку этогопочти очевидного факта предоставим читателю.

По условию, остаток от деления произведенияоткрытого и закрытого показателей на (p − 1)(q − 1)равен 1. В силу сделанного замечания, этот факт такзаписывается на языке сравнений:

ed ≡ 1(mod (p − 1)(q − 1)).

5.2. éÔ‡ˆËË Ì‡‰ Ò‡‚ÌÂÌËflÏË

Будем рассматривать сравнения по какому-либофиксированному модулю m. Читатель легко прове-рит, что сравнения можно почленно умножать начисло: если a ≡ b (mod m), то ak ≡ bk (mod m). Ихможно также почленно складывать и умножать. Извозможности умножать следует возможность возво-дить в степень: если a ≡ b (mod m), то ak ≡ bk (mod m).

5.3. Ä΄ÓËÚÏ Ö‚ÍÎˉ‡

Этот алгоритм описан (в геометрической фор-ме) Евклидом в [3, Кн. VII, Предл. 2]. Он использу-ется для нахождения наибольшего общего делителя(н.о.д.) двух чисел и состоит в следующем. Чтобынайти н.о.д. чисел a0 и a1, производят последова-тельные деления с остатком:

a0 = a1q1 + a2, a1 = a2q2 + a3, …, ai − 1 = aiqi + ai + 1, …,

…, ak − 2 = ak − 1qk − 1 + ak, ak − 1 = akqk .

Процесс непременно закончится, и число ak будетискомым н.о.д.

Число c называется линейной комбинацией (л.к.)чисел a и b, коль скоро c можно представить в видеax + by, где x и y суть целые (возможно, отрицатель-ные!) числа. Применение алгоритма Евклида поз-воляет выразить н.о.д. чисел a0 и a1 в виде линейнойкомбинации этих чисел. Действительно, перепишемкаждую из возникающих строк в форме разности:

a2 = a0 − a1q1, a3 = a1 − a2q2, и т.д.

Первая строка дает a2 как л.к. исходных чисел. Под-ставляя это выражение во вторую строку, получаемa3 как л.к. исходных чисел; эту л.к. подставляем втретью строку. И т.д. Таким способом последова-тельно выражаем каждое из чисел ai, в том числен.о.д. ak, в виде л.к. исходных чисел.

5.4. èÓÒÚÓÂÌË Á‡Í˚ÚÓ„Ó ÔÓ͇Á‡ÚÂÎfl

Пусть m = (p − 1)(q − 1). По условию, открытый по-казатель e взаимно прост с m, так что н.о.д. чисел e и mравен 1. Пользуясь методом п. 5.3., представляем 1в виде линейной комбинации чисел e и m. Тем самымнаходим такие целые числа x и y , что ex + my = 1.Далее находим такое s, что число x + ms будет поло-жительным. Поскольку e(x + ms) = 1 − my + mse, тоостаток от деления числа e(x + ms) на m будет рав-ным 1. Поэтому x + ms удовлетворяет условию, на-лагаемому на закрытый показатель, и может бытьвзято в качестве такового.

5.5. îÛÌ͈Ëfl ùÈ·

Функция Эйлера φ(n) определяется как количе-ство положительных чисел, меньших, чем n, и вза-имно простых с n. Например, φ(14) = 6, так как чис-ла, меньшие 14 и взаимно простые с 14, суть 1, 3, 5,9, 11, 13. Коль скоро число p простое, то все числа 1,2, …, (p − 1) взаимно просты с p, поэтому φ(p) = p − 1.Можно доказать, что функция Эйлера мультипли-кативна; это значит, что φ(ab) = φ(a)φ(b) при усло-вии, что a и b взаимно просты. Отсюда для простыхp и q имеем φ(pq) = (p − 1)(q − 1), как утверждалось вп. 4. Впрочем, функцию Эйлера от произведениядвух простых чисел нетрудно вычислить и непо-средственно.

Page 5: Как теория чисел помогает в шифровальном деле

ëéêéëéÇëäàâ éÅêÄáéÇÄíÖãúçõâ ÜìêçÄã, ‹6, 1996126

5.6. íÂÓÂχ ùÈ·

Пусть m и z взаимно просты. Тогда zφ(m) ≡ 1 (mod m).

Ограничения на объем не позволяют нам приве-сти здесь доказательства этой теоремы и другихпростейших фактов теории чисел. За такими дока-зательствами мы отсылаем читателя к стандартнымруководствам, например, к [1] и [2].

5.7. èÓ˜ÂÏÛ Ò‡·‡Ú˚‚‡ÂÚ Ô‰ÎÓÊÂÌÌ˚È ÒÔÓÒÓ· ‰Â¯ËÙÓ‚ÍË

Итак, надо убедиться, что остаток от деления Cd

на n есть M. Но этот факт, в силу замечания из п. 5.1.,выражается формулой (*) из п. 4. Поэтому достаточ-но проверить эту формулу. Для некоторого k выпол-няется соотношение ed = 1 + k(p − 1)(q − 1). Фикси-руем это k. Первые три входящие в формулусравнения суть равенства. Для обоснования заклю-чительного сравнения применяем теорему Эйлера,беря в ее формулировке из п. 5.6. в качестве модулясравнения m модуль n системы РША, а в качестве z –сообщение M; мы вправе применить теорему к этимобъектам, поскольку, по условию, сообщение и мо-дуль системы взаимно просты. Согласно п. 5.5. φ(m)в данном случае равно (p − 1)(q − 1). Поэтому в на-шем случае теорема Эйлера будет выглядеть так:

M (p − 1)(q − 1) ≡ 1 (mod pq).

Далее мы пользуемся возможностью почленно воз-водить сравнения в степень (п. 5.2.) и получаем

(M (p − 1)(q − 1))k ≡ 1 (mod pq).

Наконец, мы умножаем обе части сравнения на Mи, помня, что n есть pq, получаем в точности заклю-чительное сравнение п. 4.

6. éÅëìÜÑÖçàÖ

6.1. ä‡Í éÚÔ‡‚ËÚÂθ Ë èÓÎÛ˜‡ÚÂθ ÏÓ„ÛÚ Ó·Î„˜ËÚ¸ Ò· ¯ËÙÓ‚ÍÛ Ë ‰Â¯ËÙÓ‚ÍÛ

В конце п. 3 было замечено, что коль скоро насинтересуют не сами числа Me и Cd, а лишь их остат-ки от деления на n, нет нужды вычислять целикомуказанные “сверхбольшие” числа.

Пусть [X] обозначает остаток от деления числа Xна n. Очевидно, [X] ≡ X (mod n). Сравнения можноумножать, а потому [AB] ≡ AB ≡ [A][B] ≡ [[A][B]](mod n). Далее, если [X] ≡ [Y] (mod n), то [X] = [Y].Поэтому [AB] = [[A][B]]. Таким образом, чтобы по-лучить остаток от деления на n произведения чиселA и B, можно сперва найти остатки [A] и [B], а затемвзять остаток от деления на n произведения этих ос-татков. Поэтому для получения, скажем, остатка[M11] разумно произвести следующие вычисления:[M2] = [[M][M]], [M4] = [[M2][M2]], [M8] = [[M 4][M4]],[M11] = [[[M][M2]][M8]]. Изложим эту методику бо-лее формально и для общего случая. Мы будем го-ворить лишь о вычислении [Me], но все сохраняетсилу и для вычисления [Cd]. Чтобы быстро вычис-

лить [Me], найдем двоичное представление числа e,то есть такие числа k, b0, b1, …, bk, что

e = b0 + b1 ⋅ 2 + … + bi ⋅ 2i + … + bk ⋅ 2k,

b0, b1, …, bk = 0, 1.

Затем последовательно вычислим

После этого перемножим (по модулю n, то есть за-меняя каждый раз получаемый результат его остат-

ком от деления на n) числа для тех i, для кото-

рых bi = 1. Полученное число, очевидно, равно [Me].

Ясно также, что количество выполненных опера-ций не превосходит 2k # 2log2n.

6.2. çÂÍÓÚÓ˚ ÏÂ˚ Ô‰ÓÒÚÓÓÊÌÓÒÚË

Если Me < n, секретность переписки оказываетсяпод угрозой. В этом случае шифрограмма C совпа-дает с Me. А тогда перехвативший шифрограммузлоумышленник может восстановить исходное со-общение M путем извлечения корня степени e изшифрограммы. Хотя злоумышленник не знает зара-нее, совпадает ли C с числом Me, он может выдви-нуть гипотезу о таком совпадении. А критерием, наосновании которого он может судить о верности ги-потезы, служит выполнение равенства ,что легко проверяется. Поэтому сообщение M, рас-сматриваемое как число, не должно быть слишкоммало. Что же делать, если надо передать небольшоесообщение? Расширим алфавит сообщений за счетспециального разделительного знака, например,звездочки *. Малость сообщения как числа равно-сильна краткости сообщения как слова. В такомслучае мы поставим в конце сообщения знак *, а по-сле этого знака выпишем достаточно длинную ибеспорядочную (случайную, как говорят математи-ки) последовательность букв. Мы получим новое,длинное сообщение, значимым в котором будеттолько начальная часть, предшествующая звездоч-ке. Это новое сообщение будет уже кодироватьсядостаточно большим числом.

6.3. óÚÓ ‰Â·ڸ, ÂÒÎË ˜ËÒÎÓ-ÒÓÓ·˘ÂÌËÂÌ ‚Á‡ËÏÌÓ ÔÓÒÚÓ Ò ÏÓ‰ÛÎÂÏ ÒËÒÚÂÏ˚

Такие случаи практически почти никогда не бу-дут встречаться. Ведь простые числа p и q, дающие впроизведении модуль системы n, астрономическивелики. А тогда отношение (p − 1)(q − 1)/n, показы-вающее долю чисел, взаимно простых с модулем,среди всех чисел, не превосходящих модуля, прак-тически неотличимо от единицы. Однако можнопредложить план действий, сводящий риск до абсо-лютного нуля. Из любых трех последовательно иду-щих чисел хотя бы одно взаимно просто с модулем.А потому допустим следующий прием. Отправитель,желая передать число a, образует три числа 3a, 3a − 1,3a − 2. По меньшей мере одно из них (а с высочайшей

M2[ ] M4[ ] … M2i

[ ] … M2k

[ ], , , , , .

M2i

[ ]

E Ce( ) = C

Page 6: Как теория чисел помогает в шифровальном деле

ìëèÖçëäàâ Ç.Ä. äÄä íÖéêàü óàëÖã èéåéÉÄÖí Ç òàîêéÇÄãúçéå ÑÖãÖ 127

вероятностью все три!) будет взаимно просто с мо-дулем. Далее Отправитель может действовать однимиз двух способов.

Первый способ. Отправитель, пользуясь алго-ритмом Евклида, проверяет три построенные числана взаимную простоту с модулем и, как только об-наруживает взаимно простое число, шифрует его пометоду РША и отправляет шифрограмму Получате-лю. Получатель, дешифруя шифрограмму, находитчисло вида 3a − x, где x есть 0, 1 или 2, и далее вос-станавливает a.

Второй способ. Отправитель шифрует все тричисла и отправляет Получателю три шифрограммы.Теперь уже Получатель производит проверку шиф-рограмм на взаимную простоту с модулем. Обнару-жив таковую, он дешифрует ее и восстанавливает a.(Здесь мы используем тот факт, что в Системе РШАсообщение и его шифрограмма либо одновременновзаимно просты, либо одновременно не взаимнопросты с модулем.)

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

6.4. á‡Íβ˜ËÚÂθÌÓ Á‡Ï˜‡ÌËÂ

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

хранения: ведь и там не исключено, что преступникнайдет требуемую комбинацию путем догадки (по-этому и не рекомендуется в качестве цифровыхкомбинаций брать нечто осмысленное, например,те или иные даты). И в случае автоматической каме-ры хранения, и в случае системы тайнописи РШАречь может идти только о практической невозмож-ности, лучше сказать, чрезвычайно малой вероят-ности расшифровки (настолько малой, что ею мож-но пренебречь).

ãàíÖêÄíìêÄ

1. Виноградов И.М. Основы теории чисел. М.: Физмат-лит, 1965. Изд. 7-е, исправл.

2. Дэвенпорт Г. Высшая арифметика. Введение в тео-рию чисел. Пер. с англ. М.: Физматлит, 1965.

3. Начала Евклида. Книги VII – X / Пер. с греч. М.-Л.:Гостехиздат, 1949.

4. Rivest R.L., Shamir A., Adleman L.M. A method for ob-taining digital signatures and public-key cryptosystems //Communications ACM, 1978. V. 21. PP. 120–126.

5. Rivest R.L. Cryptography / Handbook of TheoreticalComputer Science. Vol. A. Algorithms and Complexity / J.van Leeuwen, ed. Amsterdam: Elsevier; Cambridge, Mass.:The MIT Press., 1990. PP. 717 – 755.

* * *

Владимир Андреевич Успенский, доктор физи-ко-математических наук, профессор, зав. кафед-рой математической логики и теории алгорит-мов Московского государственного университетаим. М.В. Ломоносова. Автор 10 книг и 90 научныхстатей.