基于有限域GF(2*)的圆锥曲线公钥加密方法和装置制造方法及图纸

技术编号:2844897 阅读:458 留言:0更新日期:2012-04-11 18:40
一种基于有限域GF(2↑[m])的圆锥曲线公钥加密方法和装置,属于信息安全领域。目前,对圆锥曲线密码学的研究成果都是以有限域GF(p)上的圆锥曲线为基础的算法,没有任何装置出现。本发明专利技术提出了基于有限域GF(2↑[m])的圆锥曲线C(GF(2↑[m]))∶y↑[2]+xy≡ax↑[2]+bx  modf(x),a,b∈GF(2↑[m]),并通过ElGamal公钥加密方案实现基于圆锥曲线上的加密、解密算法,及此算法在硬件芯片上实现的装置。本发明专利技术把有限域GF(p)上的圆锥曲线公钥密码算法推广到有限域GF(2↑[m])上,并利用硬件对运算进行处理和实现,显著提高了圆锥曲线公钥密码算法的运算速度,大大拓展了圆锥曲线公钥密码算法在实际中的应用。

【技术实现步骤摘要】

本专利技术为针对有限域GF(2m)上圆锥曲线的公钥密码体制而建立在硬件芯片上的加密、解密方法,属于信息安全领域。
技术介绍
密码技术已经成为信息安全的核心技术。人们利用计算机网络通信时,所面临的信息保密性、完整性、可用性和防欺骗性等问题,都可以通过密码技术来解决。当今的密码技术可以大致分为两种体制私钥密码体制(又称对称密码体制)和公钥密码体制(又称非对称密码体制)。由于公钥密码体制在密钥协商、数字签名、消息认证等方面的重要优势,因此,已逐渐成为当今密码技术的核心。圆锥曲线密码体制是一种新型的公钥密码体制,在圆锥曲线上的各项计算比椭圆曲线上更简单,并且圆锥曲线上的离散对数问题在圆锥曲线的阶和椭圆曲线的阶相同的情况下,是一个不比椭圆曲线容易的问题。所以,圆锥曲线密码学已成为密码学中的一个重要的研究领域,迄今为止对圆锥曲线密码学的研究成果都是以有限域GF(p)上的圆锥曲线为基础的算法,没有任何装置出现。由于在有限域GF(2m)上的各项运算更适宜软、硬件实现,因此,若把有限域GF(p)上的圆锥曲线公钥密码算法推广到有限域GF(2m)上,并利用硬件对运算进行处理和实现,将显著提高圆锥曲线公钥密码算法的运算速度。利用有限域GF(2m)上的圆锥曲线公钥思想在硬件芯片上实现圆锥曲线公钥密码算法大大拓展了该算法在实际中的应用。
技术实现思路
本专利技术的主要目的在于提出在硬件平台上提高圆锥曲线公钥加密、解密计算速度的方法。本专利技术具体的创新点在于提出了基于有限域GF(2m)的圆锥曲线,并通过ElGamal公钥加密方案实现基于圆锥曲线上的加密、解密算法,及此算法在硬件芯片上的实现。一种基于有限域GF(2m)的圆锥曲线公钥加密方法,其特征在于,它包括以下步骤 1)将有限域GF(2m)上的圆锥曲线C(GF(2m))固化在Flash Rom中,其中圆锥曲线C(GF(2m))的定义为C(GF(2m))∶y2+xy=ax2+bx modf(x),a,b∈GF(2m)为圆锥曲线上的参数,且其中f(x)是构造有限域GF(2m)的既约多项式,次数m=deg(f)为域长度,引入参数t,其几何解释为原点(0,O)和点P=p(t)∈C(GF(2m))所确定直线的斜率,那么,有限域GF(2m)上圆锥曲线的全部点表示为C(GF(2m))∶P={p(t)=(x,y)=(b(t2+t+a)-1,bt(t2+t+a)-1)|t∈GF(2m),t2+t≠a}∪{p(∞)=(0,0)}其中,(t2+t+a)-1为(t2+t+a)在有限域GF(2m)上的乘法逆元,它可利用扩展欧几里得算法求解;将圆锥曲线C(GF(2m))上的加法运算规则、加法逆运算规则、编码算法规则、解码算法规则固化在圆锥曲线基本运算单元CCCB中,其中圆锥曲线C(GF(2m))上加法运算的定义为①对于P=p(t)∈C(GF(2m)),满足p(t)p(∞)=p(∞)p(t)=p(t);②设P1=p(t1),P2=p(t2),P3=p(t3)∈C(GF(2m))且t1,t2≠∞,定义P1P2=P3,即p(t1)p(t2)=p(t3),其中 圆锥曲线C(GF(2m))上的加法逆运算的定义为C(GF(2m))上点P=p(t)的逆元记作-P,-P也是C(GF(2m))上一点,且-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或ym xm-1→m;圆锥曲线C(GF(2m))上的点和加法运算构成有限交换群,且该群的阶#C(GF(2m)),即圆锥曲线C(GF(2m))的点数为 将标量乘运算规则固化在标量乘运算单元CCCM中,其中圆锥曲线C(GF(2m))上标量乘运算的定义为k是一个整数且P=p(t)∈C(GF(2m)),记 2)随机数发生器RG随机选择圆锥曲线C(GF(2m)上的一个基点P=p(g),并随机产生一个整数d,其中点P的阶为ord(P),d∈,将d作为私钥,控制器Controller启动圆锥曲线公钥加密/解密芯片CCED,圆锥曲线公钥加密/解密芯片CCED的标量乘运算单元CCCM自动进行私钥d与基点P的标量乘运算Q=p(q)=dP==dp(g),得到公钥Q,以上参数暂存在参数寄存器PReg中,并保存到Flash ROM中;3)圆锥曲线公钥加密/解密芯片CCED的主控制器MC将加密解密流程控制器ENDEU的工作模式选为加密,加密解密流程控制器ENDEU控制圆锥曲线基本运算单元CCCB将存储器Memory中的明文m编码为M=p(m),并从FlashROM中获取公钥Q,然后随机数发生器RG随机生成整数k∈,加密解密流程控制器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读取暂存在Flash Rom中的私钥d与c1进行点乘运算得到dc1,然后,加密解密流程控制器ENDEU控制圆锥曲线基本运算单元CCCB计算dc1的逆元-(dc1)以及c2与-(dc1)的加法运算,得到p(m),并将p(m)解码为明文m,输出到存储器Memory。一种实现基于有限域GF(2m)的圆锥曲线公钥加密方法的装置,其特征在于主要由圆锥曲线公钥加密/解密芯片CCED与控制器Controller、存储器Memory和随机数发生器RG组成,它们组合使用完成数据加密和解密运算RG产生系统建立时所需的随机数,控制器Controller通过圆锥曲线公钥加密/解密芯片CCED来选择工作方式为输入参数、加密或解密,圆锥曲线公钥加密/解密芯片CCED通过加法运算、加法逆运算、编码算法、解码算法和标量乘运算完成数据的加密或解密运算,运算结果回送存储器Memory;所述的圆锥曲线加密解密芯片CCED主要由Flash ROM、参数寄存器PReg、输入寄存器IReg、加密解密流程控制器ENDEU、圆锥曲线基本运算单元CCCB、标量乘运算单元CCCM、二进制域控制运算单元F2M、和主控制器MC模块组成,各模块之间的逻辑关系为 Flash ROM用于存储定义在有限域GF(2m)上的圆锥曲线C(GF(2m))、加密参数和解密参数以供参数寄存器PReg读写;参数寄存器PReg用于为加密解密流程控制器ENDEU提供参数,将读入的数据进行整理、写入Flash ROM或从Flash ROM中读取参数;输入寄存器IReg用于暂存明文和密文,将读入的数据进行整理,并输出到加密解密流程控制器ENDEU中;加密解密流程控制器ENDEU用于进行加密或解密每一步流程的控制,从输入寄存器Ireg中读取数据,并交给标量乘运算单元CCCM或圆锥曲线基本运算单CCCB进行计算;圆锥曲线基本运算单元CCCB用于实现在GF(本文档来自技高网...

【技术保护点】
一种基于有限域GF(2↑[m])的圆锥曲线公钥加密方法,其特征在于,它包括以下步骤:1)将有限域GF(2↑[m])上的圆锥曲线C(GF(2↑[m]))固化在FlashRom中,其中圆锥曲线C(GF(2↑[m]))的定义为C(GF (2↑[m]))∶y↑[2]+xy≡ax↑[2]+bxmodf(x),a,b∈GF(2↑[m])为圆锥曲线上的参数,且其中f(x)是构造有限域GF(2↑[m])的既约多项式,次数m=deg(f)为域长度,引入参数t,其几何解释为原点(0 ,0)和点P=p(t)∈C(GF(2↑[m]))所确定直线的斜率,那么,有限域GF(2↑[m])上圆锥曲线的全部点表示为:C(GF(2↑[m]))∶P={p(t)=(x,y)=(b(t↑[2]+t+a)↑[-1],bt(t↑[2]+ t+a)↑[-1])|t∈GF(2↑[m]),t↑[2]+t≠a}∪{p(∞)=(0,0)}其中,(t2+t+a)-1为(t2+t+a)在有限域GF(2↑[m])上的乘法逆元,它可利用扩展欧几里得算法求解;将圆锥曲线C(GF(2↑[ m]))上的加法运算⊕规则、加法逆运算规则、编码算法规则、解码算法规则固化在圆锥曲线基本运算单元CCCB中,其中圆锥曲线C(GF(2↑[m]))上加法运算⊕的定义为:①对于P=p(t)∈C(GF(2↑[m])),满足p(t)⊕p(∞)=p(∞)⊕p(t)=p(t);②设P1=p(t1),P2=p(t2),P3=p(t3)∈C(GF(2↑[m]))且t1,t2≠∞,定义P1⊕P2=P3,即p(t1)⊕p(t2)=p(t3),其中***圆锥曲线C(GF(2↑[m] ))上的加法逆运算的定义为:C(GF(2↑[m]))上点P=p(t)的逆元记作-P,-P也是C(GF(2↑[m]))上一点,且-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↑[m]))上的点和加法运算⊕构成有限交换群,且该群的阶#C(GF(2↑[m])),即圆锥曲线C(GF(2↑[m]))的点数为: ***将标量乘运算规则固化在标量乘运算单元CCCM中,其中圆锥曲线C(GF(2↑[m]))上标量乘运算的定义为:k是一个整数且...

【技术特征摘要】
1.一种基于有限域GF(2m)的圆锥曲线公钥加密方法,其特征在于,它包括以下步骤1)将有限域GF(2m)上的圆锥曲线C(GF(2m))固化在Flash Rom中,其中圆锥曲线C(GF(2m))的定义为C(GF(2m))y2+xy≡ax2+bx modf(x),a,b∈GF(2m)为圆锥曲线上的参数,且其中f(x)是构造有限域GF(2m)的既约多项式,次数m=deg(f)为域长度,引入参数t,其几何解释为原点(0,0)和点P=p(t)∈C(GF(2m))所确定直线的斜率,那么,有限域GF(2m)上圆锥曲线的全部点表示为C(GF(2m))P={p(t)=(x,y)=(b(t2+t+a)-1,bt(t2+t+a)-1)|t∈GF(2m),t2+t≠a}∪{p(∞)=(0,0)}其中,(t2+t+a)-1为(t2+t+a)在有限域GF(2m)上的乘法逆元,它可利用扩展欧几里得算法求解;将圆锥曲线C(GF(2m))上的加法运算规则、加法逆运算规则、编码算法规则、解码算法规则固化在圆锥曲线基本运算单元CCCB中,其中圆锥曲线C(GF(2m))上加法运算的定义为①对于P=p(t)∈C(GF(2m)),满足p(t)p(∞)=p(∞)p(t)=p(t);②设P1=p(t1),P2=p(t2),P3=p(t3)∈C(GF(2m))且t1,t2≠∞,定义P1P2=P3,即p(t1)p(t2)=p(t3),其中 圆锥曲线C(GF(2m))上的加法逆运算的定义为C(GF(2m))上点P=p(t)的逆元记作-P,-P也是C(GF(2m))上一点,且-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或ym xm-1→m;圆锥曲线C(GF(2m))上的点和加法运算构成有限交换群,且该群的阶#C(GF(2m)),即圆锥曲线C(GF(2m))的点数为 将标量乘运算规则固化在标量乘运算单元CCCM中,其中圆锥曲线C(GF(2m))上标量乘运算的定义为k是一个整数且P=p(t)∈C(GF(2m)),记 2)随机数发生器RG随机选择圆锥曲线C(GF(2m)上的一个基点P=p(g),并随机产生一个整数d,其中点P的阶为ord(P),d∈,将d作为私钥,控制器Controller启动圆锥曲线公钥加密/解密芯片CCED,圆锥曲线公钥加密/解密芯片CCED的标量乘运算单元CCCM自动进行私钥d与基点P的标量乘运算Q=p(q)=dP==dp(g),得到公钥Q,以上参数暂存在参数寄存器PReg中,并保存到Flash ROM中;3)圆锥曲线公钥加密/解密芯片CCED的主控制器MC将加密解密流程控制器ENDEU的工作模式选为加密,加密解密流程控制器ENDEU控制圆锥曲线基本运算单元CCCB将存储器Memory中的明文m编码为M=p(m),并从FlashROM中获取公钥Q,然后随机数发生器RG随机生成整数k∈,加密解密流程控制器ENDEU控制标量乘运算单元CCCM将k分别与圆锥曲线基点P和公钥Q进行标量乘运算,得到kP和kQ,其中kP记为c1;然后,加密解密流程控制...

【专利技术属性】
技术研发人员:蔡永泉赵磊靳岩岩肖创柏
申请(专利权)人:北京工业大学
类型:发明
国别省市:11[中国|北京]

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

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