Math Can';我们无法让RSA加密背后的数学原理发挥作用

Math Can';我们无法让RSA加密背后的数学原理发挥作用,math,encryption,rsa,Math,Encryption,Rsa,下周我将对此进行测试,我正在浏览一些素数的基本示例。书中的例子似乎没有遇到这个问题 第一步-选择两个素数(我选择p=3,q=7) 第二步-计算n=pq=21 第三步-计算总和(n)=总和(p)*总和(q)=2*6=12 第四步-选择e,使1

下周我将对此进行测试,我正在浏览一些素数的基本示例。书中的例子似乎没有遇到这个问题

第一步-选择两个素数(我选择p=3,q=7)

第二步-计算n=pq=21

第三步-计算总和(n)=总和(p)*总和(q)=2*6=12

第四步-选择e,使1 第五步-选择d,使d*e%tot(n)=1


据我所知,d必须是一个整数。这是错误的结论吗?或者5在这种情况下不是一个有效的e吗?

是的,它必须是一个整数。第五步要寻找的是。基本上,
d
是整数,因此对于某个整数
m
,d*e=m*tot(n)+1,或者换句话说,
d*e
tot(n)的倍数的一倍。只要
e
tot(n)
是互质,
e
将有一个逆-在你的例子中,
d
正好是5:
d*e=5*5=25=2*tot(n)+1
是的,d是一个整数,计算为e的模逆。下面是一个函数,用于计算数字x相对于模m的倒数:


如果您想了解更多信息,我在上有一个RSA计算示例。

我忘记了在第一个截止点之后的某个时间,我在寻找5*d=13(不考虑其余的)。当我说gcd(5,12)=1时,我也做了一个foobar,因为它是3。谢谢你的来信。
function inverse(x, m)
    a, b, u := 0, m, 1
    while x > 0
        q := b // m
        x, a, b, u := b % x, u, x, a - q * u
    if b == 1 return a % m
    error "must be coprime"