Security RSA算法实例
在这个简单的示例中,假设一个机构使用一个公共RSA密钥(e=11,n=85)进行签名 文件。你希望他们在你的信息(42号)上签名,但你不想 让他们知道他们签的是什么,所以你使用11的盲因子“r”。 在计算中,您可能希望使用以下结果:Security RSA算法实例,security,encryption,cryptography,rsa,public-key-encryption,Security,Encryption,Cryptography,Rsa,Public Key Encryption,在这个简单的示例中,假设一个机构使用一个公共RSA密钥(e=11,n=85)进行签名 文件。你希望他们在你的信息(42号)上签名,但你不想 让他们知道他们签的是什么,所以你使用11的盲因子“r”。 在计算中,您可能希望使用以下结果: 11 ∗ 35 = 1 mod 64 11 ∗ 31 = 1 mod 85 展示简短的工作 1) 你应该授权签署什么号码 2) 当局会给你多少电话 3) 从这个数字中提取42的签名 4) 使用私钥验证此答案 我已经看过了,如果有人能和我一起指导这个例子,我将不胜感
11 ∗ 35 = 1 mod 64
11 ∗ 31 = 1 mod 85
展示简短的工作
1) 你应该授权签署什么号码
2) 当局会给你多少电话
3) 从这个数字中提取42的签名
4) 使用私钥验证此答案
我已经看过了,如果有人能和我一起指导这个例子,我将不胜感激。消息
m
是42,盲因子r
是11,因此提供给当局的值是m'
,计算如下:
m' = m * re mod N
m' = 42 * 1111 mod 85
m' = 62
s' = m'd mod N
s' = 6235 mod 85
s' = 73
其中d
是专用指数
因此,我们必须计算私有指数,我们知道私有指数是满足以下关系的值:
e * d = 1 mod ɸ(N)
因此,利用提供的结果,我们可以确定:
e * d = 1 mod ɸ(N)
11 * d = 1 mod 64
d = 35
要计算签名,我们需要使用以下公式计算s
:
s' = m'd mod N
s = s' * r-1 mod N
再次使用给定的结果,我们可以确定r-1
,如下所示:
r * r-1 = 1 mod N
11 * r-1 = 1 mod 85
r-1 = 31
您的问题是要使用私钥验证,但是签名是使用公钥验证的,所以我在这里要做的就是:
为了确认这是正确的签名,我们验证:
m = se mod N
m = 5311 mod 85
m = 42
m=东南模N
m=5311 mod 85
m=42
因此,我们已经证明签名是有效的,因为
m=42
-我们的原始消息。消息m
是42,盲因子r
是11,因此提供给管理局的值m'
计算如下:
m' = m * re mod N
m' = 42 * 1111 mod 85
m' = 62
s' = m'd mod N
s' = 6235 mod 85
s' = 73
其中d
是专用指数
因此,我们必须计算私有指数,我们知道私有指数是满足以下关系的值:
e * d = 1 mod ɸ(N)
因此,利用提供的结果,我们可以确定:
e * d = 1 mod ɸ(N)
11 * d = 1 mod 64
d = 35
要计算签名,我们需要使用以下公式计算s
:
s' = m'd mod N
s = s' * r-1 mod N
再次使用给定的结果,我们可以确定r-1
,如下所示:
r * r-1 = 1 mod N
11 * r-1 = 1 mod 85
r-1 = 31
您的问题是要使用私钥验证,但是签名是使用公钥验证的,所以我在这里要做的就是:
为了确认这是正确的签名,我们验证:
m = se mod N
m = 5311 mod 85
m = 42
m=东南模N
m=5311 mod 85
m=42
因此,我们已经证明签名是有效的,因为
m=42
-我们的原始消息。这肯定是有意义的,我想知道你是如何计算m'=42*11^11 mod 85=62的?你用过计算器吗?还是有什么诀窍?你是如何计算出结果的?谢谢你的帮助。一个有足够数字的计算器可以直接计算,但是你也可以用普通的计算器或者纸笔来轻松地计算,把计算分解,当数字开始变得太大时应用模。例如:42*11^11=42*11*(11^5)^2=42*11*161051^2=42*11*61^2=42*11*3721=42*11*66=30492=62现在我明白了,谢谢。还有,你是如何计算11*d=1 mod 64的;d=35?“我正在看它,但我不确定到底该怎么做才能做到这一点。”注意:有一种叫做的算法可以使用。对于如此小的数字,您可以尝试所有的可能性。@注意,您的问题中给出了值(这是两个计算中的第一个,您说“在您的计算中,您可能希望使用以下结果”)。这肯定是有意义的,我想知道您是如何计算m'=42*11^11 mod 85=62的?你用过计算器吗?还是有什么诀窍?你是如何计算出结果的?谢谢你的帮助。一个有足够数字的计算器可以直接计算,但是你也可以用普通的计算器或者纸笔来轻松地计算,把计算分解,当数字开始变得太大时应用模。例如:42*11^11=42*11*(11^5)^2=42*11*161051^2=42*11*61^2=42*11*3721=42*11*66=30492=62现在我明白了,谢谢。还有,你是如何计算11*d=1 mod 64的;d=35?“我正在看它,但我不确定到底该怎么做才能做到这一点。”注意:有一种叫做的算法可以使用。对于这样小的数字,您可以尝试所有的可能性。@注意,数值在您的问题中给出(这是两个计算中的第一个,您说“在您的计算中,您可能希望使用以下结果”)。