Cryptography 对称密钥的生成?

Cryptography 对称密钥的生成?,cryptography,Cryptography,我想为与其他人的对称加密(AES)通信生成密钥。使用随机数生成器安全吗?特别是,例如,Linux提供的/dev/uradom?是的,通常就是这样做的。只要确保你的系统是正确的种子。大多数发行版都会自动执行此操作,但如果您不确定,则有两种选择: 1) 如果您只需要几个字节,而且很少需要,那么可以使用/dev/random 2) 程序首次启动时,请阅读/proc/sys/kernel/random/entropy\u avail。如果大于512,则无需担心。你可以随意阅读/dev/uradom,结果

我想为与其他人的对称加密(AES)通信生成密钥。使用随机数生成器安全吗?特别是,例如,Linux提供的
/dev/uradom

是的,通常就是这样做的。只要确保你的系统是正确的种子。大多数发行版都会自动执行此操作,但如果您不确定,则有两种选择:

1) 如果您只需要几个字节,而且很少需要,那么可以使用
/dev/random


2) 程序首次启动时,请阅读
/proc/sys/kernel/random/entropy\u avail
。如果大于512,则无需担心。你可以随意阅读
/dev/uradom
,结果将是安全的。

是的,通常就是这样做的。只要确保你的系统是正确的种子。大多数发行版都会自动执行此操作,但如果您不确定,则有两种选择:

1) 如果您只需要几个字节,而且很少需要,那么可以使用
/dev/random


2) 程序首次启动时,请阅读
/proc/sys/kernel/random/entropy\u avail
。如果大于512,则无需担心。您可以阅读
/dev/uradom
所有您想要的内容,结果将是安全的。

谢谢!:)。那两个呢?我能多读一些关于它的资料吗?请给我介绍一些地方?您说过一点,但它似乎是一个神奇的数字
512
,我想了解一下。不幸的是,Linux无法实现您真正想要的功能,即仅在必要时返回安全的随机数阻塞。按照Linux的PRNG工作方式,只要它们被植入种子,就永远是安全的。512字节足以永久地为它们设置种子(256字节就可以了)。因此,如果系统有超过256字节的熵,则在重新启动之前是安全的。大多数发行版都会自动确保这种情况。正如@DavidSchwartz所写的:请注意,当提及熵>256时,加密用例足以信任PRNG分发安全密钥字节。虽然这适用于大多数真实场景(可能也适用于这个问题的范围),但它不适用于某些特殊情况。。。例如OTP,或者如果系统除了为其他人分发密钥之外什么都不做。。。这仍然是伪随机性,不是真正的随机性…好的。谢谢我已经检查了我的
/proc/sys/kernel/random/entropy\u avail
,它是378。所以,它应该是安全的。但是,我能保证它永远是安全的吗?我指的是重启后的情况,还是“拉”10^100个随机字节后的情况?非常感谢你们。如果你给我推荐一些阅读的东西,我会很感激的。我没说它不太安全。。。对于大多数真实世界的应用程序来说,它是安全的,但对于某些特殊情况,它是不够的。。。你需要OTP的可能性很小。。。但在这种情况下,你很可能会想要得到你的手在一个尝试。。。谢谢!:)。那两个呢?我能多读一些关于它的资料吗?请给我介绍一些地方?您说过一点,但它似乎是一个神奇的数字
512
,我想了解一下。不幸的是,Linux无法实现您真正想要的功能,即仅在必要时返回安全的随机数阻塞。按照Linux的PRNG工作方式,只要它们被植入种子,就永远是安全的。512字节足以永久地为它们设置种子(256字节就可以了)。因此,如果系统有超过256字节的熵,则在重新启动之前是安全的。大多数发行版都会自动确保这种情况。正如@DavidSchwartz所写的:请注意,当提及熵>256时,加密用例足以信任PRNG分发安全密钥字节。虽然这适用于大多数真实场景(可能也适用于这个问题的范围),但它不适用于某些特殊情况。。。例如OTP,或者如果系统除了为其他人分发密钥之外什么都不做。。。这仍然是伪随机性,不是真正的随机性…好的。谢谢我已经检查了我的
/proc/sys/kernel/random/entropy\u avail
,它是378。所以,它应该是安全的。但是,我能保证它永远是安全的吗?我指的是重启后的情况,还是“拉”10^100个随机字节后的情况?非常感谢你们。如果你给我推荐一些阅读的东西,我会很感激的。我没说它不太安全。。。对于大多数真实世界的应用程序来说,它是安全的,但对于某些特殊情况,它是不够的。。。你需要OTP的可能性很小。。。但在这种情况下,你很可能会想要得到你的手在一个尝试。。。