DBMS_CRYPTOシステムパッケージは、基本的な暗号化および復号化の関数とストアドプロシージャを提供します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供しています。
DBMS_CRYPTOは、AES高度暗号化標準を含む、さまざまな業界標準の暗号化およびハッシュアルゴリズムをサポートしています。AESは、NIST(米国国立標準技術研究所)によって認定されており、DESデータ暗号化標準(The Data Encryption Standard)に取って代わるものです。
DBMS_CRYPTOは、RAWや大規模オブジェクト(LOB)などの一般的なデータ型に対する暗号化および復号化をサポートしています。これには、画像や音声などが含まれます。さらに、DBMS_CRYPTOはグローバル化サポートも提供しており、異なる文字セットを持つデータベース間でのデータの暗号化および復号化処理を可能にします。
DBMS_CRYPTOデータ型
DBMS_CRYPTOサブルーチンのパラメータで使用されるデータ型は以下のとおりです:
| データ型 | 説明 |
|---|---|
| BLOB | ソースまたはターゲットのバイナリ LOB。 |
| CLOB | ソースまたはターゲットの文字列 LOB。 |
| PLS_INTEGER | 指定された暗号化アルゴリズムのタイプ(BLOB、CLOB、および RAW データ型と一緒に使用)。 |
| RAW | ソースまたはターゲットの RAW バッファ。 |
DBMS_CRYPTOアルゴリズム
DBMS_CRYPTOパッケージには、事前定義された暗号化アルゴリズム、パスワードブロック連結アルゴリズム、およびパスワードブロックフィラリングアルゴリズムが含まれています。
次の暗号化ハッシュアルゴリズムをサポートしています:
名前 説明 HASH_MD4 入力メッセージの128ビットハッシュまたはメッセージダイジェストを生成します。 HASH_MD5 128ビットのハッシュも生成しますが、MD4よりも複雑です。 HASH_SH1 安全なハッシュアルゴリズム(SHA-1)。160ビットのハッシュを生成します。 HASH_SH256 SHA-2で、256ビットのハッシュを生成します。 HASH_SH384 SHA-2で、384ビットのハッシュを生成します。 HASH_SH512 SHA-2で、512ビットのハッシュを生成します。 HASH_SM3 国密アルゴリズムで、256ビットのハッシュを生成します。 次の暗号化アルゴリズムをサポートしています:
名前 説明 ENCRYPT_AES128 パスワードブロック高級暗号化規格。128ビットの鍵を使用します。 ENCRYPT_AES192 パスワードブロック高級暗号化規格。192ビットの鍵を使用します。 ENCRYPT_AES256 パスワードブロック高級暗号化規格。256ビットの鍵を使用します。 ENCRYPT_DES パスワードブロック暗号化規格。56ビットの鍵を使用します。 ENCRYPT_3DES_2KEY パスワードブロック暗号化規格。同一ブロックに対して2つの鍵を使用し、3回暗号化します。有効な鍵長は112ビットです。 ENCRYPT_3DES パスワードブロック暗号化規格。同一ブロックに対して3回暗号化します。 ENCRYPT_SM4 SM4パッケージ暗号アルゴリズム。パッケージ長と鍵長はどちらも128ビットです。 次のパスワードブロック連結アルゴリズムをサポートしています:
名前 説明 CHAIN_ECB チェインエンコーブメント方式。平文全体を複数の同じ長さの小部分に分割し、それぞれの小部分ごとに暗号化を行います。 CHAIN_CBC チェインブロックチェイン方式。まず平文を複数の小部分に分割し、各小部分を初期ブロックまたは前の部分の暗号化されたデータと異なるビットを1とする演算(XOR)を行った後、鍵と共に暗号化します。 CHAIN_CFB 暗号化フィードバック方式。ブロックサイズより小さいデータユニットの暗号化を有効にします。 CHAIN_OFB 出力フィードバック方式。ブロック暗号を同期ストリーム暗号として実行できます。CFBと似ていますが、前の出力ブロックのnビットが次に暗号化されるデータキューの最右端に移動する点が異なります。 次のパスワードブロックフィラリングアルゴリズムをサポートしています:
名前 説明 PAD_PKCS5 提供されるパディングアルゴリズムは、暗号学的な標準であるPKCS#5に準拠しています。 PAD_NONE パディングアルゴリズムを指定しないオプションを提供します。呼び出し元はブロックサイズが正しいことを確認する必要があります。そうでない場合、パケットはエラーを返します。
DBMS_CRYPTOの使用制限
DBMS_CRYPTOはVARCHAR2データ型を直接サポートしていません。VARCHAR2型のデータに対する暗号化操作を実行する前に、統一データベース文字セットAL32UTF8に変換し、次にRAWデータ型に変換する必要があります。これらの変換が完了した後、DBMS_CRYPTOシステムパッケージを使用して暗号化できます。
DBMS_CRYPTOサブルーチンの概要
以下の表は、OceanBaseデータベースの現在のバージョンでサポートされているDBMS_CRYPTOサブルーチンとその簡潔な説明を示しています。