Квадраты и псевдоквадраты.
Пусть n – модуль RSA, то есть n=pq, p, q – различные большие простые числа.
Возьмем произвольное число a: (a,n)=1. Возможны следующие случаи:
1) . Тогда число a является квадратичным вычетом, или квадратом, по модулю n.
2) , , или , . Тогда , и a не является квадратом по модулю n. То есть, не зная разложения модуля RSA на простые сомножители и получив отрицательное значение символа Якоби, можем с определенностью сказать, что a – не квадрат по модулю n.
3) , тогда a не является квадратом по модулю n, но символ Якоби, как и для квадрата по модулю n, равен единице: . То есть, не зная разложения модуля n на простые сомножители и получив положительное значение символа Якоби, не можем наверняка определить, является ли a квадратом по модулю n. Числа a: называются псевдоквадратами по модулю n=pq. Множество псевдоквадратов по модулю n обозначается .
Утверждение (о мощности множеств квадратов и псевдоквадратов по модулю RSA).
n=pq, p, q – различные простые числа |Q(n)|=| |=φ(n)/4.
Доказательство:
Согласно доказанной в п.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 на простые сомножители, сможем вычислить и с помощью полиномиального алгоритма.
На момент написания этого пособия не имелось никакой информации о том, проще ли задача различения квадратов и псевдоквадратов, чем задача факторизации.
Числа Блюма.
Числа вида 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 может быть уничтожен.
Адресат осуществляет расшифрование следующим образом:
, i=1,2,…,m.
Условная стойкость криптосистемы Гольдвассер-Микали основана на предположительной сложности алгоритма распознавания квадратов и псевдоквадратов по модулю Блюма без знания разложения модуля на простые сомножители.
Данная криптосистема имеет существенный недостаток – размер шифртекста значительно превышает размер открытого текста, ведь каждый бит последнего при шифровании преобразуется в число такой же размерности, как n.
Дата добавления: 2015-11-28; просмотров: 2270;