java - Bluetooth通信用の軽量対称鍵アルゴリズム?

java android algorithm security

私のアプリでは、WLAN通信にAESアルゴリズムを使用しましたが、Bluetoothを介してデータを転送しているため、セキュリティを確保したいと考えています。問題は、AESが非常に「重い」ということです。これは、100バイトを超えるブロックを提供するためです-10バイト未満を転送する場合-可能であれば、もっと軽いものを使用したいと思います。

誰もがより良い解決策を知っていますか?
答え
128ビットブロックでAESを使用します。これは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には既知の弱点があります。
関連記事

java - ユーザーがアイテムを選択することとgetSelectedValue()を区別する方法は?

java - Linux(JDK、Maven、IDEなど)にJava開発環境をインストールする方法VirtualBox

java - JavaアプリによるSMSの暗号化

java - tomcat:OutOfMemoryError:Java heap space-24GB system

java - ローカルファイルのjava.io.InputStreamはいつ閉じられたときに例外をスローしますか?

java - Jruby-Foreman Gemが実行されていない

java - 2つのノード間の二重接続を回避するにはどうすればよいですか?

java - 何かが起こったことを呼び出し側のクラスに通知する

java - GenericNackResponseException

java - 高度なAndroid UIを作成する方法は? [閉まっている]