このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

AesGcmParams

ウェブ暗号化 APIAesGcmParams 辞書は、AES-GCM アルゴリズムを用いる際、SubtleCrypto.encrypt()SubtleCrypto.decrypt()SubtleCrypto.wrapKey()SubtleCrypto.unwrapKey() の引数 algorithm に渡すオブジェクトを表します。

この引数に適切な値を設定する方法の詳細は、AES-GCM の仕様書 NIST SP800-38D、特に Input Data に関する section 5.2.1.1 を参照してください。

インスタンスプロパティ

name

文字列です。AES-GCM に設定してください。

iv

初期化ベクトルを格納した、ArrayBufferTypedArrayDataView のいずれかです。これは、ある鍵で行う暗号化操作全てで一意である必要があります。言い換えると、同じ鍵では決して IV を再使用してはいけません。AES-GCM の仕様書では IV の長さは 96 ビットが推奨されており、通常は乱数生成器で生成したビット列を格納します。仕様書の Section 8.2 に IV の構築方法の概要があります。なお、IV は秘密にする必要はなく、たとえば暗号化されたメッセージと一緒に平文で送信しても OK です。

additionalData 省略可

ArrayBufferTypedArrayDataView のいずれかです。暗号化はしないが、暗号化したデータと一緒に認証を行う追加データを格納します。ここで additionalData を設定した場合は、対応する decrypt() を呼び出す際にも同じデータを設定しなければなりません。decrypt() を呼び出す際に渡したデータがもとのデータと一致しない場合は、復号操作は例外を投げます。これにより、紐づいたデータを暗号化せずに認証することができます。

additionalData のビット数は、2^64 - 1 より小さくなければなりません。

additionalData プロパティは省略可能で、省略しても暗号化操作のセキュリティは損なわれません。

tagLength 省略可

Number です。暗号化操作で生成され、対応する復号の際に認証に用いる認証タグのビット数を設定します。

Web Crypto API の仕様書によれば、この値は 32, 64, 96, 104, 112, 120, 128 のいずれかでなければなりません。一方、AES-GCM の仕様書では 96, 104, 112, 120, 128 のいずれかにすることが推奨されていますが、アプリケーションによっては 32 または 64 ビットでもいいかもしれません。より詳しい指針は、"Recommendation for Block Cipher Modes of Operation" に関する NIST Publication の Appendix C を参照してください。

tagLength は省略可能で、指定しない場合は 128 になります。

SubtleCrypto.encrypt() および SubtleCrypto.decrypt() の例を参照してください。

仕様書

Specification
Web Cryptography Level 2
# dfn-AesGcmParams

ブラウザーの互換性

SubtleCrypto.encrypt()SubtleCrypto.decrypt()SubtleCrypto.wrapKey()SubtleCrypto.unwrapKey() メソッドで "AES-GCM" アルゴリズムに対応しているブラウザーは、この型に対応しているはずです。

関連情報