2019-03-11

比特币背后好玩的密码学原理!

我们今天来聊聊比特币背后好玩的密码学原理?为什么会有密码呢?就是人们的隐私和秘密不想让更多的人知道或者财物不想被人窃取。在现实世界中,你锁上房间的门,是不想让父母知道你的隐私,你外出锁上家里的门,是想让你的财物不被小偷窃取。

在网络世界中,你不想让别人看到你与朋友的通信内容,你可以把明文进行加密,其他人看到的就是乱码。那么,在网络世界中加密方式有几种呢?一共有两种,一种是对称加密,另一种是非对称加密。我们先来看什么是对称加密,就是加密与解密用同一个密码,比如你把一段明文进行加密发给你的朋友,你朋友看到的是乱码,只有用你加密的密码进行解密,他才能看到明文的内容。

那么,用对称加密就好了,为什么会有非对称加密呢?对称加密有一个非常大的缺陷,就是分发密码很不方便,很容易把密码泄露出去,造成不必要的损失。就像刚才我们讲的,你给朋友发一段明文进行加密处理,你朋友想看明文的内容,必须要用你加密的密码进行解密,你怎样把密码告诉你的朋友呢?

是通过网络、短信,还是电话,都有可能被第三方窃取。那么,怎么解决对称加密密码分发的问题呢?

非对称加密能很好的解决这个难题。

什么是非对称加密呢?就是在加密和解密的过程中,分别使用一个密钥对中的两个密钥,如果两个密钥满足:对信息用其中一个加密,只有用另一个才能解密;其中一个密钥公开后,用公开的密钥无法推算出另一个密钥,我们就称这个密钥对为非对称加密。其中公开的叫公钥,不公开的叫着私钥。公钥是可以公开的,所有人都可以用你的公钥进行加密,生成一段密文,来保证发送给你的信息是安全的,私钥你要保存好,只有你自己才能知道,用你的公钥加密过的信息,只能用你的私钥才能解密。 比如公钥就相当于你的工资卡卡号,私钥就相当于你的工资卡的密码。

对称加密和非对称加密的区别就是密钥,对称加密,加密和解密使用的是同一个密钥,非对称加密,加密和解密使用的密钥是不一样的。你可能会问,为什么知道公钥,推算不出私钥呢?就是公钥是确定的,私钥却有多种可能性。比如,你知道公钥是100,你很难推出私钥是1乘100得到,还是1加99得到,当公钥100变成接近无限大的一个数,你更难推出这个数是怎么得来的。比较有名的非对称加密算法是RSA,就是通过随机数生成器,进行运算生成私钥,其中也包含公钥,私钥能推出公钥,但公钥无法推出私钥。

那么,刚才讲了这么多,非对称加密有漏洞吗?有,就是用非对称加密,你发出去的重要信息有可能被篡改过,收件人压根儿不知道。比如你给朋友发一封重要文件,用他的公钥进行加密,因为他的公钥是公开的,别人很容易拿到他的公钥,你发送给他的邮件可能被别人截获,篡改后再用你朋友的公钥进行加密,发送给他,他却很难验证邮件是谁发的。

那么,怎样解决非对称加密发送的信息可能被篡改呢?

这就要用到单项散列函数,什么是单项散列函数呢?它也叫哈希函数,当然你也可以叫它指纹。就是将任意长度的明文转化为一个长度较短、位数固定的输出,即哈希值,也就是通过这样的算法,明文就变成固定长度的字符串。比如不管你输入的信息是1G或者是80G,通过哈希256运算,产生的结果是固定的256位的哈希值

目前,最有名的单向散列函数是SHA256,SHA是美国国家安全局设计的,美国国家标准与技术研究院发布的一系列密码散列函数,经历了SHA-0,SHA-1,SHA-2,SHA-3系列的发展。

比特币采用的是SHA256算法,属于SHA-2系列。它有以下几个特点:

首先,每个哈希值是唯一的,就是你给定一段明文,通过哈希运算,哈希值只会有一个。有没有可能两段不同的明文,产生一个相同的哈希值呢?就是说产生哈希碰撞,理论上是有的,只是概率非常小,就像宇宙中有没有外星人,理论上是有的,至于能不能发现,现在是个未知数。

其次,生成的哈希值不可逆,就是不能从生成的哈希值推出原始数据。与我们刚才举的公钥推不出私钥例子相似,哈希值是固定的,原始数据却有多种可能性。

最后,相同数据产生同样的哈希值,不同数据产生的哈希值千差万别,哪怕只有一个标点符号的不同,产生的结果也不相同。

比特币系统中但凡有需要做Hash运算的地方都是用SHA256运算的,到目前为止,没有发现SHA256有漏洞。

那么,哈希函数怎样解决非对称加密发送的信息可能被篡改呢?

就是先把发送的文件进行哈希运算,再通过非对称加密发送出去。

比如你发送一些重要的文件给你的朋友,为防止被人篡改,你可以把要发的文件进行哈希运算,把产生的哈希值和文件通过你朋友的公钥进行加密发送给他,他收到你的信息后,用他的私钥进行解密,再把你给的文件进行哈希,如果哈希值与你给的哈希值一致就是文件没有被篡改,这里进行了双重保险,非对称加密一次,哈希运算又一次。

最后,我们来看比特币是怎样运用非对称加密、哈希函数和数字签名技术的。比特币地址其实是一套非对称密钥对中的公钥,那么,它是怎么生成的呢?你可以简单理解成,通过随机数生成一个私钥,再通过椭圆曲线算法,生成公钥。再把公钥进行SHA等一系列运算生成比特币地址。你看通过比特币地址想要推出私钥,堪比登天还难。

刚才讲的是比特币地址生成的流程,比特币转账又用到哪些密码学技术呢?用到了非对称加密和数字签名。比如你给朋友转账比特币,先要知道它的比特币地址,相当于知道它的公钥,你可以用他的公钥进行加密,你朋友可以通过他的私钥进行解密,你在发送的比特币下方签上你的私钥,也就是数字签名,你朋友很容易用你的公钥验证比特币是你转给他的。

好了,我们来回顾一下今天聊的重点内容,主要讲了对称加密、非对称加密和哈希函数,比特币地址是通过非对称加密、哈希函数等密码学技术生成的,比特币转账用了非对称加密技术和数字签名等密码学技术。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容