Atitit RSA非对称加密原理与解决方案

Atitit RSA非对称加密原理与解决方案

1.1. 一、一点历史 1

1.2. 八、加密和解密 2

1.3. 二、基于RSA的消息传递机制  3

1.4. 基于rsa的授权验证机器码 4

1.5. 为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式, 4

1.6. RSA算法是第一个能同时用于加密和数字签名的算法 4

1.1. 一、一点历史

1976年以前,所有的加密方法都是同一种模式:

  (1)甲方选择某一种加密规则,对信息进行加密;

  (2)乙方使用同一种规则,对信息进行解密。

由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"(Symmetric-key algorithm)。

这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。

976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为"Diffie-Hellman密钥交换算法"。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。

这种新的加密模式被称为"非对称加密算法"。

  (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。

  (2)甲方获取乙方的公钥,然后用它对信息加密。

  (3)乙方得到加密后的信息,用私钥解密。

1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。

1.2. 八、加密和解密

有了公钥和密钥,就能进行加密和解密了

私钥和公钥都可以加密和解密消息,且公钥加密的文本只有对应的私钥才能解密,私钥加密的文本也只有对应的公钥才能解密。

1.3. 二、基于RSA的消息传递机制

A像B发送消息MSG
发送方 A
1. 对MSG使用周知的Hash函数计算出数字签名得到SIG
2. 使用私钥对SIG进行加密得到CrypSIG
3. 由于RSA加密算法复杂,因此使用简单的加密算法(密码为PWD)对MSG+CrypSIG进行加密得到CrypMSG
4. 使用B的公钥对PWD加密得到CrypPWD
5. 将CrypPWD, CrypMSG发送给B

接收方 B
1. 使用私钥解密CrypPWD,的搭配PWD1
2. 用PWD1解密CrypMSG得到MSG1+CrypSIG1
3. 计算MSG1的数字签名SIG1
4. 用私钥解密CrypSIG1得到SIG2,若SIG1==SIG2则接受消息,否者丢弃消息

三、使用方式:

①  假设A、B机器进行通信,已A机器为主;

②  A首先需要用自己的私钥为发送请求数据签名,并将公钥一同发送给B;

③  B收到数据后,需要用A发送的公钥进行验证,已确保收到的数据是未经篡改的;

④  B验签通过后,处理逻辑,并把处理结果返回,返回数据需要用A发送的公钥进行加密(公钥加密后,只能用配对的私钥解密);

⑤  A收到B返回的数据,使用私钥解密,至此,一次数据交互完成。

1.4. 基于rsa的授权验证机器码

服务端 A
使用私钥对机器码加密。。

客户端b

使用a的公钥解密授权证书文件。得到里面的机器码,与本地对照。

二、模型分析

RSA算法构建密钥对简单的很,这里我们还是以甲乙双方发送数据为模型

1、甲方在本地构建密钥对(公钥+私钥),并将公钥公布给乙方

2、甲方将数据用私钥进行加密,发送给乙方

3、乙方用甲方提供的公钥对数据进行解密

1.5. 为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,

即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。

1.6. RSA算法是第一个能同时用于加密和数字签名的算法

,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

RSA数字签名机制 - bnufq的专栏 - 博客频道 - CSDN.NET.html

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://blog.cnb.net/attilax

Atiend

上一篇:jquery ajax跨域取数据


下一篇:winform中dataGridView高度自适应填充完数据的高度