1. Introduction and Overview (简介和概述)
1. Introduction and Overview (简介和概述)
软件密码学正在得到更广泛的使用, 尽管距离普及还有很长的路要走。诸如 SSH, IPSEC, TLS, S/MIME, PGP, DNSSEC 和 Kerberos 等系统正在成熟, 并成为网络环境的一部分 [SSH] [IPSEC] [TLS] [S/MIME] [MAIL_PGP*] [DNSSEC*]。相比之下, 当本文档的前一版本 [RFC1750] 于 1994 年发布时, IETF 中唯一的互联网密码安全规范是隐私增强邮件 (Privacy Enhanced Mail) 协议 [MAIL_PEM*]。
这些系统提供了对窥探和欺骗的实质性保护。然而, 存在一个潜在的缺陷。所有密码系统的核心是生成秘密的、不可猜测的 (即随机的) 数字。
缺乏普遍可用的设施来生成此类随机数 (即缺乏真正不可预测源的普遍可用性) 在密码软件的设计中形成了一个开放的伤口。对于想要构建一个在各种硬件上运行的密钥或密码生成过程的软件开发人员来说, 这是一个非常现实的问题。
请注意, 要求是对手猜测或确定概率非常低的数据。如果使用仅满足传统统计随机性测试的伪随机数据, 或者基于有限范围的源 (如时钟), 这很容易失败。有时, 这样的伪随机量可以被对手通过搜索令人尴尬的小可能性空间来猜测。
本最佳当前实践文档描述了生成能够抵抗攻击的随机量的技术。它建议未来的系统包括硬件随机数生成, 或提供对可用于此目的的现有硬件的访问。它建议在这样的硬件不可用时使用的方法, 并给出了示例应用程序所需的随机位数的一些估计。