密码学:对称加密与非对称加密
Posted 区块链链区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码学:对称加密与非对称加密相关的知识,希望对你有一定的参考价值。
密码学是一门古老的学科,听起来很神秘,其实离我们生活很近,甚至我们读书的时候无意间都涉及到了密码学,比如:上课传纸条,创造一些特殊符号,不让别人看懂。而身处互联网时代,我们习惯一切在线支付,这个支付系统也与密码学密不可分。
密码学主要分为“古典密码学”和“现代密码学”。古典密码学主要是关于加密隐藏和解密破译的研究,远的有中国古代的藏头诗,近的有第二次世界大战传递军事情报用的加密和解密机。现代密码学起源于 20 世纪末出现的大量相关理论,其主要关注加密信息的完整性和安全性验证,对信息的不可抵赖签名等。
我们上课传的只有双方能看懂的小纸条、藏头诗、二战密码机等等都是属于对称加密,只要双方约定好一套加密规则,拿到信息的一方即可直接解密。而支付系统、区块链等则主要运用的是非对称加密,非对称加密里包含公钥和私钥,公钥即解密规则是公开的,由第三方权威机构背书,发信方按照自有私钥对信息进行加密(这个过程也叫做数字签名),收信方则根据公钥进行解密,由于对称密钥中公钥私钥是不可互推的,因此相比对称加密,非对称加密更加安全可靠。
对于对称加密和非对称加密,大家可能还有点晕
下面通过两个简单的小例子展开来说下:
对称加密
对称加密需要有一套规则,例如小明和小红分隔两地,现在需要传递一个数字:
对称加密
1. 小明和小红事先约定好加密解密规则,原始数字每一位加 1 就是加密信息。
2. 小明需要传递 0305 给小红,他把一张写有 1416 的纸交给邮差马龙。
3. 马龙将纸条交给小红。
4. 小红拿到写有 1416 的纸后,按照事先加密规则反过来将每一位数字减 1 就得到了小明想要传递的原始信息 0305 。
在上述的第三步中,马龙即使看到了纸上的加密信息也不得知晓小明传递的原始信息,这就保护了小明和小红传递信息的隐私性。
这里存在两个问题:
· 小明和小红需要事先约定好加密和解密规则,如果他们无法事先约定怎么办?
· 邮差马龙如果是坏人,把写有 1416 的纸替换了,小红如何验证得到的加密信息没有被调包?
非对称加密
上述第一个问题的解决方案就是 非对称加密 ,有许多依靠数学性质的非对称加密算法,这里不详细介绍。利用非对称加密,小明和小红的信息传递步骤如下:
非对称加密
1. 小红利用非对称加密算法,生成一对独一无二的加密规则 C (公钥)和解密规则 D (私钥),解密规则无法通过加密规则反推得到。
2. 小红把加密规则 C 写在纸上,交给邮差马龙。
3. 邮差马龙将加密规则 C 交给小明。
4. 小明利用小红传递的加密规则将原始信息加密 C(0305) ,交给邮差马龙。
5. 邮差马龙将加密信息 C(0305) 交给小红。
6. 小红用之前生成的解密规则对信息解密 D(C(0305)) ,得到小明的原始信息 0305 。
在上述第五步中,马龙即使有加密规则 C 和加密后的信息 C(0305) ,也无法得到原始信息,因为加密和解密的规则互相是不可反推的。但这个方法依然没有解决第二个问题,如果坏的马龙把 C(0305) 调包成 C(1234) 让小红解密除了虚假的信息怎么办?
反过来想,如果把解密规则公开(作为公钥),把加密规则保留(作为私钥),加密者发布用私钥加密的信息如果能通过公开公钥解密,那么加密信息本身就是对加密者身份的背书,这样就杜绝了伪造加密者发布的虚假信息,这样的方法叫做 数字签名 。
但是,公开的公钥本身就是不可信的,只有信任得到的公钥才能信任用私钥解密的信息,因此这里存在一个信任链的问题。在目前的真实应用场景中,HTTPS 协议是非对称加密最广泛的应用,公钥通常需要有“权威机构”的数字签名才可信,因此这条信任链的底部是中心化的权威机构。
结束语
区块链系统中大量运用了非对称加密和数字签名技术,私钥是区块链系统中证明身份的唯一手段。因此,想要学习好区块链技术,掌握非对称加密和数字签名技术必不可少!
以上是关于密码学:对称加密与非对称加密的主要内容,如果未能解决你的问题,请参考以下文章