(57)【要約】      （修正有）【課題】第三者による不正操作を防止することが可能な情報処理装置等を提供する。【解決手段】第１情報処理装置１０は、第１信号を受信する受信部と、受信部が受信した第１信号を第２信号に変換する変換部と、命令と変換部が変換した第２信号とを送信する送信部とを備える。第１情報処理装置１０は、第２情報処理装置２０に対して第１信号の送信を要求する要求部をさらに備える。送信部は、命令と前記第２信号とを第２情報処理装置２０に対して送信する。【選択図】図２１
2019047468.tif 000002
【特許請求の範囲】
【請求項１】
第１信号を受信する受信部と、
前記受信部が受信した前記第１信号を第２信号に変換する変換部と、
命令と前記変換部が変換した前記第２信号とを送信する送信部と
を備える第１情報処理装置。
【請求項２】
第２情報処理装置に対して前記第１信号の送信を要求する要求部を備え、
前記送信部は、命令と前記第２信号とを前記第２情報処理装置に対して送信する
請求項１に記載の第１情報処理装置。
【請求項３】
前記変換部は、変換前信号と該変換前信号に対応する変換後信号とを関連づけた変換表に基づいて前記第１信号を前記第２信号に変換する
請求項１または請求項２に記載の第１情報処理装置。
【請求項４】
前記受信部は、前記第１信号と変換表に関連づけられた変換表ＩＤとを受信し、
前記変換部は、複数の変換表から前記変換表ＩＤに基づいて選択された変換表に基づいて前記第１信号を前記第２信号に変換する
請求項３に記載の第１情報処理装置。
【請求項５】
前記変換部は、前記第２信号をさらに所定の方法に基づいて変換する
請求項１から請求項４のいずれか一つに記載の第１情報処理装置。
【請求項６】
第１信号を送信する送信部と、
前記送信部が送信した前記第１信号を第３信号に変換する変換部と、
命令と第２信号とを受信する受信部と
前記受信部が受信した前記第２信号と前記変換部が変換した前記第３信号とが一致する場合に、前記命令を実行する実行部と
を備える第２情報処理装置。
【請求項７】
変換前信号と該変換前信号に対応する変換後信号とを関連づけた変換表を記憶する記憶部を有し、
前記変換部は、前記記憶部に記憶した前記変換表に基づいて前記第１信号を前記第３信号に変換する
請求項６に記載の第２情報処理装置。
【請求項８】
第１情報処理装置から第１信号の送信要求を受け付ける要求受付部を有し、
前記送信部は、前記要求受付部が受け付けた送信要求に基づいて前記第１情報処理装置に対して前記第１信号を送信する
請求項６または請求項７に記載の第２情報処理装置。
【請求項９】
第１情報処理装置と、第２情報処理装置とを備える情報処理システムにおいて、
前記第２情報処理装置は、
第１信号を送信する第２送信部と、
前記第２送信部が送信した前記第１信号を第３信号に変換する第２変換部とを備え、
前記第１情報処理装置は、
前記第２送信部が送信した前記第１信号を受信する第１受信部と、
前記第１受信部が受信した前記第１信号を第２信号に変換する第１変換部と、
前記第２情報処理装置に対する命令と前記第２信号とを送信する第１送信部とを備え
前記第２情報処理装置は、
前記第１送信部が送信した前記命令と前記第２信号とを受信する第２受信部と
前記第２変換部が変換した前記第３信号と、前記第２受信部が受信した前記第２信号とが一致する場合に、前記命令を実行する実行部とを備える
情報処理システム。
【請求項１０】
第１信号を受信し、
受信した前記第１信号を第２信号に変換し、
命令と変換した前記第２信号とを送信する
処理をコンピュータに実行させるプログラム。
【請求項１１】
第１信号を送信し、
送信した前記第１信号を第３信号に変換し、
命令と第２信号とを受信し、
受信した前記第２信号と変換した前記第３信号とが一致する場合に、前記命令を実行する
処理をコンピュータに実行させるプログラム。
【請求項１２】
第１信号を受信し、
受信した前記第１信号を第２信号に変換し、
命令と変換した前記第２信号とを送信する
処理をコンピュータに実行させる情報処理方法。
【請求項１３】
第１信号を送信し、
送信した前記第１信号を第３信号に変換し、
命令と第２信号とを受信し、
受信した前記第２信号と変換した前記第３信号とが一致する場合に、前記命令を実行する
処理をコンピュータに実行させる情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、プログラムおよび情報処理方法に関する。
【背景技術】
【０００２】
第三者による情報の盗用および改竄を防ぐために、情報の伝達および保存の際に暗号化することが推奨されている。暗号鍵を用いて、情報の暗号化および復号を行う暗号化技術が使用されている。
【０００３】
装置の内部に記憶した乱数テーブルに基づいて暗号鍵を定める暗号処理装置が提案されている（特許文献１）。装置の内部に複数の暗号化アルゴリズムを記憶しておき、暗号化対象の元データと共に入力された符号データに基づいて暗号化アルゴリズムを選択する暗号処理装置が提案されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１６５５７０号公報
【特許文献２】特開２０１５−４７４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
橋、信号、ダム等のインフラ設備、自動車、家電機器、および医療機器等の多種多様なモノをネットワークに繋がるＩｏＴ（Internet of Things）機器にする、ＩｏＴ技術の開発および実用化が進められている。ＩｏＴ機器は、数種類から数十種類のコマンドを送受信して動作する場合が多い。
【０００６】
これらのコマンドが、ネットワーク途中の経路で盗聴されて、ＡＩ（Artificial Intelligence）技術等を用いて解析されることにより、第三者にコマンドが漏洩する可能性がある。そのため、悪意を持つ第三者によってＩｏＴ機器が操作されてしまう恐れがある。しかしながら、特許文献１および特許文献２に暗号処理装置は、第三者によるＩｏＴ機器の不正操作を防止するには適さない。
【０００７】
一つの側面では、第三者によるＩｏＴ機器等の不正操作を防止することが可能な情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１情報処理装置は、第１信号を受信する受信部と、前記受信部が受信した前記第１信号を第２信号に変換する変換部と、命令と前記変換部が変換した前記第２信号とを送信する送信部とを備える。
【発明の効果】
【０００９】
一つの側面では、第三者による不正操作を防止することが可能な情報処理装置等を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムの処理の概要を説明する説明図である。
【図２】情報処理システムの構成を説明する説明図である。
【図３】命令リストを説明する説明図である。
【図４】応答リストを説明する説明図である。
【図５】変換表を説明する説明図である。
【図６】変換表を説明するＡ部拡大図である。
【図７】通信の流れを説明する説明図である。
【図８】プログラムの処理の流れを説明するフローチャートである。
【図９】実施の形態２のプログラムの処理の流れを説明するフローチャートである。
【図１０】実施の形態３の通信の流れを説明する説明図である。
【図１１】実施の形態３のプログラムの処理の流れを説明するフローチャートである。
【図１２】実施の形態４の変換表を説明する拡大図である。
【図１３】実施の形態４のプログラムの処理の流れを説明するフローチャートである。
【図１４】変換方法ＤＢのレコードレイアウトを説明する説明図である。
【図１５】実施の形態５のプログラムの処理の流れを説明するフローチャートである。
【図１６】実施の形態６の情報処理システムの構成を説明する説明図である。
【図１７】変換表ＩＤＤＢのレコードレイアウトを説明する説明図である。
【図１８】トークンＤＢのレコードレイアウトを説明する説明図である。
【図１９】実施の形態６のプログラムの処理の流れを説明するフローチャートである。
【図２０】トークン取得のサブルーチンの処理の流れを説明するフローチャートである。
【図２１】実施の形態７の情報処理システムの機能ブロック図である。
【図２２】実施の形態８の情報処理システムの構成を説明する説明図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１は、情報処理システム４０の処理の概要を説明する説明図である。情報処理システム４０は、ネットワークを介して接続された第１情報処理装置１０と第２情報処理装置２０とを含む。第１情報処理装置１０は、汎用のパソコン、タブレット、スマートフォン等の情報機器である。
【００１２】
第２情報処理装置２０は、制御対象機器に取り付けられた遠隔制御装置である。制御対象機器は、橋、信号、ダム等のインフラ設備、自動車、家電機器、および医療機器等、ネットワークに接続される設備および機器である。本実施の形態では、制御対象機器はネットワークから受信した信号に基づいて開閉動作を行う可動橋５１である場合を例にして、説明を行う。
【００１３】
第２情報処理装置２０は、ネットワークを介して取得したコマンドに基づいて、可動橋５１を制御する。制御の一例は、可動橋５１を動作させることである。制御の別の例は、可動橋５１に状態を送信させることである。第２情報処理装置２０と組み合わせられることにより、可動橋５１はネットワークに接続されたＩｏＴ機器になる。第１情報処理装置１０および第２情報処理装置２０の構成の詳細については、後述する。
【００１４】
第１情報処理装置１０は、第２情報処理装置２０に対して初期化命令を送信する。初期化命令を受信した第２情報処理装置２０は、第１信号を選択する。第１信号は、所定の範囲の数値であり、選択の都度異なる値である。本実施の形態においては、第１信号は十六進数表記で２桁、すなわち十進数表記で０から２５５までの範囲の整数である。なお、第１信号は十六進数表記で２桁、すなわち８ビット以外の任意のビット数であっても良い。
【００１５】
第２情報処理装置２０は、第１情報処理装置１０に第１信号を送信する。第１情報処理装置１０は、変換表６１を用いて第１信号を第２信号に変換する。変換表６１の詳細については後述する。その後、第１情報処理装置１０は可動橋５１の制御に関する命令と共に第２信号を、第２情報処理装置２０に対して送信する。
【００１６】
第２情報処理装置２０は、変換表６１と同一の変換を行うことができる変換表７１を用いて第１信号を第３信号に変換する。第２情報処理装置２０は、第３信号と、第１情報処理装置１０から受信した第２信号とが一致するか否かを判定する。一致すると判定した場合、第２情報処理装置２０は、第１情報処理装置１０から受信した命令を実行する。一致しないと判定した場合、第２情報処理装置２０は、第１情報処理装置１０から受信した命令を無視する。
【００１７】
通信を盗聴した第三者が、第２情報処理装置２０に対して初期化命令を送信して第１信号を取得した場合であっても、変換表６１を持っていないため正しい第２信号を送ることはできない。したがって、第２情報処理装置２０は第三者による命令を実行しない。以上により、第三者による可動橋５１の不正な操作を防止する情報処理システム４０を実現できる。
【００１８】
図２は、情報処理システム４０の構成を説明する説明図である。情報処理システム４０は、第１情報処理装置１０、第２情報処理装置２０および可動橋５１を備える。
【００１９】
可動橋５１は、アクチュエータ５２およびセンサ５３を備える。アクチュエータ５２は、可動橋５１を動作させる。センサ５３は、可動橋５１の状態を検出する。可動橋５１は複数のアクチュエータ５２およびセンサ５３を備えても良い。アクチュエータ５２およびセンサ５３は、後述する命令コードに基づいて動作する。
【００２０】
第２情報処理装置２０は、可動橋５１に取り付けられている。可動橋５１は、第２情報処理装置２０と組み合わせられてＩｏＴ機器を構成するモノの一例である。第２情報処理装置２０は、可動橋５１等のモノに内蔵されて一体のＩｏＴ機器を構成しても良い。モノは、アクチュエータ５２またはセンサ５３のいずれか一方を備えても良い。モノは、スピーカ、表示装置等を備えても良い。
【００２１】
第１情報処理装置１０と第２情報処理装置２０とは、インターネット、公衆通信回線またはＬＡＮ（Local Area Network）等のネットワークを介して接続されている。第１情報処理装置１０と第２情報処理装置２０とは、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の近距離無線通信によりＰ２Ｐ（Peer to Peer）方式で接続されていても良い。第１情報処理装置１０および第２情報処理装置２０は、それぞれ複数がネットワークに接続されていても良い。
【００２２】
第１情報処理装置１０は、第１ＣＰＵ（Central Processing Unit）１１、主記憶装置１２、補助記憶装置１３、通信部１４、入力部１５、表示部１６およびバスを備える。本実施の形態の第１情報処理装置１０は汎用のパーソナルコンピュータ、スマートフォン、タブレット、またはサーバマシン等の情報処理装置である。また、本実施の形態の第１情報処理装置１０は、大型計算機上で動作する仮想マシンでも良い。
【００２３】
第１ＣＰＵ１１は、本実施の形態にかかるプログラムを実行する演算制御装置である。第１ＣＰＵ１１には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。第１ＣＰＵ１１は、バスを介して第１情報処理装置１０を構成するハードウェア各部と接続されている。
【００２４】
主記憶装置１２は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の記憶装置である。主記憶装置１２には、第１ＣＰＵ１１が行う処理の途中で必要な情報および第１ＣＰＵ１１で実行中のプログラムが一時的に保存される。
【００２５】
補助記憶装置１３は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置１３には、第１ＣＰＵ１１に実行させるプログラム、変換表６１、命令リスト６２、応答リスト６３およびプログラムの実行に必要な各種情報が保存される。
【００２６】
変換表６１、命令リスト６２および応答リスト６３は、専用回線等の安全な経路を介して第１情報処理装置１０に接続された別の記憶装置に記憶されても良い。変換表６１、命令リスト６２および応答リスト６３の詳細については後述する。
【００２７】
通信部１４は、ネットワークとの通信を行うインターフェイスである。入力部１５は、たとえばキーボードおよびマウス等である。表示部１６は、たとえば液晶表示パネル等である。
【００２８】
第２情報処理装置２０は、第２ＣＰＵ２１、主記憶装置２２、補助記憶装置２３、通信部２４、Ｉ／Ｆ（Interface）部２７およびバスを備える。本実施の形態の第２情報処理装置２０は、可動橋５１に取り付けられている。第２情報処理装置２０がＩｏＴ機器に内蔵されている場合には、第２情報処理装置２０はＩｏＴ機器全体の制御装置を兼ねても良い。
【００２９】
第２情報処理装置２０は、商用電源に接続されていても良いし、必要な期間稼動可能な容量の電池を搭載していても良い。第２情報処理装置２０は、太陽光発電器等の発電部を有しても良い。
【００３０】
第２ＣＰＵ２１は、本実施の形態にかかるプログラムを実行する演算制御装置である。第２ＣＰＵ２１には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。第２ＣＰＵ２１は、バスを介して第２情報処理装置２０を構成するハードウェア各部と接続されている。
【００３１】
主記憶装置２２は、ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等の記憶装置である。主記憶装置２２には、第２ＣＰＵ２１が行う処理の途中で必要な情報および第２ＣＰＵ２１で実行中のプログラムが一時的に保存される。
【００３２】
補助記憶装置２３は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置２３には、第２ＣＰＵ２１に実行させるプログラムおよびプログラムの実行に必要な各種情報が保存される。
【００３３】
通信部２４は、ネットワークとの通信を行うインターフェイスである。Ｉ／Ｆ部２７は、可動橋５１に設けられたアクチュエータ５２およびセンサ５３等と第２情報処理装置２０とを接続するインターフェイスである。
【００３４】
図３は、命令リスト６２および命令リスト７２を説明する説明図である。命令リスト６２および命令リスト７２には、第１情報処理装置１０から第２情報処理装置２０に対する命令のリストが記録されている。命令リスト６２と命令リスト７２には、同一の内容が記録されている。本実施の形態の第２ＣＰＵ２１は、「開く」、「閉じる」、「報告」「初期化」および「破棄」の５通りの命令を受け付ける。
【００３５】
命令コード「５５」を受信した場合、第２ＣＰＵ２１は可動橋５１を「開く」動作を行う。命令コード「６６」を受信した場合、第２ＣＰＵ２１は可動橋５１を「閉じる」動作を行う。命令コード「７７」を受信した場合、第２ＣＰＵ２１は可動橋５１の状態を「報告」する動作を行う。命令コード「８８」を受信した場合、第２ＣＰＵ２１は後述する「初期化」の動作を行う。命令コード「９９」を受信した場合、第２ＣＰＵ２１は後述する「破棄」の動作を行う。
【００３６】
命令リスト６２および命令リスト７２は、内容フィールドおよび命令コードフィールドを有する命令リストＤＢ（Database）の形式で記録されていても良い。内容フィールドには、命令の内容が記録されている。命令コードフィールドには、命令を二桁の十六進数で表示した命令コードが記録されている。命令リストＤＢは、一つの命令について一つのレコードを有する。
【００３７】
命令リスト６２および命令リスト７２は、内容と命令コードとを変換するプログラムの形式で記録されていても良い。命令リスト６２および命令リスト７２は、内容と命令コードとを変換する電子回路の形式で記録されていても良い。
【００３８】
図４は、応答リスト６３および応答リスト７３を説明する説明図である。応答リスト６３および応答リスト７３には、第２情報処理装置２０から第１情報処理装置１０に対する応答のリストが記録されている。応答リスト６３と応答リスト７３には、同一の内容が記録されている。本実施の形態の第２情報処理装置２０は、「初期化完了」、「成功」、「失敗」、「開状態」「閉状態」および「異常発生」の６通りの応答を出力する。
【００３９】
後述する「初期化」の命令を受け付けた場合、第２ＣＰＵ２１は「１１」の応答コードを出力することにより「初期化完了」の応答を行う。「開く」または「閉じる」の命令を受け付けて、実行に成功した場合、第２ＣＰＵ２１は「２２」の応答コードを出力することにより「成功」の応答を行う。「開く」または「閉じる」の命令を受け付けたが、実行できない場合、第２ＣＰＵ２１は「３３」の応答コードを出力することにより「失敗」の応答を行う。
【００４０】
「報告」の命令を受け付けた場合、第２ＣＰＵ２１は「４４」、「５５」または「６６」の命令コードを出力することにより、「開状態」、「閉状態」または「異常発生」の応答を行う。
【００４１】
応答リスト６３および応答リスト７３は、内容フィールドおよび応答コードフィールドを有する応答リストＤＢの形式で記録されていても良い。内容フィールドには、応答の内容が記録されている。応答コードフィールドには、応答を二桁の十六進数で表示した応答コードが記録されている。応答リストＤＢは、一つの応答について一つのレコードを有する。
【００４２】
応答リスト６３および応答リスト７３は、内容と応答コードとを変換するプログラムの形式で記録されていても良い。応答リスト６３および応答リスト７３は、内容と応答コードとを変換する電子回路の形式で記録されていても良い。
【００４３】
図５は、変換表６１および変換表７１を説明する説明図である。図６は、変換表６１および変換表７１を説明するＡ部拡大図である。変換表６１および変換表７１には、第１信号を第２信号または第３信号に変換する表が記録されている。変換表６１と変換表７１には、同一の内容が記録されている。
【００４４】
変換表の奇数行には、「００」から「ＦＦ」までの二桁の十六進数表記の変換前信号が昇順に記録されている。変換表の偶数行には、それぞれの変換前信号に対応する変換後信号が記録されている。なお、図５および図６に示す変換後信号は例示である。
【００４５】
変換後信号は、乱数であることが望ましい。変換後信号は、コンピュータにより生成された擬似乱数でも良いし、第三者による推測が困難なルールに基づいて生成された数値であっても良い。変換後信号は、変換前信号を任意の順番で並べ替えたものであっても良い。
【００４６】
変換表６１および変換表７１は、変換前信号フィールドおよび変換後信号フィールドを有する変換表ＤＢの形式で記録されていても良い。変換前信号フィールドには、変換前信号が記録されている。変換後信号フィールドには、変換後信号が記録されている。変換表ＤＢは、一組の変換前信号および変換後信号について一つのレコードを有する。
【００４７】
変換表６１および変換表７１は、変換前信号を変換後信号に変換するプログラムの形式で記録されていても良い。変換表６１および変換表７１は、変換前信号を変換後信号に変換する電子回路の形式で記録されていても良い。
【００４８】
図７は、通信の流れを説明する説明図である。図７において右向きの矢印は第１情報処理装置１０から第２情報処理装置２０に向けて流れる信号を示す。矢印の上に、信号に含まれるコマンドを示す。コマンドは、図３を使用して説明した命令コードと、図１を使用して説明した第１信号または第２信号とを含む。
【００４９】
図７において左向きの矢印は第１情報処理装置１０から第２情報処理装置２０に向けて流れる信号を示す。矢印の上に、信号に含まれるコマンドを示す。コマンドは、図４を使用して説明した応答コードと、図６を使用して説明した第１信号または第２信号とを含む。送信先および送信元を示すヘッダ情報および信号の終了を示すフッタ情報は図示を省略する。
【００５０】
第１ＣＰＵ１１は、第２ＣＰＵ２１に対して、初期化命令「８８」とダミー信号「００」とを含むコマンドを送る。ダミー信号は、初期化命令の都度異なる値であることが望ましい。
【００５１】
第２ＣＰＵ２１は、第１ＣＰＵ１１に対して、初期化完了を示す応答「１１」と第１信号「４１」とを含むコマンドを送る。ここで第１信号は、図６を使用して説明した変換表７１から第２ＣＰＵ２１がランダムに選択した変換前信号である。
【００５２】
第１ＣＰＵ１１は、受信した第１信号「４１」を、図６を使用して説明した変換表６１に基づいて第２信号「５１」に変換する。第１ＣＰＵ１１は、第２ＣＰＵ２１に対して、開く命令「５５」と第２信号「５１」とを含むコマンドを送る。
【００５３】
第２ＣＰＵ２１は、送信した第１信号「４１」を、図６を使用して説明した変換表７１に基づいて第３信号「５１」に変換する。第２ＣＰＵ２１は、変換して求めた第３信号と第１ＣＰＵ１１から受信した第２信号とが一致するか否かを判定する。一致すると判定した場合、第２ＣＰＵ２１は開く命令「５５」に従って可動橋５１を動作させる。
【００５４】
動作の終了後第２ＣＰＵ２１は、第１ＣＰＵ１１に対して、可動橋５１に動作に成功したことを示す成功の応答「２２」と、新たに選択した第１信号「４７」とを含むコマンドを送る。
【００５５】
第１ＣＰＵ１１は、受信した第１信号「４７」を変換表６１に基づいて第２信号「８２」に変換する。第１ＣＰＵ１１は、第２ＣＰＵ２１に対して、閉じる命令「６６」と第２信号「８２」とを含むコマンドを送る。
【００５６】
第２ＣＰＵ２１は、送信した第１信号「４７」を変換表７１に基づいて第３信号「８２」に変換する。第２ＣＰＵ２１は、変換して求めた第３信号と第１ＣＰＵ１１から受信した第２信号とが一致するか否かを判定する。一致すると判定した場合、第２ＣＰＵ２１は閉じる命令「６６」に従って可動橋５１を動作させる。
【００５７】
動作の終了後第２ＣＰＵ２１は、第１ＣＰＵ１１に対して、可動橋５１に動作に成功したことを示す成功の応答「２２」と、新たに選択した第１信号「４２」とを含むコマンドを送る。
【００５８】
以上の処理により、第２ＣＰＵ２１は第１信号を受け取って正しく変換した第１ＣＰＵ１１から受信した命令を実行し、それ以外の命令を無視する。通信を盗聴した第三者は、仮に命令コードを解読した場合であっても、変換表６１を持っていない場合には第２ＣＰＵ２１に対して有効なコマンドを送信することができない。
【００５９】
なお、図７に示す各通信は、暗号化して行う。通信の暗号化は、様々な手法が実用化されているので説明を省略する。通信にＶＰＮ（Virtual Private Network）を使用することにより盗聴自体を困難にすることが、さらに望ましい。
【００６０】
図８は、プログラムの処理の流れを説明するフローチャートである。第１ＣＰＵ１１は、初期化命令を送信する（ステップＳ５０１）。第２ＣＰＵ２１は、初期化命令を受信する（ステップＳ６０１）。第２ＣＰＵ２１は、第１信号を選択する（ステップＳ６０２）。第１信号は、変換表７１からランダムに選択された変換前信号である。
【００６１】
第２ＣＰＵ２１は、状況に応じて応答リスト７３から選択した応答コードと、ステップＳ６０２で選択した第１信号とを送信する（ステップＳ６０３）。第２ＣＰＵ２１は、ステップＳ６０２で選択した第１信号を、主記憶装置２２または補助記憶装置２３に保存する（ステップＳ６０４）。
【００６２】
第１ＣＰＵ１１は、応答コードおよび第１信号を受信する（ステップＳ５０３）。第１ＣＰＵ１１は、第１信号を変換表６１に基づいて第２信号に変換する（ステップＳ５０４）。第１ＣＰＵ１１は、命令リスト６２から選択した命令コードと、第２信号とを送信する（ステップＳ５０５）。
【００６３】
ステップＳ５０５において、第１ＣＰＵ１１は、入力部１５を介して命令コードの選択を受け付けても良いし、あらかじめ補助記憶装置１３に記憶された一連の命令コードを順次取得しても良い。第１ＣＰＵ１１は、たとえば可動橋５１に接近する船または車両等を検知するセンサの信号等に基づいて、命令コードを選択しても良い。
【００６４】
第２ＣＰＵ２１は、命令コードおよび第２信号を受信する（ステップＳ６０６）。第２ＣＰＵ２１は、ステップＳ６０４で保存した第１信号を変換表６１に基づいて第３信号に変換する（ステップＳ６０７）。第２ＣＰＵ２１は、ステップＳ６０６で受信した第２信号と、ステップＳ６０７で変換した第３信号とが一致するか否かを判定する（ステップＳ６０８）。
【００６５】
一致すると判定した場合（ステップＳ６０８でＹＥＳ）、第２ＣＰＵ２１はステップＳ６０６で受信した命令に従って動作する（ステップＳ６０９）。第２ＣＰＵ２１は、ステップＳ６０２に戻る。一致しないと判定した場合（ステップＳ６０８でＮＯ）、第２ＣＰＵ２１はステップＳ６０６に戻る。
【００６６】
第１ＣＰＵ１１は、処理を終了するか否かを判定する（ステップＳ５０７）。たとえば、ユーザから終了の処理を受け付けた場合、または、第２ＣＰＵ２１からの応答を所定の時間受信しない場合等に、第１ＣＰＵ１１は処理を終了すると判定する。
【００６７】
処理を終了しないと判定した場合（ステップＳ５０７でＮＯ）、第１ＣＰＵ１１はステップＳ５０３に戻る。処理を終了すると判定した場合（ステップＳ５０７でＹＥＳ）、第１ＣＰＵ１１は破棄命令に対応する命令コード「９９」と、第２信号とを送信する（ステップＳ５０８）。
【００６８】
第２ＣＰＵ２１は、割り込み処理によりステップＳ５０８で送信された破棄命令と第２信号とを受信する。第２ＣＰＵ２１は、受信した第２信号と、ステップＳ６０７で変換した第３信号とが一致するか否かを判定する（ステップＳ６１１）。
【００６９】
一致すると判定した場合（ステップＳ６１１でＹＥＳ）、第２ＣＰＵ２１は、ステップＳ６０４で保存した第１信号および、これを変換した第３信号を破棄する（ステップＳ６１２）。一致しないと判定した場合（ステップＳ６１１でＮＯ）、第２ＣＰＵ２１は、破棄信号を受信する前の状態に戻る。
【００７０】
なお、第１ＣＰＵ１１からのコマンドを所定の期間受信しない場合も、第２ＣＰＵ２１はステップＳ６０４で保存した第１信号を破棄する。
【００７１】
本実施の形態によると、正しい変換表６１を保有している第１情報処理装置１０からの命令を実行し、それ以外の命令を無視する第２情報処理装置２０を提供できる。通信を盗聴した第三者は、仮に命令コードを解読した場合であっても、変換表６１を持っていない場合には第２ＣＰＵ２１に対して有効なコマンドを送信することができない。したがって、第三者による可動橋５１等のＩｏＴ機器の不正操作を防止することができる。
【００７２】
ステップＳ６１１により、不要になった第１信号を破棄するので、初期化命令の送受信にはじまる一連の手順を踏まない不正操作を防止することができる。なお、第２ＣＰＵ２１は、既に第１信号が保存されている場合には、ステップＳ６０１で受信した初期化命令を無視することが望ましい。複数の第１ＣＰＵ１１が、同時に可動橋５１等のＩｏＴ機器に対する命令を送ることによる混乱を避けることができる。
【００７３】
第１ＣＰＵ１１と第２ＣＰＵ２１とは、１回の動作命令ごとに初期化命令と初期化応答とを繰り返しても良い。
【００７４】
第１ＣＰＵ１１と第２ＣＰＵ２１との間の通信は、図示しないサーバコンピュータ等を介して中継されても良い。ステップＳ５０１の前に、第１ＣＰＵ１１と第２ＣＰＵ２１との間でパスワード等を用いた認証を行っても良い。
【００７５】
［実施の形態２］
本実施の形態は、不正な命令を受信した場合に、管理担当者等に報告を行う情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【００７６】
図９は、実施の形態２のプログラムの処理の流れを説明するフローチャートである。第１ＣＰＵ１１の処理、ステップＳ６０８まで、およびステップＳ６０８でＹＥＳと判定した後の処理の流れは、図８と共通であるので説明を省略する。
【００７７】
ステップＳ６０８で受信した第２信号と、ステップＳ６０７で変換した第３信号とが一致しないと判定した場合（ステップＳ６０８でＮＯ）、第２ＣＰＵ２１は情報処理システム４０の管理担当者または管理サーバにエラー報告を送信する（ステップＳ６２１）。エラー報告は、たとえばメール、ショートメッセージ、通話等の任意の通信手段により送信される。第２ＣＰＵ２１は、ステップＳ６０４で保存した第１信号を破棄する（ステップＳ６２２）。
【００７８】
本実施の形態によると、管理担当者または管理サーバは、第２情報処理装置２０に対する不正なアクセスの試みが発生したことを把握して、必要な対策を講じることができる。ステップＳ６２２で第１信号を破棄することにより、数多くの第２信号を次々と試す、いわゆる総当り攻撃の成功を防ぐことができる。
【００７９】
第２ＣＰＵ２１は、たとえば３回連続してステップＳ６０８でＮＯと判定した場合等、所定の条件が満たされた場合に、ステップＳ６５２に移り、エラー報告を送信しても良い。
【００８０】
［実施の形態３］
本実施の形態は、第１ＣＰＵ１１と第２ＣＰＵ２１の両方で変換結果の判定を行う情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【００８１】
図１０は、実施の形態３の通信の流れを説明する説明図である。図１０において右向きの矢印は第１情報処理装置１０から第２情報処理装置２０に向けて流れる信号を示す。矢印の上に、信号に含まれるコマンドを示す。コマンドは、図３を使用して説明した命令コードと、第１信号と、第２信号とを含む。
【００８２】
図１０において左向きの矢印は第１情報処理装置１０から第２情報処理装置２０に向けて流れる信号を示す。矢印の上に、信号に含まれるコマンドを示す。コマンドは、図４を使用して説明した応答コードと、第３信号と、第１信号とを含む。送信先および送信元を示すヘッダ情報および信号の終了を示すフッタ情報は図示を省略する。
【００８３】
第１ＣＰＵ１１は、第２ＣＰＵ２１に対して、初期化命令「８８」と第１信号「４７」と、ダミー信号「００」とを含むコマンドを送る。
【００８４】
第２ＣＰＵ２１は、受信した第１信号「４７」を変換表７１に基づいて第３信号「８２」に変換する。第２ＣＰＵ２１は、第１ＣＰＵ１１に対して、初期化完了を示す応答「１１」と、第３信号「８２」と、新たに選択した第１信号「４１」とを含むコマンドを送る。
【００８５】
第１ＣＰＵ１１は、送信した第１信号「４７」を変換表６１に基づいて第２信号「８２」に変換する。第１ＣＰＵ１１は、変換して求めた第２信号と第２ＣＰＵ２１から受信した第３信号とが一致するか否かを判定する。一致すると判定した場合、第１ＣＰＵ１１は、受信した第１信号「４１」を、図６を使用して説明した変換表６１に基づいて第２信号「５１」に変換する。第１ＣＰＵ１１は、第２ＣＰＵ２１に対して、開く命令「５５」と、新たに選択した第１信号「４９」と、第２信号「５１」とを含むコマンドを送る。
【００８６】
第２ＣＰＵ２１は、送信した第１信号「４１」を変換表７１に基づいて第３信号「５１」に変換する。第２ＣＰＵ２１は、変換して求めた第３信号と第１ＣＰＵ１１から受信した第２信号とが一致するか否かを判定する。一致すると判定した場合、第２ＣＰＵ２１は、開く命令「５５」に従って可動橋５１を動作させる。
【００８７】
動作の終了後、第２ＣＰＵ２１は、受信した第１信号「４９」を変換表７１に基づいて第３信号「７０」に変換する。第２ＣＰＵ２１は、第１ＣＰＵ１１に対して、可動橋５１の動作に成功したことを示す成功の応答「２２」と、第３信号「７０」と、新たに選択した第１信号「４７」とを含むコマンドを送る。
【００８８】
第１ＣＰＵ１１は、送信した第１信号「４９」を変換表６１に基づいて第２信号「７０」に変換する。第１ＣＰＵ１１は、変換して求めた第２信号と第２ＣＰＵ２１から受信した第３信号とが一致するか否かを判定する。一致すると判定した場合、第１ＣＰＵ１１は、受信した第１信号「４７」を、変換表６１に基づいて第２信号「８２」に変換する。第１ＣＰＵ１１は、第２ＣＰＵ２１に対して、閉じる命令「６６」と、新たに選択した第１信号「４５」と、第２信号「８２」とを含むコマンドを送る。
【００８９】
第２ＣＰＵ２１は、送信した第１信号「４７」を変換表７１に基づいて第３信号「８２」に変換する。第２ＣＰＵ２１は、変換して求めた第３信号と第１ＣＰＵ１１から受信した第２信号とが一致するか否かを判定する。一致すると判定した場合、第２ＣＰＵ２１は、閉じる命令「６６」に従って可動橋５１を動作させる。
【００９０】
動作の終了後、第２ＣＰＵ２１は、受信した第１信号「４５」を変換表７１に基づいて第３信号「２９」に変換する。第２ＣＰＵ２１は、第１ＣＰＵ１１に対して、可動橋５１の動作に成功したことを示す成功の応答「２２」と、第３信号「２９」と、新たに選択した第１信号「４２」とを含むコマンドを送る。
【００９１】
以上の処理により、第１ＣＰＵ１１は、第１信号を受け取って正しく変換した第２ＣＰＵ２１に対して次の命令を送信し、それ以外の第２ＣＰＵ２１に対しては後続の命令を送信しない。第２ＣＰＵ２１は第１信号を受け取って正しく変換した第１ＣＰＵ１１からの命令を実行し、それ以外の命令を無視する。
【００９２】
通信を盗聴した第三者は、仮に命令コードを解読した場合であっても、変換表６１を持っていない場合には第１ＣＰＵ１１および第２ＣＰＵ２１に対して有効なコマンドを送信することができない。
【００９３】
図１１は、実施の形態３のプログラムの処理の流れを説明するフローチャートである。第１ＣＰＵ１１は、第１信号を選択する（ステップＳ５３１）。第１ＣＰＵ１１は、初期化命令と、第１信号とを送信する（ステップＳ５３２）。第１ＣＰＵ１１は、第１信号を変換表６１に基づいて第２信号に変換する（ステップＳ５３３）。第１ＣＰＵ１１は、第２信号を主記憶装置１２または補助記憶装置１３に保存する（ステップＳ５３４）。
【００９４】
第２ＣＰＵ２１は、初期化命令と、第１信号とを受信する（ステップＳ６３１）。第２ＣＰＵ２１は、第１ＣＰＵ１１から受信した第１信号を変換表６１に基づいて第３信号に変換する（ステップＳ６３２）。第２ＣＰＵ２１は、第１信号を選択する（ステップＳ６３３）。
【００９５】
第２ＣＰＵ２１は、状況に応じて応答リスト７３から選択した応答コードと、ステップＳ６３２で変換した第３信号と、ステップＳ６０２で選択した第１信号とを送信する（ステップＳ６３４）。第２ＣＰＵ２１は、ステップＳ６３２で選択した第１信号を、変換表６１に基づいて第３信号に変換する（ステップＳ６３５）。第２ＣＰＵ２１は、ステップＳ６３５で変換した第３信号を、主記憶装置２２または補助記憶装置２３に保存する（ステップＳ６３６）。
【００９６】
第１ＣＰＵ１１は、応答コード、第３信号および第１信号を受信する（ステップＳ５４１）。第１ＣＰＵ１１は、ステップＳ５３４で保存した第２信号と、ステップＳ５４１で受信した第１信号とが一致するか否かを判定する（ステップＳ５４２）。一致しないと判定した場合（ステップＳ５４２でＮＯ）、第１ＣＰＵ１１は情報処理システム４０の管理担当者または管理サーバにエラー報告を送信する（ステップＳ５４３）。第１ＣＰＵ１１は、その後処理を終了する。
【００９７】
一致すると判定した場合（ステップＳ５４２でＹＥＳ）、第１ＣＰＵ１１はステップＳ５４１で受信した第１信号を変換表６１に基づいて第２信号に変換する（ステップＳ５５１）。第１ＣＰＵ１１は、第１信号を選択する（ステップＳ５５２）。第１ＣＰＵ１１は、命令リスト６２から選択した命令コードと、第１信号と、第２信号とを送信する（ステップＳ５５３）。
【００９８】
第２ＣＰＵ２１は命令コード、第１信号および第２信号を受信する（ステップＳ６４１）。第２ＣＰＵ２１は、ステップＳ６４１で受信した第２信号と、ステップＳ６３６で保存した第３信号とが一致するか否かを判定する（ステップＳ６４２）。
【００９９】
一致すると判定した場合（ステップＳ６４２でＹＥＳ）、第２ＣＰＵ２１はステップＳ６４１で受信した命令に従って動作する（ステップＳ６４３）。第２ＣＰＵ２１は、ステップＳ６３２に戻る。一致しないと判定した場合（ステップＳ６４２でＮＯ）、第２ＣＰＵ２１はステップＳ６４１に戻る。
【０１００】
第１ＣＰＵ１１は、第１信号を変換表６１に基づいて第２信号に変換する（ステップＳ５５４）。第１ＣＰＵ１１は、第２信号を主記憶装置１２または補助記憶装置１３に保存する（ステップＳ５５５）。
【０１０１】
第１ＣＰＵ１１は、処理を終了するか否かを判定する（ステップＳ５５６）。処理を終了しないと判定した場合（ステップＳ５５６でＮＯ）、第１ＣＰＵ１１はステップＳ５４１に戻る。処理を終了すると判定した場合（ステップＳ５５６でＹＥＳ）、第１ＣＰＵ１１は破棄命令に対応する命令コード「９９」と、第２信号とを送信する（ステップＳ５５７）。
【０１０２】
第２ＣＰＵ２１は、割り込み処理によりステップＳ５５７で送信された破棄命令と第２信号とを受信する。第２ＣＰＵ２１は、第２信号と、ステップＳ６３６で保存した第３信号とが一致するか否かを判定する（ステップＳ６５１）。
【０１０３】
一致すると判定した場合（ステップＳ６５１でＹＥＳ）、第２ＣＰＵ２１は、ステップＳ６３６で保存した第１信号を破棄する（ステップＳ６５２）。一致しないと判定した場合（ステップＳ６５１でＮＯ）、第２ＣＰＵ２１は、破棄信号を受信する前の状態に戻る。
【０１０４】
［実施の形態４］
本実施の形態は、変換表６１および変換表７１をそれぞれ複数備える情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０１０５】
図１２は、実施の形態４の変換表６１および変換表７１を説明する説明図である。本実施の形態においては、初期化応答用の変換表Ａ、成功報告用の変換表Ｂ等、それぞれの応答内容に対応する変換表６１および変換表７１を使用する。図１２には、変換表Ａおよび変換表Ｂのうち、図５のＡ部と同じ部分を拡大した図を示す。
【０１０６】
第１信号から第２信号への変換は、第１信号と共に受信された応答に対応する変換表６１に基づいて行われる。第１信号から第３信号への変換は、第１信号と共に送信された応答に対応する変換表７１に基づいて行われる。
【０１０７】
図１３は、実施の形態４のプログラムの処理の流れを説明するフローチャートである。第１ＣＰＵ１１は、初期化命令を送信する（ステップＳ５０１）。第２ＣＰＵ２１は、初期化命令を受信する（ステップＳ６０１）。第２ＣＰＵ２１は、第１信号を選択する（ステップＳ６０２）。
【０１０８】
第２ＣＰＵ２１は、状況に応じて応答リスト７３から選択した応答コードと、ステップＳ６０２で選択した第１信号とを送信する（ステップＳ６０３）。第２ＣＰＵ２１は、複数の変換表７１の中から、ステップＳ６０３で送信した応答コードに対応する変換表７１を選択する（ステップＳ６６１）。第２ＣＰＵ２１は、ステップＳ６０２で選択した第１信号を、ステップＳ６６１で選択した変換表７１に基づいて第３信号に変換する（ステップＳ６６２）。第２ＣＰＵ２１は、第３信号を保存する（ステップＳ６６３）。
【０１０９】
第１ＣＰＵ１１は、応答コードおよび第１信号を受信する（ステップＳ５０３）。第１ＣＰＵ１１は、複数の変換表６１の中から、ステップＳ５０３で受信した応答コードに対応する変換表６１を選択する（ステップＳ５６１）。第１ＣＰＵ１１は、第１信号をステップＳ５６１で選択した変換表６１に基づいて第２信号に変換する（ステップＳ５６２）。第１ＣＰＵ１１は、命令リスト６２から選択した命令コードと、第２信号とを送信する（ステップＳ５６３）。
【０１１０】
第２ＣＰＵ２１は、命令コードおよび第２信号を受信する（ステップＳ６６５）。第２ＣＰＵ２１は、ステップＳ６３５で受信した第２信号と、ステップＳ６３３で保存した第３信号とが一致するか否かを判定する（ステップＳ６６６）。
【０１１１】
一致すると判定した場合（ステップＳ６６６でＹＥＳ）、第２ＣＰＵ２１はステップＳ６３４で受信した命令に従って動作する（ステップＳ６６７）。第２ＣＰＵ２１は、ステップＳ６０２に戻る。一致しないと判定した場合（ステップＳ６６６でＮＯ）、第２ＣＰＵ２１はステップＳ６６５に戻る。
【０１１２】
第１ＣＰＵ１１は、処理を終了するか否かを判定する（ステップＳ５６５）。処理を終了しないと判定した場合（ステップＳ５６５でＮＯ）、第１ＣＰＵ１１はステップＳ５０３に戻る。処理を終了すると判定した場合（ステップＳ５６５でＹＥＳ）、第１ＣＰＵ１１は破棄命令に対応する命令コード「９９」と、第２信号とを送信する（ステップＳ５６６）。
【０１１３】
第２ＣＰＵ２１は、割り込み処理によりステップＳ５６６で送信された破棄命令と第２信号とを受信する。第２ＣＰＵ２１は、受信した第２信号と、ステップＳ６６３で保存した第３信号とが一致するか否かを判定する（ステップＳ６７１）。
【０１１４】
一致すると判定した場合（ステップＳ６７１でＹＥＳ）、第２ＣＰＵ２１は、ステップＳ６６３で保存した第３信号を破棄する（ステップＳ６７２）。一致しないと判定した場合（ステップＳ６７１でＮＯ）、第２ＣＰＵ２１は、破棄信号を受信する前の状態に戻る。
【０１１５】
本実施の形態によると、正しい変換表６１のセットを保有している第１情報処理装置１０からの命令を実行し、それ以外の命令を無視する第２情報処理装置２０を提供できる。応答コードによって異なる変換表６１を使用するので、第三者が大量の通信を盗聴してＡＩ等を用いて解析した場合であっても、変換表６１を推定することが困難である。したがって、第三者による可動橋５１等のＩｏＴ機器の不正操作を防止することができる。
【０１１６】
ステップＳ６６１において第２ＣＰＵ２１は、直前に第１ＣＰＵ１１により送信された命令コードに基づいて変換表７１を選択しても良い。第２ＣＰＵ２１は、たとえば３回前等の過去に送信された命令コードまたは応答コードに基づいて変換表７１を選択しても良い。第２ＣＰＵ２１は、命令コードまたは応答コードの送信時刻等、通信内容以外の情報に基づいて変換表６１を選択しても良い。
【０１１７】
［実施の形態５］
本実施の形態は、第２信号および第３信号をさらに変換する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０１１８】
図１４は、変換方法ＤＢのレコードレイアウトを説明する説明図である。変換方法ＤＢは、応答コードと変換方法とを関連づけて記録するＤＢである。変換方法ＤＢは応答コードフィールドおよび変換方法フィールドを有する。
【０１１９】
応答コードフィールドには、図４を使用して説明した応答コードが記録されている。変換方法フィールドには、変換方法が記録されている。変換方法ＤＢは、一つの応答コードについて一つのレコードを有する。補助記憶装置１３と補助記憶装置２３に、同一の変換方法ＤＢが記録されている。
【０１２０】
なお、図１４においては、変換方法は各種のビット演算である。すなわち、二進数で表現した第２信号および第３信号に対して、循環シフト等の変換処理を行う。変換方法は、加減乗除等の演算処理であっても良い。変換方法は、ハッシュ関数その他の演算であっても良い。変換方法は、以上に示した各種処理が混在したものであっても良い。
【０１２１】
図１５は、実施の形態５のプログラムの処理の流れを説明するフローチャートである。第１ＣＰＵ１１は、初期化命令を送信する（ステップＳ５０１）。第２ＣＰＵ２１は、初期化命令を受信する（ステップＳ６０１）。第２ＣＰＵ２１は、第１信号を選択する（ステップＳ６０２）。
【０１２２】
第２ＣＰＵ２１は、状況に応じて応答リスト７３から選択した応答コードと、ステップＳ６０２で選択した第１信号とを送信する（ステップＳ６０３）。第２ＣＰＵ２１は、ステップＳ６０２で選択した第１信号を、変換表６１に基づいて第３信号に変換する（ステップＳ６８１）。
【０１２３】
第２ＣＰＵ２１は、ステップＳ６０３で送信した応答コードをキーとして変換方法ＤＢを検索してレコードを抽出することにより、変換方法を選択する（ステップＳ６８２）。第２ＣＰＵ２１は、選択した変換方法に基づいてステップＳ６８１で得た第３信号をさらに変換する（ステップＳ６８３）。以後の説明では、ステップＳ６８３で変換した後の信号を第３信号と記載する。
【０１２４】
第２ＣＰＵ２１は、ステップＳ６８３で変換した第３信号を、主記憶装置２２または補助記憶装置２３に保存する（ステップＳ６８４）。以後の第２ＣＰＵ２１が行う処理は、図１３を使用して説明した処理と同一であるので、説明を省略する。
【０１２５】
第１ＣＰＵ１１は、応答コードおよび第１信号を受信する（ステップＳ５０３）。第１ＣＰＵ１１は、第１信号を変換表６１に基づいて第２信号に変換する（ステップＳ５０４）。第２ＣＰＵ２１は、ステップＳ５０３で受信した応答コードをキーとして変換方法ＤＢを検索してレコードを抽出することにより、変換方法を選択する（ステップＳ５８１）。
【０１２６】
第１ＣＰＵ１１は、選択した変換方法に基づいてステップＳ５０４で得た第２信号をさらに変換する（ステップＳ５８２）。以後の説明では、ステップＳ５８２で変換した後の信号を第２信号と記載する。以後の第１ＣＰＵ１１が行う処理は、図１３を使用して説明した処理と同一であるので、説明を省略する。
【０１２７】
本実施の形態によると、正しい変換表６１および変換ＤＢのセットを保有している第１情報処理装置１０からの命令を実行し、それ以外の命令を無視する第２情報処理装置２０を提供できる。変換ＤＢによる変換を行うので、第三者が大量の通信を盗聴してＡＩ等を用いて解析した場合であっても、変換表６１を推定することが困難である。したがって、第三者による可動橋５１等のＩｏＴ機器の不正操作を防止することができる。
【０１２８】
本実施の形態によると、変換ＤＢに記録された変換方法はビット演算であるので、少ない演算量で変換を行うことができる。
【０１２９】
なお、変換ＤＢは、直前に第１ＣＰＵ１１により送信された命令コードと変換方法とを関連づけても良い。変換ＤＢは、たとえば３回前等の過去に送信された命令コードまたは応答コードと変換方法とを関連づけても良い。変換ＤＢは、命令コードまたは応答コードの送信時刻等、通信内容以外の情報と変換方法とを関連づけても良い。
【０１３０】
［実施の形態６］
本実施の形態は、ネットワークを介して接続された仲介装置３０が変換表７１を選択する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０１３１】
図１６は、実施の形態６の情報処理システム４０の構成を説明する説明図である。本実施の形態の情報処理システム４０は、ネットワークを介して接続された仲介装置３０、第１情報処理装置１０、第２情報処理装置２０および可動橋５１を備える。第１情報処理装置１０、第２情報処理装置２０および可動橋５１の構成は図２を使用して説明した実施の形態１と同一であるので、説明を省略する。
【０１３２】
仲介装置３０は、第３ＣＰＵ３１、主記憶装置３２、補助記憶装置３３、通信部３４およびバスを備える。本実施の形態の仲介装置３０は汎用のパーソナルコンピュータ、または大型計算機等の情報処理装置である。本実施の形態の仲介装置３０は、大型計算機上で動作する仮想マシンでも良い。
【０１３３】
第３ＣＰＵ３１は、本実施の形態にかかるプログラムを実行する演算制御装置である。第３ＣＰＵ３１には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。第３ＣＰＵ３１は、バスを介して仲介装置３０を構成するハードウェア各部と接続されている。
【０１３４】
主記憶装置３２は、ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等の記憶装置である。主記憶装置３２には、第３ＣＰＵ３１が行う処理の途中で必要な情報および第３ＣＰＵ３１で実行中のプログラムが一時的に保存される。
【０１３５】
補助記憶装置３３は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置３３には、第３ＣＰＵ３１に実行させるプログラム、変換表ＩＤＤＢ３８、トークンＤＢ３９およびプログラムの実行に必要な各種情報が保存される。なお、変換表ＩＤＤＢ３８およびトークンＤＢ３９は、仲介装置３０に接続された外部の大容量記憶装置等に保存されていても良い。
【０１３６】
通信部３４は、ネットワークとの通信を行うインターフェイスである。
【０１３７】
図１７は、変換表ＩＤＤＢ３８のレコードレイアウトを説明する説明図である。変換表ＩＤＤＢ３８は、第２情報処理装置２０に固有に付与された第２情報処理装置ＩＤと、変換表７１に固有に付与された変換表ＩＤとを関連づけて記憶するＤＢである。なお、変換表ＩＤが付与された各変換表７１の構成は図６を使用して説明した変換表７１と同様である。
【０１３８】
変換表ＩＤＤＢ３８は、第２情報処理装置ＩＤフィールドと、変換表ＩＤフィールドとを有する。第２情報処理装置ＩＤフィールドには、第２情報処理装置ＩＤが記録されている。変換表ＩＤフィールドには、第２情報処理装置２０が有する変換表７１の変換表ＩＤが記録されている。変換表ＩＤＤＢ３８は、一つの第２情報処理装置ＩＤについて一つのレコードを有する。
【０１３９】
第１情報処理装置ＩＤには、第１情報処理装置１０のＭＡＣ（Media Access Control）アドレスまたはＩＰ（Internet Protocol）アドレス等を使用することができる。第２情報処理装置ＩＤには、第２情報処理装置２０のＭＡＣアドレスまたはＩＰアドレス等を使用することができる。
【０１４０】
図１８は、トークンＤＢ３９のレコードレイアウトを説明する説明図である。トークンＤＢ３９は、第１情報処理装置１０に固有に付与された第１情報処理装置ＩＤと、第２情報処理装置ＩＤと、トークンと、変換表ＩＤとを関連づけて記録するＤＢである。ここでトークンは、第１情報処理装置ＩＤと第２情報処理装置ＩＤとの接続を行うたびに第３ＣＰＵ３１が発行する、認証用のコードである。変換表ＩＤは、第１情報処理装置１０と第２情報処理装置２０とがトークンに基づいて通信する際に使用する変換表６１および変換表７１のＩＤである。
【０１４１】
トークンＤＢ３９は、第１情報処理装置ＩＤフィールドと、第２情報処理装置ＩＤフィールドと、トークンフィールドと、変換表ＩＤフィールドとを有する。第１情報処理装置ＩＤフィールドには、第１情報処理装置ＩＤが記録されている。第２情報処理装置ＩＤフィールドには、第２情報処理装置ＩＤが記録されている。トークンフィールドには、トークンが記録されている。変換表ＩＤフィールドには、変換表ＩＤが記録されている。トークンＤＢ３９は、一つのトークンについて一つのレコードを有する。
【０１４２】
第３ＣＰＵ３１は、所定の時間が経過したトークンに関するレコードを、トークンＤＢ３９から削除することにより、古いトークンが残ることによる、不正アクセス等のリスクを減らすことができる。
【０１４３】
図１９は、実施の形態６のプログラムの処理の流れを説明するフローチャートである。第１ＣＰＵ１１はトークン取得のサブルーチンを起動する（ステップＳ５９１）。トークン取得のサブルーチンは、第３ＣＰＵ３１が発行するトークンを取得するサブルーチンである。第３ＣＰＵ３１は、発行したトークンをトークンＤＢ３９に記録する。トークン取得のサブルーチンの処理の流れは後述する。
【０１４４】
第１ＣＰＵ１１は、初期化命令およびトークンを送信する（ステップＳ５９２）。第２ＣＰＵ２１は、初期化命令およびトークンを受信する（ステップＳ７０１）。第２ＣＰＵ２１は、ステップＳ７０１で受信したトークンを、第３ＣＰＵ３１に送信する（ステップＳ７０２）。
【０１４５】
第３ＣＰＵ３１は、トークンを受信する（ステップＳ８０１）。第３ＣＰＵ３１は、受信したトークンをキーとしてトークンＤＢ３９を検索してレコードを抽出する。第３ＣＰＵ３１は、抽出したレコードの変換表ＩＤフィールドに記録された変換表ＩＤを送信する（ステップＳ８０２）。
【０１４６】
なお、ステップＳ７０２において第２ＣＰＵ２１は自己の第２情報処理装置ＩＤおよびステップＳ７０１で通信した相手の第１情報処理装置ＩＤも第３ＣＰＵ３１に送信することが望ましい。第３ＣＰＵ３１は、抽出したレコードに記録された第１情報処理装置ＩＤおよび第２情報処理装置ＩＤが、ステップＳ８０１で受信した情報と一致していることを確認する。
【０１４７】
一致している場合には、第３ＣＰＵ３１はステップＳ８０２を実行する。一致していない場合には、第３ＣＰＵ３１はステップＳ８０２を実行しない。以上により、第３ＣＰＵ３１はトークンを発行した際に指定された第２ＣＰＵ２１に対して、変換表ＩＤを送信することができる。
【０１４８】
第２ＣＰＵ２１は、変換表ＩＤを受信する（ステップＳ７０４）。第２ＣＰＵ２１は、変換表ＩＤで指定された変換表７１から、第１信号を選択する（ステップＳ７０５）。第２ＣＰＵ２１は、状況に応じて応答リスト７３から選択した応答コードと、ステップＳ７０５で選択した第１信号とを送信する（ステップＳ６０３）。以後の第２ＣＰＵ２１の処理の流れは、図８を使用して説明した処理の流れと同一であるので、説明を省略する。
【０１４９】
第１ＣＰＵ１１は、応答コードおよび第１信号を受信する（ステップＳ５０３）。以後の第１ＣＰＵ１１の処理の流れは、図８を使用して説明した処理の流れと同一であるので、説明を省略する。
【０１５０】
図２０は、トークン取得のサブルーチンの処理の流れを説明するフローチャートである。トークン取得のサブルーチンは、第３ＣＰＵ３１が発行するトークンを取得するサブルーチンである。
【０１５１】
第１ＣＰＵ１１は、第３ＣＰＵ３１にトークンを要求する（ステップＳ９０１）。トークンを要求する信号には、第１情報処理装置ＩＤおよび第２情報処理装置ＩＤが含まれる。第３ＣＰＵ３１は、要求を受信する（ステップＳ８１１）。第３ＣＰＵ３１は、受信した第２情報処理装置ＩＤをキーとして変換表ＩＤＤＢ３８を検索し、レコードを抽出する（ステップＳ８１２）。第３ＣＰＵ３１は、抽出したレコードの変換表ＩＤフィールドに記録されている変換表ＩＤから１個の変換表ＩＤをランダムに選択する（ステップＳ８１３）。
【０１５２】
第３ＣＰＵ３１はトークンを生成する（ステップＳ８１４）。トークンは、たとえば連番を含む文字列である。第３ＣＰＵ３１は、トークンＤＢ３９に新しいレコードを作成し、ステップＳ８１１で受信した第１情報処理装置ＩＤと第２情報処理装置ＩＤ、ステップＳ８１４で生成したトークン、および、ステップＳ８１３で選択した変換表ＩＤをそれぞれのフィールドに記録する（ステップＳ８１５）。
【０１５３】
第３ＣＰＵ３１は、トークンおよび変換表ＩＤを送信する（ステップＳ８１６）。第１ＣＰＵ１１は、トークンおよび変換表ＩＤを受信する。その後、第１ＣＰＵ１１は処理を終了する。
【０１５４】
本実施の形態によると、第２情報処理装置２０によって異なる変換表７１を記憶させる情報処理システム４０を提供することができる。仮に第２情報処理装置２０が第三者により盗まれて解析され、記憶されていた変換表７１が漏洩した場合であっても、被害を抑えることが可能である。
【０１５５】
漏洩した変換表７１の変換表ＩＤが判明している場合には、変換表ＩＤＤＢ３８からその変換表ＩＤを削除することが望ましい。漏洩した変換表７１が使用されないため、漏洩による被害を防止できる。
【０１５６】
第１ＣＰＵ１１は、ステップＳ９０２で受信した変換表ＩＤに対応する変換表６１を、専用線等の安全な経路で接続されているサーバ等から取得して、補助記憶装置１３に記憶しても良い。必要な変換表６１のみを補助記憶装置１３に記憶することにより、第１情報処理装置１０の紛失、盗難等が発生した際の情報漏洩を最低限にすることができる。
【０１５７】
補助記憶装置３３に、第１情報処理装置ＩＤと変換表ＩＤとを関連づけて記憶するＤＢを備え、トークン取得のサブルーチンにおいて第３ＣＰＵが、第１情報処理装置１０と第２情報処理装置２０とが共通して備える変換表ＩＤを選択しても良い。第１情報処理装置１０によって、補助記憶装置１３に記憶する変換表６１を異ならせることにより、第１情報処理装置１０の盗難、紛失等に伴って変換表６１が漏洩した場合の影響を低減することができる。
【０１５８】
［実施の形態７］
図２１は、実施の形態７の情報処理システム４０の機能ブロック図である。情報処理システム４０は、第１情報処理装置１０と、第２情報処理装置２０とを備える。第１情報処理装置１０は、第１受信部８１と、第１変換部８２と、第１送信部８３とを備える。第２情報処理装置２０は、第２送信部８５と、第２変換部８６と、第２受信部８７と、実行部８８とを備える。
【０１５９】
第２送信部８５は、第１信号を送信する。第２変換部８６は、第２送信部８５が送信した第１信号を第３信号に変換する。
【０１６０】
第１受信部８１は、第２送信部８５が送信した第１信号を受信する。第１変換部８２は、第１受信部８１が受信した第１信号を第２信号に変換する。第１送信部８３は、第２情報処理装置２０に対する命令と第２信号とを送信する。
【０１６１】
第２受信部８７は、第１送信部８３が送信した命令と第２信号とを受信する。実行部８８は、第２変換部８６が変換した第３信号と、第２受信部８７が受信した第２信号とが一致する場合に、命令を実行する。
【０１６２】
［実施の形態８］
本実施の形態は、汎用のコンピュータとプログラム９７とを組み合わせて動作させることにより、本実施の形態の情報処理システム４０を実現する形態に関する。図２２は、実施の形態８の情報処理システム４０の構成を示す説明図である。なお、実施の形態１と共通する部分の説明は省略する。
【０１６３】
本実施の形態の情報処理システム４０は、ネットワークを介して接続されたコンピュータ９０と、第２情報処理装置２０と、可動橋５１とを含む。第２情報処理装置２０および可動橋５１の構成は、実施の形態１と同一である。
【０１６４】
コンピュータ９０は、第１ＣＰＵ１１、主記憶装置１２、補助記憶装置１３、通信部１４、入力部１５、表示部１６、読取部９２およびバスを備える。コンピュータ９０は、汎用のパーソナルコンピュータ、タブレット、スマートフォンまたは大型計算機等の情報機器等である。また、本実施の形態のコンピュータ９０は、大型計算機上で動作する仮想マシンでも良い。
【０１６５】
プログラム９７は、可搬型記録媒体９６に記録されている。第１ＣＰＵ１１は、読取部９２を介してプログラム９７を読み込み、補助記憶装置１３に保存する。また第１ＣＰＵ１１は、コンピュータ９０に実装されたフラッシュメモリ等の半導体メモリ９８に記憶されたプログラム９７を読出しても良い。さらに、第１ＣＰＵ１１は、通信部１４および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム９７をダウンロードして補助記憶装置１３に保存しても良い。
【０１６６】
プログラム９７は、コンピュータ９０の制御プログラムとしてインストールされ、主記憶装置１２にロードして実行される。これにより、コンピュータ９０は上述した第１情報処理装置１０として機能する。
【０１６７】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６８】
１０  第１情報処理装置
１１  第１ＣＰＵ
１２  主記憶装置
１３  補助記憶装置
１４  通信部
１５  入力部
１６  表示部
２０  第２情報処理装置
２１  第２ＣＰＵ
２２  主記憶装置
２３  補助記憶装置
２４  通信部
２７  Ｉ／Ｆ部
３０  仲介装置
３１  第３ＣＰＵ
３２  主記憶装置
３３  補助記憶装置
３４  通信部
３８  変換表ＩＤＤＢ
３９  トークンＤＢ
４０  情報処理システム
５１  可動橋
５２  アクチュエータ
５３  センサ
６１  変換表
６２  命令リスト
６３  応答リスト
７１  変換表
７２  命令リスト
７３  応答リスト
８１  第１受信部
８２  第１変換部
８３  第１送信部
８５  第２送信部
８６  第２変換部
８７  第２受信部
８８  実行部
９０  コンピュータ
９２  読取部
９６  可搬型記録媒体
９７  プログラム
９８  半導体メモリ
【図１】
2019047468.tif 000003
【図２】
2019047468.tif 000004
【図３】
2019047468.tif 000005
【図４】
2019047468.tif 000006
【図５】
2019047468.tif 000007
【図６】
2019047468.tif 000008
【図７】
2019047468.tif 000009
【図８】
2019047468.tif 000010
【図９】
2019047468.tif 000011
【図１０】
2019047468.tif 000012
【図１１】
2019047468.tif 000013
【図１２】
2019047468.tif 000014
【図１３】
2019047468.tif 000015
【図１４】
2019047468.tif 000016
【図１５】
2019047468.tif 000017
【図１６】
2019047468.tif 000018
【図１７】
2019047468.tif 000019
【図１８】
2019047468.tif 000020
【図１９】
2019047468.tif 000021
【図２０】
2019047468.tif 000022
【図２１】
2019047468.tif 000023
【図２２】
2019047468.tif 000024