- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NET中不对称算法的加解密实现方法
.NET中对称(symmetric)算法如果我有一个只想自己看到的文档,我不会简单的通过e-mail发送给你。我将使用对称算法加密它;如果有人截取了它,他们也不能阅读该文档,因为他们没有用于加密的唯一密钥。但是你也没有密钥。我需要使用某种方式将密钥给你,这样你才能解密文档,但是不能冒密钥和文档被截取的风险。非对称算法就是一种解决方案。这类算法使用的两个密钥有如下关系:使用公共密钥加密的信息只能被相应的私有密钥解密。因此,我首要求你给我发送你的公共密钥。在发送给我的途中可能有人会截取它,但是没有关系,因为他们只能使用该密钥给你的信息加密。我使用你的公共密钥加密文档并发送给你。你使用私有密钥解密该文档,这是唯一可以解密的密钥,并且没有通过网络传递。 不对称算法比对称算法计算的花费多、速度慢。因此我们不希望在线对话中使用不对称算法加密所有信息。相反,我们使用对称算法。下面的例子中我们使用不对称加密来加密对称密钥。接着就使用对称算法加密了。实际上安全接口层(SSL)建立服务器和浏览器之间的安全对话使用的就是这种工作方式。RSA加密、解密(本文示例都是针对字符串进行加解密)
1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。
它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest,
AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。
RSA的安全性依赖于大数难于分解这一特点。公钥和私钥都是两个大素数(大于100个
十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大
素数的积。
密钥对的产生。选择两个大素数,p 和q 。计算:n = p * q 然后随机选择加密密钥e,
要求 e 和 ( p - 1 ) * ( q - 1 )互质。最后,利用Euclid 算法计算解密密钥d, 满足
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )其中n和d也要互质。数e和n是公钥,d是私钥。
两个素数p和q不再需要,应该丢弃,不要让任何人知道。加密信息 m(二进制表示)时,
首先把m分成等长数据块 m1 ,m2,..., mi ,块长s,其中 2^s = n, s 尽可能的大。对应
的密文是:
ci = mi^e ( mod n ) .................( a )
解密时作如下计算:
mi = ci^d ( mod n ) .................( b )
RSA 可用于数字签名,方案是用 ( a ) 式签名, ( b )式验证。具体操作时考虑到安全性
和 m信息量较大等因素,一般是先作HASH 运算。RSA 的安全性。RSA的安全性依赖于大数
分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定
需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。
目前,RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。
现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。
速度一直是RSA的缺陷。一般来说只用于少量数据加密。
#region RSA加密、解密(方法一)
static void Main()
{
try
{
//Create a UnicodeEncoder to convert between byte array and string.
UnicodeEncoding ByteConverter = new UnicodeEncoding();
//Create byte arrays to hold original,encrypted,and decrypted data.
byte[] dataToEncrypt = ByteConverter.GetBytes(abcdefghijklmnopqrstuvwxyz);
byte[] encryptedData;
byte[] decry
您可能关注的文档
最近下载
- 1425调剂学(本)-国家开放大学2021年1月至2022年1月期末考试真题及答案(202101-202201三套).pdf VIP
- 师资队伍建设中长期发展规划.docx VIP
- 通信工程安全技术交底.ppt VIP
- 幼儿园 大班社会《特殊的车辆》.pptx VIP
- JTJ-T212-2010地下工程渗漏治理技术规程.doc VIP
- 2024年宁夏中考生物·地理合卷试题卷(含答案解析).docx
- 2024年江苏省公务员省考《行测》(A类)真题(含答案).pdf VIP
- 初中英语语法-八大时态之一般过去时课件.pptx VIP
- 教学课件:《商法(第四版)》范健.ppt
- 2025学校师资队伍建设三年发展规划.docx VIP
文档评论(0)