原创 2020-08-17

2020-8-17 17:44 1074 15 17 分类: FPGA/CPLD

本工程设计ModExpPowering为顶层模块,通过一包含11个状态的有限状态机(NONE 1, LOADC 2, WAIT_COMPUTE 3, CALC_C_BAR 4, GET_K_D 5, BIGLOOP 6, CALC_SQUARE 7, CALC_M_BAR_1 8,  COMPLETE 9,  OUTPUT_RESULT 10, TERMINAL 11) 来调度数据的存取,模乘计算与循环(从i=0至i=32-1),以及结果组合输出。其安全性的考量不是完全消除判断语句,而是在于不管密钥位为0或1都会进行相同的运算过程,从而让功耗分析攻击失效。

模块代码中先例化了四个存储模块与一个MonPro模块,接着进入状态机部分;
LOADC:
在LOADC状态存入分为32组64位的2048位数据;下一个状态是WAIT_COMPUTE,在该状态处等待startCompute信号到来即进入CALC_C_BAR;
在CALC_C_BAR处计算
c_bar = MonPro(c, t)
以及赋值
m_bar=r
然后转入GET_K_D,在该状态记录私钥d每组最左边的非零位数,用k_d1,  k_d2表示。
BIGLOOP:
实k_现循环i从k_d1* 64+ k_d2至0 ,计算两个重要判断条件用参数:
b = 1 - d_in[k_d1][k_d2];
b2 = d_in[k_d1][k_d2];
然后根据b是否为0把MonPro(m_bar, c_bar)赋值给m_bar或c_bar。
CALC_SQUARE:
根据b2是否为0计算MonPro(m_bar, m_bar)或者MonPro(c_bar, c_bar) 直到k_d0为止循环被BIGLOOP所调用;
否则进入CALC_M_BAR_1。
CALC_M_BAR_1:
计算
M=MonPro(m_bar, 1)
得到模幂

输出结果

作者: 指的是在下, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3880846.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论2条评论)

登录后参与讨论

curton 2020-8-26 22:06

学习了

abner_ma 2020-8-26 19:43

赞赞赞
相关推荐阅读
指的是在下 2020-09-20 21:42
【2020意法半导体开发大赛】ST25DV-PWM-eSET nfc感应
感谢ST给的 试用机会!这款NFC板 小巧别致,使用简单,配套说明详尽,对NFC做了很好的推广工作下载了应用后尝试用手机 与 开发板作感应,反应快速 很快成功,APP可以对 本开发板作 一定调节控制,...
指的是在下 2020-09-09 11:00
2020-09-09
实现的Montgomery大数相乘,如图所示; 供上一级ModExpPoweringladder 使用。所谓的蒙哥马利形式即为模n的余数表示形式,只有当操作数转换为蒙哥马利形式时,才能使用此算法执行模...
指的是在下 2020-08-15 10:17
信息技术测试行业
测试 基于 锁了门一定要看下锁上了没的 人类心理,可能门后有对你来说重要的东西,你不信任门锁质量或是对自己的操作不确定,这都能成为测试的理由与动机。IT产业的测试据我观察有四个主要业务,软件测试 硬件...
指的是在下 2020-06-20 22:11
【富芮坤物联网开发板评测】FR8016H开发板ble_simple_peripheral例程运行
心心念念的富芮坤物联网开发板渐渐摸索清楚了该怎么用    原来非常切合嵌入式开发者与爱好者的思路。,安装 Keil IDE 后, 获取 Fr801xH SDK 即可开始尝...
指的是在下 2020-03-07 09:29
数字滤波器概述
数字滤波器是一个按预定的有限精度算法实现的、将输入的数字信号转换为所需要的输出数字信号的线性时不变系统LTI。滤波器是是一种对信号有处理作用的器件或电路,其主要作用是让有用信号尽可能无衰减的通过,对无...
广告
EE直播间
更多
我要评论
2
15
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /6 下一条