CipherMode 枚举

定义

指定要用于加密的块密码模式。

public enum class CipherMode
public enum CipherMode
[System.Serializable]
public enum CipherMode
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CipherMode
type CipherMode = 
[<System.Serializable>]
type CipherMode = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CipherMode = 
Public Enum CipherMode
继承
CipherMode
属性

字段

CBC 1

密码块链 (CBC) 模式引入了反馈。 每个纯文本块在加密前,通过按位“异或”操作与前一个块的密码文本结合。 这样确保了即使纯文本包含许多相同的块,这些块中的每一个也会加密为不同的密码文本块。 在加密块之前,初始化向量通过按位“异或”操作与第一个纯文本块结合。 如果密码文本块中有一个位出错,相应的纯文本块也将出错。 此外,后面的块中与原出错位的位置相同的位也将出错。

CFB 4

密码反馈 (CFB) 模式将少量递增的纯文本处理成密码文本,而不是一次处理整个块。 该模式使用在长度上为一个块且被分为几部分的移位寄存器。 例如,如果块大小为 8 个字节,并且每次处理一个字节,则移位寄存器被分为 8 个部分。 如果密码文本中有一个位出错,则一个纯文本位出错,并且移位寄存器损坏。 这将导致接下来若干次递增的纯文本出错,直到出错位从移位寄存器中移出为止。 默认反馈大小可以根据算法而变,但通常是 8 位或块大小的位数。 使用 FeedbackSize 属性,可以改变反馈位数。 支持 CFB 的算法使用此属性来设置反馈。

CTS 5

密码文本窃用 (CTS) 模式处理任何长度的纯文本并产生长度与纯文本长度匹配的密码文本。 除了最后两个纯文本块外,对于所有其他块,此模式与 CBC 模式的行为相同。

ECB 2

电子密码本 (ECB) 模式分别加密每个块。 任何纯文本块只要相同并且在同一消息中,或者在用相同的密钥加密的不同消息中,都将被转换成同样的密码文本块。 重要说明:不建议使用此模式,因为它为多种安全漏洞打开了大门。 如果要加密的纯文本包含大量重复的块,则逐块破解密码文本是可行的。 另外,还可以使用块分析来确定加密密钥。 此外,随时准备攻击的对手可能会在您没有察觉的情况下替代和交换个别的块,这能让块在不为您所知的情况下保存并插入流中的其他位置。

OFB 3

输出反馈 (OFB) 模式将少量递增的纯文本处理成密码文本,而不是一次处理整个块。 此模式与 CFB 相似;这两种模式的唯一差别是移位寄存器的填充方式不同。 如果密码文本中有一个位出错,纯文本中相应的位也将出错。 但是,如果密码文本中有多余或者缺少的位,则那个位之后的纯文本都将出错。

注解

块加密算法以块单位加密数据,而不是一次加密单个字节。 最常见的块大小为 8 个字节。 由于每个块都经过大量处理,因此块加密提供比流加密更高的安全级别。 但是,块加密算法的执行速度往往比流加密算法慢。

块密码对每个块使用相同的加密算法。 因此,使用同一密钥和算法加密时,纯文本块将始终返回相同的密码文本。 由于此行为可用于破解密码,因此引入了密码模式,根据早期块加密的反馈修改加密过程。 与简单的块加密相比,生成的加密提供更高的安全级别。

适用于

另请参阅