由浅及深了解区块链之:(2)公钥私钥,时间戳,哈希值,数字签名

上一节普及了区块链中比特币的基本知识,接下来就要介绍其中涉及到的专业术语了
1:公钥,私钥
公钥和私钥是通过一种算法得到一对密钥对(一个叫公钥,一个叫私钥),两者常常用于网络安全之中的信息加密和解密。公钥可以理解为公开的钥匙,私钥相应的可以理解为私人的钥匙。例如张三要发一封绝密邮件到王五的手上,这份邮件的处理过程为:张三用王五的公钥加密这份文件后然后发给王五,王五收到加密文件后用自己的私钥进行解密。由于邮件的私钥只有王五有,所以其他人就算得到了这封邮件也解不开这封邮件的信息。为什么采用公钥私钥加密模式会这么安全呢,这与极大整数的因式分解有关,具体详细介绍一种公钥私钥加密算法SAR的加密,解密数学原理流程我将在后面一节单独进行介绍。

王五(私钥解密)张三(公钥加密)李四(截获邮件)这是我的公钥ajdfhuq以后发给我信息就用我的公钥加密好的,收到,这是我的公钥asjdfhl,你也用我的公钥加密李四今天借了我100元钱。这小子还欠我50元呢!ashdjf?ngh&bh%:李四想了很长时间,张三和王五在聊什么?adfdjf?ngdsjfh%:王五(私钥解密)张三(公钥加密)李四(截获邮件)

2:时间戳 顾名思义,这个是跟时间有关系,在比特区块链的区块上(区块:记录了区块链上交易信息的一个数据包)都会有这样一个时间戳的标志,用于唯一标志此区块在某一时刻存在的证明。时间戳是指格林威治时间1970年01月01日00时00分00秒起到现在的总毫秒数。区块链上的时间戳应该是可信赖的,不应当依据于民用卫星的时间(因为存在着人为串改的可能性),应当是要具有法律效力的时间戳(例如我国的可以是中科院国家授时中心参与建设的·可信时间戳认证服务),时间戳的产生过程为:

通过hash编码
加入时间信息然后对文件进行私钥加密
用户初始文件
编码后文件
DTS
带有时间戳的区块

这样一个具有时间戳的数字签名文件就产生了。//数字签名技术将在下面第四板块中进行讲解
3:哈希值,相信有不少人都听说过哈希函数,但具体是什么,难免就又一头雾水。下面通过一个形象的比喻来阐述:世界万物我们都给了它们一个独特的编号,在编码世界中也是一样,我们给桌子编的编码为0011,椅子编码为0100,,,,,,等等,然后哈希也是一串编码,比如这串编码有256位呢,就是说可以唯一标志2256 种不同的事物。想象一下这是多么庞大的数字,试想一下地球上都装满沙子的话,大概就有7* 1021 粒沙子,换算成2进制数大概7* 270 粒沙子,不过还至少需要2183 个地球才能完全把这些沙子给编码完全。接下来进入正题了,任何事物都可以表示为一串哈希编码(例如SHA-256就是将世间万物表示成一串256个二进制数的编码),并且事物信息可以用算法推出这串哈希值,反之哈希值却退不出这个事物(即使用暴力破解,当哈希串足够长的时候,暴力破解就显得无能为力了),所以我们在网络上进行交流信息的过程中,对每个信息包生成唯一的哈希值,然后接收方收到了这串哈希值就自动与原文件进行校验,如果一致吻合,就表示文件内容没有遭受到修改,反之就可以肯定文件信息被入侵了。注意,就算在源文件中稍微修改一点点信息,其相应的哈希值也会大大的不同。如下图所示:假如接下来李四偷到张三和王五的私钥,并且修改了李四和王五的邮件信息。让我们看一下接下来剧情发展。

王五(私钥解密)张三(公钥加密)李四(截获邮件)这是我的公钥ajdfhuq以后发给我信息就用我的公钥加密好的,收到,这是我的公钥asjdfhlasfh,你也用我的公钥加密李四今天借了我100元钱。这小子还欠我50元呢!ashdjf?ngh&bh%:李四想了很长时间,张三和王五在聊什么?adfdjf?ngdsjfh%:哈哈,你们的私钥被我偷到了吧,看你们还瞒我(偷到密钥后冒充张三):王五,你做个证明,我张三今天借了李四100元你咋借了李四100元呢?胡扯,他那个铁公鸡还会借钱给我难不成是我们的信息被盗了,不用怕我们用hash函数 (此时产生哈希值aadf)(篡改王五的信息并且冒充王五)张三,我王五今天借了李四200元,你做个证(哈希值aadf)(验证hash值过后)你这信息确实是王五发出来的(哈希值asdf)(验证hash值过后)你这份邮件是冒充的的(hash值sdfa)王五(私钥解密)张三(公钥加密)李四(截获邮件)

4:数字签名 前面我们说的老王和老李聊天使用的是公钥加密,私钥解密,接下来数字签名采用的是私钥加密,公钥解密的过程,其好处在于,大家都可以看到我发送的文件内容,但是只要我的文件被修改了我就一定知道我的文件被修改了,接下来我们来看下私钥加密后文件流通过程

王五(私钥加密)张三(公钥解密)李四(截获邮件)这是我的公钥ajdfhuq,大家以后收到我信息就用我的公钥解密这是我的公钥asjdfhl,大家以后收到我信息就用我的公钥解密李四今天借了我100元钱。这小子还欠我50元呢!看我修改你们的文件信息,等等,我不知道你们的私钥,怎么用私钥给修改后的文件加密呀,算了,乱改吧。&fhsf%sghg二哥dahfsdf哥,刚刚你的那封邮件被修改了,请再发一封过来。好哒王五(私钥加密)张三(公钥解密)李四(截获邮件)

版权声明:本文为weixin_42373888原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。