目次へ

2. Javaによる暗号化

2006.03.28 株式会社四次元データ 里見玲爾

2.1. 準備

Javaによる暗号化には、JavaのコアAPIであるSecurity APIとJava暗号化拡張機能(JCE)が必要になります。 JCEはJava 2 SDK v1.2.x、1.3.xでは拡張機能でしたが、Java 2 SDK 1.4以降ではJCEが統合され、 さらに"SunJCE"という標準JCEプロバイダがあらかじめインストール、登録されています。 以下ではjava 2 SDK 1.4以降をダウンロードしていることを前提とします。

次節からはjavaによる暗号化、復号化に必要なオブジェクトについて簡単に解説します。

2.2. 鍵オブジェクト

暗号化には鍵が必要だということは第1章で解説しました。javaによる暗号化を行うときにこの鍵の役割を果たすのが 鍵オブジェクトです。鍵オブジェクトの表現にはjava.security.Keyインタフェースのオブジェクトや java.security.spec.KeySpecインタフェースのオブジェクトを扱います。この2つの違いについては別途 「鍵オブジェクトの生成」の章で解説します。
実際のプログラムではKeyオブジェクトをそのまま使用することはなく、 非対称鍵暗号化方式の場合は非公開鍵(PrivateKey)オブジェクトと公開鍵(PublicKey)オブジェクトを 鍵オブジェクトとして扱い、対称鍵暗号化方式の場合は共通鍵(SecretKey)オブジェクトをここでの鍵オブジェクト として扱います。PrivateKeyもPublicKeyもSecretKeyも、Keyインタフェースのサブインタフェースです。

2.3. アルゴリズムパラメータ

アルゴリズムパラメータとは、暗号化に使用するアルゴリズム特有のパラメータのことです。 例えばあるメソッドに対して引数を与えるのと同じように、あるアルゴリズムにはアルゴリズムパラメータを与えます。 暗号化アルゴリズムの中には鍵のみが必要なアルゴリズムもあり、その場合はアルゴリズムパラメータは 必要ありません。またアルゴリズムパラメータが必要なアルゴリズムで暗号化された場合は、 どのようなパラメータで暗号化が行われたかに関する情報がないと復号化できません。
アルゴリズムパラメータのオブジェクト表現としてはjava.security.AlgorithmParametersクラスのオブジェクトや java.security.spec.AlgorithmParameterSpecインタフェースのオブジェクトを扱います。 この2つの違いについては別途「アルゴリズムパラメータ」の章で解説します。

2.4. Cipherオブジェクト

暗号化、復号化を行う際に必ず必要になるのがjavax.crypto.Cipherオブジェクトです。 Cipherオブジェクトは鍵オブジェクトやアルゴリズムパラメータを使って初期化することにより 鍵やパラメータに関する情報を受け取って、暗号化や復号化を行います。

2.5. プログラムの大まかな流れ

では、javaによる暗号化(復号化)の大まかな流れについて簡単に解説します。

  1. Key, AlgorithmParameters, Cipherオブジェクトをそれぞれ生成する
  2. Key, AlgorithmParametersオブジェクトを使ってCipherオブジェクトを初期化する
  3. Cipherオブジェクトを使ってテキストを暗号化(復号化)する

大まかな流れはこのようになります。次章では実際のプログラム例を紹介します。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ