RSA求私钥d.我知道RSA中由公钥e求私钥d是要满足e*d(mod n)=1.此处n大家都知道是(p-1)(q-1).

1个回答

  • 你用的语言是哪个?

    我当时是用C语言写的代码,实现最大RSA-2048.

    我把思想给你说一下吧.

    如果我们要定义一个很小的e、d、n、m,那么直接unsigned long int 就可以了.但是这样定义的数据的大小是有限的,即0----2^32-1,所以我们必须改变一下.

    你可以定义一个 unsigned char e_array[513]; //定义513个是为了防止进位丢失

    然后e_array的每一个单元只存你的e的一个bit.

    举个实际的例子如下:

    假如你的数据是3bit的5;

    unsigned char data_array[4];

    那么

    data_array[0] = 0;

    data_array[1] = 1;

    data_array[2] = 0;

    data_array[3] = 1;

    就是这样.

    采用这种方法你必须自己按照二进制的加减乘除的运算规则写出想要相应的代码.