论文部分内容阅读
目前,数据的安全性越来越重要了。数据的加密在数据通信和存储中的地位显得越发重要,数据加密技术是保护数据安全的核心,尤其是在当今的电子商务、数字货币、网络银行和其他网络业务的兴起时代。使得如何保护数据安全而不被盗取、不被篡改或破坏等问题越来越受到人们的重视。很多企业的服务器每天都承载着大量的数据,例如淘宝,百度,网易等。在这些大型服务器上,数据的保密是及其重要的,如何保护服务器上的数据是要考虑的情况。在现在社会上,对于数据加密的硬件设计一直是发展的关键,而对于服务器的数据进行保护也极为重要。现在服务器的系统大多数是Linux系统,Linux操作系统由于其功能逐渐完善,Linux操作系统越来越广泛地应用在各个领域。本文讲述了一块算法加密卡在Linux下的驱动设计,这块板卡是插在电脑的PCIe插槽上。板卡的硬件已经存在。算法由硬件实现,所以具体有哪些算法也是固定的。程序可通过驱动设计的API对自己的数据进行加密。板卡可对数据进行多种加密,从而保护到重要的数据。在加密的类别上有压缩,哈希等破解难度高的算法,实现了数据的安全加密。本文要做的驱动就是将用户程序的数据进行多层的封装,进而对硬件进行相应的设置,再而将数据传递给硬件进行加密。驱动程序将操作硬件的具体细节处理好,提供给用户的就是尽可能的简单明了的API了。本文从PCIe总线和算法的简单介绍入手,再介绍了硬件的基本框架以及驱动软件的设计流程。最后介绍板卡在加密速率上的测试结果。由于硬件和算法已经存在,所以算法的安全性和复杂率是固定好的,所以驱动API要测试的就是数据的吞吐速度。这个测试结果将作为驱动设计成功与否的衡量标准。驱动设计总体分为2层(服务层和物理层):1、服务层为整个驱动的第一层,即应用程序调用驱动API后直接进入到这一层,这一层要完成的工作主要包括包的一些处理和封装,和硬件无直接联系,处理完成的包传递给下一层进行处理。2、物理层为服务层的下面一层,主要是和硬件打交道,这层将上一层传下来的包通过DMA将数据包下载到板卡中去。系统以Linux为开发环境,设计基于加密算法卡的驱动。使得应用程序可以通过驱动API接口将数据下载到板卡中进行加密。算法加密卡本身的加密速率可达到800MB/s。本文对整体软件和已经进行详细的测试,测试结果表明系统设计的驱动软件可以使得整体的加密速率达到600MB/s~700MB/s。达到最初的设计要求。