区块链中的密码学基础

区块链中的密码学基础

为什么要讲密码学

  • crypto
  • 区块链底层安全机制的保障
  • web3安全必备知识

密码学概述

  • 加密/解密算法

    • 对称加密
    • 非对称加密
  • 数字签名

  • 哈希(散列函数)

  • 其他:密码分析

    image-20240420184347894

科尔霍夫原则

Kerckhoffs‘s principle

  • 对于一个密码学系统,应当仅有密钥是保密的,其余算法和一切参数都应该是公开的
  • 并不一定要数学上完全不可破解,只要在现实中不可破解即可

对称加密算法

  • 什么是对称加密

    • 加解密使用相同的密钥
  • 古典密码学

    • 凯撒密码

      • 单表代换

        image-20240420184850529

    • 维吉尼亚密码

      • 多表代换
  • 现代对称加密算法

    • 分组密码

      • DES,AES…
    • 流密码

      • 伪随机数生成器(PRG)

        image-20240420185207716

  • 优点

    • 效率较高
  • 缺点

    • 双方必须事先共享密钥(对称)

非对称加密算法

  • 非对称
    • 加解密使用的密钥不同
    • 公钥、私钥
  • 缺点:效率较低
    • 传统方式:通过非对称交换密钥,再用对称加密通信
  • 安全性来源
    • 基于某种数学难题
      • 破解密码的难度规约到解决某个数学难题的难度
      • RSA:基于大整数分解的困难.N=p * q,已知N,求p和q很困难
      • 离散对数:方程y = g^x mod p,已知y,g,p,求x很困难

image-20240420190344325

  • 椭圆曲线ECC
    • 并不是在每个群上的离散对数都是难解的
    • 在某个椭圆曲线群上难解,一个群对于一组abcde参数
    • 比特币选取的曲线是secp256k1

y 2 + a x y + b y = x 3 + c x 2 + d x + e y^2+axy+by=x^3+cx^2+dx+e y2+axy+by=x3+cx2+dx+e

image-20240420191109089

image-20240420191312062

  • 加解密

    • Alice给Bob传信息,Alice用Bob的公钥加密,Bob用自己的私钥解密
    • 在没有私钥的情况下,无法获取到明文相关信息
  • 数字签名

    • Alice想证明某个消息是自己发的
    • Alice用自己的私钥签名,其他人可以用Alice的公钥验证签名有效性
    • 在没有私钥的情况下,无法伪造签名
    • ECDSA

    image-20240420191610728

哈希算法

  • 消息摘要
    • 把无穷空间内的消息映射到有限空间内的摘要
    • H(M)=X
    • 确定性算法
    • 消息一旦改变,摘要也会改变

image-20240420191917270

  • 重要性质

    • 不可逆(单向性)
      • 拿到哈希的人,没办法知道原始明文是什么
    • 抗碰撞
      • 无法找到两个不同的消息,但是摘要相同(计算意义上不可能)
    • 确定性
    • 混淆性
    • 不可预测性

    image-20240420192230633

区块链中的密码学

  • 钱包地址
    • 每个地址实际上对应一对公私钥对
    • 私钥—>公钥—乱七八糟 转换—>地址
    • 私钥是证明你拥有该账户的唯一方式,一旦私钥泄露,该账户将被别人拥有
      • 任何情况下不要复制私钥/助记词,注意保存
  • 交易
    • 每个交易就是一条message
    • 用你的身份发出一笔交易,即签名
      • 不要签名未知/不可信交易,可能导致你的财产损失
  • 靠哈希算法来出块
    • 此处只讨论PoW类
    • 暴力枚举计算哈希小于某个值
    • 由于哈希算法的好性质,没有除了暴力枚举以外的挖矿方法
    • 通过算力的分散性保证去中心化出块

image-20240420193255018

  • 靠哈希算法性质维护最长链,防止攻击
    • 每一个块的头部,都包含了上一个区块的哈希
      • 链式结构
    • 想要修改之前区块中的某个内容,需要从那个快开始整个后面的所以块都要修改
    • 枚举哈希很难,所以很难对抗全网算力算出新的链

image-20240420193546299

  • Merkle Tree(默克尔树)
  • 一种依靠哈希来快速确认某个值是否在一个集合中的数据结构
  • 常用于区块存储交易,发行白名单确认等场景

总结

  • 非对称加密算法

  • 哈希函数

  • 区块链中的应用

[外链图片转存中…(img-6k0sKe9a-1713613242523)]

  • Merkle Tree(默克尔树)
  • 一种依靠哈希来快速确认某个值是否在一个集合中的数据结构
  • 常用于区块存储交易,发行白名单确认等场景

总结

  • 非对称加密算法

  • 哈希函数

  • 区块链中的应用

    image-20240420193949103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值