IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

<>
  • 特許-暗号処理システム及び暗号処理方法 図1
  • 特許-暗号処理システム及び暗号処理方法 図2
  • 特許-暗号処理システム及び暗号処理方法 図3
  • 特許-暗号処理システム及び暗号処理方法 図4
  • 特許-暗号処理システム及び暗号処理方法 図5
  • 特許-暗号処理システム及び暗号処理方法 図6
  • 特許-暗号処理システム及び暗号処理方法 図7
  • 特許-暗号処理システム及び暗号処理方法 図8
  • 特許-暗号処理システム及び暗号処理方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-24
(45)【発行日】2023-08-01
(54)【発明の名称】暗号処理システム及び暗号処理方法
(51)【国際特許分類】
   H04L 9/30 20060101AFI20230725BHJP
   H04L 9/32 20060101ALI20230725BHJP
【FI】
H04L9/30 A
H04L9/32 200B
【請求項の数】 5
(21)【出願番号】P 2019199804
(22)【出願日】2019-11-01
(65)【公開番号】P2021072593
(43)【公開日】2021-05-06
【審査請求日】2022-07-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】清水 俊也
(72)【発明者】
【氏名】下山 武司
(72)【発明者】
【氏名】花岡 悟一郎
(72)【発明者】
【氏名】坂井 祐介
(72)【発明者】
【氏名】辛 星漢
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2008-135869(JP,A)
【文献】特開2006-227411(JP,A)
【文献】KILTZ, E.,Chosen-Ciphertext Secure Key-Encapsulation Based on Gap Hashed Diffie-Hellman,Lecture Notes in Computer Science,Vol. 4450,2007年,pp.282-297
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/30
H04L 9/32
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
秘密情報を暗号化する暗号データ生成装置と、
公開鍵と秘密鍵の鍵ペアを有する第1の数のパーティ装置と、
前記第1の数のパーティ装置に分散された断片情報を収集して結合する断片結合装置と
を有し、
前記暗号データ生成装置は、
前記第1の数の公開鍵から鍵復元に必要な第2の数の公開鍵を選択して合成鍵を生成する処理を、前記第1の数の公開鍵から前記第2の数の公開鍵を選択する組合せの数である第3の数の回数行うことで前記第3の数の合成鍵を生成する第1の生成部と、
前記第1の数のパーティ装置の中で前記秘密情報の復号権限を有する第4の数のパーティ装置の公開鍵を用いて前記秘密情報をそれぞれ暗号化して生成した該第4の数の秘密文から中間文を生成し、該中間文をさらに各合成鍵を用いて暗号化して第3の数の秘密情報暗号文を生成する第2の生成部と、
前記第3の数の秘密情報暗号文に関する第1の署名及び前記第3の数の秘密情報暗号文を含む暗号データを公開する第1の公開部と
を備え、
各パーティ装置は、
前記第1の署名を用いて前記暗号データの正当性を検証する第1の検証部と、
前記正当性が検証された場合に、自装置が有する秘密鍵を用いて、前記第1の数から1を引いた数のパーティ装置から前記第2の数から1を引いた数のパーティ装置を選択する組合せの数である第5の数の復号鍵断片を生成し、該第5の数の復号鍵断片にそれぞれ対応する該第5の数の第2の署名を生成する第3の生成部と、
前記第5の数の復号鍵断片及び対応する第2の署名を公開する第2の公開部と
を備え、
前記暗号データ生成装置、前記第2の署名を生成したパーティ装置以外のパーティ装置、前記断片結合装置、又は、その他の装置は、
前記第5の数の復号鍵断片及び対応する前記第2の署名を用いて前記第5の数の復号鍵断片の正当性を検証する第2の検証部
を備え、
前記断片結合装置は、
前記第1の数のパーティ装置がそれぞれ公開した前記第5の数の復号鍵断片のうち、前記第3の数の秘密情報暗号文のいずれかに対応する前記第2の数の復号鍵断片を結合して復号鍵を生成し、該生成した復号鍵に対応する秘密情報暗号文を該生成した復号鍵で復号して前記中間文を生成する第4の生成部と、
前記第4の生成部により生成された前記中間文を公開する第3の公開部と
を備え、
各パーティ装置は、
自装置が前記復号権限を有する場合に、前記第3の公開部により公開された前記中間文を自装置が有する秘密鍵を用いて復号し、前記秘密情報を復元する復号部
をさらに備えることを特徴とする暗号処理システム。
【請求項2】
前記第1の数と第2の数は同じであり、前記第3の数及び第5の数は1であることを特徴とする請求項1に記載の暗号処理システム。
【請求項3】
前記第1の生成部は、前記第2の数の公開鍵を乗算し、乗算結果を第1乱数でべき乗することで前記合成鍵を生成し、
前記第2の生成部は、第2乱数を用いて前記第1の署名を生成し、
前記第1の公開部は、前記第1乱数の情報及び前記第2乱数の情報をさらに含めて前記暗号データを公開し、
前記第1の検証部は、前記第1乱数の情報及び前記第2乱数の情報をさらに用いて前記暗号データの正当性を検証し、
前記第4の生成部は、前記第2の数の復号鍵断片を乗算することによって前記復号鍵を生成することを特徴とする請求項1又は2に記載の暗号処理システム。
【請求項4】
前記第3の生成部は、第3乱数を用いて前記第2の署名を生成し、
前記第2の公開部は、前記第2の署名に前記第3乱数の情報を含めて公開し、
前記第2の検証部は、前記第3乱数の情報をさらに用いて前記第5の数の復号鍵断片の正当性を検証することを特徴とする請求項1、2又は3に記載の暗号処理システム。
【請求項5】
秘密情報を暗号化する暗号データ生成装置と、
公開鍵と秘密鍵の鍵ペアを有する第1の数のパーティ装置と、
前記第1の数のパーティ装置に分散された断片情報を収集して結合する断片結合装置とを有する暗号処理システムによる暗号処理方法において、
前記暗号データ生成装置が、
前記第1の数の公開鍵から鍵復元に必要な第2の数の公開鍵を選択して合成鍵を生成する処理を、前記第1の数の公開鍵から前記第2の数の公開鍵を選択する組合せの数である第3の数の回数行うことで前記第3の数の合成鍵を生成し、
前記第1の数のパーティ装置の中で前記秘密情報の復号権限を有する第4の数のパーティ装置の公開鍵を用いて前記秘密情報をそれぞれ暗号化して生成した該第4の数の秘密文から中間文を生成し、該中間文をさらに各合成鍵を用いて暗号化して第3の数の秘密情報暗号文を生成し、
前記第3の数の秘密情報暗号文に関する第1の署名及び前記第3の数の秘密情報暗号文を含む暗号データを公開し、
各パーティ装置が、
前記第1の署名を用いて前記暗号データの正当性を検証し、
前記正当性が検証された場合に、自装置が有する秘密鍵を用いて、前記第1の数から1を引いた数のパーティ装置から前記第2の数から1を引いた数のパーティ装置を選択する組合せの数である第5の数の復号鍵断片を生成し、該第5の数の復号鍵断片にそれぞれ対応する該第5の数の第2の署名を生成し、
前記第5の数の復号鍵断片及び対応する第2の署名を公開し、
前記暗号データ生成装置、前記第2の署名を生成したパーティ装置以外のパーティ装置、前記断片結合装置、又は、その他の装置が、
前記第5の数の復号鍵断片及び対応する前記第2の署名を用いて前記第5の数の復号鍵断片の正当性を検証し、
前記断片結合装置が、
前記第1の数のパーティ装置がそれぞれ公開した前記第5の数の復号鍵断片のうち、前記第3の数の秘密情報暗号文のいずれかに対応する前記第2の数の復号鍵断片を結合して復号鍵を生成し、該生成した復号鍵に対応する秘密情報暗号文を該生成した復号鍵で復号して前記中間文を生成し、
生成した前記中間文を公開し、
各パーティ装置が、
自装置が前記復号権限を有する場合に、公開された前記中間文を自装置が有する秘密鍵を用いて復号し、前記秘密情報を復元する
ことを特徴とする暗号処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号処理システム及び暗号処理方法に関する。
【背景技術】
【0002】
秘密情報を管理する技術として秘密情報を分散して管理する秘密分散技術がある。秘密分散技術において、例えば分散して管理するデータの量を減らしたい場合、カプセル化が行われる。図9は、カプセル化を説明するための図である。図9に示すように、カプセル化では、秘密情報は共通鍵により暗号化され、共通鍵が断片に分割されて管理される。復号時には、断片が収集されて共通鍵が復元され、元の秘密情報が復号される。
【0003】
なお、従来技術として、記憶されている秘密情報の漏洩及び送信される秘密情報の漏洩によるリスクを低減する技術がある。この技術では、個人情報サービスサーバが、秘密情報を複数の割符データに分割し、ストレージサーバに記憶させ、利用者アプリサーバからの要求を受け付けると、ストレージサーバから複数の割符データを取得して、秘密情報を復元する。そして、個人情報サービスサーバは、復元された秘密情報を暗号化し、通信経路の数に応じた複数の割符データに分割し、分割された複数の割符データを複数の通信経路でそれぞれ送信する。
【0004】
また、データ記憶部に記憶されている第1暗号化データを相互認証した他の装置に送信する際に、第1暗号化データを復号し、復号されたデータを送信先に対応した第2暗号化データに暗号化して送信することで、機密性の高いデータ送受信を可能にする技術がある。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2016-151797号公報
【文献】特開2004-48336号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図9に示したカプセル化には、共通鍵が不正に取得されると秘密情報が復元されるため、共通鍵を生成する信頼性の高い機関が必要であるという問題がある。
【0007】
本発明は、1つの側面では、鍵を分散して管理する場合に、共通鍵を生成する信頼性の高い機関を不要とすることを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、暗号処理システムは、秘密情報を暗号化する暗号データ生成装置と、公開鍵と秘密鍵の鍵ペアを有する第1の数のパーティ装置と、前記第1の数のパーティ装置に分散された断片情報を収集して結合する断片結合装置とを有する。前記暗号データ生成装置は、第1の生成部と、第2の生成部と、第1の公開部とを有する。前記第1の生成部は、前記第1の数の公開鍵から鍵復元に必要な第2の数の公開鍵を選択して合成鍵を生成する処理を、前記第1の数の公開鍵から前記第2の数の公開鍵を選択する組合せの数である第3の数の回数行うことで前記第3の数の合成鍵を生成する。前記第2の生成部は、前記第1の数のパーティ装置の中で前記秘密情報の復号権限を有する第4の数のパーティ装置の公開鍵を用いて前記秘密情報をそれぞれ暗号化して生成した該第4の数の秘密文から中間文を生成する。そして、前記第2の生成部は、前記中間文をさらに各合成鍵を用いて暗号化して第3の数の秘密情報暗号文を生成する。前記第1の公開部は、前記第3の数の秘密情報暗号文に関する第1の署名及び前記第3の数の秘密情報暗号文を含む暗号データを公開する。各パーティ装置は、第1の検証部と、第3の生成部と、第2の公開部とを有する。前記第1の検証部は、前記第1の署名を用いて前記暗号データの正当性を検証する。前記第3の生成部は、前記正当性が検証された場合に、自装置が有する秘密鍵を用いて、前記第1の数から1を引いた数のパーティ装置から前記第2の数から1を引いた数のパーティ装置を選択する組合せの数である第5の数の復号鍵断片を生成する。そして、前記第3の生成部は、前記第5の数の復号鍵断片にそれぞれ対応する該第5の数の第2の署名を生成する。前記第2の公開部は、前記第5の数の復号鍵断片及び対応する第2の署名を公開する。前記暗号データ生成装置、前記第2の署名を生成したパーティ装置以外のパーティ装置、前記断片結合装置、又は、その他の装置は、前記第5の数の復号鍵断片及び対応する前記第2の署名を用いて前記第5の数の復号鍵断片の正当性を検証する第2の検証部を有する。前記断片結合装置は、第4の生成部と、第3の公開部とを有する。前記第4の生成部は、前記第1の数のパーティ装置がそれぞれ公開した前記第5の数の復号鍵断片のうち、前記第3の数の秘密情報暗号文のいずれかに対応する前記第2の数の復号鍵断片を結合して復号鍵を生成する。そして、前記第4の生成部は、生成した復号鍵に対応する秘密情報暗号文を該生成した復号鍵で復号して前記中間文を生成する。第3の公開部は、前記第4の生成部により生成された前記中間文を公開する。各パーティ装置は、自装置が前記復号権限を有する場合に、前記第3の公開部により公開された前記中間文を自装置が有する秘密鍵を用いて復号し、前記秘密情報を復元する復号部をさらに有する。
【発明の効果】
【0009】
1つの側面では、本発明は、鍵を分散して管理する場合に、共通鍵を生成する信頼性の高い機関を不要とすることができる。
【図面の簡単な説明】
【0010】
図1図1は、実施例1に係る暗号処理システムによる暗号化及び復号化を説明するための図である。
図2図2は、実施例1に係る暗号処理システムの構成を示す図である。
図3図3は、暗号データ生成装置による処理のフローを示すフローチャートである。
図4図4は、パーティ装置による処理のフローを示すフローチャートである。
図5図5は、断片結合装置による処理のフローを示すフローチャートである。
図6図6は、実施例2に係るパーティ装置による処理のフローを示すフローチャートである。
図7図7は、実施例2に係る断片結合装置による処理のフローを示すフローチャートである。
図8図8は、実施例1及び2に係る暗号データ生成プログラムを実行するコンピュータのハードウェア構成を示す図である。
図9図9は、カプセル化を説明するための図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する暗号処理システム及び暗号処理方法の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例1】
【0012】
まず、実施例1に係る暗号処理システムによる暗号化及び復号化について説明する。図1は、実施例1に係る暗号処理システムによる暗号化及び復号化を説明するための図である。図1において、暗号データ生成装置は、秘密情報を暗号化する。n(nは正整数)台のパーティ装置は、それぞれ公開鍵と秘密鍵の鍵ペアを有する。n台のパーティ装置のうちu(1≦u≦n)台のパーティ装置が秘密情報を復元する権限を有する。
【0013】
例えば、暗号データ生成装置は、遺言書を作成する作成者が使用する装置であり、パーティ装置は、作成者以外の遺言書に関係するパーティが使用する装置である。n-1台のパーティ装置が相続人により使用され、1台のパーティ装置が弁護士により使用される。断片結合装置は、パーティ装置に分散された断片情報を収集して結合する。
【0014】
また、暗号データ生成装置、各パーティ装置及び断片結合装置は、ブロックチェーンのように、情報を公開し共有できるネットワーク(以下公開ネットワーク)に接続される。また、各パーティ装置が所有する公開鍵は公開ネットワークを通じて公開される。
【0015】
図1に示すように、暗号データ生成装置は、パーティ装置1、パーティ装置2、・・・、パーティ装置nがそれぞれ有する公開鍵1、公開鍵2、・・・、公開鍵nを公開ネットワークを通じて取得し、取得した公開鍵を乗算して合成鍵を生成する(1)。そして、暗号データ生成装置は、秘密情報を復元する権限を有するu台のパーティ装置の各公開鍵で秘密情報を暗号化してu個の中間文を生成する(2)。そして、暗号データ生成装置は、u個の中間文を例えば連結して、合成鍵で暗号化して秘密情報暗号文を生成し、秘密情報暗号文を公開ネットワークを通じて公開する(3)。
【0016】
また、パーティ装置i(i=1、2、・・・、n)は、秘密鍵iから復号鍵断片を生成し、公開ネットワークを通じて公開する(4)。そして、断片結合装置は、n個の復号鍵断片を取得し、取得したn個の復号鍵断片を乗算して復号鍵を生成し、生成した復号鍵を用いて、秘密鍵があれば復号可能な中間復号文を生成し、公開ネットワークを通じて公開する(5)。そして、秘密情報を復元する権限を有するパーティ装置iは、秘密鍵iを用いて中間復号文を復号し、秘密情報を復元する(6)。
【0017】
このように、暗号データ生成装置が、公開鍵を乗算して合成鍵を生成する。そして、暗号データ生成装置は、秘密情報を復号する権限のあるパーティ装置の公開鍵でそれぞれ暗号化した後、合成鍵で暗号化して秘密情報暗号文を生成し、秘密情報暗号文を公開する。そして、各パーティ装置が、秘密鍵を用いて復号鍵断片を生成して公開する。そして、断片結合装置が、復号鍵断片を乗算して復号鍵を生成し、復号鍵を用いて中間復号文を生成して公開する。そして、復号権限を有するパーティ装置が秘密鍵を用いて中間復号文を復号し、秘密情報を復元する。したがって、実施例1に係る暗号処理システムは、共通鍵を生成する信頼性の高い機関を不要とすることができる。
【0018】
次に、実施例1に係る暗号処理システムの構成について説明する。図2は、実施例1に係る暗号処理システムの構成を示す図である。図2に示すように、暗号処理システム1は、暗号データ生成装置2と、n台のパーティ装置3と、断片結合装置4とを有する。暗号データ生成装置2、n台のパーティ装置3及び断片結合装置4は、公開ネットワーク5に接続される。
【0019】
暗号データ生成装置2は、暗号データ生成者が秘密情報の暗号化に用いる装置である。暗号データ生成装置2は、公開ネットワーク通信部21と、暗号データ生成部22とを有する。公開ネットワーク通信部21は、公開ネットワーク5を通じて公開された情報を取得する。また、公開ネットワーク通信部21は、公開ネットワーク5を通じて情報を公開する。公開ネットワーク通信部21は、暗号データ送信部21aを有する。
【0020】
暗号データ送信部21aは、第1の公開部の一例であり、公開ネットワーク5を通じて公開された公開鍵を取得し、取得した公開鍵を暗号データ生成依頼とともに暗号データ生成部22に渡す。また、暗号データ送信部21aは、暗号データ生成部22から暗号データを受け取り、公開ネットワーク5を通じて公開する。
【0021】
暗号データ生成部22は、秘密情報の暗号化に用いる合成鍵を公開鍵を用いて生成し、復号権限を有するパーティ装置3の公開鍵と合成鍵とを用いて秘密情報を暗号化して秘密情報暗号文を生成する。そして、暗号データ生成部22は、秘密情報暗号文を含む暗号データを生成して暗号データ送信部21aに渡す。暗号データ生成部22は、合成鍵生成部22aと、暗号化部22bとを有する。
【0022】
合成鍵生成部22aは、第1の生成部の一例であり、全てのパーティ装置3の公開鍵を乗算する。また、合成鍵生成部22aは、乱数を生成する。そして、合成鍵生成部22aは、公開鍵の乗算結果を、生成した乱数でべき乗することで1つの合成鍵を生成する。乱数でべき乗する理由は、公開鍵から生成される合成鍵が常に同じになることを防ぐためである。なお、合成鍵生成部22aは、生成した合成鍵をハッシュ関数を用いて固定長の合成鍵に変換してもよい。
【0023】
暗号化部22bは、第2の生成部の一例であり、秘密情報の復号権限を有するu台のパーティ装置3が有する公開鍵をそれぞれ用いて秘密情報を暗号化して中間文をu個生成する。そして、暗号化部22bは、u個の中間文を連結して合成鍵により暗号化し、秘密情報暗号文を生成する。なお、暗号化部22bは、u個の中間文を連結することなく合成鍵によりそれぞれ暗号化し、u個の秘密情報暗号文を生成してもよい。
【0024】
また、暗号化部22bは、公開鍵を用いて正しく暗号化が行われたか否かを検証するための暗号文署名を生成する。そして、暗号化部22bは、秘密情報暗号文、暗号文署名、乱数情報を含む暗号データを生成し、暗号データ送信部21aに渡す。
【0025】
例えば、鍵ペアの生成について、巡回群Gとその生成元gが固定されており、Gとgを用いて鍵ペアが、秘密鍵sk∈Gと公開鍵pk=gskのように生成されるとする。この枠組みは楕円曲線暗号等で用いられる一般的な枠組みである。また、各パーティ装置iが所有している鍵ペアを(pki,ski)とし、pp(public parameter)=(G,g)とする。
【0026】
例えば、楕円曲線暗号を用いる場合には、pp=p||a||b||gx||gyである。ここで、p、a、bは、楕円曲線y2=x3+ax+b(mod p)を定める素数p及び整数a、bである。また、gx及びgyは、楕円曲線の点のなす巡回群の生成元gのx座標及びy座標である。また、||は連結(concatenation)を表す。
【0027】
また、異なる3つの暗号学的ハッシュ関数H1、H2、H3も公開ネットワークを通じて共有されるとする。これらのハッシュ関数は、例えばハッシュ関数の1つであるSHA256等を用いて、Hj(m)=SHA256(j||m)等であってよい。
【0028】
また、共通鍵暗号プロトコルも公開ネットワークを通じて1つ共有されているとし、鍵KによるメッセージMの暗号化及び暗号文Cの復号を、それぞれE(K,M)、D(K,C)と表す。共通鍵暗号プロトコルは、例えば共通鍵暗号の1つであるAES(Advanced Encryption Standard)と、その暗号利用モードであるCBC(Cipher Block Chaining)モードである。
【0029】
このとき、暗号化部22bは、以下のc1~c3、c、σを生成し、c1~c3、c、σを含む暗号データを生成し、暗号データ送信部21aに渡す。
【数1】
【0030】
ここで、t∈Gは、合成鍵生成部22aにより合成鍵を生成するために生成された乱数である。tではなくc1を公開する理由は、tを特定できないようにするためである。ρ∈Gは、暗号化部22bにより暗号文署名を生成するために生成された乱数である。また、u=2、すなわち復号権限を有するパーティ装置3の数を2とし、秘密情報がpk1、pk2でそれぞれ暗号化された2つの中間文が連結されたものがmである。c3は、秘密情報暗号文であり、c1及びc2は乱数情報であり、c4及びc5は、暗号文署名に関する情報である。
【0031】
なお、暗号化部22bは、例えば、ファイルから秘密情報を読み込んで暗号化する。また、読み込むファイル、復号権限を有するパーティ装置3は、例えば、暗号データ生成者によりキーボード、マウス等を使って入力される。
【0032】
パーティ装置3は、秘密情報に関係するパーティが使用する装置である。パーティ装置3は、公開ネットワーク通信部31と、暗号データ検証部32と、復号鍵断片生成部33と、秘密鍵記憶部34と、復号部35とを有する。
【0033】
公開ネットワーク通信部31は、公開ネットワーク5を通じて公開された情報を取得する。また、公開ネットワーク通信部31は、公開ネットワーク5を通じて情報を公開する。公開ネットワーク通信部31は、暗号データ取得部31aと、復号鍵断片送信部31bと、中間復号取得部31cとを有する。
【0034】
暗号データ取得部31aは、公開ネットワーク5を通じて公開された暗号データを取得し、暗号データ検証部32に渡して暗号データの検証を依頼する。
【0035】
復号鍵断片送信部31bは、第2の公開部の一例であり、暗号データ検証部32から暗号データの検証結果を受け取り、暗号データの正当性が検証された場合に、復号鍵断片の生成を復号鍵断片生成部33に要求する。そして、復号鍵断片送信部31bは、復号鍵断片生成部33が生成した断片データを受け取り、公開ネットワーク5を通じて公開する。
【0036】
中間復号取得部31cは、公開ネットワーク5を通じて公開された中間復号文を取得し、取得した中間復号文を復号要求とともに復号部35に渡す。
【0037】
暗号データ検証部32は、第1の検証部の一例であり、暗号データに含まれる暗号文署名に関する情報及び乱数情報を用いて暗号データの検証を行う。例えば、暗号データ検証部32は、式(4)のcについて、以下の式(6)が成立するか否かによって、暗号データの検証を行う。
【数2】
【0038】
式(6)において、
【数3】
であるので、式(6)は、公開されたc1~c3、c、σからcを計算し、計算したcが公開されたcと等しいか否かを判定することを表す。
【0039】
復号鍵断片生成部33は、第3の生成部の一例であり、自装置の秘密鍵と、暗号データに含まれる乱数情報を用いて復号鍵断片を生成する。また、復号鍵断片生成部33は、生成した復号鍵断片が、パーティ装置3により正しく生成されたものであるか否かを検証するための断片署名を乱数を用いて生成する。そして、復号鍵断片生成部33は、復号鍵断片と断片署名に関する情報を含む断片データを生成して復号鍵断片送信部31bに渡す。
【0040】
例えば、復号鍵断片生成部33は、断片署名に使用する乱数r∈Gを生成した後、以下のKi、di、siを生成して、断片データとして復号鍵断片送信部31bに渡す。Kiはパーティ装置iによって生成された復号鍵断片であり、di及びsiは断片署名に関する情報である。
【数4】
【0041】
秘密鍵記憶部34は、秘密鍵を記憶する。秘密鍵記憶部34は、例えばディスク装置上のファイルであり、復号鍵断片生成部33は、ファイルから秘密鍵を読み出して復号鍵断片を生成する。
【0042】
復号部35は、中間復号取得部31cから受け取った中間復号文を自装置の秘密鍵を用いて復号し、元の秘密情報を復元する。ただし、復号権限を有するパーティ装置3の復号部35だけが中間復号文を復号する。
【0043】
断片結合装置4は、復号鍵断片を収集して復号鍵を生成し、秘密情報暗号文を復号鍵を用いて復号して中間復号文を生成する。そして、断片結合装置4は、中間復号文を公開する。断片結合装置4は、公開ネットワーク通信部41と、復号鍵断片検証部42と、中間復号文生成部43とを有する。
【0044】
公開ネットワーク通信部41は、公開ネットワーク5を通じて公開された情報を取得する。また、公開ネットワーク通信部41は、公開ネットワーク5を通じて情報を公開する。公開ネットワーク通信部41は、復号鍵断片取得部41aと、検証結果送信部41bと、中間復号文送信部41cとを有する。
【0045】
復号鍵断片取得部41aは、公開ネットワーク5を通じて公開された断片データを取得し、復号鍵断片検証部42に渡して復号鍵断片の検証を依頼する。
【0046】
検証結果送信部41bは、復号鍵断片検証部42から復号鍵断片の検証結果を受け取り、検証の結果が正しくない復号鍵断片について情報を公開ネットワーク5を通じて公開する。
【0047】
中間復号文送信部41cは、第3の公開部の一例であり、中間復号文生成部43により生成された中間復号文を受け取って、公開ネットワーク5を通じて公開する。
【0048】
復号鍵断片検証部42は、第2の検証部の一例であり、パーティ装置3の復号鍵断片が当該パーティ装置3の秘密鍵によって生成されたものであるか否かを断片データに含まれる断片署名を用いて全ての復号鍵断片について検証する。例えば、復号鍵断片検証部42は、式(10)のdiについて、以下の式(12)が成立するか否かによって、復号鍵断片の検証を行う。
【数5】
【0049】
式(12)において、
【数6】
であるので、式(12)は、公開されたc1~c3、c、σ、Ki、di、siからdiを計算し、計算したdiが公開されたdiと等しいか否かを判定することを表す。
【0050】
そして、復号鍵断片検証部42は、検証結果を検証結果送信部41bに渡す。また、全ての復号鍵断片が正しいことが検証すると、復号鍵断片検証部42は、中間復号文の生成を中間復号文生成部43に依頼する。なお、復号鍵断片検証部42は、暗号データ生成装置2及び断片署名を生成したパーティ装置3以外のパーティ装置3を含めて断片結合装置4以外の装置が備えてもよい。
【0051】
中間復号文生成部43は、第4の生成部の一例であり、全ての復号鍵断片を乗算することにより復号鍵を生成し、生成した復号鍵を用いて秘密情報暗号文を復号して中間復号文を生成する。そして、中間復号文生成部43は、生成した中間復号文を中間復号文送信部41cに渡す。例えば、中間復号文生成部43は、Kiとc3を用いて式(15)の計算を行うことで中間復号文を生成する。
【数7】
【0052】
次に、暗号データ生成装置2による処理のフローについて説明する。図3は、暗号データ生成装置2による処理のフローを示すフローチャートである。図3に示すように、暗号データ生成装置2は、パーティ装置3が公開した公開鍵を全て取得する(ステップS1)。そして、暗号データ生成装置2は、暗号化用乱数及び署名用乱数を生成する(ステップS2)。ここで、暗号化用乱数は、合成鍵の生成に用いられる乱数であり、署名用乱数は、公開鍵を用いて秘密情報が正しく暗号化されたことを検証するための暗号文署名に用いられる乱数である。
【0053】
そして、暗号データ生成装置2は、公開鍵と暗号化用乱数を用いて合成鍵を生成し、復号権限のあるパーティ装置3の公開鍵と合成鍵を用いて秘密情報暗号文を生成する(ステップS3)。そして、暗号データ生成装置2は、署名用乱数を用いて暗号文署名を生成し、秘密情報暗号文、暗号文署名、乱数情報を含む暗号データを生成する(ステップS4)。そして、暗号データ生成装置2は、暗号データを公開ネットワーク5を通じて公開する(ステップS5)。
【0054】
このように、暗号データ生成装置2が公開ネットワーク5を通じて暗号データを公開するので、断片結合装置4は、暗号データを用いて中間復号文を生成することができる。
【0055】
次に、パーティ装置3による処理のフローについて説明する。図4は、パーティ装置3による処理のフローを示すフローチャートである。図4に示すように、パーティ装置3は、暗号データの公開まで待機し(ステップS11)、暗号データが公開されると、暗号データを取得する(ステップS12)。
【0056】
そして、パーティ装置3は、暗号データ検証部32により、暗号データを検証し(ステップS13)、取得した暗号データは正しい暗号データか否かを判定する(ステップS14)。そして、取得した暗号データが正しい暗号データである場合には、パーティ装置3は、復号鍵断片生成部33により、断片データを生成し(ステップS15)、断片データを公開ネットワーク5を通じて公開する(ステップS16)。
【0057】
そして、パーティ装置3は、中間復号文の公開まで待機し(ステップS17)、中間復号文が公開されると、中間復号文を取得し(ステップS18)、復号権限がある場合には、復号部35により、中間復号文から秘密情報を復号する(ステップS19)。
【0058】
一方、ステップS14において、取得した暗号データが正しい暗号データでない場合には、パーティ装置3は、検証結果を公開ネットワーク5を通じて公開する(ステップS20)。
【0059】
このように、パーティ装置3が断片データを公開ネットワーク5を通じて公開するので、断片結合装置4は、断片データを用いて中間復号文を生成することができる。
【0060】
次に、断片結合装置4による処理のフローについて説明する。図5は、断片結合装置4による処理のフローを示すフローチャートである。図5に示すように、断片結合装置4は、断片データの公開まで待機し(ステップS31)、断片データが公開されると、断片データを取得する(ステップS32)。
【0061】
そして、断片結合装置4は、復号鍵断片検証部42により、復号鍵断片を検証し(ステップS33)、取得した断片データは正しい断片データか否かを判定する(ステップS34)。そして、取得した断片データが正しい断片データである場合には、断片結合装置4は、n個の断片データが揃ったか否かを判定し(ステップS35)、揃っていない場合には、ステップS31に戻る。
【0062】
一方、n個の断片データが揃った場合には、断片結合装置4は、中間復号文生成部43により、n個の復号鍵断片を用いて復号鍵を生成し、復号鍵と秘密情報暗号文を用いて中間復号文を生成する(ステップS36)。そして、断片結合装置4は、中間復号文を公開ネットワーク5を通じて公開する(ステップS37)。
【0063】
一方、ステップS34において、取得した断片データが正しい断片データでない場合には、断片結合装置4は、検証結果を公開ネットワーク5を通じて公開する(ステップS38)。
【0064】
このように、断片結合装置4が中間復号文を公開ネットワーク5を通じて公開するので、復号権限を有するパーティ装置3は、中間復号文を復号して秘密情報を復元することができる。
【0065】
上述してきたように、実施例1では、暗号データ生成装置2は、n台のパーティ装置3の公開鍵を用いて合成鍵を生成し、復号権限を有するu台のパーティ装置3の公開鍵と合成鍵を用いて秘密情報暗号文を生成する。そして、暗号データ生成装置2は、暗号文署名を生成し、秘密情報暗号文及び暗号文署名を含む暗号データを公開する。各パーティ装置3は、暗号文署名を用いて暗号データの正当性を検証し、暗号データの正当性を検証すると、秘密鍵を用いて復号鍵断片を生成し、復号鍵断片に関する断片署名を生成する。そして、パーティ装置3は、復号鍵断片と断片署名とを含む断片データを公開する。断片結合装置4は、断片署名を用いて復号鍵断片の正当性を検証し、復号鍵断片の正当性を検証すると、復号鍵断片を結合して復号鍵を生成し、生成した復号鍵を用いて中間復号文を生成する。そして、断片結合装置4は、中間復号文を公開する。復号権限を有するパーティ装置3は、自装置の秘密鍵を用いて中間復号文を復号して秘密情報を復元する。
【0066】
したがって、暗号処理システム1は、共通鍵を生成する信頼性の高い機関を不要とすることができる。また、復号権限を有するパーティ装置3だけが秘密情報を復元することができるので、暗号処理システム1は、秘密情報に対するアクセス制御を行うことができる。また、暗号処理システム1は、公開鍵と秘密鍵の鍵ペアを用いるので、パーティ装置3は秘密鍵だけを管理すればよく、パーティ装置3が管理する秘密データの量を減らすことができる。
【0067】
また、実施例1では、暗号データ生成装置2は、n台のパーティ装置3の公開鍵を乗算し、乗算結果を第1の乱数でべき乗して合成鍵を生成する。また、暗号データ生成装置2は、第2の乱数を用いて暗号文署名を生成し、暗号データに2つの乱数に関する情報を含めて公開する。したがって、暗号データ生成装置2は、合成鍵及び暗号文署名をランダムなものとすることができる。
【0068】
また、実施例1では、パーティ装置3は、第3の乱数を用いて断片署名を生成し、断片署名に第3の乱数の情報を含めて公開するので、断片署名をランダムなものとすることができる。
【0069】
また、実施例1では、断片結合装置4は、復号鍵断片を乗算することで復号鍵を生成するので、復号鍵を簡単に生成することができる。
【実施例2】
【0070】
ところで、上記実施例1では、n台のパーティ装置3の全ての復号鍵断片を用いて復号鍵を生成する場合について説明したが、暗号処理システム1は、k(1≦k<n)台のパーティ装置3の復号鍵断片を用いて復号鍵を生成してもよい。すなわち、暗号処理システム1は、(k,n)閾値法に基づいて復号鍵を生成してもよい。そこで、実施例2では、k台のパーティ装置3の復号鍵断片を用いて復号鍵を生成する暗号処理システム1について説明する。なお、ここでは説明の便宜上、n=3、k=2、u=2の場合について説明する。また、実施例1と同じ機能部については説明を省略する。
【0071】
暗号データ生成装置2の合成鍵生成部22aは、tの代わりに乱数t12、t23、t13∈Gを生成する。また、暗号化部22bは、ρの代わりにρ12、ρ23、ρ13∈Gを生成する。ここで、添え字のp、qは、それぞれ復号鍵断片を収集すべきパーティ装置3の番号を示す。例えば、t12は、パーティ装置1とパーティ装置2から復号鍵断片を収集する場合に合成鍵の生成に用いられる乱数である。
【0072】
暗号データ生成装置2の暗号化部22bは、以下のc1~c3、c、σを生成する。
【数8】
【0073】
そして、暗号化部22bは、上記の添え字の12を23と13に変更してc1~c3、c、σを含む暗号データを3セット生成する。なお、添え字が23の場合には、c3及びcの計算に用いられる公開鍵はpk2及びpk3であり、添え字が1,3の場合には、c3及びcの計算に用いられる公開鍵はpk1及びpk3である。また、暗号データには添え字が付加される。また、一般的に、n台のパーティ装置3のうち、k台のパーティ装置3の復号鍵断片を用いて復号鍵を生成する場合には、nkの数の暗号データが暗号化部22bにより生成される。
【0074】
パーティ装置3の暗号データ検証部32は、自装置の番号が添え字に含まれる暗号データを検証する。なお、暗号データ検証部32は、添え字に関係なく暗号データを検証してもよい。例えば、pk1及びpk2が用いられた暗号データをパーティ装置3が検証してもよい。
【0075】
パーティ装置3の復号鍵断片生成部33は、断片署名に使用する乱数rpq∈Gを生成した後、以下のKi、di、siを含む断片データを生成する。
【数9】
【0076】
ただし、復号鍵断片生成部33は、自装置の番号が添え字に含まれる暗号データに対してのみ断片データを生成する。すなわち、各パーティ装置3は、それぞれ2つの断片データを生成する。例えば、パーティ装置1の復号鍵断片生成部33は、添え字12と13の暗号データに対してそれぞれ断片データを生成する。一般的に、自装置の番号以外の番号の数はn-1であり添え字における自装置の番号以外の桁数はk-1であるので、自装置の番号が添え字に含まれる暗号データの数は、n-1k-1である。
【0077】
断片結合装置4の中間復号文生成部43は、3つのパーティ装置3が公開した復号鍵断片のうち2つのみを用いることによって、中間復号文を生成する。例えば、パーティ装置2及びパーティ装置3が生成した復号鍵断片から中間復号文を生成する場合には、中間復号文生成部43は、パーティ装置2及びパーティ装置3が生成した2つの断片データのうち、添え字が23の断片データを用いて中間復号文を生成する。
【0078】
次に、実施例2に係るパーティ装置3による処理のフローについて説明する。図6は、実施例2に係るパーティ装置3による処理のフローを示すフローチャートである。図6に示すように、実施例2に係るパーティ装置3は、暗号データの公開まで待機し(ステップS41)、暗号データが公開されると、暗号データを取得する(ステップS42)。
【0079】
そして、実施例2に係るパーティ装置3は、暗号データ検証部32により、暗号データを検証し(ステップS43)、取得した暗号データは正しい暗号データか否かを判定する(ステップS44)。そして、取得した暗号データが正しい暗号データである場合には、実施例2に係るパーティ装置3は、暗号データの添え字に自身の番号が含まれているか否かを判定する(ステップS45)。
【0080】
そして、暗号データの添え字に自身の番号が含まれていない場合には、実施例2に係るパーティ装置3は、処理を終了する。一方、暗号データの添え字に自身の番号が含まれている場合には、実施例2に係るパーティ装置3は、復号鍵断片生成部33により、断片データを生成し(ステップS46)、断片データを公開ネットワーク5を通じて公開する(ステップS47)。
【0081】
そして、実施例2に係るパーティ装置3は、中間復号文の公開まで待機し(ステップS48)、中間復号文が公開されると、中間復号文を取得する(ステップS49)。そして、実施例2に係るパーティ装置3は、復号権限がある場合には、復号部35により、中間復号文から秘密情報を復号する(ステップS50)。
【0082】
一方、ステップS44において、取得した暗号データが正しい暗号データでない場合には、実施例2に係るパーティ装置3は、検証結果を公開ネットワーク5を通じて公開する(ステップS51)。
【0083】
このように、実施例2に係るパーティ装置3が暗号データの添え字に自身の番号が含まれている場合に断片データを生成するので、断片結合装置4は、断片データを用いて中間復号文を生成することができる。
【0084】
次に、実施例2に係る断片結合装置4による処理のフローについて説明する。図7は、実施例2に係る断片結合装置4による処理のフローを示すフローチャートである。図7に示すように、実施例2に係る断片結合装置4は、断片データの公開まで待機し(ステップS61)、断片データが公開されると、断片データを取得する(ステップS62)。
【0085】
そして、実施例2に係る断片結合装置4は、復号鍵断片検証部42により、復号鍵断片を検証し(ステップS63)、取得した断片データは正しい断片データか否かを判定する(ステップS64)。そして、取得した断片データが正しい断片データである場合には、断片結合装置4は、添え字に対応したパーティ装置3の断片データが揃ったか否かを判定し(ステップS65)、揃っていない場合には、ステップS61に戻る。
【0086】
一方、添え字に対応したパーティ装置3の断片データが揃った場合には、実施例2に係る断片結合装置4は、中間復号文生成部43により、揃った復号鍵断片を用いて復号鍵を生成し、復号鍵と秘密情報暗号文を用いて中間復号文を生成する(ステップS66)。そして、実施例2に係る断片結合装置4は、中間復号文を公開ネットワーク5を通じて公開する(ステップS67)。
【0087】
一方、ステップS64において、取得した断片データが正しい断片データでない場合には、実施例2に係る断片結合装置4は、検証結果を公開ネットワーク5を通じて公開する(ステップS68)。
【0088】
このように、実施例2に係る断片結合装置4が添え字に対応したパーティ装置3の断片データが揃うと中間復号文を生成するので、復号権限を有するパーティ装置3は、中間復号文を復号して秘密情報を復元することができる。
【0089】
上述してきたように、実施例2では、合成鍵生成部22aはk台のパーティ装置3の公開鍵を用いてnkの数の合成鍵を生成し、暗号化部22bはnkの数の合成鍵を用いてnkの数の暗号データをk台のパーティ装置3を表す添え字を付加して生成する。そして、復号鍵断片生成部33は、自装置の秘密鍵を用いてN-1k-1の数の断片データを添え字を付加して生成する。そして、中間復号文生成部43は、1つの添え字に対応するk個の断片データから復号鍵を生成し、生成した復号鍵を用いて中間復号文を生成する。したがって、暗号処理システム1は、k個の復号鍵断片を用いて秘密情報を復元することができる。
【0090】
なお、実施例1及び2では、暗号データ生成装置2、パーティ装置3及び断片結合装置4について説明したが、暗号データ生成装置2、パーティ装置3及び断片結合装置4が有する構成をソフトウェアによって実現することで、同様の機能を有する暗号データ生成プログラム、パーティプログラム及び断片結合プログラムをそれぞれ得ることができる。そこで、暗号データ生成プログラムを実行するコンピュータについて説明する。パーティプログラム及び断片結合プログラムは、同様のコンピュータにより実行される。
【0091】
図8は、実施例1及び2に係る暗号データ生成プログラムを実行するコンピュータのハードウェア構成を示す図である。図8に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
【0092】
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
【0093】
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
【0094】
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
【0095】
そして、コンピュータ50において実行される暗号データ生成プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、暗号データ生成プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた暗号データ生成プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
【符号の説明】
【0096】
1 暗号処理システム
2 暗号データ生成装置
3 パーティ装置
4 断片結合装置
5 公開ネットワーク
21 公開ネットワーク通信部
21a 暗号データ送信部
22 暗号データ生成部
22a 合成鍵生成部
22b 暗号化部
31 公開ネットワーク通信部
31a 暗号データ取得部
31b 復号鍵断片送信部
31c 中間復号取得部
32 暗号データ検証部
33 復号鍵断片生成部
34 秘密鍵記憶部
35 復号部
41 公開ネットワーク通信部
41a 復号鍵断片取得部
41b 検証結果送信部
41c 中間復号文送信部
42 復号鍵断片検証部
43 中間復号文生成部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
図1
図2
図3
図4
図5
図6
図7
図8
図9