1.一种二元域椭圆曲线密码协处理器,其特征在于,包括数据寄存器模块、第一模乘器模块、第二模乘器模块、平方器模块、加法器模块和控制器模块;
所述数据寄存器模块用于接收输入的原始数据和保存根据所述原始数据进行运算得到的结果数据;
所述第一模乘器模块设计为二级流水线结构,包括第一级运算单元和第二级运算单元,所述第一级运算单元用于执行乘法运算,所述第二级运算单元用于执行KOM运算和模约减运算;
所述第二模乘器模块设计为四级流水线结构,包括第一级计算单元、第二级计算单元、第三级计算单元和第四级计算单元,所述第一级计算单元、第二级计算单元和第三级计算单元均用于执行乘法计算,所述第四级计算单元用于执行KOM计算和模约减计算;
所述平方器模块包括第一级平方运算单元和第二级四次方运算单元,所述第一级平方运算单元和第二级四次方运算单元均用于执行快速平方计算和模约减计算;
所述加法器模块用于执行模加运算;
所述控制器模块用于控制数据的流向;
所述第一级计算单元、第二级计算单元和第三级计算单元通过3个二元域乘法器分时复用的方式执行乘法计算;
所述第二模乘器模块通过4个时钟周期执行一次运算,所述第二模乘器模块执行的运算过程包括:在第一个时钟周期中,所述第一级计算单元的3个二元域乘法器执行3次乘法计算;
在第二个时钟周期中,所述第二级计算单元的3个二元域乘法器执行3次乘法计算;
在第三个时钟周期中,所述第三级计算单元的3个二元域乘法器执行3次乘法计算;
在第四个时钟周期中,所述第四级计算单元接收第三数据并执行KOM计算和模约减计算,所述第三数据包括所述第一级计算单元的乘法计算结果数据、所述第二级计算单元的乘法计算结果数据和所述第三级计算单元的乘法计算结果数据;
所述第一级平方运算单元的输出为所述第二级四次方运算单元的输入,所述平方器模块通过1个时钟周期执行一次运算,所述平方器模块执行的运算过程包括:在第一个时钟周期中,所述第一级平方运算单元接收第四数据并执行快速平方计算和模约减计算,以输出第一级计算结果数据;
在第一个时钟周期中,所述第二级四次方运算单元接收所述第一级计算结果数据并执行快速平方计算和模约减计算,以输出第二级计算结果数据;
所述控制器模块还用于检测输入的和是否相等,并根据检测结果控制数据的流向,为输入的随机正整数,为输入的的前一个随机正整数。
2.根据权利要求1所述的一种二元域椭圆曲线密码协处理器,其特征在于,所述第一级运算单元包括9个二元域乘法器,9个所述二元域乘法器并行执行乘法运算。
3.根据权利要求1所述的一种二元域椭圆曲线密码协处理器,其特征在于,所述第一模乘器模块通过2个时钟周期执行一次运算,所述第一模乘器模块执行的运算过程包括:在第一个时钟周期中,所述第一级运算单元接收第一数据并执行乘法运算得到第一结果数据,并将所述第一结果数据保存至所述数据寄存器模块;
在第二个时钟周期中,所述第二级运算单元接收所述第一结果数据并执行KOM运算和模约减运算。
4.根据权利要求3所述的一种二元域椭圆曲线密码协处理器,其特征在于,所述第一模乘器模块执行的运算过程还包括:在所述第二个时钟周期内,所述第一级运算单元接收第二数据并执行乘法运算得到第二结果数据,并将所述第二结果数据保存至所述数据寄存器模块。
5.根据权利要求1所述的一种二元域椭圆曲线密码协处理器,其特征在于,所述控制器模块控制数据流向的过程包括:检测和是否相等,为输入的随机正整数,为输入的的前一个随机正整数;
若检测到和相等,则控制数据流向执行第一运算的方向;
若检测到和不相等,则控制数据流向执行第运算的方向。