🔑 RSA 非对称加密工具
生成 RSA 密钥对 (2048位),使用私钥签名、公钥验签。
※ 使用 Web Crypto API 生成密钥对,签名算法 RSA-PSS (SHA-256) 或 RSASSA-PKCS1-v1_5。为了兼容性,这里使用 RSASSA-PKCS1-v1_5 和 SHA-256。
RSA 密钥对与签名验签
RSA 是目前应用最广泛的非对称加密算法,其安全性基于大整数分解问题。RSA 密钥对包括公钥 (n, e) 和私钥 (n, d),公钥可公开分发,私钥必须保密。公钥指数 e 通常选 65537(0x10001),这是一个兼顾效率和安全的常用选择。模数 n 的位数决定了安全强度:2048 位是当前最低推荐,3072 位提供更高安全余量。
签名与验签流程
数字签名是 RSA 最常见的应用场景。签名方用私钥对数据的哈希值进行加密(签名),验证方用公钥解密签名并比对哈希值。具体流程:首先对原始数据计算哈希(如 SHA-256),然后对哈希值按 PKCS#1 v1.5 标准填充(加入 DigestInfo 头部),最后用私钥指数 d 计算 s = m^d mod n,s 即为签名值。验签时计算 m = s^e mod n,提取其中的哈希值并与自己计算的哈希比对。
在智能卡中的应用
在智能卡场景中,RSA 密钥对通常在卡内生成,私钥存储在安全存储区域且永不导出。签名操作由卡内密码协处理器执行,外部应用通过 APDU 命令请求签名。常见的 RSA 相关 APDU 命令包括:INTERNAL AUTHENTICATE(INS=88,内部认证)、EXTERNAL AUTHENTICATE(INS=82,外部认证)、GENERATE ASYMMETRIC KEY PAIR(INS=46,在 GP 卡管理中)。X.509 证书使用 RSA 签名,配合 SHA-256 形成 SHA256withRSA 签名算法。
本工具使用浏览器 Web Crypto API 生成 RSA-OAEP 和 RSA-PSS 密钥对,支持 SHA-256 哈希算法。在 TLS 客户端认证、代码签名、邮件加密(S/MIME)等场景中,RSA 仍是主流算法之一。对于新系统,推荐使用更高效的 ECC(椭圆曲线加密)或国密 SM2 作为替代方案。
卡智通