在非对称加密方案中,我想知道是否有可能实现以下目标:
- Bob 将他的公钥发送给 Alice
- 爱丽丝更改鲍勃的公钥并用它加密一些文件
- Alice 将加密的文档发送给 Bob
- Bob 检索到文档,但无法用他的私钥解密
- 之后,Alice 向 Bob 发送了一些额外的信息(可能与她用来更改 Bob 的公钥的方法有关)
- Bob 使用此附加信息修改他的私钥并成功解密文档
任何人?
我假设 RSA 用于密钥生成、加密和解密,但如果使用其他方案更容易,请随时发表评论。
在非对称加密方案中,我想知道是否有可能实现以下目标:
任何人?
我假设 RSA 用于密钥生成、加密和解密,但如果使用其他方案更容易,请随时发表评论。
(我假设您谈论的是 RSA。)
是的,这是可能的,但不是 100%。
公钥是私钥的一部分。它包含密钥的模数和指数。
您可以完全忘记更改模数,因为您必须生成一个新的 rsa 密钥对,这与我们试图解决的问题相同。
但是可以改变指数。您可以选择 1 和您的指数之间的任何(素数)数作为新指数,并希望它与 totient 互质。如果不知道总指数,就不可能始终选择正确的指数。要找出密钥,您必须知道密钥的主要因素,这意味着您必须打破密钥(玩得开心!)。
所以,实际上不可能有一个 100% 的工作方法来做到这一点,至少在只知道公钥的情况下是不可能的。
如果您需要有关理论的更多信息,请点击此处
我希望我的想法有效。
让我们假设这(e,d,n)
是一个 RSA 公共指数的元组。RSA 私有指数和 RSA 模数n:
选择一个介于 1 和 256 位整数之间的质数,例如p 。
为了加密消息m,计算新的公共指数为e*p
和密文为:
c= m^{e*p} mod n
.
要解密,接收者应该知道素数p,所以你稍后将这个p发送给他,他用这个计算
(1)P = p^{-1} mod phi(n)
和
(2)m^e=c^{P} mod n
和
最后m=(m^e)^d mod n
。这在接收器知道 phi(n) 时起作用。
顺便说一句,我们可以在哪里使用它?您对此有什么想法吗?
正如 Silky 在他的回答中暗示的那样,通常使用 RSA 加密文档的方式是与对称算法(如 AES)结合使用。为 AES 算法生成一个安全随机密钥,文档使用该 AES 密钥加密,AES 密钥使用接收者的公钥加密。这两部分都提供给收件人。
您只需在第一步中仅发送使用 AES 密钥加密的文档,然后将使用收件人的公钥加密的 AES 密钥保留到第二步,您就可以根据您的情况进行调整。第一部分将按原始文件大小的顺序排列,第二部分将是一个小的恒定大小(按 RSA 密钥大小的顺序)。
嗯,有趣。
你指的是RSA,我猜?
仅供参考,RSA 实际上并不用于加密文档。它用于交换密钥(对称算法的密钥,如 AES)。
所以你真正谈论的是一种改变键的方法。
从技术上(数学上)如果你输入一个不同的数字,你会得到一个不同的数字。所以这不是问题;以某种方式更改公钥将(假设您说服您的 RSA 实现使用它,或准备一个适当不同的数字)会导致不同的对称密钥,因此 Bob 无法解密文档(因为他会期望不同的密钥)。
不过,真的,我不太确定你是否关心这个。这是一件相当无用的事情。但是,也许您实际上对密钥拆分(或维基百科似乎称之为“秘密共享”)感兴趣。
HTH。我绝不是专家。