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

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

▶ 株式会社東芝の特許一覧 ▶ 東芝電機サービス株式会社の特許一覧

<>
  • 特許-情報処理システム 図1
  • 特許-情報処理システム 図2
  • 特許-情報処理システム 図3
  • 特許-情報処理システム 図4
  • 特許-情報処理システム 図5
  • 特許-情報処理システム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-04
(45)【発行日】2022-11-14
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20221107BHJP
   G06F 21/44 20130101ALI20221107BHJP
   G06F 21/62 20130101ALI20221107BHJP
   H04L 9/14 20060101ALI20221107BHJP
【FI】
H04L9/08 A
G06F21/44
G06F21/62 318
H04L9/14
【請求項の数】 7
(21)【出願番号】P 2018173217
(22)【出願日】2018-09-18
(65)【公開番号】P2020048008
(43)【公開日】2020-03-26
【審査請求日】2021-09-03
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】三澤 裕人
【審査官】中里 裕正
(56)【参考文献】
【文献】米国特許出願公開第2005/0240591(US,A1)
【文献】特開2017-091330(JP,A)
【文献】国際公開第2012/172588(WO,A1)
【文献】特開2007-241803(JP,A)
【文献】特開2010-198349(JP,A)
【文献】特開2010-231404(JP,A)
【文献】特開2007-235348(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/14
G06F 21/62
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
N個の部分情報のうちの少なくとも異なるk個の部分情報から秘密情報を復元可能な前記N個の部分情報に、前記秘密情報を分割する秘密分散法を利用して、前記秘密情報から生成した前記N個の部分情報を分割して保持するN個の情報処理装置(但し、kは2以上の整数、且つ、N>k)であって、
前記N個の部分情報のうちの1つの部分情報を記憶する部分情報記憶部と、
前記N個の部分情報のうちの、他の情報処理装置が保持する少なくとも(k-1)個の部分情報を取得する取得部と、
前記取得部が取得した前記(k-1)個の部分情報と、前記1つの部分情報とに基づいて、前記秘密情報を復元する情報復元部と、
前記情報復元部が復元した前記秘密情報に基づいて、セキュリティに関する所定の処理を実行する情報処理部と、
を備えるN個の情報処理装置と、
前記N個の情報処理装置のうちのいずれかに、前記所定の処理の実行を依頼する制御装置と、
を備え、
前記N個の情報処理装置のうちの少なくとも1つの情報処理装置は、前記秘密分散法を利用して、前記秘密情報から前記N個の部分情報を生成し、生成した前記N個の部分情報のうちの前記1つの部分情報を部分情報記憶部に記憶させ、前記N個の部分情報のうちの前記1つの部分情報以外の(N-1)個の部分情報を前記制御装置に出力する部分情報生成部を備え、
前記制御装置は、前記部分情報生成部が出力した前記(N-1)個の部分情報のそれぞれを、前記(N-1)個の部分情報を出力した前記1つの情報処理装置以外の情報処理装置のそれぞれが備える前記部分情報記憶部に記憶させ、
前記制御装置は、新たな前記情報処理装置の追加又は入れ替えが行われた場合に、前記N個の情報処理装置のうちの少なくとも1つの情報処理装置に対して、前記新たな情報処理装置に対する部分情報を生成させる再構築依頼を送信し、
前記再構築依頼を受信した前記情報処理装置が備える前記部分情報生成部は、前記情報復元部が復元した前記秘密情報と、前記部分情報記憶部が記憶する前記1つの部分情報及び前記取得部が取得した前記(k-1)個の部分情報とから、前記秘密分散法を利用して、前記新たな情報処理装置に対する部分情報を生成し、生成した前記新たな情報処理装置に対する部分情報を前記制御装置に出力し、
前記制御装置は、前記部分情報生成部が出力した前記部分情報を、前記新たな情報処理装置が備える前記部分情報記憶部に記憶させる
情報処理システム。
【請求項2】
前記制御装置は、前記N個の情報処理装置のうちから、乱数に基づいて選択された前記情報処理装置に、前記所定の処理の実行を依頼する
請求項に記載の情報処理システム。
【請求項3】
前記制御装置は、前記N個の情報処理装置のうちから、前記N個の情報処理装置の間で前記所定の処理による処理負荷が分散されるように選択された前記情報処理装置に、前記所定の処理の実行を依頼する
請求項1または請求項2に記載の情報処理システム。
【請求項4】
前記取得部は、前記情報処理装置のなりすましを検出する場合に、前記N個の部分情報のうちの、他の情報処理装置が保持する(N-1)個の部分情報を取得し、
前記N個の情報処理装置のうちの少なくとも1つの情報処理装置は、
前記制御装置からのなりすまし検出依頼に応じて、前記取得部が取得した前記(N-1)個の部分情報及び前記部分情報記憶部が記憶する前記1つの部分情報からk個の部分情報を選択した各組合せから、前記秘密分散法を利用して復元した全ての前記秘密情報が一致するか否かに応じて、前記情報処理装置のなりすましを検出するなりすまし検出部を備える
請求項1から請求項のいずれか一項に記載の情報処理システム。
【請求項5】
前記秘密分散法が、シャミアの秘密分散法である請求項1から請求項のいずれか一項に記載の情報処理システム。
【請求項6】
N個の部分情報のうちの少なくとも異なるk個の部分情報から秘密情報を復元可能な前記N個の部分情報に、前記秘密情報を分割する秘密分散法を利用して、前記秘密情報から生成した前記N個の部分情報を分割して保持するN個の情報処理装置(但し、kは2以上の整数、且つ、N>k)であって、
前記N個の部分情報のうちの1つの部分情報を記憶する部分情報記憶部と、
前記N個の部分情報のうちの、他の情報処理装置が保持する少なくとも(k-1)個の部分情報を取得する取得部と、
前記取得部が取得した前記(k-1)個の部分情報と、前記1つの部分情報とに基づいて、前記秘密情報を復元する情報復元部と、
前記情報復元部が復元した前記秘密情報に基づいて、セキュリティに関する所定の処理を実行する情報処理部と、
を備えるN個の情報処理装置と、
前記N個の情報処理装置のうちのいずれかに、前記所定の処理の実行を依頼する制御装置と、
を備え、
前記取得部は、前記情報処理装置のなりすましを検出する場合に、前記N個の部分情報のうちの、他の情報処理装置が保持する(N-1)個の部分情報を取得し、
前記N個の情報処理装置のうちの少なくとも1つの情報処理装置は、
前記制御装置からのなりすまし検出依頼に応じて、前記取得部が取得した前記(N-1)個の部分情報及び前記部分情報記憶部が記憶する前記1つの部分情報からk個の部分情報を選択した各組合せから、前記秘密分散法を利用して復元した全ての前記秘密情報が一致するか否かに応じて、前記情報処理装置のなりすましを検出するなりすまし検出部を備える
情報処理システム。
【請求項7】
前記N個の情報処理装置のうちの少なくとも1つの情報処理装置は、前記秘密分散法を利用して、前記秘密情報から前記N個の部分情報を生成し、生成した前記N個の部分情報のうちの前記1つの部分情報を部分情報記憶部に記憶させ、前記N個の部分情報のうちの前記1つの部分情報以外の(N-1)個の部分情報を前記制御装置に出力する部分情報生成部を備え、
前記制御装置は、前記部分情報生成部が出力した前記(N-1)個の部分情報のそれぞれを、前記(N-1)個の部分情報を出力した前記1つの情報処理装置以外の情報処理装置のそれぞれが備える前記部分情報記憶部に記憶させる
請求項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理システム関する。
【背景技術】
【0002】
近年、複数のHSM(Hardware Security Module)を備え、HSMを利用して、例えば、データ秘匿、電子署名、機器認証などの情報処理を行う情報処理システムが知られている。このような従来の情報処理システムでは、例えば、処理負荷の軽減及び可用性の向上のために、複数のHSMを備え、複数のHSMには、同一の暗号鍵などの秘密情報を保管していた。しかしながら、従来の情報処理システムでは、例えば、複数のHSMのうちの1つから秘密情報が漏洩した場合に、システム全体のセキュリティが脅かされる可能性があった。
【先行技術文献】
【特許文献】
【0003】
【文献】特表2016-518648号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、可用性を向上させつつ、セキュリティを向上させることができる情報処理システム提供することである。
【課題を解決するための手段】
【0005】
実施形態の情報処理システムは、N個の情報処理装置と、制御装置とを持つ。N個の情報処理装置は、N個の部分情報のうちの少なくとも異なるk個の部分情報から秘密情報を復元可能な前記N個の部分情報に、前記秘密情報を分割する秘密分散法を利用して、前記秘密情報から生成した前記N個の部分情報を分割して保持するN個の情報処理装置(但し、kは2以上の整数、且つ、N>k)であって、部分情報記憶部と、取得部と、情報復元部と、情報処理部とを持つ。部分情報記憶部は、前記N個の部分情報のうちの1つの部分情報を記憶する。取得部は、前記N個の部分情報のうちの、他の情報処理装置が保持する少なくとも(k-1)個の部分情報を取得する。情報復元部は、前記取得部が取得した前記(k-1)個の部分情報と、前記1つの部分情報とに基づいて、前記秘密情報を復元する。情報処理部は、前記情報復元部が復元した前記秘密情報に基づいて、セキュリティに関する所定の処理を実行する。制御装置は、前記N個の情報処理装置のうちのいずれかに、前記所定の処理の実行を依頼する。前記N個の情報処理装置のうちの少なくとも1つの情報処理装置は、前記秘密分散法を利用して、前記秘密情報から前記N個の部分情報を生成し、生成した前記N個の部分情報のうちの前記1つの部分情報を部分情報記憶部に記憶させ、前記N個の部分情報のうちの前記1つの部分情報以外の(N-1)個の部分情報を前記制御装置に出力する部分情報生成部を備える。前記制御装置は、前記部分情報生成部が出力した前記(N-1)個の部分情報のそれぞれを、前記(N-1)個の部分情報を出力した前記1つの情報処理装置以外の情報処理装置のそれぞれが備える前記部分情報記憶部に記憶させる。前記制御装置は、新たな前記情報処理装置の追加又は入れ替えが行われた場合に、前記N個の情報処理装置のうちの少なくとも1つの情報処理装置に対して、前記新たな情報処理装置に対する部分情報を生成させる再構築依頼を送信する。前記再構築依頼を受信した前記情報処理装置が備える前記部分情報生成部は、前記情報復元部が復元した前記秘密情報と、前記部分情報記憶部が記憶する前記1つの部分情報及び前記取得部が取得した前記(k-1)個の部分情報とから、前記秘密分散法を利用して、前記新たな情報処理装置に対する部分情報を生成し、生成した前記新たな情報処理装置に対する部分情報を前記制御装置に出力する。前記制御装置は、前記部分情報生成部が出力した前記部分情報を、前記新たな情報処理装置が備える前記部分情報記憶部に記憶させる。
【図面の簡単な説明】
【0006】
図1】実施形態の情報処理システムの一例を示すブロック図。
図2】実施形態の秘密分散法の一例を説明する図。
図3】実施形態の情報処理システムの鍵生成処理の一例を示す図。
図4】実施形態の情報処理システムの暗号演算処理の一例を示す図。
図5】実施形態の情報処理システムのHSM故障時の復旧処理の一例を示す図。
図6】実施形態の情報処理システムのHSMのなりすまし検出処理の一例を示す図。
【発明を実施するための形態】
【0007】
以下、実施形態の情報処理システム、図面を参照して説明する。
【0008】
図1は、実施形態の情報処理システム1の一例を示すブロック図である。
図1に示すように、情報処理システム1は、ホストサーバ20と、HSMコントローラ30と、ルータ40と、HSM(10-1、10-2、10-3、・・・)とを備える。
【0009】
なお、本実施形態において、HSM10-1と、HSM10-2と、HSM10-3と、・・・のそれぞれは、同一の構成であり、単に情報処理システム1が備えるHSMを示す場合、又は、区別しない場合には、HSM10として説明する。
また、本実施形態では、情報処理システム1は、N個(例えば、3個)のHSM10を備えるものとして説明する。N個のHSM10のそれぞれは、例えば、暗号鍵などの秘密情報を復元するための異なる部分情報を保持している。ここで、部分情報は、暗号鍵などの秘密情報から(k,N)しきい値法を利用して生成された情報である。なお、(k,N)しきい値法の詳細については後述する。
【0010】
ホストサーバ20は、各種の処理を実行するサーバ装置であり、HSM10を利用して、セキュリティに関する所定の処理(例えば、暗号化処理、復号処理、署名生成、認証処理などの暗号演算処理)の実行を指示する。
【0011】
HSMコントローラ30(制御装置の一例)は、ホストサーバ20とN個(複数)のHSM10の間に配置され、N個のHSM10がホストサーバ20から仮想的に1台に見えるように、HSM10を制御する。HSMコントローラ30は、例えば、ホストサーバ20によって指示された所定の処理を実行させるHSM10を選択し、当該所定の処理をHSM10に実行させる。すなわち、HSMコントローラ30は、N個のHSM10のうちのいずれかに、所定の処理の実行を依頼する。
【0012】
また、HSMコントローラ30は、N個のHSM10のうちから、乱数に基づいて選択されたHSM10に、所定の処理の実行を依頼する。すなわち、HSMコントローラ30は、N個のHSM10のうちから、N個のHSM10の間で所定の処理による処理負荷が分散されるように選択されたHSM10に、所定の処理の実行を依頼する。
【0013】
また、HSMコントローラ30は、HSM10の鍵生成及び部分情報の分散処理、HSM10のなりすまし検出処理などの制御を行う。例えば、HSMコントローラ30は、新たなHSM10の追加又は入れ替えが行われた場合に、N個のHSM10のうちの少なくとも1つのHSM10に対して、新たなHSM10に対する部分情報を生成させる再構築依頼を送信する。そして、HSMコントローラ30は、再構築依頼を送信したHSM10が出力された部分情報を、新たなHSM10に送信して、新たなHSM10が備える部分情報記憶部121に記憶させる。
また、HSMコントローラ30は、通信部31と、制御部32と、記憶部33と、乱数生成部34とを備える。
【0014】
通信部31は、例えば、LAN(Local Area Network)などのネットワークを介して、ホストサーバ20、及び、HSM10との間の通信を行う。通信部31は、ルータ40を介して、N個のHSM10との間の通信を行う。
【0015】
制御部32は、例えば、CPU(Central Processing Unit)などを含むプロセッサであり、HSMコントローラ30を統括的に制御する。制御部32は、例えば、HSM10の選択処理、HSM10の鍵生成及び部分情報の分散処理、HSM10のなりすまし検出処理、ホストサーバ20からの指示に基づく暗号演算処理などの制御を行う。
【0016】
記憶部33は、HSMコントローラ30の各種処理において利用される各種情報を記憶する。記憶部33は、例えば、情報処理システム1が備えるHSM10の管理情報(HSM10の識別情報、HSM10の投入タスク情報など)や、ホストサーバ20又はHSM10との間の通信データ、等を記憶する。
乱数生成部34は、乱数を生成する。乱数生成部34が生成した乱数は、例えば、制御部32によるHSM10の選択処理に利用される。
【0017】
ルータ40は、HSMコントローラ30とN個のHSM10との間に配置され、例えば、N個のHSM10が接続されているネットワーク(例えば、LAN)と、HSMコントローラ30が接続されているネットワークとの間のデータを中継する。
【0018】
HSM10(情報処理装置の一例)は、秘密分散法を利用して、暗号鍵などの秘密情報から生成したN個の部分情報を分割して保持する。ここで、秘密分散法とは、N個の部分情報のうちの少なくとも異なるk個の部分情報から秘密情報を復元可能なN個の部分情報に、当該秘密情報を分割する(k,N)しきい値法のことである。但し、kは、2以上の整数であり、Nは、kより大きい(N>k)。本実施形態では、(k,N)しきい値法の一例として、シャミア(Shamir)の秘密分散法について説明する。
【0019】
シャミアの秘密分散法では、(k-1)次の多項式f(x)の定数項を秘密情報Sとし、多項式f(x)の線上の各点の座標(x,f(x))が部分情報となる。(k-1)次の多項式では、線上のk個の点の座標が判明すれば、多項式補間により、多項式f(x)を一意に決定することができるため、シャミアの秘密分散法では、少なくともk個以上の部分情報から秘密情報Sを復元することが可能である。
ここで、図2を参照して、シャミアの秘密分散法の具体例について説明する。
【0020】
図2は、本実施形態の秘密分散法の一例を説明する図である。
図2に示す例では、kが“2”(k=2)であり、(k-1)次の多項式が1次関数である場合の一例について説明する。
図2において、横軸は、x軸であり、縦軸は、y軸である。また、グラフの関数f(x)は、以下の(1)式により表される。
【0021】
y=f(x)=a・x+S ・・・ (1)
【0022】
ここで、変数aは、一次係数であり、秘密情報Sは、定数項である。
また、Nを“3”(N=3)とした場合に、一次関数f(x)の直線上の3つの点の座標が部分情報となる。図2に示す例では、部分情報P1が、座標(x1,y1)であり、部分情報P2が、座標(x2,y2)である。また、部分情報P3が、座標(x3,y3)である。
【0023】
部分情報P1~部分情報P3のうちの、少なくとも2つが分かれば、この2つの部分情報から上述した(1)式の変数a(一次係数)及び秘密情報Sを決定することが可能であり、秘密情報Sを復元することができる。
【0024】
図1の説明に戻り、HSM10は、上述のように生成された部分情報を保持している。なお、本実施形態では、HSM10-1が、部分情報P1を保持し、HSM10-2が、部分情報P2を保持し、HSM10-3が、部分情報P3を保持するものとする。
また、HSM10は、通信部11と、モジュール記憶部12と、モジュール制御部13とを備える。
【0025】
通信部11は、例えば、ルータ40を介して、HSMコントローラ30との間の通信を行う。
モジュール記憶部12は、HSM10の各種処理において利用される各種情報を記憶する。モジュール記憶部12は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、及びEEPROM(Electrically Erasable Programmable ROM)などで構成される。また、モジュール記憶部12は、部分情報記憶部121と、秘密分散情報記憶部122と、セッションキー記憶部123と、取得情報記憶部124と、復元鍵記憶部125とを備える。
【0026】
部分情報記憶部121は、例えば、EEPROMにより構成された記憶部であり、上述したシャミアの秘密分散法により生成された部分情報を記憶する。部分情報記憶部121は、N個の部分情報のうちの1つの部分情報を記憶する。
【0027】
秘密分散情報記憶部122は、例えば、EEPROMにより構成された記憶部であり、秘密分散法に関する情報を記憶する。ここで、秘密分散法に関する情報とは、例えば、情報処理システム1で適用している(k,N)しきい値法のkの値及びNの値、情報処理システム1が備える他のHSM10の識別情報などである。
【0028】
セッションキー記憶部123は、例えば、RAMにより構成された記憶部であり、他のHSM10との間で部分情報の送受信を行う際の一時的な暗号キーであるセッションキーを記憶する。セッションキー記憶部123は、例えば、他のHSM10の識別情報と、当該他のHSM10との間の通信に用いるセッションキーとを対応付けて記憶する。
【0029】
取得情報記憶部124は、例えば、RAMにより構成された記憶部であり、他のHSM10から取得した部分情報を記憶する。取得情報記憶部124は、例えば、他のHSM10の識別情報と、部分情報とを対応付けて記憶する。
【0030】
復元鍵記憶部125は、例えば、RAMにより構成された記憶部であり、k個の部分情報に基づいて復元した秘密情報を記憶する。復元鍵記憶部125は、例えば、暗号鍵を記憶する。ここでの暗号鍵には、例えば、共通鍵暗号の暗号鍵、公開鍵暗号の秘密鍵などを含み、暗号鍵は、任意の暗号方式の暗号鍵であってもよい。
【0031】
モジュール制御部13は、例えば、CPUなどを含むプロセッサであり、HSM10を統括的に制御する。モジュール制御部13は、セッションキー生成部131と、情報取得部132と、部分情報生成部133と、鍵情報復元部134と、暗号演算処理部135と、なりすまし検出部136とを備える。
【0032】
セッションキー生成部131は、他のHSM10との間の暗号通信に使用するセッションキーを生成する処理を実行する。セッションキー生成部131は、例えば、他のHSM10との間で相互に生成した乱数と、予め定められた秘密鍵とに基づいて、一時的な暗号キーであるセッションキーを生成する。セッションキー生成部131は、生成したセッションキーと、他のHSM10の識別情報とを対応付けて、セッションキー記憶部123に記憶させる。
【0033】
情報取得部132(取得部の一例)は、通信部11を介して、N個の部分情報のうちの、他のHSM10が保持する少なくとも(k-1)個の部分情報を取得する。また、情報取得部132は、HSM10のなりすましを検出する場合に、N個の部分情報のうちの、他のHSM10が保持する(N-1)個の部分情報を取得する。ここで、(k-1)個の部分情報及び(N-1)個の部分情報とは、自装置が保持する1つの部分情報以外の部分情報を示す。情報取得部132は、取得した部分情報を、他のHSM10の識別情報と対応付けて、取得情報記憶部124に記憶させる。
【0034】
部分情報生成部133は、上述したシャミアの秘密分散法を利用して、暗号鍵などの秘密情報からN個の部分情報を生成し、生成したN個の部分情報のうちの1つの部分情報を部分情報記憶部121に記憶させる。また、部分情報生成部133は、生成したN個の部分情報のうちの1つの部分情報以外の(N-1)個の部分情報を、通信部11を介して、HSMコントローラ30に出力する。すなわち、部分情報生成部133は、部分情報記憶部121に記憶させた部分情報以外の部分情報を、他のHSM10に保持させるために、HSMコントローラ30に出力する。なお、部分情報生成部133は、上述したシャミアの秘密分散法である(k,N)しきい値法を用いて、k個の部分情報から秘密情報を復元可能なN個の部分情報を生成する際に、秘密分散情報記憶部122が記憶する情報(例えば、kの値及びNの値)を利用する。
【0035】
また、新たなHSM10の追加又は入れ替えが行われ、HSMコントローラ30から再構築依頼を受信した場合に、部分情報生成部133は、新たなHSM10に対する部分情報を生成する。部分情報生成部133は、後述する鍵情報復元部134が復元した秘密情報と、部分情報記憶部121が記憶する1つの部分情報及び情報取得部132が取得した(k-1)個の部分情報とから、上述したシャミアの秘密分散法を利用して、新たなHSM10に対する部分情報を生成する。部分情報生成部133は、生成した新たなHSM10に対する部分情報を、通信部11を介して、HSMコントローラ30に出力する。
【0036】
鍵情報復元部134(情報復元部の一例)は、情報取得部132が取得した(k-1)個の部分情報と、部分情報記憶部121が記憶する1つの部分情報とに基づいて、秘密情報を復元する。鍵情報復元部134は、取得情報記憶部124が記憶する(k-1)個の部分情報と、部分情報記憶部121が記憶する1つの部分情報との合計k個の部分情報(座標情報)から、多項式補間により、(k-1)次の多項式f(x)を求めることにより、秘密情報を復元する。鍵情報復元部134は、復元した秘密情報を、復元鍵記憶部125に記憶させる。
【0037】
暗号演算処理部135(情報処理部の一例)は、鍵情報復元部134が復元した秘密情報に基づいて、セキュリティに関する所定の処理を実行する。ここで、所定の処理は、例えば、暗号化処理、復号処理、署名生成、認証処理などの暗号演算処理などである。暗号演算処理部135は、HSMコントローラ30からの暗号演算の指示(依頼)に応じて、復元鍵記憶部125が記憶する秘密情報(例えば、暗号鍵)を用いて、各種暗号演算処理を実行する。また、暗号演算処理部135は、各種暗号演算処理の処理結果を、通信部11を介して、HSMコントローラ30に送信する。
【0038】
また、暗号演算処理部135は、他のHSM10との間の秘匿通信のためのセッションキーに基づく、暗号化処理及び復号処理を実行する。この場合、暗号演算処理部135は、セッションキー記憶部123が記憶する相手先のHSM10に対応するセッションキーを用いて、各種情報の暗号化処理及び復号処理を実行する。
【0039】
なりすまし検出部136は、HSMコントローラ30からのなりすまし検出依頼に応じて、HSM10のなりすましを検出する。なりすまし検出部136は、情報取得部132が取得した(N-1)個の部分情報及び部分情報記憶部121が記憶する1つの部分情報からk個の部分情報を選択した各組合せから、秘密分散法を利用して、全てのk個の部分情報の組合せの秘密情報を、鍵情報復元部134に復元させる。なりすまし検出部136は、例えば、鍵情報復元部134が復元した全ての秘密情報が一致するか否かに応じて、HSM10のなりすましを検出する。なりすまし検出部136は、検出結果を、通信部11を介して、HSMコントローラ30に送信する。
【0040】
次に、図面を参照して、本実施形態による情報処理システム1の動作について説明する。まず、図3を参照して、情報処理システム1の鍵生成処理の動作について説明する。
図3は、本実施形態の情報処理システム1の鍵生成処理の一例を示す図である。
この図において、kが“2”(k=2)であり、Nが“3”(N=3)である場合の一例について説明する。すなわち、情報処理システム1は、3個のHSM10(10-1、10-2、10-3)を備えるものとして、(2,3)しきい値法により3個の部分情報(P1、P2、P3)を生成する一例を説明する。
【0041】
図3において、まず、ホストサーバ20が、鍵生成の指示をHSMコントローラ30に送信する(ステップS101)。
次に、ホストサーバ20からの鍵生成の指示を受信したHSMコントローラ30は、3個のHSM10のうちの1つ(例えば、HSM10-1)を選択し、鍵生成の指示をHSM10-1に送信する(ステップS102)。
【0042】
次に、HSM10-1は、暗号鍵を生成する(ステップS103)。すなわち、HSM10-1のモジュール制御部13は、HSMコントローラ30からの鍵生成の指示に応じて、所定の鍵生成手順に基づいて、暗号鍵を生成する。
次に、HSM10-1は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS104)。
【0043】
次に、HSMコントローラ30は、HSM10-1とHSM10-2との間のセッションキー(SK1-2)の生成指示を、HSM10-1に送信する(ステップS105)。
次に、HSM10-1は、HSM10-2との間でセッションキー(SK1-2)を生成する(ステップS106)。HSM10-1のセッションキー生成部131と、HSM10-2のセッションキー生成部131とは、例えば、互いに乱数の交換などを行って、それぞれが共通のセッションキー(SK1-2)を生成する。
【0044】
次に、HSM10-2は、生成したセッションキー(SK1-2)を保持する(ステップS107)。すなわち、HSM10-2のセッションキー生成部131は、生成したセッションキー(SK1-2)を、セッションキー記憶部123に記憶させる。
また、HSM10-1は、生成したセッションキー(SK1-2)を保持する(ステップS108)。すなわち、HSM10-1のセッションキー生成部131は、生成したセッションキー(SK1-2)を、セッションキー記憶部123に記憶させる。
次に、HSM10-1は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS109)。
【0045】
次に、HSMコントローラ30は、HSM10-1とHSM10-3との間のセッションキー(SK1-3)の生成指示を、HSM10-1に送信する(ステップS110)。
次に、HSM10-1は、HSM10-3との間でセッションキー(SK1-3)を生成する(ステップS111)。HSM10-1のセッションキー生成部131と、HSM10-3のセッションキー生成部131とは、例えば、互いに乱数の交換などを行って、それぞれが共通のセッションキー(SK1-3)を生成する。
【0046】
次に、HSM10-3は、生成したセッションキー(SK1-3)を保持する(ステップS112)。すなわち、HSM10-3のセッションキー生成部131は、生成したセッションキー(SK1-3)を、セッションキー記憶部123に記憶させる。
また、HSM10-1は、生成したセッションキー(SK1-3)を保持する(ステップS113)。すなわち、HSM10-1のセッションキー生成部131は、生成したセッションキー(SK1-3)を、セッションキー記憶部123に記憶させる。
次に、HSM10-1は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS114)。
【0047】
次に、HSMコントローラ30は、HSM10-1に暗号鍵の秘密分散を指示する(ステップS115)。
次に、HSM10-1は、部分情報(P1、P2、P3)を生成する(ステップS116)。HSM10-1の部分情報生成部133は、上述したシャミアの秘密分散法を利用して、暗号鍵から3個の部分情報(P1、P2、P3)を生成する。
【0048】
次に、HSM10-1の部分情報生成部133は、生成した3個の部分情報のうちの1つ(部分情報P1)を部分情報記憶部121に記憶させる(ステップS117)。
次に、HSM10-1の部分情報生成部133は、生成した部分情報P2をセッションキー(SK1-2)で暗号化して、HSMコントローラ30に出力する(ステップS118)。部分情報生成部133は、例えば、暗号演算処理部135に、生成した部分情報P2をセッションキー(SK1-2)で暗号化させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-2に対応するセッションキー(SK1-2)により、部分情報P2を暗号化して、部分情報生成部133に戻す。部分情報生成部133は、暗号化された部分情報P2を、通信部11を介して、HSMコントローラ30に送信する。
【0049】
次に、HSMコントローラ30は、暗号化された部分情報P2をHSM10-2に転送する(ステップS119)。HSMコントローラ30の制御部32は、通信部31を介して、暗号化された部分情報P2をHSM10-1から受信し、受信した暗号化された部分情報P2を、通信部31を介して、HSM10-2に転送する。
【0050】
次に、HSM10-2は、暗号化された部分情報P2をセッションキー(SK1-2)で復号する(ステップS120)。HSM10-2の部分情報生成部133は、例えば、暗号演算処理部135に、取得した暗号化された部分情報P2をセッションキー(SK1-2)で復号させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-1に対応するセッションキー(SK1-2)により、暗号化された部分情報P2を復号して、部分情報生成部133に戻す。
次に、HSM10-2の部分情報生成部133は、HSM10-1から取得した部分情報P2を部分情報記憶部121に記憶させる(ステップS121)。
【0051】
また、HSM10-1の部分情報生成部133は、生成した部分情報P3をセッションキー(SK1-3)で暗号化して、HSMコントローラ30に出力する(ステップS122)。部分情報生成部133は、例えば、暗号演算処理部135に、生成した部分情報P3をセッションキー(SK1-3)で暗号化させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-3に対応するセッションキー(SK1-3)により、部分情報P3を暗号化して、部分情報生成部133に戻す。部分情報生成部133は、暗号化された部分情報P3を、通信部11を介して、HSMコントローラ30に送信する。
【0052】
次に、HSMコントローラ30は、暗号化された部分情報P3をHSM10-3に転送する(ステップS123)。HSMコントローラ30の制御部32は、通信部31を介して、暗号化された部分情報P3をHSM10-1から受信し、受信した暗号化された部分情報P3を、通信部31を介して、HSM10-3に転送する。
【0053】
次に、HSM10-3は、暗号化された部分情報P3をセッションキー(SK1-3)で復号する(ステップS124)。HSM10-3の部分情報生成部133は、例えば、暗号演算処理部135に、取得した暗号化された部分情報P3をセッションキー(SK1-3)で復号させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-1に対応するセッションキー(SK1-3)により、暗号化された部分情報P3を復号して、部分情報生成部133に戻す。
次に、HSM10-3の部分情報生成部133は、HSM10-1から取得した部分情報P3を部分情報記憶部121に記憶させる(ステップS125)。
【0054】
次に、HSM10-1は、セッションキー(SK1-2、SK1-3)を削除する(ステップS126)。すなわち、HSM10-1のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-2)及びセッションキー(SK1-3)を、セッションキー記憶部123から消去する。また、モジュール制御部13は、部分情報生成部133が生成した他のHSM10の部分情報をHSM10-1から消去する。すなわち、モジュール制御部13は、部分情報P2及び部分情報P3をHSM10-1から消去する。
【0055】
また、HSM10-2は、セッションキー(SK1-2)を削除する(ステップS127)。すなわち、HSM10-2のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-2)を、セッションキー記憶部123から消去する。
次に、HSM10-2は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS128)。
【0056】
また、HSM10-3は、セッションキー(SK1-3)を削除する(ステップS129)。すなわち、HSM10-3のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-3)を、セッションキー記憶部123から消去する。
次に、HSM10-3は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS130)。
次に、HSMコントローラ30は、処理終了応答(レスポンス)を、通信部31を介して、ホストサーバ20に送信する(ステップS131)。
【0057】
このように、図3に示す例では、HSM10-1が(2,3)しきい値法により3個の部分情報(P1、P2、P3)を生成し、3個の部分情報のうちの2個の部分情報(P2、P3)を、HSM10-2及びHSM10-3に送信して保持させる。これにより、HSM10-1が部分情報P1を保持し、HSM10-2が部分情報P2を保持し、HSM10-3が部分情報P3を保持する。
【0058】
次に、図4を参照して、情報処理システム1の暗号演算処理の動作について説明する。
図4は、本実施形態の情報処理システム1の暗号演算処理の一例を示す図である。
この図において、上述した図3と同様に、kが“2”(k=2)であり、Nが“3”(N=3)である場合の一例について説明する。すなわち、情報処理システム1は、3個のHSM10(10-1、10-2、10-3)を備え、HSM10-1が部分情報P1を保持し、HSM10-2が部分情報P2を保持し、HSM10-3が部分情報P3を保持しているものとして説明する。
【0059】
図4において、まず、ホストサーバ20が、暗号演算の指示をHSMコントローラ30に送信する(ステップS201)。
次に、ホストサーバ20からの暗号演算の指示を受信したHSMコントローラ30は、3個のHSM10のうちの1つ(例えば、HSM10-1)を選択し、セッションキー(SK1-2)の生成指示を、HSM10-1に送信する(ステップS202)。なお、HSMコントローラ30は、例えば、乱数生成部34が生成した乱数に基づいて、3個のHSM10のうちからHSM10-1を選択する。
【0060】
続く、ステップS203からステップS206までの処理は、上述した図3の示すステップS106からステップS109までの処理と同様であるため、ここではその説明を省略する。ステップS203からステップS206までの処理により、HSM10-1及びHSM10-2のそれぞれは、セッションキー(SK1-2)を保持する。
【0061】
次に、HSMコントローラ30は、部分情報P2の読み出し要求を、HSM10-2に送信する(ステップS207)。
次に、HSM10-2は、部分情報P2の読み出し要求に応じて、部分情報P2をセッションキー(SK1-2)で暗号化して出力する(ステップS208)。HSM10-2のモジュール制御部13は、部分情報記憶部121が記憶する部分情報P2を読み出し、例えば、暗号演算処理部135にセッションキー(SK1-2)で暗号化させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-1に対応するセッションキー(SK1-2)により、部分情報P2を暗号化して、モジュール制御部13に戻す。モジュール制御部13は、暗号化された部分情報P2を、通信部11を介して、HSMコントローラ30に送信する。
【0062】
また、HSM10-2は、セッションキー(SK1-2)を削除する(ステップS209)。すなわち、HSM10-2のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-2)を、セッションキー記憶部123から消去する。
【0063】
次に、HSMコントローラ30は、暗号化された部分情報P2をHSM10-1に転送する(ステップS210)。HSMコントローラ30の制御部32は、通信部31を介して、暗号化された部分情報P2をHSM10-2から受信し、受信した暗号化された部分情報P2を、通信部31を介して、HSM10-1に転送する。
【0064】
次に、HSM10-1は、暗号化された部分情報P2をセッションキー(SK1-2)で復号して取得する(ステップS211)。HSM10-1の情報取得部132は、例えば、暗号演算処理部135に、取得した暗号化された部分情報P2をセッションキー(SK1-2)で復号させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-2に対応するセッションキー(SK1-2)により、暗号化された部分情報P2を復号して、情報取得部132に戻す。情報取得部132は、復号した部分情報P2を取得し、取得した部分情報P2と、HSM10-2の識別情報とを対応付けて、取得情報記憶部124に記憶させる。
【0065】
次に、HSM10-1は、セッションキー(SK1-2)を削除する(ステップS212)。すなわち、HSM10-1のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-2)を、セッションキー記憶部123から消去する。
次に、HSM10-1は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS213)。
【0066】
次に、HSMコントローラ30は、暗号演算の指示(依頼)を、HSM10-1に送信する(ステップS214)。
次に、HSM10-1は、暗号演算の指示に応じて、部分情報(P1、P2)から暗号鍵を復元する(ステップS215)。HSM10-1の鍵情報復元部134は、取得情報記憶部124が記憶する部分情報P2と、部分情報記憶部121が記憶する部分情報P1との合計2個の部分情報(P1、P2)から、多項式補間により、暗号鍵(図2の秘密情報S)を復元する。鍵情報復元部134は、復元した暗号鍵を、復元鍵記憶部125に記憶させる。また、鍵情報復元部134は、他のHSM10の部分情報をHSM10-1から消去する。すなわち、鍵情報復元部134は、HSM10-2の部分情報P2を取得情報記憶部124から消去する。
【0067】
次に、HSM10-1は、暗号鍵に基づく暗号演算を実行する(ステップS216)。HSM10-1の暗号演算処理部135は、復元鍵記憶部125に記憶されている暗号鍵により、暗号演算(例えば、暗号化処理、復号処理、署名生成、認証処理など)を実行する。
【0068】
次に、HSM10-1は、暗号演算結果をHSMコントローラ30に送信する(ステップS217)。すなわち、暗号演算処理部135は、復元した暗号鍵に基づく暗号演算の結果を、通信部11を介して、HSMコントローラ30に送信する。
次に、HSMコントローラ30は、HSM10-1から受信した暗号演算結果をホストサーバ20に送信する(ステップS218)。
【0069】
なお、上述した図4に示す例では、HSM10-1が保持する部分情報P1と、HSM10-2が保持する部分情報P2とから、HSM10-1が暗号鍵を復元しているが、HSM10-1が保持する部分情報P1と、HSM10-3が保持する部分情報P3とから、HSM10-1が暗号鍵を復元するようにしてもよい。また、暗号鍵は、HSM10-2が保持する部分情報P2と、HSM10-3が保持する部分情報P3とから復元するようにしてもよい。
また、上述した図4に示す例では、HSMコントローラ30は、HSM10-1に暗号演算の指示を行っているが、HSM10-1の代わりに、HSM10-2、又はHSM10-3に暗号演算の指示した場合も同様である。
【0070】
次に、図5を参照して、情報処理システム1のHSM10故障時の復旧処理の動作について説明する。
図5は。本実施形態の情報処理システム1のHSM10故障時の復旧処理の一例を示す図である。
【0071】
この図において、上述した図3と同様に、kが“2”(k=2)であり、Nが“3”(N=3)である場合の一例について説明する。また、情報処理システム1は、3個のHSM10(10-1、10-2、10-3)のうちのHSM10-3が故障して入れ替えられた場合の一例を説明する。なお、HSM10-1が部分情報P1を保持し、HSM10-2が部分情報P2を保持し、HSM10-3がまだ部分情報を保持していないものとして説明する。
【0072】
図5において、まず、HSMコントローラ30は、HSM10-3の入れ替えを検出し、セッションキー(SK1-2)の生成指示を、HSM10-1に送信する(ステップS301)。
続く、ステップS302からステップS305までの処理は、上述した図3の示すステップS106からステップS109までの処理と同様であるため、ここではその説明を省略する。ステップS302からステップS305までの処理により、HSM10-1及びHSM10-2のそれぞれは、セッションキー(SK1-2)を保持する。
【0073】
次に、HSMコントローラ30は、セッションキー(SK1-3)の生成指示を、HSM10-1に送信する(ステップS306)。
続く、ステップS307からステップS310までの処理は、上述した図3の示すステップS111からステップS114までの処理と同様であるため、ここではその説明を省略する。ステップS307からステップS310までの処理により、HSM10-1及びHSM10-3のそれぞれは、セッションキー(SK1-3)を保持する。
【0074】
次に、HSMコントローラ30は、部分情報P2の読み出し要求を、HSM10-2に送信する(ステップS311)。
続く、ステップS312からステップS317までの処理は、上述した図4の示すステップS208からステップS213までの処理と同様であるため、ここではその説明を省略する。ステップS312からステップS317までの処理により、HSM10-1は、HSM10-2が保持していた部分情報P2を取得し、取得情報記憶部124に部分情報P2を記憶している状態となる。
【0075】
次に、HSMコントローラ30は、部分情報の再構築依頼を、HSM10-1に送信する(ステップS318)。HSMコントローラ30は、故障のため入れ替えを行ったHSM10-3(新たなHSM10-3)のための部分情報を再構築する依頼を、通信部31を介して、HSM10-1に送信する。
【0076】
次に、HSM10-1は、HSMコントローラ30からの再構築依頼に応じて、部分情報(P1、P2)から暗号鍵を復元する(ステップS319)。HSM10-1の鍵情報復元部134は、取得情報記憶部124が記憶する部分情報P2と、部分情報記憶部121が記憶する部分情報P1との合計2個の部分情報(P1、P2)から、多項式補間により、暗号鍵(図2の秘密情報S)を復元する。鍵情報復元部134は、復元した暗号鍵を、復元鍵記憶部125に記憶させる。
【0077】
次に、HSM10-1は、部分情報(P32)を生成する(ステップS320)。HSM10-1の部分情報生成部133は、新たなHSM10-3に対する部分情報を部分情報P32として生成する。具体的に、部分情報生成部133は、鍵情報復元部134が復元した暗号鍵と、部分情報記憶部121が記憶する部分情報P1及び情報取得部132が取得した部分情報P2とから、上述したシャミアの秘密分散法を利用して、新たなHSM10-3に対する部分情報P32を生成する。
【0078】
すなわち、部分情報生成部133は、上述した図2に示す一次関数f(x)の直線上の任意の点の座標を、部分情報P32として生成する。なお、部分情報P32は、図2に示す一次関数f(x)の直線上で、且つ、部分情報P1及び部分情報P2と同一の点でなければ、任意に設定可能であり、部分情報P3と同一でなくてもよい。
【0079】
また、HSM10-1の部分情報生成部133は、生成した部分情報P32をセッションキー(SK1-3)で暗号化して、HSMコントローラ30に出力する(ステップS321)。部分情報生成部133は、例えば、暗号演算処理部135に、生成した部分情報P32をセッションキー(SK1-3)で暗号化させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-3に対応するセッションキー(SK1-3)により、部分情報P32を暗号化して、部分情報生成部133に戻す。部分情報生成部133は、暗号化された部分情報P32を、通信部11を介して、HSMコントローラ30に送信する。
【0080】
次に、HSMコントローラ30は、暗号化された部分情報P32をHSM10-3に転送する(ステップS322)。HSMコントローラ30の制御部32は、通信部31を介して、暗号化された部分情報P32をHSM10-1から受信し、受信した暗号化された部分情報P3を、通信部31を介して、HSM10-3に転送する。
【0081】
次に、HSM10-3は、暗号化された部分情報P32をセッションキー(SK1-3)で復号する(ステップS323)。HSM10-3の部分情報生成部133は、例えば、暗号演算処理部135に、取得した暗号化された部分情報P32をセッションキー(SK1-3)で復号させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-1に対応するセッションキー(SK1-3)により、暗号化された部分情報P32を復号して、部分情報生成部133に戻す。
【0082】
次に、HSM10-3の部分情報生成部133は、HSM10-1から取得した部分情報P32を部分情報記憶部121に記憶させる(ステップS324)。
次に、HSM10-1は、セッションキー(SK1-3)を削除する(ステップS325)。すなわち、HSM10-1のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-3)を、セッションキー記憶部123から消去する。また、モジュール制御部13は、他のHSM10の部分情報を消去する。すなわち、モジュール制御部13は、部分情報P2及び部分情報P32をHSM10-1から消去する。
【0083】
また、HSM10-3は、セッションキー(SK1-3)を削除する(ステップS326)。すなわち、HSM10-3のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-3)を、セッションキー記憶部123から消去する。
次に、HSM10-3は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS327)。
【0084】
なお、上述した図5に示す例では、HSM10-3が故障して入れ替えた場合の一例を説明したが、HSM10-1又はHSM10-2を入れ替える場合も同様である。
また、HSMコントローラ30は、HSM10-1に再構築依頼を送信しているが、HSM10-2に再構築依頼を送信してもよい。HSM10-2に再構築依頼を送信した場合の動作は、HSM10-1の処理と、HSM10-2の処理とが入れ替わる点を除いて、上述した図5に示す処理と同様である。
【0085】
次に、図6を参照して、情報処理システム1のHSMのなりすまし検出処理の動作について説明する。
図6は、本実施形態の情報処理システムのHSMのなりすまし検出処理の一例を示す図である。
【0086】
この図において、上述した図3と同様に、kが“2”(k=2)であり、Nが“3”(N=3)である場合の一例について説明する。すなわち、情報処理システム1は、3個のHSM10(10-1、10-2、10-3)を備え、HSM10-1が部分情報P1を保持し、HSM10-2が部分情報P2を保持し、HSM10-3が部分情報P3を保持しているものとして説明する。
【0087】
図6において、まず、HSMコントローラ30は、セッションキー(SK1-2)の生成指示を、HSM10-1に送信する(ステップS401)。
続く、ステップS402からステップS405までの処理は、上述した図5の示すステップS302からステップS305までの処理と同様であるため、ここではその説明を省略する。ステップS402からステップS405までの処理により、HSM10-1及びHSM10-2のそれぞれは、セッションキー(SK1-2)を保持する。
【0088】
次に、HSMコントローラ30は、セッションキー(SK1-3)の生成指示を、HSM10-1に送信する(ステップS406)。
続く、ステップS407からステップS410までの処理は、上述した図5の示すステップS307からステップS310までの処理と同様であるため、ここではその説明を省略する。ステップS407からステップS410までの処理により、HSM10-1及びHSM10-3のそれぞれは、セッションキー(SK1-3)を保持する。
【0089】
次に、HSMコントローラ30は、部分情報P2の読み出し要求を、HSM10-2に送信する(ステップS411)。
続く、ステップS412からステップS417までの処理は、上述した図5の示すステップS312からステップS317までの処理と同様であるため、ここではその説明を省略する。ステップS412からステップS417までの処理により、HSM10-1は、HSM10-2が保持していた部分情報P2を取得し、取得情報記憶部124に部分情報P2を記憶している状態となる。
【0090】
次に、HSMコントローラ30は、部分情報P3の読み出し要求を、HSM10-3に送信する(ステップS418)。
次に、HSM10-3は、部分情報P3の読み出し要求に応じて、部分情報P3をセッションキー(SK1-3)で暗号化して出力する(ステップS419)。HSM10-3のモジュール制御部13は、部分情報記憶部121が記憶する部分情報P3を読み出し、例えば、暗号演算処理部135にセッションキー(SK1-3)で暗号化させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-1に対応するセッションキー(SK1-3)により、部分情報P3を暗号化して、モジュール制御部13に戻す。モジュール制御部13は、暗号化された部分情報P3を、通信部11を介して、HSMコントローラ30に送信する。
【0091】
また、HSM10-3は、セッションキー(SK1-3)を削除する(ステップS420)。すなわち、HSM10-3のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-3)を、セッションキー記憶部123から消去する。
【0092】
次に、HSMコントローラ30は、暗号化された部分情報P3をHSM10-1に転送する(ステップS421)。HSMコントローラ30の制御部32は、通信部31を介して、暗号化された部分情報P3をHSM10-3から受信し、受信した暗号化された部分情報P3を、通信部31を介して、HSM10-1に転送する。
【0093】
次に、HSM10-1は、暗号化された部分情報P3をセッションキー(SK1-3)で復号して取得する(ステップS422)。HSM10-1の情報取得部132は、例えば、暗号演算処理部135に、取得した暗号化された部分情報P3をセッションキー(SK1-3)で復号させる。暗号演算処理部135は、セッションキー記憶部123が記憶するHSM10-3に対応するセッションキー(SK1-3)により、暗号化された部分情報P3を復号して、情報取得部132に戻す。情報取得部132は、復号した部分情報P3を取得し、取得した部分情報P3と、HSM10-3の識別情報とを対応付けて、取得情報記憶部124に記憶させる。これにより、HSM10-1は、取得情報記憶部124に部分情報P2及び部分情報P3を記憶している状態となる。
【0094】
次に、HSM10-1は、セッションキー(SK1-3)を削除する(ステップS423)。すなわち、HSM10-1のモジュール制御部13は、セッションキー記憶部123が記憶するセッションキー(SK1-3)を、セッションキー記憶部123から消去する。
次に、HSM10-1は、処理終了応答(レスポンス)を、通信部11を介して、HSMコントローラ30に送信する(ステップS424)。
【0095】
次に、HSMコントローラ30は、なりすまし検出依頼を、HSM10-1に送信する(ステップS425)。
次に、HSM10-1は、HSMコントローラ30からのなりすまし検出依頼に応じて、3個の部分情報(P1、P2、P3)のうちの2つを選ぶ各組合せから暗号鍵を復元する(ステップS426)。すなわち、HSM10-1のなりすまし検出部136は、部分情報P1と部分情報P2との組合せ、部分情報P1と部分情報P3との組合せ、及び部分情報P2と部分情報P3との組合せである3通りの組合せから、それぞれ暗号鍵を鍵情報復元部134に復元させる。
【0096】
次に、HSM10-1は、なりすまし検出処理を実行する(ステップS427)。HSM10-1のなりすまし検出部136は、上述した3通りの組合せから鍵情報復元部134が復元した3つの暗号鍵に基づいて、HSM10のなりすましがあるか否かを検出する。なりすまし検出部136は、例えば、鍵情報復元部134が復元した全ての秘密情報が一致する場合に、なりすましがないと判定する。また、なりすまし検出部136は、例えば、鍵情報復元部134が復元した全ての秘密情報が一致しない場合に、なりすましがあっると判定する。このように、なりすまし検出部136は、鍵情報復元部134が復元した全ての秘密情報が一致するか否かに応じて、HSM10のなりすましを検出する。なお、HSM10-1は、他のHSM10の部分情報を消去する。すなわち、HSM10-1は、部分情報P2及び部分情報P3をHSM10-1から消去する。
【0097】
次に、HSM10-1は、なりすまし検出結果をHSMコントローラ30に送信する(ステップS428)。
HSMコントローラ30は、受信したなりすまし検出結果に基づいて、なりすましのHSM10があるか否かを判定する(ステップS429)。HSMコントローラ30の制御部32は、なりすまし検出結果に基づいて、なりすましのHSM10があると判定される場合(ステップS429:YES)に、HSM10のなりすましをホストサーバ20に警告する。すなわち、HSMコントローラ30は、HSM10のなりすましがあることを示す警告情報を、ホストサーバ20に送信する。
【0098】
また、HSMコントローラ30の制御部32は、なりすまし検出結果に基づいて、なりすましのHSM10がないと判定される場合(ステップS429:NO)に、なりすまし検出処理を終了する。
なお、上述した図6に示すステップS401からステップS429までのなりすまし検出処理は、例えば、ホストサーバ20からの指示に基づいて、実行されてもよいし、定期的に、HSMコントローラ30が、これらの処理を実行するようにしてもよい。また、なりすまし検出処理は、HSM故障時の復旧処理の際に実行されてもよい。
【0099】
以上説明したように、本実施形態による情報処理システム1は、N個のHSM10(情報処理装置)と、HSMコントローラ30(制御装置)とを備える。N個のHSM10は、秘密分散法を利用して、秘密情報(例えば、暗号鍵)から生成したN個の部分情報を分割して保持する。ここで、秘密分散法は、N個の部分情報のうちの少なくとも異なるk個の部分情報から秘密情報(例えば、暗号鍵)を復元可能なN個の部分情報に、秘密情報を分割する(k,N)しきい値法である(但し、kは2以上の整数、且つ、N>k)。N個のHSM10は、それぞれ、部分情報記憶部121と、情報取得部132(取得部)と、鍵情報復元部134(情報復元部)と、暗号演算処理部135(情報処理部)とを備える。部分情報記憶部121は、N個の部分情報のうちの1つの部分情報を記憶する。情報取得部132は、N個の部分情報のうちの、他のHSM10が保持する少なくとも(k-1)個の部分情報を取得する。鍵情報復元部134は、情報取得部132が取得した(k-1)個の部分情報と、部分情報記憶部121が記憶する1つの部分情報とに基づいて、秘密情報を復元する。暗号演算処理部135は、鍵情報復元部134が復元した秘密情報に基づいて、セキュリティに関する所定の処理(例えば、上述した暗号演算処理など)を実行する。HSMコントローラ30は、N個のHSM10のうちのいずれかに、所定の処理の実行を依頼する。
【0100】
これにより、本実施形態による情報処理システム1では、少なくとも異なるk個の部分情報から秘密情報を復元可能なN個の部分情報を、分割してHSM10が保持するため、例えば、N個のHSM10のうちの1つから部分情報が漏洩した場合でも、秘密情報を復元することができない。そのため、本実施形態による情報処理システム1は、セキュリティを向上させることができる。また、本実施形態による情報処理システム1は、(N-k)個までのHSM10が故障しても、残りの部分情報から秘密情報を復元することができるため、システムを稼働することができる。そのため、本実施形態による情報処理システム1は、可用性を向上させることができる。よって、本実施形態による情報処理システム1は、可用性を向上させつつ、セキュリティを向上させることができる。
【0101】
また、本実施形態では、N個のHSM10のうちの少なくとも1つのHSM10は、部分情報生成部133を備える。部分情報生成部133は、秘密分散法を利用して、秘密情報からN個の部分情報を生成し、生成したN個の部分情報のうちの1つの部分情報を部分情報記憶部121に記憶させる。また、部分情報生成部133は、N個の部分情報のうちの1つの部分情報以外の(N-1)個の部分情報をHSMコントローラ30に出力する。HSMコントローラ30は、部分情報生成部133が出力した(N-1)個の部分情報のそれぞれを、(N-1)個の部分情報を出力した1つのHSM10以外のHSM10のそれぞれが備える部分情報記憶部121に記憶させる。
これにより、本実施形態による情報処理システム1では、HSM10が適切にN個の部分情報を生成し、生成したN個の部分情報を、N個のHSM10に分割して保持することができる。
【0102】
また、本実施形態では、HSMコントローラ30は、新たなHSM10の追加又は入れ替えが行われた場合に、N個のHSM10のうちの少なくとも1つのHSM10に対して、新たなHSM10に対する部分情報を生成させる再構築依頼を送信する。再構築依頼を受信したHSM10が備える部分情報生成部133は、鍵情報復元部134が復元した秘密情報と、部分情報記憶部121が記憶する1つの部分情報及び情報取得部132が取得した(k-1)個の部分情報とから、秘密分散法を利用して、新たなHSM10に対する部分情報を生成する。部分情報生成部133は、生成した新たなHSM10に対する部分情報をHSMコントローラ30に出力する。HSMコントローラ30は、部分情報生成部133が出力した部分情報を、前新たなHSM10が備える部分情報記憶部121に記憶させる。
【0103】
これにより、本実施形態による情報処理システム1では、例えば、HSM10が故障した場合に、HSM10を入れ替えるとともに、容易に部分情報を再構築することができる。そのため、本実施形態による情報処理システム1は、HSM10を入れ替える際に、システムを稼働させたまま、容易に部分情報を再構築することができる。
【0104】
また、本実施形態では、HSMコントローラ30は、N個のHSM10のうちから、乱数に基づいて選択されたHSM10に、所定の処理の実行を依頼する。
これにより、本実施形態による情報処理システム1では、HSM10における所定の処理の実行が分散されるため、処理効率を向上させることができる。すなわち、本実施形態による情報処理システム1は、可用性を向上させつつ、セキュリティを向上させるとともに、処理効率を向上させることができる。
【0105】
また、本実施形態では、HSMコントローラ30は、N個のHSM10のうちから、N個のHSM10の間で所定の処理による処理負荷が分散されるように選択されたHSM10に、所定の処理の実行を依頼する。例えば、HSMコントローラ30は、N個のHSM10の間で処理負荷が均等になるように、所定の処理を実行させるHSM10を選択する。また、HSMコントローラ30は、例えば、各HSM10への処理の実行依頼をカウントし、当該カウント値に基づいて、N個のHSM10の間で処理負荷が均等になるように、所定の処理を実行させるHSM10を選択するようにしてもよい。
これにより、本実施形態による情報処理システム1は、可用性を向上させつつ、セキュリティを向上させるとともに、処理効率をさらに向上させることができる。
【0106】
また、本実施形態では、情報取得部132は、HSM10のなりすましを検出する場合に、N個の部分情報のうちの、他のHSM10が保持する(N-1)個の部分情報を取得する。N個のHSM10のうちの少なくとも1つのHSM10は、HSMコントローラ30からのなりすまし検出依頼に応じて、HSM10のなりすましを検出するなりすまし検出部136を備える。なりすまし検出部136は、情報取得部132が取得した(N-1)個の部分情報及び部分情報記憶部121が記憶する1つの部分情報からk個の部分情報を選択した各組合せから、秘密分散法を利用して復元した全ての秘密情報が一致するか否かに応じて、HSM10のなりすましを検出する。
これにより、本実施形態による情報処理システム1は、HSM10のなりすましを検出することができ、セキュリティをさらに向上させることができる。
【0107】
また、本実施形態では、秘密分散法が、シャミアの秘密分散法である。
これにより、本実施形態による情報処理システム1は、簡易な手法及び簡易な構成により、(k,N)しきい値法を実現することができる。
【0108】
また、本実施形態によるHSM10(情報処理装置)は、上述した秘密分散法を利用して、秘密情報から生成したN個の部分情報を分割して保持するN個のHSM10と、上述したHSMコントローラ30とを備える情報処理システム1のHSM10であって、部分情報記憶部121と、情報取得部132と、鍵情報復元部134と、暗号演算処理部135と、を備える。部分情報記憶部121は、N個の部分情報のうちの1つの部分情報を記憶する。情報取得部132は、N個の部分情報のうちの、他のHSM10が保持する少なくとも(k-1)個の部分情報を取得する。鍵情報復元部134は、情報取得部132が取得した(k-1)個の部分情報と、部分情報記憶部121が記憶する1つの部分情報とに基づいて、秘密情報を復元する。暗号演算処理部135は、鍵情報復元部134が復元した秘密情報に基づいて、セキュリティに関する所定の処理(例えば、上述した暗号演算処理など)を実行する。
これにより、本実施形態によるHSM10は、上述した情報処理システム1と同様の効果を奏し、可用性を向上させつつ、セキュリティを向上させることができる。
【0109】
上記の実施形態において、情報処理システム1は、kが“2”(k=2)であり、Nが“3”(N=3)である場合の(k,N)しきい値法を用いる例を説明したが、これに限定されるものではなく、kが2以上(k≧2)、Nが3以上(N≧3)以上の(k,N)しきい値法を用いてもよい。すなわち、また、秘密分散法の一例として、シャミアの秘密分散法を用いる例を説明したが、これに限定されずに他の(k,N)しきい値法を用いてもよい。
【0110】
また、上記の実施形態において、ホストサーバ20とHSMコントローラ30との間、及びHSMコントローラ30と複数のHSM10との間をLANにより接続する例を説明したが、他の接続手法を用いてもよい。また、HSMコントローラ30は、ホストサーバ20とHSM10との間に配置されるものであれば、ハードウェアで構成されてもよいし、ホストサーバ20上のアプリケーションプログラムで構成されてもよい。
また、上記の実施形態において、情報処理システム1は、ルータ40を備える例を説明したが、ルータ40を備えずに構成してもよい。
【0111】
また、上記の実施形態において、HSM10は、例えば、IC(Integrated Circuit)カードやSIM(Subscriber Identity Module)カードなどの着脱可能なモジュールなどであってもよい。
また、上記の実施形態において、部分情報の送信などのN個のHSM10間の通信が、HSMコントローラ30を経由する例を説明したが、これに限定されるものではなく、HSMコントローラ30の指示により、N個のHSM10間で直接通信するようにしてもよい。
【0112】
また、上記の実施形態において、N個のHSM10が同一の構成である例を説明したが、これに限定されるものではない。例えば、N個のHSM10のうちの一部のHSM10は、N個の部分情報を生成する部分情報生成部133、又は、HSM10のなりすましを検出するなりすまし検出部136を備えない構成であってもよい。
【0113】
以上説明した少なくともひとつの実施形態によれば、秘密分散法((k,N)しきい値法)を利用して、秘密情報から生成したN個の部分情報を分割して保持するN個のHSM10と、N個のHSM10のうちのいずれかに、所定の処理の実行を依頼するHSMコントローラ30とを持ち、N個のHSM10が、他のHSM10から取得した(k-1)個の部分情報と、自装置が保持する1つの部分情報とに基づいて、秘密情報を復元する鍵情報復元部134と、復元した秘密情報に基づいて、セキュリティに関する所定の処理を実行する暗号演算処理部135とを持つことにより、可用性を向上させつつ、セキュリティを向上させることができる。
【0114】
上記実施形態は、以下のように表現することができる。
N個の部分情報のうちの少なくとも異なるk個の部分情報から秘密情報を復元可能な前記N個の部分情報に、前記秘密情報を分割する秘密分散法を利用して、前記秘密情報から生成した前記N個の部分情報を分割して保持するN個の情報処理装置(但し、kは2以上の整数、且つ、N>k)と、制御装置とを備え、
前記N個の情報処理装置は、
前記N個の部分情報のうちの1つの部分情報を記憶する部分情報記憶部と、
少なくともコンピュータが実行可能なプログラムを記憶する第1記憶部と、
前記第1記憶部に記憶されたプログラムを実行する第1ハードウェアプロセッサと、
を備え、
前記第1ハードウェアプロセッサは、前記第1記憶部に記憶されたプログラムを実行することにより、
前記N個の部分情報のうちの、他の情報処理装置が保持する少なくとも(k-1)個の部分情報を取得する取得処理と、
取得した前記(k-1)個の部分情報と、前記1つの部分情報とに基づいて、前記秘密情報を復元する情報復元処理と、
復元した前記秘密情報に基づいて、セキュリティに関する所定の処理を実行する情報処理と
を行うように構成されており、
前記制御装置は、
少なくともコンピュータが実行可能なプログラムを記憶する第2記憶部と、
前記第2記憶部に記憶されたプログラムを実行する第2ハードウェアプロセッサと、
を備え、
前記第2ハードウェアプロセッサは、前記第2記憶部に記憶されたプログラムを実行することにより、
前記N個の情報処理装置のうちのいずれかに、セキュリティに関する所定の処理の実行を依頼する処理を行うように構成されている、
情報処理システム。
【0115】
なお、実施形態における情報処理システム1及びHSM10が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理システム1及びHSM10が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0116】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0117】
1…情報処理システム、10,10-1,10-2,10-3…HSM、11,31…通信部、12…モジュール記憶部、13…モジュール制御部、20…ホストサーバ、30…HSMコントローラ、32…制御部、33…記憶部、34…乱数生成部、40…ルータ、121…部分情報記憶部、122…秘密分散情報記憶部、123…セッションキー記憶部、124…取得情報記憶部、125…復元鍵記憶部、131…セッションキー生成部、132…情報取得部、133…部分情報生成部、134…鍵情報復元部、135…暗号演算処理部、136…なりすまし検出部
図1
図2
図3
図4
図5
図6