【技术实现步骤摘要】
一种基于多块RAM的大数运算电路的数据转移方法
本专利技术涉及一种基于多块RAM的大数运算电路的数据转移方法,更具体的说,尤其涉及一种可避免对总线的频繁占用和数据调用时数据堵塞的基于多块RAM的大数运算电路的数据转移方法。
技术介绍
目前基于有限域上椭圆曲线离散对数问题的非对称密码算法ECC(EllipticCurveCryptography)被公认为是最高比特强度的公钥密码体制,广泛应用于快速加密、密钥交换、身份验证、数字签名、保密通信等领域。椭圆曲线公钥密码算法作为ECC算法中的一种,加密强度可采用256位,安全性高、存储空间小,可以快速完成签名、密钥交换以及加密应用。有限域运算层的主要功能是提供算法所需要的数论运算支持,包括256位大整数模加、模减、模乘、模逆、模幂、比较运算。有限域运算作为算法实现最基础的部分,其运算效率将对整个密码系统的效率起决定性作用。所专利技术所涉及的数据转移方法适用于256位模加、模减、模乘、比较运算。同时,将有限域运算层的各种基础运算按照一定的规则进行排序后,即可构成椭圆曲线运算层的各种算法,包括点加、倍点、点乘、坐标转换。所设计的数据转移方法适用于256位点加、倍点、点乘运算。这种数据转移方法适用于基数在素数域中Jacobian加重射影坐标系下的椭圆曲线公钥密码算法。一次完整的点乘运算过程需要调用大量的底层运算,因此可以通过对硬件资源分配方式的优化提升椭圆曲线密码算法的运算性能。如图1所示,目前多数SOC系统中采用RAM、运算单元分别连接在总线上的方式,由于运算模块中存储空间的限制,运算结果需要通过系统总线转移到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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。