两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于sm2基點(diǎn)的點(diǎn)乘運(yùn)算方法

文檔序號(hào):7820605閱讀:1834來源:國(guó)知局
一種基于sm2基點(diǎn)的點(diǎn)乘運(yùn)算方法
【專利摘要】本發(fā)明公開了一種基于SM2基點(diǎn)的點(diǎn)乘運(yùn)算方法,涉及密碼算法實(shí)現(xiàn)領(lǐng)域。本發(fā)明技術(shù)要點(diǎn):首先將SM2基點(diǎn)的雙倍點(diǎn)運(yùn)算結(jié)果計(jì)算出來并存儲(chǔ)。判斷k值的第0位是否為1,若是則將SM2基點(diǎn)與零點(diǎn)相加得到與k值第0位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果,若k值的第0位不為1則將零點(diǎn)作為與k值第0位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果; 判斷k值的下一位是否為1,若是則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果相加的結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果,否則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果;依次類推直到得到與k值第255位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果。
【專利說明】一種基于SM2基點(diǎn)的點(diǎn)乘運(yùn)算方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及密碼算法實(shí)現(xiàn)領(lǐng)域。

【背景技術(shù)】
[0002]橢圓曲線公鑰密碼體制(Elliptic Curve Cryptosystem,簡(jiǎn)稱ECC),S卩基于橢圓曲線離散對(duì)數(shù)問題的各種公鑰密碼體制,最早于1985年由N.Koblitz和V.Miller各自獨(dú)立地提出。它的基本思路是利用有限域上的橢圓曲線有限群代替基于離散對(duì)數(shù)問題的有限循環(huán)群所得到的一類密碼體制。
[0003]在相同安全強(qiáng)度的情況下,ECC的密鑰長(zhǎng)度只有RSA密鑰長(zhǎng)度的1/6甚至更少,運(yùn)算速度比RSA快,且可選擇多種曲線參數(shù)。ECC以其高效率、高安全強(qiáng)度優(yōu)勢(shì),在信息安全應(yīng)用中具有巨大的市場(chǎng)發(fā)展空間。
[0004]SM2算法是由中國(guó)國(guó)家密碼管理局牽頭制定的商用密碼算法,SM2算法基于ECC算法改造而成,包含一組推薦的曲線參數(shù),SM2算法的密鑰長(zhǎng)度為256位。目前,我國(guó)正在商用密碼領(lǐng)域大力推廣應(yīng)用SM2系列商用密碼算法。
[0005]點(diǎn)乘運(yùn)算是實(shí)現(xiàn)SM2算法的核心運(yùn)算。SM2算法的點(diǎn)乘算法即計(jì)算kP,其中,k是隨機(jī)選取的一個(gè)大正整數(shù),P是橢圓曲線上的一個(gè)點(diǎn)。一次點(diǎn)乘運(yùn)算可分解為多次的點(diǎn)加(Point Add)運(yùn)算和雙倍點(diǎn)(Point Double)運(yùn)算。
[0006]現(xiàn)有的點(diǎn)乘運(yùn)算的分解如錯(cuò)誤!未找到引用源。所示,無論P(yáng)點(diǎn)是否為基點(diǎn),在一次點(diǎn)乘運(yùn)算中包含256輪運(yùn)算,每一輪根據(jù)k每一位的值不同而執(zhí)行不同的運(yùn)算,其中Point Double運(yùn)算除最后一輪不執(zhí)行外,其他每輪都要執(zhí)行。也就是說一次點(diǎn)乘運(yùn)算中包含255輪雙倍點(diǎn)運(yùn)算,具體做法是將運(yùn)算P點(diǎn)乘2作為與k值第O位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果,將與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果乘2作為與k值當(dāng)前位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果,以此類推得到與k值第254位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果。
[0007]而Point Add運(yùn)算則僅當(dāng)k的當(dāng)前位為I時(shí)才執(zhí)行,而為O時(shí)則不執(zhí)行,前一輪Point Add的運(yùn)算結(jié)果和Point Double的運(yùn)算結(jié)果會(huì)作為后一輪的Point Add的輸入。
[0008]可見在點(diǎn)乘運(yùn)算中,每輪的Point Double運(yùn)算與上一輪的Point Double運(yùn)算結(jié)果有關(guān),而與上一輪的Point Add的結(jié)果無關(guān),如果P為一個(gè)特定的點(diǎn),則可以對(duì)此特定點(diǎn)P的Point Double運(yùn)算進(jìn)行優(yōu)化。


【發(fā)明內(nèi)容】

[0009]本發(fā)明所要解決的技術(shù)問題是:針對(duì)上述存在的問題,一種基于SM2基點(diǎn)的點(diǎn)乘運(yùn)算方法,通過降低點(diǎn)乘運(yùn)算中的計(jì)算復(fù)雜度有效地提升SM2算法的性能。
[0010]本發(fā)明采用的技術(shù)方案如下:首先將SM2基點(diǎn)的雙倍點(diǎn)運(yùn)算結(jié)果計(jì)算出來并存儲(chǔ):對(duì)SM2基點(diǎn)進(jìn)行雙倍點(diǎn)運(yùn)算,將運(yùn)算結(jié)果與k值第O位對(duì)應(yīng)并存儲(chǔ);對(duì)與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果進(jìn)行雙倍點(diǎn)運(yùn)算,將運(yùn)算結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果并存儲(chǔ);依次類推直到得到與k值第254位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果并存儲(chǔ)。
[0011]然后執(zhí)行以下運(yùn)算:
[0012]判斷k值的第O位是否為1,若是則將SM2基點(diǎn)與零點(diǎn)相加得到與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果,若k值的第O位不為I則將零點(diǎn)作為與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果;
[0013]判斷k值的下一位是否為I,若是則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果相加的結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果,否則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果;依次類推直到得到與k值第255位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果。
[0014]由于SM2算法包含了一組推薦的曲線參數(shù),該曲線參數(shù)中包含了一個(gè)固定的基點(diǎn)坐標(biāo)值又稱為SM2基點(diǎn)。SM2算法在做簽名、驗(yàn)簽運(yùn)算中,均要使用該基點(diǎn)與k進(jìn)行運(yùn)算。本發(fā)明預(yù)先計(jì)算出SM2算法基點(diǎn)的255輪Point Double的值。當(dāng)P點(diǎn)為SM2基點(diǎn)時(shí),則可省掉255輪Point Double的運(yùn)算,直接從預(yù)先計(jì)算的Point Double運(yùn)算結(jié)果中進(jìn)行拷貝即可(如錯(cuò)誤!未找到引用源。所示)。
[0015]單次Point Double比Point Add的運(yùn)算量少20 %,但每次點(diǎn)乘運(yùn)算中,PointDouble運(yùn)算的次數(shù)要比Point Add多一倍左右,因此,通過本發(fā)明提供的預(yù)計(jì)算方法,可將SM2算法基點(diǎn)的點(diǎn)乘運(yùn)算性能提升一倍以上。SM2簽名運(yùn)算中只有一次點(diǎn)乘運(yùn)算,就是基點(diǎn)的點(diǎn)乘運(yùn)算,SM2簽名驗(yàn)證運(yùn)算和加密運(yùn)算有兩次點(diǎn)乘運(yùn)算,其中一次是基點(diǎn)的點(diǎn)乘運(yùn)算。因此,本發(fā)明的有益效果是:顯著地提升SM2算法簽名、簽名驗(yàn)證、加密運(yùn)算的性能。

【專利附圖】

【附圖說明】
[0016]本發(fā)明將通過例子并參照附圖的方式說明,其中:
[0017]圖1為現(xiàn)有的點(diǎn)乘運(yùn)算分解圖。
[0018]圖2為本發(fā)明中基于基點(diǎn)的點(diǎn)乘運(yùn)算分解圖。

【具體實(shí)施方式】
[0019]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
[0020]本說明書中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只是一系列等效或類似特征中的一個(gè)例子而已。
[0021]本發(fā)明僅針對(duì)P點(diǎn)為SM2基點(diǎn)的點(diǎn)乘運(yùn)算。
[0022]如圖2,首先將SM2基點(diǎn)的雙倍點(diǎn)運(yùn)算結(jié)果計(jì)算出來并存儲(chǔ)。具體做法是對(duì)SM2基點(diǎn)進(jìn)行雙倍點(diǎn)運(yùn)算,將運(yùn)算結(jié)果與k值第O位對(duì)應(yīng)并存儲(chǔ);對(duì)與k值第O位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果再次進(jìn)行雙倍點(diǎn)運(yùn)算,將運(yùn)算結(jié)果作為與k值第I位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果并存儲(chǔ);此后,對(duì)與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果進(jìn)行雙倍點(diǎn)運(yùn)算,將運(yùn)算結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果并存儲(chǔ);依次類推直到得到與k值第254位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果并存儲(chǔ)。
[0023]然后在執(zhí)行基點(diǎn)的點(diǎn)乘運(yùn)算時(shí),按照以下步驟進(jìn)行運(yùn)算:
[0024]判斷k值的第O位是否為1,若是則將SM2基點(diǎn)與零點(diǎn)相加得到與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果,若k值的第O位不為I則將零點(diǎn)作為與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果。
[0025]判斷k值的第I位是否為1,若是則將與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果和與k值第O位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果相加的結(jié)果作為與k值第I位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果,若k值的第I位不為I則將與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果作為與k值第I位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果。
[0026]此后,判斷k值的下一位是否為1,若是則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果相加的結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果,否則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果;依次類推直到得到與k值第255位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果。
[0027]其中零點(diǎn)即為坐標(biāo)為全O的點(diǎn)。
[0028]本發(fā)明并不局限于前述的【具體實(shí)施方式】。本發(fā)明擴(kuò)展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
【權(quán)利要求】
1.一種基于SM2基點(diǎn)的點(diǎn)乘運(yùn)算方法,其特征在于, 首先將SM2基點(diǎn)的雙倍點(diǎn)運(yùn)算結(jié)果計(jì)算出來并存儲(chǔ):對(duì)SM2基點(diǎn)進(jìn)行雙倍點(diǎn)運(yùn)算,將運(yùn)算結(jié)果與k值第O位進(jìn)行對(duì)應(yīng)并存儲(chǔ);對(duì)與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果進(jìn)行雙倍點(diǎn)運(yùn)算,將運(yùn)算結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果并存儲(chǔ);依次類推直到得到與k值第254位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算的結(jié)果并存儲(chǔ); 然后執(zhí)行以下運(yùn)算: 判斷k值的第O位是否為1,若是則將SM2基點(diǎn)與零點(diǎn)相加得到與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果,若k值的第O位不為I則將零點(diǎn)作為與k值第O位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果; 判斷k值的下一位是否為1,若是則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算的結(jié)果與k值前一位對(duì)應(yīng)的雙倍點(diǎn)運(yùn)算結(jié)果相加的結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果,否則將與k值前一位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果作為與k值當(dāng)前位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果;依次類推直到得到與k值第255位對(duì)應(yīng)的點(diǎn)加運(yùn)算結(jié)果。
【文檔編號(hào)】H04L9/32GK104506316SQ201410681320
【公開日】2015年4月8日 申請(qǐng)日期:2014年11月24日 優(yōu)先權(quán)日:2014年11月24日
【發(fā)明者】吳慶國(guó), 張世雄, 李元正 申請(qǐng)人:成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宜丰县| 凤翔县| 靖宇县| 章丘市| 察隅县| 靖宇县| 南靖县| 历史| 上饶县| 会东县| 丘北县| 武山县| 侯马市| 东台市| 稻城县| 柞水县| 拜城县| 微山县| 宝坻区| 谢通门县| 文登市| 嘉鱼县| 大英县| 纳雍县| 长治市| 门头沟区| 西藏| 赣榆县| 图片| 乌兰察布市| 德钦县| 龙泉市| 安宁市| 霍邱县| 新营市| 方城县| 石楼县| 五河县| 新河县| 呼玛县| 阜宁县|