Как я могу получить закрытый ключ из открытого ключа RSA?

Можно ли получить закрытый ключ для шифрования RSA, учитывая:

Public key:
n=14471312083473289027
e=17

Я узнал что:

p=2612029591
q=5540255797

Теперь, как мне найти d??

Откуда я взял описание


person nkvp    schedule 21.11.2011    source источник


Ответы (2)


Закрытый ключ – это целое число d, такое что e*d = 1 по модулю как p-1, так и q-1. . Подробности приведены во втором ответе (тот, который набрал более 30 голосов) на вопрос, на который вы ссылаетесь.

person Thomas Pornin    schedule 21.11.2011
comment
как узнать 1 мод (p-1)(q-1) т.е. 1 мод 14471312075321003640 (извините, если это глупый вопрос) - person nkvp; 21.11.2011
comment
a mod b означает остаток от евклидова деления a на b. Таким образом, 1 mod 1447... равно 1. Здесь достаточно найти d такое, что произведение e и d при уменьшении по модулю (p-1)(q-1) дает 1; это означает, что d является модульным обратным к e. См. соответствующую страницу Википедии. Большинство библиотек для вычислений больших целых чисел включают функцию вычисления модульных инверсий (например, BigInteger.modInverse(), если вы используете язык программирования Java). - person Thomas Pornin; 21.11.2011
comment
Большое Вам спасибо. Я нашел значение d, используя модульную инверсию. - person nkvp; 22.11.2011

Практик РСА:

e.d=1+k.@n
where k=1,e=17,n=14471312083473289027;

найди тип данных для n, получишь данс!


class temp{
    public static void main(String[] args){
    int d,e,inc=1;
    datatype n=14471312083473289027;
    e=17;
    n=60;

        do{
            d=(1+(inc*n))%e;
            inc++;
        }while(d!=0);
        System.out.println(inc);

    }
}

После получения вывода добавьте inc к следующей формуле: затем ans=[((inc-1)*k)+1]/e;

person Mayuresh    schedule 09.02.2012