鱼C论坛

 找回密码
 立即注册
查看: 1316|回复: 2

[已解决]ARM随机数相关RNDR RNDRRS求助

[复制链接]
发表于 2023-7-28 15:47:01 | 显示全部楼层 |阅读模式
50鱼币
类似于x86的RDRAND和RDSEED,arm添加了两个新的类似指令:RNDR(类似于 RDRAND)/RNDRRS(类似于 RDSEED)获取硬件随机数,请问:
1. RNDR和RNDRRS调用方式和条件有什么差异吗?
2. 调用的时候所需要的权限是否一致?
3. 不同arm架构版本都是这样的吗?
最佳答案
2023-7-28 15:47:02
RNDR和RNDRRS有以下差异:

RNDR:生成一个随机数并返回,如果生成成功,则在返回的同时设置零标志位为0,否则设置零标志位为1。在大多数情况下,这应该很难失败,除非硬件发生严重故障。
RNDRRS:在类似于RNDR的基础上,RNDRRS会在硬件随机数生成器的熵源为空时稍微加一些熵。如果熵源为空,或者在加熵过程中失败,该指令就会失败并设置零标志位为1。
从Arm的文档上,我没有找到任何需要某种特殊权限才能调用这中国指令的说明。因此,我倾向于认为它们是没有任何权限限制的。

RNDR和RNDRRS这两个指令是在ARM v8.5版本中引入的,所以只在这个版本及其后续版本的ARM架构中存在。针对早期的ARM版本,软件可能需要使用其他方式来生成随机数,比如利用硬件定时器或者其他硬件资源的噪声。

请注意:关于这些指令的详细实现会因具体的硬件制造商和处理器情况而有所不同,建议查阅特定硬件的技术文档以获取最准确的信息。

求最佳

最佳答案

查看完整内容

RNDR和RNDRRS有以下差异: RNDR:生成一个随机数并返回,如果生成成功,则在返回的同时设置零标志位为0,否则设置零标志位为1。在大多数情况下,这应该很难失败,除非硬件发生严重故障。 RNDRRS:在类似于RNDR的基础上,RNDRRS会在硬件随机数生成器的熵源为空时稍微加一些熵。如果熵源为空,或者在加熵过程中失败,该指令就会失败并设置零标志位为1。 从Arm的文档上,我没有找到任何需要某种特殊权限才能调用这中国指令的说明 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 15:47:02 | 显示全部楼层    本楼为最佳答案   
RNDR和RNDRRS有以下差异:

RNDR:生成一个随机数并返回,如果生成成功,则在返回的同时设置零标志位为0,否则设置零标志位为1。在大多数情况下,这应该很难失败,除非硬件发生严重故障。
RNDRRS:在类似于RNDR的基础上,RNDRRS会在硬件随机数生成器的熵源为空时稍微加一些熵。如果熵源为空,或者在加熵过程中失败,该指令就会失败并设置零标志位为1。
从Arm的文档上,我没有找到任何需要某种特殊权限才能调用这中国指令的说明。因此,我倾向于认为它们是没有任何权限限制的。

RNDR和RNDRRS这两个指令是在ARM v8.5版本中引入的,所以只在这个版本及其后续版本的ARM架构中存在。针对早期的ARM版本,软件可能需要使用其他方式来生成随机数,比如利用硬件定时器或者其他硬件资源的噪声。

请注意:关于这些指令的详细实现会因具体的硬件制造商和处理器情况而有所不同,建议查阅特定硬件的技术文档以获取最准确的信息。

求最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-31 14:47:42 | 显示全部楼层
sfqxx 发表于 2023-7-28 15:47
RNDR和RNDRRS有以下差异:

RNDR:生成一个随机数并返回,如果生成成功,则在返回的同时设置零标志位为0 ...

感谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-4 02:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表