CN1920841A - 基于有限域GF(2m)的圆锥曲线公钥加密方法和装置 - Google Patents
基于有限域GF(2m)的圆锥曲线公钥加密方法和装置 Download PDFInfo
- Publication number
- CN1920841A CN1920841A CNA2006101124651A CN200610112465A CN1920841A CN 1920841 A CN1920841 A CN 1920841A CN A2006101124651 A CNA2006101124651 A CN A2006101124651A CN 200610112465 A CN200610112465 A CN 200610112465A CN 1920841 A CN1920841 A CN 1920841A
- Authority
- CN
- China
- Prior art keywords
- conic section
- encrypting
- endeu
- cccb
- scalar multiplication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一种基于有限域GF(2m)的圆锥曲线公钥加密方法和装置,属于信息安全领域。目前,对圆锥曲线密码学的研究成果都是以有限域GF(p)上的圆锥曲线为基础的算法,没有任何装置出现。本发明提出了基于有限域GF(2m)的圆锥曲线C(GF(2m)):y2+xy≡ax2+bx modf(x),a,b∈GF(2m),并通过ElGamal公钥加密方案实现基于圆锥曲线上的加密、解密算法,及此算法在硬件芯片上实现的装置。本发明把有限域GF(p)上的圆锥曲线公钥密码算法推广到有限域GF(2m)上,并利用硬件对运算进行处理和实现,显著提高了圆锥曲线公钥密码算法的运算速度,大大拓展了圆锥曲线公钥密码算法在实际中的应用。
Description
技术领域:
本发明为针对有限域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≠∞,定义P1P2=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∈[0,ord(P)-1],将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∈[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读取暂存在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(2m)域上的加、乘、求逆运算,它在加密解密流程控制器ENDEU与标量乘运算单元CCCM的控制下进行工作,并根据所选择运算的流程启动二进制域控制运算单元F2M来执行所选运算在GF(2m)域上的流程;
标量乘运算单元CCCM用于实现圆锥曲线的标量乘计算,在加密解密流程控制器ENDEU的控制下通过启动圆锥曲线基本运算单元CCCB来进行工作,在启动圆锥曲线基本运算单元CCCB的过程中,通过标量乘运算单元CCCM将加密解密流程控制器ENDEU暂停工作,直到该标量乘运算完成;
二进制域控制运算单元F2M为圆锥曲线基本运算单元CCCB和标量乘运算单元CCCM运算的基础,它用于实现二进制计算,通过译码器选择性地启动二进制域加法运算器F2MA、乘法运算器F2MM及求逆运算器F2MR进行计算,并暂存运算结果;
主控制器MC用于控制的圆锥曲线加密解密芯片CCED的工作模式。
本发明把有限域GF(p)上的圆锥曲线公钥密码算法推广到有限域GF(2m)上,并利用硬件对运算进行处理和实现,显著提高了圆锥曲线公钥密码算法的运算速度,并大大拓展了圆锥曲线公钥密码算法在实际中的应用。
附图说明:
图1圆锥曲线加密/解密芯片与控制器、存储器、随机数发生器集成图;
图2圆锥曲线C(GF(2m))上实现ElGamal加密方案算法框图;
图3圆锥曲线加密/解密芯片内部结构及数据通路图。
具体实施方式:
根据图2-3完成本发明的具体实现过程,具体的实施方案为:
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)上的乘法逆元,可利用扩展欧几里得算法求解。
2)圆锥曲线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≠∞,定义P1P2=P3,即p(t1)p(t2)=p(t3),
其中
以上运算在CCCB的控制下,读取ENDEU、CCCM中的参数和数据,
在F2MA、F2MM、F2MR中完成计算,并将计算结果由CCCB传送至ENDEU或CCCM中保存。
圆锥曲线C(GF(2m))上求逆运算定义为:C(GF(2m))上点P=p(t)的逆元记作-P,-P也是C(GF(2m))上一点,且-P=p(t+1),-p(∞)=p(∞)。以上运算在CCCB的控制下,读取ENDEU或CCCM中的参数和数据,在F2MA、F2MM、F2MR中完成计算,并将计算结果由CCCB传送至ENDEU或CCCM中保存。
3)圆锥曲线C(GF(2m))上标量乘运算定义为:k是一个整数且P=p(t)∈C(GF(2n)),记
以上运算在CCCM的控制下,读取ENDEU中的参数和数据,在CCCB中完成计算,并将计算结果由CCCM传送至ENDEU中保存。
4)圆锥曲线C(GF(2m))上的点和加法运算构成有限交换群,且该群的阶#C(GF(2m)),即圆锥曲线C(GF(2m))的点数为:
5)利用圆锥曲线群(C(GF(2m)),)构造密码算法时,需要将明文与圆锥曲线C(GF(2m))上点的形式相互转换。当需要将明文m变换为点M=p(m)的形式时,编码算法为m→p(m),解码算法为p(m)→m;当需要将明文m变换为点M=(x,y)的形式时,编码算法为m→(xm,ym)=(b(m2+m+a)-1,bm(m2+m+a)-1),解码算法为ym xm-1→m。以上运算在CCCB的控制下,读取ENDEU中的参数和数据,在F2MA、F2MM、F2MR中完成计算,并将计算结果由CCCB传送至ENDEU中保存。
2.利用圆锥曲线C(GF(2m))实现E1Gamal公钥加密方案的系统建立过程
1)RG随机选择圆锥曲线C(GF(2m)上一点P=p(g),点P的阶为ord(P);
2)利用RG产生随机整数d∈[0,ord(P)-1],将d作为私钥;
3)利用CCCM计算点Q=p(q)=dP=dp(g),将Q作为公钥。
3.利用圆锥曲线C(GF(2m))实现E1Gamal公钥加密方案的加密过程
1)从IReg读取明文m;
2)利用CCCB将明文m编码为M=p(m)的形式;
3)在Flash ROM中通过PReg查找公钥Q;
4)利用RG产生随机整数k∈[0,ord(P)-1];
5)利用CCCM计算密文c1=kP=kp(g);
6)利用CCCM、CCCB计算密文c2=M(kQ)=p(m)(kp(q));
7)通过DATA_OUT将密文(c1,c2)传送到Memory。
4.利用圆锥曲线C(GF(2m))实现E1Gamal公钥加密方案的解密过程
1)从IReg读取密文(c1,c2);
2)利用CCCM计算点dc1;
3)利用CCCB计算点dc1的逆元-(dc1);
4)利用CCCB恢复数据p(m)=c2(-(dc1));
5)利用CCCB将p(m)解码为明文m;
5.圆锥曲线加密/解密芯片模块及工作过程
如图3所示,圆锥曲线加密/解密芯片由寄存器、流程控制单元和数学运算单元三类模块组成,各个模块的功能如下:
1)Flash ROM:Flash ROM中存储了圆锥曲线加密系统中的所有参数,包括加密与解密两套参数。其中加密密钥包括域长度的定义、不可约多项式的定义、圆锥曲线参数a与b、公钥Q(x,y);解密密钥除此之外还包括私钥d。不同的密钥分别存放在各自固定的地址中,并可以读取和擦写。
2)参数寄存器(PReg):用于暂存参数,并将参数写入Flash ROM或从中读取之用。
3)输入寄存器(IReg):用于暂存输入的明文或密文,将读入的数据进行整理,并输出到ENDEU中。
4)加密解密流程控制器(ENDEU):进行加密或解密每一步流程的控制,从IReg中读取数据,并交给CCCM或CCCB进行计算。ENDEU通过A/R/P/RP与M引脚来选择不同类型的运算,包括圆锥曲线加、求逆、编码、解码、标量乘共5种运算。数据按流程逐步进行计算,启动加密或解密的流程通过E/D引脚的输入来进行控制。运算完成后,该模块的CR输出高电平,并由DATA_OUT端口输出结果。
5)圆锥曲线基本运算单元(CCCB):在ENDEU与CCCM的控制下进行工作,并根据A/R/P/RP引脚的输入选择进行不同的运算。并根据所选择运算的流程启动F2M来执行该运算在有限域GF(2m)上的流程。在有限域GF(2m)上的加、乘、求逆元运算通过SELT引脚来进行选择。
6)标量乘运算单元(CCCM):完成圆锥曲线标量乘运算。该运算在ENDEU的控制下通过启动CCCB来进行。另外,在启动CCCB的过程中,通过CCCM的RD2引脚将ENDEU暂停工作,直至该标量乘运算完成。
7)二进制域控制运算单元(F2M):在CCCB的SELT引脚控制下通过。通过A/M/R引脚的输入来选择所进行的计算,该模块运行时所需的计算均通过译码器启动二进制域加法(F2MA)、乘法(F2MM)、求逆(F2MR)运算器来进行。其中,F2MA、F2MM、F2MR作为三种基本的计算单元。
圆锥曲线加密/解密芯片如图3所示,其工作方式如下:
1)芯片复位时,Reset置低电平,从而使各个寄存器清零,芯片工作时,由CLK管脚来提供时钟输入。
2)当芯片工作时,置Reset为高电平。芯片首先从Flash ROM中读取圆锥曲线的各个参数及公钥(解密时还要读取私钥)。所读取的内容通过ADDR管脚输出的地址来进行控制。读取的过程通过Flash ROM与参数寄存器(PReg)各自的rd与RD1管脚来进行控制,每次读取时,RD1输出低电平到rd,读取完成后输出高电平表示读取结束。
3)MC将获得的数据(明文、密文或密钥)通过D1_out端口输入到输入寄存器中,此时的P/D管脚须为高电平,IReg在读取数据时将RD置为低电平,读取完成后将其RD管脚置为高电平,并输入到MC的rd管脚中,即表示不再读取直到下次数据输入。
4)当需要重新输入系统参数时,也可通过MC进行参数输入,此时的P/D管脚输入为低电平,表示外部输入为参数。输入的参数在Para_S的控制下逐一由D2_out管脚输入到PReg中,并由PReg在ADDR地址的控制下逐一输入到Flash ROM中。
5)CCED以加密或解密的方式工作根据E/D引脚的输入来确定,当E/D引脚输入高电平时,芯片以加密方式工作,否则以解密方式工作。在输入参数的状态下,即P/D引脚为高时,E/D输入高电平或低电平分别代表输入加密参数与解密参数。
6)加密和解密的计算在ENDEU的控制下进行,针对加密和解密时需要的几种运算:加、标量乘、求逆、编码、解码,该控制器分别通过启动CCCM和CCCB进行计算,启动不同的运算模块通过M引脚与A/R/P/RP[1:0]引脚来控制。数据的交换由ENDEU的D_in/out完成。特别地,当启动CCCB时,CCCM被由流程控制运算器的M引脚对标量乘运算器的EN脚输出高电平而被屏蔽。
7)由于CCCM依赖其他圆锥曲线的基本运算,因而该模块也需启动通过CCCB来实现。CCCM通过其A/R/P/RP[1:0]管脚到CCCM的A/R/P/RP[1:0]管脚来选择所需要的运算。当该模块启动基本运算器时,其RD2引脚输出高电平,并输入ENDEU的EN使其停止工作。二者之间的数据交换通过CCCM的D2_in/out与CCCB的D1_in/out进行,并通过CCCM的RD2和CCCB的RD1相互控制。
8)在CCCB运行过程中,始终需要有限域GF(2m)上运算的支持,这种支持通过二进制域控制运算单元(F2M)来获得。二者之间分别通过D3_in/out与D1_in/out来交换数据并通过各自的rd3、RD3与rd1、RD1来进行控制。CCCB通过管脚SELT[1:0]输入到F2M的A/M/R[1:0]来选择当前采用何种计算。
9)F2M由SELT[1:0]通过译码器来选择二进制域的加法运算器(F2MA)、二进制域乘法运算器(F2MM)及二进制域求逆运算器(F2MR)各自的EN来启动当前所需的运算,以上三个运算器均通过各自的D_in/out获得输入并在计算完成后返回计算结果,运算的控制由各自的RD及rd进行。
10)当加密或解密完成后,ENDEU的CR输出高电平,表示计算已经完成,等待外部读取数据。当所有工作均完成后,可由RESET输入低电平,从而使整个设备复位。
Claims (2)
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≠∞,定义P1P2=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∈[0,ord(P)-1],将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∈[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读取暂存在Flash Rom中的私钥d与c1进行点乘运算得到dc1,然后,加密解密流程控制器ENDEU控制圆锥曲线基本运算单元CCCB计算dc1的逆元-(dc1)以及c2与-(dc1)的加法运算,得到p(m),并将p(m)解码为明文m,输出到存储器Memory。
2.一种实现基于有限域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用于进行加密或解密每一步流程的控制,从输入寄存器lreg中读取数据,并交给标量乘运算单元CCCM或圆锥曲线基本运算单CCCB进行计算;
圆锥曲线基本运算单元CCCB用于实现在GF(2m)域上的加、乘、求逆运算,它在加密解密流程控制器ENDEU与标量乘运算单元CCCM的控制下进行工作,并根据所选择运算的流程启动二进制域控制运算单元F2M来执行所选运算在GF(2m)域上的流程;
标量乘运算单元CCCM用于实现圆锥曲线的标量乘计算,在加密解密流程控制器ENDEU的控制下通过启动圆锥曲线基本运算单元CCCB来进行工作,在启动圆锥曲线基本运算单元CCCB的过程中,通过标量乘运算单元CCCM将加密解密流程控制器ENDEU暂停工作,直到该标量乘运算完成;
二进制域控制运算单元F2M为圆锥曲线基本运算单元CCCB和标量乘运算单元CCCM运算的基础,它用于实现二进制计算,通过译码器选择性地启动二进制域加法运算器F2MA、乘法运算器F2MM及求逆运算器F2MR进行计算,并暂存运算结果;
主控制器MC用于控制的圆锥曲线加密解密芯片CCED的工作模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101124651A CN1920841A (zh) | 2006-08-21 | 2006-08-21 | 基于有限域GF(2m)的圆锥曲线公钥加密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101124651A CN1920841A (zh) | 2006-08-21 | 2006-08-21 | 基于有限域GF(2m)的圆锥曲线公钥加密方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1920841A true CN1920841A (zh) | 2007-02-28 |
Family
ID=37778563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101124651A Pending CN1920841A (zh) | 2006-08-21 | 2006-08-21 | 基于有限域GF(2m)的圆锥曲线公钥加密方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1920841A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101772915B (zh) * | 2007-06-22 | 2013-05-08 | Lsi公司 | 使用有限域运算的密码随机数生成器 |
-
2006
- 2006-08-21 CN CNA2006101124651A patent/CN1920841A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101772915B (zh) * | 2007-06-22 | 2013-05-08 | Lsi公司 | 使用有限域运算的密码随机数生成器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110266721B (zh) | 一种基于同态的云辅助动态通用安全多方计算方法 | |
US9942039B1 (en) | Applying modular reductions in cryptographic protocols | |
CN1648967A (zh) | 加密装置、加密方法及其存储介质 | |
CN1281607A (zh) | 能快速解密的密码系统与方法 | |
CN103440209A (zh) | 一种固态硬盘数据加解密方法及固态硬盘系统 | |
WO2006121149A1 (ja) | 擬似乱数発生システム、暗号化システム及び復号化システム | |
EP1789869A2 (en) | Method and apparatus for performing modular exponentiations | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
CN111385092B (zh) | 使用信息盲化的密码装置及其密码处理方法 | |
Costello et al. | A brief discussion on selecting new elliptic curves | |
CN102098156A (zh) | 密码转换数据文本的改进或与之相关的改进 | |
CN1314223C (zh) | 密码专用密钥的存储和复原方法及设备 | |
CN117857008A (zh) | 基于整数自举的环面全同态加密算法的数据处理方法 | |
WO2024100108A1 (en) | Devices and processes for generating public keys and for generating and verifying signatures | |
WO2016034912A1 (en) | Method and apparatus for scalar multiplication secure against differential power attacks | |
CN1920841A (zh) | 基于有限域GF(2m)的圆锥曲线公钥加密方法和装置 | |
JP2014240921A (ja) | 暗号装置、暗号処理方法及び暗号処理プログラム | |
CN116192361A (zh) | 同态解密方法、装置、非易失性存储介质及计算机设备 | |
CN107463354B (zh) | 一种面向ECC的双域并行度可变的Montgomery模乘电路 | |
JP2005055488A (ja) | 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム | |
JP6203387B2 (ja) | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム | |
CN1464678A (zh) | 基于半群上离散对数问题的数字签名及验证的方法 | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
CN112054889A (zh) | 消息认证码的生成方法及生成装置、计算机可读存储介质 | |
WO2024174107A1 (zh) | 同态解密方法、装置、非易失性存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |