一种rsa算法及其ip核的制作方法

文档序号:7697002阅读:261来源:国知局
专利名称:一种rsa算法及其ip核的制作方法
技术领域
本发明涉及电子信息加密技术,特别是涉及一种RSA算法及其IP核的电子技术。
背景技术
随着信息技术的飞速发展,网络通信中的身份认证和信息安全传输问题正 逐渐受到人们的关注和重视。由于公钥密码体制能能够有效的解决数字签名、信 息验证和身份认证,因此各个国家都投入了大量的人力、物力进行这方面的研究。 RSA (Rivest-Shamir-Adleman)加密算法自其诞生之日起,就成为被广泛接受且被实现的通 用公钥加密方法。实现加密算法,可以用软件实现,也可以转换成硬件实现的ASIC (专用集成电路) 芯片,而硬件加密是商业和军事用途的主要选择。与传统的软件加密相比,硬件加密的主要 特点是一是稳定性和兼容性好,速度更快;二是安全性好,抗解密攻击强度高,能够较好 地避免软件实现中密钥泄漏,内存被扫描等问题。随着硬件技术的发展,智能卡、IC卡(集成电路卡)和电子钥匙等出现在电子商 务的硬件大家庭中,它们集数据加密和数据存储两大功能于一身,有着体积小,使用方便, 功能强大,安全性好,价格便宜等特点,成为了推动电子商务发展的强大动力之一,还广泛 应用于交通、医疗、身份认证等其他领域,极大地提高了人们生活和工作的现代化程度。在 这些小型移动设备中实现公钥密码体制的RSA密码协处理器,有着极其重要的意义,但目 前存在两个主要问题一是RSA的VLSI (超大规模集成电路)实现面积过大,二是RSA的模 幂乘运算速度较低。

发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种注重小 面积,高性能,面向低端的RSA IP核;通过改进的加密算法,并选用合适的硬件结构,大大 缩小了面积,并取得了优良的性能,只需要较少的加法和存储空间的RSA算法及其IP核 (Intellectual Property,知识产权核)。为了解决上述技术问题,本发明所提供的一种RSA算法,其特征在于,实现RSA模 幂模乘的蒙哥马利算法中计算R2 mod N的步骤1)计算 Mont2 = 2R mod N = 2*2r mod N ;2)调用模幂单元,将Mont2作为底数,r作为指数,计算H= (Mont2)r mod N。Mont2相当于2的蒙哥马利表示,经过模幂计算后在去R因子之前得到的结果是H= mod N, 即R2 mod N,从而巧妙的解决了问题,提高了运算效率。进一步的,所述步骤1)中,计算Mont2的算法如下(W是IP核中字的位数)1.令 Nwords = (n/ff);2.对j从0到Nwords,执行如下循环操作2. 1 令 T[j] =〃 00·. 00〃
2. 2 如果 j = (n-2/ff),则令 T 的第(n_2)位为 13.令 i = r-n+14.令 sign = 05.当i≥0时,执行如下循环操作5.1 令 ca = 05. 2 令 cm = 05. 3对j从0到Nwords,执行如下循环操作5. 3. 1 如果 sign = 1,则令{ca, Sum} = {T[j] (ff-2 0),cm} +N[j]+ca否则令{ca,Sum}= T[j] (ff-2:0),cm}-N[j]_ca5. 3. 2 令 cm = T [j] (ff-1)5. 3. 3 令 T[j] = Sum5. 4.令 sign 为 ca 与 cm 异或5· 5 令 i = i-16.如果sign = 1,执行如下操作,即R = T+N 6. 1 令 ca = 06. 2对j从0到Nwords,执行如下循环操作6. 2. 1 令{ca, T[j]} = T[j]+N[j]+ca本发明所提供的一种RSA算法,其特征在于,实现RSA模幂的蒙哥马利算法中的模 平方算法,具体算法如下(k是R的字数)1.对i从0到k-Ι,执行如下循环操作1. 1 令 c = 01. 2 对 j 从 0 到 i-Ι,执行循环操作(c,T[j]) = T[j]+2*A[j]*A[i]+c1.3 令(c,T[j]) =T[j]+A[j]*A[i]+c1· 4 令(Τ [j+1],T [j]) =T [j]+c1. 5 令 c = 01· 6 令 m = T
*nacc mod W1. 7 令(c,s) = T
+m*N
1. 8 对 j 从 1 到 k-1,执行循环操作(c,T[j-1]) = T[j]+m*N[j]+c1. 9 令(c,T[k-1]) = T[k]+c
1. 10 令 T [k] = T [k+l]+c1. 11 如果 T > N,则令 T = T-N2.返回 T本发明所提供的一种运行(实现)所述RSA算法的IP核包括接口模块(IFC)、控 制模块(CTRL)、存储器模块(MEM)、模幂模块(EXP)和模约减模块(RED);其中,控制模块分 别连接模约减模块(RED)、存储器模块(MEM)、模幂模块(EXP)和接口模块(IFC);模约减模 块(RED)分别连接模幂模块(EXP)、存储器模块(MEM);存储器模块(MEM)分别连接模幂模 块(EXP)、接口模块(IFC);接口模块完成内外数据的交互,将RSA模乘和模幂的操作数送入存储器模块,同 时向控制模块写入控制指令,并读出状态寄存器的值;
控制模块实现最顶层的控制逻辑,负责启动RSA运算;模约减模块计算Mont2,并完成模幂和模乘后的取模减法调整;存储器模块存储RSA需要计算的大数,中间结果和最终结果;模幂模块完成RSA IP核的核心运算,即模幂和模乘运算。进一步的,所述控制模块通过接口模块接受用户的指令,调度运算单元——模幂 模块和模约减模块,完成整个RSA运算。进一步的,所述控制模块负责分配存储单元给模幂模块,模约减模块和接口模块, 在任一时刻只能有一个模块访问存储器模块,以免产生混乱。进一步的,所述整个运算(AB mod N或A*B mod N)的控制逻辑被分为两步1)输入预计算指令RSA_RR,启动Nacc根据大数N计算得到蒙哥马利运算中需要 的N 0],然后启动模约减模块计算得到Mont2,最后启动模幂模块得到R2 mod N;2)根据模幂指令RSA_EXP,或模乘指令RSA_MUL,启动模幂模块进行相应的计算, 计算结果与N比较,如果比N大就启动模约减模块,执行取模减法运算。由于模约减模块本 身不能将计算结果放到正确的存储单元,所以最后由模幂模块执行搬移的操作。进一步的,所述模幂模块内设有ExpCtrl单元和连接所述ExpCtrl单元的MMM单 元;所述MMM单元内设有MMMCtrl单元和核心处理单元PE。进一步的,所述ExpCtr 1单元用于实现控制模块中指定的四种操作即EXP_ EXP (模幂),EXP_MUL (模乘),EXP_MV (搬移),EXP_RR (计算 R2 mod N),使用 RL (Right to Left,从右至左扫描)方式的二进制位扫描算法计算模幂,从低位到高位读入指数(EXP_ EXP读入B,EXP_RR读入r),将整个模幂运算分解为乘法、平方、搬移、比较四个最基本的操 作,向MMM单元发出相应的指令。进一步的,所述MMMctrl单元用于实现ExpCtrl单元中指定的四个基本操作乘 法、平方、搬移、比较;用于控制Cios蒙哥马利模乘和模平方的运算流程,从存储器模块中 读取大数,根据ExpCtrl的指令,向PE传递正确的操作数,执行(c, T) = T+XY+c, (c, Τ)= T+2XX+C两种运算。进一步的,所述核心处理单元PE包括一个乘法器WxW,一个加法器W+W,以及一个 4-2压缩器,采用2级流水线设计。使IP的关键路径得到优化,工作频率得以提高。进一步的,所述模乘器采用两级流水线,第一级为用于计算CIOS蒙哥马利算法中 的m = nacc*t0,xiyj = Xi*y」、以及IiiHi = n^m的32位乘法器,第二级使用32位加法器,力口 法器前使用4-2压缩器把四个操作数转换成两个操作数。进一步的,所述核心处理单元PE中采用2W位的单口 SRAM(静态随机存取存储器) 作为中间结果存储器。这样每次读和写都可以完成2W位的数据传输,读写交替进行便可以 满足计算要求,不影响IP的性能。进一步的,所述存储器模块中使用SRAM存储所有操作数和计算结果。利用本发明提供的RSA算法及其IP核,其特点如下支持大于32位,小于等于2048位的模幂和模乘运算;密钥保护功能,IP使用更加安全;在100MHz频率下,平均完成1024位模幂运算33次每秒,2048位模幂运算3. 7次 每秒;
操作简单,不需要外部做任何辅助运算;IP接口采用通用接口设计,更利于S0C(SyStem on Chip,片上系统)集成;通过层次化控制逻辑和高效的数据通路,实现IP核的高性能;本存储系统具有高性能,小面积,高安全性的特点。


图1为本发明实施例RSA IP整体框图;图2为本发明实施例EXP内部框图;图3为本发明实施例MMM内部框图;图4为本发明实施例CTRL模块状态转移图;图5为本发明实施例PE数据通路。
具体实施例方式以下结合

对本发明的实施例作进一步详细描述,但本实施例并不用于限 制本发明,凡是采用本发明的相似结构、方法及其相似变化,均应列入本发明的保护范围。本发明的RSA算法改进蒙哥马利算法是实现RSA模幂模乘的经典算法,本发明采用蒙哥马利的改进算法 CIOS算法,这种方法需要较少的加法和存储空间,比较适合通用处理器实现。蒙哥马利算法的基本形式如下选择参数N,,IT1,满足 0 < IT1 < N,0 < N,< R,使得 Ι^Ι^-ΝΦΝ,= 1Mont (a, b) = a*b*R_lmod N (mod N 艮口对 N 取模)L 令 t = a*b2.令 u= (t+(t*N,mod R)*N)/R注其中R与N互素,为计算方便,R通常是机器字长的倍数。对0 < t < R*N,结 果u的范围是(0,2N),因此取得最终结果之前需要进行取模减法调整如下如果u彡N则返回u-N,否则返回uR的取值RSA加解密中的模幂运算,就是不断调用蒙哥马利算法进行模乘和模平方。本发明
取 R = mod N,r = (、二+二1. tfordlenSth (η 是模数 N 的比特数,wordlength 是设计中乘
法器位宽,即IP核中字的位数W)。计算ab mod N时,取0 < a < 2N,则可保证模幂过程中 的每次模乘得到的结果都在(0,2N),正好处于下一次蒙哥马利模乘要求的输入范围内。也 就是说,中间步骤免除了附加取模减法,仅需要在模幂的最后一次模乘运算后,比较u和N 的值,如果u > η.进行取模减法调整。计算R2 mod N蒙哥马利算法会带来一定的附加计算,需要将操作数转换成蒙哥马利表示,SP弓丨 入R因子。在计算S = a*b mod N之前,先要通过计算Mont (a,R2), Mont (b, R2)将a,b表 小成3 = aRmod N,5 = bRmod M,计算Mont(Sj)得至IjS =. abR mod N,再计算Mont (S,l)去除 R 因
子,得到S = ab mod N。因此R2 mod N是蒙哥马利算法中一个重要的参数。如果N位数很 高,直接计算R2 mod N会相当复杂。
为解决上述问题,本发明充分利用芯片中算法和数据通路优化最好的MontO算 法,实现RSA模幂模乘的蒙哥马利算法中计算R2 mod N的步骤1)计算 Mont2 = 2R mod N = 2*2r mod N2)调用模幂单元,将Mont2作为底数,r作为指数,计算H= (Mont2)r mod N。Mont2 相当于2的蒙哥马利表示,经过模幂计算后在去R因子之前得到的结果是H= mod N, 即R2 mod N,从而巧妙的解决了问题,提高了运算效率。计算所述步骤1)中的Mont2的算法如下(W是IP核中字的位数)1.令 Nwords = (n/ff);2.对j从O到Nwords,执行如下循环操作2. 1 令 T[j] =" 00·. 00〃2. 2 如果 j = (n-2/ff),则令 T 的第(n_2)位为 13.令 i = r-n+14.令 sign = O5.当i彡0时,执行如下循环操作5.1 令 ca = 05. 2 令 cm = 05. 3对j从0到Nwords,执行如下循环操作5. 3. 1 如果 sign = 1,则令{ca, Sum} = {T[j] (ff-2 0), cm} +N[j]+ca否则令{ca,Sum}= T[j] (ff-2:0),cm}-N[j]_ca5. 3. 2 令 cm = T[j] (W-I)5. 3. 3 令 T[j] = Sum5. 4.令 sign 为 ca 与 cm 异或5. 5 令 i = i_l6.如果sign = 1,执行如下操作,即R = T+N 6.1 令 ca = 06.2对j从0到Nwords,执行如下循环操作6. 2. 1 令{ca, T[j]} = T[j]+N[j]+ca采用改进的Montgomery模平方算法模平方算法就是输入的两个乘数相等的情况,是一种特殊的模乘。通过改进可以 使计算周期为同等长度下乘法的四分之三。具体算法如下(k是R的字数)1.对i从0到k-Ι,执行如下循环操作1.1 令c = 01. 2 对 j 从 0 到 i_l,执行循环操作(c,T[j]) = T[j]+2*A[j]*A[i]+c1· 3 令(c,T[j]) =T[j]+A[j]*A[i]+c1.4 令(T[j+l],T[j]) = T[j]+c1· 5 令 c = 01· 6 令 m = T
*nacc mod W1· 7 令(c,s) = T
+m*N
1. 8 对 j 从 1 到 k-1,执行循环操作(c,T[j-1]) = T [ j]+m*N[ j] +c
1· 9 令(c,T[k_l]) = T[k]+c1· 10 令 T [k] = T [k+l]+c1. 11 如果 T > N,则令 T = T-N2.返回 T与普通乘法不同,内循环中第一个循环体,j没有像i那样从0增加到k-Ι,而是采 用乘以2来改进,由于只需要将乘法器输出结果向高位映射一位,改进代价比较小。本发明的IP核硬件设计本发明合理划分模块,层次化控制逻辑,设计高效的存储系统,优化数据通路,最 终使芯片达到高性能、小面积。IP核整体上分五个功能模块接口模块(IFC)、控制模块 (CTRL)、存储器模块(MEM)、模幂模块(EXP)和模约减模块(RED),整体框图如图1所示,其 中,控制模块分别连接模约减模块(RED)、存储器模块(MEM)、模幂模块(EXP)和接口模块 (IFC);模约减模块(RED)分别连接模幂模块(EXP)、存储器模块(MEM);存储器模块(MEM) 分别连接模幂模块(EXP)、接口模块(IFC); IFC模块完成内外数据的交互,将RSA模乘和模幂的操作数送入MEM模块,同时向 CTRL模块写入控制指令,并读出状态寄存器的值。CTRL实现最顶层的控制逻辑,负责启动 RSA运算。RED计算Mont2,并完成模幂和模乘后的取模减法调整。MEM模块存储RSA需要 计算的大数,中间结果和最终结果。EXP完成RSA IP核的核心运算,即模幂和模乘运算。本 发明适用于智能卡等面积较小的设备,因此不适合用比较消耗硬件资源的心动阵列实现模 乘器,而是使用基32的高基模乘器。如图2所示,EXP模块内设有ExpCtrl单元和连接所述 ExpCtrl单元的MMM单元;如图3所示,所述MMM单元内设有MMMCtrl和核心处理单元PE ;以下分别针对控制逻辑,Montgomery模乘器数据通路,存储策略进行详细阐述。控制逻辑本发明层次化控制逻辑,使运算过程清晰易懂。使用三层状态机实现RSA模幂模 乘运算,由上至下,运算不断细化具体化CTRL模块实现顶层控制;EXP中的ExpCtrl实现 模幂算法流程控制,控制MMM ;MMM中的MMMctrl实现CIOS蒙哥马利模乘算法,控制核心处 理单元PE。以下分别阐述。CTRL 实现最顶层的控制逻辑。通过IFC接受用户的指令,调度运算单元EXP和 RED,完成整个RSA运算。除了控制运算单元的工作状态,CTRL还负责分配存储单元给EXP, RED和IFC,在任一时刻只能有一个模块访问MEM,以免产生混乱。图4是CTRL模块的状态 转移图。如图4所示,整个运算(AB mod N或A*B mod N)被分为两步1)输入预计算指令RSA_RR,启动Nacc根据大数N计算得到蒙哥马利运算中需要 的N ‘ W],然后启动RED计算得到Mont2,最后启动EXP得到R2 mod N ;2)根据模幂指令RSA_EXP,或模乘指令RSA_MUL,启动EXP进行相应的计算,计算结 果与N比较,如果比N大就启动RED,执行取模减法运算。由于RED本身不能将计算结果放 到正确的存储单元,所以最后由EXP执行搬移的操作。ExpCtrl 实现CTRL模块中指定的四种操作EXP_EXP (模幂),EXP_MUL (模乘), EXP_MV (搬移),EXP_RR(计算R2 mod N),使用RL (Right to Left,从右至左扫描)方式的 二进制位扫描算法计算模幂,从低位到高位读入指数(EXP_EXP读入B,EXP_RR读入r),将整个模幂运算分解为乘法、平方、搬移、比较四个最基本的操作,向MMM发出相应的指令。此 夕卜,ExpCtrl还控制每步运算中操作数和结果存放在存储系统的哪一个SRAM中,以便将数 据搬移的开销降低到最小。 MMMctrl 实现ExpCtrl模块中指定的四个基本操作乘法、平方、搬移、比较。主要 控制CIOS蒙哥马利模乘和模平方的运算流程,从MEM中读取大数,根据ExpCtrl的指令,向 PE传递正确的操作数,执行(c,T) = T+XY+c, (c,T) = T+2XX+C两种运算。
Montgomery 模乘器优化RSA IP核的核心处理单元PE包括一个乘法器WxW,一个加法器W+W,以及一个4_2 压缩器,采用2级流水线设计。IP的关键路径得到优化,工作频率得以提高。优化后的蒙哥 马利模乘器数据通路如图5所示
模乘器采用两级流水线。第一级32位乘法器用来计算CIOS蒙哥马利算法中的m =nacc*t0,xiyj = Xi^yj,以及nim = njm。为了缩减面积,第二级使用32位加法器,所以64 位乘积需要分两个时钟周期送入加法器。在这一级,中间结果,乘积的低32位,前一次的加 法进位,以及前一次乘积的高32位相加,加法器前使用4-2压缩器把四个操作数转换成两 个操作数,优化了面积和关键路径。对于模平方,数据通路与模乘类似,差别在于采用了优化算法,只需要将乘法输出 结果向高位映射一位,可以少做一些乘法。在PE的工作过程中,一个周期内既需要读取W位的上一次结果,又需要写入W位 的本次计算结果。由于SRAM(静态随机存取存储器)一个周期内只能读取或写入一个字, 考虑双口 SRAM面积较单口大,本发明采用2W位的单口 SRAM作为中间结果存储器,这样每 次读和写都可以完成2W位的数据传输,读写交替进行便可以满足计算要求,不影响IP的性 能。存储策略本发明最高要进行2048位的模幂模乘运算,这么大的操作数如果用寄存器组存 储,虽然使用方便,但面积开销将会相当大。因此使用SRAM存储所有操作数和计算结果,由 于密钥长度最长可达2048位,处理位宽为32位,所以使用4个72x32SRAM(A,B,N,R),1个 40x64SRAM(T)。本存储系统根据高性能,小面积,高安全性进行设计,具备以下特点1)使用SRAM的代价是同一个SRAM —个周期只能读取或写入一个字,因此设计了 一套SRAM存储策略,使运算过程中的数据搬移开销降到最低。SRAM A,B, N分别用于写入 RSA操作数A,B, N。R用来存放最终结果,T用来存放Montgomery模乘运算中的64位中间 结果。另外,A和R还用来存放模幂过程中每次模乘或模平方后的中间结果。R2 mod N存 放在R SRAM中。ExpCtrl根据模幂模乘的不同步骤确定具体的SRAM映射方案,解决数据相 关问题,2)考虑到对SRAM的操作绝大多数情况是顺序写入操作数,因此只需要向地址寄 存器写入一个地址初始值,随后便可以直接对SRAM读写,地址在IP内部自动加1,无需在地 址总线上连续给出地址信号,有利于减少串扰和降低功耗。3)为提高运算单元读写SRAM的速度,采用了 SRAM和运算单元采用反相时钟设计 的技术,使得存取数据的速度提高了 100%。
4)针对运算的不同阶段,给存放操作数的SRAM设置了不同的权限,包括只读、只写、可读可写,以充分保障加解密的安全性。比如在IFC模块与MEM模块交互的阶段,由于 B SRAM中写入的可能是私钥,所以只设置了写权限,不能读出。
权利要求
一种RSA算法,其特征在于,实现RSA模幂模乘的蒙哥马利算法中计算R2mod N的步骤1)计算Mont2=2R mod N=2*2r mod N;2)调用模幂单元,将Mont2作为底数,r作为指数,计算H=(Mont2)r mod N。Mont2相当于2的蒙哥马利表示,经过模幂计算后在去R因子之前得到的结果是H=2rR mod N,即R2 mod N,从而巧妙的解决了问题,提高了运算效率。
2.根据权利要求1所述的RSA算法,其特征在于,所述步骤1)中,计算Mont2的算法如 下(W是IP核中字的位数)1)令Nwords = (n/ff);2)对j从0到Nwords,执行如下循环操作 2)①令 T[j] =" 00. .00〃 ;2)②如果j= (n-2/W),则令T的第(n-2)位为1 ;3)令i = r-n+1 ;4)令sign = 0 ;5)当i彡0时,执行如下循环操作 5)①令 ca = 0 ;5)②令 cm = 0 ;5)③对j从0到Nwords,执行如下循环操作5)③ I 如果 sign = 1,则令{ca, Sum} = {T[j] (ff-2 0), cm}+N[ j]+ca ; 否则令{ca,Sum} = T[j] (ff-2:0),cm}-N[j]_ca ; 5)③ II 令 cm = T[j](W-l); 5)③ III 令 T[j] = Sum; 5)④令sign为ca与cm异或;5)⑤令i = i-1 ;6)如果sign= 1,执行如下操作,即R = T+N 6)①令 ca = 0 ;6)②对j从0到Nwords,执行如下循环操作 6)② I 令{ca, T[j]} = T[j]+N[j]+ca0
3.—种RSA算法,其特征在于,实现RSA模幂的蒙哥马利算法中的模平方算法,具体算 法如下(k是R的字数)1)对i从0到k-1,执行如下循环操作 1)①令c = 0 ;1)②对 j 从 0 到 i-1,执行循环操作(c,T[j]) =T[j]+2*A[j]*A[i]+c; 1)③令(c,T[j]) = T[j]+A[j]*A[i]+c ; 1)④令(T[j+l],T[j]) =T[j]+c; 1)⑤令c = 0 ;1)⑥令 m = T
*nacc mod ff ; 1)⑦令(c,s) = T
+m*N
;1)⑧对 j 从 1 到 k-1,执行循环操作(c, T[j-1]) = T[j]+m*N[j]+c ;1)⑨令(c,T[k-l]) = T[k]+c ;1)⑩令 T[k] = T[k+l]+c ;1)(11)如果 T > N,则令 T = T-N ;2)返回T。
4.一种运行权利要求1所述RSA算法的IP核,包括接口模块、控制模块、存储器模块、 模幂模块和模约减模块;其中,控制模块分别连接模约减模块、存储器模块、模幂模块和接 口模块;模约减模块分别连接模幂模块、存储器模块;存储器模块分别连接模幂模块、接口 模块;接口模块完成内外数据的交互,将RSA模乘和模幂的操作数送入存储器模块,同时向 控制模块写入控制指令,并读出状态寄存器的值;控制模块实现最顶层的控制逻辑,负责启动RSA运算;模约减模块计算Mont2,并完成模幂和模乘后的取模减法调整;存储器模块存储RSA需要计算的大数,中间结果和最终结果;模幂模块完成RSA IP核的核心运算,即模幂和模乘运算。
5.根据权利要求4所述的IP核,其特征在于,所述控制模块通过接口模块接受用户的 指令,调度运算单元——模幂模块和模约减模块,完成整个RSA运算。
6.根据权利要求4所述的IP核,其特征在于,所述控制模块负责分配存储单元给模 幂模块,模约减模块和接口模块,在任一时刻只能有一个模块访问存储器模块,以免产生混舌L。
7.根据权利要求4所述的IP核,其特征在于,所述ABmod N或A*B mod N整个运算的 控制逻辑被分为两步1)输入预计算指令RSA_RR,启动Nacc根据大数N计算得到蒙哥马利运算中需要的 N 0],然后启动模约减模块计算得到Mont2,最后启动模幂模块得到R2 mod N;2)根据模幂指令RSA_EXP,或模乘指令RSA_MUL,启动模幂模块进行相应的计算,计算 结果与N比较,如果比N大就启动模约减模块,执行取模减法运算。
8.根据权利要求4所述的IP核,其特征在于,所述模幂模块内设有ExpCtrl单元和连 接所述ExpCtrl单元的MMM单元;所述MMM单元内设有MMMCtrl单元和核心处理单元PE。
9.根据权利要求8所述的IP核,其特征在于,所述ExpCtrl单元用于实现控制模块 中指定的四种操作即EXP_EXP(模幂),EXP_MUL(模乘),EXP_MV(搬移),EXP_RR(计算 R2modN),使用RURightto Left,从右至左扫描)方式的二进制位扫描算法计算模幂,从低 位到高位读入指数(EXP_EXP读入B,EXP_RR读入r),将整个模幂运算分解为乘法、平方、搬 移、比较四个最基本的操作,向MMM单元发出相应的指令。
10.根据权利要求8所述的IP核,其特征在于,所述MMMctrl单元用于实现ExpCtrl单 元中指定的四个基本操作乘法、平方、搬移、比较;用于控制Cios蒙哥马利模乘和模平方 的运算流程,从MEM模块中读取大数,根据ExpCtrl单元的指令,向PE传递正确的操作数, 执行(c,T) = T+XY+c,(c,T) = T+2XX+C 两种运算。
11.根据权利要求8所述的IP核,其特征在于,所述核心处理单元PE包括一个乘法器 WxW, 一个加法器W+W,以及一个4-2压缩器,采用2级流水线设计。
12.根据权利要求10所述的IP核,其特征在于,所述模乘器采用两级流水线,第一级为用于计算Cios蒙哥马利算法中的m = nacc*t0,xiyj = Xi*y」、以及IiiHi = n^m的32位乘法 器,第二级使用32位加法器,加法器前使用4-2压缩器把四个操作数转换成两个操作数。
13.根据权利要求8所述的IP核,其特征在于,所述控制核心处理单元PE中采用2W位 的单口 SRAM作为中间结果存储器。
14.根据权利要求4所述的IP核,其特征在于,所述存储器模块中使用SRAM存储所有 操作数和计算结果。
全文摘要
本发明公开一种RSA算法及其IP核,涉及电子信息加密技术领域;所要解决的是RSA算法的IP核面积过大、运算速度较低的技术问题;该运行所述RSA算法的IP核,包括接口模块、控制模块、存储器模块、模幂模块和模约减模块;其中,控制模块分别连接模约减模块、存储器模块、模幂模块和接口模块;模约减模块分别连接模幂模块、存储器模块;存储器模块分别连接模幂模块、接口模块;本发明具有注重小面积,高性能,面向低端的RSA IP核;通过改进的加密算法,并选用合适的硬件结构,只需要较少的加法和存储空间的特点。
文档编号H04L9/32GK101834723SQ20091004731
公开日2010年9月15日 申请日期2009年3月10日 优先权日2009年3月10日
发明者周玉洁, 李佳璐 申请人:上海爱信诺航芯电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1