問題タブ [cbc-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1033 参照

c - C での CBC-MAC の実装

CでCBC-MACのベンチマークを行いたいと思っています。堅牢なC実装を知っている人はいますか? 私は周りを見回しましたが、CBC-MAC の実装 (ほぼすべての言語で) は非常にまれなようです。固定長の入力など、かなり制限的な(望ましい)ユースケース以外に、その理由を知っている人はいますか。

ありがとう

0 投票する
0 に答える
402 参照

java - AES 復号化、最初のブロック ガベージ

AES を使用してデータを復号化および暗号化し、TCP を使用してネットワーク経由で送信しようとしています。私のアルゴリズムはこのように動作したかった:

暗号化:

  1. パディングとして2 つの base64 化されたソルトを生成!します (例: !9W5AQcaNjaWF2Q!)
  2. メッセージをこう並べる [salt][data][salt]
  3. AES/CBC/PKCS5Padding、128 ビットのキー長でメッセージを暗号化
  4. [識別子][base64 メッセージ] を送信

ただし、base-64 メッセージを復号化しようとすると、最初の 128 ビットにはソルトが含まれず、ランダム データが含まれます。

メッセージを復号化しようとすると、最初の 128 ビットがゴミのように見えることに気付きます (これらは 128 ビットであると確信しています)。

私が期待するもの(256ビットソルト)

私が得るもの

また、ここに暗号化と復号化のための私のコードがあります

復号化

暗号化

これらの関数を変更して、適切な暗号化/復号化を行うにはどうすればよいですか?

0 投票する
1 に答える
516 参照

java - Android: 128 ビットのキー サイズと 128 ビットのブロック サイズで AES を復号化 - ブロック暗号モード: CBC-CS1

次の仕様で暗号化された一部のデータ (Android で) を復号​​化する必要があります。

  • 128 ビットのキー サイズと 128 ビットのブロック サイズの AES
  • ブロック暗号モード: CBC-CS1 ([CBCCS] で指定されているように、暗号文を盗む CBC、バリアント 1)

インターネット上で多くの情報が見つかりませんでした。これまでに試した AES 復号化方法はすべて機能しません。

主な問題は CBC-CS1 の実装にあるようです。サポートされていますか、それとも自分で実装する必要がありますか?

ありがとう、デム

0 投票する
1 に答える
122 参照

android - Android での AES 実装で考えられる障害

Android で AES 暗号化を実装しようとしています。パスフレーズを使用してSecretKey. byte[] 初期化ベクトルと同じものを暗号に渡し、SecretKeyPBKDF2 で生成するときにソルトとして渡します。

パスフレーズは、暗号化/復号化が必要になるたびにユーザーによって提供されます。

現時点では、データベース内の値を 1 つだけ暗号化する必要があります (それによって違いが生じる場合)。

質問:

  1. byte[]IVやsaltと同じものを使うと暗号化が弱くなるのかな?
  2. GCM が提供するデータ整合性機能以外に、CBC から GCM に切り替える理由はありますか?
  3. CBC が BEAST 攻撃を受けやすいという記事を読みましたが、メッセージごとに新しいランダム IV を使用しているため、以下に示すように BEAST 攻撃が軽減されますか?

現在のソースコード:

0 投票する
1 に答える
228 参照

node.js - AES256 CBC の Node.js 実装に関する問題

私は暗号化に非常に慣れていないと言って始めましょう。Node.js でCipher Block Chaining Modeを実装しようとしています。

私の問題は、復号化なしの暗号化の後、1 つの復号化関数呼び出しで機能しなくなることです。これが私のコードです:

console.log詳細については、コールの上のコメントを参照してください。decrypt関数が常に機能していることを確認するにはどうすればよいですか?