(57)【要約】【課題】鍵をアプリケーション・プログラムに設定する際に、鍵の変更等に対しアプリケーション・プログラムを作成し直さずに済み、鍵の管理を容易にかつ安価に行える。【解決手段】暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムに付属するＤＬＬの公開関数内で、暗号化及び復号に使用する共通鍵と鍵ＩＤをそれぞれ定義している。そして、データＤＴを暗号化するに際し、上記ＤＬＬで定義された共通鍵を使用してデータＤＴを暗号化し、この暗号化データＥＤＴに上記ＤＬＬで定義された鍵ＩＤを付加して送信する。一方、上記暗号化データＥＤＴを復号する際には、複数のＤＬＬの中から、その公開関数内で定義された鍵ＩＤが上記暗号化データＥＤＴに付加された鍵ＩＤと一致するＤＬＬを選択し、このＤＬＬの公開関数内で定義された共通鍵を用いて上記暗号化データＥＤＴを復号するようにしたものである。【選択図】      図４
2009081755.tif 000002
【特許請求の範囲】
【請求項１】
作成者用コンピュータにより作成された暗号化または復号のためのアプリケーション・プログラムを使用して複数の利用者コンピュータ間でデータの暗号化転送を行うシステムで使用される鍵管理方法であって、
前記作成者用コンピュータが、入力された乱数をもとに前記暗号化及び復号のための鍵を作成する過程と、
前記作成者用コンピュータが、前記作成された鍵に関連付けられた鍵識別情報を設定する過程と、
前記作成者用コンピュータが、前記暗号化または復号のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリを作成し、この作成したソフトウエア・ライブラリの公開関数中に前記作成された鍵及びその鍵識別情報をそれぞれ定義する過程と、
データ転送元となる前記利用者コンピュータが、前記暗号化のためのアプリケーション・プログラムの制御の下で、前記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータを暗号化する過程と、
前記データ転送元となる利用者コンピュータが、前記暗号化のためのアプリケーション・プログラムの制御の下で、前記データの暗号化に使用した鍵に関連付けられた鍵識別情報を前記ソフトウエア・ライブラリの公開関数から読み出し、この読み出した鍵識別情報を前記暗号化されたデータに付加する過程と、
データの転送先となる前記利用者コンピュータが、前記復号のためのアプリケーション・プログラムの制御の下で、復号対象の暗号化データに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択する過程と、
前記データの転送先となる前記利用者コンピュータが、前記復号のためのアプリケーション・プログラムの制御の下で、前記選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに前記復号対象の暗号化データを復号する過程と
を具備することを特徴とする鍵管理方法。
【請求項２】
作成者用コンピュータにより作成された署名の付加または検証のためのアプリケーション・プログラムを使用して、複数の利用者コンピュータ間でデータに対する署名の付加及びその検証を行うシステムで使用される鍵管理方法であって、
前記作成者用コンピュータが、入力された乱数をもとに前記署名の付加または検証のための鍵を作成する過程と、
前記作成者用コンピュータが、前記作成された鍵に関連付けられた鍵識別情報を設定する過程と、
前記作成者用コンピュータが、前記署名の付加または検証のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリを作成し、この作成したソフトウエア・ライブラリの公開関数中に前記作成された鍵及びその鍵識別情報をそれぞれ定義する過程と、
データ転送元となる前記利用者コンピュータが、前記署名を付加するためのアプリケーション・プログラムの制御の下で、前記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータに対する署名を生成する過程と、
前記データ転送元となる利用者コンピュータが、前記署名を付加するためのアプリケーション・プログラムの制御の下で、前記署名の生成に使用した鍵に関連付けられた鍵識別情報を前記ソフトウエア・ライブラリの公開関数から読み出し、この読み出した鍵識別情報を前記生成された署名と共に前記データに付加する過程と、
データの転送先となる前記利用者コンピュータが、前記署名の検証のためのアプリケーション・プログラムの制御の下で、検証対象のデータに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択する過程と、
前記データの転送先となる前記利用者コンピュータが、前記検証のためのアプリケーション・プログラムの制御の下で、前記選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに前記検証対象の署名を検証する過程と
を具備することを特徴とする鍵管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばデータの暗号化やディジタル署名に使用する鍵を管理するための方法に関する。
【背景技術】
【０００２】
近年、情報のセキュリティ対策の一環として、映像やファイル等のデータを伝送する場合にデータの暗号化が盛んに行われるようになっている。例えば、画像を用いた監視システムでは、監視端末において監視画像データを暗号化して表示装置に向けて送信すると共に、この暗号化画像データのユーザデータ領域に鍵ＩＤを挿入して送信する。表示装置においては、上記監視端末から送られた暗号化画像データのユーザデータ領域から鍵ＩＤを取り出して、この鍵ＩＤに基づいて鍵管理サーバから対応する鍵を取得し、この取得した鍵をもとに上記暗号化画像データを復号し表示する（例えば、特許文献１を参照。）。
【０００３】
上記暗号化の方式としては、例えば共通鍵暗号方式又は公開鍵暗号方式が用いられる。共通鍵暗号方式は、送信側と受信側が共通の鍵を用いてデータの暗号化及び復号を行うものである。公開鍵暗号方式は、送信側が受信側の公開鍵を用いて共通鍵を暗号化して送信し、受信側が上記公開鍵により暗号化された共通鍵を自身の秘密鍵を用いて復号して、この復号された共通鍵をもとに暗号化データを復号するものである。
【０００４】
【特許文献１】特開２００６−３５２２６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記いずれも暗号方式においても、鍵を格納した鍵ファイルのセキュアな管理が要求される。また、たとえ鍵ファイルが暗号化されていても、この暗号化された鍵ファイルを復号するための鍵をセキュアに管理する必要がある。そこで、暗号化アプリケーション・プログラムのソースコード内に鍵を設定しておく方法が考えられている。しかしながら、暗号化アプリケーション・プログラムを作成するメーカにすれば、案件毎に鍵を変更したい場合に、アプリケーション・プログラムのソースコードを案件毎にコンパイルし直す必要がある。つまり、鍵ごとにアプリケーション・プログラムを作成することが必要となる。これは、アプリケーション管理の煩雑化やコストアップの原因となりきわめて好ましくない。
【０００６】
この発明は上記事情に着目してなされたもので、その目的とするところは、鍵をアプリケーション・プログラムに設定して管理する際に、鍵の変更等に対しアプリケーション・プログラムを作成し直さずに済み、鍵の管理を容易にかつ安価に行える鍵管理方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するためにこの発明の一観点は、作成者用コンピュータにより作成された暗号化または復号のためのアプリケーション・プログラムを使用して複数の利用者コンピュータ間でデータの暗号化転送を行うシステムで使用される鍵管理方法にあって、上記作成者用コンピュータにおいて、入力された乱数をもとに上記暗号化及び復号のための鍵を作成すると共に、この作成された鍵に関連付けられた鍵識別情報を設定し、これらの鍵及び鍵識別情報を、上記暗号化または復号のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリの公開関数中に定義する。そして、データ転送元となる利用者コンピュータがデータを暗号化する際に、上記暗号化のためのアプリケーション・プログラムの制御の下で、上記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータを暗号化し、このデータの暗号化に使用した鍵に関連付けられた鍵識別情報を上記ソフトウエア・ライブラリの公開関数から読み出して、この読み出した鍵識別情報を上記暗号化されたデータに付加する。一方、データの転送先となる利用者コンピュータが上記暗号化されたデータを復号する際には、上記復号のためのアプリケーション・プログラムの制御の下で、復号対象の暗号化データに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択し、この選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに上記復号対象の暗号化データを復号するようにしたものである。
【０００８】
一方、この発明の他の観点は、作成者用コンピュータにより作成された署名の付加または検証のためのアプリケーション・プログラムを使用して、複数の利用者コンピュータ間でデータに対する署名の付加及びその検証を行うシステムで使用される鍵管理方法にあって、上記作成者用コンピュータにおいて、入力された乱数をもとに上記署名の付加または検証のための鍵を作成すると共に、この作成された鍵に関連付けられた鍵識別情報を設定し、これらの鍵及びその鍵識別情報を、上記署名の付加または検証のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリの公開関数中に定義する。そして、データ転送元となる利用者コンピュータがデータに対し署名をする際に、署名を付加するためのアプリケーション・プログラムの制御の下で、上記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータに対する署名を生成し、この署名の生成に使用した鍵に関連付けられた鍵識別情報を上記ソフトウエア・ライブラリの公開関数から読み出して、この鍵識別情報を上記生成された署名と共に上記データに付加する。一方、データの転送先となる利用者コンピュータが上記データの署名を検証する際には、署名の検証のためのアプリケーション・プログラムの制御の下で、検証対象のデータに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択し、この選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに上記検証対象の署名を検証するようにしたものである。
【発明の効果】
【０００９】
したがって、データを暗号化及び復号する際にも、またデータに署名しこれを検証する際にも、鍵及び鍵識別情報はアプリケーション・プログラムに付属するソフトウエア・ライブラリの公開関数内でのみ使用されるので、鍵が外部に漏洩する可能性は低くセキュリティを高く維持することが可能となる。また、案件ごとに鍵を変更する場合には、ソフトウエア・ライブラリの公開関数内で定義している鍵の値を変えて再コンパイルするだけでよく、アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、アプリケーション管理の煩雑化やコストアップを招かない。  
すなわち、この発明によれば、鍵をアプリケーション・プログラムに設定して管理する際に、鍵の変更等に対しアプリケーション・プログラムを作成し直さずに済み、鍵の管理を容易にかつ安価に行える鍵管理方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照してこの発明の実施形態を説明する。  
（第１の実施形態）  
この発明の第１の実施形態は、共通鍵を用いた暗号化／復号アプリケーション・プログラムを使用してデータの暗号化及びその復号処理を行うシステムで使用される鍵管理方法である。
【００１１】
図１は、この発明の第１の実施形態に係わる鍵管理方法が適用される暗号化通信システムの概略構成図である。このシステムは、メーカ端末ＭＴ及び複数のユーザ端末ＵＴＳ，ＵＴＲを通信ネットワークＮＷを介して接続可能とし、メーカ端末ＭＴにより作成された暗号化／復号アプリケーション・プログラムをユーザ端末ＵＴＳ，ＵＴＲにインストールして、ユーザ端末ＵＴＳからユーザ端末ＵＴＲへデータの暗号化伝送を行うようにしたものである。
【００１２】
なお、通信ネットワークＮＷは、例えばインターネットに代表されるＩＰ（Internet Protocol）網と、このＩＰ網にアクセスするためのアクセス網とから構成される。アクセス網としては、例えば有線電話網や、ＣＡＴＶ（Cable Television）網、自動車携帯電話網や無線ＬＡＮ（Local Area Network）が用いられる。
【００１３】
ところで、メーカ端末ＭＴは例えばパーソナル・コンピュータからなり、例えば次のように構成される。図２はその機能構成を示すブロック図である。  
すなわち、メーカ端末ＭＴは中央処理ユニット（ＣＰＵ；Central Processing Unit）を備え、このＣＰＵ１１にはバス１２を介してプログラムメモリ１３、データメモリ１４、通信インタフェース（通信Ｉ／Ｆ）１５及び入出力インタフェース（入出力Ｉ／Ｆ）１６が接続されている。
【００１４】
通信インタフェース１５は、上記ＣＰＵ１１の制御の下で、通信ネットワークＮＷを介して上記ユーザ端末ＵＴｓ，ＵＴｒとの間で通信を行う。なお、通信プロトコルとしては、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）が使用される。
【００１５】
入出力インタフェース１６には、キーボード及びマウスからなる入力デバイス１７と、液晶表示器からなる表示デバイス１８が接続される。入出力インタフェース１６は、ＣＰＵ１１の制御の下で、入力デバイス１７により入力されたアプリケーション・プログラムの言語やデータを取り込むと共に、データメモリ１４から読み出されたアプリケーション・プログラムやデータを表示デバイス１８に表示させる。
【００１６】
データメモリ１４には、アプリケーション記憶エリア１４１と、ＤＬＬ記憶エリア１４２と、鍵管理テーブル１４３が設けられている。アプリケーション記憶エリア１４１は、後述するアプリケーション生成プログラム１３１により生成された各種アプリケーション・プログラムを格納するために用いられる。ＤＬＬ記憶エリア１４２は、後述するＤＬＬ作成プログラム１３２により作成されたＤＬＬ（Dynamic Link Library）を記憶するために用いられる。鍵管理テーブル１４３は、後述する鍵発行ツール１３３により作成された共通鍵と鍵ＩＤのリストを記憶するために用いられる。
【００１７】
プログラムメモリ１３には、アプリケーション生成プログラム１３１と、ＤＬＬ作成プログラム１３２と、鍵発行ツール１３３が格納される。アプリケーション生成プログラム１３１は、入力デバイス１７からのコマンドやデータの入力を受け付けてアプリケーション・プログラムを生成する処理を、上記ＣＰＵ１１に実行させる。生成されるアプリケーション・プログラムには、暗号化アプリケーション・プログラム及びこれと対をなす復号アプリケーション・プログラム、ＭＡＣ付加アプリケーション・プログラム及びこれと対をなすＭＡＣ検証アプリケーション・プログラム、署名付加アプリケーション・プログラム及びこれと対をなす署名検証アプリケーション・プログラムがある。暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムには、共通鍵を使用するものと公開鍵及び秘密鍵を使用するものとがある。
【００１８】
鍵発行ツール１３３は、入力デバイス１７により入力された乱数をもとに鍵を作成する処理を、上記ＣＰＵ１１に実行させる。作成する鍵は、共通鍵暗号方式に対しては共通鍵となり、公開鍵暗号方式の場合には公開鍵及び秘密鍵となる。また鍵発行ツール１３３は、上記共通鍵の作成に先立ち、上記鍵管理テーブル１４３で管理されているリストをもとに鍵ＩＤを決定する。さらに鍵発行ツール１３３は、上記公開鍵暗号方式に対し作成された公開鍵からフィンガプリントを算出する。
【００１９】
ＤＬＬ作成プログラム１３２は、入力デバイス１７によるコマンドやデータの入力に応じて、上記アプリケーション・プログラムに付加するソフトウエア・ライブラリとしてのＤＬＬを作成する処理を、上記ＣＰＵ１１に実行させる。このとき、ＤＬＬの公開関数内には、上記鍵発行ツール１３３により作成された鍵とこの鍵に関連付けられた鍵識別情報をそれぞれ定義する。
【００２０】
なお、ユーザ端末ＵＴｓ，ＵＴｒもパーソナル・コンピュータからなり、その構成は図２に示したメーカ端末ＭＴと同様に、ＣＰＵと、プログラムメモリと、データメモリと、通信インタフェースと、入出力インタフェースと、入力デバイス及び表示デバイスからなる。このうちプログラムメモリには、上記メーカ端末ＭＴにより作成された各種アプリケーション・プログラムとそのＤＬＬが格納され、これらのアプリケーション・プログラムの制御の下で、データの暗号化／復号処理、ＭＡＣ付加／検証処理、署名生成／検証処理が選択的に実行される。
【００２１】
次に、以上のように構成されたシステムにおける鍵管理方法を説明する。  
先ず、ＤＬＬ（Dynamic Link Library）の一般的な仕組みについて、図３を用いて説明する。図３（ａ）に示すように、アプリケーション・プログラムのソースコード３０をコンパイラ（図示せず）でコンパイルすると、アプリケーション・プログラムの実行ファイル３２が作成される。同様に、ＤＬＬのソースコード３１をコンパイラ（図示せず）でコンパイルすると、ＤＬＬ３３が作成される。そして、上記作成されたアプリケーション・プログラムを実行すると、図３（ｂ）に示すようにＤＬＬ３３の公開関数がコールされ、この公開関数をもとに処理が実行される。
【００２２】
一方、ＤＬＬ内にバグがあることが判明した場合、開発者は図３（ｃ）に示すように、バグを含んだＤＬＬ３４のソースコード３１を修正し、これをコンパイラ（図示せず）でコンパイルし直すことで、バグを取り除いたＤＬＬ３５を作成する。したがって、アプリケーション・プログラム３２のソースコード３０を変更することなく、処理内容の修正が可能となる。
【００２３】
この発明は、この点に着目して鍵及びその鍵識別情報をＤＬＬの公開関数内で定義し、これによりアプリケーション・プログラム自体を変更せずに鍵及び鍵管理情報の変更に対応するようにしたものである。  
（１）ＤＬＬの作成（共通鍵を使用する場合）  
メーカ端末ＭＴにおいて開発者は、図４に示すように先ずステップ（１）において鍵発行操作（乱数の入力）を行う。そうすると鍵発行ツール１３３は、先ずステップ（２）において鍵管理テーブル１４３に記憶された共通鍵と鍵ＩＤのリストから、既に使われている鍵ＩＤの最大値を読み込み、ステップ（３）においてこれから使用する新たな鍵ＩＤを決定する。例えば、図４に示すように既に使われている鍵ＩＤの最大値が“９９９８”だったとすると、これから使用する鍵ＩＤを“９９９９”に決定する。  
続いてステップ（４）において、上記入力された乱数をもとに共通鍵を作成する。そして、ステップ（５）において、上記作成した共通鍵と鍵ＩＤ“９９９９”を鍵管理テーブル１４３のリストに書き込む。
【００２４】
次に、ＤＬＬ作成プログラム１３２が、ステップ（６）においてＤＬＬを作成する。このＤＬＬの作成においては、ＤＬＬの公開関数内で上記共通鍵と鍵ＩＤを定義する処理が行われる。例えば、図４に示すように暗号化関数ｆ１、復号関数ｆ２、ＭＡＣ生成関数ｆ３及びＭＡＣ検証関数ｆ４にそれぞれ共通鍵と鍵ＩＤ“９９９９”を定義し、読み出し関数ｆ５に上記鍵ＩＤ“９９９９”を定義する。この作成されたＤＬＬは、ＤＬＬ記憶エリア１４２に記憶される。  
なお、システム内にユーザ端末ＵＴｓ，ＵＴｒが複数存在する場合には、これらの端末ごとに、異なる共通鍵とその鍵ＩＤが作成されて、これらを公開関数内で定義したＤＬＬが作成される。
【００２５】
（２）暗号化アプリケーション・プログラムの実行（共通鍵の場合）  
ユーザ端末ＵＴｓは、データを暗号化して送信する際に、上記メーカ端末ＭＴから提供された暗号化アプリケーション・プログラムを以下のように実行する。図５はその処理手順と処理内容を示すフローチャート、図６はその実行経過と結果を示す図である。
【００２６】
すなわち、暗号化アプリケーション・プログラムは、先ずステップＳＴ６１において、当該プログラムに付属するＤＬＬｄ１に対しコールしてその公開関数の一つである暗号化関数ｆ１を取得し、この暗号化関数ｆ１で定義されている共通鍵を用いてデータＤＴを暗号化し、暗号化データＥＤＴを作成する。次にステップＳＴ６２により、ＤＬＬｄ１の公開関数の一つである鍵ＩＤ読み出し関数ｆ５を取得し、この鍵ＩＤ読み出し関数ｆ５から当該関数内で定義されている鍵ＩＤ“９９９９”を読み出す。そして、ステップＳＴ６３により、上記読み出した鍵ＩＤ“９９９９”を、上記作成された暗号化データＥＤＴに付加する。  
上記鍵ＩＤ“９９９９”が付加された暗号化データＥＤＴは、送信アプリケーション・プログラムの制御の下で、通信インタフェース１５から転送先のユーザ端末ＵＴｒに向け送信される。
【００２７】
（３）復号アプリケーション・プログラムの実行（共通鍵の場合）  
ユーザ端末ＵＴｒは、転送元のユーザ端末ＵＴｓから送られた暗号化データを受信すると、この受信された暗号化データを復号アプリケーション・プログラムに従い以下のように復号する。図７はその処理手順と処理内容を示すフローチャート、図８はその実行経過と結果を示す図である。
【００２８】
すなわち、復号アプリケーション・プログラムは、先ずＳＴ８１において、復号しようとする暗号化データＥＤＴから鍵ＩＤ１６を取り出す。そして、所定のフォルダ（図示せず）にあるＤＬＬの数を調べて、その個数を取得する。次に、ステップＳＴ８２〜ＳＴ８８からなる処理ループにより、上記ＤＬＬの個数だけ以下の処理を繰り返す。
【００２９】
先ずステップＳＴ８３において、ＤＬＬｄ１〜ｄＮの中からＤＬＬを一つ選択するごとにこれをロードし、このロードしたＤＬＬの公開関数の一つである鍵ＩＤ読み出し関数ｆ５から、当該関数内で定義されている鍵ＩＤをステップＳＴ８４により読み出す。そして、この読み出したＤＬＬの鍵ＩＤが上記復号対象の暗号化データＥＤＴから取り出した鍵ＩＤの値と一致するか否かをステップＳＴ８５で判定する。この判定の結果、一致しなければステップＳＴ８８により当該ＤＬＬを解放し、ステップＳＴ８２に戻って次のＤＬＬについて上記ステップＳＴ８３〜ＳＴ８８を実行する。
【００３０】
これに対し、図８に示すように上記選択したＤＬＬｄ１で定義された鍵ＩＤが、復号対象の暗号化データＥＤＴから取り出した鍵ＩＤ“９９９９”と一致したとする。この場合、復号アプリケーション・プログラムは、ステップＳＴ８６に移行して、上記鍵ＩＤ“９９９９”が一致したＤＬＬｄ１の復号関数ｆ２から当該関数で定義されている共通鍵を読み出し、この読み出した共通鍵を用いて暗号化データＥＤＴを復号する。そして、この復号後にステップＳＴ８７により上記選択したＤＬＬｄ１を解放する。  
上記復号された画像等のデータＤＴは、表示アプリケーション・プログラムにより表示デバイスに表示される。
【００３１】
以上述べたように第１の実施形態では、暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムに付属するＤＬＬｄ１の公開関数内で、暗号化及び復号に使用する共通鍵と鍵ＩＤ“９９９９”をそれぞれ定義している。そして、データＤＴを暗号化するに際し、上記ＤＬＬｄ１で定義された共通鍵を使用してデータＤＴを暗号化し、この暗号化データＥＤＴに上記ＤＬＬｄ１で定義された鍵ＩＤ“９９９９”を付加して送信する。一方、上記暗号化データＥＤＴを復号する際には、複数のＤＬＬｄ１〜ｄＮの中から、その公開関数内で定義された鍵ＩＤが上記暗号化データＥＤＴに付加された鍵ＩＤと一致するＤＬＬを選択し、このＤＬＬの公開関数内で定義された共通鍵を用いて上記暗号化データＥＤＴを復号するようにしている。
【００３２】
したがって、データＤＴを共通鍵を用いて暗号化及び復号する際に、共通鍵及びその鍵ＩＤは暗号化及び復号アプリケーション・プログラムに付属するＤＬＬの公開関数内でのみ使用されるので、共通鍵が外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに共通鍵を変更する場合には、ＤＬＬの公開関数内で定義している共通鍵の値を変えて再コンパイルするだけでよく、暗号化及び復号アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、共通鍵の管理を容易にかつ安価に行うことができる。
【００３３】
（第２の実施形態）  
この発明の第２の実施形態は、公開鍵及び秘密鍵を用いた暗号化／復号アプリケーション・プログラムを使用してデータの暗号化及びその復号処理を行うシステムで使用される鍵管理方法である。  
なお、この実施形態のシステム構成、メーカ端末ＭＴ及びユーザ端末ＵＴｓ，ＵＴｒの構成は、処理内容を除き前記第１の実施形態と同一である。したがって、本実施形態においても前記図１及び図２を用いて説明を行う。
【００３４】
（１）ＤＬＬの作成（公開鍵及び秘密鍵を使用する場合）  
メーカ端末ＭＴにおいて開発者は、図９に示すように先ずステップ（１）において鍵発行操作（乱数の入力）を行う。そうすると鍵発行ツール１３３は、先ずステップ（２）において上記入力された乱数をもとに秘密鍵及び公開鍵を作成する。続いてステップ（３）において、上記作成された公開鍵からフィンガプリントＦＰを求める。
【００３５】
次に、鍵発行ツール１３３のＤＬＬ作成プログラム１３２が、ステップ（４）においてＤＬＬを作成する。このＤＬＬの作成においては、ＤＬＬの公開関数内で上記作成された秘密鍵、共通鍵及びフィンガプリントＦＰを定義する処理が行われる。例えば、図９に示すように暗号化関数ｆ６及び署名生成関数ｆ８において秘密鍵をそれぞれ定義し、復号関数ｆ７及び署名検証関数ｆ９において公開鍵をそれぞれ定義する。また、フィンガプリントＦＰ読み出し関数ｆ１０内でフィンガプリントＦＰを定義する。この作成されたＤＬＬは、ＤＬＬ記憶エリア１４２に記憶される。
なお、システム内にユーザ端末ＵＴｓ，ＵＴｒが複数存在する場合には、これらの端末ごとに、異なる秘密鍵と公開鍵、及びこの公開鍵のフィンガプリントＦＰが作成され、これらを公開関数内で定義したＤＬＬが作成される。
【００３６】
（２）暗号化アプリケーション・プログラムの実行（公開鍵及び秘密鍵の場合）  
ユーザ端末ＵＴｓは、データを暗号化して送信する際に、上記メーカ端末ＭＴから提供された暗号化アプリケーション・プログラムを以下のように実行する。図１０はその処理手順と処理内容を示すフローチャート、図１１はその実行経過と結果を示す図である。
【００３７】
すなわち、暗号化アプリケーション・プログラムは、先ずステップＳＴ１０１において、当該プログラムに付属するＤＬＬｄ１に対しコールしてその公開関数の一つである暗号化関数ｆ６を取得し、この暗号化関数ｆ６で定義されている秘密鍵を用いてデータＤＴを暗号化し、暗号化データＥＤＴを作成する。次にステップＳＴ１０２により、ＤＬＬｄ１の公開関数の一つであるフィンガプリント読み出し関数ｆ１０を取得し、このフィンガプリント読み出し関数ｆ１０から当該関数内で定義されているフィンガプリントＦＰを読み出す。そして、ステップＳＴ１０３により、上記読み出したフィンガプリントＦＰを、上記作成された暗号化データＥＤＴに付加する。  
上記フィンガプリントＦＰが付加された暗号化データＥＤＴは、送信アプリケーション・プログラムの制御の下で、通信インタフェース１５から転送先のユーザ端末ＵＴｒに向け送信される。
【００３８】
（３）復号アプリケーション・プログラムの実行（公開鍵及び秘密鍵の場合）  
ユーザ端末ＵＴｒは、転送元のユーザ端末ＵＴｓから送られた暗号化データを受信すると、この受信された暗号化データを復号アプリケーション・プログラムに従い以下のように復号する。図１２はその処理手順と処理内容を示すフローチャート、図１３はその実行経過と結果を示す図である。
【００３９】
すなわち、復号アプリケーション・プログラムは、先ずＳＴ１２１において、復号しようとする暗号化データＥＤＴからフィンガプリントＦＰを取り出す。そして、所定のフォルダ（図示せず）にあるＤＬＬの数を調べて、その個数を取得する。次に、ステップＳＴ１２２〜ＳＴ１２６からなる処理ループにより、上記ＤＬＬの個数だけ以下の処理を繰り返す。
【００４０】
先ずステップＳＴ１２３において、ＤＬＬｄ１〜ｄＮの中からＤＬＬを一つ選択するごとにこれをロードし、このロードしたＤＬＬの公開関数の一つであるフィンガプリント読み出し関数ｆ５から、当該関数内で定義されているフィンガプリントＦＰをステップＳＴ１２４により読み出す。そして、この読み出したＤＬＬのフィンガプリントＦＰが上記復号対象の暗号化データＥＤＴから取り出したフィンガプリントＦＰの値と一致するか否かをステップＳＴ１２５で判定する。この判定の結果、一致しなければステップＳＴ１２６により当該ＤＬＬを解放し、ステップＳＴ１２２に戻って次のＤＬＬについて上記ステップＳＴ１２３〜ＳＴ１２６を実行する。
【００４１】
これに対し、上記選択したＤＬＬｄ１で定義されたフィンガプリントＦＰが、復号対象の暗号化データＥＤＴから取り出したフィンガプリントＦＰと一致したとする。この場合、復号アプリケーション・プログラムは、ステップＳＴ１２７に移行して、上記フィンガプリントＦＰが一致したＤＬＬｄ１の復号関数ｆ７から当該関数で定義されている公開鍵を読み出し、この読み出した公開鍵を用いて暗号化データＥＤＴを復号する。そして、この復号後にステップＳＴ１２８により上記選択したＤＬＬｄ１を解放する。  
上記復号された画像等のデータＤＴは、表示アプリケーション・プログラムにより表示デバイスに表示される。
【００４２】
以上述べたように第２の実施形態では、暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムに付属するＤＬＬｄ１の公開関数内で、暗号化及び復号に使用する公開鍵と秘密鍵、及び公開鍵のフィンガプリントをそれぞれ定義している。そして、データＤＴを暗号化するに際し、上記ＤＬＬｄ１で定義された秘密鍵を使用してデータＤＴを暗号化し、この暗号化データＥＤＴに上記ＤＬＬｄ１で定義されたフィンガプリントを付加して送信する。一方、上記暗号化データＥＤＴを復号する際には、複数のＤＬＬｄ１〜ｄＮの中から、その公開関数内で定義されたフィンガプリントが上記暗号化データＥＤＴに付加されたフィンガプリントと一致するＤＬＬを選択し、このＤＬＬの公開関数内で定義された公開鍵を用いて上記暗号化データＥＤＴを復号するようにしている。
【００４３】
したがって、データＤＴを秘密鍵及び公開鍵を用いて暗号化及び復号する際に、秘密鍵と公開鍵、及びフィンガプリントは暗号化及び復号アプリケーション・プログラムに付属するＤＬＬの公開関数内でのみ使用されるので、秘密鍵と公開鍵、及びフィンガプリントが外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに秘密鍵と公開鍵を変更する場合には、ＤＬＬの公開関数内で定義している秘密鍵と公開鍵の値を変えて再コンパイルするだけでよく、暗号化及び復号アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、秘密鍵と公開鍵の管理を容易にかつ安価に行うことができる。
【００４４】
（第３の実施形態）  
この発明の第３の実施形態は、データ転送元のユーザ端末において、共通鍵を用いたメッセージ認証コード（ＭＡＣ；Message Authentication Code）付加アプリケーション・プログラムを使用してデータにＭＡＣ値を付加し、一方データ転送先のユーザ端末において、共通鍵を用いたメッセージ認証コード（ＭＡＣ；Message Authentication Code）検証アプリケーション・プログラムを使用してデータに付加されたＭＡＣ値を検証するシステムで使用される鍵管理方法である。
【００４５】
なお、この実施形態においてもシステム構成、メーカ端末ＭＴ及びユーザ端末ＵＴｓ，ＵＴｒの構成は、処理内容を除き前記第１の実施形態と同一である。したがって、本実施形態では前記図１及び図２を用いて説明を行う。また、ＤＬＬとしては前記図４において作成されたものを使用する。
【００４６】
（１）ＭＡＣ付加アプリケーション・プログラムの実行（共通鍵の場合）  
ユーザ端末ＵＴｓは、データにＭＡＣ値を付加して送信する際に、上記メーカ端末ＭＴから提供されたＭＡＣ付加アプリケーション・プログラムを以下のように実行する。図１４はその処理手順と処理内容を示すフローチャート、図１５はその実行経過と結果を示す図である。
【００４７】
すなわち、ＭＡＣ付加アプリケーション・プログラムは、先ずステップＳＴ１４１において、当該プログラムに付属するＤＬＬｄ１に対しコールしてその公開関数の一つであるＭＡＣ生成関数ｆ３を取得し、このＭＡＣ生成関数ｆ３で定義されている共通鍵を用いてデータＤＴのハッシュ関数を暗号化してＭＡＣ値ｍを生成する。次にステップＳＴ１４２により、ＤＬＬｄ１の公開関数の一つである鍵ＩＤ読み出し関数ｆ５を取得し、この鍵ＩＤ読み出し関数ｆ５から当該関数内で定義されている鍵ＩＤＫＩ“９９９９”を読み出す。そして、ステップＳＴ１４３により、上記読み出した鍵ＩＤ“９９９９”を、上記生成されたＭＡＣ値ｍと共にデータＤＴに付加する。  
上記ＭＡＣ値ｍ及び鍵ＩＤ“９９９９”が付加されたデータＤＴは、送信アプリケーション・プログラムの制御の下で、通信インタフェース１５から転送先のユーザ端末ＵＴｒに向け送信される。
【００４８】
（２）ＭＡＣ検証アプリケーション・プログラムの実行（共通鍵の場合）  
ユーザ端末ＵＴｒは、転送元のユーザ端末ＵＴｓから送られた、ＭＡＣ値ｍ及び鍵ＩＤ“９９９９”が付加されたデータＤＴを受信すると、この受信されたデータＤＴについてＭＡＣ検証アプリケーション・プログラムに従い以下のようにＭＡＣの検証処理を行う。図１６はその全体の処理手順と処理内容を示すフローチャート、図１８はその実行経過と結果を示す図である。
【００４９】
すなわち、ＭＡＣ検証アプリケーション・プログラムは、先ずＳＴ１６１において、検証しようとするＭＡＣ値ｍが付加されたデータＤＴから鍵ＩＤを取り出す。そして、所定のフォルダ（図示せず）にあるＤＬＬの数を調べて、その個数を取得する。次に、ステップＳＴ１６２〜ＳＴ１６６からなる処理ループにより、上記ＤＬＬの個数だけ以下の処理を繰り返す。
【００５０】
先ずステップＳＴ１６３において、ＤＬＬｄ１〜ｄＮの中からＤＬＬを一つ選択するごとにこれをロードし、このロードしたＤＬＬの公開関数の一つである鍵ＩＤ読み出し関数ｆ５から、当該関数内で定義されている鍵ＩＤをステップＳＴ１６４により読み出す。そして、この読み出したＤＬＬの鍵ＩＤが上記ＭＡＣ検証対象のデータＤＴから取り出した鍵ＩＤの値と一致するか否かをステップＳＴ１６５で判定する。この判定の結果、一致しなければステップＳＴ１６６により当該ＤＬＬを解放し、ステップＳＴ１６２に戻って次のＤＬＬについて上記ステップＳＴ１６３〜ＳＴ１６６を実行する。
【００５１】
これに対し、図１８に示すように上記選択したＤＬＬｄ１で定義された鍵ＩＤが、ＭＡＣ検証対象のデータＤＴから取り出した鍵ＩＤ“９９９９”と一致したとする。この場合、ＭＡＣ検証アプリケーション・プログラムは、ステップＳＴ１６７に移行し、上記鍵ＩＤ“９９９９”が一致したＤＬＬｄ１のＭＡＣ検証関数ｆ４を用いて、次のようにＭＡＣ値ｍの検証処理を実行する。図１７は、そのＭＡＣ検証処理の詳細な手順と内容を示すフローチャートである。
【００５２】
すなわち、ＭＡＣ検証関数ｆ４は、先ずステップＳＴ１７１によりデータＤＴに対するハッシュ値（値Ａと呼ぶ）を算出する。続いてステップＳＴ１７２により、上記データＤＴに付加されているＭＡＣ値ｍを、ＭＡＣ検証関数ｆ４で定義されている共通鍵を用いて復号し値Ｂを得る。そして、ステップＳＴ１７３により、上記算出されたハッシュ値Ａと上記復号された値Ｂとを比較し、これらの値ＡとＢが一致するか否かを判定する。この判定の結果ＡとＢが一致すれば、ステップＳＴ１７４においてＭＡＣ値ｍは有効、つまりデータＤＴは改ざんされていないと判定する。一方、上記判定の結果がＡとＢが一致しなければ、ステップＳＴ１７５においてＭＡＣ値ｍは無効、つまりデータＤＴが改ざんされた可能性があると判定する。かくして、ＭＡＣ値によるデータＤＴの検証結果ＲＴが得られる。  
上記ＭＡＣ検証関数ｆ４を用いたＭＡＣ値の検証処理が終了すると、ＭＡＣ検証アプリケーション・プログラムはステップＳＴ１６８に移行し、ここで上記選択したＤＬＬｄ１を解放する。
【００５３】
以上述べたように第３の実施形態では、ＭＡＣ付加アプリケーション・プログラム及びＭＡＣ検証アプリケーション・プログラムに付属するＤＬＬｄ１の公開関数内で、ＭＡＣ付加及びＭＡＣ検証に使用する共通鍵と鍵ＩＤ“９９９９”をそれぞれ定義している。そして、データＤＴにＭＡＣ値を付加するに際し、当該データＤＴのハッシュ値を上記ＤＬＬｄ１で定義された共通鍵を使用して暗号化してＭＡＣ値ｍを生成し、このＭＡＣ値ｍを上記ＤＬＬｄ１の鍵ＩＤ読み出し関数ｆ５で定義された鍵ＩＤ“９９９９”と共に、上記データＤＴに付加する。一方、上記データＤＴに付加されたＭＡＣ値ｍを検証する際には、複数のＤＬＬｄ１〜ｄＮの中から、その公開関数内で定義された鍵ＩＤが上記データＤＴに付加された鍵ＩＤと一致するＤＬＬを選択する。そして、このＤＬＬのＭＡＣ検証関数ｆ４で定義されている共通鍵によりＭＡＣ値ｍを復号し、この復号後の値を上記データＤＴのハッシュ値と比較して一致するか否かを判定することにより上記ＭＡＣ値を検証するようにしている。
【００５４】
したがって、共通鍵を用いてデータＤＴにＭＡＣを付加し、かつこのＭＡＣ値を上記共通鍵を用いて検証する際に、当該共通鍵及びその鍵ＩＤはＤＬＬの公開関数内でのみ使用されるので、共通鍵が外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに共通鍵を変更する場合には、ＤＬＬの公開関数内で定義している共通鍵の値を変えて再コンパイルするだけでよく、ＭＡＣ付加及びＭＡＣ検証アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、ＭＡＣの付加及び検証に使用する共通鍵の管理を容易にかつ安価に行うことができる。
【００５５】
（第４の実施形態）  
この発明の第４の実施形態は、データ転送元のユーザ端末において、共通鍵を用いた署名付加アプリケーション・プログラムを使用してデータにディジタル署名を付加し、一方データ転送先のユーザ端末において、共通鍵を用いた署名検証アプリケーション・プログラムを使用してデータに付加された署名を検証するシステムで使用される鍵管理方法である。
【００５６】
なお、この実施形態においてもシステム構成、メーカ端末ＭＴ及びユーザ端末ＵＴｓ，ＵＴｒの構成は、処理内容を除き前記第１の実施形態と同一である。したがって、本実施形態では前記図１及び図２を用いて説明を行う。また、ＤＬＬとしては前記図９において作成されたものを使用する。
【００５７】
（１）署名付加アプリケーション・プログラムの実行（公開鍵及び秘密鍵の場合）  
ユーザ端末ＵＴｓは、データにディジタル署名を付加して送信する際に、上記メーカ端末ＭＴから提供された署名付加アプリケーション・プログラムを以下のように実行する。図１９はその処理手順と処理内容を示すフローチャート、図２０はその実行経過と結果を示す図である。
【００５８】
すなわち、署名付加アプリケーション・プログラムは、先ずステップＳＴ１９１において、当該プログラムに付属するＤＬＬｄ１に対しコールしてその公開関数の一つである署名生成関数ｆ８を取得し、この署名生成関数ｆ８で定義されている秘密鍵を用いてデータＤＴのハッシュ関数を暗号化してディジタル署名ＳＩを生成する。次にステップＳＴ１９２により、ＤＬＬｄ１の公開関数の一つであるフィンガプリント読み出し関数ｆ１０を取得し、このフィンガプリント読み出し関数ｆ１０から当該関数内で定義されているフィンガプリントＦＰを読み出す。そして、ステップＳＴ１９３により、上記読み出したフィンガプリントＦＰを、上記生成されたディジタル署名ＳＩと共にデータＤＴに付加する。  
上記ディジタル署名ＳＩ及びフィンガプリントＦＰが付加されたデータＤＴは、送信アプリケーション・プログラムの制御の下で、通信インタフェース１５から転送先のユーザ端末ＵＴｒに向け送信される。
【００５９】
（２）署名検証アプリケーション・プログラムの実行（公開鍵及び秘密鍵の場合）  
ユーザ端末ＵＴｒは、転送元のユーザ端末ＵＴｓから送られた、ディジタル署名ＳＩ及びフィンガプリントＦＰが付加されたデータＤＴを受信すると、この受信されたデータＤＴについて署名検証アプリケーション・プログラムに従い以下のように署名の検証処理を行う。図２１はその全体の処理手順と処理内容を示すフローチャート、図２３はその実行経過と結果を示す図である。
【００６０】
すなわち、署名検証アプリケーション・プログラムは、先ずＳＴ２１１において、検証しようとするディジタル署名ＳＩが付加されたデータＤＴからフィンガプリントＦＰを取り出す。そして、所定のフォルダ（図示せず）にあるＤＬＬの数を調べて、その個数を取得する。次に、ステップＳＴ２１２〜ＳＴ２１６からなる処理ループにより、上記ＤＬＬの個数だけ以下の処理を繰り返す。
【００６１】
先ずステップＳＴ２１３において、ＤＬＬｄ１〜ｄＮの中からＤＬＬを一つ選択するごとにこれをロードし、このロードしたＤＬＬの公開関数の一つであるフィンガプリント読み出し関数ｆ１０から、当該関数内で定義されているフィンガプリントＦＰをステップＳＴ２１４により読み出す。そして、この読み出したＤＬＬのフィンガプリントＦＰが上記署名検証対象のデータＤＴから取り出したフィンガプリントＦＰの値と一致するか否かをステップＳＴ２１５で判定する。この判定の結果、一致しなければステップＳＴ２１６により当該ＤＬＬを解放し、ステップＳＴ２１２に戻って次のＤＬＬについて上記ステップＳＴ２１３〜ＳＴ２１６を実行する。
【００６２】
これに対し、図２３に示すように上記選択したＤＬＬｄ１で定義されたフィンガプリントＦＰが、署名検証対象のデータＤＴから取り出したフィンガプリントＦＰと一致したとする。この場合、署名検証アプリケーション・プログラムは、ステップＳＴ２１７に移行し、上記フィンガプリントＦＰが一致したＤＬＬｄ１の署名検証関数ｆ９を用いて、次のようにディジタル署名ＳＩの検証処理を実行する。図２２は、その署名検証処理の詳細な手順と内容を示すフローチャートである。
【００６３】
すなわち、署名検証関数ｆ９は、先ずステップＳＴ２２１によりデータＤＴに対するハッシュ値（値Ａと呼ぶ）を算出する。続いてステップＳＴ２２２により、上記データＤＴに付加されているディジタル署名ＳＩを、署名検証関数ｆ９で定義されている公開鍵を用いて復号し値Ｂを得る。そして、ステップＳＴ２２３により、上記算出されたハッシュ値Ａと上記復号により得られた値Ｂとを比較し、これらの値ＡとＢが一致するか否かを判定する。この判定の結果ＡとＢが一致すれば、ステップＳＴ２２４においてディジタル署名ＳＩは有効、つまりデータＤＴは改ざんされていないと判定する。一方、上記判定の結果がＡとＢが一致しなければ、ステップＳＴ２２５においてディジタル署名ＳＩは無効、つまりデータＤＴが改ざんされた可能性があると判定する。かくして、ディジタル署名ＳＩによるデータＤＴの検証結果ＲＴが得られる。  
上記署名検証関数ｆ９を用いたディジタル署名ＳＩの検証処理が終了すると、署名検証アプリケーション・プログラムはステップＳＴ２１８に移行し、ここで上記選択したＤＬＬｄ１を解放する。
【００６４】
以上述べたように第４の実施形態では、署名付加アプリケーション・プログラム及び署名検証アプリケーション・プログラムに付属するＤＬＬｄ１の公開関数内で、署名付加及び署名検証に使用する秘密鍵及び公開鍵とフィンガプリントＦＰをそれぞれ定義している。そして、データＤＴにディジタル署名ＳＩを付加するに際し、当該データＤＴのハッシュ値を上記ＤＬＬｄ１で定義された秘密鍵を使用して暗号化してディジタル署名ＳＩを生成し、このディジタル署名ＳＩを上記ＤＬＬｄ１のフィンガプリント読み出し関数ｆ１０で定義されたフィンガプリントＦＰと共に、上記データＤＴに付加する。一方、上記データＤＴに付加されたディジタル署名ＳＩを検証する際には、複数のＤＬＬｄ１〜ｄＮの中から、その公開関数内で定義されたフィンガプリントＦＰが上記データＤＴに付加されたフィンガプリントＦＰと一致するＤＬＬを選択する。そして、このＤＬＬの署名検証関数ｆ９で定義されている公開鍵によりディジタル署名ＳＩを復号し、この復号後の値を上記データＤＴのハッシュ値と比較して一致するか否かを判定することにより上記ディジタル署名ＳＩを検証するようにしている。
【００６５】
したがって、秘密鍵を用いてデータＤＴにディジタル署名ＳＩを付加し、かつこのディジタル署名ＳＩを上記秘密鍵に対応する公開鍵を用いて検証する際に、当該秘密鍵及び公開鍵及びそのフィンガプリントＦＰはＤＬＬの公開関数内でのみ使用されるので、秘密鍵及び公開鍵が外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに秘密鍵及び公開鍵を変更する場合には、ＤＬＬの公開関数内で定義している秘密鍵及び公開鍵の値を変えて再コンパイルするだけでよく、署名付加及び署名検証アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、署名の付加及び検証に使用する秘密鍵及び公開鍵の管理を容易にかつ安価に行うことができる。
【００６６】
（その他の実施形態）  
前記各実施形態では、ユーザ端末から他のユーザ端末へ通信ネットワークを介してデータを転送する場合を例にとって説明したが、ユーザ端末においてデータを記録媒体に記録し、この記録媒体に記録されたデータを他のユーザ端末で再生する場合にもこの発明は適用可能である。
【００６７】
その他、ＤＬＬの作成手順やデータの暗号化及び復号手順、データに対するＭＡＣ値の付加及び検証手順、データに対する署名の付加及び検証手順、これらの手順を実行するための端末の構成等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
【００６８】
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００６９】
【図１】この発明に係わる鍵管理方法が適用される暗号化通信システムの概略構成図である。
【図２】図１に示したシステムのメーカ端末の機能構成を示すブロック図である。
【図３】ＤＬＬの一般的な仕組みを説明するための図である。
【図４】この発明の第１の実施形態におけるＤＬＬ作成処理の手順と内容を示す図である。
【図５】この発明の第１の実施形態における暗号化アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図６】図５に示した暗号化処理の手順と内容の一例を示す図である。
【図７】この発明の第１の実施形態における復号アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図８】図７に示した復号処理の手順と内容の一例を示す図である。
【図９】この発明の第２の実施形態におけるＤＬＬ作成処理の手順と内容を示す図である。
【図１０】この発明の第２の実施形態における暗号化アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図１１】図１０に示した暗号化処理の手順と内容の一例を示す図である。
【図１２】この発明の第２の実施形態における復号アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図１３】図１２に示した復号処理の手順と内容の一例を示す図である。
【図１４】この発明の第３の実施形態におけるＭＡＣ付加アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図１５】図１４に示したＭＡＣ付加処理の手順と内容の一例を示す図である。
【図１６】この発明の第３の実施形態におけるＭＡＣ検証アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図１７】図１６に示した処理手順のうちＭＡＣ検証関数による詳細な処理手順と処理内容を示すフローチャートである。
【図１８】図１６及び図１７に示したＭＡＣ検証処理の手順と内容の一例を示す図である。
【図１９】この発明の第４の実施形態における署名付加アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図２０】図１９に示した署名付加処理の手順と内容の一例を示す図である。
【図２１】この発明の第４の実施形態における署名検証アプリケーション・プログラムの処理手順と処理内容を示すフローチャートである。
【図２２】図２１に示した処理手順のうち署名検証関数による詳細な処理手順と処理内容を示すフローチャートである。
【図２３】図２１及び図２２に示した署名検証処理の手順と内容の一例を示す図である。
【符号の説明】
【００７０】
ＭＴ…メーカ端末、ＵＴｓ，ＵＴｒ…ユーザ端末、ＮＷ…通信ネットワーク、１１…ＣＰＵ、１２…バス、１３…プログラムメモリ、１４…データメモリ、１５…通信Ｉ／Ｆ、１６…入出力Ｉ／Ｆ、１７…入力デバイス、１８…表示デバイス、１３１…アプリケーション生成プログラム、１３２…ＤＬＬ作成プログラム、１３３…鍵発行ツール、１４１…アプリケーション記憶エリア、１４２…ＤＬＬ記憶エリア、１４３…鍵管理テーブル。
【図１】
2009081755.tif 000003
【図２】
2009081755.tif 000004
【図３】
2009081755.tif 000005
【図４】
2009081755.tif 000006
【図５】
2009081755.tif 000007
【図６】
2009081755.tif 000008
【図７】
2009081755.tif 000009
【図８】
2009081755.tif 000010
【図９】
2009081755.tif 000011
【図１０】
2009081755.tif 000012
【図１１】
2009081755.tif 000013
【図１２】
2009081755.tif 000014
【図１３】
2009081755.tif 000015
【図１４】
2009081755.tif 000016
【図１５】
2009081755.tif 000017
【図１６】
2009081755.tif 000018
【図１７】
2009081755.tif 000019
【図１８】
2009081755.tif 000020
【図１９】
2009081755.tif 000021
【図２０】
2009081755.tif 000022
【図２１】
2009081755.tif 000023
【図２２】
2009081755.tif 000024
【図２３】
2009081755.tif 000025