最新新闻:

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

    时间: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)注:这个内容下次再讨论));但是,与对称加密系统相比,它的计算复杂,资源消耗大,得到的密文变长。

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

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

    图文推荐

    热点排行

    精彩文章

    热门推荐