Ree*_*e M 2 encryption cryptography public-key-encryption key-generator private-key
我最近在我的计算机科学课程中学习了公钥/私钥加密,以及它在数据加密/解密方面的工作原理。我们还介绍了如何将其用于数字签名。但是,我们没有详细介绍实际密钥是如何自己生成的。
我知道它以一个非常大的数字开头,然后通过某种密钥生成算法传递,该算法返回两个不同的密钥,其中一个是私有的,另一个是公共的。这些算法是已知的还是黑盒系统?一个用户是否总是拥有与他们相关联的同一对密钥,或者他们是否曾在任何时候发生变化?
这似乎是一个非常数学的问题,因为键是相互关联的,但不能从另一个推导出来。
我知道它以一个非常大的数字开头,然后通过某种密钥生成算法传递,该算法返回两个不同的密钥,其中一个是私有的,另一个是公共的。
嗯,这并不完全正确。大多数非对称算法当然是基于大数的,但这不是必需的。例如,有基于散列的算法,而散列基于位/字节,而不是数字。
但是是的,对于非对称算法通常包含一个特定的算法来执行密钥对生成。例如,非对称加密由一个三重的Gen,Enc并且Dec其中,Gen表示密钥对生成。密钥对当然由公共部分和私有部分组成。
RSA 基本上从生成两个大的随机素数开始,它不一定从一个数字开始。
这些算法是已知的还是黑盒系统?
它们是已知的,它们是系统安全的基础。您不能只使用任何数字来执行,例如,RSA。请注意,对于 RSA,可能有不同的算法和配置;并非每个系统都会使用相同的Gen.
一个用户是否总是拥有与他们相关联的同一对密钥,或者他们是否曾在任何时候发生变化?
这取决于系统的密钥管理。通常有一些方法可以刷新或重新生成密钥。例如X.509证书往往有一个结束日期(到期日或到期日),所以你甚至不能永远使用相应的私钥;您必须不时刷新证书和密钥。
这似乎是一个非常数学的问题,因为键是相互关联的,但不能从另一个推导出来。
这通常是不正确的。公钥通常很容易从私钥派生出来。对于 RSA,公共指数可能未知,但通常设置为固定数 (65537)。这与模数(也是私钥的一部分)一起构成公钥。对于椭圆曲线密钥,首先生成一个私有随机值,然后直接从它导出公钥。
你当然不能从公钥中推导出私钥;那没有任何意义——如果可以的话,它不会很私密。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1567 次  |  
        
|   最近记录:  |