問題タブ [aes-gcm]
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.
ssl - ガロア カウンター モードの実装
独自の TLS 実装にガロア カウンター モードを実装する (使用しない、実装しない) ことを検討しています。私が抱えている問題は、標準 NIST 設計の 128 ビット サイズが、規定された基礎となる暗号の 128 ビット サイズに関連付けられているかどうかを判断できないことです。つまり、GCM は AES-128 とペアになるように設計されています。
AES-256 で GCM を実行する場合、GCM 操作に引き続き 128 ビット ブロックを使用しますか、それとも 256 ビット ブロックまで使用しますか?
encryption - Linux kernel-3.10 を実行する ubuntu システムの GCM-AEAD サポート
GCM 暗号化を使用した暗号化用の AEAD サンプル コードを実装しようとしています。しかし、キーの設定中に常に無効な引数エラーが発生します
モジュールを挿入すると、次の出力が得られます
暗号化を開始します
setkey の戻り値は -22 です
キーを設定できませんでした
AEAD 仕様によると、aead は暗号化に aes-128 を使用するため、ブロック サイズは 128 ビットにする必要があります。
しかし、私のシステムは、AEAD の 1 バイト ブロック サイズのサポートしか示していません。
ブロックサイズが原因で無効な引数エラーがスローされますか。もしそうなら、私はそれを機能させるために何をすべきですか?
java - Java TLS 1.2 サーバー: AES-GCM 復号化
現在、Java TLS サーバーに取り組んでいます。(KeyExchange署名に関して数日前にここに投稿しました)
現在、AES-GCM を使用してエンコードされた TLS メッセージを復号化しようとしています。サーバーは既に CBC を処理していますが、POODLE に対して脆弱であるため、代わりに GCM を実行したいと考えています。できる限り説明しようと思います:)
このコードでは、Java 8u91、Netty 3.9.0 を使用しています。私たちは BouncyCastle を使用しておらず、そのつもりもありません。JDK を使い続けたいと考えています。
コード !
次のエラーが常に発生します。
通常、これは AAD が正しくないことを意味しているようです。しかし、RFC 5246 セクション 6.2.3.3からわかる限り、AAD は次のようにする必要があります。
このメッセージを解読するために私が間違っていることを見つけるのに迷っています。「タグの不一致」エラーは、何が問題なのかを見つけるのにあまり役に立たないので、ここの誰かが私を助けてくれることを願っています:)
ありがとう。良い一日を !
編集 1: contentVersion にバイトではなくショートを入れていましたが、結果は同じです。タグの不一致エラーしか表示されません...
編集 2:
@dave_thompson_085 が示唆するように、explicit_nonce を除外する代わりにdoFinal
呼び出されるようになりました。(ciphered, 8, ciphered.length-8)
(ciphered, 0, ciphered.length)
また、より精査して aad と nonce の値をチェックしました。
nonce の explicit_nonce 部分は、Wireshark で見ているパケットに対応しています。client_write_IV が適切に生成されていないのではないかと心配しています:|
aad に関しては、少し奇妙なことを発見しました。長さは 0 です。
クライアントから取得しているメッセージは、40 バイトの長さから、explicit_nonce 部分の 8 を引いて、SHA-256 の 32 である MAC の長さを引いた長さです (tls_ecdhe_rsa_with_aes_128_gcm_sha256 を動作させようとしています)。
したがって、tls_ecdhe_rsa_with_aes_256_gcm_sha384 を試すと、長さは -16 になります。これは私には間違っているようです。
編集 3:
再び @dave_thompson_085 が提案したとおりに実行し、次のような長さになるようにコードを変更しましaad.writeShort(fragment.readableBytes() - 8 - 16);
た。aad.writeShort(fragment.readableBytes()-8-session.cipherSuite.mac.len);
クロムと話すときはうまくいくようです(独自の暗号化されたメッセージを送信した後に失敗しますが、自分で修正できない場合は後で別の投稿が必要になります)が、open_sslクライアントで試してみるとタグの不一致が発生しますまた。Firefox と Safari は私に protocol_version アラートを送信するだけです…</p>
java - Java SSLSocket 非効率的な GCM
Java の SSLSocket を暗号スイートで使用しています: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
これは非常に非効率的であることが判明しました。
上記の暗号スイートを引き続き使用し、実装で Java のデフォルト アルゴリズムをオーバーライドしたいと考えています。
ベストプラクティスは何ですか? :
- SSLSocket をオーバーライドする
- SunJSSE プロバイダーをオーバーライドする
- 他の方法...
c++ - openssl を使用して aes gcm の IV を設定できません
C++ で OpenSSL によって提供される AES GCM 暗号化メカニズムを使用しようとしています。このリンクの例を参照として使用しています: https://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption
ただし、次のステートメントはエラーになります。
私が得るエラーは次のとおりです。
エラー: 'EVP_CTRL_GCM_SET_IVLEN' はこのスコープで宣言されていません".
IVLEN を 16 バイトに設定できない理由がわかりません。デフォルト値の 12 バイトは使用したくありません。どんな指針も素晴らしいでしょう。
android - AES GCMでタグを切り捨てるには?
暗号化を使用しており、タグを128 ビットから32 ビットAES/GCM
に削減しようとしています。この作業を行うことになっているメソッドに関するドキュメントをいくつか見つけました。GCMParameterSpec
私のコードは次のとおりです。
それは私にこの例外を送ります:
java security invalidkeyexception: MAC サイズの無効な値: 32
何か問題がありますか、それとも機能しない理由を説明していただけますか?
ありがとう。
openssl - AES-NI は AES-GCM 暗号をサポートしていますか?
AES-NI は、Advanced Encryption Standard (AES) を使用して暗号化と復号化を実行するアプリケーションの速度を向上させます。AES-NI は、AES-CBC と同様に AES-GCM 暗号をサポートしていますか? openssl コードの aes_gcm_cipher で aesni_gcm_cipher が定義されている理由を教えてください。
ios - iOS では GCM で AES 256 をサポートできませんか?
現在、 でサポートされている暗号化モードAES 256 is CBC
。しかし、モードと一緒AES 256 encryption
に使いたいです。GCM
PKCS5Padding / PKCS7Padding
どうすればできるのか教えてください。