(57)【要約】  【課題】コンテンツに含まれる部分毎に、閲覧することのできる利用者を制限することができる技術を提供すること。  【解決手段】利用者装置１４０Ａ〜１４０Ｃの制御部１４１の暗号処理部１４４は、コンテンツデータの構成要素を暗号対象部分として特定し、当該暗号化対象部分毎に閲覧を許可する第二利用者の公開鍵を公開鍵記憶領域１５０から読み出し、コンテンツデータの管理者の秘密鍵を、読み出した公開鍵でべき乗し、剰余演算を行うことで暗号化鍵生成用鍵を生成し、当該暗号化鍵生成用鍵を用いて、暗号化対象部分毎に対応する乱数を暗号化して、暗号化対象部分毎に暗号化鍵を生成し、暗号化対象部分毎に生成した暗号化鍵で当該暗号化対象部分を暗号化する。【選択図】図７
2008061197.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータを暗号化する暗号化装置であって、
第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
制御部と、を備え、
前記制御部は、
前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、
前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、
前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、
前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
前記暗号化対象部分毎に、前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化処理と、
前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成処理と、
を行うこと、
を特徴とする暗号化装置。
【請求項２】
請求項１に記載の暗号化装置であって、
前記乱数生成処理は、乱数シード値を生成し、当該乱数シード値から少なくとも一つ以上の乱数を生成し、前記暗号化対象部分毎に各々の乱数を対応させるものであり、
前記暗号化コンテンツ生成処理における前記前記暗号化部分毎の乱数を特定する情報は、前記乱数シード値であること、
を特徴とする暗号化装置。
【請求項３】
請求項１に記載の暗号化装置であって、
前記利用者特定処理において生成する利用者リスト情報には、前記暗号化対象部分毎に、当該暗号化対象部分の閲覧を許可する第二利用者の識別情報と、前記第一利用者の識別情報と、が含まれており、
前記暗号化コンテンツ生成処理において生成する暗号化コンテンツは、前記暗号化部分と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備えるものであること、
を特徴とする暗号化装置。
【請求項４】
請求項１に記載の暗号化装置であって、
前記第一利用者の秘密鍵は、
二つの異なる素数ｐ、ｑの乗算により積ｎを算出し、
前記積ｎ未満の整数ｓを特定し、
前記積ｎに対して、１からｎまでの正の整数のうち、前記積ｎと互いに素となるものの個数よりも小さい任意の素数ｒを特定し、
前記整数ｓを前記素数ｒでべき乗したものを前記積ｎにより剰余演算を行うことで算出されるものであり、
前記第一利用者の公開鍵は、前記素数ｒであり、
前記第二利用者の公開鍵は、
前記積ｎに対して、１からｎまでの正の整数のうち、前記積ｎと互いに素となるものの個数よりも小さく、かつ、前記素数ｒとは異なる素数ｒ’から各々択一的に選択されたものであり、
前記係数は前記積ｎであること、
を特徴とする暗号化装置。
【請求項５】
請求項１に記載の暗号化装置であって、
前記暗号化鍵生成用鍵生成処理は、前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行ったもののハッシュ値で暗号化鍵生成用鍵を生成するものであること、
を特徴とする暗号化装置。
【請求項６】
請求項１乃至５の何れか一項に記載の暗号化装置であって、
前記記憶部には、前記複数の第二利用者に含まれる第三利用者の更新後の公開鍵がさらに記憶されており、
前記制御部は、
前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
前記情報取得処理で取得した暗号化部分毎に、当該利用者リスト情報に含まれる第二利用者の公開鍵を読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に含まれる前記第三利用者を除く第二利用者の公開鍵と、前記第三利用者の更新後の公開鍵と、を前記記憶部から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで更新暗号化鍵生成用鍵を生成する更新暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成処理において生成した暗号化鍵を前記更新暗号化鍵生成用鍵で復号することにより、前記暗号化部分毎に対応する更新乱数を生成する更新乱数生成処理と、
前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の更新乱数を特定する情報と、を備える更新暗号化コンテンツを生成する更新暗号化コンテンツ生成処理と、
を行うこと、
を特徴とする暗号化装置。
【請求項７】
請求項１乃至６の何れか一項に記載の暗号化装置が生成した暗号化コンテンツを復号する復号装置であって、
前記複数の第二利用者のうちの一の利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
制御部と、を備え、
前記制御部は、
前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、前記一の利用者の識別情報が含まれるか否かを判定する判定処理と、
前記判定処理において、前記暗号化部分毎の利用者リスト情報に前記一の利用者の識別情報が含まれる場合に、当該利用者リスト情報に含まれる第二利用者の公開鍵であって、前記一の利用者の公開鍵以外の公開鍵と、第一利用者の公開鍵と、を読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号処理と、
を行うこと、
を特徴とする復号装置。
【請求項８】
請求項７に記載の復号装置であって、
前記記憶部には、前記複数の第二利用者に含まれる第三利用者の更新後の公開鍵がさらに記憶されており、
前記制御部は、
前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に含まれる前記一の利用者及び前記第三利用者を除く第二利用者の公開鍵と、前記第三利用者の更新後の公開鍵と、前記第一利用者の公開鍵と、を前記記憶部から読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで更新暗号化鍵生成用鍵を生成する更新暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成処理において生成した暗号化鍵を前記更新暗号化鍵生成用鍵で復号することにより、前記暗号化部分毎に対応する更新乱数を生成する更新乱数生成処理と、
前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の更新乱数を特定する情報と、を備える更新暗号化コンテンツを生成する更新暗号化コンテンツ生成処理と、
を行うこと、
を特徴とする復号装置。
【請求項９】
コンテンツデータを暗号化する暗号化装置と、当該暗号化装置が使用する秘密鍵及び公開鍵を生成する鍵管理装置と、を備える情報システムであって、
前記鍵管理装置は、演算部を備え
前記鍵管理装置の前記演算部は、
二つの異なる素数ｐ、ｑの乗算により係数ｎを算出し、前記係数ｎ未満の整数ｓを特定し、前記係数ｎに対して、１からｎまでの正の整数のうち、前記係数ｎと互いに素となるものの個数よりも小さい任意の素数ｒを特定することで第一の利用者の公開鍵を生成する処理と、
前記整数ｓを前記素数ｒでべき乗したものを前記係数ｎにより剰余演算を行うことにより前記第一の利用者の秘密鍵を算出する処理と、
前記係数ｎに対して、１からｎまでの正の整数のうち、前記係数ｎと互いに素となるものの個数よりも小さく、かつ、前記素数ｒとは異なる素数ｒ’の中からそれぞれ択一的に選択することにより複数の第二利用者の公開鍵を各々生成する処理と、
を行い、
前記暗号化装置は、
前記第一利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、前記係数ｎ、を記憶する記憶部と、
制御部と、を備え、
前記暗号化装置の前記制御部は、
前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、
前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、
前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、
前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数ｎにより剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号処理と、
を行うこと、
を特徴とする情報システム。
【請求項１０】
請求項９に記載の情報システムであって、
前記鍵管理装置は、
前記整数ｓ、前記係数ｎ、並びに、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、を記憶する記憶部をさらに備え、
前記鍵管理装置の前記制御部は、
前記複数の第二利用者に含まれる第三利用者の公開鍵を、前記係数ｎに対して、１からｎまでの正の整数のうち、前記係数ｎと互いに素となるものの個数よりも小さく、かつ、前記素数ｒ及びｒ’とは異なる素数ｒ’’の中から選択することで、前記第二公開鍵情報に含まれる前記第三利用者の公開鍵を更新する公開鍵更新処理と、
前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、当該利用者リスト情報に含まれる第二利用者の公開鍵及び第一利用者の公開鍵を前記公開鍵更新処理で更新した前記第二公開鍵情報から読み出し、前記整数ｓを、読み出した公開鍵でべき乗し、前記係数ｎにより剰余演算を行うことで更新暗号化鍵生成用鍵を生成する更新暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成処理において生成した暗号化鍵を前記更新暗号化鍵生成用鍵で復号することで、前記暗号化部分毎に対応する更新乱数を生成する更新乱数生成処理と、
前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の更新乱数を特定する情報と、を備える更新暗号化コンテンツを生成する更新暗号化コンテンツ生成処理と、
を行うこと、
を特徴とする情報システム。
【請求項１１】
第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
制御部と、を備える暗号化装置が行うコンテンツデータの暗号化方法であって、
前記制御部が、前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定過程と、
前記制御部が、前記暗号化対象部分毎に対応する乱数を生成する乱数生成過程と、
前記制御部が、前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定過程と、
前記制御部が、前記暗号化対象部分毎に、前記利用者特定過程により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成過程と、
前記制御部が、前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成過程と、
前記制御部が、前記暗号化対象部分毎に前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化過程と、
前記制御部が、前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成過程と、
を行うこと、
を特徴とする暗号化方法。
【請求項１２】
請求項１１の暗号化方法で生成された暗号化コンテンツを復号する復号方法であって、
前記複数の第二利用者のうちの一の利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
制御部と、を備える復号装置において、
前記制御部が、前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得過程と、
前記制御部が、前記情報取得過程で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、前記一の利用者の識別情報が含まれるか否かを判定する判定過程と、
前記制御部が、前記判定過程において、前記暗号化部分毎の利用者リスト情報に前記一の利用者の識別情報が含まれる場合に、当該利用者リスト情報に含まれる第二利用者の公開鍵であって、前記一の利用者の公開鍵以外の公開鍵と、第一利用者の公開鍵と、を読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成過程と、
前記制御部が、前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成過程と、
前記制御部が、前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号過程と、
を行うこと、
を特徴とする復号方法。
【請求項１３】
コンピュータを
第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶手段、
制御手段、
として機能させるプログラムであって、
前記制御手段に、
前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、
前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、
前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、
前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
前記暗号化対象部分毎に前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化処理と、
前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成処理と、
を行わせること、
を特徴とするプログラム。
【請求項１４】
コンピュータを、
前記複数の第二利用者のうちの一の利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶手段、
制御手段
として機能させ、請求項１２に記載されたプログラムを読み込んだコンピュータで生成された暗号化コンテンツを復号するためのプログラムであって、
前記制御手段に、
前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、前記一の利用者の識別情報が含まれるか否かを判定する判定処理と、
前記判定処理において、前記暗号化部分毎の利用者リスト情報に前記一の利用者の識別情報が含まれる場合に、当該利用者リスト情報に含まれる第二利用者の公開鍵であって、前記一の利用者の公開鍵以外の公開鍵と、第一利用者の公開鍵と、を読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号処理と、
を行わせること、
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツの構成要素毎に暗号化及び復号を行う技術に関する。
【背景技術】
【０００２】
近年、情報通信機器の発展によって、様々なコンテンツが電子的に利用されるようになってきている。これらコンテンツの中には、例えば個人情報のように、それを閲覧する利用者によって閲覧を禁止、或いは、制限しなければならない場合がある。例えば、インターネット上に個人情報を公開した場合には、悪意のある利用者によって個人情報が悪用されることが考えられる。
【０００３】
この点、従来からコンテンツを暗号化することによって、コンテンツを保護する方法が知られている。
【０００４】
例えば、非特許文献１や非特許文献２に記載されている技術では、暗号化されたコンテンツを復号するための鍵情報の配布方法を工夫する等によって、グループ内の限られた利用者にのみコンテンツを閲覧することができるようにしている。
【０００５】
【非特許文献１】Ｊｕｎ  Ａｎｚａｉ，  Ｎａｔｓｕｍｅ  Ｍａｔｓｕｚａｋｉ，  ａｎｄ  Ｔｓｕｔｏｍｕ  Ｍａｔｓｕｍｏｔｏ，  “Ａ  Ｑｕｉｃｋ  Ｇｒｏｕｐ  Ｋｅｙ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｓｃｈｅｍｅ  ｗｉｔｈ  Ｅｎｔｉｔｙ  Ｒｅｖｏｃａｔｉｏｎ”，    Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  Ａｓｉａｃｒｙｐｔ’９９，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ：  Ｖｏｌ．１７１６  （ＬＮＣＳ  １７１６），  ｐｐ．３３３−３４７，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  １９９９．
【非特許文献２】Ｎｕｔｔａｐｏｎｇ  Ａｔｔｒａｐａｄｕｎｇ、Ｋａｚｕｋｕｎｉ  Ｋｏｂａｒａ  ａｎｄ  Ｈｉｄｅｋｉ  Ｉｍａｉ、“Ｂｒｏａｄｃａｓｔ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｓｈｏｒｔ  ｋｅｙｓ  ａｎｄ  ｔｒａｎｓｍｉｓｓｉｏｎｓ”、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３ｒｄ  ＡＣＭ  ｗｏｒｋｓｈｏｐ  ｏｎ  Ｄｉｇｉｔａｌ  ｒｉｇｈｔｓ  ｍａｎａｇｅｍｅｎｔ、ｐｐ．５５  −  ６６  、２００３
【発明の開示】
【発明が解決しようとする課題】
【０００６】
非特許文献１や非特許文献２に記載されている従来技術では、コンテンツ単位で暗号化をするものであるため、コンテンツの部分毎に各々異なる利用者に選択的に開示することはできない。
【０００７】
そこで、本発明は、コンテンツに含まれる部分毎に、閲覧することのできる利用者を制限することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、本発明は、コンテンツデータに含まれる構成要素毎に閲覧を許可する利用者の公開鍵と、コンテンツデータの管理者の秘密鍵と、を用いて暗号化鍵を生成し、当該暗号化鍵で構成要素毎に暗号化を行い、暗号化コンテンツを生成する。
【０００９】
例えば、本発明は、コンテンツデータを暗号化する暗号化装置であって、第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、制御部と、を備え、前記制御部は、前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、前記暗号化対象部分毎に、前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化処理と、前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成処理と、を行うこと、を特徴とする。
【発明の効果】
【００１０】
以上のように、本発明によれば、コンテンツに含まれる部分毎に、閲覧することのできる利用者を制限することができる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の第一の実施形態である情報システム１００の概略図である。
【００１２】
図示するように，情報システム１００は、鍵管理装置１１０と、鍵保管装置１２０と、コンテンツ保管装置１３０と、利用者装置１４０Ａ〜１４０Ｃと、を備えており、これらは、ネットワーク１６０を介して相互に接続される。
【００１３】
鍵管理装置１１０は、図２（鍵管理装置の概略図）に示されているように、制御部１１１と、記憶部１１４と、送受信部１１６と、入力部１１７と、出力部１１８と、を備えている。
【００１４】
制御部１１１は、図示するように、送受信処理部１１２と、鍵生成処理部１１３と、を備えている。
【００１５】
送受信処理部１１２は、後述する送受信部１１６を介したデータの送受信を制御する。
【００１６】
鍵生成処理部１１３は、後述する利用者装置１４０Ａ〜１４０Ｃで使用する秘密鍵及び公開鍵を生成するための管理用秘密鍵を生成し、後述する記憶部１１４の管理用鍵記憶領域１１５に記憶する。
【００１７】
また、鍵生成処理部１１３は、後述する利用者装置１４０Ａ〜１４０Ｃからの利用者登録要求に応じて、利用者装置１４０Ａ〜１４０Ｃで使用する秘密鍵及びこの秘密鍵に対応する公開鍵を生成する。
【００１８】
そして、鍵生成処理部１１３は、送受信処理部１１２を介して後述する送受信部１１６から後述する利用者装置１４０Ａ〜１４０Ｃに秘密鍵を送信するとともに、後述する鍵保管装置１２０に公開鍵を送信する処理を制御する。
【００１９】
なお、後述する利用者装置１４０Ａ〜１４０Ｃからの利用者登録要求は、利用者を識別するための利用者ＩＤが含まれており、秘密鍵及び公開鍵については、利用者ＩＤ毎に作成され、鍵保管装置１２０に送信する公開鍵には利用者ＩＤも添付する。
【００２０】
記憶部１１４は、図示するように、管理用鍵記憶領域１１５を備えている。
【００２１】
管理用鍵記憶領域１１５には、後述する利用者装置１４０Ａ〜１４０Ｃで使用する秘密鍵及び公開鍵を生成するための管理用秘密鍵が記憶される。
【００２２】
送受信部１１６は、ネットワーク１６０を介してデータの送受信を行うためのインタフェースである。
【００２３】
入力部１１７は、データの入力を行うためのデバイスである。
【００２４】
出力部１１８は、データの出力を行うためのデバイスである。
【００２５】
以上のように構成される鍵管理装置１１０は、例えば、図３（コンピュータの概略図）に示すようなコンピュータ１７０により実現可能である。
【００２６】
例えば、制御部１１１は、外部記憶装置１７３に記憶されている所定のプログラムをＣＰＵ（Central Processing Unit）１７１で実行することにより実現可能であり、記憶部１１４は、ハードディスク等の外部記憶装置１７３により実現可能であり、送受信部１１６は、ＮＩＣ（Network Interface Card）等の通信装置１７４により実現可能であり、入力部１１７は、キーボードやマウス等の入力装置１７５により実現可能であり、出力部１５３は、磁気ディスク、光学ディスク、半導体メモリ等の外部記憶媒体へのリーダデバイス等の出力装置４０６で実現可能である。
【００２７】
図４は、鍵保管装置１２０の概略図である。
【００２８】
図示するように、鍵保管装置１２０は、制御部１２１と、記憶部１２３と、送受信部１２５と、を備えている。
【００２９】
制御部１２１は、図示するように、送受信処理部１２２を備えている。
【００３０】
送受信処理部１２２は、後述する送受信部１２５を介したデータの送受信を制御する。
【００３１】
記憶部１２３は、図示するように、公開鍵記憶領域１２４を備えている。
【００３２】
公開鍵記憶領域１２４には、鍵管理装置１１０より受信した公開鍵と、利用者を特定する情報と、が対応されて記憶される。例えば、本実施形態においては、図５（公開鍵テーブルの概略図）に示されているような公開鍵テーブル１２４ａが記憶される。
【００３３】
公開鍵テーブル１２４ａには、利用者ＩＤ欄１２４ｂと、公開鍵欄１２４ｃと、が設けられている。
【００３４】
利用者ＩＤ欄１２４ｂには、利用者を特定する情報として利用者ＩＤが登録される。
【００３５】
公開鍵欄１２４ｃには、利用者ＩＤ欄１２４ｂで特定される利用者の公開鍵が登録される。
【００３６】
送受信部１２５は、ネットワーク１６０を介してデータの送受信を行うためのインタフェースである。
【００３７】
以上のように構成される鍵保管装置１２０についても、例えば、図３に示すようなコンピュータ１７０により実現可能である。
【００３８】
例えば、制御部１２１は、外部記憶装置１７３に記憶されている所定のプログラムをＣＰＵ１７１で実行することにより実現可能であり、記憶部１２３は、ハードディスク等の外部記憶装置１７３により実現可能であり、送受信部１２５は、ＮＩＣ等の通信装置１７４により実現可能である。
【００３９】
図６は、コンテンツ保管装置１３０の概略図である。
【００４０】
図示するように、コンテンツ保管装置１３０は、制御部１３１と、記憶部１３３と、送受信部１３５と、を備えている
制御部１３１は、図示するように、送受信処理部１３２を備えている。
【００４１】
送受信処理部１３２は、後述する送受信部１３５を介したデータの送受信を制御する。
【００４２】
記憶部１３３は、図示するように、暗号化コンテンツ記憶領域１３４を備えている。
【００４３】
暗号化コンテンツ記憶領域１３４には、後述する利用者装置１４０Ａ〜１４０Ｃより受信した暗号化コンテンツが記憶される。なお、暗号化コンテンツのデータ構造については後述する。
【００４４】
送受信部１３５は、ネットワーク１６０を介してデータの送受信を行うためのインタフェースである。
【００４５】
以上のように構成される鍵保管装置１３０についても、例えば、図３に示すようなコンピュータ１７０により実現可能である。
【００４６】
例えば、制御部１３１は、外部記憶装置１７３に記憶されている所定のプログラムをＣＰＵ１７１で実行することにより実現可能であり、記憶部１３３は、ハードディスク等の外部記憶装置１７３により実現可能であり、送受信部１３５は、ＮＩＣ等の通信装置１７４により実現可能である。
【００４７】
利用者装置１４０Ａ〜１４０Ｃは、図７（利用者装置の概略図）に示されているように、制御部１４１と、記憶部１４６と、送受信部１５１と、入力部１５２と、出力部１５３と、読取部１５４と、を備えている。
【００４８】
制御部１４１は、図示するように、送受信処理部１４２と、コンテンツ処理部１４３と、暗号処理部１４４と、復号処理部１４５と、を備えている。
【００４９】
送受信処理部１４２は、後述する送受信部１５１を介したデータの送受信を制御する。
【００５０】
特に、本実施形態では、鍵管理装置１１０に対して送信する利用者登録要求を生成して、後述する送受信部１５１を介して鍵管理装置１１０に送信し、また、コンテンツ保管装置１４８に対して送信する暗号化コンテンツ登録要求を生成して、後述する送受信部１５１を介してコンテンツ保管装置１４８に送信し、さらに、コンテンツ保管装置１４８に対して送信する暗号化コンテンツ送信要求を生成して、後述する送受信部１５１を介してコンテンツ保管装置１４８に送信する処理を制御する。
【００５１】
また、送受信処理部１４２は、鍵管理装置１１０より受信した秘密鍵を後述する秘密鍵記憶領域１４９に記憶し、鍵保管装置１２０より受信した公開鍵を後述する公開鍵記憶領域１５０に記憶し、コンテンツ保管装置１３０から受信した暗号化コンテンツを暗号化コンテンツ記憶領域１４８に記憶する処理についても制御する。
【００５２】
コンテンツ処理部１４３は、後述する入力部１５２を介して利用者装置１４０Ａ〜１４０Ｃの利用者からデータの入力を受け付けてコンテンツデータを生成し、または、後述する読取部１５４を介してコンテンツデータを読み取り、後述するコンテンツデータ記憶領域１４７に記憶する。
【００５３】
暗号処理部１４４は、後述する入力部１５２を介して利用者装置１４０Ａ〜１４０Ｃの利用者から暗号化するコンテンツデータを特定した暗号化指令を受けると、特定されたコンテンツデータの暗号化を行い、暗号化コンテンツの生成を行う。なお、暗号化コンテンツの生成処理については、図１１を用いて後述する。
【００５４】
復号処理部１４５は、コンテンツ保管装置１４８より暗号化コンテンツを受信すると、受信した暗号化コンテンツの復号を行い、コンテンツデータを生成する。なお、コンテンツデータの復号処理については、図１５を用いて後述する。
【００５５】
記憶部１４６は、図示するように、コンテンツデータ記憶領域１４７と、暗号化コンテンツ記憶領域１４８と、秘密鍵記憶領域１４９と、公開鍵記憶領域１５０と、を備えている。
【００５６】
コンテンツデータ記憶領域１４７には、入力部１５２を介してコンテンツ処理部１４３において生成され、または、読取部１５４を介してコンテンツ処理部１４３において読み取られたコンテンツデータが記憶される。
【００５７】
暗号化コンテンツ記憶領域１４８には、暗号処理部１４４において生成された暗号化コンテンツが記憶される。
【００５８】
秘密鍵記憶領域１４９には、鍵管理装置１１０において生成された特定の利用者の秘密鍵が記憶される。
【００５９】
公開鍵記憶領域１５０には、鍵保管装置１２０から受信した各利用者の公開鍵と、当該公開鍵の利用者（所有者）を特定する情報と、が対応されて記憶される。
【００６０】
例えば、公開鍵記憶領域１５０にも、図５に示すような公開鍵テーブル１２４ａと同様の利用者ＩＤ欄１２４ｂ及び公開鍵欄１２４ｃを備えるテーブルを記憶しておくことで、利用者ＩＤと当該利用者ＩＤに対応する公開鍵とを記憶することができる。
【００６１】
送受信部１５１は、ネットワーク１６０を介してデータの送受信を行うためのインタフェースである。
【００６２】
入力部１５２は、データの入力を行うためのデバイスである。
【００６３】
出力部１５３は、データの出力を行うためのデバイスであり、例えば、復号処理部１４５において復号されたコンテンツデータの表示等を行う。
【００６４】
読取部１５４は、磁気ディスク、光学ディスク、半導体メモリ等の外部記憶媒体からデータを読み取るためのデバイスである。
【００６５】
以上のように構成される利用者装置１４０Ａ〜１４０Ｃについても、図３に示すようなコンピュータ１７０により構成することができる。
【００６６】
例えば、制御部１４１は、外部記憶装置１７３に記憶されている所定のプログラムをＣＰＵ１７１で実行することにより実現可能であり、記憶部１４６は、ハードディスク等の外部記憶装置１７３により実現可能であり、送受信部１５１は、ＮＩＣ等の通信装置１７４により実現可能であり、入力部１５２は、キーボードやマウス等の入力装置１７４により実現可能であり、出力部１５３は、ディスプレイ等の出力装置１７６で実現可能であり、読取部１５４は、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の可搬性を有する記憶媒体１８０から情報を読み取る読取装置１７８により実現可能である。
【００６７】
以下、本実施形態である情報システム１００におけるデータのフローについて説明する。
【００６８】
図８は、鍵管理装置１１０における管理用秘密鍵の生成処理を示すフローチャートである。
【００６９】
鍵管理装置１１０における管理用秘密鍵の生成処理は、例えば、鍵管理装置１１０のオペレータが入力部１１７を介して、管理用秘密鍵の生成指示を入力することにより開始される。
【００７０】
まず、鍵管理装置１１０の鍵生成処理部１１３は、２つの異なる素数ｐ，ｑを生成し、ｎ＝ｐｑを計算する（Ｓ１０）。
【００７１】
次に、鍵生成処理部１１３は、ステップＳ１０で計算されたｎ未満の整数ｓを生成する（Ｓ１１）。
【００７２】
そして、鍵生成処理部１１３は、以上のようにして生成されたｐ、ｑ、ｎ、ｓを管理用秘密鍵として管理用鍵記憶領域１１５に記憶する（Ｓ１２）。
【００７３】
以上の説明において、係数ｎ（＝ｐｑ）は管理用秘密鍵の一部に含めているが、係数ｎは公開情報であるため、必ずしも管理用秘密鍵に含める必要はなく、例えば、鍵保管装置１２０において、情報システム１００で共用する公開情報として保管・公開してもよい。
【００７４】
また、以下の説明においても同様にして、係数ｎ（＝ｐｑ）を公開情報とする場合には、ｎを利用者の秘密情報に含めなくてもよい。
【００７５】
一方、ｐ、ｑ、ｓは、ひとたび外部に漏洩すると、利用者の秘密鍵が公開鍵から容易に計算可能になるため、安全に保管しておくことが望ましい。
【００７６】
図９は、利用者装置１４０Ａ〜１４０Ｃで使用する秘密鍵及び当該秘密鍵に対応する公開鍵の生成処理を示すフローチャートである。
【００７７】
ここで、本フローチャートで登録を行う利用者を利用者ｉ（利用者ＩＤは、ｕｉ）とする。
【００７８】
まず、利用者装置１４０Ａ〜１４０Ｃの利用者は、いずれかの利用者装置１４０Ａ〜１４０Ｃを介して、利用者登録要求を鍵管理装置１１０に送信する（Ｓ２０）。ここで、利用者登録要求には、利用者ｉを識別するための利用者ＩＤ（ｕｉ）を含める。
【００７９】
ステップＳ２０における利用者登録要求は、例えば電子メールを鍵管理装置１１０に送信する、あるいは、鍵管理装置１１０が登録用Ｗｅｂページを利用者装置１４０Ａ〜１４０Ｃに公開し、利用者装置１４０Ａ〜１４０Ｃから登録用Ｗｅｂページを用いて（ＨＴＴＰを用いて）、鍵管理装置１１０に利用者登録要求を送信する、などの方法によって実現できる。なお、秘密鍵保管完了通知、公開鍵登録完了通知等についても同様に電子メールやＨＴＴＰ等を用いて、実現することができる。
【００８０】
利用者装置１４０Ａ〜１４０Ｃから利用者登録要求を鍵管理装置１１０が送受信部１１１を介して受信すると（Ｓ２１）、送受信処理部１１２から鍵生成処理部１１３に鍵生成の指示がなされ、鍵生成処理部１１３では、φ（ｎ）未満の素数ｐｋｉを生成し、下記の（１）式を計算することで、ｓｋｉを生成する（Ｓ２２）。
【００８１】
【数１】
2008061197.tif 000003
【００８２】
ここで、ステップＳ２２における関数φはオイラー関数であり、正の整数ａに対して、１からａまでの正整数のうちａと互いに素なものの個数を出力する。また、ステップＳ２２においては、ｎ＝ｐｑより、オイラー関数の性質を用いてφ（ｎ）＝（ｐ−１）（ｑ−１）と計算できる。
【００８３】
そして、送受信処理部１１２は、ステップＳ２２で生成されたｐｋｉを公開鍵として、利用者ｉの利用者ＩＤであるｕｉとともに、送受信部１１６を介して、鍵保管装置１０２に送付する（Ｓ２３）。
【００８４】
鍵保管装置１２０の送受信処理部１２２は、送受信部１２５を介して、利用者ＩＤであるｕｉとともに公開鍵ｐｋｉを受信すると（Ｓ２４）、公開鍵記憶領域１２４に記憶されている公開鍵テーブル１２４ａに新たな行を作成し、この利用者ＩＤ（ｕｉ）と公開鍵ｐｋｉとを登録する（Ｓ２５）。
【００８５】
また、鍵保管装置１２０は、ステップＳ２５で登録した公開鍵ｐｋｉを、例えばＷｅｂページ上で公開等することで、利用者装置１４０Ａ〜１４０Ｃの利用者から利用することができるようにする。
【００８６】
そして、鍵保管装置１２０の送受信処理部１２２は、利用者ＩＤ（ｕｉ）と公開鍵ｐｋｉとの登録を行った後、送受信部１２５を介して、登録完了通知を鍵管理装置１１０に送信する（Ｓ２６）。
【００８７】
鍵管理装置１０１の送受信処理部１１２は、送受信部１１６を介して、鍵保管装置１２０から登録完了通知を受信すると（Ｓ２７）、ステップＳ２２で生成した利用者ｉの秘密鍵ｓｋｉと係数ｎとを秘密情報（ｎ、ｓｋｉ）として、登録完了通知とともに、ステップＳ２０で利用者登録要求を送信した利用者装置１４０Ａ〜１４０Ｃに送信する（Ｓ２８）。
【００８８】
ここで、ステップＳ２８における秘密情報（ｎ，ｓｋｉ）の利用者装置１４０Ａ〜１４０Ｃへの送信は、第三者への漏洩を防止するため、暗号化通信等を用いることが望ましい。
【００８９】
利用者装置１４０Ａ〜１４０Ｃは、送受信部１５１を介して、鍵管理装置１１０から秘密情報（ｎ、ｓｋｉ）及び利用者登録完了通知を受信すると（Ｓ３０）、送受信処理部１４２が、秘密情報（ｎ、ｓｋｉ）を秘密鍵記憶領域１４９に記憶する（Ｓ３０）。
【００９０】
なお、利用者装置１４０Ａ〜１４０Ｃにおける秘密情報（ｎ、ｓｋｉ）の管理は、セキュリティ上の観点から、ＩＣカードなど耐タンパ性のある装置に格納しておくことが望ましい。
【００９１】
また、上記の処理フローでは、係数ｎを利用者の秘密情報の一部として扱っているが、係数ｎは秘密情報に含めなくともよく、公開鍵とともに公開情報の一部として扱うことも可能である。この場合、係数ｎについても鍵保管装置１２０に送信して公開することが望ましい。
【００９２】
また、上記の利用者の登録において、例えば、不正な利用者の登録を排除するなどの目的のため、登録する利用者をある程度制限することが望まれる場合がある。このような場合には、例えば利用者登録要求に既存の利用者からの招待状を添付する、などすればよい。
【００９３】
なお、利用者ｉに対して発行された秘密鍵ｓｋｉとそれに対応する公開鍵ｐｋｉを削除する際には、例えば、利用者装置１４０Ａ〜１４０Ｃから、利用者ｉの秘密情報（ｎ、ｓｋｉ）を削除し、利用者削除要求を鍵管理装置１１０に送信することにより、行えばよい。このような利用者削除要求を受信した鍵管理装置１１０では、鍵保管装置１２０に利用者ｉの削除要求を送付し、鍵保管装置１２０が利用者ｉの公開鍵ｐｋｉを削除して、鍵管理装置１１０を介して、利用者装置１４０Ａ〜１４０Ｃに利用者ｉの利用者削除完了通知を送付すればよい。
【００９４】
このような削除処理において、セキュリティ上の観点からは、悪意のある利用者が勝手に他の利用者に成りすまして、利用者の削除を行うことを防ぐため、利用者削除要求を送信する利用者の認証（確認）を鍵管理装置１１０が行うことが望ましい。このためには、例えば、鍵管理装置１０１において利用者のＩＤ（ｕｉ）と秘密鍵ｓｋｉの対応を保管しておき、利用者装置１４０Ａ〜１４０Ｃが鍵管理装置１１０に送信する利用者削除要求の中に削除する利用者ｉの秘密鍵ｓｋｉを含め、利用者削除要求に含まれる秘密鍵ｓｋｉが利用者削除要求を送信した利用者ｉの秘密鍵ｓｋｉと一致するかどうかを確認する、等の処理を行えばよい。なお、このとき利用者削除要求は、暗号化通信を用いるなどして、鍵管理装置１０１に安全に送信されることが望ましい。なお、このような利用者の認証（確認）は、上記以外の方法であってもよい。
【００９５】
上記の削除処理おいて、鍵管理装置１１０は、鍵の削除に際して、どの鍵の削除を行ったかを明確にするため、ＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）を発行することが望ましい。
【００９６】
なお、このような利用者の鍵の削除は、利用者がコミュニティから脱会する場合の他、利用者ｉの秘密鍵ｓｋｉが漏洩した場合などにも発生する。また、鍵の漏洩が生じた場合には、鍵管理装置１１０は、利用者からの要求が無い場合であっても、速やかに鍵の削除処理を行い、それを利用者に通知することが望ましい。
【００９７】
図１０は、情報システム１００における暗号化コンテンツの生成及び登録処理を示すフローチャートである。
【００９８】
なお、ここでは、利用者装置１４０Ａ〜１４０Ｃのコンテンツデータ記憶領域１４７に、入力部１５２を介してコンテンツ処理部１４３において生成され、または、読取部１５４を介してコンテンツ処理部１４３において読み取られたコンテンツデータが既に記憶されているものとする。
【００９９】
暗号化コンテンツの生成及び登録処理は、利用者が利用者装置１４０Ａ〜１４０Ｃの入力部１５２を介して、暗号化コンテンツの生成及び登録処理の指示を入力することにより開始される。
【０１００】
まず、利用者から暗号化コンテンツの生成及び登録処理の指示を受けた利用者装置１４０Ａ〜１４０Ｃの暗号処理部１４４は、コンテンツデータ記憶領域１４７から、暗号化を行うコンテンツデータを取得する（Ｓ４０）。
【０１０１】
そして、暗号処理部１４４は、ステップＳ４０で取得したコンテンツデータを暗号化して、所定の暗号化コンテンツを生成する（Ｓ４１）。なお、暗号化コンテンツの具体的な生成方法については図１１を用いて後述する。
【０１０２】
このようにして生成された暗号化コンテンツは、送受信処理部１４２から送受信部１５１を介して、コンテンツ保管装置１３０に送信される（Ｓ４２）。
【０１０３】
利用者装置１４０Ａ〜１４０Ｃより暗号化コンテンツを受信したコンテンツ保管装置１３０の送受信処理部１３２は（Ｓ４３）、受信した暗号化コンテンツを暗号化コンテンツ記憶領域１３４に記憶する（Ｓ４４）。
【０１０４】
図１１は、利用者装置１４０Ａ〜１４０Ｃの暗号処理部１４４における暗号化コンテンツの生成処理を示すフローチャートである。ここで、ｏは自然数を用いる。
【０１０５】
なお、ここで、コンテンツデータの暗号化を行う利用者ｏの利用者ＩＤをｕｏ、その秘密情報を（ｎ、ｓｋｏ）、とする。
【０１０６】
まず、暗号処理部１４４は、入力部１５２を介した利用者からの指示に応じて、コンテンツデータ記憶領域から取得したコンテンツデータを複数の構成要素に分ける（Ｓ５０）。ここで、複数の構成要素に分ける前のコンテンツデータをコンテンツＭとし、複数に分けられた各々の構成要素を部分Ｍ１，・・・，Ｍｍとする（ｍは、１以上の自然数）。
【０１０７】
なお、ステップＳ５０においては、例えば、ＸＭＬ（eXtensible Markup Language）の要素単位や表の行、列、或いはセル単位などを利用してコンテンツデータＭを分ければよい。
【０１０８】
さらに、ステップＳ５０においては、コンテンツデータの全ての構成要素につき、部分Ｍ１，・・・，Ｍｍとしてもよいし、コンテンツデータに含まれる特定の構成要素を抽出して暗号化の対象となる部分Ｍ１，・・・，Ｍｍとしてもよい。
【０１０９】
そして、暗号処理部１４４は、乱数シード値Ｒ０を生成し、乱数生成器ＲＮＧを用いて、暗号化鍵生成用乱数Ｒ１，・・・，Ｒｍを公知の技術で算出する（Ｓ５１）。
【０１１０】
例えば、乱数生成器ＲＮＧは、線形合同法に基づく乱数生成器のほか、ＳＡＨ−１やＤＥＳを利用した乱数生成器など任意の乱数生成器を利用すればよい。
【０１１１】
そして、暗号処理部１４４は、部分（Ｍ１，・・・，Ｍｍ）を特定するインデックスｉを初期化（ｉ←１）する（Ｓ５２）。ここで、インデックスｉについては、自然数を使用するものとする。
【０１１２】
そして、インデックスｉがｍ（ｍは分けられたコンテンツの部分の数）より大きければステップＳ５８へ、そうでなければ、ステップＳ５４に進む（Ｓ５３）。
【０１１３】
次に、暗号処理部１４４は、入力部１５２を介して、部分Ｍｉに対して閲覧を許可する利用者のリストＬｉ＝（ｕ１，・・・，ｕｋ）の入力を受け付ける（Ｓ５４）。ここで、ｋは自然数を用いるものとする。
【０１１４】
ここで、利用者のリストＬｉには、コンテンツデータの暗号化を行う利用者ｏの利用者ＩＤ（ｕｏ）を含めておく。
【０１１５】
そして、暗号処理部１４４は、利用者ｕｏの秘密情報（ｎ、ｓｋｏ）、暗号化鍵生成用乱数Ｒｉ、リストＬｉから、暗号化鍵ｓｅｋｉの生成を行う（Ｓ５５）。ここで、ｏは、前述の通り、自然数である。
【０１１６】
なお、暗号化鍵ｓｅｋｉの具体的な生成方法については，図１６を用いて後述する。
【０１１７】
暗号処理部１４４は、ステップＳ５５で生成した暗号化鍵ｓｅｋｉを用いて部分Ｍｉの共通鍵暗号による暗号化を行い、暗号化部分Ｃｉを生成する（Ｓ５６）。
【０１１８】
なお、ステップＳ５６における暗号化鍵ｓｅｋｉを用いた部分Ｍｉの共通鍵暗号による暗号化は、ＤＥＳや１２８ビット鍵のＡＥＳなど任意の共通鍵暗号アルゴリズムをＣＢＣなどの任意の暗号利用モードを用いて行えばよい。
【０１１９】
そして、暗号処理部１４４は、インデックスｉに「１」をインクリメント（ｉ←ｉ＋１）して（Ｓ５７）、ステップＳ５３に戻って処理を繰り返す。
【０１２０】
ステップＳ５３においてインデックスｉがｍより大きければ、以上のフローで生成された乱数シード値Ｒ０、利用者のリストＬ１，・・・，Ｌｍ、および、暗号化部分Ｃ１，・・・，Ｃｍを含む暗号化コンテンツＣを構成する（Ｓ５８）。
【０１２１】
ここで、暗号化コンテンツＣには、暗号化部分Ｃ１，・・・，Ｃｍ毎に、当該暗号化部分Ｃ１，・・・，Ｃｍを復号した部分Ｍ１，・・・，Ｍｍを結合するための位置情報を含めておく。
【０１２２】
なお、上記のステップＳ５６における暗号化鍵ｓｅｋｉによる部分Ｍｉの暗号化において、部分Ｍｉを前記のＡＥＳだけで暗号化するだけでなく、ＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を付与してもよい。これには、例えば、暗号化鍵ｓｅｋｉを二つに分割し、上位半分を共通鍵暗号技術における暗号化用鍵、下位半分をＭＡＣ生成用の鍵とすればよい。ＭＡＣを付与することによって、復号処理部１４５において、暗号化部分Ｃｉが正しい部分Ｍｉに復号されたかどうかを確認することが可能となる。
【０１２３】
また、このほか上記暗号化された結果（暗号化コンテンツＣ）全体に対して、電子署名、あるいは、ＭＡＣの付与などを行ってもよい。これによって、コンテンツ保管装置１３０に記憶された暗号化コンテンツが改ざんされたことを確認することが可能となる。なお、電子署名の付与を行う場合には、暗号化に利用する秘密鍵の他に、電子署名の精製用の署名用秘密鍵が必要となる。また、ＭＡＣの付与を行う場合には、コンテンツＭの閲覧を許可する利用者（部分Ｍｉの一つ以上を復号できる利用者）全体の集合と、閲覧の許可を行う利用者（暗号化コンテンツを生成する利用者）の秘密鍵とから、ステップＳ５５の処理を用いて生成される暗号化鍵ｓｅｋＭＡＣを利用して、ＭＡＣの生成を行う。
【０１２４】
さらに、以上の処理では、乱数シード値Ｒ０から乱数生成器ＰＲＮＧを用いて暗号化鍵生成用乱数Ｒ１，・・・，Ｒｍを生成し、これを用いて暗号化鍵ｓｅｋｉの生成を行っているが、これと異なってもよい。例えば、ステップＳ５１の暗号化鍵生成用乱数の生成をスキップし全ての部分Ｍ１，・・・，Ｍｍに乱数シード値Ｒ０を暗号化鍵生成用乱数として利用することも可能であり、また、暗号化鍵生成用乱数を用いずに利用者ｕ０の秘密鍵、リストＬｉのみから暗号化鍵ｓｅｋｉの生成を行い、暗号化鍵生成用乱数を、部分Ｍ１，・・・，Ｍｍの暗号化に用いる暗号利用モードの初期値（イニシャルバリュー:ＩＶ）として利用することも可能である。
【０１２５】
ここで、ステップＳ５８で生成される暗号化コンテンツＣのデータ構造としては、例えば、図１２（暗号化コンテンツの概略図）に示すようなデータ構造とすればよい。
【０１２６】
図示するように、例えば、暗号化コンテンツＣは、ヘッダ１６１と、暗号化コンテンツ本体１６２と、により構成されている。
【０１２７】
ヘッダ１６１は、乱数シード値Ｒ０を特定する情報と、暗号化部分毎に閲覧を許可する利用者を特定する利用者リスト（Ｌ１，・・・，Ｌｍ）を特定する情報と、を含むものとする。
【０１２８】
例えば、ヘッダ１６１は、図１３（ヘッダの概略図）に示すようなＸＭＬデータとして構成することができる。
【０１２９】
図示するように、ヘッダ１６１は、ＭＲＣｉｐｈｅｒ要素１６１ａによって表す。
【０１３０】
ＭＲＣｉｐｈｅｒ要素１６１ａは、暗号化に使用した共通鍵暗号アルゴリズムや乱数の生成に使用した乱数生成器、乱数シード値Ｒ０など、全ての部分Ｍ１，・・・，Ｍｍに共通する情報を格納するＭＲＣｉｐｈｅｒＰａｒａｍ要素１６１ｂと、各部分Ｍ１，・・・，Ｍｍを閲覧可能な利用者のリストＬｉ、各部分Ｍ１，・・・，Ｍｍの格納場所などの暗号化部分Ｃ１，・・・，Ｃｍ毎の復号に必要となる情報を格納するＭＲＢｌｏｃｋｓ要素１６１ｃと、を備える。
【０１３１】
ＭＲＣｉｐｈｅｒＰａｒａｍ要素１６１ｂは、ＥｎｃｒｙｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１６１ｄと、ＳｅｋＧｅｎｅｒａｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１６１ｅと、ＲａｎｄｏｍＳｅｅｄ要素１６１ｆから構成される。
【０１３２】
ＥｎｃｒｙｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１６１ｄは、部分Ｍｉを暗号化する際に利用する暗号アルゴリズム、また、ＳｅｋＧｅｎｅｒａｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１６１ｅは、乱数シード値Ｒ０から暗号化鍵生成用乱数Ｒ１，・・・，Ｒｍを生成するために使用する乱数生成器のアルゴリズム名を記載するための要素である。例えば部分Ｍｉの暗号化に１２８ビット鍵のＡＥＳをＣＢＣモードで暗号化する場合には、そのＡｌｇｏｒｉｔｈｍ属性に“ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／２００１／０４／ｘｍｌｅｎｃ＃ａｅｓ１２８−ｃｂｃ”などと記述すればよい。また、ＲａｎｄｏｍＳｅｅｄ要素１６１ｆには乱数シード値Ｒ０を、ＢＡＳＥ６４符号化を用いて文字列に変換した値を記述する。
【０１３３】
ＭＲＢｌｏｃｋｓ要素１６１ｃは、各部分コンテンツの復号に必要な情報を格納するためのＭＲＢｌｏｃｋ要素１６１ｇからなる。
【０１３４】
ＭＲＢｌｏｃｋ要素１６１ｇは、その部分Ｍｉを閲覧可能な利用者のリストＬｉを格納するためのＵｓｅｒＬｉｓｔ要素１６１ｈと、実際の部分コンテンツが格納されている位置を表すＴａｒｇｅｔＬｉｓｔ要素１６１ｉと、からなる。
【０１３５】
ＵｓｅｒＬｉｓｔ要素１６１ｈは、Ｕｓｅｒ要素１６１ｊを子として持ち、Ｕｓｅｒ要素１６１ｊのｉｄ属性に閲覧を許可する利用者ＩＤを記述することによって、その部分Ｍｉを閲覧できる利用者のリストＬｉを表現する。
【０１３６】
また、ＴａｒｇｅｔＬｉｓｔ要素１６１ｉは、Ｔａｒｇｅｔ要素１６１ｋを子として持ち、Ｔａｒｇｅｔ要素１６１ｋ内のＵＲＩ属性にＵＲＩを記述する、或いは、ＸＰａｔｈ式を記述することによって、部分Ｍｉの位置を表す。
【０１３７】
なお、ＥｎｃｒｙｐｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１６１ｄ、ＳｅｋＧｅｎｅｒａｔｉｏｎＡｌｇｏｒｉｔｈｍ要素１６１ｅ等については、図１に示した情報システム１００を通じて共通したアルゴリズムを利用するなど、特に明記しなくとも明らかである場合には、これらの要素を省略してよい。また、上記実現例において使用したＭＲＣｉｐｈｅｒ要素１６１ａなどの要素名は、必ずしも上記の通りでなくてもよい。
【０１３８】
さらに、上記実現例では、ＸＭＬを用いた実現例として独自のフォーマットを利用しているが、例えば、ＸＭＬにおける暗号化の標準規格であるＸＭＬ  Ｅｎｃｒｙｐｔｉｏｎなどのフォーマットを利用してもよく、暗号化コンテンツＣの実現方法は必ずしもＸＭＬで有る必要は無い。
【０１３９】
図１４は、情報システム１００における暗号化コンテンツの取得及び復号処理を示すフローチャートである。
【０１４０】
情報システム１００における暗号化コンテンツの取得及び復号処理は、利用者が利用者装置１４０Ａ〜１４０Ｃのいずれかに対してその入力部１５２を介して、暗号化コンテンツの取得指示を入力することにより開始される。
【０１４１】
まず、利用者装置１４０Ａ〜１４０Ｃの送受信処理部１４２は、暗号化コンテンツＣの送信要求を生成し、をコンテンツ保管装置１３０に送信する（Ｓ６０）。
【０１４２】
利用者装置１４０Ａ〜１４０Ｃのいずれかより送信要求を受信したコンテンツ保管装置１３０は（Ｓ６１）、送信要求のあった暗号化コンテンツＣを暗号化コンテンツ記憶領域１３４から取得し（Ｓ６２）、送信要求のあった利用者装置１４０Ａ〜１４０Ｃに取得した暗号化コンテンツＣを送信する（Ｓ６３）。
【０１４３】
コンテンツ保管装置１３０より暗号化コンテンツＣを受信した利用者装置１４０Ａ〜１４０Ｃでは（Ｓ６４）、送受信処理部１４２から復号処理部１４５に暗号化コンテンツＣを送り、復号処理部１４５において暗号化コンテンツＣの復号を行い（Ｓ６５）、出力部１５３において、復号されたコンテンツデータのイメージを表示する。なお、この復号処理については図１５を用いて後述する。
【０１４４】
ここで、コンテンツデータのイメージの表示には、利用者が閲覧できない領域を例えば黒等で塗りつぶして表示する。
【０１４５】
図１５は、利用者装置１４０Ａ〜１４０Ｃの復号処理部１４５における暗号化コンテンツの復号処理を示すフローチャートである。
【０１４６】
ここで、暗号化コンテンツの復号処理を指示した利用者ｊの利用者ＩＤをｕｊとし、その秘密情報を（ｎ、ｓｋｊ）とする。なお、ｊは自然数を用いるものとする。
【０１４７】
まず、復号処理部１４５は、暗号化コンテンツＣから乱数シード値Ｒ０、利用者リストＬ１，・・・，Ｌｍ、および、暗号化部分Ｃ１，・・・，Ｃｍを取得する（Ｓ７０）。
【０１４８】
そして、復号処理部１４５は、乱数シード値Ｒ０から乱数生成器ＲＮＧを用いて暗号化鍵生成用乱数Ｒ１，・・・，Ｒｍを生成する（Ｓ７１）。
【０１４９】
復号する暗号化部分Ｃ１，・・・，Ｃｍのインデックスｉを「１」に初期化（ｉ←１）する（Ｓ７２）。
【０１５０】
次に、復号処理部１４５は、ｉ＞ｍ（ｍは暗号化部分の数）ならばステップＳ７８に進み、そうでなければステップＳ７４に進む（Ｓ７３）。
【０１５１】
そして、復号処理部１４５は、暗号化部分Ｃｉの閲覧が許可された利用者のリストＬｉを参照し、Ｌｉ内に利用者ｊの利用者ＩＤ（ｕｊ）があれば、ステップＳ７５へ、そうでなければステップＳ７７へ進む（Ｓ７４）。
【０１５２】
次に，復号処理部１４５は、利用者ｊの秘密情報（ｎ、ｓｋｊ）、暗号化鍵生成用乱数Ｒｉ，リストＬｉから暗号化鍵ｓｅｋｉの生成を行う（Ｓ７５）。なお、本ステップにおける暗号化鍵ｓｅｋｉの生成処理については、図１６を用いて後述する。
【０１５３】
そして、復号処理部１４５は、ステップＳ７５で生成した暗号化鍵ｓｅｋｉを共通鍵暗号技術における暗号化鍵とし、暗号化部分Ｃｉの復号を行い、部分Ｍｉを生成する（Ｓ７６）。
【０１５４】
次に、暗号化部分のインデックスｉに「１」をインクリメント（ｉ←ｉ＋１）し（Ｓ７７）、ステップＳ７３に戻り処理を繰り返す。
【０１５５】
ステップＳ７３でｉ＞ｍの場合には、復号した部分Ｍ１，・・・，Ｍｍを結合して、コンテンツデータＭ’を生成する（Ｓ７８）。
【０１５６】
図１６は、図１１のステップＳ５５、または、図１５におけるステップＳ７５における暗号化鍵ｓｅｋｉの生成処理を示すフローチャートである。
【０１５７】
ここで本フローチャートでは、暗号処理部１４４又は復号処理部１４５は、利用者ｘの利用者ＩＤ（ｕｘ）、利用者ｘの秘密情報（ｎ、ｓｋｘ）、利用者リストＬｉ、及び、暗号化鍵生成用乱数Ｒｉから、暗号化鍵ｓｅｋｉを生成するものとする。なお、ｘは自然数を用いるものとする。
【０１５８】
まず、暗号処理部１４４又は復号処理部１４５は、利用者リストＬｉ内に含まれる利用者ＩＤに対応する公開鍵ＰＫ＝（ｐｋ１，・・・，ｐｋｋ）を公開鍵記憶領域１５０から取得する（Ｓ８０）。
【０１５９】
そして、暗号処理部１４４又は復号処理部１４５は、暗号化鍵のインデックスｉを「１」に初期化（ｉ←１）し、暗号化鍵生成用鍵ｇｓｋｉの初期値として、利用者ｘの秘密鍵ｓｋｘを入力（ｇｓｋｉ←ｓｋｘ）する（Ｓ８１）。
【０１６０】
次に、暗号処理部１４４又は復号処理部１４５は、ｉ＞ｋ（ｋは利用者リストＬｉに登録されている利用者の数）ならばステップＳ８６へ、そうでなければステップＳ８３に進む（Ｓ８２）。
【０１６１】
そして、暗号処理部１４４又は復号処理部１４５は、ｉ≠ｘならば、ステップＳ８４へ、そうでなければステップＳ８３へ進む（Ｓ８３）。
【０１６２】
ステップＳ８４では、暗号処理部１４４又は復号処理部１４５は、暗号化鍵生成用鍵ｇｓｋｉ’を下記の（２）式を用いて算出して、算出したｇｓｋｉ’を暗号化鍵生成用鍵ｇｓｋｉと置き換える（Ｓ８４）。
【０１６３】
【数２】
2008061197.tif 000004
【０１６４】
そして、インデックスｉに「１」をインクリメント（ｉ←ｉ＋１）し（８５）、ステップＳ８２に戻って処理を繰り返す。
【０１６５】
ステップＳ８２でｉ＞ｋの場合には、暗号処理部１４４又は復号処理部１４５は、ハッシュ関数Ｈを用いて、ｈｉ＝Ｈ（ｇｓｋｉ）を計算し、ｈｉを共通鍵暗号技術の生成鍵として、暗号化鍵生成用乱数Ｒｉを暗号化し、その結果を暗号化鍵ｓｅｋｉとする（Ｓ８６）。
【０１６６】
ここで、ハッシュ関数Ｈには、ＳＨＡ−１やＭＤ５等の公知のハッシュ関数を利用すればよく、また、ｈｉから暗号化鍵ｓｅｋｉを生成する際には、前述のＡＥＳやＤＥＳなどの共通鍵暗号アルゴリズムを利用すればよい。
【０１６７】
なお、以上では、ｈｉ＝Ｈ（ｇｓｋｉ）を計算し、ｈｉを共通鍵暗号技術の生成鍵として、暗号化鍵生成用乱数Ｒｉを暗号化し、その結果を暗号化鍵ｓｅｋｉとしているが、このような態様に限定されず、例えば、ｇｓｋｉを用いて暗号化鍵生成用乱数Ｒｉを暗号化し、その結果を暗号化鍵ｓｅｋｉとすることも可能である。
【０１６８】
さらに、ステップＳ８２では、上記の処理と異なるものを行ってもよい。例えば、ｈｉの生成をハッシュ関数Ｈを用いるのではなく、生成されたｇｓｋｉの上位、或いは、下位の複数ビットを取り出し、これを暗号化鍵ｓｅｋｉ生成の際に用いる共通鍵暗号技術における暗号化鍵としてもよい。あるいは、暗号化鍵ｓｅｋｉの生成に共通鍵暗号を用いずに、ｇｓｋｉとＲｉとの排他的論理和を計算し、その結果を暗号化鍵ｓｅｋｉとしてもよい。
【０１６９】
以上のような処理を行うことにより、暗号処理部１４４及び復号処理部１４５において、リストＬｉの情報が等しい場合には、等しい暗号化鍵ｓｅｋｉの生成を行うことができる。
【０１７０】
具体的には、暗号処理部１４４で、利用者ｏ（ｋは、自然数で、ｏは１〜ｋの特定の自然数）の利用者ＩＤをｕｏとし、その秘密鍵をｓｋｏとすると、下記の（３）式により、暗号化鍵ｓｅｋｉが生成される。
【０１７１】
【数３】
2008061197.tif 000005
【０１７２】
ここで、ｓｋｏは、下記の（４）式のように表される。
【０１７３】
【数４】
2008061197.tif 000006
【０１７４】
従って、（３）式は、下記の（５）式のように表される。
【０１７５】
【数５】
2008061197.tif 000007
【０１７６】
一方、復号処理部１４５で、利用者ｊ（ｋは自然数で、ｊは１〜ｋの特定の自然数）の利用者ＩＤをｕｊとし、その秘密鍵をｓｋｊとすると、下記の（６）式により、暗号化鍵ｓｅｋｉが生成される。
【０１７７】
【数６】
2008061197.tif 000008
【０１７８】
ここで、ｓｋｊは、下記の（７）式のように表される。
【０１７９】
【数７】
2008061197.tif 000009
【０１８０】
従って、（６）式は、下記の（８）式のように表される。
【０１８１】
【数８】
2008061197.tif 000010
【０１８２】
即ち、（５）式と（８）式に表されているように、暗号処理部１４４及び復号処理部１４５で生成される暗号化鍵ｓｅｋｉが等しくなる。
【０１８３】
以上のように、本実施形態である情報システム１００によれば、利用者毎にコンテンツを選択的に開示するための暗号化と、それに対応した復号を実現することができる。
【０１８４】
ところで、このようなコンテンツの選択的開示を行う場合、情報を共有（開示）する利用者が、複数のコンテンツに共通している場合がある。例えば、ソーシャルネットワーク内に複数のコミュニティが存在する場合、情報の開示先が、特定のコミュニティの利用者に限定される場合等である。
【０１８５】
このような場合、図１６に示したフローチャートのように、暗号処理部１４４又は復号処理部１４５において同じ暗号化鍵用暗号化鍵ｇｓｋｉを複数回計算するのは効率が悪い。これを解決するためのひとつの方法は、よく利用する暗号化鍵用暗号化鍵ｇｓｋｉを予め計算しておき、記憶部１４６に記憶させておくことによって処理を省略することが可能となる。また、複数の利用者間で予め計算しておく暗号化鍵ｇｓｋｉを定めておくことによって、事前に計算される暗号化鍵ｇｓｋｉをコミュニティのための共有鍵とみなすこともできる。
【０１８６】
ところで、暗号化鍵用暗号化鍵ｇｓｋｉを各利用者間で勝手に定めておく方法では、コミュニティ内にどのような利用者がいるのかを利用者間で勝手に取り決めることになるため、コミュニティ内の利用者の管理が困難になるといった問題がある。また、ある利用者がコミュニティから脱会した場合には、各利用者が共有している暗号化鍵ｇｓｋｉを、各々が再計算しなければならないといった問題が生じる。
【０１８７】
そこで、このようなコミュニティに対応した公開鍵を鍵管理装置１０１が管理することができれば、コミュニティの形成等を容易に行うことが可能となる。また、鍵管理装置１１０が発行するコミュニティ用の公開鍵を利用することによって、コミュニティへの公開情報を効率的に暗号化することが可能となる。
【０１８８】
これを実現する一例として、鍵管理装置１０１に対して、利用者個人の秘密鍵ｓｋｉ、公開鍵ｐｋｉだけを発行するのではなく、複数の利用者からなるグループに対して、秘密鍵ｓｋｉを発行することがある。この場合、秘密鍵ｓｋｉ、公開鍵ｐｋｉの発行の処理フローは上述と同様であるが、生成された秘密鍵ｓｋｉ及び登録完了通知の送信は、グループ内に属する全ての利用者に対して行う必要がある。
【０１８９】
なお、ここではソーシャルネットワークにおけるコミュニティに着目して、グループ鍵の生成について説明を行ったが、このようなグループ鍵の生成は、ソーシャルネットワークに限らず、例えば社内の組織構造（例えば、部や課など）に対して、グループ鍵を適用する場合にも有効である。
【０１９０】
図１７は、本発明の第二の実施形態である情報システムで使用される鍵管理装置２１０の概略図である。
【０１９１】
図示するように、本実施形態における鍵管理装置２１０は、第一の実施形態と比較して、制御部２１１に更新部２１９がさらに設けられており、記憶部２１４に公開鍵記憶領域２２０及び暗号化コンテンツ記憶領域２２１がさらに設けられている以外は第一の実施形態と同様であるため、以下では、これらの異なっている事項について説明する。
【０１９２】
本実施形態では、第一の実施形態と同様にコンテンツデータを暗号化して利用者に提供するようにしているが、例えば、ある利用者の秘密鍵が漏洩した場合、すでに暗号化されている暗号化コンテンツＣは、漏洩した秘密鍵を利用することによって意図しない利用者によって閲覧される危険性が生じる。そのような場合、利用者の秘密鍵及び公開鍵を再発行するとともに、漏洩した鍵を利用して作成された暗号化コンテンツＣを一度復号し、再度暗号化するといった対策が必要になる。
【０１９３】
しかしながら、対象となるコンテンツデータのデータサイズが大きい場合には、暗号化コンテンツＣの再暗号化を行うことは効率が悪い。
【０１９４】
この点、上述した暗号化コンテンツＣのヘッダ１６１内の情報（例えば、乱数シード値Ｒ０等）を更新することによって、漏洩した鍵から暗号化コンテンツＣが復号されることを防ぐことができれば、漏洩時の暗号化コンテンツＣの更新にかかわる負荷を軽減することができる。
【０１９５】
そこで、本実施形態においては、利用者に配布した秘密鍵が漏洩した場合の対策を効率的に行うことのできる情報システムを提供する。
【０１９６】
以下、このような方法を鍵管理装置２１０で行う一例を説明する。
【０１９７】
本実施形態において、新たに制御部２１１に設けられた更新部２１９は、漏洩した鍵から暗号化コンテンツＣが復号されることを防ぐために、送受信処理部１１２を介して、漏洩した鍵が使用される暗号化コンテンツＣを後述する暗号化コンテンツ記憶領域２２１に記憶し、記憶した暗号化コンテンツＣのヘッダ１６１を更新する処理を制御する。なお更新処理の詳細は、図１８を用いて後述する。
【０１９８】
また、本実施形態において、新たに記憶部２１４に設けられた公開鍵記憶領域２２０には、鍵生成処理部１１３において図９のフローチャートで示すように利用者の秘密鍵と公開鍵を作成した際に、各利用者の公開鍵と、当該公開鍵の利用者（所有者）を特定する情報と、が対応されて記憶される。
【０１９９】
例えば、公開鍵記憶領域２２０にも、図５に示すような公開鍵テーブル１２４ａと同様の利用者ＩＤ欄１２４ｂ及び公開鍵欄１２４ｃを備えるテーブルを記憶しておくことで、利用者ＩＤと当該利用者ＩＤに対応する公開鍵とを記憶することができる。
【０２００】
特に、本実施形態においては、ある利用者の秘密鍵が漏洩した場合に、当該利用者の秘密鍵と公開鍵とを図９に示すフローチャートと同様の手順で再生成し、公開鍵テーブル１２４ａの公開鍵欄１２４ｃに登録する公開鍵を更新する。
【０２０１】
さらに、本実施形態において、新たに記憶部２１４に設けられた暗号化コンテンツ記憶領域２２１には、ヘッダ１６１の更新を行う暗号化コンテンツＣが記憶される。
【０２０２】
なお、本実施形態における送受信処理部１１２は、更新部２１９の要求に応じて、送受信部１１０を介して、コンテンツ保管装置１３０から暗号化コンテンツＣを受信し、また、ヘッダ１６１の更新を行った暗号化コンテンツＣをコンテンツ保管装置１３０に送信する処理も行う。
【０２０３】
図１８は、鍵管理装置２１０の更新部２１９で行う更新処理の一例を示すフローチャートである。
【０２０４】
また、本フローチャートは、鍵管理装置２１０のオペレータが入力部１１７を介して、ヘッダ情報を更新する暗号化コンテンツＣを特定した更新指示を入力することにより開始されるものとし、このような更新指示を受けることにより、鍵管理装置２１０の送受信処理部１１２はコンテンツ保管装置１３０から特定された暗号化コンテンツＣを受信し、暗号化コンテンツ記憶領域１４８に記憶するものとする。
【０２０５】
まず、更新部２１９は、暗号化コンテンツ記憶領域２２１より暗号化コンテンツＣを読み出し、暗号化コンテンツＣから乱数シード値Ｒ０、利用者のリストＬ１，・・・，Ｌｍ及び暗号化部分Ｃ１，・・・，Ｃｍを取得する（Ｓ９０）。
【０２０６】
次に、更新部２１９は、乱数シード値Ｒ０から、乱数生成器ＲＮＧを用いて暗号化鍵生成用乱数Ｒ１，・・・，Ｒｍを生成する（Ｓ９１）。
【０２０７】
次に、更新部２１９は、暗号化部分のインデックスｉを「１」に初期化（ｉ←１）し（Ｓ９２）、ｉ＞ｍ（ｍは暗号化部分の数）ならばステップＳ９７へ、そうでなければステップＳ９３に進む（Ｓ９２）。
【０２０８】
そして、更新部２１９は、管理用秘密鍵ｓ、暗号化鍵生成用乱数Ｒｉ、利用者のリストＬｉから、暗号化鍵ｓｅｋｉの生成を行う（Ｓ９４）。なお、ｚは自然数を用いるものとする。
【０２０９】
また、ステップＳ９４における暗号化鍵ｓｅｋｉの生成は、図１６に示すフローチャート同様に行えばよいが、ステップＳ８１においては、暗号化鍵生成用鍵ｇｓｋｉの初期値として、管理用鍵記憶領域１１５に記憶されている管理者用秘密鍵の一部であるｓを用いればよく、また、ステップＳ８３の処理は行わずリストＬｉに対応する公開鍵を全て用いてステップＳ８４を行えばよい。
【０２１０】
次に、鍵生成処理部１１３において利用者ｚの秘密鍵と公開鍵とを再生成し、公開鍵記憶領域２２０に記憶されている利用者ｚの公開鍵を置き換えることにより更新する（Ｓ９５）。
【０２１１】
次に、更新部２１９は、管理用秘密鍵ｓ、利用者のリストＬｉから、生成鍵Ｈ（ｇｓｋｉ）’を生成し（Ｓ９６）、ステップＳ９４において生成した暗号化鍵ｓｅｋｉを、ステップＳ９６において生成した生成鍵Ｈ（ｇｓｋｉ）’で復号することで、新たな暗号化鍵生成用乱数Ｒｉ’を生成する（Ｓ９７）。
【０２１２】
なお、生成鍵Ｈ（ｇｓｋｉ）’の生成は、図１６に示すフローチャートと同様に行えばよいが、ステップＳ９５において秘密鍵を漏洩した利用者ｚの公開鍵が更新されているため、ステップＳ９４で暗号化鍵ｓｅｋｉを生成する過程で算出される生成鍵Ｈ（ｇｓｋｉ）とは、利用者ｚの公開鍵を使用する部分に関して異なる値となる。
【０２１３】
そして、暗号化部分のインデックスｉに「１」をインクリメント（ｉ←ｉ＋１）し（Ｓ９８）、ステップＳ９３に戻って処理を繰り返す。
【０２１４】
ここで、ステップＳ９３においてｉ＞ｍならば新たに生成された暗号化鍵生成用乱数Ｒ１’，・・・，Ｒｍ’、Ｌ１，・・・，Ｌｍ、Ｃ１，・・・，Ｃｍから、暗号化コンテンツＣ’を生成する（Ｓ９９）。なお、このようにして生成された暗号化コンテンツＣ’は、送受信処理部１１２を介してコンテンツ保管装置１３０に送信され、コンテンツ保管装置１３０では、更新前の暗号化コンテンツＣに更新後の暗号化コンテンツＣ’を置き換えて記憶する。
【０２１５】
また、このような更新後の暗号化コンテンツＣ’を受信した利用者装置１４０Ａ〜１４０Ｃでは、乱数シード値Ｒ０から暗号化鍵生成用乱数を生成する代わりに、ヘッダ１６１に含まれている暗号化鍵生成用乱数Ｒ１’，・・・，Ｒｍ’を用いて復号を行えばよい。
【０２１６】
なお、第二の実施形態においては、鍵管理装置２１０においてヘッダ１６１の更新を行うようにしているが、このような態様に限定されるわけではなく、例えば、利用者装置１４０Ａ〜１４０Ｃのいずれかにおいて、更新部２１９と同様の機能を果たす更新部を備えることにより、暗号化コンテンツＣを生成する際に使用した秘密鍵又は管理用秘密鍵から利用者装置１４０Ａ〜１４０Ｃにおいてヘッダ１６１の更新を行うようにすることも可能である。
【０２１７】
ここで、図１８のフローチャートでは、利用者の秘密鍵が漏洩した場合、暗号化鍵生成用乱数Ｒ１’，・・・，Ｒｍ’を再生成し、これを乱数シード値Ｒ０の代わりに、新たな暗号化コンテンツＣ’に付与している。そのため、上記の処理によって生成された暗号化コンテンツＣ’は、ヘッダ１６１のサイズが増加してしまう。
【０２１８】
そこで、暗号化鍵生成用乱数の生成方法を工夫することによって、この再生成された暗号化コンテンツ１０６のヘッダサイズを削減する実現方法の一例を示す。
【０２１９】
図１９は、乱数の生成手順を説明するための概略図である。
【０２２０】
なお、図１９では、一例としてコンテンツの部分（構成要素）ｍが８である場合（乱数の数も８）について示したが、部分の数ｍは任意の数でよい。
【０２２１】
また、乱数生成器ＲＮＧを入力長の２倍の長さの乱数を生成する乱数生成器とする。
【０２２２】
さらに、Ｒｂを入力としたときの出力をＲｂ０｜｜Ｒｂ１←ＲＮＧ（Ｒｂ）とあらわす。ここで、ＲＬ｜｜ＲＲは、二つのデータ（ＲＬ、ＲＲ）の連結を表し、ｂは０と１から構成される任意長の文字列を表す（以降も同様）。また“ｂ０”、“ｂ１”はそれぞれ文字列ｂに文字“０”、“１”をつなげたものを表す。
【０２２３】
このような前提におちて、更新部２１９は、乱数生成器ＲＮＧを用いて、まずＲ０からＲ００とＲ１１を生成する。
【０２２４】
次に、更新部２１９は、Ｒ００とＲ０１から、Ｒ００１，Ｒ００１、及び、Ｒ０１１，Ｒ０１１を生成する。
【０２２５】
さらに、更新部２１９は、木構造（二分木）にしたがって乱数生成器ＲＮＧを繰り返し適用し、最終的にＲ００００〜Ｒ０１１１を生成する。以上の手順に従い、乱数シード値Ｒ０からｍ個の暗号化鍵生成用乱数を生成する。
【０２２６】
そして、例えば、１番目のブロックを閲覧可能なある利用者の鍵が漏洩した場合には、暗号化鍵生成用乱数Ｒ１のみをＲ１’に更新すればよい。
【０２２７】
即ち、図１９に示した木構造を利用した乱数生成を利用した場合には、Ｒ０の代わりに、Ｒ０１、Ｒ００１、Ｒ０００１を公開すれば、Ｒ２からＲ８までの全ての暗号化鍵生成用乱数の生成できるが、Ｒ１を生成することはできない。従って、再暗号化された暗号化コンテンツ１０６には、乱数シード値Ｒ０の換わりに、Ｒ０１、Ｒ００１、Ｒ００００’、Ｒ０００１の４つをヘッダ１６１に付与すればよい。
【０２２８】
図１８に示した単純な方法では、再生成された全てのＲ１’，・・・，Ｒ８’（８つ）を再暗号化された暗号化コンテンツＣ’のヘッダ１６１に付与する必要があるが、図１９の乱数生成方法では、再暗号化された暗号化コンテンツＣ’のヘッダ１６１には、Ｒ０１、Ｒ００１、Ｒ００００’、Ｒ０００１（４つ）を付与すればよく、再暗号化によって生じる付加情報のデータサイズを削減することができる。
【０２２９】
以上に記載した実施形態においては、図１に示されているように、鍵管理装置１１０、鍵保管装置１２０及びコンテンツ保管装置１３０を介して、鍵の生成、鍵の保管及び暗号化コンテンツの保管を行っているが、このような態様に限定されるわけではなく、処理の分散化又は集中化の観点からこれらで行っている処理を分散又は集中を行うことができる。
【０２３０】
例えば、図２０（管理サーバの概略図）に示されているように、制御部３１１と、記憶部３１４と、送受信部３１８と、入力部３１９と、出力部３２０と、を備える管理サーバ３１０ように、一つの装置で、鍵の生成、鍵の保管及び暗号化コンテンツの保管を行うようにしてもよい。
【０２３１】
ここで、管理サーバ３１０における制御部３１１の送受信処理部３１２は、鍵管理装置１１０、鍵保管装置１２０及びコンテンツ保管装置１３０における送受信処理部１１２、１２２、１３２と同様の処理を行い、鍵生成処理部１１３は、鍵管理装置１１０における鍵生成処理部１１３と同様の処理を行う。
【０２３２】
但し、管理サーバ３１０においては、鍵管理装置１１０、鍵保管装置１２０及びコンテンツ保管装置１３０で行っている処理を一つの装置で行っているため、管理サーバ３１０における送受信処理部３１２は、鍵管理装置１１０、鍵保管装置１２０及びコンテンツ保管装置１３０の相互間で行うデータ通信は行う必要がなくなる。
【０２３３】
また、管理サーバ３１０における記憶部３１４の管理用鍵記憶領域３１５は、鍵管理装置１１０における記憶部１１４の管理用鍵記憶領域１１５と同様の情報を記憶する。
【０２３４】
さらに、管理サーバ３１０における記憶部３１４の公開鍵記憶領域３１６は、鍵保管装置１２０における記憶部１２３の公開鍵記憶領域１２４と同様の情報を記憶する。
【０２３５】
加えて、管理サーバ３１０における記憶部３１４の暗号化コンテンツ記憶領域３１５は、コンテンツ保管装置１３０における記憶部１３３の暗号化コンテンツ記憶領域１３４と同様の情報を記憶する。
【０２３６】
なお、送受信部３１８、入力部３１９及び出力部３２０に関しては、第一の実施形態における鍵管理装置１１０における送受信部１１６、入力部１１７及び出力部１１８と同様に構成すればよい。
【０２３７】
また、以上に記載した実施形態においては、鍵管理装置１１０、鍵保管装置１２０，コンテンツ保管装置１３０及び利用者装置１４０Ａ〜１４０Ｃがネットワーク１６０を介して接続されているが、このような態様に限定されるわけではなく、例えば、これらで送受信する情報をＵＢＳメモリなどの外部記憶媒体に記憶してそれぞれの装置に郵送等して読み取ることも可能である。
【０２３８】
さらに、以上に記載した実施形態では、利用者装置１４０Ａ〜１４０Ｃを三つ記載しているが、この数については任意に変更可能である。
【０２３９】
また、鍵保管装置１２０で保管される公開鍵は、公開鍵自体が改ざんされることなどを防止するため、鍵管理装置１１０において、公開鍵に対する証明書を発行することが望ましい。また、このように鍵管理装置１２０において公開鍵証明書を発行する場合には、鍵管理装置１１０に、証明書を発行する証明書発行処理部と、証明書発行のための署名用秘密鍵を記憶する署名用秘密鍵記憶領域と、を設ける必要がある。
【０２４０】
さらに、本実施形態では、利用者装置１４０Ａ〜１４０Ｃの記憶部１４６に公開鍵記憶領域１５０を設けて、リストＬｉに対応する公開鍵をこの公開鍵記憶領域１５０から取得するようにしているが、このような態様に限定されず、例えば、リストＬｉを鍵保管装置１２０に送信して、対応する公開鍵を鍵管理装置１２０から受信するようにしてもよい。
【０２４１】
また、以上に記載した実施形態においては、利用者装置１４０Ａ〜１４０Ｃの暗号処理部１４４及び復号処理部１４５において、同じ乱数シード値Ｒ０から、同じ暗号化鍵生成用乱数を生成することができ、かつ、暗号化部分Ｃ１，・・・，Ｃｍを生成する際（暗号化する際）に使用した暗号化鍵生成用乱数と同じ暗号鍵生成用乱数を暗号化部分Ｃ１，・・・，Ｃｍを復号する際に割り当てることができるようにしているが（例えば、部分Ｍ１，・・・，Ｍｍと、この部分Ｍ１，・・・，Ｍｍを暗号化した暗号化部分Ｃ１，・・・，Ｃｍと、が同じ順番で並んでおり、暗号処理部１４４及び復号処理部１４５において同じ順番で暗号鍵生成用乱数が生成されるようになっている場合等）、このような態様には限定されず、例えば、暗号処理部１４４及び復号処理部１４５において、同じ乱数シード値Ｒ０から、同じ暗号化鍵生成用乱数を生成することができない場合や、暗号化部分Ｃ１，・・・，Ｃｍを生成する際（暗号化する際）に使用した暗号化鍵生成用乱数と同じ暗号鍵生成用乱数を暗号化部分Ｃ１，・・・，Ｃｍを復号する際に割り当てることができない場合でも、暗号化部分Ｃ１，・・・，Ｃｍに使用した暗号化鍵生成用乱数を、ヘッダにおいて暗号化部分Ｃ１，・・・，Ｃｍ毎に特定しておくことで、本願発明と同様の処理を行うことができるようになる。
【図面の簡単な説明】
【０２４２】
【図１】第一の実施形態である情報システムの概略図。
【図２】鍵管理装置の概略図。
【図３】コンピュータの概略図。
【図４】鍵保管装置の概略図。
【図５】公開鍵テーブルの概略図。
【図６】コンテンツ保管装置の概略図。
【図７】利用者装置の概略図。
【図８】管理用秘密鍵の生成処理を示すフローチャート。
【図９】秘密鍵及び当該秘密鍵に対応する公開鍵の生成処理を示すフローチャート。
【図１０】暗号化コンテンツの生成及び登録処理を示すフローチャート。
【図１１】暗号化コンテンツの生成処理を示すフローチャート。
【図１２】暗号化コンテンツの概略図。
【図１３】ヘッダの概略図。
【図１４】暗号化コンテンツの取得及び復号処理を示すフローチャート。
【図１５】暗号化コンテンツの復号処理を示すフローチャート。
【図１６】暗号化鍵ｓｅｋｉの生成処理を示すフローチャート。
【図１７】第二の実施形態である情報システムで使用される鍵管理装置２１０の概略図。
【図１８】更新処理の一例を示すフローチャート。
【図１９】乱数の生成手順を説明するための概略図。
【図２０】管理サーバの概略図。
【符号の説明】
【０２４３】
１００  情報システム
１１０、２１０  鍵管理装置
１１１  制御部
１１３  鍵生成処理部
１１４  記憶部
１１５  管理用鍵記憶領域
２１９  更新部
２２０  暗号化コンテンツ記憶領域
１２０  鍵保管装置
１２４  公開鍵記憶領域
１３０  コンテンツ保管装置
１３４  暗号化コンテンツ記憶領域
１４０  利用者装置
１４３  コンテンツ処理部
１４４  暗号処理部
１４５  復号処理部
１４７  コンテンツデータ記憶領域
１４８  暗号化コンテンツ記憶領域
１４９  秘密鍵記憶領域
１５０  公開鍵記憶領域
３１０  管理サーバ
３１３  鍵生成処理部
３１５  管理用鍵記憶領域
３１６  公開鍵記憶領域
３１７  暗号化コンテンツ記憶領域
【図１】
2008061197.tif 000011
【図２】
2008061197.tif 000012
【図３】
2008061197.tif 000013
【図４】
2008061197.tif 000014
【図５】
2008061197.tif 000015
【図６】
2008061197.tif 000016
【図７】
2008061197.tif 000017
【図８】
2008061197.tif 000018
【図９】
2008061197.tif 000019
【図１０】
2008061197.tif 000020
【図１１】
2008061197.tif 000021
【図１２】
2008061197.tif 000022
【図１３】
2008061197.tif 000023
【図１４】
2008061197.tif 000024
【図１５】
2008061197.tif 000025
【図１６】
2008061197.tif 000026
【図１７】
2008061197.tif 000027
【図１８】
2008061197.tif 000028
【図１９】
2008061197.tif 000029
【図２０】
2008061197.tif 000030