龙空技术网

干货学习——密码学之块加密

国科科技 306

前言:

如今同学们对“des解密python”可能比较注重,看官们都需要剖析一些“des解密python”的相关内容。那么小编也在网络上收集了一些有关“des解密python””的相关文章,希望小伙伴们能喜欢,咱们一起来了解一下吧!

数据加密概念

所谓数据加密(Data Encryption)技术是指将一个信息(或称明文,plain text)经过加密钥匙(Encryption key)及加密函数转换,变成无意义的密文(cipher text),而接收方则将此密文经过解密函数、解密钥匙(Decryption key)还原成明文。加密技术是网络安全技术的基石。(本描述来源百度百科:数据加密技术/4804539)

常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES;常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用);常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

块加密概念

块加密,英文Block Cyper,又称分组加密,是一种常见的对称加密。它将固定长度的数据块或纯文本数据(未加密)转换成长度相同的密码块(加密文本)数据。该转换的前提是用户提供密钥。解密时,要使用相同的密钥对密码块数据进行逆转换。固定的长度被称做数据块大小,大多数密码块的固定大小都是64位或128位。

块加密的工作模式允许使用同一个分组密码密钥对多于一块的数据进行加密,并保证其安全性,一般来说块加密相比较刘加密更安全一些。

常见的加密法里,DES和3DES是使用最多的数据块加密,AES是更高级的块加密法等等。

块加密介绍

在现有的对称加密算法中,主要有3种标准加密处理模式,这3种加密处理模式一般是针对块加密算法而言的,如DES算法。这3种加密模式分别如下:

1 、电子编码薄 (ECB - Electronic Code Book)

2 、加密-块-链 (CBC - Cipher Block Chaining)

3、 输出反馈模式 (OFM - Output Feedback Mode

1、电子编码薄

ECB是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密,由于其分组的独立性,利于实现并行处理,并且能很好地防止误差传播。

下图为经典ECB加密模式示例,比如DES算法采用一个64位的密钥Key,如果采用该模式加密,就是将要加密的数据分成每组64位的数据Mm,如果最后一组不够64位,那么就补齐为64位,然后每组数据都采用DES算法Ek和64位密钥Key进行加密,得到每组数据的加密结果Cm,每一组Cm合并后的结果即为DES在ECB加密模式后得到的密文。

图 ECB模式示例

另一方面由于所有分组的加密方式一致,明文中的重复内容会在密文中有所体现,因此难以抵抗统计分析攻击,非常容易获得密文进行密码破解。此外,因为每个分组是相互独立的,有时候甚至不用破解密码,只要简单的将其中一块替换就可以达到恶意攻击者的目的。如将加密后的分组1和分组2数据进行互换,用户得到的原始数据也将互换,使数据的可用性和完整性被破坏。

2、加密-块链 (CBC – Cipher-Block Chaining)

加密-块链(CBC,Cipher-block chaining)模式,由IBM于1976年发明,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量IV。

图 CBC模式示例

如上图所示,CBC模式的加密也是将明文分成固定长度的块(M1,M2,…,Mi,…,Mm),然后将前面一个加密块输出的密文Cn-1与下一个要加密的明文块Mn进行XOR(异或)操作计算,将计算结果再用密钥Key进行加密得到密文。第一明文块M1加密的时候,因为前面没有加密的密文,所以需要与一个初始化向量(IV)进行XOR(异或)。

相比较ECB模式,CBC模式通过与上一个块密文异或构成的连接关系,使得密文跟明文不再是一一对应的关系,破解起来更困难,而且克服了只要简单调换密文块可能达到目的的攻击。

但是该加密模式的缺点是不能实时解密,也就是说,必须等到每个块都接收到之后才能开始加密,否则就不能得到正确的结果。所以,CBC模式不适合在要求实时性比较高的环境下使用。

​3、输出反馈模式 (OFM - Output Feedback Mode)

OFM模式(Output Feedback Mode)又被称为CFB模式(Output Feedback),是先用块加密器生成密钥流(Keystream),然后再将密钥流与明文流异或得到密文流,解密是先用块加密器生成密钥流,再将密钥流与密文流异或得到明文,由于异或操作的对称性所以加密和解密的流程是完全一样的。

如下图所示:

图 OFM模式示例

OFM模式的加密也是将明文分成若干个固定长度的块Mi,然后将上一次经过块加密算法Ek输出的密文Ri和密钥Key通过加密算法Ek输出加密结果Ri+1。最后将Ri+1作为流加密的秘钥与明文块Mi进行XOR(异或)得到密文。第一明文块M1加密的时候,因为前面没有加密的密文R1,所以需要与一个初始化向量(IV)代替Ri进行块加密。

常用块加密工具:

1、DES/3DES/AES加解密

2、PythonDES加解密库


国科漏斗社区:秉承着“带你走进白帽子的奇妙世界”的口号,坚持开展信息安全人才培养工作,在福建省内最早推出了体系化的线下安全培训课程,三年来与省内十余所高校合作,开设了20余期免费的信息安全培训班,培养学员超过300名,为行业输送信息安全专业人才超过100名。

标签: #des解密python