【问题标题】:Is it safe to use compress algorithm to GPU attack?使用压缩算法进行 GPU 攻击是否安全?
【发布时间】:2017-05-02 04:40:03
【问题描述】:

我想根据用户密码制作 256 位消息摘要。

我知道出于安全考虑建议使用 Argon2,但目前 Android 设备不支持它。

所以,我想出了下面的另一种方法。

  1. 加密大随机数据,大到GPU无法将数据保留在SRAM上,通过用户密码使用一些算法(例如AES)。

  2. 使用Zip算法对加密数据进行编码。

  3. 使用 SHA256 获取 zip 数据的消息摘要

我认为 Zip 编码是 GPU 最差的算法之一, 因为它每个只处理 1 位并且有许多 If 分支。 不可并行化。

zip是无损压缩,所以step2生成的数据是唯一的用户密码。

考虑到 GPU 架构,执行 If 分支时需要很多时钟周期, 我认为用 GPU 编码 Zip 比用 CPU 慢。

这个怎么样? 安全吗?

我只是安全的初学者。

有人可以评估一下这种方法吗?

【问题讨论】:

  • 应该改为在crypto.stackexchange.com上问这个...
  • 不要创建自己的加密方法。 "Schneier's Law": 任何人,从最无知的业余爱好者到最优秀的密码学家,都可以创建自己无法破解的算法。
  • 我尝试在这种情况下使用libsodium,并尝试在crypto.stackexchange.com上询问这个方法只是一个想法。谢谢。

标签: android algorithm security hash gpu


【解决方案1】:

仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。相反,iIterate over an HMAC with a random salt for about 100ms duration and save the salt with the hash.使用PBKDF2(又名Rfc2898DeriveBytes)、password_hash/password_verifyBcrypt 等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。保护您的用户很重要,请使用安全的密码方法。

【讨论】:

  • 现在GPGPU已经很发达了,PBKDF2太弱了。 Bcrypt 比 PBKDF2 安全得多,但我只需要 256 位哈希。
  • 其实现在的DRAFT NIST Special Publication 800-63B Digital Authentication Guideline推荐的是PBKDF2。 “验证者应以能够抵抗离线攻击的形式存储记忆的秘密。秘密应使用经过批准的散列函数(如 [SP800-132] 中所述的 PBKDF2)使用盐值进行散列”跨度>
猜你喜欢
  • 2011-03-26
  • 1970-01-01
  • 2015-07-27
  • 1970-01-01
  • 2013-03-17
  • 2021-08-05
  • 2011-09-25
  • 2014-02-08
  • 1970-01-01
相关资源
最近更新 更多