在密码学中,RC2是一种对称密钥块密码。由Ronald Rivest于1987年设计。"RC"代表"Rivest Cipher",或者是"Ron's Code"。
RC2是一种64位的块密码,密钥大小可变,使用18轮。
轮回的排列方式为源头重飞网络,一种类型的16个轮回称为"混合轮回",由另一种类型的两个轮回交错排列,称为"捣碎轮回"。
18轮比赛采用以下交错顺序进行。
- 进行5轮搅拌。
- 进行1次捣鼓。
- 进行6轮搅拌。
- 进行1次捣鼓。
- 进行5轮搅拌。
RC2使用密钥扩展算法,根据所提供的"可变长度"输入密钥的每一个位,以复杂的方式产生一个由64(16位字)组成的扩展密钥。一轮混合运算由四次"混搭"变换的应用组成,如图所示。一轮混编是通过在其中加入一个扩展密钥的16位字来"混编"的(RFC2268)。
RC2容易受到使用234选择-明文攻击的相关密钥攻击(Kelsey等人,1997)。
RC2的开发是由Lotus公司赞助的,Lotus公司在经过国家安全局的评估后,寻求一种定制的密码作为Lotus Notes软件的一部分输出。NSA提出了几项修改建议,Ronald Rivest采纳了这些建议。经过进一步的谈判,该密码于1989年被批准出口。
与RC4一起,密钥大小为40位的RC2也受到了美国密码学出口法规的处理。现在,所有40位加密算法都已经过时了,因为它们很容易受到蛮力攻击的危险。
最初,该算法的细节是保密的 -- -- 是RSA安全公司的专利 -- -- 但在1996年1月29日,RC2的源代码被匿名地张贴在因特网的Usenet论坛sci.crypt上。早些时候,RC4也发生过类似的帖子。目前还不清楚发帖人是否能够获得规格,或者是否被反向设计。

