【发布时间】:2017-05-02 04:40:03
【问题描述】:
我想根据用户密码制作 256 位消息摘要。
我知道出于安全考虑建议使用 Argon2,但目前 Android 设备不支持它。
所以,我想出了下面的另一种方法。
加密大随机数据,大到GPU无法将数据保留在SRAM上,通过用户密码使用一些算法(例如AES)。
使用Zip算法对加密数据进行编码。
使用 SHA256 获取 zip 数据的消息摘要
我认为 Zip 编码是 GPU 最差的算法之一, 因为它每个只处理 1 位并且有许多 If 分支。 不可并行化。
zip是无损压缩,所以step2生成的数据是唯一的用户密码。
考虑到 GPU 架构,执行 If 分支时需要很多时钟周期, 我认为用 GPU 编码 Zip 比用 CPU 慢。
这个怎么样? 安全吗?
我只是安全的初学者。
有人可以评估一下这种方法吗?
【问题讨论】:
-
应该改为在crypto.stackexchange.com上问这个...
-
libsodium有 Argon2,there are three citedlibsodiumimplementations for Android。 -
不要创建自己的加密方法。 "Schneier's Law": 任何人,从最无知的业余爱好者到最优秀的密码学家,都可以创建自己无法破解的算法。
-
我尝试在这种情况下使用libsodium,并尝试在crypto.stackexchange.com上询问这个方法只是一个想法。谢谢。
标签: android algorithm security hash gpu