RSA算法的模数攻击
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那么该信息无需私钥就可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则:
C1 = P^e1mod n
C2 = P^e2 mod n
密码分析者知道n、e1、e2、C1和C2,就能得到P。
因为e1和e2互质,故用Euclidean算法能找到r和s,满足:
r * e1 + s * e2 = 1
假设r为负数,需再用Euclidean算法计算C1^(-1),则
(C1^(-1))^(-r) * C2^s = P mod n
另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对e和d,一是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e’和d’,而无需分解模数。解决办法只有一个,那就是不要共享模数n。
RSA的小指数攻击。有一种提高 RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有
所提高。但这样作是不安全的,对付办法就是e和d都取较大的值。
RSA的边信道攻击
针对RSA的边信道攻击现今大多处于实验室阶段,边信道攻击并不是直接对RSA的算法本身进行攻击,而是针对计算RSA的设备的攻击。现今的边信道攻击一般是针对硬件实现RSA算法的芯片进行的。
现国内外防范公钥密码边信道攻击主要以牺牲效率为代价。公钥密码的实现效率一直是信息安全系统的应用瓶颈,进一步损害算法效率,必将造成信息系统性能恶化。因此,寻找高效又抗功耗分析的公钥算法实现途径,并结合其他层面抗攻击手段,使密码器件运行效率、功耗、面积等综合因素实现最优化,无疑是极富挑战性的课题,不仅对抗边信道攻击理论研究有重要价值,而且对广泛应用的智能卡(尤其是银行卡、手机SIM或USIM卡)、各种硬件密码电子设备、有时也包括软件实现的密码算法的安全应用无疑具有极大的现实意义。
边信道攻击以功耗分析和公钥密码为研究重点,在对各种类型、系列、型号、规模的基本电路运行过程中的功耗轨迹进行大量研究、掌握其变化规律的基础上,继续研究电路工艺、结构、算法、协议对功耗轨迹的影响,经过一系列处理,从中提取出密钥信息。目标是针对功耗分析攻击机理,提出抗功耗分析的综合优化新方法,并尽量兼顾算法效率。
边信道攻击研究涉及密码学、信息论、算法理论和噪声理论,还涉及硬件电路设计、通信、信号处理、统计分析、模式识别等诸多技术。
边信道攻击在若干关键问题研究上已取得了实质性进展。
目前国内已经有大学的研究者提出了公钥密码等功耗编码的综合优化方法,佐证了安全性和效率的可兼顾性。截至目前,研究团队已针对著名公钥密码算法RSA的多种实现算法和方式成功实施了计时攻击、简单功耗和简单差分功耗分析攻击,实验验证了多种防御方法,包括 “等功耗编码”方法的有效性,并完成了大规模功耗分析自动测试平台的自主开发。