999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CUDA的高性能對稱密碼算法實現(xiàn)技術(shù)研究

2018-08-11 03:15:44楊海云張梓鋅段博坤
關(guān)鍵詞:效率

◆楊海云 張梓鋅 隆 昆 段博坤

?

基于CUDA的高性能對稱密碼算法實現(xiàn)技術(shù)研究

◆楊海云 張梓鋅 隆 昆 段博坤

(中國民航大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)

在大數(shù)據(jù)和云計算應(yīng)用與日俱增的今天,很多的應(yīng)用服務(wù)器面臨著執(zhí)行大量計算稠密的加密挑戰(zhàn)。CUDA作為NVIDIA推出的一種并行計算平臺和編程模型,能夠利用現(xiàn)有的顯卡資源,以低成本的方式提升加密性能。在NVIDIA Geforce 940M 上設(shè)計并實現(xiàn)了并行的AES和SM4算法,與傳統(tǒng)的CPU實現(xiàn)方式進(jìn)行對比,AES最高可以獲得92.70%的加密效率提升和13.69倍的加速比,SM4最高可以獲得98.41%的加密效率提升和62.92倍的加速比。

CUDA;并行計算;對稱密碼算法;加速比

0 引言

在當(dāng)今諸多的網(wǎng)絡(luò)應(yīng)用中,數(shù)據(jù)加密必不可少。伴隨著大數(shù)據(jù)時代的到來,加密效率已經(jīng)成為一個不容忽視的問題。同時,計算機(jī)正在從只使用CPU的“中央處理”向CPU與GPU并用的“協(xié)同處理”發(fā)展。CUDA[1]作為NVIDIA公司推出的一種并行編程計算框架,有效利用GPU的計算能力,提高了計算速度。本文將先以基于CUDA的AES和SM4算法[2]為實踐基礎(chǔ),研究GPU計算對于這兩種常用加密算法的性能提升,進(jìn)一步探索基于CUDA的對稱密碼算法設(shè)計實現(xiàn)的一般性方法。

1 CUDA簡介

CUDA(Compute Unified Device Architecture,統(tǒng)一計算設(shè)備架構(gòu))是一種由NVIDIA推出的通用并行計算架構(gòu),該架構(gòu)使GPU 能夠解決復(fù)雜的計算問題。它包含了CUDA指令集架構(gòu)以及GPU內(nèi)部的并行計算引擎,開發(fā)人員可以使用C語言來為CUDA架構(gòu)編寫程序。它要求計算機(jī)的顯卡必須支持CUDA技術(shù),然后安裝CUDA開發(fā)環(huán)境即可使用C語言進(jìn)行編程。

2 AES和SM4算法簡介

2.1 AES算法

AES(Advanced Encryption Standard,高級加密標(biāo)準(zhǔn))是由美國國家標(biāo)準(zhǔn)技術(shù)研究所在2001年發(fā)布的一種對稱加密算法,目前,AES算法已然成為對稱密鑰加密中最流行的算法之一。

作為一種分組加密算法,AES的分組長度為128bit,密鑰長度有三種可選取值:128bit、192bit和256bit。加密時首先將明文切割成為128bit的分組,每個分組首先進(jìn)行密鑰相加,其次按照密鑰長度加密不同的輪數(shù)。每一輪中有四層,分別為字節(jié)替換(SubBytes,使用Sbox進(jìn)行非線性替換)、行移位(ShiftRows,對每行分別進(jìn)行0,1,2,3字節(jié)的循環(huán)移位,達(dá)到字內(nèi)混淆)、列混合(MixColumns,線性變換每列以混淆數(shù)據(jù))、密鑰相加(AddRoundKey,對輪密鑰和狀態(tài)進(jìn)行異或運(yùn)算,進(jìn)行盲化)。需要注意的是,最后一輪不包括列混合層。加密對應(yīng)輪數(shù)后,即完成了一個分組的加密變換。對其余分組也進(jìn)行這樣的操作,組合每個分組的加密結(jié)果,便完成了整個明文的加密[3]。

2.2 SM4算法

SM4是由中國國家商用密碼管理辦公室2006年發(fā)布的一種Feistel結(jié)構(gòu)的分組密碼算法,分組長度和密鑰長度均為128bit。加解密算法與密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu)。對加密流程中涉及的參數(shù)做出如下定義:

加密密鑰:

輪密鑰由加密密鑰擴(kuò)展而來,表示為:

系統(tǒng)參數(shù):

為字,固定參數(shù):

為字,輪函數(shù)F為:

輸出為:

則:

定義反序變換R為:

整個加密的流程圖如圖1所示。

圖1 SM4加密流程圖

3 基于CUDA的SM4和AES算法設(shè)計與實現(xiàn)

通過上面對SM4和AES的算法介紹可以看出,對稱密碼算法的主要特點是:明文加密前需要按照分組長度進(jìn)行切塊,各個明文分組加密過程沒有影響。這個特點是算法并行實現(xiàn)的理論基礎(chǔ)所在。傳統(tǒng)的加密程序?qū)⒚魑淖x取與切塊、密鑰擴(kuò)展、分組加密,加密結(jié)果整合這四個步驟統(tǒng)一放在CPU上處理,而CUDA提供了一個低成本的并行計算平臺,可以將分組加密這個最耗費(fèi)時間和計算資源的步驟放在GPU上。CPU要做的只是明文讀取與切塊、密鑰擴(kuò)展、加密結(jié)果整合這三個計算量比較小的步驟,這樣便大大節(jié)省了CPU的計算資源。

GPU的計算線程集中在每一block(線程塊)上,計算執(zhí)行時加載到流處理器上運(yùn)行[4,5]。所以并發(fā)度與流處理器的個數(shù)和每個線程塊中所能容納的最大線程數(shù)目有直接關(guān)系。本實驗使用的顯卡為NVIDIA Geforce 940M,流處理器有3個,每個線程塊的最大線程數(shù)目為1024,即每個線程塊最大可以讓1024個明文分組執(zhí)行加密運(yùn)算。GPU的啟動參數(shù)計算方法如下:

設(shè)明文分組個數(shù)為n,線程塊數(shù)目為p,每個線程塊中啟動的線程數(shù)目為q,則:

if(n/3>1024)

p=n/1024

q=1024

else

p=3

q=n/3

然后使用0號線程對共享內(nèi)存中的S盒等一些必要數(shù)據(jù)參數(shù)進(jìn)行初始化,從1號線程開始進(jìn)行加密,對于單個線程來說,它們執(zhí)行一個分組的完整加密流程,每個block中的各個線程互不干擾,計算各自的加密結(jié)果。最后使用線程ID將它們的計算結(jié)果收集起來,得到最終的加密結(jié)果[6]。

在CUDA程序設(shè)計中,將CPU稱為主機(jī)端,GPU稱為設(shè)備端[7,8]。通過上面的分析可知,無論是AES,還是SM4。明文文件的讀取,密鑰擴(kuò)展,加密結(jié)果整合都應(yīng)該在主機(jī)端完成,只有分組加密在設(shè)備端。圖2總結(jié)了實現(xiàn)并行AES和SM4的算法的主要思想。

圖2 基于CUDA的SM4和AES算法設(shè)計框圖

4 實驗

4.1 測試方案與步驟

為了比較傳統(tǒng)的CPU加密和GPU加密時間,在表1的配置環(huán)境下我們設(shè)計出如下的測試方案:

第一步:準(zhǔn)備1MB, 4MB,8MB,10MB,15MB,20MB,30MB,50MB,100MB的10個文件。

第二步:分別將這10個文件用傳統(tǒng)的AES和SM4算法加密20次,計算并記錄平均加密時間。

第三步:分別將這10個文件用并行的AES和SM4算法加密20次,計算并記錄平均加密時間。

第四步:整理實驗數(shù)據(jù),計算加密效率與加速比。

定義加密效率S為:

定義加速比r為:

表1 實驗環(huán)境配置

4.2 實驗結(jié)果

按照上面的實驗步驟,分別可以得到AES算法和SM4算法串行與并行的加密時間。計算對應(yīng)數(shù)據(jù)的加速比和加密效率。AES算法的實驗數(shù)據(jù)如表2所示,加速比變化趨勢見圖3。SM4算法的實驗數(shù)據(jù)如表3所示,加速比變化趨勢如圖4所示。

表2 AES算法加密數(shù)據(jù)統(tǒng)計表

表3 SM4算法加密數(shù)據(jù)統(tǒng)計表

圖3 AES算法性能分析圖表

圖4 SM4算法性能分析圖表

4.3 實驗結(jié)論

通過表3的數(shù)據(jù)可以看出,就AES算法而言,加密1MB的小文件,基于CUDA的并行AES算法要比傳統(tǒng)CPU加密快11倍,效率提升達(dá)到91.28%,伴隨著文件大小逐步增加到100M,加速比與加密效率也穩(wěn)步提升,加密效率峰值達(dá)到92.70%,加速比達(dá)到13.60倍。結(jié)合表4與SM4算法進(jìn)行縱向?qū)Ρ龋琒M4算法的效率提升平均在98%,文件大小在100MB時加密效率達(dá)到98.41%,加速比達(dá)到峰值62.92倍。

實驗數(shù)據(jù)表明,基于CUDA的SM4和AES可以以低成本的方式獲得很高的效率提升。是否可以將這種設(shè)計方法推廣到其他的對稱密碼算法呢?SM4和AES算法的一個重要的共同特征就是分組加密。各個明文分組之間互不干涉的進(jìn)行著一次加密流程,可以發(fā)現(xiàn),這也是對稱密碼算法的特征。需要找出的是每次加密中重復(fù)且互不影響的部分,使用GPU上的線程來計算這部分內(nèi)容,然后將運(yùn)行結(jié)果返回CPU進(jìn)行整理。這樣就可將對稱密碼算法使用CUDA來重新設(shè)計,節(jié)省了CPU有限的計算資源,充分發(fā)揮了GPU閑置的計算能力,提高密碼算法的效率。

5 結(jié)束語

本文以解決大量數(shù)據(jù)加密為出發(fā)點,提出了基于CUDA的加密算法實現(xiàn)方法,通過對常用加密算法AES和SM4實驗,數(shù)據(jù)表明,SM4算法最高加速比和效率可以達(dá)到98%和62.92倍。說明這種設(shè)計思路是合理的,可以推廣到其他的對稱加密算法。

[1]NVIDIA Corporation. CUDA Technology[OL].

[2]國家密碼管理局.國家密碼管理局公告第23號.[EB/OL].http://www.sca.gov.cn/app-zxfw/zxfw/bzgfcx.jsp.

[3]馬小婷等譯.深入淺出密碼學(xué)[M].北京:清華大學(xué)出版社,2012.

[4]劉金碩等著.基于CUDA的并行程序設(shè)計[M].北京:科學(xué)出版社,2014.

[5]方民權(quán)等著.GPU編程與優(yōu)化[M].北京:科學(xué)出版社, 2016.

[6]李大為,趙旭鑫,武萌. SM4密碼算法的高速流水線實現(xiàn)[J].電子器件,2007.

[7]蘇統(tǒng)華,李東等譯.CUDA并行程序設(shè)計 GPU編程指南[M].北京:機(jī)械工業(yè)出版社,2014.

[8]趙開勇,汪朝輝,程亦超等譯.大規(guī)模并行處理器編程實戰(zhàn)(第二版)[M].北京:清華大學(xué)出版社,2013.

大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目(項目編號:IECAUC2017044)。

猜你喜歡
效率
你在咖啡館學(xué)習(xí)會更有創(chuàng)意和效率嗎?
提升朗讀教學(xué)效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
注意實驗拓展,提高復(fù)習(xí)效率
效率的價值
商周刊(2017年9期)2017-08-22 02:57:49
引入“倒逼機(jī)制”提高治霾效率
質(zhì)量與效率的爭論
跟蹤導(dǎo)練(一)2
提高食品行業(yè)清潔操作的效率
OptiMOSTM 300V提高硬開關(guān)應(yīng)用的效率,支持新型設(shè)計
“錢”、“事”脫節(jié)效率低
主站蜘蛛池模板: 欧美第一页在线| 国产精品短篇二区| 性欧美久久| 中文字幕在线视频免费| 欧美亚洲国产一区| 国产欧美高清| 国产精品久久久久鬼色| 婷婷色在线视频| 国产青青操| 手机看片1024久久精品你懂的| 四虎精品黑人视频| 最新亚洲人成无码网站欣赏网| 手机精品福利在线观看| 日韩123欧美字幕| 亚洲91精品视频| 国产成人91精品免费网址在线| 久久国产精品影院| 激情无码视频在线看| 国产成人欧美| 青青青伊人色综合久久| 亚洲Av激情网五月天| 亚洲第一视频免费在线| 国产精品污视频| 久久精品国产亚洲AV忘忧草18| 中文字幕亚洲精品2页| 91国内在线视频| 区国产精品搜索视频| 国产视频只有无码精品| 欧美亚洲日韩中文| 精品乱码久久久久久久| 亚洲男人在线天堂| 高清无码手机在线观看| 视频二区国产精品职场同事| 亚洲精品国产成人7777| 天天综合亚洲| 素人激情视频福利| 日韩不卡高清视频| 2022国产91精品久久久久久| 91小视频在线观看免费版高清| 色婷婷亚洲综合五月| 日韩高清无码免费| 欧美午夜视频在线| 亚洲永久色| 中国黄色一级视频| 亚洲无码日韩一区| 国产一区二区影院| 国产欧美视频在线观看| 成人在线不卡视频| 欧美区一区| 精品国产www| 亚洲黄网视频| 91日本在线观看亚洲精品| 免费无码AV片在线观看中文| 黄色免费在线网址| 国产真实乱了在线播放| 国内精自视频品线一二区| 国产又粗又猛又爽视频| 58av国产精品| 伊人久综合| 中文字幕自拍偷拍| 无码高潮喷水在线观看| 黄色福利在线| 红杏AV在线无码| 日韩性网站| 欧美国产成人在线| 国产成人久视频免费| 成人av手机在线观看| 欧美成人亚洲综合精品欧美激情 | 一级一级一片免费| 人妻丝袜无码视频| 丁香六月激情婷婷| 久久久久青草大香线综合精品| 亚洲永久色| 麻豆精品国产自产在线| 午夜a视频| 亚洲性色永久网址| 亚洲欧美另类中文字幕| 香蕉精品在线| 美女无遮挡免费视频网站| 免费aa毛片| 国产精品手机在线观看你懂的| 怡春院欧美一区二区三区免费|