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 国密ブロック暗号アルゴリズム。ブロック長と鍵長はどちらも128ビットです。 サポートされている暗号化ブロック連結方式は以下のとおりです:
名前説明CHAIN_ECB ブロックチェインモード。平文全体を複数の同じ小さなセグメントに分割し、各セグメントごとに暗号化します。 CHAIN_CBC ブロックチェイン連結モード。まず平文を複数の小さなセグメントに分割し、各セグメントを初期ブロックまたは前のセグメントの暗号化されたデータと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サブプログラムとその簡単な説明を示しています。