CN103903047A - 一种适用于rfid安全通信的椭圆曲线加密协处理器 - Google Patents

一种适用于rfid安全通信的椭圆曲线加密协处理器 Download PDF

Info

Publication number
CN103903047A
CN103903047A CN201410119582.5A CN201410119582A CN103903047A CN 103903047 A CN103903047 A CN 103903047A CN 201410119582 A CN201410119582 A CN 201410119582A CN 103903047 A CN103903047 A CN 103903047A
Authority
CN
China
Prior art keywords
register
elliptic curve
coprocessor
multiplication
instruction
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.)
Granted
Application number
CN201410119582.5A
Other languages
English (en)
Other versions
CN103903047B (zh
Inventor
刘冬生
林焕
刘胤
邹雪城
刘子龙
雍振强
程剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201410119582.5A priority Critical patent/CN103903047B/zh
Publication of CN103903047A publication Critical patent/CN103903047A/zh
Application granted granted Critical
Publication of CN103903047B publication Critical patent/CN103903047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种适用于RFID安全通信的椭圆曲线加密协处理器,所述协处理器包括寄存器阵列、模算术逻辑单元和ECC协处理器指令控制器,所述寄存器阵列用于存储椭圆曲线加密计算过程中的椭圆曲线参数、私钥、计算过程数据以及计算结果;所述模算术逻辑单元包括加法电路、乘法电路、平方电路、控制单元和寄存器T,用于完成加法、乘法、平方运算;所述ECC协处理器指令控制器用于对所述模算数逻辑单元发送加法、乘法、平方和移动指令,接收模算术逻辑单元计算得到的结果,并根据所述结果进行点加倍点计算以完成椭圆曲线点乘计算。本发明的椭圆曲线加密协处理器具有面积小、低功耗和高安全性的特点,适用于RFID标签芯片。

Description

一种适用于RFID安全通信的椭圆曲线加密协处理器
技术领域
本发明属于射频通信安全加密技术领域,具体涉及一种适用于RFID安全通信的椭圆曲线加密协处理器。
背景技术
射频识别技术RFID(Radio Frequency Identification)作为物联网最重要的组成部分,不仅具有条形码和二维码等识别技术的快速、便捷和低成本性,还具有数据存储容量大、数据可重读写、高效、适于恶劣环境、可识别运动目标等优点,可应用于物品的智能化识别、定位、跟踪、和管理等方面。随着RFID技术的深入发展和推广,数据交互过程的安全性和信息隐私保护等问题逐渐也引发了各界的广泛关注,并成为目前RFID应用中亟待解决的问题。因此在RFID进行数据交互时,保护数据的安全性成为一个必需条件。
除了机密性、完整性、隐私性、真实性等安全特性外,RFID系统还要求具有便捷的扩展性,能方便地增加标签的数目,如对于大型图书馆和物流仓库此类系统,标签数目可达到成千上万。目前大量RFID的应用群组采取的均是对称加密算法机制,私钥加密算法会有一重大缺点,即密钥分配问题。而且在安全通信之前,所有使用的读写器都必须事先知道密钥,意味着对于对称加密系统而言,密钥管理是一个难以忽视的问题。除此之外,若需要对密钥做出更新或更换,就需要对整个系统的所有密钥点进行更新,不仅造成使用的不便,安全性也得不到保证。因此,为了保证RFID系统的延展性、可靠性和安全性要求,采用公钥加密的方案就成为非常有必要的选择。在RFID中采用公钥加密系统,读写器不需要事先知道标签的私钥,直接用标签的公共密钥对信息进行加密,而且这些加密后的信息只能被标签的私钥解密。不仅如此,如果一个标签用它的私钥对一个消息进行签名的话,则读写器可以通过该标签的公钥进行认证,这样就使得整个RFID系统密钥管理变得简单而高效,还增加了系统的可扩展性。
在公钥算法中,RSA(Rivest Shauir Adleuan)方法的优点主要是原理简单、易于使用。但随着分解大整数方法的完善、计算机速度的提高以及计算机网络的发展,作为RSA加解密安全保证的大整数要求越来越大。为保证RSA使用的安全性,密钥的位数不断增加,目前一般认为RSA需要1024位以上的字长才具有安全保障。但密钥长度的增加导致加解密的速度大大降低,硬件实现也变得越来越复杂,这给使用RSA的应用带来了极大负担,使其应用范围日益受到制约。
椭圆曲线加密ECC(Elliptic curve cryptography)算法只需采用较短的密钥就可以达到和RSA算法相同的加密强度,它的数论基础是有限域上的椭圆曲线离散对数问题,现在还没有针对这个难题的亚指数时间算法,因此,ECC算法具有每比特最高的安全强度。由于RFID读写器和标签之间的数据交互受制于标签的资源限制,这意味着标签不能使用太多的资源来保证RFID读写器和标签之间的数据安全,标签必须在尽可能小的资源消耗下实现尽可能高的安全性能。除此之外,RFID读写器和标签之间的速率也不高,这也限制了标签在实现安全性能上的消耗。因此采用一种运算量小同时能提供高加密强度的公钥密码机制对于实现安全应用非常关键。
在国内外,有不少学者进行椭圆加密协处理器的设计,然而大部分设计都只是片面的强调了点乘的计算和实现,而没有考虑实际的使用环境和资源需求,如RFID标签芯片中的数据传输问题,且现有的椭圆机密协处理芯片面积以及功耗都较大,这在实际的RFID领域并不适用。
发明内容
针对现有技术的以上缺陷或改进需求,本发明的目的在于提供一种适用于FRID安全通信的椭圆曲线加密协处理器,通过改进椭圆曲线加密协处理器的参数分布、改进协处理器中各运算单元的设计、实现部分寄存器的复用,使得该协处理器具有小面积、低功耗和高安全性的特点,可应用于RFID标签芯片中。
本发明解决其技术问题所采用的技术方案是,一种适用于RFID安全通信的椭圆曲线加密协处理器,所述协处理器包括寄存器阵列、模算术逻辑单元和ECC协处理器指令控制器;
所述寄存器阵列用于存储椭圆曲线加密计算过程中的椭圆曲线方程参数、私钥、椭圆曲线计算过程数据和计算结果,所述曲线方程参数、私钥在有椭圆曲线加密计算需求时通过总线从RFID标签系统中的EEPROM加载到寄存器中阵列中;
所述ECC协处理器指令控制器用于产生控制指令,将控制指令发送给模算术逻辑单元的控制模块以控制模算术逻辑单元完成加法、乘法和平方计算,并根据模算术逻辑单元中寄存器T存储的加法、乘法和平方运算结果进行点加、倍点以完成椭圆曲线点乘运算,点乘运算结果返回至寄存器阵列;所述控制指令包括加法、乘法、平方和移动指令;
所述模算术逻辑单元包括加法电路、乘法电路、平方电路、控制单元和寄存器T,所述加法电路由异或阵列构成;所述乘法电路由串行乘法器构成;所述平方电路由异或阵列构成;所述控制单元用于识别ECC协处理器指令控制器发送的加法、乘法和平方指令,控制寄存器T获取寄存器阵列中的椭圆曲线方程参数和私钥,并根据识别的加法、乘法和平方指令控制加法电路、乘法电路、平方电路运用获取的椭圆曲线方程参数和私钥分别进行椭圆曲线加法、乘法和平方计算,将加法、乘法、平方计算结果和乘法计算过程数据存储在寄存器T中;同时根据识别的移动指令将从总线上加载的数据通过寄存器T转存到寄存器阵列中;寄存器T与寄存器阵列构成循环链路以进行数据互换。
作为进一步优选地,所述寄存器阵列包括状态指令寄存器、常量寄存器k、c、x、y和多个临时寄存器,所述状态指令寄存器用于存储控制点乘计算的运行状态的指令;所述常量寄存器k为循环移位寄存器,用于存储椭圆曲线计算过程中所需要的私钥;所述常量寄存器c用于存储椭圆曲线方程参数,所述常量寄存器x和常量寄存器y用于存储椭圆曲线基点的坐标点;所述多个临时寄存器用于复用存储点乘计算过程中的临时变量,所述多个临时寄存器通过ECC协处理器指令控制器发送的移动指令与寄存器T构成循环链路结构。
作为进一步优选地,所述平方电路和乘法电路还用于实现椭圆曲线加密计算过程中的求逆运算,并根据费马小定理,采用构建加法链的方法将求逆计算过程中的乘法计算量减少到O(logm)次,所述m为椭圆曲线加密算法中的密钥长度。
作为进一步优选地,所述ECC协处理器指令控制器包括依次连接的计数器、点乘控制器和功能单元,所述计数器用于统计寄存器k的循环次数,以标注点乘的开始和结束;所述点乘控制器根据所述状态指令寄存器中的指令,以状态机的方式向功能单元发送控制指令;所述功能单元接收所述控制指令控制相应子单元工作,功能单元包括数据准备子单元、数据互换子单元、点加倍点子单元和返回计算结果子单元,数据准备子单元用于根据López-Dahab投影坐标下的Montgomery梯形点乘算法完成直角坐标向投影坐标的转换,数据互换子单元用于将椭圆曲线上两点的坐标进行互换;点加倍点子单元用于对互换后的点执行点加和倍点计算,点加倍点计算结束后得到的点乘计算结果由返回计算结果子单元返回至寄存器阵列的临时寄存器中。
作为进一步优选地,所述协处理器外部接口通过低位宽总线的方式进行外部数据交互,寄存器阵列中的数据读写均以8bits宽度构成的字节形式进行。
作为进一步优选地,所述加密协处理器通过Schnorr’s身份认证协议与RFID标签系统控制器进行通信。
作为进一步优选地,所述临时寄存器个数为5个。
因此,本发明可以获得以下的有益效果:
(1)对ECC参量的存放位置做出了合理的安排,椭圆曲线参数和私有密钥在未使用时存放在EEPROM中,当有ECC计算需求时,才会通过总线加载到寄存器阵列中,并基于此制定了一种精简的总线模型,简化了标签数字部分中数据的传输;在各运算单元的设计中,对于乘法运算采用串行乘法器,在保持良好性能的基础上减小面积,实现少资源、低功耗的应用设计;对于平方运算,本发明采用专门的平方电路来单独处理平方运算,让平方操作在一个单周期内完成,以减少系统的计算时间,且通过对寄存器阵列中的寄存器复用减少了临时寄存器的使用,降低了系统面积;
(2)本发明从系统的构成上合理安排协处理器的结构,将相似的单元进行分解和整合,在此基础上实现对模算术逻辑单元的复用过程,减少了资源消耗;在求逆运算中,本发明采用构建加法链的过程将求逆计算过程中的乘法计算量减少到O(logm)次,减少资源和时间消耗;在点乘运算中采用López-Dahab投影坐标下的Montgomery梯形点乘算法,使求逆的次数大大降低,从而减少计算时间;
(3)本发明考虑了RFID安全认证协议,在考虑资源开销而来限制情况下,采用Schnorr’s身份认证协议,该协议模型简单,没有Hash函数和消息等额外的计算开销,而且在离散对数问题上,还是能有效的抵抗被动攻击,该算法的模型非常简单,系统开销非常小,非常适合于RFID低功耗资源限制的应用环境。
因此本发明不仅实现了ECC算法计算上的优化,而且考虑了RFID实际应用中的环境和资源需求,设计出一种具有实用价值的适用于RFID安全通信领域的椭圆曲线加密协处理器。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明适用于RFID安全通信的椭圆曲线加密协处理器的结构示意图;
图2是本发明椭圆曲线加密协处理器的模算术逻辑单元结构示意图;
图3是本发明模算术逻辑单元中加法电路的结构示意图;
图4是本发明在二进制域有限域GF(2163)下的平方电路结构示意图;
图5是本发明在二进制域有限域GF(2163)下的单比特模乘电路图;
图6是本发明一个实施例的椭圆曲线加密协处理器的寄存器阵列结构示意图;
图7是本发明椭圆曲线加密协处理器的ECC协处理器指令控制器的结构示意图;
图8是本发明ECC协处理器指令控制器的点乘控制器的状态转换图;
图9是本发明椭圆曲线求逆运算中的电路状态转换图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供一种适用于RFID安全通信的椭圆曲线加密协处理器,在数字基带中以状态机实现的方式对椭圆曲线加密协处理器进行控制,以实现RFID系统安全加密的性能。
RFID标签系统由模拟前端、真随机数产生器、EEPROM和数字基带构成。模拟前端用于完成RFID协议的物理层实现;真随机数产生器用于实现每一次身份认证的随机性,以保证通信的安全性;EEPROM是标签数据存储的介质,负责存储身份信息、应用数据以及与安全相关的参量,如本发明RFID安全通信过程中将使用到的私钥k、基点的坐标x、y以及椭圆曲线的系数等。
在本发明中,数字基带采用精简的总线结构,将构成数字基带的前端处理电路、随机数处理单元、RAM块、系统控制器、EEPROM控制单元和ECC协处理器连接起来。其中,ECC协处理器在外部接口上采用了低位宽接口模型,通过该接口模型,RFID的系统控制器能够方便地对ECC协处理器的内部数据和指令进行配置和管理,以实现ECC上不同层次的运算加密。
前端处理电路接收到模拟前端解调出来的数据信号时,对解调的信号按照相应的格式,识别出其中的有效数据,并通过总线将有效的数据存储在RAM块中,当整个接收数据阶段完成,并且判定完成整个数据帧是合法的后,根据相应的指令启动系统控制器。系统控制器通过总线,指示EEPROM控制单元将存储在EEPROM中相应位置的参数读入到ECC协处理器的参量存储寄存器中,与此同时,系统控制器启动随机数处理单元,将处理得到的合法的随机数通过总线方式写入到ECC协处理器中的相关寄存器当中。在完成以上ECC协处理器参量的初始化准备工作后,系统控制器通过总线向ECC协处理器阵列寄存器中的指令寄存器写入指定数据,开启ECC协处理器的计算操作,ECC协处理器完成整个加密计算过程后,立即通知系统控制器,系统控制器启动应答过程,并通过总线方式将ECC协处理器中计算出来的加密数据通过前端处理电路按照一定的协议标准编码格式进行编码,并通过模拟前端进行调制,通过磁场耦合返回给RFID读写器。
图1是本发明适用于RFID安全通信的椭圆曲线加密协处理器的结构示意图。EEC协处理器主要由三大部分组成,包括相互连接的寄存器阵列101、EEC协处理器指令控制器102和模算术逻辑单元(MALU)103。ECC协处理器负责完成标量乘法、求逆等的计算,并通过低位宽总线的方式与外部进行数据交互,涉及的寄存器当中的数据读写均以8bits宽度构成的字节形式进行。同时系统控制器通过向寄存器阵列101中的指令寄存器写入特定的值来控制ECC协处理器的启动和运行,将计算的坐标结果存储在寄存器阵列中,并在计算结束的时候向系统控制器发送指示信号,以便进行进一步的数据处理。在设计中,采用Schnorr’s身份认证协议,系统控制器从寄存器阵列中读出计算过的坐标值,并按照一定的协议标准编码格式进行编码返回。Schnorr’s身份认证协议模型简单,没有Hash函数和消息等额外的计算开销,而且在离散对数问题上,还是能有效的抵抗被动攻击,该算法的模型非常简单,系统开销非常小,非常适合于RFID低功耗资源限制的应用环境。
本发明ECC协处理器的接口信号如表1所示。
表1ECC协处理器接口信号列表
图2为模算术逻辑单元的结构图。如图2所示,模算术逻辑单元由五部分构成,分别为加法电路201、乘法电路202、平方电路203、控制单元(CU)204和寄存器T205。模算术逻辑单元可完成四种指令,分别为加法指令、平方指令、移动指令和乘法指令,当指令执行完成后,将相应给出执行成功的有效信号malu_fin209。寄存器T205有三方面的作用,首先用于存储加法指令、平方指令和乘法指令的计算结果;其次,该寄存器在乘法指令执行过程中充当临时结果寄存器,用于存储乘法计算的过程数据;最后寄存器T205中的数据能够直接通寄存器阵列101中的寄存器A605进行数据互换,从而实现寄存器阵列101中数据顺序的调整。
加法电路201由m bits异或阵列构成,m为椭圆曲线加密算法中的密钥长度,其电路结构图如图3所示。当模算术逻辑单元103接收ECC协处理器指令控制器102发出的加法指令,控制单元204识别出Opcode208指令为加法指令ADD,加法的两个操作数分别为A_bus206和B_bus207,整个加法操作在一个周期内完成,完成后将计算结果写入到临时寄存器T205中,并发送完成的有效信号malu_fin209至ECC协处理器指令控制器102。
平方电路203同样由异或阵列构成,但是其链路结构相比于加法电路而言复杂许多。图4是本发明在二进制域有限域GF(2163)下的平方电路结构示意图,该平方电路输入位宽为163比特,根据有限域内163比特的平方计算公式,采用246个异或门构成异或门阵列,实现平方计算。当模算术逻辑单元103接收ECC协处理器指令控制器102发出的平方指令SQR时,控制单元204识别出Opcode208指令为平方指令,并在一个时钟周期内将A_bus206上的数据的平方计算出来,写入到寄存器T205中,同时给出完成的有效信号malu_fin209并发送至ECC协处理器指令控制器102。本发明中,采用经过取模降幂优化的计算电路来专门处理平方操作,让平方操作在一个单周期内完成以减少系统的计算时间,减少了临时寄存器的使用,降低了系统面积。
移动指令是指将A_bus206中的数据移动到寄存器T205中,该指令的主要作用是保证加法、平方和乘法的操作数能够存储到寄存器阵列中的A605和寄存器B606中,以便得到正确的计算。当模算术逻辑单元103接收ECC协处理器指令控制器102发出的移动指令MOV,控制单元204识别出Opcode208指令为移动指令,并在一个时钟周期内将A_bus206上的数据写入到寄存器T205中,同时给出完成的有效信号malu_fin209。
乘法指令是将A_bus206和B_bus207上的数据做乘法运算,运算结果取模,并将计算结果存储在寄存器T205当中,整个指令并非在一个时钟周期内完成,乘法电路202只能完成单比特的乘法运算,图5是本发明在二进制域有限域GF(2163)下的单比特模乘电路图。整个乘法指令的实际工作过程为:当模算术逻辑单元103接收ECC协处理器指令控制器102发出的乘法指令时,控制单元204识别出Opcode208指令为乘法指令MUL,并启动计数器(cnt)210,每执行一次单比特乘法运算时,计数器210加1,乘法电路202将计算的临时结果存储在寄存器T205中,当计数值为m时,乘法计算完成,结果存储在寄存器T205中,并发送完成的有效信号malu_fin209至ECC协处理器指令控制器。在本发明中,乘法电路在考虑面积和功耗的情况下,采用串行乘法器,减小面积的同时又保持了良好的性能,实现少资源、低功耗的设计。
图6为本发明一个实施例的寄存器阵列结构示意图。寄存器阵列101包括状态指令寄存器、常量寄存器k601,c602,x603,y604和多个临时寄存器。
其中,常量寄存器k601用于存储计算过程中所需要的私钥,同时该寄存器还是循环移位寄存器;而
Figure BDA0000482973290000101
用于存储椭圆曲线有关的常数c,
Figure BDA0000482973290000102
x603和y604则用于存储椭圆曲线基点的坐标点。由于在计算过程中,这些数据都参与计算,而且在计算过程中,这些数据必须要保持不变,所以这四个数据存储在相应的常量寄存器中。计算过程中,c602、x603和y604中存储的数据由于仍需要用于计算,故通过一个四选一多路选择器连接到A_bus上。
临时寄存器用于复用存储点乘计算过程中的临时变量。在本发明一个优选实施例中,临时寄存器个数为五个A605、B606、C607、D608和E609。在该优选施例中,求逆运算根据费马小定理,采用构建加法链的方法将求逆计算过程中的乘法计算量减少到O(logm)次,所述m为椭圆曲线加密算法中的密钥长度;点乘运算中采用López-Dahab投影坐标下的Montgomery梯形点乘算法,以降低求逆次数减少计算时间,所述五个临时寄存器用于在采用上述算法的椭圆曲线加密点乘计算过程中进行数据复用。五个临时寄存器A605、B606、C607、D608、E609通过移动指令与模算术逻辑单元103中寄存器T205构成循环链路结构,该结构能有效减少电路的复杂性,降低系统资源消耗。同时,在上述实施例临时寄存器复用过程中,由于寄存器B606除了用于执行加法指令外还需要用于执行乘法指令,所述该寄存器除了贯穿到整个循环链路当中以外,本身还构成了一个循环移动寄存器,以减少乘法运算的复杂度。
k601,c602,x603,y604,A605,B606,C607,D608,E609是占用资源的部分,另外寄存器阵列101还包括状态指令寄存器,用于控制点乘计算的运行状态。所有的这些寄存器均通过统一的编码进行编组,并通过总线的方式与RFID标签系统控制器进行读写通信控制。
图7是本发明椭圆曲线加密协处理器的ECC协处理器指令控制器的结构示意图。如图7所示,ECC协处理器指令控制器由三部分组成,分别为计数器701、点乘控制器702和功能单元703。其中功能单元703包含四个部分,分别为数据准备子单元7031、数据互换子单元7032、点加倍点子单元7033以及Mxy子单元7034。数据准备子单元7031用于完成直角坐标向投影坐标的转换;数据互换子单元7032用于将椭圆曲线上的点P1(X1,Z1)和P2(X2,Z2)的坐标进行互换;点加倍点子单元7033用于对应执行点P1+P2和2P1;最后计算得到的结果由Mxy子单元7034返回至寄存器阵列的临时寄存器中。
在ECC协处理器指令控制器102中,计数器701的作用为统计整个寄存器k的循环次数,以标注点乘的开始和结束。整个点乘控制器702的转换图如图8所示。在没有执行指令的时候,整个ECC协处理器控制器102处在空闲状态S0。当ECC协处理器指令控制器102中的start寄存器被写入使能信号时,即相当于ecp_start=1,这时点乘控制器702开始工作。首先状态进入数据准备阶段S1,并在这个阶段完成点P1和P2的初始化;然后进入判断khead阶段S2,khead为寄存器k循环过程中每一位对应的值“0”或“1”。在S2这个阶段内,将一直保持寄存器k处在不停的循环状态中并执行计数器701计数,直到khead=1。当khead=1时,则跳转至下一个判断khead的阶段S3;进入判断khead的S3阶段后,此时再次进行khead的判定过程,但是此时并不对计数器701的值cnt进行计数,当khead=0时,需要经过数据互换阶段S4后才能进入点加倍点阶段S5,反之,则可以直接进入点加倍点阶段S5;进入点加倍点阶段S5后,当执行点加倍点完成之后,如果khead=0,则需要经过数据互换阶段S6后才能进入判断cnt阶段S7,反之,则可以直接进入判断cnt的S7阶段;当处在判断cnt的S7阶段时,对计数器701的值进行判定,如果cnt不为m,则对cnt进行一次计数,并进入判断khead的S3阶段,并重复整个过程,直到cnt变为m,当处在判断cnt的S7阶段并且cnt为m时,进入Mxy阶段S8;当S8阶段执行完成后,说明此时已计算出了点乘的结果,结果存放在寄存器A605和B606中。
在本发明一个优选实施例中,根据费马小定理设计求逆电路,原理如下式所示:
T = A - 1 ≡ A 2 m - 2 = ( A 2 m - 1 - 1 ) 2 mod P ( x )
由于2m-2=21+22+...+2m-1,可看出可采用二进制平方和乘法来完成求逆计算,如
Figure BDA0000482973290000122
这要求有m-2次乘法和m-1次平方操作。为了减少计算时间,本发明采用构建加法链的过程可以将求逆运算过程中的乘法计算量减少到O(logm)次。首先,用二进制表示m-1可得:
m - 1 = m q - 1 2 q - 1 + m q - 2 2 q - 2 + . . . + m 1 2 + m 0 2 m - 1 - 1 = 2 m 0 ( 2 [ m q - 1 m q - 2 . . . m 1 ] 2 - 1 ) · ( 2 [ m q - 1 m q - 2 . . . m 1 ] 2 + 1 ) + m 0
在此得:
K i = 2 m i K i + 1 · ( 2 [ m q - 1 m q - 2 · · · m i + 1 ] 2 + 1 ) + m i 0 ≤ i ≤ ( q - 2 ) 1 i = q - 1
因此模幂可以通过递归的方式用下式表示出来:
A K i = A 2 m i K i + 1 · ( 2 [ m q - 1 m q - 2 · · · m i + 1 ] 2 + 1 ) + m i = { ( A K i + 1 ) 2 [ m q - 1 m q - 2 . . . m i + 1 ] 2 · ( A K i + 1 ) } 2 m i 0 ≤ i ≤ ( q - 2 )
每个递归步骤要求[1mq-2...mi+1]2次平方操作和1次模乘操作,若mi=1,则需要一次额外的平方操作和模乘操作。可见通过加法链计算一次A-1需要
Figure BDA0000482973290000136
次模乘和m-1次模平方,其中Hw(.)是用二进制表示的Hamming长度。本发明求逆运算过程就可通过表2得到。
表2求逆计算过程表
Figure BDA0000482973290000135
在进行椭圆曲线加密计算时,通常认为当椭圆曲线算法的位数达到163位时,其安全性可适用于绝大部分的应用领域,因此在本发明一个优选实施例中,选择ECC算法推荐的最小密钥长度163位,163=[10100011]2,则一次求逆运算要求9次乘法和162次平方运算,以及3个额外的临时寄存器变量(算法中的T、B以及乘法过程存储临时计算结果),同时为了复用这两个临时寄存器(T、B)的空间,设计中和点乘的临时寄存器的空间复用,以减少寄存器的使用。本发明根据表2对求逆计算的状态进行划分,可划分为四种类型的状态,四个类型的状态划分说明见表3,同时以得出图9的求逆运算状态转换图。
表3求逆状态说明表
Figure BDA0000482973290000141
从表2中可以看出,当求逆的运算执行第2步时,则正好对应图9中状态机跳转到S1状态的过程,此时的S1状态即为完成计算,同时,这个时候平方运算计数器增1,当运算执行到第3步时,正好执行T=B·A的运算,此运算完成之后,状态跳转至S3状态,正好与表中第4步相对应;由于第4步在不同的状态下执行的次数不同,所以在S3状态向下一个状态跳转时,需取决于平方计数器的值,由表2中的第4步可知,当状态机跳转下一个阶段时,此时整个求逆计算的平方数为3(第2步中的1次和第4步中的2次),同理可从表中得出对应8、10、12、14、18和20的平方数依次为9、19、39、79、161和162。由于当平方计数器的值为162时,整个求逆就算已经完成,因此cnt=162时,状态机跳转到初始化状态,同时输出计算结果,当cnt对应的值为9、19、39、79和161时,状态机则直接跳转到S4状态,从表2中可以看出来,4、8、10、12、14和18对应的步骤均为T=B·T,由此可以看出状态和计算之间都得到了统一;当状态机处在S4状态时,根据表2可得,之后的计算可以是也可以是B=T2,因此都可以统一到S1和S2状态中,当计数器的值为3或者79时,下一步的计算为B=T2,其他情况下回到的计算则是
Figure BDA0000482973290000152
在本发明一个优选实施例中,从系统消耗和计算时间两方面对Montgomery方法进行分析和优化,采用López-Dahab投影坐标下的Montgomery梯形点乘算法,带来计算效能上的提升。其运算过程如表4所示:
表4López-Dahab投影坐标下的Montgomery梯形点乘算法
Figure BDA0000482973290000153
从表4可以看出整个计算消耗为6次乘法、5次平方和3次加法。而消耗的资源,除了点P的坐标(x,y)和常数c(a6=c2,可通过预计算来解决)、P1(X1,Z1)和P2(X2,Z2)这7个寄存器存储外,还需要一个临时寄存器和一个用于存储乘法计算中的临时结果寄存器,总共需要9个寄存器,相比采用二进制点乘算法需要采用13个寄存器,资源消耗减少。由以上可知,通过采用López-Dahab投影坐标下的Montgomery梯形点乘算法,相比于原有的Montgomery点乘算法,可使求逆的次数大大降低,减少了计算时间。
因此,本发明提出了一种适用于RFID安全通信的椭圆曲线加密协处理器,该协处理器具有小面积、低功耗和高安全性的特点,可以应用于RFID标签芯片。本发明所述椭圆曲线加密协处理器在外部接口上采用了低位宽接口模型,通过该接口模型,RFID的系统控制器能够方便的对协处理器内部数据和指令的进行配置和管理,以实现ECC上不同层次的计算;同时本发明对ECC参量的存放位置做出了合理的安排,并制定出了一种精简的总线模型简化了标签数字部分中数据的传输;在各种运算单元的设计中,采取独特的措施和方法实现资源消耗小、运算时间短的目标,满足RFID标签安全通信的要求;在系统的构成上合理安排协处理器的结构,将相似的单元进行分解和整合,实现对模运算逻辑单元的复用过程,减少资源消耗,实现ECC协处理器设计;本发明还考虑了RFID安全认证协议的分析,在考虑资源开销的限制情况下,采用Schnorr’s身份认证协议,满足RFID标签低功耗资源限制的应用要求。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种适用于RFID安全通信的椭圆曲线加密协处理器,其特征在于,所述协处理器包括寄存器阵列、模算术逻辑单元和ECC协处理器指令控制器;
所述寄存器阵列用于存储椭圆曲线加密计算过程中的椭圆曲线方程参数、私钥、椭圆曲线计算过程数据和计算结果,所述曲线方程参数、私钥在有椭圆曲线加密计算需求时通过总线从RFID标签系统中的EEPROM加载到寄存器中阵列中;
所述ECC协处理器指令控制器用于产生控制指令,将控制指令发送给模算术逻辑单元的控制模块以控制模算术逻辑单元完成加法、乘法和平方计算,并根据模算术逻辑单元中寄存器T存储的加法、乘法和平方运算结果进行点加、倍点以完成椭圆曲线点乘运算,点乘运算结果返回至寄存器阵列;所述控制指令包括加法、乘法、平方和移动指令;
所述模算术逻辑单元包括加法电路、乘法电路、平方电路、控制单元和寄存器T,所述加法电路由异或阵列构成;所述乘法电路由串行乘法器构成;所述平方电路由异或阵列构成;所述控制单元用于识别ECC协处理器指令控制器发送的加法、乘法和平方指令,控制寄存器T获取寄存器阵列中的椭圆曲线方程参数和私钥,并根据识别的加法、乘法和平方指令控制加法电路、乘法电路、平方电路运用获取的椭圆曲线方程参数和私钥分别进行椭圆曲线加法、乘法和平方计算,将加法、乘法、平方计算结果和乘法计算过程数据存储在寄存器T中;同时根据识别的移动指令将从总线上加载的数据通过寄存器T转存到寄存器阵列中;寄存器T与寄存器阵列构成循环链路以进行数据互换。
2.如权利要求1所述的适用于RFID安全通信的椭圆曲线加密协处理器,其特征在于,所述寄存器阵列包括状态指令寄存器、常量寄存器k、c、x、y和多个临时寄存器,所述状态指令寄存器用于存储控制点乘计算的运行状态的指令;所述常量寄存器k为循环移位寄存器,用于存储椭圆曲线计算过程中所需要的私钥;所述常量寄存器c用于存储椭圆曲线方程参数,所述常量寄存器x和常量寄存器y用于存储椭圆曲线基点的坐标点;所述多个临时寄存器用于复用存储点乘计算过程中的临时变量,所述多个临时寄存器通过ECC协处理器指令控制器发送的移动指令与寄存器T构成循环链路结构。
3.如权利要求2所述的适用于RFID安全通信的椭圆曲线加密协处理器,其特征在于,所述平方电路和乘法电路还用于实现椭圆曲线加密计算过程中的求逆运算,并根据费马小定理,采用构建加法链的方法将求逆计算过程中的乘法计算量减少到O(logm)次,所述m为椭圆曲线加密算法中的密钥长度。
4.如权利要求2或3所述的适用于RFID安全通信的椭圆曲线加密协处理器,其特征在于,所述ECC协处理器指令控制器包括依次连接的计数器、点乘控制器和功能单元,所述计数器用于统计寄存器k的循环次数,以标注点乘的开始和结束;所述点乘控制器根据所述状态指令寄存器中的指令,以状态机的方式向功能单元发送控制指令;所述功能单元接收所述控制指令控制相应子单元工作,功能单元包括数据准备子单元、数据互换子单元、点加倍点子单元和返回计算结果子单元,数据准备子单元用于根据López-Dahab投影坐标下的Montgomery梯形点乘算法完成直角坐标向投影坐标的转换,数据互换子单元用于将椭圆曲线上两点的坐标进行互换;点加倍点子单元用于对互换后的点执行点加和倍点计算,点加倍点计算结束后得到的点乘计算结果由返回计算结果子单元返回至寄存器阵列的临时寄存器中。
5.如权利要求1或2所述的适用于RFID安全通信的椭圆曲线加密协处理器,其特征在于,所述协处理器外部接口通过低位宽总线的方式进行外部数据交互,寄存器阵列中的数据读写均以8bits宽度构成的字节形式进行。
6.如权利要求1或2所述的适用于RFID安全通信的椭圆曲线加密协处理器,其特征在于,所述加密协处理器通过Schnorr’s身份认证协议与RFID标签系统控制器进行通信。
7.如权利要求2所述的适用于RFID安全通信的椭圆曲线加密协处理器,其特征在于,所述临时寄存器个数为5个。
CN201410119582.5A 2014-03-27 2014-03-27 一种适用于rfid安全通信的椭圆曲线加密协处理器 Active CN103903047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410119582.5A CN103903047B (zh) 2014-03-27 2014-03-27 一种适用于rfid安全通信的椭圆曲线加密协处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410119582.5A CN103903047B (zh) 2014-03-27 2014-03-27 一种适用于rfid安全通信的椭圆曲线加密协处理器

Publications (2)

Publication Number Publication Date
CN103903047A true CN103903047A (zh) 2014-07-02
CN103903047B CN103903047B (zh) 2017-02-15

Family

ID=50994358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410119582.5A Active CN103903047B (zh) 2014-03-27 2014-03-27 一种适用于rfid安全通信的椭圆曲线加密协处理器

Country Status (1)

Country Link
CN (1) CN103903047B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105471855A (zh) * 2015-11-19 2016-04-06 复旦大学 一种用于电子标签快速身份鉴别的低功耗椭圆曲线加密引擎
CN106775575A (zh) * 2016-12-16 2017-05-31 西安电子科技大学 基于二次剩余的低成本rfid认证协议的乘法器
CN107425968A (zh) * 2017-06-22 2017-12-01 广东工业大学 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统
CN107437998A (zh) * 2016-05-27 2017-12-05 恩智浦有限公司 使用不安全和安全环境计算安全椭圆曲线标量乘法
CN109981116A (zh) * 2019-03-25 2019-07-05 眸芯科技(上海)有限公司 Bch码中bm算法的求逆电路、实现方法及应用
CN110704109A (zh) * 2019-09-30 2020-01-17 华中科技大学 一种椭圆曲线密码协处理器
CN111865560A (zh) * 2020-06-23 2020-10-30 华中科技大学 一种aes密码协处理器及终端设备
CN114238205A (zh) * 2021-11-25 2022-03-25 南京航空航天大学 一种抗功耗攻击的高性能ecc协处理器系统
CN115580402A (zh) * 2022-12-09 2023-01-06 蓝象智联(杭州)科技有限公司 一种用于安全多方计算的数据隐匿查询方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412965A (zh) * 2011-08-09 2012-04-11 深圳市德卡科技有限公司 椭圆曲线密码协处理器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412965A (zh) * 2011-08-09 2012-04-11 深圳市德卡科技有限公司 椭圆曲线密码协处理器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
但永平等: "并行设计的高性能随机椭圆曲线加密协处理器", 《计算机工程与科学》, vol. 31, no. 2, 15 February 2009 (2009-02-15), pages 104 - 107 *
怀莲等: "小面积_低能耗的GF_2_m_域ECC模运算VLSI实现", 《微电子学与计算机》, vol. 25, no. 12, 31 December 2008 (2008-12-31), pages 80 - 83 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105471855A (zh) * 2015-11-19 2016-04-06 复旦大学 一种用于电子标签快速身份鉴别的低功耗椭圆曲线加密引擎
CN107437998B (zh) * 2016-05-27 2022-05-10 恩智浦有限公司 使用不安全和安全环境计算安全椭圆曲线标量乘法
CN107437998A (zh) * 2016-05-27 2017-12-05 恩智浦有限公司 使用不安全和安全环境计算安全椭圆曲线标量乘法
CN106775575A (zh) * 2016-12-16 2017-05-31 西安电子科技大学 基于二次剩余的低成本rfid认证协议的乘法器
CN106775575B (zh) * 2016-12-16 2019-03-26 西安电子科技大学 基于二次剩余的低成本rfid认证协议的乘法器
CN107425968A (zh) * 2017-06-22 2017-12-01 广东工业大学 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统
CN109981116A (zh) * 2019-03-25 2019-07-05 眸芯科技(上海)有限公司 Bch码中bm算法的求逆电路、实现方法及应用
CN109981116B (zh) * 2019-03-25 2023-04-18 眸芯科技(上海)有限公司 Bch码中bm算法的求逆电路、实现方法及应用
CN110704109A (zh) * 2019-09-30 2020-01-17 华中科技大学 一种椭圆曲线密码协处理器
CN110704109B (zh) * 2019-09-30 2021-10-08 华中科技大学 一种椭圆曲线密码协处理器
CN111865560B (zh) * 2020-06-23 2021-07-27 华中科技大学 一种aes密码协处理器及终端设备
CN111865560A (zh) * 2020-06-23 2020-10-30 华中科技大学 一种aes密码协处理器及终端设备
CN114238205A (zh) * 2021-11-25 2022-03-25 南京航空航天大学 一种抗功耗攻击的高性能ecc协处理器系统
CN114238205B (zh) * 2021-11-25 2024-04-12 南京航空航天大学 一种抗功耗攻击的高性能ecc协处理器系统
CN115580402A (zh) * 2022-12-09 2023-01-06 蓝象智联(杭州)科技有限公司 一种用于安全多方计算的数据隐匿查询方法
CN115580402B (zh) * 2022-12-09 2023-03-17 蓝象智联(杭州)科技有限公司 一种用于安全多方计算的数据隐匿查询方法

Also Published As

Publication number Publication date
CN103903047B (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN103903047A (zh) 一种适用于rfid安全通信的椭圆曲线加密协处理器
CN106850221B (zh) 信息加密、解密方法及装置
JP4671571B2 (ja) 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
Shih et al. Securing M2M with post-quantum public-key cryptography
US6691921B2 (en) Information processing device
CN101405988B (zh) 用于安全地确定数据的方法
GB2585885A (en) Cryptographic architecture for cryptographic permutation
CN104488219A (zh) 用于在射频识别标签和读取设备之间进行安全通信的方法和系统
CN107579813A (zh) 信息加密、解密方法及装置
JP4682852B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8817973B2 (en) Encrypting method having countermeasure function against power analyzing attacks
CN100428140C (zh) 椭圆曲线密码体制协处理器的实现方法
CN101782846B (zh) 用于蒙哥马利乘法的运算电路及密码电路
CN109039640A (zh) 一种基于rsa密码算法的加解密硬件系统及方法
Liu et al. Design and implementation of an ECC-based digital baseband controller for RFID tag chip
CN107425968A (zh) 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统
CN102043916A (zh) 一种高性能可扩展公钥密码协处理器结构
Hutter et al. NaCl’s crypto_box in hardware
Martin et al. Efficient ASIC implementation and analysis of two EPC-C1G2 RFID authentication protocols
CN105471855A (zh) 一种用于电子标签快速身份鉴别的低功耗椭圆曲线加密引擎
CN109214213A (zh) 一种大整数模乘加算法的实现电路及方法
Tan et al. An energy-efficient ECC processor of UHF RFID tag for banknote anti-counterfeiting
CN103336920B (zh) 用于无线传感网络soc芯片的安全系统
CN114218594A (zh) 加解密初始化配置方法、边缘端、加解密平台及安全系统
CN100518058C (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
C14 Grant of patent or utility model
GR01 Patent grant