原创 2020-08-17

2020-8-17 17:44 2551 62 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

赞赞赞
相关推荐阅读
指的是在下 2023-04-06 11:01
《移动终端人工智能技术与应用开发》大模型生成看烦了?不妨来关注下移动AI技术!
作为一本介绍移动终端人工智能技术与应用开发的书籍,《移动终端人工智能技术与应用开发》向读者全面地介绍了移动终端上的人工智能技术,包括自然语言处理、图像识别、智能推荐等多个方面。同时,本书还介绍了如何在...
指的是在下 2023-03-03 13:43
23年大火的ChatGPT不擅长什么?(4) 编程问题及与CoPilot差异
ChatGPT擅长解决一些编程问题,但有时可能会产生不准确或次优的代码。虽然它有编写代码的能力,但不能完全取代人类开发者。ChatGPT可以协助生成通用函数或重复代码等任务,但对程序员的需求仍将持续存...
指的是在下 2023-02-25 14:33
23年大火的ChatGPT不擅长什么?(3) 对幽默段子的反应
 幽默是一种令人娱乐或发笑的品质,通常通过言语或行动表达。它可以采用许多形式,如笑话、讽刺、反讽或俏皮的行为,其含义可以因文化背景和个人品味而大不相同。幽默经常使用幽默技巧,如双关语、文字游...
指的是在下 2023-02-22 19:09
23年大火的ChatGPT不擅长什么?(2) 逻辑与算术问题
逻辑推理是指通过思考问题或情境并得出结论的过程。它涉及权衡不同的选项、建立思维之间的联系,以及考虑支持特定结论的证据。另一方面,逻辑是数学和哲学的一个分支,研究推理原则。它涉及正确推理的规则和方法,如...
指的是在下 2023-02-21 21:22
23年大火的ChatGPT不擅长什么?(1) 推理问题
批判性思维、决策制定和问题解决都是极为关键的活动,它们在很大程度上依赖于人类智能的基本要素——推理。像ChatGPT这样的模型缺乏“世界模型”,这意味着它们没有完整的物理和社会世界的理解,也没有能力推...
我要评论
2
62
关闭 站长推荐上一条 /2 下一条