63、应用级伪随机数生成器的使用与管理

应用级伪随机数生成器的使用与管理

1. 流密码作为生成器

流密码本身就是伪随机数生成器,其密钥(以及合适情况下的初始化向量)构成种子。若计划使用流密码作为生成器,强烈推荐 SNOW 2.0 密码。不过,由于 RC4 密码广受欢迎,即便它不如 SNOW 表现出色,人们可能仍会优先选择它。

RC4 流密码可作为可接受的伪随机数生成器,若不频繁重新密钥,其速度极快,这在需要大量随机数时尤为有用。但如果为避免回溯攻击而频繁重新密钥,基于块密码的方法可能更快,需进行测试以确定。

使用标准 API 正确使用 RC4 需要一些额外操作:
- 大多数 API 需要传入待加密的数据,而我们仅需要原始密钥流,因此必须始终传入零值。
- 要确保以安全的方式使用 RC4。

若 RC4 实现采用特定 API,将其作为伪随机数生成器进行播种与对算法进行密钥设置相同,RC4 可接受最长 256 字节的密钥。由于 RC4 的局限性,应丢弃前 256 字节的输出。

以下是将 RC4 绑定到 spc_rand() 函数的代码:

/* NOTE: This code should be augmented to reseed after each request
/* for pseudo-random data, as discussed in Recipe 11.6
/*
#ifndef WIN32
#include <pthread.h>
static pthread_mutex_t spc_rc4rng_mutex = PTHREAD_M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值