[發(fā)明專利]基于GPU的SM2算法實現(xiàn)方法及裝置有效
| 申請?zhí)枺?/td> | 201310459734.1 | 申請日: | 2013-09-26 |
| 公開(公告)號: | CN103532710B | 公開(公告)日: | 2016-11-30 |
| 發(fā)明(設計)人: | 潘無窮;荊繼武;管樂;向繼;林璟鏘;余幸杰 | 申請(專利權)人: | 中國科學院數(shù)據(jù)與通信保護研究教育中心 |
| 主分類號: | H04L9/30 | 分類號: | H04L9/30 |
| 代理公司: | 北京德琦知識產(chǎn)權代理有限公司 11018 | 代理人: | 牛崢;王麗琴 |
| 地址: | 100093 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 gpu sm2 算法 實現(xiàn) 方法 裝置 | ||
技術領域
本發(fā)明涉及公鑰密碼算法技術,特別涉及一種基于圖形處理器(GPU,Graphics?Processing?Unit)的SM2算法的實現(xiàn)方法及裝置。
背景技術
采用多核并行計算是提升處理器性能的重要方式,因此出現(xiàn)了包括海量并行結構運算單元的GPU,GPU已經(jīng)發(fā)展成為了并行度高、多線程、計算快捷及內(nèi)存帶寬大的高性能通用處理器。GPU體系結構在組成上分為三層:第一層由若干個線程處理器簇(TPC,Thread?Preocessing?Cluster)組成,第二層由多個流多處理器(SM,Streaming?Multiprocessor)組成,第三層為構成SM的流處理器(SP,Stream?Processor),也可以稱為線程處理器。SM作為GPU的一個任務執(zhí)行和調(diào)度單元,主要負責執(zhí)行GPU分發(fā)的線程指令,而SP是GPU中最基本的指令執(zhí)行單元,其執(zhí)行的操作由所屬的SM控制。SP具備獨立的寄存器和程序計數(shù)器,但是沒有內(nèi)存訪問和調(diào)度單元,所以SP僅僅具備計算能力,而非獨立的處理器核,SM為其包含的SP提供內(nèi)存訪問和調(diào)度能力。如果使用同一個SM中所有SP執(zhí)行相同的指令,并且使所有SP處理的計算數(shù)據(jù)都不同,就可以使SM具有最高的計算效率,有效避免計算資源的浪費。
2006年NVIDIA公司推出了計算機一體設備結構(CUDA,Compute?Unified?Device?Architecture)可編程平臺,可以實現(xiàn)GPU線程的調(diào)度。在CUDA可編程平臺架構下,GPU執(zhí)行的最小單位是線程(thread),數(shù)個線程(thread)可以組成一個線程塊(block)。一個block中的thread可以存取同一共享內(nèi)存且同步。執(zhí)行相同程序的thread,組成柵格(grid),不同的grid可以執(zhí)行不同的程序。
GPU可以對GPU線程進行動態(tài)調(diào)度,GPU線程被承載在GPU計算單元中,每個GPU線程由一個SP執(zhí)行。如果一組GPU線程同時允許相同指令且處理不同的數(shù)據(jù),就能使盡可能多個SP在相同時間內(nèi)執(zhí)行相同指令。一組GPU線程同時處理的指令相同且數(shù)據(jù)不同的計算越多,GPU中SM的計算效率越高,GPU的運算速度越快。
相對于中央處理器(CPU),GPU具有強大的數(shù)據(jù)處理能力,在浮點運算及并行計算等方面,提高幾十倍甚至數(shù)百倍于CPU的性能。GPU具有幾千個核,有很高的并行性,但是每個SM相比CPU處理能力比較弱。CPU計算能力強,但是核數(shù)比較少。因此,采用何種CPU和GPU協(xié)作方式進行構架,完成各種計算,以提高系統(tǒng)整體計算能力,是一個亟待解決的問題。
橢圓曲線公鑰密碼算法(SM2),是中國國家密碼管理局發(fā)布的密碼算法。SM2明確規(guī)定了SM2算法的數(shù)字簽名算法、公鑰加密算法及密鑰交換協(xié)議,應用在數(shù)據(jù)傳輸過程中可靠性的數(shù)據(jù)傳輸及使用數(shù)據(jù)的合法者驗證。其中,SM2算法的數(shù)字簽名算法包括生成算法和驗證算法。在SM2的數(shù)字簽名算法中,包括一一對應的公鑰和私鑰,其中,私鑰用于數(shù)據(jù)生成數(shù)字簽名,公鑰用于對數(shù)字簽名進行驗證。簽名者采用私鑰進行數(shù)據(jù)M的數(shù)字簽名生成算法計算,得到數(shù)據(jù)M的數(shù)字簽名;驗證者采用公鑰對接收的數(shù)據(jù)M進行數(shù)字簽名驗證計算,驗證數(shù)據(jù)M的數(shù)字簽名是否匹配,如果匹配,確認接收的數(shù)據(jù)M是正確的。公鑰加密算法包括加密算法和解密算法,適用于所傳輸數(shù)據(jù)的加解密。在公鑰加密算法中,數(shù)據(jù)接收者有一個公鑰和一個私鑰,公鑰和私鑰一一對應。數(shù)據(jù)發(fā)送者利用接收者的公鑰,使用加密算法對數(shù)據(jù)加密,接收者用對應的私鑰,使用解密算法對接收的數(shù)據(jù)進行解密,獲取數(shù)據(jù)。密鑰交換協(xié)議是密鑰交換發(fā)起者和密鑰交換響應者通過交互數(shù)據(jù)傳遞實現(xiàn)秘密信息的共享,包括發(fā)起密鑰交換和響應密鑰交換。密鑰交換發(fā)起者和響應者分別擁有自己的公鑰和私鑰,并用各自的私鑰和對方的公鑰確定共享的秘密密鑰,這個共享的秘密密鑰通常用于某個對稱密碼算法中,該密鑰交換協(xié)議適用于密碼應用中的密鑰交換,能夠用于密鑰協(xié)商和管理。
SM2算法的數(shù)字簽名算法、密鑰交換協(xié)議和加密算法的具體郭晨如下所述。
SM2算法的數(shù)字簽名生成算法
設待簽名的消息為M,為了取得消息M的數(shù)字簽名(r,s),作為簽名者的用戶A應實現(xiàn)以下運算步驟:
A1:置ZA‖M表示ZA與M的拼接;
A2:計算將e的數(shù)據(jù)類型轉換為整數(shù);
A3:產(chǎn)生隨機數(shù)k∈[1,n-1];
A4:計算橢圓曲線點(x1,y1)=[k]G;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院數(shù)據(jù)與通信保護研究教育中心,未經(jīng)中國科學院數(shù)據(jù)與通信保護研究教育中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310459734.1/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





