首页 新闻 搜索 专区 学院

有人遇见过吗? 关于RSA 算法的一个问题(悬赏十分)

0
悬赏园豆:50 [待解决问题]

现在知道一个函数

hex function(hex input, hex exponent, hex publickey)

{

}

 当调用函数时, 传参为 function(128 byte 已加密数据, hexnumber 03,  128 byte publickey)

返回的是解密的数据。

请问有人知道函数内部怎么工作的吗,可以用伪代码写一下,谢谢。

RobotAll的主页 RobotAll | 初学一级 | 园豆:150
提问于:2011-04-27 10:17
< >
分享
所有回答(2)
0

公钥和私钥的产生(来自百度百科)

假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她可以用以下的方式来产生一个公钥和一个私钥

  1. 随意选择两个大的质数pqp不等于q,计算N=pq
  2. 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)
  3. 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)
  4. 用以下这个公式计算dd× e ≡ 1 (mod (p-1)(q-1))
  5. pq的记录销毁。

(N,e)是公钥,(N,d)是私钥。(N,d)是秘密的。Alice将她的公钥(N,e)传给Bob,而将她的私钥(N,d)藏起来。

[编辑] 加密消息

假设Bob想给Alice送一个消息m,他知道Alice产生的Ne。他使用起先与Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c

 n^e \equiv c\ (\mathrm{mod}\ N)

计算c并不复杂。Bob算出c后就可以将它传递给Alice。

[编辑] 解密消息

Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以用以下这个公式来将c转换为n

 c^d \equiv n\ (\mathrm{mod}\ N)

得到n后,她可以将原来的信息m重新复原。

解码的原理是

 c^d \equiv n^{e \cdot d}\ (\mathrm{mod}\ N)

以及ed ≡ 1 (mod p-1)和ed ≡ 1 (mod q-1)。由费马小定理可证明(因为pq是质数)

 n^{e \cdot d} \equiv n\ (\mathrm{mod}\ p)      和      n^{e \cdot d} \equiv n\ (\mathrm{mod}\ q)

这说明(因为pq不同的质数,所以pq互质)

massinger | 园豆:704 (小虾三级) | 2011-04-27 10:30
谢谢关注,能否再具体点呢,比如写个伪代码的函数,我看了您的答案后还是有点晕,原谅本人数学基础比较差.
支持(0) 反对(0) RobotAll | 园豆:150 (初学一级) | 2011-04-27 11:05
0

最简单的例子,A要传一条消息给B ,A的消息是 "AAA" ,在发给B之前 通过某种加密方式加密之后成 “31BREWY” 再给B ,B收到后,根据对应的解密方式 解密后得到想要的内容 "AAA" 

头衔 | 园豆:364 (菜鸟二级) | 2011-04-27 11:43
没错,是这个方式,我想知道的是如何在已经知道加密后的数据,public key, 和exponent 的情况下,解密出加密前的数据呢, 就是您提到的解密方式, 最好能有伪代码, 谢谢。
支持(0) 反对(0) RobotAll | 园豆:150 (初学一级) | 2011-04-27 13:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册