“Cryptography”
ElGamal & ECIES 加密
基于素数群的 EIGamal 加密系统参数:素数群 $G$ 的阶为 $p$,生成元为 $g$密钥生成:选择随机数 $\alpha \in Z_p$,计算 $g_1=g^{\alpha}$,则私钥...
消息认证码 MAC
如何确保消息的完整性,即没有被篡改,一种方式是用哈希算法计算一个摘要,但如果哈希值的来源变得不可行,那么它也就无法确保数据的完整性!消息认证这个密码学原语可以满足我们的要求,与哈希函数的相同之处...
哈希函数
哈希函数:将任意长度的消息,映射为一个固定长(256bit)的随机数。这段随机数称为消息摘要。摘要的长度一般不低于 256 比特。在现实世界的密码学中,算法的安全级别不能低于 128 比特。根据...
TLS vs. Signal 端到端加密
加密端到端加密:可以避免服务器查看用户之间的通信消息。前向安全/前向保密:即使密钥在某个时候泄露,攻击者也不能用该私钥解密之前的消息。后向安全/后向保密:即使密钥在某个时候泄露,攻击者也不能据此...
AES 对称加密
加密流程AES 是一个分组密码,每组 16 bytes,即 128 bit(也有 256 bit 的,不过 128 bit 的安全性就足够了)将 128 bit 的明文写为 $4*4$ 的矩阵 ...
TSS vs SSS vs MultiSig
对于单签,私钥只由一个人保管,私钥的丢失意味着永远失去了资产。用户也可以选择多复制几份私钥存到不同的设备上,但这样增加了被盗的风险。而 MultiSig 或 TSS 将保管私钥的责任分散到了多方...
AES vs RSA vs ECC
AES-256 是抗量子安全的,RSA 和 ECC 是量子不安全的。AES-GCM 可以检测密文是否被篡改。ECC 被认为是 RSA 的现代继承者,因为在相同的安全级别上使用比 RSA 更小的密...
Signal 协议:X3DH 和 Double Ratchet
Signal 协议采用首次信任(Trust On First Use, TOFU)方法,用户盲目信任第一次连接时看到的密钥,并在未来拒绝任何更改。不过允许用户稍后对公钥验证,这种验证是在带外完成...
TSS 两方私钥分片推第三方
对于 2 / 3keygen各方构造随机多项式:$p_1(x) = 1 + 2x$$p_2(x) = 2 + 3x$$p_3(x) = 3 + x$各方算出 $p_i(j)$:$p_1(1)=3...
MPC HD Wallet [2]
本文整理自 BIP32-Compatible Threshold Wallets目标设计一个兼容 BIP32 的 HD 钱包,以支持门限 $(t, n)$ 签名。在推导子钱包的过程中无需交互。n...