[TOC]
盲签名
性质
- 签名者对其签名的消息是不可见的(这就是“盲”的含义),即签名者不知道他所签名消息的具体内容。
- 签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他何时/哪次的签署的。
RSA盲签名流程
- Alice选择一个随机数$k$作为盲化因子
- Alice对原始的消息进行计算,$m’ = m k^e (mod \ n)$ 并把计算后(盲化)的消息 $m’$发送给Bob
- Bob计算 $s’ = (m’)^d (mod \ n)$ 并把计算后的签名值 $s’$ 发送给Alice
- Alice计算 $s = s’k^{-1} (mod \ n)$,$s$ 就是Bob对原始消息 $m$的数字签名
e,d是RSA的元素,e是d的逆元,ed % φ(n) = 1
Tips: RSA 盲签名的危险,盲签名诈骗
防御措施:
-
不可重复使用素因数生成公钥模数n,杜绝模不互素攻击
Reed–Solomon
用于数据传输、数据存储、空间传输,几乎所有二维码条形码都使用了Reed–Solomon
比较详细的算法介绍
wiki
Backblaze Storage Pods
无限在线备份服务和世界上最便宜的云存储服务需要大量数据存储
对于 Backblaze Vault 存储盒,每个存储盒都是创建 Backblaze Vault 所需的 20 个存储盒之一。Backblaze Vault 将文件分成 20 个部分(17 个数据和 3 个奇偶校验),并将文件的一部分放在 Vault 中的 20 个存储盒中的每一个上。我们使用我们自己的 Reed-Solomon 实现来编码文件并将其分发到 20 个 pod,实现 99.99999% 的数据持久性。我们也开源了 Reed-Solomon 编码实现。
https://www.backblaze.com/b2/storage-pod.html
https://www.backblaze.com/blog/reed-solomon/
https://github.com/klauspost/reedsolomon
用 Intel SIMD 指令来加速 Galois 域,使用汇编可以加速Solomon编码 https://github.com/Backblaze/JavaReedSolomon
Paillier
论文 [Public-Key Cryptosystems Based on Composite Degree Residuosity Classes
]
(https://link.springer.com/chapter/10.1007/3-540-48910-X_16)
### Pedersen承诺
承诺方案综述
可验证秘密共享 Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing
### tips
https://github.com/unboundsecurity/blockchain-crypto-mpc
https://github.com/unboundsecurity/blockchain-crypto-mpc/blob/master/docs/Unbound_Cryptocurrency_Wallet_Library_White_Paper.md