本發(fā)明涉及一種安全密碼技術(shù)中選擇雙線性對的橢圓曲線方法。
背景技術(shù):
雙線性對作為標(biāo)識(shí)密碼技術(shù)中的關(guān)鍵操作在過去幾年引起了研究人員的廣泛興趣。雙線性對定義如下:設(shè)
a)雙線性性:對任意的
b)非退化性:
c)可計(jì)算性:對任意的
現(xiàn)有的雙線性對定義在橢圓曲線點(diǎn)群上,主要可適用的有:weil對、tate對、ate對、優(yōu)化的ate對,r-ate對等。這些雙線性對的計(jì)算都需要選擇合適的橢圓曲線參數(shù)e/fq:y2=x3+ax3+bx2+c,以便在達(dá)到需要的安全級(jí)別的同時(shí)實(shí)現(xiàn)雙線性對的快速計(jì)算。本發(fā)明就是在指定安全級(jí)別后,通過選擇合適的橢圓曲線參數(shù),以便利用各種優(yōu)化能力實(shí)現(xiàn)高效的雙線性對計(jì)算,進(jìn)而高效實(shí)現(xiàn)基于雙線對的密碼系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種安全密碼技術(shù)中選擇雙線性對的橢圓曲線方法,以解決現(xiàn)有安全密碼技術(shù)中選擇雙線性對的橢圓曲線方法在達(dá)到需要的安全級(jí)別的同時(shí)難以選擇到優(yōu)化的橢圓曲線的技術(shù)問題。
為了解決以上技術(shù)問題,本發(fā)明提供的技術(shù)方案是:
一種安全密碼技術(shù)中選擇雙線性對的橢圓曲線方法,其特征是:根據(jù)曲線類型,類rsa安全級(jí)別,選擇出橢圓曲線。
根據(jù)所述曲線類型,類rsa安全級(jí)別的同時(shí)還根據(jù)n有無特殊安全性。
當(dāng)曲線類型為超奇異橢圓曲線,類rsa-1536安全級(jí)別時(shí),選擇的橢圓曲線為:
基域fp的p為768位的素?cái)?shù)p=0xc18000000300000000000000000000000000000000000031800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d343400003468000000000000000000000000000000000360b3
曲線e/fp:y2=x3+x
0x810000000200000000000000000000000000000000000021。
當(dāng)曲線類型為超奇異橢圓曲線,類rsa-2048安全級(jí)別時(shí),選擇的橢圓曲線為:
基域fp的p為1024位的素?cái)?shù)p
p=0xc000000c000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a000041a000000000000000000000000000000000000000000000000000000833
曲線e/fp:y2=x3+x
n=0x0000800000000000000000000000000000000000000000000000000000001。
當(dāng)曲線類型為超奇異橢圓曲線,類rsa-3072安全級(jí)別時(shí),選擇的橢圓曲線為:
基域fp的p為1536位的素?cái)?shù)
p=0xc00000000000000000000000000000000000000000000000000000000000000000000061800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000000000000000000000000000022a87
曲線e/fp:y2=x3+x
n=0x800000000000000000000000000000000000000000000000000000000000000000000041。
當(dāng)曲線類型為超奇異橢圓曲線時(shí),類rsa-4096安全級(jí)別,選擇的橢圓曲線為:
基域fp的p為2048位的素?cái)?shù)
p=0xc0000000000000000000000000000000000000000000000000000006000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000001200000000000000000000000000047
曲線e/fp:y2=x3+x
n=0x800000000000000000000000000000000000000000000000000000040000000000000000000000000001。
當(dāng)曲線類型為bn橢圓曲線,類rsa-3072安全級(jí)別時(shí),選擇的橢圓曲線為:
基域fp的p為256位的素?cái)?shù)
p=0xb621a5b26bee70c85697daac6cbe08f08c2ad77f018fd1644fd7369ac016aed5
曲線e/fp:y2=x3+2
n=0xb621a5b26bee70c85697daac6cbe08efb43cd4de899450653a76e285c016aa3d。
當(dāng)曲線類型為bls12橢圓曲線,更高安全級(jí)別時(shí),選擇的橢圓曲線為:基域fp的p為455位的素?cái)?shù)
p=0x55555955557955572aa00e0f95b49203003f665e3a5b1d56234bd93954fcb314b8b3db9994ace86d1ba6c589556b2aa956aaa00001800002ab
曲線e/fp:y2=x3+10
n=0x10000080000380002e0000f10004f00025e000750001d1000a00000400001c00007ffffc00001。
當(dāng)曲線類型為bn橢圓曲線,類rsa-4096安全級(jí)別,n無特殊安全性要求時(shí),選擇的橢圓曲線為:
基域fp的p為382位的素?cái)?shù)
p=0x24000000000000000000068730000000000000000071a45fc0000000000000036f3f21a380000000000009f704970e17
曲線e/fp:y2=x3+5
n=24000000000000000000068730000000000000000071a45f60000000000000036f3f18ee80000000000009f704648371。
當(dāng)曲線類型為bn橢圓曲線,類rsa-4096安全級(jí)別,n有特殊安全性要求時(shí),選擇的橢圓曲線為:
基域fp的p為382位的素?cái)?shù)
p=0x24000000000000000001681dd00000000000000546dfa142c00000000008cc2f2a4f07648000000580120be4628c357f
曲線e/fp:y2=x3+3
n=0x24000000000000000001681dd00000000000000546dfa142600000000008cc2f2a4d273d8000000580120be20a2ab189。
當(dāng)曲線類型為bls12橢圓曲線,類rsa-4096安全級(jí)別,n無特殊安全性要求時(shí),選擇的橢圓曲線為:
基域fp的p為440位的素?cái)?shù)
p=0xf3000798001b36003a4a00548d0059be004989558519556dbd000962000258aaaab555550855552ffffff7fffffe555553ffffffaaaaab
曲線e/fp:y2=x3+9
n=0x510001b00003cc0004b0000376000190000062fffff7ffffeafffff7ffffff000000000001。
當(dāng)曲線類型為bls12橢圓曲線,類rsa-4096安全級(jí)別,n有特殊安全性要求時(shí),選擇的橢圓曲線為:
基域fp的p為442位的素?cái)?shù)
p=0x264c1513ae55843e6fc9547899e959c053544ffb3cc25f66381c3199e19eb466f5a79fb8d5b01bab655154b0000012ab555aa9ffffffaab
曲線e/fp:y2=x3+7
n=0x960fff548000498ab7f1f6d00102a0497fbfc9c0000d00dffeff5000002000ffffff000001。
在采用了上述技術(shù)方案后,根據(jù)曲線類型,類rsa安全級(jí)別,選擇出橢圓曲線。在達(dá)到需要的安全級(jí)別的同時(shí)通過利用曲線參數(shù)的選擇使得各種雙線性對計(jì)算優(yōu)化技巧得以利用,從而實(shí)現(xiàn)雙線性對的快速計(jì)算,進(jìn)而高效實(shí)現(xiàn)基于雙線對的密碼系統(tǒng)。解決了現(xiàn)有安全密碼技術(shù)中選擇雙線性對的橢圓曲線方法在達(dá)到需要的安全級(jí)別的同時(shí)難以選擇到優(yōu)化的橢圓曲線的技術(shù)問題。
具體實(shí)施方式
一種安全密碼技術(shù)中選擇雙線性對的橢圓曲線方法,依據(jù)以下三個(gè)基本原理,1)使用定義于素域fp上的曲線e/fp;2)參數(shù)選擇使得雙線性對計(jì)算過程中的miller循環(huán)盡可能的短;3)參數(shù)選擇使得雙線性對計(jì)算過程中的冪乘運(yùn)算量盡可能地小,分兩種情況選擇橢圓曲線:
一、根據(jù)曲線類型和類rsa安全級(jí)別選擇橢圓曲線,具體為:
1、對于曲線類型為超奇異橢圓曲線,類rsa-1536安全級(jí)別,則輸出:
基域fp的p為768位的素?cái)?shù)
p=0xc18000000300000000000000000000000000000000000031800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d343400003468000000000000000000000000000000000360b3
曲線e/fp:y2=x3+x
0x810000000200000000000000000000000000000000000021
對于密碼算法中需要計(jì)算的雙線性對,采用tate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用超奇異曲線y2=x3+x,并使得
2、對于曲線類型為超奇異橢圓曲線,類rsa-2048安全級(jí)別,則輸出:基域fp的p為1024位的素?cái)?shù)pp=0xc000000c000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a000041a000000000000000000000000000000000000000000000000000000833
曲線e/fp:y2=x3+x
對于密碼算法中需要計(jì)算的雙線性對,采用tate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用超奇異曲線y2=x3+x,并使得
3、對于曲線類型為超奇異橢圓曲線,類rsa-3072安全級(jí)別,則輸出:基域fp的p為1536位的素?cái)?shù)p=0xc00000000000000000000000000000000000000000000000000000000000000000000061800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000000000000000000000000000022a87
曲線e/fp:y2=x3+x
對于密碼算法中需要計(jì)算的雙線性對,采用tate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用超奇異曲線y2=x3+x,并使得
4、對于曲線類型為超奇異橢圓曲線,類rsa-4096安全級(jí)別,則輸出:基域fp的p為2048位的素?cái)?shù)p=0xc0000000000000000000000000000000000000000000000000000006000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000001200000000000000000000000000047
曲線e/fp:y2=x3+x
對于密碼算法中需要計(jì)算的雙線性對,采用tate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用超奇異曲線y2=x3+x,并使得
5、對于曲線類型為bn橢圓曲線,類rsa-3072安全級(jí)別,則輸出:基域fp的p為256位的素?cái)?shù)p=0xb621a5b26bee70c85697daac6cbe08f08c2ad77f018fd1644fd7369ac016aed5
曲線e/fp:y2=x3+2
n=0xb621a5b26bee70c85697daac6cbe08efb43cd4de899450653a76e285c016aa3d
對于密碼算法中需要計(jì)算的雙線性對,采用優(yōu)化的ate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用bn曲線y2=x3+2,并使得
6、對于曲線類型為bls12橢圓曲線,更高安全級(jí)別
基域fp的p為455位的素?cái)?shù)
p=0x55555955557955572aa00e0f95b49203003f665e3a5b1d56234bd93954fcb314b8b3db9994ace86d1ba6c589556b2aa956aaa00001800002ab
曲線e/fp:y2=x3+10
n=0x10000080000380002e0000f10004f00025e000750001d1000a00000400001c00007ffffc00001
對于密碼算法中需要計(jì)算的雙線性對,采用優(yōu)化的ate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用bls12曲線y2=x3+10,計(jì)算優(yōu)化ate對的bkls算法的miller循環(huán)中miller加運(yùn)算只執(zhí)行4次。在ate對的最后冪乘運(yùn)算中基本循環(huán)外只需多12次乘法。
二、根據(jù)所述曲線類型、類rsa安全級(jí)別和n有無特殊安全性選擇橢圓
曲線,具體為:
1、對于曲線類型為bn橢圓曲線,類rsa-4096安全級(jí)別,n無特殊安全性要求則輸出:
基域fp的p為382位的素?cái)?shù)
p=0x24000000000000000000068730000000000000000071a45fc0000000000000036f3f21a380000000000009f704970e17
曲線e/fp:y2=x3+5
n=24000000000000000000068730000000000000000071a45f60000000000000036f3f18ee80000000000009f704648371
對于密碼算法中需要計(jì)算的雙線性對,采用優(yōu)化的ate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用bn曲線y2=x3+5,并使得
2、對于曲線類型為bn橢圓曲線,類rsa-4096安全級(jí)別,n有特殊安全性要求則輸出:
基域fp的p為382位的素?cái)?shù)
p=0x24000000000000000001681dd00000000000000546dfa142c00000000008cc2f2a4f07648000000580120be4628c357f
曲線e/fp:y2=x3+3
對于密碼算法中需要計(jì)算的雙線性對,采用優(yōu)化的ate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用bn曲線y2=x3+3,并使得
3、對于曲線類型為bls12橢圓曲線,類rsa-4096安全級(jí)別,n無特殊安全性要求則輸出:
基域fp的p為440位的素?cái)?shù)
p=0xf3000798001b36003a4a00548d0059be004989558519556dbd000962000258aaaab555550855552ffffff7fffffe555553ffffffaaaaab
曲線e/fp:y2=x3+9
n=0x510001b00003cc0004b0000376000190000062fffff7ffffeafffff7ffffff000000000001
對于密碼算法中需要計(jì)算的雙線性對,采用優(yōu)化的ate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用bls12曲線y2=x3+9,并使得
4、對于曲線類型為bls12橢圓曲線,類rsa-4096安全級(jí)別,n有特殊安全性要求則輸出:
基域fp的p為442位的素?cái)?shù)
p=0x264c1513ae55843e6fc9547899e959c053544ffb3cc25f66381c3199e19eb466f5a79fb8d5b01bab655154b0000012ab555aa9ffffffaab
曲線e/fp:y2=x3+7
n=0x960fff548000498ab7f1f6d00102a0497fbfc9c0000d00dffeff5000002000ffffff000001
對于密碼算法中需要計(jì)算的雙線性對,采用優(yōu)化的ate對按照bkls算法進(jìn)行計(jì)算。本方法選擇的參數(shù)使用bls12曲線y2=x3+7,并使得
在采用了上述技術(shù)方案后,根據(jù)曲線類型,類rsa安全級(jí)別,選擇出橢圓曲線。在達(dá)到需要的安全級(jí)別的同時(shí)通過利用曲線參數(shù)的選擇使得各種雙線性對計(jì)算優(yōu)化技巧得以利用,尤其是具體選擇出的10種橢圓曲線非常優(yōu)化,從而實(shí)現(xiàn)雙線性對的快速計(jì)算,進(jìn)而高效實(shí)現(xiàn)基于雙線對的密碼系統(tǒng)。解決了現(xiàn)有安全密碼技術(shù)中選擇雙線性對的橢圓曲線方法在達(dá)到需要的安全級(jí)別的同時(shí)難以選擇到優(yōu)化的橢圓曲線的技術(shù)問題。