最新新闻:

起底密码学现代密码学中的对称加密和非对称加密算法

时间:2022-05-01 12:00:45来源:网络整理

在“底层密码学”中,简要介绍了密码学发展的各个阶段。本文将介绍现代密码学中的对称加密和非对称加密算法。

一、对称加密算法

对称加密使用相同的密钥进行加密和解密,加密和解密功能非常相似。

对称密钥密码学基础

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

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

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

注:公式的下标和下标在这里乱了,只能靠截图了^_^

c语言aes加密_c语言 aes加密算法_aes加密 c

DES加密过程

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

由于块的大小和密钥的长度,DES算法很容易被暴力破解,已经不能满足当前的安全要求,于是出现了3DES。

(二)3DES

3DES 是三重数据加密算法分组密码的总称。相当于对每个数据块应用了3次DES加密算法。块的长度还是64bits,密钥扩展为2*56bits、3*56bits,比原来的DES更安全。

以key为3*56bits为例,具体实现如下:

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

aes加密 c_c语言 aes加密算法_c语言aes加密

3DES加解密

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

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

1、KeyExpansion

2、初赛

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

4、最后一轮,没有 MixColumns 的最后一轮

AES-128

对称加密算法的特点是效率高、算法简单、系统开销低。适用于对大量数据进行加密,明文长度与密文长度相等。缺点是交易双方使用相同的密钥,需要安全的密钥交换和复杂的密钥管理。

二、非对称加密算法

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

非对称加密算法

与以前的加密技术不同,公钥密码系统是基于数学函数,而不是基于位运算。从算法上推断一个密钥是不可能的。

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

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

RSA算法操作流程:

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

2. 计算n=pq,暴露n;

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

c语言aes加密_aes加密 c_c语言 aes加密算法

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

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-bit组,

k≤ log2n,写成数字c语言 aes加密算法,设为 M:

3.解密过程

c语言 aes加密算法_aes加密 c_c语言aes加密

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

想这样解密?偷偷告诉你,不存在!!!

非对称加密系统的特点是解决了密钥传输问题,密钥可以在公共通道上传输,大大减少了密钥持有量,同时提供了对称加密技术不能或难以提供的服务提供(数字签名(digital signature)注:这个内容下次再讨论));但是,与对称加密系统相比,它的计算复杂,资源消耗大,得到的密文变长。

对称加密算法存在密钥传输等问题,非对称加密算法计算速度慢,那我们该怎么办呢?下次再说吧!^_^

声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。

图文推荐

热点排行

精彩文章

热门推荐