(58)【調査した分野】(Int.Cl.,DB名)
ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報と、前記鍵付替情報において、一方のユーザから他方のユーザへの情報共有可との情報共有の方向性が規定されているユーザ間について、前記一方のユーザの暗号化データを、前記他方のユーザが保持する復号化鍵で復号化可能に再暗号化する付替鍵と、前記各ユーザのうち少なくともいずれかのユーザによる暗号化データと、を格納する記憶装置と、
所定ユーザによる暗号化データについて、他ユーザのユーザ端末から送信要求を受信し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵で、前記所定ユーザの暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する演算装置と、
を備える鍵付替サーバと、
各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置、を備える鍵生成サーバと、
を含むことを特徴とする鍵付替え方向制御システム。
各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、
各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、
一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記一方のユーザおよび前記他方のユーザにそれぞれ対応した復号用部分鍵を所定アルゴリズムで生成する処理と、前記一方および他方の各ユーザの復号用部分鍵について、所定の可換演算を実行し、当該演算結果を前記復号化鍵として生成する処理により得て、前記他方のユーザのユーザ端末に対して配信し、
前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザの暗号化用秘密鍵と、前記生成した復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置、
を備える鍵生成サーバを更に含むことを特徴とする請求項1に記載の鍵付替え方向制御システム。
ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報と、前記鍵付替情報において、一方のユーザから他方のユーザへの情報共有可との情報共有の方向性が規定されているユーザ間について、前記一方のユーザの暗号化データを、前記他方のユーザが保持する復号化鍵で復号化可能に再暗号化する付替鍵と、前記各ユーザのうち少なくともいずれかのユーザによる暗号化データと、を格納する記憶装置を備える鍵付替サーバが、
所定ユーザによる暗号化データについて、他ユーザのユーザ端末から送信要求を受信し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵で、前記所定ユーザの暗号化データを再暗号化して前記他ユーザのユーザ端末に送信し、
鍵生成サーバが、
各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、
各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、
一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、
前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、
ことを特徴とする鍵付替え方向制御方法。
【発明を実施するための形態】
【0018】
《第1実施形態》
−−−システム構成−−−
【0019】
以下に本発明の実施形態について図面を用いて詳細に説明する。
図1は、第1実施形態の鍵付替え方向制御システム100を含むネットワーク構成図である。
図1に示す鍵付替え方向制御システム100は、ユーザ間の情報共有に伴う複数回の鍵付替えと、鍵付替え方向の制御を可能とするコンピュータシステムである。
【0020】
図1に例示する鍵付替え方向制御システム100は、暗号化データ保管・鍵付替サービス業者が運用する鍵付替サーバ200と、この鍵付替サーバ200を介した暗号化データの預託と利用を行う各ユーザのユーザ端末300〜600と、復号化鍵や付替鍵などの鍵生成と配信を行う鍵生成・配布サービス業者の鍵生成サーバ1000とがネットワーク150を介して互いに接続された構成となっている。
【0021】
但し、鍵付替え方向制御システム100の最小構成としては鍵付替サーバ200を想定出来る。その他にも、鍵付替サーバ200と鍵生成サーバ1000とで鍵付替え方向制御システム100を構成する場合も想定出来る。
【0022】
なお、上述の鍵付替サーバ200は、クラウド事業者において暗号化データの仲介を行うクラウドサービスの提供主体として管理、運用する状況を想定出来る。この場合、クラウド事業者が提供するクラウドサービスを利用するユーザが持つ携帯電話などの端末が、上述のユーザ端末300〜600である。このユーザ端末の数は、
図1の例示した例に限定されない。
【0023】
続いて、鍵付替え方向制御システム100の各装置における機能構成について説明する。上述したように、以下に説明する機能部は、例えば該当装置が備えるプログラムを実行することで実装される機能、或いは適宜な電子回路により実装される機能と言える。
【0024】
図2は、第1実施形態に係る鍵付替サーバ200の構成例を示す機能概略図である。
図2にて例示するように、鍵付替サーバ200は、各種処理を実行する制御部210と、データを記憶する記憶部220と、外部からの情報入力を受け付ける入力部201と、出力装置等に情報出力を行う出力部202と、外部装置とのデータの送受信を行う通信部203とを備えている。
【0025】
上述の制御部210は、全体処理部211と、鍵付替処理部212とから構成されている。このうち全体処理部211は、当該鍵付替サーバ200における処理を統括制御し、入力部201を介し受け付けた情報を記憶部220に格納する処理や、ユーザ端末300〜600との情報の送受信の処理等を制御する。また、全体処理部211は、データを出力部202に表示する処理や、記憶部220に格納されているデータを読み込み、通信部203を介してユーザ端末200〜600へ送信する処理も実行する。
【0026】
他方、鍵付替処理部212は、所定ユーザによる暗号化データについて、その所定ユーザとは異なる他ユーザのユーザ端末から送信要求を受信し、上述の付替鍵テーブル232において、上述の所定ユーザから他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する付替鍵で、所定ユーザの暗号化データ(上述の暗号化データ231から読み出したもの)を再暗号化し、これを上述の他ユーザのユーザ端末に送信するものとなる。
【0027】
また、記憶部220のデータ記憶部230には、暗号化データ231と付替鍵テーブル232とが格納されている。このうち暗号化データ231は、ユーザ端末300〜600から受け付けた暗号化データである。また、付替鍵テーブル232は、ユーザの間における情報共有の可否及び方向性の関係を規定した鍵付替情報に該当する。この鍵付替情報は、各ユーザの識別情報を頂点とし情報共有の可否及び方向性の関係を辺とする鍵付替えグラフ233も含むものとする。
【0028】
また、一時情報記憶部240は、制御部210での処理で一時的に必要となる情報が格納される。
【0029】
続いてユーザ端末300について説明する。
図3は、第1実施形態に係るユーザAのユーザ端末300の構成例を示す図である。なお、特にユーザを特定した説明でない限り、ユーザ端末はユーザ端末300として記載することとする(以下同様)。よって、
図3に示すユーザ端末300と、他のユーザ端末400〜600とは同様の構成となっている。
【0030】
図3にて例示するユーザ端末300は、各種処理を実行する制御部310と、データを記憶する記憶部320と、外部からの情報入力を受け付ける入力部301と、出力装置等において情報出力を行う出力部302と、外部装置とのデータの送受信を行う通信部303とを備えている。
【0031】
上述の制御部310は、全体処理部311と、暗号化処理部312と、復号化処理部313とから構成されている。このうち全体処理部311は、当該ユーザ端末300における処理を統括制御し、入力部301を介し受け付けた情報を記憶部320に格納する処理や、鍵付替サーバ200との情報の送受信の処理等を制御する。また、全体処理部311は、データを出力部302に表示する処理や、記憶部320に格納されているデータを読み込んで暗号化処理部312にて暗号化を実行させる処理や、復号化処理部313に暗号化データの復号化をさせる処理や、暗号化データを通信部303を介し鍵付替サーバ200へ送信する処理を実行する。
【0032】
上述の暗号化処理部312は、鍵付替サーバ200に対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末300のユーザ(この場合、ユーザA)の暗号化対象データ(データ記憶部330に保持)を暗号化して暗号文を生成する処理と、上述の共通鍵暗号用鍵と、暗号化鍵341として保持する暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を上述の暗号文に結合して暗号化データを生成し、鍵付替サーバ200に送信するものとなる。
【0033】
また、復号化処理部313は、鍵付替サーバ200への暗号化データの送信要求に応じて得た、付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、暗復号化鍵記憶部340にて復号化鍵342として保持する、情報共有先ユーザによる暗号化データを当該ユーザ端末300のユーザが復号化する場合に用いる復号化鍵と、再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として暗号文を復号化し、出力部302を介して所定の出力装置に出力するものとなる。
【0034】
また、記憶部320は、データ記憶部330、暗復号化鍵記憶部340と、一時情報記憶部350が含まれている。このうちデータ記憶部330は、暗号化対象データすなわち平文のデータが格納されている。また、暗復号化鍵記憶部340には、暗号化鍵と復号化鍵が格納されている。上述の暗号化鍵341は、鍵生成サーバ1000より配信された、暗号化用秘密鍵となる。また、復号化鍵342は、同じく鍵生成サーバ1000から配信された復号化用マスタ鍵及び復号化鍵となる。
【0035】
また、一時情報記憶部350は、制御部310での処理で一時的に必要となる情報が格納される。
【0036】
次に鍵生成サーバ1000について説明する。
図4は、第1実施形態に係る鍵生成サーバ1000の構成例を示す図である。
図4にて例示するように、鍵生成サーバ1000は、各種処理を実行する制御部1010と、データを記憶する記憶部1020と、外部からの情報入力を受け付ける入力部1001と、出力装置等において情報出力を行う出力部1002と、外部装置とのデータの送受信を行う通信部1003とを備えている。
【0037】
上述の制御部1010は、全体処理部1011と、暗号化鍵生成部1012と、復号化鍵生成部1013と、付替鍵生成部1014とを備える。このうち全体処理部1011は、当該鍵生成サーバ1000における処理を統括制御し、入力部1001を介し受け付けた情報を記憶部1020に格納する処理や、ユーザ端末300〜600や鍵付替サーバ200との情報の送受信の処理等を制御する。
【0038】
また、全体処理部1011は、データを出力部1002に表示する処理や、記憶部1020に格納されているデータを読み込んで暗号化鍵生成部1012に暗号化鍵を生成させる処理や、復号化鍵生成部1013に復号化鍵を生成させる処理や、付替鍵生成部1014に付替鍵を生成させる処理を実行させる。また全体処理部1011は、こうして生成し
た暗号化鍵および復号化鍵を、ユーザ端末300〜600へ送信し、付替鍵を鍵付替サーバ200へ送信する。
【0039】
上述の暗号化鍵生成部1012は、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成するものとなる。
【0040】
また、復号化鍵生成部1013は、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、上述の他方のユーザの復号化用マスタ鍵及び上述の一方のユーザの識別情報(例:ユーザID等であり、記憶部1020に予め保持)のハッシュ値により生成するものとなる。
【0041】
また、付替鍵生成部1014は、各ユーザの識別情報を頂点とし情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを鍵付替情報として生成し、この鍵付替えグラフを鍵付替サーバ200に送信する処理を実行する。また、付替鍵生成部1014は、上述の鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵1042と、一方のユーザの暗号化用秘密鍵1041と、について所定の可換演算を実行し、当該演算結果を、一方のユーザによる暗号化データを他方のユーザが復号可能に再暗号化する付替鍵1043として生成するものとなる。
【0042】
また、記憶部1020は暗復号化鍵記憶部1040と一時情報記憶部1050とが含まれている。このうち暗復号化鍵記憶部1040には、暗号化鍵1041と復号化鍵1042と付替鍵1043が格納されている。
【0043】
また、一時情報記憶部1050は、制御部1010での処理で一時的に必要となる情報が格納される。
−−−ハードウェア構成−−−
【0044】
また、本実施形態の鍵付替え方向制御システム100を構成する各装置を計算機10として代表させた場合のハードウェア構成は以下の如くとなる。計算機10は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置11、RAMなど揮発性記憶素子で構成されるメモリ13、記憶装置11に保持されるプログラム12をメモリ13に読み出すなどして実行し装置自体の統括制御を行なうとともに適宜にデータ類18を用いて各種判定、演算及び制御処理を行なうCPUなどの演算装置14、外部からのキー入力や音声入力を受け付ける入力装置15、処理データの表示を行うディスプレイ等の出力装置16、ネットワーク150と接続し他装置との通信処理を担う通信装置17を備える。
【0045】
このうち、記憶装置11のリソースが各装置の記憶部となり、演算装置14のリソースが各装置の制御部となり、入力装置15のリソースが各装置の入力部となり、出力装置16のリソースが各装置の出力部となり、通信装置17ののリソースが各装置の通信部となる。また、データ類18は各装置における記憶部に格納されるデータに対応する。
−−−データ構造例−−−
【0046】
次に、第1実施形態の鍵付替え方向制御システム100において用いるデータの構造例について説明する。ここでは、鍵付替えグラフと、これに対応した鍵付替えテーブルの具体例を示すものとする。
図6は、第1実施形態に係る鍵付替えグラフ233の例を示す図であり、
図7は、第1実施形態に係る鍵付替えグラフ233に対応した鍵付替えテーブル232の例を示す図である。
【0047】
図6に例示する鍵付替グラフ233は、各ユーザ端末300〜600の間の鍵付替えの許可方向、すなわち情報共有の方向性を示しており、この鍵付替グラフ233をテーブル化したのが
図7の鍵付替えテーブル232となる。なお、この鍵付替えテーブル232においては、あるユーザから他のユーザ端末への情報共有が許可された対応関係については該当する付替鍵を保持している。
【0048】
図6においては、例えば、ユーザAが暗号化したデータは、鍵付替サーバ200により、ユーザBが復号化できるように鍵の付替えを行うことができることを、ユーザAからユーザBへの矢印の線分(辺)であらわしている。同様にユーザBが暗号化したデータはユーザCとユーザDが復号できるように、鍵付替サーバ200が鍵の付替えを行うことができることを、該当ユーザ間を対応する方向で結ぶ矢印の線分であらわしている。
【0049】
また、
図7の鍵付替えテーブル232は、鍵付替えグラフ233で示された鍵付替え可否、すなわち情報共有可否の関係に対応して、付替鍵を保持したテーブルの例を表している。例えばユーザAが暗号化したデータを、ユーザBが復号できるように鍵付替サーバ200が鍵の付替え(再暗号化)を行うために必要な情報がK
A→Bである。この鍵付替えテーブル232のうち、空白欄に対応した関係は情報共有、すなわち該当ユーザ間の該当方向について鍵付替が許可されてない関係にあることを意味している。
−−−鍵生成・配布処理−−−
【0050】
以下、本実施形態における鍵付替え方向制御方法の実際手順について図に基づき説明する。以下で説明する鍵付替え方向制御方法に対応する各種動作は、鍵付替え方向制御システム100を構成する各装置がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【0051】
図8は、本実施形態における鍵付替え方向制御方法の処理手順例1を示すフロー図であり、具体的には、第1実施形態に係る鍵生成サーバ1000が実行する、各ユーザ300〜600が保持する暗号化鍵および復号化鍵と、鍵付替サーバ200が保持する鍵付替えテーブル232とを生成する手順を示すフロー図である。
【0052】
この場合まず、鍵生成サーバ1000は、予め記憶部1020で保持する各ユーザの識別情報を頂点とし、鍵付替可否すなわち情報共有の可否及び方向性の関係を、例えば入力部1001にて管理者等から指定を受けて、この指定に応じて各ユーザの識別情報間を線分で接続し、鍵付替えグラフ233を生成する(S601)。この鍵付替えグラフ233は鍵付替サーバ200にこのまま送信するとしてもよい。
【0053】
続いて鍵生成サーバ1000は、上述の鍵付替えグラフ232に応じて、各ユーザの暗号化鍵、復号化鍵を生成する(S602)。この処理の詳細は後述する。
【0054】
次に、鍵生成サーバ1000は、上述のステップS602で生成した各ユーザの暗号化鍵、復号化鍵を、該当ユーザのユーザ端末300に送信する(S603)。このときの送信処理は、暗号化通信などにより他者からの盗聴対策が施されていなければならない。
【0055】
一方、ユーザ端末300は、鍵生成サーバ1000から暗号化鍵、復号化鍵を受信し、これを記憶部320の暗復号化鍵記憶部340の、暗号化鍵341、復号化鍵342としてそれぞれ格納する(S606)。
【0056】
続いて鍵生成サーバ1000は、鍵付替えグラフ232と、上述のステップS602で生成した各ユーザの暗号化鍵および復号化鍵とに基づき、付替鍵を生成し、これをユーザ
間での情報共有の可否の方向性を規定する所定形式のテーブルに格納することで鍵付替えテーブル233を生成する(S604)。
【0057】
次に鍵生成サーバ1000は、上述のステップS604で生成した鍵付替えテーブル232を、鍵付替サーバ200に送信する(S605)。このときの送信処理は、暗号化通信などにより他者からの盗聴対策が施されていなければならない。
【0058】
一方、鍵付替サーバ200は、鍵生成サーバ1000から鍵付替えテーブル232を受信し、これを記憶部220に格納する(S607)。
【0059】
−−−暗号化、鍵の付替え、復号処理−−−
【0060】
次に、ユーザAが保有するデータの暗号化と、暗号化データの鍵付替サーバ200への送信、鍵付替サーバ200によるユーザB400が復号可能な暗号化データへの鍵の付替えとその暗号化データの送信、およびユーザB400による復号化の手順を説明する。
図9は、第1実施形態における鍵付替え方向制御方法の手順例2を示すフロー図である。
【0061】
この場合まず、ユーザAのユーザ端末300は、例えばユーザAからのデータ暗号化指示を入力部301で受け付けて、これに伴い、データ記憶部330に保持する暗号化対象データを読みだして、自身の暗号化鍵341(乱数等の所定アルゴリズムで生成した共通鍵暗号用鍵)で暗号化して暗号文を生成し、暗号化鍵341として保持する上述の共通鍵暗号用鍵と暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、上述の暗号文に結合して暗号化データを生成し(S701)、これを鍵付替サーバ200へ送信する(S702)。
【0062】
一方、鍵付替サーバ200は、例えばユーザBのユーザ端末400からの送信要求に応じて、データ記憶部230に保持する鍵付替えグラフ233(
図6)または鍵付替えテーブル232(
図7)において、上述のユーザAからユーザBへの情報共有すなわち鍵付替えが許可されていることを確認し、許可されている場合は、鍵付替えテーブル232等での該当規定に対応したユーザAからユーザBの間に関する付替鍵で、ユーザAの暗号化データを再暗号化し、鍵の付替えを行う(S705)。
【0063】
また、鍵付替サーバ200は、上述のステップS705で鍵付替えが施された暗号化データを、ユーザBのユーザ端末400に送信する(S706)。
【0064】
他方、鍵付替サーバ200から上述の暗号化データを受信したユーザ端末400は、ユーザAによる暗号化データを復号するための復号化鍵342を、暗復号化鍵記憶部340から読み出し、その復号化鍵342と、上述の鍵付替が施された(再暗号化された)暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として暗号文を復号化し、出力部302に出力する(S707)。
【0065】
−−−暗号化鍵、復号化鍵、付替鍵の生成手順1−−−
【0066】
図10は、第1実施形態における鍵付替え方向制御方法の手順例3を示すフロー図であり、具体的には、第1実施形態に係る、
図8における鍵生成サーバ1000の、暗号化鍵、復号化鍵、および付替鍵の第1の生成手順を示すフロー図である。
【0067】
ここでは例として、ユーザAによる暗号化データを、ユーザBのユーザ端末400が復号可能に再暗号化する、すなわち鍵付替えを行うために必要なユーザAの暗号化鍵と、ユ
ーザBの復号化鍵と、鍵付替サーバ200が保持する付替鍵を生成する手順を示す。
【0068】
この場合まず、鍵生成サーバ1000は、ユーザAの暗号化鍵Ke
Aを乱数等の所定のアルゴリズムによりランダムに生成する(S801)。また、鍵生成サーバ1000は、ユーザBの復号化用マスタ鍵Kd
Bを、同様に乱数等の所定のアルゴリズムによりランダムに生成する(S802)。
【0069】
続いて鍵生成サーバ1000は、上述のステップS801で得た暗号化鍵Ke
Aを、ユーザAのユーザ端末300に、同様に、上述のステップS802で得た復号化用マスタ鍵Kd
B(A)をユーザBのユーザ端末400に、セキュアに送信する(S803)。
【0070】
続いて鍵生成サーバ1000は、上述のユーザAによる暗号化データをユーザBのユーザ端末400が復号化するときに用いる復号化鍵を、Kd
B(A)=H(Kd
B,ID
A)、の算定処理を行って生成する(S804)。ここでH(*)はハッシュ関数、ID
AはユーザAをあらわす識別子とし、公開されていて記憶部1020にて予め保持しているものとする。
【0071】
また、鍵生成サーバ1000は、上述のユーザAによる暗号化データをユーザBのユーザ端末400が復号可能に再暗号化するための付替鍵K
A→Bを、K
A→B=Ke
A X
OR Kd
B(A)(ただしXORはビットごとの排他的論理和)なる演算にて生成し(
S805)、これを鍵付替えテーブル(例:記憶部1020にて付替鍵1043として格納)の該当箇所、すなわちユーザAからユーザBへの情報共有を許可する関係に対応した欄に追加し、この鍵付替えテーブルを鍵付替サーバ200にセキュアに送信する(S806)。
−−−付替鍵生成手順−−−
【0072】
図11は、第1実施形態における鍵付替え方向制御方法の手順例4を示すフロー図であり、具体的には、第1実施形態に係る、鍵生成サーバ1000の、複雑な鍵付替えグラフ233における付替鍵生成手順を示すフローチャートである。
【0073】
この実施形態における鍵付替えグラフ233(
図6)では、ユーザAからユーザCに至るグラフ上のパス(辺)が複数あることを想定している。その最長のパスがユーザA→ユーザB→ユーザCであるとする。
【0074】
この場合、鍵生成サーバ1000は、すでに生成済の付替鍵K
A→Bと付替鍵K
B→Cとを用いて、ユーザAからユーザCへの付替鍵をK
A→C=K
A→B XOR K
B→C、と演算し(S901)、K
A→Cを鍵付替えテーブルに追加し、鍵付替サーバ200にセキュアに送信する(S902)。
【0075】
さらに鍵生成サーバ1000は、上述のユーザAによる暗号化データをユーザCが復号化する場合の復号化鍵をKd
C(A)=Kd
B(A) XOR K
B→C、と演算して(S903)、最後にKd
C(A)をユーザCのユーザ端末500にセキュアに送信する(S904)。
【0076】
−−−暗号化鍵、復号化鍵、付替鍵の生成手順2−−−
【0077】
図12は、第1実施形態における鍵付替え方向制御方法の手順例5を示すフロー図であり、具体的には、第1実施形態に係る、
図8における鍵生成サーバ1000の、暗号化鍵、復号化鍵、および付替鍵の第2の生成手順を示すフロー図である。
【0078】
ここでは例として、ユーザAによる暗号化データをユーザBのユーザ端末400が復号可能に再暗号化するための、すなわち鍵付替えに必要なユーザAの暗号化鍵と、ユーザBの復号化鍵と、鍵付替サーバ200が保持する付替鍵を生成する手順を示す。
【0079】
この場合まず、鍵生成サーバ1000は、ユーザAの暗号化鍵Ke
Aを乱数等の所定アルゴリズムによりランダムに生成する(S1001)。また、鍵生成サーバ1000は、ユーザAに対応した復号用部分鍵h
Aを、乱数等の所定アルゴリズムによりランダムに生成し(S1003)、同様にユーザBに対応した復号用部分鍵h
Bを乱数等の所定アルゴリズムによりランダムに生成する(S1004)。
【0080】
続いて、鍵生成サーバ1000は、上述のユーザAによる暗号化データをユーザBが復号化する場合の復号鍵を、Kd
B(A)=h
A XOR h
B、と演算し(S1005)、この復号鍵Kd
B(A)をユーザBのユーザ端末400にセキュアに送信する(S1006)。
【0081】
さらに鍵生成サーバ1000は、上述のユーザAによる暗号化データをユーザBのユーザ端末400が復号可能に再暗号化するための付替鍵を、K
A→B=Ke
A XOR Kd
B(A)、と演算し(S1007)、これを鍵付替えテーブルの該当箇所に追加し、これを鍵付替サーバ200にセキュアに送信する(S1008)。
【0082】
上述の説明においてh、鍵同士の演算に排他的論理和XORを用いる例を示したが、一般にビット系列や、鍵空間上に定義された可換な演算であればいずれの手法を採用するとしてもよい。
【0083】
なお、ユーザ端末300におけるデータ暗号化の一例として、共通鍵暗号方式用の鍵Rをランダムに生成し、その鍵Rで暗号化対象データを暗号化して暗号文Cを生成し、さらに上述の鍵Rとユーザ端末自身が持つ暗号化用鍵Ke*(*はユーザ名)との排他的論理和、あるいは決められた可換演算の演算結果をXとするとき、C||Xを最終的な暗号文とする、といった手法が適用出来る。この場合、鍵の付替えは上述の演算結果Xの部分を、この演算結果Xと付替鍵とついて所定の可換演算の演算結果で置き換えることで実行できる。勿論、上述のデータ暗号化の手法は一例であり、これに限定されない。
【0084】
上述してきた第1実施形態によれば、あるユーザAが暗号化したデータを別のユーザBが復号化を許可されていて、逆は許可されていない場合、すなわち対応するユーザBからユーザAへの方向での情報共有を可能とする付替鍵が鍵付替えテーブル232にて設定されていない場合、鍵付替サーバ200の(悪意の)独断ではユーザBが暗号化したデータをユーザAが復号可能にすることができない。これは従来の可換演算を基にした方式では実現できなかった情報セキュリティに関わる性質である。
【0085】
またユーザ間における規定方向での情報共有の許可、不許可の関係で導出される鍵付替えグラフ233が、例えば、膨大なユーザに関して複雑に辺で接続されている構成を示す場合、すなわちユーザ間の情報共有の関係が複雑である場合であっても矛盾無く、鍵付替えの処理が実行できる。鍵付替えグラフ233におけるユーザ間の情報共有の関係性は矛盾が生じないよう設定されるため、本来許可していない方向の鍵付替えが鍵付替えグラフ233内の或るループの存在により許可された状態になってしまうといった事態も抑止できる。
【0086】
また各ユーザが保有する復号鍵のバリエーションを適切に増やすことにより、鍵付替サーバ200と或るユーザ(例えばA)の結託により漏えいする他のユーザの鍵の個数を低減出来る。より正確には、ユーザAが得ることができる他のユーザの鍵は、ユーザAが暗
号化したデータを復号できる権限を持つユーザの、ユーザAに対応した復号鍵と、ユーザAが復号できる別のユーザの暗号化鍵である。これらは実質、得られてもユーザAは自身が本来知ることができる情報以上のことは何も得られない。
《第2実施形態》
【0087】
次に、
図13を参照して本発明に係る第2実施形態について説明する。この第2実施形態は、上述の第1実施形態において示した、(鍵付替えテーブル232等で規定した)一方向の鍵付替え手法を、或る組織におけるユーザ間の階層構造(職位等)に適用したものである。
図13で例示する階層モデル1300は、ユーザ間が情報共有の権限別に3階層に階層化された例であり、鍵付替えグラフ233として鍵生成サーバ1000が生成し、鍵付替サーバ200に配信され、保持されるものである。よって、この第2実施形態における階層モデル1300に基づく、鍵付替え方向制御方法の各処理は第1実施形態のものと同様である。勿論、この階層モデル1300は2階層や4階層以上でも同様に構成できる。
【0088】
こうした階層モデル1300における矢印は、例えばC階層に属するユーザ(
図13ではユーザC1(501)、ユーザC2(502)、ユーザC3(503))が暗号化したデータを、該当ユーザ端末が鍵付替サーバ200にアップロードしたものは、鍵付替サーバ200がB階層、A階層のユーザの鍵に付替え、B階層、A階層のユーザのユーザ端末がダウンロードして復号、閲覧してよいことを表している。同様にB階層のユーザが暗号化したデータは鍵付替サーバ200がA階層のユーザの鍵に付替え、A階層のユーザのユーザ端末がダウンロード、復号して閲覧できる。
【0089】
しかし一方で、この階層モデル1300において、逆向きの鍵付替えは許可されていないものとする。すなわち、例えばB階層のユーザが暗号化したデータは、C階層のユーザの鍵に付替えられない。
【0090】
この第2実施形態においても、上述の第1実施形態において示したように、各ユーザ毎に異なる鍵を用いるとしても良いが、各階層のユーザに対し、階層で共通の鍵を用いるとしても良い。
《第3実施形態》
【0091】
次に、
図14を参照して、本発明に係る第3実施形態を説明する。第3実施形態は、上述の第1実施形態において示した、(鍵付替えテーブル232等で規定した)一方向の鍵付替え手法を、或る情報集約システムに適用したものである。
【0092】
図14で例示する階層モデル1400の構成では、鍵付替サーバ200が、4人のユーザA〜Dの各ユーザ端末から暗号化データを収集し、いずれの暗号化データについても、情報利用者Xの端末700が復号できるよう再暗号化すべく鍵を付替え、情報利用者Xの端末700に送付し、情報利用者Xの端末700にて復号化および利用がなされる。この第3実施形態においても、鍵付替え方向制御方法の基本的な手順については第1実施形態で示した具体例と同様である。
【0093】
この階層モデル1400における矢印は、ユーザA〜Dが暗号化したデータを、該当ユーザ端末300〜600のそれぞれが鍵付替サーバ200にアップロードしたものが、ユーザA〜Dの各間で復号可能なように鍵付替えが出来ない規定となっていることを意味する。
【0094】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【0095】
こうした本実施形態によれば、或るユーザが暗号化したデータを、鍵付替サーバを介して別のユーザが復号可能な暗号化データに変換して送信するシステムにおいて、複数回の鍵付替えと、規定とは逆方向への鍵付替えの抑止が可能であり、更に、ユーザと鍵付替サーバの結託による情報漏洩も防止可能で、クラウドなど第3者を通じてもユーザ間でのセキュアな情報共有が、ユーザ間の関係(情報閲覧可/不可等)が複雑な構成となっている状況でも矛盾無く可能となる。
【0096】
すなわち、ユーザ間の情報共有に伴う複数回の鍵付替えと、鍵付替え方向の制御を可能となる。
【0097】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の鍵付替え方向制御システムにおいて、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置を備える鍵生成サーバを更に含むとしてもよい。
【0098】
これによれば、上述の復号化鍵や付替鍵をユーザ構成に応じて効率的に生成し、鍵付替サーバやユーザ端末に配信することが可能となる。
【0099】
また、本実施形態の鍵付替え方向制御システムにおいて、前記鍵生成サーバの演算装置は、前記付替鍵を前記鍵付替サーバに送信する処理に際し、前記鍵付替えグラフにおいて、一方のユーザから或るユーザを介して他方のユーザに至る方向でユーザ各間が辺で結ばれている場合、前記一方のユーザによる暗号化データを前記或るユーザが保持する復号化鍵で復号可能に再暗号化する付替鍵と、前記或るユーザが暗号化したデータを前記他方のユーザが復号する場合に用いる復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを、前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信するものである、としてもよい。
【0100】
これによれば、鍵付替えグラフにおいて直接は結ばれていないユーザ間に関しても、(許可されていれば)情報共有を可能とする付替鍵を生成し、鍵付替サーバに配信できる。そのため、各ユーザの各間すべての関係についての各種鍵の生成を行う必要がなく、効率的でセキュアな鍵管理が可能となる。
【0101】
また、本実施形態の鍵付替え方向制御システムにおいて、前記鍵生成サーバより配信された、前記暗号化用秘密鍵、復号化用マスタ鍵、及び前記復号化鍵を格納する記憶装置と、前記鍵付替サーバに対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末のユーザの所定データを暗号化して暗号文を生成する処理と、前記共通鍵暗号用鍵と前記記憶装置で保持する前記暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合して暗号化データを生成し
、前記鍵付替サーバに送信する処理を実行し、前記鍵付替サーバへの暗号化データの送信要求に応じて得た、前記付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、記憶装置にて保持する、前記情報共有先ユーザによる暗号化データを当該ユーザ端末のユーザが復号化する場合に用いる復号化鍵と、前記再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として前記暗号文を復号化し、出力装置に出力する処理を実行する、演算装置と、を備えるユーザ端末を更に含むとしてもよい。
【0102】
これによれば、規定した方向性に応じたセキュアな情報共有をユーザ間で効率的に行うことが可能となる。
【0103】
また、本実施形態の鍵付替え方向制御システムにおいて、前記鍵付替サーバの演算装置は、前記付替鍵で前記暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する処理に際し、前記送信要求に対し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵と、前記暗号化データにおいて前記暗号文と結合している演算結果と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合させて前記再暗号化した暗号化データを生成し、前記他ユーザのユーザ端末に送信するものである、としてもよい。
【0104】
これによれば、鍵付替サーバにおいて、再暗号化した暗号化データすなわち鍵の付け替えを行った暗号化データを効率的かつセキュアに生成し、ユーザ端末に送信することが出来る。
【0105】
また、本実施形態の鍵付替え方向制御システムにおいて、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記一方のユーザおよび前記他方のユーザにそれぞれ対応した復号用部分鍵を所定アルゴリズムで生成する処理と、前記一方および他方の各ユーザの復号用部分鍵について、所定の可換演算を実行し、当該演算結果を前記復号化鍵として生成する処理により得て、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザの暗号化用秘密鍵と、前記生成した復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する演算装置、を備える鍵生成サーバを更に含むとしてもよい。
【0106】
これによれば、復号化鍵を、復号化用マスタ鍵及びユーザの識別情報のハッシュ値により生成する場合よりも、全体として鍵数を抑制でき、効率的でセキュアな鍵管理が可能である。
【0107】
また、本実施形態の鍵付替え方向制御方法において、鍵生成サーバが、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記他方のユーザの復号化用マスタ鍵及び前記一方のユーザの識別情報のハッシュ値により生成し、前記他方のユーザのユーザ端末に対して配信し、前記鍵付
替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザによる暗号化データを前記他方のユーザが復号化する場合に用いる復号化鍵と、前記一方のユーザの暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、としてもよい。
【0108】
また、本実施形態の鍵付替え方向制御方法において、前記鍵生成サーバが、前記付替鍵を前記鍵付替サーバに送信する処理に際し、前記鍵付替えグラフにおいて、一方のユーザから或るユーザを介して他方のユーザに至る方向でユーザ各間が辺で結ばれている場合、前記一方のユーザによる暗号化データを前記或るユーザが保持する復号化鍵で復号可能に再暗号化する付替鍵と、前記或るユーザが暗号化したデータを前記他方のユーザが復号する場合に用いる復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを、前記他方のユーザが復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、としてもよい。
【0109】
また、本実施形態の鍵付替え方向制御方法において、前記鍵生成サーバより配信された、前記暗号化用秘密鍵、復号化用マスタ鍵、及び前記復号化鍵を格納する記憶装置を備えたユーザ端末が、前記鍵付替サーバに対する暗号化データの登録に際し、所定アルゴリズムで生成した共通鍵暗号用鍵により、当該ユーザ端末のユーザの所定データを暗号化して暗号文を生成する処理と、前記共通鍵暗号用鍵と前記記憶装置で保持する前記暗号化用秘密鍵と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合して暗号化データを生成し、前記鍵付替サーバに送信する処理を実行し、前記鍵付替サーバへの暗号化データの送信要求に応じて得た、前記付替鍵で再暗号化された情報共有先ユーザの暗号化データについて、記憶装置にて保持する、前記情報共有先ユーザによる暗号化データを当該ユーザ端末のユーザが復号化する場合に用いる復号化鍵と、前記再暗号化された暗号化データのうち暗号文に結合した演算結果部分と、について所定の可換演算を実行し、当該演算結果を共通鍵暗号の復号鍵として前記暗号文を復号化し、出力装置に出力する処理を実行する、としてもよい。
【0110】
また、本実施形態の鍵付替え方向制御方法において、前記鍵付替サーバが、前記付替鍵で前記暗号化データを再暗号化して前記他ユーザのユーザ端末に送信する処理に際し、前記送信要求に対し、前記鍵付替情報において、前記所定ユーザから前記他ユーザへの情報共有可との情報共有の方向性が規定されている場合、該当規定に対応したユーザ間に関する前記付替鍵と、前記暗号化データにおいて前記暗号文と結合している演算結果と、について所定の可換演算を実行し、当該演算結果を前記暗号文に結合させて前記再暗号化した暗号化データを生成し、前記他ユーザのユーザ端末に送信する、としてもよい。
【0111】
また、本実施形態の鍵付替え方向制御方法において、鍵生成サーバが、各ユーザの識別情報を頂点とし前記情報共有の可否及び方向性の関係を辺とする鍵付替えグラフを前記鍵付替情報として生成し、前記鍵付替えグラフを前記鍵付替サーバに送信し、各ユーザの暗号化用秘密鍵及び復号化用マスタ鍵を所定アルゴリズムで生成し、該当ユーザのユーザ端末に対して配信し、一方のユーザによる暗号化データを他方のユーザが復号化する場合に用いる復号化鍵を、前記一方のユーザおよび前記他方のユーザにそれぞれ対応した復号用部分鍵を所定アルゴリズムで生成する処理と、前記一方および他方の各ユーザの復号用部分鍵について、所定の可換演算を実行し、当該演算結果を前記復号化鍵として生成する処理により得て、前記他方のユーザのユーザ端末に対して配信し、前記鍵付替えグラフにおいて一方のユーザから他方のユーザに向けた辺で直接結ばれているユーザ間について、前記一方のユーザの暗号化用秘密鍵と、前記生成した復号化鍵と、について所定の可換演算を実行し、当該演算結果を、前記一方のユーザによる暗号化データを前記他方のユーザが
復号可能に再暗号化する前記付替鍵として生成し、前記生成した付替鍵を前記鍵付替サーバに送信する、としてもよい。