【问题标题】:How to generate a cryptographically secure pseudorandom number in C? [closed]如何在 C 中生成密码安全的伪随机数? [关闭]
【发布时间】:2016-04-10 22:22:48
【问题描述】:

我正在尝试在 C 中实现 Diffie-Hellman key exchange 的简单演示,并且我一直在尝试使用 GMP library 来处理大量数字。 我使用的是 2048 位素数,所以我试图生成一个 256 位的私钥。我怎样才能在 C 中正确地做到这一点?

编辑:了解getrandom() syscall,这是一个不错的选择吗?

【问题讨论】:

    标签: c random cryptography


    【解决方案1】:

    /dev/random/dev/urandom 设备更易于移植到其他 UNIX 风格。它们提供与 Linux 上的 getrandom 系统调用相同的池中的数据。

    一般来说,您会希望在大多数情况下使用/dev/urandom

    【讨论】:

      【解决方案2】:

      getrandom 系统调用是加密随机数生成器,它仅在 Linux 上可用。 在 Windows 上也有 CryptoGenRandom 用于此目的,https://msdn.microsoft.com/en-us/library/windows/desktop/aa379942(v=vs.85).aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-22
        • 2015-09-09
        • 1970-01-01
        • 2021-06-18
        • 1970-01-01
        • 1970-01-01
        • 2017-12-25
        相关资源
        最近更新 更多