(57)【要約】【課題】  利用者に応じて選択的に情報の開示を制御する場合に，包含関係がない，複数の異なる権限を持つ利用者が同じ領域をアクセスすることを可能にする。【解決手段】  コンテンツを権限に応じて複数の領域に分割し，各分割された領域毎に異なる秘密鍵（共通鍵暗号技術の暗号化／復号鍵）の生成と生成された秘密鍵を用いて分割領域毎にコンテンツの暗号化を行う。生成された秘密鍵は，各権限に応じて利用者に予め設定された公開鍵暗号技術の公開鍵を用いて暗号化を行い，権限の異なる複数の利用者に対して開示する場合には，それぞれ別々に秘密鍵の暗号化を行う。これらによって得られた暗号化されたコンテンツと秘密鍵から暗号文を生成する。【選択図】図１
2007251921.tif 000002
【特許請求の範囲】
【請求項１】
ディジタルコンテンツの暗号化方法であって，
暗号化装置において，
ディジタルコンテンツを複数の領域に分割し，
前記分割により生成された前記領域毎に，互いに異なるセッション鍵の割り当てを行い，
前記領域毎に割り当てた前記セッション鍵を用いて，当該領域の暗号化を行い，
暗号化された前記ディジタルコンテンツを利用する利用者の一人以上からなる集合毎に，互いに異なる，公開鍵暗号技術による一対の公開鍵と秘密鍵の割り当てを行い，
各々の前記領域について，当該領域の閲覧を許可された前記利用者の集合毎に割り当てられた前記公開鍵を用いて，当該領域毎の前記セッション鍵の暗号化を行い，
前記暗号化された複数の領域と，前記領域毎に一つ以上生成された，前記暗号化されたセッション鍵と，からなる暗号化されたディジタルコンテンツの出力を行う
ことを特徴とするディジタルコンテンツの暗号化方法。
【請求項２】
請求項１に記載のディジタルコンテンツの暗号方法であって，
前記ディジタルコンテンツの分割箇所を示す情報と，前記暗号化ディジタルコンテンツ内のどの前記暗号化された領域が，どの前記利用者によって復号できるかという情報と，を区切り情報として，前記暗号化されたディジタルコンテンツのヘッダ情報に含ませる
ことを特徴とするディジタルコンテンツの暗号化方法。
【請求項３】
請求項１に記載のディジタルコンテンツの暗号化方法であって，
前記利用者の一人以上からなる前記集合の複数が，同一の利用者を一人以上含む
ことを特徴とするディジタルコンテンツの暗号化方法。
【請求項４】
請求項１に記載のディジタルコンテンツの暗号化方法であって，
鍵管理装置において，
前記利用者を木構造の端点に対応させ，前記利用者が属する一つ以上の集合を木構造の節点または根に対応させ，前記利用者と前記一つ以上の集合との包含関係を木構造によって表現した場合の，前記端点または前記節点または前記根それぞれに異なる，公開鍵とそれに対応する秘密鍵を割り当て，
一人の前記利用者に対応する一つの前記端点と前記根とこれらをつなぐ経路上にある前記端点とに，おのおの異なるように割り当てた複数の前記秘密鍵を復号鍵として，前記端点に対応する前記利用者に配付し，
複数の前記秘密鍵に対応する複数の公開鍵を，前記復号鍵に対応する暗号化鍵として公開する
ことを特徴とするディジタルコンテンツの暗号化方法。
【請求項５】
請求項１に記載のディジタルコンテンツの暗号化方法であって，
前記暗号化装置において
前記暗号化された複数の領域，または，前記暗号化された複数の領域と前記暗号化された複数のセッション鍵，に対する電子署名を生成し付与する
ことを特徴とする暗号化方法。
【請求項６】
請求項１に記載の暗号化方法に従って暗号化されたディジタルコンテンツの復号方法であって，
復号装置において，
いずれかの前記利用者が当該復号装置に提供する秘密鍵を用いて，
当該秘密鍵に対応する公開鍵を用いて暗号化された前記セッション鍵の復号を行い，
前記復号されたセッション鍵を用いて，当該セッション鍵を用いて暗号化された前記領域の復号を行い，
復号した前記領域の表示と，当該復号装置において復号しない領域の墨塗り表示と，を行う
ことを特徴とするディジタルコンテンツの復号方法。
【請求項７】
請求項６に記載の暗号化方法に従って暗号化されたディジタルコンテンツの復号方法であって，
前記復号装置において，
前記付与された電子署名を検証することによって，
前記暗号化されたディジタルコンテンツの改ざんの有無を検査する
ことを特徴とするディジタルコンテンツの復号方法。
【請求項８】
暗号化装置と複数の復号装置から構成される業務フローシステムであって，
暗号化装置は，
ディジタルコンテンツを情報の種類に応じて複数の領域に分割し，
領域毎に異なる暗号化鍵を用いて前記分割された領域ごとに暗号化する手段を備え，
復号装置は，
前記暗号化されたディジタルコンテンツの特定領域を復号する手段を備え，
さらに前記暗号化されたディジタルコンテンツを他の復号装置に送信する手段を備える，
ことを特徴とする業務フローシステム。
【請求項９】
請求項８に記載の業務フローシステムであって，
業務フローシステム内に
前記復号装置にその復号装置の利用者に応じて適切な復号鍵を配布する機能を備え，
それに対応した暗号化鍵を暗号化装置に公開する手段を備える，
鍵管理装置を含む
ことを特徴とする業務フローシステム。
【請求項１０】
請求項８に記載の業務フローシステムであって，
前記暗号化装置が，
暗号化されたディジタルコンテンツに電子署名を付与するための機能を備え，
前記復号装置が
前記暗号化され署名が付与されたディジタルコンテンツの検証を行うことによって，
ディジタルコンテンツの改ざんの有無を検査する機能を有する
ことを特徴とする業務フローシステム。
【請求項１１】
請求項１に記載の暗号化方法であって，
前記暗号化装置において，
前記利用者ごとに，当該利用者が閲覧可能な各々の前記領域を暗号化したセッション鍵を有するセッション鍵集合を，構成し，
前記利用者ごとの前記セッション鍵集合を，
利用者ごとに割り当てられた前記公開鍵暗号技術の公開鍵を用いて，
暗号化する
ことを特徴とする暗号化方法。
【請求項１２】
請求項１１に記載の暗号化方法であって，
前記暗号化装置において，
第一の前記利用者用の順序制御用乱数を生成し，
前記第一の利用者用の，第一の前記セッション鍵集合と，前記順序制御用乱数と，を当該第一の利用者に割り当てられた前記公開鍵暗号技術の公開鍵を用いて，暗号化し，
前記暗号化結果を
前記第一のセッション鍵集合とは異なる，第二の利用者用の第二の前記セッション鍵集合の暗号化に用いる第二の利用者の順序制御用乱数とする
ことを特徴とする暗号化方法。
【請求項１３】
請求項１２に記載された暗号化方法を復号する復号方法であって
前記復号装置において，
第二の利用者の前記順序制御用乱数を，
利用者が当該復号装置に提供する秘密鍵を用いて復号し，
前記復号結果を，前記第一の利用者の順序制御用乱数と第二の前記セッション鍵集合とに分割し，
前記第二のセッション鍵集合から取得したセッション鍵を用いて暗号化された領域の復号を行い，
前記第一の利用者の順序制御用乱数と，前記暗号化された複数の領域と，から暗号化ディジタルコンテンツを，生成する
ことを特徴とする復号方法。
【請求項１４】
請求項１１に記載の暗号化方法であって，
前記順序制御用乱数に対し，しきい値型秘密分散処理を適用することによって複数の第二順序制御用乱数を生成し，
前記第二順序制御用乱数それぞれに対して，前記セッション鍵の暗号化を行い，
前記セッション鍵の暗号化処理の結果からなる集合を，
前記第二の利用者の順序制御用乱数とする
ことを特徴とする暗号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディジタルコンテンツの暗号化，復号方法にかかわり，利用者の権限に応じてディジタルコンテンツの選択的な開示を可能とするための技術である。
【背景技術】
【０００２】
近年，情報通信機器の発展によって，従来紙で行われていた業務処理が電子化されるようになってきている。これに伴い，従来紙で行われていた書類の申請・承認などの手続き（業務フロー）も，ネットワークを利用して電子的に行われるようになってきている（例えば，特許文献１）。このようなネットワークを通してやり取りされるディジタルコンテンツには，例えば個人情報など，そのコンテンツを閲覧する利用者によっては開示が制限されるべき情報も含まれている。このような情報は，一度漏洩してしまうと，損害補償，信頼の失墜など，計り知れない損害を与えることになる。
【０００３】
ここでコンテンツとは，申請書や申込書や会議の議事録などに記載された文章，音声，または映像などの記録，或いはこれらの２つ以上を任意に組み合わせた情報のことであり，特にこれらがディジタルデータとして表現されている場合，ディジタルコンテンツと呼ぶ。ただし，以下の説明においては，ディジタルコンテンツを単にコンテンツという。
【０００４】
従来，利用者の役割に応じてコンテンツを選択的に開示する場合には，コンテンツをデータベースで一元的に管理し，データベースへのアクセスを制御することによって，権限のない利用者に情報を開示しないようにする方法がとられている（例えば，特許文献１）。
【０００５】
一方で，ネットワークを通してやり取りされるコンテンツに対しては，暗号化を行うことによって情報を保護する方法が知られている。
【０００６】
これらの方法では，階層的に暗号化鍵の生成を行い，これを用いてコンテンツの部分暗号化を行うことによって，権限の低い受信者にはコンテンツの閲覧できる領域を制限する方法（例えば，特許文献３）や，電子カルテ内の個人情報を，権限を持たない利用者には閲覧できないように，特定の利用者の鍵で部分暗号化を行う方法などが知られている（例えば，特許文献２）。
【０００７】
【特許文献１】特開２００５−１３５０７２号公報 （段落００１３〜００２４）
【特許文献２】特開２００３−５６４５号公報 （段落０００９〜００１１）
【特許文献３】特開２００２−３６６０３０号公報 （段落００１３〜００３５）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１が開示するような，データベースを利用したコンテンツの一元的な管理方法では，利用者は，常に同一のデータベースサーバにアクセスできる必要がある。しかしながら，例えば，社外の取引先を介して書類を処理する場合など，同一のデータベースサーバにアクセスできないような状況下では，情報そのものを入手することができなくなる。また，データベースによる一元管理を行った場合には，コンテンツがデータベースの管理下を離れてしまうと，利用者に応じて選択的に情報の開示を制御することが困難になるといった問題も生じる。
【０００９】
また，一般に，データベースの管理者は，そのデータベースで管理されている全ての情報が閲覧できてしまう。
【００１０】
一方，特許文献２による方法には，同じ領域に複数の異なる権限を持つ利用者がアクセスする場合については考慮されていない，という問題があり，また，特許文献３による方法には，同一の領域を権限の異なる複数の利用者が閲覧することが可能であるが，利用者間の権限には包含関係がなければならないという制約がある。
【００１１】
そのため，多様な利用者の権限に応じた情報の柔軟な開示・非開示の制御を行うことは困難である。
【課題を解決するための手段】
【００１２】
本発明は，同一領域を権限の異なる複数の利用者が閲覧することを可能とし，多様な利用者の権限構造に対応した，より柔軟な暗号化方法を提供する。これによって，コンテンツ内の情報に応じて，閲覧する利用者に応じた選択的な情報の開示が可能となる。
【００１３】
また，上記暗号化技術を利用することによって，データベースによる一元管理を必要としない業務フローシステムの構築を可能とする技術を提供する。
【００１４】
また，本発明は，コンテンツの作成者自身がコンテンツ内のどの部分を誰に閲覧させるかを決定することも可能であり，データベース管理者にさえ情報を秘匿にしたまま，コンテンツの保管，配布を行うことも可能とする。
【００１５】
具体的には，本発明では，コンテンツを権限に応じて複数の領域（部分コンテンツともいう）に分割し，各分割された領域毎に異なる秘密鍵（共通鍵暗号技術の暗号化／復号鍵）の生成と生成された秘密鍵を用いて分割領域毎にコンテンツの暗号化を行う。さらに生成された秘密鍵は，各権限に応じて予め設定された公開鍵暗号技術の公開鍵を用いて暗号化を行う。ここで，権限の異なる複数の，利用者または利用者のグループに対して開示する場合には，それぞれ別々に秘密鍵の暗号化を行う。また，暗号化されたコンテンツをやり取りすることによって，データベースの管理下を離れたコンテンツに対しても利用者に応じた選択的な情報の開示を可能とする。
【００１６】
暗号化されたコンテンツをデータベースに保管しておけば，コンテンツへのアクセス制御は予め利用者に配布された鍵によって管理される。そのため，データベースサーバのアクセス制御を簡略化でき，これに関わる負荷の軽減が期待できる。
【００１７】
本発明による，より具体的な暗号化方法は，暗号化装置において，ディジタルコンテンツを複数の領域に分割し，上記分割により生成された上記領域毎に，互いに異なるセッション鍵の割り当てを行い，上記領域毎に割り当てた上記セッション鍵を用いて，当該領域の暗号化を行い，暗号化された上記ディジタルコンテンツを利用する利用者の一人以上からなる集合毎に，互いに異なる，公開鍵暗号技術による一対の公開鍵と秘密鍵の割り当てを行い，各々の上記領域について，当該領域の閲覧を許可された上記利用者の集合毎に割り当てられた上記公開鍵を用いて，当該領域毎の上記セッション鍵の暗号化を行い，上記暗号化された複数の領域と，上記領域毎に一つ以上生成された，上記暗号化されたセッション鍵と，からなる暗号化されたディジタルコンテンツの出力を行うことを特徴とする。
【００１８】
さらに，上記ディジタルコンテンツの分割箇所を示す情報と，上記暗号化ディジタルコンテンツ内のどの上記暗号化された領域が，どの上記利用者によって復号できるかという情報と，を区切り情報として，上記暗号化されたディジタルコンテンツのヘッダ情報に含ませてもよい。
【００１９】
さらに，鍵管理装置において，上記利用者を木構造の端点に対応させ，上記利用者が属する一つ以上の集合を木構造の節点または根に対応させ，上記利用者と上記一つ以上の集合との包含関係を木構造によって表現した場合の，上記端点または上記節点または上記根それぞれに異なる，公開鍵とそれに対応する秘密鍵を割り当て，一人の上記利用者に対応する一つの上記端点と上記根とこれらをつなぐ経路上にある上記端点とに，おのおの異なるように割り当てた複数の上記秘密鍵を復号鍵として，上記端点に対応する上記利用者に配付し，複数の上記秘密鍵に対応する複数の公開鍵を，上記復号鍵に対応する暗号化鍵として公開してもよい。
【００２０】
また，上記方法により暗号化されたコンテンツのより具体的な復号方法は，復号装置において，いずれかの上記利用者が当該復号装置に提供する秘密鍵を用いて，当該秘密鍵に対応する公開鍵を用いて暗号化された上記セッション鍵の復号を行い，上記復号されたセッション鍵を用いて，当該セッション鍵を用いて暗号化された上記領域の復号を行い，復号した上記領域の表示と，当該復号装置において復号しない領域の墨塗り表示と，を行うことを特徴とする。
【００２１】
さらに，暗号化装置において，利用者ごとに，当該利用者が閲覧可能な各々の領域を暗号化したセッション鍵を有するセッション鍵集合を構成し，利用者ごとのセッション鍵集合を，利用者ごとに割り当てられた公開鍵暗号技術の公開鍵を用いて，暗号化してもよい。
【００２２】
さらに，暗号化装置において，第一の利用者用の順序制御用乱数を生成し，第一の利用者用の，第一のセッション鍵集合と，順序制御用乱数と，を当該第一の利用者に割り当てられた公開鍵暗号技術の公開鍵を用いて，暗号化し，暗号化結果を第一のセッション鍵集合とは異なる，第二の利用者用の第二のセッション鍵集合の暗号化に用いる第二の利用者の順序制御用乱数としてもよい。
【００２３】
また，上記方法により暗号化されたコンテンツのより具体的な復号方法は，復号装置において，第二の利用者の順序制御用乱数を，利用者が当該復号装置に提供する秘密鍵を用いて復号し，復号結果を，第一の利用者の順序制御用乱数と第二のセッション鍵集合とに分割し，第二のセッション鍵集合から取得したセッション鍵を用いて暗号化された領域の復号を行い，第一の利用者の順序制御用乱数と，暗号化された複数の領域と，から暗号化ディジタルコンテンツを，生成することを特徴とする。
【００２４】
また，上記暗号化方法において，順序制御用乱数に対し，しきい値型秘密分散処理を適用することによって複数の第二順序制御用乱数を生成し，第二順序制御用乱数それぞれに対して，セッション鍵の暗号化を行い，セッション鍵の暗号化処理の結果からなる集合を，第二の利用者の順序制御用乱数としてもよい。
【発明の効果】
【００２５】
本発明によれば，複数の利用者を介してコンテンツがやり取りされる場合に，データベースによる一元管理を用いることなく，コンテンツを閲覧する利用者に応じて選択的な情報の開示を行うことが可能となる。
【発明を実施するための最良の形態】
【００２６】
以下，本発明の実施形態について述べる。
【実施例１】
【００２７】
図１は，第一の実施例におけるコンテンツの流通を示した概略図である。図示したように，本システムでは，コンテンツ１０５を暗号化する暗号化装置１０１と暗号化されたコンテンツ（以下，暗号化コンテンツ）１０６を受信する復号装置１０７が，ネットワーク１００を介してコンテンツの送受信を行う。なお，図示したように，復号装置１０２が受け取る暗号化コンテンツ１０６は，ネットワーク１００ではなく，外部記憶媒体１１０を通してオフラインでやり取りされてもよい。また，ネットワーク１００はインターネットのような外部ネットワークだけでなく，ＬＡＮなどの内部ネットワークでもよい。図１では，外部記憶媒体１１０を利用したコンテンツの配布が，復号装置１０２同士で行われる場合について示したが，暗号化装置１０１から直接外部記憶媒体１１０を利用して復号装置１０２にコンテンツを配布してもよい。
【００２８】
鍵管理装置１０３は，権限と暗号化鍵１１１と復号鍵１１２の対応づけを行い，さらに利用者の権限に応じた復号鍵１１２の配布，各権限に応じた暗号化鍵１１１の公開などを行う。なお，暗号化鍵１１１，復号鍵１１２としては，それぞれ，公開鍵暗号技術における公開鍵と，それに対応する秘密鍵を用いると良い。なぜなら，鍵管理装置１０３が，暗号化鍵１１１として公開鍵暗号技術における公開鍵を公開することによって，任意の利用者が鍵管理装置１０３から容易に暗号化鍵１１１の入手することが可能となり，任意の利用者がコンテンツを暗号化することが可能となるからである。
【００２９】
なお，暗号化鍵１１１の公開は，例えば，鍵管理装置１０３においてＷｅｂサーバなどを用いて各利用者やグループなどの情報，対応する暗号化鍵１０３を公開し，暗号装置１０１からは，鍵管理装置１０３のＷｅｂサーバへアクセスすることによって必要となる暗号化鍵１１１を取得できるようにすればよい。
【００３０】
図１では，暗号化装置１０１，或いは，復号装置１１２に暗号化鍵１１１，復号鍵１１２を直接配布しているが，これと異なっていてもよい。例えば，各利用者に復号鍵１１２を，外部記憶媒体１１０を利用して配布してもよい。ただし，復号鍵１１２は各利用者が権限を行使するために使用する重要なデータであるため，ＩＣカードなど耐タンパ性のある装置に格納しておくことが望ましい。
【００３１】
ここで権限とは，例えば社内組織の役職や所属する部などのグループといった，コンテンツにアクセスする際に閲覧可能な領域を示すために使用される，利用者に対して設定される属性のことである。
【００３２】
復号鍵１１２は，利用者に対して複数配布される場合もある。例えば，ある利用者ＵがＡ部のＢ課に所属している場合には，鍵管理装置１０３は以下のように鍵の割当てを行うことが考えられる。
【００３３】
鍵管理装置１０３は，Ａ部に所属する利用者共有の暗号化鍵１１１（ＰＡ），復号鍵１１２（ＳＡ）の組，Ｂ課に所属する利用者共有の暗号化鍵１１１（ＰＢ），復号鍵１１２（ＳＢ）の組，と，利用者Ｕ用の暗号化鍵１１１（ＰＵ），復号鍵１１２（ＳＵ）の生成を行う。さらに，鍵管理装置１０３は，Ａ部共有の暗号化鍵１１１（ＰＡ），Ｂ課共有の暗号化鍵１１１（ＰＢ），及び，利用者Ｕ用の暗号化鍵１１１（ＰＵ）の公開を行い，暗号化装置１０１が，これらの暗号化鍵１１１を取得できるようにする。さらに，利用者Ｕに対して，Ａ部とＢ課の共有の復号鍵１１２（ＳＡ，ＳＢ）と，利用者Ｕ固有の復号鍵１１２（ＳＵ）を利用者Ｕに配布する。
【００３４】
したがって，利用者Ｕが所有する鍵は，Ａ部共有の復号鍵１１２（ＳＡ）とＢ課共有の復号鍵１１２（ＳＢ），さらに利用者Ｕ固有の復号鍵１１２（ＳＵ）の３つとなる。
【００３５】
なお，暗号化鍵１１１の公開にあたっては，例えば鍵管理装置１０３において，暗号化鍵１１１に対する証明書を発行するなど，鍵管理装置１０３から暗号化鍵１１１が発行されたことが検証できることが望ましい。
【００３６】
図２は，暗号化装置１０１の構成の概略を示した図である。暗号化装置１０１は，ＣＰＵ２０１，ＣＰＵ２０１の作業領域として機能するＲＡＭ２０２，ＨＤなどの外部記憶装置２０３，ＦＤ，ＣＤ−ＲＯＭなどの外部記憶媒体１１０からデータを取り込む読取装置２０４，ディスプレイなどの出力装置２０５，マウス，キーボードなどの入力装置２０６，ネットワーク１００を介して他の装置と通信を行う通信装置２０７，上記の各構成要素間のデータ通信を司るインターフェイス２０８から構成される，一般的な構成を有する電子計算機２２０である。
【００３７】
また，暗号化装置１０１の外部記憶装置２０３には，コンテンツ作成・読込プログラム（以下，プログラムをＰＧという）２１５，暗号化ＰＧ２１６，コンテンツ送信ＰＧ２１７が格納される。これらのプログラム（ＰＧ）は，ＣＰＵ２０１により実行され，コンテンツ作成・読込処理部２１０，暗号化処理部２１１，コンテンツ送信処理部２１２という処理部を暗号化装置上に具現化する。
【００３８】
復号装置１０２は，暗号化装置１０１と同様の構成を持つ。ただし，復号装置１０２の外部記憶装置２０３には，暗号化コンテンツ１０６，復号鍵１１２と，それぞれ，復号処理部，復号コンテンツ表示処理部，コンテンツ送信処理部，コンテンツ受信処理部を具現化する復号ＰＧ，復号コンテンツ表示ＰＧ，コンテンツ送信ＰＧ２１７，コンテンツ受信ＰＧが格納される。
【００３９】
鍵管理装置１０３も，暗号化装置１０１と同様の構成を持つ。ただし，鍵管理装置１０３においては，外部記憶装置２０３には，それぞれ，鍵管理処理部，暗号化鍵・復号鍵生成処理部，暗号化鍵配信処理部，復号鍵配信処理部を具現化する鍵管理ＰＧ，暗号化鍵・復号鍵生成ＰＧ，暗号化鍵配信ＰＧ，復号鍵配信ＰＧと，暗号化鍵１１１，復号鍵１１２，が格納される。なお，鍵管理装置１０３において，必ずしも暗号化鍵１１１，復号鍵１１２の両方を，外部記憶装置２０３に格納している必要はない。例えば，鍵管理装置１０３において，復号鍵１１２と権限の対応関係の管理を行い，暗号化鍵１１１は，別途，個人あるいは，権限に属するグループ内で共有して管理してもよい。
【００４０】
なお，上述のように，鍵管理装置１０３において暗号化鍵１１１に対して証明書の発行を行う場合には，鍵管理装置１０３の外部記憶装置２０３に証明書発行用秘密鍵，証明書発行処理部を具現化する証明書発行ＰＧが，暗号化装置１０１，復号装置１０２の外部記憶装置２０３に，証明書検証用公開鍵，証明書検証処理部を具現化する証明書検証ＰＧが格納される。
【００４１】
上記各ＰＧは，予めそれぞれの電子計算機２２０の外部記憶装置２０３に，予め格納されていても良いし，必要に応じて，各電子計算機２２０が利用可能な，着脱可能な外部記憶媒体１１０または，ネットワーク１００やネットワーク１００を伝搬する搬送波やデジタル信号といった通信媒体を介して，上記電子計算機２２０に導入されてもよい。
【００４２】
なお，復号コンテンツ１０７は，外部記憶装置２０３などには保存されないようにすることが望ましい。これは，例えば図１に示したように，ある復号装置１０２から別の復号装置１０２に，ネットワーク１００，或いは，外部記憶媒体１１０を通して暗号化コンテンツ１０６が再配信された場合に，配信先の復号装置１０２においても，暗号化コンテンツ１０６が閲覧する利用者の権限に応じた開示の制限が行われるようにするためである。
【００４３】
以下に，本実施例におけるコンテンツのフローの概略について示し，コンテンツの暗号化処理，復号処理について示す。さらに，暗号化処理，復号処理で使用される暗号化鍵１１１，復号鍵１１２の鍵管理装置１０３での管理方法（利用者への割当て方法）について示し，最後に，ＸＭＬを用いた本実施例の具体例，暗号化コンテンツから復号コンテンツ表示イメージまでの処理の概略を示す。
【００４４】
図３に本実施例におけるコンテンツのデータフローの概略を示す。コンテンツのデータフローは次のとおりである。
３００：開始
３０１：暗号化装置１０１内のコンテンツ作成・読込処理部２１０を用いて，コンテンツを作成，または読込を行う。
３０２：暗号化装置１０１内の暗号処理部２１１が，コンテンツの暗号化を行い，暗号化コンテンツ１０６を作成する。
３０３：暗号化装置１０１内のコンテンツ送信処理部２１２が，暗号化コンテンツ１０６を復号装置１０２に送信する。
３０４：復号装置１０２内のコンテンツ受信処理部が，暗号化装置１０１により送信された暗号化コンテンツ１０６を受信する。
３０５：復号装置１０２内のコンテンツ復号処理，及び復号コンテンツ表示処理部が，暗号化コンテンツ１０６を復号，表示を行う。
３０６：復号装置１０２内のコンテンツ送信処理部２１２が，暗号化コンテンツ１０６を別の復号装置１０２に送信する。
３０７：受信側の復号装置１０２内のコンテンツ受信処理部が，暗号化コンテンツ１０６を受信する。
【００４５】
ステップ３０６において，復号装置１０２は受信した暗号化コンテンツ１０６をそのまま他の復号装置１０２に送信する。暗号化コンテンツ１０６は，暗号化装置１０２において，コンテンツ内の各情報は，閲覧権限を持たない利用者には復号できないように暗号化される（暗号化処理，復号処理については後述する）。これによって，他の復号装置１０２から送信されたコンテンツを受信した場合であっても，暗号化装置１０２で設定された利用者に応じた適切な情報開示が可能となる。
【００４６】
なお，図３では復号装置１０２において暗号化コンテンツ１０６を別の復号装置１０２に送信している（ステップ３０６）が，再送信先がそれ以上存在しない場合には，暗号化コンテンツ１０６の保管，或いは，破棄を行う。また，保管する場合には，復号装置１０２で保管する他，データベースサーバへの登録などを行ってもよい。また，暗号化コンテンツ１０７は，複数の復号装置１０２に送信してもよい。
コンテンツ１０５の暗号化（ステップ３０２），暗号化コンテンツ１０６の復号（ステップ３０５）は，それぞれ，暗号化装置１０１内の暗号化処理部２１１，復号装置１０２内の復号処理部によって処理が行われる。これらの処理の概略について，以下に述べる。
【００４７】
図４は，暗号化処理部２１１における暗号化処理の手順の概略を示している。暗号化の処理の手順は次のとおりである。
４００：開始
４０１：コンテンツ１０５の分割
４０２：分割によってできた部分コンテンツ毎に暗号化鍵１１１を設定
４０３：部分コンテンツがまだあればステップ４０４へ，なければステップ４０７へ
４０４：セッション鍵を生成
４０５：セッション鍵により，対象となる部分コンテンツを暗号化
４０６：セッション鍵をステップ４０２で設定された暗号化鍵１１１を利用して暗号化し，ステップ４０３へ
４０７：ヘッダの構成
４０８：終了
ステップ４０１において，情報の選択的な開示を実現するため，コンテンツ１０５の分割を行う。このコンテンツ１０５の分割には，例えば単語単位による分割の他，対象となるコンテンツ１０５が表形式を持つ場合にはセル単位，フィールド単位による分割，或いは，ＸＭＬを対象とする場合にはＸＭＬの要素を利用してもよい。また，利用者がマウスなどの入力装置２０６を使用して領域の指定を行い，これを用いてコンテンツ１０５の分割を行ってもよい。これらコンテンツを分割した箇所を示す情報は，ステップ４０７において，暗号化コンテンツのどの領域（部分コンテンツのどれ）が誰によって復号できるかという情報と併せて，コンテンツ区切り情報としてヘッダに記述する。すなわち，コンテンツ区切り情報には，暗号化コンテンツ内のどの領域が，誰によって復号できるかという情報と，復号されたコンテンツが，元のコンテンツのどの領域に対応しているかの二つの情報を持つ。なお，このコンテンツ区切り情報は，後述するＸＭＬを利用した例では，これらはそれぞれＭＲＢｌｏｃｋ要素，及び，ＴａｒｇｅｔＬｉｓｔ要素に相当する。
【００４８】
ステップ４０２における，分割されたコンテンツへの暗号化鍵１１１の設定では，その領域を閲覧可能な利用者，或いは，グループに割り当てられている暗号化鍵１１１を用いる。このとき，暗号化鍵１１１の設定は，一つの領域に対して複数の暗号化鍵１１１を設定してよい。この場合，ステップ406におけるセッション鍵の暗号化処理は，ステップ４０２において設定された複数の暗号化鍵１１１，それぞれに対して個別に暗号化を行う。また，プログラムの上では，暗号化鍵１１１そのものではなく，暗号化鍵１１１への参照を設定してもよい。
【００４９】
ここで，暗号化鍵１１１は，以下のようにして予め暗号化装置１０１内の外部記憶装置２０３に取り込んでおけばよい。例えば，前述したように鍵管理装置１０３においてＷｅｂサーバを用いて，利用者やグループなどと，それに対応する暗号化鍵１１１の公開を行う。上記の暗号化処理（ステップ４００からステップ４０８）に先立ち，暗号化装置１０１から鍵管理装置１０３のＷｅｂサーバにアクセスし，鍵管理装置１０３から暗号化鍵１１１を取得する。なお，暗号化鍵１１１の取得の仕方は必ずしも上記の通りでなくともよい。
【００５０】
なお，上記のステップ（ステップ４０４）において，セッション鍵は，分割されたコンテンツの暗号化と復号のために使用する共通鍵暗号技術（例えば，ＤＥＳなど）における秘密鍵のことであり，セキュリティ上の観点からは乱数生成器から生成された乱数を，頻繁に切り替えて使用することが望ましい。
【００５１】
このような共通鍵暗号技術の利用によって，対象となるコンテンツのサイズが大きい場合でも，公開鍵暗号技術の公開鍵である暗号化鍵１１１を利用して直接データを暗号化する方法と比べて，暗号化処理の高速化・データサイズの削減が可能となる。
【００５２】
なお，上記の暗号化処理では，セッション鍵の暗号化は各部分コンテンツごとに別々に行っていたが，これと異なってもよい。例えば，一人の利用者にひとつ以上の部分コンテンツの閲覧を許可する場合，これらひとつ以上の部分コンテンツのそれぞれを暗号化した互いに異なるセッション鍵を，たとえば連結により，ひとまとめにし，それを当該利用者の暗号化鍵（すなわち，公開鍵）１１１で暗号化してもよい。これによって，暗号化処理におけるセッション鍵の暗号化回数の削減，及び，暗号化コンテンツ１０６のデータサイズの削減を行うことが可能となる。
【００５３】
この場合，複数のセッション鍵を連結した後，暗号化鍵１１１による暗号化処理を行うことになるが，セッション鍵の連結には，例えば，セッション鍵を１２８ビットなど，特定の固定長ビットのセッション鍵を利用することをシステム全体で予め定めておき，単純にセッション鍵同士を連結する，或いは，ＡＳＮ．１のような特定のフォーマットを用い，セッション鍵同士の区切り目を明示する，などすればよい。
【００５４】
また，復号時には，結果として取り出されたセッション鍵が，どの部分コンテンツを復号するためのセッション鍵なのかをわかるようにするため，各部部分コンテンツにＩＤを付与し，セッション鍵の前に対応する部分コンテンツのＩＤ番号を付与する，或いは，単純に，取り出されたセッション鍵を上位から順番に使う，ことをシステム全体で予め定めておけばよい。
【００５５】
図５は，上記の処理によって作成された暗号化コンテンツ１０６の構造の概略の一例を示している。暗号化コンテンツ１０６は，ヘッダ５０１と暗号化コンテンツ本体５０２の２箇所から構成されている。暗号化コンテンツ本体５０２は，コンテンツ１０５を暗号化したものであり，ヘッダ５０１には，暗号化されたセッション鍵や，暗号化コンテンツ本体５０２のどの領域がどの権限をもつ利用者によって復号（閲覧）できるかを示すためのコンテンツ区切り情報を格納する。ヘッダ５０１の具体的な構成方法については後述する（図１０参照）。
【００５６】
なお，暗号化コンテンツ１０６の構造は必ずしも図５に示した方法でなくともよい。例えば，図１０で示すＸＭＬを用いてヘッダ５０１を構成した場合には，ヘッダ５０１には，暗号化されたセッション鍵，暗号化コンテンツ本体５０２の分割したコンテンツ区切り情報の他，暗号化されたコンテンツそのものを含んでおり，暗号化コンテンツ本体５０２には，元の文書のフォーマットを格納し，暗号化されたコンテンツそのものは含まない。
【００５７】
図６に，復号ＰＧを実行することによる復号処理の手順の概略を示している。復号の手順は次のとおりである。
６００：開始
６０１：暗号化コンテンツ本体５０２を分割
６０２：復号していない部分コンテンツがまだあればステップ６０３へ，なければステップ６０６へ
６０３：当該部分コンテンツに対応する暗号化されたセッション鍵を，利用者から与えられた復号鍵の情報を元に，復号することが可能ならばステップ６０４へ，可能でなければステップ６０２へ
６０４：暗号化されたセッション鍵を，復号鍵１１２を用いて復号
６０５：復号したセッション鍵を用い，暗号化された部分コンテンツを復号し，ステップ６０２へ
６０６：ステップ６０５で復号した，一つ以上の部分コンテンツから元のコンテンツ（復号コンテンツという）を構成
６０７：終了
ステップ６０１における暗号化コンテンツ本体５０２の分割では，例えば以下のようにする。暗号化においてヘッダ５０１を生成する際に（ステップ４０７），コンテンツ区切り情報８０３内に暗号化コンテンツ本体５０２内のどの領域（どの部分コンテンツ）がどの利用者によって閲覧可能なのかを明記（例えば，暗号化コンテンツ本体５０２のｎバイト目からｍバイト目までが利用者Ｕによって閲覧可能など）しておく。ステップ６０１では，この情報を参照して，暗号化コンテンツ本体５０２から，暗号化されたセッション鍵，暗号化された部分コンテンツを取り出す。また，復号された部分コンテンツから，コンテンツ区切り情報内に記載された情報をもとに，復号コンテンツの構成を行う（ステップ６０６）。
【００５８】
なお，復号装置１０２において，復号コンテンツの一部修正を行う場合には，修正した部分コンテンツに対して，再度セッション鍵の生成を行い，部分コンテンツの暗号化，及び，セッション鍵の暗号化を行い，暗号ディジタルコンテンツ１０６の更新を行えばよい。
【００５９】
なお，後述するＸＭＬを用いたヘッダ５０１の構成では，部分コンテンツは要素毎に管理されており，その要素（ＭＲＢｌｏｃｋ要素）を参照することによって，上記の暗号化されたセッション鍵，暗号化された部分コンテンツなどを取り出すことができる。また，復号コンテンツの構成に当たっては，ＴａｒｇｅｔＬｉｓｔ要素内のＴａｒｇｅｔ要素を参照し，復号されたコンテンツをＴａｒｇｅｔ要素内に記述された要素内に復号されたコンテンツを記述することによって行う（詳細は後述する）。
【００６０】
また，上記の処理において，復号鍵１１２は，暗号化コンテンツ５０２から参照可能であることが望ましいが，プログラムの実行に先立ち，利用者が所有している復号鍵１１２を明示的に復号ＰＧに引数として与えてもよい。このとき，プログラム上では，復号鍵１１２は，復号鍵１１２そのものではなく，復号鍵１１２への参照であってもよい。
【００６１】
なお，復号処理の手順は，必ずしもステップ６００からステップ６０７の通りでなくともよい。例えば，ステップ６０６の復号コンテンツの構成は，各部分コンテンツ毎にステップ６０５で復号処理を行った後に行ってもよい。
【００６２】
次に，鍵管理装置１０３における鍵管理方法（暗号化鍵１１１，復号鍵１１２の利用者への割当て方法）について述べる。
【００６３】
図７は鍵管理装置１０３における鍵管理方法の一例を示している。本鍵管理方法では，例えば社内などのグループの階層構造に着目し，各利用者，グループをそれぞれ，端点，節点または根（ノードと総称する）とする木構造として表現する。各ノードには，それぞれ異なる暗号化鍵１１１と復号鍵１１２の組を割当て，各利用者には，自らに割り当てられた端点から木のルート（根）までの経路に属する全ての復号鍵１１２を配布する。
【００６４】
例えば，図７に示した例において，利用者Ｕ１は，部Ｂ１，課Ｋ１に所属している。そのため，利用者Ｕ１には，自らに割り当てられたノードからルートノードまでの経路上にある鍵，利用者Ｕ１の個人鍵ＫＵ１＝（ＰＵ１，ＳＵ１），課の共有鍵ＫＫ１＝（ＰＫ１，ＳＫ１），部の共有鍵ＫＢ１＝（ＰＢ１，ＳＢ１），．．．が，割り当てられる。ここで，ＳＵ１，ＳＫ１，ＳＢ１は復号鍵１１２であり，ＰＵ１，ＰＫ１，ＰＢ１は，それらに対応した暗号化鍵１１１である。したがって，鍵管理装置１０３は利用者Ｕ１に，利用者Ｕ１に割り当てられたノードからルートノードまでの経路に割り当てられた復号鍵ＳＵ１，ＳＫ１，ＳＢ１，．．．を配布する。
【００６５】
なお，同一の利用者が複数の部署に属する場合には，例えば，異なる利用者として木のノードとして表現し，それぞれのノードからルートノードまで経路に割り当てられた復号鍵１１２を，その利用者に配布すればよい。このとき，例えば二つの経路が重なる場合など，利用者に配布する復号鍵１１２に重複する場合には，重複した復号鍵１１２のうち一つを配布すればよい。また，利用者自身に相当するノード（端点，リーフともいう）についても，それらのうち一つに暗号化鍵１１１，復号鍵１１２を割り当て，これを配布，公開すればよい。
【００６６】
このような鍵管理方法によって，以下のように利用者間での暗号化コンテンツ１０５のやりとりを効率的に行うことが可能となる。
【００６７】
本実施例で述べた暗号化処理部２１１では，部分コンテンツ毎に生成されたセッション鍵を，その領域を閲覧可能な利用者の暗号化鍵１１１を用いて暗号化し，ヘッダ５０１に格納する（ステップ４０６）。そのため，同一の領域に対して複数の利用者が閲覧する場合には，セッション鍵を複数の暗号化鍵１１１で暗号化するため，ヘッダ５０１のデータサイズが増加する。各利用者固有の暗号化鍵１１１の代わりに，部・課での共有している暗号化鍵ＰＫ１，ＰＢ１を用いることによって，部，課の共有情報に対しては，セッション鍵の暗号化を集約することができ，暗号化コンテンツ１０６のヘッダ５０１のデータサイズを削減できる（暗号化，復号の具体例については図８，９を参照）。
【００６８】
鍵管理装置１０３は，各利用者，及びグループに割り当てられた暗号化鍵を公開する。なお，前述したように，各利用者に割り当てられた復号鍵は，例えばＩＣカードなど，耐タンパ性を持った装置内に格納し，そのＩＣカードを各利用者に配布することが望ましい。
【００６９】
本鍵管理方法においては，利用者の追加，削除，移動等が行われた場合には，新たに鍵の生成，共有鍵の更新などを行い，追加された利用者はそれ以前に暗号化されたコンテンツを，削除された利用者はそれ以降に暗号化されたコンテンツを，それぞれ不正に閲覧できないようにすることが望まれる。
【００７０】
これを達成するためには，以下のようにする。
【００７１】
まず，利用者が削除される場合には，削除される利用者に対応する端点から根までの経路上にある，端点，根を含む節点の暗号化鍵１１１と復号鍵１１２の組を全て更新する。更新後，鍵管理装置１０３は，更新された復号鍵１１２をその節点が表す利用者またはグループに属する利用者に配布し，暗号化鍵１１１の公開を行う。
【００７２】
また，利用者が追加される場合も同様に，その利用者を木構造上の端点として追加し，端点から根までの経路上にある，端点，根を含む節点の暗号化鍵１１１，復号鍵１１２の組を全て更新する。更新後，鍵管理装置１０３は，更新された復号鍵１１２をその節点が表すグループに属する利用者に配布し，暗号化鍵１１１の公開を行う。
【００７３】
例えば，図７において，利用者Ｕ１を削除する場合には，課と部の共有鍵ＫＫ１，ＫＢ１を更新し，利用者Ｕ２，Ｕ３に更新された復号鍵ＳＫ１，ＳＢ１を，また，利用者Ｕ４，Ｕ５，Ｕ６には更新された復号鍵ＳＢ１を配布し，暗号化鍵ＰＫ１，ＰＢ１を公開する。
【００７４】
図７において，利用者Ｕ１が新たに追加された利用者である場合には，利用者Ｕ１の鍵ＫＵ１を新たに生成し，課Ｋ１，部Ｂ１の共有鍵，ＫＫ１，ＫＢ１を更新する。更新後，利用者Ｕ１に対して復号鍵ＳＵ１，ＳＫ１，ＳＢ１の配布を行い，また，利用者Ｕ２，Ｕ３に対して復号鍵ＳＫ１，ＳＢ１を，利用者Ｕ４，Ｕ５，Ｕ６に対しては，復号鍵ＳＢ１をそれぞれ配布し，対応する暗号化鍵ＰＵ１，ＰＫ１，ＰＢ１を公開する。
【００７５】
上記の鍵更新処理において，復号鍵１１２をＩＣカードなどの外部記憶媒体１１０に格納している場合，更新された復号鍵１１２の配布にあたって，再度外部記憶媒体１１０の回収と再配布を行うと，時間やコストが増大するといった問題が生じる。このような場合には，ネットワーク１００を介して更新後の復号鍵１１２を配布してもよい。なお，ネットワーク１００を介して復号鍵１１２を配布する場合，以下のようにすることによって，安全に更新後の復号鍵１１２を配布することができる。
【００７６】
利用者が削除された場合には，まず更新された復号鍵１１２が割り当てられた節点の下位の端点，節点に割り当てられた暗号化鍵１１１を用いて，更新後の復号鍵１１２をそれぞれ暗号化し，暗号化に使用した暗号化鍵１１１に対応する復号鍵１１２を持つ利用者に配布する。また，利用者が追加された場合には，更新された復号鍵１１２を更新前の暗号化鍵１１２を用いて暗号化し，その暗号化鍵１１１に対応する復号鍵１１２（更新前の復号鍵１１２）を持つ利用者に配布する。
【００７７】
なお，以上の処理において，更新後の復号鍵１１２を同一の利用者に複数配布する場合，上記処理において暗号化を行った暗号化鍵１１１のうち，その利用者が持つ最も下位の端点，節点に割り当てられた暗号化鍵１１１を用いて，これら複数の復号鍵１１２をまとめて暗号化して，配布してもよい。
【００７８】
具体的には，上記の例において，利用者Ｕ１を削除する場合には，利用者Ｕ２，Ｕ３に対しては，課Ｋ１，部Ｂ１の復号鍵ＳＫ１，ＳＢ１をそれぞれ利用者Ｕ２，Ｕ３の暗号化鍵ＰＵ２，ＰＵ３を用いて暗号化して送信する。また，利用者Ｕ４，Ｕ５，Ｕ６に対しては，部共有の復号鍵ＳＢ１を課Ｋ２の暗号化鍵ＰＫ２を用いて暗号化して配布する。
【００７９】
また，利用者Ｕ１が新たに追加された利用者である場合には，利用者Ｕ２，Ｕ３に対して，課Ｋ１，部Ｂ１の復号鍵ＳＫ１，ＳＢ１を更新前の暗号化鍵ＰＫ１を用いて暗号化し配布する。また，利用者Ｕ４，Ｕ５，Ｕ６に対しては，更新後の暗号化鍵ＫＢ１を課Ｋ２の暗号化鍵ＰＢ２を用いて暗号化し配布する。なお，利用者Ｕ１への復号鍵ＳＫ１，ＳＢ１，ＳＵ１の配布に当たっては，復号鍵１１２を格納している外部記憶媒体１１０を手渡しするなど，直接利用者Ｕ１に配布することが望ましい。
【００８０】
なお，上記の処理において利用者に対して復号鍵１１２を配布する場合には，他の利用者に誤って復号鍵１１２を配布することや悪意のある利用者に不正な復号鍵１１２が漏洩しないよう，利用者の認証を行うことが望ましい。
【００８１】
以上のようにすることによって，鍵管理装置１０３から利用者への鍵配布を安全に行うことが可能となる。
【００８２】
本鍵管理方法を利用したコンテンツの暗号化の方法を以下に示す。
【００８３】
図８は，図７に示した鍵管理方法を利用した場合のコンテンツ１０５の暗号化処理の一例を模式的にあらわしている。図８に示したとおり，コンテンツ１０５は，コンテンツ内の情報に応じて分割され（ステップ４０１に対応），それぞれの領域を閲覧できる利用者の権限応じて暗号化処理が行われる（ステップ４０２から４０７に対応）。図４の処理フローに示したとおり，暗号化に際しては，各領域にセッション鍵８０２を生成し，これを用いてコンテンツ１０５を暗号化する。また，セッション鍵８０２を，暗号化鍵１１１を用いて暗号化する。
【００８４】
ここで，図８に示したように，同一領域を異なる権限を持った複数の利用者に対して，特定の情報を開示したい場合（図８内の暗号化コンテンツ本体５０２の領域α部分）には，セッション鍵８０２をそれぞれの権限に応じた暗号化鍵で別々に暗号化を行い，複数の暗号化されたセッション鍵８０１を作成する。例えば，図８に示した例では，暗号化コンテンツ本体５０２の領域α８０４は利用者Ｕ１，Ｕ５，それぞれに開示される。この場合には，利用者Ｕ１，Ｕ５固有の暗号化鍵であるＰＵ１，ＰＵ５を用いてセッション鍵８０２をそれぞれ別々に暗号化する。これによって，利用者Ｕ１，及び，利用者Ｕ５は，自分の所有する復号鍵ＳＵ１，ＳＵ５を利用して，暗号化コンテンツ本体５０２の領域α部分を閲覧することができ，その他の利用者は，暗号化されたセッション鍵を復号できないので，該当する暗号化されたコンテンツを閲覧することができなくなる。
【００８５】
図９は，図８の暗号化コンテンツ１０６を，利用者Ｕ５が復号する場合の処理を模式的にあらわしている。図７に示すとおり，利用者Ｕ５が所持する復号鍵がＳＵ５，ＳＫ２，ＳＢ１であるため，利用者Ｕ５が復号できる箇所は，図８においてＰＵ５，ＰＢ１を用いて暗号化した領域となる（それぞれ領域α８０４，領域γ８０６に対応）。復号の際には，図６のステップ６００から６０６に示した手順に従い，暗号化コンテンツ１０６のヘッダ５０１を参照（ステップ６０１）し，利用者Ｕ５が所持する復号鍵で復号可能な領域の特定（ステップ６０３），暗号化されたセッション鍵８０１を，復号鍵１１２を用いて復号（ステップ６０４）し，復号されたセッション鍵８０２を利用して暗号化された部分コンテンツの復号（ステップ６０５），復号コンテンツ９０１の構成（ステップ６０６）を行う。
【００８６】
なお，図９中の黒く塗潰されて表示されている領域は，暗号化コンテンツ１０６のうち，利用者Ｕ５が所持する復号鍵では復号できなかった領域を表している。
【００８７】
次に第一の実施例におけるデータ表現方法と復号コンテンツの表示方法の一例について示す。
【００８８】
図１０は，暗号化コンテンツヘッダ５０１の構成例の一例を示している。なお，図１０ではＸＭＬを用いて暗号化コンテンツ５０２を使用しているが，例えばＰＤＦを利用するなど，必ずしもＸＭＬを利用する必要はない。以下，図１０に示すＸＭＬによるデータフォーマットについて説明を行う。
【００８９】
暗号化コンテンツ５０１のヘッダは，ＭＲＣｉｐｈｅｒ要素１０００によって構成され，ＭＲＣｉｐｈｅｒ要素１０００は，ＭＲＣｉｐｈｅｒＰａｒａｍ要素１００１とＭＲＢｌｏｃｋｓ要素１００３の二つの要素から構成される。ＭＲＣｉｐｈｅｒＰａｒａｍ要素１００１は，暗号ＰＧ２１６，復号ＰＧで暗号化・復号処理を行う際に共通的に使用するパラメータを設定するための要素で，例えば暗号化に使用する共通鍵暗号技術のアルゴリズムなどを設定する。また，ＭＲＢｌｏｃｋｓ要素１００３は，分割されたコンテンツの各領域を復号するために必要な情報を記述する。以下，図１０におけるＭＲＣｉｐｈｅｒＰａｒａｍ要素１００１，ＭＲＢｌｏｃｋｓ要素１００３の詳細について述べる。
【００９０】
ＭＲＣｉｐｈｅｒＰａｒａｍ要素１００１は，ＥｎｃｒｙｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１００２から構成される。ＥｎｃｒｙｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１００２には，コンテンツの暗号化に使用する共通鍵暗号技術のアルゴリズム名を指定する。例えば，１２８ビット鍵のＡＥＳをＣＢＣモードで使用する場合には，“ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／２００１／０４／ｘｍｌｅｎｃ＃ａｅｓ１２８−ｃｂｃ”をＥｎｃｒｙｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１００２のＡｌｇｏｒｉｔｈｍ属性に記述すればよい。
【００９１】
ＭＲＢｌｏｃｋｓ要素１００３はＭＲＢｌｏｃｋ要素１００４から構成される。ＭＲＢｌｏｃｋ要素１００４は，分割されたコンテンツの各領域の復号に必要な情報を記述するための要素であり，ＥｎｃｒｙｐｔｅｄＫｅｙＬｉｓｔ要素１００５，ＴａｒｇｅｔＬｉｓｔ要素１００９，ＣｉｐｈｅｒｔｅｘｔＤａｔａ要素１０１１から構成される。
【００９２】
ＥｎｃｒｙｐｔｅｄＫｅｙＬｉｓｔ要素１００５には，セッション鍵８０２の復号に使用する復号鍵１１２の指定と暗号化されたセッション鍵８０１を記述する。セッション鍵８０２の復号に使用する復号鍵１１２の指定は，ＥｎｃｙｒｐｔｅｄＫｅｙ要素１００６内のＫｅｙ＿ｉｄ属性によって行う。Ｋｅｙ＿ｉｄ属性によって復号鍵１１２の指定を行うためには，それぞれの復号鍵１１２に対して予め一意な識別子を定めておけばよい。例えば，図７に示した鍵管理方法では，ＫＢ１，ＫＫ１などを識別子として使用すればよい。
【００９３】
ＥｎｃｙｐｔｅｄＫｅｙ要素１００６は，ＫｅｙＥｎｃｙｔｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１００７，ＥｎｃｒｙｐｔｅｄＳＥＫＶａｌｕｅ要素１００８の二つから構成される。ＫｅｙＥｎｃｙｔｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１００７は暗号化されたセッション鍵８０１を復号するための暗号アルゴリズムを記述し，ＥｎｃｒｙｐｔｅｄＳＥＫＶａｌｕｅ要素１００８は，暗号化されたセッション鍵８０１をＢＡＳＥ６４符号化した文字列を記述する。
【００９４】
なお，同一の領域に対して，異なる権限を持つ複数の利用者の閲覧を許可する場合には，ＥｎｃｒｙｐｔｅｄＫｅｙＬｉｓｔ要素１００５内に複数のＥｎｃｒｙｐｔｅｄＫｅｙ要素１００６を用意すればよい。
【００９５】
対象となる領域（例えば，ＸＭＬの要素）の指定は，ＴａｒｇｅｔＬｉｓｔ要素１００９によって行う。例えば，対象となるコンテンツ１０５がＸＭＬ文書で，要素毎に閲覧できる利用者の制限を行っている場合には，復号の対象となる領域（要素の値）をＴａｒｇｅｔＬｉｓｔ要素１００９内のＴａｒｇｅｔ要素１０１０に，ＸＰａｔｈやＵＲＩなどを利用して指定すればよい。同一の権限を持つ利用者によって閲覧できる領域が複数ある場合には，Ｔａｒｇｅｔ要素１０１０を複数用意すればよい。これがＭＲＣｉｐｈｅｒ要素１０００を利用した場合のコンテンツ区切り情報８０３となる。
【００９６】
図１０に示すフォーマットでは，暗号化されたコンテンツはＣｉｐｈｅｒｔｅｘｔＤａｔａ要素１０１１にまとめてＢＡＳＥ６４符号化した文字列として記述する。そのため，同一の権限を持つ利用者によって閲覧できる領域（要素）が複数ある場合など，復号されたデータのどの部分がどの要素の値に対応するかを特定しなければならない場合がある。この場合には，ＣｉｐｈｅｒｔｅｘｔＤａｔａ要素１０１１の属性として復号されたデータのｎバイト目からｍバイト目までが要素Ａに対応といった情報を，例えばＴａｒｇｅｔ要素１０１０の属性として持たせておく，或いは暗号化の際に，暗号化の対象となる要素だけでなく，長さも含めて暗号化し，復号した際にどこまでがどの要素に対応するかを，復号装置１０２によって判別できるようにしておく。例えば，長さ情報を含めて暗号化する場合には，Ｔａｒｇｅｔ要素１０１１で得られた対象領域（要素）をＡＳＮ．１のＢＩＴ ＳＴＲＩＮＧ型を用いて表現するなどすればよい。これによって，対象領域の長さを明確にできる。
【００９７】
なお，図１０に示すようにＣｉｐｈｅｒｔｅｘｔＤａｔａ要素１０１１内を利用する場合には，暗号化に際して，Ｔａｒｇｅｔ要素１０１０によって指定された対象領域は，コンテンツ１０５から削除する（例えば，ステップ４０５を行う際に実行する）。また，これを復号する際には，暗号化の際に削除された対象領域をＴａｒｇｅｔ要素１０１１内の情報を，復号されたコンテンツを用いて復元することによって，復号コンテンツの構成を行う（図６においては，ステップ６０７に対応）。
【００９８】
図１０に示す暗号化ヘッダ５０１は必ずしも暗号化コンテンツ１０６の先頭にある必要はなく，ヘッダ５０１の構成は図１０の通りでなくともよい，例えば，Ｋｅｙ＿ｉｄ属性で指定された復号鍵１１２から，セッション鍵８０２を暗号化したアルゴリズムが自明であればＫｅｙＥｎｃｒｙｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素は不要である。また，図１０では各領域の暗号化されたデータはＣｉｐｈｅｒｔｅｘｔＤａｔａ要素１０１１にまとめて記述しているが，例えば，暗号化の対象となる領域を暗号化されたデータと置き換えてもよい。この場合には，ＣｉｐｈｅｒｔｅｘｔＤａｔａ要素１０１１は不要である。
【００９９】
さらに，暗号化に際しては，ＴａｒｇｅｔＬｉｓｔ要素１００９も暗号化してＣｉｐｈｅｒｔｅｘｔＤａｔａ要素１０１１に含めてもよい。これによって，どの領域が暗号化されているかも，権限を持った利用者にだけ開示することができる。
【０１００】
暗号化ヘッダ５０１の実現方法は，ＸＭＬに限ったものでなくともよい。例えば，ＡＳＮ．１などのデータ記述言語を利用してもよい。また，図１０に示すフォーマットでは，独自に定めたフォーマットを利用しているが，例えばＸＭＬ Ｅｎｃｒｙｐｔｉｏｎのフォーマットを利用して，図１０と等価な表現を有するフォーマットを利用してもよい。なお，ＸＭＬ  Ｅｎｃｒｙｐｔｉｏｎについては，以下の文献に詳しい。XML Encryption Syntax and Processing W3C Recommendation 10 December 2002   URL:<http://www.w3.org/TR/xmlenc-core/>
図１１は，暗号化コンテンツ１０６がＸＭＬを用いて表現されていた場合に，暗号化コンテンツ１０６を復号し，表示装置２０５で表示するまでのフローの一例を示している。暗号化コンテンツ１０６は，復号ＰＧ１１０１に入力され，図６（または図９）に示した処理フローにしたがって復号され，復号コンテンツ９０１に変換される。復号コンテンツ９０１に対して，表示スタイル定義ファイル１１０５を用いて，復号コンテンツ変換ＰＧ１１０２を用いて表示イメージソース１１０６を生成し，これを用いて表示用ＰＧ１１０３を通して表示装置２０５上に復号コンテンツ９０１を表示する。図１１において，復号コンテンツ変換ＰＧ１１０２，表示スタイル定義ファイル１１０５，表示イメージソース１１０６は，ＸＳＬＴ，ＸＳＬ，ＨＴＭＬであり，ＸＳＬＴ以降の処理は，例えば一般的なＷｅｂブラウザを用いて行うことができる。
【０１０１】
暗号化コンテンツ１０６の復号処理において復号できなかった領域は，図１１に示す復号コンテンツ表示イメージ１０７上では，黒く塗潰して表示している。図１１に示した例では，復号コンテンツ表示イメージ１０７の顧客情報以下にある表が黒く塗潰されて表示されており，この復号コンテンツ表示イメージ１０７を閲覧する利用者にはこの領域を閲覧する権限がないことをあらわしている。なお，復号コンテンツイメージ表示イメージ１０７において，復号できなかった領域の表示は必ずしも黒く塗潰す必要はなく，他の表示方法を用いても良いし，その領域自体を表示しなくてもよい。
【０１０２】
図１１では，暗号化コンテンツ１０６，復号コンテンツ９０１としてＸＭＬを用い，また表示イメージソース１１０６としてＨＴＭＬを用いて表記した場合について示したが，これと異なっていてもよい。例えば，暗号化コンテンツ１０６がＰＤＦを用いて表記されている場合には，復号コンテンツ９０１，表示イメージソース１１０６をともにＰＤＦとすることができ，復号コンテンツ変換ＰＧ１１０２を省略することができる。また，復号ＰＧ１１０１と復号コンテンツ変換ＰＧ１１０２を同一プログラムとみなし，暗号化コンテンツ１０６から直接表示イメージソース１１０６を出力するなど，図１１の実現例には多様な実装方法がありえる。
【０１０３】
なお，セキュリティ上の観点からは，復号コンテンツ９０１，表示イメージソース１１０６はファイル等，外部記憶装置２０３，外部記憶媒体１１０に保存できない状態で利用されることが望ましい。
【０１０４】
業務フローにおいては，コンテンツを閲覧する各利用者が，コンテンツが改ざんされていないかどうかを検証することが可能であることが望まれる場合がある。この場合には，暗号化装置１０１において，生成された暗号化コンテンツ１０６に対して，電子署名の付与などを行うことが望ましい。これによって，暗号化コンテンツ１０６の完全性を保証することが可能となる。なお，電子署名の付与にあたっては，暗号化コンテンツ本体５０２だけでなく，暗号化されたセッション鍵８０１などの付加情報も含めて電子署名の生成を行うことが望ましい。
【０１０５】
電子署名の付与を行う場合には，暗号化装置１０１の外部記憶装置２０３に，署名生成ＰＧ，利用者の署名用秘密鍵が格納される。また，復号装置１０２の外部記憶装置２０３には，検証ＰＧと検証用公開鍵が格納される。
【実施例２】
【０１０６】
第２の実施例では，本発明をクレジットカードの申し込みにおける申込書の処理フローに適用した場合について述べる。
【０１０７】
図１２，図１３は，本発明をクレジットカード申込みに適用した場合の処理フローの一例を示している。本実施例における業務フローシステムは，図１２，図１３に示した，申込み装置１２２０，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３の４つの装置と，これらの装置に暗号化鍵１１１，復号鍵１１２を配布する鍵管理装置１０３から構成される。ここで，申込み装置１２２０は，図１の暗号化装置１０１に，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３は，ともに図１の復号装置１０２に相当し，申込み装置１２２０には暗号化鍵１１１が，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３には，それぞれの権限に応じて復号鍵１１２が，鍵管理装置１０３から配布される。また，申込書はコンテンツ１０５に，暗号化された申込書は暗号化コンテンツ１０６に相当する。処理フローは次のとおりである。
１２００：開始
１２０１：申込み装置１２２０内のコンテンツ作成・読込処理部２１０を用いて，申込書の作成，または，読込を行い，さらにコンテンツ暗号化処理部２１１が申込書の暗号化を行う。
１２０２：申込み装置１２２０内のコンテンツ送信処理部２１２が暗号化された申込書を受付装置１２２１に送信する。
１２０３：受付装置１２２１内のコンテンツ受信部が，暗号化された申込書を受信する。
１２０４：受付装置１２２１内のコンテンツ復号処理部が暗号化された申込書の復号を行い，さらにコンテンツ表示処理部で復号コンテンツの表示を行い，表示結果から申込書の内容の確認を行う。
１２０５：受付装置１２２１内のコンテンツ送信処理部２１２が，暗号化された申込書を与信確認装置１２２２に送信する。
１２０６：与信確認装置１２２２内のコンテンツ受信処理部が，暗号化された申込書を受信する。
１２０７：与信確認装置１２２２内のコンテンツ復号処理部が暗号化された申込書の復号を行い，さらにコンテンツ表示処理部で復号コンテンツの表示を行い，表示結果から内容の閲覧，与信審査を行う。
１２０８：与信確認装置１２２２が，審査結果を受付確認装置１２２１に送信する。
１３０２：受付装置１２２１が，与信確認置１２２２からの与信結果を受信する。
１３０３：受付装置１２２１内のコンテンツ送信処理部２１２が，暗号化された申込書を口座登録装置１２２３に送信する。
１３０４：口座登録装置１２２３内のコンテンツ受信処理部が，暗号化された申込書を受信する。
１３０５：口座登録装置１２２３内のコンテンツ復号処理部が暗号化された申込書の復号を行い，コンテンツ表示処理部で復号コンテンツの表示を行い，申込書の内容確認，口座番号の登録を行う。
１３０６：口座登録装置１２２３が，口座登録完了の通知を受付装置１２２１に送信する。
１３０７：受付装置１２２１が，口座登録完了の通知を受信する。
１３０８：受付装置１２２１内のコンテンツ復号処理部が，暗号化された申込書を復号し，コンテンツ表示処理部が復号コンテンツの表示を行い，表示結果からカード利用者情報としてデータベースへの登録を行う。また，申込書の保管を行う。
１３０９：受付装置１２２１が，申込み装置１２２０へ登録完了の通知を送信する。
１３１０：申込み装置１２２０が，登録完了の通知を受信する。
１３１１：終了
図１２，図１３において，申込み装置１２２０，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３は，それぞれ，申込み利用者のＰＣなどの電子計算機端末，クレジットカード会社内の業務端末，審査機関の業務端末，銀行内の業務端末などである。なお，図１２，図１３において，この処理フローを構成する各装置の構成は，必ずしもこの通りでなくともよい。例えば，新規利用者がクレジットカード会社の窓口で直接申し込みを行う場合には，申込み装置１２２０と受付確認装置１２２１は，ともにクレジットカード会社内の業務端末となる。
【０１０８】
ステップ１２０１における申込書の暗号化，及び，ステップ１２０４，１２０７，１３０５，１３０８における暗号化された申込書の復号は，それぞれ，第一の実施例で述べた図４，図６の処理にしたがって処理が行われる。上記の処理フローでは，申込みから登録が完了する場合のフローを示しているが，例えばステップ１２０４での登録内容の確認において登録内容に誤りがあるなど，処理の過程で利用者の登録ができない状況が発生した場合には，申込み装置１２２０に登録失敗の通知を行う等の処理を行い，処理の停止，或いは，再処理の要求を行う。
【０１０９】
図１４は，本実施例において利用される申込書のイメージ図である。なお，申込書のフォーマットとしては，例えばＸＭＬなどを利用して表現することができる。図１４に示した申込書は，項目毎に区切られ，図４の処理にしたがって暗号化が行われる。ここで，図１４の表に示した領域は，各フィールドを暗号化する暗号化鍵１１１の種類をあらわしている（すなわち，申込者氏名，住所，生年月日は同一の鍵を用いて暗号化される。）。
【０１１０】
ここで，申込み装置１２２０，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３には，鍵管理装置１０３は，以下のようにして鍵の配布を行う。
【０１１１】
まず，鍵管理装置１０３において，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３に対して，それぞれ固有の暗号化鍵１１１，復号鍵１１２の生成を行う。以下では，これをそれぞれ，ＫＸ＝（ＰＸ，ＳＸ），ＫＹ＝（ＰＹ，ＳＹ），ＫＺ＝（ＰＺ，ＳＺ）とする。ここで，ＰＸ，ＰＹ，ＰＺは暗号化鍵１１１であり，ＳＸ，ＳＹ，ＳＺは復号鍵１１２である。なお，以下の説明では，鍵管理装置１０３は，各装置に対して鍵の配布を行っているが，各装置の利用者に対して行ってもよい。また，鍵の生成は，必ずしも鍵管理装置１０３において行わなくてもよい。
【０１１２】
次に，申込み装置１２２０に，暗号化鍵ＰＸ，ＰＹ，ＰＺを配布し，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３に対して，それぞれＳＸ，ＳＹ，ＳＺを配布する。ここで，ＳＸ，ＳＹ，ＳＺの配布は，暗号化通信を行う，或いは，ＩＣカードなどの耐タンパ性を持った媒体に格納し，これを直接，各装置の利用者に対して配布することが望ましい。
【０１１３】
申込み装置１２２０において，申込書の暗号化する際には，以下のようにする。まず，図１４に示したフィールドＡ，Ｂ，Ｃ，Ｄに対して，乱数生成器などを用いてセッション鍵８０２の生成を行う。次に生成されたセッション鍵に対して，各装置の暗号化鍵１１１を用いて暗号化を行う。ここで，領域Ａに対するセッション鍵は，ＰＸ，ＰＹ，ＰＺを用いてそれぞれ個別に暗号化を行い，さらに領域Ｂに対するセッション鍵にはＰＸ，ＰＺを，領域Ｃのセッション鍵にはＰＸ，ＰＹを，領域Ｄのセッション鍵にはＰＸを用いてそれぞれ個別に暗号化を行い，暗号化されたセッション鍵８０１の生成を行う。
【０１１４】
これによって，例えば，与信確認装置１２２２では，復号鍵ＳＹによって復号できる領域Ａ，Ｃが閲覧でき，口座登録装置１２２３では，復号鍵ＳＺによって復号できる領域Ａ，Ｂが閲覧できる。
【０１１５】
図１５は，口座登録装置１２２３において閲覧される復号された申込書の表示イメージ（復号コンテンツ表示イメージ１０７に相当）の一例である。図１５に示したように，口座登録装置１２２３では，口座登録に不要な情報（年収，暗証番号等）は復号するができないため，墨塗りされて表示される。同様に与信確認装置１２２２では，与信確認に不要な情報（ＩＤ,暗証番号）などは表示（復号）されないように暗号化処理が施される。
【０１１６】
上記の例では，各装置（或いは，その利用者）に着目して，鍵（権限）の割当てを行っているが，本実施例の場合，申込書内のフィールドに着目して鍵（権限）の割当てを行ってもよい。その場合，暗号化鍵１１１，復号鍵１１２の配布，申込装置１２２０における暗号化は，以下のようになる。
【０１１７】
まず，鍵管理装置１０３において，各領域Ａ，Ｂ，Ｃ，Ｄに対して，暗号化鍵１１１と復号鍵１１２の生成を行う。これを，それぞれＫＡ＝（ＰＡ，ＳＡ），ＫＢ＝（ＰＢ，ＳＢ），ＫＣ＝（ＰＣ，ＳＣ），ＫＤ＝（ＰＤ，ＳＤ）とする。ここで，ＳＡ，ＳＢ，ＳＣ，ＳＤは復号鍵１１２であり，ＰＡ，ＰＢ，ＰＣ，ＰＤは，それに対応する暗号化鍵１１１である。
【０１１８】
さらに鍵管理装置１０３は，上記の生成された暗号化鍵ＰＡ，ＰＢ，ＰＣ，ＰＤを公開し，申込み装置１２２０から取得できるようにする。また，受付装置１２２１に復号鍵ＳＡ，ＳＢ，ＳＣ，ＳＤを，与信確認装置１２２２に復号鍵ＳＡ，ＳＣを，口座登録装置１２２３に復号鍵ＳＡ，ＳＢを配布する。
【０１１９】
なお，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３への復号鍵１１２の配布は，装置に直接復号鍵１１２を送付するのではなく，各装置の利用者に送付してもよい。また，復号鍵１１２の配布に当っては，暗号化通信を利用する，或いは，ＩＣカードなどの耐タンパ性のある媒体に復号鍵１１２を格納し，これを各装置の利用者に直接渡すなど，することが望ましい。
【０１２０】
申込書を暗号化する際には，以下のようにする。まず，各領域Ａ，Ｂ，Ｃ，Ｄに対して，乱数生成器などを用いて，セッション鍵８０２の生成を行う。次にＡ，Ｂ，Ｃ，Ｄの各領域に対して生成されたセッション鍵８０２に対して，それぞれ，暗号化鍵ＰＡ，ＰＢ，ＰＣ，ＰＤを用いて暗号化を行い，暗号化コンテンツ１０６の生成を行う。
【０１２１】
以上の鍵管理方法，及び，暗号化方法によって，前述の各装置に復号鍵１１２を一つずつ割り当てた場合と同様の機能が実現できる。例えば，口座登録装置１２２３は，復号鍵ＳＡ，ＳＢを保持しているので，領域Ａ，Ｂを復号することができる。したがって，口座登録装置１２２３では，領域Ａ（ＩＤ，申込者氏名，住所，生年月日），Ｂ（銀行口座番号）を閲覧することが可能となり，図１５に示す復号コンテンツ表示イメージ１０７を得ることができる。
【０１２２】
本鍵管理方法では，各装置に複数の復号鍵１１２の配布が必要となるが，前述の各装置に一つの復号鍵を配布する方法と比較して，暗号化コンテンツ１０６のデータサイズを削減することができる。
【０１２３】
以上に示した手順（ステップ１２００からステップ１２０８，ステップ１３０２からステップ１３０８）によって，申込書のデータベースの一元管理によらない業務フローが実現できる。本システムでは，申込み装置１２２０，受付装置１２２１，与信確認装置１２２２，口座登録装置１２２３は，例えば暗号化されたデータをメール等を用いて送信することによって，送信先での利用者の権限に応じた適切な情報の開示が可能となる。なお，本実施例における適用例は，この他，旅行代理店における宿泊施設などへの予約申し込みにおけるワンストップサービス，銀行の口座開設における申込書の処理フローなどにも適用できる。なお，ワンストップサービスとは，複数の手続きが必要となる場合に，これら必要となる手続きを，一度の手続きで完了することが可能なサービスのことである。
【０１２４】
例えば，旅行代理店の予約申込みにおけるワンストップサービスでは，以下のようになる。ワンストップサービスのためのシステムは，鍵管理装置１０３と旅行代理店における受付装置（暗号化装置１０１に相当），各宿泊施設，航空会社などにおける複数の予約登録装置（復号装置１０２に相当）から構成される。鍵管理装置１０３は，受付装置に対して暗号化鍵１１１の送付，予約登録装置に対して復号鍵１１２を配布する。旅行代理店では，受付装置からにおいて申込書を宿泊施設，航空会社などの予約登録装置に送信する。このとき，本実施例と同様の暗号化処理を施すことによって，各予約登録装置において適切な情報開示が行われるように暗号化処理を施すことが可能となる。
【０１２５】
また，銀行の口座開設における処理フローの場合には，システムは，鍵管理装置１０３と受付装置（暗号化装置１０１に相当），複数の承認装置１０２（復号装置）から構成される。鍵管理装置１０３は，上記と同様，受付装置に暗号化鍵１１０を，承認装置に復号鍵１１１の配布を行う。申込書への暗号化は受付装置で行い，承認者装置へ送付する。各承認装置は，それぞれの権限に応じた復号鍵１１１を利用することによって，申込書内の選択的な開示を行い，口座登録の承認の可否を決定し，他の承認装置に送付する。このとき，受付装置において，本実施例と同様の暗号化処理を施すことによって，承認装置（承認者）の権限に応じた適切な情報開示が可能となる。
【０１２６】
また，本実施例においても，第一の実施例と同様，暗号化された申込書に申込者の電子署名を付与することよって，暗号化された申込書の改ざんを検知することができ，申込書の改ざんを防ぐことができるようになる。
【実施例３】
【０１２７】
実施例１，２によって，利用者に応じてコンテンツを部分的に開示することが可能となり，これによって業務フローシステムを構成することができる。
【０１２８】
しかしながら，実施例１，２に示した暗号化処理では，どの利用者から順に閲覧を許可するかという順序の制御までは行っていない。そこで，本実施例では，復号する利用者の順序を制御可能な暗号化方法，及び，その復号方法について述べる。これによって，不正な，または誤った処理フローによって，正規の順序とは異なる順序で利用者にコンテンツが受信された場合でも，正規の受信順序以外では，コンテンツを閲覧することができなくなり，不正な，または誤った処理フローの実行を未然に防ぐことができる。
【０１２９】
図１６は本実施例における暗号化処理の概略を示している。以下に，暗号化処理の概略について示す。なお，以下では，ｉ番目にコンテンツを閲覧する利用者をＵｉとし，コンテンツ１０５はｍ人の利用者（Ｕ１，．．．，Ｕｍ）によって，Ｕ１→Ｕ２→．．．→Ｕｍの順序で閲覧されるものとする。
１６００：開始
１６０１：コンテンツ１０５を部分コンテンツに分割（ステップ４０５に対応）
１６０２：分割されたコンテンツ１０５に開示権限を設定（ステップ４０２に対応）
１６０３：暗号化されていない部分コンテンツがまだあれば，ステップ１６０４へ，なければステップ１６０６へ（ステップ４０３に対応）
１６０４：セッション鍵の生成（ステップ４０４に対応）
１６０５：セッション鍵を用いて，対象となる部分コンテンツを暗号化し，ステップ１６０３へ
１６０６：ｉをｍ＋１として，順序制御用乱数Ｒｍ＋１を生成
１６０７：ｉ＞１なら，ステップ１６０８へ，そうでなければステップ１６１０へ
１６０８：ｉ番目にコンテンツを閲覧する利用者Ｕｉが閲覧可能な部分コンテンツを暗号化したセッション鍵と順序制御用乱数Ｒｉを連結し，利用者Ｕｉの暗号化鍵１１１を利用して暗号化を行い、暗号化した結果をRi-1とする。
１６０９：ｉ←ｉ−１とし，ステップ１６０６へ
１６１０：ヘッダ５０１を構成（ステップ４０７に対応）
１６１１：終了
上記のステップ１６０２の処理において，開示権限の設定は，例えば設定ファイル等に，利用者の閲覧順序と各利用者の閲覧可能な領域を予め書込んでおき，これを用いて行ってもよい。
【０１３０】
ステップ１６０８の処理において，セッション鍵に順序制御用乱数Ｒｉを連結して，暗号化処理を行っている。順序制御用乱数Ｒｉは，さらに次の利用者Ｕｉ−１の暗号化鍵１１１で暗号化される。これによって，利用者ＵｉがＲｉを知るためには，利用者Ｕｉ−１がＲｉ−１を復号することが条件となり，結果として利用者Ｕｉが，暗号化コンテンツ１０６の閲覧が可能となるのは，利用者Ｕｉ−１が閲覧を終了した後になる。
【０１３１】
上記のステップ１６０８では，セッション鍵と順序制御用乱数Ｒｉを連結して暗号化しているが，これと異なっていてもよい。例えば，順序制御用乱数Ｒｉから例えばハッシュ関数などを用いて共通鍵暗号技術における秘密鍵の生成を行い，これを用いてセッション鍵の暗号化を行い，さらにＲｉを利用者Ｕｉの暗号化鍵１１１で暗号化してもよい。
【０１３２】
また，このとき，利用者Ｕｉ-１の順序制御用乱数Ｒｉ−１は，Ｒｉを利用者Ｕｉの暗号化鍵１１１で暗号化した結果と暗号化されたセッション鍵とを連結したものでもよいし，Ｒｉの暗号化結果のみでもよい。
【０１３３】
このとき共通鍵暗号技術における秘密鍵だけでなく，ＲｉからＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）生成のための鍵も生成して，セッション鍵に対するＭＡＣを生成することによって，復号時にセッション鍵が正しく復号できたかどうかを確認できるようにしてもよい。
【０１３４】
図１７は，図１６の暗号化処理によって暗号化された暗号化コンテンツ１０６の復号処理の概略を示している。なお，以下では復号する利用者をＵｉとする。
１７００：開始
１７０１：ヘッダ５０１を参照し，暗号化コンテンツ１０６を分割して，暗号化された部分コンテンツと，乱数制御用Ｒｉを抽出（ステップ６０１に対応）
１７０２：Ｒｉを利用者Ｕｉの復号鍵１１２を用いて復号し，Ｒｉ＋１とセッション鍵の抽出を試みる。
１７０３：ステップ１７０２において取り出されたセッション鍵があればステップ１７０４へ，なければステップ１７０５へ
１７０４：セッション鍵を用いて対応する部分コンテンツを復号し，ステップ１７０３へ（ステップ６０５に対応）
１７０５：ステップ１７０４から得られた一つ以上の復号された部分コンテンツを用いて，復号コンテンツを構成（ステップ６０６に対応）
１７０６:暗号化コンテンツ１０６から，Ｒｉを削除，Ｒｉ＋１の付与，ヘッダ５０２の再構成を行い，新たな暗号化コンテンツ１０６を生成する。
１７０７：終了
ステップ１７０７の処理において，暗号化コンテンツ１０６から，Ｒｉが削除され，代わりにＲｉ＋１が暗号化コンテンツ１０６に付与される。Ｒｉ＋１は，利用者Ｕｉ＋１の復号鍵１１２によって復号可能であり，その復号結果に暗号化された部分コンテンツを復号するためのセッション鍵の情報が含まれる。このステップ１７０７の処理によって，暗号化コンテンツ１０６が利用者Ｕｉ＋１によって閲覧されることが可能になる。
【０１３５】
なお，図１６の暗号化処理では，
ｉ番目の利用者Ｕｉは一人，と想定していたが、複数人であってもよい。この場合、ｉ番目のn人の利用者利用者をＵｉ１，Ｕｉ２，．．．，Ｕｉｎと表すと、以下のようにして、ｎ人の利用者Ｕｉ１，Ｕｉ２，．．．，Ｕｉｎの内のいずれかｋ人が閲覧すれば、ｉ＋１番目の利用者Ｕｉ＋１が閲覧できるようにする，というしきい値処理を行うことも可能である。
【０１３６】
すなわち，順序制御用乱数Ｒｉの暗号化を行う前（ステップ１６０８）に，Ｒｉに対し閾値型秘密分散処理を適用し，Ｒｉ１，．．．，Ｒｉｎを生成する。これらＲｉ１，．．．，Ｒｉｎを，それぞれ順序制御用乱数Ｒｉとみなして，別々にステップ１６０８の処理を行い，Ｒｉ−１１，．．．，Ｒｉ−１ｎの生成を行う。次に，これらＲｉ−１１，．．．，Ｒｉ−１ｎを連結したデータをＲｉ−１として，以下，ステップ１６０９以降を実行する。
【０１３７】
復号装置１０２において暗号化コンテンツ１０６を復号する際には，受信した暗号化コンテンツ１０６から，ステップ１７０１の処理によって，Ｒｉｊを取り出す。復号装置１０２がＲｉｊをｋ個以上取得（暗号化コンテンツ１０６をｋ個以上受信）した場合，閾値型秘密分散処理の逆変換処理を用いることでＲｉを復元できるので，これを用いてステップ１７０２以降の処理を実行すればよい。
【０１３８】
閾値型秘密分散については，各種の処理方法が提案されており，例えば，以下の文献などが知られている。
Ａｄｉ  Ｓｈａｍｉｒ，“Ｈｏｗ  ｔｏ  ｓｈａｒｅ  ａ  ｓｅｃｒｅｔ”，Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，  ２２（１１）  ｐｐ．６１２−６１３，Ｎｏｖｅｍｂｅｒ，  １９７９．
以下に，Ｒｉに閾値型秘密分散処理を適用し，Ｒｉ１，．．．，Ｒｉｍを生成する方法の一例を示す。
【０１３９】
まず，暗号化装置１０１において，ステップ１６０８を実行する前に，以下の処理を実行する。Ｒｉをａ０として，乱数生成器をもちいてａ１，．．．，ａｋを生成する。次に，ｆ（ｘ）＝ａ０＋ａ１ｘ＋ａ２ｘ２＋．．．＋ａｋｘｋとし，Ｒｉｊ＝ｆ（ｊ）（ｊ＝１，．．．，ｍ）によって，Ｒｉ１，．．．，Ｒｉｍを計算する。
【０１４０】
つぎに，上記によって生成されたＲｉ１，．．．，Ｒｉｍを用いて暗号処理を行った場合，対応する復号装置１０２における処理の概略について示す。ここで，利用者Ｕｉが受信した暗号化コンテンツ１０６に含まれる順序制御用乱数をＲｉｊ１，．．．，Ｒｉｊｋ’（ｋ’＞ｋ）を受信したとする。
【０１４１】
復号装置１０２においては復号処理のステップ１７０１の処理によって，受信した複数の暗号化コンテンツ１０６からＲｉＸを取得する。そして，ステップ１７０３の処理の前に，
Ｒｉ＝Σ（ｊ＝ｊ１，．．．，ｊｋ’）Ｒｉｊ  Π（ｌ＝ｊ１，．．．，ｊｋ’，ｌ≠ｊ）（−ｌ）／（ｊ−ｌ）
を計算する。ここで，Σ（ｉ）ｘｉ，Π（ｉ）ｘｉは，それぞれ（）内を満たす全てのｘｉの和，積を計算することを表す。これによって，Ｒｉが得られるので，Ｒｉを利用者Ｕｉの復号鍵１１２で復号し，Ｒｉ＋１，セッション鍵を取り出し（ステップ１７０２に対応 ），以下ステップ１７０３以降の処理を行う。
【０１４２】
上記の処理では閾値型秘密分散処理によって，ｎ人の利用者Ｕｉ１，Ｕｉ２，．．．，Ｕｉｎのいずれかｋ人が閲覧すれば利用者Ｕｉ＋１が暗号化コンテンツ１０６を閲覧できるようにすることを可能にしたが，利用者Ｕｉ１，Ｕｉ２，．．．，Ｕｉｎのｎ人すべてが閲覧した後でなければ，利用者Ｕｉ＋１が閲覧できないようにすることも可能である。
【０１４３】
これを実現するためには，上記の閾値型秘密分散処理をＡＯＮＴ（Ａｌｌ Ｏｒ Ｎｏｔｈｉｎｇ Ｔｒａｎｓｆｏｒｍ）処理によって置き換えればよい。なお，ＡＯＮＴにはいくつかの方式が提案されており，例えば，以下の文献などが知られている。
Ｒ．Ｒｉｖｅｓｔ，“Ａｌｌ−Ｏｒ−Ｎｏｔｈｉｎｇ ｅｎｃｒｙｐｔｉｏｎ  ａｎｄ ｔｈｅ ｐａｃｋａｇｅ  ｔｒａｎｓｆｏｒｍ”， Ｆａｓｔ  Ｓｏｆｔｗａｒｅ  Ｅｎｃｒｙｐｔｉｏｎ ‘９７，Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ＬＮＣＳ．１２６７，ｐｐ．２１０−２１８，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，１９９７．
以上の暗号化処理（ステップ１６００〜ステップ１６１１），復号処理（ステップ１７００〜ステップ１７０７）によって，閲覧順序の制御が可能となる。ここで，暗号化処理，或いは，復号処理終了後，暗号化装置１０１，或いは，復号装置１０２は，暗号化コンテンツ１０６を，次に閲覧を行う復号装置１０２へ送信する。
【０１４４】
ここで，例えば上記に述べた閾値型秘密分散処理を用いることによって，並列処理を行うような場合には，並列処理を行う前の利用者Ｕｉが次に閲覧を許可された利用者Ｕｉ＋１１，．．．，Ｕｉ＋１ｍに暗号化コンテンツ１０６を送付すればよい。
【０１４５】
また，誤って別の復号装置１０２に暗号化コンテンツ１０６を送ってしまった場合には，受信した復号装置１０２が受信した暗号化コンテンツ１０６を，受信元の復号装置１０２（或いは，暗号化装置１０１）に送り返す，または，本来の復号装置１０２に送信するようにすればよい。
【０１４６】
暗号化コンテンツ１０６を受信した復号装置１０２が，受信した暗号化コンテンツ１０６が正しい順序で受信されたものなのかどうかを判断するためには，例えば，暗号化コンテンツ１０６のヘッダ５０１に復号順序を明示して示しておけばよい。
【０１４７】
例えば，図１０に示したＸＭＬを利用した場合には，ＥｎｃｒｙｐｔｅｄＫｅｙ要素１００６を，閲覧する順序に並べておく，或いは，ＥｎｃｒｙｐｔｅｄＫｅｙ要素１００６に閲覧順序をあらわす属性（例えば，ＤｅｃｒｙｐｔｅｄＯｒｄｅｒなど）を追加すればよい。
【０１４８】
このとき，次に閲覧可能な利用者のためのＭＲＢｌｏｃｋ要素１００４以外を暗号化しておき，次の閲覧可能な利用者のＭＲBｌｏｃｋ要素１００４のＴａｒｇｅｔＬｉｓｔ要素１００９に，それ以降の利用者のためのＭＲＢｌｏｃｋ要素１００４を含ませる（すなわち、それ以降の利用者のためのＭＲＢｌｏｃｋ要素１００４を暗号化しておく）ことによって，次に閲覧する利用者以外，閲覧順序をわからないようにしてもよい。
【０１４９】
この他，例えば，前述したように暗号化処理のステップ１６０８において，セッション鍵の暗号化時にセッション鍵のＭＡＣを生成することによって，これを用いてセッション鍵が正しく復号できたかどうかを確認することによって，暗号化コンテンツ１０６が正しい順序で受信されたか（閲覧できるのか）どうかを確認してもよい。
【０１５０】
なお，上記各実施例を組み合わせて実施することも可能である。例えば、実施例2での暗号化の際に実施例3に記載の方法を用いてもよい。
【図面の簡単な説明】
【０１５１】
【図１】第一の実施例におけるネットワーク構成の概略を例示する図である。
【図２】第一の実施例における暗号化装置の概略を例示する図である。
【図３】第一の実施例におけるデータフローの概略を例示する図である。
【図４】第一の実施例における暗号化処理の概略を例示する図である。
【図５】第一の実施例における暗号化コンテンツの構造の概略を例示する図である。
【図６】第一の実施例における復号装置の概略を例示する図である。
【図７】第一の実施例における鍵管理方法を例示する図である。
【図８】第一の実施例における暗号化処理を模式的に表した図である。
【図９】第一の実施例における復号処理を模式的に表した図である。
【図１０】第一の実施例における暗号化コンテンツの実現方法を表す図である。
【図１１】第一の実施例における暗号化コンテンツの表示方法を例示する図である。
【図１２】第二の実施例における処理フローの概略を例示する図である。
【図１３】第二の実施例におけるコンテンツのイメージを例示する図である。
【図１４】第二の実施例における，利用される申込書の表示イメージを例示する図である。
【図１５】第二の実施例における，閲覧される復号コンテンツ表示イメージを例示する図である。
【図１６】第三の実施例における暗号処理の概略を例示する図である。
【図１７】第三の実施例における復号処理の概略を例示する図である。
【符号の説明】
【０１５２】
101：暗号化装置，102：復号装置，103：鍵管理装置，105：コンテンツ，106：暗号化コンテンツ，111：暗号鍵，112：復号鍵，501：ヘッダ，502：暗号化コンテンツ本体，801：暗号化されたセッション鍵，802：セッション鍵，803：コンテンツ区切り情報。
【図１】
2007251921.tif 000003
【図２】
2007251921.tif 000004
【図３】
2007251921.tif 000005
【図４】
2007251921.tif 000006
【図５】
2007251921.tif 000007
【図６】
2007251921.tif 000008
【図７】
2007251921.tif 000009
【図８】
2007251921.tif 000010
【図９】
2007251921.tif 000011
【図１０】
2007251921.tif 000012
【図１１】
2007251921.tif 000013
【図１２】
2007251921.tif 000014
【図１３】
2007251921.tif 000015
【図１４】
2007251921.tif 000016
【図１５】
2007251921.tif 000017
【図１６】
2007251921.tif 000018
【図１７】
2007251921.tif 000019