一种rfid智能卡芯片的rsa协处理器的制作方法

文档序号:6369058阅读:139来源:国知局
专利名称:一种rfid智能卡芯片的rsa协处理器的制作方法
技术领域
本发明涉及RFID安全领域,尤其是一种RFID智能卡芯片的RSA协处理器。
背景技术
从智能卡芯片本身特性来看,RFID智能卡的安全性、运算能力、大容量、低成本、低功耗都是主要的研究方向,其中安全问题在智能卡应用过程中具有特别重要的地位,不论使用智能卡的用户、银行、还是零售商,关注的无非就是信息传递的安全性和用户身份认证和交易的可靠性,加之人们对智能卡安全性的期望度较高,很多智能卡将会被应用到一些敏感领域中,如果这些涉及个人隐私的信息被泄露,将降低用户对采用这些智能卡的系统 的任度。从智能卡芯片的角度来说,解决智能卡安全问题可以从软件角度、硬件角度、安全认证机制等角度进行保证。但是归根到底,最根本的还是密码技术。根据加密密钥和解密密钥的异同,可以将密码体制分为对称密码体制和非对称密码体制。智能卡经常采用的密码体制是对称密码体制DES/3DES算法,到目前为止,DES/3DES算法已经广泛使用并且安全性能显示良好。但是DES/3DES算法一个主要的不足就是对称密钥不允许公开,所以出于安全性的考虑,每隔一段时间密钥就需要更换一次,但是这个过程中加解密双方在新密钥更新传送过程很容易把新密钥泄露出去。而RSA算法作为非对称密码体制的典型代表,其加密和解密使用的密钥是不同的,其中一个密钥属于公开密钥,可以用来对发送给对方的数据进行加密,从而在根本上克服了所有对称密码体制的弊端,是密码学发展史的一个重大的进步。RSA是优秀的密码算法,它利用的是两个大素数的乘积难以分解这一数学特性。此算法的实现难点就是需要进行几百位十进制数的运算,在PC机上软件实现1024比特的RSA加解密过程都需要将近IOs的时间,如果使用普通智能卡Sbits CPU进行运算,是几乎不可能实现的。所以在智能卡上实现RSA公钥密码体制必须通过对其嵌入RSA密码协处理器来协助完成。在智能卡上实现RSA算法具有相当的难度,不单要面对大数运算和RSA相关的各种算法的实现及优化,同时在速度、时序、灵活性、面积、功耗等多方面都要根据设计目标综合考虑,以达到平衡。

发明内容
本发明要解决的技术问题是提供一种运算速度快,整体性能良好且扩展能力强的应用于RFID智能卡芯片的RSA协处理器。为了解决上述技术问题,本发明所采用的技术方案是一种RFID智能卡芯片的RSA协处理器,所述RSA协处理器通过外部接口连接至智能卡CPU,所述RSA协处理器包括用于控制整个RSA加解密流程的主控制单元,所述主控制单元通过控制线分别连接有存储控制单元、预处理单元及模幂运算单元,所述模幂运算单元通过控制线连接有约减处理单元,所述预处理单元、模幂运算单元及约减处理单元连接有一复用逻辑运算单元,所述存储控制单元与所述预处理单元、模幂运算单元及约减处理单元相连并通过外部接口连接至智能卡CPU。进一步作为优选的实施方式,所述预处理单元包括预处理控制单元及预处理数据通路,所述预处理数据通路采用多路选择器和移位寄存器对数据进行路由及缓冲存储操作,所述预处理控制单元通过预处理数据通路连接至存储控制单元及复用逻辑运算单元。进一步作为优选的实施方式,所述模幂运算单元包括用于实现RSA协处理器运算算法外循环的运算次序控制的模幂运算控制单元;采用蒙哥马利算法进行RSA加解密模乘运算的模乘运算单元;及用于数据路由和缓冲存储操作的模幂运算数据通路;所述模幂运算控制单元根据来自主控制单元的启动信号进行模幂运算,所述模乘 运算单元根据来自模幂运算控制单元的启动信号启动模乘运算。进一步作为优选的实施方式,所述模乘运算单元包括模乘运算控制单元和模乘运算数据通路,所述模乘运算控制单元包括完成蒙哥马利算法的时序电路单元,所述时序电路单元通过控制复用逻辑运算单元完成逻辑运算,所述模乘运算数据通路一方面对模乘运算控制单元获取的存储控制单元的数据进行缓冲存储,并将存储的数据送入复用逻辑运算单元进行运算,另一方面将复用逻辑运算单元的运算结果进行数据路由,包括将需要再次进行下一轮运算的数据缓存,或者将需要返回存储控制单元的数据缓存。进一步作为优选的实施方式,所述约减处理单元包括约减处理控制单元和约减处理数据通路,所述约减处理单元通过调用复用逻辑运算单元完成对模乘运算后的数据进行约减处理的算术逻辑运算,所述约减处理数据通路一方面实现约减处理单元从存储控制单元获取的数据进行路由及缓存操作,另一方面实现对复用逻辑运算单元结果数据的输出缓存及路由。进一步作为优选的实施方式,所述复用逻辑运算单元包括超前进位串联式32位加法器和并行逻辑运算电路,所述并行逻辑运算电路同时支持两个32位加法操作和两个32位乘法操作。进一步作为优选的实施方式,所述并行逻辑运算电路包括基四Booth算法无符号编码电路、32位无符号乘法部分积解码电路、混合型Wal Iace-Tree部分积压缩电路及64位改进型超前进位加法器,所述基四Booth算法无符号编码电路经32位无符号乘法部分积解码电路连接至混合型Wallace-Tree部分积压缩电路,所述混合型Wallace-Tree部分积压缩电路的输出端连接至64位改进型超前进位加法器。本发明的有益效果是本发明RSA协处理器通过预处理单元完成初始参数的计算,并将预处理、模乘运算及约减处理用到的逻辑运算集成到复用逻辑运算单元中,极大的提高了协处理器的数据处理效率,减轻了智能卡CPU的数据处理压力,满足智能卡芯片RSA加解密算法的效率和稳定性要求;进一步,本发明RSA协处理器具有良好的扩展性,采用模乘运算单元改进的基_32Montgomery模乘运算算法,可以方便地向更高比特位的RSA协处理器扩展。


图I是本发明RSA协处理器的整体框架示意图2是本发明预处理单元的电路结构示意图;图3是本发明模幂运算单元的电路结构示意图;图4是本发明模乘运算单元的电路结构示意图。图5是本发明约减处理单元的电路结构示意图。图6是本发明复用逻辑运算单元中并行逻辑运算电路的结构示意图。
具体实施例方式下面结合附图对本发明的具体实施方式
作进一步说明图I是本发明RSA协处理器的整体框架示意图,参照图1,本发明RSA协处理器包 括用于控制整个RSA加解密流程的主控制单元1,所述主控制单元I通过控制线分别连接有存储控制单元5、预处理单元2及模幂运算单元3,所述模幂运算单元3通过控制线连接有约减处理单元4,所述预处理单元2、模幂运算单元3及约减处理单元4连接有一复用逻辑运算单元6,所述存储控制单元5与所述预处理单元2、模幂运算单元3及约减处理单元4相连并通过外部接口 7连接至智能卡CPU。图中窄的双向箭头代表各个单元之间的控制信号,宽的单向箭头代表各个单元之间的数据传输信号。RSA协处理器的具体工作流程为智能卡CPU通过外部接口 7将加解密数据M、指数E、模数N分别送至RSA协处理器的外部接口 rsa_m, rsa_e, rsa_n上,并通过使能信号rsa_en启动RSA协处理器主控制单元I。主控制单元I获取启动使能信号之后,根据本发明的RSA加解密算法运算流程,开始进行RSA加解密运算,包括预处理运算、主模幂运算及后处理运算。本发明独立出存储控制单元5用于对大数据进行连续存储,并对关键逻辑运算进行提取;独立出复用逻辑运算单元6为各个运算过程调用;主控制单元I负责整个RSA加解密流程在各个控制和处理单元之间的切换,也就是实现主状态控制单元与子状态控制单元之间的流程切换。模幂运算和模乘运算是RSA算法中的核心运算,其运算效率的高低直接关系到RSA协处理器的整体性能。本发明RSA协处理器中模幂运算单元采用的是从左到右扫描式Square-Mult模幂算法,模乘模乘运算算法则是采用基_32Montgomery算法的一种变种来实现,因为Montgomery算法在实现模乘运算的过程会引入参数ΙΓ1,于是在设计过程中通过采用N剩余域映射的方法将主体模幂运算映射到N剩余域来完成。这样会带来一个问题,即在模幂算法实现的开始需要进行参数值¥ = A^mod N和7 = /i mod N的计算,其它的RSA协处理器都是采用软件来完成相类似的初始参数的计算,本协处理器充分考虑到智能卡上层完成复杂运算的负担问题,在对整体面积影响较小的情况下将这两个参数进行了硬件运算实现,从而最大限度地减少智能卡CPU的运算压力,提高智能卡上RSA公钥密码体制的运算效率。另外,本协处理器也对模乘运算采用的基_32Montgomery算法需要的初始值n'。进行了硬件实现。下面对RSA协处理器相关单元进行电路描述I、预处理运算包括对/ = MRmodN、,V = R modiV和n' O三个初始参数值的计算。37和歹的硬件实现是根据Blakley算法进行实际的计算数值硬件改进,将Blakley原
始算法的循环内第一条乘加运算简化成单一的硬件移位操作,而对第二条模数约减运算简化为至多进行一次的减法运算。
本发明独立出预处理单元对这三个参数值进行计算。图2为RSA预处理单元的电路结构示意图。预处理单元2包括预处理控制单元及预处理数据通路,所述预处理数据通路采用多路选择器和移位寄存器对数据进行路由及缓冲存储操作,所述预处理控制单元通过预处理数据通路连接至存储控制单元5及复用逻辑运算单元6。预处理单元在接收到主控制单元I的启动信号之后,开始预处理阶段的数据操作。预处理控制单元通过Xm_sel、t_sel、n_sel信号对存储控制单元5进行数据选 择读入或写回,通过add/sub、mul_sel信号对复用逻辑运算单元进行运算类型选择和加减法运算选择,预处理数据通路采用多路选择器和移位寄存器等对数据进行路由、操作与缓冲存储。其中多路选择器MUXl将xm_in端口输出数据、R_T寄存器、shift_2i端口输出数据进行选择,并将结果送入复用逻辑运算单元的加法端口 a_inl ;多路选择器MUX2将复用逻辑运算单元乘法输出端口 z_out输出数据、存储控制单元n_in端口输出数据进行选择,并送入复用逻辑运算单元加法端口 a_in2 ;多路选择器MUX3将复用逻辑运算单元加法输出端口 a_out输出数据和数据I进行选择,并将结果送入复用逻辑运算单元乘法端口 y_inl。2、模幂运算单元。模幂运算单元通过控制模乘运算单元实现RSA加解密的核心运算流程。本发明中模幂运算采用从左到右扫描式Square-Mult模幂算法。如图3所示,主要包括模幂运算控制单元31、模乘运算单元32及模幂运算数据通路。模幂运算控制单元31用于实现RSA协处理器运算算法外循环的运算次序控制;模乘运算单元32采用蒙哥马利算法进行RSA加解密模乘运算。模幂运算控制单元31接收到主控制单元的主模幂运算启动信号monte_en或后处理运算启动信号post_en,开始执行模幂运算。模幂运算控制单元31根据每一轮模幂运算的算法要求发送幂指数E选择信号sel_e,并将该位数值读入内部寄存器R_E进行判断,根据判断结果,通过sel_d信号控制多路选择器对数据post_d、明文M的32位片段数据R_M、X的32位片段数据R_X进行选择,完成相应的模乘运算数据路由,实现将要完成的模乘运算数据准备,接着模幂运算控制单元31通过向模乘运算控制单元发送模乘运算启动信号montm_en以启动模乘运算。3、模乘运算单元。如图4所示,模乘运算单元包括模乘运算控制单元和模乘运算数据通路。模乘运算单元接收到模幂运算控制单元的模乘运算启动信号montm_en后开始进行模乘运算操作。本发明中模乘运算控制单元采用完成改进型基-32M0ntg0mery算法的时序电路,通过时序电路控制复用逻辑运算单元6完成逻辑运算。模乘运算数据通路一方面对模乘控制单元获取的存储控制单元的数据进行缓冲存储,并将存储的数据送入复用逻辑运算单元进行运算;另一方面将复用逻辑运算单元的运算结果进行数据路由,包括一些需要再次进行下一轮运算的数据缓存,或者将需要返回存储控制单元的数据缓存。模乘运算控制单元通过存储控制单元选择信号SelX、SelN, SelM, SelT对存储控制单元进行数据单元选择,实现对存储控制单元的数据读入与写回。另外通过多路选择器MUXfMUX6完成模乘运算过程对每一次使用复用逻辑运算单元前的数据路由准备。其中中间寄存器1 _乂、R_X0、R_N' 0, R_C、R_N、R_Y、R_TB、R_C、Reg_Z0、Reg_Zl 用于对存储控制单元读入数据、向存储控制单元写回数据和逻辑运算处理过程中的中间数值进行缓冲存储,而Reg_Xl、Reg_Yl、Reg_X2、Reg_Y2、Reg_C、Reg_T则用于多路选择器MUX1 MUX6进行逻辑运算数值选择后的逻辑运算数据缓冲存储。每一次模乘运算结束,都需要向约减处理单元4发送约减处理启动信号redC_en启动约减处理单元对模乘运算结果进行调整。4、约减处理单元。对模乘运算后的数据大小进行调整,保证运算数据符合Montgomery算法的要求。每一次Montgomery模乘运算结果值T都是在N和2N之间,为了保证下一次循环开始时T满足Montgomery模乘运算初始条件,每一次Montgomer模乘运算结束都需要对T值进行数据调整;另外在外循环的最后,T值的位数为2n位,这也需要进行调整,即将T值调整至η位。约减处理单元主要实现上述功能。如图5所示,约减处理单元4包括约减处理控制单元和约减处理数据通路。其中约减处理控制单元通过调用复用逻辑运算单元完成约减处理的算术逻辑运算;而约减处理数据通路一方面实现约减处理单元从存储控制单元获取的数据进行路由及缓存,另一方面实现对复用逻辑运算单元结果数据的输出缓存及路由。约减处理控制单元接收到约减处理单元启动信号redC_en后开启约减处理运算流程。约减处理控制单元通过sel_t、sel_n、sel_x对存储控制单元进行T存储单元、X存储单元、模数N的数据选择定位,并将数据送入约减处理控制单元进行处理。约减处理控制单元通过mul_Sel、add_sub信号对复用逻辑运算单元的运算模式和加减方式进行选择,在减法运算过程中,约减处理单元采用以32位为运算精度,将每一次的加法运算进位通过c_out接口进行输出,再通过约减处理控制单元将下一级的加法运算输入进位通过c_in接 口进行输入,如此往复,完成大数减法操作。5、复用逻辑运算单元。复用逻辑运算单元6将基_32Montgomery算法和预处理、约减阶段需要进行的逻辑运算进行整合,提出可以复用的逻辑运算单元,尽可能减少RSA协处理器整体面积和提高整体的资源利用率。所述复用逻辑运算单元6包括超前进位串联式32位加法器和并行逻辑运算电路,所述并行逻辑运算电路同时支持两个32位加法操作和两个32位乘法操作。参照图6,并行逻辑运算电路包括基四Booth算法无符号编码电路61、32位无符号乘法部分积解码电路62、混合型Wallace-Tree部分积压缩电路63及64位改进型超前进位加法器64,所述基四Booth算法无符号编码电路61经32位无符号乘法部分积解码电路62连接至混合型Wallace-Tree部分积压缩电路63,所述混合型Wallace-Tree部分积压缩电路63的输出端连接至64位改进型超前进位加法器64。其中混合型Wallace-Tree部分积压缩电路63采用CSA和4:2压缩器混合部分积压缩电路结构,64位超前进位加法器64采用以8位超前进位加法器为基本单元的两级进位加法链超前进位加法器结构。并行逻辑运算电路主要将基-32Montgomery算法内循环逻辑运算式(C」, Ti+j) =Ti+j+XiYjQiN^Cp1的右边运算进行一次性实现。该结构将两个32位加法运算分别嵌入两个乘法运算运算过程之中,整个并行逻辑运算结构最大限度地优化了关键路径的延迟,具有良好的性能,并提高硬件资源的利用率,其对称性和规整性有利于后期的布局布线。以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
权利要求
1.一种RFID智能卡芯片的RSA协处理器,所述RSA协处理器通过外部接口(7)连接至智能卡CPU,其特征在于所述RSA协处理器包括用于控制整个RSA加解密流程的主控制单元(I),所述主控制单元(I)通过控制线分别连接有存储控制单元(5 )、预处理单元(2 )及模幂运算单元(3),所述模幂运算单元(3)通过控制线连接有约减处理单元(4),所述预处理单元(2)、模幂运算单元(3)及约减处理单元(4)连接有一复用逻辑运算单元(6),所述存储控制单元(5 )与所述预处理单元(2 )、模幂运算单元(3 )及约减处理单元(4 )相连并通过外部接口(7)连接至智能卡CPU。
2.根据权利要求I所述的一种RFID智能卡芯片的RSA协处理器,其特征在于所述预处理单元(2)包括预处理控制单元及预处理数据通路,所述预处理数据通路采用多路选择器和移位寄存器对数据进行路由及缓冲存储操作,所述预处理控制单元通过预处理数据通路连接至存储控制单元(5)及复用逻辑运算单元(6)。
3.根据权利要求I所述的一种RFID智能卡芯片的RSA协处理器,其特征在于,所述模幂运算单元(3)包括 用于实现RSA协处理器运算算法外循环的运算次序控制的模幂运算控制单元(31); 采用蒙哥马利算法进行RSA加解密模乘运算的模乘运算单元(32); 及用于数据路由和缓冲存储操作的模幂运算数据通路; 所述模幂运算控制单元(31)根据来自主控制单元(I)的启动信号进行模幂运算,所述模乘运算单元(32 )根据来自模幂运算控制单元(31)的启动信号启动模乘运算。
4.根据权利要求3所述的一种RFID智能卡芯片的RSA协处理器,其特征在于所述模乘运算单元(32)包括模乘运算控制单元和模乘运算数据通路,所述模乘运算控制单元包括完成蒙哥马利算法的时序电路单元,所述时序电路单元通过控制复用逻辑运算单元(6)完成逻辑运算,所述模乘运算数据通路一方面对模乘运算控制单元获取的存储控制单元(5)的数据进行缓冲存储,并将存储的数据送入复用逻辑运算单元(6)进行运算,另一方面将复用逻辑运算单元(6)的运算结果进行数据路由,包括将需要再次进行下一轮运算的数据缓存,或者将需要返回存储控制单元(5)的数据缓存。
5.根据权利要求I所述的一种RFID智能卡芯片的RSA协处理器,其特征在于所述约减处理单元(4)包括约减处理控制单元和约减处理数据通路,所述约减处理单元通过调用复用逻辑运算单元(6)完成对模乘运算后的数据进行约减处理的算术逻辑运算,所述约减处理数据通路一方面实现约减处理单元从存储控制单元(5 )获取的数据进行路由及缓存操作,另一方面实现对复用逻辑运算单元(6 )的结果数据的输出缓存及路由。
6.根据权利要求I所述的一种RFID智能卡芯片的RSA协处理器,其特征在于所述复用逻辑运算单元(6)包括超前进位串联式32位加法器和并行逻辑运算电路,所述并行逻辑运算电路同时支持两个32位加法操作和两个32位乘法操作。
7.根据权利要求6所述的一种RFID智能卡芯片的RSA协处理器,其特征在于所述并行逻辑运算电路包括基四Booth算法无符号编码电路(61)、32位无符号乘法部分积解码电路(62)、混合型Wallace-Tree部分积压缩电路(63)及64位改进型超前进位加法器(64),所述基四Booth算法无符号编码电路(61)经32位无符号乘法部分积解码电路(62)连接至混合型Wallace-Tree部分积压缩电路(63),所述混合型Wallace-Tree部分积压缩电路(63)的输出端连接至64位改进型超前进位加法器(64)。
全文摘要
本发明公开了一种RFID智能卡芯片的RSA协处理器,所述RSA协处理器包括用于控制整个RSA加解密流程的主控制单元,所述主控制单元通过控制线分别连接有存储控制单元、预处理单元及模幂运算单元,所述模幂运算单元通过控制线连接有约减处理单元,所述预处理单元、模幂运算单元及约减处理单元连接有一复用逻辑运算单元,所述存储控制单元与所述预处理单元、模幂运算单元及约减处理单元相连并通过外部接口连接至智能卡CPU。本发明RSA协处理器极大的提高了数据处理效率,减轻了智能卡CPU的数据处理压力,满足智能卡芯片RSA加解密算法的效率和稳定性要求。
文档编号G06F7/60GK102707924SQ201210135818
公开日2012年10月3日 申请日期2012年5月2日 优先权日2012年5月2日
发明者李晶晶, 王德明, 胡建国, 谭洪舟, 郑俊辉, 陈宇 申请人:广州中大微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1