zoukankan      html  css  js  c++  java
  • 区块链课程笔记-第一课哈希算法在加密中的应用

      哈希密码,哈希碰撞的含义,即我们有一个值x经过哈希变换得到y。

    输出y是有限的,2的256次幂,但是输入x是无限的。输入值的一点点变动,输出的值都会变动。但是如果输入不同的值,而得到了相同的值,那么就是发生了哈希碰撞。人为去制造哈希碰撞几乎不可能。所有导致哈希密码是安全性很高的一种加密方法。MDK5曾经很流行的一种哈希值,但是后来被发现可以人为去计算出哈希值,因此现在不算很权威的验证的方法了。

    Digital commitment digital equivalent of a sealed envelope

    Sealed envelope 如果一个人预测结果,但是他不能提前公开,因为不管他预测的是对或者是错,只要他公开,都会影响到现实世界的变化。但是他可以将他的预测结果保密,进行公证,没有人打开改动过。等第二天事实情况发布后,再公开他的预测。

    如果将他的预测用哈希算法去加密,也是一样可以起到保密并且可信赖的效果。那就是digital sealed envelope。

    挖矿的实质,其实是因为得到nonce,是没有捷径的,需要强大的算力不停地去计算,所有可以被用来当做一种工作的证明。Nonce,Number used once或Number once的缩写,在密码学中Nonce是一个只被使用一次的任意或非重复的随机数值,在加密技术中的初始向量和加密散列函数都发挥着重要作用,在各类验证协议的通信应用中确保验证信息不被重复使用以对抗重放攻击(Replay Attack)。在信息安全中,Nonce是一个在加密通信只能使用一次的数字。在认证协议中,它往往是一个随机数或者伪随机数,以避免重放攻击。Nonce也用于流密码以确保安全。如果需要使用相同的密钥加密一个以上的消息,就需要Nonce来确保不同的消息与该密钥加密的密钥流不同。

    H(block_header)<=target

    Target是一个目标值

    Nonce是我们可以设定的一个随机数。使block_header落在指定的范围内。

    验证nonece 很容易,把nonce 放在blockheader里计算一下验证

    SHA-256 比特币使用的哈希函数

    签名的作用,是有一个公钥和私钥,

    对称加密体系,发一个加密的信息,还要把解密的秘钥发给对方,但是解密的秘钥如果被截获了,保密机制就不完善了。

    非对称加密体系,两个秘钥,公钥和私钥,私钥是自己拥有的,所以公钥可以在网上传输,但是能打开的只有你自己或者对方的私钥,这就保证了信息的安全传输。

    公钥可以类比为银行账户,私钥可以类比为你的账户密码。

    那么比特币是不加密的,要账户管理做什么呢。其实是要实现一个签名的作用,用私钥对交易来进行签名。如果要验证这个人的签名是否为其本人,则用公钥来验证。

    因为公钥与私钥是有哈希算法来计算的,那么产生相同公钥和私钥的可能性,微乎其微。

    所以要造出相同公钥私钥去盗取钱财是不可能的任务。保证了交易的安全性。所以保证交易安全性的根本还是哈希算法。因为事先我们不知道什么输入能算出哈希值。

  • 相关阅读:
    python 文件目录/方法
    python文件
    python模块
    python数据结构
    python函数
    python迭代器和生成器
    python循环语句
    python控制语句 if
    python数字
    个人课程总结
  • 原文地址:https://www.cnblogs.com/dzswise/p/10006257.html
Copyright © 2011-2022 走看看