(57)【特許請求の範囲】
【請求項１】
入力されたデータを共通暗号鍵にて暗号化するための第１の暗号手段と、入力されたデータを異なる複数の暗号鍵にてそれぞれ暗号化する第２の暗号手段と、暗号化された暗号化データを主記憶手段に書き込む書き込み手段と、を少なくとも備えた暗号化ファイル生成装置にて、前記異なる複数の暗号鍵に対応した復号鍵を保有する複数の閲覧者が利用するデータファイルの生成方法であって、
被閲覧情報を第１の暗号手段にて共通暗号鍵を用いて暗号化するか、又は第２の暗号手段にて前記異なる複数の暗号鍵を用いて暗号化するか、の何れかを操作者の操作に応じて選択的に実行する手順と、
第２の暗号手段に入力した所定の判定用コードを前記複数の暗号鍵でそれぞれ暗号化して複数の暗号化判定用コードを生成する手順と、
上記被閲覧情報を上記所定の共通暗号鍵で暗号化した場合に、該共通暗号鍵に対応する共通復号鍵を上記異なる複数の暗号鍵で暗号化して複数の暗号化共通復号鍵を生成する手順と、書き込み手段にて上記暗号化被閲覧情報を主記憶手段に書き込む手順と、書き込み手段にて上記各暗号化共通復号鍵と同じ鍵で暗号化された上記暗号化判定用コードとをそれぞれ対応付けた上で主記憶手段に書き込む手順とを備えると共に、
上記被閲覧情報を上記異なる復号鍵に対応する暗号鍵で暗号化した場合に、書き込み手段にて上記各暗号化被閲覧情報と同じ鍵で暗号化された上記暗号化判定用コードとをそれぞれ対応付けた上で主記憶手段に書き込む手順を含み、
上記主記憶手段に保管された上記暗号化被閲覧情報、上記暗号化判定用コード、及び共通暗号鍵を用いた場合は上記暗号化共通復号鍵とを結合して１つのデータファイルとするものであって、
前記判定用コードとして、上記被閲覧情報を上記所定の共通暗号鍵で暗号化した場合の判定用コードと、記被閲覧情報を上記異なる復号鍵に対応する暗号鍵で暗号化した場合の判定用コードと、の２種類の判定用コードが用意されていることを特徴とする暗号化ファイルの生成方法。
【請求項２】
主記憶手段と、主記憶手段から暗号化された情報を読み出す読み出し手段と、共通暗号鍵にて暗号化された情報を復号化するための第１の復号化手段と、前記複数の暗号鍵で暗号化された情報を復号化するための第２の復号化手段と、判定用コードの正否を判定する判定手段と、表示手段と、を少なくとも備えた暗号化ファイル閲覧装置にて、請求項１記載の方法により生成された暗号化ファイルを閲覧する方法であって、
上記データファイルを主記憶上にロードする手順と、読み出し手段にて上記データファイル内の暗号化判定用コードを読み出す手順と、該閲覧者が有する復号鍵を用いて第２の復号化手段にて暗号化判定用コードを順次復号化する手順と、復号化された判定用コードが暗号化前の２種類の判定用コードのいずれかに正しく復号化されたか否かを判定手段にて順次判定する手順と、第２の復号化手段にて上記暗号化共通復号鍵を該閲覧者が有する復号鍵を用いて復号化するか、又は暗号化被閲覧情報を被閲覧者が有する復号鍵を用いて復号化するか、の何れかを復号化された判定用コードに応じて選択的に実行する手順と、暗号化共通復号鍵を復号化した場合に復号化された共通復号鍵を用いて第１の復号化手段にて暗号化被閲覧情報を復号化する手順と、復号化された被閲覧情報を表示手段に表示する手順と、を備えたことを特徴とする暗号化ファイルの閲覧方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、異なる復号鍵を有する複数の閲覧者が利用する共通鍵を用いたデータファイルの生成方法及び閲覧方法に関する。
【０００２】
【従来の技術】
近年、コンピュータネットワークを用いた情報の共有環境が急速に普及している。共有する文書その他の情報をネットワークのサーバー上に蓄積し、多数のクライアントからこれにアクセスすることによって、該情報の管理や利用効率が格段に改善される。このような環境において、特定の情報を閲覧可能なユーザを限定したいという要求がある。例えば、社内ネットワーク環境においては、特定の役員のみ、特定の部署のみ、あるいは特定の社員のみに目的の文書を閲覧し得るように構成する必要が生じる。
【０００３】
この種の要求に応えるために、情報の暗号化技術を用いて目的の情報を暗号化し、この暗号に対応する復号鍵を持った者のみがこれを閲覧可能とする方法がある。
【０００４】
暗号化技術を用いた従来の方法の一つは、閲覧者を限定するセキュリティレベルを設定し、該セキュリティレベル毎に異なる鍵で目的の情報を暗号化して、それに対する復号鍵を持つ者のみが目的の情報を閲覧可能とするものである。
【０００５】
しかしながら、セキュリティレベル毎に鍵を設定するこの方法では、特定のユーザが複数のセキュリティレベルの情報を閲覧できるようにするためには、複数の鍵を管理しなければならず、ユーザ側及び管理者側において鍵管理が煩雑になる。例えば、社内ネットワークにおいて役員等に対しては、役員レベル、監督する各事業部レベルに対応した鍵を配布し、必要に応じてこれを使い分けるようにする必要がある。また、予め設定したセキュリティレベルに従わないユーザ群に対して情報を提供することが困難であり、閲覧対象者を選択する自由度が低いという問題がある。
【０００６】
暗号化技術を用いた従来の他の方法は、ユーザ毎に個別の復号鍵を設定し、情報の対象ユーザ毎にその復号鍵に対応した暗号鍵で情報を暗号化するものである。図７及び図８は、上記方法に従う従来の暗号化ファイルの作成及び閲覧システムを示している。最初に、図７に従って、従来の暗号化ファイルの作成方法において、ユーザＡ〜Ｃに同一内容の文書Ｐを暗号化して提供する方法について説明する。図に示すように、各ユーザＡ〜Ｃに対し、それぞれ固有の暗号鍵ＫEA、ＫEB及びＫECが予め決められており、各暗号鍵ＫEを用いて文書Ｐが暗号化され、暗号文ＣA〜ＣCが生成される。すなわちシステムは、暗号部７０においてユーザＡ用に文書Ｐを暗号鍵ＫEAを用いて暗号化し、文書ＣAを主記憶上に生成する。書き込み部７１は、主記憶上の文書ＣAをサーバーのハードディスク上に、１つのデータファイルとして保存する。同様に、暗号鍵ＫEBを用いてユーザＢ用の暗号文ＣBを、また暗号鍵ＫECを用いてユーザＣ用の暗号文ＣCを生成し、サーバー上にデータファイルとして保存する。
【０００７】
これらの暗号文ＣA〜ＣCは、図８に示すように、ユーザＡ〜Ｃの操作するクライアントにおいて、それぞれの復号鍵ＫDA〜ＫDCを用いて復号化される。すなわち、ユーザＡは、自クライアントの主記憶上に、暗号文ＣAを読み出し、その復号化部８１において、暗号鍵ＫEAに対応する復号鍵ＫDAを用いて復号化を行い、元の文書Ｐを得る。同様に、ユーザＢ及びユーザＣのクライアントにおいて、それぞれ復号鍵ＫDB、ＫDCを用いて暗号文ＣB、ＣCが復号化される。
【０００８】
【発明が解決しようとする課題】
しかしながら上記従来の方法によれば、ユーザ側及び管理者側における鍵の管理は容易になるものの、上記した例のように、同じ内容の文書についてそれを閲覧可能なユーザが複数である場合、そのユーザの数だけデータファイルが作成されることとなるので、サーバー上に蓄積されるファイルの数が膨大になる可能性があり、管理上問題がある。
【０００９】
従って本発明の目的は、暗号化された文書の管理及びその暗号化に必要な鍵の管理が容易な暗号化ファイルの生成方法及び閲覧方法を提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するため本発明は、異なる復号鍵を有する複数の閲覧者が利用するデータファイルの生成方法であって、少なくとも一つの被閲覧情報を、所定の共通暗号鍵で暗号化する手順と、上記所定の共通暗号鍵に対応する共通復号鍵を、上記異なる復号鍵に対応する暗号鍵でそれぞれ暗号化する手順と、上記暗号化された被閲覧情報及び上記暗号化された複数の共通復号鍵を、少なくとも１つのデータファイルとして保存する手順とを備えて構成される。
【００１１】
また、上記暗号化ファイルの生成方法は、所定の判定用コードを、上記異なる復号鍵に対応する暗号鍵でそれぞれ暗号化する手順と、上記暗号化された各共通復号鍵に対し、同じ鍵で暗号化された上記判定用コードをそれぞれ対応付ける手順とを更に備え、上記保存する手順が、上記暗号化された被閲覧情報及び上記暗号化された複数の共通復号鍵を上記判定用コードと共に１つのデータファイルとして保存するものであることが好ましい。
【００１２】
また、上記暗号化ファイルの生成方法は、上記データファイル内における少なくとも上記暗号化された被閲覧情報の位置を特定する位置情報を生成する手順を更に備え、上記保存する手順が、上記暗号化された被閲覧情報を上記位置情報と共に１つのデータファイルとして保存するものであることが好ましい。
【００１３】
本発明は、また上記方法により生成された暗号化ファイルを閲覧する方法であって、上記データファイルを主記憶上にロードする手順と、上記データファイル内の暗号化された複数の共通復号鍵を、該閲覧者が有する復号鍵で順次復号化する手順と、上記復号化された共通復号鍵が、暗号化前の共通復号鍵に正しく復号化されたか否かを順次判断する手順と、正しく復号化された上記共通復号鍵で、上記暗号化された被閲覧情報を復号化する手順と、上記復号化された被閲覧情報を閲覧者に対し表示する手順とを備えて構成される。
【００１４】
また、上記暗号化ファイルの閲覧方法は、上記暗号化された複数の判定用コードを、該閲覧者が有する復号鍵で順次復号化する手順を更に備え、上記判断する手順が、上記復号化された判定用コードを、暗号化前の上記判定用コードと順次比較することにより、上記復号化された共通復号鍵が、暗号化前の共通復号鍵に正しく復号化されたか否かを判断するものであることが好ましい。
【００１５】
更に、上記暗号化ファイルの閲覧方法は、上記被閲覧情報を復号化する手順が、上記位置情報に基いて上記データファイルの中から上記被閲覧情報を抽出する手順を更に備えることが好ましい。
【００１６】
【発明の実施の形態】
以下、図示した一実施形態に基いて本発明を詳細に説明する。図１は本発明の一実施形態に係る暗号化ファイルの作成方法を実現するシステム構成図を示している。基本的に、本作成方法によって、提供すべき一つの文書が所定の共通暗号鍵によって暗号化される。これと共に、該共通暗号鍵に対応する共通復号鍵が、各ユーザに設定された暗号鍵を用いてそれぞれ暗号化される。暗号化された文書及び各共通復号鍵は、一つのデータファイルにまとめられ保存される。
【００１７】
図１において、暗号化ファイル生成装置１０は、ファイル管理者が操作するコンピュータ及びこの上で動作されるプログラムによって実現可能であり、その機能的な構成として、鍵暗号部１１、鍵設定部１２、鍵鍵データ書き込み部１３、ブロックサイズ算出部１４、文書暗号部１５、文書書き込み部１６及びデータ保存部１７を備える。
【００１８】
鍵暗号部１１は、鍵設定部１２によって設定された暗号鍵ＫEを用いて所定のアルゴリズムにより入力データを暗号化する。鍵暗号部１１に入力されるデータは、確認コードＭ及び共通復号鍵ＫYであり、鍵暗号部１１は、確認コードＭを暗号化して暗号化確認コードＭ’を生成し、また共通復号鍵ＫYを暗号化して暗号化共通復号鍵ＫY’を生成する。ここで、確認コードＭは、文書Ｐを閲覧しようとするユーザが、上記共通復号鍵ＫYを使用する権限を有しているか否かを判断するためのものである。確認コードＭは、任意の文字列、記号その他の識別子であれば良いが、文書Ｐに基いて生成されるハッシュ値その他のメッセージダイジェストを確認コードＭとしても良い。確認コードＭを用いた閲覧権限の判定の方法については後述する。共通復号鍵ＫYは、閲覧に付される文書Ｐを暗号化するために用いられる共通暗号鍵ＫXに対応したもので、共通暗号鍵ＫXで暗号化された文書Ｐを正しく復号化するための鍵である。
【００１９】
鍵設定部１２は、鍵暗号部１１で用いられる暗号鍵ＫEを設定するためのものである。図に示す例で、鍵設定部１２は、暗号化しようとする文書Ｐに対する閲覧権限を有するユーザＡ、Ｂ及びＣに対し予め配布された復号鍵ＫDA、ＫDB及びＫDCに対応する暗号鍵ＫEA、ＫEB及びＫECを、順次鍵暗号部１１で用いる鍵として設定する。これによって、鍵暗号部１１は、ユーザＡ用のデータとして、暗号鍵ＫEAで暗号化された暗号化確認コードＭA’及び暗号化共通復号鍵ＫYA’を生成し、ユーザＢ用のデータとして、暗号鍵ＫEBで暗号化された暗号化確認コードＭB’及び暗号化共通復号鍵ＫYB’を生成し、ユーザＣ用のデータとして、暗号鍵ＫECで暗号化された暗号化確認コードＭC’及び暗号化共通復号鍵ＫYC’を生成する。
【００２０】
鍵データ書き込み部１３は、上記鍵暗号部１１で生成された暗号化確認コードＭ’、暗号化共通復号鍵ＫY’及び後述するそれらのブロックサイズデータＳを主記憶１８上に配置するものである。図で示すように、上記各データはユーザ毎にまとめられ、順次主記憶上にマッピングされる（以下ではこれらのデータを必要に応じて、鍵データという）。すなわち、主記憶１８上には、ユーザＡ用の鍵データとして、ブロックサイズデータＳA、暗号化確認コードＭA’及び暗号化共通復号鍵ＫYA’が連続して配置され、続いてユーザＢ用の鍵データとして、ブロックサイズデータＳB、暗号化確認コードＭB’及び暗号化共通復号鍵ＫYB’が連続して配置され、続いてユーザＣ用の鍵データとして、ブロックサイズデータＳC、暗号化確認コードＭC’及び暗号化共通復号鍵ＫYC’が連続して配置される。
【００２１】
ブロックサイズ算出部１４は、各暗号鍵ＫEA〜ＫECを用いた鍵暗号部１１の出力毎に、鍵データ書き込み部１３に入力された暗号化確認コードＭ’と暗号化共通復号鍵ＫY’の総計バイト数を算出し、該バイト数を格納したブロックサイズデータＳを鍵データ書き込み部１３に出力する。この実施例では、各ユーザＡ、Ｂ及びＣに対して、３つのブロックサイズデータＳA、ＳB及びＳCが生成される。上述のように生成されたブロックサイズデータＳA〜ＳCは、鍵データ書き込み部１３によって、暗号化確認コードＭ’及び暗号化共通復号鍵ＫY’と共に主記憶１８上に配置される。ブロックサイズ算出部１４は、また、後述する暗号化文書コードＮ’及び暗号文Ｃの総計バイト数を算出し、該バイト数を格納したブロックサイズデータＳPを鍵データ書き込み部１３に出力する。生成されたブロックサイズデータＳPは、後述する文書書き込み部１６によって、暗号化文書コードＮ’及び暗号文Ｃと共に主記憶１８上における、上記鍵データ書き込み部１３で書き込まれたデータに続く領域に配置される。
【００２２】
文書暗号部１５は、共通暗号鍵ＫXを用いて所定のアルゴリズムにより入力データを暗号化する。文書暗号部１５に入力されるデータは、文書コードＮ及び閲覧に付する文書Ｐであり、文書暗号部１５は、文書コードＮを暗号化して暗号化文書コードＮ’を生成し、また文書Ｐを暗号化して暗号文Ｃを生成する。ここで、文書コードＮは、文書Ｐを閲覧しようとするユーザが、その文書に対する閲覧権限を有しているか否かを判断するためのものである。文書コードＮは、上記確認コードＭと同様、任意の文字列、記号その他の識別子で構成できる。
【００２３】
文書書き込み部１６は、上記文書暗号部１５で生成された暗号化文書コードＮ’、暗号文Ｃ及び後述するそれらのブロックサイズデータＳP（以下これらを必要に応じて文書データという）を主記憶１８上に配置するものである。上記文書データは先の鍵データ書き込み部１３で書き込まれた鍵データに続いて、順次主記憶上にマッピングされる。すなわち、主記憶１８上には、図で示すように、上記ユーザＣ用の暗号化共通復号鍵ＫYC’に続いて、順次、ブロックサイズデータＳP、暗号化文書コードＮ’及び暗号文Ｃが配置される。なお、上記ブロックサイズデータＳPは、上述したブロックサイズ算出部１４によって生成される。
【００２４】
データ保存部１７は、主記憶１８上に配置された上記データ、すなわち鍵データ書き込み部１３によって書き込まれたブロックサイズデータＳA〜ＳC、暗号化確認コードＭA’〜ＭC’及び暗号化共通復号鍵ＫYA’〜ＫYC’、並びに文書書き込み部１６によって書き込まれたブロックサイズデータＳP、暗号化文書コードＮ’及び暗号文Ｃをその配列の順に従って１つのデータファイルＦとして、サーバーのハードディスク上に保存する。なお、上記鍵書き込み部１３によって書き込まれた鍵データと、上記文書書き込み部１６によって書き込まれた文書データを、別のファイルに保存するようにすることもできる。この場合、鍵データを保存したデータファイルには、対応する文書データを保存したデータファイルへのリンク情報を含ませる。
【００２５】
図２は、上記システムにおける暗号ファイルの生成手順を示すフローチャートである。以下、本図及び図１に沿って、暗号ファイルの生成手順について説明する。ファイル管理者が操作するコンピュータにおいて暗号ファイルの生成プログラムが起動されると、鍵設定部１２によって文書Ｐを提供するユーザＡ用の暗号鍵ＫEAが、鍵暗号部１１にセットされる（２０１）。鍵暗号部１１は、この暗号鍵ＫEAを用いて、所定の確認コードＭを暗号化し、暗号化確認コードＭA’を生成する（２０２）。これに続いて、鍵暗号部１１は、同じ暗号鍵ＫEAを用いて、共通復号鍵ＫYを暗号化し、暗号化共通復号鍵ＫYA’を生成する（２０３）。
【００２６】
次に、ブロックサイズ算出部１４によって、上記生成した暗号化確認コードＭA’及び暗号化共通復号鍵ＫYA’の総バイト数が算出され、該バイト数を格納したブロックサイズデータＳAが生成される（２０４）。そして、鍵データ書き込み部１３によって、上記ブロックサイズデータＳA、暗号化確認コードＭA’及び暗号化共通復号鍵ＫYA’が主記憶１８上の所定領域に書き込まれる（２０５）。
【００２７】
上記ステップ２０１から２０５の処理は、対象となるユーザの数だけ繰り返される（２０６）。上記例では対象ユーザはユーザＡ〜Ｃであり、ユーザＢ及びユーザＣについて上記処理が繰り返される。この場合において、鍵設定部１２は鍵暗号部１１に対し、ユーザＢ用のデータを生成するために暗号鍵ＫEBを、ユーザＣ用のデータを生成するために暗号鍵ＫECをそれぞれセットし、上記処理を実行する。
【００２８】
上記処理により鍵データの生成が終わると、次に、文書暗号部１５が起動される。文書暗号部１５は、設定された共通暗号鍵ＫXを用いて、文書コードＮを暗号化し、暗号化文書コードＮ’を生成する（２０７）。これに続いて、文書暗号部１５は、同じく共通暗号鍵ＫXを用いて、文書Ｐを暗号化し、暗号文Ｃを生成する（２０８）。
【００２９】
ブロックサイズ算出部１４によって、上記生成した暗号化文書コードＮ’及び暗号文Ｃの総バイト数が算出され、該バイト数を格納したブロックサイズデータＳPが生成される（２０９）。そして、文書書き込み部１６によって、上記ブロックサイズデータＳP、暗号化文書コードＮ’及び暗号文Ｃが主記憶１８上の上記鍵データの後に書き込まれる（２１０）。
【００３０】
これらの処理を経て、主記憶１８上には、図１に示すように生成されたデータが配置される。そして、主記憶１８上の該データは、データ保存部１７によって、１つのデータファイルＦとして、サーバー上に保存される（２１１）。以上により暗号化ファイルが生成される。
【００３１】
図３は、図１のシステムにより暗号化された文書Ｐを閲覧するためのシステムの構成図である。暗号化ファイル閲覧装置３０は、ユーザが操作するクライアントコンピュータ及びこの上で動作されるプログラムによって実現可能であり、その機能的な構成として、ファイル読み出し部３１、鍵ブロック読み出し部３２、鍵復号部３３、確認コード判定部３４、文書ブロック読み出し部３５、文書復号部３６、鍵設定部３７、文書コード判定部３８及び文書表示部３９を備える。
【００３２】
ファイル読み出し部３１は、ユーザの指定したファイルを自クライアントの主記憶４０上に読み出すための機能であり、これによって、サーバー上に格納した上記データファイルＦが任意のユーザによってその主記憶上に展開される。鍵ブロック読み出し部３２は、主記憶４０上に展開されたデータファイルＦからブロック単位での読み出しを可能とするもので、最初にデータファイルＦの先頭にあるブロックサイズデータＳAを読み出し、その値、すなわち以下に続く暗号化確認コードＭA’と暗号化共通復号鍵ＫYA’の総バイト数をブロックサイズレジスタ４１に保持する。鍵ブロック読み出し部３２は、また、暗号化確認コードＭ’及び暗号化共通復号鍵ＫY’のブロックを順次読み出し、鍵復号部３３へ与える。
【００３３】
鍵復号部３３は、暗号化確認コードＭ’を復号化して確認コードＭを生成すると共に、暗号化共通復号鍵ＫY’を復号化して共通復号鍵ＫYを生成するものである。ここで、鍵復号部３３において用いられる復号鍵ＫDは、各ユーザ毎に割り当てられたもの（この例ではユーザＡ、Ｂ、Ｃに対するＫDA、ＫDB、ＫDC）が用いられる。従って、例えばユーザＡが使用する復号鍵ＫDAを用いて、上記確認コード及び暗号文の復号を行った場合、それに対応した暗号鍵ＫEAによって暗号化された暗号化確認コードＭA’及び暗号化共通復号鍵ＫYA’のみが正常に復号化される。
【００３４】
確認コード判定部３４は、鍵復号部３３によって復号化された確認コードＭが正常に復号化されているかどうかを判定するものである。確認コード判定部３４は、復号化された確認コードＭと予め設定された確認コードとを比較し、その結果に応じて上記鍵ブロック読み出し部３２の読み出しブロックを制御する。確認コードを暗号化した鍵ＫEとそれを復号化する鍵ＫDが対応したものでない場合、正常な復号化は行われず、確認コード判定部３４は不一致を出力する。これによって、該確認コードに続く暗号文Ｃが、これを閲覧をしようとしているユーザ以外のユーザに対し提供されたものであることが判断される。確認コード判定部３４において、復号化された確認コードＭが正常に復号化されたと判断された場合、確認コード判定部３４は、ブロックサイズレジスタ４１の値に従って、鍵ブロック読み出し部３２に対し、続く暗号化共通復号鍵ＫY’を読み出し鍵復号部３３へ与えるよう指示する。これに応じて鍵復号部３３は、暗号化共通復号鍵ＫY’を復号化して、元の共通復号鍵ＫYを生成する。生成された共通復号鍵ＫYは、後述する鍵設定部３７にセットされる。確認コード判定部３４において、復号化された確認コードＭが正常に復号化されなかったと判断された場合、確認コード判定部３４は、ブロックサイズレジスタ４１の値に従って、鍵ブロック読み出し部３２に対し、続く暗号化共通復号鍵ＫY’を飛ばして、次のブロック、すなわちブロックサイズデータＳBを読み出す。
【００３５】
文書ブロック読み出し部３５は、上記確認コード判定部３４からの指令を受けて、主記憶４０上に展開されたデータファイルＦにおける文書データの各ブロックを読み出し可能とする。確認コード判定部３４が確認コードの一致信号を出力した場合、文書ブロック読み出し部３５は、ブロックサイズデータＳPを読み出し、その値、すなわち以下に続く暗号化文書コードＮ’と暗号文Ｃの総バイト数をブロックサイズレジスタ４２に保持する。文書ブロック読み出し部３５は、また、暗号化文書コードＮ’及び暗号文Ｃのブロックを順次読み出し、文書復号部３６へ与える。
【００３６】
文書復号部３６は、暗号化文書コードＮ’を復号化して文書コードＮを生成すると共に、暗号文Ｃを復号化して文書Ｐを生成するものである。ここで、文書復号部３６において用いられる復号鍵は、鍵設定部３７にセットされる共通復号鍵ＫYである。共通復号鍵ＫYは、上記確認コード判定部３４により確認コードが一致した場合に、上記鍵復号部３３によって正常に復号化され、鍵設定部３７にセットされる。
【００３７】
文書コード判定部３８は、文書復号部３６によって復号化された文書コードＮが正常に復号化されているかどうかを判定するものである。文書コード判定部３８は、復号化された文書コードＮと予め設定された文書コードＮとを比較し、その結果に応じて上記文書ブロック読み出し部３５の読み出しブロックを制御する。文書コードを暗号化した鍵ＫXとそれを復号化する鍵ＫYが対応したものでない場合、正常な復号化は行われず、文書コード判定部３８は不一致を出力する。これによって、該文書コードに続く暗号文Ｃが、これを閲覧をしようとしているユーザ以外のユーザに対し提供されたものであることが判断される。文書コード判定部３８において、復号化された文書コードＮが正常に復号化されたと判断された場合、文書コード判定部３８は、ブロックサイズレジスタ４２の値に従って、文書ブロック読み出し部３５に対し、続く暗号文Ｃを読み出し文書復号部３６へ与えるよう指示する。これに応じて文書復号部３６は、暗号文Ｃを復号化して、元の文書Ｐを生成する。
【００３８】
文書表示部３９は、上記復号化された文書Ｐをユーザが閲覧可能なように表示する機能である。上記操作を行うユーザが、提供された文書Ｐに対し閲覧権限を有している場合、文書表示部３９によって、クライアントのディスプレイ上に対象文書が表示される。
【００３９】
図４及び図５は、上記システムにおける暗号ファイルの閲覧手順を示すフローチャートである。以下、本図及び図３に沿って、復号鍵ＫDBを有する任意のユーザＢが、暗号ファイルを閲覧する手順について説明する。ユーザＢが操作するクライアントコンピュータにおいて暗号ファイルの閲覧プログラムが起動され、サーバ上のデータファイルＦが指定されると、ファイル読み出し部３１によって該クライアントの主記憶４０の所定エリアにデータファイルＦが展開される（４０１）。鍵ブロック読み出し部３２によって、該データファイルＦの先頭ブロックであるブロックサイズデータＳAが読み出され（４０２）、ブロックサイズレジスタ４１へ格納される（４０３）。次いで、次のブロックにある暗号化確認コードＭA’が読み出され、鍵復号部３３へ送られる。鍵復号部３３では、ユーザＢに割り当てられた復号鍵ＫDBによって、この暗号化確認コードＭA’が復号化される（４０４）。
【００４０】
次に、この符号化された確認コードは、確認コード判定部３４によって正しいものか判定される（４０５）。しかし、この暗号化確認コードＭA’は、ユーザＡ用の暗号鍵ＫEAで暗号化されているので、復号鍵ＫDBでは正しく復号化できない。そのため、処理はステップ４０６に移り、確認コード判定部３４によってブロックサイズレジスタ４１内の値に従って、次に読み出すブロックを指標するポインタを次のブロックサイズデータＳBの先頭アドレスに移動する。
【００４１】
上記ポインタの移動によって、鍵ブロック読み出し部３２は、次にブロックサイズデータＳBを読み出し（４０２）、ブロックサイズレジスタ４１へ格納する（４０３）。次いで、次のブロックにある暗号化確認コードＭB’が読み出され、鍵復号部３３へ送られる。鍵復号部３３では、ユーザＢに割り当てられた復号鍵ＫDBによって、この暗号化確認コードＭB’が復号化される（４０４）。上記処理と同様に、復号化された確認コードは、確認コード判定部３４によって正しいものか判定されるが（４０５）、今度は、暗号化確認コードＭB’は、ユーザＢ用の暗号鍵ＫEBで暗号化されているので、復号鍵ＫDBで正しく復号化される。これによって、処理はステップ４０７へ移される。
【００４２】
ステップ４０７では、ブロックサイズレジスタ４１の値に従って、暗号化共通復号鍵ＫYB’のサイズが確認される。鍵ブロック読み出し部３２は、確認されたサイズに従って、暗号化共通復号鍵ＫYB’を読み出し、鍵復号部３３へ送る。鍵復号部３３は、暗号化共通復号鍵ＫYB’を上記ユーザＢに割り当てられた復号鍵ＫDBで復号化する（４０８）。これによって正常に共通復号鍵ＫYが復号化される。復号化された共通復号鍵ＫYは、文書復号部３６の鍵設定部３７にセットされる（４０９）。
【００４３】
次に、文書ブロック読み出し部３５は、文書データの最初のブロックにあるブロックサイズデータＳPを読み出し（図５の５０１）、その値をブロックサイズレジスタ４２へ格納する（５０２）。次いで、次のブロックにある暗号化文書コードＮ’が読み出され、文書復号部３６へ送られる。文書復号部３６では、上記設定された共通復号鍵ＫYによって、この暗号化文書コードＮ’が復号化される（５０３）。
【００４４】
次に、この符号化された文書コードは、文書コード判定部３８によって正しいものか判定される（５０４）。鍵設定部３７にセットされた復号鍵が正しくない場合、暗号化文書コードＮ’は、正しく復号化できない。この場合、文書Ｐが復号化されることなく処理は終了する。鍵設定部３７にセットされた鍵が復号鍵ＫYである場合、暗号化文書コードＮ’は、共通暗号鍵ＫXで暗号化されているので、復号鍵ＫYで正しく復号化される。これによって、処理はステップ５０５へ移される。
【００４５】
ステップ５０５では、ブロックサイズレジスタ４２の値に従って、暗号文Ｃのサイズが確認される。文書ブロック読み出し部３５は、確認されたサイズに従って、暗号文Ｃを読み出し、これを文書復号部３６へ送る。文書復号部３６は、暗号文Ｃを設定された共通復号鍵ＫYで復号化する（５０６）。これによって正常に暗号文Ｃが復号化され、元の文書Ｐが得られる。復号化された文書Ｐは、文書表示部３９によって、ディスプレイ上に表示され、ユーザＢが閲覧可能となる。
【００４６】
同様にして、ユーザＡ及びＣも、自クライアント上で上記プログラムを実行し、同じデータファイルＦにアクセスすることにより、目的の文書Ｐを閲覧可能となる。一方で、文書Ｐの閲覧権限を有していないユーザ（例えば、暗号鍵ＫEDに対する復号鍵ＫDDを有するユーザＤ）が、上記データファイルＦにアクセスした場合、確認コード判定部３４において確認コードが正しく復号されないと判断される。この結果、何れの暗号文も閲覧することができない。このような場合、データファイルＦの最終ブロックに、「閲覧権限がありません」等の閲覧権限を有していないユーザに対するメッセージを格納し、これを表示するよう構成することもできる。
【００４７】
次に、本発明の他の実施形態について説明する。本実施形態においては、基本的に、先の実施形態で用いられる暗号化ファイル生成装置１０及び暗号化ファイル閲覧装置３０が用いられる。本実施形態における暗号化ファイルの生成及び閲覧では、異なるセキュリティレベル（例えば、役員、社内特定部門及び一般社員）毎に、異なる共通鍵ＫX及びＫYを使い分ける。これによって、単一のデータファイル内に、同一テーマであるが（各セキュリティレベルに合わせた）内容の異なる複数の文書を含め、対応するセキュリティレベルにあるユーザのみが対象文書を閲覧できるようにする。
【００４８】
図６には、本実施形態に従う暗号化ファイル生成装置によって生成されたデータファイルＦが示されている。データファイルＦには、その下部に、内容の異なる３つの暗号文Ｃ1〜Ｃ3が含まれており、これらは、異なる共通暗号鍵ＫX1〜ＫX3で暗号化されている。すなわち、暗号文Ｃ1は、第１のセキュリティレベル（例えば役員レベル。以下、レベル１）に属するユーザＡ及びＢに対し提供された文書Ｐ1を、該レベルに対し割り当てられた共通暗号鍵ＫX1で暗号化したものであり、暗号文Ｃ2は、第２のセキュリティレベル（例えば、特定部門レベル。以下、レベル２）に属するユーザＣ及びＤに対し提供された文書Ｐ2を、該レベルに対し割り当てられた共通暗号鍵ＫX2で暗号化したものであり、また、暗号文Ｃ3は、第３のセキュリティレベル（例えば、一般社員レベル。以下、レベル３）に属するユーザＥ、Ｆ及びＧに対し提供された文書Ｐ3を、該レベルに対し割り当てられた共通暗号鍵ＫX3で暗号化したものである。なお、各暗号文の上位には、対応する共通暗号鍵で暗号化された文書コードＮ、すなわち暗号化文書コードＮ1’〜Ｎ3’及びブロックサイズデータＳP1〜ＳP3が格納される。
【００４９】
データファイルＦの上部には、各ユーザＡ〜Ｇがそれぞれアクセスする７つのブロックが存在し、各ブロックには、各ユーザの所属するレベルに割り当てられた共通復号鍵ＫY1〜ＫY3を、そのユーザに割り当てられた暗号鍵ＫEA〜ＫEGで暗号化したものが格納される。例えば、ユーザＡはレベル１に属しているので、対応するレベルの共通復号鍵ＫY1を、その暗号鍵ＫEAで暗号化したもの、すなわち暗号化共通鍵ＫY1A’がユーザＡ用のものとして格納される。また、ユーザＣはレベル２に属しているので、対応するレベルの共通復号鍵ＫY2を、その暗号鍵ＫECで暗号化したもの、すなわち暗号化共通復号鍵ＫY2C’がユーザＣ用のものとして格納される。そして各暗号化共通復号鍵の上位には、対応する共通暗号鍵で暗号化された確認コードＭ、すなわち暗号化確認コードＭ1’〜Ｍ3’及びブロックサイズデータＳA〜ＳGが格納される。
【００５０】
上記生成されたデータファイルＦは、先の実施形態で示した暗号化ファイル閲覧装置３０によって閲覧可能となる。すなわち、図４及び図５の手順に従って、各ユーザＡ〜Ｇは、自己の復号鍵ＫDA〜ＫDGをそれぞれ用いることにより、そのセキュリティレベルに対応した共通復号鍵ＫY1〜ＫY3を正しく復号可能であり、該復号化された共通復号鍵ＫY1〜ＫY3を用いてそれぞれに提供された文書Ｐ1〜Ｐ3を、正しく復号化し、その閲覧が可能である。一方で、ユーザが、他のセキュリティレベルのユーザに対し提供された文書（例えば、レベル３にあるユーザＥに対する文書Ｃ1）を正しく復号化することはできず、よってそのセキュリティが保証される。
【００５１】
以上、本発明の一実施形態を図面に沿って説明した。しかしながら本発明は上記実施形態に示した事項に限定されず、特許請求の範囲の記載に基いてその変更、改良等が可能であることは明らかである。本発明で用いることのできる暗号アルゴリズムには特に制限はなく、各種の暗号方式（それが対称鍵暗号方式であるか非対称鍵暗号方式であるか、ストリーム暗号方式であるかブロック暗号方式であるか等を問わない）を用いることができる。
【００５２】
本発明の方法は、コンピュータネットワーク環境において好適に用いられるが、該ネットワークはローカル（例えば社内ＬＡＮ）なものでも、広域的なもの（例えばインターネット）でも良い。また、暗号化される情報は、文書に限らず、画像、音声又はこれらと文書を混在したもので良く、また関連する複数の情報を１つのデータファイルとして保存しても良い。また、本方法は特定のユーザに対する商品カタログの配信に用いることができ、この場合、該特定ユーザ毎に異なる暗号鍵を用いて商品キーその他の秘匿情報を商品カタログの配送と共に配送するようにすることができる。
【００５３】
本発明の方法は、基本的には、コンピュータ及びその上で動作されるプログラムによって実現することができるが、ネットワーク間で送受される情報の表示インタフェースとなるプログラム（例えば、インターネットのＷＷＷブラウザ）に所定の機能を追加する形（いわゆるプラグイン）で実現しても良い。
【００５４】
また、上記実施形態では作成するデータファイルの上部に鍵データを、下部に文書データを配置した例を示した。しかしながら、文書データが短いものである等の場合には、各ユーザ毎の鍵データ内にこれを記録するようにしても良い。更に、特定のユーザに対しては、上記暗号化共通復号鍵を配置するブロックに、該ユーザに割り当てられた暗号鍵（例えば、ＫEA）を用いて文書データを暗号化したものを配置するよう構成しても良い。この場合、該ブロックに納められたデータが暗号化共通復号鍵であるか文書データであるかを識別するために、確認コードを２種類用意し、確認コード判定部においてこれを識別するようにすれば良い。
【００５５】
【発明の効果】
以上の如く本発明によれば、複数のユーザに提供する同一又は関連する情報のファイルを暗号化した状態で１つにまとめることができ、蓄積する情報の管理が容易であるという利点がある。また、この場合にユーザ側及び管理者側において暗号及び復号のための鍵の管理が容易である。
【００５６】
更に、データファイル内には共通暗号鍵によって暗号化された１つの文書を格納すれば良いので、ファイルサイズを最小限に抑えることができる。
【００５７】
また、判定用コードを用いて正しく復号化が行われるかを被閲覧情報の復号化に先立って判断することによって、容易且つ迅速にユーザが該情報に対する閲覧権限を有しているか否かが判断できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る暗号化ファイルの作成方法を実現するシステム構成図である。
【図２】図１のシステムにおける暗号ファイルの生成手順を示すフローチャートである。
【図３】図１のシステムにより暗号化された文書を閲覧するためのシステム構成図である。
【図４】図３のシステムにおける暗号ファイルの閲覧手順を示すフローチャートである。
【図５】図３のシステムにおける暗号ファイルの閲覧手順を示すフローチャートである。
【図６】本発明の他の実施形態に従う暗号化ファイル生成装置によって生成されたデータファイルを示す図である。
【図７】従来の暗号化ファイルの作成方法を実現するシステム構成図である。
【図８】従来の暗号化ファイルの閲覧方法を実現するシステム構成図である。
【符号の説明】
ＫX  共通暗号鍵
ＫYA’〜ＫYC’  暗号化共通復号鍵
ＫDA〜ＫDC  復号鍵
ＫEA〜ＫEC  暗号鍵
Ｐ  文書
Ｃ  暗号文
Ｍ  確認コード
ＭA’〜ＭC’  暗号化確認コード
Ｎ  文書コード
Ｎ’  暗号化文書コード
ＳA〜ＳC  ブロックサイズデータ
ＳP  ブロックサイズデータ
Ｆ  データファイル
１０  暗号化ファイル生成装置
１１  鍵暗号部
１２  鍵設定部
１３  鍵データ書き込み部部
１４  ブロックサイズ算出部
１５  文書暗号部
１６  文書書き込み部
１７  データ保存部
１８  主記憶
３０  暗号化ファイル閲覧装置
３１  ファイル読み出し部
３２  鍵ブロック読み出し部
３３  鍵復号部
３４  確認コード判定部
３５  文書ブロック読み出し部
３６  文書復号部
３７  鍵設定部
３８  文書コード判定部
３９  文書表示部
４０  主記憶
４１、４２  ブロックサイズレジスタ
【図１】
0003815107.tif 000002
【図２】
0003815107.tif 000003
【図３】
0003815107.tif 000004
【図４】
0003815107.tif 000005
【図５】
0003815107.tif 000006
【図６】
0003815107.tif 000007
【図７】
0003815107.tif 000008
【図８】
0003815107.tif 000009