(57)【特許請求の範囲】
【請求項１】
電子文書の暗号化を行う暗号化装置であって、
開示先と、当該開示先に対応する暗号情報と、を特定する管理情報を少なくとも一つ以上記憶する記憶部と、制御部と、を備え、
前記制御部は、
前記電子文書に含まれる電子データの選択を受け付ける第一の選択処理と、
選択された電子データ毎に、前記開示先の選択を少なくとも一つ以上受け付ける第二の選択処理と、
前記第二の選択処理で選択された開示先に対応する暗号情報を用いて前記第一の選択処理で選択された電子データを暗号化した暗号化データ、前記第一の選択処理で選択された電子データの前記電子文書における位置を特定する位置情報、および、前記暗号化データを復号する際に使用する情報を特定することのできる復号情報、を備える暗号化領域情報を生成する処理と、
前記第一の選択処理で選択された電子データを前記電子文書から削除する処理と、
前記第一の選択処理で選択された電子データが閲覧不可であることを示すためのマスク画像を生成し、該マスク画像を削除された前記電子データの位置に配置する処理と、
を行うことを特徴とする暗号化装置。
【請求項２】
請求項１に記載の暗号化装置であって、
前記制御部は、
前記暗号化領域情報を前記電子文書の一部に付加すること、
を特徴とする暗号化装置。
【請求項３】
請求項１または２に記載の暗号化装置であって、
前記暗号情報は、公開鍵暗号技術における公開鍵であり、
前記暗号化データは、前記第一の選択処理で選択された電子データを前記公開鍵で暗号化したものであること、
を特徴とする暗号化装置。
【請求項４】
請求項１または２に記載の暗号化装置であって、
前記暗号情報は、共有秘密情報であり、
前記暗号化データは、前記第一の選択処理で選択された電子データを、前記共有秘密情報から生成された暗号化鍵で暗号化したものであること、
を特徴とする暗号化装置。
【請求項５】
電子データを暗号化した暗号化データ、当該電子データの前記電子文書における位置を特定する位置情報、および、当該暗号化データを復号する際に使用する情報を特定する復号情報、を備える暗号化領域情報が関連付けられている電子文書の前記暗号化データを復号する復号装置であって、
前記暗号化領域情報より前記復号情報を取得する処理と、
前記暗号化データを、前記復号情報を用いて復号する処理と、
前記暗号化領域情報の位置情報で特定される位置に、復号した電子データを入れる処理と、
前記暗号化領域情報の位置情報から特定される位置に配置されている、電子データが閲覧不可であることを示すためのマスク画像を削除する処理と、を行う制御部を備えること、
を特徴とする復号装置。
【請求項６】
請求項５に記載の復号装置であって、
記憶部を備え、
前記復号情報は、前記記憶部に記憶されている公開鍵暗号技術における秘密鍵を示す情報であり、
前記暗号化データを復号する処理は、前記暗号化データを、前記復号情報で示される秘密鍵を用いて復号する処理であること、
を特徴とする復号装置。
【請求項７】
請求項５に記載の復号装置であって、
前記復号情報は、共有秘密情報を示す情報であり、
前記暗号化データを復号する処理は、前記復号情報で示される共有秘密情報を用いて生成された復号鍵を用いて復号する処理であること、
を特徴とする復号装置。
【請求項８】
電子文書の暗号化を行う暗号化装置と、当該暗号化装置が暗号化した電子文書の復号を行う復号装置と、を備える暗号システムであって、
前記暗号化装置は、
開示先と、当該開示先に対応する暗号情報と、を特定する管理情報を少なくとも一つ以上記憶する記憶部と、制御部と、を備え、
前記暗号化装置の前記制御部は、
前記電子文書に含まれる電子データの選択を受け付ける第一の選択処理と、
選択された電子データ毎に、前記開示先の選択を少なくとも一つ以上受け付ける第二の選択処理と、
前記第二の選択処理で選択された開示先に対応する暗号情報を用いて前記第一の選択処理で選択された電子データを暗号化した暗号化データ、前記第一の選択処理で選択された電子データの前記電子文書における位置を特定する位置情報、および、前記暗号化データを復号する際に使用する情報を特定することのできる復号情報、を備える暗号化領域情報を生成する処理と、
前記第一の選択処理で選択された電子データを前記電子文書から削除する処理と、
前記第一の選択処理で選択された電子データが閲覧不可であることを示すためのマスク画像を生成し、該マスク画像を削除された前記電子データの位置に配置する処理と、
を行うことを特徴とする暗号システム。
【請求項９】
請求項８に記載の暗号システムであって、
前記暗号化装置の前記制御部は、
前記暗号化領域情報を前記電子文書の一部に付加すること、
を特徴とする暗号システム。
【請求項１０】
請求項８または９に記載の暗号システムであって、
前記復号装置は、
前記暗号化領域情報より前記復号情報を取得する処理と、
前記暗号化データを、前記復号情報を用いて復号する処理と、
前記暗号化領域情報の位置情報で特定される位置に、復号した電子データを入れる処理と、を行う制御部を備えること、
を特徴とする暗号システム。
【請求項１１】
請求項１０に記載の暗号システムであって、
前記復号装置は、記憶部を備え、
前記復号情報は、前記復号装置の前記記憶部に記憶されている公開鍵暗号技術における秘密鍵を示す情報であり、
前記暗号化データを復号する処理は、前記暗号化データを、前記復号情報で示される秘密鍵を用いて復号する処理であること、
を特徴とする暗号システム。
【請求項１２】
請求項１０に記載の暗号システムであって、
前記復号情報は、共有秘密情報を示す情報であり、
前記暗号化データを復号する処理は、前記復号情報で示される共有秘密情報を用いて生成された復号鍵を用いて復号する処理であること、
を特徴とする暗号システム。
【請求項１３】
請求項８〜１２のいずれか一項に記載の暗号システムであって、
前記暗号情報は、公開鍵暗号技術における公開鍵であり、
前記暗号化データは、前記第一の選択処理で選択された電子データを前記公開鍵で暗号化したものであること、
を特徴とする暗号システム。
【請求項１４】
請求項８〜１２のいずれか一項に記載の暗号システムであって、
前記暗号情報は、共有秘密情報であり、
前記暗号化データは、前記第一の選択処理で選択された電子データを前記共有秘密情報から生成された暗号化鍵で暗号化したものであること、
を特徴とする暗号システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書を暗号化し、暗号化された電子文書を復号する技術に関する。
【背景技術】
【０００２】
近年、情報通信技術の発達によって、多くの文書が電子データ化されるようになってきている。これら電子データ化された文書(電子文書)には、個人情報など、その文書を閲覧するユーザに対して開示が制限されるべき情報（機密情報）が含まれる場合がある。
【０００３】
機密情報の漏洩を防止する手段としては、機密情報を有する電子文書に対して暗号化を行うことによって、その電子文書を復号可能なユーザのみが閲覧できるようにする方法が知られている。
【０００４】
また、特許文献１に記載された技術では、画像データの一部を暗号化することにより、閲覧するユーザに応じて、画像データを部分的に開示又は非開示にすることが可能となっている。
【０００５】
【特許文献１】特開２００７−３７２００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された技術は、ＪＰＥＧやビットマップなどの画像データに対して、画像データにおける座標等の空間情報を利用して部分的に暗号化を行うものであるため、対象とする電子文書が画像データだけでなく、テキスト文書等を含む複数の構成要素を有する場合には、暗号化及び復号化を行う領域の特定を行うことができない。
【０００７】
そこで、本発明では、テキストや画像等のように複数の構成要素から構成された電子文書に対して、部分的に暗号化及び復号化することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、電子文書に含まれる電子データの選択を受け付け、選択された電子データを暗号化する指示を受けると、選択された電子データを暗号化した暗号化データ、選択された電子データの電子文書における位置を特定する位置情報、および、当該暗号化データを復号することのできる復号鍵を特定することのできる情報、を生成して管理する。
【０００９】
例えば、本発明は、電子文書の暗号化を行う暗号化装置であって、開示先と、当該開示先に対応する暗号情報と、を特定する管理情報を少なくとも一つ以上記憶する記憶部と、制御部と、を備え、前記制御部は、前記電子文書に含まれる電子データの選択を受け付ける第一の選択処理と、選択された電子データ毎に、前記開示先の選択を少なくとも一つ以上受け付ける第二の選択処理と、前記第二の選択処理で選択された開示先に対応する暗号情報を用いて前記第一の選択処理で選択された電子データを暗号化した暗号化データ、前記第一の選択処理で選択された電子データの前記電子文書における位置を特定する位置情報、および、前記暗号化データを復号する際に使用する情報を特定することのできる復号情報、を備える暗号化領域情報を生成する処理と、前記第一の選択処理で選択された電子データを前記電子文書から削除する処理と、前記第一の選択処理で選択された電子データが閲覧不可であることを示すためのマスク画像を生成し、該マスク画像を削除された前記電子データの位置に配置する処理と、を行うことを特徴とする。
【発明の効果】
【００１０】
以上のように、本発明によれば、テキストや画像等のように複数の構成要素から構成された電子文書に対して、部分的に暗号化及び復号することができる。
【発明を実施するための最良の形態】
【００１１】
＜第一の実施形態＞
図１は、本発明の第一の実施形態である暗号システム１００の概略図である。
【００１２】
図示するように、暗号システム１００は、鍵管理装置１１０と、暗号化装置１３０と、復号装置１５０Ａ〜１５０Ｃ（以下、各々の装置を特に区別する必要がない場合には、復号装置１５０とする）と、を備え、これらはネットワーク１７０を介して相互に情報を送受信することができるようにされている。
【００１３】
図２は、鍵管理装置１１０の概略図である。
【００１４】
図示するように、鍵管理装置１１０は、記憶部１１１と、制御部１１３と、通信部１１６と、読み書き部１１７と、を備える。
【００１５】
記憶部１１１は、鍵管理情報記憶領域１１２を備える。
【００１６】
鍵管理情報記憶領域１１２には、電子データを暗号化又は復号するための鍵を特定する情報が格納される。
【００１７】
例えば、鍵管理情報記憶領域１１２には、図３（鍵管理テーブル１１２ａの概略図）に示すような鍵管理テーブル１１２ａが記憶される。
【００１８】
鍵管理テーブル１１２ａには、電子データを暗号化する暗号化鍵と、当該暗号化鍵により暗号化された電子データを復号するための復号鍵と、を特定する情報が格納される。
【００１９】
具体的には、鍵管理テーブル１１２ａは、鍵ＩＤ欄１１２ｂと、復号鍵欄１１２ｃと、暗号化鍵欄１１２ｄと、を備える。
【００２０】
鍵ＩＤ欄１１２ｂには、復号鍵欄１１２ｃで特定される復号鍵及び暗号化鍵欄１１２ｄで特定される暗号化鍵のペアを一意に識別するための識別情報である鍵ＩＤを特定する情報が格納される。
【００２１】
なお、鍵ＩＤは、後述のように鍵生成部２１４により鍵生成時に生成された鍵に対して、一意な識別情報を付与してもよいが、例えばＲＳＡ暗号を用いる場合など、秘密鍵から公開鍵を容易に導出できる場合には、公開鍵のハッシュ値をＩＤとして用いてもよい。
【００２２】
復号鍵欄１１２ｃには、後述する暗号化鍵欄１１２ｄで特定される暗号化鍵で暗号化された電子データを復号するための復号鍵そのもの、またはその格納場所を特定する情報が格納される。暗号化鍵欄１１２ｄには、電子データを暗号化するための暗号化鍵そのもの、またはその格納場所を特定する情報が格納される。
【００２３】
ここで、本実施形態においては、秘密鍵と公開鍵とからなる公開鍵システムを利用しており、公開鍵である暗号化鍵で暗号化された電子データを秘密鍵である復号鍵を用いて復号することにより、公開鍵で暗号化された電子データは、当該公開鍵とペアとなる秘密鍵を有するユーザのみが閲覧可能となるようにしている。
【００２４】
図２に戻り、制御部１１３は、鍵生成部１１４と、鍵管理部１１５と、を備える。
【００２５】
鍵生成部１１４は、鍵管理装置１１０や復号装置１５０のオペレータからの指示に応じて、暗号化鍵と復号鍵のペアを生成するとともに、これらのペアを一意に識別するための鍵ＩＤを生成して、鍵管理テーブル１１２ａの対応する欄に格納する処理を行う。
【００２６】
鍵管理部１１５は、鍵管理装置１１０や復号装置１５０のオペレータからの指示に応じて、鍵管理テーブル１１２ａに記憶されている復号鍵を鍵ＩＤとともに、配布する処理を行う。
【００２７】
ここで、本実施形態においては、復号鍵は秘密鍵として扱われるため、復号鍵の配布は、通信部１１６及びネットワーク１７０を介して送信するのではなく、読み書き部１１７に設置された可搬性の記憶媒体に書き込むことにより行うのが望ましい。また、秘密鍵は耐タンパ性を有するデバイス（例えば、ＩＣカード）など、簡単に複製できないように格納しておくことが、セキュリティ上望ましい。
【００２８】
また、鍵管理部１１５は、鍵管理装置１１０や暗号化装置１３０のオペレータからの指示に応じて、鍵管理テーブル１１２ａに記憶されている暗号化鍵を鍵ＩＤとともに、配布する処理を行う。
【００２９】
ここで、本実施形態においては、暗号化鍵は公開鍵として扱われるため、暗号化鍵の配布は、通信部１１６及びネットワーク１７０を介して（Ｗｅｂ上で）送信することで行うが、このような態様に限定されず、例えば、復号鍵と同様に、可搬性の記憶媒体に書き込むことにより行うことも可能である。
【００３０】
なお、このとき、送信する暗号化鍵が鍵管理装置１１０で管理されているものであることを確認することができるように、暗号化鍵に対して公開鍵証明書を発行することが望ましい。
【００３１】
通信部１１６は、ネットワーク１７０を介して、情報の送受信を行うためのインタフェースである。
【００３２】
読み書き部１１７は、記憶媒体に対して情報を読み書きするためのインタフェースである。
【００３３】
以上に記載した鍵管理装置１１０は、例えば、図４（コンピュータ１９０の概略図）に示すような、ＣＰＵ（Central Processing Unit）１９１と、メモリ１９２と、ＨＤＤ（Hard Disk Drive）等の外部記憶装置１９３と、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＩＣ（Integrated Circuit）カード等の可搬性を有する記憶媒体２０４に対して、情報の読み出し、または、書き込みを行う読書装置１９５と、キーボードやマウスなどの入力装置１９６と、ディスプレイなどの出力装置１９７と、通信ネットワークに接続するためのＮＩＣ（Network Interface Card）等の通信装置１９８と、を備えた一般的なコンピュータ１９０で実現できる。
【００３４】
例えば、記憶部１１１は、ＣＰＵ１９１がメモリ１９２又は外部記憶装置１９３を利用することにより実現可能であり、制御部１１３は、外部記憶装置１９３に記憶されている所定のプログラムをメモリ１９２にロードしてＣＰＵ１９１で実行することで実現可能であり、通信部１１６は、ＣＰＵ１９１が通信装置１９８を利用することで実現可能であり、読み書き部１１７は、ＣＰＵ１９１が読書装置１９５を利用することで実現可能である。
【００３５】
この所定のプログラムは、読書装置１９５を介して記憶媒体１９５から、あるいは、通信装置１９８を介してネットワークから、外部記憶装置１９３にダウンロードされ、それから、メモリ１９２上にロードされてＣＰＵ１９１により実行されるようにしてもよい。また、読書装置１９５を介して記憶媒体１９４から、あるいは、通信装置１９８を介してネットワークから、メモリ１９２上に直接ロードされ、ＣＰＵ１９１により実行されるようにしてもよい。
【００３６】
図５は、暗号化装置１３０の概略図である。
【００３７】
図示するように、暗号化装置１３０は、記憶部１３１と、制御部１３４と、通信部１３８と、読み書き部１３９と、入力部１４０と、表示部１４１と、を備える。
【００３８】
記憶部１３１は、鍵管理情報記憶領域１３２と、電子文書記憶領域１３３と、を備える。
【００３９】
鍵管理情報記憶領域１３２には、暗号化を行うための暗号化鍵を特定する情報が記憶される。なお、暗号化鍵は、鍵管理装置１１０から配布されたものを記憶する。
【００４０】
例えば、鍵管理情報記憶領域１３２には、図６（鍵管理テーブル１３２ａ）に示すような鍵管理テーブル１３２ａが記憶される。
【００４１】
鍵管理テーブル１３２ａは、鍵ＩＤ欄１３２ｂと、暗号化鍵欄１３２ｃと、を備える。
【００４２】
鍵ＩＤ欄１３２ｂは、後述する暗号化鍵と、当該暗号化鍵により暗号化された電子データを復号するための復号鍵と、のペアを識別するための識別情報である鍵ＩＤを特定する情報が格納される。なお、本実施形態においては、鍵ＩＤは、鍵管理装置１１０から暗号化鍵とともに配布されたものが本欄に格納される。また、本実施形態においては、鍵ＩＤを特定することにより、後述する部分暗号化データの開示先を特定することができる。
【００４３】
暗号化鍵欄１３２ｃには、電子データを暗号化するための暗号化鍵を特定する情報が格納される。なお、本実施形態においては、暗号化鍵は、鍵管理装置１１０から配布されたものが本欄に格納される。また、本実施形態においては、暗号化鍵が暗号情報となる。
【００４４】
図５に戻り、電子文書記憶領域１３３には、暗号化装置１３０で暗号化する電子文書を記憶する。
【００４５】
制御部１３４は、電子文書処理部１３５と、暗号処理制御部１３６と、暗号化処理部１３７と、を備える。
【００４６】
電子文書処理部１３５は、電子データからなる電子文書を表示部１４１に表示する。
【００４７】
暗号処理制御部１３６は、電子文書処理部１３５が表示部１４１に表示した電子文書において、入力部１４０を介して、暗号化対象領域及び暗号化を行う暗号化鍵の設定を受け付け、これらの設定処理を行う。
【００４８】
ここで、暗号化対象領域の設定処理は、入力部１４０を介して指定された電子文書の暗号化対象領域から、ページ番号及び位置（座標）を特定し、特定された位置にある電子データである暗号化対象データを電子文書から削除するとともに、当該特定された位置に暗号化対象データを認識することができない予め定められた別の電子データ（ここでは、マスク画像）を配置する処理である。
【００４９】
また、暗号化鍵の設定処理は、受け付けた暗号化対象領域毎に、当該暗号化対象領域に含まれる電子データを暗号化する暗号化鍵を鍵管理情報記憶領域１３２に記憶されている暗号化鍵から特定する処理である。
【００５０】
そして、暗号処理制御部１３６は、受け付けた暗号化対象領域に含まれる電子データである暗号化対象データ及び暗号化鍵を暗号化処理部１３７に出力する。
【００５１】
さらに、暗号処理制御部１３６は、暗号化処理部１３７より暗号化領域データを取得すると、電子文書処理部１３５が表示部１４１に表示した電子文書の予め定められた位置に、取得した暗号化領域データを付加することで、暗号化電子文書を生成する。
【００５２】
暗号化処理部１３７は、電子文書処理部１３５が表示部１４１に表示した電子文書において、入力部１４０を介して暗号化の実行指令が入力されると、暗号処理制御部１３６から出力された暗号化対象データを、暗号処理制御部１３６から出力された暗号化鍵で暗号化を行うことで、部分暗号化データを生成する。
【００５３】
そして、暗号化処理部１３７は、生成した部分暗号化データ、部分暗号化データの電子文書におけるページ番号及び位置を特定する位置情報（復元用補助データ）、部分暗号化データ毎に復号するための復号鍵を特定する復号情報（暗号化データ用ヘッダ）、を備える暗号化領域データを生成し、暗号処理制御部１３６に出力する。なお、暗号化領域データの詳細については後述する。
【００５４】
通信部１３８は、ネットワーク１７０を介して、情報の送受信を行うためのインタフェースである。
【００５５】
読み書き部１３９は、記憶媒体に対して情報を読み書きするためのインタフェースである。
【００５６】
入力部１４０は、暗号化装置１３０のオペレータより情報の入力を受け付ける。
【００５７】
表示部１４１は、情報を定められた形式にして表示する。
【００５８】
以上に記載した暗号化装置１３０は、例えば、図４に示すような一般的なコンピュータ１９０で実現できる。
【００５９】
例えば、記憶部１３１は、ＣＰＵ１９１がメモリ１９２又は外部記憶装置１９３を利用することにより実現可能であり、制御部１３４は、外部記憶装置１９３に記憶されている所定のプログラムをメモリ１９２にロードしてＣＰＵ１９１で実行することで実現可能であり、通信部１３８は、ＣＰＵ１９１が通信装置１９８を利用することで実現可能であり、読み書き部１３９は、ＣＰＵ１９１が読書装置１９５を利用することで実現可能であり、入力部１４０は、ＣＰＵ１９１が入力装置１９６を利用することで実現可能であり、表示部１４１は、ＣＰＵ１９１が出力装置１９７を利用することで実現可能である。
【００６０】
この所定のプログラムは、読書装置１９５を介して記憶媒体１９５から、あるいは、通信装置１９８を介してネットワークから、外部記憶装置１９３にダウンロードされ、それから、メモリ１９２上にロードされてＣＰＵ１９１により実行されるようにしてもよい。また、読書装置１９５を介して記憶媒体１９４から、あるいは、通信装置１９８を介してネットワークから、メモリ１９２上に直接ロードされ、ＣＰＵ１９１により実行されるようにしてもよい。
【００６１】
なお、電子文書処理部１３５としては、例えば、Adobe（登録商標）のAcrobat（登録商標）やMicrosoft（登録商標）のWord（登録商標）、Excel（登録商標）、PowerPoint（登録商標）、あるいは、OpenOffice.orgのWriter、Calcなど、一般的なソフトウェアを用いてもよいし、独自の電子文書表示プログラムを用いてもよい。
【００６２】
図７は、復号装置１５０の概略図である。
【００６３】
図示するように、復号装置１５０は、記憶部１５１と、制御部１５４と、通信部１５８と、読み書き部１５９と、入力部１６０と、表示部１６１と、を備える。
【００６４】
記憶部１５１は、鍵管理情報記憶領域１５２と、電子文書記憶領域１５３と、を備える。
【００６５】
鍵管理情報記憶領域１５２には、暗号化された電子データを復号するための復号鍵を特定する情報が記憶される。なお、復号鍵は、鍵管理装置１１０から配布されたものを記憶する。
【００６６】
例えば、鍵管理情報記憶領域１５２には、図８（鍵管理テーブル１５２ａ）に示すような鍵管理テーブル１５２ａが記憶される。
【００６７】
鍵管理テーブル１５２ａは、鍵ＩＤ欄１５２ｂと、復号鍵欄１５２ｃと、を備える。
【００６８】
鍵ＩＤ欄１５２ｂには、電子データを暗号化する暗号化鍵と、当該暗号化鍵により暗号化された電子データを復号するための復号鍵と、のペアを識別するための識別情報である鍵ＩＤを特定する情報が格納される。
【００６９】
なお、本実施形態においては、鍵ＩＤは、鍵管理装置１１０から復号鍵とともに配布されたものが本欄に格納される。
【００７０】
復号鍵欄１５２ｃには、暗号化された電子データを復号するための復号鍵を特定する情報が格納される。なお、本実施形態においては、復号鍵は、鍵管理装置１１０から配布されたものが本欄に格納される。
【００７１】
図７に戻り、電子文書記憶領域１５３には、復号装置１５０で復号する電子文書を記憶する。
【００７２】
制御部１５４は、電子文書処理部１５５と、復号処理制御部１５６と、暗号化処理部１５７と、を備える。
【００７３】
電子文書処理部１５５は、電子データからなる電子文書を表示部１６１に表示する。
【００７４】
復号処理制御部１５６は、電子文書処理部１５５が表示した電子文書において、入力部１６０を介して、復号処理の指示を受け付ける。
【００７５】
そして、復号処理制御部１５６は、復号処理の指示を受け付けると、電子文書処理部１５５が表示した電子文書に付加されている暗号化領域データを取得する。
【００７６】
復号処理制御部１５６は、取得した暗号化領域データの暗号化データ用ヘッダに含まれている復号鍵を特定する情報（ここでは、鍵ＩＤ）から復号鍵を特定して、特定した復号鍵を鍵管理情報記憶領域１５２に記憶されている鍵管理テーブル１５２ａから取得する。
【００７７】
そして、復号処理制御部１５６は、取得した復号鍵と、暗号化領域データに含まれる部分暗号化データと、を復号処理部１５７に出力する。
【００７８】
また、復号処理制御部１５６は、復号処理部１５７が復号した復号データを電子文書の予め定められた位置に格納することで、電子文書の復元を行う。
【００７９】
復号処理部１５７は、復号処理制御部１５６から出力された復号鍵を用いて、部分暗号化データの復号を行い、復号した復号データを復号処理制御部１５６に出力する。
【００８０】
通信部１５８は、ネットワーク１７０を介して、情報の送受信を行うためのインタフェースである。
【００８１】
読み書き部１５９は、記憶媒体に対して情報を読み書きするためのインタフェースである。
【００８２】
入力部１６０は、復号装置１５０のオペレータより情報の入力を受け付ける。
【００８３】
表示部１６１は、情報を定められた形式にして表示する。
【００８４】
以上に記載した復号装置１５０は、例えば、図４に示すような一般的なコンピュータ１９０で実現できる。
【００８５】
例えば、記憶部１５１は、ＣＰＵ１９１がメモリ１９２又は外部記憶装置１９３を利用することにより実現可能であり、制御部１５４は、外部記憶装置１９３に記憶されている所定のプログラムをメモリ１９２にロードしてＣＰＵ１９１で実行することで実現可能であり、通信部１５８は、ＣＰＵ１９１が通信装置１９８を利用することで実現可能であり、読み書き部１５９は、ＣＰＵ１９１が読書装置１９５を利用することで実現可能であり、入力部１６０は、ＣＰＵ１９１が入力装置１９６を利用することで実現可能であり、表示部１６１は、ＣＰＵ１９１が出力装置１９７を利用することで実現可能である。
【００８６】
この所定のプログラムは、読書装置１９５を介して記憶媒体１９５から、あるいは、通信装置１９８を介してネットワークから、外部記憶装置１９３にダウンロードされ、それから、メモリ１９２上にロードされてＣＰＵ１９１により実行されるようにしてもよい。また、読書装置１９５を介して記憶媒体１９４から、あるいは、通信装置１９８を介してネットワークから、メモリ１９２上に直接ロードされ、ＣＰＵ１９１により実行されるようにしてもよい。
【００８７】
なお、電子文書処理部１５５としては、例えば、Adobe（登録商標）のAcrobat（登録商標）やMicrosoft（登録商標）のWord（登録商標）、Excel（登録商標）、PowerPoint（登録商標）、あるいは、OpenOffice.orgのWriter、Calcなど、一般的なソフトウェアを用いてもよいし、独自の電子文書表示プログラムを用いてもよい。
【００８８】
図９は、暗号システム１００での電子文書のデータフローを示すシーケンス図である。
【００８９】
なお、以下のシーケンス図では、復号装置１５０Ａ及び復号装置１５０Ｂを用いて説明しているが、このような例に限定されるわけではなく他の復号装置（例えば、復号装置１５０Ｃ）を用いることも可能である。
【００９０】
まず、暗号化装置１３０は、電子文書を生成し（Ｓ１０）、生成した電子文書から暗号化電子文書を作成する（Ｓ１１）。ここで、暗号化電子文書は、電子文書の一部又は全部を暗号化したものである。
【００９１】
次に、暗号化装置１３０は、ステップＳ１１で作成した暗号化電子文書を復号装置１５０Ａに送信する（Ｓ１２）。
【００９２】
暗号化装置１３０から暗号化電子文書を受信した復号装置１５０Ａでは（Ｓ１３）、暗号化電子文書を復号して、復号した電子文書を表示する（Ｓ１４）。
【００９３】
なお、復号された電子文書については、セキュリティ上の観点から、復号装置１５０Ａ内の記憶部１３１に格納しないこと、または、格納した場合でも表示処理が終了した後には直ちに削除することが望ましい。これは、復号された電子文書から開示された部分の情報が漏洩することを防ぐためである。
【００９４】
次に、復号装置１５０Ａは、ステップＳ１３で受信した暗号化電子文書を復号装置１５０Ｂに送信する（Ｓ１５）。
【００９５】
復号装置１５０Ａから暗号化電子文書を受信した復号装置１５０Ｂでは（Ｓ１６）、暗号化電子文書を復号して、復号した電子文書を表示する（Ｓ１７）。
【００９６】
なお、図９に示すシーケンスでは、復号装置１５０Ａは、復号装置１５０Ｂに暗号化電子文書を送信しているが、このような態様に限定されず、例えば、暗号化装置１３０から、復号装置１５０Ａ及び復号装置１５０Ｂに暗号化電子文書を各々送信するようにしてもよく、また、復号装置１５０Ａの記憶部１３１の電子文書記憶領域１３３に電子文書を記憶して処理を終了してもよい。
【００９７】
図１０は、暗号化装置１３０における暗号化文書の作成処理を示すフローチャートである。
【００９８】
まず、暗号化装置１３０の電子文書処理部１３５は、画像やテキスト等の電子データを含む電子文書を読み込み、表示部１４１に表示する（Ｓ２０）。
【００９９】
次に、電子文書処理部１３５が表示部１４１に表示した電子文書において、暗号処理制御部１３６が、入力部１４０を介して、暗号化対象領域及び暗号化を行う暗号化鍵の設定を受け付け、暗号化対象領域設定処理及び暗号化鍵設定処理を行う（Ｓ２１）。なお、暗号化対象領域設定処理については、図１３を用いて詳述する。
【０１００】
ここで、ステップＳ２１においては、暗号化装置１３０のオペレータは、入力部１４０を介して、電子文書に対し、ひとつ以上の暗号化対象領域の設定を行い、各設定された暗号化対象領域に対して、当該暗号化対象領域を復号できるユーザを決定するために、暗号化に用いる暗号化鍵をひとつ以上設定する。
【０１０１】
また、オペレータからの暗号化対象領域の設定は、電子文書処理部１３５が提供する選択ツールを用いて、マウスやキーボード等の入力部１４０を介して行い、各暗号化対象領域に対する暗号化鍵の設定は、例えば、鍵管理情報記憶領域１３２に記憶されている鍵管理テーブル１３２ａに記憶されている鍵ＩＤを、ファイルダイアログ等を用いて指定することによって設定すればよい。
【０１０２】
次に、暗号化装置１３０の暗号処理制御部１３６は、ステップＳ２１での暗号化対象領域設定処理で取得された暗号化対象データと、暗号化対象領域のページ番号と、暗号化対象領域の位置情報と、を取得して、また、ステップＳ２１で設定された暗号化鍵を鍵管理情報記憶領域１３２から取得して、暗号化処理部１３７に出力し、暗号化処理部１３７は、出力された暗号化対象データを暗号化鍵で暗号化を行い（Ｓ２２）、そして、暗号化処理部１３７は、暗号化した部分暗号化データを用いて、暗号化領域データを生成する（Ｓ２３）。
【０１０３】
ここで、暗号化領域データは、部分暗号化データと、暗号化対象領域のページ番号及び暗号化対象領域の位置情報と、暗号化鍵に対応する復号鍵（開示先）を特定する復号情報と、を備えるものである。
【０１０４】
次に、暗号処理制御部１３６は、ステップＳ２３で生成された暗号化領域データを電子文書の予め定められた位置に付加することで、暗号化電子文書を生成する（Ｓ２４）。
【０１０５】
図１１は、図１０のステップＳ２４で生成される暗号化電子文書１８０の概略図である。
【０１０６】
図示するように、暗号化電子文書は、電子文書１８１と、暗号化領域データ１８２と、を備える。
【０１０７】
暗号化領域データ１８２は、暗号化データ用ヘッダ領域１８３と、暗号化部分領域１８４と、を備える。
【０１０８】
暗号化データ用ヘッダ領域１８３には、暗号化部分領域１８４に格納される部分暗号化データ毎に使用する復号鍵を特定する情報が少なくとも格納される。
【０１０９】
例えば、暗号化データ用ヘッダ領域１８３には、復号鍵を指定する情報（例えば、鍵ＩＤ）毎に、当該復号鍵で復号できる部分暗号化データを識別することのできる識別情報が格納される。
【０１１０】
なお、このほかに暗号化データ用ヘッダ領域１８３には、暗号化に利用するアルゴリズム名等を特定する情報が格納される。
【０１１１】
暗号化部分領域１８４は、復元用補助データ領域１８５と、部分暗号化データ領域１８６と、を備える。
【０１１２】
復元用補助データ領域１８５には、後述する部分暗号化データ領域１８６に格納される部分暗号化データの暗号化前の電子データが配置されていた電子文書における位置を特定する情報が格納される。ここで、本実施形態においては、当該位置を特定する情報として、電子文書におけるページ番号と、当該ページ番号で特定されるページの位置（座標）を特定する情報が復元用補助データ領域１８５に記憶される。
【０１１３】
部分暗号化データ領域１８６は、電子文書において暗号化することを指示された領域に含まれている電子データを暗号化した部分暗号化データが、当該部分暗号化データを一意に識別することのできる識別情報に対応付けられて格納される。
【０１１４】
なお、復元用補助データ領域１８５及び部分暗号化データ領域１８６の組は、暗号化の対象とされた電子データの領域毎に生成される。即ち、暗号化の対象とされた領域が複数ある場合には、復元用補助データ領域１８５及び部分暗号化データ領域１８６の組が複数生成される。
【０１１５】
なお、暗号化領域データ１８２は、例えば、ＰＤＦ（Portable Document Format）、ＯＤＦ（OpenDocument Format）やＯｐｅｎＸＭＬ等では、フォーマットごとに定義された
制御情報（メタ情報）を格納するための領域に付加すればよい。
【０１１６】
図１２は、暗号化領域データの具体例を示す概略図である。図１２では、ＸＭＬを用いて暗号化領域データを表現した場合のデータ表現方法の一例である。
【０１１７】
図１２に示す暗号化領域データ２８２は、暗号化データ用ヘッダ領域２８３と、暗号化部分領域２８４と、を備える。
【０１１８】
図示するように、暗号化領域データ２８２では、この暗号化領域データであることを示すMRES要素から構成されている。
【０１１９】
そして、MRES要素は、暗号化データ用ヘッダ領域２８３に含まれる、共通パラメータを格納するためのMRES_Param要素、アクセス制御情報、及び、鍵暗号化データを格納するためのAccessControlList、を備え、また、暗号化部分領域２８４に含まれる、復元用補助データ及び部分暗号化データを格納するためのEncryptedDataList要素からなる。
【０１２０】
MRES_Param要素には、暗号化装置１３０における暗号化処理部１３７、および、復号装置１５０における復号処理部１５７、で共通して使用されるパラメータを示すためのもので、例えば、暗号化に用いる共通鍵暗号や公開鍵暗号のアルゴリズムを特定する情報を記述する。
【０１２１】
ここでは、暗号化鍵の暗号化アルゴリズムを指定するためのKeyEncryptionAlgorithm要素、暗号化の対象となる部分データを暗号化するための暗号化アルゴリズムを指定するためのDataEncryptionAlgorithm要素を記述する。各要素内のAlgorithm属性は、使用するアルゴリズムの識別子を記述するためのものであり、例えばＡＥＳ−１２８をＣＢＣモードで利用する場合には、「http://www.w3.org/2001/04/xmlenc#aes128-cbc」と記述すれば
よい。
【０１２２】
AccessibleControlList要素は、EncryptedKeyData要素と、ReferenceList要素を有するEncryptedKey要素から構成される。
【０１２３】
EncryptedKeyData要素は、暗号化鍵を特定するための情報を格納するための要素であり、属性値であるkey_idには、復号鍵を特定することのできる鍵ＩＤを記述する。
【０１２４】
ReferenceList要素は、アクセス制御情報を格納するための要素である。ここには、復
号可能な部分暗号化データのリスト（部分暗号化データに割り振られた識別ＩＤのリスト）を記述する。本ＸＭＬを用いた例では、電子文書暗号化データ内の復元用補助データ領域、部分暗号化データ領域の組を保管するEncryptedData要素の属性値であるData_IDを指定することにより、EncryptedKeyData要素で特定される復号鍵を用いて復号できる部分暗号化データのリストを記述する。
【０１２５】
EncryptedDataList要素は、復元用補助データ及び部分暗号化データの組を保管するEncryptedData要素から構成される。
【０１２６】
EncryptedData要素は、LocationInfo要素を用いて、対応する部分暗号化データの復元
位置（電子文書のページ数及び位置（座標））を指定するための情報を記述する。
【０１２７】
CipherValue要素には、部分暗号化データをＢＡＳＥ６４を用いて符号化した文字列を
記述する。
【０１２８】
なお、図１２では暗号化領域データ１８２を表現するためのデータ表現方法の一例であり、要素名などは任意に変更してよい。また、ここでは、データ表現の容易さからＸＭＬを用いて、その実現例の一例を説明したが、暗号化領域データのデータフォーマットは、実際に利用する暗号化電子文書に応じて適したデータフォーマットを利用すればよい。
【０１２９】
図１３は、暗号化対象領域設定処理を示すフローチャートである。
【０１３０】
ここでは、暗号化装置１３０の電子文書処理部１３５は、電子データを含む電子文書を読み込み、表示部１４１に表示しているものとする。
【０１３１】
まず、暗号処理制御部１３６は、入力部１４０を介して、暗号化を行う領域の指定を受け付ける（Ｓ３０）。
【０１３２】
次に、暗号処理制御部１３６は、選択された領域のページ番号及び座標情報を取得する（Ｓ３１）。
【０１３３】
ここで、ステップＳ３０で指定された領域が、オブジェクトの全体である場合には、電子文書のページ番号及び座標情報から、暗号化対象領域として設定されたオブジェクトを指定すればよい。
【０１３４】
また、ステップＳ３０で指定された領域が、オブジェクト全体ではなく、テキストの一部である場合には、オブジェクトの全体を指定する情報に加えて、オブジェクト内の指定された領域のバイト位置（例えば、１バイト目から１０バイト目）といった情報から対象となるテキスト情報を特定すればよい。
【０１３５】
さらに、ステップＳ３０で指定された領域が、オブジェクトの画像データの一部である場合には、オブジェクトの全体を指定する情報に加えて、当該オブジェクトを探索し、得られたオブジェクトの表示座標と入力部１４０を介して指定された領域の座標情報から、オブジェクト上の画像データの領域を特定すればよい。
【０１３６】
次に、暗号処理制御部１３６は、選択された領域に対応する電子文書内の電子データを探索し、該当する電子データを暗号化対象データとして取得する（Ｓ３２）。ここで、取得した暗号化対象データは、例えば、ステップＳ３０で指定された順序において配列として記憶部１３１に記憶して、図１０のステップＳ２２において暗号化処理部１３７が暗号化を行う。
【０１３７】
次に、暗号処理制御部１３６は、ステップＳ３２で取得された暗号化対象データを電子文書から削除する（Ｓ３３）。
【０１３８】
次に、暗号処理制御部１３６は、マスク画像を生成して、ステップＳ３０で指定された領域に配置するよう電子文書内に書込むことで（Ｓ３４）、電子文書処理部１３５は、マスク画像が配置された電子文書を表示部１４１に表示する。
【０１３９】
ここで、ステップＳ３４では、暗号処理制御部１３６は、電子文書を表示した際に、ステップＳ３０で指定された領域が、復号鍵を所持しない場合には閲覧することのできない領域であることがわかるように、復号装置１５０の復号処理部１５７が表示部１６１に電子文書を表示した際に当該領域が黒く表示されるよう、黒のマスク画像からなるオブジェクトの生成を行い、電子文書内に上記のオブジェクトを書込む。
【０１４０】
図１４は、復号装置１５０において、暗号化された暗号化電子文書を復号する処理を示すフローチャートである。
【０１４１】
まず、復号装置１５０の電子文書処理部１５５が、電子文書記憶領域１５３に記憶されている電子文書を表示部１６１に表示する（Ｓ４０）。
【０１４２】
次に、復号処理制御部１５６は、電子文書に暗号化領域データがあるか否かを検出して、ある場合には、復号処理を受け付ける（Ｓ４１）。
【０１４３】
ここで、暗号化領域データがあるか否かは、例えば、電子文書がＰＤＦのようなデータフォーマットであれば、ＰＤＦを構成するオブジェクトを全探索し、オブジェクト内に暗号化領域データに対応する型を持ったオブジェクトがあるか否かで判断すれば良く、また、電子文書がＸＭＬのようなデータフォーマットであれば、暗号化領域データに対応する要素が存在するか否かで判断することができる。
【０１４４】
また、復号処理の受け付けは、例えば、電子文書を表示している画面において、選択メニューとして復号実行用のボタンを用意することによって実現すればよい（なお、暗号化領域データがない場合には、当該ボタンを実行できないように非アクティブにすればよい）。
【０１４５】
次に、復号処理制御部１５６は、電子文書内の暗号化領域データから必要な情報を取得し、使用する復号鍵とともに復号処理部１５７に出力して、復号処理部１５７が復号処理を実行する（Ｓ４２）。
【０１４６】
ここでは、復号処理制御部１５６は、暗号化領域データの暗号化データ用ヘッダ領域から、復号に使用する復号鍵を特定する情報（本実施形態では、鍵ＩＤ）を取得し、当該鍵ＩＤに対応する情報が鍵管理情報記憶領域１５２に記憶されている鍵管理テーブル１５２ａの鍵ＩＤ欄１５２ｂに格納されているか否かを検索し、格納されている場合には、格納されている鍵ＩＤに対応して格納されている部分暗号化データを部分暗号化データ領域から取得する。
【０１４７】
また、復号処理制御部１５６は、暗号化領域データの暗号化データ用ヘッダ領域から復号に使用する復号鍵を特定する情報（本実施形態では、鍵ＩＤ）を取得し、当該鍵ＩＤに対応する復号鍵を鍵管理情報記憶領域１５２に記憶されている鍵管理テーブル１５２ａから取得する。
【０１４８】
そして、復号処理制御部１５６は、取得した部分暗号化データ及び復号鍵を復号処理部１５７に出力して、復号処理部１５７が復号を行う。
【０１４９】
次に、復号処理部１５７が復号した復号データについては、復号処理制御部１５６が電子文書に嵌め込むことにより電子文書を復元して（Ｓ４３）、電子文書処理部１５５は、復元された電子文書を表示部１６１に表示する（Ｓ４４）。ここで、ステップＳ４３の復元処理については、図１５で詳述する。
【０１５０】
なお、復号処理部１５７で、何らかの復号エラーが生じた場合には、復号失敗のメッセージを表示部１６１に表示することが望ましい。
【０１５１】
図１５は、復号された部分データを用いて電子文書を復元する処理を示すフローチャートである。
【０１５２】
まず、復号処理部１５７は、復号した電子データを復号処理制御部１５６に出力する（Ｓ５０）。
【０１５３】
次に、復号処理制御部１５６は、暗号化領域データの復元用補助データ領域に含まれている復元用補助データから、各復号した電子データの電子文書内のページ番号及び座標情報を参照し、復号した電子データを電子文書内に埋め込む（Ｓ５１）。
【０１５４】
なお、オブジェクトの識別子を用いることによってオブジェクトを指定可能な場合には、ステップＳ５１において、復元用補助データとしてオブジェクト識別子を用いて、復号された電子データを電子文書内の復元するオブジェクトとして指定してもよい。
【０１５５】
次に、復号処理制御部１５６は、ステップＳ５１で埋め込まれた電子データに対応するマスク画像を電子文書から削除する（Ｓ５２）。
【０１５６】
なお、復号された電子データに対するマスク画像の削除は、例えば、図１３のステップＳ３４におけるマスク画像の生成時に、復元用補助データ領域に予め対応するマスク画像のページ番号及び座標位置（または、オブジェクトの識別子)を保管しておき、この情報
を元に対応するマスク画像を表すオブジェクトを削除すればよい。
【０１５７】
なお、以上の処理によって復元された電子文書は、例えば、電子文書処理部１５５の保存機能を無効化したり、あるいは、表示された電子文書からのコピーを禁止したりすることが望ましい。これは、復号された暗号化部分データの情報が外部に保管されることによって情報漏えいの原因となることを防止するためである。
【０１５８】
また、暗号化電子文書、および、上記の復元された電子文書は、印刷や編集を禁止する等してもよい。
【０１５９】
また、復元された電子文書の保存を許可する場合にも、例えば、電子文書内の暗号化領域データに残された部分暗号化データ(復号されなかった部分暗号化データ)をすべて削除することが望ましい。
【０１６０】
図１６は、暗号化装置１３０の電子文書処理部１３５及び暗号処理制御部１３６、並びに、復号装置１５０の電子文書処理部１５５及び復号処理制御部１５６が電子文書に対して処理を行う際にそれぞれの表示部１４１、１６１に表示する表示画面１８９の概略図である。
【０１６１】
表示画面１８９には、暗号化領域設定、暗号化、復号処理を実行するための暗号化メニュー指示領域１８９ａが設けられている。
【０１６２】
暗号化メニュー指示領域１８９ａには、暗号化領域の設定を行う領域設定サブメニュー指示領域１８９ｂ、選択された暗号化領域の解除を行う設定解除サブメニュー指示領域１８９ｃ、設定された暗号化領域に対して暗号化鍵の設定を行う暗号化鍵設定サブメニュー指示領域１８９ｄ、暗号化処理を実行する暗号化実行サブメニュー指示領域１８９ｅ、復号処理を行う復号実行サブメニュー指示領域１８９ｆから構成される。
【０１６３】
なお、図中のファイルメニュー指示領域１８９ｇ、あるいは、編集メニュー指示領域１８９ｈは、ファイルの読込みや保存、あるいは、コピーなどを行うための電子文書処理部１３５、１５５にあらかじめ具備された標準的な機能の実行を指示するための領域である。なお、暗号化メニュー指示領域１８９ａを介した機能の実現は、電子文書処理部１３５、１５５に対するプラグイン等で提供すればよい。
【０１６４】
まず、図１６に示す表示画面１８９において暗号化を行う場合の操作例を示す。
【０１６５】
暗号化装置１３０のオペレータは、ファイルメニュー指示領域１８９ｇを利用して、暗号化の対象とする電子文書の読込みを行う。
【０１６６】
次に、オペレータは、入力部１４０を利用して、暗号化領域の設定を行う。具体的には、表示画面１８９において電子文書が表示されている領域で、暗号化を行う領域をポインタ１８９ｉ等で選択し、領域設定サブメニュー指示領域１８９ｂを介して、選択した領域に含まれている電子データを暗号化するよう指示を入力する。このような指示の入力を受けることにより、暗号処理制御部１３６は、選択された領域から電子データを取得するとともに、当該電子データを電子文書上から削除して、削除した領域に元の電子データとは異なる他の電子データ（マスク画像）を埋め込む。
【０１６７】
このようにして、少なくとも１カ所以上暗号化を行う領域を選択した後、暗号化サブメニュー指示領域１８９ｄの暗号化鍵設定サブメニュー指示領域１８９ｄを指定した実行指令を、入力部１４０を介して入力することにより、選択された領域を暗号化するための暗号化鍵の設定を行う。なお、暗号化鍵の設定は、例えば、ファイルダイアログなどを用い、暗号化に利用する暗号化鍵を識別する情報（例えば、暗号化鍵を有するユーザ名）を表示部１４１に表示して、オペレータに選択させるようにすればよい。
【０１６８】
以上のような処理を繰り返すことにより、暗号化装置１３０のオペレータは、複数組の暗号化領域の設定を行うことができ、最後に暗号化実行サブメニュー指示領域１８９ｅを指定した実行指令の入力を、入力部１４０を介して行うことで、選択された領域に対応する電子データが暗号化され、暗号化領域データが生成され、電子文書に付加されることで暗号化電子文書が生成される。
【０１６９】
なお、暗号化実行サブメニュー指示領域を指定した実行指令がなされた場合には、現在表示部１４１に表示されている電子文書を上書きして保存してもよいし、あるいは、ファイルダイアログを表示し、暗号化電子文書を保存する先を指定できるようにしてもよい。
【０１７０】
また、図１６の例では、暗号化する領域を複数選択した後、これらをひとつの暗号化設定領域として処理するようにしている。すなわち、ひとつの暗号化設定領域は、複数の部分領域から構成されている。このように、ひとつの暗号化設定領域が複数の部分領域から構成されている場合でも、個々の暗号化設定領域に対応付けられる復元用補助データを、例えばプログラム上で多次元配列として管理し、暗号化設定領域に含まれる個々の部分領域との対応がわかるようにすればよい。
【０１７１】
具体的には、暗号化を行う際には、これらの暗号化設定領域に含まれる部分領域を予め定めておいた書式（例えば、ＸＭＬなど）に従って連結してひとつの暗号化対象部分データとして処理し、復号時にこの書式を解析することによって復号結果から暗号化設定に含まれる個々の部分領域を得られるようにする、などによって容易に実現できる。
【０１７２】
また、以上のような暗号化領域の設定において、例えば、既に設定された暗号化領域がどの鍵によって暗号化されるかを視認しやすくするために、ポップアップ表示などを利用して、既に設定された暗号化領域を暗号化する暗号化鍵のリストを表示することも可能である。
【０１７３】
次に、図１６に示す表示画面１８９を用いて復号装置１５０が暗号化電子文書を復号する場合の操作例について述べる。
【０１７４】
復号装置１５０のオペレータは、まず、復号対象となる暗号化電子文書を、ファイルメニュー指示領域１８９ｇを利用して読込み、対象となる暗号化電子文書を表示部１６１に表示させる。このとき、復号処理制御部１５６は、電子文書内に暗号化領域データがあるか否かの検索を行い、ある場合にのみ、復号実行サブメニュー指示領域１８９ａをアクティブにするとよい。
【０１７５】
次に、復号装置１５０のオペレータは、入力部１６０を介して、復号実行サブメニュー指示領域１８９ｆを指定した実行指令を入力することで、暗号化電子文書の復号処理を実行させる。
【０１７６】
なお、以上に記載した表示画面１８９では、暗号化と復号をひとつのメニュー上に配置したが、別々に配置にしてもよい。また、図１６の例では、電子文書表示部１３５、１５５が表示部１４１、１６１に表示する表示画面において暗号化用メニュー指示領域１８９ａを追加するようにした例を示した。これは前述のとおり、例えば、Adobe（登録商標）
のAcrobat（登録商標）やMicrosoft（登録商標）のWord（登録商標）などにプラグインとして実装することによって実現する例を示したものであるが、このような例に限定されず、暗号化用、あるいは、復号用に独自の電子文書処理部１３５、１５５を使用してもよい。
【０１７７】
さらに、図１６に示す表示画面１８９では、メニューとして暗号化機能を追加したが、メニューではなく、ツールバー等として暗号化機能を追加するようにしてもよい。
【０１７８】
以上に記載した実施形態においては、設定された暗号化領域から得られた暗号化の対象となる部分データを設定された暗号化鍵で個々に暗号化し、部分暗号化データを生成し、部分暗号化データの復号も、個々の部分暗号化データを復号鍵で復号するようにしている。
【０１７９】
これに対して、図１７に示すような暗号化処理や、図１８に示すような復号処理を行うようにしてもよい。
【０１８０】
図１７は、暗号化装置１３０の暗号化処理部１３７が行う暗号化処理の変形例を示すフローチャートである。
【０１８１】
まず、暗号化処理部１３７は、暗号処理制御部１３６及び入力部１４０を介して選択された一つ以上の暗号化対象データと、この暗号化対象データを暗号化するために設定された暗号化鍵を取得する。
【０１８２】
そして、取得された暗号化対象データは、Ｍ［１］，・・・，Ｍ［ｎ］（ｎは１以上の自然数）の配列として、また、Ｍ［１］，・・・，Ｍ［ｎ］に対応する暗号化鍵は、ｐｋ［１］，・・・，ｐｋ［ｍ］（ｍは１以上の自然数）の配列として、識別される。
【０１８３】
また、以下では暗号化処理で用いるアクセス制御情報ＡＤ［ｉ］（ｉは１以上の自然数）には、暗号化鍵ｐｋ［ｉ］によって復号できる各々の暗号化対象データＭ［ｊ］への参照先を特定するインデックスｊ（ｊ＝１，・・・，ｎ）の集合が格納されている。なお、アクセス制御情報ＡＤ［ｉ］は、暗号化領域及び暗号化鍵の設定結果から、暗号化対象部分データとその領域を暗号化する公開鍵の対応関係から容易に設定できる。
【０１８４】
まず、暗号化処理部１３７は、暗号化対象となる暗号化対象データＭ［ｉ］（ｉ＝１，・・・，ｎ）に対して、共通鍵暗号技術の鍵である部分データ暗号化鍵Ｋ［ｉ］をランダムに生成する（Ｓ６０）。
【０１８５】
次に、暗号化処理部１３７は、暗号化対象である各暗号化対象データＭ［ｉ］を、ステップＳ６０で生成した部分データ暗号化鍵Ｋ［ｉ］を用いて暗号化する（Ｓ６１）。ここで、暗号化したデータを部分暗号化データＤ［ｉ］とする。
【０１８６】
次に、暗号化処理部１３７は、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］を連結したものから、ハッシュ関数を適用してハッシュ値Ｈを算出する（Ｓ６２）。
【０１８７】
次に、暗号化処理部１３７は、アクセス制御情報ＡＤ［ｉ］からインデックス集合（ｊ１，・・・，ｊｕ）（ｕは以上の自然数）を取得、取得したインデックス集合に対応する部分データ暗号化鍵Ｋ［ｊ１］，Ｋ［ｊ２］，・・・，Ｋ［ｊｕ］を取得し、これらを連結する（Ｓ６３）。
【０１８８】
次に、暗号化処理部１３７は、部分データ暗号化鍵Ｋ［ｊ１］，Ｋ［ｊ２］，・・・，Ｋ［ｊｕ］を連結したものに、ステップＳ６２で算出したハッシュ値Ｈを連結し、暗号化鍵（公開鍵）ｐｋ［ｉ］を用いて暗号化する（Ｓ６４）。ここで、暗号化した結果を鍵暗号化データＥ［ｉ］とする。
【０１８９】
次に、暗号化処理部１３７は、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］、鍵暗号化データＥ［１］，・・・，Ｅ［ｍ］、アクセス制御情報ＡＤ［１］，・・・，ＡＤ［ｍ］を暗号化処理の結果として出力する（Ｓ６５）。
【０１９０】
なお、ステップＳ６５における暗号化結果は、暗号処理制御部１３６により、アクセス制御情報ＡＤ［１］，・・・，ＡＤ［ｍ］及び鍵暗号化データＥ［１］，・・・，Ｅ［ｍ］を暗号化データ用ヘッダ領域に格納し、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］を部分暗号化データ領域に格納することで、暗号化領域データが生成される。
【０１９１】
ここで、ステップＳ６２で算出するハッシュ値Ｈの計算は、復号装置１５０の復号処理部１５７において、暗号化データの完全性（復号結果が暗号化時に与えられたデータと一致しているか否か）の検証に用いるためのものであり、以上の例ではハッシュ値を用いているが、必ずしもハッシュ値を用いる必要はなく、メッセージ認証子や電子署名などを用いてもよい。また、以上のように完全性を必要としない場合には、ハッシュ値Ｈの計算を省略してもよい。
【０１９２】
図１８は、図１７に示した暗号化処理によって暗号化された暗号化電子文書を復号する際の処理手順を示すフローチャートである。
【０１９３】
まず、復号処理部１５７は、暗号化電子文書の暗号化領域データのアクセス制御情報ＡＤ［ｊ］から、インデックス集合（ｊ１，・・・，ｊｕ）を取得する（Ｓ７０）。
【０１９４】
次に、復号処理部１５７は、鍵管理情報記憶領域１５２に記憶されている復号鍵ｓｋ［ｊ］を用いて、鍵暗号化データＥ［ｊ］を復号し、部分データ暗号化鍵Ｋ［ｊ１］、Ｋ［ｊ２］、・・・、Ｋ［ｊｕ］、及び、ハッシュ値Ｈを取得する（Ｓ７１）。
【０１９５】
次に、復号処理部１５７は、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］を連結したものから、ハッシュ値Ｈ’を計算し（Ｓ７２）、ステップＳ７１で取得したハッシュ値Ｈと一致するか否かを比較する（Ｓ７３）。
【０１９６】
そして、復号処理部１５７は、Ｈ＝Ｈ’であればステップＳ７４に進み、Ｈ＝Ｈ’でなければ復号失敗として処理を終了する。
【０１９７】
ステップＳ７４では、復号処理部１５７は、ステップＳ７１で取得した部分データ暗号化鍵Ｋ［ｊ１］，Ｋ［ｊ２］，・・・，Ｋ［ｊｕ］を用いて、部分暗号化データＤ［ｊ１］，Ｄ［ｊ２］，・・・，Ｄ［ｊｕ］を復号し、復号結果を出力する。
【０１９８】
なお、以上では説明を簡単にするため、復号鍵ｓｋ［ｊ］がひとつの場合について説明したが、復号鍵が複数与えられた場合でも、以上の処理（ステップＳ７１〜ステップＳ７３）の処理を繰り返すことで、複数の復号鍵に対する復号結果を得ることができる。このとき、二つの異なる秘密鍵ｓｋ［ｊ１］、ｓｋ［ｊ２］で処理を行った場合に、それぞれの処理結果に矛盾が生じた場合（例えば、同一の部分暗号化データＣ［１］を復号した結果が異なっている場合など）には、エラーを出力して処理を終了することが望ましい。
【０１９９】
さらに、以上のステップＳ７３において、比較したハッシュ値が異なっており、復号失敗が出力された場合には、復号処理部１５７は、電子文書を表示部１６１に表示するのではなく、復号失敗というメッセージを表示部１６１に表示することが望ましい。
【０２００】
以上のように、本実施形態によれば、電子文書内にひとつ以上の暗号化領域を設定し、各暗号化領域を複数の暗号化鍵で暗号化する。そして、復号する際には、復号装置において利用可能な復号鍵を用いて暗号化電子文書に対し、復号処理を実施し、暗号化電子文書の一部（利用可能な復号鍵で復号可能な部分）を復元して電子文書を表示する。すなわち、暗号化電子文書は、各々のユーザが利用可能な復号鍵に応じて、生成される電子文書の表示イメージは異なるものとすることが可能となる。
【０２０１】
図１９（鍵管理装置２１０の概略図）は、以上に記載した実施形態において、鍵管理装置における鍵の管理方法を変更した変形例である。
【０２０２】
図示するように、変形例に係る鍵管理装置２１０は、記憶部２１１と、制御部２１３と、通信部１１６と、読み書き部１１７と、を備え、上述の鍵管理装置１１０と比較して記憶部２１１及び制御部２１３が異なっているため、以下、これらの異なっている点に関連する事項について説明する。
【０２０３】
記憶部２１１は、鍵管理情報記憶領域２１２と、ユーザ鍵管理情報記憶領域２１８と、対応情報記憶領域２１９と、を備える。
【０２０４】
鍵管理情報記憶領域２１２には、電子データを暗号化又は復号化するための鍵を特定する情報が格納されている。
【０２０５】
例えば、鍵管理情報記憶領域２１２には、図２０（鍵管理テーブル２１２ａの概略図）に示すような鍵管理テーブル２１２ａが記憶される。
【０２０６】
鍵管理テーブル２１２ａには、電子データを暗号化する暗号化鍵と、当該暗号化鍵により暗号化された電子データを復号するための復号鍵と、を特定する情報が格納される。
【０２０７】
具体的には、鍵管理テーブル２１２ａは、権限ＩＤ欄２１２ｂと、鍵ＩＤ欄２１２ｃと、復号鍵欄２１２ｄと、暗号化鍵欄２１２ｅと、を備える。
【０２０８】
権限ＩＤ欄２１２ｂには、暗号システム１００のユーザに割り振られる権限（資格）を識別する識別情報である権限ＩＤが格納される。
【０２０９】
鍵ＩＤ欄２１２ｃには、復号鍵欄１１２ｄで特定される復号鍵及び暗号化鍵欄１１２ｅで特定される暗号化鍵のペアを識別するための識別情報である鍵ＩＤが格納される。
【０２１０】
復号鍵欄２１２ｄには、後述する暗号化鍵欄２１２ｄで特定される暗号化鍵で暗号化された電子データを復号するための復号鍵が格納される。
【０２１１】
暗号化鍵欄２１２ｅには、電子データを暗号化するための暗号化鍵が格納される。
【０２１２】
図１９に戻り、ユーザ鍵管理情報記憶領域２１８には、鍵管理情報記憶領域２１２に記憶されている鍵管理情報を暗号化又は復号化するための鍵を特定する情報が格納される。
【０２１３】
例えば、ユーザ鍵管理情報記憶領域２１８には、図２１（ユーザ鍵管理テーブル２１８ａの概略図）に示すようなユーザ鍵管理テーブル２１８ａが記憶される。
【０２１４】
ユーザ鍵管理テーブル２１８ａには、鍵情報を暗号化する暗号化鍵と、当該暗号化鍵により暗号化された鍵情報を復号するための復号鍵と、を特定する情報が格納される。
【０２１５】
具体的には、ユーザ鍵管理テーブル２１８ａは、ユーザＩＤ欄２１８ｂと、復号鍵欄２１８ｃと、暗号化鍵欄２１８ｄと、を備える。
【０２１６】
ユーザＩＤ欄２１８ｂには、暗号システム１００のユーザを識別するための識別情報であるユーザＩＤが格納される。
【０２１７】
復号鍵欄２１８ｃには、後述する暗号化鍵欄２１８ｄで特定される暗号化鍵で暗号化された鍵情報を復号するための復号鍵が格納される。
【０２１８】
暗号化鍵欄２１８ｄには、鍵情報を暗号化するための暗号化鍵が格納される。
【０２１９】
対応情報記憶領域２１９には、暗号システム１００のユーザの権限を特定する情報が格納される。
【０２２０】
例えば、対応情報記憶領域２１９には、図２２（対応テーブル２１９ａの概略図）に示すような対応テーブル２１９ａが記憶される。
【０２２１】
図示するように、対応テーブル２１９ａには、向かって左端の列２１９ａにユーザＩＤが格納されており、上端の行２１９ｃに暗号システム１００で設定されている権限ＩＤが格納されており、これらのユーザＩＤに対応する行と権限ＩＤに対応する列との交点に位置する欄に「○」の記号を格納することにより、当該ユーザＩＤで特定されるユーザに、当該権限ＩＤで特定される権限が与えられていることを示している。
【０２２２】
制御部２１３は、鍵生成部２１４と、鍵管理部２１５と、を備える。
【０２２３】
鍵生成部２１４は、鍵管理装置１１０や復号装置１５０のオペレータからの指示に応じて、各々の権限毎に暗号化鍵と復号鍵のペアを生成するとともに、これらのペアを一意に識別するための鍵ＩＤを生成して、鍵管理テーブル２１２ａの対応する欄に格納する処理を行う。
【０２２４】
また、鍵生成部２１４は、鍵管理装置１１０や復号装置１５０のオペレータからの指示に応じて、各々のユーザ毎に暗号化鍵と復号鍵のペアを生成し、ユーザ鍵管理テーブル２１８ａの対応する欄に格納する処理を行う。
【０２２５】
そして、鍵管理部１１５は、鍵管理装置１１０や復号装置１５０のオペレータからの指示に応じて、各ユーザと各権限との対応関係を対応テーブル２１９ａに格納する処理を行う。
【０２２６】
鍵管理部１１５は、鍵管理装置１１０や復号装置１５０のオペレータからユーザＩＤを特定した指示に応じて、ユーザ鍵管理テーブル２１８ａに記憶されている復号鍵を配布する処理を行う。
【０２２７】
ここで、本実施形態においては、復号鍵は秘密鍵として扱われるため、復号鍵の配布は、通信部１１６及びネットワーク１７０を介して送信するのではなく、読み書き部１１７に読み書き自在に設置された記憶媒体（例えば、ＩＣカード）に書き込むことにより行うのが望ましい。
【０２２８】
また、鍵管理部２１５は、鍵管理装置１１０や復号装置１５０のオペレータからユーザＩＤを特定した指示に応じて、当該ユーザＩＤに対応する権限を対応テーブル２１９ａで特定し、特定した権限に対応する復号鍵を鍵管理テーブル１１２ａより取得して、取得した復号鍵を鍵ＩＤとともに、配布する処理を行う。
【０２２９】
但し、復号鍵の配布の際には、ユーザＩＤに対応する暗号化鍵をユーザ鍵管理テーブル２１８ａより取得して、この取得した暗号化鍵で権限に対応する復号鍵を暗号化する。
【０２３０】
さらに、鍵管理部２１５は、鍵管理装置１１０や復号装置１５０のオペレータからユーザＩＤを特定した指示に応じて、当該ユーザＩＤに対応する権限を対応テーブル２１９ａで特定し、特定した権限に対応する暗号化鍵を鍵管理テーブル１１２ａより取得して、取得した暗号化鍵を鍵ＩＤとともに、配布する処理を行う。
【０２３１】
但し、暗号化鍵の配布の際には、ユーザＩＤに対応する暗号化鍵をユーザ鍵管理テーブル２１８ａより取得して、この取得した暗号化鍵で権限に対応する暗号化鍵を暗号化する。
【０２３２】
例えば、鍵管理部２１５は、ユーザに権限に対応した鍵を配布する場合には、対応テーブル２１９ａに示されているようにユーザαに対して、権限ａ及び権限ｃを割り当てている場合には、対応する権限ａ及び権限ｃに対応する復号鍵Ａ及び復号鍵Ｃを鍵管理テーブル２１２ｅより取得し、また、ユーザαの暗号化鍵αをユーザ鍵管理テーブル２１８ａより取得して、復号鍵Ａ及び復号鍵Ｃを暗号化鍵αで暗号化して、ネットワーク１７０を介して、復号装置１５０に送信する。
【０２３３】
復号装置１５０では、既に配布されているユーザαの復号鍵αを用いて、鍵管理装置２１０から送信されてきた情報を復号して、復号鍵Ａ及び復号鍵Ｃを復号して、利用する。なお、秘密鍵及び秘密鍵Ｃの復号は、復号鍵αを記憶して配布されたＩＣカード内で行うことが、セキュリティ上の観点からは望ましい。
【０２３４】
なお、ユーザに権限毎に割当てられた復号鍵を送付する際にも、ＩＣカード内の個人鍵を利用した認証など、配布を受けるユーザの認証を行なうことが望ましい。
【０２３５】
以上のようなネットワーク１７０を介してユーザに復号鍵の配布をすることによって、ＩＣカードの送付や回収といった物理的な媒体を直接渡す手間が少なくなる。また、ユーザには、各ユーザ固有のＩＣカードを一枚発行すればよいだけであるため、権限の変化が生じた場合でも、ＩＣカード内の権限鍵の書き換えを行うだけでよいため、ＩＣカードの再発行や回収といった管理者の手間を軽減できる。
【０２３６】
以上に記載した実施形態においては、暗号化部分データは暗号化電子文書内の予め定められた位置に記述したが、このような態様に限定されない。例えば、暗号化領域データを電子文書とは別のファイルとして作成してもよく、この場合には、暗号化電子文書と暗号化領域データを対応させておくことで、暗号化電子文書を復号する際には、当該暗号化電子文書に対応付けられているファイルを参照することにより、復号及び復元が可能となる。
【０２３７】
また、以上に記載した実施形態においては、電子文書における暗号化対象領域の選択をページ番号と、当該ページ番号で特定されるページにおける座標情報と、で特定したが、このような態様に限定されない。例えば、電子文書を構成するオブジェクトに識別子が割り当てられており、当該識別子を指定することでオブジェクトを指定することが可能な場合には、ページ番号及び座標情報の代わりに、オブジェクトの識別子を復元用補助データとしてもよい。このオブジェクトを指定する方法は、復号時にデータの復元を行う際に、復元対象となったオブジェクトを指定するために必要な情報あり、電子文書内のオブジェクトを一意に指定できれば、このような識別子を用いなくてもよい（たとえば、電子文書がＸＭＬで記述されている場合には、Ｘｐａｔｈ等を用いてもよい）。
【０２３８】
また、以上に記載した実施形態においては、電子文書から暗号化の対象となっている部分データを削除しているが、例えば、代替テキストやダミーデータなどによって、データの置き換えを行ってもよい。具体的には、暗号化設定領域がテキストからなり、オブジェクト内のテキストの一部を指定している場合には、スペースや“＊”などの文字で置き換えるようにしてもよい。また、暗号化設定領域が画像データの一部を指定しているような場合には、データの削除を行うのではなく、黒などのイメージデータで置換することが望ましい。
【０２３９】
また、以上の処理では、暗号化対象となっている部分データを削除した後、黒のマスク画像を嵌め込んでいるが、例えば別の色のマスク画像や「墨塗り済」と書かれたイメージ画像を嵌め込んでもよいし、或いは、マスク画像の嵌め込みを行わなくてもよい。或いは、暗号化された領域ごとにマスク画像の色を変えることによって、復号できる復号鍵が同一の領域が区別できるようにしてもよい。
【０２４０】
また、以上に記載した実施形態においては、暗号化設定領域をひとつ設定するごとに、マスク画像を嵌め込む、いわゆる墨塗り処理を行っているが、このような態様に限定されるわけではなく、例えば、記憶部１３１に、設定された暗号化設定領域に一時的に記憶しておき、暗号化を実行する際等に、記憶しておいた暗号化設定領域に対して、まとめて墨塗り処理を行ってもよい。
【０２４１】
また、本実施例では、暗号化領域を設定した直後に暗号化処理を行っているが、例えば、復元用補助データをファイルとして書き出すなどして、暗号化設定領域と暗号化処理を別々に行ってもよい。このようにすることによって、例えば同一の書式を持つ複数の電子文書に対して、別々に暗号化設定領域を設定する必要が無くなる。
【０２４２】
なお、墨塗り処理におけるデータの削除(あるいは、置換処理)において、オブジェクト内のデータが、たとえばＬＺＷ(画像の場合はＪＰＥＧ、ＰＮＧ)等を利用して圧縮して保管されている場合には、一度圧縮されたオブジェクト内のデータを展開して上記の処理を実施し、再度圧縮処理を施し、オブジェクトの再生成を行えばよい。
【０２４３】
さらに、復号処理の実行に当たっては、図１４のステップＳ４２の復号処理の実行に先立ち、与えられた復号に利用する秘密鍵によって復号可能な領域を復元用補助データより特定して、例えば、点滅させる、あるいは、色を変える、点線で囲う、等することによって、予め復号可能な領域をユーザに示すようにしてもよい。
【０２４４】
また、図１４のステップＳ４２の復号処理の実行後のステップＳ４４における電子文書の表示にあたっては、与えられた秘密鍵で復号された領域を、例えば、点滅させる、あるいは、色を変える、点線で囲う、などすることによって、明示するようにしてもよい。
【０２４５】
また、以上に記載した実施形態においては、公開鍵システムを採用し、公開鍵を暗号化鍵として利用し、秘密鍵を復号鍵として利用しているが、このような態様に限定されず、例えば、共通鍵技術における共通鍵を暗号化鍵及び復号鍵として利用することも可能である。共通鍵を利用する場合には、暗号化鍵及び復号鍵を、例えばＩＣカード等の耐タンパ性を有するデバイスに格納して配布するなど、秘密鍵をユーザに直接確実に配布すると共に、容易に複製できないようにしておくことが、セキュリティ上の観点からは望ましい。
【０２４６】
また、上記の変形例では、ＩＣカードへ秘密鍵を格納する場合について述べたが、ＩＣカードに限らず復号装置１５０内の鍵管理情報記憶領域１５２に対して行ってもよい。例えば、秘密鍵を復号装置１５０の鍵管理情報記憶領域１５２に格納しておき、上記の暗号化通信による復号鍵の配布を、図１４のステップＳ４２の復号処理の実行時（実行前）に行うようにしてもよい。
【０２４７】
或いは、暗号化鍵、復号鍵は、図１０のステップＳ２２における暗号化処理の実行時（実行前）、図１４のステップＳ４２における復号処理の実行時（実行前）に、鍵管理装置１１０の鍵管理情報記憶領域１１２から取得するようにしてもよい。この場合、暗号化鍵、復号鍵は、それぞれ、図１０のステップＳ２２における暗号化処理の実行時（実行前）、図１４のステップＳ４２における復号処理の実行時（実行前）に、一時的に、暗号化装置１３０の鍵管理情報記憶領域１３２、および、復号装置１５０の鍵管理情報記憶領域１５２、に格納し、図１０のステップＳ２２における暗号化処理の実行時（実行後）、図１４のステップＳ４２における復号処理実行時（実行後）に、取得した暗号化鍵、復号鍵を削除するようにしてもよい。
【０２４８】
なお、このような場合、前述のとおり、復号鍵はユーザ、あるいは、ユーザの所有する権限（所属するグループ）に応じて、電子文書内の暗号化された領域を復号及び開示する際の重要な情報であるため、鍵管理装置１１０において、復号装置を利用するユーザに応じてアクセス制御を行うなど、不要な復号鍵が復号時に取得されないようにすることが望ましい。
【０２４９】
なお、本実施形態において述べたように公開鍵システムを採用することによって、電子文書を暗号化するユーザは公開情報である暗号化鍵のみから電子文書の暗号化を行うことができ、あらかじめ暗号化するユーザと復号するユーザとで情報を共有する必要が無いという利点がある。
＜第二の実施形態＞
次に、第二の実施形態について説明する。
【０２５０】
第二の実施形態においては、第一の実施形態と比較して、鍵管理装置３１０、暗号化装置３３０及び復号装置３５０が異なっているため、以下、これらに関連する事項について説明する。
【０２５１】
なお、本実施形態においても、第一の実施形態と同様に、鍵管理装置３１０、暗号化装置３３０及び復号装置３５０は、ネットワーク１７０を介して相互に情報を送受信することができるようにされている。
【０２５２】
図２３は、第二の実施形態における鍵管理装置３１０の概略図である。
【０２５３】
図示するように、鍵管理装置３１０は、記憶部３１１と、制御部３１３と、通信部１１６と、読み書き部１１７と、を備え、第一の実施形態と比較して、記憶部３１１及び制御部３１３が異なっているため、以下これらに関連する事項について説明する。
【０２５４】
記憶部３１１は、パスワード管理情報記憶領域３１２を備える。
【０２５５】
パスワード管理情報記憶領域３１２には、電子データを暗号化又は復号する際に使用するパスワードを特定する情報が記憶される。
【０２５６】
例えば、パスワード管理情報記憶領域３１２には、図２４（パスワード管理テーブル３１２ａの概略図）に示すようなパスワード管理テーブル３１２ａが記憶される。
【０２５７】
パスワード管理テーブル３１２ａには、電子データを暗号化又は復号するユーザと、当該ユーザが利用するパスワードと、を特定する情報が格納される。
【０２５８】
具体的には、パスワード管理テーブル３１２ａは、ユーザＩＤ欄３１２ｂと、パスワード欄３１２ｃと、を備える。
【０２５９】
ユーザＩＤ欄３１２ｂには、暗号化された電子データを復号するユーザを識別するための識別情報であるユーザＩＤを特定する情報が格納される。
【０２６０】
ここで、ユーザＩＤは、ユーザを特定するための氏名やメールアドレス等を用いればよい。また、ユーザＩＤとして、ユーザ個人を特定するための識別情報だけでなく、権限や役割、または、メーリングリストなど、一人以上のユーザが利用する識別情報を用いてもよい。
【０２６１】
パスワード欄３１２ｃには、ユーザＩＤ欄で特定されるユーザが使用するパスワードを特定する情報が格納される。
【０２６２】
なお、第二の実施形態ではパスワードを用いて暗号化されたデータの復号を行うので、鍵管理装置３１０（特に、パスワード欄３１２ｃ）を利用できるユーザを、アクセス制御を用いて制限する等、パスワードが不適切なユーザに開示されないようにすることが望ましい。
【０２６３】
図２３に戻り、制御部３１３は、パスワード生成部３１４と、パスワード管理部３１５と、を備える。
【０２６４】
パスワード生成部３１４は、鍵管理装置３１０又は復号装置３５０のオペレータからの指示に応じて、パスワードを生成する。
【０２６５】
パスワードは、ランダムな文字列を使用すればよいが、このような態様に限定されない。例えば、鍵管理装置３１０又は復号装置３５０のオペレータから、任意の文字列の入力を受け付けてもよい。
【０２６６】
パスワード管理部３１５は、鍵管理装置３１０又は復号装置３５０のオペレータからの指示に応じて、パスワード管理テーブル３１２ａに記憶されているパスワードを、ユーザＩＤとともに、配布する処理を行う。
【０２６７】
ここで、本実施形態においては、パスワードを用いて復号を行うため、パスワードの配布は、通信部１１６及びネットワーク１７０を介して送信するのではなく、読み書き部１１７に設置された可搬性の記憶媒体に書き込むことにより行うのが望ましい。また、秘密鍵は耐タンパ性を有するデバイス（例えば、ＩＣカード）など、簡単に複製できないように格納しておくことが、セキュリティ上望ましい。
【０２６８】
図２５は、本発明の第二の実施形態に係る暗号化装置３３０の概略図である。
【０２６９】
図示するように、暗号化装置３３０は、記憶部３３１と、制御部３３４と、通信部１３８と、読み書き部１３９と、入力部１４０と、表示部１４１と、を備え、第一の実施形態と比較して、記憶部３３１及び制御部３３４が異なるため、以下これらに関連する事項について説明する。
【０２７０】
記憶部３３１は、パスワード管理情報記憶領域３３２と、電子文書記憶領域１３３と、を備え、第一の実施形態と比較して、パスワード管理情報記憶領域３３２が異なっているため、以下これに関連する事項について説明する。
【０２７１】
パスワード管理情報記憶領域３３２には、暗号化を行うために使用するパスワードを特定する情報が記憶される。なお、パスワードは、鍵管理装置３１０から配布されたものを記憶する。
【０２７２】
例えば、パスワード管理情報記憶領域３３２には、図２６（パスワード管理テーブル３３２ａの概略図）に示すようなパスワード管理テーブル３３２ａが記憶される。
【０２７３】
パスワード管理テーブル３３２ａは、ユーザＩＤ欄３３２ｂと、パスワード欄３３２ｃと、を備える。
【０２７４】
ユーザＩＤ欄３３２ｂは、暗号化された電子データを復号するユーザを特定する識別情報であるユーザＩＤを特定する情報が格納される。なお、本実施形態においては、ユーザＩＤは、鍵管理装置３１０からパスワードとともに配布されたものが本欄に格納される。また、本実施形態においては、ユーザＩＤを特定することにより、部分暗号化データの開示先を特定することができる。
【０２７５】
パスワード欄３３２ｃには、ユーザＩＤ欄３３２ｂで特定されるユーザが使用するパスワードを特定する情報が格納される。なお、本実施形態においては、パスワードは、鍵管理装置３１０から配布されたものが本欄に格納される。また、本実施形態においては、パスワードが暗号情報となる。
【０２７６】
図２５に戻り、制御部３３４は、電子文書処理部１３５と、暗号処理制御部３３６と、暗号化処理部３３７と、を備え、第一の実施形態と比較して、暗号処理制御部３３６及び暗号化処理部３３７が異なっているため、以下これらに関連する事項について説明する。
【０２７７】
暗号処理制御部３３６は、電子文書処理部１３５が表示部１４１に表示した電子文書において、入力部１４０を介して、暗号化対象領域及び暗号化された電子データの復号を許可するユーザの設定を受け付け、これらの設定処理を行う。
【０２７８】
ここで、暗号化対象領域の設定処理は、入力部１４０を介して指定された電子文書の暗号化対象領域から、ページ番号及び位置（座標）を特定し、特定された位置にある電子データである暗号化対象データを電子文書から削除するとともに、当該特定された位置に暗号化対象データを認識することができない予め定められた別の電子データ（ここでは、マスク画像）を配置する処理である。
【０２７９】
また、復号を許可するユーザの設定処理は、入力部１４０を介して入力を受け付けた暗号化対象領域毎に、当該暗号化対象領域に含まれる電子データを復号することのできるユーザを、パスワード管理情報記憶領域３３２に記憶されているユーザＩＤから特定する処理である。
【０２８０】
そして、暗号処理制御部３３６は、受け付けた暗号化対象領域に含まれる電子データである暗号化対象データ、当該暗号化対象データの閲覧を許可するユーザＩＤを暗号化処理部３３７に出力する。
【０２８１】
さらに、暗号処理制御部３３６は、暗号化処理部３３７より暗号化領域データを取得すると、電子文書処理部１３５が表示部１４１に表示した電子文書の予め定められた位置に、取得した暗号化領域データを付加することで、暗号化電子文書を生成する。
【０２８２】
暗号化処理部３３７は、電子文書処理部１３５が表示部１４１に表示した電子文書において、入力部１４０を介して暗号化の実行指令が入力されると、暗号処理制御部３３６から出力された暗号化対象データを、暗号処理制御部３３６から出力されたユーザＩＤよりパスワート管理テーブル３３２ａにおいてパスワードを特定して、特定したパスワードを用いて暗号化を行うことで、部分暗号化データを生成する。
【０２８３】
そして、暗号化処理部３３７は、生成した部分暗号化データ、部分暗号化データの電子文書におけるページ番号及び位置を特定する位置情報（復元用補助データ）、部分暗号化データ毎に復号を許可するユーザ（開示先）を特定するユーザＩＤを特定する復号情報（暗号化データ用ヘッダ）、を備える暗号化領域データを生成し、暗号処理制御部３３６に出力する。
【０２８４】
例えば、本実施形態においては、図１２に示す暗号化領域データ２８２において、暗号化データ用ヘッダ領域２８３のEncryptedKeyData要素に、key_id属性の替わりに、user_idの属性を設けて、この属性値にユーザＩＤを格納すればよい。なお、ユーザＩＤとしてメールアドレスを用いる場合には、user_idの属性値にメールアドレスを格納してもよく、また、user_idの属性名をmail等のように適宜変更することも可能である。
【０２８５】
図２７は、本発明の第二の実施形態に係る復号装置３５０の概略図である。
【０２８６】
図示するように、復号装置３５０は、記憶部３５１と、制御部３５４と、通信部１５８と、読み書き部１５９と、入力部１６０と、表示部１６１と、を備え、第一の実施形態と比較して、記憶部３５１及び制御部３５４が異なっているため、以下これらに関連する事項について説明する。
【０２８７】
記憶部３５１は、パスワード管理情報記憶領域３５２と、電子文書記憶領域１５３と、を備え、第一の実施形態と比較して、パスワード管理情報記憶領域３５２が異なっているため、以下これに関連する事項について説明する。
【０２８８】
パスワード管理情報記憶領域３５２には、暗号化された電子データを復号するために使用するパスワードを特定する情報が記憶される。なお、パスワードは、鍵管理装置３１０から配布されたものを記憶する。
【０２８９】
例えば、パスワード管理情報記憶領域３５２には、図２８（パスワード管理テーブル３５２ａの概略図）に示すようなパスワード管理テーブル３５２ａが記憶される。
【０２９０】
パスワード管理テーブル３５２ａは、ユーザＩＤ欄３５２ｂと、パスワード欄３５２ｃと、を備える。
【０２９１】
ユーザＩＤ欄３５２ｂは、暗号化された電子データを復号するユーザを特定する識別情報であるユーザＩＤを特定する情報が格納される。なお、本実施形態においては、ユーザＩＤは、鍵管理装置３１０からパスワードとともに配布されたものが本欄に格納される。
【０２９２】
パスワード欄３５２ｃには、ユーザＩＤ欄３５２ｂで特定されるユーザが使用するパスワードを特定する情報が格納される。なお、本実施形態においては、パスワードは、鍵管理装置３１０から配布されたものが本欄に格納される。
【０２９３】
図２７に戻り、制御部３５４は、電子文書処理部１５５と、復号処理制御部３５６と、暗号化処理部３５７と、を備え、第一の実施形態と比較して、復号処理制御部３５６及び復号処理部３５７が異なっているため、以下これらに関連する事項について説明する。
【０２９４】
復号処理制御部３５６は、電子文書処理部１５５が表示した電子文書において、入力部１６０を介して、復号処理の指示を受け付ける。
【０２９５】
そして、復号処理制御部３５６は、復号処理の指示を受け付けると、電子文書処理部１５５が表示した電子文書に付加されている暗号化領域データを取得する。
【０２９６】
復号処理制御部３５６は、取得した暗号化領域データの暗号化データ用ヘッダに含まれているユーザを特定する情報（ここでは、ユーザＩＤ）からパスワードを、パスワード管理情報記憶領域３５２に記憶されているパスワード管理テーブル３５２ａより取得する。
【０２９７】
そして、復号処理制御部３５６は、取得したパスワードと、暗号化領域データに含まれる部分暗号化データと、を復号処理部３５７に出力する。
【０２９８】
また、復号処理制御部３５６は、復号処理部３５７が復号した復号データを電子文書の予め定められた位置に格納することで、電子文書の復元を行う。
【０２９９】
復号処理部３５７は、復号処理制御部３５６から出力されたパスワードを用いて、部分暗号化データの復号を行い、復号した復号データを復号処理制御部３５６に出力する。
【０３００】
図２９は、暗号化装置３３０における暗号化文書の作成処理を示すフローチャートである。
【０３０１】
まず、暗号化装置３３０の電子文書処理部１３５は、画像やテキスト等の電子データを含む電子文書を読み込み、表示部１４１に表示する（Ｓ８０）。
【０３０２】
次に、電子文書処理部１３５が表示部１４１に表示した電子文書において、暗号処理制御部３３６が、入力部１４０を介して、暗号化対象領域及びユーザＩＤの設定を受け付け、暗号化対象領域設定処理及びユーザＩＤ設定処理を行う（Ｓ８１）。なお、暗号化対象領域設定処理については、図１３と同様であるため説明を省略する。
【０３０３】
ここで、ステップＳ８１においては、暗号化装置３３０のオペレータは、入力部１４０を介して、電子文書に対し、ひとつ以上の暗号化対象領域の設定を行い、各設定された暗号化対象領域に対して、当該暗号化対象領域を復号できるユーザを決定するために、ユーザＩＤをひとつ以上設定する。
【０３０４】
また、オペレータからの暗号化対象領域の設定は、電子文書処理部１３５が提供する選択ツールを用いて、マウスやキーボード等の入力部１４０を介して行い、各暗号化対象領域に対するユーザＩＤの設定は、例えば、パスワード管理情報記憶領域３３２に記憶されているパスワード管理テーブル３３２ａに記憶されているユーザＩＤを、ファイルダイアログ等を用いて指定することによって設定すればよい。
【０３０５】
次に、暗号化装置３３０の暗号処理制御部３３６は、ステップＳ８１での暗号化対象領域設定処理で取得された暗号化対象データと、暗号化対象領域のページ番号と、暗号化対象領域の位置情報と、を取得して、また、ステップＳ８１で設定されたユーザＩＤをパスワード管理情報記憶領域３３２から取得して、暗号化処理部３３７に出力し、暗号化処理部３３７は、出力された暗号化対象データの暗号化を行う（Ｓ８２）。暗号化処理については、図３０を用いて詳細に説明する。
【０３０６】
そして、暗号化処理部３３７は、暗号化した部分暗号化データを用いて、暗号化領域データを生成する（Ｓ８３）。
【０３０７】
ここで、暗号化領域データは、部分暗号化データと、暗号化対象領域のページ番号と、暗号化対象領域の位置情報と、ユーザＩＤを特定する情報と、を備えるものである。
【０３０８】
次に、暗号処理制御部３３６は、ステップＳ８３で生成された暗号化領域データを電子文書の予め定められた位置に付加することで、暗号化電子文書を生成する（Ｓ８４）。
【０３０９】
図３０は、暗号化装置３３０の暗号化処理部３３７が行う暗号化処理を示すフローチャートである。
【０３１０】
まず、暗号化処理部３３７は、暗号処理制御部３３６及び入力部１４０を介して選択された一つ以上の暗号化対象データと、この暗号化対象データを暗号化するために設定されたユーザＩＤを取得する。
【０３１１】
そして、取得された暗号化対象データは、Ｍ［１］，・・・，Ｍ［ｎ］（ｎは１以上の自然数）の配列として識別される。
【０３１２】
また、以下では暗号化処理で用いるアクセス制御情報ＡＤ［ｉ］（ｉは１以上の自然数）には、同じユーザＩＤによって復号できる各々の暗号化対象データＭ［ｊ］への参照先を特定するインデックスｊ（ｊ＝１，・・・，ｎ）の集合が格納されている。
【０３１３】
まず、暗号化処理部３３７は、暗号化対象となる暗号化対象データＭ［ｉ］（ｉ＝１，・・・，ｎ）に対して、共通鍵暗号技術の鍵である部分データ暗号化鍵Ｋ［ｉ］をランダムに生成する（Ｓ９０）。
【０３１４】
次に、暗号化処理部３３７は、暗号化対象である各暗号化対象データＭ［ｉ］を、ステップＳ９０で生成した部分データ暗号化鍵Ｋ［ｉ］を用いて暗号化する（Ｓ９１）。ここで、暗号化したデータを部分暗号化データＤ［ｉ］とする。
【０３１５】
次に、暗号化処理部３３７は、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］を連結したものから、ハッシュ関数を適用してハッシュ値Ｈを算出する（Ｓ９２）。
【０３１６】
次に、暗号化処理部３３７は、アクセス制御情報ＡＤ［ｉ］からインデックス集合（ｊ１，・・・，ｊｕ）（ｕは以上の自然数）を取得、取得したインデックス集合に対応する部分データ暗号化鍵Ｋ［ｊ１］，Ｋ［ｊ２］，・・・，Ｋ［ｊｕ］を取得し、これらを連結する（Ｓ９３）。
【０３１７】
次に、暗号化処理部３３７は、乱数Ｒをランダムに生成する（Ｓ９４）。
【０３１８】
そして、暗号化処理部３３７は、ステップＳ９４で生成した乱数Ｒを、図２９のステップＳ８１で取得したユーザＩＤに対応するパスワードと連結し、ハッシュ関数を用いてハッシュ値（例えば、２５６ビット）を生成し、得られたハッシュ値を二つに分割し、一方（例えば、上位１２８ビット）を鍵暗号化データ生成鍵とし、もう一方（例えば、下位１２８ビット）を鍵暗号化データ検査鍵とする（Ｓ９５）。
【０３１９】
次に、暗号化処理部３３７は、生成された鍵暗号化データ生成鍵を用いて、ステップＳ９３で取得した部分データ暗号化鍵Ｋ［ｊ１］，・・・，Ｋ［ｊｕ］を共通鍵暗号技術による暗号化を行う。この（暗号化の結果得られた暗号文を鍵暗号化データ本体ＥＢ［ｉ］と呼ぶ）。
【０３２０】
さらに、暗号化処理部３３７は、鍵暗号化データ検査鍵を用いて、鍵暗号化データ本体ＥＢ［ｉ］のＭＡＣ値を生成する（得られたＭＡＣ値を鍵暗号化データ検査部ＥＣ［ｉ］と呼ぶ）。
【０３２１】
そして、暗号化処理部３３７は、鍵暗号化データ本体ＥＢ［ｉ］、鍵暗号化データ検査部ＥＣ［ｉ］と、ステップＳ９４で生成した乱数Ｒと、を連結して鍵暗号化データＥ［ｉ］を生成する（Ｓ９６）。
【０３２２】
なお、ハッシュ関数には、ＭＤ５やＳＨＡ１など、暗号化にはＡＥＳやＤＥＳなど、また、ＭＡＣ値の生成にはＨＭＡＣなど、任意のハッシュ関数、暗号化関数、ＭＡＣ関数を用いればよい。また、得られたハッシュ値が、鍵暗号化データ生成鍵、鍵暗号化データ検査鍵に必要なデータサイズより小さい場合には、得られたハッシュ値を再びハッシュ関数に通すなどして、必要なデータサイズ以上のハッシュ値を生成し、余剰分を切り捨てればよい。
【０３２３】
なお、連結したデータは、復号時に分割可能なように、例えばＡＳＮ．１やＸＭＬなどのフォーマットを用いて連結すればよい。或いは、予め、鍵暗号化データ検査部ＥＣ［ｉ］、乱数Ｒのデータサイズ、格納順序をシステムで共通して使用するパラメータとして定めておき、復号時にはこのパラメータに沿って、必要なデータサイズ、順序で鍵暗号化データ検査部ＥＣ［ｉ］、乱数Ｒを取り出すようにすればよい。
【０３２４】
次に、暗号化処理部３３７は、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］、鍵暗号化データＥ［１］，・・・，Ｅ［ｍ］、アクセス制御情報ＡＤ［１］，・・・，ＡＤ［ｍ］を暗号化処理の結果として出力する（Ｓ９７）。
【０３２５】
なお、ステップＳ９７における暗号化結果は、暗号処理制御部３３６により、アクセス制御情報ＡＤ［１］，・・・，ＡＤ［ｍ］及び鍵暗号化データＥ［１］，・・・，Ｅ［ｍ］を暗号化データ用ヘッダ領域に格納し、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］を部分暗号化データ領域に格納することで、暗号化領域データが生成される。
【０３２６】
図３０に示すフローチャートでは、ハッシュ値の生成に先立ち、乱数Ｒを生成し（ステップＳ９４）、これとパスワードを連結してハッシュ値の生成を行っているが、パスワードをバイナリー列として扱い、そのまま上記の暗号化鍵、復号鍵として用いる、或いは、乱数列と連結せずにハッシュ値の生成を行ってもよい。
【０３２７】
また、図３０に示すフローチャートでは、鍵暗号化データ検査鍵を用いて、ステップＳ９３で取得した部分データ暗号化鍵Ｋ［ｊ１］，・・・，Ｋ［ｊｕ］に対してＭＡＣ値の生成を行っているが、鍵暗号化データ検査鍵を生成せず、ＭＡＣ値の生成を行わなくてもよい。また、ステップＳ９３で取得した部分データ暗号化鍵Ｋ［ｊ１］，・・・，Ｋ［ｊｕ］に対してＭＡＣ値の生成を行うのではなく、鍵暗号化データ生成鍵で暗号化された結果に対してＭＡＣ値の生成を行ってもよい。
【０３２８】
図３１は、復号装置３５０において、暗号化された暗号化電子文書を復号する処理を示すフローチャートである。
【０３２９】
まず、復号装置３５０の電子文書処理部１５５が、電子文書記憶領域１５３に記憶されている電子文書を表示部１６１に表示する（Ｓ１００）。
【０３３０】
次に、復号処理制御部３５６は、電子文書に暗号化領域データがあるか否かを検出して、ある場合には、復号処理を受け付ける（Ｓ１０１）。
【０３３１】
ここで、暗号化領域データがあるか否かは、例えば、電子文書がＰＤＦのようなデータフォーマットであれば、ＰＤＦを構成するオブジェクトを全探索し、オブジェクト内に暗号化領域データに対応する型を持ったオブジェクトがあるか否かで判断すれば良く、また、電子文書がＸＭＬのようなデータフォーマットであれば、暗号化領域データに対応する要素が存在するか否かで判断することができる。
【０３３２】
また、復号処理の受け付けは、例えば、電子文書を表示している画面において、選択メニューとして復号実行用のボタンを用意することによって実現すればよい（なお、暗号化領域データがない場合には、当該ボタンを実行できないように非アクティブにすればよい）。
【０３３３】
次に、復号処理制御部３５６は、電子文書内の暗号化領域データから必要な情報を取得して、復号処理部３５７に出力して、復号処理部３５７が復号処理を実行する（Ｓ１０２）。
【０３３４】
ここでは、復号処理制御部３５６は、暗号化領域データの暗号化データ用ヘッダ領域からユーザＩＤを取得し、パスワード管理テーブル３５２ａのユーザＩＤ欄３５２ｂに当該ユーザＩＤに対応する情報が格納されているか否かを検索し、格納されている場合には、格納されているユーザＩＤに対応して格納されている部分暗号化データを部分暗号化データ領域から取得する。
【０３３５】
また、復号処理制御部３５６は、暗号化領域データの暗号化データ用ヘッダ領域からユーザＩＤを取得し、当該ユーザＩＤに対応するパスワードをパスワード管理テーブル３５２ａから取得する。
【０３３６】
そして、復号処理制御部３５６は、取得した部分暗号化データ及びパスワードを復号処理部３５７に出力して、復号処理部３５７が復号を行う。なお、この復号処理については、図３２を用いて詳細に説明する。
【０３３７】
次に、復号処理部３５７が復号した復号データについては、復号処理制御部３５６が電子文書に嵌め込むことにより電子文書を復元して（Ｓ１０３）、電子文書処理部１５５は、復元された電子文書を表示部１６１に表示する（Ｓ１０４）。ここで、ステップＳ１０３の復元処理については、図１５と同様であるため説明を省略する。
【０３３８】
なお、復号処理部３５７で、何らかの復号エラーが生じた場合には、復号失敗のメッセージを表示部１６１に表示することが望ましい。
【０３３９】
図３２は、図３０に示した暗号化処理によって暗号化された暗号化電子文書を復号する際の処理手順を示すフローチャートである。
【０３４０】
まず、復号処理部３５７は、暗号化電子文書の暗号化領域データのアクセス制御情報ＡＤ［ｊ］から、インデックス集合（ｊ１，・・・，ｊｕ）を取得する（Ｓ１１０）。
【０３４１】
次に、復号処理部３５７は、鍵暗号化データＥ［ｉ］を乱数Ｒ、鍵暗号化データ本体ＥＢ［ｉ］、鍵暗号化データ検査部ＥＣ［ｉ］に分割する（Ｓ１１１）。
【０３４２】
次に、復号処理部３５７は、得られた乱数Ｒと、図３１のステップＳ１０２で取得されたパスワードと、から図３０のステップＳ９５と同様の処理を行って、鍵暗号化データ生成鍵、鍵暗号化データ検査鍵を生成する（Ｓ１１２）。
【０３４３】
そして、復号処理部３５７は、鍵暗号化データ検査鍵、鍵暗号化データ検査部ＥＣ［ｉ］を用いて、鍵暗号化データ本体ＥＢ［ｉ］のＭＡＣによる検証を行う（Ｓ１１３）。
【０３４４】
ここで、ステップＳ１１３では、復号処理部３５７は、ステップＳ１１２で生成した鍵暗号化データ検査鍵を用いて、ステップＳ１１１で分割した鍵暗号化データ本体ＥＢ［ｉ］のＭＡＣ値を算出する。そして、復号処理部３５７は、算出したＭＡＣ値が、ステップＳ１１１で分割した鍵暗号化データ検査部ＥＣ［ｉ］と一致する場合には、検証が成功したものと判断する。
【０３４５】
復号処理部３５７は、ステップＳ１１３の検証に失敗した場合には（ステップＳ１１４でＮｏ）、ステップＳ１１５に進み、エラー（復号失敗）を表示部１６１に出力して処理を終了する。
【０３４６】
一方、復号処理部３５７は、検証に成功した場合には（ステップＳ１１４でＹｅｓ）、ステップＳ１１５に進む。
【０３４７】
ステップＳ１１５では、復号処理部３５７は、ステップＳ１１２で得られた鍵暗号化データ生成鍵を用いて、鍵暗号化データ本体ＥＢ［ｉ］を復号し、部分データ暗号化鍵Ｋ［ｊ１］、Ｋ［ｊ２］、・・・、Ｋ［ｊｕ］、及び、ハッシュ値Ｈを取得する。
【０３４８】
次に、復号処理部３５７は、部分暗号化データＤ［１］，・・・，Ｄ［ｎ］を連結したものから、ハッシュ値Ｈ’を計算し（Ｓ１１６）、ステップＳ１１５で取得したハッシュ値Ｈと一致するか否かを比較する（Ｓ１１７）。
【０３４９】
そして、復号処理部３５７は、Ｈ＝Ｈ’であればステップＳ１１８に進み、Ｈ＝Ｈ’でなければ、ステップＳ１１５に進み、エラー（復号失敗）を表示部１６１に出力して処理を終了する。
【０３５０】
ステップＳ１１８では、復号処理部３５７は、ステップＳ１１５で取得した部分データ暗号化鍵Ｋ［ｊ１］，Ｋ［ｊ２］，・・・，Ｋ［ｊｕ］を用いて、部分暗号化データＤ［ｊ１］，Ｄ［ｊ２］，・・・，Ｄ［ｊｕ］を復号し、復号結果を出力する。
【０３５１】
なお、以上に記載した第二の実施形態におけるパスワードを利用した暗号化、復号における鍵暗号化データ生成鍵、鍵暗号化データ検証鍵の生成については、例えば以下のような参考文献１に記載された方法を利用して行ってもよい。
【０３５２】
参考文献１：ＲＳＡ Ｌａｂｏｒａｔｏｒｙ、“ＰＫＣＳ＃５：Ｐａｓｓｗｏｒｄ−Ｂａｓｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｓｔａｎｄａｒｄ”、２００６年１０月．
上述した第二の実施形態では、鍵管理装置３１０において、第一の実施形態における鍵管理装置１１０が格納していた秘密鍵、公開鍵の代わりに、パスワードを格納している。しかしながら、例えば暗号化するユーザと復号するユーザ間でメールなどを利用して、暗号化、復号に利用するパスワードを共有しておくことによって、鍵管理装置３１０を使用しないことも可能である。
【０３５３】
また、上述した第二の実施形態においては、復号装置１０５内のパスワード管理情報記憶領域３５２は無くてもよい。この場合、復号に必要なユーザＩＤと対応するパスワードの取得（Ｓ１０２）は、ダイアログを表示し、ユーザにＩＤとパスワードを入力させるようにしてもよい。
【０３５４】
なお、図３０、図３２は本実施形態における暗号化処理、復号処理の一例であり、第一の実施例と同様に、暗号化処理、復号処理はこれと異なってもよい。例えば、第一の実施例で述べたように、設定された暗号化領域から得られた暗号化の対象となる部分データを、設定されたユーザＩＤと対応するパスワードから鍵暗号化データ生成鍵、鍵暗号化データ検査鍵を生成（Ｓ９４、Ｓ９５）し、これを用いて、個々に部分データを暗号化し、部分暗号化データを生成し、図３２における部分暗号化データの復号も、個々の部分暗号化データをパスワードから鍵暗号化データ生成鍵、鍵暗号化データ検証鍵を生成し（Ｓ１１２）、これを用いて復号するようにしてもよい。
【０３５５】
また、第二の実施形態と第一の実施形態とを共有して利用することも可能である。例えば、鍵管理装置１１０内の鍵管理情報記憶領域１１２内に、暗号化鍵及び復号鍵、または、パスワード、の少なくともいずれか一方をユーザＩＤに対応付けて管理しておき、復号するユーザが、暗号化鍵及び復号鍵、または、パスワード、の何れかに対応する場合には、これらの内の何れか一方を利用して暗号化を行い、これらの両方に対応する場合には、デフォルトで利用する方を定めておく等により、何れか一方を利用して暗号化を行うようにする。
【０３５６】
なお、上述のように、第二の実施形態と第一の実施形態とを共有して暗号化、復号を行う場合には、公開鍵暗号技術、共通鍵暗号技術（あるいは、パスワード）のいずれを利用して復号処理を行うのかを明確にするため、例えば、図１２に示した暗号化領域データ２８２の実現例において、KeyEncryptionAlgorithm要素を、MRES_Param要素ではなく、EncryptedKeyData要素の子要素にすることによって、復号に利用するアルゴリズムを記述するようにすればよい、
また、復号に当たっては、例えば、公開鍵暗号技術における秘密鍵を利用して復号処理を行う場合には、復号装置１５０内に、鍵管理情報記憶領域１５２とパスワード情報記憶領域の両方を備えておき、両記憶領域にそれぞれ秘密鍵とパスワードを格納しておく。そして、復号処理の実行（図１４のステップＳ４２）に先立ち、これらの記憶領域に格納された秘密鍵とパスワードを探索し、復号処理を行えばよい。
【０３５７】
或いは、上述のように復号装置１５０内には鍵管理情報記憶領域１５２のみを具備しておき、鍵管理情報記憶領域１５２内に格納された秘密鍵で復号処理を行った後、ダイアログを表示し、ユーザにＩＤとパスワードを入力させるようにしてもよい。
【０３５８】
以上に記載した実施形態においては、鍵管理装置３１０にパスワード生成部３１４を設けたが、例えば、鍵管理装置３１０、暗号化装置３３０又は復号装置３５０のオペレータが入力等により指定するような態様とする場合には、パスワード生成部３１４を設ける必要はなくなる。
【０３５９】
以上に記載した第二の実施形態においては、暗号化装置３３０にパスワード管理情報記憶領域３３２、復号装置３５０にパスワード管理情報記憶領域３５２、が設けられているが、暗号化する際及び復号する際に、ユーザにユーザＩＤ及びパスワードの入力を受け付ける場合には、これらの記憶領域を設ける必要はない。なお、ユーザにユーザＩＤ及びパスワードを入力させる場合には、入力された文字列を“＊”などの代替文字で置き換えて表示する、など入力されたパスワードが画面上に表示されないようにすることが望ましい。
【０３６０】
また、以上に記載した復号装置３５０における復号処理（図３１のステップＳ１０２）において、復号装置３５０の記憶部３５１に設けられているパスワード管理情報記録領域３５２にユーザＩＤに対応するパスワードが格納されていない場合には、入力部１６０を介して、ユーザよりパスワードの入力を受け付けるようにしてもよい。
【図面の簡単な説明】
【０３６１】
【図１】暗号システムの概略図。
【図２】鍵管理装置の概略図。
【図３】鍵管理テーブルの概略図。
【図４】コンピュータの概略図。
【図５】暗号化装置の概略図。
【図６】鍵管理テーブルの概略図。
【図７】復号装置の概略図。
【図８】鍵管理テーブルの概略図。
【図９】暗号システムでの電子文書のデータフローを示すシーケンス図。
【図１０】暗号化装置における暗号化文書の作成処理を示すフローチャート。
【図１１】暗号化電子文書の概略図。
【図１２】暗号化領域データの具体例を示す概略図。
【図１３】暗号化対象領域設定処理を示すフローチャート。
【図１４】暗号化された暗号化電子文書を復号する処理を示すフローチャート。
【図１５】電子文書を復元する処理を示すフローチャート。
【図１６】表示画面の概略図。
【図１７】暗号化処理の変形例を示すフローチャート。
【図１８】暗号化電子文書を復号する際の処理手順を示すフローチャート。
【図１９】鍵管理装置の概略図。
【図２０】鍵管理テーブルの概略図。
【図２１】ユーザ鍵管理テーブルの概略図。
【図２２】対応テーブルの概略図。
【図２３】鍵管理装置の概略図。
【図２４】パスワード管理テーブルの概略図。
【図２５】暗号化装置の概略図。
【図２６】パスワード管理テーブルの概略図。
【図２７】復号装置の概略図。
【図２８】パスワード管理テーブルの概略図。
【図２９】暗号化文書の作成処理を示すフローチャート。
【図３０】暗号化処理を示すフローチャート。
【図３１】暗号化された暗号化電子文書を復号する処理を示すフローチャート。
【図３２】暗号化電子文書を復号する際の処理手順を示すフローチャート。
【符号の説明】
【０３６２】
１００  暗号システム
１１０、２１０、３１０  鍵管理装置
１１１、２１１、３１１  記憶部
１１３、２１３、３１２  制御部
１１６  通信部
１１７  読み書き部
１３０、３３０  暗号化装置
１３１、３３１  記憶部
１３４、３３４  制御部
１３８  通信部
１３９  読み書き部
１４０  入力部
１４１  表示部
１５０、３５０  復号装置
１５１、３５１  記憶部
１５４、３５４  制御部
１５８  通信部
１５９  読み書き部
１６０  入力部
１６１  表示部
【図１】
0005389401.tif 000002
【図２】
0005389401.tif 000003
【図３】
0005389401.tif 000004
【図４】
0005389401.tif 000005
【図５】
0005389401.tif 000006
【図６】
0005389401.tif 000007
【図７】
0005389401.tif 000008
【図８】
0005389401.tif 000009
【図９】
0005389401.tif 000010
【図１０】
0005389401.tif 000011
【図１１】
0005389401.tif 000012
【図１２】
0005389401.tif 000013
【図１３】
0005389401.tif 000014
【図１４】
0005389401.tif 000015
【図１５】
0005389401.tif 000016
【図１６】
0005389401.tif 000017
【図１７】
0005389401.tif 000018
【図１８】
0005389401.tif 000019
【図１９】
0005389401.tif 000020
【図２０】
0005389401.tif 000021
【図２１】
0005389401.tif 000022
【図２２】
0005389401.tif 000023
【図２３】
0005389401.tif 000024
【図２４】
0005389401.tif 000025
【図２５】
0005389401.tif 000026
【図２６】
0005389401.tif 000027
【図２７】
0005389401.tif 000028
【図２８】
0005389401.tif 000029
【図２９】
0005389401.tif 000030
【図３０】
0005389401.tif 000031
【図３１】
0005389401.tif 000032
【図３２】
0005389401.tif 000033