(57)【特許請求の範囲】
【請求項１】
複数の異なる暗号化モジュールの機能を組み合わせるトークン・インタフェースを生成する方法であって、前記暗号化モジュールは少なくとも１のデバイスとの関連づけを有し、
少なくとも前記複数の異なる暗号化モジュールの一覧と前記トークン・インタフェースの一覧とを有する一覧のための第１のＧＵＩを表示する第１のステップと、
前記複数の異なる暗号化モジュールに関連付けられた機能の一覧をモジュール機能一覧として表示するとともに、前記トークン・インタフェースの一覧で選択されたトークン・インタフェースが有する機能の一覧をインタフェース機能一覧として表示するトークン・インタフェース定義のための第２のＧＵＩを表示する第２のステップと、
前記第２のＧＵＩが表示されている際に機能追加命令を受けた場合、前記モジュール機能一覧から当該機能追加命令に応じた機能を選択し、機能削除命令を受けた場合には、前記インタフェース機能一覧から当該機能削除命令に応じた機能を選択する第３のステップと、
前記機能追加命令に応じて選択された前記機能を前記インタフェース機能一覧に追加し前記選択されたトークン・インタフェースに割当てて、１以上のデバイスとの関連づけを有する新たなトークン・インタフェースとし、前記機能削除命令に応じて選択された前記機能を前記インタフェース機能一覧から削除する第４のステップとを含む方法。
【請求項２】
前記複数の異なる暗号化モジュールの各々の機能を機能別に分類する第５のステップを含み、当該分類に基づいて前記機能を選択する請求項１記載の方法。
【請求項３】
前記分類は、暗号化機能及びオブジェクトの作成と管理の機能を含む請求項２記載の方法。
【請求項４】
前記第１のステップでは、トークン・インタフェースを作成するためのトークン一覧が前記複数の異なる暗号化モジュールの一覧として与えられており、該トークン一覧のトークンはそれぞれ前記複数の異なる暗号化モジュールのうち別々のモジュールを表す請求項１記載の方法。
【請求項５】
前記第２のステップは、前記第１のＧＵＩが表示されている際にトークン・インタフェースの追加又は変更を示すトークン・インタフェース命令が与えられた場合、前記トークン・インタフェースの一覧から当該トークン・インタフェース命令に応じたトークン・インタフェースを選択して前記第２のＧＵＩを表示する請求項４記載の方法。
【請求項６】
前記トークン一覧のトークンの各々が１つ以上の関連付けられたメソッドを有し、前記第３のステップでは、関連付けられた該メソッドのうち１つ以上のメソッドを選択する請求項４記載の方法。
【請求項７】
前記複数の異なる暗号化モジュールはハードウェア・デバイスとソフトウェア・デバイスのうち少なくとも１つを含む請求項１記載の方法。
【請求項８】
前記複数の異なる暗号化モジュールはＲＳＡアクセラレータ、ＤＥＳアクセラレータ、セキュア・ストレージのうち少なくとも１つを含む請求項１記載の方法。
【請求項９】
前記機能は暗号化機能を含む請求項１記載の方法。
【請求項１０】
複数の異なる暗号化モジュールの機能を組み合わせてトークン・インタフェースを生成するグラフィカル・ユーザ・インタフェースシステムであって、前記暗号化モジュールは少なくとも１のデバイスとの関連づけを有し、
少なくとも前記複数の異なる暗号化モジュールの一覧と前記トークン・インタフェースの一覧とを表示する表示手段と、
前記表示手段に前記複数の異なる暗号化モジュールに関連付けられた機能の一覧をモジュール機能一覧として表示するとともに、前記トークン・インタフェースの一覧で選択されたトークン・インタフェースが有する機能の一覧をインタフェース機能一覧として表示する仮想コントロールとを有し、
前記仮想コントロールは、機能追加命令を受けた場合、前記モジュール機能一覧から当該機能追加命令に応じた機能を選択し、機能追加命令に応じて選択された機能を前記インタフェース機能一覧に追加し前記選択されたトークン・インタフェースに割当てて、１以上のデバイスとの関連づけを有する新たなトークン・インタフェースとし、機能削除命令を受けた場合には、前記インタフェース機能一覧から当該機能削除命令に応じた機能を選択し、前記機能削除命令に応じて選択された前記機能を前記インタフェース機能一覧から削除するグラフィカル・ユーザ・インタフェースシステム。
【請求項１１】
前記複数の異なる暗号化モジュールの各々の機能が機能別に分類されており、前記仮想コントロールは、当該分類に基づいて前記機能を選択する請求項１０記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１２】
前記分類は暗号化機能及びオブジェクトの作成と管理の機能を含む請求項１１記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１３】
トークン・インタフェースを作成するためのトークン一覧が前記複数の異なる暗号化モジュールの一覧として与えられており、該トークン一覧のトークンはそれぞれ前記複数の異なる暗号化モジュールのうち別々のモジュールを表す請求項１０記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１４】
前記仮想コントロールは、トークン・インタフェースの追加又は変更を示すトークン・インタフェース命令が与えられた場合、前記トークン・インタフェースの一覧から当該トークン・インタフェース命令に応じたトークン・インタフェースを選択して、前記インタフェース機能一覧を表示する請求項１３記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１５】
前記トークン一覧のトークンの各々が１つ以上の関連付けられたメソッドを有し、前記仮想コントロールは、関連付けられた該メソッドのうち１つ以上のメソッドを選択する請求項１３記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１６】
前記仮想コントロールは、前記インタフェース機能一覧からトークン・インタフェースの機能を選択的に削除する請求項１０記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１７】
前記複数の異なる暗号化モジュールはハードウェア・デバイスとソフトウェア・デバイスのうち少なくとも１つを含む請求項１０記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１８】
前記複数の異なる暗号化モジュールはＲＳＡアクセラレータ、ＤＥＳアクセラレータ、セキュア・ストレージのうち少なくとも１つを含む請求項１０記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項１９】
前記機能は暗号化機能を含む請求項１０記載のグラフィカル・ユーザ・インタフェースシステム。
【請求項２０】
複数の異なる暗号化モジュールの機能を組み合わせるトークン・インタフェースを生成するコンピュータ可読媒体のコンピュータ・プログラムであって、前記暗号化モジュールは少なくとも１のデバイスとの関連づけを有し、
少なくとも前記複数の異なる暗号化モジュールの一覧と前記トークン・インタフェースの一覧とを有する一覧のための第１のＧＵＩを表示する第１の命令と、
前記複数の異なる暗号化モジュールに関連付けられた機能の一覧をモジュール機能一覧として表示するとともに、前記トークン・インタフェースの一覧で選択されたトークン・インタフェースが有する機能の一覧をインタフェース機能一覧として表示するトークン・インタフェース定義のための第２のＧＵＩを表示する第２の命令と、
前記第２のＧＵＩが表示されている際に機能追加命令を受けた場合、前記モジュール機能一覧から当該機能追加命令に応じた機能を選択し、機能削除命令を受けた場合には、前記インタフェース機能一覧から当該機能削除命令に応じた機能を選択する第３の命令と、
前記機能追加命令に応じて選択された前記機能を前記インタフェース機能一覧に追加し前記選択されたトークン・インタフェースに割当てて、１以上のデバイスとの関連づけを有する新たなトークン・インタフェースとし、前記機能削除命令に応じて選択された前記機能を前記インタフェース機能一覧から削除する第４の命令とを含む命令をコンピュータに実行させるためのプログラム。
【請求項２１】
前記複数の異なる暗号化モジュールの各々の機能を機能別に分類する第５の命令を含み、当該分類に基づいて前記機能を選択する請求項２０記載のプログラム。
【請求項２２】
前記分類は暗号化機能及びオブジェクトの作成と管理の機能を含む請求項２１記載のプログラム。
【請求項２３】
前記第１の命令では、トークン・インタフェースを作成するためのトークン一覧が前記複数の異なる暗号化モジュールの一覧として与えられており、該トークン一覧のトークンはそれぞれ前記複数の異なる暗号化モジュールのうち別々のモジュールを表す請求項２０記載のプログラム。
【請求項２４】
前記第２の命令は、前記第１のＧＵＩが表示されている際にトークン・インタフェースの追加又は変更を示すトークン・インタフェース命令が与えられた場合、前記トークン・インタフェースの一覧から当該トークン・インタフェース命令に応じたトークン・インタフェースを選択して前記第２のＧＵＩを表示する請求項２３記載のプログラム。
【請求項２５】
前記トークン一覧のトークンの各々が１つ以上の関連付けられたメソッドを有し、前記第３の命令では、関連付けられた該メソッドのうち１つ以上のメソッドを選択する請求項２３記載のプログラム。
【請求項２６】
前記複数の異なる暗号化モジュールはハードウェア・デバイスとソフトウェア・デバイスのうち少なくとも１つを含む請求項２０記載のプログラム。
【請求項２７】
前記複数の異なる暗号化モジュールはＲＳＡアクセラレータ、ＤＥＳアクセラレータ、セキュア・ストレージのうち少なくとも１つを含む請求項２０記載のプログラム。
【請求項２８】
前記機能は暗号化機能を含む請求項２０記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般には改良されたデータ処理システムに関し、特に独立したデバイスを１つのトークン・インタフェースとして連係させる方法及びグラフィカル・ユーザ・インタフェースに関する。
【０００２】
【従来の技術】
公開キー暗号方式は、暗号化と復号化に異なるキーを使用する技術である。公開キーと秘密キーの２つのキーが用いられ、いずれかでデータの暗号化または復号化ができる。ユーザは自分の公開キーを他のユーザに与え、秘密キーは他のユーザに知られないようにしておく。公開キーで暗号化されたデータは、対応する秘密キーでのみ復号化することができ、逆も同様である。
【０００３】
公開キー暗号方式が受け入れられるにつれ、異なる２つのサイトで異なるベンダにより開発されたとしても、そのソフトウェアが連係するための標準が必要になっている。特に電子署名、電子封筒、電子証明書、キー交換の確認／同意に必要な標準が開発されている。しかし、相互運用性を保証するには、通信可能なフォーマットに厳密に準拠する必要がある。異種環境での相互運用規格の標準としてＰＫＣＳ（公開キー暗号標準）がある。
【０００４】
ＰＫＣＳは、公開キー暗号方式に用いられるデータ・タイプとアルゴリズムを定義するため、RSA Laboratoriesが発表したドキュメントである。１９９１年に１０種類のＰＫＣＳ規格が発表されている。１９９３年のＰＫＣＳ＃２、＃４がＰＫＣＳ＃１に組み込まれ、標準の全体は次のような内容になっている。
ＰＫＣＳ＃１  ＲＳＡ暗号標準
ＰＫＣＳ＃３  Diffie-Hellmanキー交換標準
ＰＫＣＳ＃５  パスワード・ベースの暗号化標準
ＰＫＣＳ＃６  拡張証明書シンタックス標準
ＰＫＣＳ＃７  暗号化メッセージ・シンタックス標準
ＰＫＣＳ＃８  秘密キー情報シンタックス標準
ＰＫＣＳ＃９  選択属性タイプ
ＰＫＣＳ＃１０  証明書要求シンタックス標準
【０００５】
ＰＫＣＳは改良を続け、１９９３年以降は次の規格が追加されている。
ＰＫＣＳ＃１１  暗号化トークン・インタフェース標準
ＰＫＣＳ＃１２  個人情報交換シンタックス標準
ＰＫＣＳ＃１３  楕円曲線暗号化標準
ＰＫＣＳ＃１５  暗号化トークン情報フォーマット標準
【０００６】
これら規格ドキュメントの１つ、ＰＫＣＳ＃１１は、暗号化トークン・インタフェース（cryptographic token interface）を略してCryptokiと呼ばれ、オブジェクト・ベースの簡単なアプローチを採り、技術独立（デバイスの種類を問わない）、リソース共有（複数アプリケーションが複数デバイスにアクセス）というも目標を設定し、暗号化トークンという、デバイスの論理的共通ビューをアプリケーションに表示するＡＰＩを定義している。
【０００７】
図９に、既存規格に従ってCryptokiの一般モデルを表す例を示す。モデルは、暗号化操作の実行を必要とするアプリケーションから始まり、暗号化デバイスで終わる。暗号化デバイスに対しては、操作の一部または全部が実際に行われる。ユーザは、条件によってはアプリケーションに関連付けられる。
【０００８】
Cryptokiは、複数の"スロット"を通して、システム内でアクティブな暗号化デバイスとのインタフェースを与える。物理リーダまたは他のデバイス・インタフェースに対応する各スロットは、トークンを含むことができる。通常、トークンは、暗号化デバイスがリーダに存在するとき"スロットに存在"する。
【０００９】
暗号化デバイスは、特定のコマンド群に従って暗号化操作を行える。これらのコマンドは通常、PCMCIAカード・サービスやソケット・サービス等の標準デバイス・ドライバを通して渡される。Cryptokiにより、各暗号化デバイスは、実装技術の如何にかかわらず、論理的に他の全てのデバイスと同じように見える。従ってアプリケーションは、デバイス・ドライバと直接インタフェースをとる必要がない（どのドライバが使用されているか知る必要さえない）。実際、下位の"デバイス"は全体をソフトウェアとして実装することができる（例えばサーバ上で動作するプロセスとして）。詳しくはRSA Security社の"ＰＫＣＳ＃１１  ｖ２．１０：暗号化トークン・インタフェース標準"を参照されたい。
【００１０】
図９に示すように、各デバイスはトークンとして表される。Cryptokiから見たトークンの論理的ビューは、オブジェクトを保存し、暗号化機能を実行できるデバイスである。Cryptokiは、データ、証明書、キーの３クラスのオブジェクトを定義している。データ・オブジェクトはアプリケーションにより定義される。証明書オブジェクトは証明書を保存する。キー・オブジェクトは暗号化キーを保存する。キーは公開キー、秘密キー等であり、それぞれ特定のメカニズムに使用するためのサブタイプを持つ。トークンはオブジェクトを作成、破壊、操作、検索することができる。トークンはまたオブジェクトとともに暗号化機能を実行することもできる。
【００１１】
現在の技術では、暗号化デバイス毎にダイナミック・リンク・ライブラリ等の共有ライブラリを作成する必要がある。更に、トークン毎に１デバイスしか使用できない。従って、種々の暗号化デバイスを利用したい場合は、種々のトークンに精通し、オブジェクトに適用されるトークンを管理できなければならない。従って、多くのデバイスを組み合わせて１つのトークンにすることのできる方法及び装置があれば有益である。
【００１２】
【課題を解決するための手段】
本発明は、独立したデバイスが１つのトークン・インタフェースとして連係することのできる方法及びグラフィカル・ユーザ・インタフェースを提供する。この方法及びグラフィカル・ユーザ・インタフェースは、様々な独立デバイスの機能を機能カテゴリに分ける。ユーザは、これらのカテゴリから組み合わせて１つのトークン・インタフェースにするデバイスの機能を選択することができる。その後、１つのトークン・インタフェースがデータ・オブジェクトに適用されたとき、関連付けられた任意の機能を、機能を実行するデバイスとは無関係に適用することができる。これによりユーザは、デバイス毎に１つ、複数のトークンを管理するのではなく、１つのトークン・インタフェースのみ管理すればよい。
【００１３】
【発明の実施の形態】
各図を参照する。図１は、本発明を実装することのできる分散データ処理システムを示す。分散データ処理システム１００は、本発明を実装することのできるコンピュータのネットワークである。分散データ処理システム１００は、分散データ処理システム１００内に一括接続された各種デバイス間、コンピュータ間に通信リンクを提供するため用いられる媒体であるネットワーク１０２を含む。ネットワーク１０２には、ワイヤ、光ファイバ・ケーブル等の永続接続または電話回線による一時接続を追加することができる。
【００１４】
図の例で、サーバ１０４とサーバ１０６は、ストレージ・ユニット１０８とともにネットワーク１０２に接続される。またクライアント１１０、１１２、１１４もネットワーク１０２に接続される。これらのクライアント１１０乃至１１４は、例えばパーソナル・コンピュータやネットワーク・コンピュータである。ネットワーク・コンピュータは、ネットワークに接続され、同じくネットワークに接続された他のコンピュータからプログラムや他のアプリケーションを受け取る任意のコンピュータである。図の例のサーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージ、アプリケーション等のデータをクライアント１１０乃至１１４に与える。
【００１５】
クライアント１１０乃至１１４は、サーバ１０４に対するクライアントである。またクライアント１１０乃至１１４は、これらの例ではサーバ１０６に対するクライアントにもなる。分散データ処理システム１００には、サーバ、クライアント、他のデバイス（図示せず）を追加できる。図の例の分散データ処理システム１００は、ＴＣＰ／ＩＰプロトコルの組により相互に通信するネットワークやゲートウェイの世界規模の集まりがネットワーク１０２により表されるインターネットである。インターネットの中核には、商用、政府、教育、その他の分野のデータやメッセージをルーティングするコンピュータ・システムで構成される主なノード間、ホスト・コンピュータ間の高速データ通信回線のバックボーンがある。もちろん分散データ処理システム１００は、例えばイントラネット、ＬＡＮ（ローカル・エリア・ネットワーク）、ＷＡＮ（ワイド・エリア・ネットワーク）のような、種類の複数の異なるネットワークとして実現することができる。図１は、異種コンピューティング環境の１例であり、本発明をアーキテクチャに関して限定するものではない。。
【００１６】
図２を参照する。図１のサーバ１０４またはサーバ１０６のようなサーバとして実装することのできるデータ処理システムが示してある。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２、２０４を含むＳＭＰ（対称型マルチプロセッサ）システムでもよい。またシングル・プロセッサ・システムも採用できる。システム・バス２０６には、ローカル・メモリ２０９とのインタフェースを与えるメモリ・コントローラ／キャッシュ２０８も接続される。またシステム・バス２０６にＩ／Ｏバス・ブリッジ２１０が接続され、Ｉ／Ｏバス２１２とのインタフェースが得られる。メモリ・コントローラ／キャッシュ２０８とＩ／Ｏバス・ブリッジ２１０は図のように統合することができる。
【００１７】
Ｉ／Ｏバス２１２に接続されたＰＣＩ（Peripheral Component Interconnect）バス・ブリッジ２１４は、ＰＣＩローカル・バス２１６とのインタフェースを与える。ＰＣＩローカル・バス２１６には複数のモデムを接続できる。代表的なＰＣＩバスは４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。図１のネットワーク・コンピュータ１０８乃至１１２との通信リンクは、アドイン・ボードを通してＰＣＩローカル・バス２１６に接続されたモデム２１８とネットワーク・アダプタ２２０により得られる。
【００１８】
ＰＣＩバス・ブリッジ２２２、２２４はＰＣＩバス２２６、２２８にインタフェースを与え、そこから他のモデムやネットワーク・アダプタをサポートすることができる。このように、データ処理システム２００では、複数のネットワーク・コンピュータとの接続が得られる。Ｉ／Ｏバス２１２には、図のように、直接または間接に、メモリ・マップ・グラフィックス・アダプタ２３０とハード・ディスク２３２も接続することができる。
【００１９】
当業者には明らかなように、図２に示したハードウェアは変更することができる。例えば光ディスク・ドライブ等の他の周辺装置を、図のハードウェアに追加してまたはその代わりに使用できる。図の例は、本発明に関してアーキテクチャ上の制限を意味するものではない。図２のデータ処理システムは、例えばＡＩＸ（拡張対話式エグゼクティブ）オペレーティング・システムが動作するIBM RISC/System 6000でもよい。また、Java（Ｒ）OS For Business（Ｒ）、ＯＳ／２（Ｒ）等の他の一般的なオペレーティング・システムも採用できる。Java（Ｒ）OSは、ネットワーク上のサーバからネットワーク・クライアントにロードされ、Ｊａｖａ（Ｒ）のプログラムやアプレットをサポートする。Ｊａｖａ（Ｒ）のようなオブジェクト指向プログラミング・システムは、オペレーティング・システムとともに動作可能で、データ処理システムで動作するＪａｖａ（Ｒ）のプログラムやアプリケーションからオペレーティング・システムへのコールが得られる。
【００２０】
本発明は、様々なコンピュータ・プラットフォーム、オペレーティング・システム上で暗号化データ・オブジェクトを処理する方法、システムまたは装置、及びコンピュータ実装命令を提供する。本発明は、ほとんどのコンピュータ言語で実装することができるが、ほとんどの環境でパフォーマンスが良いことから、好適にはＣ言語で実装される。ただし例のユーザ・インタフェースはＪａｖａ（Ｒ）で実装することができる。従って本発明は、Ｊａｖａ（Ｒ）標準仕様に定義されているように、Ｊａｖａ（Ｒ）ランタイム環境内で採用でき、ＪＶＭ（Ｊａｖａ（Ｒ）仮想マシン）とともに、ＪＶＭ境界内でも使用できる。本発明の背景を示すため、Ｊａｖａ（Ｒ）仕様に従ったＪＶＭの動作の一部をここで説明している。
【００２１】
図３を参照する。本発明を実装することのできるコンピュータ・システム内で動作するソフトウェア・コンポーネントの関係が示してある。Ｊａｖａ（Ｒ）ベースのシステム２５０は、特定のハードウェア・プラットフォーム上で動作するソフトウェアに対してハードウェアとシステムのサポートを与えるプラットフォーム固有オペレーティング・システム２５２を含む。ＪＶＭ２５４は、オペレーティング・システムとともに動作可能な１つのソフトウェア・アプリケーションである。ＪＶＭ２５４は、Ｊａｖａ（Ｒ）プログラミング言語で書かれたプログラム、サーブレット、またはソフトウェア・コンポーネントであるＪａｖａ（Ｒ）アプリケーションもしくはアプレット２５６を実行可能なＪａｖａ（Ｒ）ランタイム環境を与える。ＪＶＭ２５４が動作するコンピュータ・システムには、前記のデータ処理システム２００と同様なシステムを使用できるが、ＪＶＭ２５４は、いわゆるpicoJavaコアが組み込まれたＪａｖａ（Ｒ）チップ、Ｊａｖａ（Ｒ）オン・シリコン、またはＪａｖａ（Ｒ）プロセッサ上の専用ハードウェアに実装することもできる。
【００２２】
Ｊａｖａ（Ｒ）ランタイム環境の中核はＪＶＭであり、ＪＶＭは、アーキテクチャ、セキュリティ機能、ネットワーク間の移動、プラットフォーム独立性等、Ｊａｖａ（Ｒ）環境のあらゆる側面をサポートする。ＪＶＭは、仮想コンピュータ、つまり抽象的に規定されたコンピュータである。Ｊａｖａ（Ｒ）仕様は、全てのＪＶＭが実装する必要のある特定の機能を定義しており、ＪＶＭが動作するよう設計されたプラットフォームに依存し得る一定の設計自由度がある。例えば、ＪＶＭは全て、Ｊａｖａ（Ｒ）バイトコードを実行する必要があり、バイトコードにより表される命令を実行するには、一定範囲の手法を採ることができる。ＪＶＭは全体をソフトウェアに、または一部をハードウェアに実装することができる。この柔軟性により、メインフレーム・コンピュータ、ＰＤＡ等の複数のハードウェア・プラットフォーム用に異なるＪＶＭを設計することができる。
【００２３】
ＪＶＭは、実際にＪａｖａ（Ｒ）プログラムを実行する仮想コンピュータ・コンポーネントの名称である。Ｊａｖａ（Ｒ）プログラムは、中央のプロセッサにより直接実行されることはなくＪＶＭにより実行される。ＪＶＭ自体、プロセッサで動作するソフトウェアである。Ｊａｖａ（Ｒ）プログラムは、ＪＶＭにより、コードがコンパイルされた当の１つのプラットフォームだけでなく、異なるプログラムで実行することができる。Ｊａｖａ（Ｒ）プログラムはＪＶＭを対象にコンパイルされる。こうしてＪａｖａ（Ｒ）は、各種のＣＰＵ（中央処理システム）やオペレーティング・システム・アーキテクチャを使用できる多様なデータ処理システムのためにアプリケーションをサポートすることができる。
【００２４】
図１乃至図３に関して説明したデータ処理システムは、ＰＫＣＳ＃７、ＰＫＣＳ＃１１オブジェクト等、相互運用可能に定義されている暗号標準に従ってフォーマットされた暗号化データ・オブジェクトの作成、変更、転送、保存、受信に使用できる。以下、証明書、署名等が用いられる背景について説明する。
【００２５】
証明書は、個人、コンピュータ・システム、または組織のＩＤとキー所有権を保証する電子ドキュメントである。例えばユーザの証明書は、ユーザが特定の公開キーを所有することを証明するものである。証明書は証明機関により発行される。証明機関は、証明書を発行する前に、個人のＩＤとキー所有権を証明する責任を持つ。ＩＤ証明書は、あるエンティティからのデジタル署名されたステートメントであり、他のエンティティの公開キーに一定の価値があることを示す。
【００２６】
公開キーは、特定のエンティティに関連付けられた数字であり、そのエンティティとの間で信頼できる関係を持つ必要のある者に知らせることを前提にしている。エンティティは個人、組織、プログラム、コンピュータ、企業、銀行等である。データがデジタル署名された場合、データは、エンティティがデータのことを知っていることを証明するエンティティの"ＩＤ"及び署名とともに保存されている。署名は、データ及びエンティティの秘密キーから計算される。
【００２７】
秘密キーは、特定のエンティティしか知り得ない、つまり秘密にされることを想定した数字である。代表的な公開キー暗号方式の秘密キーは正確に１つの公開キーに対応する。
【００２８】
証明書は、公開キー暗号方式に依存し、ａ）公開キーと秘密キーはペアとして使用され、ｂ）秘密キーは署名に用いられ、ｃ）公開キーは署名の確認に用いられる。証明機関（ＣＡ）は、他者（エンティティ）のため証明書に署名する（証明書を発行する）、信頼されている企業等のエンティティである。通常、CAは、証明書に署名したエンティティを信頼できるような、公開キーとその所有者の結びつきを保証することに関して何らかの法的責任を持つ。
【００２９】
証明書を取得する方法は基本的には２つある。１）ソフトウェアを使用して自身で作成するか、または２）証明機関等の他者に発行を依頼する。証明書作成プロセスには主に２つの入力がある。１つは、特別なソフトウェアを使用して生成され照合された公開キーと秘密キーのペアである。他者に表示されるのは公開キーのみである。秘密キーはデータの署名に用いられる。秘密キーが不正に知られた場合、第三者の手によるものとした法的文書が偽造される恐れもある。第２の入力は、個人等の証明されるエンティティに関する情報である。通常これは名前、組織の住所等の情報を含む。証明機関が証明書を発行する場合、通常はＩＤ証明を提出する必要がある。
【００３０】
証明機関が個人の証明書を発行する場合、個人は公開キー及び自身に関する何らかの情報を提出する必要がある。Netscape Navigator等のツールはこの情報にデジタル署名し、証明機関に送信することができる。証明機関としては、信頼されている第三者証明機関サービスを提供する会社等が考えられる。証明機関は証明書を生成して送り返す。証明書には、証明書の有効期間、シリアル番号等、他の情報も加えることができる。証明機関により生まれる価値の一部は、部分的には、証明機関のＣＳＰ（Certification Service Practices）として公開される証明機関の検証要件をもとに、中立で信頼できる紹介サービスを提供することである。
【００３１】
本発明は、暗号化オブジェクト、メソッド等のオブジェクトを組み合わせて１つのトークンを作成するメカニズムを提供する。その際、ユーザが操作し理解する必要のあるトークン数は減少する。従って暗号化機能を作成しオブジェクトに適用するためのインタフェースは簡素化でき、よりユーザ・フレンドリになる。
【００３２】
図４は、組み合わせて１つのトークン・インタフェースを作成する機能オブジェクトの関係を示す代表的な図である。図４に示した要素は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組み合わせ、データ処理システム上に存在するデバイスを表している。データ処理システムは、ネットワーク１０２等のネットワークに分散させることができ、クライアント・デバイス１１０、サーバ・デバイス１０４のようなスタンドアロン・データ処理システムにすることもできる。
【００３３】
図４に示すように、機能は、暗号化機能３１０、オブジェクト作成／管理機能（オブジェクト・モジュール）３２０、及びセッション管理機能３３０に分けられる。これらの機能は、例えばＰＫＣＳ＃１１標準に定義されている関数C_GetMechanismListを呼び出すことによって取得することができる。例えば、ユーザが新しいトークン・インタフェースを作成するとき、アプリケーションからトークン６１０、６２０、６３０のC_GetMechanismListを呼び出すことができる。これは、実際に返されるメカニズムによるが、３１０または３２０の要素の１つと分類される。次にユーザは各要素を個別にアクセスできる。これらの機能を分けることによって、トークン・インタフェース３４０を使用し、ソフトウェア・デバイスとハードウェア・デバイスの組み合わせを更に組み合わせて１つのトークンを作成することができる。
【００３４】
トークン・インタフェース３４０とセッション管理モジュール３３０は、各デバイスの場所とデバイスとの通信方法を管理する。セッション管理モジュール３３０は、トークン・インタフェース３４０に関連付けられたトークンのセッションを管理する。トークン・インタフェース３４０は、トークン・インタフェース３４０内の各トークン及び各トークンのセッションに関する情報を維持する。トークン・インタフェースは、種類の複数の異なるトークンから構成でき、それぞれ別々のセッションに用いられるので、セッション管理モジュール３３０は、オープンなセッション指定をサポートする必要がある。
【００３５】
図４のオブジェクトは、別々のモジュールの各種機能オブジェクトを表す。例えばデータ・オブジェクトの署名を生成するため、暗号モジュール３１０の署名オブジェクトが用いられる。データ・オブジェクトの署名を検証するには、検証オブジェクトを使用できる。同様に、これらの機能を実行するには、暗号化オブジェクトや復号化オブジェクトを使用できる。これらの機能は、例えばデータ処理デバイス、コンピュータ・プログラム、回路、その他のハードウェアにより実装されたＪａｖａ（Ｒ）メソッドに組み込むことができる。ここでは、機能はハードウェア・メソッドとして組み込まれていることを前提にしている。
【００３６】
モジュールは、ソフトウェアとハードウェアのいずれかまたは両方に実装することのできるデバイスを表す。モジュールは、機能オブジェクトにより表される機能を実行することができる。例えばモジュールは、暗号ハードウェア・デバイス、ストレージ・デバイス等のハードウェア・デバイス、または暗号アルゴリズムのライブラリ等のソフトウェア・デバイスでもよい。
【００３７】
図５は、本発明に従った代表的ＧＵＩ（グラフィカル・ユーザ・インタフェース）である。図５に示すように、ＧＵＩ４００はトークン一覧４１０とトークン・インタフェース一覧４２０を含む。またＧＵＩ４００は、トークン・インタフェース一覧でトークン・インタフェースの追加、変更、削除を行う仮想ボタン４３０、４４０、４５０を含む。
【００３８】
ユーザは、仮想ボタン４３０乃至４５０の１つを仮想的に押すことによって、トークン・インタフェースの追加、変更、削除が行える。トークン・インタフェースの変更または削除の場合、トークン・インタフェース一覧４２０からまずトークン・インタフェースを選択し、次に変更または削除の仮想ボタン４４０／４５０を仮想的に押すことができる。
【００３９】
トークン一覧４１０は、新しいトークン・インタフェースを作成し、既存トークン・インタフェースを変更するため使用できるトークンを示す。トークン一覧４１０は、ＧＵＩ４００に関連付けられたトークン・データベース（図示せず）からトークン情報を取得することによって生成することができる。このデータベースは、本発明が実装されたデータ処理システムに関連付けられたメモリに維持することができる。トークンを一覧に追加するには、関連付けられたデータベースに追加する。このトークン一覧はまた、例えばＰＫＣＳ＃１１の関数呼び出しC_GetSlotListを使用し、tokenPresent値を調べて既存トークンを検証し、新しいトークンが追加されているか確認することによっても取得できる。
【００４０】
図６は、図５のトークン・インタフェース追加仮想ボタン４３０の選択に応答してユーザに表示される代表的ＧＵＩ（グラフィカル・ユーザ・インタフェース）５００である。図６に示すように、ＧＵＩ５００は、トークン・インタフェースを識別するトークン・インタフェース・ラベルを入力するフィールド５１０を含む。このトークン・インタフェース・ラベルは、トークン・インタフェース一覧４２０に表示されるラベルである。ＧＵＩ５００はまた、トークン・インタフェースを追加または追加をキャンセルする仮想ボタン５２０、５３０を含む。トークン・インタフェース・ラベルがフィールド５１０に入力されると、追加仮想ボタン５２０が有効になり、ユーザは、追加されるトークン・インタフェースを定義するためＧＵＩとともに表示される追加仮想ボタン５２０を選択することができる。
【００４１】
図７は、トークン・インタフェースを定義するＧＵＩ（グラフィカル・ユーザ・インタフェース）６００の代表的な図である。ＧＵＩ６００は、トークン・インタフェースが追加されているとき（例えば仮想ボタン５２０の選択により）、またはトークン・インタフェースが変更されているとき（例えば仮想ボタン４４０の選択により）ユーザに表示される。図７に示すように、ＧＵＩ６００は、トークン一覧４１０の各トークンに関連付けられたメソッドの詳細一覧６１０、６２０、６３０と、トークン・インタフェースに追加されているメソッドの一覧６４０を含む。またＧＵＩ６００は、トークン・インタフェース・メソッド一覧６４０でメソッドの追加と削除を行う追加と削除の仮想ボタン６５０、６６０を含む。
【００４２】
ユーザは、メソッドを選択し、追加仮想ボタン６５０を押すことによって、トークン・メソッド一覧６１０乃至６３０のいずれからでも、トークン・インタフェース・メソッド一覧６４０にメソッドを追加することができる。同様に、トークン・インタフェース・メソッド一覧６４０からメソッドを選択し、削除仮想ボタン６６０を押すことによって、トークン・インタフェース・メソッド一覧６４０からメソッドを削除することができる。ユーザは、トークン・インタフェースに割当てられたメソッドに満足すれば、保存仮想ボタン６７０を選択してトークン・インタフェースをメモリに保存することができる。ユーザが、トークン・インタフェースの追加や変更をそれ以上行わない場合、キャンセル仮想ボタン６８０を選択すればもう一度ＧＵＩ４００を表示することができる。
【００４３】
図７からわかるように、トークン・インタフェースは、複数の異なるトークンからのメソッド等の機能で構成することができる。従って、トークン・インタフェースは、トークンとして表される異なるデバイスにより実行される種類の異なる多くの機能を実行することができる。例えば、図７に示したトークン・インタフェースＢは、ＲＳＡキー・ペア生成（セキュア・ストレージ・デバイスから取得）、ＲＳＡ  ＰＫＣＳ暗号化（ＲＳＡアクセラレータ・デバイスから）、及びDES3 MAC暗号化（ＤＥＳアクセラレータ・デバイスから）を実行することができる。その結果、ユーザは、３つの異なるトークン６１０乃至６３０ではなく、トークン・インタフェースＢを管理するだけでよい。
【００４４】
トークン・インタフェースは、ＧＵＩ４００、５００、６００を使用して定義されると、トークンが現在データ・オブジェクトに適用されるのと同じように、データ・オブジェクトに適用することができる。ただし本発明のトークン・インタフェースでは、各種デバイスの機能はどれも、データ・オブジェクトに対して実行することができる。従って、ユーザは、データ・オブジェクトに対してＲＳＡ  ＰＫＣＳ暗号化を行いたい場合、データ・オブジェクトにトークン・インタフェースＢだけを適用すればよい。同様に、データ・オブジェクトに対してDES3 MAC暗号化を行いたい場合は、同じトークン・インタフェースＢをデータ・オブジェクトに適用する。
【００４５】
適用される暗号の種類は、例えば、ＰＫＣＳ標準に定義されているように、C_EncryptInit関数に渡されるpMechanismパラメータをもとに決定することができる。同じアルゴリズムを実行することのできるトークンが複数ある場合、トークン・インタフェースは、デバイスの現在の負荷とパフォーマンスをもとに最適なトークンを決定する。セッション管理モジュール３３０とトークン・インタフェースは、トークン・インタフェースの各種デバイス及びそれらとの通信方法に関する情報を維持するので、トークン・インタフェース・メソッド一覧６４０の特定のメソッドがデータ・オブジェクトに適用されたとき、対応するデバイスを利用してデータ・オブジェクトのメソッドを実行することができる。
【００４６】
本発明のメリットを示す例として次を考える。第１デバイスはＲＳＡ暗号アルゴリズムを使用でき、第２デバイスはＤＳＡ暗号アルゴリズムを使用できるが、いずれもハッシングやキーの安全な保存は行えないとする。また、キーを永久保存するストレージ・デバイスと、セッション・キーを読取るスマート・カード・リーダがあるとする。
【００４７】
これまでのＰＫＣＳ＃１１システムは、これら４つのデバイスを別々のトークンとして扱う。すなわち、ＲＳＡ暗号アルゴリズムのトークンがあり、ＤＳＡ暗号アルゴリズムのトークンがあり、永久保存用トークンがあり、スマート・カード・リーダ用のトークンがある。従って、ユーザは、必要な機能を全て実行するためには、これら４つのトークンそれぞれを熟知し使用できなければならない。
【００４８】
本発明では、これらのデバイスそれぞれを組み合わせて１つのトークン・インタフェースにすることができる。例えば、４つのデバイスのトークンはそれぞれ、ＧＵＩ６００において、対応するメソッド一覧とともに表示することができる。これらのトークンに関連付けられたメソッドは、追加仮想ボタン６５０を使用してトークン・インタフェース・メソッド一覧６４０に追加することができる。そこで、保存仮想ボタン６７０を使用してトークン・インタフェースをメモリに保存することもできる。その後、この１つのトークン・インタフェースは、４つのデバイスの機能を全て１つのトークンとして実行することができる。従って、この１つのトークンを使用して、ＲＳＡ暗号、ＤＥＳ暗号、キー保存、キー生成を実現することができる。
【００４９】
図８は、本発明の代表的な動作を示すフォーマットである。動作は、トークン・インタフェースのＧＵＩ（グラフィカル・ユーザ・インタフェース）をユーザに表示することからスタートする（ステップ７１０）。"トークン・インタフェース追加"コマンドまたは "トークン・インタフェース変更"コマンドが受信されたか確認される（ステップ７２０）。
【００５０】
受信された場合、トークン追加／変更ＧＵＩが表示される（ステップ７３０）。追加と削除のメソッド命令が受信され（ステップ７４０）、"保存"コマンドが受信されたか確認される（ステップ７５０）。受信された場合、トークン・インタフェースがメモリに保存され（ステップ７６０）、動作は終了する。受信されなかった場合、"トークン・インタフェース追加"機能がキャンセルされたか確認される（ステップ７７０）。キャンセルされた場合動作は終了する。キャンセルされなかった場合動作はステップ７４０に戻る。
【００５１】
"トークン・インタフェース追加"コマンドまたは"トークン・インタフェース変更"コマンドが受信されなかった場合、 "トークン・インタフェース削除"コマンドが受信されたか確認される（ステップ７８０）。受信された場合、選択されたトークン・インタフェースがメモリから削除される（ステップ７９０）。受信されなかった場合、動作はステップ７１０に戻り、ユーザ・コマンドが受信されるまでトークン・インタフェースＧＵＩの表示が続く。
【００５２】
本発明は、複数の異なるトークンの機能が得られる１つのトークン・インタフェースを定義することのできるメカニズムを提供する。これにより、１つのトークン・インタフェースによって多くの異なるトークンを実装することができるので、トークンをデータ・オブジェクトに適用して各種の機能を実行するプロセスが大幅に簡素化される。
【００５３】
ここで重要なことは、本発明については、フル機能のデータ処理システムの文脈から説明しているが、当業者には明らかなように、本発明のプロセスは、命令のコンピュータ可読媒体の形等、様々な形式で配布でき、本発明は、実際に配布を行う信号伝達媒体の種類にかかわらず等しく適用されることである。コンピュータ可読媒体の例としては、フロッピー（Ｒ）ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ等の記録媒体、デジタル、アナログの通信リンク等の伝送媒体等がある。
【００５４】
本発明の説明は便宜上の説明であり、ここに開示した形式に関して排他あるいは制限を意味するものではない。当業者には多くの変更、変形が考えられよう。例えば、本発明は複数のＧＵＩに関して説明したが、本発明はこれに限定されない。トークン・インタフェースの追加、変更、削除等のコマンドやトークン・インタフェースの機能を入力するには、本発明の主旨と範囲から逸脱することなく任意の手段を使用することができる。
【００５５】
更に、本発明の好適実施例は、各種トークンの機能を具体化するものとしてのハードウェア・メソッドに関して説明しているが、本発明は、ハードウェア・メソッドに限定されない。機能を実装可能であれば、任意のハードウェア、ソフトウェアのデバイスを使用し、前記の文脈でオブジェクトやトークンとして表すことができる。例えばメソッドはＪａｖａ（Ｒ）メソッド等でもよい。
【００５６】
実施例は、本発明の原理と実用を十分に伝え、当業者が、様々な変形を伴う様々な実施例について、前記の特定の用途に沿う形で本発明を理解するよう選ばれており説明されている。
【００５７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５８】
（１）複数の異なるデバイスの機能を組み合わせるトークン・インタフェースを生成する方法であって、
前記複数の異なるデバイスそれぞれの機能の一部を選択するステップと、
前記機能の一部をトークン・インタフェースに割当てるステップと、
前記機能の一部をもとに前記トークン・インタフェースを生成するステップと、
を含む、方法。
（２）前記複数の異なるデバイスそれぞれの機能をカテゴリに分けるステップを含み、該カテゴリをもとに前記機能の一部が選択される、前記（１）記載の方法。
（３）前記カテゴリは、暗号化機能及びオブジェクトの作成と管理の機能を含む、前記（２）記載の方法。
（４）組み合わせてトークン・インタフェースを作成することのできるトークンの一覧を与えるステップを含み、該トークン一覧のトークンはそれぞれ、前記複数の異なるデバイスのうち別々のデバイスを表す、前記（１）記載の方法。
（５）前記複数の異なるデバイスそれぞれの機能の一部を選択するステップは、前記トークン一覧からトークンの一部を選択するステップを含む、前記（４）記載の方法。
（６）前記トークン一覧のトークンそれぞれにメソッドが関連付けられ、前記複数の異なるデバイスそれぞれの機能の一部を選択するステップは、関連付けられた該メソッドのうち１つ以上のメソッドを選択するステップを含む、前記（４）記載の方法。
（７）前記選択、割当て、及び生成のステップはグラフィカル・ユーザ・インタフェースを使用して実行される、前記（１）記載の方法。
（８）前記複数の異なるデバイスはハードウェア・デバイスとソフトウェア・デバイスのうち少なくとも１つを含む、前記（１）記載の方法。
（９）前記複数の異なるデバイスはＲＳＡアクセラレータ、ＤＥＳアクセラレータ、セキュア・ストレージのうち少なくとも１つを含む、前記（１）記載の方法。
（１０）前記機能は暗号化機能を含む、前記（１）記載の方法。
（１１）トークン・インタフェースを生成するグラフィカル・ユーザ・インタフェースであって、
複数の異なるデバイスの機能の一覧と、
トークン・インタフェースの一覧と、
前記機能一覧の機能を１つ以上前記トークン・インタフェース一覧のトークン・インタフェース１つ以上に追加する仮想コントロールとを含み、前記機能一覧の機能１つ以上は、前記機能一覧から機能の一部を選択し、前記仮想コントロールを使用して該機能の一部をトークン・インタフェースに割当て、該機能の一部をもとに該トークン・インタフェースを生成することによって、該トークン・インタフェース１つ以上に追加される、
グラフィカル・ユーザ・インタフェース。
（１２）前記複数の異なるデバイスそれぞれの機能はカテゴリに分けられ、前記機能の一部は該カテゴリをもとに選択される、前記（１１）記載のグラフィカル・ユーザ・インタフェース。
（１３）前記カテゴリは暗号化機能及びオブジェクトの作成と管理の機能を含む、前記（１２）記載のグラフィカル・ユーザ・インタフェース。
（１４）組み合わせてトークン・インタフェースを作成することのできるトークンの一覧を含み、該トークン一覧のトークンはそれぞれ前記複数の異なるデバイスのうち別々のデバイスを表す、前記（１１）記載のグラフィカル・ユーザ・インタフェース。
（１５）前記複数の異なるデバイスそれぞれの機能の一部を選択するステップは、前記トークン一覧のトークンの一部を選択するステップを含む、前記（１４）記載のグラフィカル・ユーザ・インタフェース。
（１６）前記トークン一覧のトークンそれぞれにメソッドが関連付けられ、前記複数の異なるデバイスそれぞれの機能の一部を選択するステップは、関連付けられた該メソッド１つ以上のうちメソッドを１つ以上選択するステップを含む、前記（１４）記載のグラフィカル・ユーザ・インタフェース。
（１７）前記トークン・インタフェース一覧からトークン・インタフェースを削除する仮想コントロールを含む、前記（１１）記載のグラフィカル・ユーザ・インタフェース。
（１８）前記複数の異なるデバイスはハードウェア・デバイスとソフトウェア・デバイスのうち少なくとも１つを含む、前記（１１）記載のグラフィカル・ユーザ・インタフェース。
（１９）前記複数の異なるデバイスはＲＳＡアクセラレータ、ＤＥＳアクセラレータ、セキュア・ストレージのうち少なくとも１つを含む、前記（１１）記載のグラフィカル・ユーザ・インタフェース。
（２０）前記機能は暗号化機能を含む、前記（１１）記載のグラフィカル・ユーザ・インタフェース。
（２１）複数の異なるデバイスの機能を組み合わせるトークン・インタフェースを生成するコンピュータ可読媒体のコンピュータ・プログラム製品であって、
前記複数の異なるデバイスそれぞれの機能の一部を選択する第１命令と、
前記機能の一部をトークン・インタフェースに割当てる第２命令と、
前記機能の一部をもとに前記トークン・インタフェースを生成する第３命令と、
を含む、コンピュータ・プログラム製品。
（２２）前記複数の異なるデバイスそれぞれの機能をカテゴリに分ける第４命令を含み、前記機能の一部は該カテゴリをもとに選択される、前記（２１）記載のコンピュータ・プログラム製品。
（２３）前記カテゴリは暗号化機能及びオブジェクトの作成と管理の機能を含む、前記（２２）記載のコンピュータ・プログラム製品。
（２４）組み合わせてトークン・インタフェースを作成することのできるトークンの一覧を与える第４命令を含み、該トークン一覧のトークンはそれぞれ前記複数の異なるデバイスのうち別々のデバイスを表す、前記（２１）記載のコンピュータ・プログラム製品。
（２５）前記複数の異なるデバイスそれぞれの機能の一部を選択する前記第１命令は、前記トークン一覧からトークンの一部を選択する命令を含む、前記（２４）記載のコンピュータ・プログラム製品。
（２６）前記トークン一覧の各トークンにメソッドが関連付けられ、前記複数の異なるデバイスそれぞれの機能の一部を選択する前記第１命令は、関連付けられた該メソッド１つ以上からメソッドを１つ以上選択する命令を含む、前記（２４）記載のコンピュータ・プログラム製品。
（２７）前記第１、第２、及び第３の命令を実行するため、グラフィカル・ユーザ・インタフェースを与える第４命令を含む、前記（２１）記載のコンピュータ・プログラム製品。
（２８）前記複数の異なる命令はハードウェア・デバイスとソフトウェア・デバイスのうち少なくとも１つを含む、前記（２１）記載のコンピュータ・プログラム製品。
（２９）前記複数の異なるデバイスはＲＳＡアクセラレータ、ＤＥＳアクセラレータ、セキュア・ストレージのうち少なくとも１つを含む、前記（２１）記載のコンピュータ・プログラム製品。
（３０）前記機能は暗号化機能を含む、前記（２１）記載のコンピュータ・プログラム製品。
【図面の簡単な説明】
【図１】本発明を実装できる分散データ処理システムを示す図である。
【図２】サーバとして実装できるデータ処理システムを示す図である。
【図３】本発明を実装できるコンピュータ・システム内で動作するソフトウェア・コンポーネントの関係を示す図である。
【図４】本発明に従ったオブジェクトの関係を示す図である。
【図５】本発明に従った第１グラフィカル・ユーザ・インタフェースを示す図である。
【図６】本発明に従った第２グラフィカル・ユーザ・インタフェースを示す図である。
【図７】本発明に従った第３グラフィカル・ユーザ・インタフェースを示す図である。
【図８】本発明の代表的な操作を示すフローチャートである。
【図９】ＰＫＣＳ＃１１暗号化トークン・インタフェースの一般モデルを示す図である。
【符号の説明】
１００、２００  データ処理システム
１０２  ネットワーク
１０４、１０６  サーバ
１０８  ストレージ・ユニット
１１０、１１２、１１４  ストレージ・ユニット
２０２、２０４  プロセッサ
２０６  システム・バス
２０８  メモリ・コントローラ／キャッシュ
２０９  ローカル・メモリ
２１０  Ｉ／Ｏバス・ブリッジ
２１２  Ｉ／Ｏバス
２１４  ＰＣＩバス・ブリッジ
２１６  ローカル・バス
２１８  モデム
２２０  ネットワーク・アダプタ
２２２、２２４  ＰＣＩバス・ブリッジ
２２６、２２８  ＰＣＩバス
２３０  メモリ・マップ・グラフィックス・アダプタ
２３２  ハード・ディスク
２５０  Ｊａｖａ（Ｒ）ベースのシステム
２５２  プラットフォーム固有オペレーティング・システム
２５４  ＪＶＭ
２５６  アプレット
３１０  暗号化機能
３２０  オブジェクト作成／管理機能（オブジェクト・モジュール）
３３０  セッション管理機能
３４０  トークン・インタフェース
４００、５００、６００  ＧＵＩ（グラフィカル・ユーザ・インタフェース）
４１０  トークン一覧
４２０  トークン・インタフェース一覧
４３０、４４０、４５０、５２０、５３０、６５０、６６０、６７０  仮想ボタン
５１０  フィールド
６１０、６２０、６３０  メソッドの詳細一覧
６４０  メソッドの一覧
【図１】
0004288021.tif 000002
【図２】
0004288021.tif 000003
【図３】
0004288021.tif 000004
【図４】
0004288021.tif 000005
【図５】
0004288021.tif 000006
【図６】
0004288021.tif 000007
【図７】
0004288021.tif 000008
【図８】
0004288021.tif 000009
【図９】
0004288021.tif 000010