售前咨询
技术支持
渠道合作

数据加密标准

什么是数据加密标准

数据加密标准( Data Encryption Standard)1977年美国国家标准局公布IBM公司研制的用于电子数据加密的对称密钥算法。DeDES是原型块密码,它采用固定长度的明文比特字符串,并通过一系列复杂的操作将其转换成相同长度的另一个密文比特字符串。 在DES的情况下,块大小是64位。 DES还使用密钥来定制变换,使得解密可以仅由知道用于加密的特定密钥的人来执行。

DeDES是原型块密码,它采用固定长度的明文比特字符串,并通过一系列复杂的操作将其转换成相同长度的另一个密文比特字符串。 在DES的情况下,块大小是64位。

DES还使用密钥来定制变换,使得解密可以仅由知道用于加密的特定密钥的人来执行。 密钥表面上由64位组成; 然而,其中只有56个实际上被算法使用。 还有8位仅用于检查奇偶校验,并且此后被丢弃。 因此,有效密钥长度为56位。

密钥名义上存储或传输为8字节,每个具有奇偶校验。 根据ANSI X3.92-1981(现在,称为ANSI INCITS 92-1981),第3.5节:KEY的每个8位字节中的一个位可以用于密钥生成,分配和存储中的错误检测。 位8,16,…,64用于确保每个字节具有奇数奇偶性。

与其他块密码一样,DES本身不是加密的安全手段,而是必须在操作模式中使用。 FIPS-81规定了与DES一起使用的几种模式。解密使用与加密相同的结构,但使用相反顺序的密钥。 (这具有可以在两个方向上使用相同的硬件或软件的优点)。

算法

算法的整体结构如图所示:有16个相同的处理阶段,称为循环。还存在称为IP和FP的初始和最终排列,其是反转(IP“撤销”FP的动作,反之亦然)。 IP和FP没有加密意义,但是它被包含在内以便于在20世纪70年代中期基于8位的硬件加载块使用。

在主循环之前,块被分成两个32位半部分进行交替处理;这个十字交叉被称为Feistel方法。 Feistel结构确保解密和加密是非常类似的过程 – 唯一的区别是当解密时子密钥以相反的顺序应用。算法的其余部分是相同的。这极大地简化了实现,特别是在硬件中,因为不需要单独的加密和解密算法。

F函数

图所示的F函数一次操作半个数据块(32位),由四个阶段组成:

扩展:使用扩展置换(在图中用E表示),通过复制一半的比特,将32比特半块扩展为48比特。输出由8个6位(8 * 6 = 48位)片组成,每个片包含4个对应输入位的副本,以及从每个输入片到任一侧的直接相邻位的副本。

密钥混合:结果与使用异或运算的子密钥组合。使用密钥调度表从主密钥导出16个48位子密钥(每个循环一个)。

替换:在子密钥中混合之后,该块在被S盒或替换盒处理之前被分成8个6位片。八个S盒中的每一个根据以查找表的形式提供的非线性变换,用其四个输出位替换其六个输入位。 S盒提供了DES的安全性的核心 – 没有它们,密码将是线性的,并且易于破坏。

置换:最后,根据固定置换,P盒,重新排列来自S盒的32个输出。这被设计为使得在置换之后,每个S盒的输出比特在下一轮中散布在四个不同的S盒上。来自S盒的替换的交替和来自P盒和E扩展的比特的置换分别提供了所谓的“混淆和扩散”,Claude Shannon在1940年代时认为这是安全的必要条件。

调度-生成子密码

图片显示了用于加密的密钥调度 – 生成子密钥的算法。

最初,通过排列选择1(PC-1)从初始64中选择密钥的56个比特,剩余的8个比特被丢弃或用作奇偶校验比特。 然后将56位分成两个28位的一半; 然后分别处理每一半。 在连续的循环中,两半都向左旋转一位或两位(为每个循环指定),然后通过排列选择2(PC-2)选择48个子密钥位,从左半边开始24位,从右边开始24位 。 旋转(在图中由“<<<”表示)意味着在每个子密钥中使用不同的比特集合; 每个位用于16个子密钥中的14个。

解密的关键调度表类似 – 子密钥与加密相反的顺序。 除了这种变化,该过程与加密相同。


GDCA(数安时代)拥有国内自主签发信鉴易 TrustAUTH SSL证书以及是国际多家知名品牌:GlobalSign、Symantec、GeoTrust SSL证书指定的国内代理商。为了让国内更多的网站升级到安全的https加密传输协议。近日,GDCA推出多种国际知名SSL证书以及代码签名证书优惠活动,实现HTTPS加密并展示网站以及程序的真实身份信息。详情请资讯GDCA产品官网在线客服https://www.sslsq.com/。

相关文章