区块链应用中AES和RSA混合加密算法分析

2021-04-20 02:24彭俊霞赵鹏惠二鑫
电子技术与软件工程 2021年2期
关键词:蒙哥马利加解密加密算法

彭俊霞 赵鹏 惠二鑫

(太原师范学院 山西省晋中市 030600)

目前的数据加密技术根据密钥类型可分对称加密机制和非对称加密机制。1977年美国标准局公布的数据加密标准(DES),并且在之后的20年一直是美国政府采用的加密模式。后来,DES 被基于Rijndael 算法对称高级数据加密标准AES 取代了。而非对称加密机制因为加解密用的密钥不同,进而解决了传统密钥管理繁琐的问题,因而获得广泛好评,著名的RSA 算法正是非对称加密机制的代表[1]。

因此,本文充分利用非对称加密RSA 算法安全性高、密钥管理便捷,对称加密AES 算法加密速度快,采用AES 和RSA 相结合的混合加密算法解决单一加密机制的安全性、速度性、密钥管理等问题,更适合网络传输文件数据的加密。

1 加密算法介绍

1.1 对称加密算法

对称加密算法指加密和解密使用同一密钥的算法。对称加密算法种常用的算法包括DES、3DES、AES、DESX、RC4、RC5、RC6。

DES 加密算法:它是一种分组密码,以64 位为分组对数据加密,密钥长度是56 位。但是由于DES 密钥长度短,已经不适用于现在对于数据加密安全性的要求。

3DES(Triple DES):是基于DES 的一种三重对称加密算法,抗攻击性更强。

AES加密算法:AES是迄今为止各方面最强大的对称加密算法,因为AES 密钥的长度不超过256 位,因此利用软件和硬件都能实现高速处理。

根据表1,AES 算法对比其他对称加密算法有更高的加密效率的同时,密钥长度也更长。

1.2 非对称加密算法

非对称加密算法的基本思想是,在数据通信时,通信双方有两把密钥,一把公钥;另一把私钥,这两把密钥是一对一关系[2]。当用户A 向用户B 发出交易时,首先用户A 用B 的公钥对所要传出的数据进行加密,然后把密文广播到全网;但是所有收到密文的用户中,只有B 用自己的私钥才能把密文解成明文。

区块链技术采用非对称加密算法,全网节点能够利用公钥对交易进行验证,最重要的是只有交易发起人能使用私钥获取交易内容。因此,在匿名的情况下有很大的安全优势[3]。

2 AES和RSA混合加密算法方案

本文针对AES 算法和RSA 算法的特点,取长补短,提出采用两者结合的混合加密机制,后期研究将其应用于区块链爱心众筹平台。

2.1 AES加密算法原理

AES 采用分组密码,把明文分成一组一组的数据,每组数据都是一样的长度,加密也是一组一组进行,直到加密完整个明文。设加密函数为E,则密文C=E(K,P),设解密函数为D,则明文P=D(K,C),其中K 为密钥。

在AES 加密算法中,分组长度只能128 位,每个分组为16 个字节。密钥的长度不超过256 位。

明文分组以字节为单位的正方形矩阵,称为状态矩阵。在加密函数E 中,会执行一个轮函数,在轮函数每一轮迭代中,要经历四个操作:

第一步,字节代换运算:是一个查表操作,在AES 中有一个S盒和逆S 盒。状态矩阵中的元素按照高4 位作为行值,低4 位作为列值映射出一个新字节。

第二步,行变换:行变换是一种循环移位操作,状态矩阵的第0 行不移位,第1 行循环左移1 字节,第2 行移2 字节;行逆变换第0 行不移位,第1 行循环右移1 字节,第2 行移2 字节,依次类推。

第三步,列混合变换:列变换是通过矩阵相乘,经行移位后的状态矩阵与固定的矩阵相乘,得到混合后的状态矩阵。任取一列乘以a(x),再将所得结果进行取模运算,模值为x4+1。其中a(x)=(03)x3+(01)x2+(01)x+(02)是一个固定的多项式,其中03、02、01 是三个固定的元素,因为a(x)与x4+1 互质,所以是可逆的。列混合变换的表达式为s'(x)=a(x)s(x),其中,s(x)表示状态的列多项式。

第四步,轮密钥的添加变换:是将128 位轮密钥Ki 同状态矩阵中的数据进行逐位异或操作,轮密钥是根据密钥表获得的。

2.2 RSA加密算法原理

2.2.1 费马定理和欧拉定理

费马定理:若p 是素数,且a 是不能被p 整除的正整数,则有:

欧拉定理:若(r,n)=1,则将n 的同余类r mod n 称为模n 的既约同余类,模n 的所有既约同余类的个数记为φ(n),称欧拉函数。

欧拉定理指对于任何互质的正整数a 和n,有:

2.2.2 单向函数

RSA 算法抗攻击能力取决于函数求逆的难度,而单向函数能满足该难度。一个可逆函数f:A →B,若满足以下2 个条件:

(1)对所有x∈A,容易计算f(x)。

(2)对“所有x∈A”利用现有算力由f(x)求x 极为困难,则称f:A →B 为单向函数。

2.2.3 蒙哥马利(Montgomery)算法

蒙哥马利算法不是一个单一算法,而是三个算法集合[4],其中包括:

(1)蒙哥马利乘模,计算x·y(mod n)。

(2)蒙哥马利约减,计算t·ρ-1(mod n)。

(3)蒙哥马利幂模,计算xy(mod n)。

假设一个集合是通过整数mod n 得到的:Zn={0,1,2,…,n-1},该集合叫做n 的剩余类环。任何属于Zn的x 满足两个条件:一是集合元素都为正整数;二是集合最大长度是ln,其中ln是n 在base-b 进制下的位数。

(1)蒙哥马利参数

需要预计算的参数:

ρ=bk指定一个最小整数k 使得bk>n;

ω=-n-1(mod ρ)

(2)蒙哥马利表示法

对于x,0≤x≤n-1,x 的蒙哥马利表示法为x=x·ρ(mod n)。

(3)蒙哥马利约减

给定一些整数t,蒙哥马利约减的计算结果是t·ρ-1(mod n),蒙哥马利约减算法表示为:

Input:t,0≤t≤t·ρ-1

Output:r=t·ρ-1(mod n)

(4)蒙哥马利乘模

一个蒙哥马利乘模包括整数乘法和蒙哥马利约减,蒙哥马利表示法有相乘再用一次蒙哥马利约减得到结果

蒙哥马利乘模算法表示为:

(5)蒙哥马利幂模

蒙哥马利幂模运算是一种快速计算 的算法,是RSA 的核心幂模运算,快速幂模运算是将幂模运算转换成一系列乘模运算,蒙哥马利幂模是以此为基础的运算。蒙哥马利乘模算法表示为:

2.2.4 RSA 算法流程

RSA 算法具体过程:

(1)首先取两个大素数p 和q。

2.2.5 RSA 算法优缺点

RSA 算法是一种公开密钥体系,所以它具有公开密钥体系的所有优点。优点表现在:

(1)密钥管理便捷。加解密钥不同,进而公钥可以广播给全网。

(2)保存的密钥量少。每个用户只需保存自己的私钥。

(3)算法强度复杂。RSA 算法强度取决于大质数因子分解的难度。

不过,RSA 算法也有缺点:

(1)密钥产生麻烦。

(2)加解密速度太慢。因为RSA 的分组长度太大,使运算代价很高,速度上较对称加密算法慢几个数量级,且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

2.3 AES和RSA混合加密过程

待传输信息在通信之前,发送方随机生成一个加密密钥,用AES 算法对待传输信息进行加密生成密文,再用RSA 算法的公钥对AES 密钥进行加密。密文通过网络传输后,接收方收到密文以及被加密了的AES 密钥,先用保存的私钥解密得到AES 密钥,再用AES 密钥解密获取明文,进而得到所传输的数据信息。该混合加密方案既有AES 加密算法的快速,又有RSA 加密算法的安全可靠和密钥管理的便捷性。加解密实现流程图如图1所示。

将混合加密算法应用在区块链爱心众筹平台上,利用AES 加密算法解决众筹平台上大量文本数据信息在传输中的加解密速度慢的问题,借此弥补RSA 的不足,同时利用RSA 的公钥私钥解决AES 中的密钥管理不安全问题。

2.4 方案测试分析

双重混合加密:即使在传输过程中密文被拦截,经混合加密后的密文增强了攻击破解的难度,使得传输数据更加安全。

算法加密速度比较:运行环境Windows 10,Intel 8 核处理器,8G 内存,256G 硬盘,测试软件为IntelliJ IDEA 2019.2.4 x64。测试读取纯文本文件,把内容分行加密后在写入另一个文件中,最后计算加解密时长,解密过程则与之相反。测试过程每组十次,去掉最大值和最小值,计算出平均时间。如表2-表4所示。

表1:三种对称加密算法对比图

表2:AES 加密算法加解密时长(密钥长度128 位)

表3:RSA 加密算法加解密时长(密钥长度2048 位)

表4:AES+RSA 混合加密算法加解密时长

通过上述测试结果可以看出,AES 加解密文件速度远比RSA加解密文件快,因此混合机密中先使用AES 对文件进行加密形成密文,再用RSA 算法对AES 密钥加密后通过网络传输,解密过程与之相反,以此提高RSA 算法加密速度同时提高传输安全性。

3 小结

RSA 算法是最具代表性的公开密钥加密算法之一,然而RSA算法的速度瓶颈极大程度上受到幂模运算的影响,而模乘运算速度取决于模运算,模运算其实是除运算,但是除运算相对与加减乘运算要费时的多。所以,本文在模运算上利用蒙哥利马算法去提高RSA 处理的速度,进而针对众筹平台上的大量文件数据信息加密,单独使用RSA 消耗的资源太多了的问题,本文采用了AES 和RSA两种算法的结合,在后续研究中会将算法应用于爱心众筹平台之上,利用AES 加解密速度快和RSA 的密钥管理安全,共同对众筹平台数据传输安全提供保障。

猜你喜欢
蒙哥马利加解密加密算法
蒙哥马利
电子取证中常见数据加解密理论与方法研究
基于FPGA的LFSR异步加解密系统
基于小波变换和混沌映射的图像加密算法
Hill加密算法的改进
对称加密算法RC5的架构设计与电路实现
基于Arnold变换和Lorenz混沌系统的彩色图像加密算法
蒙哥马利与艾森豪威尔打赌
蒙哥马利元帅的军事人才观