• 区块链中的密码学


    区块链概念

     

    区块:可以看做是一页一页的账单,上面记录若干条数据

    区块链:可以看做是账本,里面按照时间顺序将若干个账单 每个区块中包含两个最重要的值,自己的hash值,和上一个区块的hash值

     详解

              区块链是一串使用密码学方法相关联产生的数据块,每一个区块中包含上一个区块的hash值,用于验证其信息的有效性(防伪)和生成下一个区块

     

     

     

    Hash算法

     

    Hash算法:可以将任意数据 生成 固定长度的16进制字符串

    常见算法:md5 , sha1 , sha256 , sha512等,都是摘要算法

     

    密码学

     

    一.对称加密:

             使用 同一个密匙 进行加密和解密,这种加密方法称为 对称加密 也成为单密匙加密

             算法:DES , 3DES , AES , TDEA , Blowfish , RC2 , RC4 , RC5 , IDEA , SKIPJACK

     

    1.特点:

             a.加解密使用相同的密匙

             b.高效,使用于大量数据的加密场景

             c.算法公开,安全性取决于密匙大小,但密匙越大效率越低,需要权衡在安全和效率中做权衡

    2.缺点

             算法本身安全,但使用场景不够安全,因为解密和加密都是使用同一个密匙

     

    二.非对称加密

    使用 匹配的一对密匙来分别进行加密和解密,这两个密匙是公开密匙(公钥)和私有密匙(私钥)

    算法:RSA、ECC、Elgamal、背包算法、Rabin、D-H 等

     

    非对称加密使用方法

    1. 生成一对匹配的 私钥 和 公钥 (ps:公钥其实是根据私钥生成的)
    2. 将公钥公布给外界

    用法1. 公钥加密 - 用来针对互联网上加密数据传递

    将自己的公钥公布给外界,然后拿到公钥的人必须使用对应私钥来解密

    注意:公钥加密的数据只能对应的私钥解密,同理,私钥加密的数据只能用对应的公钥解密

     

     

    用法2. 私钥签名 - 目的是为了将明文公布给别人,同时证明是自己发的

     

    用自己的私钥对明文进行hash值,对hash进行加密,连同明文一同发送给指定的人,

     

    该人使用我的私钥进行解密,解密后的明文hash值和接受到的明文的hash值进行对比,如果是一样的,就能证明密文是 发的

     

    特点:

           安全性高

           加解密复杂,效率低

     

     

    小结

    ~对称加密 加密与解密 使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。

    ~ ~ 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。

    ~ ~ ~ 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密协商,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通

     

  • 相关阅读:
    xcode5 ios6程序图标去掉阴影
    ios程序启动时去掉状态栏
    ios启动图标程序适配
    c语言基础:各种数据类型的输出占位符
    c语言变量作用域问题
    JS 学习笔记--11---内置对象(Global/Math)
    JS 学习笔记--10---基本包装类型
    JS 学习笔记--9---变量-作用域-内存相关
    JS 学习笔记--8---Function类型
    JS 学习笔记--6---日期和时间
  • 原文地址:https://www.cnblogs.com/mlw1814011067/p/9571469.html
Copyright © 2020-2023  润新知