简述
RSA公共密钥密码系统是一种使用不同的加密密钥和解密钥的密码系统,由已知的加密钥推导出解密钥是不可行的 [2] 。 在公共密钥密码系统中,加密密钥(即公共密钥)PK解密钥(即秘密钥)是公共信息SK需要保密。加密算法E和解密算法D也是公开的。虽然解密钥SK是公开密钥PK决定的,但却不能根据PK计算出SK 。
基于这一理论,1978年出现了名字RSA算法通常是先生成一对RSA其中一个密钥是由用户保存的保密密钥;另一个是公共密钥,可以公开,甚至可以在网络服务器中注册。为提高保密强度,RSA密钥至少500位长,一般推荐1024位。这使得加密计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA加密对话密钥,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,可以用不同的密钥解密并检查信息摘要 。
RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。1983年麻省理工学院在美国为RSA算法申请专利 [3] 。 RSA允许您选择公钥的大小。512位密钥被视为不安全;除国家安全管理外,768位密钥不必担心(NSA)其他事物的危害;1024位的密钥几乎是安全的。RSA嵌入在一些主要产品中,如 Windows、网景 Navigator、 Quicken和 Lotus Notes 。
安全性编辑
RSA安全性取决于大数分解,但是否等同于大数分解没有得到理论证明,也没有得到理论证明。RSA难度等同于大数分解难度。破解没有证明RSA一定要做大数分解。假设有一种算法不需要分解大数,它肯定可以修改为大数分解算法,即RSA主要缺陷是理论上无法把握其保密性能,密码学界的大多数人倾向于因素分解NPC问题 。
目前,RSA一些变体算法已经被证明等同于大数分解。无论如何,分解n是最明显的攻击方法。现在,人们可以分解超过140个十进制位的大素数。因此,必须根据具体适用情况选择较大的模数n 。 RSA算法的保密强度随着密钥长度的增加而增加。然而,密钥越长,解密所需的时间就越长。因此,根据保护信息的敏感性和攻击者破解所需的成本价值以及系统所需的响应时间,特别是在商业信息领域 。
52tangzong Pz8vVBFCMUbhm50VQK8sokGldOhIB08oxAhF/gIHgOZWj4N NkKxDbyaDYwhCKulxaeeJxh6cgen0NWwqzM2ThND4PWEXaQUfG0EO4Jp8/WrMioMQZ b/hi8BQzZqrumyUDo0AqfhgFWIprn1FkrJyGEuNtSJKUG8abXa e1hW17NvTyWj BSn/Qv LSaKEuwbL0oTwOFPVMj2QslAc/LGOMBS7h uwe/zyLKp1yaalkVOV/7k4SY/t7HmJE/ie/5XOj7NmnNY9oXApyyTJYxiKuA6LlU7eBbu6GEaztdTqJH8gamtmVg8XipFVanSD4nifaMlUdD6BRfQlFRA545g== 52tangzong
算法攻击编辑
到目前为止,对RSA攻击很多,但并没有对它构成真正的威胁。在这里,我们讨论一些典型的攻击方法 。
RSA密码攻击的选择
RSA面对密码攻击的选择是脆弱的。一般攻击者伪装某一信息,让有私钥的实体签名;然后,计算后可以得到它想要的信息。事实上,攻击利用了同样的弱点,即乘法保留了输入的乘法结构。这个固有的问题来自于公钥密码系统最基本的特征,即每个人都可以使用公钥加密信息。这个问题在算法上无法解决。有两种改进措施:采用良好的公钥协议,确保实体在工作过程中不解密意解密其他实体产生的信息,也不会签署一无所知的信息;第二,永远不要签署陌生人发送的随机文档,或者在签署文档时首先签署文档Hash同时处理或使用不同的签名算法 [8] 。
RSA小指数攻击
当公钥e获得较小的值时,虽然加密容易实现,速度提高,但这样做是不安全的。最简单的方法是e和d都取大值 。 由于密钥的产生受到技术的限制,因此也有其局限性 。 (1)密钥的产生受素数的限制,因此很难一次密钥 ; (2)为了保证安全,分组长度过大,n至少600个比例,使计算成本非常高,特别是速度慢,比对称密码算法慢几个数量级;随着大整数因素分解算法的改进和计算机计算能力的提高,N的长度不断增加,不利于数据格式的标准化 。