Решенные билеты (1085496), страница 3
Текст из файла (страница 3)
Доказательство. Можем предполагать, что . Полагаем
Имеем
С другой стороны.
поэтому
или
Теорема 2. Пусть G = < G, , 1 > - конечная группа; а и b элементы группы G; t = ord b;
Тогда число l можно найти, выполнив не более чем операции умножения на элементы группы G.
Доказательство. Полагаем . Рассмотрим ряды
Если разрешимо относительно l, представим l в виде
Так как t = ord b, то b' = bxr+y = а в том и только в том случае, когда
т.е. когда найдется элемент ряда (1.3), который совпадет с каким-нибудь членом ряда (1.4).
Нетрудно сосчитать число операций, позволяющих установить равенство (1.2). При вычислении элементов ряда (1.3) потребуется выполнить не более r-2 умножений. Для вычисления в силу следующей леммы
Лемма. Чтобы вычислить степень mn , где m – элемент некоторого кольца, а n – натуральное число, достаточно выполнить не более
умножений.
требуется выполнить не более чем умножений. И не более чем r - 1 умножений потребуется для вычисления всех членов ряда (1.4). Поэтому общее число операций для решения уравнения (1.2) не превосходит
Теорема 3. Пусть G = < G; •, 1 > - конечная группа; а и b -элементы группы G; t = ord b; b'= a. И пусть, кроме того, число t составное:
Тогда дискретный логарифм элемента а по основанию b можно вычислить, выполнив не более чем за операций.
Доказательство. Нетрудно заметить, что любое целое число l с условием однозначно представимо в виде:
Равенство bl = а можно записать в виде
Возводя обе части равенства (1.6) в степень r1 и замечая, что t =r1 r2 , получим
А это удобно записать в виде
где .
Легко проверить, что ord b1 = r2. По теореме 2 дискретный логарифм a1 по основанию b1, т.е. m1, можно вычислить при помощи не более чем операций. Из равенства (1.6) сразу получим
Аналогично, l1 можно вычислить при помощи не более чем за операций. Далее,
можно вычислить соответственно не более чем за
операций. Отсюда и следует наше утверждение.
Замечание. Здесь и дальше при подсчете числа операций, необходимых для вычисления индекса элемента конечного поля, учитываем только число умножений в конечном поле и не принимаем во внимание любые логические операции и операции в поле рациональных чисел, если такие потребуется выполнять.
Теорема 4. Пусть сохраняются условия теоремы 3. Если r1 ,r2, r3 - натуральные (>1) числа, ord b = t и t = r1 .r2. r3 , то для вычисления индекса элемента а при основании b достаточно выполнить не более
операций.
Доказательство. Пусть, как в теореме 3 bl = а , и пусть l1, m1 - целые, тогда
Полагаем
Имеем
Обозначим
Получим
Оценим количество операций, достаточное для выполнения всех промежуточных шагов. При этом воспользуемся теоремами 2,3 и леммой:
Итак, общее число операций равно
Теорема 5. Если - есть произведение натуральных чисел, то решение уравнения (1. 1) можно найти, выполнив не более чем
операций. При этом величины
определяются условиями:
Доказательство. Чтобы оценить верхнюю границу числа операций, достаточную для отыскания индекса а при основании b, как и ранее, представим число l в виде:
где m1 и l1 -целые с условиями
Тогда получим
Далее находим
Оценив количество операций, достаточное для выполнения всех промежуточных шагов, и применив индуктивное предположение, получим объявленный результат. [2]
Вопрос 9
Дискретный корень
Пусть G — некоторая конечная группа. Для а N, x G положим fa(x)=xa. Рассмотрим обратную функцию fa-1(x)=x1/a — дискретный корень.
Вычисление дискретных корней в Zp*, где р — простое, не представляет трудностей. В самом деле, xp-1=1 по Малой теореме Ферма, следовательно, x1/a=xc, где aс 1 (mod p-1). Таким образом, в качестве односторонней функции имеет смысл использовать возведение в степень только по составному модулю.[1]
Вопрос 10
Квадратный корень по составному модулю (функция Рабина)
Специальный случай дискретного корня — квадратный корень в Zn*. Рассмотрим функцию f: Zn*Zn*, f(x)=х 2; f(Zn*)=QRn — группа квадратичных вычетов по модулю п. Каждый квадратичный вычет может иметь несколько квадратных корней в Zn . Если х — квадратный корень из у, то п-х — тоже квадратный корень из y.
Если р — простое число, то Zp* — циклическая группа. Элемент у Zp* тогда и только тогда является квадратичным вычетом по модулю р, когда y = gt, где g — образующий элемент Zp*, a t — четное. Эквивалентное условие формулируется через символ Лежандра (Якоби) . Значит, квадратичных вычетов в Zp* ровно половина и каждый из них имеет два квадратных корня:
Если к тому же p=4k+3, то — нечетно и ровно один из корней {x0,x1} является квадратичным вычетом (какой именно — зависит от четности t /2). Он называется главным квадратным корнем и равен x=y(p+1)/4,
Поскольку QRp — группа, y(p+1)/4QRp. Заметим, что при p4k+3 квадратный корень можно найти, если известно какое-нибудь t Zp\QRp (квадратичный невычет по модулю р). Пусть n=p1...pl — составное, при этом простые делители pi различны и разложение п известно. В этом случае у QRn тогда и только тогда, когда для любого i справедливо уi=у mod pi QRpi . При этом можно найти набор xi Zpi* таких, что хi2 yi (mod pi), и скомбинировать из них с помощью теоремы 3.1 х Zn* — квадратный корень из у.
Теорема Китайская теорема об остатках.
Если n=n1n2…nk, ni взаимно просты, то кольцо Zn можно представить в виде прямой суммы колец Zni.
Группа QRn содержит (n) 2-l элементов, где (n) — функция Эйлера, количество элементов в Zn*. Каждый элемент из QRn имеет 2l квадратных корней.
Определение, n — число Блума (или Блама, В1ит), если п=р1 ...рl, pi — различные простые числа, и для всех i выполнено pi mod 4=3.
Для любого у QRn , где п — число Блума, ровно один из квадратных корней из у, а именно тот, для которого все xi QRn, сам является квадратичным вычетом и называется главным квадратным корнем из у.
Теорема. Если n=pq, p и q — различные простые числа, то умение вычислять квадратный корень по модулю n позволяет разложить n на множители.
Доказательство. Пусть имеется полиномиальный алгоритм вычисления требуемого квадратного корня по модулю п. Построим вероятностный полиномиальный алгоритм разложения n на множители.
Имеется в виду, что наш алгоритм будет иметь доступ к некоторому источнику случайности и среднее время его работы будет ограничено (log2n)c для некоторой константы с. Дня любой константы d можно модифицировать алгоритм так, чтобы он всегда завершался за время (log2n)c для некоторой константы с и выдавал правильный ответ с вероятностью не меньше
l-(log2n)-d
-
Найти х1 —квадратный корень из х02.
-
Если x0+x10(modn) или x0-x10(modn), повторить попытку, начиная с шага 1. Поскольку х02 имеет четыре квадратных корня и два из них подходят, вероятность удачного выбора x0 ограничена снизу константой, не зависящей от п.
-
Положим a= x0+x1, b=x0-x1 .Отметим, что ab=xQ2-x120 (mod n), ab=kpq в Z, a0(mod n), b0 (mod n). Значит, a=k0p, b=klq (либо наоборот).
-
Найти р и q с помощью алгоритма Евклида как наибольшие общие делители а или b и n.
Теорема. Если n — число Блума и факторизация трудновычислима, то операция возведения в квадрат по модулю р является односторонней перестановкой QRn.
Доказательство представляет собой обобщение изложенного выше.
Более того, утверждается, что, не зная разложения п на множители, трудно вычислить даже младший бит квадратного корня. Имеется в виду, что если существует вероятностный полиномиальный алгоритм для угадывания этого бита с вероятностью, не меньшей ½+q(log2 n)-1 , где q — многочлен, то существует такой алгоритм и для разложения числа Блума на множители.
Функцией Рабина (Rabiri) называется функция возведения в квадрат по модулю n=pq, где р и q — простые числа. Чтобы затруднить факторизацию, накладывается дополнительное условие, что р и q состоят каждое из (log2 n)/2 битов.[1]
Вопрос 11
Квадратичные вычеты
Определение. Если сравнение x 2 a (mod p ) имеет решения, то число а называется квадратичным вычетом по модулю р . В противном случае, число а называется квадратичным невычетом по модулю р .
Итак, если а – квадрат некоторого числа по модулю р , то а -“квадратичный вычет”, если же никакое число в квадрате не сравнимо с а по модулю р , то а - “квадратичный невычет”.
Пример. Число 2 является квадратом по модулю 7 , т.к. 4 2 16 є 2(mod7). Значит, 2 - квадратичный вычет. (Сравнение x 2 2(mod7) имеет еще и другое решение: 3 2 9 2(mod7).) Напротив, число 3 является квадратичным невычетом по модулю 7 , т.к. сравнение x 2 3(mod7) решений не имеет, в чем нетрудно убедиться последовательным перебором полной системы вычетов: x = 0,1,2,3,4,5,6.[4]