详解:区块链是否能推动密码学发展?

2018-07-23 19:19 评论 0 条

最近专员发现,很久没跟大家聊一下纯技术的东西了,然后专员恰好最近在看一些密码学的东西,专员也想借这个机会聊一下这个东西,但是专员得承认专员不是专业做密码学,专员一直很佩服那些同事,能把那些密码学共识看的很溜的人,每当那个时候专员总觉得那些人的高数真的学的是好,各种公式的推到数学证明都是了然于心。当然专员跟大家讲的时候,要不会讲这么一些个公式以及相关算法推导原理,其实主要跟大家聊一下每种算法作用比较相关优缺点介绍,这样的话,大家可以更好的了解到底区块链的密码学的应用是在哪一块了。

专员之前大概跟大家描述过区块链的密码学应用在哪一块,比如说Hash算法,包括我们算区块链hash,交易hash等等,其实简单的来讲,在区块链的世界中,Hash其实就是唯一的身份标识,比如说我们经常用到的以太坊的地址,其实就是我们的公钥地址Hash之后,然后再经过处理而算出来的。

区块链是否能推动密码学发展

我们进入正题:

1、什么是Hash函数

其实就是单向散列函数,如下图所示,一个Hash函数主要有一个输入和一个输出,Hash函数(单向散列函数)可以根据你的消息,算出一个散列值,并且最重要的是单向的,一般情况下来说,只能由消息算出散列值,通过散列值算出消息是基本不可能的。当然不排除用特别特别牛逼的量子计算机暴力求解,是有可能的。

另外,单向散列函数还有一个比较大的特点,函数算出来的散列值的长度和消息的长度无关。无论消息是1字节,还是100M,甚至是100G的数据,单向散列函数都会计算出固定长度的散列值,只是不同长度的数据计算的时间不同而已, 比如SHA-3标准,Keccak256的实现,以太坊用的应该就是这个单向散列函数为例,它所计算出的散列值的长度永远是256比特,也就是32Byte。

专员有在实际工作环境中碰到过,用Hash函数算一个非常大的文件的散列值,还是花了比较多的时间的。所以,由于Hash函数的这个特性,一般我们都会把某个文件的Hash值当做指纹,用这个来判断他究竟是不是原来的那个文件,有没有被修改等等。

小结

现在一般来说,市面上的Hash算法有,MD4、MD5、SHA-1、SHA-256、SHA-384、SHA512、RIPEMD-160、RIPEMD-160等等,其中MD4、MD5、SHA-1已经被确认不安全了,还有我们国家自己的hash算法SM3,专员也是非常推崇的,毕竟我们自己国产化,专员也建议大家如果有从事IT行业的同学不要再用这三个不安全的hash算法了。

除了单向散列函数以外,其实最重要的就是,对称加密和非对称加密这两种加密算法的类型了。下面的表格是专员拿对称加密和对称加密的一些比较。

专员用最简单的话来跟大家讲一下什么是对称加密,什么是非对称加密,其实挺好理解的。

2、对称加密

就是加密方和解密方两边的密钥是一致的,这样的话,对于密钥管理的难度就是比较大的,在公开的互联网络中,我们如何通过一个安全的方式来传递这个对称密钥也是一个比较大的问题,但是就像上面这个表格所说的,对称加密的速度会比非对称加密块很多,常见的对称加密有DES,3DES,AES,当然也有我们自己的中国标准SM4,但是DES已经很不安全了,已经被攻破,对于我们来说也没必要继续去使用DES这个算法了。

3、非对称加密

非对称加密其实就是有两把不同的密钥,我们成为公钥和私钥,公钥是大家都可以知道对外暴露的,私钥是只有自己知道的,不能对外暴露的。比如说我们要进行非对称加密,加入A想给B发送一个加密消息,A就会那B的公钥进行加密,这样的话,只有B拿自己的私钥才能解出来明文,其他人拿到这个加密消息也是没用的,无用功。

但是非对称加密也通常被用来数字签名,数字签名专员之前说过,是为了证明这个消息是我自己发出去的,并且证明没有被篡改。

因此,按照这个逻辑的话,A想要给B发送一个消息,并且证明这个消息是我发的,A就得拿自己的私钥对这个消息进行签名,而B受到消息之后,便利用A的公钥进行验签,验签通过后才能证明消息的可靠性,并且消息是A发的。

文末

因此,专员觉得,其实密码学这个东西很神奇,是一个很数学的东西,他在IT的领域是至关重要的,没有密码学技术的保障可能会导致我们全部的信息都暴露在空气中,没有任何一点安全保证,而区块链正是很好的利用密码学技术来保证区块链的安全问题也使黑客成功的攻击整个区块链网络。专员也在不断的学习密码学技术,希望以后能跟大家有更好的分享。

 

来源:链知道

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:详解:区块链是否能推动密码学发展? | BitOL|比特在线-关注区块链技术动态的小博客
分类:区块链技术动态 标签:

发表评论

您必须 登录 才能发表留言!