细说对称与非对称加密

在《起底密码学》里简单介绍了密码学发展的各个阶段,本文将介绍一下现代密码学中的对称加密和非对称加密算法。

细说对称与非对称加密

一、对称加密算法

对称加密算法加密和解密使用相同的密钥,加密函数和解密函数非常类似。

细说对称与非对称加密

对称密钥加密的基本原理

典型的对称加密算法有很多,如DES、3DES、AES、IDEA、Twofish等,这里主要说说前3个用的比较多的。

(一)DES(数据加密标准)

DES算法是一个分组加密算法,密钥长度为56bits(加上奇偶校验,通常写成64bits)。加密过程:首先把把明文分成以64 bits为单位的块m,对于每个m, 执行如下操作。

细说对称与非对称加密

注:公式上下标到这里要乱,只能靠截图形式了^_^

细说对称与非对称加密

DES加密流程

DES解密过程与加密过程完全相似,只不过将16次迭代的子密钥顺序倒过来,即

细说对称与非对称加密

DES算法由于块的大小及密钥的长度十分容易被暴力破解,已不能满足现在的安全需求了,因此出现了3DES。

(二)3DES

3DES是三重数据加密算法块密码的通称。它相当于是对每个数据块应用三次DES加密算法。块的长度依旧是64bits,密钥则扩展到2*56bits、3*56bits,比起原来的DES更为安全一些。

举个密钥为3*56bits的例子,其具体实现如下:

设Ek()和Dk()代表DES算法的加密和解密过程,k代表DES算法使用的密钥,m代表明文,c代表密文:

细说对称与非对称加密

细说对称与非对称加密

3DES加解密

(三)AES(高级加密标准)

AES加密算法分组长度为128bits,密钥长度为128/192/256 bits。该算法能有效抵抗目前已知的攻击算法,如线性攻击、差分攻击等,对它的基本要求是比3DES快,至少与3DES一样安全。AES将是未来最主要最常用的对称密钥算法。其加密过程有很多轮的重复和变换,大致步骤如下:

1、密钥扩展(KeyExpansion)

2、初始轮(Initial Round)

3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey

4、最终轮(Final Round),最终轮没有MixColumns

细说对称与非对称加密

AES-128


对称加密算法的特点是它效率高,算法简单,系统开销小,适合加密大量数据,明文长度与密文长度相等。而不足之处是交易双方使用相同的钥匙,需要以安全方式进行密钥交换,密钥管理复杂。


二、非对称加密算法

非对称加密算法也称为公钥加密算法,数据交换过程中需要使用一对密钥,即公钥和私钥。利用公钥对数据进行加密,则利用对应的私钥解密,反之亦然。

细说对称与非对称加密

非对称加密算法

不同于以往的加密技术,公钥密码体制是建立在数学函数基础上的,而不是建立在位方式的操作上的。要想由一个密钥推知另一个密钥,在算法上是不可能的。

E表示加密过程,D表示解密过程。

细说对称与非对称加密

下面介绍一下目前应用最广泛的公钥密码算法RSA

RSA算法操作过程:

1. 取两个大素数 p, q , 保密;

2. 计算n=pq,公开n;

3. 计算欧拉函数ф(n)=(p-1)(q-1);

4. 任意取一个与ф(n) 互素的小整数e,即

gcd (e,ф(n) )=1; 1

5. 寻找d,使得:ed≡1 mod ф(n),作为私钥保密,即de =kф(n) +1。

RSA算法加密/解密过程:

1.密钥对(KU, KR):

KU={e,n} ,KR={d,n}

2.加密过程:把待加密的内容分成k比特的分组,

k≤ log2n,并写成数字,设为M:

细说对称与非对称加密

3.解密过程

细说对称与非对称加密

RSA算法加密过程举例:

p=7,q=17,n=7*17=119,ф(n)=(7-1)×(17-1)=96

选e=5,gcd(e,ф(n))=gcd(5,96)=1;

计算d,使得ed≡1 mod 96, 即ed=k*96+1,

取k=4,则d=77

公开(e,n)=(5,119),将d保密,丢弃p,q。明文:m=19

细说对称与非对称加密

想通过这种方式解密?偷偷告诉你,不存在的!!!


非对称加密体制的特点是它解决了密钥传递的问题,密钥可以在公开信道上传输,大大减少了密钥持有量,同时提供了对称密码技术无法或很难提供的服务(数字签名(注:该内容下次再讲));但是相比对称加密体制,其计算复杂、耗用资源大且会导致得到的密文变长。


对称加密算法存在密钥传递等问题,而非对称加密算法计算速度又慢,那可怎么办呢?下次再说咯!^_^


分享到:


相關文章: