一种基于多块RAM的大数运算电路的数据转移方法技术

技术编号:11333457 阅读:104 留言:0更新日期:2015-04-23 00:56
本发明专利技术的基于多块RAM的大数运算电路,包括CPU、运算模块Operator Core以及5块存储器RAM;特征在于:所述5块存储器RAM的数据和地址线总线经不同的多路选择器与运算模块Operator Core和CPU选择性连通;在大数运算过程中无需频繁占用总线。在256位大数的点加、倍点和点乘运算过程中,CPU只需将待运算数据和参数写入至5个存储器RAM的相应位置,然后由运算模块Operator Core经多路选择器读取数据进行运算即可,运算结束后将运算结果写入至存储器RAM中,CPU再将运算结果读出即可。整个运算过程无需频繁占用BUS总线,不易造成数据存储时的堵塞,保证了运算的高效性。

【技术实现步骤摘要】
一种基于多块RAM的大数运算电路的数据转移方法
本专利技术涉及一种基于多块RAM的大数运算电路的数据转移方法,更具体的说,尤其涉及一种可避免对总线的频繁占用和数据调用时数据堵塞的基于多块RAM的大数运算电路的数据转移方法。
技术介绍
目前基于有限域上椭圆曲线离散对数问题的非对称密码算法ECC(EllipticCurveCryptography)被公认为是最高比特强度的公钥密码体制,广泛应用于快速加密、密钥交换、身份验证、数字签名、保密通信等领域。椭圆曲线公钥密码算法作为ECC算法中的一种,加密强度可采用256位,安全性高、存储空间小,可以快速完成签名、密钥交换以及加密应用。有限域运算层的主要功能是提供算法所需要的数论运算支持,包括256位大整数模加、模减、模乘、模逆、模幂、比较运算。有限域运算作为算法实现最基础的部分,其运算效率将对整个密码系统的效率起决定性作用。所专利技术所涉及的数据转移方法适用于256位模加、模减、模乘、比较运算。同时,将有限域运算层的各种基础运算按照一定的规则进行排序后,即可构成椭圆曲线运算层的各种算法,包括点加、倍点、点乘、坐标转换。所设计的数据转移方法适用于256位点加、倍点、点乘运算。这种数据转移方法适用于基数在素数域中Jacobian加重射影坐标系下的椭圆曲线公钥密码算法。一次完整的点乘运算过程需要调用大量的底层运算,因此可以通过对硬件资源分配方式的优化提升椭圆曲线密码算法的运算性能。如图1所示,目前多数SOC系统中采用RAM、运算单元分别连接在总线上的方式,由于运算模块中存储空间的限制,运算结果需要通过系统总线转移到RAM中,进行后续计算时,需要再次将中间结果通过总线BUS转移到运算单元中,频繁占用总线。如中国第CN200510130627.X专利技术采用32个子寄存器构成寄存器堆作为数据暂存单元,缓解大数模运算过程中寄存器堆的复用问题。但是上述专利技术受运算所限制,只能支持模运算,对上层运算产生的中间变量则无能为力。
技术实现思路
本专利技术为了克服上述技术问题的缺点,提供了一种基于多块RAM的大数运算电路的数据转移方法。本专利技术的基于多块RAM的大数运算电路,包括CPU、运算模块OperatorCore以及5块存储器RAM;其特别之处在于:所述5块存储器RAM的数据和地址线总线经不同的多路选择器与运算模块OperatorCore和CPU选择性连通;在大数运算过程中,运算模块OperatorCore直接从5块存储器RAM中读取待运算数据、暂存中间数据以及保存运算结果,无需占用存储器RAM与CPU之间的总线,运算结束后,CPU直接从存储器RAM中取出运算结果。本专利技术的基于多块RAM的大数运算电路,所述运算模块OperatorCore、CPU与存储器RAM之间的连接总线包括32位数据线和11位地址线;11位地址线的高3位对5块存储器RAM进行选取,低8位对存储器RAM中的8bit存储单元进行寻址。本专利技术的基于多块RAM的大数运算电路的数据转移方法,5块存储器RAM分别为RAM_A、RAM_B、RAM_M、RAM_R和RAM_Q,设待点加运算的原始操作数a和b的坐标分别为(Opr_a_x,Opr_a_y,Opr_a_z)、(Opr_b_x,Opr_b_y,Opr_b_z);ECC算法的256位点加运算通过以下步骤来实现:a-1).原始操作数和相关参数的写入,CPU将原始操作数a的坐标值Opr_a_x,Opr_a_y,Opr_a_z分别写入至RAM_A的0x00、0x20和0x40地址,将b的坐标值Opr_b_x,Opr_b_y,Opr_b_z分别写入至RAM_B的0x00、0x20和0x40地址,并在RAM_A的0x60地址存储Opr_b_z,在RAM_B的0x60地址存储Opr_a_z;CPU将相关参数模值m存储至RAM_M的0x00地址,将相关参数乘法辅助值R写入到存储器RAM_R的0x00地址;以方便运算模块OperatorCore进行取值;b-1).中间结果的写入,在运算模块OperatorCore进行点加运算的过程中,通过多路选择器直接从存储器RAM中读取数据和存储中间结果,无需占用存储器RAM与CPU之间的总线;中间结果Opr_t1存储至RAM_A的0x80地址,中间结果Opr_t2分别存储至RAM_A的0xa0地址和RAM_B的0x80地址,以备运算模块OperatorCore对中间结果进行调用;c-1).最终结果的写入,运算结束后,运算模块OperatorCore将运算结果存储在RAM_B的0x00、0x20和0x40地址,CPU通过多路选择器从RAM_B中读取结果即可。本专利技术的基于多块RAM的大数运算电路的数据转移方法,设待倍点运算的点a的坐标为(Opr_a_x,Opr_a_y,Opr_a_z),ECC算法的256位倍点运算通过以下步骤来实现:a-2).原始操作数和相关参数的写入,CPU将原始操作数a的坐标值Opr_a_x、Opr_a_y和Opr_a_z分别写入至RAM_A和RAM_B的0x00、0x20和0x40地址;CPU将相关参数模值m存储至RAM_M的0x00地址,将相关参数乘法辅助值R写入到存储器RAM_B的0x00地址,倍点运算辅助值a写入至存储器RAM_R的0x20地址;以方便运算模块OperatorCore进行取值;b-2).中间结果的写入,在倍点运算的过程中,运算模块OperatorCore直接经多路选择器读取和存储数据,将中间结果Opr_t1存储至RAM_A的0x60和RAM_B的0x60地址中,将中间结果Opr_t2存储至RAM_A的0x80和RAM_B的0x80地址中,以便算模块OperatorCore对中间结果进行调用;c-2).最终结果的写入,运算结束后,运算模块OperatorCore将运算结果存储在RAM_B的0x00、0x20和0x40地址,CPU通过多路选择器从RAM_B读取结果即可。本专利技术的基于多块RAM的大数运算电路的数据转移方法,设待点乘运算的原始操作数a的坐标为(1Px,1Py,1Pz)ECC算法的256位点乘运算通过以下步骤来实现:a-3).原始操作数和相关参数的写入,CPU将原始操作数a的坐标值1Px,1Py和1Pz写入到数据存储器RAM_M的0x20、0x40、0x60地址,将原始操作数k写入到数据存储器RAM_M的0xe0地址;将相关参数模值m写入到数据存储器RAM_M的0x00地址,相关参数乘法辅助值R写入到数据存储器RAM_R的0x00地址,倍点运算辅助值a写入到数据存储器RAM_R的0x20地址;b-3).中间结果的写入,在运算过程中,运算模块OperatorCore通过多路选择器进行数据的读取和存储,中间运算操作数a的x、y、z值写入到数据存储器RAM_A的0x00、0x20、0x40地址;中间运算操作数b的x、y、z值写入到数据存储器RAM_B的0x00、0x20、0x40地址;中间运算结果5倍点的x、y、z写入到数据存储器RAM_M的0x80、0xa0、0xc0地址;中间运算结果9倍点的x、y、z写入到数据存储器RAM_R的0x40、0x60、0x80地址;中间运算结果13倍点的x、y、z写入到数据存储器本文档来自技高网
...
一种基于多块RAM的大数运算电路的数据转移方法

【技术保护点】
一种基于多块RAM的大数运算电路,包括CPU、运算模块Operator Core以及5块存储器RAM;其特征在于:所述5块存储器RAM的数据和地址线总线经不同的多路选择器与运算模块Operator Core和CPU选择性连通;在大数运算过程中,运算模块Operator Core直接从5块存储器RAM中读取待运算数据、暂存中间数据以及保存运算结果,无需占用存储器RAM与CPU之间的总线,运算结束后,CPU直接从存储器RAM中取出运算结果。

【技术特征摘要】
1.一种基于多块RAM的大数运算电路的数据转移方法,多块RAM的大数运算电路包括CPU、运算模块OperatorCore以及5块存储器RAM;所述5块存储器RAM的数据和地址线总线经不同的多路选择器与运算模块OperatorCore和CPU选择性连通;在大数运算过程中,运算模块OperatorCore直接从5块存储器RAM中读取待运算数据、暂存中间数据以及保存运算结果,无需占用存储器RAM与CPU之间的总线,运算结束后,CPU直接从存储器RAM中取出运算结果;所述运算模块OperatorCore、CPU与存储器RAM之间的连接总线包括32位数据线和11位地址线;11位地址线的高3位对5块存储器RAM进行选取,低8位对存储器RAM中的8bit存储单元进行寻址;其特征在于:大数运算电路的数据转移方法为:5块存储器RAM分别为RAM_A、RAM_B、RAM_M、RAM_R和RAM_Q,设待点加运算的原始操作数a和b的坐标分别为(Opr_a_x,Opr_a_y,Opr_a_z)、(Opr_b_x,Opr_b_y,Opr_b_z);ECC算法的256位点加运算通过以下步骤来实现:a-1).原始操作数和相关参数的写入,CPU将原始操作数a的坐标值Opr_a_x,Opr_a_y,Opr_a_z分别写入至RAM_A的0x00、0x20和0x40地址,将b的坐标值Opr_b_x,Opr_b_y,Opr_b_z分别写入至RAM_B的0x00、0x20和0x40地址,并在RAM_A的0x60地址存储Opr_b_z,在RAM_B的0x60地址存储Opr_a_z;CPU将相关参数模值m存储至RAM_M的0x00地址,将相关参数乘法辅助值R写入到存储器RAM_R的0x00地址;以方便运算模块OperatorCore进行取值;b-1).中间结果的写入,在运算模块OperatorCore进行点加运算的过程中,通过多路选择器直接从存储器RAM中读取数据和存储中间结果,无需占用存储器RAM与CPU之间的总线;中间结果Opr_t1存储至RAM_A的0x80地址,中间结果Opr_t2分别存储至RAM_A的0xa0地址和RAM_B的0x80地址,以备运算模块OperatorCore对中间结果进行调用;c-1).最终结果的写入,运算结束后,运算模块OperatorCore将运算结果存储在RAM_B的0x00、0x20和0x40地址,CPU通过多路选择器从RAM_B中读取结果即可。2.根据权利要求1所述的多块RAM的大数运算电路的数据转移方法,其特征在于,设待倍点运算的点a的坐标为(Opr_a_x,Opr_a_y,Opr_a_z),ECC算法的256位倍点运算通过以下步骤来实现:a-2).原始操作数和相关参数的写入,CPU将原始操作数a的坐标值Opr_a_x、Opr_a_y和Opr_a_z分别写入至RAM_A和RAM_B的0x00、0x...

【专利技术属性】
技术研发人员:刘奇浩孙晓宁刘大铕王运哲赵阳
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:山东;37

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

1