gpt4 book ai didi

ios - SecRandomCopyBytes 有多好?

转载 作者:IT王子 更新时间:2023-10-29 07:59:27 25 4
gpt4 key购买 nike

我主要对 SecRandomCopyBytesiOS 上的实现感兴趣,如果它与 OS X 实现不同的话。 (我假设它确实如此,因为移动设备比台式计算机拥有越来越多的可用熵源。)

有没有人知道:

  1. SecRandomCopyBytes 从哪里获取熵?
  2. 它可以产生良好随机数的速率是多少?
  3. 如果没有足够的熵可用,它会阻塞还是立即失败?
  4. 它是否符合 FIPS 140-2 标准,或者是否包含在任何其他官方认证中?

文档不包括这些点。

我只能找到听说它使用来自 radio 、指南针、加速度计和其他来源的信息的评论,但没有来自实际代表 Apple 的人的引述。

最佳答案

/dev/random 由来自 SecurityServer 的熵提供。 SecurityServer 从内核事件跟踪 (kdebug) 收集熵。该方法在“Mac OS X Internals. A Systems Approach”一书中进行了描述。您可以在线阅读相关信息,例如 http://flylib.com/books/en/3.126.1.73/1/

熵收集的源代码在这里:http://www.opensource.apple.com/source/securityd/securityd-40600/src/entropy.cpp

在 xnu-1504.9.37(撰写本文时 OS X 的最新版本)中,内核熵缓冲区在 kernel_debug_internal() 中填充,仅使用计时信息。这是写入熵缓冲区的唯一位置。

if (entropy_flag && (kdebug_enable & KDEBUG_ENABLE_ENTROPY)) {
if (kd_entropy_indx < kd_entropy_count) {
kd_entropy_buffer [ kd_entropy_indx] = mach_absolute_time();
kd_entropy_indx++;
}

if (kd_entropy_indx == kd_entropy_count) {
/*
* Disable entropy collection
*/
kdebug_enable &= ~KDEBUG_ENABLE_ENTROPY;
kdebug_slowcheck &= ~SLOW_ENTROPY;
}
}

关于ios - SecRandomCopyBytes 有多好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com