(57)【要約】【課題】ハードウェアを連続的に稼働したまま暗号化の処理を継続することができるシステムを提供する。【解決手段】システムは、データを第１暗号化データに暗号化する第１暗号化部と、前記データを第２暗号化データに暗号化する第２暗号化部と、前記第１暗号化データと前記第２暗号化データとが一致しているか否かを判定する第１比較判定部と、前記第１暗号化データと前記第２暗号化データとが一致していない場合に、そのことを通知する通知部と、を備え、前記データを第３暗号化データに暗号化する第３暗号化部と、前記データを第４暗号化データに暗号化する第４暗号化部と、前記第３暗号化データと前記第４暗号化データとが一致しているか否かを判定する第２比較判定部と、前記通知を前記通知部から受け、前記第３暗号化データと前記第４暗号化データとが一致している場合に、前記第３暗号化データを記憶部に書き込む書き込み部と、を備える。【選択図】図３
2020096314.tif 000002
【特許請求の範囲】
【請求項１】
第１ハードウェアと第２ハードウェアとを備えるシステムであって、
前記第１ハードウェアは、
データを第１暗号化データに暗号化する第１暗号化部と、
前記データを第２暗号化データに暗号化する第２暗号化部と、
前記第１暗号化データと前記第２暗号化データとを比較し、一致しているか否かを判定する第１比較判定部と、
前記第１暗号化データと前記第２暗号化データとが一致していないと前記第１比較判定部が判定した場合に、前記第１暗号化データと前記第２暗号化データとが一致していないことを前記第２ハードウェアに通知する通知部と、
を備え、
前記第２ハードウェアは、
前記データを第３暗号化データに暗号化する第３暗号化部と、
前記データを第４暗号化データに暗号化する第４暗号化部と、
前記第３暗号化データと前記第４暗号化データとを比較し、一致しているか否かを判定する第２比較判定部と、
前記第１暗号化データと前記第２暗号化データとが一致していないことを示す通知を前記通知部から受け、前記第３暗号化データと前記第４暗号化データとが一致している場合に、前記第３暗号化データを記憶部に書き込む書き込み部と、
を備えるシステム。
【請求項２】
前記第１暗号化データと前記第２暗号化データとが一致していないことをエラー回数としてカウントするエラー回数カウンタ、
を備え、
前記通知部は、
前記エラー回数カウンタが前記エラー回数の上限に達した場合に、前記第１暗号化データと前記第２暗号化データとが一致していないことを前記第２ハードウェアに通知する、
請求項１に記載のシステム。
【請求項３】
第１ハードウェアと第２ハードウェアとを備えるシステムによる暗号化処理方法であって、
データを第１暗号化データに暗号化することと、
前記データを第２暗号化データに暗号化することと、
前記第１暗号化データと前記第２暗号化データとを比較し、一致しているか否かを判定することと、
前記第１暗号化データと前記第２暗号化データとが一致していないと判定した場合に、前記第１暗号化データと前記第２暗号化データとが一致していないことを前記第２ハードウェアに通知することと、
前記データを第３暗号化データに暗号化することと、
前記データを第４暗号化データに暗号化することと、
前記第３暗号化データと前記第４暗号化データとを比較し、一致しているか否かを判定することと、
前記第１暗号化データと前記第２暗号化データとが一致していないことを示す通知を受け、前記第３暗号化データと前記第４暗号化データとが一致している場合に、前記第３暗号化データを記憶部に書き込むことと、
を含む暗号化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム及び暗号化処理方法に関する。
【背景技術】
【０００２】
データの暗号化や復号化を行う装置では、その暗号化や復号化の信頼性及び安全性が重要視される場合が多い。
特許文献１には、関連する技術として、二重化された暗号処理装置の障害時に他の暗号処理装置へ切り替えて処理を引き継ぐシステムに関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３２８５６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１のような技術を用いる場合、暗号処理装置を停止させる必要があり、暗号処理装置を連続的に稼働したまま暗号化の処理を継続することができなくなる可能性がある。
【０００５】
本発明の各態様は、上記の課題を解決することのできるシステム及び暗号化処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の一態様によれば、システムは、第１ハードウェアと第２ハードウェアとを備えるシステムであって、前記第１ハードウェアは、データを第１暗号化データに暗号化する第１暗号化部と、前記データを第２暗号化データに暗号化する第２暗号化部と、前記第１暗号化データと前記第２暗号化データとを比較し、一致しているか否かを判定する第１比較判定部と、前記第１暗号化データと前記第２暗号化データとが一致していないと前記第１比較判定部が判定した場合に、前記第１暗号化データと前記第２暗号化データとが一致していないことを前記第２ハードウェアに通知する通知部と、を備え、前記第２ハードウェアは、前記データを第３暗号化データに暗号化する第３暗号化部と、前記データを第４暗号化データに暗号化する第４暗号化部と、前記第３暗号化データと前記第４暗号化データとを比較し、一致しているか否かを判定する第２比較判定部と、前記第１暗号化データと前記第２暗号化データとが一致していないことを示す通知を前記通知部から受け、前記第３暗号化データと前記第４暗号化データとが一致している場合に、前記第３暗号化データを記憶部に書き込む書き込み部と、を備える。
【０００７】
上記目的を達成するために、本発明の別の態様によれば、暗号化処理方法は、第１ハードウェアと第２ハードウェアとを備えるシステムによる暗号化処理方法であって、データを第１暗号化データに暗号化することと、前記データを第２暗号化データに暗号化することと、前記第１暗号化データと前記第２暗号化データとを比較し、一致しているか否かを判定することと、前記第１暗号化データと前記第２暗号化データとが一致していないと判定した場合に、前記第１暗号化データと前記第２暗号化データとが一致していないことを前記第２ハードウェアに通知することと、前記データを第３暗号化データに暗号化することと、前記データを第４暗号化データに暗号化することと、前記第３暗号化データと前記第４暗号化データとを比較し、一致しているか否かを判定することと、前記第１暗号化データと前記第２暗号化データとが一致していないことを示す通知を受け、前記第３暗号化データと前記第４暗号化データとが一致している場合に、前記第３暗号化データを記憶部に書き込むことと、を含む。
【発明の効果】
【０００８】
本発明の各態様によれば、ハードウェアを連続的に稼働したまま暗号化の処理を継続することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態によるシステムの構成を示す図である。
【図２】本発明の一実施形態によるシステムの処理フローを示す図である。
【図３】本発明の実施形態による最小構成のシステムを示す図である。
【図４】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態について詳しく説明する。
＜実施形態＞
本発明の一実施形態によるシステム１は、図１に示すように、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１、第１ハードウェア１２、第２ハードウェア２５を備える。
システム１では、暗号化を行う第１ハードウェア１２は、その暗号化を行う部分に不具合が発生した場合、暗号化の処理が可能であり処理に空きがある第２ハードウェアに暗号化の処理を依頼する。そして、第１ハードウェア１２は、第２ハードウェアによる暗号化の結果を用いて、暗号化の処理を継続する。
【００１１】
ＤＲＡＭ１１は、システム１における主記憶装置である。
第１ハードウェア１２は、通常時にアクティブであり暗号化の処理を行うハードウェアである。
第１ハードウェア１２は、図１に示すように、暗号化制御部１３、比較結果記憶部１９、エラー回数カウンタ２０、エラー回数上限レジスタ２１、第２比較部２２（通知部の一例）、ハードウェア切り離し記憶部２３、ファームウェア実行部２４（書き込み部の一例）を備える。
【００１２】
暗号化制御部１３は、データの暗号化を制御する。暗号化制御部１３は、図１に示すように、平文レジスタ１４、第１暗号化制御部１５（第１暗号化部の一例、第３暗号化部の一例）、第２暗号化制御部１６（第２暗号化部の一例、第４暗号化部の一例）、第１比較部１７（第１比較判定部の一例、第２比較判定部の一例、書き込む書き込み部の一例）、データ書き込み部１８を備える。
平文レジスタ１４は、暗号化する前のデータを保持する。
第１暗号化制御部１５及び第２暗号化制御部１６のそれぞれは、平文を暗号化する。
第１比較部１７は、第１暗号化制御部１５による平文の暗号化結果と、第２暗号化制御部１６による平文の暗号化結果とを比較する。
データ書き込み部１８は、２つの暗号化結果が一致する比較結果を第１比較部１７が得た場合、その暗号化結果をＤＲＡＭ１１に書き込む。
【００１３】
比較結果記憶部１９は、第１比較部１７の比較結果を表すフラグを記憶する。
エラー回数カウンタ２０は、第１比較部１７が不一致である比較結果を得た回数をエラー回数としてカウントする。
エラー回数上限レジスタ２１は、エラー回数の上限値を保持することで、そのエラー回数の上限を定める。
第２比較部２２は、エラー回数カウンタ２０の値とエラー回数上限レジスタ２１の値とを比較する。
ハードウェア切り離し記憶部２３は、エラー回数がエラー回数の上限に達したときに、エラー回数がエラー回数の上限に達したことを示すフラグを立てる。
ファームウェア実行部２４は、ファームウェアを実行することにより、第１ハードウェア１２を制御する。
【００１４】
第２ハードウェア２５は、図１に示すように、第１ハードウェア１２と同様に、暗号化制御部１３、比較結果記憶部１９、エラー回数カウンタ２０、エラー回数上限レジスタ２１、第２比較部２２、ハードウェア切り離し記憶部２３、ファームウェア実行部２４を備える。また、第２ハードウェア２５は、さらに、空きハードウェア記憶部２６を備える。
第２ハードウェア２５がビジー状態でない場合、空きハードウェア記憶部２６は、ビジー状態でないことを示す空きハードウェアフラグを記憶する。
【００１５】
次に、本発明の一実施形態によるシステム１の処理フローについて説明する。
ここでは、図２に示すシステム１の処理フローを説明する。
なお、同一の符号が付与されているハードウェアを区別するために、以下の説明では、第１ハードウェア１２が備えるハードウェアの符号の末尾に「ａ」を付与し、第２ハードウェア２５が備えるハードウェアの符号の末尾に「ｂ」を付与する。
【００１６】
ファームウェア実行部２４ａは、ＤＲＡＭ１１から暗号化される前のデータである平文を読み出す。そして、ファームウェア実行部２４ａは、読み出した平文を平文レジスタ１４ａに格納する（ステップＳ１ａ）。
また、ファームウェア実行部２４ａは、接続先の第２ハードウェア２５の空きハードウェア記憶部２６が空きハードウェアフラグを記憶しているか否かを判定する。ファームウェア実行部２４ａは、空きハードウェア記憶部２６が空きハードウェアフラグを記憶していると判定した場合、ファームウェア実行部２４ｂを介して、ＤＲＡＭ１１から読み出した平文を平文レジスタ１４ｂに格納する（ステップＳ１ｂ）。
【００１７】
以下、第１ハードウェア１２が行う処理について記載するが、第２ハードウェア２５も同様の処理を行うものである。なお、図２において、第２ハードウェア２５が行う処理ステップについては、処理ステップの末尾に「ｂ」を付与して第１ハードウェア１２が行う処理ステップに対応する処理ステップを示している。ただし、第１ハードウェア１２は行うが、第２ハードウェア２５は行わない処理も存在する。また、第２ハードウェア２５は行うが、第１ハードウェア１２は行わない処理については、第１ハードウェア１２の処理と並行して説明する。
【００１８】
ファームウェア実行部２４ａは、平文レジスタ１４ａに格納されている平文を、第１暗号化制御部１５ａ（第１暗号化部の一例）及び第２暗号化制御部１６ａ（第２暗号化部の一例）に送信する（ステップＳ２ａ）。
第１暗号化制御部１５ａ及び第２暗号化制御部１６ａのそれぞれは、平文を暗号化する（ステップＳ３ａ）。
【００１９】
比較部１７ａ（第１比較判定部の一例）は、第１暗号化制御部１５ａが平文を暗号化した結果の値（すなわち、暗号化されたデータ）と、第２暗号化制御部１６ａが平文を暗号化した結果の値（すなわち、暗号化されたデータ）とを比較する（ステップＳ４ａ）。
比較部１７ａは、両方の値が一致しているか否かを判定する（ステップＳ５ａ）。比較部１７ａは、判定結果（比較結果）を比較結果記憶部１９ａに書き込む。
【００２０】
比較部１７ａは、両方の値が一致していると判定した場合（ステップＳ５ａにおいてＹＥＳ）、その値（暗号化されたデータ）をＤＲＡＭ１１に書き込む（ステップＳ６ａ）。
比較部１７ａは、ファームウェア実行部２４ａを介して、両方の値が一致していることをファームウェア実行部２４ｂに通知する（ステップＳ７ａ）。
ファームウェア実行部２４ｂは、ステップＳ３ｂの処理で暗号化した暗号化データを破棄する（ステップＳ８ｂ）。
【００２１】
また、比較部１７ａは、両方の値が不一致であると判定した場合（ステップＳ５ａにおいてＮＯ）、ファームウェア実行部２４ａにエラー報告を送信する（ステップＳ９ａ）。エラー報告とは、両方の値が不一致であることを示す情報である。そして、エラー回数カウンタ２０は、カウント値に１を加える。
【００２２】
第２比較部２２ａ（通知部の一例）は、エラー回数カウンタ２０ａのカウント値とエラー回数上限レジスタ２１ａの値とを比較する。第２比較部２２ａは、エラー回数カウンタ２０のカウント値（すなわち、エラー回数）とエラー回数上限レジスタ２１の値とが一致しているか否かを判定する（ステップＳ１０ａ）。
【００２３】
第２比較部２２ａは、エラー回数カウンタ２０のカウント値とエラー回数上限レジスタ２１の値とが一致していると判定した場合（ステップＳ１０ａにおいてＹＥＳ）、エラー回数がエラー回数の上限に達したことを示すフラグを、ハードウェア切り離し記憶部２３に書き込む。第２比較部２２ａは、エラーが発生したことを第２ハードウェア２５に通知する（ステップＳ１１ａ）。
そして、第２比較部２２ａは、第１ハードウェア１２を切り離す（ステップＳ１２ａ）。
【００２４】
また、第２比較部２２ａは、エラー回数カウンタ２０のカウント値とエラー回数上限レジスタ２１の値とが不一致であると判定した場合（ステップＳ１０ａにおいてＮＯ）、エラー回数カウンタ２０のカウント値とエラー回数上限レジスタ２１の値とが不一致であることを示すフラグを、比較結果記憶部１９に書き込む。そして、第２比較部２２ａは、ステップＳ１１ａの処理に進める。
【００２５】
第２比較部２２ａがステップＳ１１ａの処理を行うと、ファームウェア実行部２４ｂは、第１ハードウェア１２からのエラーの通知によって第１ハードウェア１２にエラーが発生したことを確認し、比較結果記憶部１９ｂに書き込まれているフラフによって第２ハードウェア２５における比較結果が一致していることを確認する（ステップＳ１３ｂ）。
そして、ファームウェア実行部２４ｂ（書き込み部の一例）は、比較部１７ｂ（第２比較判定部の一例、書き込み部の一例）を介して、第１暗号化制御部１５ｂ（第３暗号化部の一例）による平文を暗号化した結果の値（すなわち、暗号化されたデータ）を、比較部１７ａがＤＲＡＭ１１に書き込んだ値に上書きする（ステップＳ１４ｂ）。
【００２６】
以上、本発明の一実施形態によるシステム１について説明した。
システム１において、第１ハードウェア１２と第２ハードウェア２５とを備えるシステムである。第１ハードウェア１２は、データを第１暗号化データに暗号化する第１暗号化制御部１５ａと、前記データを第２暗号化データに暗号化する第２暗号化制御部１６ａと、第１暗号化データと第２暗号化データとを比較し、一致しているか否かを判定する第１比較部１７と、第１暗号化データと第２暗号化データとが一致していないと第１比較部１７が判定した場合に、第１暗号化データと第２暗号化データとが一致していないことを第２ハードウェア２５に通知する第２比較部２２と、を備える。また、第２ハードウェア２５は、前記データを第３暗号化データに暗号化する第１暗号化制御部１５ｂと、前記データを第４暗号化データに暗号化する第２暗号化制御部１６ｂと、第３暗号化データと第４暗号化データとを比較し、一致しているか否かを判定する比較部１７ｂと、第１暗号化データと第２暗号化データとが一致していないことを示す通知を第２比較部２２から受け、第３暗号化データと第４暗号化データとが一致している場合に、第３暗号化データを比較部１７ｂを介してＤＲＡＭ１１に書き込むファームウェア実行部２４ｂと、を備える。
こうすることで、システム１は、ハードウェアを連続的に稼働したまま暗号化の処理を継続することができる。
【００２７】
本発明の実施形態による最小構成のシステム１について説明する。
本発明の実施形態による最小構成のシステム１は、図３に示すように、第１ハードウェア１２と第２ハードウェア２５とを備えるシステムである。
第１ハードウェア１２は、第１暗号化部１２１、第２暗号化部１２２、第１比較判定部１２３、通知部１２４を備える。
第２ハードウェア２５は、第３暗号化部２５１、第４暗号化部２５２、第２比較判定部２５３、書き込み部２５４を備える。
第１暗号化部１２１は、データを第１暗号化データに暗号化する。
第２暗号化部１２２は、前記データを第２暗号化データに暗号化する。
第１比較判定部１２３は、第１暗号化データと第２暗号化データとを比較し、一致しているか否かを判定する。
通知部１２４は、第１暗号化データと第２暗号化データとが一致していないと第１比較判定部１２３が判定した場合に、第１暗号化データと第２暗号化データとが一致していないことを第２ハードウェア２５に通知する。
第３暗号化部２５１は、前記データを第３暗号化データに暗号化する。
第４暗号化部２５２は、前記データを第４暗号化データに暗号化する。
第２比較判定部２５３は、前記第３暗号化データと前記第４暗号化データとを比較し、一致しているか否かを判定する。
書き込み部２５４は、第１暗号化データと第２暗号化データとが一致していないことを示す通知を通知部１２４から受け、第３暗号化データと第４暗号化データとが一致している場合に、第３暗号化データを記憶部に書き込む。
【００２８】
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【００２９】
本発明の実施形態におけるＤＲＡＭ１１、平文レジスタ１４（１４ａ、１４ｂ）、比較結果記憶部１９（１９ａ、１９ｂ）、エラー回数上限レジスタ２１（２１ａ、２１ｂ）、ハードウェア切り離し記憶部２３（２３ａ、２３ｂ）、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、ＤＲＡＭ１１、平文レジスタ１４（１４ａ、１４ｂ）、比較結果記憶部１９（１９ａ、１９ｂ）、エラー回数上限レジスタ２１（２１ａ、２１ｂ）、ハードウェア切り離し記憶部２３（２３ａ、２３ｂ）、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【００３０】
本発明の実施形態について説明したが、上述の第１ハードウェア１２、第２ハードウェア２５、ファームウェア実行部２４（２４ａ、２４ｂ）、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
図４は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ５は、図４に示すように、ＣＰＵ６、メインメモリ７、ストレージ８、インターフェース９を備える。
例えば、上述の第１ハードウェア１２、第２ハードウェア２５、ファームウェア実行部２４（２４ａ、２４ｂ）、その他の制御装置のそれぞれは、コンピュータ５に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ８に記憶されている。ＣＰＵ６は、プログラムをストレージ８から読み出してメインメモリ７に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ６は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ７に確保する。
【００３１】
ストレージ８の例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、半導体メモリ等が挙げられる。ストレージ８は、コンピュータ５のバスに直接接続された内部メディアであってもよいし、インターフェース９または通信回線を介してコンピュータ５に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ５に配信される場合、配信を受けたコンピュータ５が当該プログラムをメインメモリ７に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ８は、一時的でない有形の記憶媒体である。
【００３２】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル（差分プログラム）であってもよい。上記プログラムは、ファームウェアであってもよい。
【００３３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【００３４】
１・・・システム
５・・・コンピュータ
６・・・ＣＰＵ
７・・・メインメモリ
８・・・ストレージ
９・・・インターフェース
１１・・・ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）
１２・・・第１ハードウェア
１３・・・暗号化制御部
１４・・・平文レジスタ
１５・・・第１暗号化制御部
１６・・・第２暗号化制御部
１７・・・第１比較部
１８・・・データ書き込み部
１９・・・比較結果記憶部
２０・・・エラー回数カウンタ
２１・・・エラー回数上限レジスタ
２２・・・第２比較部
２３・・・ハードウェア切り離し記憶部
２４・・・ファームウェア実行部
２５・・・第２ハードウェア
２６・・・空きハードウェア記憶部
【図１】
2020096314.tif 000003
【図２】
2020096314.tif 000004
【図３】
2020096314.tif 000005
【図４】
2020096314.tif 000006