欧美网站建设公司排名,安徽住房和城乡建设厅,设计类的网站和简介,丽水哪里有做网站的公司4000-262-密钥生成
如何安全地生成密钥。即如何生成可信任的密钥#xff0c;保证用户得到的密钥是安全的#xff0c; 生成密钥的机器或程序是可信的。如何生成安全的密钥。安全的密钥没有统一准确的定义#xff0c;但一般来说是指密钥抗 猜测和抗穷举等针对密钥攻击的能力。涉及密钥…密钥生成
如何安全地生成密钥。即如何生成可信任的密钥保证用户得到的密钥是安全的 生成密钥的机器或程序是可信的。如何生成安全的密钥。安全的密钥没有统一准确的定义但一般来说是指密钥抗 猜测和抗穷举等针对密钥攻击的能力。涉及密钥长度和密钥强弱的问题。
分组加密
对称加密算法按其加密数据的方式一般来说可以分成两种类型:分组加密和序列加密。分组加密又称为块加密是将要处理的数据分成固定的长度然后在这固定长度的数据上使用密码算法进行计算。序列加密模式又称为流加密方式是对要处理的数据按位 (或字节)逐个进行加密处理。
注意事项
算法加密模式的安全性。虽然加密模式不会对密码算法本身的安全性产生影响但是一个差的算法加密模式可能会增加攻击者攻击成功的机会甚至提供机会。例如如果相同的明文加密后总是产生相同的密文就很容易被攻击者利用。算法加密模式的容错性。加密的数据通常要经过网络传输网络传输中出现差错是很可能的这时候就需要考虑算法的容错性。有些算法会导致错误扩散其中一位出错 而导致多位甚至多个字节不能正常解密。算法加密模式的效率。算法加密模式的选择对加密效率会有影响一般来说 要基本保证加密模式的效率不会比算法本身的效率低过多。算法加密模式的实时性。不同的算法加密模式实时性不同有的算法可以一边加密一边实时传输和解密有些则需要等到一个数据块全部接收到了才能进行解密。在不同的应用中对实时性的要求是不一样的。
常用的分组加密模式有四种分别是:电子密码本模式 (ECB)、加密分组链接模式 (CBC)、加密反馈模式 (CFB)和输出反馈模式 (OFB)。下面重点介绍这四种加密模式 对其他的加密模式仅作简单的概括。
电子密码本模式(ECB) 电子密码本模式 (ECB)是最简单的分组加密模式也是最能体现 “分组”概念的加 密模式。它将加密的数据分成若干组每组的大小跟加密密钥长度相同然后每组都用相 同的密钥进行加密。比如 DES算法使用一个64位的密钥如果采用该模式加密就是 将要加密的数据分成每组64位的数据如果最后一组不够64位那么就补齐为64位 然后每组数据都采用DES算法的64位密钥进行加密 。 如图所示是电子密码本模式的加密和解密的流程图图中P0、P1是明文分组C0、C1是相应的密文分组。 比如对“My name is DragonKing”这句话就可以个字符(64位)为一分组形成图所示的这样的分组最后一个分组不足个字符可以采用其他数据填充补齐。电子密码本加密模式的每个分组的加密是相互独立的相互之间没有关系可以不必按顺序进行各分组也可以并行进行加密和解密。这在某些应用方式下是非常有用的比 如数据库加密。如果使用电子密码本模式对数据库中的每个记录进行加密那么数据库的 存取就会非常方便每个记录都可以独立进行加密和解密的存取、添加或者删除等操作 而且可以进行并行的处理以提高速度。电子密码本模式加密的数据如果密文数据出错了解密的时候会影响整个明文分组可能导致整个明文分组不能正确地解密但是不会影响其他明文分组。电子密码本模式对密文数据的增减是十分敏感的如果密文数据中插入或丢失了一位数据那么随后的整个密文序列都将不能正确地解密这称为同步错误。所以使用电子密码本模式的时候必须确保密文分组的完整性。采用电子密码本模式加密相同的明文采用相同的密钥加密总是得到相同的密文对于加密大量数据的密钥来说这非常容易受到攻击。大量信息的情况下会有很多数据重复那么如果攻击者知道了一段明文对应的密文无论那段密文在哪儿出现他都能解密该密文。更加严重的是如果电子密码本模式加密的是一种有固定结构的信息那么攻击者甚至可以不通过破译密钥就能达到自己的目的。电子密码本模式(ECB)的特点 每次加密的数据长度固定。各个分组相互独立可以并行加密和解密。 相同的明文使用相同的密钥总是产生相同的密文。 一个位的错误只对所在的明文块产生影响但是增加或删除一个位会导致其后整个密文序列没有办法正确解密。
加密分组链接模式(CBC)
加密分组链接模式 (CBC)可以解决电子密码本模式(ECB)容易受到分组替换攻击的问题。加密分组链接模式首先也是将明文分成固定长度的分组然后将前面一个加密分组输出的密文与下一个要加密的明文分组进行异或操作计算将计算结果再用密钥进行加密得到密文。第一明文分组加密的时候因为前面没有加密的密文所以需要一个初始化向量 (IV)。跟电子密码本模式不一样通过链接关系使得密文跟明文不再是一一 对应的关系破解起来更困难而且克服了只要简单调换密文分组就可能达到目的的攻击。加密分组链接模式的流程如图所示其中P0、P1是明文分组C0、C1是密文分组IV 是初始向量。加密分组链接模式的过程用数学公式表示如下: 使用不同的初始向量相同的明文使用相同的密钥会产生完全不同的密文这使得攻击者对密文的分析更加困难;而使用相同的初始化向量相同的明文使用相同 的密钥还是会产生相同的密文这是我们不愿意看到的结果所以一般应该避免重复 利用初始向量。 初始向量在加密分组链接模式中没有任何保密价值因为除第一个分组外加密分组链接中其他分组用来跟明文进行异或的数据都是前面输出的密文分组而这个密文分组显 然是可以在网络上简单获取的所以即便你对初始向量进行保密也仅仅对第一个分组 有一点点意义而对其他大部分分组来说没有任何意义。 加密分组链接模式的缺点之一是会造成错误扩散。对于明文错误来说性质并不是很严重因为经过加密和解密来说恢复的明文还只是发送错误的地方有错误不会扩散到别的地方。而且明文发生错误的可能性较小。 密文发生错误的可能性更大因为密文要经过有许多不可确定因素的网络的传播。在加密分组链接模式中如果密文有一位发生了错误那么其后的一个分组中相应的位会发生错误该分组的明文不能恢复但是错误分组的第二个分组之后的分组不会受这个错误 的影响这称为加密分组链接模式的自恢复功能。跟电子密码本模式一样加密分组链接模式也不能恢复同步错误。也就是说如果密文中增加或删除了一位那么该位以后的所有密文的解密都将难以得到正确的明文结果。 所以使用加密分组链接和电子密码本模式都需要确保分组链接的完整性。加密分组链接模式虽然对抵抗分组重复攻击和分组替换攻击有效但是很容易受到干扰性的攻击。比如攻击者可以在密文之后附加一些信息而接收者没有办法发现这是附加 的信息虽然可能是乱码但有时候可能导致其他重大的安全问题。攻击者还可以利用加 密分组链接错误扩散的特点进行破坏性的攻击比如通过改变一个分组的一位从而控制下 面一个分组相应位的变化甚至通过删除或增加一位密文数据从而使得明文无法恢复等 等。此外如果使用相同的初始化变量和加密密钥加密的信息数据量太大一样会给攻击 者提供大量的信息这也是需要注意的。
加密分组链接(CBC)模式特点
每次加密的数据长度固定。当相同的明文使用相同的密钥和初始向量的时候 CBC模式总是产生相同的密文。链接操作使得密文分组要依赖当前和以前处理过的明文分组密文分组顺序不能进行重新排列也不能进行并行操作。可以使用不同的初始化向量来避免相同的明文产生相同的密文能一定程度上抵抗字典攻击等密文分析。一位发生错误后会对当前及后一个分组的明文产生错误。增加或删除一个位会导致其后整个密文序列没有办法正确解密。 不能实时解密必须等到8个字节都接收到之后才能开始解密否则得不到正确的结果。
加密反馈模式(CFB)
在加密分组链接模式下必须等整个分组的数据接收完之后才能进行解密不能实时解密这在很多网络应用中是不适合的。加密反馈模式 (CFB)正是了为了适应这种要求作的改进。加密反馈模式通过引入移位寄存器来克服加密分组链接模式不能实时解密的困难。如图所示是带64位移位寄存器的加密反馈模式的加密和解密流程图 。 图 中 C2 、 C3 及 P10等都是一个字节 (8位)的数据所以能够实现字符的实时加密和解密不用再等到8个 字节都接收到之后再进行解密。图中是在进行第10个字节数据的加密和解密过程在该过程中先从移位寄存器取8个字节的数据 (C2到C9)用密钥进行加密然后取加密数 据最左边的一个字节跟输入的明文 P10进行异或操作得到的值作为输出密文 C10同时 将 C10送入到移位寄存器中。跟加密分组链接模式一样加密反馈模式的密文也跟以前所有的明文有关系具有相关联的关系。在刚开始的时候移位寄存器也要使用初始向量填充。初始向量同样没有必 要保密其原因跟加密分组链接模式是一样的。对不同的消息初始向量应更换以保证 在使用相同的密钥加密信息的时候不会产生重复的密文比如可以使用不断增大的索引号 码作为初始向量。加密反馈模式同样存在错误扩散的问题。明文错误不会有太大的影响如果明文其中 一位出错了解密后它也只会影响明文错误的那一位。但是密文错误影响就会严重得多。在如图所示的加密反馈模式中如果密文中有 一位发生了错误那么当前字节的密文及随后8个字节的密文的解密都会受到影响可能 会导致无法正确解密。因为在这9个字节的解密计算都使用到了该错误的密文。但是在这9个字节之后密文就能自动恢复到正常解密的状态。 对于同步错误加密反馈模式同样具有自恢复的功能如果密文数据中增加或删除一位在这一位进入到寄存器的时候会影响其所在的8个字节然后移出寄存器密文就 恢复了正确解密。基于加密反馈模式的错误扩散性能攻击者一样可以通过更改密文某些位使得密文解 密成另外一些消息。
加密反馈模式(CFB)特点
每次加密的数据不超过64位。当使用相同的密钥和初始向量的时候相同明文使用 CFB模式加密输出相同的密文。链接操作的方法使得密文数据依赖当前和以前所有的数据所以数据都应该按顺序组织在一起不能进行并行计算操作。可以使用不同的初始变量使相同的明文产生不同的密文防止字典攻击等密文分析行为。CFB模式的强度依赖于密钥的长度强度最大的情况是每次加密的数据长度和密钥长度相同的情况。当每次加密的数据长度的取值比较小的时候相同的明文一般需要更多的循环来完成加密这可能会导致过大的开销。每次加密数据的位数应该为8的整数倍。一旦某位数据出错会影响到目前和其后一些字节的加密数据的正确解密但是对同步错误具有自恢复功能。数据可以实时传输每接收到一位都可以随即进行解密。输出反馈模式(OFB)
输出反馈模式也需要使用初始向量对寄存器进行初始化初始化向量也不需要保密。输出反馈模式不存在错误扩散的问题如果密文的一位发生了错误那么只会影响其对应明文的一个位而不会影响别的位。对于同步错误输出反馈模式没有自恢 复功能所以一旦增加或删除了密文的一位该位后面的所有密文都将不能正确 解密。输出反馈模式的密文与前后数据的相关性小所以安全性相对于加密分组链接模式和 加密反馈模式比较弱。输出反馈模式使用密文序列跟明文异或产生明文而密文序列由密 钥本身产生这肯定具有周期性在使用相同密钥加密的数据到达一定数量时会产生重 复这就会大大降低算法的安全性。
特点
每次加密的数据不超过64位。当使用相同的密钥和初始向量的时候相同明文使用 OFB模式加密输出相同的密文。要注意的是在 OFB模式下相同的密钥和初始向量产生相同的密钥流所以为了 安全原因一个特定的初始向量对一个给定的密钥应该只使用一次。因为没有使用链接操作数据相关性小所以使得 OFB模式更容易受到攻击。可以使用不同的初始变量产生不同的密钥流从而使得相同的明文使用不同密钥 产生不同的密文。当每次加密的数据长度取值比较小的时候相同的明文一般需要更多的循环来完 成加密这可能会导致过大的开销。每次加密数据的位数应该为8的整数倍。 OFB模式不会进行错误传播某位密文发生错误只会影响该位对应的明文而不会影响别的位。 OFB模式不是自同步的如果加密和解密两个操作失去同步那么系统需要重新初始化。每次重新同步的时候应该使用不同的初始向量。这样可以避免产生相同的密文从而避免 “已知明文”攻击。在OFB模式中XOR所需要的比特序列密钥流可以事先通过密码算法生成和明文分组无关。只要提前准备好所需的密钥流则在实际从明文生成密文的过程中就完全不需要动用密码算法了。只要将明文与密钥流进行XOR就可以了。和AES等密码算法相比XOR运算的速度是非常快的。这就意味着只要提前准备好密钥流就可以快速完成加密。换个角度来看生成密钥流的操作和进行XOR运算的操作是可以并行的。 三重分组加密模式 上述三种方式的安全性限定于分组长度比如 DES算法密钥长度一般来说就是64位容易受到穷举 攻击 OpenSSL常用的有三重电子密码本模式 (3ECB)和三重加密分组链接模式 (3CBC)。 三重分组加密模式使用了不止一个密钥对明文分组进行了基于基本分组加密模式的 加密、解密和加密操作。目前来说有两种应用方式:一种是使用两个密钥即第一个密 钥和第三个密钥相同;还有一种就是使用三个不同的密钥。图38所示是使用两个密钥的 三重分组加密模式的加密和解密流程图;图39所示是使用了三个不同密钥的三重分组加 密模式的加密和解密流程图。 三重加密分组模式特点
加密过程为使用 K1加密然后使用 K2解密最后使用 K3加密完成加密过程。 加密过程使用了电子密码本模式、加密分组链接模式等其他基本分组加密模式但是密钥增加到了168位虽然目前理论上可以使得有效密钥长度降到112位相对于 56位的密钥来说安全性还是得到了很大的提高。如果前两个密钥是相同的那么就相当于使用一个密钥加密了一次。如果第一个和第三个密钥是相同的那么密钥长度事实上是112位有些攻击方法可以使得有效密钥的长度降为比56位稍多的长度但需要很大的内存空间。 如果三个密钥都是相同的那么就跟普通的分组加密模式效果相同了。三重分组加密模式的基本特点跟其使用的基本分组加密模式特点基本一致。
其他分组加密模式
计数器模式 在输出反馈模式中移位寄存器的输入是从加密输出分组中最左端的值取出的。计数 器模式跟这种模式不同的是移位寄存器的输出是一个计数器每一个分组完成加密后计数器要增加某一个常数。计数器模式跟输出反馈模式一样没有错误扩散的特点但是也同 样没有同步错误恢复功能。
分组链接模式 分组链接模式将分组密码算法的输入与前面所有密文分组的异或值相异或。分组链接模式也需要一个初始向量具有密文错误扩散的性质。
其他
还有很多其他的分组加密模式比如扩散密码分组链接模式、带校验和的密码分组链 接等等其基本原理跟前面介绍的分组加密模式相似
参考链接
分组密码的加密模式CFBOFB_lkw23333的博客-CSDN博客加密算法分组4-OFB 输出反馈模式 – OKWEEX