区块链中的密码学steemCreated with Sketch.

in #cn7 years ago (edited)

图片来自网络

1.密码学步入公众领域

密码学追溯历史可到古巴比伦时代,有数千年的历史,然主要应用于军事、外交和情报领域,密码学进入公众领域,还源于两件事:

  1. 标准加密系统——数据加密标准的诞生;
  2. 公钥加密算法(也称非对称加密算法)的发明。

2. 密码学发展历程

密码学按算法思想可分为:古典密码学、现代密码学、公钥密码学。

1949年以前,安全性基于加密算法的保密性,统称为古典密码学;
1949年,香农的信息论诞生为标志,密码学步入现代密码学阶段,基于复杂计算的密码学,其是一种对称加密算法;
1976年,Whitfield Diffie和Martin Hellman提出公钥密码机制,可以在不直接传递密钥的情况下,完成密文的解密,1978年,RSA公钥密码机制出现,开启一个新的里程碑,公钥密码是非对称加密算法。

3.密码学原则

如今密码学得到很好的发展,其相关技术深入各个领域,但理论共识都遵循奥古斯特.柯克霍夫19世纪提出的“柯克霍夫原则”,即:

密码系统应该就算被所有人知道其运作步骤,它仍然是安全的。即算法是公开的,唯一需要保护的是密钥。

算法的安全性被攻破有两种可能:

  1. 算法本身的漏洞,不需要密钥就能破解算法;
  2. 在可接受的时间范围内暴力破解。

4.各加密算法特点

1.古典密码学:其算法归根结底主要有两种,即:置换和替换;其安全性依赖于算法的保密性,整体安全性不高。

2.对称加密:加密算法和解密算法都是同一种模式,只用一把密钥保证加密数据的安全;甲必须把密钥告诉乙,否则乙无法解密,那么保存和传递密钥,成为最头痛的问题。

3.非对称加密:有一对密钥,即:公开密钥和私有密钥,用公钥对数据进行加密后,只有对应的私钥能解密,反之亦然,通信双方无须交换密钥,就可以建立保密通信。

4.哈希算法:输入x可以是任意长度的字符串,输出结果,即H(x)的长度是固定的。其可以具有免碰撞;隐匿性;不存在比穷举更好的方法,以使哈希结果H(x)落在特定的范围。

5.区块链中的密码

在比特币区块链的整个体系中,大量使用了公开的加密算法,如Merkle Tree哈希数算法,椭圆曲线算法、哈希算法、对称加密算法及一些编码算法。各种算法在比特币区块链中的作用如下:

  1. 哈希算法
    比特币系统中使用的两个哈希函数分别是:1.SHA-256,主要用于完成PoW(工作量证明)计算;2.RIPEMD160,主要用于生成比特币地址。
  2. Merkle哈希树
    基于哈希值的二叉树或多叉树,在计算机领域,Merkle树大多用来进行完整性验证处理,在分布式环境下,其进行完整性验证能大量减少数据传输和计算的复杂程度。
  3. 椭圆曲线算法
    比特币中使用基于secp256k1椭圆曲线数学的公钥密码学算法进行签名与验证签名,一方面可以保证用户的账户不被冒名顶替,另一方面保证用户不能否认其所签名的交易。用私钥对交易信息签名,矿工用用户的公钥验证签名,验证通过,则交易信息记账,完成交易。
  4. 对称加密算法
    比特币官方客户端使用AES(对称分组密码算法)加密钱包文件,用户设置密码后,采用用户设置饿密码通过AES对钱包私钥进行加密,确保客户端私钥的安全。
  5. Base58编码
    Base58是比特币使用的一种独特的编码方式,主要用于产生比特币的钱包地址,其类似于古典密码学里的置换算法机制,目的是为里增加可读性,把二进制的哈希值变成了我们看到的地址“177rNLTxYAaXqTrrJPRsQNxvR9a1gF5P3K”。

6.小结

区块链通常不直接保存原始数据或交易记录,而是保存哈希函数值;Merkle树是区块链重要的数据结构,实现快速归纳和校验区块数据的存在性和完整性;采用椭圆曲线公钥密码系统实现区块链的数据签名。

参考资料

[1].邹均,张海宁.区块链技术指南[M].北京:机械出版社,2016.11
[2].长铗,韩锋.区块链从数字货币到信用社会[M].北京:中信出版社,2016.7
[3].张健.区块链定义未来金融与经济新格局[M].北京:机械工业出版社,2016.6

Sort:  

Congratulations @monkeyplayfire, this post is the sixth most rewarded post (based on pending payouts) in the last 12 hours written by a Dust account holder (accounts that hold between 0 and 0.01 Mega Vests). The total number of posts by Dust account holders during this period was 2238 and the total pending payments to posts in this category was $422.93. To see the full list of highest paid posts across all accounts categories, click here.

If you do not wish to receive these messages in future, please reply stop to this comment.

@reported has voted on behalf of @minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond. To be Resteemed to 4k+ followers and upvoted heavier send 0.25SBD to @minnowpond with your posts url as the memo

This post recieved an upvote from minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 61852.61
ETH 3084.08
USDT 1.00
SBD 3.83