[發(fā)明專利]一種基于OpenCL的AES并行化實(shí)現(xiàn)方法有效
| 申請(qǐng)?zhí)枺?/td> | 201410153285.2 | 申請(qǐng)日: | 2014-04-16 |
| 公開(公告)號(hào): | CN103973431B | 公開(公告)日: | 2017-04-05 |
| 發(fā)明(設(shè)計(jì))人: | 龔征;袁宇恒;何振忠;溫雅敏 | 申請(qǐng)(專利權(quán))人: | 華南師范大學(xué) |
| 主分類號(hào): | H04L9/06 | 分類號(hào): | H04L9/06;G06F9/38 |
| 代理公司: | 廣州市華學(xué)知識(shí)產(chǎn)權(quán)代理有限公司44245 | 代理人: | 黃磊 |
| 地址: | 510631 廣東省*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 opencl aes 并行 實(shí)現(xiàn) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及密碼算法的技術(shù)領(lǐng)域,特別涉及基于OpenCL的AMD GPU上的AES的快速實(shí)現(xiàn)方法。
背景技術(shù)
GPU原本是專門為處理圖形圖像數(shù)據(jù)而設(shè)計(jì)的,因而它具有高度并行的結(jié)構(gòu)?,F(xiàn)今,經(jīng)過十多年的發(fā)展,GPU的并行運(yùn)算能力已經(jīng)遠(yuǎn)遠(yuǎn)超越了CPU,利用GPU對(duì)各種計(jì)算進(jìn)行并行加速也成為了當(dāng)今的研究熱點(diǎn)。而在信息安全方面,GPU的一項(xiàng)重要應(yīng)用,就是通過并行化來實(shí)現(xiàn)快速加解密。
事實(shí)上,現(xiàn)在實(shí)現(xiàn)加解密并行化有CPU、GPU、FPGA和OPENCL四種并行實(shí)現(xiàn)機(jī)制,它們也各有優(yōu)劣。CPU單個(gè)核心的性能雖然比GPU的要高,但是不具備高度的并行化結(jié)構(gòu),并行能力不如GPU,而且受到結(jié)構(gòu)限制,并行規(guī)模擴(kuò)充比FPGA難;FPGA的并行規(guī)模擴(kuò)充雖然比CPU和GPU都容易,然而硬件一旦升級(jí)換代,就需要改動(dòng)大量的代碼,不利于開發(fā)與維護(hù);GPU則同樣受到結(jié)構(gòu)限制,并行規(guī)模擴(kuò)充比FPGA難,單個(gè)核心的運(yùn)算能力也不及CPU,顯存與主機(jī)內(nèi)存之間的數(shù)據(jù)交換會(huì)造成大量的延時(shí),這種I/O的耗費(fèi)成了GPU并行性能主要的瓶頸;OpenCL則是專為異構(gòu)平臺(tái)設(shè)計(jì)的,能夠綜合利用CPU、GPU及其他類型的處理器來提供并行計(jì)算,因而也日漸受到青睞。
OpenCL全稱Open Computing Language(開放計(jì)算語言),是由Khronos Group維護(hù)的為異構(gòu)平臺(tái)提供編寫程序(尤其是并行程序)的開放的框架標(biāo)準(zhǔn)。OpenCL由編寫內(nèi)核程序的語言和定義并控制平臺(tái)的API兩部分組成,可以在多核CPU或者GPU上編譯運(yùn)行。通過使用OpenCL,軟件開發(fā)人員便能夠高效利用各種異構(gòu)處理平臺(tái),從高性能計(jì)算服務(wù)器,到家用計(jì)算機(jī)再到手持設(shè)備,都被OpenCL所支持,并且在OpenCL幫助下,能夠組合工作。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于OpenCL的AES并行化實(shí)現(xiàn)方法。
本發(fā)明的目的通過下述技術(shù)方案實(shí)現(xiàn):
一種基于OpenCL的AES并行化實(shí)現(xiàn)方法,包括下述步驟:
S1、確定明/密文及輪密鑰分組的數(shù)量,準(zhǔn)備好明/密文及輪密鑰數(shù)據(jù)的數(shù)據(jù);
S2、確定AES的執(zhí)行模式,為編寫內(nèi)核函數(shù)做準(zhǔn)備;
S3、編寫內(nèi)核函數(shù);
S4、編寫OpenCL程序主文件,為OpenCL程序的執(zhí)行做準(zhǔn)備;
S5、設(shè)置程序運(yùn)行參數(shù),分配內(nèi)存空間,運(yùn)行程序;
S6、獲取加解密結(jié)果,釋放資源。
優(yōu)選的,步驟S1中,輪密鑰的數(shù)據(jù)在主機(jī)端預(yù)先生成好。
優(yōu)選的,步驟S2中,根據(jù)AES的設(shè)計(jì),將每一輪的不同操作轉(zhuǎn)化為僅用T表和異或來實(shí)現(xiàn);其具體實(shí)現(xiàn)方式是:
假設(shè)a為一輪的輸入,長度為128比特,此處看成是4×4字節(jié)的矩陣,按照32比特劃分為4份,即a0,a1,a2,a3,1份相當(dāng)于原有矩陣中的1行,如a0,j代表原有矩陣中的第一行第j列的元素,d為一輪的輸出,那么,d可以表示為:
dj=T0[a0,j]⊕T1[a1,j+1]⊕T2[a2,j+2]⊕T3[a3,j+3]⊕kj;
其中T0,T1,T2,T3為4個(gè)T表,kj為第j列要與之異或的子輪密鑰;經(jīng)過上述處理后,原本需要經(jīng)過字節(jié)替換、行移位、列混合以及輪密鑰加四個(gè)操作才能獲取的一輪的輸出,現(xiàn)在就轉(zhuǎn)化為僅依靠查表和異或就能獲取到;在完成上述操作前需要預(yù)先準(zhǔn)備好T表并將其寫在內(nèi)核文件中;
T表的類型可設(shè)為4字節(jié)的靜態(tài)無符號(hào)整型私有值、4字節(jié)的無符號(hào)整型常量或靜態(tài)無符號(hào)整型常量類型,需要注意,T表應(yīng)寫在內(nèi)核函數(shù)之外,因?yàn)閮?nèi)核函數(shù)之內(nèi)不允許使用靜態(tài)類型,而且將T表寫在內(nèi)核函數(shù)中會(huì)導(dǎo)致程序運(yùn)行時(shí)性能的下降。
優(yōu)選的,步驟S2中,AES的執(zhí)行模式選用電子密碼本ECB模式、計(jì)時(shí)器CTR模式以及輸出反饋OFB模式三種執(zhí)行模式中的一種。
優(yōu)選的,步驟S3中,編寫內(nèi)核參數(shù)的具體方法為:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華南師范大學(xué),未經(jīng)華南師范大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410153285.2/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:故障診斷方法及裝置
- 下一篇:一種空調(diào)制冷劑的過濾裝置
- 一種畫質(zhì)調(diào)節(jié)方法及系統(tǒng)
- 一種向量點(diǎn)積的OpenCL自動(dòng)化實(shí)現(xiàn)方法
- 一種提高OpenCL硬件執(zhí)行效率的方法
- 基于OpenCL移動(dòng)設(shè)備QC-LDPC的動(dòng)態(tài)譯碼方法
- 基于Andorid平臺(tái)的OpenCL圖像處理方法
- 程序的加載方法、裝置、系統(tǒng)以及電子設(shè)備
- 基于FPGA的Tensorflow系統(tǒng)加速的設(shè)計(jì)方法
- 一種基于OpenCL的雙目立體匹配方法
- 一種OpenCL內(nèi)核提交的方法及裝置
- 面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法和裝置
- 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議設(shè)備的數(shù)據(jù)并行采集歸并方法及系統(tǒng)
- 減少EMI的并行數(shù)據(jù)傳輸方法
- 一種多媒體數(shù)據(jù)并行處理系統(tǒng)及方法
- 一種高速并行OQPSK解調(diào)時(shí)鐘的恢復(fù)系統(tǒng)
- 一種海量地震數(shù)據(jù)并行抽道集方法
- 3G協(xié)議的turbo碼并行譯碼方法及裝置
- 并行擴(kuò)展輸入輸出的教學(xué)裝置
- 數(shù)據(jù)的并行處理
- 并行式插件機(jī)
- 一種SPI總線與并行總線的橋接方法、設(shè)備、系統(tǒng)及介質(zhì)





