高并行度的信息加解密算法研究(2)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

高并行度的信息加解密算法研究(2)


另一方面,随着互联网用户的不断涌入,互联网上信息的安全问题也受到越来越多的关注。网络上许多新型服务如网上银行、电子商务、电子政务受到越来越多的人的青睐,这也导致了许多网络信息安全问题,网络用户因为信息被泄密或被窃取而蒙受财产损失的案例比比皆是,这就对信息加密技术提出了很高的要求。由于信息具有时效性,其加解密技术必须在有限的时间内完成,否则就是没有意义的。因此,大规模数据加解密的实时性要求也对计算速度有着很大的依赖。传统的个人电脑上单线程或是少量线程的计算模式已经完全无法满足数据计算的需要[2]。
因此,本文研究了在CPU-GPU异构框架下,在多核多线程的高并行度模式下数据的加解密算法的实现。
1.2  国内外研究现状
2 GPU通用计算
2.1  图形处理器GPU
目前,主流计算机里的处理器主要是CPU(中央处理器)和GPU(图形处理器)。一般来讲,GPU只负责图像渲染,而大部分的处理任务都交给了CPU处理。但是GPU在处理计算能力和存储器带宽上相比CPU都具有明显的优势,在成本和功耗上也不需要付出额外的代价,从而为大规模数据的处理提供了新的结局方案。由于图像渲染的高并行度,GPU可以进一步提高计算能力和存储器带宽,通过增加存储器控制单元和并行处理单元的方式。
并且受到实景仿真和游戏市场的牵引,GPU的性能在以很高的速度提升。最近的几年里,GPU的性能以每年翻一倍的速度在提升,远远超过了CPU所遵循的摩尔定律(每18-24个月性能翻一倍)的发展速度。
2.2  基于GPU的通用计算 GPGPU
传统意义上,GPU的应用被局限于图像渲染任务的处理。而随着GPU可编程性的不断提高,GPU更多的被应用于通用计算的领域。将GPU用于图像渲染以外的领域的计算被称为GPGPU(General purpose computing on graphics processing units, 基于GPU的通用计算)。GPGPU 通常采用CPU+GPU异构模式,有CPU负责执行不适合并行计算的事务管理和逻辑处理部分,由GPU负责大规模数据的密集型并行计算。这种利用GPU的强大处理能力和高带宽弥补CPU计算能力不足的处理方式在成本和性价比方面具有很大优势。但是传统的GPGPU受到了开发方式和可编程性的限制,应用领域有限,开发难度也大[4]。
GPU中的可编程图形流水线的总体框架如图2.1所示,左边用实线表示的流程就是传统的图形流水线的流程:在这种通用的流水线中,首先经过顶点级的光照计算和坐标变换求出每个顶点的光照颜色值,并且还将顶点坐标从物体坐标系转换到裁剪空间。然后,对每个三角形进行光栅化处理,并将对三角形顶点的颜色进行双线性插值得到了三角形中每一个像素的颜色值。接着进行纹理映射,即根据每一个像素的纹理坐值,将纹理图颜色分配到每个像素上。最后进行颜色混合计算和雾化效果计算,得到的结果将会放进帧缓存区,并显示到屏幕上[5]。
 图2.1可编程图形流水线的总体框架
在2003年以前,顶点处理器的功能是固定不能改变的,只能通过图形学API来控制。而在现在的可编程图形硬件中,用户已经可以通过着色语言来自己编写需要的各种坐标系转换和光照处理功能。而且在最新的可编程图形硬件中,顶点处理器已经可以访问到显示存储器中的纹理数据,并能够执行直接回写显存的操作。
像素处理器的功能比顶点处理器更为复杂,在GPU中的数量也比顶点处理器多,需要许多和可编程顶点处理器类似的数学操作,并且需要支持纹理操作。纹理操作使得处理器能够通过一组纹理坐标存取纹理图像,然后返回一个纹理图像过滤的采样。它几乎包括了光栅化以后的全部操作:采样纹理、颜色混合计算和雾化效果计算等。传统的图形硬件中每个顶点的纹理坐标都需要人工指定,或者根据空间坐标来计算,而在像素着色器中,纹理可以根据用户所需要的方式进行访问,然后再根据片段着色程序来重新组织颜色的混合方式。这些图形学API都为并行计算提供了可能性,但其编程难度大,难以掌握并且灵活性较差[5]。 (责任编辑:qin)