分组密码和序列密码的区别 分组密码每次加密一个明文块,序列密码每次加 密一个比特位或一个字符 ●序列密码的密钥有多个,组成一个密钥序列
分组密码和序列密码的区别 分组密码每次加密一个明文块,序列密码每次加 密一个比特位或一个字符 序列密码的密钥有多个,组成一个密钥序列
3.1.1分组密码设计原理 分组密码是将明文消息编码表示后的数字 (简称明文数字)序列,划分成长度为n的 组(可看成长度为n的矢量),每组分别在 密钥的控制下变换成等长的输出数字(简 称密文数字)序列 实际上是对长度为n的数字序列进行置换
3.1.1 分组密码设计原理 分组密码是将明文消息编码表示后的数字 (简称明文数字)序列,划分成长度为n的 组(可看成长度为n的矢量),每组分别在 密钥的控制下变换成等长的输出数字(简 称密文数字)序列 实际上是对长度为n的数字序列进行置换
实现的设计原则1 分组长度足够大 但是要考虑分组长度大带来的缺点 密钥空间足够大 n目前认为128位足够安全 由密钥确定的算法足够复杂
实现的设计原则 1 分组长度足够大 ◼ 但是要考虑分组长度大带来的缺点 密钥空间足够大 ◼ 目前认为128位足够安全 由密钥确定的算法足够复杂
实现的设计原则2 软件实现的要求:使用子块和简单的运算。密码 运算在子块上进行,要求子块的长度能自然地适 应软件编程,如8、16、32比特等。在子块上所一 进行的密码运算尽量采用易于软件实现的运算。 最好是用处理器的基本运算,如加法、乘法、移 位等。 ·硬件实现的要求:加密和解密的相似性,即加密 和解密过程的不同应仅仅在密钥使用方式上,以 便采用同样的器件来实现加密和解密,以节省费 用和体积。尽量釆用标准的组件结构,以便能适 应于在超大规模集成电路中实现
实现的设计原则 2 软件实现的要求:使用子块和简单的运算。密码 运算在子块上进行,要求子块的长度能自然地适 应软件编程,如8、16、32比特等。在子块上所 进行的密码运算尽量采用易于软件实现的运算。 最好是用处理器的基本运算,如加法、乘法、移 位等。 硬件实现的要求:加密和解密的相似性,即加密 和解密过程的不同应仅仅在密钥使用方式上,以 便采用同样的器件来实现加密和解密,以节省费 用和体积。尽量采用标准的组件结构,以便能适 应于在超大规模集成电路中实现
两个基本设计方法 Shannon称之为理想密码系统中,密文的 所有统计特性都与所使用的密钥独立 ●混乱( confusion):使得密文的统计特性与 密钥的取值之间的关系尽量复杂,也就是, 当明文中的字符变化时,截取者不能预知 密文有什么变化 例如:凯撒密码的混乱性并不好,因为只要推 断出几个字母的转换方式,不需要更多信息就 能预测出其他字母的转换方式
两个基本设计方法 Shannon称之为理想密码系统中,密文的 所有统计特性都与所使用的密钥独立 混乱(confusion):使得密文的统计特性与 密钥的取值之间的关系尽量复杂,也就是, 当明文中的字符变化时,截取者不能预知 密文有什么变化 ◼ 例如:凯撒密码的混乱性并不好,因为只要推 断出几个字母的转换方式,不需要更多信息就 能预测出其他字母的转换方式