[发明专利]基于Intel QAT的同态加密卸载方法在审
申请号: | 202010338077.5 | 申请日: | 2020-04-26 |
公开(公告)号: | CN111538582A | 公开(公告)日: | 2020-08-14 |
发明(设计)人: | 华蓓;周慧凯 | 申请(专利权)人: | 中国科学技术大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54;G06F7/552;G06F21/60 |
代理公司: | 北京凯特来知识产权代理有限公司 11260 | 代理人: | 郑立明;韩珂 |
地址: | 230026 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 intel qat 同态 加密 卸载 方法 | ||
本发明公开了一种基于Intel QAT的同态加密卸载方法,通过将每一次同态加密过程封装为一个协程来实现加密任务的高效QAT异步卸载,在增强系统同态加密卸载过程的并发性,提高系统吞吐量的同时,通过嵌套协程提交无关大数模幂运算任务的方式还进一步降低了单次同态加密的延时。对于由CPU和QAT组成的异构系统整体而言,异步方式还避免了CPU的无效阻塞,CPU因而可以去做更多的运算,最终CPU与QAT的算力都得到了充分应用。
技术领域
本发明涉及密码学同态加密技术领域,尤其涉及一种基于Intel QAT的同态加密卸载方法。
背景技术
QAT(QuickAssist Technology)是Intel公司针对加/解密任务以及压缩/解压缩任务推出的一款专用加速硬件(ASIC)。QAT封装了常规的加密算法(如RSA、AES、ECC算法)和常规的压缩算法(如Deflate算法),为调用这些算法提供了方便易用的编程接口。目前,基于QAT已经有了富有成效的工作,但这些工作大都局限于常规加密和数据压缩领域。QAT提供了一个大数模幂运算接口,可兼容几个主流的基于模幂运算的半同态加密方案,如Paillier加密方案、ElGamal加密方案等。但该接口只是一个未经封装的低层调用接口,目前利用这个接口实现同态加密的工作只是进行了简单的卸载实现,效率低下,而且没有考虑对应用层进行异步支持。
利用QAT卸载加密运算的最直接方法是将加密函数库中的加密函数替换成对QAT加密运算接口的同步调用,这也是已有工作的方法,这样上层应用几乎不需要修改,但是这种卸载方式的性能很低。这是因为在一般的软件加密方案中,对加密函数的调用是一个同步的阻塞调用,通过调用CPU资源进行加密运算,在加密阻塞操作完成之前应用层软件与加密库都不能进行后续操作。这种设计在只有CPU参与计算的情况下是合理的,但在上述卸载模式下会导致CPU和QAT的串行执行,QAT的利用率很低。一种可能的解决方法是开启大量线程进行同步调用,以此增大QAT的负载,并隐藏每个线程的卸载I/O开销,已有工作同样使用了该方法。但是随着大量线程的引入,线程间切换的开销急剧增加,成为限制系统性能的重要因素。
发明内容
本发明的目的是提供一种基于Intel QAT的同态加密卸载方法,可以实现同态加密在QAT上的高效异步卸载,以克服简单同步方式卸载的上述缺陷,使得CPU和QAT算力得到充分发挥,增强同态加密任务的并行性,缩短同态加密任务运行时延,提高系统同态加密的吞吐量。
本发明的目的是通过以下技术方案实现的:
一种基于Intel QAT的同态加密卸载方法,包括:
在QAT用户态驱动以上搭建软件栈,软件栈从下往上为QAT访问层、同态加密库、应用层三个层次;
每一个同态加密任务在应用层被封装为协程,协程根据参数获取待加密的数据,然后调用同态加密库,实现应用层同态加密;同态加密库负责同态加密算法的实现,并调用QAT访问层进行任务的异步提交;QAT访问层通过异步API提交加密请求后,相应协程主动暂停自身的执行,由应用层调度下一个同态加密任务;
在异步提交的任务数目达到QAT实例所能承受的上限之前,应用层主动对QAT实例进行轮询,以获取到加密结果;之后,QAT用户态驱动调用预设的回调函数;回调函数根据与加密结果相关联的协程句柄,直接重入到相应的协程,继续执行后续处理过程;后续处理完成后结束相应的协程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010338077.5/2.html,转载请声明来源钻瓜专利网。