RC5

编辑
本词条由“匿名用户” 建档。
RC5(RivestCipher5)是RonaldRivest于1994年设计的对称分组密码。这意味着相同的密钥用于加密和解密。它属于Feistel密码类。数据首先被分成大小相等的块,并通过重复应用简单操作(即所谓的“原语”)来加密或解密。块大小、密钥长度和重复次数(“轮数”)未由算法指定,而是在加密前设置为参数。 设计RC5的目标是简单快速的密码。它建立在依赖于数据的旋转之上,在开发时,其作为原...

RC5(Rivest Cipher 5)是 Ronald Rivest 于 1994 年设计的对称分组密码。 这意味着相同的密钥用于加密和解密。 它属于 Feistel 密码类。 数据首先被分成大小相等的块,并通过重复应用简单操作(即所谓的“原语”)来加密或解密。 块大小、密钥长度和重复次数(“轮数”)未由算法指定,而是在加密前设置为参数。

设计 RC5 的目标是简单快速的密码。 它建立在依赖于数据的旋转之上,在开发时,其作为原语的适用性在很大程度上仍未得到探索。

与许多其他分组密码不同,RC5 不使用任何 S 盒来实现 Claude Shannon 在 1949 年所说的“混淆”,这对于明文、密钥和密文之间统计关系的安全操作很重要。 S-Box 会引起很多混乱,因为人们可以在很大程度上自由选择,例如 a b × b {\displaystyle b\times b} -S-Box 包含 2 b {\displaystyle 2^{b}} 可能b {\displaystyle b} 输入位的值到 2 b {\displaystyle 2^{b}} 可能的输出值。 然而,在实际实现中,S-Box 需要额外的内存和一定的计算量,因为必须首先将数据字分成足够小的部分输入 S-Box,因为 16 或更多的整个字位对于这个来说太大了。 然后你必须再次把结果放在一起形成一个词。 没有 S-Box 使得 RC5 非常简单和快速,特别适合在资源匮乏的地区使用——例如芯片面积有限的数字硬件。

RFC 2040 标准中指定了一种具体的软件实现,它为连接块提供了不同的操作模式。

RC5 是 RC6 加密的基础,它是高级加密标准的候选者。

描述

编辑

RC5 具有可变块大小(32、64 或 128 位)、密钥长度(0-2040 位)和轮数(0-255)。 这些参数的具体选择通常表示为“RC5-w/r/b”——w 是一个字的长度(一个块是两个字),r 是轮数,b 是长度以字节为单位的键。 Rivest 最初推荐 RC5-32/12/16 和 RC5-64/16/16 用于 64 位架构。

对称分组密码

RC5 由三个部分组成:加密、解密和密钥扩展。 加密和解密中使用的方法的密码原语是:

  • 两个词的加法 modulo 2 w
  • 两个词的按位异或将一个单词旋转 b 位位置,其中 b 由另一个单词的 log 2 ⁡ w {\displaystyle \log _{2}w} 最低有效位给出

原语对 w 位字进行操作,每个字形成一个半块。 该算法的安全性在很大程度上取决于旋转的使用,这是该方法中xxx的非线性操作。 后继算法 RC6 和部分 AES 候选 MARS 也基于数据相关旋转。

按键扩展

通过密钥扩展,从秘密密钥生成轮密钥 S0、...、S2r+1(其中 S0 和 S1 用于密钥白化)。 轮密钥系统也称为扩展密钥表。为此,首先将密钥分成半块 Li,并在必要时用零填充。

密码分析

编辑

一种称为 RC5⊕ 的变体也用于密码分析目的,其中半块的模加法完全交换为按位 XOR。 由于密文的位与链接到 XOR 下的明文的轮密钥的位之间的连接,此变体在密码学上较弱,并且主要适合作为数据相关旋转分析的简化。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/373691/

(5)
词条目录
  1. RC5
  2. 描述
  3. 按键扩展
  4. 密码分析

轻触这里

关闭目录

目录