Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
RSA покоя не даёт. (Диагноз.) 17.01.05 00:27 Число просмотров: 2065
Автор: Heller <Heller> Статус: Elderman Отредактировано 18.01.05 10:02 Количество правок: 1
|
Опять появилась идея по криптоанализу RSA, но вот мозга пока не хватает, что бы до конца довести.
Основана идея на методе бесключевого чтения RSA. Если кто с ним не знаком, расскажу вкратце.
Для получения открытого текста без ключа нам надо шифровать шифротекст до тех пор, пока мы не получим опять же шифротекст. Значит, на предыдущем шаге мы имели открытый текст. Если в формулах:
ci=Ee,n(ci)
Здесь в качестве c0 выступает сам c. Значит, если ck=c0, то ck-1=m.
А дальше идут уже мои размышления. Фактически, для такого метода криптоанализа нам надо подсчитать:
(...((ce mod n)e mod n)e...)e=c
Это же можно записать так:
cek mod n=c
cek-1 mod n=m
Остаётся найти k. Вообще из этой формулы видно, что d=ek-1 (здесь стОит вспомнить, что ключей d бесконечное множество). При этом, т. к. d не зависит от выбранного шифротекста, можно утверждать, что значение k для любого шифротекста будет одинаковым.
По определению:
e*d=e*ek-1=ek=1 (mod Ф(n))
При этом нас так же удовлетворит в качестве k либое значение k*j, где j - произвольное натуральное число и не удовлетворит ни одно k'<k. Отсюда:
ek*j=1 (mod Ф(n))
При этом, опять же по определению, НОД(e,Ф(n))=1. Перед нами, вообще говоря, теорема Эйлера в несколько непривычном виде, а значит, что k=Ф(Ф(n)).
То есть для криптоанализа RSA достаточно вычислить Ф(Ф(n)). Если найдётся способ вычисления такой функции минуя вычисление Ф(n), то взлом RSA не будет представлять из себя проблему. Так же, исходя из всего вышесказанного, саму Ф(Ф(n)) нам искать не обязательно - достаточно найти её с точностью до натурального множителя. Найти способ такого вычисления я не смог, но смог кое-что определить относительно этой функции.
Во-первых, n=p*q => Ф(n)=(p-1)(q-1), причём p и q не чётные, а значит Ф(n) кратно четырём. Если ввести переменую Ф'=Ф(n)/4, то тогда Ф(Ф(n))=Ф(4*Ф')=2*Ф(2*Ф') - это свойство функции Эйлера элементарно доказывается из определения для любого кратного множителя. То есть ясно, что Ф(Ф(n)) - чётное.
Во-вторых,Ф(n)|=|n2 (вертикальными скобками я обозначил длину числа). Значит,Ф(Ф(n))|<|n2.
Третее, уже более интересное. Если взять множество всех шифротекстов C (|C|=Ф(n), т. к. по условию НОД(m,n)=1, m<n) и задать на нём отношение:
r={(x,y) in CxC|Exists k:y=xek mod n}
Очевидно, что это отношение эквивалентности, которое разбивает множество шифротекстов на какое-то число подмножеств, причём мощность каждого из подмножеств одинакова и равна k=Ф(Ф(n)). Ну а отсюда уже следует, что Ф(Ф(n)) - это один из сомножителей Ф(n).
Это всё что мне удалось надумать. Тупик. Но интуиция подсказывает, что вообще в направление нахождения этого k стоит подумать. Может быть, у кого будут какие идеи?
-----------
[upd]
Ну если не мысли, то хотя бы мнения...
|
- RSA покоя не даёт. (Диагноз.) - Heller 17.01.05 00:27 [2065]
|
|
|