发明名称 基于有限域GF(2<SUP>m</SUP></SUP>)的圆锥曲线公钥加密方法和装置</SUP>
摘要 一种基于有限域GF(2<SUP>m</SUP>)的圆锥曲线公钥加密方法和装置,属于信息安全领域。目前,对圆锥曲线密码学的研究成果都是以有限域GF(p)上的圆锥曲线为基础的算法,没有任何装置出现。本发明提出了基于有限域GF(2<SUP>m</SUP>)的圆锥曲线C(GF(2<SUP>m</SUP>)):y<SUP>2</SUP>+xy≡ax<SUP>2</SUP>+bxmodf(x),a,b∈GF(2<SUP>m</SUP>),并通过ElGamal公钥加密方案实现基于圆锥曲线上的加密、解密算法,及此算法在硬件芯片上实现的装置。本发明把有限域GF(p)上的圆锥曲线公钥密码算法推广到有限域GF(2<SUP>m</SUP>)上,并利用硬件对运算进行处理和实现,显著提高了圆锥曲线公钥密码算法的运算速度,大大拓展了圆锥曲线公钥密码算法在实际中的应用。
申请公布号 CN1920841A 申请公布日期 2007.02.28
申请号 CN200610112465.1 申请日期 2006.08.21
申请人 北京工业大学 发明人 蔡永泉;赵磊;靳岩岩;肖创柏
分类号 G06F21/00(2006.01);G06F17/00(2006.01) 主分类号 G06F21/00(2006.01)
代理机构 北京思海天达知识产权代理有限公司 代理人 刘萍
主权项 1.一种基于有限域GF(2<sup>m</sup>)的圆锥曲线公钥加密方法,其特征在于,它包括 以下步骤: 1)将有限域GF(2<sup>m</sup>)上的圆锥曲线C(GF(2<sup>m</sup>))固化在FlashRom中,其中圆 锥曲线C(GF(2<sup>m</sup>))的定义为C(GF(2<sup>m</sup>)):y<sup>2</sup>+xy≡ax<sup>2</sup>+bxmodf(x),a,b∈GF(2<sup>m</sup>)为圆 锥曲线上的参数,且其中f(x)是构造有限域GF(2<sup>m</sup>)的既约多项式,次数m= deg(f)为域长度,引入参数t,其几何解释为原点(0,0)和点P=p(t)∈C(GF(2<sup>m</sup>)) 所确定直线的斜率,那么,有限域GF(2m)上圆锥曲线的全部点表示为: C(GF(2<sup>m</sup>)):P={p(t)=(x,y)=(b(t<sup>2</sup>+t+a)<sup>-1</sup>,bt(t<sup>2</sup>+t+a)<sup>-1</sup>)|t∈GF(2<sup>m</sup>),t<sup>2</sup>+t≠a}∪{p(∞)=(0,0)}其中,(t2 +t+a)-1为(t2+t+a)在有限域GF(2<sup>m</sup>)上的乘法逆元,它可利用扩展欧几里得算法 求解; 将圆锥曲线C(GF(2<sup>m</sup>))上的加法运算规则、加法逆运算规则、编码算法规 则、解码算法规则固化在圆锥曲线基本运算单元CCCB中,其中圆锥曲线 C(GF(2<sup>m</sup>))上加法运算的定义为:①对于P=p(t)∈C(GF(2<sup>m</sup>)),满足p(t)p(∞) =p(∞)p(t)=p(t);②设P1=p(t1),P2=p(t2),P3=p(t3)∈C(GF(2<sup>m</sup>))且t1,t2≠ ∞,定义P1P2=P3,即p(t1)p(t2)=p(t3),其中 <img file="A2006101124650002C1.GIF" wi="1099" he="130" />圆锥曲线C(GF(2<sup>m</sup>))上的加法逆运算的定义为:C(GF(2<sup>m</sup>))上点P=p(t)的逆元记 作-P,-P也是C(GF(2<sup>m</sup>))上一点,且-P=p(t+1),-p(∞)=p(∞);编码算法的定义 为m→p(m)或m→(xm,ym)=(b(m2+m+a)-1,bm(m2+m+a)-1);解码算法 的定义为p(m)→m或ymxm-1→m; 圆锥曲线C(GF(2<sup>m</sup>))上的点和加法运算构成有限交换群,且该群的阶 #C(GF(2<sup>m</sup>)),即圆锥曲线C(GF(2<sup>m</sup>))的点数为: <img file="A2006101124650002C2.GIF" wi="1076" he="144" />将标量乘运算规则固化在标量乘运算单元CCCM中,其中圆锥曲线 C(GF(2<sup>m</sup>))上标量乘运算的定义为:k是一个整数且P=p(t)∈C(GF(2<sup>m</sup>)),记 <img file="A2006101124650002C3.GIF" wi="994" he="292" />2)随机数发生器RG随机选择圆锥曲线C(GF(2<sup>m</sup>)上的一个基点P=p(g), 并随机产生一个整数d,其中点P的阶为ord(P),d∈[0,ord(P)-1],将d作为 私钥,控制器Controller启动圆锥曲线公钥加密/解密芯片CCED,圆锥曲线公钥 加密/解密芯片CCED的标量乘运算单元CCCM自动进行私钥d与基点P的标量 乘运算:Q=p(q)=dP==dp(g),得到公钥Q,以上参数暂存在参数寄存器PReg 中,并保存到FlashROM中; 3)圆锥曲线公钥加密/解密芯片CCED的主控制器MC将加密解密流程控 制器ENDEU的工作模式选为加密,加密解密流程控制器ENDEU控制圆锥曲线 基本运算单元CCCB将存储器Memory中的明文m编码为M=p(m),并从Flash ROM中获取公钥Q,然后随机数发生器RG随机生成整数k∈[0,ord(P)-1],加 密解密流程控制器ENDEU控制标量乘运算单元CCCM将k分别与圆锥曲线基 点P和公钥Q进行标量乘运算,得到kP和kQ,其中kP记为c1;然后,加密 解密流程控制器ENDEU控制圆锥曲线基本运算单元CCCB将M与kQ做加法 运算,得到M(kQ),记为c2,则对明文m的加密结果为(c1,c2),并将密文(c1, c2)输出到存储器Memory; 4)圆锥曲线公钥加密/解密芯片CCED的主控制器MC将加密解密流程控 制器ENDEU的工作模式选为解密,圆锥曲线基本运算单元CCCB控制标量乘 运算单元CCCM读取暂存在FlashRom中的私钥d与c1进行点乘运算得到dc1, 然后,加密解密流程控制器ENDEU控制圆锥曲线基本运算单元CCCB计算dc1 的逆元-(dc1)以及c2与-(dc1)的加法运算,得到p(m),并将p(m)解码为明文 m,输出到存储器Memory。
地址 100022北京市朝阳区平乐园100号