ssh-keygen,是否有可能生成相同的公钥?(ssh 公钥重复)

ssh-keygen,是否有可能生成相同的公钥?(ssh 公钥重复)

是否有可能生成相同的公钥?

在下面的例子中,创建的两个密钥(test1.pub,test2.pub)是不同的公钥。

$ ssh-keygen -C IsItPossible
Generating public/private rsa key pair.
Enter file in which to save the key: ./test1

$ cat test1.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwciYGvVkPN0P5I/+WyyrQ0ZWIWlcSjypkBXE0U+OdpnOZYSC4SdwJz8Vn2vMtNH99rixCz1PtDjc6+FJVYHFuQLzg/9XWkcqJRMasdFm4FNVxEkwX9dTDxSMW04FR52tPgagN7sTnTFZPAyOvRfdj8gfqPQU6n/4++b6kNiYbf/k/V614CC7+h5Z9iTu581WoFD04onhddmifQ6COW2TzD8dVfJSu6OZniInKoj19kxv4xy1ErylPc9drcv03V3h84ndehPq/6fmz3rWKk2FtrKhoagZgoD/5ASvcObksi0Qx90WPqZN7d45590eZSujxY3cdm4mj5pjHXv2R7xPuu0eQKpj1Mt9Obz8kpSaH7XuCmCkr3rwrY6/5DcjkuqyaN1xkOQegcj6yK8j6ySh0DYHzzdZJ1UHZ/ADKy8IBoZ5ECXp/GmyDaSrsTgt4gdPLCbvuVsCxkCoaE3FJrMefV8of/RP5xZSHSUsivwlLtgamJ4LhzOHIPhb8eukAL6E= IsItPossible

$ ssh-keygen -C IsItPossible
Generating public/private rsa key pair.
Enter file in which to save the key: ./test2

$ cat test1.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDXGSZ+GfT/dl3Ixx6vs1CoL89IaLC+YdFlAT9PQCdzXkgZIHE006USntKxc7LngS+aDJrLAqWg4LULy9g2PUHzcrpOo/+O7MMM6UNn12mcB7tFDFt20MKQ0d/bH5RhGv6B5EzhENmZ7cuqmGTh4sCKyB2GK4rK22EIAc/gdKUhDEc+QztrRD36PYJjF7/L+gqB5pPhJn9qwGkcA3wg+T2arz4htu+2MAvQXsS4HSZgKG4IqBvsSPQH/Kx5AjYCir1GsuEaVKeoz00ob9GyE5ZQs2vhIPa3C98+n115tXbE8SDd/eN1cTK1MTuLmGWDGlZ8OeGK08/hGpPcR5O4sgrEhcmhpzuViW7lajZMuQp3u/Cqdmu92CkuEr7YM5+w5VmLm/v+w8Oag76AkIDwZy7QxbZhpgMoTIwjto6xHfnw9jCgDjeGgGPXtrA7hQj/a+0afb9yr0u0p6uh5lYy4Pq+UA5alZ0bwxBDANSOlTMugmc2734Tx0x2f9mqOSU8Wh0= IsItPossible

是否有可能创建具有相同输出的公钥?

cat test1.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwciYGvVkPN0P5I/+WyyrQ0ZWIWlcSjypkBXE0U+OdpnOZYSC4SdwJz8Vn2vMtNH99rixCz1PtDjc6+FJVYHFuQLzg/9XWkcqJRMasdFm4FNVxEkwX9dTDxSMW04FR52tPgagN7sTnTFZPAyOvRfdj8gfqPQU6n/4++b6kNiYbf/k/V614CC7+h5Z9iTu581WoFD04onhddmifQ6COW2TzD8dVfJSu6OZniInKoj19kxv4xy1ErylPc9drcv03V3h84ndehPq/6fmz3rWKk2FtrKhoagZgoD/5ASvcObksi0Qx90WPqZN7d45590eZSujxY3cdm4mj5pjHXv2R7xPuu0eQKpj1Mt9Obz8kpSaH7XuCmCkr3rwrY6/5DcjkuqyaN1xkOQegcj6yK8j6ySh0DYHzzdZJ1UHZ/ADKy8IBoZ5ECXp/GmyDaSrsTgt4gdPLCbvuVsCxkCoaE3FJrMefV8of/RP5xZSHSUsivwlLtgamJ4LhzOHIPhb8eukAL6E= IsItPossible

cat test2.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwciYGvVkPN0P5I/+WyyrQ0ZWIWlcSjypkBXE0U+OdpnOZYSC4SdwJz8Vn2vMtNH99rixCz1PtDjc6+FJVYHFuQLzg/9XWkcqJRMasdFm4FNVxEkwX9dTDxSMW04FR52tPgagN7sTnTFZPAyOvRfdj8gfqPQU6n/4++b6kNiYbf/k/V614CC7+h5Z9iTu581WoFD04onhddmifQ6COW2TzD8dVfJSu6OZniInKoj19kxv4xy1ErylPc9drcv03V3h84ndehPq/6fmz3rWKk2FtrKhoagZgoD/5ASvcObksi0Qx90WPqZN7d45590eZSujxY3cdm4mj5pjHXv2R7xPuu0eQKpj1Mt9Obz8kpSaH7XuCmCkr3rwrY6/5DcjkuqyaN1xkOQegcj6yK8j6ySh0DYHzzdZJ1UHZ/ADKy8IBoZ5ECXp/GmyDaSrsTgt4gdPLCbvuVsCxkCoaE3FJrMefV8of/RP5xZSHSUsivwlLtgamJ4LhzOHIPhb8eukAL6E= IsItPossible

我想知道的是,如果公钥复制是不可能的,那么是什么原理使得它无法复制。

公钥生成的原理以及不可复制的结构原因。

答案1

从技术上讲,生成两次相同的密钥是可行的,但从数学上讲,这是不可能的。您需要记住的是要有随机数生成器。如果 rsa 生成算法使用两次用相同种子初始化的伪数生成器,它将生成相同的密钥。这就是为什么 linux 使用 /dev/random,它是真正的伪随机数生成器(如果没有足够的熵来生成新的随机字符,它将等待),而 /dev/urandom 不会等待,而是在熵不多时使用伪随机数生成器,因此它在下面使用 /dev/random,但不会挂起。/dev/random 使用计算机中内核可用的各种外部信息来基于它生成熵和随机数。当然,如果内核中有错误或 linux 在虚拟机(不是真实环境)中运行,/dev/random 也可以提供伪随机数。

校正 /dev/random 被认为是伪随机的。https://stackoverflow.com/questions/5635277/is-dev-random-considered-truly-random

相关内容