А.В. Рожков, О.В. Ниссенбаум - Теоретико-числовые методы в криптографии (1127102), страница 11
Текст из файла (страница 11)
Доказательство:
Согласно доказанной в п.1. теореме о числе кавдратичных вычетов, |Q(p)|=| |=(p—1)/2, |Q(q)|=|
|=(q—1)/2. В силу взаимной простоты чисел p и q, среди чисел 0,1, 2, … , n—1 окажется ровно |Q(p)|·|Q(q)|=φ(n)/4 квадратов и |
|·|
|=φ(n)/4 псевдоквадратов.
□
Задача различения квадратов и псевдоквадратов не сложнее задачи факторизации, так как, зная разложение n на простые сомножители, сможем вычислить и
с помощью полиномиального алгоритма.
На момент написания этого пособия не имелось никакой информации о том, проще ли задача различения квадратов и псевдоквадратов, чем задача факторизации.
5.9. Числа Блюма.
Числа вида n=pq, p, q – различные простые числа, причем p≡3(mod 4), q≡3(mod 4), называются числами Блюма.
Пусть n – число Блюма, и a Q(n). Тогда сравнение x2≡a(mod n) имеет четыре решения, которые можно представить в виде системы:
. Заметим, что
. Аналогично получим
. То есть один корень из пары b,—b является, а другой не является квадратом по модулю p, один корень из пары c, —c является, а другой не является квадратом по модулю q.
Таким образом, если n – число Блюма, то один из четырех корней сравнения x2≡a(mod n) является квадратом и один – псевдоквадратом по модулю n. Корень, являющийся квадратом по модулю n, называется главным корнем.
Итак, мы только что показали важное свойство квадратичных сравнений по модулю чисел Блюма: извлекая квадратный корень по модулю Блюма, получаем 4 решения, из одного из которых в свою очередь можно извлечь квадратный корень, и т. д. На этом важном свойстве построено несколько криптосистем.
BBS-генератор (генератор Blum-Blum-Shub):
Параметры генератора: n=pq, p, q – различные простые числа, причем p≡3(mod 4), q≡3(mod 4) (то есть n – число Блюма).
Начальное состояние (ключ генератора): s0 Q(n)
Генерируемая последовательность: BBS(s0)=z1, z2, …, zm, где zi=si mod 2, i=1,2,…,m, si+1=si2 mod n, i ≥ 0.
Теорема (об условной стойкости BBS-генератора)
Если существует алгоритм, вычисляющий z0=s0 mod 2 по BBS(s0) за полиномиальное время с вероятностью не меньше ½+ε, ε>0, то для любого δ, ½<δ<1, существует вероятностный алгоритм, который различает квадраты и псевдоквадраты по модулю n за полиномиальное время с вероятностью не меньшей δ.
■
Другими словами, если проблема распознавания квадратов и псевдоквадратов по модулю Блюма не решается за полиномиальное время, то BBS-генератор криптографически стоек. Проблему различения квадратов и псевдоквадратов по модулю Блюма действительно считают вычислительно сложной, поскольку в настоящее время она не решается эффективно без факторизации модуля, что служит основанием для признания BBS-генератора стойким.
Криптосистема Блюма-Гольдвассер (Blum-Goldwasser).
Пусть x1, x2, … , xm – последовательность бит открытого текста. В качестве параметров криптосистемы выбираем n=pq – число Блюма, s0 – случайное число из Zn, взаимно простое с n.
В качестве открытого ключа для шифрования выступает n, в качестве секретного ключа для расшифрования – пара (p, q).
Для того, чтобы зашифровать открытый текст, обладатель открытого ключа выбирает s0. На основе BBS-генератора по ключу s0 получает последовательность квадратов s1, s2, … , sm, по которой получает последовательность младших бит z1, z2, …, zm. Путем гаммирования с этой последовательностью битов открытого текста получает шифрованный текст yi=xi zi, i=1,2,…,m. Шифрограмма, которая пересылается обладателю секретного ключа, есть (y1,y2,…,ym, sm+1). После формирования шифрограммы последовательность si, i=0,1,…,m уничтожается, и при следующем сеансе связи отправитель выбирает новое s0.
Получатель шифрограммы восстанавливает по sm+1 последовательность главных корней sm, … , s1 и последовательность их младших бит z1, z2, …, zm, а затем расшифровывает шифрограмму: xi=yi zi , i=1,2,…,m.
Криптосистема Гольдвассер-Микали.
Параметры системы: n=pq – число Блюма, z – случайное число из .
Открытый ключ для шифрования – пара (n,z), секретный ключ для расшифрования – пара (p,q).
Пусть x1, x2, … , xm – последовательность бит открытого текста. Бит шифрованного текста вычисляем по биту открытого текста как , где ai – случайное число из Zn.
В итоге шифрования получается последовательность не бит, а чисел, причем yi является псевдоквадратом по модулю n, если xi =1, и квадратом, если xi=0.
Адресату, обладающему секретным ключом, отправляется последовательность чисел шифртекста y1, y2, …, ym , после чего параметр z может быть уничтожен.
Адресат осуществляет расшифрование следующим образом:
Условная стойкость криптосистемы Гольдвассер-Микали основана на предположительной сложности алгоритма распознавания квадратов и псевдоквадратов по модулю Блюма без знания разложения модуля на простые сомножители.
Данная криптосистема имеет существенный недостаток – размер шифртекста значительно превышает размер открытого текста, ведь каждый бит последнего при шифровании преобразуется в число такой же размерности, как n.
§6. Первообразные корни и индексы. Порождающий элемент и дискретный логарифм.
В этом параграфе рассмотрены теоретико-числовые основы, ведущие к задачам дискретного логарифмирования над конечным полем, а также приведены некоторые приложения теории конечных групп к таким вопросам как тесты на простоту и построение простых чисел.
6.1. Основные понятия и теоремы.
При (a,m)=1 существуют положительные γ с условием aγ≡1(mod m). Наименьшее из таких γ называется показатель, которому a принадлежит по модулю m.
В том, что такие γ существуют, можно убедиться, вспомнив теорему Эйлера (γ=φ(m)).
Возвращаясь к основам общей алгебры, в частности, к теории конечных групп, можно сказать, что показатель, которому которому a принадлежит по модулю m есть то же самое, что порядок элемента a в конечной мультипликативной группе <Um, · mod m>. Далее будем обозначать его Om(a).
Поскольку дальнейшие построения будут тесно связаны с группой <Um, · mod m>, то на протяжении текущего параграфа для краткости будем обозначать эту группу как Um.
Докажем несколько важных теорем, описывающих свойства Om(a):
Теорема 1.
Числа 1=a0, a1, a2, … , несравнимы между собой по модулю m.
Доказательство:
Действительно, из того, что al≡ak(mod m), 0 ≤ k < l < Om(a) следовало бы, что al—k≡1(mod m), 0 < k—l < Om(a), что противоречит определению Om(a).
□
Теорема 2.
Пусть δ= Om(a). Тогда aγ≡aβ (mod m) γ≡β(mod δ).
Доказательство:
Из теоремы 1 следует, что если aγ≡aβ (mod m) , то γ≡β(mod δ).
Пусть теперь γ≡β(mod δ) Тогда, по теореме делимости, найдутся такие числа q, w, r: 0 ≤ r < δ, что γ=δ·q+r, β=δ·w+r. Тогда из того, что aδ≡1(mod m) следует, что
aγ≡aδq+r≡(aq)δar≡ar(mod m)
aβ≡aδw+r≡(aw)δar≡ar(mod m)
Что и требовалось доказать.
□
Теорема 3.
Om(a)\φ(m).
Доказательство:
Следует из Теоремы 2 при β=0 и из теоремы Эйлера (aφ(m)≡1(mod m)).
□
Последняя теорема также может быть доказана как следствие из теоремы Лагранжа (порядок любого элемента в группе делит порядок группы) применительно к группе Um.
Числа, принадлежащие показателю φ(m) (если они существуют), называются первообразными корнями по модулю m.
Если a – первообразный корень по модулю m, то согласно Теореме 1, числа 1=a0, a1, a2, … , aφ(m)-1 несравнимы между собой по модулю m, а раз их φ(m) штук, то они образуют приведенную систему вычетов по модулю m. Тогда a есть ни что иное как порождающий элемент группы Um.
Утверждение
Если существует первообразный корень по модулю m, то мультипликативная группа Um является циклической группой.
Доказательство очевидным образом следует из вышесказанного.
Пример 1.
Рассмотрим группу U11=<{1,2,3,4,5,6,7,8,9,10},· mod m>. Порядок этой группы равен φ(11)=10. Найдем порядки всех элементов в этой группе и отыщем порождающий элемент этой группы, если он существует. Для краткости вместо ab mod 11 будем писать просто ab.
1: 10=1, 11=1. O11(1)=1.
2: 20=1, 21=2, 22=4, 23=8, 24=5, 25=10, 26=9, 27=7, 28=3, 29=6, 210=1. O11(2)=10.
3: 30=1, 31=3, 32=9, 33=5, 34=4, 35=1. O11(3)=5.
4: 40=1, 41=4, 42=5, 43=9, 44=3, 45=1. O11(4)=5.
5: 50=1, 51=5, 52=3, 53=4, 54=9, 55=1. O11(5)=5.
6: 60=1, 61=6, 62=3, 63=7, 64=9, 65=10, 66=5, 67=8, 68=4, 69=2, 610=1. O11(6)=10.
7: 70=1, 71=7, 72=5, 73=2, 74=3, 75=10, 76=4, 77=6, 78=9, 79=8, 710=1. O11(7)=10.
8: 80=1, 81=8, 82=9, 83=6, 84=4, 85=10, 86=3, 87=2, 88=5, 89=7, 810=1. O11(8)=10.
9: 90=1, 91=9, 92=4, 93=3, 94=5, 95=1. O11(9)=5.
10: 100=1, 101=10, 102=1. O11(10)=2.
Действительно, порядки всех элементов делят порядок группы. При этом в группе U11 нашлись порождающие элементы, причем не один, а четыре. Это 2, 6, 7 и 8. Однако не во всех группах Um существуют порождающие элементы, убедимся в этом на следующем примере:
Пример 2.