使用SpongyCastle的某些操作系统版本上的密钥生成速度非常慢

时间:2018-10-26 12:24:31

标签: android security encryption cryptography bouncycastle

我正在构建一个使用spongycastle库的应用程序(这是bouncycastle的精简版),但是问题是当我执行此操作时:

KeyParameter key = (KeyParameter) generator.generateDerivedMacParameters(keyLength * 8); // key length in bits

并将其构建在任何API等于或低于6.0的手机上,操作速度非常慢。要查明运行速度很慢的确切代码(请注意,此代码位于海绵库中):

for (int count = 1; count < iterationCount; count++)
    {
        hMac.update(state, 0, state.length);
        hMac.doFinal(state, 0);

        for (int j = 0; j != state.length; j++)
        {
            out[outOff + j] ^= state[j];
        }
    }

迭代次数始终为800000,因为我需要它非常安全,但是在这些设备上执行此代码的过程几乎需要5分钟。有趣的是,在API 4.4上仅需一分钟。因此,在不减少迭代次数的情况下,是否有任何解决方法,也许我应该只使用bouncycastle或其他方法?

0 个答案:

没有答案