繁体   English   中英

为了密码安全性,是否已对RISC-V指令执行时间进行了标准化?

[英]Are RISC-V instruction execution durations standardized for the sake of cryptographic security?

一些密码功能需要一致的执行持续时间,以避免计时攻击。 我读到,针对x86的此类函数很难编写,原因可能包括ISA的仿真性质和乱序处理。 因此,要防止对x86进行定时攻击并不容易,因为它取决于任何给定时刻的复杂和/或未知因素。

在标准RISC-V内核中,指令时序相对于彼此是否可预测地一致? 如果标准内核具有乱序处理或基本ISA的专有实现,该怎么办?

区分ISA与实现是很重要的。 RISC-V规范中没有任何规定要求指令执行延迟。 大多数实现将尽其所能提供最高的性能。 安全偏执处理器可以设计为对所有指令具有一致的等待时间,但仍符合RISC-V规范。

RISC-V的一个不错的功能是有意保留了大量的操作码空间,以便为ISA扩展腾出空间。 似乎没有公开宣布的加密扩展计划,因此,如果需要,可以将该功能合并到加密扩展中。

RISC-V可以在具有确定性延迟的机器上实施; 与ISA相比,这与实现的关系更大。

请参阅此项目以获取支持可预测的延迟执行的RISC-V实现: https : //github.com/pretis/flexpret 它是为嵌入式空间开发的,但似乎也适合您提出的应用程序。

“相对于其他操作,每条指令需要花费多长时间有一个标准?”

没有。

据我所知,这种行为将与所有其他主要ISA保持一致。

当它们的依赖关系解决时,顺序处理器将执行指令。 高速缓存未命中以及问题选择的潜在随机性将意味着,连续的循环迭代在指令相对于彼此执行的时间方面将表现出不同的行为。 还有其他许多微体系结构问题,包括指令获取未命中,dcache命中,导致重播的资源停顿等。即使是典型的有序内核也将面临此类问题。

RISC-V团队计划如何解决密码库开发人员必须设法解决的潜在标准或非标准复杂性?

我不能代表RISC-V团队发言,但是如果我可能引起猜测,我怀疑这个(和类似的)领域将涉及更广泛的社区来讨论和解决此类问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM