Skip to content

常见概念

非对称加密

非对称加密算法采用了两个密钥:公开密钥(publicKey)和私有密钥(privateKey)。公钥与私钥是成对使用的,如果用公钥对数据进行加密,只有用对应的私钥才能解密;同样,使用私钥对数据进行加密,只有用对应的公钥才能解密。

哈希算法

哈希算法是一种单向散列函数(one-way hash function),它接收任意长度的输入,输出一个固定长度的“哈希值”或“摘要”。

特性说明
定长输出不管输入数据多长,输出长度固定(如 SHA-256 输出为 256 位)
不可逆不能从哈希值反推出原始数据(单向性)
抗碰撞性不易找到两个不同的输入具有相同哈希值
雪崩效应输入微小变化会导致哈希值完全不同
快速计算算法效率高,可快速生成哈希值

数字签名

秘钥对的拥有者采用私钥对原文进行加密,然后公布密文,原文和公钥,任何人都可以使用公钥解密密文,然后核对原文和密文是否一致。

原理

(sk,pk):= generates(keysize) // 生成密钥对
signature := encrypt(sk, hash(message)) // 用私钥对消息的哈希值进行加密,生成数字签名
isValid := isEqual(decrypt(pk, signature),hash(message)) // 用公钥解密签名,得到的是之前私钥加密过的哈希值,与原文哈希值进行比对