(57)【要約】      （修正有）【課題】複数のユーザが複数階層の権限レベルに分類されたユーザグループにおいて、特定のユーザのみに機密文書の開示権限を与えるようにする。【解決手段】鍵生成部１０６が、権限レベルの階層ごとに、より上位の権限レベルの鍵に対して一方向関数による演算を行ってユーザ固有鍵を生成し、順次、新たに生成したユーザ固有鍵に対する一方向関数による演算を繰り返して、当該権限レベルの各ユーザに対するユーザ固有鍵を生成するとともに、当該権限レベルについて最後に生成したユーザ固有鍵に対して一方向関数による演算を行って、当該権限レベルに固有の権限レベル固有鍵を生成し、生成した権限レベル固有鍵に対して一方向関数による演算を行って、より下位の権限レベルのユーザ固有鍵を生成し、以降、各階層に対して同様の処理を行い、全階層のユーザに対してユーザ固有鍵を生成して、鍵配布部１０７が各ユーザに対応するユーザ固有鍵を配布する。【選択図】図２
2007258852.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理し、
前記ユーザグループの各々のユーザが利用する複数の端末装置に、
接続されるデータ管理装置であって、
より上位の権限レベルに対して生成された鍵を用いて、権限レベルの階層ごとに、権限レベルに属する各々のユーザに対して、ユーザごとに異なるユーザ固有鍵を生成する鍵生成部と、
前記鍵生成部により生成されたユーザ固有鍵を、対応するユーザの端末装置に送信する鍵配布部とを有することを特徴とするデータ管理装置。
【請求項２】
前記鍵生成部は、
権限レベルの階層ごとに、より上位の権限レベルに対して生成された鍵に対して一方向関数による演算を行って、権限レベルに属する各々のユーザに対するユーザ固有鍵を生成することを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
前記鍵生成部は、
権限レベルの階層ごとに、より上位の権限レベルに対して生成された鍵に対して一方向関数による演算を行ってユーザ固有鍵を生成し、生成したユーザ固有鍵に対して一方向関数による演算を行って更なるユーザ固有鍵を生成し、以降、新たに生成したユーザ固有鍵に対する一方向関数による演算を順次繰り返して、権限レベルに属する各々のユーザに対するユーザ固有鍵を生成することを特徴とする請求項２に記載のデータ管理装置。
【請求項４】
前記鍵生成部は、
権限レベルに属する各々のユーザに対するユーザ固有鍵を生成した後に、当該権限レベルについて最後に生成したユーザ固有鍵に対して一方向関数による演算を行って、当該権限レベルに固有の権限レベル固有鍵を生成し、
生成した権限レベル固有鍵に対して一方向関数による演算を行って、より下位の権限レベルに属する各々のユーザに対するユーザ固有鍵を生成することを特徴とする請求項３に記載のデータ管理装置。
【請求項５】
前記データ管理装置は、更に、
特定のユーザ及び前記特定のユーザよりも上位の権限レベルに属するユーザに開示権限を与えるデータを、前記特定のユーザに対するユーザ固有鍵を用いて暗号化する暗号化部と、
前記暗号化部により暗号化された暗号化データを、前記特定のユーザが利用する端末装置に対して送信するデータ配布部とを有することを特徴とする請求項１に記載のデータ管理装置。
【請求項６】
前記データ管理装置は、更に、
特定の権限レベルに属するユーザ及び前記特定の権限レベルよりも上位の権限レベルに属するユーザに開示権限を与えるデータを、前記特定の権限レベルに対する権限レベル固有鍵を用いて暗号化する暗号化部と、
前記暗号化部により暗号化された暗号化データを、前記特定の権限レベルに属するユーザが利用する端末装置に対して送信するデータ配布部とを有することを特徴とする請求項４に記載のデータ管理装置。
【請求項７】
前記鍵生成部は、
より上位の権限レベルに対して生成された二つの鍵を用いて、権限レベルの階層ごとに、権限レベルに属する各々のユーザに対して、ユーザごとに異なる二つのユーザ固有鍵を生成し、
前記鍵配布部は、
前記鍵生成部により生成された対となる二つのユーザ固有鍵を、対応するユーザの端末装置に送信することを特徴とする請求項１に記載のデータ管理装置。
【請求項８】
前記鍵生成部は、
権限レベルの階層ごとに、より上位の権限レベルに対して生成された二つの鍵の各々に対して一方向関数による演算を行って、ユーザごとに異なる二つのユーザ固有鍵を生成することを特徴とする請求項７に記載のデータ管理装置。
【請求項９】
前記鍵生成部は、
権限レベルの階層ごとに、より上位の権限レベルに対して生成された二つの鍵のうちの一方の鍵に対して一方向関数による演算を行って第一のユーザ固有鍵を生成し、生成した第一のユーザ固有鍵に対して一方向関数による演算を行って更なる第一のユーザ固有鍵を生成し、以降、新たに生成した第一のユーザ固有鍵に対する一方向関数による演算を順次繰り返して、権限レベルに属する各々のユーザに対する第一のユーザ固有鍵を生成し、
更に、より上位の権限レベルに対して生成された二つの鍵のうちの他方の鍵に対して一方向関数による演算を行って最後に生成された第一のユーザ固有鍵と対となる第二のユーザ固有鍵を生成し、生成した第二のユーザ固有鍵に対して一方向関数による演算を行って更なる第二のユーザ固有鍵を生成し、以降、新たに生成した第二のユーザ固有鍵に対する一方向関数による演算を第一のユーザ固有鍵の生成順序とは逆の順序にて順次繰り返して、権限レベルに属する各々のユーザに対する第二のユーザ固有鍵を生成することを特徴とする請求項８に記載のデータ管理装置。
【請求項１０】
前記鍵生成部は、
権限レベルに属する各々のユーザに対する第一のユーザ固有鍵と第二のユーザ固有鍵を生成した後に、当該権限レベルについて最後に生成した第一のユーザ固有鍵に対して一方向関数による演算を行って、当該権限レベルに固有の第一の権限レベル固有鍵を生成し、更に、当該権限レベルについて最後に生成した第二のユーザ固有鍵に対して一方向関数による演算を行って、当該権限レベルに固有の第二の権限レベル固有鍵を生成し、
生成した第一の権限レベル固有鍵と第二の権限レベル固有鍵に対して一方向関数による演算を行って、より下位の権限レベルに属する各々のユーザに対する第一のユーザ固有鍵と第二のユーザ固有鍵とを生成することを特徴とする請求項９に記載のデータ管理装置。
【請求項１１】
前記鍵生成部は、
ユーザごとに、対応する二つのユーザ固有鍵を用いてユーザ固有暗号化鍵を生成し、
前記データ管理装置は、更に、
特定のユーザ及び前記特定のユーザよりも上位の権限レベルに属するユーザに開示権限を与えるデータを、前記特定のユーザに対するユーザ固有暗号化鍵を用いて暗号化する暗号化部と、
前記暗号化部により暗号化された暗号化データを、前記特定のユーザが利用する端末装置に対して送信するデータ配布部とを有することを特徴とする請求項７に記載のデータ管理装置。
【請求項１２】
前記鍵生成部は、
権限レベルごとに、対応する第一の権限レベル固有鍵と第二の権限レベル固有鍵とを用いて、権限レベル固有暗号化鍵を生成し、
前記データ管理装置は、更に、
特定の権限レベルに属するユーザ及び前記特定の権限レベルよりも上位の権限レベルに属するユーザに開示権限を与えるデータを、前記特定の権限レベルに対する権限レベル固有暗号化鍵を用いて暗号化する暗号化部と、
前記暗号化部により暗号化された暗号化データを、前記特定の権限レベルに属するユーザが利用する端末装置に対して送信するデータ配布部とを有することを特徴とする請求項１０に記載のデータ管理装置。
【請求項１３】
前記鍵生成部は、
権限レベルの階層ごとに、より上位の権限レベルに対して生成された鍵に対してユーザごとに固有のユーザ固有値を用いて一方向関数による演算を行って、権限レベルに属する各々のユーザに対するユーザ固有鍵を生成することを特徴とする請求項１に記載のデータ管理装置。
【請求項１４】
前記鍵生成部は、
権限レベルの階層ごとに、より上位の権限レベルに対して生成された鍵に対して一方向関数による演算を行って、権限レベルに固有の権限レベル固有鍵を生成し、
前記鍵配布部は、
ユーザ固有鍵と当該ユーザ固有鍵と権限レベルの階層が同じ権限レベル固有鍵とを、対応するユーザの端末装置に送信することを特徴とする請求項１３に記載のデータ管理装置。
【請求項１５】
前記データ管理装置は、更に、
前記鍵生成部により生成された鍵を記憶する鍵記憶部を有し、
前記鍵生成部は、
前記鍵記憶部に記憶されている鍵の中から前記暗号化部による暗号化に使用可能な鍵を検索し、暗号化に使用可能な鍵が検索できなかった場合に、前記鍵記憶部に記憶されている鍵の中から暗号化に使用可能な鍵を最も少ない計算量で生成できる鍵を検索し、検索した鍵を用いて暗号化に使用可能な鍵を生成することを特徴とする請求項５又は６に記載のデータ管理装置。
【請求項１６】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理するとともに、鍵を生成するデータ管理装置に接続される、
前記ユーザグループのユーザが利用する端末装置であって、
自装置を利用する自装置ユーザに対して生成された、自装置ユーザに固有のユーザ固有鍵を、前記データ管理装置より受信する鍵受信部と、
いずれかの権限レベルに開示権限を与えている暗号化データを、前記データ管理装置から受信するデータ受信部と、
前記暗号化データが開示権限を与えている権限レベルに比べて自装置ユーザが属する権限レベルが同位又は上位の階層である場合に、前記鍵受信部により受信されたユーザ固有鍵に対して一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成する復号鍵生成部と、
前記復号鍵生成部により生成された復号鍵を用いて、前記暗号化データの復号を行う復号部とを有することを特徴とする端末装置。
【請求項１７】
前記端末装置は、更に、
自装置ユーザの属する権限レベルの識別子と自装置ユーザの識別子とを記憶する識別子記憶部を有し、
前記データ受信部は、
開示権限が与えられている権限レベルの識別子が示されている暗号化データを受信し、
前記復号鍵生成部は、
前記識別子記憶部に記憶されている自装置ユーザの属する権限レベルの識別子及び自装置ユーザの識別子と前記暗号化データに示されている権限レベルの識別子に基づき、一方向関数による演算を行う回数を判定し、判定した回数だけ前記鍵受信部により受信されたユーザ固有鍵に対して一方向関数による演算を行って、復号鍵を生成することを特徴とする請求項１６に記載の端末装置。
【請求項１８】
前記データ受信部は、
いずれかの権限レベルに属する特定のユーザに開示権限を与えている暗号化データを受信し、
前記復号鍵生成部は、
前記暗号化データが開示権限を与えている前記特定のユーザの属する権限レベルに比べて自装置ユーザが属する権限レベルが上位の階層である場合に、前記鍵受信部により受信されたユーザ固有鍵に対して一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成することを特徴とする請求項１６に記載の端末装置。
【請求項１９】
前記端末装置は、更に、
自装置ユーザの識別子と自装置ユーザの属する権限レベルの識別子とを記憶する識別子記憶部を有し、
前記データ受信部は、
開示権限が与えられている前記特定のユーザの識別子と前記特定のユーザの属する権限レベルの識別子が示されている暗号化データを受信し、
前記復号鍵生成部は、
前記識別子記憶部に記憶されている自装置ユーザの識別子及び自装置ユーザの属する権限レベルの識別子と前記暗号化データに示されている前記特定のユーザの識別子及び前記特定のユーザの属する権限レベルの識別子に基づき、一方向関数による演算を行う回数を判定し、判定した回数だけ前記鍵受信部により受信されたユーザ固有鍵に対して一方向関数による演算を行って、復号鍵を生成することを特徴とする請求項１８に記載の端末装置。
【請求項２０】
前記鍵受信部は、
自装置ユーザに対して生成された、自装置ユーザに固有の二つユーザ固有鍵を第一のユーザ固有鍵と第二のユーザ固有鍵として受信し、
前記復号鍵生成部は、
前記暗号化データが開示権限を与えている権限レベルに比べて自装置ユーザが属する権限レベルが同位又は上位の階層である場合に、前記鍵受信部により受信された第一のユーザ固有鍵と第二のユーザ固有鍵の各々に対して一方向関数による演算を行って、第一の中間鍵と第二の中間鍵を生成し、生成した第一の中間鍵と第二の中間鍵とを用いて、前記暗号化データの復号のための復号鍵を生成することを特徴とする請求項１６に記載の端末装置。
【請求項２１】
前記端末装置は、更に、
自装置ユーザの属する権限レベルの識別子と自装置ユーザの識別子とを記憶する識別子記憶部を有し、
前記データ受信部は、
開示権限が与えられている権限レベルの識別子が示されている暗号化データを受信し、
前記復号鍵生成部は、
前記識別子記憶部に記憶されている自装置ユーザの属する権限レベルの識別子及び自装置ユーザの識別子と前記暗号化データに示されている権限レベルの識別子に基づき、第一のユーザ固有鍵に対して一方向関数による演算を行う回数と第二のユーザ固有鍵に対して一方向関数による演算を行う回数とをそれぞれ判定し、判定した回数だけ第一のユーザ固有鍵に対して一方向関数による演算を行って第一の中間鍵を生成し、判定した回数だけ第二のユーザ固有鍵に対して一方向関数による演算を行って第二の中間鍵を生成することを特徴とする請求項２０に記載の端末装置。
【請求項２２】
前記鍵受信部は、
自装置ユーザに対して生成された、自装置ユーザに固有の二つユーザ固有鍵を第一のユーザ固有鍵と第二のユーザ固有鍵として受信し、
前記復号鍵生成部は、
前記暗号化データが開示権限を与えている前記特定のユーザの属する権限レベルに比べて自装置ユーザが属する権限レベルが上位の階層である場合に、前記鍵受信部により受信された第一のユーザ固有鍵と第二のユーザ固有鍵の各々に対して一方向関数による演算を行って、第一の中間鍵と第二の中間鍵を生成し、生成した第一の中間鍵と第二の中間鍵とを用いて、前記暗号化データの復号のための復号鍵を生成することを特徴とする請求項１８に記載の端末装置。
【請求項２３】
前記端末装置は、更に、
自装置ユーザの属する権限レベルの識別子と自装置ユーザの識別子とを記憶する識別子記憶部を有し、
前記データ受信部は、
開示権限が与えられている前記特定のユーザの識別子と前記特定のユーザの属する権限レベルの識別子が示されている暗号化データを受信し、
前記復号鍵生成部は、
前記識別子記憶部に記憶されている自装置ユーザの識別子及び自装置ユーザの属する権限レベルの識別子と前記暗号化データに示されている前記特定のユーザの識別子及び前記特定のユーザの属する権限レベルの識別子に基づき、第一のユーザ固有鍵に対して一方向関数による演算を行う回数と第二のユーザ固有鍵に対して一方向関数による演算を行う回数とをそれぞれ判定し、判定した回数だけ第一のユーザ固有鍵に対して一方向関数による演算を行って第一の中間鍵を生成し、判定した回数だけ第二のユーザ固有鍵に対して一方向関数による演算を行って第二の中間鍵を生成することを特徴とする請求項２２に記載の端末装置。
【請求項２４】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理するとともに、鍵を生成するデータ管理装置に接続される、
前記ユーザグループのユーザが利用する端末装置であって、
自装置を利用する自装置ユーザの属する権限レベルに属するユーザが共通に用いることができる権限レベル固有鍵を、前記データ管理装置より受信する鍵受信部と、
いずれかの権限レベルに属する特定のユーザに開示権限を与えている暗号化データと前記特定のユーザに固有のユーザ固有値とを受信するデータ受信部と、
前記暗号化データが開示権限を与えている前記特定のユーザの属する権限レベルに比べて自装置ユーザが属する権限レベルが上位の階層である場合に、前記鍵受信部により受信されたユーザ固有鍵に対して一方向関数による演算を行って前記特定のユーザの属する権限レベルに属するユーザが共通に用いることができる下位権限レベル固有鍵を生成し、更に、生成した前記下位権限レベル固有鍵に対して前記特定のユーザに固有のユーザ固有値を用いて一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成する復号鍵生成部と、
前記復号鍵生成部により生成された復号鍵を用いて、前記暗号化データの復号を行う復号部とを有することを特徴とする端末装置。
【請求項２５】
前記端末装置は、更に、
自装置ユーザの属する権限レベルの識別子を記憶する識別子記憶部を有し、
前記データ受信部は、
前記特定のユーザの属する権限レベルの識別子が示されている暗号化データを受信し、
前記復号鍵生成部は、
前記識別子記憶部に記憶されている自装置ユーザの属する権限レベルの識別子と前記暗号化データに示されている前記特定のユーザの属する権限レベルの識別子に基づき、一方向関数による演算を行う回数を判定し、判定した回数だけ前記鍵受信部により受信された権限レベル固有鍵に対して一方向関数による演算を行って、前記下位権限レベル固有鍵を生成することを特徴とする請求項２４に記載の端末装置。
【請求項２６】
前記端末装置は、更に、
前記復号鍵生成部により生成された鍵を記憶する鍵記憶部を有し、
前記復号鍵生成部は、
前記鍵記憶部に記憶されている鍵の中から前記復号部による復号に使用可能な鍵を検索し、復号に使用可能な鍵が検索できなかった場合に、前記鍵記憶部に記憶されている鍵の中から復号に使用可能な鍵を最も少ない計算量で生成できる鍵を検索し、検索した鍵を用いて復号に使用可能な鍵を生成することを特徴とする請求項１６又は２４に記載の端末装置。
【請求項２７】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理し、
前記ユーザグループの各々のユーザが利用する複数の端末装置に、
接続されるデータ管理装置を用いる鍵生成方法であって、
より上位の権限レベルに対して生成された鍵を用いて、権限レベルの階層ごとに、権限レベルに属する各々のユーザに対して、ユーザごとに異なるユーザ固有鍵を生成する鍵生成ステップと、
前記鍵生成ステップにより生成されたユーザ固有鍵を、対応するユーザの端末装置に送信する鍵配布ステップとを有することを特徴とする鍵生成方法。
【請求項２８】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理するとともに、鍵を生成するデータ管理装置に接続される、
前記ユーザグループのユーザが利用する端末装置を用いる復号方法であって、
前記端末装置を利用する端末利用ユーザに対して生成された、端末利用ユーザに固有のユーザ固有鍵を、前記データ管理装置より受信する鍵受信ステップと、
いずれかの権限レベルに開示権限を与えている暗号化データを、前記データ管理装置から受信するデータ受信ステップと、
前記暗号化データが開示権限を与えている権限レベルに比べて端末利用ユーザが属する権限レベルが同位又は上位の階層である場合に、前記鍵受信ステップにより受信されたユーザ固有鍵に対して一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成する復号鍵生成ステップと、
前記復号鍵生成ステップにより生成された復号鍵を用いて、前記暗号化データの復号を行う復号ステップとを有することを特徴とする復号方法。
【請求項２９】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理するとともに、鍵を生成するデータ管理装置に接続される、
前記ユーザグループのユーザが利用する端末装置を用いる復号方法であって、
前記端末装置を利用する端末利用ユーザの属する権限レベルに属するユーザが共通に用いることができる権限レベル固有鍵を、前記データ管理装置より受信する鍵受信ステップと、
いずれかの権限レベルに属する特定のユーザに開示権限を与えている暗号化データと前記特定のユーザに固有のユーザ固有値とを受信するデータ受信ステップと、
前記暗号化データが開示権限を与えている前記特定のユーザの属する権限レベルに比べて端末利用ユーザが属する権限レベルが上位の階層である場合に、前記鍵受信ステップにより受信されたユーザ固有鍵に対して一方向関数による演算を行って前記特定のユーザの属する権限レベルに属するユーザが共通に用いることができる下位権限レベル固有鍵を生成し、更に、生成した前記下位権限レベル固有鍵に対して前記特定のユーザに固有のユーザ固有値を用いて一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成する復号鍵生成ステップと、
前記復号鍵生成ステップにより生成された復号鍵を用いて、前記暗号化データの復号を行う復号ステップとを有することを特徴とする復号方法。
【請求項３０】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理し、
前記ユーザグループの各々のユーザが利用する複数の端末装置に、
接続されるデータ管理装置に、
より上位の権限レベルに対して生成された鍵を用いて、権限レベルの階層ごとに、権限レベルに属する各々のユーザに対して、ユーザごとに異なるユーザ固有鍵を生成する鍵生成処理と、
前記鍵生成処理により生成されたユーザ固有鍵を、対応するユーザの端末装置に送信する鍵配布処理とを実行させることを特徴とするプログラム。
【請求項３１】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理するとともに、鍵を生成するデータ管理装置に接続される、
前記ユーザグループのユーザが利用する端末装置に、
前記端末装置を利用する端末利用ユーザに対して生成された、端末利用ユーザに固有のユーザ固有鍵を、前記データ管理装置より受信する鍵受信処理と、
いずれかの権限レベルに開示権限を与えている暗号化データを、前記データ管理装置から受信するデータ受信処理と、
前記暗号化データが開示権限を与えている権限レベルに比べて端末利用ユーザが属する権限レベルが同位又は上位の階層である場合に、前記鍵受信処理により受信されたユーザ固有鍵に対して一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成する復号鍵生成処理と、
前記復号鍵生成処理により生成された復号鍵を用いて、前記暗号化データの復号を行う復号処理とを実行させることを特徴とするプログラム。
【請求項３２】
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理するとともに、鍵を生成するデータ管理装置に接続される、
前記ユーザグループのユーザが利用する端末装置に、
前記端末装置を利用する端末利用ユーザの属する権限レベルに属するユーザが共通に用いることができる権限レベル固有鍵を、前記データ管理装置より受信する鍵受信処理と、
いずれかの権限レベルに属する特定のユーザに開示権限を与えている暗号化データと前記特定のユーザに固有のユーザ固有値とを受信するデータ受信処理と、
前記暗号化データが開示権限を与えている前記特定のユーザの属する権限レベルに比べて端末利用ユーザが属する権限レベルが上位の階層である場合に、前記鍵受信処理により受信されたユーザ固有鍵に対して一方向関数による演算を行って前記特定のユーザの属する権限レベルに属するユーザが共通に用いることができる下位権限レベル固有鍵を生成し、更に、生成した前記下位権限レベル固有鍵に対して前記特定のユーザに固有のユーザ固有値を用いて一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成する復号鍵生成処理と、
前記復号鍵生成処理により生成された復号鍵を用いて、前記暗号化データの復号を行う復号処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、会社組織のように、ユーザが開示できる文書の種類や重要性によって、ユーザを階層的に分けることができるような環境において、文書の開示権限を与えられたユーザだけが復号できるよう、文書を暗号化することによって、文書に対するユーザの開示権限を制御する文書管理システムに関するもので、あるユーザに開示権限が与えられた文書は、そのユーザが属する階層より上位の階層に属するユーザもまた開示できる文書管理システムに関するものである。
【背景技術】
【０００２】
例えば、会社組織においては、開示できる文書の種類や重要性によって、ユーザを階層的に分類することができる。このような環境においては、文書を管理する管理者が、文書を利用するユーザのそれぞれに対して、文書を配布するより先に、ユーザが属する階層に固有の鍵を配布し、文書を配布するときには、その文書の開示権限を与える階層に固有の鍵で暗号化した文書を配布することによって、文書の開示権限を制御する文書管理システムがある。
また、このとき、下位の階層に属するユーザが開示できる文書は、上位の階層に属するユーザも開示できるが、上位の階層に属するユーザが開示できる文書でも、下位の階層に属するユーザは開示できないようにしたいという要求がある。
【０００３】
上記の要求を満足するための従来技術として、「暗号化方法、暗号化装置、記録方法、復号化方法、復号化装置及び記憶媒体（特開平１０−３２５６）」に記載されている鍵管理技術がある。
本技術によれば、上位の階層に固有の鍵から、ハッシュ関数を用いて、下位の階層に固有の鍵を生成することによって、上記の要求を満たしている。
ここで、ハッシュ関数Ｈは、任意のデータＸを入力したとき、固定長データＹを出力する関数で、次の性質を持つ関数である。
（１）Ｙ＝Ｈ（Ｘ）のとき、出力データＹから入力データＸを計算することが極めて困難であること。
（２）異なる入力データＸ１、Ｘ２に対して、Ｈ（Ｘ１）＝Ｈ（Ｘ２）となる確率が極めて小さいこと。
また、代表的なハッシュ関数に「ＳＨＡ１」や「ＭＤ５」がある。
隣接する２つの階層において、上位の階層に固有の鍵をＫ［ｉ］、下位の階層に固有の鍵をＫ［ｉ＋１］としたときに、上位の階層に固有の鍵から下位の階層に固有の鍵を導出するときの計算式は以下である。
Ｋ［ｉ＋１］＝Ｈ（Ｋ［ｉ］）
このとき、上位の階層に固有の鍵から、下位の階層に固有の鍵を順次導出することはできるが、ハッシュ関数の性質により、下位の階層に固有の鍵から、上位の階層に固有の鍵を生成することは極めて困難である。
【特許文献１】特開平１０−３２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
背景技術においては、ハッシュ関数を使って、上位の階層の鍵から下位の階層の鍵を導出することによって、上位の階層に固有の鍵を持つユーザは、下位の階層に固有の鍵で暗号化された文書を開示できるようにしている。
但し、このとき、同一の階層に属するユーザのそれぞれは同一の鍵を持つために、ある特定のユーザのみに開示権限を与える機密文書を配布することをできない。
【０００５】
本発明は、上記の問題を解決することを主な目的としており、下位の階層に属するユーザが開示できる文書は、上位の階層に属するユーザも開示できるが、上位の階層に属するユーザが開示できる文書であっても、下位の階層に属するユーザには開示できないよう、文書の開示権限を制御し、かつ、特定のユーザのみに機密文書の開示権限を与えられるようにする文書管理システムを実現することを主な目的とする。
【課題を解決するための手段】
【０００６】
本実施の形態に係るデータ管理装置は、
複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられるデータを管理し、
前記ユーザグループの各々のユーザが利用する複数の端末装置に、
接続されるデータ管理装置であって、
より上位の権限レベルに対して生成された鍵を用いて、権限レベルの階層ごとに、権限レベルに属する各々のユーザに対して、ユーザごとに異なるユーザ固有鍵を生成する鍵生成部と、
前記鍵生成部により生成されたユーザ固有鍵を、対応するユーザの端末装置に送信する鍵配布部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ある特定のユーザのみにデータの開示権限を与えることができ、更に、上位の権限レベルに属するユーザには下位の権限レベルに開示権限が与えられているデータ、及び、下位の権限レベルに属するユーザに開示権限が与えられているデータの開示権限を与えることができる。このため、アクセス制御の設定をより柔軟とするとともにセキュリティー強度を高めることができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
本実施の形態１における文書管理システムでは、階層的にユーザを分類する、階層化された１つ以上の権限レベルが定義されている。このとき、任意のユーザはある１つの権限レベルに属することを仮定する。
つまり、本実施の形態に係る文書管理システムは、複数のユーザが複数階層の権限レベルに分類され、それぞれの権限レベルに二以上のユーザが属するユーザグループで用いられる機密文書データ（以下、単に、機密文書または文書ともいう）を管理する。
文書管理システムは、ユーザが属する権限レベルに応じて、機密文書の開示権限が決まることを特長とする。
また、文書管理システムは、ある機密文書の開示権限が、ある権限レベルに属するユーザに与えられている場合、このユーザが有する権限レベルより上位の権限レベルに属するユーザにもまた、この機密文書の開示権限が与えられることを特長とする。
ここで、文書管理システムにおいて、ある機密文書の開示権限は、ある特定の権限レベル（に属する全てのユーザ）、または、ある特定のユーザに対して与えられる。
ある機密文書の開示権限が、ある特定の権限レベルに対して与えられた場合、この権限レベルに属する全てのユーザは、この機密文書を開示することができる。
ある機密文書の開示権限が、ある特定のユーザに対して与えられた場合、このユーザは機密文書を開示することができる。
【０００９】
文書管理システムにおいて、権限レベルの総数がＭ個であるとき、任意の権限レベルを権限レベルＡ［ｈ］（ｈ＝０，・・・，Ｍ−１）で表すことにする。このときのｈを権限レベルインデックスと呼ぶ。
任意の２つの権限レベルＡ［ｈ１］、権限レベルＡ［ｈ２］において、権限レベルインデックスの値がｈ１＜ｈ２であるとき、権限レベルＡ［ｈ１］は権限レベル［ｈ２］より上位の権限レベルである（権限レベルＡ［ｈ２］は権限レベルＡ［ｈ１］より下位の権限レベルである）ことを仮定する。従って、このとき、最上位の権限レベルは権限レベルＡ［０］、最下位の権限レベルは権限レベルＡ［Ｍ−１］で表される。
文書管理システムにおいて、権限レベルＡ［ｈ］に属するユーザの総数はＮｈ人で表すことにする。また、権限レベルＡ［ｈ］に属する任意のユーザをユーザＵ［ｈ］［ｉ］（ｉ＝０，・・・，Ｎｈ−１）で表すことにする。このときのｉをユーザインデックスと呼ぶ。
なお、文書管理システムにおいて、権限レベルの総数Ｍ、及び、任意の権限レベルＡ［ｈ］に属するユーザの総数Ｎｈの値は、既知または常時取得可能な値であることを仮定する。
【００１０】
文書管理システムでは、開示権限を与えられたユーザ以外のユーザ、または、第三者が機密文書を開示することができないように、暗号化した機密文書を配布する。
なお、機密文書を暗号化するときの暗号アルゴリズムは、暗号化する鍵と復号する鍵が共通である共通鍵暗号アルゴリズムである。
文書管理システムでは、機密文書の開示権限を与えられたユーザのみが保有する鍵、または、生成可能な鍵で機密文書を暗号化することによって、機密文書の開示権限が与えられたユーザのみが機密文書を復号し、開示できるようにする。
【００１１】
図１は、文書管理システムのシステム構成を表すブロック図である。
図１において、文書管理サーバ１（データ管理装置）は、機密文書を管理するサーバである。ユーザ端末２（端末装置）は、ユーザが機密文書を開示する端末である。データ通信路３は、文書管理サーバ１からユーザ端末２に任意データを送信するデータ通信路である。
【００１２】
図２は、本実施の形態に係る文書管理サーバ１（データ管理装置）の構成例を表すブロック図である。
図２において、マスタ鍵生成部１０４は、文書管理サーバ１で一意な値を持つマスタ鍵を生成する。
マスタ鍵管理記憶媒体１０５は、マスタ鍵生成部１０４で生成したマスタ鍵を管理する記憶媒体である。
鍵生成部１０６は、機密文書を暗号化／復号する鍵を生成する。
鍵配布部１０７は、鍵生成部１０６で生成した鍵をユーザ端末２に配布する。
暗号化部１０８は、機密文書を暗号化する。
文書配布部１０９（データ配布部）は、暗号化部１０８で暗号化した機密文書をユーザに配布する。
権限レベル／ユーザ管理部１１０は、ユーザごとに、各ユーザがどの権限レベルに属するのかを、権限レベルの識別子（権限レベルインデックス）及びユーザの識別子（ユーザインデックス）を用いて管理する。
【００１３】
ここで、本実施の形態に係る文書管理サーバ１の動作の要旨を説明する。
鍵生成部１０６は、権限レベルの階層ごとに、より上位の権限レベルに対して生成された鍵を用いて、権限レベルに属する各々のユーザに対して、ユーザごとに異なるユーザ固有鍵を生成する。
具体的には、鍵生成部１０６は、より上位の権限レベルの鍵に対して一方向関数による演算を行ってユーザ固有鍵を生成し、生成したユーザ固有鍵に対して一方向関数による演算を行って更なるユーザ固有鍵を生成し、以降、新たに生成したユーザ固有鍵に対する一方向関数による演算を順次繰り返して、権限レベルに属する各々のユーザに対するユーザ固有鍵を生成する。そして、当該権限レベルについて最後に生成したユーザ固有鍵に対して一方向関数による演算を行って、当該権限レベルに固有の権限レベル固有鍵を生成する。更に、生成した権限レベル固有鍵に対して一方向関数による演算を行って、より下位の権限レベルに属するユーザのユーザ固有鍵を生成し、以降、各階層に対して同様の処理を行い、全階層のユーザに対してユーザ固有鍵を生成する。なお、最上位の権限レベルについては、マスタ鍵生成部１０４により生成されたマスタ鍵に対して一方向関数による演算を行ってユーザ固有鍵を生成する。
そして、鍵配布部１０７は、鍵生成部１０６により生成されたユーザ固有鍵を、対応するユーザのユーザ端末２に送信する。
【００１４】
また、暗号化部１０８は、特定のユーザ及び特定のユーザよりも上位の権限レベルに属するユーザに開示権限を与える機密文書データを、特定のユーザに対するユーザ固有鍵を用いて暗号化する。
そして、文書配布部１０９は、暗号化部１０８により暗号化された機密文書データ（暗号化データ）を、特定のユーザが利用するユーザ端末２に対して送信する。
【００１５】
図３は、ユーザ端末２（端末装置）の構成例を表すブロック図である。
図３において、鍵管理部２１０は、鍵配布部１０７で配布された鍵を管理する。
鍵管理記憶媒体２１１は、鍵配布部１０７で配布された鍵を管理する記憶媒体である。
復号鍵生成部２１２は、暗号化された機密文書を復号する鍵を生成する。
復号部２１３は、暗号化された機密文書を復号する。
文書開示部２１４は、復号部２１３で復号した機密文書を開示する。
鍵受信部２１５は、鍵配布部１０７で配布された鍵を受信し、鍵管理部１０２に鍵を渡す。
文書受信部２１６（データ受信部）は、文書配布部１０９で配布された暗号化された機密文書を受信し、復号部２１３に暗号化された機密文書を渡す。
権限レベル／ユーザインデックス記憶部２１７（識別子記憶部）は、自装置を利用するユーザが属する権限レベルの識別子（権限レベルインデックス）及び当該ユーザの識別子（ユーザインデックス）を記憶する。
【００１６】
ここで、本実施の形態に係るユーザ端末２の動作の要旨を説明する。
鍵受信部２１５は、自装置を利用する自装置ユーザに対して生成された、自装置ユーザに固有のユーザ固有鍵を、文書管理サーバ１より受信する。
また、文書受信部２１６は、いずれかの権限レベルに開示権限を与えている暗号化された機密文書（暗号化データ）を、文書管理サーバ１から受信する。
そして、復号鍵生成部２１２は、暗号化された機密文書が開示権限を与えている権限レベルに比べて自装置ユーザが属する権限レベルが同位又は上位の階層である場合に、鍵受信部２１５により受信されたユーザ固有鍵に対して一方向関数による演算を行って、暗号化された機密文書の復号のための復号鍵を生成する。
復号部２１３は、復号鍵生成部２１２により生成された復号鍵を用いて、暗号化された機密文書の復号を行う。
文書受信部２１６が受信する暗号化された機密文書に、開示権限が与えられている権限レベルの識別子が示されている場合は、復号鍵生成部２１２は、権限レベル／ユーザインデックス記憶部２１７に記憶されている自装置ユーザの属する権限レベルの識別子及び自装置ユーザの識別子と暗号化された機密文書に示されている権限レベルの識別子に基づき、一方向関数による演算を行う回数を判定し、判定した回数だけ鍵受信部２１５により受信されたユーザ固有鍵に対して一方向関数による演算を行って、復号鍵を生成する。
また、文書受信部２１６が受信する暗号化された機密文書に、開示権限が与えられている特定のユーザの識別子と当該特定のユーザの属する権限レベルの識別子が示されている場合は、復号鍵生成部２１２は、権限レベル／ユーザインデックス記憶部２１７に記憶されている自装置ユーザの属する権限レベルの識別子及び自装置ユーザの識別子と暗号化された機密文書に示されている特定のユーザの識別子及び当該特定のユーザの属する権限レベルの識別子に基づき、一方向関数による演算を行う回数を判定し、判定した回数だけ鍵受信部２１５により受信されたユーザ固有鍵に対して一方向関数による演算を行って、復号鍵を生成する。
【００１７】
次に、本実施の形態及び以下に述べる実施の形態に示す文書管理サーバ１、及びユーザ端末２のハードウェア構成例について説明する。
図２５は、本実施の形態及び以下に述べる実施の形態に示す文書管理サーバ１、及びユーザ端末２のハードウェア資源の一例を示す図である。
図２５において、文書管理サーバ１、及びユーザ端末２のは、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１８】
通信ボード９１５は、図１に示すように、データ通信路３に接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１９】
上記プログラム群９２３には、以下に述べる説明において「〜部」、「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」、「〜の評価結果」等として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・抽出のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、以下で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２０】
また、以下に述べる説明において「〜部」、「〜手段」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、「〜手段」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【００２１】
このように、本実施の形態及び以下に述べる実施の形態に示す文書管理サーバ１、及びユーザ端末２は、それぞれ、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【００２２】
次に、本実施の形態１における文書管理システムにおいて、機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れについて説明する。
図４（ａ）は、機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れを表した図である。
【００２３】
ＳＴ１１では、文書管理サーバ１において、マスタ鍵生成部１０４が文書管理サーバ１で一意な値を持つマスタ鍵ＫＭを生成する。
本ステップで、文書管理サーバ１のマスタ鍵生成部１０４は、任意の乱数値であるマスタ鍵ＫＭを生成する。
このとき、マスタ鍵生成部１０４で生成されたマスタ鍵ＫＭは、文書管理サーバ１のマスタ鍵管理記憶媒体１０５に格納される。
このとき、文書管理サーバ１の管理者以外の第三者が、マスタ鍵管理記憶媒体１０５に格納されているマスタ鍵ＫＭに不正にアクセスすることを禁止する。
なお、マスタ鍵管理記憶媒体１０５は、第三者による不正アクセスを防止する耐タンパな記憶媒体であることが望ましい。
【００２４】
ＳＴ１２では、文書管理サーバ１において、任意の権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］、及び、任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する（鍵生成ステップ）。
本ステップで、文書管理サーバ１の鍵生成部１０６は、マスタ鍵生成部１０４で生成したマスタ鍵ＫＭから、一方向演算を行って、任意の権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］、及び、任意のユーザに固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。一方向演算とは、例えば、ハッシュ関数を用いたハッシュ演算である。以下では、一方向演算の例として、ハッシュ演算を行う場合について説明する。
文書管理サーバ１の鍵生成部１０６が、最上位の権限レベルＡ［０］に固有の権限レベル固有鍵ＫＡ［０］、及び、権限レベルＡ［０］に属する任意のユーザＵ［０］［ｉ］に固有のユーザ固有鍵ＫＵ［０］［ｉ］を生成するときの計算式を以下に示す。
ＫＵ［０］［０］＝Ｈ（ＫＭ）
ＫＵ［０］［ｉ］＝Ｈ（ＫＵ［０］［ｉ−１］）（ｉ＝１，・・・，Ｎ０−１）
ＫＡ［０］＝Ｈ（ＫＵ［０］［Ｎ０−１］）
【００２５】
図５は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ［０］、及び、ユーザ固有鍵ＫＵ［０］［ｉ］を生成するときの順序を表した図である。
図５は、ハッシュ関数Ｈの性質により、
（１）マスタ鍵ＫＭから、ユーザ固有鍵ＫＵ［０］［０］を生成することはできるが、ユーザ固有鍵ＫＵ［０］［０］から、マスタ鍵ＫＭを生成することは極めて困難であること、
（２）ｉ１＜ｉ２のとき、ユーザ固有鍵ＫＵ［０］［ｉ１］から、ユーザ固有鍵ＫＵ［０］［ｉ２］を生成することはできるが、ユーザ固有鍵ＫＵ［０］［ｉ２］から、ユーザ固有鍵ＫＵ［０］［ｉ１］を生成することは極めて困難であること、
（３）ユーザ固有鍵ＫＵ［０］［Ｎ０−１］から、権限レベル固有鍵ＫＡ［０］を生成することはできるが、権限レベル固有鍵ＫＡ［０］から、ユーザ固有鍵ＫＵ［０］［Ｎ０−１］を生成することは極めて困難であること、を表している。
【００２６】
文書管理サーバ１の鍵生成部１０６が、ハッシュ関数Ｈを使って、最上位の権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］（ｈ＝１，・・・，Ｍ−１）に固有の権限レベル固有鍵ＫＡ［ｈ］、及び、最上位の権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］（ｉ＝０，・・・，Ｎｈ−１）に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの計算式を以下に示す。
ＫＵ［ｈ］［０］＝Ｈ（ＫＡ［ｈ−１］）
ＫＵ［ｈ］［ｉ］＝Ｈ（ＫＵ［ｈ］［ｉ−１］）（ｉ＝１，・・・，Ｎｈ−１）
ＫＡ［ｈ］＝Ｈ（ＫＵ［ｈ］［Ｍｈ−１］）
【００２７】
図６は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの順序を図示したものである。
図６は、ハッシュ関数Ｈの性質により、
（１）権限レベル固有鍵ＫＡ［ｈ−１］から、ユーザ固有鍵ＫＵ［ｈ］［０］を生成することはできるが、ユーザ固有鍵ＫＵ［ｈ］［０］から、権限レベル固有鍵ＫＡ［ｈ−１］を生成することは極めて困難であること、
（２）ｉ１＜ｉ２のとき、ユーザ固有鍵ＫＵ［ｈ］［ｉ１］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ２］を生成することはできるが、ユーザ固有鍵ＫＵ［ｈ］［ｉ２］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ１］を生成することは極めて困難であること、
（３）ユーザ固有鍵ＫＵ［ｈ］［Ｎｈ−１］から、権限レベル固有鍵ＫＡ［ｈ］を生成することはできるが、権限レベル固有鍵ＫＡ［ｈ］から、ユーザ固有鍵ＫＵ［ｈ］［Ｎｈ−１］を生成することは極めて困難であること、を表している。
【００２８】
図５、及び、図６より、
（１）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］から、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］、及び、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に固有の権限レベル固有鍵ＫＡ［ｈ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に固有の権限レベル固有鍵ＫＡ［ｈ０］を生成することは極めて困難であること、
（２）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］から、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属する任意のユーザＵ［ｈ１］［ｉ１］に固有のユーザ固有鍵ＫＵ［ｈ１］［ｉ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に属する任意のユーザＵ［ｈ０］［ｉ０］に固有のユーザ固有鍵ＫＵ［ｈ０］［ｉ０］を生成することは極めて困難であること、が分かる。
【００２９】
なお、鍵生成部１０６は、新たにユーザ固有鍵又は権限レベル固有鍵を生成する度に、生成したユーザ固有鍵又は権限レベル固有鍵をメインメモリ、レジスタ等の記憶領域に一時的に格納する。
【００３０】
ＳＴ１３では、文書管理サーバ１において、鍵生成部１０６で生成した鍵を任意のユーザＵ［ｈ］［ｉ］に配布する（鍵配布ステップ）。
本ステップで、文書管理サーバ１の鍵配布部１０７は、任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を、ユーザＵ［ｈ］［ｉ］のユーザ端末２に、データ通信路３を介して送信する。
このとき、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を配布するデータ通信路３は、盗聴や改竄、ユーザの成りすましができない安全なデータ通信路である。
【００３１】
ユーザ端末２では、送信されたユーザ固有鍵ＫＵ［ｈ］［ｉ］に対して図４（ｂ）に示す処理を行う。
すなわち、ＳＴ１０１にて、鍵受信部２１５が送信されたユーザ固有鍵ＫＵ［ｈ］［ｉ］を受信し（鍵受信ステップ）、受信したユーザ固有鍵ＫＵ［ｈ］［ｉ］を鍵管理部２１０に渡し、ＳＴ１０２にて、鍵管理部２１０が、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を鍵管理記憶媒体２１１に格納する。
このとき、ユーザＵ［ｈ］［ｉ］以外の第３者が、鍵管理記憶媒体２１１に格納されたユーザ固有鍵ＫＵ［ｈ］［ｉ］に不正にアクセスすることを禁止する。
鍵管理記憶媒体２１１は、第三者による不正アクセスを防止する耐タンパな記憶媒体であることが望ましい。
【００３２】
次に、本実施の形態１における文書管理システムにおいて、機密文書をユーザに配布するときの処理の流れについて説明する。
図７は、機密文書をユーザに配布するときの処理の流れを表した図である。
【００３３】
図８は、配布する機密文書が権限レベル固有鍵ＫＡ［ｈ］で暗号化されているときに、文書管理サーバ１からユーザ端末２に送信される文書データの構造を表すブロック図である。
図８において、文書データ１５は、文書管理サーバから利用端末に送信されるデータである。
権限レベルインデックス１６は、権限レベルＡ［ｈ］の権限レベルインデックスｈである。
暗号化文書１７は、暗号化された機密文書である。
権限レベルインデックス１６は、文書管理サーバ１の権限レベル／ユーザ管理部１１０で管理されている。
【００３４】
図９は、ユーザ固有鍵ＫＵ［ｈ］［ｉ］で暗号化した機密文書をユーザに配布するときに、文書管理サーバ１からユーザ端末２に送信される文書データの構造を表すブロック図である。
図９で、図８と同一のデータについては、同一符号を付し、説明を省略する。
図９において、ユーザインデックス１８は、権限レベル［ｈ］に属するユーザＵ［ｈ］［ｉ］のユーザインデックスである。
ユーザインデックス１８は、文書管理サーバ１の権限レベル／ユーザ管理部１１０で管理されている。
【００３５】
ＳＴ１４では、文書管理サーバ１において、機密文書を暗号化する鍵を生成する。
ｉ．機密文書の開示権限を権限レベルに対して与える場合
本ステップで、機密文書の開示権限を権限レベルＡ［ｈ］に対して与える場合、文書管理サーバ１の鍵生成部１０６は、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。
このとき、鍵生成部１０６は、マスタ鍵管理記憶媒体１０５に格納されているマスタ鍵ＫＭから、ハッシュ関数Ｈを使って、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。なお、権限レベル固有鍵ＫＡ［ｈ］を生成するときの計算式は、ステップＳＴ１２において、権限レベル固有鍵ＫＡ［ｈ］を生成したときの計算式と同様である。
ｉｉ．機密文書の開示権限をユーザに対して与える場合
本ステップで、機密文書の開示権限をユーザＵ［ｈ］［ｉ］に対して与える場合、文書管理サーバ１の鍵生成部１０６は、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
このとき、鍵生成部１０６は、マスタ鍵管理記憶媒体１０５に格納されているマスタ鍵ＫＭから、ハッシュ関数Ｈを使って、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの計算式は、ステップＳＴ１２において、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成したときの計算式と同様である。
なお、本ステップで、機密文書を暗号化する鍵を生成するのは、文書管理サーバ１では、マスタ鍵ＫＭのみをマスタ鍵管理記憶媒体１０５で管理し、権限レベルごとの権限レベル固有鍵及びユーザごとのユーザ固有鍵は各ユーザ端末２への送信後は管理していないため、新たにマスタ鍵ＫＭから暗号化するための鍵を生成する。
【００３６】
ＳＴ１５では、文書管理サーバ１において、ユーザに配布する機密文書を暗号化する。
ｉ．機密文書の開示権限を権限レベルに対して与える場合
本ステップで、機密文書の開示権限を権限レベルＡ［ｈ］に対して与える場合、文書管理サーバ１の暗号化部１０８は、鍵生成部１０６で生成した権限レベル固有鍵ＫＡ［ｈ］で機密文書を暗号化する。
ｉｉ．機密文書の開示権限をユーザに対して与える場合
本ステップで、機密文書の開示権限をユーザＵ［ｈ］［ｉ］に対して与える場合、文書管理サーバ１の暗号化部１０８は、鍵生成部１０６で生成したユーザ固有鍵ＫＵ［ｈ］［ｉ］で機密文書を暗号化する。
【００３７】
ＳＴ１６では、文書管理サーバ１において、機密文書をユーザに配布する。
ｉ．機密文書の開示権限を権限レベルに対して与える場合
本ステップで、機密文書の開示権限を権限レベルＡ［ｈ］に対して与える場合、文書管理サーバ１の文書配布部１０９は、権限レベルＡ［ｈ］の権限レベルインデックス１６の値ｈ、及び、暗号化した機密文書である暗号化文書１７を格納した文書データ１５を生成し、データ通信路３を介してユーザ端末２に送信する。
ｉｉ．機密文書の開示権限をユーザに対して与える場合
本ステップで、機密文書の開示権限をユーザＵ［ｈ］［ｉ］に対して与える場合、文書管理サーバ１の文書配布部１０９は、ユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］の権限レベルインデックス１６の値ｈ、ユーザＵ［ｈ］［ｉ］のユーザインデックス１８の値ｉ、及び、暗号化した機密文書である暗号化文書１７を格納した文書データ１５を生成し、データ通信路３を介してユーザ端末２に送信する。
【００３８】
最後に、本実施の形態１における文書管理システムにおいて、機密文書をユーザが開示するときの処理の流れについて説明する。
図１０は、機密文書をユーザに配布するときの処理の流れを表した図である。
【００３９】
ＳＴ１７では、ユーザ端末２の文書受信部２１６が、文書管理サーバ１から送信された機密文書データを受信する（データ受信ステップ）。
次に、ＳＴ１８では、ユーザ端末２において、文書管理サーバ１から配布された機密文書を復号する鍵を生成する（復号鍵生成ステップ）。
ｉ．機密文書の開示権限が権限レベルに対して与えられている場合
本ステップで、機密文書の開示権限が権限レベル［ｈ］に対して与えられている場合、ユーザ端末２の復号鍵生成部２１２は、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。
なお、復号鍵生成部２１２は、文書管理サーバ１から送信された文書データ１５に格納されている権限レベルインデックス１６の値がｈで、かつ、文書データ１５にユーザインデックス１８が格納されていないとき、機密文書の開示権限が権限レベル［ｈ］に対して与えられていると判断する。
なお、以下の式に示すように、復号鍵生成部２１２は、文書データ１５に示されている権限レベルインデックスと、自装置のユーザのユーザインデックスと当該ユーザが属する権限レベルの権限レベルインデックスとの関係から、ハッシュ演算の回数を判断する。
１）機密文書の開示権限が与えられている権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］に属するユーザＵ［ｈ］［ｉ］のユーザ端末において、復号鍵生成部２１２は、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ］［ｉ］から、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。
復号鍵生成部２１２が権限レベル固有鍵ＫＡ［ｈ］を生成するときの計算式を次に示す。
ＫＡ［ｈ］＝Ｈ＾（Ｎｈ−ｉ）（ＫＵ［ｈ］［ｉ］）
２）機密文書の開示権限が与えられている権限レベルより上位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より上位の権限レベルＡ［ｈ０］に属するユーザＵ［ｈ０］［ｉ０］のユーザ端末において、復号鍵生成部２１２は、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ０］［ｉ０］から、権限レベル固有鍵ＫＡ［ｈ］を生成する。
復号鍵生成部２１２が権限レベル固有鍵ＫＡ［ｈ］を生成するときの計算式を次に示す。
ＫＡ［ｈ］＝Ｈ＾（（Ｎｈ０−ｉ０）＋（Ｎｈ０＋１＋１）＋・・・＋（Ｎｈ＋１））（ＫＵ［ｈ０］［ｉ０］）
３）機密文書の開示権限が与えられている権限レベルより下位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より下位の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属するユーザＵ［ｈ１］［ｉ１］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ１］［ｉ１］から、権限レベル固有鍵ＫＡ［ｈ］を生成することは、極めて困難であるため、ユーザＵ［ｈ１］［ｉ１］は、権限レベルＡ［ｈ］に開示権限が与えられている機密文書を復号し、開示することができない。
ｉｉ．機密文書の開示権限がユーザに対して与えられている場合
本ステップで、機密文書の開示権限がユーザ［ｈ］［ｉ］に対して与えられている場合、ユーザ端末２の復号鍵生成部２１２は、ユーザ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
なお、復号鍵生成部２１２は、文書管理サーバ１から送信された文書データ１５に格納されている権限レベルインデックス１６の値がｈで、かつ、文書データ１５にユーザインデックス１８の値ｉが格納されているとき、機密文書の開示権限がユーザＵ［ｈ］［ｉ］に対して与えられていると判断する。
なお、以下の式に示すように、復号鍵生成部２１２は、文書データ１５に示されている権限レベルインデックス、ユーザインデックスと、自装置のユーザのユーザインデックスと当該ユーザが属する権限レベルの権限レベルインデックスとの関係から、ハッシュ演算の回数を判断する。
１）機密文書の開示権限が与えられているユーザが属する権限レベルと同じ権限レベルに属するユーザの場合
機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］と同じ権限レベルＡ［ｈ］に属する、ユーザインデックスの値がより大きい、他のユーザＵ［ｈ］［ｉ１］（ｉ＜ｉ１）のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ］［ｉ１］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することは極めて困難であるため、ユーザＵ［ｈ］［ｉ１］は、ユーザＵ［ｈ］［ｉ］に閲覧権限が与えられている機密文書を復号し、開示することができない。
但し、機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］と同じ権限レベルＡ［ｈ］に属する、ユーザインデックスの値がより小さい、他のユーザＵ［ｈ］［ｉ０］（ｉ０＜ｉ）のユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ］［ｉ０］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することができる。
ＫＵ［ｈ］［ｉ］＝Ｈ＾（（Ｎｈ０−ｉ０）＋（Ｎｈ０＋１＋１）＋・・・＋（Ｎｈ−１＋１）＋ｉ）（ＫＵ［ｈ０］［ｉ０］））
２）機密文書の開示権限が与えられているユーザが属する権限レベルより上位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］より上位の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に属するユーザＵ［ｈ０］［ｉ０］のユーザ端末２において、復号鍵生成部２１２は、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ０］［ｉ０］から、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
復号鍵生成部２１２がユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの計算式を次に示す。
ＫＵ［ｈ］［ｉ］＝Ｈ＾（（Ｎｈ０−ｉ０）＋（Ｎｈ０＋１＋１）＋・・・＋（Ｎｈ−１＋１）＋ｉ）（ＫＵ［ｈ０］［ｉ０］））
３）機密文書の開示権限が与えられているユーザが属する権限レベルより下位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］より下位の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属する他のユーザＵ［ｈ１］［ｉ１］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ１］［ｉ１］から、ユーザ固有鍵ＫＵ［ｈ１］［ｉ１］を生成することは極めて困難であるため、ユーザＵ［ｈ１］［ｉ１］は、ユーザＵ［ｈ］［ｉ］に閲覧権限が与えられている機密文書を復号し、開示することができない。
【００４０】
ＳＴ１９では、ユーザ端末２において、復号部２１３が、暗号化されている機密文書を復号する（復号ステップ）。
本ステップで、ユーザ端末２の復号部２１３は、復号鍵生成部２１２で生成した鍵で、文書データ１５に格納されている暗号化文書１７を復号する。
このとき、機密文書の開示権限が権限レベルＡ［ｈ］に対して与えられている場合、権限レベルＡ［ｈ］より下位の権限レベルに属するユーザは、権限レベル固有鍵Ａ［ｈ］を生成することができないため、機密文書を復号することができない。
また、このとき、機密文書の開示権限が権限レベルＡ［ｈ］に属するユーザＵ［ｈ］［ｉ］に対して与えられている場合、権限レベルＡ［ｈ］より下位の権限レベルに属するユーザは、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することができないため、機密文書を復号することができない。
【００４１】
ＳＴ２０では、ユーザ端末２において、文書開示部２１４が、機密文書を開示する。
本ステップで、ユーザ端末２の文書開示部２１４は、復号部２１３で復号した機密文書を開示する。
【００４２】
以上のように、実施の形態１によれば、ある特定のユーザのみに機密文書の開示権限を与えることができるようになると同時に、ユーザは、ユーザが属する権限レベルより下位の権限レベルに開示権限が与えられている機密文書、及び、下位の権限レベルに属するユーザに開示権限が与えられている機密文書を開示することができるようになる。
【００４３】
本実施の形態では、ユーザが開示できる文書の種類や重要性によって、ユーザを階層的に分けることができるような環境において、文書の開示権限を与えられたユーザだけが復号できるよう、文書を暗号化することによって、文書に対するユーザの開示権限を制御する文書管理システムにおいて、
文書管理システムは、
ユーザに配布する文書を管理する文書管理サーバ、
文書管理サーバから配布された文書を開示するユーザ端末、
から構成され、
文書管理サーバは、
ユーザが属する階層に固有の鍵、または、ユーザに固有の鍵を生成する鍵生成部、
鍵生成部で生成した鍵をユーザに配布する鍵配布部、
ユーザに配布する文書を暗号化する暗号化部、
を備え、
ユーザ端末は、
暗号化された文書を復号する鍵を生成する復号鍵生成部、
暗号化された機密文書を復号する復号部、
を備える文書管理システムについて説明した。
【００４４】
また、本実施の形態では、文書管理サーバの鍵生成部が、文書管理システムで一意な値を持つマスタ鍵から、ハッシュ関数を使って、ユーザが属する階層に固有の鍵、及び、ユーザに固有の鍵を生成する機能を持ち、ユーザ端末の復号鍵生成部が、文書管理サーバから配布された鍵から、ハッシュ関数を使って、暗号化された文書を復号する鍵を生成する機能を持つ文書管理システムについて説明した。
【００４５】
実施の形態２．
実施の形態１では、権限レベルＡ［ｈ］に属するユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を、同一の権限レベルＡ［ｈ］に属するユーザＵ［ｈ］［ｉ１］（ｉ１＜ｉ）に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］から容易に生成することができてしまう。
そのため、任意の権限レベルＡ［ｈ］に属する、ある特定のユーザＵ［ｈ］［ｉ］に機密文書の開示権限を与えたとき、本来は開示権限を持たない、同一の権限レベルＡ［ｈ］に属する、異なるユーザＵ［ｈ］［ｉ１］（ｉ１＜ｉ）によって開示されてしまう危険がある。
この実施の形態２では、あるユーザに開示権限を与えた機密文書が、同一の権限レベルに属するユーザに開示されないようにすることを目的とする。
【００４６】
本実施の形態の文書管理サーバ１及びユーザ端末２の構成は、図２及び図３に示した物と同様である。
【００４７】
最初に、本実施の形態２における文書管理システムにおいて、機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れについて説明する。
図１１（ａ）は、機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れを表した図である。
【００４８】
ＳＴ２１では、文書管理サーバ１において、文書管理サーバ１で一意な値を持つ２つのマスタ鍵ＫＭ１とマスタ鍵ＫＭ２を生成する。
本ステップで、文書管理サーバ１のマスタ鍵生成部１０４は、任意の２つの乱数値であるマスタ鍵ＫＭ１とマスタ鍵ＫＭ２を生成する。
マスタ鍵生成部１０４で生成されたマスタ鍵ＫＭ１とマスタ鍵ＫＭ２は、マスタ鍵管理記憶媒体１０５に格納される。
このとき、文書管理サーバ１の管理者以外の第三者が、マスタ鍵管理記憶媒体１０５に格納されたマスタ鍵ＫＭ１とマスタ鍵ＫＭ２に不正にアクセスすることを禁止する。
マスタ鍵管理記憶媒体１０５は、第三者による不正アクセスを防止する耐タンパな記憶媒体であることが望ましい。
【００４９】
ＳＴ２２では、文書管理サーバ１の鍵生成部１０６が、任意の権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］、及び、任意のユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を生成する（鍵生成ステップ）。
本ステップで、文書管理サーバ１の鍵生成部１０６は、マスタ鍵生成部１０４で生成したマスタ鍵ＫＭ１、ＫＭ２から、ハッシュ関数Ｈを使って、任意の権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］、及び、任意のユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を生成する。
文書管理サーバ１の鍵生成部１０６が、最上位の権限レベルＡ［０］に固有の権限レベル固有鍵ＫＡ１［０］、及び、権限レベルＡ［０］に属する任意のユーザＵ［０］［ｉ］（ｉ＝０，・・・，Ｎ０−１）に固有のユーザ固有鍵ＫＵ１［０］［ｉ］を生成するときの計算式を以下に示す。
ＫＵ１［０］［０］＝Ｈ（ＫＭ１）
ＫＵ１［０］［ｉ］＝Ｈ（ＫＵ１［０］［ｉ−１］）（ｉ＝１，・・・，Ｎ０−１）
ＫＡ１［０］＝Ｈ（ＫＵ１［０］［Ｎ］）
【００５０】
図１２は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ１［０］及び、ユーザ固有鍵ＫＵ１［０］［ｉ］を生成するときの順序を表した図である。
図１２は、ハッシュ関数Ｈの性質により、
（１）マスタ鍵ＫＭ１から、ユーザ固有鍵ＫＵ１［０］［ｉ］を生成することはできるが、ユーザ固有鍵ＫＵ１［０］［ｉ］から、マスタ鍵ＫＭ１を生成することは極めて困難であること、
（２）ｉ１＜ｉ２のとき、ユーザ固有鍵ＫＵ１［０］［ｉ１］から、ユーザ固有鍵ＫＵ１［０］［ｉ２］を生成することはできるが、ユーザ固有鍵ＫＵ１［０］［ｉ２］から、ユーザ固有鍵ＫＵ１［０］［ｉ１］を生成することは極めて困難であること、
（３）ユーザ固有鍵ＫＵ１［０］［ｉ］から、権限レベル固有鍵ＫＡ１［０］を生成することはできるが、権限レベル固有鍵ＫＡ１［０］から、ユーザ固有鍵ＫＵ１［０］［ｉ］を生成することは極めて困難であること、を表している。
【００５１】
文書管理サーバ１の鍵生成部１０６が、ハッシュ関数Ｈを使って、最上位の権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］（ｈ＝１，・・・，Ｍ−１）に固有の権限レベル固有鍵ＫＡ１［ｈ］、及び、最上位の権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］（ｉ＝０，・・・，Ｎｈ−１）に固有のユーザ固有鍵ＫＵ１［ｈ］［ｉ］を生成するときの計算式を以下に示す。
ＫＵ１［ｈ］［０］＝Ｈ（ＫＡ１［ｈ−１］）
ＫＵ１［ｈ］［ｉ］＝Ｈ（ＫＵ１［ｈ］［ｉ−１］）（ｉ＝１，・・・，Ｎｈ−１）
ＫＡ１［ｈ］＝Ｈ（ＫＵ１［ｈ］［Ｎｈ］）
【００５２】
図１３は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ１［ｈ］、及び、ユーザ固有鍵ＫＵ１［ｈ］［ｉ］を生成するときの順序を図示したものである。
図１３は、ハッシュ関数Ｈの性質により、
（１）権限レベル固有鍵ＫＡ１［ｈ−１］から、ユーザ固有鍵ＫＵ１［ｈ］［０］を生成することはできるが、ユーザ固有鍵ＫＵ１［ｈ］［０］から、権限レベル固有鍵ＫＡ１［ｈ−１］を生成することは極めて困難であること、
（２）ｉ１＜ｉ２のとき、ユーザ固有鍵ＫＵ１［ｈ］［ｉ１］から、ユーザ固有鍵ＫＵ１［ｈ］［ｉ２］を生成することはできるが、ユーザ固有鍵ＫＵ１［ｈ］［ｉ２］から、ユーザ固有鍵ＫＵ１［ｈ］［ｉ２］を生成することは極めて困難であること、
（３）ユーザ固有鍵ＫＵ１［ｈ］［Ｎｈ−１］から、権限レベル固有鍵ＫＡ１［ｈ］を生成することはできるが、権限レベル固有鍵ＫＡ１［ｈ］から、ユーザ固有鍵ＫＵ１［ｈ］［Ｎｈ−１］を生成することは極めて困難であること、を表している。
【００５３】
図１２、及び、図１３より、
（１）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ１［ｈ］［ｉ］から、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ１［ｈ］、及び、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に固有の権限レベル固有鍵ＫＡ１［ｈ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に固有の権限レベル固有鍵ＫＡ１［ｈ０］を生成することは極めて困難であること、
（２）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ１［ｈ］［ｉ］から、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属する任意のユーザＵ［ｈ１］［ｉ１］に固有のユーザ固有鍵ＫＵ１［ｈ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ１）に属する任意のユーザＵ［ｈ０］［ｉ０］に固有のユーザ固有鍵ＫＵ１［ｈ０］［ｉ０］を生成することは極めて困難であること、
（３）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ１［ｈ］［ｉ］から、同一の権限レベルＡ［ｈ］に属するユーザのうち、ユーザインデックスの値がｉより大きい、任意のユーザＵ［ｈ］［ｉ１］（ｉ＜ｉ１）に固有のユーザ固有鍵ＫＵ１［ｈ］［ｉ１］を生成することはできるが、同一の権限レベルＡ［ｈ］に属するユーザのうち、ユーザインデックスの値がｉより小さい、任意のユーザＵ［ｈ］［ｉ０］（ｉ０＜ｉ）に固有のユーザ固有鍵ＫＵ１［ｈ］［ｉ０］を生成することは極めて困難であること、が分かる。
【００５４】
文書管理サーバ１の鍵生成部１０６が、最上位の権限レベルＡ［０］に固有の権限レベル固有鍵ＫＡ２［０］、及び、権限レベルＡ［０］に属する任意のユーザＵ［０］［ｉ］に固有のユーザ固有鍵ＫＵ２［０］［ｉ］を生成するときの計算式を以下に示す。
ＫＵ２［０］［Ｎ０−１］＝Ｈ（ＫＭ２）
ＫＵ２［０］［ｉ］＝Ｈ（ＫＵ２［０］［ｉ＋１］）（ｉ＝０，・・・，Ｎ０−２）
ＫＡ２［０］＝Ｈ（ＫＵ２［０］［０］）
【００５５】
図１４は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ２［０］、及び、ユーザ固有鍵ＫＵ２［０］［ｉ］を生成するときの順序を図示したものである。
図１４は、一方向性ハッシュ関数Ｈの性質により、
（１）マスタ鍵ＫＭ２から、ユーザ固有鍵ＫＵ２［０］［Ｎ０−１］を生成することはできるが、ユーザ固有鍵ＫＵ２［０］［Ｎ０−１］から、マスタ鍵ＫＭ２を生成することは極めて困難であること、
（２）ｉ１＜ｉ２のとき、ユーザ固有鍵ＫＵ２［０］［ｉ２］から、ユーザ固有鍵ＫＵ２［０］［ｉ１］を生成することはできるが、ユーザ固有鍵ＫＵ２［０］［ｉ１］から、ユーザ固有鍵ＫＵ２［０］［ｉ２］を生成することは極めて困難であること、
（３）ユーザ固有鍵ＫＵ２［０］［０］から、権限レベル固有鍵ＫＡ２［０］を生成することはできるが、権限レベル固有鍵ＫＡ２［０］から、ユーザ固有鍵ＫＵ２［０］［０］を生成することは極めて困難であること、を表している。
【００５６】
文書管理サーバ１の鍵生成部１０６が、ハッシュ関数Ｈを使って、最上位の権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］（ｈ＝１，・・・，Ｍ−１）に固有の権限レベル固有鍵ＫＡ２［ｈ］、及び、最上位の権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］（ｉ＝０，・・・，Ｎｈ−１）に固有のユーザ固有鍵ＫＵ２［ｈ］［ｉ］を生成するときの計算式を以下に示す。
ＫＵ２［ｈ］［Ｎｈ−１］＝Ｈ（ＫＡ２［ｈ−１］）
ＫＵ２［ｈ］［ｉ］＝Ｈ（ＫＵ２［ｈ］［ｉ＋１］）（ｉ＝０，・・・，Ｎｈ−２）
ＫＡ２［ｈ］＝Ｈ（ＫＵ２［ｈ］［０］）
【００５７】
図１５は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ２［ｈ］、及び、ユーザ固有鍵ＫＵ２［ｈ］［ｉ］を生成するときの順序を図示したものである。
図１５は、ハッシュ関数Ｈの性質により、
（１）権限レベル固有鍵ＫＡ２［ｈ−１］から、ユーザ固有鍵ＫＵ２［ｈ］［Ｎｈ−１］を生成することはできるが、ユーザ固有鍵ＫＵ２［ｈ］［Ｎｈ−１］から、権限レベル固有鍵ＫＡ２［ｈ−１］を生成することは極めて困難であること、
（２）ｉ１＜ｉ２のとき、ユーザ固有鍵ＫＵ２［ｈ］［ｉ２］から、ユーザ固有鍵ＫＵ２［ｈ］［ｉ１］を生成することはできるが、ユーザ固有鍵ＫＵ２［ｈ］［ｉ１］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ２］を生成することは極めて困難であること、
（３）ユーザ固有鍵ＫＵ２［ｈ］［０］から、権限レベル固有鍵ＫＡ２［ｈ］を生成することはできるが、権限レベル固有鍵ＫＡ２［ｈ］から、ユーザ固有鍵ＫＵ２［ｈ］［０］を生成することは極めて困難であること、を表している。
【００５８】
図１４、及び、図１５より、
（１）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ２［ｈ］［ｉ］から、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ２［ｈ］、及び、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に固有の権限レベル固有鍵ＫＡ２［ｈ１］を生成することはできるが、権限レベルＡ［ｈ１］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に固有の権限レベル固有鍵ＫＡ２［ｈ０］を生成することは極めて困難であること、
（２）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ２［ｈ］［ｉ］から、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ］（ｈ＜ｈ１）に属する任意のユーザＵ［ｈ１］［ｉ１］に固有のユーザ固有鍵ＫＵ２［ｈ１］［ｉ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に属する任意のユーザＵ［ｈ０］［ｉ０］に固有のユーザ固有鍵ＫＵ２［ｈ０］［ｉ０］を生成することは極めて困難であること、
（３）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ２［ｈ］［ｉ］から、同一の権限レベルＡ［ｈ］に属するユーザのうち、ユーザインデックスの値がｉより小さい、任意のユーザＫＵ［ｈ］［ｉ０］（ｉ０＜ｉ）に固有のユーザ固有鍵ＫＵ２［ｈ］［ｉ０］を生成することはできるが、同一の権限レベルＡ［ｈ］に属するユーザのうち、ユーザインデックスの値がｉより大きい、任意のユーザＵ［ｈ］［ｉ１］（ｉ＜ｉ１）に固有のユーザ固有鍵ＫＵ２［ｈ］［ｉ１］を生成することは極めて困難であること、が分かる。
【００５９】
従って、図１２、図１３、図１４、及び、図１５より、
（１）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］のそれぞれから、権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］、及び、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に固有の２つの権限レベル固有鍵ＫＡ１［ｈ１］、ＫＡ２［ｈ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に固有の２つの権限レベル固有鍵ＫＡ１［ｈ０］、ＫＡ２［ｈ０］を生成することは極めて困難であること、
（２）任意の権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］のそれぞれから、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属するユーザＵ［ｈ１］［ｉ１］に固有のユーザ固有鍵ＫＵ［ｈ１］［ｉ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に属する任意のユーザＵ［ｈ０］［ｉ０］に固有の２つのユーザ固有鍵ＫＵ１［ｈ０］［ｉ０］、ＫＵ２［ｈ０］［ｉ０］を生成することは極めて困難であること、
（３）任意の権限レベルＡ［ｈ］に属する、任意の異なる２人のユーザＵ［ｈ］［ｉ１］、Ｕ［ｈ］［ｉ２］（ｉ１！＝ｉ２）において、一方のユーザＵ［ｈ］［ｉ１］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ１］、ＫＵ２［ｈ］［ｉ１］から、他方のユーザＵ［ｈ］［ｉ２］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ２］、ＫＵ２［ｈ］［ｉ２］の両方を生成することは極めて困難であること、が分かる。
【００６０】
このように本実施の形態における文書管理サーバ１では、鍵生成部１０６は、より上位の権限レベルに対して生成された二つの鍵を用いて、権限レベルの階層ごとに、権限レベルに属する各々のユーザに対して、ユーザごとに異なる二つのユーザ固有鍵を生成する。
具体的には、鍵生成部１０６は、権限レベルの階層ごとに、より上位の権限レベルに対して生成された二つの鍵のうちの一方の鍵に対して一方向関数による演算を行って第一のユーザ固有鍵を生成し、生成した第一のユーザ固有鍵に対して一方向関数による演算を行って更なる第一のユーザ固有鍵を生成し、以降、新たに生成した第一のユーザ固有鍵に対する一方向関数による演算を順次繰り返して、権限レベルに属する各々のユーザに対する第一のユーザ固有鍵を生成する。更に、鍵生成部１０６は、より上位の権限レベルに対して生成された二つの鍵のうちの他方の鍵に対して一方向関数による演算を行って最後に生成された第一のユーザ固有鍵と対となる第二のユーザ固有鍵を生成し、生成した第二のユーザ固有鍵に対して一方向関数による演算を行って更なる第二のユーザ固有鍵を生成し、以降、新たに生成した第二のユーザ固有鍵に対する一方向関数による演算を第一のユーザ固有鍵の生成順序とは逆の順序にて順次繰り返して、権限レベルに属する各々のユーザに対する第二のユーザ固有鍵を生成する。
また、鍵生成部１０６は、権限レベルに属する各々のユーザに対する第一のユーザ固有鍵と第二のユーザ固有鍵を生成した後に、当該権限レベルについて最後に生成した第一のユーザ固有鍵に対して一方向関数による演算を行って、当該権限レベルに固有の第一の権限レベル固有鍵を生成し、更に、当該権限レベルについて最後に生成した第二のユーザ固有鍵に対して一方向関数による演算を行って、当該権限レベルに固有の第二の権限レベル固有鍵を生成する。
そして、鍵生成部１０６は、生成した第一の権限レベル固有鍵と第二の権限レベル固有鍵に対して一方向関数による演算を行って、より下位の権限レベルに属する各々のユーザに対する第一のユーザ固有鍵と第二のユーザ固有鍵とを生成する。
【００６１】
なお、鍵生成部１０６は、新たにユーザ固有鍵又は権限レベル固有鍵を生成する度に、生成したユーザ固有鍵又は権限レベル固有鍵をメインメモリ、レジスタ等の記憶領域に一時的に格納する。
【００６２】
ＳＴ２３では、文書管理サーバ１において、鍵配布部１０７が、鍵生成部１０６で生成した鍵を、任意のユーザＵ［ｈ］［ｉ］に配布する（鍵配布ステップ）。
本ステップで、文書管理サーバ１の鍵配布部１０７は、任意のユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を、ユーザＵ［ｈ］［ｉ］のユーザ端末２に、データ通信路３を介して送信する。
このとき、ユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を配布するデータ通信路３は、盗聴や改竄、ユーザの成りすましができない安全なデータ通信路である。
【００６３】
ユーザ端末２では、送信された２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］に対して図１１（ｂ）に示す処理を行う。
すなわち、ＳＴ１０３にて、鍵受信部２１５が送信された２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を受信し（鍵受信ステップ）、受信した２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を鍵管理部２１０に渡し、ＳＴ１０４にて、鍵管理部２１０が、２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を鍵管理記憶媒体２１１に格納する。
このとき、ユーザＵ［ｈ］［ｉ］以外の第３者が、鍵管理記憶媒体１１に格納された２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］に不正にアクセスすることを禁止する。鍵管理記憶媒体１１は、第三者による不正アクセスを防止する耐タンパな記憶媒体であることが望ましい。
【００６４】
次に、本実施の形態２における文書管理システムにおいて、機密文書をユーザに配布するときの処理の流れについて説明する。
図１６は、機密文書をユーザに配布するときの処理の流れを表した図である。
【００６５】
ＳＴ２４では、文書管理サーバ１において、鍵生成部１０６が、機密文書を暗号化する鍵を生成する。
ｉ．機密文書の開示権限を権限レベルＡ［ｈ］に対して与える場合
本ステップで、文書管理サーバ１の鍵生成部１０６は、機密文書の開示権限を権限レベルＡ［ｈ］に対して与える場合、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。
ここで、権限レベル固有鍵ＫＡ［ｈ］は、権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］［ｉ］、ＫＡ２［ｈ］［ｉ］から一意に決まる鍵である。従って、権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］を知り得ないユーザは、権限レベル固有鍵ＫＡ［ｈ］もまた知り得ない。
本実施の形態２では、２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］の排他的論理和を権限レベル固有鍵ＫＡ［ｈ］とみなす。
ＫＡ［ｈ］＝ＫＡ１［ｈ］  ｘｏｒ  ＫＡ２［ｈ］
このとき、鍵生成部１０６は、マスタ鍵管理記憶媒体１０５に格納されている２つのマスタ鍵ＫＭ１、ＫＭ２から、ハッシュ関数Ｈを使って、権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］を生成する。なお、権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］を生成するときの計算式は、ステップＳＴ２２において、権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］を生成したときの計算式と同様である。
ｉｉ．機密文書の開示権限をユーザＵ［ｈ］［ｉ］に対して与える場合
本ステップで、文書管理サーバ１の鍵生成部１０６は、機密文書の開示権限をユーザＵ［ｈ］［ｉ］に対して与える場合、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
ここで、ユーザ固有鍵ＫＵ［ｈ］［ｉ］は、ユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］から一意に決まる鍵である。従って、ユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を知り得ないユーザは、ユーザ固有鍵ＫＵ［ｈ］［ｉ］もまた知り得ない。
本実施の形態２では、２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＡ２［ｈ］［ｉ］の排他的論理和をユーザ固有鍵ＫＵ［ｈ］［ｉ］とみなす。
ＫＵ［ｈ］［ｉ］＝ＫＵ１［ｈ］［ｉ］  ｘｏｒ  ＫＵ２［ｈ］［ｉ］
このとき、鍵生成部１０６は、マスタ鍵管理記憶媒体１０５に格納されている２つのマスタ鍵ＫＭ１、ＫＭ２から、ハッシュ関数Ｈを使って、ユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を生成する。なお、ユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を生成するときの計算式は、ステップＳＴ２２において、ユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を生成したときの計算式と同様である。
【００６６】
ＳＴ２５では、文書管理サーバ１において、暗号化部１０８が、ユーザに配布する機密文書を暗号化する。
このＳＴ２５は、実施の形態１におけるステップＳＴ１５と同様である。
【００６７】
ＳＴ２６では、文書管理サーバ１において、文書配布部１０９が、機密文書をユーザに配布する。
このＳＴ２６は、実施の形態１におけるステップＳＴ１６と同様である。
【００６８】
最後に、本実施の形態２における文書管理システムにおいて、機密文書をユーザが開示するときの処理の流れについて説明する。
図１７は、機密文書をユーザに配布するときの処理の流れを表した図である。
【００６９】
ＳＴ１７では、ユーザ端末２の文書受信部２１６が、文書管理サーバ１から送信された機密文書データを受信する（データ受信ステップ）。
ＳＴ２７では、ユーザ端末２において、復号鍵生成部２１２が、文書管理サーバ１から配布された機密文書を復号する鍵を生成する（復号鍵生成ステップ）。
ｉ．機密文書の開示権限が権限レベルに対して与えられている場合
本ステップで、機密文書の開示権限が権限レベル［ｈ］に対して与えられている場合、ユーザ端末２の復号鍵生成部２１２は、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。
このとき、復号鍵生成部２１２は、実施の形態１のステップＳＴ１８と同様に、文書管理サーバ１から送信された文書データ１５を解析することによって、機密文書の開示権限が権限レベル［ｈ］に対して与えられていることを判断する。
なお、本実施の形態においても、実施の形態１と同様に、復号鍵生成部２１２は、以下の式に示すように、文書データ１５に示されている権限レベルインデックスと、自装置のユーザのユーザインデックスと当該ユーザが属する権限レベルの権限レベルインデックスとの関係から、ハッシュ演算の回数を判断する。
１）機密文書の開示権限が与えられている権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］に属するユーザＵ［ｈ］［ｉ］のユーザ端末において、復号鍵生成部２１２が、ユーザ端末２の鍵管理記憶媒体１１に格納されている２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］のそれぞれから、ハッシュ関数を使って、権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］を生成するときの計算式を次に示す。
ＫＡ１［ｈ］＝Ｈ＾（Ｎｈ−ｉ）（ＫＵ１［ｈ］［ｉ］）
ＫＡ２［ｈ］＝Ｈ＾（ｉ＋１）（ＫＵ２［ｈ］［ｉ］）
復号鍵生成部２１２が、権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］から一意に決まる権限レベル固有鍵ＫＡ［ｈ］を生成するときの計算式を次に示す。
ＫＡ［ｈ］＝ＫＡ１［ｈ］  ｘｏｒ  ＫＡ２［ｈ］
２）機密文書の開示権限が与えられている権限レベルより上位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より上位の権限レベルＡ［ｈ０］に属するユーザＵ［ｈ０］［ｉ０］のユーザ端末において、復号鍵生成部２１２が、ユーザ端末２の鍵管理記憶媒体１１に格納されている２つのユーザ固有鍵ＫＵ１［ｈ０］［ｉ０］、ＫＵ２［ｈ０］［ｉ０］のそれぞれから、ハッシュ関数を使って、権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］を生成するときの計算式を次に示す。
ＫＡ１［ｈ］＝Ｈ＾（（Ｎｈ０−ｉ）＋（Ｎｈ０＋１＋１）＋・・・（Ｎｈ＋１））（ＫＵ１［ｈ０］［ｉ０］）
ＫＡ２［ｈ］＝Ｈ＾（（ｉ＋１）＋（Ｎｈ０＋１＋１）＋・・・（Ｎｈ＋１））（ＫＵ２［ｈ０］［ｉ０］）
復号鍵生成部２１２が、権限レベルＡ［ｈ］に固有の２つの権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］から一意に決まる権限レベル固有鍵ＫＡ［ｈ］を生成するときの計算式を次に示す。
ＫＡ［ｈ］＝ＫＡ１［ｈ］  ｘｏｒ  ＫＡ２［ｈ］
３）機密文書の開示権限が与えられている権限レベルより下位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より下位の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属するユーザＵ［ｈ１］［ｉ１］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体１１に格納されている２つのユーザ固有鍵ＫＵ１［ｈ１］［ｉ１］、ＫＵ２［ｈ１］［ｉ１］のそれぞれから、権限レベル固有鍵ＫＡ１［ｈ］、ＫＡ２［ｈ］を生成することは、極めて困難であるため、ユーザＵ［ｈ１］［ｉ１］は、権限レベルＡ［ｈ］に開示権限が与えられている機密文書を復号し、開示することができない。
【００７０】
ｉｉ．機密文書の開示権限がユーザに対して与えられている場合
本ステップで、機密文書の開示権限がユーザ［ｈ］［ｉ］に対して与えられている場合、ユーザ端末２の復号鍵生成部２１２は、ユーザ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
なお、復号鍵生成部２１２は、文書管理サーバ１から送信された文書データ１５に格納されている権限レベルインデックス１６の値がｈで、かつ、文書データ１５にユーザインデックス１８の値ｉが格納されているとき、機密文書の開示権限がユーザＵ［ｈ］［ｉ］に対して与えられていると判断する。
なお、本実施の形態においても、実施の形態１と同様に、復号鍵生成部２１２は、以下の式に示すように、文書データ１５に示されている権限レベルインデックス、ユーザインデックスと、自装置のユーザのユーザインデックスと当該ユーザが属する権限レベルの権限レベルインデックスとの関係から、ハッシュ演算の回数を判断する。
１）機密文書の開示権限が与えられているユーザが属する権限レベルと同じ権限レベルに属するユーザの場合
機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］と同じ権限レベルＡ［ｈ］に属する他のユーザＵ［ｈ］［ｉ’］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ］［ｉ’］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することは極めて困難であるため、ユーザＵ［ｈ１］［ｉ’］は、ユーザＵ［ｈ］［ｉ］に開示権限が与えられている機密文書を復号し、開示することができない。
２）機密文書の開示権限が与えられているユーザが属する権限レベルより上位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より上位の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に属するユーザＵ［ｈ０］［ｉ０］のユーザ端末２において、復号鍵生成部２１２が、ユーザ端末２の鍵管理記憶媒体２１１に格納されている２つのユーザ固有鍵ＫＵ１［ｈ０］［ｉ０］、ＫＵ２［ｈ０］［ｉ０］のそれぞれから、ハッシュ関数を使って、ユーザＵ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］を生成するときの計算式を次に示す。
ＫＵ１［ｈ］［ｉ］＝Ｈ＾（（Ｎｈ０−ｉ０）＋（Ｎｈ０＋１＋１）＋・・・＋（Ｎｈ−１＋１）＋ｉ）（ＫＵ１［ｈ０］［ｉ０］））
ＫＵ２［ｈ］［ｉ］＝Ｈ＾（（ｉ０＋１）＋（Ｎｈ０＋１＋１）＋・・・＋（Ｎｈ−１＋１）＋（Ｎｈ−１−ｉ））（ＫＵ２［ｈ０］［ｉ０］））
さらに、復号鍵生成部２１２が、ユーザ［ｈ］［ｉ］に固有の２つのユーザ固有鍵ＫＵ１［ｈ］［ｉ］、ＫＵ２［ｈ］［ｉ］から一意に決まるユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの計算式を次に示す。
ＫＵ［ｈ］［ｉ］＝ＫＵ１［ｈ２］［ｉ］  ｘｏｒ  ＫＵ２［ｈ２］［ｉ］
３）機密文書の開示権限が与えられているユーザが属する権限レベルより下位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］より下位の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属するユーザＵ［ｈ１］［ｉ１］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されているユーザ固有鍵ＫＵ［ｈ１］［ｉ１］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することは極めて困難であるため、ユーザＵ［ｈ１］［ｉ１］は、ユーザＵ［ｈ］［ｉ］に開示権限が与えられている機密文書を復号し、開示することができない。
【００７１】
このように、本実施の形態に係る復号鍵生成部２１２は、暗号化された機密文書データ（暗号化データ）が開示権限を与えている権限レベルに比べて自装置ユーザが属する権限レベルが同位又は上位の階層である場合に、鍵受信部２１５により受信された第一のユーザ固有鍵と第二のユーザ固有鍵の各々に対して一方向関数による演算を行って、第一の中間鍵と第二の中間鍵を生成し、生成した第一の中間鍵と第二の中間鍵とを用いて、暗号化された機密文書データの復号のための復号鍵を生成する。
そして、復号鍵生成部２１２は、権限レベル／ユーザインデックス記憶部２１７に記憶されている自装置ユーザの属する権限レベルの識別子及び自装置ユーザの識別子と暗号化された機密文書データに示されている権限レベルの識別子に基づき、第一のユーザ固有鍵に対して一方向関数による演算を行う回数と第二のユーザ固有鍵に対して一方向関数による演算を行う回数とをそれぞれ判定し、判定した回数だけ第一のユーザ固有鍵に対して一方向関数による演算を行って第一の中間鍵を生成し、判定した回数だけ第二のユーザ固有鍵に対して一方向関数による演算を行って第二の中間鍵を生成する。
【００７２】
また、本実施の形態に係る復号鍵生成部２１２は、暗号化された機密文書データ（暗号化データ）が開示権限を与えている特定のユーザの属する権限レベルに比べて自装置ユーザが属する権限レベルが上位の階層である場合に、鍵受信部２１５により受信された第一のユーザ固有鍵と第二のユーザ固有鍵の各々に対して一方向関数による演算を行って、第一の中間鍵と第二の中間鍵を生成し、生成した第一の中間鍵と第二の中間鍵とを用いて、暗号化された機密文書データの復号のための復号鍵を生成する。
そして、復号鍵生成部２１２は、権限レベル／ユーザインデックス記憶部２１７に記憶されている自装置ユーザの識別子及び自装置ユーザの属する権限レベルの識別子と前記暗号化データに示されている特定のユーザの識別子及び当該特定のユーザの属する権限レベルの識別子に基づき、第一のユーザ固有鍵に対して一方向関数による演算を行う回数と第二のユーザ固有鍵に対して一方向関数による演算を行う回数とをそれぞれ判定し、判定した回数だけ第一のユーザ固有鍵に対して一方向関数による演算を行って第一の中間鍵を生成し、判定した回数だけ第二のユーザ固有鍵に対して一方向関数による演算を行って第二の中間鍵を生成する。
【００７３】
ＳＴ２８では、ユーザ端末２において、復号部２１３が、暗号化されている機密文書を復号する。
このＳＴ２８は、実施の形態１におけるステップＳＴ１８と同様である。
【００７４】
ＳＴ２９では、ユーザ端末２において、文書開示部２１４が、機密文書を開示する。
このＳＴ２９は、実施の形態１におけるステップＳＴ１９と同様である。
【００７５】
以上のように、実施の形態２によれば、同じ権限レベルに属する２人のユーザにおいて、一方のユーザに開示権限が与えられた機密文書を暗号化したときのユーザ固有鍵を、他方のユーザが生成することが極めて困難であるため、あるユーザに開示権限を与えた機密文書が、同じ権限レベルに属する他のユーザによって開示されてしまう危険を軽減することができるようになる。
【００７６】
このように、本実施の形態では、文書管理サーバの鍵生成部が、文書管理システムで一意な値を持つ２つのマスタ鍵のそれぞれから、ハッシュ関数を使って、ユーザが属する階層に固有の２つの鍵、及び、ユーザに固有の２つの鍵を生成する機能を持ち、ユーザ端末の復号鍵生成部が、文書管理サーバから配布された２つの鍵から、ハッシュ関数を使って、暗号化された文書を復号する鍵を生成する機能を持つ文書管理システムについて説明した。
【００７７】
実施の形態３．
実施の形態２では、権限レベルＡ［ｈ］に属する任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を、同一の権限レベルＡ［ｈ］に属するユーザで、ユーザインデックスの値がｉより小さい、任意のユーザＵ［ｈ］［ｉ１］（ｉ１＜ｉ）に固有のユーザ固有鍵ＫＵ１［ｈ］［ｉ１］と、ユーザインデックスの値がｉより大きい、ユーザＵ［ｈ］［ｉ２］（ｉ＜ｉ２）に固有のユーザ固有鍵ＫＵ２［ｈ］［ｉ２］から生成することができてしまう。
そのため、任意の権限レベルＡ［ｈ］に属するユーザＵ［ｈ］［ｉ］に機密文書の開示権限を与えたとき、本来、開示権限を持たないユーザＵ［ｈ］［ｉ１］とユーザＵ［ｈ］［ｉ２］の結託により、機密文書を開示されてしまう危険がある。
この実施の形態３は、実施の形態２において、特定のユーザに開示権限を与えた機密文書が、同一の権限レベルに属するユーザの結託によって開示されないようにすることを目的とする。
【００７８】
本実施の形態の文書管理サーバ１及びユーザ端末２の構成は、図２及び図３に示した物と同様である。
【００７９】
最初に、本実施の形態３における文書管理システムにおいて、機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れについて説明する。
図１８（ａ）は、機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れを表した図である。
【００８０】
ＳＴ３１では、文書管理サーバ１において、マスタ鍵生成部１０４が、文書管理サーバ１で一意な値を持つマスタ鍵ＫＭを生成する。
このＳＴ３１は、実施の形態１におけるステップＳＴ１１と同様である。
【００８１】
ＳＴ３２では、文書管理サーバ１において、鍵生成部１０６が、任意の権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］、及び、任意のユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
本ステップで、文書管理サーバ１の鍵生成部１０６は、マスタ鍵生成部１０４で生成したマスタ鍵ＫＭから、ハッシュ関数Ｈ、及び、鍵付きハッシュ関数を使って、任意の権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］、及び、任意のユーザに固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
文書管理サーバ１の鍵生成部１０６が、最上位の権限レベルである権限レベルＡ［０］に固有の権限レベル固有鍵ＫＡ［０］、及び、権限レベルＡ［０］に属するに任意のユーザＵ［０］［ｉ］に固有のユーザ固有鍵ＫＵ［０］［ｉ］を生成するときの計算式を以下に示す。
ＫＡ［０］＝Ｈ（ＫＭ）
ＫＵ［０］［ｉ］＝ＫＨ（ＫＭ，ｉ）
ここで、鍵付きハッシュ関数ＫＨは、任意の入力データＸ、及び、鍵データＫの２つのデータを入力したとき、固定長データＹを出力する関数で、次の性質を持つ。
（１）鍵データＫが既知の場合でも、Ｙ＝Ｈ（Ｘ，Ｋ）のとき、出力値Ｙから入力値Ｘを計算することが極めて困難であること。
（２）異なるＸ１、Ｘ２に対して、Ｈ（Ｘ１，Ｋ）＝Ｈ（Ｘ２，Ｋ）となる確率が極めて小さいこと。
一般に、鍵付きハッシュ関数ＫＨは、ハッシュ関数Ｈを使って、次のように表される。
（３）ＫＨ（Ｘ，Ｋ）＝Ｈ（Ｘ｜｜Ｋ）（Ｘ｜｜Ｋ：ＸとＫを連結したデータ）
【００８２】
図１９は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ［０］、及び、ユーザ固有鍵ＫＵ［０］［Ｉ］を生成するときの順序を表した図である。
図１９は、ハッシュ関数Ｈの性質により、
（１）マスタ鍵ＫＭから、権限レベル固有鍵ＫＡ［０］を生成することはできるが、権限レベル固有鍵ＫＡ［０］から、マスタ鍵ＫＭを生成することは極めて困難であること、
（２）マスタ鍵ＫＭから、ユーザ固有鍵ＫＵ［０］［ｉ］を生成することはできるが、ユーザ固有鍵ＫＵ［０］［ｉ］から、マスタ鍵ＫＭを生成することは極めて困難であること、を表している。
【００８３】
文書管理サーバ１の鍵生成部１０６が、ハッシュ関数Ｈを使って、権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］（ｈ＝１，・・・，Ｍ−１）に固有の権限レベル固有鍵ＫＡ［ｈ］、及び、権限レベルＡ［０］を除く任意の権限レベルＡ［ｈ］に属する任意のユーザＡ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの計算式を以下に示す。
ＫＡ［ｈ］＝Ｈ（ＫＡ［ｈ−１］）
ＫＵ［ｈ］［ｉ］＝ＫＨ（ＫＡ［ｈ−１］，ｉ）
【００８４】
図２０は、文書管理サーバ１の鍵生成部１０６で、権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの順序を表した図である。
図２０は、ハッシュ関数Ｈの性質により、
（１）２つの権限レベル固有鍵ＫＡ［ｈ−１］、ＫＡ［ｈ］において、権限レベル固有鍵ＫＡ［ｈ−１］から権限レベル固有鍵ＫＡ［ｈ］を生成することはできるが、権限レベル固有鍵ＫＡ［ｈ］から権限レベル固有鍵ＫＡ［ｈ−１］を生成することはきわめて困難であること、
（２）権限レベル固有鍵ＫＡ［ｈ−１］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することはできるが、ユーザ固有鍵ＫＵ［ｈ］［ｉ］から、権限レベル固有鍵ＫＡ［ｈ−１］を生成することは極めて困難であること、を表している。
【００８５】
図１９、及び、図２０より、
（１）任意の権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］から、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ  ＜  ｈ１）に固有の権限レベル固有鍵ＫＡ［ｈ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に固有の権限レベル固有鍵ＫＡ［ｈ０］を生成することは極めて困難であること、
（２）任意の権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］から、権限レベルＡ［ｈ］より下位の任意の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属する任意のユーザＵ［ｈ１］［ｉ１］に固有のユーザ固有鍵ＫＵ［ｈ１］［ｉ１］を生成することはできるが、権限レベルＡ［ｈ］より上位の任意の権限レベルＫＡ［ｈ０］（ｈ０＜ｈ）に属する任意のユーザＵ［ｈ０］［ｉ０］に固有のユーザ固有鍵ＫＵ［ｈ０］［ｉ０］を生成することはきわめて困難であること、が分かる。
なお、本実施の形態３では、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するとき、鍵付きハッシュ関数ＫＨの第２パラメータである鍵データとして、ユーザＵ［ｈ］［ｉ］のユーザインデックスを使用しているが、ユーザインデックスの代わりに、例えば、ユーザＩＤのように、文書管理システム、または、ユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］において、ユーザＵ［ｋ］［ｉ］に固有のデータ（ユーザ固有値）を使用することもできる。
【００８６】
ＳＴ３３では、文書管理サーバ１において、鍵生成部１０６で生成した鍵を任意のユーザＵ［ｈ］［ｉ］に配布する（鍵配布ステップ）。
本ステップで、文書管理サーバ１の鍵配布部１０７は、鍵生成部１０６で生成した、ユーザＵ［ｈ］［ｉ］が属する権限レベルに固有の権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を、ユーザＵ［ｈ］［ｉ］のユーザ端末２に、データ通信路３を介して送信する。
このとき、権限レベル固有鍵ＫＡ［ｈ］、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を配布するデータ通信路３は、盗聴や改竄、ユーザの成りすましができない安全なデータ通信路である。
【００８７】
このように、本実施の形態に係る鍵生成部１０６は、権限レベルの階層ごとに、より上位の権限レベルに対して生成された鍵に対してユーザごとに固有のユーザ固有値を用いて一方向関数による演算を行って、権限レベルに属する各々のユーザに対するユーザ固有鍵を生成し、更に、権限レベルの階層ごとに、より上位の権限レベルに対して生成された鍵に対して一方向関数による演算を行って、権限レベルに固有の権限レベル固有鍵を生成する。
そして鍵配布部１０７は、ユーザ固有鍵と当該ユーザ固有鍵と権限レベルの階層が同じ権限レベル固有鍵とを、対応するユーザの端末装置に送信する。
【００８８】
ユーザ端末２では、送信された権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ］に対して図１８（ｂ）に示す処理を行う。
すなわち、ＳＴ１０５にて、鍵受信部２１５が送信された権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を受信し（鍵受信ステップ）、受信した権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を鍵管理部２１０に渡し、ＳＴ１０４にて、鍵管理部２１０が、権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を鍵管理記憶媒体２１１に格納する。
このとき、ユーザＵ［ｈ］［ｉ］以外の第３者が、鍵管理記憶媒体２１１に格納された権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ］に不正にアクセスすることを禁止する。鍵管理記憶媒体２１１は、第三者による不正アクセスを防止する耐タンパな記憶媒体であることが望ましい。
【００８９】
次に、本実施の形態３における文書管理システムにおいて、機密文書をユーザに配布するときの処理の流れについて説明する。
図２１は、機密文書をユーザに配布するときの処理の流れを表した図である。
【００９０】
ＳＴ３４では、文書管理サーバ１において、鍵生成部１０６が、機密文書を暗号化する鍵を生成する。
ｉ．機密文書の開示権限を権限レベルに対して与える場合
本ステップで、機密文書の開示権限を権限レベルＡ［ｈ］に対して与える場合、文書管理サーバ１の鍵生成部１０６は、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。
このとき、鍵生成部１０６は、マスタ鍵管理記憶媒体１０５に格納されているマスタ鍵ＫＭから、ハッシュ関数Ｈを使って、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。なお、権限レベル固有鍵ＫＡ［ｈ］を生成するときの計算式は、ステップＳＴ３２において、権限レベル固有鍵ＫＡ［ｈ］を生成したときの計算式と同様である。
ｉｉ．機密文書の開示権限をユーザに対して与える場合
本ステップで、機密文書の開示権限をユーザＵ［ｈ］［ｉ］に対して与える場合、文書管理サーバ１の鍵生成部１０６は、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
このとき、鍵生成部１０６は、マスタ鍵管理記憶媒体１０５に格納されているマスタ鍵ＫＭから、ハッシュ関数Ｈを、及び、鍵付きハッシュ関数ＫＨを使って、ユーザＵ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの計算式は、ステップＳＴ３２において、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成したときの計算式と同様である。
【００９１】
ＳＴ３５では、文書管理サーバ１において、暗号化部１０８が、ユーザに配布する機密文書を暗号化する。
このＳＴ３５は、実施の形態１におけるステップＳＴ１５と同様である。
【００９２】
ＳＴ３６では、文書管理サーバ１において、文書配布部１０９が、機密文書をユーザに配布する。
このＳＴ３６は、実施の形態１におけるステップＳＴ１６と同様である。
【００９３】
最後に、本実施の形態３における文書管理システムにおいて、機密文書をユーザが開示するときの処理の流れについて説明する。
図２２は、機密文書をユーザに配布するときの処理の流れを表した図である。
【００９４】
ＳＴ１７では、ユーザ端末２の文書受信部２１６が、文書管理サーバ１から送信された機密文書データを受信する（データ受信ステップ）。
ＳＴ３７では、ユーザ端末２において、復号鍵生成部２１２が、文書管理サーバ１から配布された機密文書を復号する鍵を生成する（復号鍵生成ステップ）。
ｉ．機密文書の開示権限が権限レベルに対して与えられている場合
本ステップで、機密文書の開示権限が権限レベル［ｈ］に対して与えられている場合、ユーザ端末２の復号鍵生成部２１２は、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］を生成する。
なお、復号鍵生成部２１２は、実施の形態１のステップＳＴ１８と同様に、文書管理サーバ１から送信された文書データ１５を解析することによって、機密文書の開示権限が権限レベル［ｈ］に対して与えられていることを判断する。
（１）機密文書の開示権限が与えられている権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］に属するユーザＵ［ｈ］［ｉ］のユーザ端末において、復号鍵生成部２１２は、ユーザ端末２の鍵管理記憶媒体２１１に格納されている権限レベル固有鍵ＫＡ［ｈ］を、機密文書を復号する鍵と見なす。
（２）機密文書の開示権限が与えられている権限レベルより上位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より上位の権限レベルＡ［ｈ０］に属するユーザＵ［ｈ０］［ｉ０］のユーザ端末において、復号鍵生成部２１２が、ユーザ端末２の鍵管理記憶媒体２１１に格納されている権限レベル固有鍵ＫＡ［ｈ０］から、権限レベル固有鍵ＫＡ［ｈ］を生成するときの計算式を次に示す。
ＫＡ［ｈ］＝Ｈ＾（ＫＡ［ｈ０］）
（３）機密文書の開示権限が与えられている権限レベルより下位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より下位の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属するユーザＵ［ｈ１］［ｉ１］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されている権限レベル固有鍵ＫＡ［ｈ１］、及び、ユーザ固有鍵ＫＵ［ｈ１］［ｉ１］から、権限レベル固有鍵  ＫＡ［ｈ］を生成することは極めて困難であるため、ユーザＵ［ｈ１］［ｉ１］は、ユーザＵ［ｈ］［ｉ］に開示権限が与えられている機密文書を復号し、開示することができない。
ｉｉ．機密文書の開示権限がユーザに対して与えられている場合
本ステップで、機密文書の開示権限がユーザ［ｈ］［ｉ］に対して与えられている場合、ユーザ端末２の復号鍵生成部２１２は、ユーザ［ｈ］［ｉ］に固有のユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
なお、復号鍵生成部２１２は、実施の形態１のステップＳＴ１８と同様に、文書管理サーバ１から送信された文書データ１５を解析することによって、機密文書の開示権限がユーザＵ［ｈ］［ｉ］に対して与えられていることを判断する。
１）機密文書の開示権限が与えられているユーザが属する権限レベルと同じ権限レベルに属するユーザの場合
機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］と同じ権限レベルＡ［ｈ］に属する他のユーザＵ［ｈ］［ｉ１］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されている権限レベル固有鍵ＫＡ［ｈ］、及び、ユーザ固有鍵ＫＵ［ｈ］［ｉ１］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することは極めて困難であるため、ユーザＵ［ｈ］［ｉ１］は、ユーザＵ［ｈ］［ｉ］に閲覧権限が与えられている機密文書を復号し、開示することができない。
２）機密文書の開示権限が与えられているユーザが属する権限レベルより上位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられている権限レベルＡ［ｈ］より上位の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に属するユーザＵ［ｈ０］［ｉ０］のユーザ端末２において、復号鍵生成部２１２は、ユーザ端末２の鍵管理記憶媒体２１１に格納されている権限レベル固有鍵ＫＡ［ｈ０］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成する。
復号鍵生成部２１２がユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成するときの計算式を次に示す。
ＫＡ［ｈ−１］＝Ｈ＾（（ｈ−１）−ｈ０）（ＫＡ［ｈ０］）
ＫＵ［ｈ］［ｉ］＝ＫＨ（ＫＡ［ｈ−１］，ｉ）
３）機密文書の開示権限が与えられているユーザが属する権限レベルより下位の権限レベルに属するユーザの場合
機密文書の開示権限が与えられているユーザＵ［ｈ］［ｉ］が属する権限レベルＡ［ｈ］より下位の権限レベルＡ［ｈ１］（ｈ＜ｈ１）に属するユーザＵ［ｈ１］［ｉ１］のユーザ端末２において、ユーザ端末２の鍵管理記憶媒体２１１に格納されている権限レベル固有鍵ＫＡ［ｈ１］、及び、ユーザ固有鍵ＫＵ［ｈ１］［ｉ１］から、ユーザ固有鍵ＫＵ［ｈ］［ｉ］を生成することは極めて困難であるため、ユーザＵ［ｈ１］［ｉ１］は、ユーザＵ［ｈ］［ｉ］に開示権限が与えられている機密文書を復号し、開示することができない。
【００９５】
このように、本実施の形態に係る復号鍵生成部２１２は、暗号化された機密文書データ（暗号化データ）が開示権限を与えている特定のユーザの属する権限レベルに比べて自装置ユーザが属する権限レベルが上位の階層である場合に、鍵受信部２１５により受信されたユーザ固有鍵に対して一方向関数による演算を行って当該特定のユーザの属する権限レベルに属するユーザが共通に用いることができる下位権限レベル固有鍵を生成し、更に、生成した下位権限レベル固有鍵に対して特定のユーザに固有のユーザ固有値を用いて一方向関数による演算を行って、前記暗号化データの復号のための復号鍵を生成する。
また、復号鍵生成部２１２は、暗号化された機密文書データに特定のユーザの属する権限レベルの識別子が示されている場合に、権限レベル／ユーザインデックス記憶部２１７に記憶されている自装置ユーザの属する権限レベルの識別子と暗号化された機密文書デーに示されている特定のユーザの属する権限レベルの識別子に基づき、一方向関数による演算を行う回数を判定し、判定した回数だけ前記鍵受信部により受信された権限レベル固有鍵に対して一方向関数による演算を行って、下位権限レベル固有鍵を生成する。
【００９６】
ＳＴ３８では、ユーザ端末２において、復号部２１３が、暗号化されている機密文書を復号する。
このＳＴ３８は、実施の形態１におけるステップＳＴ１８と同様である。
【００９７】
ＳＴ３９では、ユーザ端末２において、文書開示部２１４が、機密文書を開示する。
このＳＴ３９は、実施の形態１におけるステップＳＴ１９と同様である。
【００９８】
以上のように、実施の形態３によれば、特定のユーザに開示権限を与えた機密文書が、同一の権限レベルに属するユーザの結託によって開示されてしまう危険を軽減することができるようになる。
【００９９】
このように、本実施の形態では、文書管理サーバの鍵生成部が、文書管理システムで一意な値を持つマスタ鍵から、ハッシュ関数を使って、ユーザが属する階層に固有の鍵を生成し、上位の階層に固有の鍵から下位の階層に属するユーザに固有の鍵を生成する機能を持ち、ユーザ端末の復号鍵生成部が、文書管理サーバから配布された階層に固有の鍵から、ハッシュ関数を使って、下位の階層に固有の鍵、または、下位の階層に属するユーザに固有の鍵を生成する機能を持つ文書管理システムについて説明した。
【０１００】
実施の形態４．
実施の形態１、実施の形態２、及び、実施の形態３では、文書管理サーバにおいて、機密文書をユーザに配布する毎に、マスタ鍵から、文書を暗号化する鍵を生成している。
しかしながら、文書管理サーバにおいて、先にユーザ端末に配布した機密文書と同一の権限レベル、または、同一のユーザに閲覧権限を与える異なる機密文書を配布する場合には、先に配布した機密文書と同一の鍵で暗号化するため、先に機密文書を配布するときに生成した鍵を再利用することによって、鍵の生成処理を省略することができる。
また、文書管理サーバにおいて、ハッシュ関数を使って、マスタ鍵から機密文書を暗号化する鍵を生成するとき、同様に、その生成過程において生成した鍵を、他の機密文書を暗号化する鍵として再利用することによって、鍵の生成処理を省略することができる。
また、文書管理サーバにおいて、機密文書を暗号化する鍵を、マスタ鍵から生成せずに、先に機密文書を配布するときに生成した鍵から生成することよって、鍵の生成に掛かる処理負荷を軽減することができる。
この実施の形態４では、文書管理サーバにおいて、先に生成した鍵を再利用することによって、鍵の生成に掛かる処理を省略、または、その負荷を軽減することを目的とする。
【０１０１】
図２３は、本実施の形態に係る文書管理サーバ１の構成例を表すブロック図である。
図２３で、図２と同一機能については、同一符号を付し、説明を省略する。
図２３において、暗号化鍵管理記憶媒体１１９（鍵記憶部）は、機密文書を暗号化する鍵を管理する記憶媒体である。
【０１０２】
実施の形態４の文書管理システムで、文書管理サーバ１の鍵生成部１０６は、機密文書を暗号化する鍵を生成しようとするとき、先に、暗号化鍵管理記憶媒体１１９で管理される鍵から、機密文書を暗号化する鍵を検索する。
なお、暗号化鍵管理記憶媒体１１９において、任意の権限レベル固有鍵ＫＡ［ｈ］は、その権限レベルインデックスの値ｈをキーに検索でき、かつ、任意のユーザ固有鍵ＫＵ［ｈ］［ｉ］は、その権限レベルインデックスの値ｈと、そのユーザインデックスの値ｉをキーに検索できるように管理されていることを仮定する。
鍵生成部１０６は、暗号化鍵管理記憶媒体１１９で管理する鍵から、機密文書を暗号化する鍵が見つかった場合、この鍵を、機密文書を暗号化する鍵と見なす。
また、鍵生成部１０６は、暗号化鍵管理記憶媒体１１９で、機密文書を暗号化する鍵が見つからなかった場合、鍵管理記憶媒体１９で管理される鍵から、機密文書を暗号化する鍵を最も少ない計算量で生成することができる鍵を検索する。
例えば、実施の形態３において、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］で機密文書を暗号化する場合、鍵生成部１０６は、権限レベル固有鍵ＫＡ［ｈ］を検索し、見つからなければ、より上位の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に固有の権限レベル固有鍵ＫＡ［ｈ０］を、その権限レベルインデックスの値が大きい権限レベル固有鍵から順に検索する。
このとき、機密文書を暗号化する鍵を最も少ない計算量で生成することができる鍵が見つかった場合、鍵生成部１０６は、この鍵から、ハッシュ関数を使って、機密文書を暗号化する鍵を生成することによって、鍵の生成に掛かる処理の負荷を軽減することができる。
このとき、機密文書を暗号化する鍵を最も少ない計算量で生成することができる鍵が見つからなかった場合、実施の形態１、実施の形態２、及び、実施の形態３と同様に、マスタ鍵から、機密文書を暗号化する鍵を生成する。
【０１０３】
このように、鍵生成部１０６は、暗号化鍵管理記憶媒体１１９に記憶されている鍵の中から暗号化部１０８による暗号化に使用可能な鍵を検索し、暗号化に使用可能な鍵が検索できなかった場合に、暗号化鍵管理記憶媒体１１９に記憶されている鍵の中から暗号化に使用可能な鍵を最も少ない計算量で生成できる鍵を検索し、検索した鍵を用いて暗号化に使用可能な鍵を生成する。
【０１０４】
また、文書管理サーバ１の鍵生成部１０６は、新規に鍵を生成した場合、新規に生成した鍵、及び、その鍵を生成する過程で生成された鍵の全て、または、一部を暗号化鍵管理記憶媒体１１９に登録する。
【０１０５】
以上のように、実施の形態４によれば、文書管理サーバで生成した鍵の全て、または、一部を管理することによって、機密文書を暗号化する鍵の生成に掛かる処理を省略、または、軽減することができるようになる。
【０１０６】
以上、本実施の形態では、文書管理サーバが、鍵生成部で生成した鍵を管理する暗号化鍵管理記憶媒体を備え、文書管理サーバの鍵生成部が、文書を暗号化する鍵と同一の鍵を鍵管理記憶媒体から検索する機能、文書を暗号化する鍵を最も少ない計算量で生成することができる鍵を鍵管理記憶媒体から検索する機能、生成した鍵、または、その鍵の生成過程において生成された鍵の全て、または、一部を鍵管理記憶媒体に登録する機能を持つ文書管理システムについて説明した。
【０１０７】
実施の形態５．
実施の形態１、実施の形態２、及び、実施の形態３では、ユーザ端末において、文書管理サーバから配布された機密文書を開示する毎に、鍵管理記憶媒体で管理する権限レベル固有鍵、または、ユーザ固有鍵から、暗号化された機密文書を復号する鍵を生成している。
しかしながら、ユーザ端末において、先に開示した機密文書と同一の権限レベル、または、同一のユーザに閲覧権限が与えられている機密文書を開示する場合、先に開示した機密文書を復号した鍵と、同一の鍵で復号するため、先に、機密文書を開示するときに生成した鍵を再利用することによって、鍵の生成処理を省略することができる。
また、ユーザ端末において、ハッシュ関数を使って、ユーザ端末で管理する鍵から、機密文書を暗号化する鍵を生成するとき、同様に、その生成過程において生成した鍵を、他の機密文書を暗号化する鍵として再利用することによって、鍵の生成処理を省略することができる。
また、文書管理サーバにおいて、機密文書を暗号化する鍵を、マスタ鍵から生成せずに、先に機密文書を配布するときに生成した鍵から生成することよって、鍵の生成に掛かる処理負荷を軽減することができる。
この実施の形態５では、ユーザ端末において、先に生成した鍵を再利用することによって、鍵の生成に掛かる処理を省略、または、その負荷を軽減することを目的とする。
【０１０８】
図２４は、本実施の形態に係るユーザ端末２の構成例を表すブロック図である。
図２４で、図３と同一機能については、同一符号を付し、説明を省略する。
図２４において、復号鍵管理記憶媒体２２０（鍵記憶部）は、機密文書を復号する鍵を管理する記憶媒体である。
【０１０９】
実施の形態５の文書管理システムで、ユーザ端末２の復号鍵生成部２１２は、機密文書を復号する鍵を生成しようとするとき、先に、復号鍵管理記憶媒体２２０で管理される鍵から、機密文書を復号する鍵を検索する。
なお、復号鍵管理記憶媒体２２０において、任意の権限レベル固有鍵ＫＡ［ｈ］は、その権限レベルインデックスの値ｈをキーに検索でき、かつ、任意のユーザ固有鍵ＫＵ［ｈ］［ｉ］は、その権限レベルインデックスの値ｈ、及び、ユーザインデックスの値ｉをキーに検索できるように管理されていることを仮定する。
復号鍵生成部２１２は、復号鍵管理記憶媒体２２０で管理する鍵から、暗号化された機密文書を復号する鍵が見つかった場合、この鍵を、暗号化された機密文書を復号する鍵と見なす。
また、復号鍵生成部２１２は、復号鍵管理記憶媒体２２０で管理する鍵から、暗号化された機密文書を復号する鍵が見つからなかった場合、復号鍵管理記憶媒体２２０で管理する鍵から、暗号化された機密文書を復号する鍵を最も少ない計算量で計算できる鍵を検索する。
例えば、実施の形態３において、権限レベルＡ［ｈ］に固有の権限レベル固有鍵ＫＡ［ｈ］で機密文書が暗号化されている場合、復号鍵生成部２１２は、権限レベル固有鍵ＫＡ［ｈ］が見つからなければ、より上位の権限レベルＡ［ｈ０］（ｈ０＜ｈ）に固有の権限レベル固有鍵ＫＡ［ｈ０］を、その権限レベルインデックスの値が大きい権限レベル固有鍵から順に検索する。
このとき、機密文書を暗号化する鍵を最も少ない計算量で生成することができる鍵が見つかった場合、復号鍵生成部２１２は、この鍵から、ハッシュ関数を使って、暗号化された機密文書を復号する鍵を生成することによって、鍵の生成に掛かる処理の負荷を軽減することができる。
【０１１０】
このように、本実施の形態に係る復号鍵生成部２１２は、復号鍵管理記憶媒体２２０に記憶されている鍵の中から復号部２１３による復号に使用可能な鍵を検索し、復号に使用可能な鍵が検索できなかった場合に、復号鍵管理記憶媒体２２０に記憶されている鍵の中から復号に使用可能な鍵を最も少ない計算量で生成できる鍵を検索し、検索した鍵を用いて復号に使用可能な鍵を生成する。
【０１１１】
また、ユーザ端末２の復号鍵生成部２１２は、新規に鍵を生成した場合、新規に生成した鍵、及び、その鍵を生成する過程で生成された鍵の全て、または、一部を復号鍵管理記憶媒体２０に登録する。
【０１１２】
以上のように、実施の形態５によれば、ユーザ端末で生成した鍵の全て、または、一部を管理することによって、暗号化された機密文書を復号する鍵の生成に掛かる処理を省略、または、軽減することができるようになる。
【０１１３】
このように、本実施の形態では、ユーザ端末が、復号鍵生成部で生成した鍵を管理する復号鍵管理記憶媒体を備え、ユーザ端末の復号鍵生成部が、暗号化された文書を復号する鍵と同一の鍵を復号鍵管理記憶媒体から検索する機能、暗号化された文書を復号する鍵を最も少ない計算量で生成することができる鍵を復号鍵管理記憶媒体から検索する機能、生成した鍵、または、その鍵の生成過程において生成された鍵の全て、または、一部を復号鍵管理記憶媒体に登録する機能を持つ文書管理システムについて説明した。
【図面の簡単な説明】
【０１１４】
【図１】実施の形態１−５に係る文書管理システムの構成例を示す図。
【図２】実施の形態１−３、５に係る文書管理サーバの構成例を示す図。
【図３】実施の形態１−４に係るユーザ端末の構成例を示す図。
【図４】実施の形態１に係る機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れを表した図。
【図５】実施の形態１に係る鍵生成の順序を示す図。
【図６】実施の形態１に係る鍵生成の順序を示す図。
【図７】実施の形態１に係る機密文書をユーザに配布するときの処理の流れを表した図。
【図８】実施の形態１に係る文書データの例を示す図。
【図９】実施の形態１に係る文書データの別の例を示す図。
【図１０】実施の形態１に係る機密文書を開示するときの処理の流れを表した図である。
【図１１】実施の形態２に係る機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れを表した図。
【図１２】実施の形態２に係る鍵生成の順序を示す図。
【図１３】実施の形態２に係る鍵生成の順序を示す図。
【図１４】実施の形態２に係る鍵生成の順序を示す図。
【図１５】実施の形態２に係る鍵生成の順序を示す図。
【図１６】実施の形態２に係る機密文書をユーザに配布するときの処理の流れを表した図。
【図１７】実施の形態２に係る機密文書を開示するときの処理の流れを表した図である。
【図１８】実施の形態３に係る機密文書を暗号化／復号する鍵をユーザに配布するときの処理の流れを表した図。
【図１９】実施の形態３に係る鍵生成の順序を示す図。
【図２０】実施の形態３に係る鍵生成の順序を示す図。
【図２１】実施の形態３に係る機密文書をユーザに配布するときの処理の流れを表した図。
【図２２】実施の形態３に係る機密文書を開示するときの処理の流れを表した図である。
【図２３】実施の形態４に係る文書管理サーバの構成例を示す図。
【図２４】実施の形態５に係るユーザ端末の構成例を示す図。
【図２５】実施の形態１−５に係る制御ノード装置及び処理ノード装置のハードウェア構成例を示す図。
【符号の説明】
【０１１５】
１  文書管理サーバ、２  ユーザ端末、３  データ通信路、１０４  マスタ鍵生成部、１０５  マスタ鍵管理記憶媒体、１０６  鍵生成部、１０７  鍵配布部、１０８  暗号化部、１０９  文書配布部、１１０  権限レベル／ユーザ管理部、１１９  暗号化鍵管理記憶媒体、２１０  鍵管理部、２１１  鍵管理記憶媒体、２１２  復号鍵生成部、２１３  復号部、２１４  文書開示部、２１５  鍵受信部、２１６  文書受信部、２１７  権限レベル／ユーザインデックス記憶部、２２０  復号鍵管理記憶媒体。
【図１】
2007258852.tif 000003
【図２】
2007258852.tif 000004
【図３】
2007258852.tif 000005
【図４】
2007258852.tif 000006
【図５】
2007258852.tif 000007
【図６】
2007258852.tif 000008
【図７】
2007258852.tif 000009
【図８】
2007258852.tif 000010
【図９】
2007258852.tif 000011
【図１０】
2007258852.tif 000012
【図１１】
2007258852.tif 000013
【図１２】
2007258852.tif 000014
【図１３】
2007258852.tif 000015
【図１４】
2007258852.tif 000016
【図１５】
2007258852.tif 000017
【図１６】
2007258852.tif 000018
【図１７】
2007258852.tif 000019
【図１８】
2007258852.tif 000020
【図１９】
2007258852.tif 000021
【図２０】
2007258852.tif 000022
【図２１】
2007258852.tif 000023
【図２２】
2007258852.tif 000024
【図２３】
2007258852.tif 000025
【図２４】
2007258852.tif 000026
【図２５】
2007258852.tif 000027