(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-27
(45)【発行日】2025-01-14
(54)【発明の名称】量子暗号ストレージシステム、分散制御装置及びプログラム
(51)【国際特許分類】
H04L 9/12 20060101AFI20250106BHJP
G06F 16/182 20190101ALI20250106BHJP
G06F 21/60 20130101ALI20250106BHJP
【FI】
H04L9/12
G06F16/182
G06F21/60
(21)【出願番号】P 2021184355
(22)【出願日】2021-11-11
【審査請求日】2024-03-01
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和3年度、国立研究開発法人量子科学技術研究開発機構、戦略的イノベーション創造プログラム(SIP)事業「光・量子を活用したSociety5.0実現化技術」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】藤吉 靖浩
(72)【発明者】
【氏名】谷澤 佳道
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2023-014547(JP,A)
【文献】特表2020-501413(JP,A)
【文献】特開2020-134841(JP,A)
【文献】特開2020-020928(JP,A)
【文献】BRAUN, J. et al.,LINCOS - A Storage System Providing Long-Term Integrity, Authenticity, and Confidentiality (Full Paper),Cryptology ePrint Archive,Paper 2016/742 ver:20180622:135636,[online],2018年06月22日,pp.1-13,<URL:https://eprint.iacr.org/archive/2016/742/20180622:135636>,[2024年11月21日 検索]
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/12
G06F 21/60
G06F 16/182
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
通信ネットワークにより接続された複数の記憶装置と、
データから分散されるシェアの分散様態を、QKDN(Quantum Key Distribution Network)情報に基づいて決定する分散制御装置と、
QKDNを用いて共有された量子鍵を用いて、暗号鍵と復号鍵とを生成する生成装置と、
前記データを、前記分散様態に基づいて、複数のシェアに分散する分散装置と、を備え、
前記シェアを分散記憶する記憶装置のそれぞれは、前記暗号鍵を用いて暗号化されたシェアを、前記通信ネットワークを介して受信すると、前記暗号化されたシェアを前記復号鍵で復号し、復号されたシェアを記憶する、
量子暗号ストレージシステム。
【請求項2】
前記シェアは、前記暗号鍵を用いたワンタイムパッドによって暗号化される、
請求項1に記載の量子暗号ストレージシステム。
【請求項3】
前記分散様態は、前記データから分散されるシェアの数を示す分散数と、前記シェアのサイズと、前記シェアを分散記憶する分散記憶装置とを示す情報を含み、
前記分散制御装置は、前記量子鍵の共有速度、及び、前記複数の記憶装置のそれぞれで使用される前記量子鍵の在庫量の少なくとも一方に基づいて、前記分散数と、前記シェアのサイズと、前記分散記憶装置とを決定する、
請求項2に記載の量子暗号ストレージシステム。
【請求項4】
前記QKDN情報は、前記量子鍵の共有速度、及び、前記複数の記憶装置のそれぞれで使用される前記量子鍵の在庫量の少なくとも一方を含み、
前記分散制御装置は、前記量子鍵の共有速度、及び、前記複数の記憶装置のそれぞれで使用される前記量子鍵の在庫量の少なくとも一方から、それぞれの記憶装置毎に、前記シェアの分散記憶に要する所要時間を計算し、前記所要時間に基づいて、前記分散数と、前記シェアのサイズと、前記分散記憶装置とを決定する、
請求項3に記載の量子暗号ストレージシステム。
【請求項5】
前記分散制御装置は、前記複数のシェアを一時記憶する記憶装置を、前記複数の記憶装置から選択し、選択された記憶装置から、前記通信ネットワークを介して、前記シェアをそれぞれの前記分散記憶装置に分散記憶する所要時間が同じ値に近づくように、それぞれの前記シェアのサイズを決定する、
請求項4に記載の量子暗号ストレージシステム。
【請求項6】
前記QKDN情報は、前記量子鍵の共有速度、及び、前記複数の記憶装置のそれぞれで使用される前記量子鍵の在庫量の少なくとも一方を含み、
前記分散様態は、前記データから分散されるシェアの数を示す分散数と、前記シェアを分散記憶する分散記憶装置とを示す情報を含み、
前記分散制御装置は、前記量子鍵の共有速度、及び、前記複数の記憶装置のそれぞれで使用される前記量子鍵の在庫量の少なくとも一方から、それぞれの記憶装置毎に、前記シェアの分散記憶に要する所要時間を計算し、前記複数の記憶装置から、前記所要時間が小さい順に所定の数の分散記憶装置を選択する、
請求項3に記載の量子暗号ストレージシステム。
【請求項7】
前記QKDN情報を、鍵管理装置から取得するQKDN制御装置を更に備え、
前記分散制御装置は、前記QKDN情報を前記QKDN制御装置から受信する、
請求項3乃至6のいずれか1項に記載の量子暗号ストレージシステム。
【請求項8】
前記分散装置は、前記データを、前記分散様態と、所定の秘密分散アルゴリズムとに基づいて、前記複数のシェアに分散する、
請求項1乃至7のいずれか1項に記載の量子暗号ストレージシステム。
【請求項9】
通信ネットワークにより接続された複数の記憶装置及び分散装置と通信する分散制御装置であって、
データから分散されるシェアの分散様態を、QKDN(Quantum Key Distribution Network)情報に基づいて決定する決定部と、
前記分散様態を、前記分散装置に通知する通信制御部と、
を備える分散制御装置。
【請求項10】
通信ネットワークにより接続された複数の記憶装置及び分散装置と通信するコンピュータを、
データから分散されるシェアの分散様態を、QKDN(Quantum Key Distribution Network)情報に基づいて決定する決定部と、
前記分散様態を、前記分散装置に通知する通信制御部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は量子暗号ストレージシステム、分散制御装置及びプログラムに関する。
【背景技術】
【0002】
ハードディスク等の記憶装置(ストレージ)を通信ネットワークのノードとして配置し、同通信ネットワークに接続されたユーザアプリケーションからこれらのストレージにデータの書き込み/読み出しを行うネットワークシステム(ストレージネットワーク)が従来から知られている。ストレージネットワークにおいて、アプリケーションにより保管されるデータが秘匿を要するものである場合、当該データを秘密分散アルゴリズムに基づいて分散し、物理的に離れた複数のノードに分散させて保管することで安全性を高める方法がある。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】M.Fujiwara,A.Waseda,R.Nojima,S.Moriai,W.Ogata,and M.Sasaki,“Unbreakable distributed storage with quantum key distribution network and password-authenticated secret sharing,”Sci.Reports,6,28988-1-8 (2016),[令和3年11月10日検索],インターネット<URL:https://arxiv.org/abs/1607.00468>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の技術では、通信路の情報理論的安全性を担保しながら、より短い時間で、データを複数の記憶装置に分散させて記憶させることが難しかった。
【課題を解決するための手段】
【0006】
実施形態の量子暗号ストレージシステムは、複数の記憶装置と、分散制御装置と、生成装置と、分散装置とを備える。複数の記憶装置は、通信ネットワークにより接続される。分散制御装置は、データから分散されるシェアの分散様態を、QKDN(Quantum Key Distribution Network)情報に基づいて決定する。生成装置は、QKDNを用いて共有された量子鍵を用いて、暗号鍵と復号鍵とを生成する。分散装置は、前記データを、前記分散様態に基づいて、複数のシェアに分散する。前記シェアを分散記憶する記憶装置のそれぞれは、前記暗号鍵を用いて暗号化されたシェアを、前記通信ネットワークを介して受信すると、前記暗号化されたシェアを前記復号鍵で復号し、復号されたシェアを記憶する。
【図面の簡単な説明】
【0007】
【
図1】第1実施形態の量子暗号ストレージシステムの装置構成の例を示す図。
【
図2】第1実施形態のSSNコントローラの機能構成の例を示す図。
【
図3A】第1実施形態のシェアの分散記憶方法及び所要時間を説明するための図。
【
図3B】シェアの分散記憶に要する時間を説明するための図。
【
図4】第1実施形態のシェアの分散記憶方法及び所要時間を説明するための図。
【
図5】第1実施形態のシェアの分散記憶方法及び所要時間を説明するための図。
【
図6】第1実施形態の分散制御方法の例を示すフローチャート。
【
図7】第1実施形態の変形例の量子暗号ストレージシステムの装置構成の例を示す図。
【
図8】第2実施形態のシェアの分散記憶方法及び所要時間を説明するための図。
【
図9】第2実施形態のシェアの分散記憶方法及び所要時間を説明するための図。
【
図10A】第3実施形態のシェアの分散記憶方法及び所要時間を説明するための図。
【
図10B】第3実施形態のシェアの分散記憶方法及び所要時間を説明するための図。
【
図11】第1乃至第3実施形態のQKDモジュールのハードウェア構成の例を示す図。
【
図12】第1乃至第3実施形態のKM、SSNシェアホルダ、SSNコントローラ、QKDNコントローラ及びSSAのハードウェア構成の例を示す図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、量子暗号ストレージシステム、分散制御装置及びプログラムの実施形態を詳細に説明する。
【0009】
データが秘密分散アルゴリズムに基づいて分散され、物理的に離れた複数のノードに分散させて保管される場合、当該秘密分散アルゴリズムの仕様に応じ、一定数以上、あるいはすべての分散片(シェア)を揃えなければ元データは復元できない。例えば、一つのノードへのネットワーク経由の侵入、あるいは物理的な侵入により当該ノードに記憶されているシェアを盗み出されても、元データは復元できず、元データの部分的な情報も得ることができないことが担保される。
【0010】
また、シェアを、物理的に離れた複数のノードに分散させて保管する際、ノードに保管されたシェアを保護するだけでなく、シェアを分散記憶先のノードであるシェアホルダに送信する処理において、通信路上の通信を盗聴から保護することも必要である。
【0011】
そこで、ストレージネットワークとは別のネットワークである量子鍵配送ネットワーク(Quantum Key Distribution Network、以後QKDNと記す)を併用して、QKDNから供給される量子鍵を用いたワンタイムパッド(OTP)暗号をシェアの送信のための通信に適用し、情報理論的安全性を担保する方法も提案されている。この方法においては、ストレージネットワークは、QKDNにより提供される量子鍵提供機能を用いる利用者と位置付けられる。すなわち、ストレージネットワークは量子鍵ネットワークのアプリケーションに位置付けられる。
【0012】
OTP暗号化は、暗号化されるデータ(平文)と同じ長さの鍵を必要とする暗号化方式であるため、ストレージネットワーク内でOTP暗号を用いてシェアを送信する際には、送信されるシェアと同じサイズのOTP暗号鍵をQKDNから受け取る必要がある。典型的には、QKDNが量子鍵(OTP暗号鍵)を生成・供給可能な速度は、一般的な通信路としてのストレージネットワーク内の通信路の速度より低い。そのため、シェアを送信する際の最大送信速度は、その送信を行うノード間におけるOTP暗号鍵生成・供給速度に依存する。ノード対によってOTP暗号鍵共有速度に差がある場合、すべてのシェアのサイズが同じとなるようにシェアを生成した場合、より遅いノード対におけるシェア送信にはより長い時間がかかり、最も遅いノード対におけるシェア送信が完了するまで全体としての分散記憶処理が完了しない。
【0013】
以下の実施形態では、ノード対によって異なるOTP暗号鍵共有速度の差があっても、速度の遅いノード対におけるシェア送信がシェアの分散記憶処理全体のボトルネックとならないシェアの分散様態を決定可能な量子暗号ストレージシステム、分散制御装置及びプログラムについて説明する。
【0014】
(第1実施形態)
図1は第1実施形態の量子暗号ストレージシステム100の装置構成の例を示す図である。第1実施形態の量子暗号ストレージシステム100は、3つのノード10-1~10-3、SSN(Secure Storage Network)ユーザプレーン20、及び、SSA(Secure Storage Agent)30-1~30-2を備える。
【0015】
以下、ノード10-1~10-3を区別しない場合、単にノード10という。各ノード10は、各拠点(例えば通信局舎等)に設置される。
【0016】
ノード10-1は、QKDモジュール1-1、KM(Key Manager)2-1及びSSNシェアホルダ3-1を備える。
【0017】
ノード10-2は、QKDモジュール1-2a、QKDモジュール1-2b、KM2-2、SSNシェアホルダ3-2及びSSNコントローラ4を備える。
【0018】
ノード10-3は、QKDモジュール1-3、KM2-3、SSNシェアホルダ3-3及びQKDNコントローラ5を備える。
【0019】
以下、QKDモジュール1-1~1-3を区別しない場合、単にQKDモジュール1という。同様に、KM2-1~2-3を区別しない場合、単にKM2という。同様に、SSNシェアホルダ3-1~3-3を区別しない場合、単にSSNシェアホルダ3という。同様に、SSA30-1~30-2を区別しない場合、単にSSA30という。
【0020】
なお、各ノード10に設置される装置は、1つの筐体内部に収められていてもよいし、別々の筐体によって複数の装置として構成されていてもよい。
【0021】
SSNユーザプレーン20では、SSNユーザデータの所有者であるSSNデータオーナーが、SSNユーザデータを送受信する。SSA30は、SSNユーザデータを受信すると、当該SSNユーザデータを秘密分散アルゴリズムに基づいて複数のシェアに分散する。
【0022】
次に、第1実施形態の量子暗号ストレージシステム100のネットワーク構成について説明する。第1実施形態の量子暗号ストレージシステム100は、QKDN(Quantum Key Distribution Network)200及びSSN300の2つのネットワークを備える。
【0023】
<QKDNの例>
第1実施形態のQKDN200は、3つのノード10-1~10-3を含む量子鍵配送ネットワークである。具体的には、第1実施形態のQKDN200は、QKDモジュール1、KM2及びQKDNコントローラ5を備える。
【0024】
QKDモジュール1―1及びQKDモジュール1-2aは、両者を接続しているQKDリンクを通して、両者で共有されるビット列(量子鍵)を生成する。QKDモジュール1―1及びQKDモジュール1-2aが、量子鍵をKM2-1及びKM2-2へそれぞれ送信することによって、KM2-1及びKM2-2は量子鍵を共有する。
【0025】
QKDモジュール1-2b及びQKDモジュール1-3も同様に量子鍵の生成を行い、KM2-2及びKM2-3で量子鍵が共有される。
【0026】
本実施形態ではQKDモジュール1―1及びQKDモジュール1-3はQKDリンクで接続されていない。そのため、KM2-1及びKM2-3は、KM2-2を経由した鍵リレーによって、例えば、KM2-1及びKM2-2により共有された量子鍵の一部をKM2-2からKM2-3へ送信することにより、量子鍵を共有する。
【0027】
共有された量子鍵は、それぞれのKM2に接続されたSSNシェアホルダ3からの要求に応じて、KM2からSSNシェアホルダ3へ送信される。
【0028】
<SSNの例>
第1実施形態のSSN300は、3つのノード10-1~10-3(SSNシェアホルダ3―1~3-3及びSSNコントローラ4)、SSNユーザプレーン20及びSSA30を含むストレージネットワークである。
【0029】
例えば、SSA30-1に収容されているSSNデータオーナーは、SSNユーザデータをSSNシェアホルダ3へ保管する保管要求を、SSA30-1へ送信する。
【0030】
SSA30-1は、保管要求を受け付けると、SSNユーザデータ101(以下、「元データ101」という。)を、秘密分散アルゴリズムに基づいて複数のシェアへと分散する。SSA30-1は、当該シェアへの分散にあたり、分散様態(例えば、分散後のシェア数及び各シェアのサイズ)をSSNコントローラ4へ問い合わせる。
【0031】
SSNコントローラ4は、分散様態を決定し、当該分散形態をSSA30-1へ通知する。SSNコントローラ4は、当該分散様態の決定にあたり、シェアのSSNシェアホルダ3への分散記憶様態を決定する。
図1では、シェア101-2及び101-3が、SSNシェアホルダ3-2及び3-3に分散記憶することが決定された場合の例を示しており、このとき、当該分散様態における分散数は2である。
【0032】
また、SSNコントローラ4は、当該分散様態における各シェアのサイズを、SSNシェアホルダ3-1及びSSNシェアホルダ3-2の間、並びに、SSNシェアホルダ3-1及びSSNシェアホルダ3-3の間で、それぞれOTP暗号化を適用しながら可能な通信速度に応じて決定する。本実施形態では、当該OTP暗号化を適用しながら可能な通信速度は、KM2-1及びKM2-2の間、並びに、KM2-1及びKM2-3の間におけるOTP暗号鍵の共有速度である。SSNコントローラ4は、これらの共有速度をQKDNコントローラ5から取得する。
【0033】
図1に示す実施形態では、例えばKM2-1及びKM2-2の間のOTP暗号鍵共有速度(OTP暗号鍵共有速度)が、KM2-1及びKM2-3の間のOTP暗号鍵共有速度より高速であるとする。この場合、SSNシェアホルダ3-1及び3-2の間のOTP暗号送信速度が、SSNシェアホルダ3-1及び3-3間のOTP暗号送信速度より高速となる。したがって、SSNコントローラ4は、SSNシェアホルダ3-2に分散記憶されるシェア3-2のサイズを、SSNシェアホルダ3-3に分散記憶されるシェア101-3のサイズより大きくする。
【0034】
図1の例では、SSA30-1は、以上のようにSSNコントローラ4により決定された分散様態、すなわちシェアへの分散数及び各シェアのサイズに基づき、元データ101をシェア101-2及び101-3に分散する。そして、SSA30-1は、当該シェア101-2及び101-3を、SSA30-1に収容されているSSNシェアホルダ3-1へ一時格納し、分散及び一時格納が完了したことをSSNコントローラ4へ通知する。
【0035】
SSNコントローラ4は、SSA30-1から当該通知を受け付けると、SSNシェアホルダ3-1~3-3に、記憶制御処理の実行指示を行う。当該記憶制御処理では、まず、SSNシェアホルダ3-1が、シェア101-2をSSNシェアホルダ3-2へOTP暗号化を行いながら送信する。SSNシェアホルダ3-2は、暗号化されたシェア101-2を受信すると、当該シェア101-2を復号し、復号されたシェア101-2を記憶する。SSNシェアホルダ3-1は、SSNシェアホルダ3-2にシェア101-2が記憶されると、SSNシェアホルダ3-1に一時記憶されていたシェア101-2を削除する。
【0036】
シェア101-3についても、シェア101-2と同様に、まず、SSNシェアホルダ3-1が、シェア101-3をSSNシェアホルダ3-3へOTP暗号化を行いながら送信する。SSNシェアホルダ3-3は、暗号化されたシェア101-3を受信すると、当該シェア101-3を復号し、復号されたシェア101-3を記憶する。SSNシェアホルダ3-1は、SSNシェアホルダ3-3にシェア101-3が記憶されると、SSNシェアホルダ3-1に一時記憶されていたシェア101-3を削除する。なお、シェア101-3をSSNシェアホルダ3-3へOTP暗号化を行いながら送信する処理は、上記、SSNシェアホルダ3-1がシェア101-2をSSNシェアホルダ3-2へOTP暗号化を行いながら送信する処理の開始と同時に開始する。
【0037】
SSNシェアホルダ3間のOTP暗号通信には、各SSNシェアホルダ3に接続されたKM2から供給されるOTP key(OTP暗号鍵)が使用される。例えば、SSNシェアホルダ3-1は、SSNシェアホルダ3-2へシェア101-2を送信する際には、KM2-1からOTP暗号鍵を取得し、当該OTP暗号鍵を用いてシェア101-2を暗号化して送信する。
【0038】
SSNシェアホルダ3-2は、KM2-1からSSNシェアホルダ3-1へ送信されたOTP暗号鍵と同一のOTP暗号鍵をKM2-2から取得し、暗号化されたシェア101-2を、KM2-2から取得された当該OTP暗号鍵を用いて復号する。
【0039】
なお、SSNシェアホルダ3間の通信路は、例えばインターネットであるが、通信路は任意でよい。
【0040】
本実施形態によれば、秘密分散アルゴリズムに基づいて分散されたシェア101-2及び101-3を分散して分散記憶するストレージネットワークで、分散記憶のための通信路の盗聴に対して情報理論的安全性を担保することができる。また、シェア101-2をSSNシェアホルダ3-2へ送信完了するまでの時間と、シェア101-3をSSNシェアホルダ3-3へ送信完了するまでの時間とを近づけことができるので、シェア101-2及び101-3の分散記憶が完了するまでの時間を最短に近づけることができる。
【0041】
なお、SSA30-1がSSNコントローラ4から分散様態を取得する処理は、必ずしもユーザによる保管要求を受けた後に実施する必要は無く、例えば、SSNコントローラ4からSSA30-1への定期的に分散様態を通知しておいてもよい。同様に、SSNコントローラ4がQKDNコントローラ5からOTP暗号鍵の共有速度を取得する処理も、必ずしもSSA30-1からの要求に応じて実施する必要はなく、QKDNコントローラ5からSSNコントローラ4へ定期的な通知を行う方法でもよい。
【0042】
また、本実施形態では、SSNコントローラ4はノード10-2が備えるものとしたが、例えば、他のノード10-1やノード10-3がSSNコントローラを備える形態でもよく、また複数のノードがSSNコントローラを備え、それらのSSNコントローラが協調して、記憶制御実行指示を行うようにしてもよい。
【0043】
また、シェア101-2及びシェア101-3は、必ずしも使用する秘密分散アルゴリズムにおける単一のシェアである必要は無く、それぞれが、複数のシェアの集合であってもよい。例えば、シェアホルダ3-2及び3-3へ分散記憶されるシェア101-2及び101-3のサイズ比を3:1とする場合に、SSNユーザデータをすべて同じサイズである40個のシェアに分散し、そのうち30個からなるシェアの集合をシェア101-2、残りの10個からなるシェアの集合をシェア101-3に割り当ててもよい。また例えば、SSNユーザデータを、互いに異なるサイズの4個の分散片に分散し、シェア101-2に2個、シェア101-3に2個割り当て、シェア101-2に割り当てた2個のシェアのサイズの合計と、シェア101-3に割り当てた2個のシェアのサイズの合計との比が3:1であるようにしてもよい。
【0044】
本実施形態における秘密分散アルゴリズムは、例えばAONT(All-Or-Nothing-Transform)を用いることができるが、秘密分散アルゴリズムは、これに限定されず、所定の秘密分散アルゴリズムでよい。
【0045】
[機能構成の例]
図2は第1実施形態のSSNコントローラ4の機能構成の例を示す図である。第1実施形態のSSNコントローラ4は、通信制御部41及び決定部42を備える。
【0046】
通信制御部41は、QKDNコントローラ5から、QKDN情報を受信する。例えば、QKDN情報は、各KM2の間での量子鍵の共有速度を含む。また例えば、QKDN情報は、複数のSSNシェアホルダ3(記憶装置)のそれぞれで使用できる量子鍵の在庫量を含む。
【0047】
また、通信制御部41は、データから分散されるシェアの分散様態(例えば、データから分散されるシェアの数を示す分散数と、当該シェアのサイズと、シェアを分散記憶するSSNシェアホルダ3)をSSA30(分散装置)に通知する。
【0048】
決定部42は、データから分散されるシェアの分散様態を、QKDN情報に基づいて決定する。例えば、決定部42は、分散数と、シェアのサイズと、シェアを分散記憶するSSNシェアホルダ3とを、量子鍵の共有速度、及び、量子鍵の在庫量の少なくとも一方に基づいて決定する。量子鍵の共有速度に基づく決定処理の例は、
図3A及び4を用いて後述する。また、量子鍵の共有速度、及び、量子鍵の在庫量の両方に基づく決定処理の例は、
図5を用いて後述する。
【0049】
図3Aは、第1実施形態のシェア101-2~101-3の分散記憶方法及び所要時間を説明するための図である。
図3Aは、
図1を用いて上に示した実施形態において具体的に決定されたシェア101-2及び101-3のサイズの例を示す。
【0050】
図3Aの例では、SSA30-1が、元データ101を合計が240MBの2個のシェア101-2及び101-3に分散し、SSNシェアホルダ3-2及びSSNシェアホルダ3-3に分散記憶する。SSNシェアホルダ3-1とSSNシェアホルダ3-2との間では、QKDNから1Mbpsの速度で量子鍵(OTP暗号鍵)が提供される、すなわち、1MbpsでのOTP暗号通信が可能である。一方、SSNシェアホルダ3-1とSSNシェアホルダ3-3の間では、QKDNから250kbpsの速度で量子鍵(OTP暗号鍵)が提供される、すなわち、250kbpsでのOTP暗号通信が可能である。
【0051】
この場合、SSNコントローラ4は、KM2-1とKM2-2の間の量子鍵共有速度、並びに、KM2-1とKM2-3の間の量子鍵共有速度をQKDNコントローラ5から取得し、SSNシェアホルダ3-1及び3-2間のOTP暗号通信速度、並びに、SSNシェアホルダ3-1及び3-3間のOTP暗号通信速度を、それぞれ1Mbps、250kbpsであることを特定する。そして、SSNコントローラ4は、OTP暗号通信速度の比が4:1であることをもって、シェア101-2及び101-3のサイズ比を4:1、すなわち、シェア101-2を192MB、シェア101-3を48MBと決定する。
【0052】
このように決定することで、シェア101-2をSSNシェアホルダ3-1からSSNシェアホルダ3-2へ送信するために必要な時間は192*8[Mbit]/1[Mbps]=1536秒となる。また、シェア101-3をSSNシェアホルダ3-1からSSNシェアホルダ3-3へ送信するために必要な時間も、48*8[Mbit]/0.25[Mbps]=1536秒となる。これにより、シェア101-2の送信とシェア101-3の送信とが同時に開始された場合、1536秒後に両者の送信を完了することができる。すなわち、SSNコントローラ4が、分散記憶に要する時間が同じ値に近づくように、シェア101-2及び101-3のサイズを決定することで、より短い時間で、元データ101をシェアホルダ3-2及び3-3に分散させて記憶させることができる。
【0053】
なお、
図3Bは、本実施形態による方法を用いず、例えばシェア101-2及びシェア101-3のサイズを等分すなわち120MBとした場合に、シェア101-2及びシェア101-3の送信にかかる時間を説明する図である。この場合、シェア101-2の送信に必要な時間は120*8[Mbit]/1[Mbps]=960秒であるのに対し、シェア101-3の送信に必要な時間は120*8[Mbit]/0.25[Mbps]=3840秒となる。したがって、シェア101-2及び101-3の分散記憶は、3840秒後に完了する。
【0054】
図3A及び3Bに示されるように、本実施形態によれば、シェア101-2及び101-3の分散記憶が完了するまでの時間を短縮することが可能となる。
【0055】
なお、
図1および
図3Aでは、元データ101を2個に分散する例を示したが、SSNシェアホルダ3の数と、元データ101の分散数はこれに限定されるものではなく、SSNの構成、SSNシェアホルダ3が備える記憶手段の容量、及び、管理ポリシーなどに応じて様々な形態を取り得る。
【0056】
図4は第1実施形態のシェア101―1~101-3の分散記憶方法及び所要時間を説明するための図である。例えば、
図4のように、SSA30-1が、3個のシェア101―1~101-3に分散して、SSNシェアホルダ3-1にもシェア101-1を分散記憶してもよい。この場合、SSNコントローラ4は、シェア3-1には120MB分を分散記憶するとした場合、シェア101-2及びシェア101-3のサイズは、240-120=120Mを4:1となるように分散、すなわち、それぞれ96MB、24MBと決定する。
【0057】
図1及び
図3Aを用いて示した例は、QKDN200がOTP暗号鍵を生成しながらSSNシェアホルダ3対(SSNシェアホルダ3―1及び3-2の対、並びに、SSNシェアホルダ3―1及び3-3の対)に供給する形態である。すなわち、
図1及び
図3Aを用いて示した例は、OTP暗号鍵の供給速度(シェアホルダ3対に対応するKM2対の量子鍵の共有速度)に基づいてシェア101-1及び101-2のサイズを決定する形態であるが、さらに、一部のSSNシェアホルダ3対、またはすべてのSSNシェアホルダ3対において、QKDN200にあらかじめ蓄積されていたOTP暗号鍵(以下、「鍵在庫」という。)が利用可能な場合がある。
【0058】
図5は第1実施形態のシェア101―2~101-3の分散記憶方法及び所要時間を説明するための図である。
図5の例は、SSNシェアホルダ3-1とSSNシェアホルダ3-3との間で、鍵在庫が16MB、すなわち、シェア101-3のうち最大16MB分は当該鍵在庫を用いてOTP暗号通信で送信できる場合を示す。この16MB分の通信速度は、QKDN200においてKM2-1とKM2-3の間のOTP暗号鍵の共有速度とは無関係に、SSNシェアホルダ3-1とSSNシェアホルダ3-3との間の通常の通信速度である。
図5の例では、この通常の通信速度は、SSNシェアホルダ3-1とSSNシェアホルダ3-3とのリンク速度と同じ4Mbpsである。
【0059】
このとき、SSNコントローラ4は、KM2-1とKM2-3の間の鍵共有速度が250kbpsであること及び16MBの鍵在庫が利用可能であることを、QKDNコントローラ5から取得し、シェアホルダ3-1とSSNシェアホルダ3-3の間で、シェアのうち16MB分は4Mbpsで、16MBを超える分は250kbpsで送信が可能であると特定し、シェア101-2のサイズを180MB、シェア101-3のサイズを60MBとすることで、シェア101-2の送信に要する時間、シェア101-3の送信に要する時間はともに1440秒となる。すなわち、60MBのうち、16MB分は鍵在庫を用いて4Mbpsで送信され、44MB分は250kbpsで送信される。したがって、シェア101-3の送信に要する時間は、16MB分の送信にかかる32秒(16*8Mbit/4Mbps)と、44MB分の送信にかかる1408秒((60-16)*8Mbit/0.25Mbps)との合計となる。
【0060】
なお、SSNコントローラ4は、送信されるシェアのサイズを上回る鍵在庫が利用可能であれば、そのシェアの全体が鍵在庫を用いた場合の速度で送信可能であるものとして、送信に要する時間とシェアのサイズとの関係を求め、シェアのサイズを決定することができる。
【0061】
[制御方法の例]
図6は第1実施形態の分散制御方法の例を示すフローチャートである。はじめに、SSNコントローラ4(分散制御装置の一例)が、上述の量子鍵の共有速度及び在庫量に基づいて、シェアの分散様態を決定する(ステップS1)。シェアの分散様態は、例えば、データから分散されるシェアの数を示す分散数と、シェアのサイズと、シェアを分散記憶するSSNシェアホルダ3(分散記憶装置の一例)とを含む。
【0062】
次に、SSA30(分散装置の一例)が、ステップS1の処理によって決定された分散様態に基づいて、データを複数のシェアに分散する(ステップS2)。
【0063】
次に、SSN300(ストレージネットワークの一例)により接続された複数のSSNシェアホルダ3のうち、ステップS1の処理で決定されたSSNシェアホルダ3が、複数のシェアを分散記憶する(ステップS3)。具体的には、それぞれのSSNシェアホルダ3は、暗号鍵により暗号化されたシェアを、SSN300を介して受信すると、暗号化されたシェアを、当該暗号鍵に対応する復号鍵で復号し、復号されたシェアを記憶する。暗号鍵及び復号鍵は、QKDN200を用いて共有された量子鍵から生成される。
【0064】
以上、説明したように、第1実施形態の量子暗号ストレージシステムによれば、通信路の情報理論的安全性を担保しながら、より短い時間で、データを複数の記憶装置に分散させて記憶させることができる。
【0065】
(第1実施形態の変形例)
次に第1実施形態の変形例について説明する。変形例の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
【0066】
図7は、第1実施形態の変形例の量子暗号ストレージシステム100-2の装置構成の例を示す図である。変形例の量子暗号ストレージシステム100-2では、QKDNコントローラ5-1~5-3が、各ノード10に備えられている点が、第1実施形態とは異なる。SSNコントローラ4は、各ノード10に備えられたQKDNコントローラ5から、QKDN情報を受信してもよい。
【0067】
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態では、排他的論理和を用いる閾値法での秘密分散のように、元データ101と同じサイズのシェアが生成される秘密分散アルゴリズムが用いられる場合について説明する。すなわち、第2実施形態では、第1実施形態のようにシェアのサイズに傾斜を付ける、ということができない前提下での実施形態について説明する。
【0068】
図8は第2実施形態のシェア101―1~101-3の分散記憶方法及び所要時間を説明するための図である。本実施形態では、SSNシェアホルダ3-1に一時格納された3個のシェア101―1~101-3を、SSNシェアホルダ3-2~3-6のいずれか3個を選んで分散記憶する。SSNコントローラ4は、QKDNコントローラ5からSSNシェアホルダ3間のOTP暗号通信速度(対応するKM2間における量子鍵の共有速度)の情報を取得し、より短時間でシェア101―1~101-3の送信を完了できる3個のSSNシェアホルダ3を選択する。
【0069】
図8の例では、SSNシェアホルダ3-1とSSNシェアホルダ3-2との間のOTP暗号通信速度は、1.5Mbpsである。SSNシェアホルダ3-1とSSNシェアホルダ3-3との間のOTP暗号通信速度は、200kbpsである。SSNシェアホルダ3-1とSSNシェアホルダ3-4との間のOTP暗号通信速度は、400kbpsである。SSNシェアホルダ3-1とSSNシェアホルダ3-5との間のOTP暗号通信速度は、1Mbpsである。SSNシェアホルダ3-1とSSNシェアホルダ3-6との間のOTP暗号通信速度は、3Mbpsである。
【0070】
なお、
図8の例では、説明のため、SSNシェアホルダ3-1と各SSNシェアホルダ3-2~3-6との間のリンクのみが示されているが、SSNシェアホルダ3-1~3-6を含むストレージネットワークの形状は、フルメッシュ(フルコネクト)等の任意の形状でよい。
【0071】
SSNコントローラ4は、SSNシェアホルダ3-1からシェア101―1~101-3を送信するにあたり、なるべく短時間でシェア101―1~101-3の送信を完了できるSSNシェアホルダ3を選択する。すなわち、SSNコントローラ4は、OTP暗号通信速度がより高速なリンクで接続された上位3つのSSNシェアホルダ3を選択する。具体的には、
図8の例では、SSNコントローラ4は、SSNシェアホルダ3-2(リンクのOTP暗号通信速度1.5Mbps)、SSNシェアホルダ3-5(リンクのOTP暗号通信速度1Mbps)、及び、SSNシェアホルダ3-6(リンクのOTP暗号通信速度3Mbps)を選択する。
【0072】
図8の例では、QKDN200がOTP暗号鍵を生成しながら、SSNシェアホルダ3対に当該OTP暗号鍵を供給する場合の供給速度(シェアホルダ3対に対応するKM2対における共有速度)に基づいてシェア101―1~101-3の分散記憶先を決定する例を示した。一部の、またはすべてのSSNシェアホルダ3対において、QKDN200にあらかじめ蓄積されていたOTP暗号鍵(上述の鍵在庫)が利用可能な場合は、
図9のようにすることもできる。
【0073】
図9は第2実施形態のシェア101―1~101-3の分散記憶方法及び所要時間を説明するための図である。
図8との違いは、SSNシェアホルダ3-1とSSNシェアホルダ3-4との間で、鍵在庫が160MBあることである。すなわち、SSNシェアホルダ3-1が、SSNシェアホルダ3-4へシェア101-2を送信する場合、そのシェア101-2のうち最大160MB分は当該鍵在庫を用いたOTP暗号通信で送信することができる。鍵在庫を用いた時の通信速度は、OTP暗号鍵の供給速度に縛られず、SSNシェアホルダ3-1とSSNシェアホルダ3-3との間の通常の通信速度(
図9の例では、8Mbps)となる。
【0074】
図9の例では、SSNシェアホルダ3-1からSSNシェアホルダ3-4へシェア101-2を送信する場合、240MBのうち160MB分は鍵在庫を用いて8Mbpsで送信され、80MB分は400kbpsで送信される。したがって、シェア101-2の送信に要する時間は、160MB分の送信にかかる160秒(160*8Mbit/8Mbps)と、80MB分の送信にかかる1600秒((240-160)*8Mbit/0.4Mbps)との合計1760秒である。
【0075】
図9の例では、SSNシェアホルダ3-4への送信に要する時間(1760秒)は、
図8におけるSSNシェアホルダ3-5への送信に要する時間(1920秒)より短いから、シェア101-2の分散記憶先として、SSNシェアホルダ3-4が選択される。
【0076】
(第3実施形態)
次に第3実施形態について説明する。第3実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第1及び第2実施形態は、起点となるSSNシェアホルダ3-1から分散記憶先となるSSNシェアホルダ3へ直接、送信を行う形態である。本実施形態では、
図10A及び10Bに示すように、シェア101-2~101-4が、他のSSNシェアホルダ3を経由して、分散記憶先のSSNシェアホルダ3に送信される場合について説明する。
【0077】
図10A及び10Bは第3実施形態のシェア101-2~101-4の分散記憶方法及び所要時間を説明するための図である。
図10A及び10Bの例は、SSNシェアホルダ3-2及びSSNシェアホルダ3-3の記憶容量の消費が均等となるように分散記憶する場合を示す。
【0078】
図10A及び10Bに示す例では、SSNシェアホルダ3-1とSSNシェアホルダ3-2との間のOTP暗号通信速度は1Mbpsである。SSNシェアホルダ3-2とSSNシェアホルダ3-3との間のOTP暗号通信速度は1Mbpsである。SSNシェアホルダ3-1とSSNシェアホルダ3-3との間のOTP暗号通信速度は250kbpsである。
【0079】
図10A及び10Bの例では、SSNコントローラ4は、元データ101を3個のシェア101-2~101-4へ分散することを決定する。そして、SSNコントローラ4は、SSNシェアホルダ3-1からSSNシェアホルダ3-3へシェア101-3を送信させるとともに、SSNシェアホルダ3-1からSSNシェアホルダ3-2へ、シェア101-2及び101-4を送信させるように制御する。なお、シェア101-2及び101-4の送信順序は問わず、いずれが先でも良いし、あるいは、シェア101-2の一部とシェア101-4の一部とが交互に送信されるようにしてもよい。
【0080】
また、SSNコントローラ4は、シェア101-4のSSNシェアホルダ3-2への送信が完了すると、シェア101-4をSSNシェアホルダ3―2からSSNシェアホルダ3―3へ送信させ、送信完了後、SSNシェアホルダ3-2からシェア101-4を削除させる。
【0081】
図10Aは、SSNシェアホルダ3-2からSSNシェアホルダ3-3へのシェア101-4の送信を、SSNシェアホルダ3-1からSSNシェアホルダ3-2へのシェア101-2及びシェア101-4の送信がいずれも完了した後に開始する例である。SSNシェアホルダ3-2が、SSNシェアホルダ3-1からのシェア101-2の受信と、SSNシェアホルダ3―3へのシェア101-4の送信とを並列に実行可能であれば、
図10Bのようにすることもできる。
【0082】
図10Bでは、シェア101-2、101-3及び101-4のサイズが、それぞれ120MB、48MB、72MBとなるように分散される。SSNコントローラ4は、SSNシェアホルダ3-1からSSNシェアホルダ3-3へシェア101-3の送信を開始させると同時に、SSNシェアホルダ3-1からSSNシェアホルダ3-2へのシェア101-4の送信を開始させる。そして、開始から576秒後にシェア101-4の送信が完了すると、SSNコントローラ4は、直ちにSSNシェアホルダ3-2からSSNシェアホルダ3-3へシェア101-4の送信を開始させると同時に、SSNシェアホルダ3-1からSSNシェアホルダ3-2へシェア101-2の送信を開始させる。
【0083】
さらに576秒後にはSSNシェアホルダ3-3へのシェア101-4の送信が完了し、同じく960秒後には、SSNシェアホルダ3-2へのシェア101-2の送信が完了する。したがって、SSNシェアホルダ3-1からSSNシェアホルダ3-2へシェア101-4の送信を開始してから、576秒+960秒=1536秒後には、シェア101-2及び101-4をSSNシェアホルダ3-2及び3-4へ分散記憶させる処理が完了すると同時に、シェア101-3のSSNシェアホルダ3-3への送信が完了する。これにより、
図7Aの場合に比べて、より短時間で分散記憶を完了させることができる。
【0084】
さらに、
図10A及び10Bは、鍵在庫が無い場合の例であるが、SSNコントローラ4は、SSNシェアホルダ3間で鍵在庫が利用可能な場合には、当該鍵在庫を考慮してシェアの分散様態を決定するようにしてもよい。
【0085】
なお、以上に示した第1乃至第3実施形態では、説明を簡単にするため、送信処理の開始にかかる制御時間、送信処理の終了にかかる制御時間、受信処理の開始にかかる制御時間、受信処理の終了にかかる制御時間、並びに、送信完了に続く次の送信開始までにかかる制御時間を0として説明したが、これらの制御時間が0である必要はない。SSNコントローラ4は、QKDNコントローラ5から取得されたOTP暗号化通信速度及び鍵在庫から、シェアの送信にかかる時間を計算する過程において、これらの制御時間を考慮して、シェアのサイズを決定してもよい。
【0086】
また、説明を簡潔とするため、
図3A、3B、4及び5では、元データ101のサイズと、分散されたシェア101-2~101-3の合計サイズが同一である例について説明した。また、
図10A及び10Bでは、元データ101のサイズと、分散されたシェア101-2~101-4の合計サイズが同一である例について説明した。この合計サイズが同一であることは必須ではなく、例えば、AONTのように、一般に、秘密分散アルゴリズムにより分散されるシェア101-2~101-N(Nは整数)のサイズの合計が、元データ101のサイズより大きくなる場合も想定される。そのような場合であっても、上述の第1乃至第3実施形態と同様にして、分散後のシェア101-2~101-Nのサイズ、SSNシェアホルダ3間のOTP暗号通信速度、及び、鍵在庫から、シェア101-2~101-Nの送信に要する時間を求めることができる。
【0087】
最後に、第1乃至第3実施形態のQKDモジュール1、KM2、SSNシェアホルダ3、SSNコントローラ4及びQKDNコントローラ5のハードウェア構成の例について説明する。
【0088】
[ハードウェア構成の例]
図11は、第1乃至第3実施形態のQKDモジュール1のハードウェア構成の例を示す図である。QKDモジュール1は、プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205、量子通信IF206及び古典通信IF207を備える。プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205、量子通信IF206及び古典通信IF207は、バス210を介して接続されている。
【0089】
プロセッサ201は、補助記憶装置203から主記憶装置202に読み出されたプログラムを実行する。主記憶装置202は、ROM(Read Only Memory)及びRAM(Random Access Memory)等のメモリである。補助記憶装置203は、HDD(Hard Disk Drive)及びメモリカード等である。
【0090】
表示装置204は、QKDモジュール1の状態等を表示する。入力装置205はユーザからの入力を受け付ける。なお、QKDモジュール1は、表示装置204及び入力装置205を備えていなくてもよい。
【0091】
量子通信IF206は、量子暗号通信路(光ファイバーリンク)に接続するためのインターフェースである。古典通信IF207は、QKDの制御信号通信路、及び、KM2等に接続するためのインターフェースである。QKDモジュール1が表示装置204及び入力装置205を備えていない場合は、例えば古典通信IF207を介して接続された外部端末の表示機能及び入力機能を利用してもよい。
【0092】
図12は第1乃至第3実施形態のKM2、SSNシェアホルダ3、SSNコントローラ4、QKDNコントローラ5及びSSA30のハードウェア構成の例を示す図である。KM2、SSNシェアホルダ3、SSNコントローラ4、QKDNコントローラ5及びSSA30のハードウェア構成の説明は、同様であるため、以下の説明では、SSNコントローラ4を例にして説明する。
【0093】
SSNコントローラ4は、プロセッサ301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信IF306を備える。プロセッサ301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信IF306は、バス310を介して接続されている。
【0094】
プロセッサ301は、補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。主記憶装置302は、ROM及びRAM等のメモリである。補助記憶装置303は、HDD及びメモリカード等である。
【0095】
表示装置304は、SSNコントローラ4の状態等を表示する。入力装置305はユーザからの入力を受け付ける。なお、SSNコントローラ4は、表示装置304及び入力装置305を備えていなくてもよい。
【0096】
通信IF306は、SSNシェアホルダ3、及び、SSA30等に接続するためのインターフェースである。SSNコントローラ4が表示装置304及び入力装置305を備えていない場合は、例えば通信IF306を介して接続された外部端末の表示機能及び入力機能を利用してもよい。
【0097】
QKDモジュール1、KM2、SSNシェアホルダ3、SSNコントローラ4、QKDNコントローラ5及びSSA30で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R、DVD(Digital Versatile Disc)、及び、Blu-ray(登録商標)Disc等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
【0098】
また、QKDモジュール1、KM2、SSNシェアホルダ3、SSNコントローラ4、QKDNコントローラ5及びSSA30で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【0099】
また、QKDモジュール1、KM2、SSNシェアホルダ3、SSNコントローラ4、QKDNコントローラ5及びSSA30が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【0100】
また、QKDモジュール1、KM2、SSNシェアホルダ3、SSNコントローラ4、QKDNコントローラ5及びSSA30で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0101】
なお、QKDモジュール1、KM2、SSNシェアホルダ3、SSNコントローラ4、QKDNコントローラ5及びSSA30の機能の一部又は全部を、IC(Integrated Circuit)等のハードウェアにより実現してもよい。ICは、例えば専用の処理を実行するプロセッサである。
【0102】
また、複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
【0103】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0104】
例えば、第3実施形態の分散記憶方法を、第1又は第2実施形態に適用してもよい。
【符号の説明】
【0105】
1 QKDモジュール
2 KM
3 SSNシェアホルダ
4 SSNコントローラ
5 QKDNコントローラ
10 ノード
20 SSNユーザプレーン
30 SSA
41 通信制御部
42 決定部
100 量子暗号ストレージシステム
200 QKDN
201 プロセッサ
202 主記憶装置
203 補助記憶装置
204 表示装置
205 入力装置
206 量子通信IF
207 古典通信IF
210 バス
300 SSN
301 プロセッサ
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信IF
310 バス