我有一个跟进问题给定一个私钥,是否可以派生它的公钥?
公钥和私钥是否"相同"(在您选择公开的意义上)或者您可以使用私钥而不是使用公钥执行更多操作?
编辑 - 更好地陈述我的问题:
当生成两个密钥时,我可以随机选择其中一个作为公钥吗?
kri*_*iss 13
一些论文描述将公钥和私钥的角色视为非常对称,但你绝对不能在现实世界中交换私钥和公钥的角色.
常用用法:
有几个原因:
你不想让用户选择应该发布哪个密钥,哪个不发布.公钥在全球发布,您可以将其视为您的公共身份.当你要证明给别人,你比别人有这个身份更深入的了解是必须的私处:可以读取文件发送给它的消息,您可以登录可以由任何人谁知道你的公共ID来verifyed消息.如果要发布的公钥/私钥的哪一部分留给用户,那么最终用户将发布这两部分.但这不是主要原因.
当你有私钥时,你真的有两个密钥,每个常见的实现,我知道提供工具从私人文件中提取公钥.这对pgp,gpg,openssl来说都是如此.这意味着所谓的私钥文件存储私钥和公钥,如算法中所述.这是设计的.
例如,使用openssl生成RSA密钥对的命令序列可以是:
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key
Run Code Online (Sandbox Code Playgroud)
应该清楚的是,第一个命令在私钥文件中生成两个密钥,并且仅从中提取公钥.
结果是,如果您的私钥被破坏,您的密钥都会受到损害.另一种方法是安全的,如果您既不知道文件中的公钥也不知道数学攻击,则无法推断出私钥.
Meh*_*ari 11
这实际上取决于你所说的"私钥".在几乎所有实际的引用中,知道私钥的发送者也知道公钥.它为其他人提供了公钥,因此需要了解它.因此,实质上,"私钥"将包含"公钥"信息,或者至少它可以从中派生出来.
通常,您不能交换私钥和公钥.实际上,它们并不总是相同类型(取决于所使用的密码系统).例如,在ECDSA中,您的公钥是椭圆曲线上的二维"点",而您的私钥是数字.
| 归档时间: |
|
| 查看次数: |
7696 次 |
| 最近记录: |