【问题标题】:RSA encryption using OAEP with SHA256 hash algorithm in Unity3D在 Unity3D 中使用 OAEP 和 SHA256 哈希算法进行 RSA 加密
【发布时间】:2021-01-06 09:17:43
【问题描述】:

我想使用RSA 加密和SHA256 填充,但我发现RSACryptoServiceProvider 不支持OaepSHA256 作为填充,一些用户建议使用RSACng,这是@ 的新实现987654327@ 算法支持更多的东西,比如SHA256 作为填充。

问题在于我在启动RSACng 时遇到了这个错误(我猜unity 还没有实现RSACng):NotImplementedException: The method or operation is not implemented.

启动码:rsa = new RSACng();

  • 我的代码或知识有什么问题吗?
  • 还有其他方法可以在 Unity3D 中使用 RSACng 吗?
  • 还有其他方法可以使用 SHA256 作为 Unity3D 中 RSA 加密的填充吗?

附言。我想在 UDP 连接上使用RSA 加密进行服务器/客户端通信。据我所知SHA1PKCS1(由RSACryptoServiceProvider 支持)对于RSA 填充不够安全和快速。

【问题讨论】:

  • 据我所知,SHA1 ... 对于 RSA 填充来说不够安全和快速。 SHA1 在 OAEP 填充方案中的散列函数中使用时足够安全。尽管如此,明智的做法是避免使用任何安全功能的 SHA1,以帮助将其从生态系统中移除。但如果无法避免,那么在 OAEP 中使用是安全的。
  • 感谢您的回复。抱歉,我将这部分文档读错了(将“可能不是”读为“可能”!):“虽然 SHA-1 的抗碰撞性已经屈服于最近的一系列攻击,例如 [WYY05],但 RSA-因此,使用 SHA-1 实例化的 OAEP 可能不会受到相应的影响。”参考:eprint.iacr.org/2006/223.pdf

标签: c# unity3d encryption rsa sha256


【解决方案1】:

感谢“President James K. Polk”的评论,我意识到虽然碰撞 SHA-1 的抗性(如https://eprint.iacr.org/2006/223.pdf 中所述),在RSA 中用作OAEP 是安全的。

但现在我对在Unity3D 中使用SHA256 作为OAEP 的其他问题感兴趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2021-02-25
    • 2021-08-27
    • 1970-01-01
    • 2011-11-25
    • 2012-11-22
    • 1970-01-01
    相关资源
    最近更新 更多