Гашков С.В. Современная элементарная алгебра в задачах и решениях
.pdf
§ 2.9. Алгебра и криптология |
131 |
||||||
2*. Докажите, что |
отображение x |
→ |
f(x) |
= |
xs mod n всегда имеет 4 |
||
|
|
|
|
|
|||
неподвижных точки в множестве Zn |
и девять неподвижных точек в мно- |
||||||
жестве Zn (неподвижная точка отображения – это такое число a, которое переходит в себя при этом отображении).
У к а з а н и е. Примените китайскую теорему об остатках. |
|
1 |
|||
3*. Докажите, что если s − 1 |
будет общим кратным чисел p |
− |
|||
|
s |
mod n будет тождественным. |
|
||
и q − 1, то отображение x → f(x) = x |
|
|
|
||
Заметим, что для предотвращения очевидных атак на эту систему рекомендуется:
а) не выбирать числа p и q слишком близкими друг к другу (рекомендуется, чтобы их двоичные записи отличались по длине на несколько разрядов), иначе облегчается возможность факторизации числа n;
б) следить за тем, чтобы число p − 1 не было делителем числа q − 1 и наоборот, и вообще чтобы эти числа не имели бы большого общего делителя, так как тогда возникает возможность найти ключ t перебором; в) не допускать того, чтобы в разложении ϕ(n) на множители встре-
чались только малые простые числа (по той же причине).
Для надежности можно было бы использовать только так называемые безопасные простые числа, т. е. такие числа p, для которых и число (p − 1)/2 тоже простое. К сожалению, проблема генерации таких чисел трудна, и до сих пор неизвестно, конечно или бесконечно их количество.
Заметим еще, что не рекомендуется использовать слишком малые числа s и t (так как тогда опять появляется возможность нахождения ключа перебором, но в случае малого s для этого, правда, нужно суметь перехватить одинаковое сообщение, посланное многим разным получателям), а также такие числа s, что s − 1 будет общим кратным чисел p − 1 и q − 1, например, s = ϕ(n)/2 + 1, так как тогда зашифрованный текст всегда просто совпадает с незашифрованным. Кроме того, во всех случаях надо следить, чтобы случайно не попасть в «неподвижную точку».
4*. (Общий секретный ключ.) Нахождение индекса произвольного элемента из Z p относительно заданного первообразного корня a (называемое коротко дискретным логарифмированием) требует весьма громоздких вычислений, и при p, состоящем из нескольких сотен цифр, не под силу и суперЭВМ. Лишь в случае, когда p − 1 имеет только малые простые множители, известен сравнительно быстро работающий алгоритм дискретного логарифмирования.
На предположении о труднорешаемости задачи дискретного логарифмирования основана следующая система Диффи–Хеллмана * открытого распределения ключей. Допустим, что A и B хотят, пользуясь
* У. Диффи и М. Хеллман – современные американские математики.
9*
132 Глава II. Числа и группы
публичными каналами связи (например, электронной почтой), выработать общую секретную информацию (общий ключ). Противник знает о затеях A и B и может перехватывать весь их обмен информацией.
Предложите протокол выработки общего ключа, роль которого играет некоторый элемент из Z p , причем для его выработки требуется обменяться двумя элементами из Z p . Каждый из партнеров вычисляет свой элемент, пользуясь своим ключом (секретным элементом), а потом, получив вычисленный партнером элемент, с помощью того же ключа вычисляет общий ключ (он, разумеется, должен получиться одинаковым у обоих). Алгоритм вычисления общего ключа должен быть простым, а алгоритм взлома этой системы (конечно, при отсутствии информации о ключах партнеров) – очень трудоемким.
У к а з а н и е. Возьмите в поле Z p какой-нибудь первообразный корень g и воспользуйтесь тождеством (gn)m = (gm)n.
5*. (Алгоритм Гельфонда дискретного логарифмирования.) Дискретный логарифм в конечном поле порядка q можно вычислить, сделав не более C√q log2 q операций деления и не более C√q log2 q операций сравнения элементов поля.
6*. (Разделение секретного ключа на части.) Допустим, что вам поручили организовать доступ к секретной информации на компьютере для трех сотрудников банка так, чтобы они, только собравшись втроем, смогли получить ее. Каждому вы сообщаете ключ – некоторое большое (например, стозначное) число, которое он хранит в секрете от остальных. Паролем, который открывает секретную информацию, является неизвестное никому из них число, которое, однако, можно быстро определить (разумеется, с помощью компьютера) по трем упомянутым ключам. В случае же отсутствия одного из них для определения пароля придется (даже зная алгоритм определения пароля по ключам) перебрать 9 · 1099 вариантов возможного значения неизвестного ключа (а это пока не доступно даже суперЭВМ). Кроме того, для надежности вы можете периодически менять ключи. Это смогут сделать даже сами работники банка (договорившись только о размерах ключей, чтобы гарантировать их отличие друг от друга, и выбирая в качестве ключей, например, числа вида 22n + 1), и сохранить пароль в тайне даже от вас.
Предложите алгоритм определения пароля по ключам, основанный на применении китайской теоремы об остатках.
У к а з а н и е. Следующий алгоритм принадлежит Шамиру *. Выберем 3 больших попарно взаимно простых числа, например, числа Ферма a1 = 22n + 1, a2 = 22n+1 + 1, a3 = 22n+2 + 1. Пусть i-й «компаньон»
* А. Шамир – современный израильский математик.
§ 2.9. Алгебра и криптология |
133 |
в качестве ключа выбирает произвольное число ki |
в пределах от 1 |
до ai − 1. Тогда, собравшись вместе, они могут выработать пароль k, взяв в качестве него такое число в пределах от 1 до a − 1, a = a1a2a3, которое при делении на ai дает в остатке ki . Как было показано в этом параграфе, число k можно вычислить по формуле k = k′ − [k′/a]a, где
k′ = k1n1 + k2n2 + kn3, ni mi −ai qi = 1, mi = aj ak, j =6 k=6 i =6 j.
Для вычисления ni можно применить алгоритм Евклида. Нетрудно написать программу для компьютера, которая будет вычислять пароль k после того, как «компаньоны», таясь друг от друга, введут в него свои ключи. Положим N = 2n. Если двое, в тайне от третьего, захотят найти ключ k, то им придется перебрать все возможные варианты выбора третьего ключа (потому что разным способам выбора ключей соответствуют разные значения k), т. е. перебрать не менее 2N вариантов.
7*. Предложите алгоритм разделения секрета со свойствами, аналогичными предыдущему, но основанный на лагранжевой интерполяции.
Глава III. Многочлены
§ 3.1. Кольцо многочленов
Возьмем произвольное кольцо K и назовем многочленом над этим кольцом формальную сумму
f(x) = anxn + an−1xn−1 + . . . + a1x + a0,
где элементы a0, a1, . . . , an−1, an, n > 0, принадлежат кольцу K , а x – не входящий в кольцо символ переменной.
Определение 65. Элементы кольца a0, . . ., an называются коэффициентами многочлена. Будем рассматривать только многочлены, у которых старший коэффициент an отличен от нуля.
Степенью многочлена называется в этом случае число n, обозначаемое далее как deg f(x).
Элементы кольца K , не равные 0, будем рассматривать как многочлены нулевой степени. Нуль также считаем многочленом. Степень у нулевого многочлена не определена.
Определение 66. Многочлены
f(x) = anxn + an−1xn−1 + . . . + a1x + a0, g(x) = bmxm + am−1xm−1 + . . . + b1x + b0
называются равными, если m = n и равны все коэффициенты при соответствующих степенях переменной, т. е. ai = bi , i = 0, 1, . . . , n.
Определим арифметические операции на множестве многочленов K[x] с коэффициентами из кольца K .
Определение 67. Назовем суммой многочленов
f(x) = anxn + an−1xn−1 + . . . + a1x + a0, g(x) = bmxm + am−1xm−1 + . . . + b1x + b0
многочлен h(x), коэффициент которого при xi равен ci = ai + bi для любого i = 0, 1, . . . , max{n, m}.
Если один или несколько старших коэффициентов у рассматриваемой суммы равны нулю (а это возможно лишь при n = m), то они просто
§ 3.1. Кольцо многочленов |
135 |
удаляются из нее, так, чтобы старший из оставшихся коэффициентов был отличен от нуля. Многочлен, имеющий только один ненулевой коэффициент, называется одночленом. Аналогично определяются двучлены и трехчлены.
Определение 68. Произведением многочленов
f(x) = anxn + an−1xn−1 + . . . + a1x + a0, g(x) = bmxm + am−1xm−1 + . . . + b1x + b0
называется многочлен h(x), коэффициент которого при xi равен
|
j X |
di = |
aj bk. |
|
+k=i |
З а м е ч а н и е. Указанную сумму можно понимать и как сумму |
|
|
n |
|
X |
di = |
aj bi−j , |
|
j=0 |
если условиться, что все входящие в нее коэффициенты с индексами, не лежащими в пределах от 0 до n, равны нулю.
Теорема 57. Множество всех многочленов над кольцом K – кольцо.
Д о к а з а т е л ь с т в о. Нулевым элементом кольца многочленов является нулевой многочлен, отождествляемый с нулем кольца K , а единичным – единица кольца K .
Обратным элементом для произвольного многочлена f(x) = anxn + an−1xn−1 + . . . + a1x + a0
относительно операции сложения является многочлен
−f(x) = (−an)xn + (−an−1)xn−1 + . . . + (−a1)x + (−a0),
получающийся из исходного «сменой знака» у всех коэффициентов. Поэтому вычитание многочленов осуществляется так же, как и сложение, но с заменой операции сложения коэффициентов на операцию вычитания.
Выполнение аксиом коммутативной группы относительно операции сложения непосредственно вытекает из справедливости этих аксиом для кольца коэффициентов, которое, кстати, можно считать содержащимся в соответствующем кольце многочленов.
Легко видеть, что каждый многочлен равен сумме всех своих одночленов.
136 Глава III. Многочлены
Аксиома дистрибутивности (другими словами, распределительный закон умножения относительно сложения) для кольца многочленов легко
следует из тождеств |
X |
X |
j X |
||
aj (bk + ck) = |
aj bk + |
aj ck, |
+k=i |
j+k=i |
j+k=i |
а аксиома ассоциативности умножения для кольца многочленов легко следует из аксиомы дистрибутивности, если с ее помощью выполнять умножение многочленов, разбивая их на суммы одночленов и складывая потом получившиеся произведения одночленов, для которых выполнение ассоциативного закона относительно умножения очевидно. 

Теорема 58. Степень суммы многочленов над кольцом не превосходит наибольшей из степеней слагаемых.
Д о к а з а т е л ь с т в о. Для двух слагаемых это очевидно из определения операции сложения. Для случая многих слагаемых это легко доказывается по индукции.
Напомним, что областью целостности называется кольцо без де-
лителей нуля.
Упражнение 56. Докажите, что а) кольцо целых чисел является областью целостности;
б) любое поле также является областью целостности.
Теорема 59. В кольце многочленов над областью целостности степень произведения ненулевых многочленов равна сумме степеней сомножителей.
Д о к а з а т е л ь с т в о. Доказательство для случая двух сомножителей следует из определения умножения многочленов: наибольшая возможная степень x в произведении многочленов f(x) = anxn + an−1 +
+ . . . + a1x + a0, an =6 0, и g(x) = bmxm + am−1xm−1 + . . . + b1x + bm, bm =6 0, равна n + m, т. к. a0b0 =6 0 согласно свойству области целост-
ности. Для случая нескольких сомножителей это легко доказывается по индукции. 
! Если в кольце K есть делители нуля, то теорема 59 неверна.
Упражнение 57. Например, если K = Z6, то 3¯ x · 2¯ x = 0,¯ и в этом случае степень произведения меньше суммы степеней сомножителей. Для произвольного кольца коэффициентов степень произведения не больше суммы степеней сомножителей.
Определение 69. Если для многочленов f(x) и g(x) =6 0 справедливо разложение f(x) = g(x) · h(x) + r(x), где h(x) и r(x) – некоторые другие многочлены, причем deg r(x) < deg g(x), то h(x) называется частным,
а r(x) – остатком.
§ 3.1. Кольцо многочленов |
137 |
Теорема 60 (о делении с остатком). Для любых многочленов f(x)
и g(x) 6= 0 над произвольным полем F частное и остаток существуют и определены однозначно как многочлены над тем же полем F.
До к а з а т е л ь с т в о. Существование частного и остатка очевидно
вслучае deg f(x) < deg g(x).
В случае deg f(x) > deg g(x) применим для их нахождения следующий алгоритм деления с остатком.
Предположим, что f(x) = anxn + an−1xn−1 + . . . + a1x + a0 и g(x) = |
|||
= bmxm + am−1xm−1 + . . . + b1x + b0, тогда |
f(x) − |
an |
|
|
xn−m g(x) = h(x), |
||
bm |
|||
причем deg h(x) < n. Затем поделим h(x) на |
g(x) и т. д. Процедура за- |
||
кончится, так как на каждом шаге будет понижаться степень разности до тех пор, пока она не станет меньше m = deg g(x). Тогда получим, что f(x) = g(x) · ϕ(x) + r(x), причем deg r(x) < deg g(x).
Доказательство единственности проведем от противного. Пусть f(x) = g(x) · h1 (x) + r1 (x) = g(x) · h2 (x) + r2 (x),
тогда g(x) |
· (h1 (x) − h2 (x)) = r2 (x) − r1 (x). Если бы |
h1 (x) − h2 (x) 6= 0, |
то степень |
левой части была бы больше степени |
правой. То есть |
h1 (x) = h2 (x), а значит, и r1 (x) = r2 (x). Противоречие.
З а м е ч а н и е. Для доказательства единственности требуется, по крайней мере, чтобы кольцо коэффициентов было областью целостности. Для доказательства существования в случае, если K не поле, достаточно считать, что старший коэффициент g(x) равен 1.
Далее у нас изредка будут встречаться и многочлены от нескольких переменных. Определения основных понятий в этом случае, как правило, являются естественными обобщениями соответствующих определений для одной переменной.
Назовем многочленом над кольцом K от переменных x1, . . . , xn
конечную формальную сумму
1 |
X |
|
xi1 |
. . . xin , |
f(x) = |
ai |
... i |
||
|
1 |
n |
1 |
n |
i |
, ..., in >0 |
|
|
|
где коэффициенты ai1 ... in принадлежат кольцу K , а x1, . . ., xn – не входящие в кольцо символы переменных.
Определение 70. |
Многочлены |
|
X |
|
|
|
|||
1 |
X |
|
xi1 |
. . . xin , |
1 |
|
xi1 |
. . . xin |
|
f(x) = |
ai |
... i |
g(x) = |
bi |
... i |
||||
|
1 |
n |
1 |
n |
|
1 |
n |
1 |
n |
i |
, ..., in >0 |
|
|
|
i |
, ..., in>0 |
|
|
|
называются равными, если попарно равны все их коэффициенты
ai1 ... in = bi1 ... in .
138 |
Глава III. Многочлены |
Определение 71. Многочлен, имеющий только один ненулевой коэффициент, называется одночленом. Степенью одночлена называется сумма степеней всех его переменных. Степенью многочлена называется максимальная из степеней всех его одночленов. Одночлены с максимальной степенью называются старшими одночленами. Так же называются их коэффициенты.
! Старших одночленов может быть несколько.
1+ x1x2 + x22 – неполный квадрат суммы.
2.Если переменных немного, то стараются обходится без индексов: x2 + xy + y2.
Будем рассматривать только многочлены, у которых старшие коэффициенты отличны от нуля.
Элементы кольца K , не равные 0, будем рассматривать как многочлены нулевой степени. Степень у нулевого многочлена не определена.
Множество всех определенных выше многочленов от переменных x1, . . . , xn обозначают K[x1, . . . , xn]. Определим арифметические операции на этом кольце.
Определение 72. Назовем суммой многочленов
1 |
X |
|
|
|
|
|
|
|
|
|
1 |
X |
|
|
|
|
|
f(x) = |
ai ... i xi1 |
. . . xin |
, |
|
g(x) = |
|
|
|
bi |
... i |
xi1 |
. . . xin |
|||||
|
1 |
n |
1 |
n |
|
|
|
|
|
|
|
|
|
1 |
n |
1 |
n |
i , ..., in >0 |
|
|
|
|
|
|
|
|
i |
|
, ..., in>0 |
|
|
|
|
||
многочлен |
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f(x) + g(x) |
|
1 |
(ai |
|
|
|
|
|
|
|
)xi1 |
. . . xin , |
|
|||
|
= |
|
1 |
... i |
n |
+ bi |
... i |
|
|||||||||
|
|
|
|
|
|
|
|
1 |
|
n |
1 |
|
n |
|
|
||
|
|
|
i , ..., in>0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
а произведением – многочлен, получающийся из суммы |
|
|
|||||||||||||||
|
1 |
1 |
X |
|
|
|
|
|
|
xi1+ j1 . . . xin+ jn |
|
||||||
f(x) g(x) = |
|
|
|
ai |
... i |
bi |
... j |
|
|||||||||
|
|
|
|
|
1 |
|
n |
1 |
n |
|
1 |
|
|
n |
|
|
|
|
i |
,j |
..., in ,jn>0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
приведением подобных членов.
П р и м е р ы. 1. x2 − y2 = (x − y) (x + y).
2.x3 − y3 = (x − y) (x2 + xy + y2).
3.x3 + y3 = (x + y) (x2 − xy + y2).
4.xn − yn = (x − y) (xn−1 + xn−2y + . . . + xyn−2 + yn−1).
5.x2n+1 + y2n+1 = (x + y) (x2n − x2n−1y + . . . − xy2n−1 + y2n).
6.Еще примерами могут служить биномиальная и полиномиальная теоремы.
§ 3.1. Кольцо многочленов |
139 |
Аналогично случаю одной переменной доказывается следующая теорема.
Теорема 61. Множество многочленов K[x1, . . . , xn] образует целостное кольцо относительно операций сложения и умножения.
Нулевым элементом кольца многочленов является нулевой многочлен, отождествляемый с нулем кольца K , а единичным – единица кольца K .
Обратным элементом для произвольного многочлена f(x) относительно операции сложения является многочлен, получающийся из исходного сменой знака у всех коэффициентов. Каждый многочлен равен сумме всех своих одночленов.
Степень суммы многочленов над кольцом не превосходит наибольшей из степеней слагаемых.
Теорема 62. В кольце многочленов над областью целостности степень произведения ненулевых многочленов равна сумме степеней сомножителей.
Верна также
Теорема 63. Кольца K[x1, . . ., xn] и (K[x1, . . ., xn−1]) [xn] изоморфны. Д о к а з а т е л ь с т в о. Для установления изоморфизма достаточно
представить любой многочлен
f(x) = |
1 |
X |
|
xi1 |
. . . xin |
|
|
ai |
... i |
||||
|
|
1 |
n |
1 |
n |
|
|
i , ..., in>0 |
|
|
|
|
|
как многочлен от одной переменной xn |
|
. . . xn−1 |
xnn , |
|||
f(x) = in>0 |
|
ai1 ... in x11 |
||||
X |
|
X |
i |
|
in−1 |
i |
|
|
|
|
|||
но с коэффициентами из кольца K[x1, . . . , xn−1]. Например,
x12x2 + x1x2 + x1x22 = x1 (x2 + x22) + x12 (x2),
при этом степень полученного многочлена от xn называется степенью по xn исходного многочлена от переменных x1, . . . , xn. 
Упражнение 58. Докажите аккуратно последние три теоремы.
Деление с остатком на многочлены нескольких переменных так ! просто не переносится.
Задачи и упражнения к § 3.1
В этом цикле задач рассматриваем только многочлены над полем рациональных чисел.
140 |
Глава III. Многочлены |
1.Найдите сумму коэффициентов многочлена (1−1998x + 1999x2)2001.
2.Сравнить коэффициенты при x1994 в многочленах
а) |
(1 |
− |
1994x |
2+ |
1993x2)2000 и (1 |
+ |
1994x + 1993x2)2000; |
|
|||||
б) |
|
|
|
3 |
2000 |
|
|
2 |
3 2000 |
. |
|||
(1 − 1994x |
+ 1993x ) |
|
и (1 + 1994x |
|
+ 1993x ) |
||||||||
3. |
Найдите коэффициент при x50 в многочлене |
|
|||||||||||
|
|
|
(1 + x)1000 + x(1 + x)999 + . . . + x999 |
(1 + x) + x1000. |
|||||||||
4.2 |
Найдите остаток от |
деления |
x + x3 + x9 + . . . + x3n на: а) x − 1; |
||||||||||
б)* x |
− 1. |
|
|
|
|
|
|
|
|
|
|
|
|
5. |
Многочлен при делении на x − a дает остаток b, а при делении |
||||||||||||
на x − c – остаток d. Какой остаток будет при делении на (x − a) (x − c)? 6*. Найдите коэффициент при x14 в частном от деления x1994 − 1 на
x4 + x3 + 2x2 + x + 1.
У к а з а н и е. Сначала поделить с остатком на x12 − 1, а потом умно-
жить на многочлен
x12 − 1
x4 + x3 + 2x2 + x + 1 .
7*. Найдите все многочлены P(x), для которых справедливо тождество
xP(x − 1) = (x − 26)P(x).
8*. Пусть f(x) = 1 + x + x2 + x3 + x4. Найдите остаток от деления f(x5) на f(x).
9*. Многочлен P(x) с а) натуральными; б) целыми коэффициентами при любом n принимает натуральное значение с суммой десятичных цифр s(n). Докажите, что последовательность s(n) содержит бесконечно много одинаковых чисел.
10.Многочлен от двух переменных x1994y1994 + 1 нельзя представить
ввиде произведения двух многочленов от переменных x и y соответственно.
11.Разделить многочлен
а) |
(x + 1)2n |
− |
x2n |
2x |
− |
1 на x(x + 1) (2x + 1); |
|||||
б) |
nx |
n+1 |
− |
|
−n |
|
|
2 |
. |
||
|
(n + 1)x |
+ 1 на (x − 1) |
|
||||||||
12. Если x − 1 делит P(xn), то xn − 1 делит P(xn).
13*. При каком целом a многочлен x13 + x + 90 делится на x2 −x + a?
