密钥生成时间是否会影响移动电话(嵌入式设备)的CPU负载?我正在谷歌搜索信息,但我不完全确定我是否已经得出结论。
发布于 2020-07-11 20:59:48
任何一代都会消耗CPU,但你不太可能发现它减慢了现代智能手机的速度。
在已知的算法中,除了后量子密码之外,常见的两素数RSA具有最密集的CPU生成技术,因为它需要找到两个大素数。然而,RSA密钥对通常被用作长期、静态密钥对。因此,通常应用程序只偶尔创建它们一次。除了客户端身份验证之外,设置TLS连接也不需要它们。
对称密钥对生成仅限于随机数生成。只要安全的RNG不阻塞,您就不太可能注意到只有几个键的正常用例的任何减速。如果它确实阻塞,它不会影响CPU;它只会影响需要键的应用程序。(EC)DH密钥对生成速度也相对较快。
最后,总是有可能把一个实现搞砸。您可以尝试创建一个随机数生成器,它使用大量CPU或内存访问来检索足够的熵。例如,使用无法访问正常密码操作的API的程序员可以使用这一点,例如在使用交叉兼容的高级别运行时。
发布于 2020-07-11 21:10:54
如果您的意思是对称密钥,则生成不需要太多CPU资源。通常,操作系统提供了一些熵源。在此基础上生成密钥是非常简单的。
非对称方案的密钥是基于素数的。密钥生成的基本部分是素数的生成。
许多设备(个人电脑、笔记本电脑、平板电脑、智能手机)使用概率方法生成素数。简单地说,当使用测试时,它看起来如下.你会生成一些初始数字。然后估计这个数是否与概率1/2^n组合。如果您看到这个数字是复合的,而不是素数,那么您将生成一个新的候选人,并从开始开始。如果检查表明候选人的概率不高于1/2^n,则检查其组合的概率是否不高于1/2^{n+1},然后使用概率1/2^{n+2}等,直到该候选人合成的概率(它不是素数)小于您接受的阈值。
参见详细信息这里。
所有这些操作都非常需要CPU。这意味着,如果CPU加载了其他任务,则查找素数所需的时间可能比没有加载其他任务时的时间要长。
CPU负载也取决于所使用的硬件。如果硬件支持您使用的加密操作,那么它的CPU负载就会更少。在软件中实现的相同操作的执行会更多地加载CPU。
https://crypto.stackexchange.com/questions/81877
复制相似问题