适用双线性对密码芯片的协处理器实现方法技术

技术编号:14658485 阅读:86 留言:0更新日期:2017-02-17 00:15
本发明专利技术公开了一种适用于双线性对密码芯片的协处理器实现方法,包括如下步骤:输入:s=29+28+26+24+23+1,p(t)=36t4+36t3+24t2+6t+1;输出:(a(t)·b(t)+c(t)·d(t))·t-5mod p(t);步骤1.S=0;步骤2.从i=0到4循环;步骤2.1.q=-(S0+ai·b0+ci·d0);步骤2.2.S=(S+ai·b(t)+ci·d(t)+q·p(t))/t;步骤3.从i=0到3循环;步骤3.1.μ=Sidiv 2m,γ=Simod 2m-s·μ;步骤3.2.Si+1=Si+1+μ,Si=γ;步骤4.输出S。本发明专利技术能够加快双线性对的运算,提高运算速度,计算效率更高。

【技术实现步骤摘要】

本专利技术涉及密码学领域,特别是涉及一种适用双线性对密码芯片的协处理器实现方法
技术介绍
在现实生活中,应用需求往往对密码芯片提出了很高的要求,比如要求在几毫秒内完成整个密码运算。为了达到这个要求,研究人员在密码芯片中设计了专用的硬件来加速密码的运算速度,这种专用硬件通常称为协处理器。双线性对广泛应用于三方密钥协商、短签名、基于身份的密码等众多领域。双线性对是一个映射,它把椭圆曲线E(GF(p))上的两个点映射到有限域GF(pk)中的一个元素。在安全级别为128比特时,目前普遍认为BN曲线是一类理想的曲线,用于实现双线性对。BN曲线定义为:E(GF(p)):y2=x3+b,其中b≠0,而且素数p可以表示成多项式形式p(t)=36t4+36t3+24t2+6t+1,嵌入次数k=12。在计算BN曲线上的双线性对时,需要在有限扩域GF(p12)中运算。由于GF(p12)的运算相对比较复杂,研究人员把它们化简成GF(p2)中的运算。复旦大学的韩军教授在2015年针对GF(p2)设计了一个模乘。其思想是把GF(p2)表示成GF(p)[x]/(i2+1),于是GF(p2)中的元素A,B可以表示成A=a0+a1i,B=b0+b1i。这样GF(p2)中的模乘A*Bmodp≡(a0+a1i)(b0+b1i)≡(a0b0+(-a1)b1)+(a0b1+a1b0)imodp=[ψ(a0,b0,-a1,b1)+ψ(a0,b1,a1,b0)i]modp这里ψ是一个函数,满足ψ(a,b,c,d)=(a·b+c·d)modp。韩军教授给出了如下计算(a·b+c·d)·2-rnmodp的算法,并实现在协处理器中。输入:0≤A,B,C,D≤-2p,β2*p≤2r(n-1),P1′=(1+P1)2-r,P2′=(1+P2)2-r,其中P1=((-p)mod2r)p,P2=((-p)mod22r)p,ai,ci∈(0,1,…,2r-1本文档来自技高网...
适用双线性对密码芯片的协处理器实现方法

【技术保护点】
一种适用于双线性对密码芯片的协处理器实现方法,其特征在于:包括如下步骤:输入:a(t)=Σi=04ajti,b(t)=Σi=04biti,c(t)=Σi=04citi,]]>s=29+28+26+24+23+1,p(t)=36t4+36t3+24t2+6t+1;输出:(a(t)·b(t)+c(t)·d(t))·t‑5mod p(t);步骤1.S=0;步骤2.从i=0到4循环;步骤2.1.q=‑(S0+ai·b0+ci·d0);步骤2.2.S=(S+ai·b(t)+ci·d(t)+q·p(t))/t;步骤3.从i=0到3循环;步骤3.1.μ=Sidiv2m,γ=Simod2m‑s·μ;步骤3.2.Si+1=Si+1+μ,Si=γ;步骤4.输出S。

【技术特征摘要】
1.一种适用于双线性对密码芯片的协处理器实现方法,其特征在于:包括如下步骤:输入:a(t)=Σi=04ajti,b(t)=Σi=04biti,c(t)=Σi=04citi,]]>s=29+28+26+24+23+1,p(t)=36t4+36t3+24t2+6t+1;输出:(a(t)·b(t)+c(t)·d(t))·t-5modp(t);步骤1.S=0;步骤2.从i=0到4循环;步骤2.1.q=-(S0+ai·b0+ci·d...

【专利技术属性】
技术研发人员:顾海华徐云秀
申请(专利权)人:上海华虹集成电路有限责任公司
类型:发明
国别省市:上海;31

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

1