0

Java の DES 実装を使用して単一 (64 ビット) ブロックを暗号化する方法があります。

public BitSet encrypt(BitSet plaintextBlock, BitSet key)
{
    try {
        Cipher c = Cipher.getInstance("DES/ECB/NoPadding");
        SecretKeyFactory sf = SecretKeyFactory.getInstance("DES");
        Key desKey = sf.generateSecret(new DESKeySpec(key.toByteArray()));
        c.init(Cipher.ENCRYPT_MODE, desKey);
        byte[] input = plaintextBlock.toByteArray();
        byte[] encrypted = c.doFinal(input);

        return BitSet.valueOf(encrypted);
    } catch (Exception e) { /* Exception handling omitted */ }
}

plainTextBlock常に 64 ビット以下になります。パディングとチェーンは別々に実装されます。これは問題なく動作しますが、実行が非常に遅くなることがわかりました。

だから私の質問は: Java の DES で単一のブロックを暗号化するより効率的な方法はありますか?

4

0 に答える 0