周一干货特供系统安全密码全面剖析三部曲之一:基本原理以及对称加密

Posted 智能化IT系统

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了周一干货特供系统安全密码全面剖析三部曲之一:基本原理以及对称加密相关的知识,希望对你有一定的参考价值。

. 前言

下面是一个消息传递的举例:针对信息发送者A,与信息接收者B,以及窃听者CC有两种方式破坏安全:

1.窃取消息,作为接收方破解。



2.窃取消息,作为发送方伪造发送。

【周一干货特供】系统安全密码全面剖析三部曲之一:基本原理以及对称加密


针对上述第一种情况,主要有对称加密和非对称加密两种方式保障。针对上述第二种情况,有诸多消息认证机制可以保障。

·        对称加密,包括主流的DES,3DES,AES等基本原理和加密算法

·        非对称加密,包括公钥密码,例如RSA,混合密码的基本原理和算法

·        消息认证机制,包括数字签名,以及https,TLS等协议的基本原理解析

 

本文将重点说明对称加密。


 

二. 密码学发展

在开始,首先阐述一下安全加密机制的两大原则:

·        不使用保密的加密算法

因为任何算法终究都将公开,不管是明是暗,此地无银三百两,意义不大。

·        不使用低强度的密码策略

因为这样比不使用密码甚至更危险。暴力破解,无处不在。

 

OK,那么我们就开始主题。首先为了方便大家的了解,我们先从历史上几个较为著名的加密算法开始说起。

1. 凯撒密码

原理非常简单,就是平移替换。按照字母表每一个字母向后平移N位,例如有一串明文abc,平移后变为DEF。同样是连续的。

2. 简单替换密码

原理同样简单,消息双方保存一份密码的对应表,在对应表中说明密码的对应关系,例如a对应D,b对应2,c对应G。那么abc加密后就位D2G。这个对应关系只有消息双方知道。

3.  enigma

这个和主题越来越接近了。这个其实就是第二次世界大战中,德国使用的密码机算法。消息的发送方和接收方有一个密码本,上面记载每日的密码。发送方通过其进行加密,接收方通过其进行解密。

 


【周一干货特供】系统安全密码全面剖析三部曲之一:基本原理以及对称加密

在这里,密码本,就可以理解为对称加密中的秘钥。

 

三. 对称加密主要模式介绍

对称加密的流程,和enigma有一定类似。我们下面从如下几方面开始介绍。

 

·        DES加密

典型的对称加密方式。原理是把需要加密的原始数据,以8字节(64bit)进行分割,每8字节,都按照如下的方式进行16轮的加密,注意是16轮。每一轮加密,都将8字节分为前后32bit,后32bit无需任何加密,直接作为下一轮的前32bit。前32bit需要和后32bit以及本轮子秘钥的轮函数结果,做异或运算,得到结果,作为下一轮的后32bit,以此类推。

下图是一个逻辑展示,注意是两轮,看了下图应该就基本清晰了。

注意一点,每一轮的子密钥是不一样的。需要详细了解可以查一下Feistel网络结构。

 

【周一干货特供】系统安全密码全面剖析三部曲之一:基本原理以及对称加密



·        3DES加密

和名字的理解一样,就是三轮DES处理,注意第二轮是DES解密,并且三轮的秘钥都不一样。 

【周一干货特供】系统安全密码全面剖析三部曲之一:基本原理以及对称加密

3DES目前任然有很多公司使用,但是效率不高,安全性也逐步出现一些问题。




·        AES加密

AES是目前对称加密的一个主流的趋势,相对算法略微复杂。

AES的分组长度是128bit,16字节,也就是以16字节为单位,采用多轮Rijndeal加密和解密。

这里以一轮为案例进行说明。在每一轮,将16个字节分为四组,每一组进行平移,平移之后每一个字节与轮秘钥进行异或处理,输出加密后的16字节。

如下如所示:

 

【周一干货特供】系统安全密码全面剖析三部曲之一:基本原理以及对称加密


四. 对称加密迭代模式介绍

至此,主要的加密方式的原理我们已经说完了。那么还有一个问题,原始消息肯定是长度不一的,DES的基本单位是16字节,AES是128字节,如果原始数据多于基本单位长度,如何迭代?下面介绍主要的迭代方式。

·        ECB

每一组互不干扰。最后一组如果不够单位长度,padding填充,下面的每一种模式也是这样。

 

【周一干货特供】系统安全密码全面剖析三部曲之一:基本原理以及对称加密




·        CBC

第一个分组需要一个初始化向量,IV,与第一分组的明文进行异或,然后加密。


【周一干货特供】系统安全密码全面剖析三部曲之一:基本原理以及对称加密



·        CBC

第一个分组需要一个初始化向量,IV,与第一分组的明文进行异或,然后加密。




·        CTR

如下图所示。



目前CTR和CBC两种模式使用较多。

 

对称加密相关信息已经介绍完毕,如果任何问题欢迎交流,近日将输出关于非对称加密的原理介绍,敬请关注。


以上是关于周一干货特供系统安全密码全面剖析三部曲之一:基本原理以及对称加密的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#Flink的DataSource三部曲之一:直接API

谷歌布局二十年,打着搜索引擎的幌子做人工智能|每周一本书

CoProcessFunction实战三部曲之一:基本功能

全面剖析Smarty缓存机制一[三种缓存方式]

结合阿里代码规范约定+源码剖析属性拷贝性能安全问题

iOS线程安全的全面剖析