RSA公钥指数选用65537,是密码学实践中安全性与效率权衡后的最优解。
选择65537的核心依据

安全与效率的平衡
65537(2¹⁶ + 1)作为费马素数,其二进制表示仅含两个“1”,这使得采用快速模幂算法进行加密时,计算效率显著提升。同时,其数值足够大,能够有效抵御使用极小公钥指数(如3或17)时可能遭遇的小明文攻击、广播攻击及相关消息攻击,在安全性与执行效率之间达到理想平衡。标准化与互操作性
65537已成为PKCS#1等国际标准中的事实推荐值,广泛兼容于各类系统与协议(如TLS),确保最佳的互操作性。
为何保留为可配置参数

尽管65537是绝对主流选择,密码学库仍将其作为参数暴露,基于以下考量:
- 灵活性:为嵌入式设备或特定遗留系统等极端场景保留选择权。
- 透明度:避免隐式行为,促使开发者明确认知该安全参数的选取。
- 前瞻性:为密码学标准的未来演进预留空间。
使用小指数的风险
历史上为提升加密速度而选用3或17等小指数,将引入显著风险:
- 若明文过小,加密结果可能未经取模,导致通过简单开方即可恢复明文。
- 同一消息用相同小指数加密并发给多个接收者时,攻击者可利用中国剩余定理破解。
- 加密具备已知线性关系的多条消息时,可能遭受相关消息攻击。
这些威胁进一步凸显了采用OAEP等标准安全填充方案的不可或缺性,而65537能大幅提高上述攻击的实施门槛。
结论与最佳实践
对于现代应用:
- 生成RSA密钥时,公钥指数应固定选用 65537。
- 执行加密或签名时,必须摒弃“教科书式RSA”,严格搭配 OAEP 或 PSS 等标准填充方案。