JP6232303B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6232303B2
JP6232303B2 JP2014017232A JP2014017232A JP6232303B2 JP 6232303 B2 JP6232303 B2 JP 6232303B2 JP 2014017232 A JP2014017232 A JP 2014017232A JP 2014017232 A JP2014017232 A JP 2014017232A JP 6232303 B2 JP6232303 B2 JP 6232303B2
Authority
JP
Japan
Prior art keywords
data
random number
unit
buffer
encryption
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.)
Active
Application number
JP2014017232A
Other languages
English (en)
Other versions
JP2015144373A (ja
Inventor
博隆 吉田
博隆 吉田
大和田 徹
徹 大和田
信 萱島
信 萱島
勝幸 桶屋
勝幸 桶屋
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2014017232A priority Critical patent/JP6232303B2/ja
Priority to EP15152875.9A priority patent/EP2902936B1/en
Publication of JP2015144373A publication Critical patent/JP2015144373A/ja
Application granted granted Critical
Publication of JP6232303B2 publication Critical patent/JP6232303B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報処理装置に係り、特に制御システムにおけるネットワークに接続した装置間の通信保護に関し、乱数を生成して暗号処理する方法を用いて、装置間の通信を保護する情報処理装置に関する。
鉄道、電力、水道、ガスを含む社会インフラを支える制御システムは、閉じたネットワーク内に構築されていた。また、制御システムは、専用のOSおよびプロトコルが使用されてきた。これにより、制御システムは、早期にオープン化、ネットワーク化が進展した情報システムとは異なり、ウィルスによる攻撃等のセキュリティ脅威にさらされることがない、または攻撃されても被害は発生しないと考えられてきた。
しかし、制御システムについても、インターネットへの接続頻度が増加している。また、制御システムのネットワーク装置へ汎用OSが採用され始めている。さらに、制御システムを攻撃対象としたウィルス(具体的にはスタクスネット)が出現している。
制御システムに対するセキュリティ基準は、これまで米国NIST、米国NERC、英国CPNIを含む各国の研究機関または業界団体が主体となり、各国の基準および業界標準を策定していた。しかし、全世界共通のセキュリティ基準の必要性から、2009年にIEC(International Electrotechnical Commission)において制御システムのセキュリティに関する国際標準の策定が開始されている。
このような流れを受け、制御システムにおいて、各種脅威から制御システムを保護するために、情報システムと同様のセキュリティ機能の導入およびセキュリティ対策運用が必要になっている。
セキュリティ技術の一つとして暗号技術が知られている。暗号技術は、格納データおよび通信データの秘匿性を保護する。暗号技術は、通信先の認証およびデータの改ざん検知も可能である。このため、暗号技術は、セキュリティ対策の根幹となる技術である。よって、制御システムを保護するために、今後、制御システム内の装置での暗号技術活用の重要性が増大する。
一方、制御システムは、センサの情報を基にバルブ(valve)またはアクチュエータ(actuator)を動作させ、あらかじめ設定されている圧力または温度を保つことが要求される。これらの処理は、制御コントローラを含む制御装置が実施する。
さらに、制御処理は、周期的動作であり、かつ実行周期は短い。したがって、データの更新頻度が高い。
制御機器同士の通信の内容は、センサからの測定データおよびアクチュエータへの制御データを含み、これらのデータは、機密にする必要がある。一方、機密性確保のために、制御システムに暗号技術を適用する際には、短周期処理のため、暗号処理に課される速度要件は厳しい。また、制御コントローラは、設置台数も多く低コストであることが要求される。このため、内蔵CPUも低コスト品を採用することとなり、暗号処理で使える計算リソース(CPUパワーおよび使用メモリ)は限られる。
暗号技術に対する厳しい速度要件を満たすための有効な手段として、ブロック暗号のCTR(カウンタ)モード、ECB(Electronic CodeBook)モード、CBC(Cipher Block Chaining)モードおよびストリーム暗号による暗号化処理が知られている。CTRモードとストリーム暗号の特徴として、処理が以下の二つのフェーズに分解できることがある。
フェーズ1:乱数生成処理
フェーズ2:排他的論理和処理
フェーズ1は、処理対象となる平文とは無関係に独立して行うことができる。このため、平文確定前に実行が可能である。フェーズ1の事前実行が可能であるという前提の下で、平文確定後に実行する必要があるフェーズ2の処理は、非常に負荷の小さな処理である。このため、二つのフェーズに分解できる暗号は、高速な暗号処理が可能である。
一方、ECBモード、CBCモードは、二つのフェーズに分解できず、平文確定後に、重い処理を実行する必要がある。すなわち、ECBモード、CBCモードは、処理分解と事前処理による高速化は不可能である。
CTRモードでは、秘密鍵および初期ベクトルから、あらかじめ暗号対象データの量と同程度の量の乱数を生成し、乱数格納バッファに格納する。しかし、安全性上の理由から、同一の乱数列を、異なる対象データの暗号化に繰り返し利用することができない。このため、暗号化処理に応じて、適切なタイミングで必要な量の乱数列を生成しなければならない。
また、通常、通信先毎に異なる暗号鍵を二者間で共有する。このことから、異なる通信先に対しては、異なる鍵から乱数を生成する必要がある。したがって、制御機器がn台の機器と通信する場合、その制御機器は通信先に応じn個の乱数確保用のバッファを用意する必要がある。
ある時刻において、暗号化用の乱数がバッファに十分あったとしても、以降の時刻においては、その時点までの暗号化通信で、ある通信先用の乱数の消費量が大きく、その通信先に対応する乱数格納バッファにアンダーフロー(Underflow)が生じることがある。必要な乱数を適切なタイミングで利用できなければ、その通信先との通信のリアルタイム性に影響を与える。
制御システムへの暗号適用においては、厳しい速度要件を満たすために、処理対象のデータの暗号領域をデータ全体でなく、データの必要な部分のみとして暗号化を行う部分暗号と呼ばれる処理が有効である。部分暗号は、あるデータに対して、秘匿性または完全性等の安全性に関して、保護すべき領域と、保護しなくてよい領域とをマスクと呼ばれるデータを用いて指定し、保護領域にのみ暗号処理を適用する。
部分暗号を利用した通信において、システムのユーザあるいは管理者が、制御サーバの特定の通信先の通信との一定の期間において、データの暗号対象領域を増加させることにより、安全性を一定時間向上させることができる。このような機能(暗号ブースト機能)をサポートすることは、今後制御システムのセキュリティにおいて有用である。この暗号ブースト機能の実現のためには、システム運用時に定常的に乱数を蓄積し、一定期間において暗号処理中の乱数使用量を増加できることが必要である。
以上を纏めると、制御システムのセキュリティを確保するためには、暗号処理に必要な乱数列の事前生成に、適切なバッファ制御を適用して、バッファアンダーフローを防止し、かつ乱数列を蓄積し、将来の安全性向上が必要な時に利用可能な技術が有効である。
特許文献1は、ケーブルTV、衛星TVネットワークを含む広帯域通信システムによるデジタルビデオデータの送信に際し、セットトップボックス(STB:Set-Top Box)および/またはネットワークのいくつかの中間ノードで通信する前に、ビデオデータの伝送速度を変更させる装置を低コストで実現する技術を開示する。
特許文献1の技術によれば、バッファ制御方式のみを使用してより低コストにてMPEG2データの伝送速度を調節することが可能となり、特に、MPEG2データを受信して再び送信する際に、該受信部のバッファにアンダーフローおよびオーバーフロー(Overflow)が発生することを防止して効果的にMPEG2データを送信することができる。
特開2005−223914号公報
制御システムには、以下の前提条件がある。
(1)受信周期が一致するとは限らないデータを受信するため、制御装置の負荷が変動する。
(2)通信先毎に送信周期が異なる。また、周期はmsオーダーであり、処理時間制約が厳しい。
(1)(2)の制約下において、制御システムに暗号技術を適用する際には、通信先毎に、乱数格納用のバッファを備え、適切なバッファ制御を適用して、バッファのアンダーフローを防止することが必要となる。しかし、特許文献1による技術では、下記の課題がある。
(1)アンダーフローの発生予測状況が生じると、バッファにバッファリングされたデータを読み込む動作を中止するため、通信にジッタ(ゆらぎ)を起こす。
(2)適切なバッファに適切なタイミングで、適切な量の乱数を供給することができない。
(3)特定の通信先に対して、部分暗号方式による通信において、一定の期間においてはデータの暗号対象領域を増加させることにより、安全性を一定時間向上させる(暗号ブースト)ことは、ジッタの懸念がある。
以上を纏めると、多数の通信先に対して、いかなる負荷状況においても、ジッタを起こさずに全ての通信先との暗号化通信を行い、特定に通信先との通信に対しては、暗号ブーストを行うために、制御装置が自身の負荷状況に基づき乱数を生成し、各バッファにおける乱数の残存量に基づき、適切なバッファに対し、適切なタイミングで、適切な量の、生成した乱数を分け与えるようにバッファを制御することと、また、通信先に応じては、それに対応するバッファに暗号ブースト用の乱数も適切に蓄積することが必要である。
本発明は、上記課題を解決するために、制御装置とネットワークから構成される制御システムにおいて、送信処理を行う制御装置と受信処理を行う制御装置の通信を、暗号処理によって保護する手段を具備する制御システムであって、該制御システムを構成する制御装置は、通信先に応じ乱数を格納するバッファ、格納バッファ制御部、バッファ残存量監視部、負荷状況監視部から構成される乱数生成部、オンライン暗号処理部から構成され、制御装置は、CPUの未使用率、各通信先用の乱数バッファにおける乱数の残存量、バッファ毎の暗号ブースト対応の要否の情報、一定時間内の乱数の予想消費量という入力を基に、一定時間内に全てのバッファで必要となる乱数を動的に生成し、バッファ毎に必要な乱数量を計算し、生成した乱数を必要な量だけ各バッファに提供する。
上述した課題は、 秘密鍵を格納する記憶部と、秘密鍵から乱数を生成するオフライン処理部と、乱数を格納するバッファ部と、演算部と、負荷状況監視部と、バッファ制御部と、オンライン処理部と、を備え、負荷状況監視部は、演算部の負荷状況を取得し、バッファ制御部は、負荷状況に基づいて、乱数の生成量を決定し、オンライン処理部は、第1のデータと乱数とに基づいて、第2のデータを生成する情報処理装置により、達成できる。
本発明によれば、高速な暗号化処理により通信路の安全性確保を行う制御装置が、CPU負荷が高くなった場合でも、ジッタ(ゆらぎ)を起こさずに、全通信先との暗号化通信できる。
通信が保護された制御システムの構成を説明するブロック図である。 送信装置と受信装置のハードウェアの構成を説明するブロック図である。 送信装置と受信装置との間のシーケンス図である。 送信装置と受信装置とにおけるオフライン乱数生成処理のフローチャートである。 バッファ制御部による生成する乱数量を決定するフローチャートである。 バッファ制御部による乱数生成量測定するためのフローチャートである。 バッファ制御部による乱数生成量を測定するフローチャートである。 バッファ制御部による乱数生成量を決定するフローチャートである。 ヘッダ生成部で生成されるヘッダのフォーマットである。 暗号送信データ/暗号受信データのフォーマットである。 マージン乱数割り当ての優先度ポリシーを説明する図である。 実施例2の送信装置の構成を説明するブロック図である。 送信装置と受信装置との間のシーケンス図である。 オフラインマスク生成処理のフローチャートである。 バッファ制御部による生成するマスク量を決定するフローチャートである。 バッファ制御部によるマスク生成量を測定するフローチャートである。 送信装置の構成を説明するブロック図である。
以下、本発明の実施形態について、実施例を用い、図面を参照しながら詳細に説明する。
(制御システムの構成)
図1を参照して、制御システムの構成を説明する。図1において、制御システム100は、送信装置110と、受信装置130と、制御サーバ140と、通信ネットワーク190と、を含んで構成されている。制御システム100は、通信ネットワーク190を介して、制御サーバ140からの指示を受信装置130が受信し、何らかの制御動作を行なう。制御システム100は、送信装置110からの送信データを受信装置130が受信し、何らかの制御動作を行なう。制御システム100は、送信装置110からの送信データを制御サーバ140が受信し、何らかの処理を行なう。
図1において、簡単化のために、送信機能を有する送信装置110、受信機能を有する受信装置130、制御サーバ140は、各々1台からなる制御システム100を示したが、各々の構成要素が複数存在しても構わない。また、送信機能を有する送信装置110は受信機能を有してもよく、受信機能を有する受信装置130は送信機能を有してもよい。
(送信装置)
送信装置110は、送信部111と、送信データ生成部112と、ヘッダ生成部113と、鍵情報記憶部114と、オンライン暗号処理部115と、オフライン乱数生成部127と、サーバ対応乱数格納バッファ118と、受信装置対応乱数格納バッファ119と、を含んで構成されている。
送信装置110は、自身の上で動作する制御アプリケーションから取得する暗号処理対象データを暗号化する。送信装置110は、暗号化データにヘッダを付加し、送信パケットを生成する。送信装置110は、送信パケットを受信装置130または制御サーバ140に送信する。乱数格納バッファは、暗号通信に必要な乱数を格納する。乱数格納バッファは、通信先毎に備える。
送信装置110は、暗号処理対象データに対して、送信先に対応する乱数格納バッファから暗号通信に必要な乱数を取り出す。オンライン暗号処理部115は、乱数を用いて、排他的論理和処理を行う。送信データ生成部112は、暗号処理済みデータとヘッダ生成部113が生成したヘッダから、送信用データを生成する。送信用データについて、送信部111は、制御サーバ140または受信装置130に送信する。
鍵情報記憶部114は、秘密鍵および関連する情報を格納する。送信部111は、外部への送信を行う。サーバ対応乱数格納バッファ118は、制御サーバ140との通信に対応するバッファである。受信装置対応乱数格納バッファ119は、受信装置130との通信に対応するバッファである。オンライン暗号処理部115は、暗号処理対象データとサーバ対応乱数格納バッファ118または受信装置対応乱数格納バッファ119内のデータを入力として暗号処理を行う。
オフライン乱数生成部127は、秘密鍵および初期ベクトルから、暗号処理対象データを入力せずに暗号処理の事前に乱数を生成する。オフライン乱数生成部127は、バッファ制御部116と、バッファ残存量監視部128と、負荷状況監視部117と、を含んで構成されている。
オフライン乱数生成部127は、負荷状況監視部117が監視した送信装置の負荷状況に応じて定められた総量の乱数を生成する。当該乱数について、バッファ制御部116は、通信先に対応する乱数格納バッファに生成した乱数を分配する。乱数格納バッファは、乱数を格納する。
バッファ制御部116は、サーバ対応乱数格納バッファ118と受信装置対応乱数格納バッファ119を制御する。負荷状況監視部117は、送信装置100の負荷状況を監視する。バッファ残存量監視部128は、乱数格納バッファの残存量を監視する。
なお、送信装置110は、2個の送信先に対応するため、乱数格納バッファとして、サーバ対応乱数格納バッファ118と受信装置対応乱数格納バッファ119の2個備える。しかし、より多くの通信先に対応できるように3個以上のバッファを備えても良い。
(受信装置)
受信装置130は、受信部131と、受信データ生成部132と、ヘッダ検証部133と、鍵情報記憶部134と、オンライン復号処理部135と、オフライン乱数生成部151と、乱数格納バッファ138と、乱数格納バッファ139と、を含んで構成されている。
受信部130は、復号処理対象データに対して、受信先に対応する乱数格納バッファから乱数を取り出す。取り出した乱数を用いてオンライン復号処理部135は、復号処理を行う。受信データ生成部132は、復号処理済みデータとヘッダ検証部133がヘッダを検証した結果に基づき、受信用データのペイロードデータを生成する。受信装置130は、当該データを取得し、制御を行う。
鍵情報記憶部134は、秘密鍵および関連する情報を格納する。受信部131は、外部からの受信を行う。乱数格納バッファ138は、制御サーバ140との通信に対応するバッファである。乱数格納バッファ139は、送信装置110との通信に対応するバッファである。オンライン復号処理部135は、暗号処理済みデータ(復号処理対象データ)と乱数格納バッファ138または乱数格納バッファ139内のデータを入力として、復号処理を行う。受信データ生成部132は、受信データを生成する、ヘッダ検証部133は、受信データのヘッダを検証する。
オフライン乱数生成部151は、秘密鍵および初期ベクトルから、暗号処理済みデータを入力せずに復号処理の事前に乱数を生成する。オフライン乱数生成部151は、バッファ制御部136と、バッファ残存量監視部152と、負荷状況監視部137と、を含んで構成されている。オフライン乱数生成部151は、負荷状況監視部137が監視した受信装置130の負荷状況に応じて定められた総量の乱数を生成する。当該乱数について、バッファ制御部136は、通信先に対応する乱数格納バッファに分配する。乱数格納バッファは、乱数を格納する。
バッファ制御部136は、乱数格納バッファ138と乱数格納バッファ139を制御する。負荷状況監視部137は、受信装置130の負荷状況を監視する。バッファ残存量監視部152は、乱数格納バッファの残存量を監視する。
なお、受信装置130は、2個の送信元に対応するため、乱数格納バッファとして、送信装置対応乱数格納バッファ138と制御サーバ対応乱数格納バッファ139の2個を備える。しかし、より多くの通信元に対応できるように3個以上のバッファを備えても良い。
(制御サーバ)
制御サーバ140は、暗復号処理部141と、通信部142と、ヘッダ生成部143と、ヘッダ検証部144と、制御業務監視部145と、送信データ生成部146と、受信データ生成部147と、鍵情報記憶部148と、通信データ保管部149と、暗号ブースト部161と、を含んで構成されている。
データを送信する場合、暗号処理対象データに対して、暗復号処理部141は、暗号処理を行う。送信データ生成部146は、暗号処理済みデータとヘッダ生成部143が生成したヘッダから、送信用データを生成する。当該データについて、通信部142は、送信装置110または受信装置130に送信する。
データを受信する場合、復号処理対象データに対して、暗復号処理部141は、復号処理を行う。受信データ生成部147は、復号処理済みデータとヘッダ検証部144がヘッダを検証した結果に基づき、受信用データのペイロードデータを生成する。制御サーバ140は、当該データを取得し、制御を行う。鍵情報記憶部148は、秘密鍵および関連する情報を格納する。制御業務監視部145は、送信装置と受信装置の通信および制御業務の状況を監視する。通信部142は、外部との通信を行う。通信データ保管部149は、通信データを保管する。暗号ブースト部161は、システム管理者が指定した時間間隔で、暗号処理における乱数使用量を大きくすることにより、特定の機器との暗号通信の安全性を向上させる。
なお、送信装置110、受信装置130、制御サーバ140は、いずれも情報処理装置である。
(制御装置のハードウェア構成)
図2を参照して、送信装置110と受信装置130のハードウェアを説明する。図2において、送信装置110と受信装置130は、それぞれ、通信装置11と、入出力装置12と、CPU14と、メモリ15と、を含んで構成されている。
CPU14は、演算を行う。入出力装置12は、センサから信号を入力され、アクチュエータに信号を出力する。メモリ15は、処理結果を一時格納する。通信装置11は、センサまたはアクチュエータと通信する。通信装置11は、また、送信装置110(または受信装置130)および制御サーバ140と通信する。
(送信装置と受信装置の暗号通信フロー)
図3を参照して、送信装置110が平文データを暗号化した後に送信し、受信装置130が受信し、受信データを復号化し、ペイロードデータを取得するフローを説明する。図3において、送信装置110のオフライン乱数生成部127は、暗号データ送信処理の前に、暗号対象データを入力せずに処理可能なオフライン乱数生成処理を行う(S201)。暗号データ送信処理に関して、送信装置110は、はじめに送信先を取得する(S202)。送信装置110は、暗号化の際に用いる暗号アルゴリズムおよび初期ベクトルに基づきヘッダを生成する(S203)。送信装置110は、暗号化の際に用いる暗号アルゴリズムが、乱数を利用するかどうかを判定する(S204)。YESのとき、送信装置110は、乱数を受信装置対応乱数格納バッファ119から取得する(S205)。ステップ204でNOのとき、送信装置110は、ステップ205をスキップする。
オンライン暗号処理部115は、取得した乱数を用いて平文データを暗号化して、暗号データを得る(S206)。送信データ生成部112は、ヘッダと暗号データを用いて、暗号化送信データを生成する(S207)。ここで、必要に応じて、暗号化送信データに関して、改ざん検知のためのメッセージ認証子(MAC)の生成を行い、暗号化送信データに連結してもよい。送信部111は、暗号化送信データを送信する(S208)。暗号化送信データ送信のあと、送信装置110は、乱数生成処理(S201)に戻って繰り返し処理を行う。このように、送信処理を行う送信装置110は、システム運用中に、乱数を動的に生成しながら、暗号処理を行う。
受信装置130のオフライン乱数生成部127は、暗号データ送信処理の前に、暗号対象データを入力せずに処理可能なオフライン乱数生成処理を行う(S301)。暗号データ受信処理に関して、受信部131は、暗号化送信データを受信する(S302)。受信部131は、受信データから送信元または受信先を取得する(S303)。受信装置130は、ヘッダを検証し、復号化の際に用いる暗号アルゴリズムおよび初期ベクトルを取得する(S304)。ここで、必要に応じて、改ざん検知処理を行う。具体的には、MACが送信データに連結された場合、受信装置130は、対象データのMACを計算し、送信データに連結されたMACを参照することで改ざん検知を行う。受信装置130は、送信元に対応する乱数を乱数格納バッファから取得する(S305)。オンライン復号処理部135は、取得した乱数を用いて、暗号文を復号化することにより、平文データ(ペイロードデータ)を得る(S307)。ペイロードデータを得た後、受信装置130は、乱数生成処理(S301)に戻って処理を行う。このように、受信装置130は、システム運用中に、乱数を動的に生成しながら、復号処理を行う。
(オフライン乱数生成フロー)
図4を参照して、送信装置と受信装置が、通信先に応じ、暗号通信するために用いるオフライン乱数生成処理を説明する。なお、図4ないし図8において、送信装置の処理として説明するが、受信装置も同様である。
図4において、オフライン乱数生成部127は、乱数格納バッファ118と乱数格納バッファ119それぞれにおける乱数生成量を取得する(S501)。なお、各バッファの乱数生成量を決定するフローに関しては、図5で説明する。オフライン乱数生成部127は、鍵情報を鍵情報格納部114から取得する(S502)。オフライン乱数生成部127は、取得した鍵情報を暗号アルゴリズムに入力することにより、乱数格納バッファ118と乱数格納バッファ119に関して、取得した乱数生成量の分の乱数の生成を行う(S503)。オフライン乱数生成部127は、生成した乱数を乱数格納バッファ118、119に格納して(S504)、リターンする。
(各バッファの乱数量決定のためのフロー)
図5を参照して、バッファ制御部116がサーバ対応乱数格納バッファ118、受信装置対応乱数格納バッファ119のそれぞれにおいて生成する乱数量を決定するフローを説明する。図5において、バッファ制御部116は、全てのバッファ、すなわち、サーバ対応乱数格納バッファ118と受信装置対応乱数格納バッファ119において生成する乱数量を測定する(S412)。この量を全バッファ総乱数生成量と定義する。バッファ制御部116は、各バッファで生成が必要な乱数量を測定する(S413)。この量をバッファ依存必要乱数量と定義する。バッファ制御部116は、各バッファにおける乱数生成量を最終決定して(S414)、リターンする。この量をバッファ依存最終乱数生成量と定義する。
これらの処理内容の詳細については、図6、図7、図8により、それぞれ後述する。
(バッファ制御の基本フローにおける各処理に関する用語の定義)
バッファ制御の基本フローにおける各処理の説明準備として、以下のように用語の定義を行う:
G(t)を時刻tにおいて生成する乱数量(単位:バイト)とし、
bi(t)を時刻tにおいてi番目のバッファBUFiで生成する乱数量とし、
ci(t)を時刻tにおいてi番目のバッファBUFiで消費する乱数量とし、
ri(t)を時刻tにおいてi番目のバッファBUFiに残存する乱数量とし、
事前に定めた正数T0に対し、Ci(t)を時刻tから時刻t+T0においてi番目のバッファBUFiで消費する乱数量とする。
ここで、G(t)は、時刻tにおける乱数生成を行う装置のCPU未使用率に依存し、CPU未使用率が大きければ、G(t)も大きい。
また、Ci(t)はci(x)の時刻tから時刻t+T0における積分である式1で与えられる。
Figure 0006232303
制御システムにおける通信においては、一般的に以下の要件が考えられる。
・要件”1”:対象制御システムの通信データの量により、Ci(t)は決まる。システム試運転時等において、Ci(t)を求めてもよい。
・要件”2”:任意の時刻、任意のバッファにおいて、暗号処理を行うために、乱数の量が0以上であること、すなわち、バッファアンダーフローが生じないことが必要である。すなわち、任意のバッファBUFiと任意の時刻tに対し、ri(t)≧0
・要件”3”:時刻tにおいて、各バッファ(総数:n)に割り当てるために生成する乱数量の和は、G(t)以下である。すなわち、式2を満たすことが好適である。
b1(t)+b2(t)+…+bn(t)≦G(t)…(式2)
以上の定義、用語、要件を踏まえ、バッファ制御部における処理フローの各処理について説明する。なお、ここでは、要件”1”〜”3”を満たす事前乱数生成を行う。しかし、要件が満たされない場合、暗号処理のタイミングでの乱数生成、すなわち、on−the−flyによる乱数生成を行っても良い。
(全バッファの乱数生成量測定処理(S412)のための詳細フロー)
図6を参照して、バッファ制御部116が、全バッファの乱数生成量測定するためのフローを説明する。図6において、送信装置110は、時刻情報tを取得する(S402)。送信装置110は、CPUの未使用率を取得することにより、CPU負荷状況を取得する(S403)。送信装置110は、取得したCPU負荷状況に基づき、各送信先に対応する各乱数格納バッファに分配するために生成する乱数の総量G(t)を決定して(S404)、リターンする。
(各バッファで必要な乱数生成量測定処理(S413)のための詳細フロー)
図7を参照して、バッファ制御部116が、全バッファの乱数生成量測定するためのフローを説明する。図7において、バッファ残存量監視部128は、時刻tでi(i=1,2)番目のバッファBUF(i)において残存する乱数量ri(t)を取得をする(S601)。バッファ残存量監視部128は、時刻tから時刻t+T0の期間で、i番目のバッファBUF(i)で消費する乱数量Ci(t)を計算することにより、各バッファの乱数消費量の予測を行う(S602)。
ここで、Ci(t)は、ci(x)の時刻tから時刻t+T0における積分により計算する。また、取得した時刻から一定の時刻までに消費する乱数の量Ci(t)は、通信データの周期性等の特性を用いて予測して計算してもよい。
バッファ残存量監視部128は、各iに対して、条件Ci(t)−ri(t)>0を満たすiかを判定する(S603)。YESのとき、バッファ残存量監視部128は、時刻tでi番目のバッファBUF(i)で生成する乱数量bi(t)=Ci(t)−ri(t)を計算して(S604)、リターンする。
ステップ603でNOのとき、バッファ残存量監視部128は、bi(t)=0、すなわち、生成する乱数量は0として(S605)、リターンする。なお、ステップ601からステップ605は、全てのバッファに対して行う。
(各バッファの乱数生成量の最終決定(S414)のためのフロー)
図8を参照して、バッファ制御部116が、各バッファの乱数生成量の決定するためのフローを説明する。図8において、バッファ制御部116は、乱数生成に関する自由度F(t)をF(t)=G(t)−(b1(t)+b2(t)+…+bn(t))により計算する(S801)。バッファ制御部116は、乱数生成に関するポリシーを取得する(S802)。取得したポリシーに基づき、バッファ制御部116は、各バッファに関する自由度fi(t)を計算する(S803)。
各バッファに関し、バッファ制御部116は、乱数生成量bi(t)に自由度fi(t)を加算、すなわち、bi(t)=bi(t)+i(t)を計算して(S804)、リターンする。バッファ制御部116は、このbi(t)をバッファbi(t)の乱数生成量と最終決定する。
(ヘッダの構成)
送信装置110と受信装置130の間で、どのようなフォーマットを持つデータを通信すれば、実際に暗号通信を行うことができるかを示すために、各処理で用いられる各種情報の構成を説明する。
図9を参照して、部分暗号による通信保護システムにおいて、ヘッダ生成部113で生成されるヘッダの構成を説明する。なお、以下では、図9の「#」の番号nを用いて、各項目の符号を900−n(n=1〜9)と表記する。
図9において、ヘッダ900は、暗号通信フラグ900−1と、通信処理ID900−2と、マスク情報900−3と、暗号用アルゴリズムID900−4と、暗号用鍵ID900−5と、暗号用初期ベクトル900−6と、改ざん検知用アルゴリズムID900−7と、改ざん検知用鍵ID900−8と、改ざん検知用初期ベクトル/改ざん検知用処理データ900−9と、を含む。
暗号通信フラグ900−1は、暗号通信の有無を示す情報である。通信処理ID900−2は、暗号通信時の処理内容を示す情報である。マスク情報900−3は、暗号化を実施するデータの位置を特定する情報である。暗号用アルゴリズムID900−4は、暗号化を実施する際に利用するアルゴリズムを識別する情報である。暗号用鍵ID900−5は、暗号化を実施する際に利用する鍵を識別する情報である。暗号用初期ベクトル900−6は、暗号化を実施する際に利用する初期ベクトルの情報である。改ざん検知用アルゴリズムID900−7は、改ざん検知を実施する際に利用するアルゴリズムを識別する情報である。改ざん検知用鍵ID900−8は、改ざん検知を実施する際に利用する鍵を識別する情報である。改ざん検知用初期ベクトル/改ざん検知用処理データ900−9は、改ざん検知を実施する際に利用する初期ベクトルや処理データの情報である。
暗号通信フラグ900−1が「01」の場合、暗号化および復号化の処理を行う。暗号用アルゴリズムID900−4、暗号用鍵ID900−5および暗号用初期ベクトル900−6は、オンライン暗号処理部115およびオンライン復号処理部135で使用される。暗号通信フラグ900−1、通信処理ID900−2およびマスク情報900−3も暗号化および復号化に必要な情報である。
改ざん検知用アルゴリズムID900−7、改ざん検知用鍵ID900−8および改ざん検知用初期ベクトル/改ざん検知用処理データ900−9は、MACであり、暗号処理部114および復号処理部134で使用される。
なお、暗号通信フラグ900−1が「00」の場合、暗号化および復号化の処理は行われず、図9のデータ900−2〜900−9は存在しない。
ここで、暗号通信で送受信されるデータパケット構成は、暗号化処理を行うレイヤー(IP層やトランスポート層)に依存するため、ヘッダ900の構成要素とサイズは、図9に限定されるものではない。また、ヘッダ900の構成要素の順序も、図9に限定されるものではない。
(暗号送信データ/暗号受信データの構成)
図10を参照して、部分暗号による通信保護システム100において、送信装置110と受信装置130間で通信される暗号送信データ/暗号受信データの構成を説明する。以下では、図10に示す表の各行の番号nを用いて、各項目の符号を(910−n)(n=1〜3)と表記する。
暗号送信データ/暗号受信データ910は、暗号通信の有無や暗号アルゴリズム、暗号鍵等を示す情報であるヘッダ910−1と、ペイロードデータ910−2と、それらのMACデータ910−3から構成される。
ヘッダ910−1には、図9に示したデータ900−1〜900−9が含まれる。ペイロードデータ910−2には、平文、あるいは、暗号化対象以外の他の平文と暗号データとの組が含まれる。
ここで、暗号送信データ/暗号受信データ910の構成要素は、図10に限定されるものではない。暗号用アルゴリズムID900−4と暗号用鍵ID900−5は、それぞれ、暗号アルゴリズムの識別のために、また、暗号用鍵の識別のために、実施の際には必要である。また、暗号送信データ/暗号受信データ910の構成要素の順序は、図10に限定されるものではない。
(マージン乱数の割り当てポリシー)
図11を参照して、図8のステップ802で取得されるポリシーを説明する。図11において、送信装置110は、通信保護システム100内の機器に対し優先度に、応じたグルーピングを行う。送信装置110は、優先度に応じ、マージン乱数を割り当てる。このため、送信装置110は、マージン乱数割り当ての優先度ポリシー920を参照する。
以上、実施例1によれば、受信が集中時に、CPU負荷が高くなった場合でも、ジッタ(ゆらぎ)を起こさずに、高速な暗号化処理により通信路の安全性確保を行う制御装置が、全通信先との暗号化通信を継続可能である。
また、本実施例により、CPU能力の余力を利用して、暗号処理につかう乱数を蓄積していくことが可能なため、ある時点で、システム管理者が、暗号通信の安全性を向上する必要があると判断した場合でも、蓄積した乱数を使用してより多くのデータを暗号化する機能(暗号ブースト機能)の利用により、システム管理者は指定した時間間隔における暗号通信の安全性を向上することができる。
(部分暗号方式で用いるマスクの動的生成処理を行う制御装置)
実施例1は、ペイロードの全部分が暗号化対象である一般的な暗号方式、または、部分暗号方式において、ブロック暗号のカウンタモードの処理分解と事前処理が可能な処理を利用する際、暗号化処理の必要に応じて適切なタイミングで、乱数生成処理の事前処理を必要な量を出力し、乱数の出力データを通信先に対応するバッファに適切に割り当てる。
一方、実施例2は、実施例1と異なり、部分暗号方式のみ、すなわち、ペイロードに暗号対象部と非対象部が混在する。部分暗号方式に関して、ペイロードの保護領域を決めるためのデータであるマスクは、通信先およびアプリに依存する。通信先の変更、または、同じ通信先でもアプリの変更に応じて、マスクも変更する必要が生じる。この必要性に対応するために、マスクの生成または変更という処理を実施しなければならない。しかし、安全なマスクデータの生成を行うためには、暗号学的生成した乱数をマスクデータとする方法が有効である。しかし、この方法による計算コストは高く、適切に実施しなければ、制御業務に必要なリアルタイム性に悪影響を与える。
そこで、実施例2では、部分暗号方式に対応するために、制御業務に悪影響を与えず、かつ、通信先に対応した安全なマスクの動的生成処理を行う。実施例2は、部分暗号方式の処理を、事前処理であるマスク生成処理とそのマスクを利用した部分暗号処理という処理に分解する。暗号化処理の必要に応じて適切なタイミングで、マスク生成処理を必要な量のマスクを出力する。そして、出力したマスクを通信先に対応するバッファに適切に割り当てる。
実施例2のユースケースは、新規にアプリケーションが導入された場合、ペイロードにおける保護すべき領域はアプリケーションが指定する。したがって、このアプリケーションに対応する新しいマスクを生成する必要がある。特に、動的にアプリケーションが導入された場合には、制御システムの運用を続けるため、マスクの変更を動的に行うことが好ましい。
マスクに関しては、通信先ごとに異なるマスクを使用する。また、一般に、マスクは、そのデータ長がより大きければ、情報の保護と非保護に関する選択制御をより細かく実施できる。したがって、保護の優先度に応じて、通信先毎に、マスクの長さも変わる可能性がある。
また、マスクの動的生成と変更に関しては、変更前のマスクを完全に変更後のマスクに置き換える必要はない。変更後のマスクが変更前のマスクより長い場合、変更前のマスクに生成したビットを連結することで、マスクを延長して、それを変更後のマスクとすることも可能である。
図12を参照して、実施例2における制御装置の構成を説明する。図12において、送信装置110Aは、送信部111と、送信データ生成部112と、ヘッダ生成部113と、鍵情報記憶部114と、オンライン暗号処理部115と、オフラインマスク生成部123と、マスク格納バッファ120と、マスク格納バッファ121と、マスク生成ポリシー情報格納部122と、を含んで構成されている。
送信装置110Aは、通信パケットの暗号処理対象部に対してのみ暗号処理を行う部分暗号方式による暗号通信を行う。ここで、送信装置110Aは、暗号対象パケットにおける暗号処理対象部を指定するデータであるマスクを用いる。
送信装置110Aは、暗号処理対象データに対して、送信先に対応するマスク格納バッファからマスクを取り出す。このマスクを用いてオンライン暗号処理部115は、暗号処理を行う。送信データ生成部112は、当該暗号処理済みデータとヘッダ生成部113が生成したヘッダから、送信用データを生成する。当該データについて、送信部111は、制御サーバ140または受信装置130に送信する。
鍵情報記憶部114は、秘密鍵および関連する情報を格納する。送信部111は、外部への送信を行う。マスク格納バッファ120は、制御サーバ140との通信に対応するバッファである。マスク格納バッファ121は、受信処理を行う受信装置130との通信に対応するバッファである。オンライン暗号処理部115は、暗号処理対象データと上記マスク格納バッファ120またはマスク格納バッファ121内のデータを入力として暗号処理を行う。
オフラインマスク生成部123は、暗号処理対象データを入力せずに暗号処理の事前にマスクを生成する。オフラインマスク生成部123は、バッファ制御部116と、負荷状況監視部117と、を含む。オフラインマスク生成部123は、マスクを生成する。当該マスクについて、バッファ制御部116は、通信先に対応するバッファに生成したマスクを分配する。マスク格納バッファ120、121は、分配されたマスクを格納する。
バッファ制御部116は、マスク格納バッファ120とマスク格納バッファ121を制御する。負荷状況監視部117は、送信装置の負荷状況を監視する。
送信装置110Aは、これらの処理部を用いて、マスクの動的生成処理を行う。
なお、実施例2において、送信装置110Aは、2個の送信先に対応するため、マスク格納バッファとして、マスク格納バッファ120とマスク格納バッファ121の2個備える。しかし、より多くの通信先に対応できるように3個以上のバッファを備えても良い。(送信装置110Aと受信装置130の暗号通信フロー)
図13を参照して、送信装置110Aが平文データを暗号化した後に送信し、受信装置130が受信し、受信データを復号化し、ペイロードデータを取得するフローを説明する。図13において、送信装置110Aは、暗号データ送信処理の前に、暗号対象データを入力せずに処理可能なマスク生成処理を行う(S211)。オフラインマスク生成処理に関しては、図14にて詳細に説明する。
暗号データ送信処理に関して、送信装置110Aは、はじめに送信先を取得する(S212)。暗号化の際に用いる暗号アルゴリズムおよび初期ベクトルを使用し、送信装置110Aは、ヘッダを生成する(S213)。送信装置110Aは、送信先に対応するマスクをマスク格納バッファ120から取得する(S214)。
送信装置110Aは、取得したマスクを用いて平文データを部分暗号処理することにより、暗号処理済データを得る(S215)。送信装置110Aは、ヘッダと暗号データを用いて、送信データを生成する(S216)。ここで、必要に応じ送信データに関する改ざん検知処理を行っても良く。また、この処理のためのメッセージ認証子生成に関しても、部分的にデータを抽出して行っても良い。送信装置110Aは、送信データを送信する(S217)。暗号化送信データ送信後、送信装置110Aは、マスク生成処理(S211)に戻って処理を行う。このように、送信処理を行う送信装置110Aは、システム運用中に、マスクを動的に生成しながら、暗号処理を行う。
暗号データ受信処理に関して、受信装置130は、暗号化送信データを受信する(S311)。受信装置130は、受信データから送信元または受信先を取得する(S312)。受信装置130は、受信データを検証し、復号化の際に用いる暗号アルゴリズムおよび初期ベクトルを取得する(S313)。ここで、必要に応じて改ざん検知処理を行ってもよい。
受信装置130は、送信元に対応するマスクについて、受信データまたはマスク格納バッファから取得する(S314)。受信装置130は、マスクを用いて、暗号化対象部を取り出し、復号化する(S315)。受信装置130は、平文データを得て(S316)、ステップ311に遷移する。
(オフラインマスク生成フロー)
図14を参照して、送信装置110Aが、通信先に応じ、暗号通信するために用いるオフラインマスク生成処理を説明する。図14において、オフラインマスク生成部123は、マスク格納バッファ120とマスク格納バッファ121それぞれにおけるマスク生成量を取得する(S511)。各バッファのマスク生成量を決定するフローに関しては、図16を参照して、詳細に説明する。
マスク生成部123は、鍵情報を鍵情報格納部114から取得する(S512)。マスク生成部123は、マスク生成ポリシー情報格納部122から、マスク生成ポリシー情報を取得する(S513)。マスク生成部123は、取得した情報を入力とするマスク生成アルゴリズムを計算し、マスク格納バッファ(120)に関して、取得したマスク生成量の分のマスクの生成を行う(S514)。マスク生成部123は、取得したマスクについて、生成したマスクをマスク格納バッファ120に格納して(S215)、リターンする。なお、マスク生成ポリシーに関して、システム管理者、アプリケーションの管理者またはユーザ等が設定する。
(各バッファのマスク量決定のためのフロー)
図15を参照して、バッファ制御部116による、マスク格納バッファ120、マスク格納バッファ121のそれぞれにおいて生成するマスク量を決定する処理を説明する。図15において、バッファ制御部116は、マスク格納バッファ120とマスク格納バッファ121において生成するマスク量を測定する(S422)。マスク生成部123は、各バッファで生成が必要なマスク量を測定する(S423)。マスク生成部123は、各バッファにおけるマスク生成量を最終決定して(S424)、リターンする。
ステップ423の内容の詳細については、図16により後述する。なお、ステップ424については、実施例1における図6と図8のそれぞれの処理において、乱数をマスクに置き換えることで、同様に処理が行えるので省略する。
(各バッファで必要なマスク生成量測定処理(S423)のための詳細フロー)
図16を参照して、バッファ制御部116による、全バッファのマスク生成量測定する処理を説明する。図16において、マスク生成部123は、現時刻で使用されているマスク自体およびマスクの長さを含むマスク情報を取得する(S611)。マスク生成部123は、各バッファに対して、マスク生成量が0より大きいか判定する(S613)。YESのとき、マスク生成部123は、当該バッファで生成するマスク量を計算して(S614)、リターンする。ステップ613でNOのとき、マスク生成部123は、生成マスク量を0として(S615)、リターンする。
ここで、マスク量に関しては、ステップ611で取得したマスク情報に基づいてもよい。具体的には、新マスクを現マスクに追加のビットを連結することで生成する場合、マスク生成する量は、この追加のビットの量のみでよい。
(メッセージ認証子(HMAC)の中間値の動的生成処理を行う送信装置)
実施例1において、制御システムが扱うデータの秘匿性に関して、暗号処理によるデータ保護を実施する場合を説明した。これに対して、実施例3は、制御システムが扱うデータの真正性に関して、改ざん検知処理によるデータ保護を実施する場合を説明する。データの改ざんを検知するために、ハッシュ関数に基づくメッセージ認証子(HMAC:Hash-based Message Authentication Code)生成という標準技術が知られている。
実施例1のCTR(カウンタ)モードとストリーム暗号と同様に、HMACの特徴として、処理は、中間ハッシュ値生成処理とMAC生成処理の二つのフェーズに分解できる。中間ハッシュ値生成は、処理対象となる平文とは無関係に独立して行うことができる。このため、事前に(平文確定前に)実行が可能である。
しかし、実施例1の場合と異なり、n+1ブロックから成る平文データの処理おいては、事前計算可能な部分は、構成暗号プリミティブであるハッシュ関数の1回分の呼び出し処理のみである。残りのnブロックの処理に対応するn回のハッシュ関数の呼び出し処理は、事前に行うことはできない。
しかし、制御システムのように、情報システムで扱うデータに比べ、一般的に短いデータを扱う場合において、上記のように、暗号処理から事前処理を切り分けて実行することは有効である。また、実施例1では、平文毎に乱数を事前に生成し、平文を暗号化する度に乱数を消費したが、実施例3における中間ハッシュ値生成処理は、鍵を設定・変更した時にのみ、実施する処理である。しなわち、生成した中間ハッシュ値は、次の鍵の設定・変更時まで有効に使え、消費されることはない。したがって、実施例1と同様に、事前処理で生成したデータである中間ハッシュ値を格納するバッファを備える。しかし、実施例1と異なり、実施例3では、バッファ残存量監視部は備えない。
このハッシュ関数に基づくメッセージ認証子の生成に関して、検知対象データを入手する前に、鍵のみを入力としてハッシュ値の中間値を事前に計算可能である。一方、この事前処理については、通常、データ1ブロック分のハッシュ関数を計算することによる中間ハッシュ値の生成処理コストがある。制御システムはmsオーダーの短周期処理であり、この処理を適切に実行しなければ、制御業務に影響を与えかねない。
ユースケースとしては、HMACに用いる鍵が動的に更新された場合、前の鍵で計算された中間ハッシュ値は無効になる。このため、新たに更新後の鍵を用いて中間ハッシュ値の計算を再実施する必要ある。実施例3により、この計算処理を制御業務に影響を与えないように、適切に実行する。実施例3に関連するユースケースは、多数の通信先がグループ分けされ、グループに応じて鍵更新をするような状況において、すなわち、あるグループは鍵更新を行い、その他のグループは鍵更新を行わないような状況において、中間ハッシュ値の生成処理を行うというユースケースである。ここでは、送信装置は、更新機器のグループに対応するバッファの中身のみを更新し、他のグループに対応するバッファの中身は更新しない、特に、バッファごとに更新に関する判断が生じる。このような場合において、実施例の適用は有効となる。
実施例3における送信装置のシステム構成は、実施例1におけるシステム構成において送信装置110を送信装置110Bに置き換えたものである。
図17を参照して、実施例3の送信装置の構成を説明する。図17において、送信装置110Bは、通信パケットの暗号処理対象部に対してのみ暗号処理を行う部分暗号方式による暗号通信を行う。ここで、送信装置110Bは、暗号対象パケットを完全性に関して保護するメッセージ認証方式を用いる。
送信装置110Bは、送信部111と、送信データ生成部112と、ヘッダ生成部113と、鍵情報記憶部114と、オンライン暗号処理部115と、オフライン中間ハッシュ値生成部124と、中間ハッシュ値格納バッファ125と、中間ハッシュ値格納バッファ126と、を備える。
送信装置110Bは、暗号処理対象データに対して、送信先に対応する中間ハッシュ値格納バッファから中間ハッシュ値を取り出す。中間ハッシュ値を用いてオンライン暗号処理部115は、暗号処理を行う。送信データ生成部112は、暗号処理済みデータとヘッダ生成部113が生成したヘッダに基づいて、送信用データを生成する。生成データについて、送信部112は、制御サーバ140または受信装置130に送信する。
鍵情報記憶部114は、秘密鍵および関連する情報を格納する記憶部である。送信部111は、外部への送信を行う。中間ハッシュ値格納バッファ125は、制御サーバ140との通信に対応するバッファである。中間ハッシュ値格納バッファ126は、受信処理を行う受信装置130との通信に対応するバッファである。オンライン暗号処理部115は、暗号処理対象データと、中間ハッシュ値格納バッファ125または中間ハッシュ値格納バッファ126のデータとを入力として、暗号処理を行う。
オフライン中間ハッシュ値生成部124は、暗号処理対象データを入力せずに暗号処理の事前に中間ハッシュ値を生成する。オフライン中間ハッシュ値生成部124は、バッファ制御部116と、負荷状況監視部117と、を含んで構成されている。オフライン中間ハッシュ値生成部124は、中間ハッシュ値を生成する。オフライン中間ハッシュ値生成部124が生成した中間ハッシュ値について、バッファ制御部116は、通信先に対応するバッファに生成した中間ハッシュ値を分配する。中間ハッシュ値格納バッファ125、126は、中間ハッシュ値を格納する。
バッファ制御部116は、中間ハッシュ値格納バッファ125と中間ハッシュ値格納バッファ126を制御する。負荷状況監視部117は、送信装置の負荷状況を監視する。
送信装置110Bは、これらの処理部を用いて、中間ハッシュ値の動的生成処理を行う。
なお、実施例3において、送信装置110Bは、2個の送信先に対応するため、中間ハッシュ値格納バッファとして、中間ハッシュ値格納バッファ125と中間ハッシュ値格納バッファ126の2個備える。しかし、より多くの通信先に対応できるように3個以上のバッファを備えても良い。
実施例3の通信処理内容に関しては、乱数をハッシュ値中間値に置き換えると、実施例1におけるものと同様になるので、省略する。
なお、本発明は、上述した実施例に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。そのような場合においてもシステム全体において行う処理に本質的な変化はない。
11…通信装置、12…入出力装置、13…記憶部、14…CPU、15…メモリ装置、16…読取装置、100…通信保護システム、110…送信装置、111…通信部、112…送信データ生成部、113…ヘッダ生成部、114…鍵情報記憶部、115…暗号処理部、116…バッファ制御部、117…負荷状況監視部、118…乱数格納バッファ、119…乱数格納バッファ、130…受信装置、131…通信部、132…送信データ生成部、133…ヘッダ検証部、134…鍵情報記憶部、135…復号処理部、136…バッファ制御部、137…負荷状況監視部、138…乱数格納バッファ、139…乱数格納バッファ、140…送信装置、141…暗復号処理部、142…通信部、143…ヘッダ生成部、144…ヘッダ検証部、145…制御業務監視部、146…送信データ生成部、148…鍵情報記憶部、149…通信データ保管部。

Claims (4)

  1. 秘密鍵を格納する記憶部と、前記秘密鍵から乱数を生成するオフライン処理部と、前記乱数を格納するバッファ部と、演算部と、負荷状況監視部と、バッファ制御部と、オンライン処理部と、を備え、
    前記負荷状況監視部は、前記演算部の負荷状況を取得し、
    前記バッファ制御部は、前記負荷状況に基づいて、前記乱数の生成量を決定し、
    前記オンライン処理部は、第1のデータと前記乱数とに基づいて、第2のデータを生成することを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記第1のデータは、暗号処理対象データまたは復号処理対象データであり、前記第2のデータは、暗号処理済みデータまたは復号処理済みデータであることを特徴とする情報処理装置。
  3. 請求項1に記載の情報処理装置であって、
    前記オフライン処理部は、さらに、暗号対象パケットにおける暗号処理対象部を指定するデータであるマスクを生成することを特徴とする情報処理装置。
  4. 請求項1に記載の情報処理装置であって、
    前記オフライン処理部は、さらに、ハッシュ関数に基づくメッセージ認証子の中間ハッシュ値を生成することを特徴とする情報処理装置。
JP2014017232A 2014-01-31 2014-01-31 情報処理装置 Active JP6232303B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014017232A JP6232303B2 (ja) 2014-01-31 2014-01-31 情報処理装置
EP15152875.9A EP2902936B1 (en) 2014-01-31 2015-01-28 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014017232A JP6232303B2 (ja) 2014-01-31 2014-01-31 情報処理装置

Publications (2)

Publication Number Publication Date
JP2015144373A JP2015144373A (ja) 2015-08-06
JP6232303B2 true JP6232303B2 (ja) 2017-11-15

Family

ID=52434594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014017232A Active JP6232303B2 (ja) 2014-01-31 2014-01-31 情報処理装置

Country Status (2)

Country Link
EP (1) EP2902936B1 (ja)
JP (1) JP6232303B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7031021B2 (ja) 2019-01-23 2022-03-07 三菱電機株式会社 圧接型半導体装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10623183B2 (en) * 2017-11-01 2020-04-14 International Business Machines Corporation Postponing entropy depletion in key management systems with hardware security modules

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030085094A (ko) * 2001-04-03 2003-11-01 미쓰비시덴키 가부시키가이샤 암호화 장치
KR100584381B1 (ko) 2004-02-04 2006-05-26 삼성전자주식회사 엠펙-2 데이터 전송속도 조절 방법 및 그 장치
JP4630073B2 (ja) * 2005-01-21 2011-02-09 日本放送協会 コンテンツ暗号化装置及びそのプログラム
WO2007059270A2 (en) * 2005-11-16 2007-05-24 Advanced Broadband Solutions, Inc. System and method for providing content over a network
JP4622951B2 (ja) * 2006-07-26 2011-02-02 ソニー株式会社 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体
JP2008103988A (ja) * 2006-10-19 2008-05-01 Fujitsu Ltd 暗号通信システム、装置、方法及びプログラム
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
JP5953808B2 (ja) * 2012-02-23 2016-07-20 日本電気株式会社 乱数処理装置、乱数処理方法、及びプログラム
JP2014007514A (ja) * 2012-06-22 2014-01-16 Nec Commun Syst Ltd 暗号化通信システム、鍵センタ装置、クライアント装置、暗号化方法およびプログラム
JP5971144B2 (ja) * 2013-02-06 2016-08-17 東京エレクトロン株式会社 基板処理装置及び成膜方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7031021B2 (ja) 2019-01-23 2022-03-07 三菱電機株式会社 圧接型半導体装置

Also Published As

Publication number Publication date
JP2015144373A (ja) 2015-08-06
EP2902936B1 (en) 2019-04-17
EP2902936A1 (en) 2015-08-05

Similar Documents

Publication Publication Date Title
JP7007384B2 (ja) 曖昧さの増加
Jones JSON web algorithms (JWA)
US10623176B2 (en) Authentication encryption method, authentication decryption method, and information-processing device
CN101401141B (zh) 信息处理系统以及信息处理方法
EP2829010B1 (en) Updating key information
US10305689B2 (en) Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program
CN101431406A (zh) 具有业务流可见性的端到端的网络安全
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
US11418334B2 (en) Protecting modular inversion operation from external monitoring attacks
US20140198912A1 (en) Block Cipher Modes of Non-Malleable Operation
JP6232303B2 (ja) 情報処理装置
Naseri et al. On securing cloud-hosted cyber-physical systems using trusted execution environments
hua Pang et al. Secure networked control systems under data integrity attacks
CN107846422A (zh) 一种网关的配置文件加密压缩和解密解压缩的方法
KR20210042668A (ko) 재부팅없이 무한 연산이 가능한 동형 암호 기반의 동적 궤환 제어기의 구성 방법
WO2013039659A1 (en) Hybrid encryption schemes
JP4758824B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、それらの方法を用いたプログラム、および記録媒体
Nivetha et al. A comparative analysis of cryptography algorithms
Ishikawa et al. Experimental validation of encrypted controller implemented on raspberry pi
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Rahnama et al. Countering AES static S-box attack
Nazarov et al. An Architecture Model for Active Cyber Attacks on Intelligence Info-communication Systems: Application Based on Advance System Encryption (AES-512) Using Pre-Encrypted Search Table and Pseudo-Random Functions (PRFs)
Tiwari et al. Compression with authenticated encryption for enhanced security on data centric products
Tripathi et al. The hybrid cryptography for enhancing the data security in fog computing
Dodmane A new hybrid symmetric-key technique to enhance data security of textual information using random number generator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171023

R150 Certificate of patent or registration of utility model

Ref document number: 6232303

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150