知识卡片
RSA 公钥加密:利用计算不对称性构建的加密系统
内容
把大整数分解成两个大素数的乘积,至今没有已知的高效算法——正向”把两个大素数相乘”极快,反向”把乘积分解回两个素数”却极慢,这个不对称性正是 RSA 公钥加密系统安全性的全部根基。加密方选两个大素数 p、q,算出乘积 n,再依据 p、q 推出一对满足特定数论关系的加密指数 e 和解密指数 d;公开 n 和 e 作为公钥(任何人都能用它把消息加密),只有持有 d 的人才能把密文解回明文,而从 n 和 e 反推出 d,理论上等价于先要对 n 做因式分解——只要 p、q 足够大(几百个二进制位),当今最好的分解算法也需要数年才能破解。发散:RSA 的巧妙之处在于把一个纯数学上”难解”的事实(大数分解无高效算法),直接转化成了实用系统里”难以破解”的安全保证——这提醒我们[[NP 完全问题:一个解开,全部解开]]和[[问题的复杂性由其最优算法决定,而非某个具体解]]这类看似抽象的计算复杂性理论,一旦找到合适的映射方式,就能变成保护整个互联网通信安全的现实基础设施,理论的”无用之用”莫过于此。
参考来源
《计算机科学概论》第12章《计算理论》