亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于演化計(jì)算的安全橢圓曲線快速選擇算法的制作方法

文檔序號:6582241閱讀:395來源:國知局
專利名稱:基于演化計(jì)算的安全橢圓曲線快速選擇算法的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于信息安全保護(hù)技術(shù)領(lǐng)域,涉及的是一種基于演化計(jì)算的安全橢圓曲線
快速選擇算法。
背景技術(shù)
1985年Neal Koblitz和Victor Mille提出了橢圓曲線密碼體制(ECC),其安全 性是建立在橢圓曲線離散對數(shù)計(jì)算困難性的基礎(chǔ)之上,具有安全性高、占用帶寬小、計(jì)算復(fù) 雜度高等優(yōu)點(diǎn),近二十年來已成為國際密碼學(xué)的研究熱點(diǎn)。 ECC算法的標(biāo)準(zhǔn)化,有取代RSA在公鑰密碼霸主地位的趨勢,且ECC已經(jīng)逐漸被包 含到IEEE、ANSI、ISO和NIST等發(fā)布的標(biāo)準(zhǔn)中。特別是美國NIST推薦的15條曲線也成為 目前工程應(yīng)用中常選用的橢圓曲線。但是選擇安全曲線是一個難題,現(xiàn)有的算法主要有兩 種復(fù)乘法(CM)和隨機(jī)選擇法。對于CM方法,它是根據(jù)給定的階來選取符合此階的ECC曲 線,實(shí)現(xiàn)的速度相對較快,但是這種算法的缺陷是產(chǎn)生的曲線具有某種特定的結(jié)構(gòu)特征,存 在潛在的安全威脅。因此,一般都利用隨機(jī)選擇法來選擇曲線。隨機(jī)選取的橢圓曲線的安 全性大多數(shù)依賴于曲線的階的大小,階越大,計(jì)算復(fù)雜度就越高,安全性越強(qiáng), 一般階只要 含有大于2160的素因子即可以認(rèn)為是安全的,因此,如何求取曲線的階是選擇安全曲線的 一個重要的問題。求階算法有以下幾種Schoof's algorithm、SEA(Schoof-Elkies-Atkin) 算法、Satoh算法、Fouquet算法、SST算法、AGM算法和MSST算法等,但是這些算法的計(jì)算 復(fù)雜度都比較高,選擇曲線的速度比較慢,不利于快速求解安全曲線。

發(fā)明內(nèi)容
鑒于以上所述現(xiàn)有技術(shù)存在的問題和不足,本發(fā)明的目的在于提出一種基于演化 計(jì)算的安全橢圓曲線快速選擇算法,該算法選擇的安全曲線基域的覆蓋范圍大,能夠抵御 常見的攻擊威脅,提高安全曲線性。
為達(dá)到上述目的,本發(fā)明采用如下方案 本發(fā)明的基于演化計(jì)算的安全橢圓曲線快速選擇算法,其具體步驟如下
(1)、利用Weil定理設(shè)計(jì)一條Koblitz型橢圓曲線,然后,采用以2為特征的子域 擴(kuò)展算法計(jì)算Koblitz型橢圓曲線的階#£(^ ),其計(jì)算方程為
當(dāng)a = 0, b = 1時, 等 )=2"+。=2"+(+ )"} =2" +1-1+擒+(-1-細(xì) =2" +(-1)"(力, 當(dāng)a = l,b = 1時,令d二V^,那么 , ):y+i《+《)-y+i一((i+^,)"+(lJ/)")<formula>formula see original document page 4</formula>
(2)、利用類似于最大最小蟻群(MAS)算法設(shè)計(jì)出適合安全曲線基域搜索的模
型,采用素數(shù)判定算法判定該點(diǎn)對應(yīng)的階是否為大素數(shù),如果該點(diǎn)對應(yīng)的階含有大素數(shù)因
子,則說明該點(diǎn)所對應(yīng)的域含有安全橢圓曲線,否則,不含有安全曲線,根據(jù)該原則挑選出
安全橢圓曲線,其具體如下 (2-l)、計(jì)算若干素數(shù)的階,并存儲; (2-2)、參數(shù)的初始化,取a = IP = 5,信息素蒸發(fā)因子P = 0.02,迭代次數(shù)大 于20次能得到比較好的結(jié)果,其中每次迭代螞蟻的數(shù)量取5 ; (2-3)、每次迭代開始,將5只螞蟻隨機(jī)放在不同點(diǎn),螞蟻每到達(dá)一個點(diǎn),采用素數(shù) 判定算法判定該點(diǎn)對應(yīng)的階是否為大素數(shù),然后按照蟻群算法模型構(gòu)建的規(guī)則選擇下一個 要到打的點(diǎn),每只螞蟻每走一步進(jìn)行一次信息素局部更新;每次迭代結(jié)束后,選擇一個最優(yōu) 螞蟻對信息素進(jìn)行一次全局更新,如果該點(diǎn)對應(yīng)的階含有大素數(shù)因子,則說明該點(diǎn)所對應(yīng) 的域含有安全橢圓曲線,否則,不含有安全曲線,直到找到對應(yīng)的基點(diǎn)的階是大素數(shù),挑選 出含有大素數(shù)階的安全橢圓曲線。 本發(fā)明的基于演化計(jì)算的安全橢圓曲線快速選擇算法與現(xiàn)有技術(shù)相比具體有的 優(yōu)點(diǎn)在于該算法選擇的安全橢圓曲線與NIST推薦的安全曲線具有相同的安全準(zhǔn)則,產(chǎn)生 的曲線能夠抵御目前常見的攻擊,理論分析及實(shí)驗(yàn)數(shù)據(jù)表明,安全曲線的最大基域超過美 國NIST公布的15條曲線中基域最高的571bit。


圖1是本發(fā)明的基于演化計(jì)算的安全橢圓曲線快速選擇算法的流程圖; 圖2是本發(fā)明中25個(0-100之間所有素數(shù))素數(shù)階的具體數(shù)據(jù)圖; 圖3是本發(fā)明中的蟻群算法模型圖; 圖4是本發(fā)明中蟻群算法迭代10次后的結(jié)果圖; 圖5是本發(fā)明中蟻群算法迭代20次后的結(jié)果圖; 圖6是本發(fā)明通過實(shí)驗(yàn)得到得m = 163的安全域各個參數(shù)、基點(diǎn)以及運(yùn)算時間圖 圖7是本發(fā)明通過實(shí)驗(yàn)得到得m = 233的安全域各個參數(shù)、基點(diǎn)以及運(yùn)算時間圖 圖8是本發(fā)明通過實(shí)驗(yàn)得到得m = 283的安全域各個參數(shù)、基點(diǎn)以及運(yùn)算時間圖 圖9是本發(fā)明通過實(shí)驗(yàn)得到得m = 409的安全域各個參數(shù)、基點(diǎn)以及運(yùn)算時間圖 圖10是本發(fā)明通過實(shí)驗(yàn)得到得m = 571的安全域各個參數(shù)、基點(diǎn)以及運(yùn)算時間 具體實(shí)施例方式
下面結(jié)合附圖對本發(fā)明的實(shí)施作進(jìn)一步詳細(xì)的說明。 本發(fā)明的基于演化計(jì)算的安全橢圓曲線快速選擇算法,如圖1所示,具體實(shí)現(xiàn)步 驟如下 (1)、利用Weil定理設(shè)計(jì)一條Koblitz型橢圓曲線,然后,采用以2為特征的子域 擴(kuò)展算法計(jì)算Koblitz型橢圓曲線的階能(《 ),其計(jì)算方程為
當(dāng)a = 0, b = 1時, #£(/p=2" +《)=2" +1—{("^+^!T +(~^—4'〕"} =2"+l- =2" +1-垂((^-1)" +(-l)"dl)T} 當(dāng)a = l,b = 1時,令^ = 7^,那么 =2" +i—(< +o=y /)" +(i 4')"} =2"+14((1+勿+(1-細(xì) (2)、利用類似于最大最小蟻群(MMAS)算法設(shè)計(jì)出適合安全曲線基域搜索的模 型,采用素數(shù)判定算法判定該點(diǎn)對應(yīng)的階是否為大素數(shù),挑選出安全橢圓曲線,其具體如 下 (2-1)、計(jì)算0-100之間素數(shù)的階,并將其存儲,如圖2所示,第一列為基域大小,第 二列為該域的階; (2-2)、參數(shù)的初始化,取a = IP = 5,注重啟發(fā)信息在探索中的作用,信息素蒸
發(fā)因子P 二0.02,在PC機(jī)中的仿真實(shí)驗(yàn)表明P取較小的數(shù)避免蟻群算法過快收斂,蟻群
算法模型如圖3所示,每一個點(diǎn)代表一個m值,也對應(yīng)相應(yīng)的階。在PC機(jī)中的仿真實(shí)驗(yàn)表
明迭代次數(shù)大于20次能得到比較好的結(jié)果,其中每次迭代螞蟻的數(shù)量取5 ; (2-3)、每次迭代開始,將5只螞蟻隨機(jī)放在不同點(diǎn),螞蟻每到達(dá)一個點(diǎn),采用素數(shù)
判定算法判定該點(diǎn)對應(yīng)的階是否為大素數(shù),如果該點(diǎn)對應(yīng)的階含有大素數(shù)因子,則說明該
點(diǎn)所對應(yīng)的域含有安全橢圓曲線,否則,不含有安全曲線,然后,如圖3所示,按照蟻群算法
模型構(gòu)建的規(guī)則選擇下一個要到達(dá)的點(diǎn)。每只螞蟻每走一步進(jìn)行一次信息素局部更新;每
次迭代結(jié)束后,選擇一個最優(yōu)螞蟻對信息素進(jìn)行一次全局更新。圖4是迭代10次后的結(jié)
果,圖5是迭代20次后的結(jié)果,其中黑色點(diǎn)表明信息素含量很高,這些點(diǎn)有很大的可能性是
大素數(shù);灰色點(diǎn)表明信息素部分揮發(fā),這些點(diǎn)有較小的可能性是大素數(shù);白色點(diǎn)表明信息
素已經(jīng)達(dá)到最小值,表明這些點(diǎn)幾乎不可能是大素數(shù)。從圖4,圖5的結(jié)果中可以看出,m =
5, 7, 13, 19, 23, 41, 83時候能夠找到對應(yīng)的基點(diǎn)的階是素數(shù),挑選出安全橢圓曲線。 本發(fā)明的基于演化計(jì)算的安全橢圓曲線快速選擇算法在PC機(jī)上,其中,硬件平
臺:CPU掘s卿ron 2800+內(nèi)存256MB硬盤80G,軟件平臺-Microsoft Visual C++2005,
初步完成了 F(22°°°)以內(nèi)Koblitz安全曲線的產(chǎn)生實(shí)驗(yàn),其實(shí)驗(yàn)結(jié)果表明 ①、該算法選擇的安全曲線基域,最大超過1900bit (PC機(jī)耗時5個小時),超過美
國NIST公布的15條曲線中基域最高的571bit ; ②、已有的163bit以上的安全曲線基域有如下面形式的Koblitz曲線Ei :y2+xy = f+^+l,701bit基域產(chǎn)生結(jié)果如下
k表示基域,n為基域?yàn)閗的階
k = 2'7Q1
同時也覆蓋了美國NIST公布的F(2脫) F(2^)5條Koblitz安全曲線,如圖6、圖 7、圖8、圖9、圖10所示,其中圖6、圖7、圖8、圖9、圖10分別是通過實(shí)驗(yàn)得到的k = 2' 163, k = 2~233, k = 2~283, k = 2~409和k = 2~571安全域的各個參數(shù)、基點(diǎn)以及運(yùn)算時間。
權(quán)利要求
一種基于演化計(jì)算的安全橢圓曲線快速選擇算法,其特征在于,該方法具體步驟如下(1)、利用Weil定理設(shè)計(jì)一條Koblitz型橢圓曲線,然后,采用以2為特征的子域擴(kuò)展算法計(jì)算Koblitz型橢圓曲線的階其計(jì)算方程為當(dāng)a=0,b=1時, <mrow><mo>#</mo><mi>E</mi><mrow> <mo>(</mo> <msub><mi>F</mi><msup> <mn>2</mn> <mi>n</mi></msup> </msub> <mo>)</mo></mrow><mo>=</mo><msup> <mn>2</mn> <mi>n</mi></msup><mo>+</mo><mn>1</mn><mo>-</mo><mrow> <mo>(</mo> <msubsup><mi>t</mi><mn>1</mn><mi>n</mi> </msubsup> <mo>+</mo> <msubsup><mi>t</mi><mn>2</mn><mi>n</mi> </msubsup> <mo>)</mo></mrow><mo>=</mo><msup> <mn>2</mn> <mi>n</mi></msup><mo>+</mo><mn>1</mn><mo>-</mo><mo>{</mo><msup> <mrow><mo>(</mo><mo>-</mo><mfrac> <mn>1</mn> <mn>2</mn></mfrac><mo>+</mo><mfrac> <msqrt><mn>7</mn> </msqrt> <mn>2</mn></mfrac><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>+</mo><msup> <mrow><mo>(</mo><mo>-</mo><mfrac> <mn>1</mn> <mn>2</mn></mfrac><mo>-</mo><mfrac> <msqrt><mn>7</mn> </msqrt> <mn>2</mn></mfrac><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>}</mo> </mrow> <mrow><mo>=</mo><msup> <mn>2</mn> <mi>n</mi></msup><mo>+</mo><mn>1</mn><mo>-</mo><mfrac> <mn>1</mn> <msup><mn>2</mn><mi>n</mi> </msup></mfrac><mo>{</mo><msup> <mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>+</mo><msqrt> <mn>7</mn></msqrt><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>+</mo><msup> <mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>-</mo><msqrt> <mn>7</mn></msqrt><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>}</mo> </mrow> <mrow><mo>=</mo><msup> <mn>2</mn> <mi>n</mi></msup><mo>+</mo><mn>1</mn><mo>-</mo><mfrac> <mn>1</mn> <msup><mn>2</mn><mi>n</mi> </msup></mfrac><mo>{</mo><msup> <mrow><mo>(</mo><msqrt> <mn>7</mn></msqrt><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo> </mrow> <mi>n</mi></msup><mo>+</mo><msup> <mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo> </mrow> <mi>n</mi></msup><msup> <mrow><mo>(</mo><msqrt> <mn>7</mn></msqrt><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo> </mrow> <mi>n</mi></msup><mo>}</mo> </mrow>當(dāng)a=1,b=1時,令那么 <mrow><mo>#</mo><mi>E</mi><mrow> <mo>(</mo> <msub><mi>F</mi><msup> <mn>2</mn> <mi>n</mi></msup> </msub> <mo>)</mo></mrow><mo>=</mo><msup> <mn>2</mn> <mi>n</mi></msup><mo>+</mo><mn>1</mn><mo>-</mo><mrow> <mo>(</mo> <msubsup><mi>t</mi><mn>1</mn><mi>n</mi> </msubsup> <mo>+</mo> <msubsup><mi>t</mi><mn>2</mn><mi>n</mi> </msubsup> <mo>)</mo></mrow><mo>=</mo><msup> <mn>2</mn> <mi>n</mi></msup><mo>+</mo><mn>1</mn><mo>-</mo><mo>{</mo><msup> <mrow><mo>(</mo><mfrac> <mn>1</mn> <mn>2</mn></mfrac><mo>+</mo><mfrac> <msqrt><mn>7</mn> </msqrt> <mn>2</mn></mfrac><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>+</mo><msup> <mrow><mo>(</mo><mfrac> <mn>1</mn> <mn>2</mn></mfrac><mo>-</mo><mfrac> <msqrt><mn>7</mn> </msqrt> <mn>2</mn></mfrac><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>}</mo> </mrow> <mrow><mo>=</mo><msup> <mn>2</mn> <mi>n</mi></msup><mo>+</mo><mn>1</mn><mo>-</mo><mfrac> <mn>1</mn> <msup><mn>2</mn><mi>n</mi> </msup></mfrac><mo>{</mo><msup> <mrow><mo>(</mo><mn>1</mn><mo>+</mo><msqrt> <mn>7</mn></msqrt><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>+</mo><msup> <mrow><mo>(</mo><mn>1</mn><mo>-</mo><msqrt> <mn>7</mn></msqrt><mi>i</mi><mo>)</mo> </mrow> <mi>n</mi></msup><mo>}</mo> </mrow>(2)、利用類似于最大最小蟻群(MMAS)算法設(shè)計(jì)出適合安全曲線基域搜索的模型,采用素數(shù)判定算法判定該點(diǎn)對應(yīng)的階是否為大素數(shù),挑選出安全橢圓曲線,其具體如下(2-1)、計(jì)算若干素數(shù)的階,并存儲;(2-2)、參數(shù)的初始化,取α=1β=5,信息素蒸發(fā)因子ρ=0.02,迭代次數(shù)大于20次能得到比較好的結(jié)果,其中每次迭代螞蟻的數(shù)量取5;(2-3)、每次迭代開始,將5只螞蟻隨機(jī)放在不同點(diǎn),螞蟻每到達(dá)一個點(diǎn),采用素數(shù)判定算法判定該點(diǎn)對應(yīng)的階是否為大素數(shù),然后按照蟻群算法模型,構(gòu)建的規(guī)則選擇下一個要到達(dá)的點(diǎn),每只螞蟻每走一步進(jìn)行一次信息素局部更新;每次迭代結(jié)束后,選擇一個最優(yōu)螞蟻對信息素進(jìn)行一次全局更新,如果該點(diǎn)對應(yīng)的階含有大素數(shù)因子,則說明該點(diǎn)所對應(yīng)的域含有安全橢圓曲線,否則,不含有安全曲線,直到找到對應(yīng)的基點(diǎn)的階是大素數(shù),挑選出含有大素數(shù)階的安全橢圓曲線。F2009102005047C00011.tif,F2009102005047C00015.tif
全文摘要
本發(fā)明的公開了一種基于演化計(jì)算的安全橢圓曲線快速選擇算法,該算法包括步驟如下(1)利用Weil定理設(shè)計(jì)一條Koblitz型橢圓曲線,然后,采用以2為特征的子域擴(kuò)展算法計(jì)算Montgomery型橢圓曲線的階;(2)利用類似于最大最小蟻群(MMAS)算法設(shè)計(jì)出適合安全曲線基域搜索的模型,采用素數(shù)判定算法判定該點(diǎn)對應(yīng)的階是否為大素數(shù),挑選出安全橢圓曲線。本發(fā)明與現(xiàn)有技術(shù)相比具有的優(yōu)點(diǎn)在于該算法選擇的安全橢圓曲線與NIST推薦的安全曲線具有相同的安全準(zhǔn)則,產(chǎn)生的曲線能夠抵御目前常見的攻擊,理論分析及實(shí)驗(yàn)數(shù)據(jù)表明,安全曲線的最大基域超過目前NIST公布的15條曲線中基域最高的571bit。
文檔編號G06N3/00GK101714074SQ20091020050
公開日2010年5月26日 申請日期2009年12月22日 優(yōu)先權(quán)日2009年12月22日
發(fā)明者劉禮黎, 張煥國, 時向勇, 朱美麗, 王潮 申請人:上海大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1