RSA加密,签名,证书

一、加密简介

加密算法种类特征优点缺点代表典型应用场景
单项加密(不可逆的加密)
  • 定长输出: 无论原始数据是多大,结果大小都相同的
  • 雪崩效应: 输入的微小改变,将会引起结果的巨大改变
雪崩,不可逆MD5(128位)、SHA1、SHA256、SHA384、SHA512特征码
单钥加密(可逆),也叫作对称加密在单钥加密的情况下,密钥只有一把,发送方使用秘钥加密,接收方使用同样的秘钥解密。一旦密钥泄漏,密码也就被破解。加密解密速度快不安全,局限性,需要知道对称加密秘钥DES(Data Encryption Standard)ssl/tls的第二阶段
双钥加密,也叫作非对称加密。

a) 公钥和私钥是一一对应的关系,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。

b) 所有的(公钥, 私钥)对都是不同的。

c) 用公钥可以解开私钥加密的信息,反之亦成立。

d) 同时生成公钥和私钥应该相对比较容易,但是从公钥推算出私钥,应该是很困难或者是不可能的。

通常个人保存私钥,公钥是公开的(可能同时多人持有)

安全性极高加密解密速度较慢,无法对大规模的数据进行加密
 
RSA( Rivest-Shamir-Adleman、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
  • 数字签名
  • HTTPS/OPENSSL/SSL
  • 区块链

非对称加密过程举例:

1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。

2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。

3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。

4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密

二、什么叫做签名,验签?

我们继续上述过程

5. 鲍勃给苏珊回信,他写完后先用Hash函数,生成信件的摘要(digest)。(注意,hash过程是不可逆的,也就是摘要不可能在通过类似反哈希的手段得到哈希之前的原始内容)

6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。

7.鲍勃将这个签名,附在信件下面,一起发给苏珊。(这个地方的信件的原始内容应该是明文,只不过签名是加密的)

8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。

9. 苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过

  加密和签名都是为了安全性考虑,但略有不同。简单的说,加密是为了防止信息被泄露,而签名是为了防止信息被篡改

总结:公钥加密、私钥解密、私钥签名、公钥验签。

  但是,综合两个场景你会发现,第一个场景虽然被截获的消息没有泄露,但是可以利用截获的公钥,将假指令进行加密,然后传递给A。第二个场景虽然截获的消息不能被篡改,但是消息的内容可以利用公钥验签来获得,并不能防止泄露。所以在实际应用中,要根据情况使用,也可以同时使用加密和签名,比如A和B都有一套自己的公钥和私钥,当A要给B发送消息时,先用B的公钥对消息加密,再对加密的消息使用A的私钥加签名,达到既不泄露也不被篡改,更能保证消息的安全性。

  

三、为什么需要证书?

我们在继续上述情景:

10. 假如道格想欺骗苏珊,道格使用鲍勃的名字创建了密钥对(因为任何人都可以生成自己的公钥,私钥对),他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

11. 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。

12. 鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

13. 苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。

  总结:因为任何人都可以生成自己的(公钥,私钥)对,所以为了防止有人散布伪造的公钥骗取信任,就需要一个可靠的第三方机构来生成经过认证的(公钥,私钥)对。目前,世界上最主要的数字服务认证商是位于美国加州的Verisign公司,它的主要业务就是分发RSA数字证书。

ref:

RSA(一) 背后的数学原理 | 伤神的博客

RSA(二) PKCS 公钥加密标准系列 | 伤神的博客

RSA(三) 密钥的格式 | 伤神的博客

RSA(四) 签名 Signature | 伤神的博客

RSA(五) PKI (Public Key Infrastructure) 公钥基础设施 | 伤神的博客

RSA(六) X.509 CA 证书 | 伤神的博客

RSA(七) X.509 自签名证书 | 伤神的博客

RSA加密、解密、签名、验签的原理及方法 - PC君 - 博客园

What is a Digital Signature?

数字签名是什么? - 阮一峰的网络日志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值