非对称加密
公开金钥加密 (英语:Public-key cryptography,也称为非对称金钥加密),该思想最早由雷夫·莫寇(Ralph C. Merkle)在1974年提出[1],之后在1976年。狄菲(Whitfield Diffie)與赫爾曼(Martin Hellman)兩位學者以單向函數與單向暗門函數為基礎,為發訊與收訊的兩方建立金鑰。 该加密算法使用两个不同的金钥,各名為加密金钥和解密金钥。前者公开,又称公开金钥,简称公钥。后者保密,又称私有金钥,简称私钥。这两个金钥是数学相关,用某用户加密金钥加密后所得的信息只能用该用户的解密金钥才能解密。 RSA算法(由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是著名的公开金钥加密算法,相關公鑰密碼系統還有El Gamma、RSA、橢圓曲線密碼學(ECC)等。 公钥加密的另一用途是身份验证,用私钥加密的信息,可以用公钥对其解密,接收者由此可知这条信息确实来自于拥有私钥的某人,公钥的形式就是数字证书。 =========================================================================== 数据公钥加密和认证中的私钥公钥 ------加密和认证 首先我们需要区分加密和认证这两个基本概念。 加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听***。其重点在于数据的安全性。 身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。 ------公钥和私钥 其次我们还要了解公钥和私钥的概念和作用。 在现代密码*中加密和解密是采用不同的**(公开**),也就是非对称**密码系统,每个通信方均需要两个**,即公钥和私钥,这两把**可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。 公钥私钥的原则: 1. 一个公钥对应一个私钥。 2. **对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。 3. 如果用其中一个**加密数据,则只有对应的那个**才可以解密。 4. 如果用其中一个**可以进行解密数据,则该数据必然是对应的那个**进行的加密。 非对称**密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。 ------基于公开**的加密过程 比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下: 1. Bob将他的公开**传送给Alice。 2. Alice用Bob的公开**加密她的消息,然后传送给Bob。 3. Bob用他的私人**解密Alice的消息。 上面的过程可以用下图表示,Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。
------基于公开**的认证过程 身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。 还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用Alice的私钥对文件签名发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。整个身份认证的过程如下: 1. Alice用她的私人**对文件加密,从而对文件签名。 2. Alice将签名的文件传送给Bob。 3. Bob用Alice的公钥解密文件,从而验证签名。 上面的过程可以用下图表示,Alice使用自己的私钥加密,Bob用Alice的公钥进行解密。
转载于:https://blog.51cto.com/seanyxie/1375880