能力值:
( LV9,RANK:610 )
|
-
-
2 楼
百度搜索《战争中的数学--军事密码学》 里面有rsa的介绍。比较详细。可以学习一下。
//*****************************************************
//
// Author: blueapplez
// Email: blueapple1987@163.com
// Home: http://hi.baidu.com/blueapple_c/home
// Time: 2011-05
//
//*********************************************************
/*
// 随意选择两个大的质数p和q,p不等于q,计算N=pq。
// 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)
// 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)
// 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1))
1.签名系统:私钥签名公钥验证。
eg. 您向朋友传送一段数据附加您的数字签名,您需要对您的数据进行MD5之类的运算以取得数据的"指纹",
再对"指纹"进行加密,加密将使用您自己的密钥对中的不公开的私钥。您的朋友收到数据后,用同样的
运算获得数据指纹,再用您的公钥对加密指纹进行解密,比较解密结果与他自己计算出来的指纹是否一
致,即可确定数据是否的确是您发送的、以及在传输过程中是否被篡改。
2.加密系统:公钥加密私钥解密。
eg. 您向朋友传送加密数据,您希望只有您的朋友可以解密,这样的话,您需要首先获取您朋友的密钥对中
公开的2个密钥,e及n。然后用这个密钥进行加密,这样密文只有您的朋友可以解密,因为对应的私
钥只有您朋友拥有。
n,e 公钥, 其中e是一个int型的整数且与(p-1)(q-1)互斥
d 私钥
*/
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
都说是公钥了,10001(十进制是65537)挺好的啊,大家都知道。那是十六进制表示形式。
因为那个是要做指数运算的,1的比特少可以减少运算量,而且这个数值大小也比较合适。很久很久以前好像是用3,后来才改用10001的。
|
|
|