论文部分内容阅读
目前越来越多的企业和个人开始使用第三方数据库服务商提供的数据服务,然而数据存储在公有云中就意味着数据有泄露的风险。解决这一问题的方法之一就是将加密的数据存储在数据库服务器,即加密数据库,但是这可能也会导致一些安全问题。一方面是数据库系统外部的攻击者利用系统的漏洞或者非法获得数据库访问权限来窃取数据;另一方面则来自于数据库系统内部,具有合法访问权限的数据库管理员,存在窥探、泄露数据的可能性。CryptDB便是针对这两个问题提出来的。CryptDB是一个加密数据库系统,它将加密后的数据存储在数据库中,同时允许用户查询加密的数据库,而且还能在不解密数据库中的密文的情况下返回最终结果给用户。CryptDB中大部分的加解密操作都集中在CryptDB proxy上,而其中HOM洋葱层的实现算法,Paillier算法是一个比较复杂并且耗时的算法,Paillier算法已经成为了CryptDB proxy加解密过程中的一个瓶颈。在本文中,我们引入了硬件加速器这一方法来对Paillier算法进行加速。Paillier算法虽然已经提出了很长时间,但实际上目前没有任何一款硬件加速器可以直接支持这类算法。本文使用市面上现有的硬件加速技术Intel QuickAssist Technology(QAT)对Paillier算法进行加速。在本文中,我们首先使用OpenSSL重新实现了Paillier算法,然后分别使用了QAT同步模式和异步模式实现了对Paillier算法的加速。最后,本文测试了QAT技术对Paillier算法带来的性能提升效果。我们将优化后的Paillier算法与CryptDB进行集成,使用测试工具对原始的CryptDB和改进后的CryptDB进行了测试,实验发现经过改进后的CryptDB与原版本CryptDB的性能还存在一点差距,本文也分析总结了性能存在差距的原因是NTL和OpenSSL之间本身就存在性能差距以及CryptDB中没有使用多线程编程。我们还着重分析了Paillier算法本身,使用了OpenSSL分别测试了Paillier算法在OpenSSL软件实现、QAT同步模式优化、QAT异步模式优化三种情况下的加解密速度,实验表明QAT异步模式对Paillier算法带来的性能提升尤为明显。与软件实现方式相比,QAT异步模式的平均加密速度提高了100%-220%。