我发现自己在一个只做签名数学的工业控制器中实现了Speck。
如果Speck算法是用有符号的数学实现的,会有什么密码分支?
发布于 2018-07-19 18:34:35
只要您的微控制器实现的签名算法是二补,我就不会看到重大的实现问题。
小斑点是一种加旋转异或(ARX)密码:在位级上,符号二的补加与无符号加法是完全相同的,而旋转和异或反正是一样的。如果您只有保留符号的右移位,您可能需要做一些额外的掩蔽来实现旋转。
在任何情况下,只要您正确实现该算法,它(根据定义)将产生与Speck的任何其他正确实现(模块化一些不幸的痴情问题 )相同的输出。因此,不管您最后做的是“在幕后”实现密码,只有当这些实现细节通过一些侧通道 (比如执行时间或功率分析)变得可以观察到时,才会有密码分支。
虽然增强您的实现以抵抗侧通道攻击的具体方法在某种程度上超出了这个答案的范围,但是您应该知道它们是存在的。(我们甚至为他们提供了一个完整的侧通道攻击标记。)仅仅看一下您的微控制器的指令时间,避免使用与数据相关的定时指令(以及依赖于敏感数据的条件跳转)是一个很好的开始。
https://crypto.stackexchange.com/questions/60945
复制相似问题