区块链中的密码学

在学习区块链的过程中经常会遇到密码学的概念,有时候会混淆本文将对以下概念进行简单解释:hash(哈希、散列)算法,数字摘要,对称加密,非对称加密,数字签名,Merkle树,同态加密(Homomorphic Encryption),零知识证明。

hash算法

简单来说就是把任意数据(二进制)变为固定长度的二进制,小到一个数字“1”,大到一个视频文件,只要是最终以二进制形式存储的数据,就能通过hash算法变为固定长度的一串数据。

一个优秀的hash算法有一下四个特点:

正面快速:就是说加密的速度要在有限时间和有限资源内完成,且越快越好。

逆向困难:就是说给你一个加密后的hash值数据,要想逆向破解获得加密前的明文是极其困难的。

输入敏感:明文只要发生哪怕一点点改变,进行hash运算后的值都会产生很大的改变。

冲突避免:不同的明文,他们进行hash运算后的hash值基本不可能一样。

冲突避免又叫做“抗碰撞性”,如果给你一个明文,得到hash值后,你无法找到另外一个明文的hash值与他一样,那么就叫做“抗弱碰撞性”。要是你自己随便找两个明文,让他们的hash值一样,如果做不到,那么叫做“抗强碰撞性”,也就是说具有更强的“抗碰撞性”。

现在比较流行的就是MD5和SHA-1算法。但是由于这两种算法不够安全,也就是在“抗碰撞性”上做得不够好,于是又有了SHA-224、SHA-256,SHA-512等算法。

比特币采用的SHA-256 hash算法,共有256位,也就是2的256次方个结果(这个数字十分巨大),产生新区快时候,由于hash逆向困难,旷工就要用哪一个值去跟新区块的hash的值碰撞,谁先猜对,就让谁在新的区块中写入信息,并且获得新区快中的奖励btc。

小张对“1”和“2”进行的hash算法,下面有很多种:md5,sha1,sha256等。

数字摘要

其实就是运用hash算法来对内容进行hash运算,由于前面说过了,一旦更改了原数据哪怕是一点点,hash值都会产生巨大的改变,所以这个数字摘要可以避免数据被篡改。

一个简单的实例就是比如小张要给你传一个文件,为了避免别人在文件中加入木马,小张就对文件进行数字摘要的获取,然后再单独把摘要(hash值)给你,当你拿到文件后,你也对文件进行跟小张一样算法的hash运算,如果得到的hash值跟小张传给你的一样,那么就证明文件没问题,可以打开,否则就证明被篡改了。

不光是比特币,数字签名还有更多更广泛的运用,比如之前介绍过的ULORD,就是把具有版权的数字化作品进行数字签名,然后把签名存储在公有链上,既能防止被串改,还能对版权进行控制。

在比特币交易中,当你要转账时候,需要把交易信息和一串数字签名一起传给矿工,矿工根据数字签名对你的交易信息进行校验,就如同上面说的一样,防止交易信息被篡改。

数字签名就是对信息的数字摘要进行了非对称加密而来。

接下来要说说加密算法中的对称和非对称加密。

加密算法

我们在加密过程中,要用加密算法和一个key来进行加密,举个最简单的例子,你要传送一个信息数字“1”给小伙伴,但是不想被别人知道,你就跟小伙伴约定:“我先把信息加上一个值,你拿到后再减去一个值就能得到原文(加密算法),这个值我每次跟你偷偷约定(key)”。比如这次约定的key是8,于是我就传一个“9”给小伙伴,同时告诉他,“key的值是8”,他拿到“9”后,再减去8就得到了原文“1”。

根据加密和解密时候的key相同或者不同,加密算法分为了对称加密和非对称加密。

对称密钥加密 (Symmetric Key Encryption)

特点:公钥(加密使用)、私钥(解密使用)相同。

优点:加密速度快,空间占用小,保密强度高。

缺点:key需要多方持有且高度保密,如果有一人泄露,信息就全部泄露了。

代表算法:DES、3DEA、AES、IDEA等。

适用场景:大量数据的加解密。

非对称加密(asymmetric encryption)

特点:公钥(加密使用)、私钥(解密使用)不同。

优点:公私钥分开,便于管理。

缺点:加密速度慢。

代表算法:RSA、EIGamal、椭圆曲线系列算法。

适用场景:签名、密钥协商场景。

实例:小张可以把公钥广播出去,需要跟小张通讯的人都可以用公钥对信息进行加密,小张拿到加密信息后,用自己独有的私钥进行解密,就能得到传给小张的信息了。

其实对称和非对称还可以组合适用,比如小张先用非对称加密把公钥给你,你把一个对称加密的临时秘钥加密了给小张,小张拿到这个对称加密的key后再对大量数据进行加解密处理。这样安全性和加解密速度都可以得到保障了。

数字签名

之前说了在比特币中,要用到数字签名校验交易信息是否是你发出。你使用比特币的时候都有一个私钥,你先把自己的交易信息进行hash运算取得数字摘要,然后用私钥对摘要进行非对称加密,接着把交易信息和加密后的数字签名一起发给旷工,矿工收到你的申请后,就用交易信息中的你的公钥进行解密得到数字摘要,然后再对加以信息进行hash,保证两个数字摘要一致,防止交易信息被篡改。这样既能保证交易信息没有被篡改,也能保证这笔交易确实是你发起的了。所以大家看出来了,保存好自己的私钥是多么重要的一件事。

Merkle树

默克尔树,又叫做哈希树。是一种二叉树。见下图。

简单说就是D0,D1,D2,D3。。。都是数据,他们两两内容进行hash后得到上面的节点N(i),最后得到总的节点Root。

特点就是:低层无论哪一个节点发生变动,都会向上传导,最终导致根节点发生变化。

应用场景:

1.快速比较大量的数据:如果两个默克尔树的根相同,就证明两个数据必然相同。

2.能够快读定位到变动的数据:比如D1有变化,就会影响N1,N4和Root,沿着Root - N4 - N1,可以快速定位到D1.

3.零知识证明:比如要证明数据中包含D0,但是又不想D0知道D1。。。D3的内容,这时就可以公布N0 - N4 节点,D0通过比对hash就能得到自己也在数据中,但是不知道其他内容。

同态加密

如果我们有明文A和明文B,我们分别对A、B进行加密得到密文C和D。我们把C和D进行相加,然后再用解密算法进行解密,一般情况下我们得到的解密结果都是无意义的信息。

但是同态加密就是说:我们对C+D进行解密后,得到的结果就是A+B的结果。

如果满足加减法就叫做加加法同态。

如果满足乘除法就叫做加乘法同态。

如果满足加减法又满足乘除法就叫做加全同态。

目前的算法例如:RSA满足乘法同态,Paillier满足加法同态,第一个全同态是09年才出现的Gentry算法。

这样的好处是:比如企业要用到云计算,但是又不想把数据公开出去。就可以把同态加密算法加密的密文发送到第三方云平台,等第三方计算完成后,取回本地进行解密操作。

大家可以看到不光是区块链,各行各业中密码学都是应用广泛,区块链更是把密码学运用到了的一个巅峰,要想好好了解区块链技术,了解密码学的一些基础知识还真是必不可少!

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

推荐阅读更多精彩内容