固定密钥选择一个分组置换

对一个固定密钥,分组密码把每个b位输入映射为b位输出,并存在对应逆变换。由于是置换,同一密钥下不同完整输入块不会映射到同一输出块;这与把更大输入空间压缩为摘要的哈希函数不同。

分组位数描述一次基本变换处理的数据宽度,密钥位数描述选择变换的秘密参数。两者可以不同,例如AES三种密钥长度都对应128位分组,不能把较长密钥直接解释成一次容纳更多明文。

参考:[1] [2]

把单块变换组织成消息处理

工作模式规定怎样在多块数据上使用基本变换及额外状态。ECB独立处理每块;CTR则对不同计数器输入运行正向变换,再与消息异或。模式差异会改变重复模式泄露、并行性和初始化条件,不能只比较底层分组密码名称。

也不是所有解密过程都必须调用分组密码的逆函数。CTR在加密与解密两边都使用正向变换生成相应输出流,随后分别与明文或密文异或;因此须区分“原语的逆变换”和“模式的解密过程”。

参考:[2]

填充与认证取决于模式

某些模式要求完整分组长度,应用需规定如何处理最后不足一块的数据;CTR等模式可按规则处理最后部分块,所以不能笼统说所有分组密码应用都必须采用同一种填充。初始化值和计数器还须满足所选模式的条件。

保密模式不自动认证消息。若系统需要拒绝未经授权的修改,应选择适当认证机制或认证加密组合,并检查失败状态和用途绑定。使用了可靠分组原语,与实现了安全的完整消息协议,是两个不同层次的判断。

参考:[2] [3]