qdi*_*dii 13 encryption rsa encryption-asymmetric
一方面,我听到人们说这两个密钥是完全可以互换的,第一个密钥会解密第二个加密的密钥.这让我觉得这两个键是可以互换的.
但另一方面,RSA生成的密钥似乎具有不同的长度,而在另一个主题上,使用私钥加密被称为"签名",并且被认为比使用公钥加密更不安全.(2)
最重要的是,当公钥应该在野外公开分发时,应该保持私钥不公开.(3)
我计划从一个独特的服务器接收数据,所以我的想法是在该服务器上保留一个公钥以加密数据,并将私钥分发给所有可能的客户,但这与(3)相反.相反,如果我使用私钥分发公钥并加密我的数据,根据(2),加密安全性较低.
我应该分发公钥并使用私钥进行加密以满足(2)或其他方式吗?
注意:就我而言,性能不是问题.
Hen*_*röm 31
答案取决于您是出于数学好奇心提出问题,还是出于纯粹的实际加密原因.
如果要实现一个加密系统,你应该永远不会透露你的私钥,所以在这个意义上的键是绝对不能互换.此外,您描述的使用场景看起来非常适合身份验证而非机密性,因此服务器发送给客户端的消息确实应该签名而不是加密.如果您还需要机密性,则需要在协议中执行更多步骤.
从数学的角度来看,答案是OTOH"是",假设您使用仅包含模数N和指数D的私钥的内部表示,并且随机生成另一个指数E. 描述两个指数之间关系的公式是1 = E*D(mod phi(N)),因此从数学的角度来看,哪个指数是哪个并不重要.
但另一方面,RSA生成的密钥似乎有不同的长度
如果您使用的生成RSA私钥的实现比相应的公钥长得多,这几乎总是意味着实现绝对不适合交替使用公钥和私钥.长度的差异通常是由于以下因素的组合:
您的公钥用于加密邮件,您的私钥用于解密邮件.因此,使用您分发的公钥,任何人都可以加密邮件,只要您(或拥有您的私钥的人)可以解密它.要直接回答你的问题,不能互换.您永远不应该分发您的私钥.
如果您想与多个可能的客户共享密钥,那么实际上有两个选项.您要么放弃非对称加密技术,要么找到一种安全的方式来分配对称密钥,以便为每个密钥使用AES而不是RSA,或者要求每个密钥对生成密钥对并为您提供公钥.然后,您可以解密来自服务器的内容,并为每个客户重新加密.客户数量将有助于决定您在两者之间的选择.
| 归档时间: |
|
| 查看次数: |
3393 次 |
| 最近记录: |