Ulord区块链学习第四课内容笔记

今天学习区块链的密码学知识,经常涉及的概念有以下一些:
hash(哈希、散列)算法,
数字摘要,
对称加密,
非对称加密,
数字签名,
Merkle树,
同态加密(Homomorphic Encryption),
零知识证明。

Hash 算法

hash算法

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

优秀的hash算法的四个特点:

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

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

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

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

现在比较流行的就是MD5和SHA-1算法,但是这两种算法不够安全,也就是在“抗碰撞性”上做得不够好,(冲突避免又叫做“抗碰撞性”,如果给你一个明文,得到hash值后,你无法找到另外一个明文的hash值与他一样,那么就叫做“抗弱碰撞性”。要是你自己随便找两个明文,让他们的hash值一样,如果做不到,那么叫做“抗强碰撞性”,也就是说具有更强的“抗碰撞性”。 )于是又有了SHA-224、SHA-256,SHA-512等算法。 比特币采用的SHA-256 hash算法,共有256位,也就是2的256次方个结果(这个数字十分巨大),产生新区快时候,由于hash逆向困难,旷工就要用哪一个值去跟新区块的hash的值碰撞,谁先猜对,就让谁在新的区块中写入信息,并且获得新区快中的奖励btc。

数字摘要

是运用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、椭圆曲线系列算法。

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

数字签名

在比特币中,要用到数字签名校验交易信息是否是你发出。你使用比特币的时候都有一个私钥,你先把自己的交易信息进行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就能得到自己也在数据中,但是不知道其他内容。

Hash树

同态加密

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

但是同态加密就是说:我们对C+D进行解密后,得到的结果就是A+B的结果。 如果满足加减法就叫做加加法同态。 如果满足乘除法就叫做加乘法同态。 如果满足加减法又满足乘除法就叫做加全同态。 目前的算法例如:RSA满足乘法同态,Paillier满足加法同态,第一个全同态是09年才出现的Gentry算法。

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

突然对密码学产生了兴趣!

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

推荐阅读更多精彩内容