JP2016061915A - 情報処理装置、情報処理システム、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2016061915A
JP2016061915A JP2014189326A JP2014189326A JP2016061915A JP 2016061915 A JP2016061915 A JP 2016061915A JP 2014189326 A JP2014189326 A JP 2014189326A JP 2014189326 A JP2014189326 A JP 2014189326A JP 2016061915 A JP2016061915 A JP 2016061915A
Authority
JP
Japan
Prior art keywords
entropy
information processing
pseudo
random number
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014189326A
Other languages
English (en)
Inventor
梅津 史浩
Fumihiro Umetsu
史浩 梅津
格 小平
Itaru Kodaira
格 小平
洋明 一貫坂
Hiroaki Ichinukizaka
洋明 一貫坂
隆 鳥海
Takashi Chokai
隆 鳥海
清水 直樹
Naoki Shimizu
直樹 清水
聖 横山
Sei Yokoyama
聖 横山
史宜 橘高
Fumiyoshi Kikko
史宜 橘高
作山 宏幸
Hiroyuki Sakuyama
宏幸 作山
佐藤 匡
Tadashi Sato
匡 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014189326A priority Critical patent/JP2016061915A/ja
Publication of JP2016061915A publication Critical patent/JP2016061915A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 多数の暗号処理を実行する場合でも、迅速に暗号処理を開始できるようにする。【解決手段】 疑似乱数の生成を行う場合に、自装置においてその疑似乱数の生成に必要なエントロピーが蓄積されるまでの時間(S15)と、外部の装置からその疑似乱数の生成に必要なエントロピーを取得するのに要する時間(S14)との比較に基づき、自装置で蓄積するエントロピーをその疑似乱数の生成に用いるか、上記外部の装置からエントロピーを取得してその疑似乱数の生成に用いるかを決定する(S16)ようにした。【選択図】 図4

Description

この発明は、情報処理装置、情報処理システム、情報処理方法及びプログラムに関する。
従来から、情報処理装置において、セキュリティの面から暗号技術は非常に重要視されている。
この暗号技術において、セキュリティ強度を担保する構成要素として、乱数がある。たとえば乱数を用いて暗号鍵を生成することがある。このとき、容易に乱数値が推定できるようだと、暗号の強度は著しく低下する。
乱数は、乱数シードを疑似乱数生成器(PRNG)にかけて得ることができる。また、暗号技術の強度を保持するために必要な乱数シードの品質を示す値をエントロピーといい、乱数生成において、規定のエントロピー量を満たす乱数シードを利用する必要があることが、既に知られている。そして、このエントロピーは、例えば、ネットワークから抽出したノイズや量子論的なエントロピー源から得られる。
また、疑似乱数生成器には、様々なアルゴリズムのものがある。例えば、Hash_DRBG、HMAC_DRBG、CTR_DRBG、Dual_EC_DRBG等であり、それぞれのアルゴリズムについて日々、脆弱性の検証が行われている。
また、これらとは別に、特許文献1には、画像形成装置が実行する印刷ジョブの一部を他の画像形成装置に代行させることにより、ジョブの実行効率を高める技術が開示されている。
ところで、情報処理装置において安全性の高い暗号鍵を生成するためには、ある程度の量のエントロピーを用いて乱数を生成する必要がある。しかし一方で、エントロピー源から得られる時間当たりのエントロピー量には限りがある。このため、暗号処理が多い場合には、エントロピー源から既に得られているエントロピーを使い尽くしてしまうことがある。この場合、次の暗号処理を行うために、必要量のエントロピーが得られるまで待たねばならず、処理の開始まで時間がかかるという問題があった。
この発明は、このような問題を解決し、多数の暗号処理を実行する場合でも、迅速に暗号処理を開始できるようにすることを目的とする。
この発明は、上記の目的を達成するため、情報処理装置において、エントロピー源から得られる情報に基づきエントロピーを蓄積するエントロピー蓄積手段と、疑似乱数の生成を行う場合に、上記エントロピー蓄積手段にその疑似乱数の生成に必要なエントロピーが蓄積されるまでの時間と、外部の装置からその疑似乱数の生成に必要なエントロピーを取得するのに要する時間との比較に基づき、上記エントロピー蓄積手段が蓄積するエントロピーをその疑似乱数の生成に用いるか、上記外部の装置からエントロピーを取得してその疑似乱数の生成に用いるかを決定する決定手段とを設けたものである。
上記構成によれば、多数の暗号処理を実行する場合でも、迅速に暗号処理を開始できるようにすることができる。
この発明の情報処理システムの一実施形態の構成を示す図である。 図1に示した情報処理装置10のハードウェア構成を示す図である。 情報処理装置10及び情報処理装置20が備える機能のうち、乱数及びエントロピーの取り扱いに関連する機能の構成を示す図である。 情報処理装置10のCPUが、エントロピー及び乱数の取り扱いに関して実行する処理のフローチャートである。 図4のステップS11の動作をより詳細に示す図である。 図4のステップS14の動作をより詳細に示す図である。 図4のステップS18の動作をより詳細に示す図である。 図4のステップS23の動作をより詳細に示す図である。 生成したい暗号鍵の種類と、暗号鍵の生成に必要なエントロピーと、エントロピー及び乱数の転送に用いる暗号スイートとの関係を示す図である。 共通鍵とRSA公開鍵の等価安全性について説明するための図である。 情報処理装置20のCPUがエントロピー取得要求を検出した場合に実行する処理のフローチャートである。 同じく、乱数取得要求を検出した場合に実行する処理のフローチャートである。 情報処理装置10及び情報処理装置20におけるエントロピー蓄積部の状態遷移を示す図である。
以下、この発明の実施形態について、図面を参照しつつ説明する。
図1に、この発明の情報処理システムの一実施形態の構成を示す。
図1に示す情報処理システム1は、第1情報処理装置である情報処理装置10と、第2情報処理装置である情報処理装置20とを、通信路40を介して相互に通信可能に接続して構成したものである。このうち情報処理装置10は、この発明の情報処理装置の実施形態でもある。また、情報処理装置10は、外部のサーバ装置30と、通信路50を介して通信可能である。
これらの情報処理装置10,20は、例えば汎用コンピュータとして構成してもよいし、情報処理機能及び通信機能の他に任意の機能を備えた、例えば用紙に画像を形成する画像形成装置として構成することもできる。ここでは、情報処理装置10,20がそれぞれ汎用コンピュータであるとして説明する。なお、情報処理装置10,20は、同じ機種である必要はなく、後述する、乱数及びエントロピーの取り扱いに関する親機あるいは子機としての機能を実現できれば、その他に備える機能は任意である。
これらを接続する通信路40としては、有線、無線、ネットワーク、専用線、ピアツーピア等を問わず、任意の規格のものを用いることができる。この実施形態では、通信にSSL(Secure Socket Layer)を使用するため、SSLを利用可能な規格とするが、他のプロトコルにより安全な通信路を確保する場合には、そのプロトコルを利用可能な規格を採用すればよい。
また、サーバ装置30は、情報処理システム1の外部に設け、少なくとも情報処理装置10に対して乱数生成アルゴリズムの安全性に関する情報を提供する機能を備えた装置である。このサーバ装置30は、情報セキュリティに関するサービスを提供する事業者が設置することが考えられる。
情報処理装置10とサーバ装置30との間の通信路50も、有線、無線、ネットワーク、専用線、ピアツーピア等を問わず、任意の規格のものを用いることができる。また、通信路40と同じネットワークを利用してもよい。
次に、図2に、図1に示した情報処理装置10のハードウェア構成を示す。
図2に示すように、情報処理装置10は、CPU101、ROM102、RAM103、HDD(ハードディスクドライブ)104、通信I/F(インタフェース)105、操作部106、表示部107を備え、これらをシステムバス108により接続した構成としている。
そして、CPU101が、RAM103をワークエリアとしてROM102あるいはHDD104に記憶されたプログラムを実行することにより、情報処理装置10全体を制御し、図3を用いて後述するものをはじめとする種々の機能を実現する。
ROM102及びHDD104は、不揮発性記憶媒体(記憶手段)であり、CPU101が実行する各種プログラムや後述する各種データを格納している。
通信I/F105は、通信路40,50を介して情報処理装置20やサーバ装置30等の他の装置と通信するためのインタフェースである。使用する通信路40,50の規格に応じたものを設ければよい。
操作部106は、ユーザからの操作を受け付けるための操作手段である。例えばキーボード、ポインティングデバイス、タッチディスプレイ等により構成することができる。
表示部107は、操作部106が操作を受け付けるためのGUI(グラフィカルユーザインタフェース)、情報処理装置10の動作状態や設定内容、メッセージ等をユーザに提示するための提示手段であり、例えば液晶ディスプレイにより構成することができる。
なお、情報処理装置10がユーザからの操作を直接受ける必要がない(通信I/F105を介して接続された外部装置により操作を受け付けたり情報の提示を行ったりすればよい)場合には、操作部106や表示部107を設けなくてよい。
以上のハードウェアとしては、例えば公知のコンピュータを利用することができる。情報処理装置20についても、図2に示した範囲のハードウェア構成は同様であるので、説明を省略する。ただし、CPUの処理能力、メモリの容量などの相違を含め、情報処理装置10と情報処理装置20とで機種が異なっていてよいことは、上述した通りである。
次に、図3に、情報処理装置10及び情報処理装置20が備える機能のうち、乱数及びエントロピーの取り扱いに関連する機能の構成を示す。図3に示す各部の機能は、情報処理装置10のCPU101あるいは情報処理装置20のCPUが、所要のハードウェアの動作を制御することにより実現されるものである。
まず、情報処理装置10は、通信部121、アプリケーション122、暗号モジュール123、疑似乱数生成部124、エントロピー蓄積部125、エントロピー源126、子機登録部127、脆弱性問い合わせ部128を備える。
このうち通信部121は、情報処理装置20との間で、暗号化された通信経路で情報の送受信を行う機能を備える。この実施形態では、SSLのプロトコルを用いてこの機能を実現する。SSLは、公開鍵暗号を用いてネゴシエーションを実施し、その後共通鍵暗号を用いて暗号通信を行うプロトコルである。
アプリケーション122は、ユーザの指示に応じて、あるいは他の装置から受信するか自動的に生成された要求に応じて、乱数に基づき生成された暗号鍵を提供する機能を備える。この機能は、アプリケーションプログラムにより実現される。また、暗号鍵の生成は、暗号モジュール123に要求して実行させる。
また、アプリケーション122は、情報処理装置10においてエントロピーが不足していたり乱数生成アルゴリズムが脆弱化したりしていた場合に、エントロピーの供給や乱数の生成を、子機登録部127に登録された子機(ここでは情報処理装置20)に依頼し、エントロピーや乱数を取得する機能も備える。
暗号モジュール123は、暗号鍵の生成や、データの暗号化及び復号化など、暗号に関する処理を行う機能を備える。暗号鍵の生成は、疑似乱数生成部124が生成した乱数や、アプリケーション122が子機から取得した乱数を用いて行うことができる。
疑似乱数生成部124は、エントロピー(を含むデータ)を乱数シードとして入力し、その入力値に基づき所定の乱数生成アルゴリズムによって乱数値を生成し、暗号モジュール123に提供する機能を備える。使用する乱数生成アルゴリズムは、随時追加及び変更可能である。
なお、エントロピーとは、データに含まれるランダム性を量として示したものである。ランダム性を有する現象が起こるエントロピー源126の挙動をエントロピー蓄積部125がデータとしてRAM103に蓄積することにより、ランダム性、すなわちエントロピーを有するデータを得ることができる。このデータが、エントロピーを含むデータである。そして、このデータの受け渡しにより、エントロピーをモジュール間や装置間で受け渡すことができる。ただし、データ長当たりのエントロピー量は、エントロピー源126の挙動のランダム性の度合いによって異なる。
疑似乱数生成部124が十分な品質の乱数を生成するためには、シードとして、所定量のエントロピーを含むデータを使用する必要がある。
エントロピー蓄積部125は、上述のようにエントロピー源126の挙動を示すデータを、エントロピーを含むデータとしてRAM103に蓄積するエントロピー蓄積手段の機能を備える。また、この蓄積動作が、エントロピー蓄積手順の処理である。エントロピーの蓄積速度は、エントロピー源126の挙動のランダム性の高さに依存するが、短時間では時間当たりの蓄積可能量は概ね一定である。したがって、本明細書では、エントロピー蓄積部125による時間当たりのエントロピー蓄積量は一定であるとして説明する。
エントロピー源126は、情報処理装置10のうちランダム性を有する挙動をする部分である。ただし、このランダム性は、意図して実現されるものでなく、装置の動作中に自然発生的に生じるものである。例えば、ネットワーク通信のタイミング、キーボード入力から生成されるノイズ、CPU101の内部で発生するノイズ等が、ランダム性を有する。そこで、これらのランダム性を有する挙動を検出可能な検出手段を、エントロピー源126として機能させることができる。
子機登録部127は、エントロピーの供給や乱数の生成を依頼する相手先装置である子機の情報を登録する機能を備える。依頼元である情報処理装置10は、この子機に対応して親機と呼ぶことにする。なお、子機の情報としては、少なくともアドレス等の通信先情報を登録し、その他に、その子機との間で安全な通信路を確保するための公開鍵証明書等の暗号鍵を登録しておいてもよい。また、種々の暗号強度で通信を行えるよう、鍵長の異なる複数の暗号鍵について登録を行っておくとよい。
脆弱性問い合わせ部128は、疑似乱数生成部124が備える乱数生成アルゴリズムについて脆弱性が発見されていないか否かを、予め登録した照会先であるサーバ装置30に問い合わせる機能を備える。
一方、情報処理装置20は、通信部221、アプリケーション222、暗号モジュール223、疑似乱数生成部224、エントロピー蓄積部225、エントロピー源226、証明書登録部227、脆弱性問い合わせ部228を備える。
これらのうち、アプリケーション222及び証明書登録部227以外の機能は、情報処理装置10における同名の構成と同様であるので説明を省略する。
アプリケーション222は、親機である情報処理装置10からの要求に応じて、エントロピー蓄積部225が蓄積したエントロピーあるいは疑似乱数生成部224が生成した乱数を提供する機能を備える。
証明書登録部227は、必要に応じて、親機との間で安全な通信路を確保するための公開鍵証明書等の暗号鍵を登録する機能を備える。子機登録部127の場合と同様、種々の暗号強度で通信を行えるよう、鍵長の異なる複数の暗号鍵について登録を行っておくとよい。
なお、ここでは、情報処理装置10の機能としてエントロピーや乱数の取り扱いに関する親機(他装置にエントロピーや乱数の送信を要求する側)の機能、情報処理装置20の機能としてその子機(要求に応じてエントロピーや乱数を提供する側)の機能を示した。しかし、各装置が親機と子機の機能を合わせ持つことも妨げられない。
次に、エントロピー及び乱数の取り扱いに関して各装置が実行する処理について説明する。
まず、図4に、親機である情報処理装置10のCPU101が実行する処理のフローチャートを示す。このフローチャートの処理は、この発明の情報処理方法の実施形態に係る処理であり、アプリケーション122の機能と対応するものである。ただし、アプリケーション122が他の各部に処理を依頼して実行させるものも含む。
情報処理装置10のCPU101は、電源がONされると、図4のフローチャートに示す処理を開始する。そしてまず、脆弱性問い合わせ部128に依頼して、サーバ装置30に対し、疑似乱数生成部124が持つ暗号アルゴリズムの脆弱性について問い合わせる(S11)。
この問い合わせは、図5Aに示すように任意の数の乱数アルゴリズムの種類を特定した問い合わせをサーバ装置30に送信するものである。そして、サーバ装置30からは、その各乱数アルゴリズムについて、自身が保持するセキュリティに関する情報に基づき、安全性に問題がないか(OK)、脆弱性が発見されているか(NG)を示す応答を返す(S31)。公開当初は安全であったアルゴリズムでも、解析の進展や計算能力の上昇により、安全とは言えなくなる場合もあり、サーバ装置30の運用者は、適宜これらの情報を収集してセキュリティに関する情報としてサーバ装置30に蓄積しておく。
CPU101は、この応答を検出すると、次の処理に進んで暗号鍵の生成要求を検出するまで待機する(S12)。そして、生成要求を検出すると、次の処理に進む。なお、この生成要求については、生成すべき暗号鍵の鍵長と使用する暗号アルゴリズムが特定されているとする。
次に、CPU101は、疑似乱数生成部124において、要求に係る暗号鍵を生成するための乱数アルゴリズムとして、脆弱でないものを利用可能か否か判断する(S13)。この判断は、ステップS11の問い合わせに対して得られた応答に基づき行い、1つでも脆弱でないものが利用可能であれば、Yesとなる。なお、暗号アルゴリズムと、その暗号アルゴリズムで使用する暗号鍵を生成するための乱数の生成に用いることができる乱数アルゴリズムとの対応関係の情報は、アプリケーション122が保持しているものとする。
ステップS13でYesの場合、CPU101は、暗号鍵の生成に用いる乱数を情報処理装置10内で生成すべく、ステップS14以下の処理に進む。
そしてまず、子機登録部127に登録している子機に対し、ステップS12で検出した要求に係る暗号鍵の生成に必要なエントロピーの送信に要する時間を問い合わせる(S14)。なお、暗号鍵を生成するために(鍵生成用の乱数に)必要なエントロピー量は、生成する鍵の種類と鍵長に応じて、図6に示すように定まる。
この問い合わせは、図5Bに示すように必要なエントロピー量を特定した問い合わせを情報処理装置20(子機)に送信するものである。そして、この要求を受けた情報処理装置20は、以下の計算により送信に要する時間を推定し、その結果を応答する(S41)。
・子機から親機にエントロピーを送信するのに要する時間
(a)必要なエントロピー量>現在蓄積されているエントロピー量の場合
所要時間=(必要なエントロピー量−現在蓄積されているエントロピー量)
/時間当たりのエントロピー生成量
+必要なエントロピー量/時間当たりのエントロピー送信可能量

(b)必要なエントロピー量≦現在蓄積されているエントロピー量の場合
所要時間=必要なエントロピー量/時間当たりのエントロピー送信可能量
なお、時間当たりのエントロピー生成量は、直近所定時間のエントロピー蓄積速度に基づいて算出することができる。時間当たりのエントロピー送信可能量は、直近の通信速度に基づいて推定することができる。
次に、CPU101は、ステップS12で検出した要求に係る暗号鍵の生成に必要なエントロピーをエントロピー蓄積部125が蓄積できるまでに要する時間を推定する(S15)。この時間は、以下の計算により推定することができる。
・親機でエントロピーを蓄積するのに要する時間
(a)必要なエントロピー量>現在蓄積されているエントロピー量の場合
所要時間=(必要なエントロピー量−現在蓄積されているエントロピー量)
/時間当たりのエントロピー生成量

(b)必要なエントロピー量≦現在蓄積されているエントロピー量の場合
所要時間=0
なお、時間当たりのエントロピー生成量は、直近所定時間のエントロピー蓄積速度に基づいて算出することができる。
次に、CPU101は、ステップS14とS15の結果に基づき、自機でのエントロピー蓄積と子機からのエントロピー取得のどちらでより早く必要なエントロピーが得られるかを判断する(S16)。
その結果、自機でのエントロピーの蓄積が早いと判断した場合、エントロピー蓄積部125に蓄積されるエントロピーを乱数の生成に使用することを決定する。そして、必要に応じて蓄積が完了するまで待って、エントロピー蓄積部125が蓄積した、エントロピーを含むデータを取得する(S17)。なお、この取得したデータは、RAM103における蓄積領域から削除する。
一方、子機からのエントロピー取得が早いと判断した場合、子機からエントロピーを取得することを決定する。そしえ、子機に対し、エントロピーの送信を要求する(S18)。
この要求は、図5Cに示すように必要なエントロピー量を特定した取得要求を情報処理装置20(子機)に送信するものである。そして、この要求を受けた情報処理装置20は、後述する図8の処理を実行し、その中で、エントロピーを含むデータを情報処理装置10に送信する(S54)。なお、この送信は、SSLを用いて暗号化した通信経路を用いて行う。
このときのSSL通信に用いる鍵長は、情報処理装置10側では図4のステップS19において、情報処理装置20側では図8のステップS53において設定する。具体的には、等価安全性で比較して送受信するエントロピー量以上になる最短の鍵長に設定する(S19)。この設定処理は、SSLハンドシェイクの中で行えばよい。
ここで、等価安全性とは、共通鍵、公開鍵など暗号の種類が異なるものについて共通に安全性を測る指標である。各暗号の等価安全性は、安全な鍵を生成するために必要な乱数のエントロピー量により定まる。そして、この値が等しい暗号は、同程度の安全性を持つと言える。
図6に、共通鍵暗号とRSA公開鍵暗号における各鍵長について、鍵生成用の乱数に必要なエントロピー量を示した。これらの値から、図7において上段に示す共通鍵の各鍵長と、下段に示すRSA公開鍵の各鍵長とが、同程度の安全性であることがわかる。
また、図6に示す各量のエントロピーを安全に送受信するためには、エントロピー量と比べて等価安全性が高い鍵長の鍵を用いるSSLの暗号スイートを使用する必要がある。しかし、鍵長が長い暗号スイートを用いるとその分処理時間が長くなるため、ここでは、送受信するエントロピー量と比べて等価安全性が高い最短の鍵長を用いることとしたものである。ただし、この「最短」は必須ではない。
図6には、以上に基づく、各量のエントロピーの送受信に用いるべき鍵長を示した。図6によると、80bitのエントロピーを送受信する場合には、112ビットの共通鍵と2048ビットのRSA公開鍵を用いるSSL暗号スイートを使用すればよいことがわかる。
図4の説明に戻ると、CPU101は、ステップS18及びS19の後、ステップS19で決定した鍵長の暗号鍵を用いたSSL通信で、子機からエントロピーを含むデータを受信する(S20)。この受信まで時間を要する場合もあるが、受信まで待機する。
その後、CPU101は、ステップS20で受信したエントロピーを含むデータをシードとして、疑似乱数生成部124に疑似乱数を生成させる(S21)。ステップS17でエントロピーを含むデータ取得した場合には、その取得したデータをシードとする。
いずれの場合も、その後、生成した乱数を用いて、ステップS12で検出した要求に係る暗号鍵を暗号モジュール123に生成させ、要求元に渡す(S22)。
以上で、ステップS12で検出した要求に係る処理を終了し、ステップS12に戻って次の要求を待つ。
一方、ステップS13でNoの場合、CPU101は、情報処理装置10においては安全な乱数を生成することはできないと判断する。そして、子機に対し、ステップS12で検出した要求に係る暗号鍵を生成するための乱数の送信を要求する(S23)。
この要求は、図5Dに示すように、乱数アルゴリズム(の選択肢)、乱数生成に用いるべきエントロピー量、及び乱数のサイズを指定した取得要求を情報処理装置20(子機)に送信するものである。そして、この要求を受けた情報処理装置20は、後述する図9の処理を実行し、その中で、生成した乱数を情報処理装置10に送信する(S66)。あるいは、図5Dには示していないが、乱数を生成できない旨の応答を返す場合もある。
なお、乱数の送信は、エントロピーを含むデータの場合と同様、SSLを用いて暗号化した通信経路を用いて行う。このときのSSL通信に用いる鍵長は、情報処理装置10側では図4のステップS24において、情報処理装置20側では図9のステップS65において設定する。具体的には、等価安全性で比較して送受信する乱数の生成に必要なエントロピー量以上になる最短の鍵長に設定する(S24)。
この鍵長は、図6の表により、ステップS19の場合と同様に定めることができる。例えば、生成に80bitのエントロピーが必要な乱数を送受信する場合には、112ビットの共通鍵と2048ビットのRSA公開鍵を用いるSSL暗号スイートを使用すればよいことがわかる。ただし、エントロピーの場合と同様、「最短」は必須ではない。
図4の説明に戻ると、CPU101は、ステップS23及びS24の後、ステップS24で決定した鍵長の暗号鍵を用いたSSL通信で、子機から乱数を受信する(S25)。この受信まで時間を要する場合もあるが、乱数を送信できない旨の応答がなければ、乱数の受信まで待機する。
その後、CPU101は、乱数の受信に成功したか否か判断する(S26)。子機から乱数を送信できない旨の応答があった場合には、この判断はNoとなる。この場合、CPU101は安全な乱数を取得できず、暗号鍵を生成できないため、ステップS12で検出した要求の送信元に、暗号鍵の生成が失敗したことを通知し(S27)、ステップS12に戻って次の要求を待つ。
一方、ステップS26でYesの場合、ステップS25で受信した乱数を用いて、ステップS12で検出した要求に係る暗号鍵を暗号モジュール123に生成させ、要求元に渡す(S22)。その後、ステップS12に戻って次の要求を待つ。
以上の処理中、ステップS13においてCPU101は選択手段として機能する。またステップS14〜S16の処理が決定手順の処理であり、この処理においてCPU101は決定手段として機能する。また、ステップS23〜S25においCPU101は取得手段として機能する。
以上の処理により、情報処理装置10は、暗号鍵生成要求の検出に応じて、必要に応じて子機からエントロピーや乱数を取得しつつ、暗号鍵を生成して要求元に提供することができる。
次に、図8に、子機である情報処理装置20のCPUが、図4及び図5CのステップS18で送信されるエントロピー取得要求を検出した場合に実行する処理のフローチャートを示す。
情報処理装置20のCPUは、エントロピー取得要求を検出すると、図8の処理を開始し、まずエントロピー蓄積部225に要求されたエントロピー量だけエントロピーを蓄積済みであるか否か判断する(S51)。蓄積済みでない場合、蓄積が完了するまで待機する(S52)。
そして、蓄積が完了すると、CPUは、図4の説明で述べたように、SSL通信に用いる鍵長を等価安全性で比較して送信するエントロピー量以上になる最短の鍵長に設定し(S53)、その鍵長の暗号鍵を用いたSSL通信で、要求された量のエントロピーを含むデータを要求元へ送信する(S54)。なお、この送信したデータは、RAMにおける蓄積領域から削除する。その後、現在のエントロピー量を、送信後に残ったエントロピー量に更新して(S55)、処理を終了する。
ステップS13において情報処理装置20のCPUはエントロピー送信手段として機能する。
以上の処理により、情報処理装置20は、親機からの要求に応じてエントロピーを提供することができる。
次に、図9に、子機である情報処理装置20のCPUが、図4及び図5DのステップS23で送信される乱数取得要求を検出した場合に実行する処理のフローチャートを示す。
情報処理装置20のCPUは、乱数取得要求を検出すると、図9の処理を開始し、まず要求において指定されたアルゴリズムで安全な乱数を生成できるか否か判断する(S61)。
この判断は、疑似乱数生成部224が指定されたアルゴリズムを持っていない場合にはNoになる。また、情報処理装置20も、図4のステップS11の場合と同様、脆弱性問い合わせ部228の機能によりサーバ装置30へ疑似乱数生成部224が持つ乱数アルゴリズムの脆弱性に関する問い合わせを行っている。そして、この問い合わせに応じて脆弱である旨が通知された乱数アルゴリズムは使用できないものとしてステップS61の判断を行う。
以上の結果、ステップS61の判断がNoである場合、CPUは要求に従った乱数を生成できない旨を要求元の情報処理装置10に通知して(S68)、処理を終了する。
一方、ステップS61でYesの場合、CPUは、要求で使用することを指定された量だけエントロピーがエントロピー蓄積部225に蓄積済みであるか否か判断する(S62)。蓄積済みでない場合、蓄積が完了するまで待機する(S63)。
そして、蓄積が完了すると、CPUは、蓄積済みのエントロピーをシードとして、乱数取得要求での指定内容に従い、疑似乱数生成部224で疑似乱数を生成する(S64)。なお、この乱数の生成に使用したデータは、RAMにおける蓄積領域から削除する。
その後、CPUは、図4の説明で述べたように、SSL通信に用いる鍵長を等価安全性で比較して送信する乱数の生成に用いたエントロピー量以上になる最短の鍵長に設定し(S65)、その鍵長の暗号鍵を用いたSSL通信で、生成した乱数を要求元へ送信する(S66)。そして、現在のエントロピー量を、乱数の生成後に残ったエントロピー量に更新して(S67)、処理を終了する。
以上の処理により、情報処理装置20は、親機からの要求に応じて乱数を生成して提供することができる。
次に、図10に、情報処理装置10及び情報処理装置20におけるエントロピー蓄積部125,225の状態遷移を示す。
状態1は、初期状態である。エントロピー(を示すデータ)はRAM上に置かれるため、機器の電源をONにしたときには、蓄積されているエントロピー量は0である。
状態2及び状態3は、エントロピーを蓄積中の状態である。この状態では、時間の経過に従い、蓄積されているエントロピー量は増加する。電源ON時には、状態1から速やかに状態2へ移行する。その後、親機の場合、図4のステップS17でエントロピー取得処理を実施している間、子機の場合、乱数取得要求もしくはエントロピー取得要求を受けてからそれに応じた図8又は図9の処理を終了するまで、状態3となる。これらの動作に必要なエントロピーが蓄積されていればただちに動作を終了して状態2に戻るが、そうでない場合、必要な量のエントロピーが蓄積されるまで状態3を継続することになる。
状態4は、RAMにフルにエントロピーが蓄積されている状態である。この状態では、さらなるエントロピーの蓄積は行わない。しかし、親機の場合の図4のステップS17や、子機の場合の図8又は図9の処理でエントロピーが使用されると、フル状態ではなくなるので、状態2に移行する。
以上のようにエントロピー蓄積部125,225は、所定の最大量のエントロピーを蓄積するまでは、常時エントロピーの蓄積を行う。このように、常時エントロピーを蓄積することにより、短い待ち時間でエントロピーを利用可能とすることができる。
以上説明してきた情報処理システム1によれば、情報処理装置10が、乱数の生成を行う場合に、エントロピー蓄積部125に必要なエントロピーが蓄積されるまでの時間と、子機から必要なエントロピーを取得するのに要する時間との比較に基づき、どちらから取得したエントロピーを用いて乱数を生成するか決定する。このことにより、暗号鍵を連続して生成して情報処理装置10のエントロピー蓄積部125が蓄積したエントロピーが枯渇したような場合でも、再度の蓄積を待つことなく乱数及び暗号鍵を生成することができる。従って、迅速に暗号処理を開始できる。
また、子機からエントロピーを取得する場合に、等価安全性で比較して取得するエントロピーの量以上の鍵長の暗号鍵を用いて暗号化された通信経路でエントロピーを取得するので、安全にエントロピーを取得することができる。この条件を満たす最短の鍵長を用いるようにすれば、短時間で取得できるという効果も得られる。
また、エントロピーや乱数の取得は、予め登録された子機から行うようにしているため、不正な装置から誤って脆弱なエントロピーや乱数を取得してしまうことがない。また、暗号化通信用の種々の鍵長の対応する暗号鍵を予め親機と子機の双方に設定しておくことが可能であり、適切な鍵長の暗号鍵を用いた通信を迅速に開始することができる。
また、情報処理装置10が乱数の生成を行う場合に、自身の疑似乱数生成部124により乱数を生成するか、子機に疑似乱数を生成させるかを選択することができる。このため、自身が必要な乱数アルゴリズムを持っていなかったり、あるいは自身の持つ乱数アルゴリズムが脆弱化したりしていた場合でも、特段ソフトウェア等を更新することなく、必要かつ安全な乱数アルゴリズムを用いて乱数を生成することができる。
特に、上記判断を、疑似乱数生成部124が使用可能な乱数生成アルゴリズムの脆弱性についてサーバ装置30に照会した結果に基づいて行うようにすれば、脆弱化した乱数アルゴリズムを誤って使用してしまうことがなく、セキュリティを確保することができる。
また、子機に乱数を生成させる場合に、等価安全性で比較してその乱数の生成に必要なエントロピー量以上の鍵長の暗号鍵を用いて暗号化された通信経路でエントロピーを取得するので、安全性に乱数を取得することができる。この条件を満たす最短の鍵長を用いるようにすれば、短時間で取得できるという効果も得られる。
なお、一旦情報処理装置10をリリースした後で情報処理装置10の疑似乱数生成部124が備える暗号アルゴリズムに脆弱性が発見された場合に、これをソフトのバージョンアップで対応しようとすると、多大な手間やコストがかかる。また、既にリリースした機器を全て辿って更新することができない場合もある。しかし、情報処理装置10に、サーバ装置30への照会と、その結果に基づき乱数アルゴリズムの選択や子機に乱数を生成させることの選択を行う機能を設けておけば、情報処理装置10自体を更新しなくても、脆弱な乱数アルゴリズムを使用させないことができる。従って、脆弱性が発見された場合の対処を、低コストかつ容易に行うことができる。
以上で実施形態の説明を終了するが、この発明において、装置の具体的な構成、具体的な処理の手順、装置の台数、データの構成、使用するアルゴリズムやプロトコル等は、実施形態で説明したものに限るものではない。
例えば、上述した実施形態では、エントロピーや乱数の送受信にSSLを用いたが、通信内容を暗号化可能な他のプロトコルを用いることも当然可能である。
また、図4のステップS11、S13及びS23乃至S27の処理を実行することは必須ではなく、エントロピーを自装置から取得するか外部装置から取得するかを選択するのみとしてもよい。逆に、ステップS14乃至S16及びステップS18乃至S20の処理を実行せず、乱数を自装置で生成するか外部装置に生成させるかを選択するのみとしてもよい。このようにしても、それぞれを選択可能とすることによる効果は得られる。
また、子機を親機に予め登録しておくことも必須ではなく、親機がエントロピーの取得先や乱数生成の依頼先を、これらが必要になった場合に検索する構成もあり得る。
また、上述した実施形態では、親機と子機が1対1である例について説明したが、これに限られることはない。1台の親機に複数の子機を登録して各子機にそれぞれ所要時間を問い合わせ、最も早くエントロピーを提供できる子機からエントロピーを取得するようにしてもよい。乱数の生成を依頼する場合にも、所要時間を予め取得して、最も早く生成が可能な子機に生成を要求してもよい。
また、1台の子機が、複数台の親機に登録されても問題ない。すなわち、親機は、任意の台数の子機を登録することが可能であるし、子機は、任意の台数の親機に登録されることが可能である。2台の情報処理装置が、相互に相手を子機として登録してもよい。
また、情報処理装置10と情報処理装置20のいずれかが、サーバ装置30を兼ねていてもよい。
また、各装置におけるエントロピー源126について、ランダム性を有する挙動をする部分が必ずしも装置内にある必要はない。装置がその挙動を検出することができれば、その検出手段がエントロピー源126として機能し得る。
また、図3に示した情報処理装置10あるいは情報処理装置20の機能を、複数の装置に分散して設け、それらの装置を協働させて、情報処理装置10あるいは情報処理装置20として機能させることも考えられる。
また、この発明のプログラムの実施形態は、コンピュータに所要のハードウェアを制御させて上述した実施形態における情報処理装置10あるいは情報処理装置20の機能(特に図3に示したもの)を実現させるためのプログラムである。
このようなプログラムは、はじめからコンピュータに備えるROMや他の不揮発性記憶媒体(フラッシュメモリ,EEPROM等)などに格納しておいてもよい。しかし、メモリカード、CD、DVD、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
また、以上説明してきた各実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
1:情報処理システム、10:情報処理装置(親機)、20:情報処理装置(子機)、30:サーバ装置、40,50:通信路、101:CPU、102:ROM、103:RAM、104:HDD、105:通信I/F、106:操作部、107:表示部、108:システムバス、121,221:通信部、122,222:アプリケーション、123,223:暗号モジュール、124,224:疑似乱数生成部、125,225:エントロピー蓄積部、126,226:エントロピー源、127:子機登録部、128,228:脆弱性問い合わせ部、227:証明書登録部
特許第4764061号公報

Claims (10)

  1. エントロピー源から得られる情報に基づきエントロピーを蓄積するエントロピー蓄積手段と、
    疑似乱数の生成を行う場合に、前記エントロピー蓄積手段に該疑似乱数の生成に必要なエントロピーが蓄積されるまでの時間と、外部の装置から該疑似乱数の生成に必要なエントロピーを取得するのに要する時間との比較に基づき、前記エントロピー蓄積手段が蓄積するエントロピーを該疑似乱数の生成に用いるか、前記外部の装置からエントロピーを取得して該疑似乱数の生成に用いるかを決定する決定手段とを備える情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記他の装置からエントロピーを取得する場合に、等価安全性で比較して取得するエントロピーの量以上の鍵長の暗号鍵を用いて暗号化された通信経路で該エントロピーを取得するエントロピー取得手段を備えることを特徴とする情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
    前記外部の装置は、当該情報処理装置に予め登録された装置であって、
    当該情報処理装置と前記外部の装置との双方に、前記エントロピー取得手段がエントロピーの取得に用いる通信経路を形成するための相互に対応する暗号鍵が予め登録されていることを特徴とする情報処理装置。
  4. 請求項1乃至3のいずれか一項に記載の情報処理装置であって、
    前記エントロピー蓄積手段は、所定の最大量のエントロピーを蓄積するまでは、常時エントロピーの蓄積を行うことを特徴とする情報処理装置。
  5. 請求項1乃至4のいずれか一項に記載の情報処理装置であって、
    疑似乱数生成手段と、
    疑似乱数の生成を行う場合に、前記疑似乱数生成手段により該疑似乱数を生成するか、外部の装置に疑似乱数を生成させるかを選択する選択手段とを備えることを特徴とする情報処理装置。
  6. 請求項5に記載の情報処理装置であって、
    前記選択手段は、前記疑似乱数生成手段が使用可能な乱数生成アルゴリズムの脆弱性について所定の照会先に照会した結果に基づき前記選択を行うことを特徴とする情報処理装置。
  7. 請求項5又は6に記載の情報処理装置であって、
    前記選択手段が前記外部の装置に疑似乱数を生成させることを選択した場合に、等価安全性で比較して、該疑似乱数の生成に必要なエントロピーの量以上の鍵長の暗号鍵を用いて暗号化された通信経路で、前記外部装置により生成された疑似乱数を取得する疑似乱数取得手段を備えることを特徴とする情報処理装置。
  8. 第1情報処理装置と第2情報処理装置とを備える情報処理システムであって、
    前記第1情報処理装置が、
    エントロピー源から得られる情報に基づきエントロピーを蓄積するエントロピー蓄積手段と、
    疑似乱数の生成を行う場合に、前記エントロピー蓄積手段に該疑似乱数の生成に必要なエントロピーが蓄積されるまでの時間と、前記第2情報処理装置から該疑似乱数の生成に必要なエントロピーを取得するのに要する時間との比較に基づき、前記エントロピー蓄積手段が蓄積するエントロピーを該疑似乱数の生成に用いるか、前記前記第2情報処理装置からエントロピーを取得して該疑似乱数の生成に用いるかを決定する決定手段とを備え、
    前記第2情報処理装置が、
    エントロピー源から得られる情報に基づきエントロピーを蓄積するエントロピー蓄積手段と、
    該エントロピー蓄積手段が蓄積したエントロピーを前記第1情報処理装置に送信するエントロピー送信手段とを備えることを特徴とする情報処理システム。
  9. 情報処理装置が、
    エントロピー源から得られる情報に基づきエントロピーを蓄積するエントロピー蓄積手順と、
    疑似乱数の生成を行う場合に、前記エントロピー蓄積手順により該疑似乱数の生成に必要なエントロピーが蓄積されるまでの時間と、外部の装置から該疑似乱数の生成に必要なエントロピーを取得するのに要する時間との比較に基づき、前記エントロピー蓄積手順で蓄積するエントロピーを該疑似乱数の生成に用いるか、前記外部の装置からエントロピーを取得して該疑似乱数の生成に用いるかを決定する決定手順とを実行することを特徴とする情報処理方法。
  10. コンピュータを、
    エントロピー源から得られる情報に基づきエントロピーを蓄積するエントロピー蓄積手段と、
    疑似乱数の生成を行う場合に、前記エントロピー蓄積手段に該疑似乱数の生成に必要なエントロピーが蓄積されるまでの時間と、外部の装置から該疑似乱数の生成に必要なエントロピーを取得するのに要する時間との比較に基づき、前記エントロピー蓄積手段が蓄積するエントロピーを該疑似乱数の生成に用いるか、前記外部の装置からエントロピーを取得して該疑似乱数の生成に用いるかを決定する決定手段として機能させるためのプログラム。
JP2014189326A 2014-09-17 2014-09-17 情報処理装置、情報処理システム、情報処理方法及びプログラム Pending JP2016061915A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014189326A JP2016061915A (ja) 2014-09-17 2014-09-17 情報処理装置、情報処理システム、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014189326A JP2016061915A (ja) 2014-09-17 2014-09-17 情報処理装置、情報処理システム、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2016061915A true JP2016061915A (ja) 2016-04-25

Family

ID=55797678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014189326A Pending JP2016061915A (ja) 2014-09-17 2014-09-17 情報処理装置、情報処理システム、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2016061915A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121375A (ja) * 2017-12-28 2019-07-22 富士通株式会社 トラステッド・エグゼキューション環境におけるセキュアハッシュ演算
CN110146318A (zh) * 2019-05-28 2019-08-20 格力电器(武汉)有限公司 解决空调熵检测试压力低的方法
JP2019139681A (ja) * 2018-02-15 2019-08-22 株式会社東芝 情報処理装置
JP2020506485A (ja) * 2017-02-08 2020-02-27 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft 特に自動化システム、制御システムまたは監視システムにおける診断および設定に関連して、itシステムにおける制御通信とitシステムへのサービスアクセスを暗号化保護するための方法およびコンピュータ
JP2021501358A (ja) * 2017-11-01 2021-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 暗号オブジェクトを管理する方法、コンピュータ実装方法、システムおよびプログラム
CN112306037A (zh) * 2019-07-31 2021-02-02 株式会社电装天 信息处理装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020506485A (ja) * 2017-02-08 2020-02-27 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft 特に自動化システム、制御システムまたは監視システムにおける診断および設定に関連して、itシステムにおける制御通信とitシステムへのサービスアクセスを暗号化保護するための方法およびコンピュータ
US11095444B2 (en) 2017-02-08 2021-08-17 Siemens Aktiengesellschaft Method and computer for cryptographically protecting control communication in and/or service access to IT systems, in particular in connection with the diagnosis and configuration in an automation, control or supervisory system
JP6999682B2 (ja) 2017-02-08 2022-01-18 シーメンス アクチエンゲゼルシヤフト 特に自動化システム、制御システムまたは監視システムにおける診断および設定に関連して、itシステムにおける制御通信とitシステムへのサービスアクセスを暗号化保護するための方法およびコンピュータ
JP2021501358A (ja) * 2017-11-01 2021-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 暗号オブジェクトを管理する方法、コンピュータ実装方法、システムおよびプログラム
JP7025101B2 (ja) 2017-11-01 2022-02-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 暗号オブジェクトを管理する方法、コンピュータ実装方法、システムおよびプログラム
JP2019121375A (ja) * 2017-12-28 2019-07-22 富士通株式会社 トラステッド・エグゼキューション環境におけるセキュアハッシュ演算
JP7176388B2 (ja) 2017-12-28 2022-11-22 富士通株式会社 トラステッド・エグゼキューション環境におけるセキュアハッシュ演算
JP2019139681A (ja) * 2018-02-15 2019-08-22 株式会社東芝 情報処理装置
CN110146318A (zh) * 2019-05-28 2019-08-20 格力电器(武汉)有限公司 解决空调熵检测试压力低的方法
CN112306037A (zh) * 2019-07-31 2021-02-02 株式会社电装天 信息处理装置

Similar Documents

Publication Publication Date Title
US11115200B2 (en) System, method, and apparatus for quantum key output, storage, and consistency verification
US11258792B2 (en) Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium
EP3338399B1 (en) Method, apparatus, terminal device and system for generating shared key
US9660985B2 (en) Service authorization using auxiliary device
JP5634427B2 (ja) 鍵生成装置、鍵生成方法およびプログラム
US8774415B2 (en) Key sharing device, key sharing method, and computer program product
US8122487B2 (en) Method and apparatus for checking proximity between devices using hash chain
JP5053179B2 (ja) 検証サーバ、プログラム及び検証方法
WO2016201732A1 (zh) 一种虚拟sim卡参数管理方法、移动终端及服务器
JP2019525350A (ja) 認証方法、装置及び認証クライアント
US20120167169A1 (en) Method, system, and computer-readable storage medium for authenticating a computing device
JP2016061915A (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP7183559B2 (ja) プリンタとプリンタのためのコンピュータプログラム
US9455827B2 (en) Communication apparatus, computer program product, and communication system
JP6967449B2 (ja) セキュリティチェックのための方法、デバイス、端末およびサーバ
US11343072B2 (en) Method and apparatus for providing service using kiosk
US20150358321A1 (en) Storage device, information processing apparatus, and information processing method
US20160269177A1 (en) Communication device, communication method, computer program product, and communication system
JP2011101367A (ja) 非対話型キー生成装置及び方法、並びにこれを用いた通信セキュリティー方法
US9083682B2 (en) Communication device and computer program product
US20130061059A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
US20230179404A1 (en) Hybrid cloud-based security service method and apparatus for security of confidential data
US10558412B2 (en) Content delivery network including mobile devices
JP6794160B2 (ja) 暗号化されたコンテンツの復号キーを安全に取得してコンテンツを再生するための方法およびシステム
US9928370B2 (en) Communication device, communication method, computer program product, and communication system