【发布时间】:2016-04-10 22:22:48
【问题描述】:
我正在尝试在 C 中实现 Diffie-Hellman key exchange 的简单演示,并且我一直在尝试使用 GMP library 来处理大量数字。 我使用的是 2048 位素数,所以我试图生成一个 256 位的私钥。我怎样才能在 C 中正确地做到这一点?
编辑:了解getrandom() syscall,这是一个不错的选择吗?
【问题讨论】:
标签: c random cryptography
我正在尝试在 C 中实现 Diffie-Hellman key exchange 的简单演示,并且我一直在尝试使用 GMP library 来处理大量数字。 我使用的是 2048 位素数,所以我试图生成一个 256 位的私钥。我怎样才能在 C 中正确地做到这一点?
编辑:了解getrandom() syscall,这是一个不错的选择吗?
【问题讨论】:
标签: c random cryptography
/dev/random 和/dev/urandom 设备更易于移植到其他 UNIX 风格。它们提供与 Linux 上的 getrandom 系统调用相同的池中的数据。
一般来说,您会希望在大多数情况下使用/dev/urandom。
【讨论】:
getrandom 系统调用是加密随机数生成器,它仅在 Linux 上可用。 在 Windows 上也有 CryptoGenRandom 用于此目的,https://msdn.microsoft.com/en-us/library/windows/desktop/aa379942(v=vs.85).aspx
【讨论】: