分享一下在学习过程中遇到的密码学组件(一)

强烈推荐新火科技的公开课!,本文只是对知识的简单罗列,细节教学点下方链接!
新火公开课

HASH函数

将任意长度的消息映射为一个固定长度(256bit)的随机数,此数被称为消息摘要

性质

[1] 单向性:已知哈希值 Y,无法在多项式时间内计算出哈希原象 X;
[2] 弱抗碰撞性:已知(X, Y),无法在多项式时间找到 X’,使得 Y=Hash(X’);
[3] 强抗碰撞性:攻击者无法寻找X ,X‘,满足X!=X’ ,hash (X ) = hash (X) ;
[4] 压缩性:通常是将 512bit 的数据压缩为 256bit;不足 512bit 则填充。
[5] 随机性:输出的 Y 是 256bit 的 0/1 字符串是随机的;
[6] 可重复性:如果输入 x1=x2,则输出的哈希值 Y1=Y2。

SHA3 - blake

由瑞士的 Aumasson 等人设计,采用了 HAIFA 算法迭代结构,其中的压缩算法基于 ChaCha流密码,内部结构采用 Davies-Meyer 模式,在压缩函数中,采用模余 322 加法运算与 XOR运算,实现计算的非线性。针对 MD5 结构弱点,BLAKE 算法的压缩函数中加入随机盐(salt)与计数器整个算法具有良好安全性,且是主流哈希算法中速度最快的

SHA3-Keccak

采用了海绵结构,在预处理后进入吸入阶段,即将x传入算法并处理,然后进入挤出节点,产生固定长度的输出。

公钥加密与数字签名

  • 定义:一个集合G,满足
  1. 非空
  2. 二元运算:能够进行加法或者乘法运算。
  3. 封闭性: 经过运算后的结果还在集合中
  4. 结合律
  5. 单位元e:加法情况下 a+e=e+a=a,乘法情况下:ae=ea=a。
  6. 逆元:每个元素 a 都有逆元,记为 a ^-1,
    (1)加法情况下:a+ a^ -1= a^-1+a=e,
    (2)乘法情况下:a * a^-1= a^-1*a=e
  • 生成元: 指一个群中能够生成整个群的元素。生成元的作用是保持群的结构不变,也就是说,如果我们对群中的元素进行一些操作(如加法、乘法等),只要操作中不改变生成元的值,那么最终得到的结果仍然是群中的元素。

  • 满足交换律的群也叫做阿贝尔群

公钥加密

  • 公钥PK = g^ SK,基于离散对数困难(DL)问题
  • 离散对数困难问题(DL): 已知生成元g和公钥PK,不能在多项式时间内求私钥sk
  • 计算性 Diffie-Hellman 困难问题(CDH):(离散对数困难问题的变形),已知g,g^a, gb,求gab是困难的。

在这里插入图片描述

椭圆曲线群

椭圆曲线群与素数群,几乎相同,仅仅是底层表达细节不一样,导致计算速度不一样。在相同的安全性等级,需要的私钥长度更小。

在这里插入图片描述

  • 在这里插入图片描述

公钥加密

ELGAMAL加密

  1. 基于素数群 的Elagamal加密
    在这里插入图片描述
  2. 基于素数群的Hashed EIGamal加密


3. 基于椭圆曲线群的 ElGamal 加密

在这里插入图片描述
更多的加密请看新火给的文档

数字签名

双线性映射

在这里插入图片描述

BLS签名

在这里插入图片描述

BLS聚合签名

在这里插入图片描述

BLS批量验证

在这里插入图片描述

BBRO签名

在这里插入图片描述

ZSS签名

在这里插入图片描述

BB短签名

在这里插入图片描述

Schnorr签名

实际上:零知识证明就是数字签名的进一步扩展。
如果扩展可忽略,则零知识证明≈数字签名
如果扩展非常多,则零知识证明就是 zkSNARK,成为了一个新工具。

在这里插入图片描述

EdDSA 签名算法

在这里插入图片描述

门罗币环签名

在这里插入图片描述
在这里插入图片描述
验证的时候顺序是4,5,1,2,3 所以被称为环签名!

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐