JP2009104380A - Device and method for preventing unauthorized use of robot - Google Patents
Device and method for preventing unauthorized use of robot Download PDFInfo
- Publication number
- JP2009104380A JP2009104380A JP2007275086A JP2007275086A JP2009104380A JP 2009104380 A JP2009104380 A JP 2009104380A JP 2007275086 A JP2007275086 A JP 2007275086A JP 2007275086 A JP2007275086 A JP 2007275086A JP 2009104380 A JP2009104380 A JP 2009104380A
- Authority
- JP
- Japan
- Prior art keywords
- decryption
- decryption key
- encrypted
- robot
- key
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、ロボット不正使用防止装置およびロボット不正使用防止方法に関する。 The present invention relates to a robot unauthorized use preventing apparatus and a robot unauthorized use preventing method.
従来のロボットは、例えば工場などにおいて産業用ロボットとして様々な形態のものが使用されている。そして近年、その技術発展により警備用ロボットなど一般の人々の目に触れる場所での使用が広まりつつある。 Conventional robots are used in various forms as industrial robots in factories, for example. In recent years, the use of technology such as security robots in places that can be seen by the general public is becoming widespread.
このようにロボットが多くの人の目に触れるようになると、ロボットが第三者に勝手に使用されたり、盗難などによって本来の使用者以外の人が操作したりすることが考えられるため、不正使用防止機能を設ける必要がある。また、盗難後のリバースエンジニアリングによる技術漏洩などに対する対策も必要となる。 If the robot comes into contact with many people in this way, the robot may be used without permission by a third party or operated by someone other than the original user due to theft, etc. It is necessary to provide a use prevention function. In addition, it is necessary to take measures against technology leakage due to reverse engineering after theft.
このような不正使用や技術漏洩の対策として、もっとも単純な方法としてはロボットに物理的な鍵をかけて盗難などに合わないようにすることである。しかし、単に物理的な鍵をかけただけでは、鍵が破壊されてしまうこともあり、不正使用防止に対する対策としては不十分である。 As a countermeasure against such illegal use and technology leakage, the simplest method is to lock the robot with a physical key so as not to be stolen. However, simply applying a physical key may destroy the key, which is insufficient as a countermeasure against unauthorized use.
そこで、従来から、半導体メモリを利用したICカード(特許文献1)やハードディスクなどに格納されたセキュリティデータ(特許文献2)をロボットに接続しないと、ロボット自体が動かないようにしたり、また、ロボットの制御プログラムにパスワード認証を実装して、パスワードがないとプログラムが開かないようにしたり(特許文献3、4)ということが行われている。
しかしながら、上記のような従来の不正防止方法では、半導体メモリやハードディスクに入れたセキュリティデータを使用する場合、一緒に盗難や鹵獲されてしまえば不正行為を防止ことはできず、また、時間をかければ総当りでデータを入力するなどの手法により解読されてしまうおそれがある。一方、制御プログラムそのものがリバースエンジニアリングにより解析されてしまえば、技術漏洩だけでなく、パスワード認証のプログラムブロックを回避させて動作させるなどの方法によって、不正使用されるおそれがある。 However, with the conventional fraud prevention methods as described above, if security data stored in a semiconductor memory or hard disk is used, fraud can not be prevented if it is stolen or captured together, and it takes time. For example, there is a risk that the data will be deciphered by a method such as inputting data with brute force. On the other hand, if the control program itself is analyzed by reverse engineering, it may be used illegally not only by technology leakage but also by a method such as operating by bypassing a password authentication program block.
本発明は上記課題を解決するためになされたものであり、第1の目的は、物理的な鍵の破壊やリバースエンジニアリングによるロボットの不正使用を防止することができるロボット不正使用防止装置およびロボット不正使用防止方法を提供することにある。 SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems, and a first object thereof is to provide a robot unauthorized use prevention apparatus and robot unauthorized use capable of preventing the destruction of a physical key and unauthorized use of a robot by reverse engineering. It is to provide a use prevention method.
また、第2の目的は、上記第1の目的に加えて、時間をかけた解読によるロボットの不正使用を可及的に防止することができるロボット不正使用防止装置およびロボット不正使用防止方法を提供することにある。 Further, in addition to the first object, the second object is to provide a robot unauthorized use prevention device and a robot unauthorized use prevention method capable of preventing unauthorized use of a robot by decoding over time. There is to do.
上記第1の目的を達成するための請求項1に係わるロボット不正使用防止装置は、揮発性記憶手段と、暗号化したロボット制御プログラムを記憶する不揮発性記憶手段と、前記暗号化したロボット制御プログラムを、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵に基づいて復号して前記揮発性記憶手段に展開する復号手段とを備えることを特徴とするものである。
An apparatus for preventing unauthorized use of a robot according to
また、上記第1の目的を達成するための請求項2に係わるロボット不正使用防止装置は、揮発性記憶手段と、暗号化したロボット制御プログラムと共に、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵をさらに暗号化することで生成される暗号化した復号鍵を記憶する不揮発性記憶手段と、入力された鍵復号用の復号鍵に基づいて前記暗号化した復号鍵を復号してプログラム復号用の復号鍵を生成し、当該プログラム復号用の復号鍵に基づいて前記暗号化したロボット制御プログラムを復号して前記揮発性記憶手段に展開する復号手段とを備えることを特徴とするものである。
According to another aspect of the present invention, there is provided an apparatus for preventing unauthorized use of a robot according to
また、上記第2の目的を達成するための請求項3に係わるロボット不正使用防止装置は、請求項2において、前記暗号化した復号鍵は、当該復号鍵を使用できる複数の期間ごとに設定された鍵復号用の復号鍵により暗号化され、前記期間ごとに関連付けられて前記不揮発性記憶手段に複数記憶され、前記復号手段は、前記鍵復号用の復号鍵が入力された日時と適合する前記暗号化した復号鍵を前記不揮発性記憶手段から取り出し、取り出した前記暗号化した復号鍵を用いてプログラム復号用の復号鍵を復号することを特徴とするものである。 According to a third aspect of the present invention, there is provided an apparatus for preventing unauthorized use of a robot according to a third aspect of the present invention, wherein the encrypted decryption key is set for each of a plurality of periods during which the decryption key can be used. Encrypted with the decryption key for key decryption, and associated with each period and stored in the nonvolatile storage means, and the decryption means matches the date and time when the decryption key for key decryption is input. The encrypted decryption key is extracted from the non-volatile storage means, and the decryption key for program decryption is decrypted using the extracted decryption key.
また、上記第2の目的を達成するための請求項4に係わるロボット不正使用防止装置は、請求項2または3において、前記暗号化した復号鍵が、前記プログラム復号用の復号鍵に、使用できる期間の日時を基にした変換処理を実施して中間データ復号鍵を生成し、当該中間データ復号鍵をさらに暗号化したものであることを特徴とするものである。 According to a fourth aspect of the present invention, there is provided an apparatus for preventing unauthorized use of a robot according to a fourth aspect, wherein the encrypted decryption key can be used as the decryption key for decrypting the program. The intermediate data decryption key is generated by performing conversion processing based on the date and time of the period, and the intermediate data decryption key is further encrypted.
また、上記第2の目的を達成するための請求項5に係わるロボット不正使用防止装置は、請求項3または4において、前記暗号化した復号鍵が、前記使用できる期間毎に前記不揮発性記憶手段に記憶されることを特徴とするものである。
The robot unauthorized use preventing apparatus according to claim 5 for achieving the second object described above is the non-volatile storage means according to
また、上記第2の目的を達成するための請求項6に係わるロボット不正使用防止装置は、請求項2乃至5のいずれか一項において、前記暗号化した復号鍵が、非対称暗号方式によって送信されて前記不揮発性記憶手段に記憶されることを特徴とするものである。 According to a sixth aspect of the present invention, there is provided an apparatus for preventing unauthorized use of a robot according to a sixth aspect of the present invention, wherein the encrypted decryption key is transmitted by an asymmetric cryptosystem. And stored in the non-volatile storage means.
一方、上記第1の目的を達成するための請求項7に係わるロボット不正使用防止方法は、揮発性記憶手段と、不揮発性記憶手段と、復号手段とを備えたロボット不正使用防止装置におけるロボット不正使用防止方法であって、前記不揮発性記憶手段には、暗号化したロボット制御プログラムが記憶され、前記復号手段が、ロボットの動作開始時に、前記暗号化したロボット制御プログラムを、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵に基づいて復号して前記揮発性記憶手段に展開することを特徴とするものである。 On the other hand, a robot unauthorized use prevention method according to claim 7 for achieving the first object is a robot unauthorized use in a robot unauthorized use preventing apparatus comprising a volatile storage means, a nonvolatile storage means, and a decryption means. In the use prevention method, an encrypted robot control program is stored in the non-volatile storage means, and the decryption means stores the encrypted robot control program at the start of robot operation. The decryption is performed based on a decryption key for decrypting a program for decryption, and the decryption key is expanded in the volatile storage means.
また、上記第1の目的を達成するための請求項8に係わるロボット不正使用防止方法は、揮発性記憶手段と、不揮発性記憶手段と、復号手段とを備えたロボット不正使用防止装置におけるロボット不正使用防止方法であって、前記不揮発性記憶手段には、暗号化したロボット制御プログラムと共に、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵をさらに暗号化し、当該暗号化により生成される暗号化した復号鍵が記憶され、前記復号手段が、入力された鍵復号用の復号鍵に基づいて前記暗号化した復号鍵を復号してプログラム復号用の復号鍵を生成し、当該プログラム復号用の復号鍵に基づいて前記暗号化したロボット制御プログラムを復号して前記揮発性記憶手段に展開することを特徴とするものである。 According to another aspect of the present invention, there is provided a method for preventing unauthorized use of a robot according to an eighth aspect of the present invention, wherein a robot unauthorized use in a robot unauthorized use preventing apparatus comprising volatile storage means, nonvolatile storage means, and decryption means. In the use prevention method, the non-volatile storage means further encrypts a decryption key for decrypting the program for decrypting the robot control program together with the encrypted robot control program, and is generated by the encryption. An encrypted decryption key is stored, and the decryption means decrypts the encrypted decryption key based on the input key decryption key to generate a decryption key for program decryption. The encrypted robot control program is decrypted on the basis of the decryption key and expanded in the volatile storage means.
また、上記第2の目的を達成するための請求項9に係わるロボット不正使用防止方法は、請求項8において、前記暗号化した復号鍵が、前記プログラム復号用の復号鍵を当該復号鍵が使用できる期間の情報とともに暗号化したものであることを特徴とするものである。 In addition, the robot unauthorized use prevention method according to claim 9 for achieving the second object described above is the method according to claim 8, wherein the encrypted decryption key uses the decryption key for decrypting the program. It is characterized by being encrypted together with information of a possible period.
また、上記第2の目的を達成するための請求項10に係わるロボット不正使用防止方法は、前記暗号化した復号鍵が、前記プログラム復号用の復号鍵に、使用できる期間の日時を基にした変換処理を実施して中間データ復号鍵を生成し、当該中間データ復号鍵をさらに暗号化したものであることを特徴とするものである。 According to a tenth aspect of the present invention, there is provided a method for preventing unauthorized use of a robot according to a tenth aspect of the present invention, wherein the encrypted decryption key is used as a decryption key for program decryption based on the date and time of a usable period. The intermediate data decryption key is generated by performing the conversion process, and the intermediate data decryption key is further encrypted.
また、上記第2の目的を達成するための請求項11に係わるロボット不正使用防止方法は、請求項9または10において、前記暗号化した復号鍵が、前記使用できる期間毎に前記不揮発性記憶手段に記憶されることを特徴とするものである。
A robot unauthorized use prevention method according to
また、上記第2の目的を達成するための請求項12に係わるロボット不正使用防止方法は、請求項8乃至11のいずれか一項において、前記暗号化した復号鍵が、非対称暗号方式によって送信されて前記不揮発性記憶手段に記憶されることを特徴とするものである。 According to a twelfth aspect of the present invention, there is provided a method for preventing unauthorized use of a robot according to a twelfth aspect, wherein the encrypted decryption key is transmitted by an asymmetric encryption method. And stored in the non-volatile storage means.
上記請求項1に係わるロボット不正使用防止装置及び請求項7に係わるロボット不正使用防止方法によれば、ロボット制御プログラムを暗号化して不揮発性記憶手段に記憶しておき、ロボットを動作させる段階でプログラム復号用の復号鍵に基づいて復号して揮発性記憶手段に展開するようにしたので、物理的な鍵の破壊により動作中のロボットが盗難に遭った場合でも、ロボットの電源を止めた段階で、揮発性記憶手段に展開されていた復号したロボット制御プログラムは消えてしまうため、そのまま使用することはできなくなる。また、暗号化したロボット制御プログラムは復号鍵がないとプログラムの処理内容が一切分からないので、リバースエンジニアリグなどの解析による技術漏洩や不正使用を防止することができる。
According to the robot unauthorized use preventing apparatus according to
また、上記請求項2に係わるロボット不正使用防止装置及び請求項8に係わるロボット不正使用防止方法によれば、ロボットを動作させる段階で、暗号化した復号鍵を鍵復号用の復号鍵に基づいて復号してプログラム復号用の復号鍵を生成し、暗号化したロボット制御プログラムをこのプログラム復号用の復号鍵に基づいて復号して揮発性記憶手段に展開するようにしたので、物理的な鍵の破壊により動作中のロボットが盗難に遭った場合でも、ロボットの電源を止めた段階で、揮発性記憶手段に展開されていた復号したロボット制御プログラムは消えてしまうため、そのまま使用することはできなくなる。また、暗号化したロボット制御プログラムは復号鍵がないとプログラムの処理内容が一切分からないので、リバースエンジニアリグなどの解析による技術漏洩や不正使用を防止することができる。
According to the robot unauthorized use preventing apparatus according to
また、上記請求項3に係わるロボット不正使用防止装置及び請求項9に係わるロボット不正使用防止方法によれば、暗号化した復号鍵を使用できる期間毎に作成するようにしたので、仮に運転中のロボットが、その時点での鍵復号用の復号鍵とともに盗難されたとしても、運用期間が過ぎてしまえば、それ以上はロボットを使用されることがないので、不正使用による被害を限定することができる。また暗号化したロボット制御プログラム自体の解析もできなくなる。そして、現在動作中の期間を過ぎれば、暗号化した復号鍵そのものの効力もなくなるため、動作中に暗号化した復号鍵が解析されたとしても、その復号鍵は、運用期間を過ぎればそれ以降は使うことのできないものとなる。したがって、運用期間を短く設定しておけば、ロボットの盗難後に暗号化した復号鍵の解読に時間をかけても、運用期間を過ぎれば無駄になるため、不正使用が出来なくなる。また、仮に盗難直後に暗号化した復号鍵を解読されて不正使用されたとしても、不正使用の時間をごく短時間に抑えることが可能となるため、時間をかけた解読による不正使用を可及的に防止することができる。さらに、暗号化すべきロボット制御プログラムが多くある場合や、運用期間を時間単位で細分化した場合などにおいては、不揮発性記憶手段に記憶するデータ量を大幅に少なくすることができるので、不揮発性記憶手段の記憶容量を有効利用することができる。
In addition, according to the robot unauthorized use prevention apparatus according to
上記請求項4に係わるロボット不正使用防止装置及び請求項10に係わるロボット不正使用防止方法によれば、プログラム復号用の復号鍵に、使用できる期間の日時を基にした変換処理を実施して中間データ復号鍵を生成し、この中間データ復号鍵をさらに暗号化することにより暗号化した復号鍵を得るようにしたので、暗号化した復号鍵の解読をより困難なものにすることができる。
According to the robot unauthorized use preventing apparatus according to
上記請求項5に係わるロボット不正使用防止装置及び請求項11に係わるロボット不正使用防止方法によれば、暗号化した復号鍵を使用できる期間に応じて不揮発性記憶手段に記憶することにより、不揮発性記憶手段に記憶させておく暗号化した復号鍵は当面のロボットの動作に必要な分だけとすることができる。このため、仮に不揮発性記憶手段に記憶されている暗号化した復号鍵が解析されたとしても、解析される復号鍵の数を最小限に抑えることができる。
According to the robot unauthorized use preventing apparatus according to claim 5 and the robot unauthorized use preventing method according to
上記請求項6に係わるロボット不正使用防止装置及び請求項12に係わるロボット不正使用防止方法によれば、ロボット側において、送信されてきた公開鍵によりプログラム復号用の復号鍵を復号できない場合には、正しくない送信元から送られてきたデータと判断することができるため、送信経路上での改鼠に対して安全なものとすることができる。 According to the robot unauthorized use preventing apparatus according to claim 6 and the robot unauthorized use preventing method according to claim 12, when the decryption key for decrypting the program cannot be decrypted by the public key transmitted on the robot side, Since it can be determined that the data is transmitted from an incorrect transmission source, it can be made safe against falsification on the transmission path.
以下、本発明に係わるロボット不正使用防止装置を適用した実施形態について図面を参照しながら説明する。 Hereinafter, an embodiment to which a robot unauthorized use preventing apparatus according to the present invention is applied will be described with reference to the drawings.
[実施形態1]
図1は、本発明に係るロボット不正使用防止装置を適用したロボット制御システムの構成を示すブロック図である。
[Embodiment 1]
FIG. 1 is a block diagram showing a configuration of a robot control system to which a robot unauthorized use preventing apparatus according to the present invention is applied.
この実施形態1は、ブートローダを備えたロボット制御システムに本発明を適用した例である。 The first embodiment is an example in which the present invention is applied to a robot control system provided with a boot loader.
図1に示すように、本実施形態のロボット制御システム1は、ロボットを動作させるときに必要なプログラムが展開される主記憶装置11(揮発性記憶手段)と、この主記憶装置11に展開(ロード)されたプログラムを実行してロボットを制御し、動作させるCPU13と、ロボットの動作に必要なプログラムを常時記憶している不揮発性メモリ15(不揮発性記憶手段)とを備えている。また、このシステムには、キーボードやネットワークなど25が接続されている。
As shown in FIG. 1, the
主記憶装置11内には、展開したブートローダ17と、復号したロボット制御プログラム19とが一時記憶される。この主記憶装置11は、例えばRAMなどの揮発性メモリであり、ロボットの動作が終了した時点または電源がオフとなった時点で、記憶されている内容はすべて消去される。
In the
一方、不揮発性メモリ15には、ブートローダ21と、暗号化したロボット制御プログラム23とが記憶されている。この暗号化したロボット制御プログラム23は、平文であるロボット制御プログラムを所定の復号鍵により暗号化して暗号文としたものであり、プログラム復号用の復号鍵により復号されるものである。
On the other hand, the
ここで、プログラム復号用の暗号鍵は、例えば、DES(Data Encryption Standard)のような対称暗号方式であれば、暗号化の際に使用された暗号鍵と等しいものとなる。また、例えば、RSA(Rivest,Sharmir,Adleman’s Method)のような非対称暗号方式であれば、暗号化の際に使用された暗号鍵とは異なる秘密鍵となる。これらプログラム復号用の復号鍵は、ロボットを使用することができる使用者や組織により管理されている。このときに、ロボットの動作レベルに応じて権限の切り分けを行い、各レベル毎にプログラム復号用の復号鍵を設定するようにしてもよい。例えば、監視用ロボットを例とすると、Aレベルではロボットを使って特定領域を監視することしかできないが、Bレベルでは、監視に加えて侵入者への威嚇ができ、Cレベルでは監視、威嚇に加えてさらに侵入者への攻撃ができるというように権限の切り分けを行った場合、各レベルの動作に応じてロボット制御プログラムを分け、それぞれのプログラム毎にプログラム復号用の復号鍵を設定することにより、権限に応じてロボットの機能を制限することができる。上記監視用ロボットの例で言うと、監視のみを許可された使用者、監視+威嚇が許可された使用者、監視+威嚇+攻撃が許可された使用者というような権限の切り分けとなり、下位の権限をもつAレベルの使用者は監視用プログラムについてのみ実行することができ、中位の権限をもつBレベルの使用者は監視と威嚇ができるプログラムを実行することができ、上位の権限をもつCレベルの使用者は監視、威嚇及び攻撃ができるプログラムを実行することができるようになる。 Here, if the encryption key for program decryption is a symmetric encryption method such as DES (Data Encryption Standard), it is the same as the encryption key used in the encryption. Further, for example, in the case of an asymmetric cryptosystem such as RSA (Rivest, Sharmir, Adleman's Method), the secret key is different from the encryption key used at the time of encryption. These decryption keys for program decryption are managed by a user or organization that can use the robot. At this time, authority may be divided according to the operation level of the robot, and a decryption key for program decryption may be set for each level. For example, taking a monitoring robot as an example, a specific area can only be monitored using a robot at the A level, but in addition to monitoring at the B level, threats to intruders can be achieved, and at the C level, monitoring and threatening can be performed. In addition, when the authority is separated so that further intruder attacks can be performed, the robot control program is divided according to the operation of each level, and a decryption key for program decryption is set for each program. Depending on the authority, the functions of the robot can be restricted. In the example of the above-mentioned monitoring robot, the authority is divided into a user who is permitted to monitor only, a user who is permitted to monitor + threat, and a user who is permitted to monitor + threat + attack. An authorized A level user can execute only the monitoring program, and an intermediate B level user can execute a program that can be monitored and threatened, and has a higher authority. C level users will be able to run programs that can be monitored, threatened and attacked.
また、不揮発性メモリ15は、例えばフラッシュメモリなどの半導体メモリや、ハードディスクドライブ(HDD)などを用いたものである。そのほか、例えば、ICカード形状などの可搬式のメモリ装置として、ロボットを動作させるときに接続するようにしてもよい。
The
不揮発性メモリ15に記憶されている、暗号化したロボット制御プログラム23は、動作させるロボットに応じて複数の制御ブロック毎に記憶されていてもよいし、一つでもよい。また、複数の制御ブロックに分けて記憶する場合はロボットの動作に関わる主要ブロックのみ暗号化されたものとしてもよい。
The encrypted
この不揮発性メモリ15に記憶されているブートローダ21は復号手段を含み、ロボット起動時に主記憶装置11に展開される。そして、展開されたブートローダ21が起動して、使用者によってロボットに接続されたキーボードまたはネットワークを介してプログラム復号用の復号鍵が入力されることにより、展開したブートローダ17の復号手段が実行される。このとき、入力されたプログラム復号用の復号鍵に基づいて、暗号化したロボット制御プログラム23が復号されて、主記憶装置11内に展開される。
The
次に、本実施形態のロボット制御システム1を動作させる際の処理手順について説明する。
Next, a processing procedure when operating the
図2は、ロボット動作開始時の処理手順を示すフローチャートである。ロボットの動作開始の命令、コマンドがキーボードやネットワークなど25を介して入力されると、不揮発性メモリ15内のブートローダ21が読み込まれて、主記憶装置11内に展開される(ステップS101)。そして、展開したブートローダ17が起動される(ステップS102)。
FIG. 2 is a flowchart showing a processing procedure at the start of robot operation. When a command or command for starting the operation of the robot is input via the keyboard or the
次に、展開したブートローダ17は、動作モードとプログラム復号用の復号鍵を受け付け(ステップS103)、暗号化したロボット制御プログラム23を一旦、主記憶装置11内に読み込む(ステップS104)。
Next, the expanded
続いて、展開したブートローダ17は、入力されたプログラム復号用の復号鍵に基づいて、読み込んだ暗号化したロボット制御プログラム23を復号し(ステップS105)、復号したロボット制御プログラム19として主記憶装置11内の実行領域に展開する(ステップS106)。
Subsequently, the expanded
なお、後述する実施形態2のように、プログラム復号用の復号鍵自体が暗号化されている場合には、ステップS105において暗号化したロボット制御プログラム23を復号するのに先立って、暗号化した復号鍵の復号を行う。
If the decryption key for program decryption itself is encrypted as in the second embodiment to be described later, the encrypted decryption is performed prior to decrypting the
その後、復号処理が正常に行われたか否かを判断して(ステップS107)、正常に行われていればロボット制御プログラムが起動される(ステップS108)。ここで復号処理が正常に行われなかった場合には、ステップS103へ戻りプログラム復号用の復号鍵入力待ちになる。したがって、正しいプログラム復号用の復号鍵が入力されない限りロボットが動作することはない。 Thereafter, it is determined whether or not the decryption process has been performed normally (step S107). If the decryption process has been performed normally, the robot control program is started (step S108). If the decryption process is not performed normally, the process returns to step S103 and waits for the decryption key for program decryption. Therefore, the robot does not operate unless a correct decryption key for program decryption is input.
なお、一定回数以上間違ったプログラム復号用の復号鍵が入力された場合は、それ以降動作を全く受け付けなくするようにしてもよい。 If a wrong decryption key for program decryption is input more than a certain number of times, the subsequent operation may not be accepted at all.
本実施形態のロボット制御システム1によれば、ロボット制御プログラムを暗号化して記憶しておき、ロボットを動作させる段階でプログラム復号用の復号鍵に基づいて復号して、不揮発性記憶手段である主記憶装置11に展開するようにしたので、物理的な鍵の破壊により動作中のロボットが盗難に遭った場合でも、ロボットを停止させた段階で主記憶装置11に展開されていた復号したロボット制御プログラム19は消えてしまうため、そのまま使用することはできなくなる。また、暗号化したロボット制御プログラム23は復号鍵がないとプログラムの処理内容が一切分からないので、リバースエンジニアリグなどの解析による技術漏洩や不正使用を防止することができる。
According to the
また、ロボット制御プログラム毎にプログラム復号用の復号鍵を変えることができるため、例えばロボットによる武器の使用など高い機密度を要する動作の実行に係わるプログラムについては、プログラム復号用の復号鍵を保持する使用者を限定することにより、細かい機密管理が可能となる。 In addition, since the decryption key for program decryption can be changed for each robot control program, for example, a program related to execution of an operation requiring high sensitivity such as use of a weapon by a robot holds a decryption key for program decryption. By limiting the users, it is possible to perform fine confidential management.
以上説明した実施形態1は、ブートローダ21を備えたロボットシステムの場合であるが、近年、ロボットの制御システムとして、汎用のコンピュータを使用したものが出てきており、それらはOSを備え、OS上でロボット制御プログラムを動作させている。
The first embodiment described above is a case of a robot system provided with the
次に、このようなOSを備えたロボット制御システムに本発明を適用した実施形態について説明する。 Next, an embodiment in which the present invention is applied to a robot control system provided with such an OS will be described.
図3は、OSを備えたロボット制御システムのブロック図であり、図4は、OSを備えたロボット制御システムにおけるロボット動作開始時の処理手順を示すフローチャートである。なお、図3において、図1と同じ機能、作用の部材には同じ符号を付している。 FIG. 3 is a block diagram of a robot control system provided with an OS, and FIG. 4 is a flowchart showing a processing procedure at the start of robot operation in the robot control system provided with an OS. In FIG. 3, members having the same functions and functions as those in FIG.
図3に示すように、本システム2は、主記憶装置11(揮発性記憶手段)と、CPU13と、不揮発性メモリ15(不揮発性記憶手段)を備えている。また、このシステムには、キーボードやネットワークなど25に接続されている。
As shown in FIG. 3, the
不揮発性メモリ15には、OS27、ローダプログラム29、および暗号化したロボット制御プログラム23が記憶されている。OS27およびローダプログラム29は、起動時に主記憶装置11へ読み込まれる。これにより、主記憶装置11内に、OSおよびデバイスドライバ31などが展開され、また、ローダプログラム33が展開される。そして、展開したローダプログラム33の働きにより、主記憶装置11内に記憶領域としてRAMディスク(仮想ハードディスク)35が確保され、その中に、暗号化したロボット制御プログラム23が復号されて、復号したロボット制御プログラム19が展開される。
The
図4のフローチャートに示す処理は、OSおよびローダプログラムの読み込みなどが異なるだけで、基本的な処理の手順は図2と同様である。 The process shown in the flowchart of FIG. 4 is the same as that of FIG. 2 except that the OS and loader program are read.
まず、ロボットの動作開始が、使用者からキーボードやネットワークなど25を介して入力されると、OS27が読み込まれて、主記憶装置11内に展開されて起動される(ステップS201)。OS起動後、ローダプログラムが読み込まれて(ステップS202)、起動される(ステップS203)。
First, when the operation start of the robot is input from the user via the keyboard, the
そして、起動されたローダプログラムによって、まず、RAMディスク領域の確保が行われる(ステップS204)。 Then, the RAM disk area is first secured by the activated loader program (step S204).
その後は、実施形態1同様に、展開したローダプログラム33が実行されることで、動作モード、プログラム復号用の復号鍵入力(ステップS205)、暗号化したロボット制御プログラム23の読み込み(ステップS206)、読み込んだ暗号化したロボット制御プログラム23の復号(ステップS207)が行われる。ここで、復号化された制御プログラムはRAMディスクへ書き出される(ステップS208)。
After that, as in the first embodiment, the developed
なお、後述する実施形態2のように、プログラム復号用の復号鍵自体が暗号化されている場合には、ステップS207において暗号化したロボット制御プログラム23を復号するのに先立って、暗号化した復号鍵の復号を行う。
If the decryption key for program decryption itself is encrypted as in the second embodiment to be described later, the encrypted decryption is performed prior to decrypting the
そして、復号処理が正常に行われたか否かを判断して(ステップS209)、正常に行われていればロボット制御プログラムが起動される(ステップS210)。ここで、復号処理が正常に行われなかった場合には、ステップS205へ戻り、動作モード、プログラム復号用の復号鍵の入力待ちになる。したがって、正しいプログラム復号用の復号鍵が入力されない限りロボットが動作することはない。なお、一定回数以上間違ったプログラム復号用の復号鍵が入力された場合は、それ以降動作を全く受け付けなくするようにしてもよい。 Then, it is determined whether or not the decryption process has been performed normally (step S209). If the decryption process has been performed normally, the robot control program is started (step S210). If the decryption process is not normally performed, the process returns to step S205 to wait for input of an operation mode and a decryption key for program decryption. Therefore, the robot does not operate unless a correct decryption key for program decryption is input. If a wrong decryption key for program decryption is input more than a certain number of times, the subsequent operation may not be accepted at all.
このように、OSを備えたロボット制御システム2についても、本発明を適用することが可能であり、先に説明した実施形態と同様に、物理的な鍵の破壊による不正使用や、リバースエンジニアリグなどの解析による技術漏洩や不正使用を防止することができる。
As described above, the present invention can also be applied to the
また、ロボット制御プログラム毎にプログラム復号用の復号鍵を変えることができるため、例えばロボットによる武器の使用など高い機密度を要する動作の実行に係わるプログラムについては、プログラム復号用の復号鍵を保持する使用者を限定することにより、細かい機密管理が可能となる。 In addition, since the decryption key for program decryption can be changed for each robot control program, for example, a program related to execution of an operation requiring high sensitivity such as use of a weapon by a robot holds a decryption key for program decryption. By limiting the users, it is possible to perform fine confidential management.
[実施形態2]
次に、実施形態2について説明する。ロボット制御プログラムの暗号化は、実施形態1に示したように、ロボット制御プログラムを暗号化して、それをプログラム復号用の復号鍵で解くようにしてもよい。しかし、さらに安全性を高めるために、ロボット制御プログラムを復号するためのプログラム復号用の復号鍵を、さらに暗号化して、暗号化した復号鍵をロボット内に保持するようにしてもよい。以下、不揮発性メモリ15に記憶されている「暗号化した復号鍵」に対して、この暗号化した復号鍵を復号するために使用者が入力する復号鍵を「鍵復号用の復号鍵」という。
[Embodiment 2]
Next,
図5は、ブートローダ21を備えたロボット制御システム3において、プログラム復号用の復号鍵をさらに暗号化した場合のシステム構成を示すブロック図である。
FIG. 5 is a block diagram showing a system configuration when the decryption key for program decryption is further encrypted in the
図5に示したシステムにおいて図1と異なるのは、不揮発性メモリ15内に、暗号化した復号鍵37を記憶していることにある。その他の構成は図1に示したシステムと同じである。
The system shown in FIG. 5 differs from FIG. 1 in that an encrypted decryption key 37 is stored in the
図2に示したシステムでは、ロボット制御プログラムを復号するためのプログラム復号用の復号鍵をさらに暗号化し、この暗号化した複数の復号鍵37を不揮発性メモリ15に記憶させている。そして、展開したブートローダ17が機能した段階で、まず、この暗号化した復号鍵37を読み込み、その復号鍵を用いてプログラム復号用の復号鍵を復号し、さらにこのプログラム復号用の復号鍵を用いてロボット制御プログラム23を復号する。
In the system shown in FIG. 2, the decryption key for decrypting the program for decrypting the robot control program is further encrypted, and the plurality of
また、本実施形態では、プログラム復号用の復号鍵を暗号化する際に、使用できる複数の期間(以下、「運用期間」と称する)ごとに設定された複数の鍵復号用の復号鍵(暗号化鍵)を用いて暗号化している。これにより、運用期間と、暗号化した復号鍵37と、この暗号化した復号鍵37を復号するための鍵復号用の復号鍵との組み合わせが、運用期間ごとに複数得られることになる。そして、不揮発性メモリ15には、運用期間と、これに対応する暗号化した復号鍵37とを関連付けて複数記憶させておく。図5の不揮発性メモリ15において、暗号化した復号鍵37は、運用期間と関連付けられた暗号化した復号鍵の集まりを示している。
Further, in the present embodiment, when encrypting a decryption key for program decryption, a plurality of decryption keys (encryption keys) for key decryption set for each of a plurality of usable periods (hereinafter referred to as “operation periods”). Encryption). As a result, a plurality of combinations of the operation period, the encrypted decryption key 37, and the decryption key for key decryption for decrypting the encrypted decryption key 37 are obtained for each operation period. The
ロボットの使用者は、運用期間ごとに配布された鍵復号用の復号鍵をシステムに入力して、プログラム復号用の復号鍵を復号する。 The robot user inputs the decryption key for key decryption distributed every operation period to the system, and decrypts the decryption key for program decryption.
ブートローダ21は、使用者により鍵復号用の復号鍵が入力されると、その鍵復号用の復号鍵が入力された日時と適合する暗号化した復号鍵37を、不揮発性メモリ15から取り出す。暗号化した復号鍵37は運用期間と関連付けられているため、鍵復号用の復号鍵が入力された日時と運用期間とを対比することによって、入力された日時と適合する暗号化した復号鍵37を特定することができる。例えば、鍵復号用の復号鍵が入力された日時を7月15日、8:00とすると、運用期間7月1日〜7月31と関連付けられた暗号化した復号鍵37が記憶されていれば、この暗号化した復号鍵37のみが取り出されることになる。
When the decryption key for key decryption is input by the user, the
そして、ブートローダ21は、取り出した暗号化した復号鍵37に対し、入力された鍵復号用の復号鍵を用いてプログラム復号用の復号鍵の復号を試みる。ここで、入力された鍵復号用の復号鍵に設定された運用期間と、取り出された暗号化した復号鍵37の運用期間とが適合していれば、暗号化した復号鍵37が正しく復号され、そのプログラム復号用の復号鍵により暗号化したロボット制御プログラム23を復号することができる。一方、入力された鍵復号用の復号鍵に設定された運用期間と、取り出された暗号化した復号鍵37の運用期間とが適合していなければ、暗号化した復号鍵37を正しく復号することができないため、そのプログラム復号用の復号鍵により暗号化したロボット制御プログラム23を復号することはできないことになる。
Then, the
このように、暗号化した復号鍵37を使用できる運用期間を予め定めておくことによって、使用者が入力した鍵復号用の復号鍵が、予め定められた運用期間以外の期間に対応している復号鍵である場合には、暗号化した復号鍵37を復号することができず、この結果、暗号化したロボット制御プログラム23も復号できないことになる。
In this way, by setting an operation period in which the encrypted decryption key 37 can be used in advance, the decryption key for key decryption input by the user corresponds to a period other than the predetermined operation period. If it is a decryption key, the encrypted decryption key 37 cannot be decrypted, and as a result, the encrypted
本実施形態において、暗号化した復号鍵37は、運用期間に応じて後から不揮発性メモリ15に追加記憶できるようにしておき、不揮発性メモリ15に記憶させておく暗号化した復号鍵37は当面のロボットの動作に必要な分だけとすることが好ましい。そして、当面の動作に不要なさらに先の期間分の暗号化した復号鍵37は、例えば、工場の管理室や本社管理部門など、ロボットから離れた場所で管理、保管しておき、ロボットの使用現場には必要な運用期間の分だけ鍵復号用の復号鍵を配布するようしておくことが好ましい。このように、不揮発性メモリ15に記憶させておく暗号化した復号鍵を、当面のロボットの動作に必要な分だけとすることにより、仮に不揮発性メモリ15に記憶されている暗号化した復号鍵が解析されたとしても、解析される復号鍵の数を最小限に抑えることができる。
In the present embodiment, the encrypted decryption key 37 can be additionally stored in the
本実施形態のロボット制御システム3においても、ロボット制御プログラムを暗号化して不揮発性メモリ15記憶しておき、ロボットを動作させる段階でプログラム復号用の復号鍵に基づいて復号して主記憶装置11に展開するようにしたので、実施形態1と同様に、物理的な鍵の破壊による不正使用や、リバースエンジニアリグなどの解析による技術漏洩や不正使用を防止することができる。
Also in the
また、暗号化した復号鍵37を運用期間を予め定めておくことによって、例えば、運転中のロボットが、その時点での鍵復号用の復号鍵とともに盗難されたとしても(鍵復号用の復号鍵は盗み見、作業者の不正などにより盗難される)、運用期間が過ぎてしまえば、それ以上はロボットを使用されることがなく、不正使用による被害を限定することができる。また暗号化したロボット制御プログラム23自体の解析もできなくなる。
Further, by setting an operation period in advance for the encrypted decryption key 37, for example, even if the operating robot is stolen together with the decryption key for key decryption at that time (decryption key for key decryption). If the operation period expires, the robot will not be used any more and the damage caused by unauthorized use can be limited. Also, the encrypted
そして、現在動作中の期間を過ぎれば、暗号化した復号鍵37そのものの効力もなくなるため、動作中に暗号化した復号鍵37が解析されたとしても、その復号鍵は、運用期間を過ぎればそれ以降は使うことのできないものとなる。したがって、運用期間を短く設定しておけば、ロボットの盗難後に暗号化した復号鍵の解読に時間をかけても、運用期間が過ぎれば無駄になるため、不正使用ができなくなる。また、仮に盗難直後に暗号化した復号鍵を解読されたとしても、不正使用の時間をごく短時間に抑えることができる。よって、時間をかけた復号鍵の解読による不正使用を可及的に防止することができる。
Then, after the current operation period, the encrypted decryption key 37 itself is no longer effective. Therefore, even if the
さらに、暗号化した復号鍵37としては、例えばDESのような対称暗号方式で任意の復号鍵を選べる方式を使用することによって、複数のロボットがある場合にすべてのロボットで復号鍵を別々にするのか、または部署毎に共通の復号鍵とするのか、もしくは機種毎に同じ復号鍵とするのか、というような使用条件に応じた種々の使い分けを行うことができ、高い融通性をもった運用が可能となる。 Further, as an encrypted decryption key 37, for example, a symmetric encryption method such as DES that allows an arbitrary decryption key to be selected is used, so that when there are a plurality of robots, the decryption keys are separated for all robots. It can be used in various ways according to usage conditions such as whether it is a common decryption key for each department or the same decryption key for each model, and operation with high flexibility can be performed It becomes possible.
なお、本実施形態のように、暗号化した復号鍵に運用期間を予め定めておく手法は、実施形態1のシステムにも適用することができる。すなわち、平文のロボット制御プログラムを暗号化する際に、運用期間を決めた複数のプログラム復元用の暗号鍵を用いて暗号化するものである。この場合も、本実施形態と同様に、物理的な鍵の破壊による不正使用や、リバースエンジニアリグなどの解析による技術漏洩や不正使用を防止できるだけでなく、運用期間を短く設定しておくことにより、時間をかけた復号鍵の解読による不正使用を可及的に防止することができる。しかしながら、この場合は運用期間毎に暗号化したロボット制御プログラム23を不揮発性メモリ15に保持することになるため、メモリに記憶するデータ量が増大することになる。したがって、暗号化すべきロボット制御プログラムが多くある場合や、運用期間を時間単位で細分化した場合(例えば、使用者の勤務時間毎)などにおいては、本実施形態のように、プログラム復号用の復号鍵をさらに暗号化すると共に、暗号化した復号鍵の運用期間を定めておく手法を用いた方がメモリに記憶するデータ量が大幅に少なくなるので、メモリ容量を有効利用することができる。
Note that, as in the present embodiment, the technique for predetermining the operation period for the encrypted decryption key can also be applied to the system of the first embodiment. That is, when a plaintext robot control program is encrypted, it is encrypted using a plurality of program restoration encryption keys whose operation periods are determined. In this case as well, in the same way as in this embodiment, it is possible not only to prevent unauthorized use due to physical key destruction or technical leaks and unauthorized use due to analysis such as reverse engineering, but also by setting the operation period short. Therefore, it is possible to prevent unauthorized use as much as possible by decrypting the decryption key over time. However, in this case, since the
また、本実施形態ではブートローダを備えたロボット制御システムを例として説明したが、図3に示したようなOSを備えたロボット制御システムにも適用可能である。図6は、OSを備えたロボット制御システムにおいて、プログラム復号用の復号鍵を、さらに暗号化して、暗号化した復号鍵をロボット内に保持するようにした場合のシステム構成を示すブロック図である。なお、図6では、図5と同じ機能、作用の部材には同じ符号を付している。 In the present embodiment, the robot control system including the boot loader has been described as an example. However, the present invention can be applied to a robot control system including an OS as illustrated in FIG. FIG. 6 is a block diagram showing a system configuration when a decryption key for program decryption is further encrypted and the encrypted decryption key is held in the robot in a robot control system equipped with an OS. . In FIG. 6, members having the same functions and functions as those in FIG.
図6に示すロボット制御システム4のように、不揮発性メモリ15内に複数の暗号化した復号鍵37を備える場合には、主記憶装置11に展開したローダプログラム33が暗号化した復号鍵37を読み込み、その復号鍵を用いてプログラム復号用の復号鍵を復号し、さらにこのプログラム復号用の復号鍵を用いて暗号化したロボット制御プログラム23を復号する。そして、展開したローダプログラム33の働きにより、主記憶装置11内にRAMディスク35が確保され、その中に復号したロボット制御プログラム19が展開される。本システムのように構成した場合も、図5に示すシステムと同様の作用効果を得ることができる。
When a plurality of
[実施形態3]
次に、実施形態3について説明する。本実施形態は、暗号化した復号鍵の解読をより困難なものとするため、プログラム復号用の復号鍵に使用日時をキーとした変換を実施して中間データ復号鍵を生成し、その後、暗号化した復号鍵を作成するようにしたものである。この場合のシステム構成は図5に示したものと同じであるため、説明を省略する。
[Embodiment 3]
Next,
本実施形態では、暗号化した復号鍵を作成する際に、それを運用する日時の値に基づいて、プログラム復号用の復号鍵の変換を実施して中間データ復号鍵を生成し、これを暗号化して復号鍵を得るものである。変換方法としては、日時を示す値(例えば、日にち)だけ文字列をローテーションさせる方法や、日時の値に応じた値を文字列にしたものをダミーとして挿入する方法や、日付を暗号化キーとして暗号化する方法などである。また、使用する暗号化キーは、一定期間毎に切られた有効期間の先頭時刻など、運用期間中から一意に決まる値を用いることが好ましい。 In this embodiment, when an encrypted decryption key is created, an intermediate data decryption key is generated by converting the decryption key for program decryption based on the value of the date and time when the encrypted decryption key is operated, and this is encrypted. To obtain a decryption key. Conversion methods include a method of rotating a character string by a value indicating a date and time (for example, a date), a method of inserting a character string corresponding to a date and time value as a dummy, and a date as an encryption key For example, an encryption method. Moreover, it is preferable that the encryption key to be used is a value uniquely determined from the operation period, such as the start time of the effective period cut every fixed period.
次に、図7のフローチャートを参照して、本実施形態の手法によりプログラム復号用の復号鍵を暗号化する場合の処理手順について説明する。 Next, with reference to a flowchart of FIG. 7, a processing procedure in the case of encrypting a decryption key for program decryption by the method of the present embodiment will be described.
まず、平文のロボット制御プログラム41と、これを暗号化するための暗号化キー42とを用意する。そして、用意した暗号化キー42によってロボット制御プログラム41を暗号化する(ステップS301)。これにより、暗号化したロボット制御プログラム23が生成される。また、このときプログラム復号用の復号鍵43が生成される。
First, a plaintext
なお、この段階で生成されたプログラム復号用の復号鍵43をそのまま使用する場合、すなわち、プログラム復号用の復号鍵43から中間データ復号鍵44を生成しないで使用する場合には、機密管理の観点から、これを司令室や工場など暗号化したロボット制御プログラム23から離れたところに保管することが好ましい。
When using the
ここでは、生成されたプログラム復号用の復号鍵43を使用日時をキーとして中間データ復号鍵44とするために、続けて、運用期間の全日時を入力し(ステップS302)、実行日時(例えば運用期間の最初の日付や時刻など)による変換処理を行う(ステップS303)。これにより、中間データ復号鍵44が生成される。このとき、運用期間を細分化することで、複数の中間データ復号鍵44ができることになる。
Here, in order to use the generated
続いて、鍵復号用の復号鍵を生成して(ステップS304)、中間データ復号鍵44を暗号化する(ステップS305)。ここで鍵復号用の復号鍵45は、任意のものでよい。
Subsequently, a decryption key for key decryption is generated (step S304), and the intermediate
ここで生成した鍵復号用の復号鍵は運用期間が複数ある場合には、複数の鍵復号用の復号鍵45となる。同様に、暗号化した復号鍵37も運用期間が複数ある場合には、複数の暗号化した復号鍵37が生成されることになる。
The decryption key for key decryption generated here becomes a plurality of
このようにして生成された、暗号化したロボット制御プログラム23は不揮発性メモリ15に記憶される。また、暗号化した復号鍵37は、当面のロボット動作に必要な運用期間の分だけ不揮発性メモリ15に記憶される。一方、暗号化した復号鍵37を解くための鍵復号用の復号鍵45は運用期間毎にロボット制御プログラム23から離れた場所に保管しておくか、使用者が運用期間毎に間違えないように覚えておくことになる。
The encrypted
次に、図8のフローチャートを参照して、本実施形態の手法によりプログラム復号用の復号鍵を復号化する場合の処理手順について説明する。 Next, a processing procedure in the case of decrypting a decryption key for program decryption by the method of the present embodiment will be described with reference to a flowchart of FIG.
この復号処理は、展開したブートローダ17により実行される処理であって、上述した図2のステップS105のサブルーチンに相当する処理である。
This decryption process is a process executed by the expanded
まず、鍵復号用の復号鍵45が入力され(ステップS401)、暗号化した復号鍵37が復号される(ステップS402)。これにより中間データ復号鍵44が生成される。
First, the
そして、生成された中間データ復号鍵44を、入力された現在日時(ステップS403)に対応する運用期間を選択し、その運用期間の日時に基づいて中間データ生成時の変換(図7:ステップS303)の逆変換となる変換処理を行い(ステップS404)、整合性のチェックを行って(ステップS405)、暗号化したロボット制御プログラム23を復号するためのプログラム復号用の復号鍵43が生成される。
Then, an operation period corresponding to the input current date and time (step S403) is selected for the generated intermediate data decryption key 44, and conversion at the time of generating intermediate data based on the date and time of the operation period (FIG. 7: step S303) ) Is converted (step S404), consistency is checked (step S405), and a
そして展開したロータプログラム33は、不揮発性メモリ15から読み込んだ暗号化したロボット制御プログラム23を、プログラム復号用の復号鍵43により復号処理する(ステップS406)。これにより、復号したロボット制御プログラム19が主記憶装置11内に展開される。
The
以上説明したように、本実施形態においては、プログラム復号用の復号鍵に使用日時をキーとした変換を実施して中間データ復号鍵を生成し、その後、暗号化した復号鍵を作成するようにしたので、暗号化した復号鍵の解読をより困難なものにすることができる。これは、同じ値を暗号化したデータがたくさんあると、それらを暗号化した際に解読しやすくなる傾向があるが、本実施形態のように、日時を加味することで同じ値の暗号化という現象を防いで、解読をより困難なものとすることができる。 As described above, in this embodiment, the decryption key for program decryption is converted using the use date and time as a key to generate an intermediate data decryption key, and then an encrypted decryption key is created. As a result, the decryption of the encrypted decryption key can be made more difficult. This is because if there is a lot of data encrypted with the same value, it tends to be easy to decipher when they are encrypted, but it is called encryption of the same value by adding the date and time as in this embodiment. The phenomenon can be prevented and the decoding can be made more difficult.
また、物理的な鍵の破壊により動作中のロボットが盗難に遭った場合でも、ロボットを停止させた段階で、主記憶装置11内のRAMディスク35に展開されている復号したロボット制御プログラム19は消えてしまうため、そのまま使用することができなくなる。したがって、物理的な鍵の破壊による不正使用を防止することができる。
Even if the operating robot is stolen due to the destruction of the physical key, the decrypted
さらに、盗難された場合などに、不揮発性メモリ15上の暗号化した復号鍵37を、別の時間用に流用する操作を受けた場合について考察すると、中間データ復号鍵までは正しく復号できたとしても、その後の中間データ復号鍵からの復号においては、正しくない復号鍵となるため、リバースエンジニアリングなどの解析による技術漏洩や不正使用を防止することができる。
Furthermore, considering the case where the encrypted decryption key 37 on the
[他の実施形態]
以下、暗号化したロボット制御プログラムを復号化する段階において、安全性をさらに高めるための実施形態について説明する。
[Other Embodiments]
Hereinafter, an embodiment for further enhancing safety in the stage of decrypting the encrypted robot control program will be described.
(1)暗号化した復号鍵の時間による自動消去
この場合のシステム構成は図1に示したものと同様であり、あらかじめブートローダ21内に消去機能を実装しておくことになる。
(1) Automatic Deletion of Encrypted Decryption Key by Time The system configuration in this case is the same as that shown in FIG. 1, and an erasing function is installed in the
具体的には、起動時のブートローダ21やロボット制御プログラムの切り替え中において、暗号化した復号鍵を復号する前に、現在時刻と比較して、有効期間が十分に昔の鍵(例えば12時間以上前)のデータを消去するものである。これにより、例えば、暗号化した復号鍵が漏れた場合に、過去に使用していた暗号化した復号鍵と、過去に暗号化した復号鍵を使って、復号鍵を割り出すというようなリバースエンジニアリングによる解析が困難なものとなる。
Specifically, during the switching of the
(2)暗号化した復号鍵を復号する際の整合性チェック
この場合のシステム構成は図1に示したものと同様であり、あらかじめブートローダ21内に整合性のチェック機能を実装しておくことになる。
(2) Consistency Check when Decrypting Encrypted Decryption Key The system configuration in this case is the same as that shown in FIG. 1, and the consistency check function is installed in the
具体的には、例えば、暗号化するデータ、すなわち、ロボット制御プログラムにあらかじめハッシュ値(RFC1321で提唱されたMD5など)やCRCコードを付加して、これを暗号化しておく。例えば、MD5の手法は、ハッシュ関数を使った暗号化/復号化アルゴリズムであり、データを送受信する際に、送信側と受信側でハッシュ値を比較することにより、データの完全性をチェックするものである。また、CRCコードは、同じファイルからは必ず同じコードが生成され、1バイトでもデータが異なると全く別のコードが生成されるという特徴を利用した誤りチェックの手法であり、元ファイルから生成されたCRCコードと、対象ファイルから生成されたCRCコードとを比較することにより、ファイルが正常かどうか、壊れていないかを調べるものである。 Specifically, for example, data to be encrypted, that is, a hash value (MD5 proposed by RFC1321) and a CRC code are added to the robot control program in advance, and this is encrypted. For example, the MD5 method is an encryption / decryption algorithm using a hash function, and checks the integrity of data by comparing hash values on the sending side and the receiving side when sending and receiving data. It is. The CRC code is an error check method that uses the feature that the same code is always generated from the same file, and a completely different code is generated if even one byte of data is different. By comparing the CRC code with the CRC code generated from the target file, it is checked whether the file is normal or not broken.
或いは、前述した暗号化の際に用いた運用期間ごとの使用可能開始時間などでもよい。そして、暗号化した復号鍵を復号化の際に、これらコードが一致するかどうかを確認する。 Alternatively, the usable start time for each operation period used in the above-described encryption may be used. Then, when decrypting the encrypted decryption key, it is confirmed whether or not these codes match.
このようにすることで、間違ったプログラム復号用の復号鍵により、暗号化したロボット制御プログラムが復号された場合に、正しくないプログラムコードが生成され、これによりロボットが暴走することを防止することができる。なお、通常は間違った復号鍵を用いた場合、復号そのものが行われないため、このようなことが起こる可能性は低いと考えられる。 In this way, when the encrypted robot control program is decrypted with the wrong decryption key for program decryption, an incorrect program code is generated, thereby preventing the robot from running out of control. it can. Normally, when the wrong decryption key is used, decryption itself is not performed, so it is considered that such a possibility is not likely to occur.
(3)非対称暗号方式による送信
安全性を向上させるための他の手法としては、追加で暗号化した復号鍵を送信する際に、非対称暗号方式で送信することである。
(3) Transmission by Asymmetric Encryption Method Another method for improving safety is to transmit by using an asymmetric encryption method when an additional encrypted decryption key is transmitted.
上述したように、運用期間毎に、暗号化した復号鍵と鍵復号用の復号鍵とを設定した場合、それらをロボットに入力する必要があるが、その際に、ネットワークを介して送信することが考えられる。例えば、工場の管理室や本社管理部門など、ロボットから離れた場所で復号鍵を管理している場合に、ロボットの稼動している現場にネットワークを介して復号鍵をデータ送信する場合などである。このようなネットワークを介して復号鍵などを送るとネットワークから復号鍵が漏洩するおそれがあり、改竄された誤った復号鍵が送られてくる可能性がある。このような不具合を解消するため、非対称暗号方式(例えばRSAなど)を用いてデータを送信するものである。 As described above, when an encrypted decryption key and a decryption key for key decryption are set for each operation period, they need to be input to the robot, but at that time, they must be transmitted via the network. Can be considered. For example, when the decryption key is managed at a location away from the robot, such as a factory management room or head office management department, the decryption key is sent over the network to the site where the robot is operating. . If a decryption key or the like is sent via such a network, the decryption key may be leaked from the network, and there is a possibility that a falsified wrong decryption key may be sent. In order to solve such a problem, data is transmitted using an asymmetric encryption method (for example, RSA).
この場合、ロボット側には、公開鍵、データ作成者(ここでは復号鍵の作成者)側は秘密鍵をもたせることになる。したがって、ロボット側の公開鍵で復号できるデータをもつためには、秘密鍵で暗号化する必要がある。 In this case, the robot side has a public key, and the data creator (here, the decryption key creator) side has a secret key. Therefore, in order to have data that can be decrypted with the public key on the robot side, it is necessary to encrypt with the secret key.
このため、秘密鍵で暗号化できることをもって正しい送信元であることが保証されることになる。すなわち、ロボット側の公開鍵で復号できない場合には、正しくない送信元から送られてきたデータと判断することができる。このように、本手法を用いた場合には、送信経路上での改鼠に対して安全なものとなる。 For this reason, it can be ensured that the source is correct by being able to encrypt with the secret key. That is, when decryption cannot be performed with the public key on the robot side, it can be determined that the data is transmitted from an incorrect transmission source. Thus, when this method is used, it is safe against falsification on the transmission path.
以上、本発明の好適な実施形態について説明したが、本発明はこれらの実施形態に限定されるものではなく、各実施形態を様々に組み合わせることも可能であるし、また、これら実施形態以外に当業者による様々な形態が可能である。 The preferred embodiments of the present invention have been described above. However, the present invention is not limited to these embodiments, and the embodiments can be combined in various ways. Various forms by those skilled in the art are possible.
1、2、3、4…ロボット制御システム
11…主記憶装置(揮発性記憶手段)
13…CPU
15…不揮発性メモリ(不揮発性記憶手段)
17…展開したブートローダ
19…復号したロボット制御プログラム
21…ブートローダ
23…暗号化したロボット制御プログラム
27…OS
29…ローダプログラム
31…デバイスドライバ
33…展開したローダプログラム
35…RAMディスク(仮想ハードディスク)
37…暗号化した復号鍵
41…平文のロボット制御プログラム
42…暗号化キー
43…プログラム復号用の復号鍵
44…中間データ復号鍵
45…鍵復号用の復号鍵
1, 2, 3, 4 ...
13 ... CPU
15. Non-volatile memory (non-volatile storage means)
17 ... Expanded
29 ...
37 ...
Claims (12)
暗号化したロボット制御プログラムを記憶する不揮発性記憶手段と、
前記暗号化したロボット制御プログラムを、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵に基づいて復号して前記揮発性記憶手段に展開する復号手段と、
を備えることを特徴とするロボット不正使用防止装置。 Volatile storage means;
Non-volatile storage means for storing the encrypted robot control program;
Decryption means for decrypting the encrypted robot control program based on a decryption key for program decryption for decrypting the robot control program, and expanding the decrypted program in the volatile storage means;
A device for preventing unauthorized use of robots, comprising:
暗号化したロボット制御プログラムと共に、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵をさらに暗号化することで生成される暗号化した復号鍵を記憶する不揮発性記憶手段と、
入力された鍵復号用の復号鍵に基づいて前記暗号化した復号鍵を復号してプログラム復号用の復号鍵を生成し、当該プログラム復号用の復号鍵に基づいて前記暗号化したロボット制御プログラムを復号して前記揮発性記憶手段に展開する復号手段と、
を備えることを特徴とするロボット不正使用防止装置。 Volatile storage means;
Non-volatile storage means for storing an encrypted decryption key generated by further encrypting a decryption key for decrypting the program for decrypting the robot control program together with the encrypted robot control program;
A decryption key for program decryption is generated by decrypting the encrypted decryption key based on the input decryption key for key decryption, and the encrypted robot control program is created based on the decryption key for program decryption. Decryption means for decrypting and expanding the volatile storage means;
A device for preventing unauthorized use of robots, comprising:
前記復号手段は、前記鍵復号用の復号鍵が入力された日時と適合する前記暗号化した復号鍵を前記不揮発性記憶手段から取り出し、取り出した前記暗号化した復号鍵を用いてプログラム復号用の復号鍵を復号すること、
を特徴とする請求項2に記載のロボット不正使用防止装置。 The encrypted decryption key is encrypted with a decryption key for key decryption set for each of a plurality of periods in which the decryption key can be used, and is stored in the nonvolatile storage unit in association with each period,
The decryption means retrieves the encrypted decryption key that matches the date and time when the decryption key for key decryption is input from the nonvolatile storage means, and uses the retrieved decryption key for program decryption. Decrypting the decryption key,
The robot unauthorized use preventing apparatus according to claim 2.
前記不揮発性記憶手段には、暗号化したロボット制御プログラムが記憶され、
前記復号手段が、ロボットの動作開始時に、前記暗号化したロボット制御プログラムを、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵に基づいて復号して前記揮発性記憶手段に展開することを特徴とするロボット不正使用防止方法。 A method for preventing unauthorized use of a robot in a robot unauthorized use prevention device comprising a volatile storage means, a nonvolatile storage means, and a decryption means,
The nonvolatile storage means stores an encrypted robot control program,
The decrypting means decrypts the encrypted robot control program based on a decryption key for decrypting the robot control program and expands the encrypted robot control program in the volatile storage means when the robot starts operating. A method for preventing unauthorized use of robots.
前記不揮発性記憶手段には、暗号化したロボット制御プログラムと共に、当該ロボット制御プログラムを復号するためのプログラム復号用の復号鍵をさらに暗号化し、当該暗号化により生成される暗号化した復号鍵が記憶され、
前記復号手段が、入力された鍵復号用の復号鍵に基づいて前記暗号化した復号鍵を復号してプログラム復号用の復号鍵を生成し、当該プログラム復号用の復号鍵に基づいて前記暗号化したロボット制御プログラムを復号して前記揮発性記憶手段に展開することを特徴とするロボット不正使用防止方法。 A method for preventing unauthorized use of a robot in a robot unauthorized use prevention device comprising a volatile storage means, a nonvolatile storage means, and a decryption means,
The non-volatile storage means further encrypts a decryption key for decrypting the program for decrypting the robot control program together with the encrypted robot control program, and stores an encrypted decryption key generated by the encryption. And
The decryption means decrypts the encrypted decryption key based on the inputted decryption key for decryption to generate a decryption key for program decryption, and the encryption based on the decryption key for program decryption A method for preventing unauthorized use of a robot, comprising: decoding a robot control program that has been processed and deploying the program to the volatile storage means.
前記復号手段が、前記鍵復号用の復号鍵が入力された日時と適合する前記暗号化した復号鍵を前記不揮発性記憶手段から取り出し、取り出した前記暗号化した復号鍵を用いてプログラム復号用の復号鍵を復号すること、
を特徴とする請求項8に記載のロボット不正使用防止方法。 The encrypted decryption key is encrypted with a decryption key for key decryption set for each of a plurality of periods in which the decryption key can be used, and is stored in the nonvolatile storage unit in association with each period,
The decryption means retrieves the encrypted decryption key that matches the date and time when the decryption key for key decryption is input from the nonvolatile storage means, and uses the retrieved decryption key for program decryption. Decrypting the decryption key,
The method for preventing unauthorized use of a robot according to claim 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007275086A JP5052287B2 (en) | 2007-10-23 | 2007-10-23 | Robot unauthorized use prevention device and robot unauthorized use prevention method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007275086A JP5052287B2 (en) | 2007-10-23 | 2007-10-23 | Robot unauthorized use prevention device and robot unauthorized use prevention method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009104380A true JP2009104380A (en) | 2009-05-14 |
JP5052287B2 JP5052287B2 (en) | 2012-10-17 |
Family
ID=40705994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007275086A Expired - Fee Related JP5052287B2 (en) | 2007-10-23 | 2007-10-23 | Robot unauthorized use prevention device and robot unauthorized use prevention method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5052287B2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010089083A3 (en) * | 2009-02-03 | 2010-11-11 | Fresenius Medical Care Deutschland Gmbh | Device and method for preventing unauthorized use and/or manipulation of software |
DE102009048756A1 (en) * | 2009-10-08 | 2011-04-14 | Certgate Gmbh | Method for improving safety of coded data memory, from which computer is booted, involves booting computer from cryptographic equipment and requesting for inputting smart card personal identification number |
JP2013097539A (en) * | 2011-10-31 | 2013-05-20 | Mitsutoyo Corp | Control device and control program illegal reading prevention method |
JP2013105403A (en) * | 2011-11-16 | 2013-05-30 | Mega Chips Corp | Memory system, security memory and information protection method |
CN103929337A (en) * | 2013-01-16 | 2014-07-16 | 富士通株式会社 | Communication Monitor And Occurrence Prediction Method |
JP2019008625A (en) * | 2017-06-27 | 2019-01-17 | コマツ産機株式会社 | Production machine and control method for production machine |
JP2019511376A (en) * | 2016-03-07 | 2019-04-25 | ソフトバンク・ロボティクス・ヨーロッパSoftbank Robotics Europe | Modular manufacturing of robots |
JP7056785B1 (en) * | 2021-03-26 | 2022-04-19 | 三菱電機株式会社 | Management system and program |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019149763A (en) * | 2018-02-28 | 2019-09-05 | オムロン株式会社 | Data processing method, control system, and control device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232776A (en) * | 1998-02-09 | 1999-08-27 | Matsushita Electric Ind Co Ltd | Video recording device and reproducing device |
JP2002123172A (en) * | 2000-10-16 | 2002-04-26 | Toshiba Information Systems (Japan) Corp | Encryption apparatus, decryption apparatus, information management system and locking system |
JP2002236668A (en) * | 2001-02-13 | 2002-08-23 | Matsushita Electric Ind Co Ltd | Robot control device |
WO2004006075A1 (en) * | 2002-07-09 | 2004-01-15 | Fujitsu Limited | Open type general-purpose attack-resistant cpu, and application system thereof |
WO2004075475A1 (en) * | 2003-02-21 | 2004-09-02 | Fujitsu Limited | Delivery system |
JP2005319526A (en) * | 2004-05-07 | 2005-11-17 | Fujitsu Ltd | System for providing function to network robot |
JP2006209703A (en) * | 2005-01-31 | 2006-08-10 | Nippon Telegr & Teleph Corp <Ntt> | Program execution protection processor |
JP2007141205A (en) * | 2005-10-17 | 2007-06-07 | Yaskawa Electric Corp | Built-in type controller |
-
2007
- 2007-10-23 JP JP2007275086A patent/JP5052287B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232776A (en) * | 1998-02-09 | 1999-08-27 | Matsushita Electric Ind Co Ltd | Video recording device and reproducing device |
JP2002123172A (en) * | 2000-10-16 | 2002-04-26 | Toshiba Information Systems (Japan) Corp | Encryption apparatus, decryption apparatus, information management system and locking system |
JP2002236668A (en) * | 2001-02-13 | 2002-08-23 | Matsushita Electric Ind Co Ltd | Robot control device |
WO2004006075A1 (en) * | 2002-07-09 | 2004-01-15 | Fujitsu Limited | Open type general-purpose attack-resistant cpu, and application system thereof |
WO2004075475A1 (en) * | 2003-02-21 | 2004-09-02 | Fujitsu Limited | Delivery system |
JP2005319526A (en) * | 2004-05-07 | 2005-11-17 | Fujitsu Ltd | System for providing function to network robot |
JP2006209703A (en) * | 2005-01-31 | 2006-08-10 | Nippon Telegr & Teleph Corp <Ntt> | Program execution protection processor |
JP2007141205A (en) * | 2005-10-17 | 2007-06-07 | Yaskawa Electric Corp | Built-in type controller |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010089083A3 (en) * | 2009-02-03 | 2010-11-11 | Fresenius Medical Care Deutschland Gmbh | Device and method for preventing unauthorized use and/or manipulation of software |
DE102009048756A1 (en) * | 2009-10-08 | 2011-04-14 | Certgate Gmbh | Method for improving safety of coded data memory, from which computer is booted, involves booting computer from cryptographic equipment and requesting for inputting smart card personal identification number |
DE102009048756B4 (en) * | 2009-10-08 | 2017-02-16 | Certgate Gmbh | A method and key device for enhancing the security of an encrypted data store from which a computer boots |
JP2013097539A (en) * | 2011-10-31 | 2013-05-20 | Mitsutoyo Corp | Control device and control program illegal reading prevention method |
JP2013105403A (en) * | 2011-11-16 | 2013-05-30 | Mega Chips Corp | Memory system, security memory and information protection method |
CN103929337A (en) * | 2013-01-16 | 2014-07-16 | 富士通株式会社 | Communication Monitor And Occurrence Prediction Method |
JP2019511376A (en) * | 2016-03-07 | 2019-04-25 | ソフトバンク・ロボティクス・ヨーロッパSoftbank Robotics Europe | Modular manufacturing of robots |
JP2019008625A (en) * | 2017-06-27 | 2019-01-17 | コマツ産機株式会社 | Production machine and control method for production machine |
JP7056785B1 (en) * | 2021-03-26 | 2022-04-19 | 三菱電機株式会社 | Management system and program |
Also Published As
Publication number | Publication date |
---|---|
JP5052287B2 (en) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5052287B2 (en) | Robot unauthorized use prevention device and robot unauthorized use prevention method | |
JP4912921B2 (en) | Secure processor system, secure processor, and secure processor system control method | |
US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
CN101441601B (en) | Ciphering transmission method of hard disk ATA instruction and system | |
WO2010134192A1 (en) | Electronic device, key generation program, recording medium, and key generation method | |
JP5736994B2 (en) | Information processing apparatus, validity verification method, and program | |
JP2004164491A (en) | Method for updating program and server | |
JP2008072717A (en) | Hard disc streaming cryptographic operations with embedded authentication | |
JPWO2012124270A1 (en) | Tamper monitoring system, management device, protection control module and detection module | |
CN101710307A (en) | Method for protecting data security of digital equipment | |
KR101458479B1 (en) | Method of encrypting and decrypting the data of the session state | |
JP2008005408A (en) | Recorded data processing apparatus | |
WO2006118101A1 (en) | Confidential information processing host device and confidential information processing method | |
CN110674525A (en) | Electronic equipment and file processing method thereof | |
CN107330340B (en) | File encryption method, file encryption equipment, file decryption method, file decryption equipment and storage medium | |
JP2009284231A (en) | Key generating apparatus, key generating method, key generating program, and electronic apparatus | |
JP2007193800A (en) | Device and method for improving security level of card authentication system | |
CN110932853B (en) | Key management device and key management method based on trusted module | |
CN113343215A (en) | Embedded software authorization and authentication method and electronic equipment | |
JP4899196B2 (en) | Data management system, terminal computer, management computer, data management method and program thereof | |
JP2007058652A (en) | File destructor, information processor, information processing method, and program | |
JP4474267B2 (en) | Cryptographic processing device | |
JP2008003774A (en) | Microcomputer | |
JP4604523B2 (en) | Data transfer method and data storage device | |
JP6455236B2 (en) | Electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090630 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100729 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120321 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120521 |
|
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: 20120703 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120724 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150803 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |