Random 如何验证使用HSM生成的ECDSA签名的随机性?

Random 如何验证使用HSM生成的ECDSA签名的随机性?,random,cryptography,signature,ecdsa,hsm,Random,Cryptography,Signature,Ecdsa,Hsm,我需要通过编程(使用Python)验证使用HSM RnG生成的签名是否实际上是随机的 没有在网上找到太多内容,因此任何帮助都将不胜感激 如何验证使用HSM生成的ECDSA签名的随机性?正如Squeamish在评论中指出的,实际上没有任何方法可以确保随机数生成器的结果是真正随机的。例如,它可能只是一个特定位置上Pi的输出。通常,您必须信任平台的FIPS或通用标准认证,但请注意,两者都不是密封的 此外,你也可以依靠HSM公司想要赚钱这一事实。一种肯定会失去(全部)市场份额的方法是表明你不能被信任。包

我需要通过编程(使用Python)验证使用HSM RnG生成的签名是否实际上是随机的

没有在网上找到太多内容,因此任何帮助都将不胜感激


如何验证使用HSM生成的ECDSA签名的随机性?

正如Squeamish在评论中指出的,实际上没有任何方法可以确保随机数生成器的结果是真正随机的。例如,它可能只是一个特定位置上Pi的输出。通常,您必须信任平台的FIPS或通用标准认证,但请注意,两者都不是密封的

此外,你也可以依靠HSM公司想要赚钱这一事实。一种肯定会失去(全部)市场份额的方法是表明你不能被信任。包括RSA实验室在内的多家公司已经发现了这一点,这对他们不利。如果你不完全信任HSM公司,那么不要从他们那里买任何东西;但请注意,在实际意义上,并没有完美的安全性


也许可以做一些简单的实验。如果您要求使用相同的数据生成签名,则永远不会得到相同的签名(ECDSA的r和s值)。这表明RNG的输出至少不会重复。用几个连接/会话测试一次可能是个好主意

您还可以验证并连接所有生成的x值(用于最终比较),然后对其运行随机性测试(如diehard套件)



最后,如果您不信任HSM的RNG的熵源,请注意,您可以向HSM添加额外的种子。请查看HSM的文档,了解它对添加/混合种子的反应。

正如Squeamish在评论中指出的那样,实际上没有任何方法可以确保随机数生成器的结果确实是随机的。例如,它可能只是一个特定位置上Pi的输出。通常,您必须信任平台的FIPS或通用标准认证,但请注意,两者都不是密封的

此外,你也可以依靠HSM公司想要赚钱这一事实。一种肯定会失去(全部)市场份额的方法是表明你不能被信任。包括RSA实验室在内的多家公司已经发现了这一点,这对他们不利。如果你不完全信任HSM公司,那么不要从他们那里买任何东西;但请注意,在实际意义上,并没有完美的安全性


也许可以做一些简单的实验。如果您要求使用相同的数据生成签名,则永远不会得到相同的签名(ECDSA的r和s值)。这表明RNG的输出至少不会重复。用几个连接/会话测试一次可能是个好主意

您还可以验证并连接所有生成的x值(用于最终比较),然后对其运行随机性测试(如diehard套件)


最后,如果您不信任HSM的RNG的熵源,请注意,您可以向HSM添加额外的种子。请查看HSM的文档,了解其对添加/混合种子的反应。

概述了检查某些给定数据随机性的方法:

对于二进制序列,有许多实用的随机性度量。 这些措施包括基于统计测试、转换和 复杂性或这些的混合物。一种众所周知且广泛使用的方法 测试集合是由 马萨格利亚;L'Ecuyer和 西玛德。使用阿达玛变换来测量随机性是非常必要的 由S.Kak提出,并由Phillips、Yuen、Hopkins进一步发展, 贝丝和黛,蒙德,玛萨格里亚和扎曼

中定义了标准化测试套件

也请查收

概述了检查某些给定数据随机性的方法:

对于二进制序列,有许多实用的随机性度量。 这些措施包括基于统计测试、转换和 复杂性或这些的混合物。一种众所周知且广泛使用的方法 测试集合是由 马萨格利亚;L'Ecuyer和 西玛德。使用阿达玛变换来测量随机性是非常必要的 由S.Kak提出,并由Phillips、Yuen、Hopkins进一步发展, 贝丝和黛,蒙德,玛萨格里亚和扎曼

中定义了标准化测试套件


也请查收

欢迎来到密码学。编程问题在这里是离题的,即使是在这种形式下,它也将被关闭和否决。因此,我没有要求迁移,这不是可以通过检查输出来验证的(除非它被严重破坏)。您需要一个设备内部工作方式的模型。如果您事先不信任HSM,那么查看输出并不能给您信心。欢迎使用密码学。编程问题在这里是离题的,即使是在这种形式下,它也将被关闭和否决。因此,我没有要求迁移,这不是可以通过检查输出来验证的(除非它被严重破坏)。您需要一个设备内部工作方式的模型。如果你事先不相信HSM,那么查看输出并不能给你信心。这是从另一个角度衡量随机性。这是一个非常复杂的话题,但基本上这些都是估计某些类型数据的信息论复杂性的方法,或者熵源的熵水平。它不适用于具有固有结构(如ECDSA签名)的数据:它会将深层结构误报为随机性,因为它无法识别该结构