消息m是42,致盲因子r是11,所以提供给权限的值是m'计算如下:
m' = m * re mod N
m' = 42 * 1111 mod 85
m' = 62
当局将通过计算s' 来签署此协议:
s' = m'd mod N
d 是私有指数。
因此我们必须计算我们知道的满足关系的私有指数:
e * d = 1 mod ɸ(N)
其中ɸ 是欧拉的全部函数。根据 RSA 算法的定义,N 是两个素数 p 和 q 的乘积,由于 N 很小,我们可以很容易地分解它来确定 p = 5 和 q = 17。
因此根据ɸ的定义:
ɸ(N) = (p-1)(q-1)
ɸ(N) = (5-1)(17-1) = 64
使用提供的结果,我们可以确定:
e * d = 1 mod ɸ(N)
11 * d = 1 模 64
d = 35
所以,当局应该将盲签名s'返回给我们,计算如下:
s' = m'd mod N
s' = 6235 mod 85
s' = 73
要计算签名,我们需要计算s:
s = s' * r-1 mod N
这里,r<sup>-1</sup> 是 r 的倒数,因此:
r * r-1 = 1 mod N
再次使用给定的结果,我们可以确定r<sup>-1</sup> 为:
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 - 我们的原始消息。