2

AES-128-ECB を使用してデータのブロックを暗号化する必要があり、libsodium と Ruby を使用して暗号化したいと考えています。以下に示すように、OpenSSL API を使用して Ruby でソリューションのプロトタイプを作成しました。

aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB")
aes.encrypt
aes.key = key
aes.update(data) + aes.final 

これは機能しますが、libsodium の他の機能が必要なので、代わりにそれを使用して、OpenSSL への依存を取り除きたいと考えています。残念ながら、ECB モード用の API はありません。私はルビーラッパーRbNaClも使用していますが、ベースのlibsodium APIを使用してこれを行う方法さえ見当たりません。AES-128-CTR のものが表示されます。

AES-128-ECB を libsodium で暗号化することは可能ですか?

4

1 に答える 1

7

libsodium は意図的に ECB モードをサポートしていません。

このモードでは、同じブロックを 2 回暗号化すると、同じ暗号文が 2 回生成されます。

セキュリティの観点からこれがなぜひどいのかを示す古典的な例は、ECB ペンギンです。

多くのプリミティブ、モード、およびパラメーターから選択できるようにする代わりに、多くの組み合わせが実際には安全ではないため、libsodium は厳選された安全な構造のセットを提供します。

AES-ECB はその 1 つではなく、上記の理由により今後も使用されることはありません。

あなたは本当に別の構造に切り替える必要があります。

于 2015-09-02T20:29:38.230 に答える