セキュリティ関連のクラスを集めたパッケージです。
API |
名前 |
説明 |
---|---|---|
4 |
暗号化を行います |
|
4 |
暗号化データの復号化を行います |
|
4 |
ハッシュ値を生成します |
Securityパッケージでサポートされる暗号化アルゴリズムは以下のとおりで、すべてブロック暗号方式です。
Bruce Schneuer氏が考案した、32〜448ビットの可変長キーを持つ、64ビットのブロック暗号方式です。インターネット上で広く利用されているオープンソースのアルゴリズムです。
なお、通常のモード(Encryptor.CALG_BLOWFISH)ではBiz/Browser独自のヘッダが追加され、復号化の際に削除されます。
ヘッダを付与したくない場合はRawモード(Encryptor.CALG_BLOWFISH2)を用いることでヘッダを付与せずにデータのみを出力可能です。
この場合、Blowfishの特性上、暗号化前のデータにサイズが8バイトの整数倍となるようにパディングが追加されるため、何らかの形で暗号化前のファイルサイズを保持しておき、復号化後にパディングを除去してください。
Rawモードにおいて復号化後のデータサイズが不明である欠点を補うため、PKCS#5パディングモード(Encryptor.CALG_BLOWFISH3)が追加されました。
PKCS#5パディングはRFC1423で規定されており、元のデータ長を取り出すことのできるパディング方式です。
アメリカ合衆国の標準規格である連邦情報処理標準規格(FIPS)の一つで、128ビットのブロック暗号化方式です。キーの長さは128ビット、196ビット、256ビットのいずれかとなります。
暗号化キーと一緒に初期化ベクトルを指定するという特徴があります。暗号化毎に異なる初期化ベクトルを指定することで、同じ暗号化キーを使用しても異なる暗号化結果を生成することができます。
暗号化の前にデータサイズが16バイトの整数倍となるようにパディングが追加されます。パディング方式はPKCS#7を用いています。
Securityパッケージでサポートされるハッシュアルゴリズムは以下のとおりです。
iOS版
CommonCryptoに依存しています。
Android版
java.security.MessageDigestクラスに依存しています。
Windowsタブレット版
Windows Crypto APIに依存しています。
米国標準のハッシュアルゴリズムです。160ビットのダイジェストを作成します。
RSA社のRives氏により考案されたアルゴリズムで、128ビットのダイジェストを作成します。異なるデータから同一のダイジェストを生成する確立がMD4よりも低く、良質なダイジェストを生成できます。