JP2009081755A - 鍵管理方法 - Google Patents
鍵管理方法 Download PDFInfo
- Publication number
- JP2009081755A JP2009081755A JP2007250488A JP2007250488A JP2009081755A JP 2009081755 A JP2009081755 A JP 2009081755A JP 2007250488 A JP2007250488 A JP 2007250488A JP 2007250488 A JP2007250488 A JP 2007250488A JP 2009081755 A JP2009081755 A JP 2009081755A
- Authority
- JP
- Japan
- Prior art keywords
- key
- data
- application program
- signature
- dll
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】鍵をアプリケーション・プログラムに設定する際に、鍵の変更等に対しアプリケーション・プログラムを作成し直さずに済み、鍵の管理を容易にかつ安価に行える。
【解決手段】暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムに付属するDLLの公開関数内で、暗号化及び復号に使用する共通鍵と鍵IDをそれぞれ定義している。そして、データDTを暗号化するに際し、上記DLLで定義された共通鍵を使用してデータDTを暗号化し、この暗号化データEDTに上記DLLで定義された鍵IDを付加して送信する。一方、上記暗号化データEDTを復号する際には、複数のDLLの中から、その公開関数内で定義された鍵IDが上記暗号化データEDTに付加された鍵IDと一致するDLLを選択し、このDLLの公開関数内で定義された共通鍵を用いて上記暗号化データEDTを復号するようにしたものである。
【選択図】 図4
【解決手段】暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムに付属するDLLの公開関数内で、暗号化及び復号に使用する共通鍵と鍵IDをそれぞれ定義している。そして、データDTを暗号化するに際し、上記DLLで定義された共通鍵を使用してデータDTを暗号化し、この暗号化データEDTに上記DLLで定義された鍵IDを付加して送信する。一方、上記暗号化データEDTを復号する際には、複数のDLLの中から、その公開関数内で定義された鍵IDが上記暗号化データEDTに付加された鍵IDと一致するDLLを選択し、このDLLの公開関数内で定義された共通鍵を用いて上記暗号化データEDTを復号するようにしたものである。
【選択図】 図4
Description
この発明は、例えばデータの暗号化やディジタル署名に使用する鍵を管理するための方法に関する。
近年、情報のセキュリティ対策の一環として、映像やファイル等のデータを伝送する場合にデータの暗号化が盛んに行われるようになっている。例えば、画像を用いた監視システムでは、監視端末において監視画像データを暗号化して表示装置に向けて送信すると共に、この暗号化画像データのユーザデータ領域に鍵IDを挿入して送信する。表示装置においては、上記監視端末から送られた暗号化画像データのユーザデータ領域から鍵IDを取り出して、この鍵IDに基づいて鍵管理サーバから対応する鍵を取得し、この取得した鍵をもとに上記暗号化画像データを復号し表示する(例えば、特許文献1を参照。)。
上記暗号化の方式としては、例えば共通鍵暗号方式又は公開鍵暗号方式が用いられる。共通鍵暗号方式は、送信側と受信側が共通の鍵を用いてデータの暗号化及び復号を行うものである。公開鍵暗号方式は、送信側が受信側の公開鍵を用いて共通鍵を暗号化して送信し、受信側が上記公開鍵により暗号化された共通鍵を自身の秘密鍵を用いて復号して、この復号された共通鍵をもとに暗号化データを復号するものである。
ところで、上記いずれも暗号方式においても、鍵を格納した鍵ファイルのセキュアな管理が要求される。また、たとえ鍵ファイルが暗号化されていても、この暗号化された鍵ファイルを復号するための鍵をセキュアに管理する必要がある。そこで、暗号化アプリケーション・プログラムのソースコード内に鍵を設定しておく方法が考えられている。しかしながら、暗号化アプリケーション・プログラムを作成するメーカにすれば、案件毎に鍵を変更したい場合に、アプリケーション・プログラムのソースコードを案件毎にコンパイルし直す必要がある。つまり、鍵ごとにアプリケーション・プログラムを作成することが必要となる。これは、アプリケーション管理の煩雑化やコストアップの原因となりきわめて好ましくない。
この発明は上記事情に着目してなされたもので、その目的とするところは、鍵をアプリケーション・プログラムに設定して管理する際に、鍵の変更等に対しアプリケーション・プログラムを作成し直さずに済み、鍵の管理を容易にかつ安価に行える鍵管理方法を提供することにある。
上記目的を達成するためにこの発明の一観点は、作成者用コンピュータにより作成された暗号化または復号のためのアプリケーション・プログラムを使用して複数の利用者コンピュータ間でデータの暗号化転送を行うシステムで使用される鍵管理方法にあって、上記作成者用コンピュータにおいて、入力された乱数をもとに上記暗号化及び復号のための鍵を作成すると共に、この作成された鍵に関連付けられた鍵識別情報を設定し、これらの鍵及び鍵識別情報を、上記暗号化または復号のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリの公開関数中に定義する。そして、データ転送元となる利用者コンピュータがデータを暗号化する際に、上記暗号化のためのアプリケーション・プログラムの制御の下で、上記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータを暗号化し、このデータの暗号化に使用した鍵に関連付けられた鍵識別情報を上記ソフトウエア・ライブラリの公開関数から読み出して、この読み出した鍵識別情報を上記暗号化されたデータに付加する。一方、データの転送先となる利用者コンピュータが上記暗号化されたデータを復号する際には、上記復号のためのアプリケーション・プログラムの制御の下で、復号対象の暗号化データに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択し、この選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに上記復号対象の暗号化データを復号するようにしたものである。
一方、この発明の他の観点は、作成者用コンピュータにより作成された署名の付加または検証のためのアプリケーション・プログラムを使用して、複数の利用者コンピュータ間でデータに対する署名の付加及びその検証を行うシステムで使用される鍵管理方法にあって、上記作成者用コンピュータにおいて、入力された乱数をもとに上記署名の付加または検証のための鍵を作成すると共に、この作成された鍵に関連付けられた鍵識別情報を設定し、これらの鍵及びその鍵識別情報を、上記署名の付加または検証のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリの公開関数中に定義する。そして、データ転送元となる利用者コンピュータがデータに対し署名をする際に、署名を付加するためのアプリケーション・プログラムの制御の下で、上記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータに対する署名を生成し、この署名の生成に使用した鍵に関連付けられた鍵識別情報を上記ソフトウエア・ライブラリの公開関数から読み出して、この鍵識別情報を上記生成された署名と共に上記データに付加する。一方、データの転送先となる利用者コンピュータが上記データの署名を検証する際には、署名の検証のためのアプリケーション・プログラムの制御の下で、検証対象のデータに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択し、この選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに上記検証対象の署名を検証するようにしたものである。
したがって、データを暗号化及び復号する際にも、またデータに署名しこれを検証する際にも、鍵及び鍵識別情報はアプリケーション・プログラムに付属するソフトウエア・ライブラリの公開関数内でのみ使用されるので、鍵が外部に漏洩する可能性は低くセキュリティを高く維持することが可能となる。また、案件ごとに鍵を変更する場合には、ソフトウエア・ライブラリの公開関数内で定義している鍵の値を変えて再コンパイルするだけでよく、アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、アプリケーション管理の煩雑化やコストアップを招かない。
すなわち、この発明によれば、鍵をアプリケーション・プログラムに設定して管理する際に、鍵の変更等に対しアプリケーション・プログラムを作成し直さずに済み、鍵の管理を容易にかつ安価に行える鍵管理方法を提供することができる。
すなわち、この発明によれば、鍵をアプリケーション・プログラムに設定して管理する際に、鍵の変更等に対しアプリケーション・プログラムを作成し直さずに済み、鍵の管理を容易にかつ安価に行える鍵管理方法を提供することができる。
以下、図面を参照してこの発明の実施形態を説明する。
(第1の実施形態)
この発明の第1の実施形態は、共通鍵を用いた暗号化/復号アプリケーション・プログラムを使用してデータの暗号化及びその復号処理を行うシステムで使用される鍵管理方法である。
(第1の実施形態)
この発明の第1の実施形態は、共通鍵を用いた暗号化/復号アプリケーション・プログラムを使用してデータの暗号化及びその復号処理を行うシステムで使用される鍵管理方法である。
図1は、この発明の第1の実施形態に係わる鍵管理方法が適用される暗号化通信システムの概略構成図である。このシステムは、メーカ端末MT及び複数のユーザ端末UTS,UTRを通信ネットワークNWを介して接続可能とし、メーカ端末MTにより作成された暗号化/復号アプリケーション・プログラムをユーザ端末UTS,UTRにインストールして、ユーザ端末UTSからユーザ端末UTRへデータの暗号化伝送を行うようにしたものである。
なお、通信ネットワークNWは、例えばインターネットに代表されるIP(Internet Protocol)網と、このIP網にアクセスするためのアクセス網とから構成される。アクセス網としては、例えば有線電話網や、CATV(Cable Television)網、自動車携帯電話網や無線LAN(Local Area Network)が用いられる。
ところで、メーカ端末MTは例えばパーソナル・コンピュータからなり、例えば次のように構成される。図2はその機能構成を示すブロック図である。
すなわち、メーカ端末MTは中央処理ユニット(CPU;Central Processing Unit)を備え、このCPU11にはバス12を介してプログラムメモリ13、データメモリ14、通信インタフェース(通信I/F)15及び入出力インタフェース(入出力I/F)16が接続されている。
すなわち、メーカ端末MTは中央処理ユニット(CPU;Central Processing Unit)を備え、このCPU11にはバス12を介してプログラムメモリ13、データメモリ14、通信インタフェース(通信I/F)15及び入出力インタフェース(入出力I/F)16が接続されている。
通信インタフェース15は、上記CPU11の制御の下で、通信ネットワークNWを介して上記ユーザ端末UTs,UTrとの間で通信を行う。なお、通信プロトコルとしては、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)が使用される。
入出力インタフェース16には、キーボード及びマウスからなる入力デバイス17と、液晶表示器からなる表示デバイス18が接続される。入出力インタフェース16は、CPU11の制御の下で、入力デバイス17により入力されたアプリケーション・プログラムの言語やデータを取り込むと共に、データメモリ14から読み出されたアプリケーション・プログラムやデータを表示デバイス18に表示させる。
データメモリ14には、アプリケーション記憶エリア141と、DLL記憶エリア142と、鍵管理テーブル143が設けられている。アプリケーション記憶エリア141は、後述するアプリケーション生成プログラム131により生成された各種アプリケーション・プログラムを格納するために用いられる。DLL記憶エリア142は、後述するDLL作成プログラム132により作成されたDLL(Dynamic Link Library)を記憶するために用いられる。鍵管理テーブル143は、後述する鍵発行ツール133により作成された共通鍵と鍵IDのリストを記憶するために用いられる。
プログラムメモリ13には、アプリケーション生成プログラム131と、DLL作成プログラム132と、鍵発行ツール133が格納される。アプリケーション生成プログラム131は、入力デバイス17からのコマンドやデータの入力を受け付けてアプリケーション・プログラムを生成する処理を、上記CPU11に実行させる。生成されるアプリケーション・プログラムには、暗号化アプリケーション・プログラム及びこれと対をなす復号アプリケーション・プログラム、MAC付加アプリケーション・プログラム及びこれと対をなすMAC検証アプリケーション・プログラム、署名付加アプリケーション・プログラム及びこれと対をなす署名検証アプリケーション・プログラムがある。暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムには、共通鍵を使用するものと公開鍵及び秘密鍵を使用するものとがある。
鍵発行ツール133は、入力デバイス17により入力された乱数をもとに鍵を作成する処理を、上記CPU11に実行させる。作成する鍵は、共通鍵暗号方式に対しては共通鍵となり、公開鍵暗号方式の場合には公開鍵及び秘密鍵となる。また鍵発行ツール133は、上記共通鍵の作成に先立ち、上記鍵管理テーブル143で管理されているリストをもとに鍵IDを決定する。さらに鍵発行ツール133は、上記公開鍵暗号方式に対し作成された公開鍵からフィンガプリントを算出する。
DLL作成プログラム132は、入力デバイス17によるコマンドやデータの入力に応じて、上記アプリケーション・プログラムに付加するソフトウエア・ライブラリとしてのDLLを作成する処理を、上記CPU11に実行させる。このとき、DLLの公開関数内には、上記鍵発行ツール133により作成された鍵とこの鍵に関連付けられた鍵識別情報をそれぞれ定義する。
なお、ユーザ端末UTs,UTrもパーソナル・コンピュータからなり、その構成は図2に示したメーカ端末MTと同様に、CPUと、プログラムメモリと、データメモリと、通信インタフェースと、入出力インタフェースと、入力デバイス及び表示デバイスからなる。このうちプログラムメモリには、上記メーカ端末MTにより作成された各種アプリケーション・プログラムとそのDLLが格納され、これらのアプリケーション・プログラムの制御の下で、データの暗号化/復号処理、MAC付加/検証処理、署名生成/検証処理が選択的に実行される。
次に、以上のように構成されたシステムにおける鍵管理方法を説明する。
先ず、DLL(Dynamic Link Library)の一般的な仕組みについて、図3を用いて説明する。図3(a)に示すように、アプリケーション・プログラムのソースコード30をコンパイラ(図示せず)でコンパイルすると、アプリケーション・プログラムの実行ファイル32が作成される。同様に、DLLのソースコード31をコンパイラ(図示せず)でコンパイルすると、DLL33が作成される。そして、上記作成されたアプリケーション・プログラムを実行すると、図3(b)に示すようにDLL33の公開関数がコールされ、この公開関数をもとに処理が実行される。
先ず、DLL(Dynamic Link Library)の一般的な仕組みについて、図3を用いて説明する。図3(a)に示すように、アプリケーション・プログラムのソースコード30をコンパイラ(図示せず)でコンパイルすると、アプリケーション・プログラムの実行ファイル32が作成される。同様に、DLLのソースコード31をコンパイラ(図示せず)でコンパイルすると、DLL33が作成される。そして、上記作成されたアプリケーション・プログラムを実行すると、図3(b)に示すようにDLL33の公開関数がコールされ、この公開関数をもとに処理が実行される。
一方、DLL内にバグがあることが判明した場合、開発者は図3(c)に示すように、バグを含んだDLL34のソースコード31を修正し、これをコンパイラ(図示せず)でコンパイルし直すことで、バグを取り除いたDLL35を作成する。したがって、アプリケーション・プログラム32のソースコード30を変更することなく、処理内容の修正が可能となる。
この発明は、この点に着目して鍵及びその鍵識別情報をDLLの公開関数内で定義し、これによりアプリケーション・プログラム自体を変更せずに鍵及び鍵管理情報の変更に対応するようにしたものである。
(1)DLLの作成(共通鍵を使用する場合)
メーカ端末MTにおいて開発者は、図4に示すように先ずステップ(1)において鍵発行操作(乱数の入力)を行う。そうすると鍵発行ツール133は、先ずステップ(2)において鍵管理テーブル143に記憶された共通鍵と鍵IDのリストから、既に使われている鍵IDの最大値を読み込み、ステップ(3)においてこれから使用する新たな鍵IDを決定する。例えば、図4に示すように既に使われている鍵IDの最大値が“9998”だったとすると、これから使用する鍵IDを“9999”に決定する。
続いてステップ(4)において、上記入力された乱数をもとに共通鍵を作成する。そして、ステップ(5)において、上記作成した共通鍵と鍵ID“9999”を鍵管理テーブル143のリストに書き込む。
(1)DLLの作成(共通鍵を使用する場合)
メーカ端末MTにおいて開発者は、図4に示すように先ずステップ(1)において鍵発行操作(乱数の入力)を行う。そうすると鍵発行ツール133は、先ずステップ(2)において鍵管理テーブル143に記憶された共通鍵と鍵IDのリストから、既に使われている鍵IDの最大値を読み込み、ステップ(3)においてこれから使用する新たな鍵IDを決定する。例えば、図4に示すように既に使われている鍵IDの最大値が“9998”だったとすると、これから使用する鍵IDを“9999”に決定する。
続いてステップ(4)において、上記入力された乱数をもとに共通鍵を作成する。そして、ステップ(5)において、上記作成した共通鍵と鍵ID“9999”を鍵管理テーブル143のリストに書き込む。
次に、DLL作成プログラム132が、ステップ(6)においてDLLを作成する。このDLLの作成においては、DLLの公開関数内で上記共通鍵と鍵IDを定義する処理が行われる。例えば、図4に示すように暗号化関数f1、復号関数f2、MAC生成関数f3及びMAC検証関数f4にそれぞれ共通鍵と鍵ID“9999”を定義し、読み出し関数f5に上記鍵ID“9999”を定義する。この作成されたDLLは、DLL記憶エリア142に記憶される。
なお、システム内にユーザ端末UTs,UTrが複数存在する場合には、これらの端末ごとに、異なる共通鍵とその鍵IDが作成されて、これらを公開関数内で定義したDLLが作成される。
なお、システム内にユーザ端末UTs,UTrが複数存在する場合には、これらの端末ごとに、異なる共通鍵とその鍵IDが作成されて、これらを公開関数内で定義したDLLが作成される。
(2)暗号化アプリケーション・プログラムの実行(共通鍵の場合)
ユーザ端末UTsは、データを暗号化して送信する際に、上記メーカ端末MTから提供された暗号化アプリケーション・プログラムを以下のように実行する。図5はその処理手順と処理内容を示すフローチャート、図6はその実行経過と結果を示す図である。
ユーザ端末UTsは、データを暗号化して送信する際に、上記メーカ端末MTから提供された暗号化アプリケーション・プログラムを以下のように実行する。図5はその処理手順と処理内容を示すフローチャート、図6はその実行経過と結果を示す図である。
すなわち、暗号化アプリケーション・プログラムは、先ずステップST61において、当該プログラムに付属するDLLd1に対しコールしてその公開関数の一つである暗号化関数f1を取得し、この暗号化関数f1で定義されている共通鍵を用いてデータDTを暗号化し、暗号化データEDTを作成する。次にステップST62により、DLLd1の公開関数の一つである鍵ID読み出し関数f5を取得し、この鍵ID読み出し関数f5から当該関数内で定義されている鍵ID“9999”を読み出す。そして、ステップST63により、上記読み出した鍵ID“9999”を、上記作成された暗号化データEDTに付加する。
上記鍵ID“9999”が付加された暗号化データEDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
上記鍵ID“9999”が付加された暗号化データEDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
(3)復号アプリケーション・プログラムの実行(共通鍵の場合)
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた暗号化データを受信すると、この受信された暗号化データを復号アプリケーション・プログラムに従い以下のように復号する。図7はその処理手順と処理内容を示すフローチャート、図8はその実行経過と結果を示す図である。
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた暗号化データを受信すると、この受信された暗号化データを復号アプリケーション・プログラムに従い以下のように復号する。図7はその処理手順と処理内容を示すフローチャート、図8はその実行経過と結果を示す図である。
すなわち、復号アプリケーション・プログラムは、先ずST81において、復号しようとする暗号化データEDTから鍵ID16を取り出す。そして、所定のフォルダ(図示せず)にあるDLLの数を調べて、その個数を取得する。次に、ステップST82〜ST88からなる処理ループにより、上記DLLの個数だけ以下の処理を繰り返す。
先ずステップST83において、DLLd1〜dNの中からDLLを一つ選択するごとにこれをロードし、このロードしたDLLの公開関数の一つである鍵ID読み出し関数f5から、当該関数内で定義されている鍵IDをステップST84により読み出す。そして、この読み出したDLLの鍵IDが上記復号対象の暗号化データEDTから取り出した鍵IDの値と一致するか否かをステップST85で判定する。この判定の結果、一致しなければステップST88により当該DLLを解放し、ステップST82に戻って次のDLLについて上記ステップST83〜ST88を実行する。
これに対し、図8に示すように上記選択したDLLd1で定義された鍵IDが、復号対象の暗号化データEDTから取り出した鍵ID“9999”と一致したとする。この場合、復号アプリケーション・プログラムは、ステップST86に移行して、上記鍵ID“9999”が一致したDLLd1の復号関数f2から当該関数で定義されている共通鍵を読み出し、この読み出した共通鍵を用いて暗号化データEDTを復号する。そして、この復号後にステップST87により上記選択したDLLd1を解放する。
上記復号された画像等のデータDTは、表示アプリケーション・プログラムにより表示デバイスに表示される。
上記復号された画像等のデータDTは、表示アプリケーション・プログラムにより表示デバイスに表示される。
以上述べたように第1の実施形態では、暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムに付属するDLLd1の公開関数内で、暗号化及び復号に使用する共通鍵と鍵ID“9999”をそれぞれ定義している。そして、データDTを暗号化するに際し、上記DLLd1で定義された共通鍵を使用してデータDTを暗号化し、この暗号化データEDTに上記DLLd1で定義された鍵ID“9999”を付加して送信する。一方、上記暗号化データEDTを復号する際には、複数のDLLd1〜dNの中から、その公開関数内で定義された鍵IDが上記暗号化データEDTに付加された鍵IDと一致するDLLを選択し、このDLLの公開関数内で定義された共通鍵を用いて上記暗号化データEDTを復号するようにしている。
したがって、データDTを共通鍵を用いて暗号化及び復号する際に、共通鍵及びその鍵IDは暗号化及び復号アプリケーション・プログラムに付属するDLLの公開関数内でのみ使用されるので、共通鍵が外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに共通鍵を変更する場合には、DLLの公開関数内で定義している共通鍵の値を変えて再コンパイルするだけでよく、暗号化及び復号アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、共通鍵の管理を容易にかつ安価に行うことができる。
(第2の実施形態)
この発明の第2の実施形態は、公開鍵及び秘密鍵を用いた暗号化/復号アプリケーション・プログラムを使用してデータの暗号化及びその復号処理を行うシステムで使用される鍵管理方法である。
なお、この実施形態のシステム構成、メーカ端末MT及びユーザ端末UTs,UTrの構成は、処理内容を除き前記第1の実施形態と同一である。したがって、本実施形態においても前記図1及び図2を用いて説明を行う。
この発明の第2の実施形態は、公開鍵及び秘密鍵を用いた暗号化/復号アプリケーション・プログラムを使用してデータの暗号化及びその復号処理を行うシステムで使用される鍵管理方法である。
なお、この実施形態のシステム構成、メーカ端末MT及びユーザ端末UTs,UTrの構成は、処理内容を除き前記第1の実施形態と同一である。したがって、本実施形態においても前記図1及び図2を用いて説明を行う。
(1)DLLの作成(公開鍵及び秘密鍵を使用する場合)
メーカ端末MTにおいて開発者は、図9に示すように先ずステップ(1)において鍵発行操作(乱数の入力)を行う。そうすると鍵発行ツール133は、先ずステップ(2)において上記入力された乱数をもとに秘密鍵及び公開鍵を作成する。続いてステップ(3)において、上記作成された公開鍵からフィンガプリントFPを求める。
メーカ端末MTにおいて開発者は、図9に示すように先ずステップ(1)において鍵発行操作(乱数の入力)を行う。そうすると鍵発行ツール133は、先ずステップ(2)において上記入力された乱数をもとに秘密鍵及び公開鍵を作成する。続いてステップ(3)において、上記作成された公開鍵からフィンガプリントFPを求める。
次に、鍵発行ツール133のDLL作成プログラム132が、ステップ(4)においてDLLを作成する。このDLLの作成においては、DLLの公開関数内で上記作成された秘密鍵、共通鍵及びフィンガプリントFPを定義する処理が行われる。例えば、図9に示すように暗号化関数f6及び署名生成関数f8において秘密鍵をそれぞれ定義し、復号関数f7及び署名検証関数f9において公開鍵をそれぞれ定義する。また、フィンガプリントFP読み出し関数f10内でフィンガプリントFPを定義する。この作成されたDLLは、DLL記憶エリア142に記憶される。
なお、システム内にユーザ端末UTs,UTrが複数存在する場合には、これらの端末ごとに、異なる秘密鍵と公開鍵、及びこの公開鍵のフィンガプリントFPが作成され、これらを公開関数内で定義したDLLが作成される。
なお、システム内にユーザ端末UTs,UTrが複数存在する場合には、これらの端末ごとに、異なる秘密鍵と公開鍵、及びこの公開鍵のフィンガプリントFPが作成され、これらを公開関数内で定義したDLLが作成される。
(2)暗号化アプリケーション・プログラムの実行(公開鍵及び秘密鍵の場合)
ユーザ端末UTsは、データを暗号化して送信する際に、上記メーカ端末MTから提供された暗号化アプリケーション・プログラムを以下のように実行する。図10はその処理手順と処理内容を示すフローチャート、図11はその実行経過と結果を示す図である。
ユーザ端末UTsは、データを暗号化して送信する際に、上記メーカ端末MTから提供された暗号化アプリケーション・プログラムを以下のように実行する。図10はその処理手順と処理内容を示すフローチャート、図11はその実行経過と結果を示す図である。
すなわち、暗号化アプリケーション・プログラムは、先ずステップST101において、当該プログラムに付属するDLLd1に対しコールしてその公開関数の一つである暗号化関数f6を取得し、この暗号化関数f6で定義されている秘密鍵を用いてデータDTを暗号化し、暗号化データEDTを作成する。次にステップST102により、DLLd1の公開関数の一つであるフィンガプリント読み出し関数f10を取得し、このフィンガプリント読み出し関数f10から当該関数内で定義されているフィンガプリントFPを読み出す。そして、ステップST103により、上記読み出したフィンガプリントFPを、上記作成された暗号化データEDTに付加する。
上記フィンガプリントFPが付加された暗号化データEDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
上記フィンガプリントFPが付加された暗号化データEDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
(3)復号アプリケーション・プログラムの実行(公開鍵及び秘密鍵の場合)
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた暗号化データを受信すると、この受信された暗号化データを復号アプリケーション・プログラムに従い以下のように復号する。図12はその処理手順と処理内容を示すフローチャート、図13はその実行経過と結果を示す図である。
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた暗号化データを受信すると、この受信された暗号化データを復号アプリケーション・プログラムに従い以下のように復号する。図12はその処理手順と処理内容を示すフローチャート、図13はその実行経過と結果を示す図である。
すなわち、復号アプリケーション・プログラムは、先ずST121において、復号しようとする暗号化データEDTからフィンガプリントFPを取り出す。そして、所定のフォルダ(図示せず)にあるDLLの数を調べて、その個数を取得する。次に、ステップST122〜ST126からなる処理ループにより、上記DLLの個数だけ以下の処理を繰り返す。
先ずステップST123において、DLLd1〜dNの中からDLLを一つ選択するごとにこれをロードし、このロードしたDLLの公開関数の一つであるフィンガプリント読み出し関数f5から、当該関数内で定義されているフィンガプリントFPをステップST124により読み出す。そして、この読み出したDLLのフィンガプリントFPが上記復号対象の暗号化データEDTから取り出したフィンガプリントFPの値と一致するか否かをステップST125で判定する。この判定の結果、一致しなければステップST126により当該DLLを解放し、ステップST122に戻って次のDLLについて上記ステップST123〜ST126を実行する。
これに対し、上記選択したDLLd1で定義されたフィンガプリントFPが、復号対象の暗号化データEDTから取り出したフィンガプリントFPと一致したとする。この場合、復号アプリケーション・プログラムは、ステップST127に移行して、上記フィンガプリントFPが一致したDLLd1の復号関数f7から当該関数で定義されている公開鍵を読み出し、この読み出した公開鍵を用いて暗号化データEDTを復号する。そして、この復号後にステップST128により上記選択したDLLd1を解放する。
上記復号された画像等のデータDTは、表示アプリケーション・プログラムにより表示デバイスに表示される。
上記復号された画像等のデータDTは、表示アプリケーション・プログラムにより表示デバイスに表示される。
以上述べたように第2の実施形態では、暗号化アプリケーション・プログラム及び復号アプリケーション・プログラムに付属するDLLd1の公開関数内で、暗号化及び復号に使用する公開鍵と秘密鍵、及び公開鍵のフィンガプリントをそれぞれ定義している。そして、データDTを暗号化するに際し、上記DLLd1で定義された秘密鍵を使用してデータDTを暗号化し、この暗号化データEDTに上記DLLd1で定義されたフィンガプリントを付加して送信する。一方、上記暗号化データEDTを復号する際には、複数のDLLd1〜dNの中から、その公開関数内で定義されたフィンガプリントが上記暗号化データEDTに付加されたフィンガプリントと一致するDLLを選択し、このDLLの公開関数内で定義された公開鍵を用いて上記暗号化データEDTを復号するようにしている。
したがって、データDTを秘密鍵及び公開鍵を用いて暗号化及び復号する際に、秘密鍵と公開鍵、及びフィンガプリントは暗号化及び復号アプリケーション・プログラムに付属するDLLの公開関数内でのみ使用されるので、秘密鍵と公開鍵、及びフィンガプリントが外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに秘密鍵と公開鍵を変更する場合には、DLLの公開関数内で定義している秘密鍵と公開鍵の値を変えて再コンパイルするだけでよく、暗号化及び復号アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、秘密鍵と公開鍵の管理を容易にかつ安価に行うことができる。
(第3の実施形態)
この発明の第3の実施形態は、データ転送元のユーザ端末において、共通鍵を用いたメッセージ認証コード(MAC;Message Authentication Code)付加アプリケーション・プログラムを使用してデータにMAC値を付加し、一方データ転送先のユーザ端末において、共通鍵を用いたメッセージ認証コード(MAC;Message Authentication Code)検証アプリケーション・プログラムを使用してデータに付加されたMAC値を検証するシステムで使用される鍵管理方法である。
この発明の第3の実施形態は、データ転送元のユーザ端末において、共通鍵を用いたメッセージ認証コード(MAC;Message Authentication Code)付加アプリケーション・プログラムを使用してデータにMAC値を付加し、一方データ転送先のユーザ端末において、共通鍵を用いたメッセージ認証コード(MAC;Message Authentication Code)検証アプリケーション・プログラムを使用してデータに付加されたMAC値を検証するシステムで使用される鍵管理方法である。
なお、この実施形態においてもシステム構成、メーカ端末MT及びユーザ端末UTs,UTrの構成は、処理内容を除き前記第1の実施形態と同一である。したがって、本実施形態では前記図1及び図2を用いて説明を行う。また、DLLとしては前記図4において作成されたものを使用する。
(1)MAC付加アプリケーション・プログラムの実行(共通鍵の場合)
ユーザ端末UTsは、データにMAC値を付加して送信する際に、上記メーカ端末MTから提供されたMAC付加アプリケーション・プログラムを以下のように実行する。図14はその処理手順と処理内容を示すフローチャート、図15はその実行経過と結果を示す図である。
ユーザ端末UTsは、データにMAC値を付加して送信する際に、上記メーカ端末MTから提供されたMAC付加アプリケーション・プログラムを以下のように実行する。図14はその処理手順と処理内容を示すフローチャート、図15はその実行経過と結果を示す図である。
すなわち、MAC付加アプリケーション・プログラムは、先ずステップST141において、当該プログラムに付属するDLLd1に対しコールしてその公開関数の一つであるMAC生成関数f3を取得し、このMAC生成関数f3で定義されている共通鍵を用いてデータDTのハッシュ関数を暗号化してMAC値mを生成する。次にステップST142により、DLLd1の公開関数の一つである鍵ID読み出し関数f5を取得し、この鍵ID読み出し関数f5から当該関数内で定義されている鍵IDKI“9999”を読み出す。そして、ステップST143により、上記読み出した鍵ID“9999”を、上記生成されたMAC値mと共にデータDTに付加する。
上記MAC値m及び鍵ID“9999”が付加されたデータDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
上記MAC値m及び鍵ID“9999”が付加されたデータDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
(2)MAC検証アプリケーション・プログラムの実行(共通鍵の場合)
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた、MAC値m及び鍵ID“9999”が付加されたデータDTを受信すると、この受信されたデータDTについてMAC検証アプリケーション・プログラムに従い以下のようにMACの検証処理を行う。図16はその全体の処理手順と処理内容を示すフローチャート、図18はその実行経過と結果を示す図である。
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた、MAC値m及び鍵ID“9999”が付加されたデータDTを受信すると、この受信されたデータDTについてMAC検証アプリケーション・プログラムに従い以下のようにMACの検証処理を行う。図16はその全体の処理手順と処理内容を示すフローチャート、図18はその実行経過と結果を示す図である。
すなわち、MAC検証アプリケーション・プログラムは、先ずST161において、検証しようとするMAC値mが付加されたデータDTから鍵IDを取り出す。そして、所定のフォルダ(図示せず)にあるDLLの数を調べて、その個数を取得する。次に、ステップST162〜ST166からなる処理ループにより、上記DLLの個数だけ以下の処理を繰り返す。
先ずステップST163において、DLLd1〜dNの中からDLLを一つ選択するごとにこれをロードし、このロードしたDLLの公開関数の一つである鍵ID読み出し関数f5から、当該関数内で定義されている鍵IDをステップST164により読み出す。そして、この読み出したDLLの鍵IDが上記MAC検証対象のデータDTから取り出した鍵IDの値と一致するか否かをステップST165で判定する。この判定の結果、一致しなければステップST166により当該DLLを解放し、ステップST162に戻って次のDLLについて上記ステップST163〜ST166を実行する。
これに対し、図18に示すように上記選択したDLLd1で定義された鍵IDが、MAC検証対象のデータDTから取り出した鍵ID“9999”と一致したとする。この場合、MAC検証アプリケーション・プログラムは、ステップST167に移行し、上記鍵ID“9999”が一致したDLLd1のMAC検証関数f4を用いて、次のようにMAC値mの検証処理を実行する。図17は、そのMAC検証処理の詳細な手順と内容を示すフローチャートである。
すなわち、MAC検証関数f4は、先ずステップST171によりデータDTに対するハッシュ値(値Aと呼ぶ)を算出する。続いてステップST172により、上記データDTに付加されているMAC値mを、MAC検証関数f4で定義されている共通鍵を用いて復号し値Bを得る。そして、ステップST173により、上記算出されたハッシュ値Aと上記復号された値Bとを比較し、これらの値AとBが一致するか否かを判定する。この判定の結果AとBが一致すれば、ステップST174においてMAC値mは有効、つまりデータDTは改ざんされていないと判定する。一方、上記判定の結果がAとBが一致しなければ、ステップST175においてMAC値mは無効、つまりデータDTが改ざんされた可能性があると判定する。かくして、MAC値によるデータDTの検証結果RTが得られる。
上記MAC検証関数f4を用いたMAC値の検証処理が終了すると、MAC検証アプリケーション・プログラムはステップST168に移行し、ここで上記選択したDLLd1を解放する。
上記MAC検証関数f4を用いたMAC値の検証処理が終了すると、MAC検証アプリケーション・プログラムはステップST168に移行し、ここで上記選択したDLLd1を解放する。
以上述べたように第3の実施形態では、MAC付加アプリケーション・プログラム及びMAC検証アプリケーション・プログラムに付属するDLLd1の公開関数内で、MAC付加及びMAC検証に使用する共通鍵と鍵ID“9999”をそれぞれ定義している。そして、データDTにMAC値を付加するに際し、当該データDTのハッシュ値を上記DLLd1で定義された共通鍵を使用して暗号化してMAC値mを生成し、このMAC値mを上記DLLd1の鍵ID読み出し関数f5で定義された鍵ID“9999”と共に、上記データDTに付加する。一方、上記データDTに付加されたMAC値mを検証する際には、複数のDLLd1〜dNの中から、その公開関数内で定義された鍵IDが上記データDTに付加された鍵IDと一致するDLLを選択する。そして、このDLLのMAC検証関数f4で定義されている共通鍵によりMAC値mを復号し、この復号後の値を上記データDTのハッシュ値と比較して一致するか否かを判定することにより上記MAC値を検証するようにしている。
したがって、共通鍵を用いてデータDTにMACを付加し、かつこのMAC値を上記共通鍵を用いて検証する際に、当該共通鍵及びその鍵IDはDLLの公開関数内でのみ使用されるので、共通鍵が外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに共通鍵を変更する場合には、DLLの公開関数内で定義している共通鍵の値を変えて再コンパイルするだけでよく、MAC付加及びMAC検証アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、MACの付加及び検証に使用する共通鍵の管理を容易にかつ安価に行うことができる。
(第4の実施形態)
この発明の第4の実施形態は、データ転送元のユーザ端末において、共通鍵を用いた署名付加アプリケーション・プログラムを使用してデータにディジタル署名を付加し、一方データ転送先のユーザ端末において、共通鍵を用いた署名検証アプリケーション・プログラムを使用してデータに付加された署名を検証するシステムで使用される鍵管理方法である。
この発明の第4の実施形態は、データ転送元のユーザ端末において、共通鍵を用いた署名付加アプリケーション・プログラムを使用してデータにディジタル署名を付加し、一方データ転送先のユーザ端末において、共通鍵を用いた署名検証アプリケーション・プログラムを使用してデータに付加された署名を検証するシステムで使用される鍵管理方法である。
なお、この実施形態においてもシステム構成、メーカ端末MT及びユーザ端末UTs,UTrの構成は、処理内容を除き前記第1の実施形態と同一である。したがって、本実施形態では前記図1及び図2を用いて説明を行う。また、DLLとしては前記図9において作成されたものを使用する。
(1)署名付加アプリケーション・プログラムの実行(公開鍵及び秘密鍵の場合)
ユーザ端末UTsは、データにディジタル署名を付加して送信する際に、上記メーカ端末MTから提供された署名付加アプリケーション・プログラムを以下のように実行する。図19はその処理手順と処理内容を示すフローチャート、図20はその実行経過と結果を示す図である。
ユーザ端末UTsは、データにディジタル署名を付加して送信する際に、上記メーカ端末MTから提供された署名付加アプリケーション・プログラムを以下のように実行する。図19はその処理手順と処理内容を示すフローチャート、図20はその実行経過と結果を示す図である。
すなわち、署名付加アプリケーション・プログラムは、先ずステップST191において、当該プログラムに付属するDLLd1に対しコールしてその公開関数の一つである署名生成関数f8を取得し、この署名生成関数f8で定義されている秘密鍵を用いてデータDTのハッシュ関数を暗号化してディジタル署名SIを生成する。次にステップST192により、DLLd1の公開関数の一つであるフィンガプリント読み出し関数f10を取得し、このフィンガプリント読み出し関数f10から当該関数内で定義されているフィンガプリントFPを読み出す。そして、ステップST193により、上記読み出したフィンガプリントFPを、上記生成されたディジタル署名SIと共にデータDTに付加する。
上記ディジタル署名SI及びフィンガプリントFPが付加されたデータDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
上記ディジタル署名SI及びフィンガプリントFPが付加されたデータDTは、送信アプリケーション・プログラムの制御の下で、通信インタフェース15から転送先のユーザ端末UTrに向け送信される。
(2)署名検証アプリケーション・プログラムの実行(公開鍵及び秘密鍵の場合)
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた、ディジタル署名SI及びフィンガプリントFPが付加されたデータDTを受信すると、この受信されたデータDTについて署名検証アプリケーション・プログラムに従い以下のように署名の検証処理を行う。図21はその全体の処理手順と処理内容を示すフローチャート、図23はその実行経過と結果を示す図である。
ユーザ端末UTrは、転送元のユーザ端末UTsから送られた、ディジタル署名SI及びフィンガプリントFPが付加されたデータDTを受信すると、この受信されたデータDTについて署名検証アプリケーション・プログラムに従い以下のように署名の検証処理を行う。図21はその全体の処理手順と処理内容を示すフローチャート、図23はその実行経過と結果を示す図である。
すなわち、署名検証アプリケーション・プログラムは、先ずST211において、検証しようとするディジタル署名SIが付加されたデータDTからフィンガプリントFPを取り出す。そして、所定のフォルダ(図示せず)にあるDLLの数を調べて、その個数を取得する。次に、ステップST212〜ST216からなる処理ループにより、上記DLLの個数だけ以下の処理を繰り返す。
先ずステップST213において、DLLd1〜dNの中からDLLを一つ選択するごとにこれをロードし、このロードしたDLLの公開関数の一つであるフィンガプリント読み出し関数f10から、当該関数内で定義されているフィンガプリントFPをステップST214により読み出す。そして、この読み出したDLLのフィンガプリントFPが上記署名検証対象のデータDTから取り出したフィンガプリントFPの値と一致するか否かをステップST215で判定する。この判定の結果、一致しなければステップST216により当該DLLを解放し、ステップST212に戻って次のDLLについて上記ステップST213〜ST216を実行する。
これに対し、図23に示すように上記選択したDLLd1で定義されたフィンガプリントFPが、署名検証対象のデータDTから取り出したフィンガプリントFPと一致したとする。この場合、署名検証アプリケーション・プログラムは、ステップST217に移行し、上記フィンガプリントFPが一致したDLLd1の署名検証関数f9を用いて、次のようにディジタル署名SIの検証処理を実行する。図22は、その署名検証処理の詳細な手順と内容を示すフローチャートである。
すなわち、署名検証関数f9は、先ずステップST221によりデータDTに対するハッシュ値(値Aと呼ぶ)を算出する。続いてステップST222により、上記データDTに付加されているディジタル署名SIを、署名検証関数f9で定義されている公開鍵を用いて復号し値Bを得る。そして、ステップST223により、上記算出されたハッシュ値Aと上記復号により得られた値Bとを比較し、これらの値AとBが一致するか否かを判定する。この判定の結果AとBが一致すれば、ステップST224においてディジタル署名SIは有効、つまりデータDTは改ざんされていないと判定する。一方、上記判定の結果がAとBが一致しなければ、ステップST225においてディジタル署名SIは無効、つまりデータDTが改ざんされた可能性があると判定する。かくして、ディジタル署名SIによるデータDTの検証結果RTが得られる。
上記署名検証関数f9を用いたディジタル署名SIの検証処理が終了すると、署名検証アプリケーション・プログラムはステップST218に移行し、ここで上記選択したDLLd1を解放する。
上記署名検証関数f9を用いたディジタル署名SIの検証処理が終了すると、署名検証アプリケーション・プログラムはステップST218に移行し、ここで上記選択したDLLd1を解放する。
以上述べたように第4の実施形態では、署名付加アプリケーション・プログラム及び署名検証アプリケーション・プログラムに付属するDLLd1の公開関数内で、署名付加及び署名検証に使用する秘密鍵及び公開鍵とフィンガプリントFPをそれぞれ定義している。そして、データDTにディジタル署名SIを付加するに際し、当該データDTのハッシュ値を上記DLLd1で定義された秘密鍵を使用して暗号化してディジタル署名SIを生成し、このディジタル署名SIを上記DLLd1のフィンガプリント読み出し関数f10で定義されたフィンガプリントFPと共に、上記データDTに付加する。一方、上記データDTに付加されたディジタル署名SIを検証する際には、複数のDLLd1〜dNの中から、その公開関数内で定義されたフィンガプリントFPが上記データDTに付加されたフィンガプリントFPと一致するDLLを選択する。そして、このDLLの署名検証関数f9で定義されている公開鍵によりディジタル署名SIを復号し、この復号後の値を上記データDTのハッシュ値と比較して一致するか否かを判定することにより上記ディジタル署名SIを検証するようにしている。
したがって、秘密鍵を用いてデータDTにディジタル署名SIを付加し、かつこのディジタル署名SIを上記秘密鍵に対応する公開鍵を用いて検証する際に、当該秘密鍵及び公開鍵及びそのフィンガプリントFPはDLLの公開関数内でのみ使用されるので、秘密鍵及び公開鍵が外部に漏洩する可能性は低くセキュリティを高く維持することができる。また、ユーザ端末ごとに秘密鍵及び公開鍵を変更する場合には、DLLの公開関数内で定義している秘密鍵及び公開鍵の値を変えて再コンパイルするだけでよく、署名付加及び署名検証アプリケーション・プログラムのソースコードを再コンパイルする必要がない。このため、署名の付加及び検証に使用する秘密鍵及び公開鍵の管理を容易にかつ安価に行うことができる。
(その他の実施形態)
前記各実施形態では、ユーザ端末から他のユーザ端末へ通信ネットワークを介してデータを転送する場合を例にとって説明したが、ユーザ端末においてデータを記録媒体に記録し、この記録媒体に記録されたデータを他のユーザ端末で再生する場合にもこの発明は適用可能である。
前記各実施形態では、ユーザ端末から他のユーザ端末へ通信ネットワークを介してデータを転送する場合を例にとって説明したが、ユーザ端末においてデータを記録媒体に記録し、この記録媒体に記録されたデータを他のユーザ端末で再生する場合にもこの発明は適用可能である。
その他、DLLの作成手順やデータの暗号化及び復号手順、データに対するMAC値の付加及び検証手順、データに対する署名の付加及び検証手順、これらの手順を実行するための端末の構成等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
MT…メーカ端末、UTs,UTr…ユーザ端末、NW…通信ネットワーク、11…CPU、12…バス、13…プログラムメモリ、14…データメモリ、15…通信I/F、16…入出力I/F、17…入力デバイス、18…表示デバイス、131…アプリケーション生成プログラム、132…DLL作成プログラム、133…鍵発行ツール、141…アプリケーション記憶エリア、142…DLL記憶エリア、143…鍵管理テーブル。
Claims (2)
- 作成者用コンピュータにより作成された暗号化または復号のためのアプリケーション・プログラムを使用して複数の利用者コンピュータ間でデータの暗号化転送を行うシステムで使用される鍵管理方法であって、
前記作成者用コンピュータが、入力された乱数をもとに前記暗号化及び復号のための鍵を作成する過程と、
前記作成者用コンピュータが、前記作成された鍵に関連付けられた鍵識別情報を設定する過程と、
前記作成者用コンピュータが、前記暗号化または復号のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリを作成し、この作成したソフトウエア・ライブラリの公開関数中に前記作成された鍵及びその鍵識別情報をそれぞれ定義する過程と、
データ転送元となる前記利用者コンピュータが、前記暗号化のためのアプリケーション・プログラムの制御の下で、前記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータを暗号化する過程と、
前記データ転送元となる利用者コンピュータが、前記暗号化のためのアプリケーション・プログラムの制御の下で、前記データの暗号化に使用した鍵に関連付けられた鍵識別情報を前記ソフトウエア・ライブラリの公開関数から読み出し、この読み出した鍵識別情報を前記暗号化されたデータに付加する過程と、
データの転送先となる前記利用者コンピュータが、前記復号のためのアプリケーション・プログラムの制御の下で、復号対象の暗号化データに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択する過程と、
前記データの転送先となる前記利用者コンピュータが、前記復号のためのアプリケーション・プログラムの制御の下で、前記選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに前記復号対象の暗号化データを復号する過程と
を具備することを特徴とする鍵管理方法。 - 作成者用コンピュータにより作成された署名の付加または検証のためのアプリケーション・プログラムを使用して、複数の利用者コンピュータ間でデータに対する署名の付加及びその検証を行うシステムで使用される鍵管理方法であって、
前記作成者用コンピュータが、入力された乱数をもとに前記署名の付加または検証のための鍵を作成する過程と、
前記作成者用コンピュータが、前記作成された鍵に関連付けられた鍵識別情報を設定する過程と、
前記作成者用コンピュータが、前記署名の付加または検証のためのアプリケーション・プログラムに付加するソフトウエア・ライブラリを作成し、この作成したソフトウエア・ライブラリの公開関数中に前記作成された鍵及びその鍵識別情報をそれぞれ定義する過程と、
データ転送元となる前記利用者コンピュータが、前記署名を付加するためのアプリケーション・プログラムの制御の下で、前記ソフトウエア・ライブラリの公開関数に定義された鍵をもとにデータに対する署名を生成する過程と、
前記データ転送元となる利用者コンピュータが、前記署名を付加するためのアプリケーション・プログラムの制御の下で、前記署名の生成に使用した鍵に関連付けられた鍵識別情報を前記ソフトウエア・ライブラリの公開関数から読み出し、この読み出した鍵識別情報を前記生成された署名と共に前記データに付加する過程と、
データの転送先となる前記利用者コンピュータが、前記署名の検証のためのアプリケーション・プログラムの制御の下で、検証対象のデータに付加された鍵識別情報と一致する鍵識別情報を定義したソフトウエア・ライブラリを選択する過程と、
前記データの転送先となる前記利用者コンピュータが、前記検証のためのアプリケーション・プログラムの制御の下で、前記選択されたソフトウエア・ライブラリの公開関数に定義された鍵をもとに前記検証対象の署名を検証する過程と
を具備することを特徴とする鍵管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250488A JP2009081755A (ja) | 2007-09-27 | 2007-09-27 | 鍵管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250488A JP2009081755A (ja) | 2007-09-27 | 2007-09-27 | 鍵管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009081755A true JP2009081755A (ja) | 2009-04-16 |
Family
ID=40656164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007250488A Withdrawn JP2009081755A (ja) | 2007-09-27 | 2007-09-27 | 鍵管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009081755A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102012224421A1 (de) | 2011-12-28 | 2013-07-04 | Denso Corporation | Fahrzeuggebundenes system und kommunikationsverfahren |
-
2007
- 2007-09-27 JP JP2007250488A patent/JP2009081755A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102012224421A1 (de) | 2011-12-28 | 2013-07-04 | Denso Corporation | Fahrzeuggebundenes system und kommunikationsverfahren |
US9641329B2 (en) | 2011-12-28 | 2017-05-02 | Denso Corporation | In-vehicle system and communication method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10148625B2 (en) | Secure transfer and tracking of data using removable nonvolatile memory devices | |
KR100753932B1 (ko) | 컨텐츠 암호화 방법, 이를 이용한 네트워크를 통한 컨텐츠제공 시스템 및 그 방법 | |
JP5615716B2 (ja) | デジタル権利管理に対する装置及び方法 | |
WO2017177383A1 (zh) | 一种远程管理方法及设备 | |
CN100472550C (zh) | 产生证书的方法以及使用证书提供内容的方法和设备 | |
CN100524283C (zh) | 消费具有遗传结构的版权对象的方法和装置 | |
CN104581214A (zh) | 基于ARM TrustZone系统的多媒体内容保护方法和装置 | |
US20150095653A1 (en) | Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package | |
WO2006009081A1 (ja) | アプリケーション実行装置及びアプリケーション実行装置のアプリケーション実行方法 | |
EP2869232A1 (en) | Security key device for secure cloud services, and system and method of providing security cloud services | |
WO2011134207A1 (zh) | 软件保护方法 | |
JP5112924B2 (ja) | アプリケーション移動システム、アプリケーションの移動方法、プログラムおよび携帯端末 | |
WO2011023051A1 (zh) | 数据加密方法、解密方法及移动终端 | |
JP2007233426A (ja) | アプリケーション実行装置 | |
JP5255991B2 (ja) | 情報処理装置、及びコンピュータプログラム | |
JP4684714B2 (ja) | ファイル管理システム、及びプログラム | |
JP2004040209A (ja) | サーバ、icカード、コンテンツの配信方法、コンテンツの取得処理方法およびプログラム | |
JP2009081755A (ja) | 鍵管理方法 | |
US20130219510A1 (en) | Drm/cas service device and method using security context | |
KR101532763B1 (ko) | 어플리케이션 불법복제 방지 시스템 및 방법 | |
KR102052651B1 (ko) | 데이터 접근 제어 방법 및 그 전자 장치 | |
JP2007310603A (ja) | 文書処理装置及び文書処理プログラム | |
JP2008530673A (ja) | 権利ファイル記述の保護方法 | |
JP6215468B2 (ja) | プログラム保護装置 | |
JP2004030325A (ja) | オブジェクト利用管理システム、オブジェクトを利用し又は提供する情報処理装置又は情報処理方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100922 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20120127 |