用于蓝牙通信的轻量级对称密钥算法?

时间:2012-01-23 14:56:01

标签: java android algorithm security

在我的应用程序中,我使用AES算法进行WLAN通信,但现在我通过蓝牙传输数据我想获得一些安全性。问题是AES太多而且太重了#34;因为它给了我超过100个字节的块 - 当我传输少于10个字节时 - 如果可能的话,我想使用更轻的东西。

任何人都知道更好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

将AES与128位块一起使用。这是16个字节。加密的初始化如下:

//Generate a key
KeyGenerator KeyGen = KeyGenerator.getInstance("AES");
KeyGen.init(128);
SecretKey Key = KeyGen.generateKey();

//Generate init vector
SecureRandom rng = SecureRandom.getInstance("SHA1PRNG");
byte [] IV = new byte[16];
rng.nextBytes(IV);

//Initialize the encryptor
Cipher ci = Cipher.getInstance("AES/CBC/NoPadding"); //The spec might be different!
ci.init(Cipher.ENCRYPT_MODE, Key, new IvParameterSpec(IV));

RC4已知存在弱点。