我知道RSA密钥是非常难破解的,特别是在足够的加密位长的情况下。但是,访问公钥是否会使破解私钥变得更加容易?我可以想象,如果没有公钥,破解私钥基本上是不可能的。如果您没有公钥,您将不得不完全猜测模数和指数,直到最终得到的密钥能够解密加密的消息。
我知道公钥,顾名思义,是公开的和可访问的。但是,如果我们讨论的是服务器-客户端应用程序,如果您控制服务器和客户端,您可以很容易地实现一定程度上保护公钥的某些实践,如果您愿意的话,使其不那么公开。
因此,如果有人试图破解私钥,他们是否需要首先访问公钥?
根据这个问题,的答案,答案似乎是肯定的。如果这是正确的,那么公开密钥在多大程度上有助于破解私钥?没有公钥还会有多难呢?
发布于 2017-07-25 07:42:10
不,知道公众不需要破解RSA私钥。给定加密的消息,攻击者只需要知道一些可以让他区分解密您的消息是否成功的消息。这种东西可以是任何东西,通常是关于数据内容的一些知识,例如,关于一个问题的明确形式的知识,某些标签的存在,数据结构,数据统计,例如大量正确的英语单词的存在或校验和的存在。
虽然其本质上并不坏,但您将公钥保密的想法只会将您的公钥加密降低到最有可能使用对称加密解决的情况。
对称密码学的一个大问题是,发送方和接收方必须找到一种方法来安全地交换一对密钥,而目前还没有建立安全的通信通道,也没有办法检查对方的身份。这方面的主要解决方案是使用带外密钥交换。
RSA加密属于非对称加密,通过提出一个系统,发送方和接收方可以在公共目录中发布公钥,这些公钥可以由双方信任的第三方实体随意签名,从而解决了这一问题。这样就可以消除使用带外方法交换密钥的负担.
尽管如此,如果您愿意,您仍然可以使用带外方法来交换公钥.这是不必要的,取决于你打算做什么,随着时间的推移,它可能会变得更加复杂和更难维护,它不会以任何明显的方式增加你的安全性,但也不会降低你的安全性。
要朝你的方向走(一点),请注意所有的公钥都必须公开。一个很好的例子是用户的SSH身份验证密钥。当以清晰的形式存储时,用户的公共信息通常不会被发布(相对于服务器的公钥)。但是这样做,只要没有好处就行。一旦在可信任目录(例如内部公司目录)中存储公钥变得更加实用,通常就不会有任何问题。
https://security.stackexchange.com/questions/165944
复制相似问题