消息m
是42和盲因子r
是11,因此提供给权威的值是m'
计算为:
s' = m'd mod N
:
m' = m * re mod N
m' = 42 * 1111 mod 85
m' = 62
权威将通过使用计算s'
签署此
其中d
是私人指数。
因此,我们必须计算私人指数,我们知道要满足的关系的值:
e * d = 1 mod ɸ(N)
哪里ɸ
是欧拉函数。 N
是两个素数p
和q
每RSA算法的定义的产品,并且由于N较小,我们可以很容易地因素,以确定p = 5
和q = 17
。
因此,通过定义ɸ
:
ɸ(N) = (p-1)(q-1)
ɸ(N) = (5-1)(17-1) = 64
使用所提供的结果,因此,我们可以判断:
e * d = 1 mod ɸ(N)
11 * d = 1 mod 64
d = 35
因此,当局应返回给我们盲签名s'
计算公式为:
s' = m'd mod N
s' = 6235 mod 85
s' = 73
要计算t他的签名,我们需要使用计算s
:
s = s' * r-1 mod N
这里,r-1
是逆r
这样的:
r * r-1 = 1 mod N
再次使用给出的结果我们可以判断r-1
为:
r * r-1 = 1 mod N
11 * r-1 = 1 mod 85
r-1 = 31
因此计算s
变成:
s = s' * r-1 mod N
s = 73 * 31 mod 85
s = 53
你的问题说来验证这个使用私钥,但签名是使用公钥验证,所以这就是我在这里做的:
要确认这是正确的签名,我们验证:
m = se mod N
m = 5311 mod 85
m = 42
我们就此表明签名是有效的,因为m = 42
- 我们的原始邮件。
这一定是有道理的,我想知道你是怎么计算m'= 42 * 11^11 mod 85 = 62?你使用了计算器还是有一个诀窍,你是如何计算结果的?感谢您的帮助 – noted
有足够数字的计算器可以直接做到这一点,但您也可以使用普通计算器或笔纸轻松完成计算,方法是将计算结果降低,然后在数字开始时应用模数太大了。例如:42 * 11^11 = 42 * 11 *(11^5)^ 2 = 42 * 11 * 161051^2 = 42 * 11 * 61^2 = 42 * 11 * 3721 = 42 * 11 * 66 = 30492 = 62 – Iridium
现在我明白了,谢谢。你是怎么计算11 * d = 1 mod 64的; d = 35?我正在看它,但我不确定如何做到这一点。 – noted