数据安全实践:能力体系、产品实现与解决方案
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.1 流密码

流密码(Stream Cipher)又称序列密码,是一种对称加密算法。流密码算法相对简单,对明文和密钥按位做约定的运算,即可获得密文。其设计原理是采用一个短的种子密钥来生成长的密钥流,然后使用密钥流对明文或密文进行加解密运算。种子密钥的长度较短,易于存储和分发。流密码中最有名的算法是RC4(Rivest Cipher 4)、GSM加密算法和祖冲之序列密码算法(简称ZUC算法)。

流密码技术的基础是“一次一密”(One Time Pad,OTP)加密技术。1949年,信息论之父香农证明了只有OTP密码体制才是理论上不可破译且绝对安全的。由OTP加密得到的密文要达到无法破解的程度,密钥必须满足以下4个条件:

● 密钥完全随机,不能存在某种规律;

● 密钥不能重复使用;

● 通信双方对密钥保密;

● 密钥至少和明文一样长。

在实际应用中,OTP密码体制由于存在密钥产生、分发和管理极为困难的缺点,应用范围受到限制。例如,OTP要求密钥至少与明文一样长,而且每次加密都要产生一个极长的新密钥,并保障这个与明文一样长的密钥安全地到达接收方。这样的思路并不实际。长密钥的分发成本很高。而且,既然能安全交换密钥,为什么不直接把明文安全地传输到接收方呢?

流密码技术改进了OTP密码体制。与OTP相同的是,流密码采用双方事先约定且不会改变的密钥;与OTP不同的是,流密码技术会多次使用此密钥。每次需要加密一些数据时,流密码技术都会依靠一种特殊的算法(密钥流生成器)将密钥扩展为一个新的、唯一的加密密钥,如图1-1所示。这个加密密钥实际上与明文数据长度相匹配。

图1-1 流密码技术示意

流密码根据工作方式可分为同步流密码和自同步流密码。同步流密码是指密钥流的生成过程是独立的,明文及密文不参与其中;而自同步流密码(也叫异步流密码)中的密文参与密钥流的生成。

流密码技术的优势可以总结为4点:

● 速度快。流密码技术的加密形式通常比包括分组密码在内的其他加密形式更快。

● 复杂性低。流密码技术易于嵌入程序中,开发人员不需要复杂的硬件即可实现。

● 流式处理。一些公司处理的是“涓涓细流”写下的信息。通过逐位处理,流密码允许它们在信息准备好时发送信息,而不是等待一切完成。

● 易于使用。流密码是对称的加密工具,因此公司不会被迫使用公钥和私钥。

由于流密码易于实现,有许多个人和组织在使用它。比如,当用户连接到受保护的网站时,该网站会向用户的计算机发送SSL证书。该证书是加密的,大多数网站使用流密码来保障证书的发送。