API version 1

- ‐

Decryptor

暗号化されたデータの復号を行うクラスです。

データの暗号化にはEncryptorクラスを使用します。

暗号化の方式などについては、 Encryptor クラスも参照してください。

このクラスは readableオブジェクト、writableオブジェクト として使用することが可能です。

強度の高い暗号鍵と初期化ベクトルを作るには

暗号化を行う際「パスワード(パスフレーズ)」と呼ばれる文字列を指定することが一般的です。

ですが、実際に暗号化および復号を行う際は「暗号鍵」および「初期化ベクトル」と呼ばれるものが用いられます。

これらは混同されやすいですが、性質が異なるものです。

  • パスワード(パスフレーズ)

    • 通常はユーザが入力する可読文字列で、英字、数字、記号から構成されます。

    • パスワード長はシステムに寄りますが可変長であることが多いです。

  • 暗号鍵 (key)

    • 暗号化に用いる鍵で、バイナリデータです。

    • 鍵長は暗号アルゴリズム毎に規定されている固定値です。

    • 一般的にはパスワードの文字列に対してハッシュを取ったり長さを切り詰める等の操作を行い生成されます。

  • 初期化ベクトル (Initialization Vector、IV)

    • 主にCBCモードを用いて暗号化する際に用いられるバイナリ値です。

    • 同じ暗号鍵で異なる出力を得るために用いられます。

    • ベクトル長はアルゴリズム毎に規定されている固定値です。

暗号化の効果を最大化するためにも、適切な暗号化アルゴリズム、ブロックモード、暗号化鍵、初期化ベクトルなどを選定してください。

なお、Biz/Browserで利用できる暗号アルゴリズムに対応する暗号鍵長および初期化ベクトル長は下記の通りです。

暗号化アルゴリズム

暗号鍵長

初期化ベクトル長

CALG_BLOWFISH

可変長

8バイト

CALG_3DES_EEE

24バイト

8バイト

CALG_3DES_EDE

16バイト

8バイト

CALG_AES_128

16バイト

16バイト

CALG_AES_192

24バイト

16バイト

CALG_AES_256

32バイト

16バイト

例外

このクラスはreadメソッド、writeメソッド呼び出し時に下記の例外が発生することがあります。

識別子

説明

CRS::Common::Convert::Security-1:3

復号操作に失敗しました