做的网站怎么在电脑上预览,网站开发外包业务怎么接,qq企业邮箱官网,做网站是要编程吗电子密码本模式和加密分组链接模式的分组算法都要求加密输入的分组是固定长度 的#xff0c;但是大多数输入明文可能都不是分组长度的整数倍#xff0c;也就是说#xff0c;最后一个分组一般来 说是不足一个分组长度的。为了使分组加密算法能够正常工作#xff0c;通常使用…电子密码本模式和加密分组链接模式的分组算法都要求加密输入的分组是固定长度 的但是大多数输入明文可能都不是分组长度的整数倍也就是说最后一个分组一般来 说是不足一个分组长度的。为了使分组加密算法能够正常工作通常使用填充技术对最后 一个分组进行填充以使该分组正好为一个分组的固定长度。不足的部分填充0或者1OpenSSL中使用的填充方法。使用该分组不够的字节的数作为值填充各个要填充的字节这 样在解密恢复的时候检查最后一个字节的值就知道要删除的填充字节的数目。但是为 了使这种方法能正确工作即便最后一个分组是完整的也要增加一个分组作为填充。例 如分组长度位是8字节 (64位)最后一个分组长度为5个字节那么需要填充的字节是3那么就使用数值3填充最后的3个字节。分组长度也是8字节 (64位)但是最后一个分组长度是完整的填充示意图填充的字节 长度就是8个字节数值为8上述方法有一个缺点就是经过填充后密文长度跟明文长度不一样这在很多应用 中是非常不方便的。为此提出了一种称为密文挪用的分组填充办法 序列加密模式
分组加密模式每次对一组数据进行加密处理而序列加密模式则不同它每次对一位明文进行简单运算 (一般是异或运算)从而得到密文一个序列加密模式结构一般由密钥序列发生器、运算单元(进行上述的简单的运算,比如进行异或运算)、明文输入和密文输出组成假设密钥序列发生器的输出位序列为K 1K2 K3 ......明文输入为P 1P2,P3......密文输出用C1、C2、C3......表示序列加密模式可以使用公式如下序列加密模式的安全性完全依赖密钥序列的安全性也就是说依赖密钥序列发生器 的安全性。假如密钥序列输出总是为0那么相当于没有加密该加密系统就没有任何存在的意义如果密钥序列是完全随机不重复的那么该加密系统的安全性相当于一次一乱 密码本方式几乎是不可破译的。当然实际上很难构造出输出完全随机的密钥序列发生器。密钥序列发生器的输出虽然应该看起来是随机的但必须是确定的也就是说应该是可以控制的否则如果加密跟解密的输出密钥序列不一样就不可能进行正确的数据 解密。密钥序列发生器的输出不能每次都相同否则就非常容易破密没有任何安全性。在 一个密钥序列发生器每次输出都是一样的情况下攻击者如果有机会获得一份明文跟密文对应的数据他就可以恢复出密钥从而可以用该密钥来读取任何使用该序列加密算法加 密的数据不仅仅是以后的数据也可以包括以前有办法截取到的数据。所以为了使密钥序列发生器每次输出不一样我们需要设置其状态使得其开始输出的状态都不同这个初始化的向量就是密钥。这样就增加了攻击者攻击的难度如果他有办法获得一个密钥只要更换密钥他就只好获得新的密钥但是很可能也是徒劳。一个密钥序列发生器理论上可以抽象为三部分:内部状态、状态转移函数及输出函数如图所示。内部状态描述了密钥序列发生器当前的内部状态对于一个同样结构的密钥序列发生器相同的内部状态应该输出相同的密钥序列否则就不可能进行正确的 加密和解密。状态转移函数描述了从当前状态转移到下一个状态的规则从而产生一个新的状态。输出函数对内部状态进行计算等处理从而输出密钥序列。在实际应用中这些组件的划分有时候并非那么明确。对于密钥序列发生器来说密钥可以看作是对其内部状 态进行初始化或重置的向量。自同步序列加密模式
自同步序列加密模式又称为密文自动密钥它的主要思想是密钥序列跟以前一定数量 的密文位相关即密钥序列是以前一定数量密文位的函数。如图所示是自同步序列加密模 式的加密和解密框架图。如图所示的自同步序列加密模式中内部状态就是由以前密文的n 位组成而 内部状态中的n位密文作为输出函数的输入所以输出的密钥序列的复杂性和安全性完全依赖于输出函数。输出函数通常可以有各种各样的形式比如可以使用分组加密算法或 单向散列函数算法为主体构成。因为在自同步序列加密模式中解密端的内部状态在从开 始到收到n位密文之后自动跟密文序列进行同步的解密所以称为自同步序列加密模式。在自同步序列加密模式中不需要进行人工的同步一般来说可以在开始的n 位 (假设内部状态是n位密文的函数)之前可以随便传送一些信息这些解密一般是不正确的在收到n位密文之后就开始实现同步能够进行信息的正确解密了。这种能够自动进行解密密钥同步的功能在某些应用中是很有用的。自同步序列加密模式事实上跟分组加密模式中的加密反馈模式很相似同样存在错误扩散问题。也就是说如果有一位密文发生了错误那么随后的n位密文的解密都不能正确进行。在密钥没有更换的情况下自同步序列加密模式很容易受到回放攻击攻击者可以将 记录下的密文重新发送给接收者因为解密器能够自动进行同步所以接收端会重复接收到正确的解密信息。这在一些电子交易应用中可能给攻击者带来巨大的利益。
自同步加密模式的特点 内部状态是前面n位固定长度密文的函数。算法的安全性依赖于输出函数的复杂性和安全性。会产生密文错误扩散密文中一位发生错误会导致其后n位密文不能正确解密。解密的时候具有密钥序列和密文自动同步的功能具有同步错误自恢复功能。明文长度和密文长度相同。容易受到回放攻击。同步序列加密模式 同步序列加密模式又称为密钥自动密钥加密它的特点是密钥序列的产生跟处理的消息是不相关相互独立的。如图所示是同步序列加密模式的加密和解密流程。 在加密端密钥序列发生器在使用密钥进行初始化后开始产生密钥序列在解密端 密钥序列发生器使用同样的密钥进行状态初始化从而产生同样的密钥序列这样就能够开 始进行正确的加密和解密。一般来说加密端和解密端的同步都是通过相同的密钥进行状 态初始化设置实现的。由于在加密和解密端必须产生相同的密钥所以事实上同步序列加 密模式的密钥发生器产生的密钥必须是确定的必须保证这些输出密钥序列在相当长的一 个范围内不能重复否则安全性将得不到保证。当然最好是不重复但这基本上是不可 能做到的。如果在解密过程中同步状态被破坏了比如增加或删除了一个密文位或者密钥序列发生器跳过了一个周期那么必须重新进行同步否则数据不可能进行正确的解密。所以同步序列加密模式对同步错误是没有办法恢复的。同步序列加密模式不会产生密文错误扩散如果一个密文位发生了错误它只会影响该位的正确解密而不会对其他任何密文位的解密产生影响。因为同步序列加密模式不会对密钥和密文进行自动同步所以能够一定程度上防止直接针对密文的一些攻击。比如在密文中插入或删除一位很容易被发现这时候因为失去同 步解密的可能都是乱码。在自同步序列加密模式下采用的简单回放攻击对同步序列加密模式也是基本无效的。
同步序列加密模式的特点
密钥序列的产生跟明文和密文消息都无关。不会产生密文错误扩散但是没有同步错误自动恢复功能。密文和明文长度相同。