Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 是否有可能在知道公钥和一组;原始数据=>;“加密数据”;条目?_Security_Rsa - Fatal编程技术网

Security 是否有可能在知道公钥和一组;原始数据=>;“加密数据”;条目?

Security 是否有可能在知道公钥和一组;原始数据=>;“加密数据”;条目?,security,rsa,Security,Rsa,我的应用程序允许插件访问不同的功能集,每个插件都提供“初始化字符串”,设置不同功能的访问级别。开发人员将这些字符串发送给我,我使用1024位RSA私钥对它们进行加密,然后将编码数据发送回。启动时,我的应用程序使用内置公钥对编码数据(编码初始化字符串)进行解码,如果“解码数据!=初始化字符串”,则无法启动 那么,有没有可能使用“initialization string”=>“encoded initialization string”(从其他插件中提取)的数据库来破解我的私钥,或者在合理的时间内

我的应用程序允许插件访问不同的功能集,每个插件都提供“初始化字符串”,设置不同功能的访问级别。开发人员将这些字符串发送给我,我使用1024位RSA私钥对它们进行加密,然后将编码数据发送回。启动时,我的应用程序使用内置公钥对编码数据(编码初始化字符串)进行解码,如果“解码数据!=初始化字符串”,则无法启动


那么,有没有可能使用“initialization string”=>“encoded initialization string”(从其他插件中提取)的数据库来破解我的私钥,或者在合理的时间内强制执行它?

RSA的公钥/私钥技术的全部要点是很难逆转


已知存在利用某些特定实现缺陷的漏洞,但基本算法被认为需要几十年才能屈服于暴力攻击。请参阅。

这种密码分析攻击被称为,它应该很难应用于RSA1024

或者至少,尝试使用已知明文破解RSA密钥与尝试在没有明文的情况下破解RSA密钥一样困难,唯一已知的与您的问题相关的攻击类型是定时攻击,但它需要很好地了解RSA的具体实现,因为它通过测量解密所需的时间来工作

事实上,RSA的安全性是由两个复杂的数学问题给出的,而了解纯文本和相关的密码文本并不会给您带来太多帮助

在任何情况下,已知的明文攻击通常需要执行大量的样本(比如对于DES),因此对于较弱的算法来说也不是那么容易。

当你说“使用RSA私钥加密”时,你实际上并不是在加密东西。这是一个历史性的困惑。你所做的是一个数字签名,插件用相应的公钥验证。混淆来自这样一个事实,即在适当的情况下,RSA签名可以被视为一种“反向加密”,私钥首先起作用。然而,它在一些细节上有所不同(例如,填充和哈希函数的参与),这使得它在实现时完全不同

如果您使用的是正确的RSA数字签名方案(例如,第8节“带附录的签名方案”中所述的方案之一),并且通过正确实现的密钥生成算法生成了足够大的RSA密钥(1024位或更多),没有已知的,攻击者利用您生成的签名伪造新签名(更确切地说,是破解RSA私钥)的一种计算上可行的方法。没有任何证据表明你的签名对攻击者没有帮助,但30年来对这一主题的公开研究没有发现这样的漏洞

但是请注意,使用细节,特别是填充(初始部分,它将待签名数据转换为RSA数学核心可以处理的大数字)已经被证明是微妙的;许多提出的填充方法都被成功地攻击了。PKCS#1填充物已经接受了相当长一段时间的审查(对于“v1.5”填充物,审查了二十年),并且迄今为止抵制了所有此类尝试。“ISO9796”系列的衬垫没有那么好,许多变体已经被打破

如果您没有按照公认的标准(即PKCS#1)计算签名,那么您就是在找麻烦。不要那样做。幸运的是,大多数RSA实现(在加密库和编程语言/环境中)都遵循PKCS#1