hello,大家好,我们第二期的区块链技术分享来啦,本期是 candy 分享公钥加密,也就是非对称加密 。
提到加解密,密码学这些词汇,很多人都退避三舍,如临大敌,觉得晦涩难懂,自己不想懂也不必懂 。
但是,其实不然 。你每天都在接触密码学,你的上网安全与密码学息息相关 。如果你经常上网,可以发现网址的链接有两种,分别是https开头和http开头的:
candy用的是Chrome浏览器,不知道大家有没有发现,http那张图,浏览器提醒:不安全 。那我可以告诉你,不是不安全,是相当不安全!
那下面我们就慢慢分析为什么http开头的网址上网不安全?
1 http之那些年误点的钓鱼网站
很多吃过亏的人可能至今都想不明白,自己明明是网上冲浪多年的老手了,为什么自己的访问行为和隐私数据会被人知道,为什么域名没输错,结果却跑到了一个钓鱼网站上? 你肯定也听过,电子邮件被窃听,家庭路由器被黑等等……
随着互联网的发展,数据泄露、数据篡改、流量劫持、钓鱼攻击等安全事件频发 。
这一切都是由互联网开始之初面向自由互联开放的http传输协议导致的 。
http协议之所以引起这么多安全问题,最大的缺点在于:http协议传输的数据都是明文 。再说得直白一点,就是你的数据在网络中裸奔~~
想想少不更事的那些年,点过的小黄文网站,小视频网站……
那我们不禁问,为什么一开始设计的时候,不考虑安全的问题呢?原因有两个:
- 第一,设计者的初衷是先有,跟所有事物发展的规律相似:先有再优 。
- 第二,不得不说到互联网的起源,互联网始于1969年美国的阿帕网,首先用于军事连接,后将美国西南部的加利福尼亚大学洛杉矶分校、斯坦福大学研究学院、UCSB(加利福尼亚大学)和犹他州大学的四台主要的计算机连接起来 。主要的应用在高校,人们天性使然,相信所有的参与者都是诚信的 。
随着互联网的发展,所有的人都可以连到互联网上,上面的方式就土崩瓦解 。各种网络安全问题接踵而来……
发现问题,解决问题 。既然http协议是明文传输的,那我们加密不就好了 。想得很对,那我们不禁问用什么加密?怎么加密呢?
2 https中令人烦恼的密钥配送问题 我们再回顾一下,http协议存在的问题:客户端和服务器之间的通信消息完全明文在链路上传输 。
这个时候,我们就想通过给消息加密的方式,这样的话,就算消息被截获拿到的也是加密过的信息,是没有办法解密的,思路完全正确 。
我们可以将客户端和服务器之间的通信,抽象成两个人Alice和Bob,那么在分析之前,我们先讲密码学两类加密方法:对称密码和公钥密码(非对称密码) 。
● 对称密码:加密和解密使用同一种密钥 。
如何理解呢?Alice想跟Bob这周天约会,但又不想被别人知道,因此Alice跟Bob协商用对称密码对信息进行了加密 。
通过图中可以看到,Alice用密钥对明文加密,保证消息在传送过程中是加密的,同时Bob收到密文之后,用相同的密钥解密,得到明文 。Alice和Bob就可以开心地约会啦~~
● 公钥密码:加密和解密时使用不同密钥的方式 。
如何理解呢?Alice想跟Bob这周天约会,但又不想被别人知道,因此Alice跟Bob协商用公钥密码对信息进行了加密 。
通过图中可以看到,Alice用加密密钥对明文加密,保证消息在传送过程中是加密的,同时Bob收到密文之后,用不同的密钥解密,得到明文 。Alice和Bob又开心地约会啦~~
那么在https通信的时候,到底使用的是哪种加密方式对明文加密?答案是:对称加密 。理由是对称加密适合对大量内容进行加密,公钥加密由于涉及复杂的运算,如果被加密的明文过长,那么运算速度将会很慢 。
但这个时候问题来了,Alice怎么将密钥203514758963585告诉Bob,让Bob用这个密钥解密她发的信息呢?也就是密钥配送的问题 。
这个时候必须再解释公钥密码 。公钥密码是什么意思?Bob有两把钥匙,一把叫公钥,一把叫私钥 。顾名思义,公钥就是可以公开的,私钥就是自己要偷偷藏起来的 。
所有想给Bob发消息的人,都可以用Bob的公钥加密,Bob收到之后,用自己的私钥解密 。就像公钥加密图中Alice和Bob通信的方式 。
那么Alice给Bob传递消息和传递密钥的整个过程如下:
但可能有人会好奇,如果第③步的信息被攻击者劫持了,那后面加密的密钥不就泄露了?其实没关系的,就算第③步信息被劫持了,劫持者也无法解密,因为Bob的公钥加密的信息,只有Bob的私钥能解密,但Bob的私钥只有Bob有 。
Alice和Bob终于可以安心约会了~~
其实上面的过程就是https通信的过程,Alice就是客户端,Bob就是服务器 。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL 。
当然SSL除了对通信内容加密之外,还有确认网站的可靠性,也就是我们常常听到的CA 。这又是另外一个话题了,今天就先不讲啦 。
因此,https中即用到了对称密码,又用到了公钥密码,https中涉及到的公钥密码是RSA算法 。因此,可以看出密码学是一门很有用的基础学科,不仅在信息安全领域有应用,而且在区块链领域也有应用 。
不知道大家有没有好奇,我本来是想分享区块链中的公钥加密的,为什么要说https和http?因为要讲公钥加密,对称加密是没有办法避免的,而https又是二者最好的结合 。
下面言归正传,聚焦区块链中的密码学应用 。
3 区块链里面的那些公钥、私钥和地址
公钥密码,两把成对出现的密钥:公钥和私钥 。公钥就是可以公开的,私钥自己保存,不能被泄露 。
因此公钥密码有两个用途,加密和签名 。公钥加密,私钥解密;私钥签名,公钥验签 。
公钥加密,私钥解密
因为Bob的公钥是可以公开的,所以任何想给Bob发信息的人都可以用Bob的公钥加密,那么Bob收到之后,就可以用自己的私钥解密 。
私钥签名,公钥验签
又因为Bob的私钥只有Bob自己有(就像Bob的指纹),那么Bob如果为了证明这个东西是自己写的,就可以在消息上签名(就像我们签合同按指纹一样),消息的接收者收到之后,就可以用Bob的公钥验证,如果成功那么就证明消息真的是Bob发出的 。
地址呢?是公钥推导出来的 。这些推导过程是单向不可逆的 。这块的知识参考上期分享 你的密码安全吗?| 区块链技术之哈希
公私钥对奠定了区块链的账户体系及资产(Token等)的所有权,区块链的资产是锁定在公钥上的,公钥代表身份,私钥用来解锁该资产然后才能使用 。
比如说我要转让资产给你,就是我用我的私钥签名了一笔我转让资产给你的交易(含资产,数量等等)提交到区块链网络里,节点会验证该签名,正确则从我的公钥上解锁资产锁定到你的公钥上 。
今天分享的比较多,又有信息安全的内容,又有区块链的内容,但其实根本还是密码学的问题 。需要区分一下,https中用到的是RSA加密算法,区块链中用到的是椭圆曲线加密算法 。用到了不同的公钥加密算法 。
至此,区块链中涉及到的公钥、私钥、哈希就分享完了,希望大家能有所收获,这个专题也会继续下去,请持续哦 。
【网址是什么 网址符号有哪些】
推荐阅读
- 钣金是什么意思 钣金修复是什么意思
- b站什么意思 a站
- 什么杀毒软件好用 无广告的手机浏览器
- 毛笔什么毛最好 好的毛笔一般多少钱一只
- 什么加速器好用 有什么免费的加速器
- 天津的大学排行榜
- 崇左幼儿师范高等专科学校是几本学校,是一本还是二本有专科吗
- 云南的大学排行榜
- 新高考类整理 海南所有大学分数线排名