库MB

librandombytes为生成新的随机性:包含<随机字节.h>,呼叫随机字节(x,x字节)每当需要生成新的随机字节时x[0],x(1), ...,x[x字节-1],并与链接-随机字节.

随机字节通常直接用于应用程序中。随机字节是也是更复杂的随机对象的基础,例如random有限间隔内的整数,来自(近似)正态分布和公钥中使用的随机密钥密码系统。librandombytes致力于获得新的随机数字节,并将其留给更高级别的库将这些字节转换为其他类型的随机对象。

librandombytes的目标是实现以下严格的随机性目标:否可行的计算将永远能够区分输出字节和真实随机性(独立均匀分布随机字节)。这使得随机()适合使用的输出从模拟到密码学的应用。

随机性的大多数替代来源(例如兰特()随机()单位为C,和1993年5月7日_64在C++中)考虑可检测到的与真的偏差随机性是可以接受的,只要应用程序不注意偏差。这些来源不允许存在于librandombytes中;这个随机字节()调用者有权期望输出来自为正确目标而设计的源代码。

在内部,librandombytes是两种选择的抽象层库,其中每个库都提供相同的随机字节接口但图书馆选择了两种不同的随机性来源:

想法是操作系统可以安装librandombytes-内核默认情况下,但系统管理员可以安装librandombytes-openssl图书馆透明地切换所有随机()应用程序到RAND_字节(用于示例,通过Debian的/等/备选方案机制)如果剖析表明此开关对整体系统性能很重要。

集中选择意味着应用程序可以自由地呼叫随机()

拥有随机()抽象层是指测试框架可以替代确定性种子随机()提供已知可重复测试的伪随机字节。当然,这个随机()必须保留这些测试框架提供的与新鲜的分开随机()用于部署。


版本:这是2023.09.04版的“简介”网页。