蝶影蓝精灵给您细说对称与非对称加密算法有什么区别
Posted 番禺电商汇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蝶影蓝精灵给您细说对称与非对称加密算法有什么区别相关的知识,希望对你有一定的参考价值。

↑↑↑目前100000+人已关注番禺电商汇↑↑↑

图文来源于网络 如有雷同纯属巧合

猜中有神秘礼包赠送哦!你的竞猜答案请在文章底部留言告诉小编,知道答案的赶紧行动吧!前10名竞猜者均有礼包

在《起底密码学》里简单介绍了密码学发展的各个阶段,本文将介绍一下现代密码学中的对称加密和非对称加密算法。
一、对称加密算法
对称加密算法加密和解密使用相同的密钥,加密函数和解密函数非常类似。
典型的对称加密算法有很多,如DES、3DES、AES、IDEA、Twofish等,这里主要说说前3个用的比较多的。
(一)DES(数据加密标准)
DES算法是一个分组加密算法,密钥长度为56bits(加上奇偶校验,通常写成64bits)。加密过程:首先把把明文分成以64 bits为单位的块m,对于每个m, 执行如下操作。
注:公式上下标到这里要乱,只能靠截图形式了^_^
DES解密过程与加密过程完全相似,只不过将16次迭代的子密钥顺序倒过来,即
DES算法由于块的大小及密钥的长度十分容易被暴力破解,已不能满足现在的安全需求了,因此出现了3DES。
(二)3DES
3DES是三重数据加密算法块密码的通称。它相当于是对每个数据块应用三次DES加密算法。块的长度依旧是64bits,密钥则扩展到2*56bits、3*56bits,比起原来的DES更为安全一些。
举个密钥为3*56bits的例子,其具体实现如下:
设Ek()和Dk()代表DES算法的加密和解密过程,k代表DES算法使用的密钥,m代表明文,c代表密文:
(三)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
对称加密算法的特点是它效率高,算法简单,系统开销小,适合加密大量数据,明文长度与密文长度相等。而不足之处是交易双方使用相同的钥匙,需要以安全方式进行密钥交换,密钥管理复杂。
二、非对称加密算法
非对称加密算法也称为公钥加密算法,数据交换过程中需要使用一对密钥,即公钥和私钥。利用公钥对数据进行加密,则利用对应的私钥解密,反之亦然。
不同于以往的加密技术,公钥密码体制是建立在数学函数基础上的,而不是建立在位方式的操作上的。要想由一个密钥推知另一个密钥,在算法上是不可能的。
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<e<ф(n),公开e,作为公钥用于加密(或签名验证)。
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
想通过这种方式解密?小编悄悄告诉你,不存在的。

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

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


查看更多内容请点击阅读原文!!!
▼ 下 拉 屏 幕 参 与 文 章 留 言
以上是关于蝶影蓝精灵给您细说对称与非对称加密算法有什么区别的主要内容,如果未能解决你的问题,请参考以下文章