什么是 Rivest Shamir Adleman (RSA)?
Rivest Shamir Adleman (RSA) 是一种公钥密码系统,用两把不同的密钥对数据进行加密和解密。一把可以公开,另一把保密。可以把它想成一个你可以赠送的挂锁,但只有你持有能打开它的那把钥匙。
“比特币使用 RSA。”不完全正确。许多区块链为了速度和更小的密钥选用椭圆曲线方案。不过 Rivest Shamir Adleman (RSA) 仍然支撑着互联网的许多基础设施,比如浏览器与服务器之间的通信。
Rivest Shamir Adleman (RSA) 的工作原理
简要说明如下。你公布一把密钥,让别人用它为你加密消息,而你保留对应的私钥来解密。任何人都可以分享他们的 公钥,但只有密钥持有者能解开收到的内容。
- 开始:生成两个大的随机素数,将它们组合成模数,然后选择两个相关的指数。
- 发送:有人用你公开的信息将消息做幂运算取模,从而得到密文。
- 解密:你用私钥对该密文做幂运算,原始消息就会恢复。
- 签名:为了证明某内容是你写的,你用私钥对消息摘要进行运算以生成签名。
- 校验:任何人都可以用你的公开信息验证该签名,无需私下交换密钥。就是这个原理。
它故意采用非对称设计,就像门卫有客人名单和一把总钥匙。
Rivest Shamir Adleman (RSA) 的重要性
为什么要关心 Rivest Shamir Adleman (RSA)?它让你的浏览器可以在不泄露秘密的情况下与交易所通信,也让更新和信息能够在不用面对面确认的情况下被验证。
- 好处:公开一把密钥,保留另一把不公开,这让安全和使用变得更简单。
- 视角:区块链通常为速度选择椭圆曲线,但 RSA 仍然支撑大量的安全网络流量和代码签名,这些是加密应用所依赖的。
- 关联:你会在 TLS、VPN、固件更新和托管后端看到它。对了,切勿分享你的 私钥。
用于加密时,请用带 OAEP 填充的 RSA。用于签名时,请用带 PSS 的 RSA。这些选择是现代的默认做法,将对未来的你有利。
Rivest Shamir Adleman (RSA) 的主要特性
以下是它的主要特点:
- 非对称性:一把密钥用来加密,另一把用来解密,这使得与陌生人安全交换成为可能。
- 因数分解:安全性依赖于对两个大素数乘积进行分解的困难性。
- 用途:可用于加密和 数字签名,不过现代区块链通常更偏好椭圆曲线。
- 规模:密钥较大,常见为 2048 位或更高,这会影响速度和带宽。
- 兼容性:被浏览器、安全硬件模块和旧协议广泛支持,因此很常见。
变体
常见的几种类型:
- OAEP:用于加密的填充方案,可防止针对消息结构的攻击。
- PSS:用于签名的概率化方案,相较旧格式提高了安全性。
- PKCS1:遗留的格式规则,仍可在证书和旧库中看到。
- KEM:密钥封装机制,用 RSA 包装对称密钥。
密钥大小和填充方式很重要。算法再强,如果参数薄弱,就像在纸板门上装着豪华锁。
示例
示例:你登录交易所时通过 TLS 加载页面,服务器会出示 RSA 证书,浏览器会验证签名,之后你才输入密码。
趣闻
趣闻:Rivest、Shamir 和 Adleman 在 1977 年发表了 RSA,并发布了一个挑战数让人分解。经典的某个挑战花了多年和大量计算资源才被破解。有人甚至把原文印在衬衫上,用来戏谑当时的出口规定。
总结
总结:把 Rivest Shamir Adleman (RSA) 想象成一把双钥匙的挂锁,它允许陌生人发送秘密给你,也让你在不见面的情况下证明自己的身份。简洁、明了、有效。
