当前位置: 首页 > 专利查询>上海大学专利>正文

基于演化计算的安全椭圆曲线快速选择算法制造技术

技术编号:4182178 阅读:306 留言:0更新日期:2012-04-11 18:40
本发明专利技术的公开了一种基于演化计算的安全椭圆曲线快速选择算法,该算法包括步骤如下:(1)利用Weil定理设计一条Koblitz型椭圆曲线,然后,采用以2为特征的子域扩展算法计算Montgomery型椭圆曲线的阶;(2)利用类似于最大最小蚁群(MMAS)算法设计出适合安全曲线基域搜索的模型,采用素数判定算法判定该点对应的阶是否为大素数,挑选出安全椭圆曲线。本发明专利技术与现有技术相比具有的优点在于:该算法选择的安全椭圆曲线与NIST推荐的安全曲线具有相同的安全准则,产生的曲线能够抵御目前常见的攻击,理论分析及实验数据表明,安全曲线的最大基域超过目前NIST公布的15条曲线中基域最高的571bit。

【技术实现步骤摘要】

本专利技术属于信息安全保护
,涉及的是一种基于演化计算的安全椭圆曲线快速选择算法
技术介绍
1985年Neal Koblitz和Victor Mille提出了椭圆曲线密码体制(ECC),其安全 性是建立在椭圆曲线离散对数计算困难性的基础之上,具有安全性高、占用带宽小、计算复 杂度高等优点,近二十年来已成为国际密码学的研究热点。 ECC算法的标准化,有取代RSA在公钥密码霸主地位的趋势,且ECC已经逐渐被包 含到IEEE、ANSI、ISO和NIST等发布的标准中。特别是美国NIST推荐的15条曲线也成为 目前工程应用中常选用的椭圆曲线。但是选择安全曲线是一个难题,现有的算法主要有两 种复乘法(CM)和随机选择法。对于CM方法,它是根据给定的阶来选取符合此阶的ECC曲 线,实现的速度相对较快,但是这种算法的缺陷是产生的曲线具有某种特定的结构特征,存 在潜在的安全威胁。因此,一般都利用随机选择法来选择曲线。随机选取的椭圆曲线的安 全性大多数依赖于曲线的阶的大小,阶越大,计算复杂度就越高,安全性越强, 一般阶只要 含有大于2160的素因子即可以认为是安全的,因此,如何求取曲线的阶是选择安全曲线的 一个重要的问题。求阶算法有以下几种Schoof's algorithm、SEA(Schoof-Elkies-Atkin) 算法、Satoh算法、Fouquet算法、SST算法、AGM算法和MSST算法等,但是这些算法的计算 复杂度都比较高,选择曲线的速度比较慢,不利于快速求解安全曲线。
技术实现思路
鉴于以上所述现有技术存在的问题和不足,本专利技术的目的在于提出一种基于演化 计算的安全椭圆曲线快速选择算法,该算法选择的安全曲线基域的覆盖范围大,能够抵御 常见的攻击威胁,提高安全曲线性。 为达到上述目的,本专利技术采用如下方案 本专利技术的基于演化计算的安全椭圆曲线快速选择算法,其具体步骤如下 (1)、利用Weil定理设计一条Koblitz型椭圆曲线,然后,采用以2为特征的子域 扩展算法计算Koblitz型椭圆曲线的阶#£(^ ),其计算方程为 当a = 0, b = 1时, 等 )=2"+。=2"+(+ )"} =2" +1-1+擒+(-1-细 =2" +(-1)"(力, 当a = l,b = 1时,令d二V^,那么 , ):y+i《+《)-y+i一((i+^,)"+(lJ/)")<formula>formula see original document page 4</formula> (2)、利用类似于最大最小蚁群(MAS)算法设计出适合安全曲线基域搜索的模型,采用素数判定算法判定该点对应的阶是否为大素数,如果该点对应的阶含有大素数因子,则说明该点所对应的域含有安全椭圆曲线,否则,不含有安全曲线,根据该原则挑选出安全椭圆曲线,其具体如下 (2-l)、计算若干素数的阶,并存储; (2-2)、参数的初始化,取a = IP = 5,信息素蒸发因子P = 0.02,迭代次数大 于20次能得到比较好的结果,其中每次迭代蚂蚁的数量取5 ; (2-3)、每次迭代开始,将5只蚂蚁随机放在不同点,蚂蚁每到达一个点,采用素数 判定算法判定该点对应的阶是否为大素数,然后按照蚁群算法模型构建的规则选择下一个 要到打的点,每只蚂蚁每走一步进行一次信息素局部更新;每次迭代结束后,选择一个最优 蚂蚁对信息素进行一次全局更新,如果该点对应的阶含有大素数因子,则说明该点所对应 的域含有安全椭圆曲线,否则,不含有安全曲线,直到找到对应的基点的阶是大素数,挑选 出含有大素数阶的安全椭圆曲线。 本专利技术的基于演化计算的安全椭圆曲线快速选择算法与现有技术相比具体有的 优点在于该算法选择的安全椭圆曲线与NIST推荐的安全曲线具有相同的安全准则,产生 的曲线能够抵御目前常见的攻击,理论分析及实验数据表明,安全曲线的最大基域超过美 国NIST公布的15条曲线中基域最高的571bit。附图说明 图1是本专利技术的基于演化计算的安全椭圆曲线快速选择算法的流程图; 图2是本专利技术中25个(0-100之间所有素数)素数阶的具体数据图; 图3是本专利技术中的蚁群算法模型图; 图4是本专利技术中蚁群算法迭代10次后的结果图; 图5是本专利技术中蚁群算法迭代20次后的结果图; 图6是本专利技术通过实验得到得m = 163的安全域各个参数、基点以及运算时间图 图7是本专利技术通过实验得到得m = 233的安全域各个参数、基点以及运算时间图 图8是本专利技术通过实验得到得m = 283的安全域各个参数、基点以及运算时间图 图9是本专利技术通过实验得到得m = 409的安全域各个参数、基点以及运算时间图 图10是本专利技术通过实验得到得m = 571的安全域各个参数、基点以及运算时间 具体实施例方式下面结合附图对本专利技术的实施作进一步详细的说明。 本专利技术的基于演化计算的安全椭圆曲线快速选择算法,如图1所示,具体实现步 骤如下 (1)、利用Weil定理设计一条Koblitz型椭圆曲线,然后,采用以2为特征的子域 扩展算法计算Koblitz型椭圆曲线的阶能(《 ),其计算方程为 当a = 0, b = 1时, #£(/p=2" +《)=2" +1—{("^+^!T +(~^—4'〕"} =2"+l- =2" +1-垂((^-1)" +(-l)"dl)T} 当a = l,b = 1时,令^ = 7^,那么 =2" +i—(< +o=y /)" +(i 4')"} =2"+14((1+勿+(1-细 (2)、利用类似于最大最小蚁群(MMAS)算法设计出适合安全曲线基域搜索的模 型,采用素数判定算法判定该点对应的阶是否为大素数,挑选出安全椭圆曲线,其具体如 下 (2-1)、计算0-100之间素数的阶,并将其存储,如图2所示,第一列为基域大小,第 二列为该域的阶; (2-2)、参数的初始化,取a = IP = 5,注重启发信息在探索中的作用,信息素蒸发因子P 二0.02,在PC机中的仿真实验表明P取较小的数避免蚁群算法过快收敛,蚁群算法模型如图3所示,每一个点代表一个m值,也对应相应的阶。在PC机中的仿真实验表明迭代次数大于20次能得到比较好的结果,其中每次迭代蚂蚁的数量取5 ; (2-3)、每次迭代开始,将5只蚂蚁随机放在不同点,蚂蚁每到达一个点,采用素数判定算法判定该点对应的阶是否为大素数,如果该点对应的阶含有大素数因子,则说明该点所对应的域含有安全椭圆曲线,否则,不含有安全曲线,然后,如图3所示,按照蚁群算法模型构建的规则选择下一个要到达的点。每只蚂蚁每走一步进行一次信息素局部更新;每次迭代结束后,选择一个最优蚂蚁对信息素进行一次全局更新。图4是迭代10次后的结果,图5是迭代20次后的结果,其中黑色点表明信息素含量很高,这些点有很大的可能性是大素数;灰色点表明信息素部分挥发,这些点有较小的可能性是大素数;白色点表明信息素已经达到最小值,表明这些点几乎不可能是大素数。从图4,图5的结果中可以看出,m =5, 7, 13, 19, 23, 41, 83时候能够找到对应的基点的阶是素数,挑选出安全椭圆曲线。 本专利技术的基于演化计算的安全椭圆曲线快速选择算法在PC机上,其中,硬件本文档来自技高网...

【技术保护点】
一种基于演化计算的安全椭圆曲线快速选择算法,其特征在于,该方法具体步骤如下:(1)、利用Weil定理设计一条Koblitz型椭圆曲线,然后,采用以2为特征的子域扩展算法计算Koblitz型椭圆曲线的阶#E(F↓[2↑[n]]),其计算方程为:当a=0,b=1时,#E(F↓[2↑[n]])=2↑[n]+1-(t↓[1]↑[n]+t↓[2]↑[n])=2↑[n]+1-{(-1/2+*/2i)↑[n]+(-1/2-*/2i)↑[n]}=2↑[n]+1-1/2↑[n]{(-1+*i)↑[n]+(-1-*i)↑[n]}=2↑[n]+1-1/2↑[n]{(*i-1)↑[n]+(-1)↑[n](*i+1)↑[n]}当a=1,b=1时,令d=*i,那么#E(F↓[2↑[n]])=2↑[n]+1-(t↓[1]↑[n]+t↓[2]↑[n])=2↑[n]+1-{(1/2+*/2i)↑[n]+(1/2-*/2i)↑[n]}=2↑[n]+1-1/2↑[n]{(1+*i)↑[n]+(1-*i)↑[n]}(2)、利用类似于最大最小蚁群(MMAS)算法设计出适合安全曲线基域搜索的模型,采用素数判定算法判定该点对应的阶是否为大素数,挑选出安全椭圆曲线,其具体如下:(2-1)、计算若干素数的阶,并存储;(2-2)、参数的初始化,取α=1β=5,信息素蒸发因子ρ=0.02,迭代次数大于20次能得到比较好的结果,其中每次迭代蚂蚁的数量取5;(2-3)、每次迭代开始,将5只蚂蚁随机放在不同点,蚂蚁每到达一个点,采用素数判定算法判定该点对应的阶是否为大素数,然后按照蚁群算法模型,构建的规则选择下一个要到达的点,每只蚂蚁每走一步进行一次信息素局部更新;每次迭代结束后,选择一个最优蚂蚁对信息素进行一次全局更新,如果该点对应的阶含有大素数因子,则说明该点所对应的域含有安全椭圆曲线,否则,不含有安全曲线,直到找到对应的基点的阶是大素数,挑选出含有大素数阶的安全椭圆曲线。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张焕国王潮时向勇朱美丽刘礼黎
申请(专利权)人:上海大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利