RSA公钥加密算法涉及到一些加密解密的过程,一些概念,比如对称加密算法,非对称加密算法,数字签名,数字证书,CA认证等,小编就这些概念及过程分享一下自己的看法。
WHY?为什么要出现这个算法?
为了数据的安全,保证加密数据不会被破解。
what?是什么?
RSA公钥加密算法:
是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年首次公布,当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。是目前最有影响力的公钥加密算法,能够抵抗到目前为止的绝大多数密码攻击,被ISO推荐为公钥数据加密标准。
CA认证:(CA, Certificate Authority)
电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
作用:
其实就是特别具有权威性的组织机构,大家都信任他,负责公钥体系中的合法性检验的责任,主要就是检查公钥是否正确。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。
CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。
CA 也拥有一个证书(内含公钥)和私钥。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。
如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。
如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。
用图示表示:
对称加密算法:
加密和解密使用同样的规则(“密钥”),此模式有一个最大的弱点:甲方必须把加密规则告诉乙方,否则无法解密,保存和传递秘钥就是最困难的事情。所以引出了非对称加密算法。
非对称加密算法:
他克服了对称加密的弱点,即非对称的可以不用直接传递密钥就能完成解密。他的加密模式如下:
1:A生成2把密钥(公钥和私钥)。公钥是任何人都能获得的,私钥是保密的。
2:B获得A的公钥,然后用它对信息加密
3:A得到加密后的信息,用私钥解密。
用图示表示出来:
现在只要有计算机网络的地方,就会用到RSA算法,非常可靠,密钥越长,就越难破解。
HOW? 下面就来看看数据加密解密的具体流程:
文字描述上述过程:
签名验证:
数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。
数字证书:
CA机构在给公钥加密时,用的是一个统一的密钥对,在加密公钥时,用的是其中的私钥。这样,申请者拿到证书后,在发送数据时,用自己的私钥生成签名,将签名、证书和发送内容一起发给对方,对方拿到了证书后,需要对证书解密以获取到证书中的公钥,解密需要用到CA机构的”统一密钥对“中的公钥,这个公钥也就是我们常说的CA根证书,通常需要我们到证书颁发机构去下载并安装到相应的收取数据的客户端,如浏览器上面。这个公钥只需要安装一次。有了这个公钥之后,就可以解密证书,拿到发送方的公钥,然后解密发送方发过来的签名,获取摘要,重新计算摘要,作对比,以验证数据内容的完整性。
给大家推荐一篇博客:数字签名是什么?
小结:
用博客整理自己的东西,整理自己的思路。