SM2 国密算法在FPGA上的实现

我国商用公钥密码算法SM2和SM9主要是基于素域上𝐹_𝑝域的特征p,p是大素数椭圆曲线密码算法实现的,在FPGA上面实现,主要面临大数的模乘、模逆、模加、模减的时序收敛问题,这样LUT使用量肯定非常多,好歹现在高级芯片这种不是问题,但使用性价比高的客户需求那就比较烧脑。功能模块只能像俄罗斯套娃一层一层的套进去,可读性变的非常差,但省下很多LUT还是非常值得的。
实现主要参数:
素域上选用𝑦^2=𝑥^3+𝑎𝑥+𝑏作为加密曲线,令𝐸(𝐹_𝑃)={(𝑥,𝑦)|𝑦^2=𝑥^3+𝑎𝑥+𝑏}∪𝑂, 包含了椭圆曲线上的所有点,其中O是一个无穷远点,不能用有序整数对(x,y)即仿射坐标表示,用#E(𝐹_𝑞)表示E(𝐹_𝑞)上元素的个数,称为椭圆曲线的阶。SM2算法使用固定的𝐹_𝑝域,系统参数如下:
 𝐹_𝑝域的特征p,p是大素数;

p:FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF
n:FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123
a:FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC
b:28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93
Gx:32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7
Gy:BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0


后续准备整理下开发心得发帖,针对大数模乘、模逆、模减、模加在FPGA应该注意的问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值