余成波,钱泽文,闫亚恒
(重庆理工大学 远程测试与控制技术研究所,重庆 400054)
摘要:针对AES密钥管理中存在的安全性不高和RSA不适合大数据量加/解密的缺陷,为保障用户的敏感信息以及BLE门禁设备的重要数据,本文提出了采用AES与RSA混合的加密体制。利用AES算法来加/解密敏感数据,RSA算法来加/解密AES算法的密钥。然后,采用DBMS外层加密方式和字段级的加密粒度,在BLE门禁管理系统中实现对“敏感数据”的加/解密处理,以及混合加密体制下密钥的管理,保证了数据的安全性与可靠性。
关键词:AES;RSA;BLE;混合加密;加密粒度
中图分类号:TP391.1文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.02.006
引用格式:余成波,钱泽文,闫亚恒.基于AES与RSA的BLE门禁管理系统的数据加密[J].微型机与应用,2017,36(2):17-19.
在信息技术和计算机技术快速发展的今天,尤其“互联网+”和“智慧城市”概念的提出,信息化程度在各行各业都得到了显著的提高,随之而来的便是数据安全问题,数据泄露不但影响人们的生活质量,有时候往往伴随着巨大的经济损失。数据库加密技术是解决这一问题的重要方法之一,它是密码学与数据库技术结合的产物。
根据加密算法与解密算法所使用的密钥是否相同,数据加密技术可分为两大类,一是对称加密技术,例如DES算法和AES算法等,其中DES算法由于自身密钥长度较短,其安全性已经得不到保证,在国内外的应用上已经被AES所取代,AES运算速度快、算法简单可靠,但密钥管理上安全性不高,为了进一步增强它的安全性,国内外很多学者对其进行了更深入的研究与优化,比如对密钥扩展算法的改进[1],对S盒构造方法进行优化[2]以及提出适合硬件实现的一种可重构的设计方式等[3]。二是非对称加密技术,例如RSA算法和ECC算法等,ECC算法也叫椭圆加密算法,处理速度快,占用空间小,但实现起来比较困难。RSA算法安全性高,易于理解,但不适合大数据量的加/解密,为了提高运算效率,有人提出了融入中国剩余定理的RSA算法[4]。对称加密算法加/解密使用的是同一密钥,加/解密速度快。非对称加密算法加密和解密使用不同的密钥,一个是公钥,用来加密数据,另一个是私钥,用来解密数据[5]。
本文采用对称加密算法与非对称加密算法相结合的方法,首先用AES算法来加密数据库中的敏感数据,然后用RSA算法来加密AES算法的密钥,加密粒度是数据库加密的最小单位,本文选择的是字段级。最后,在BLE(Bluetooth Low Energy)门禁管理系统中实现了数据库中数据的加/解密,保证了用户数据与设备数据的安全性。
1AES加密算法
高级加密标准AES,也叫做Rijndael加密法,是目前最常用的对称加密算法,它以替换DES和3DES的身份出现。AES是一种带有可变块长和可变密钥长度的迭代分组加密方法[6],最基本的运算单位是字节,即一个8 bit串,其数据块(明文)的分组长度被指定为128 bit,密钥长度为128 bit、192 bit或256 bit,相应的迭代轮数分别为10、12和14。
在AES算法中,128 bit的明文数据可以划分为16 B,所以可以依据顺序将其字节依次复制到一个4×4的矩阵中,四个字节一组,这个矩阵叫做状态矩阵,AES算法的一系列变换都是在这个状态矩阵(state)上进行的[7]。同样,密钥也可以用字节的矩阵形式来表示,矩阵的行数定为4,不同的密钥长度对应的列数分别为4、6和8[8]。具体如表1所示。
AES算法每一轮的迭代结构都一样,每一轮都使用了4个变换:字节替代变换、行移位变换、列混合变换和轮密钥加变换。
(1)字节替代变换(S盒变换)
字节替代变换是AES算法中唯一的非线性变换,即用S盒对状态矩阵中的每一个字节进行相应的替换。S盒是一个替换表,一个16×16的矩阵,替换时,分别取状态矩阵中字节的高4位和低4位作为行值和列值,在S盒中找到对应的字节进行替换,相当于一个查表的过称[9]。S盒的构造是AES算法是否安全的关键,S盒由有限域GF(28)上的元素乘法取逆(模多项式为m(x)=x8+x4+x3+x+1)然后做GF(2)上的仿射变换两步组成。仿射变换遵循如下运算规则:
其中x0,x1,…,x7是有限域GF(28)上的元素乘法取逆的结果,对其做仿射变换,则y0,y1,…,y7为变换后的结果。
(2)行移位变换
行移位是对S盒替换后的状态矩阵的进一步操作,对每一行进行循环左移,其中第一行保持不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节[10],如图1所示。
(3)列混合变换
将行移位后的状态矩阵的每一列看做是有限域GF(28)上的一个4维向量,然后将其与一个固定的多项式a(x)进行模多项式m(x)=x4+1的乘法运算。在AES算法中,a(x)={03}x3+{01}x2+{01}x+{02},这个多项式与x4+1互质,具有可逆性[9]。
(4)轮密钥加变换
轮密钥加变换就是将状态矩阵与子密钥矩阵的对应字节进行异或操作。其中,每一轮的子密钥都由初始密钥通过固定变换得到。
AES算法流程如图2所示。
2RSA加密算法
RSA是非对称加密算法,也是目前应用最广泛的公钥密码体制。RSA算法基于一个数论中的事实——分解大整数的困难性:计算两个大素数的乘积很容易,但要对其进行分解却很困难[11]。RSA算法密钥长度可变,目前使用的密钥长度一般不小于1 024 bit,加密时先将明文进行分组,每个分组的数据长度不允许超出密钥长度[12]。密钥长度与安全性成正比关系,密钥越长则安全性越高,相应地,密钥越长则其加密与解密效率就越低,处理速度越慢[13]。所以,RSA不适合大数据量的加/解密。
RSA算法描述如下:
(1)密钥生成
①选取两个保密的大素数p和q。
②计算n=pq,φ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值。
③随机选一个整数e,1<e<φ(n),满足(e,φ(n))=1,即e与φ(n)互质。
④计算e的乘法逆元d,满足ed≡1modφ(n)。
⑤公钥为(e,n),私钥为(d,n)。
(2)加密
c=memodn,其中m是待加密明文,c是明文。
(3)解密
m=cdmodn,将密文转换为明文。
由解密可以看出,RSA算法依赖于私钥(d,n),只有将n正确分解,得出p和q,才能得出d,从而破解RSA算法。
3混合加密体制
AES算法以及RSA算法在数据加/解密上都有各自的特点,AES是目前最常用的一种对称加密算法,其密钥长度最长只有256 bit,相较于RSA算法更短,所以有很强大的数据处理能力,加/解密效率高[14]。但AES数据加密和解密使用的是同一密钥,所以密钥管理的安全性要求较高。RSA算法加密和解密使用不同的密钥,密钥长度相较于AES算法提高很多,所以加/解密效率不高,不适合大数量的操作。但RSA算法的密钥管理很方便。针对这两种算法各自的特点,本文采取AES与RSA相结合的混合加密体制。AES用来加/解密BLE门禁管理系统中敏感字段的数据,而RSA用来保护AES的密钥。具体结构如图3所示。
(1)混合加密体制的数据加密
①使用密钥为K的AES加密算法,假设其为E1,那么明文(data)经加密后为E1(data,k),即密文数据。
②假设RSA算法为E2,使用RSA算法的公钥PK对密钥K进行加密,则加密后的K为E2(K,PK)。
(2)混合加密体制的数据解密
①利用RSA算法的私钥SK对E2(K,PK)进行解密,得到AES算法的密钥K。
②用密钥K进行数据解密,从而得到数据的明文(data)形式。
4混合加密体制在BLE门禁管理系统中的实现
BLE门禁管理系统是主要针对BLE设备及用户的一个管理软件。该管理软件主要由管理员信息管理模块、设备信息管理模块、用户信息管理模块以及加密系统管理模块四部分组成。加密系统管理模块主要负责AES与RSA密钥的产生与更新,是完成数据加/解密的核心。
本文在BLE门禁管理系统中采用AES与RSA混合加密体制完成了对数据库中管理用户信息的用户信息表的加密,加密的字段是用户的家庭住址。
当管理员没有对用户信息表的更改权限时,得到的是数据库中被加密字段的密文形式。
当管理员对表有更改权限时,得到的则是家庭住址字段解密后的明文信息。
5结论
本文分别介绍了AES与RSA算法,在进行分析之后,充分利用两种算法的优点,提出采用AES与RSA混合加密体制,完成了混合加密体制在BLE门禁管理系统中的应用与实现,解决了混合加密体制中密钥管理的问题,最终保证了后台数据库中敏感数据的安全。不仅如此,随着互联网的普及以及信息化程度的提高,本文所做的工作也为数据加密技术将来在其他领域的应用(比如“智能家居”领域)提供了一些新的思路。
参考文献
[1] 胡亮,袁巍,于孟涛,等.单向性策略与AES密钥生成算法的改进[J]. 吉林大学学报(工学版),2009,39(1):137-142.
[2] 王兴刚.基于RSA和AES混合算法的加密芯片设计[D].济南:济南大学,2011.
[3] RACHH R R, MOHN P V A, ANAMI B S.Efficient implementations forbi AES encryption and decryption[J].Circuits Systems and Signal Processing,2012,31(5):1765-1785.
[4] 费晓飞,胡捍.CRTRSA算法安全性分析[J].微计算机信息,2009,25(3):5455,38.
[5] 许春香,李发根,汪小芬,等.现代密码学(第二版)[M].北京:清华大学出版社,2015.
[6] 郑东,李祥学,黄征,等.密码学——密码算法与协议(第二版)[M].北京:电子工业出版社,2014.
[7] 罗光明.基于AES和RSA的网络数据加密方案[J].现代电子技术,2015,38(9):87-89,95.
[8] 王先培,张爱菊,熊平,等.新一代数据加密标准——AES[J].计算机工程,2003,29(3):69-70,186.
[9] MURPHY S, ROBSHAW M.New observations on Rijndael[J].Journal of Software,2013,7(13):100-105.
[10] 刘自伟,罗燕琪,段琦.加密算法与密钥生成技术在数据库加密中的应用[J].计算机时代,2007(6):1-3.
[11] 刘阳.数据库加密技术的分析[J].硅谷,2011(22):26-27.
[12] 王建.数据库加密系统的设计与实现[D].济南:山东大学,2014.
[13] 王哲慧.数据库加密算法及其密钥技术研究[D].长春:长春理工大学,2011.
[14] 左晓静,王荣.一种基于数据敏感度的混合型数据库加密策略[J].河南科学,2015,33(4):574-577.