(57)【要約】  認証システムは、チャレンジ−レスポンス方式により認証を行う。第２機器からの認証要求を受けると、第１機器はチャレンジデータを送信する。第２機器はチャレンジデータおよび保持する鍵情報を利用した関数演算を行って、ペイロード長Ｌより長いデータ長Ｈａを有するデータを生成する。第２機器は所定の変換規則を利用してペイロード長Ｌ以下のデータ長Ｈｂを有するレスポンスデータを生成し第１機器に送信する。第１機器は、チャレンジデータおよび自身の鍵情報を利用した関数演算を行って、データ長Ｈａを有するデータを生成する。第１機器は変換規則を利用して、データ長Ｈａのデータからデータ長Ｈｂを有するデータＤ１を生成する。第１機器は、レスポンスデータとデータＤ１とを照合して認証を行う。
2019026833.tif 000002
【特許請求の範囲】
【請求項１】
第１機器および第２機器を有し、チャレンジ−レスポンス方式により、前記第１機器が前記第２機器を認証する認証システムであって、
前記第１機器は、
認証のための第１鍵情報を記憶する第１記憶装置と、
ペイロード長Ｌの通信データを送受信する第１通信回路と、
第１演算回路と
を有し、
前記第２機器は、
第２鍵情報を記憶する第２記憶装置と、
前記ペイロード長Ｌの通信データを送受信する第２通信回路と、
第２演算回路と
を有し、
前記第１記憶装置および前記第２記憶装置はさらに、認証処理に用いる共通の関数を保持しており、
前記第２機器の前記第２演算回路は、前記第１機器に認証要求を送信し、
前記第１機器の前記第１演算回路は、前記認証要求の受信に応答して、前記第２機器にチャレンジデータを送信し、
前記第２演算回路は、前記チャレンジデータおよび前記第２鍵情報を入力値として含む前記関数による演算を行って、前記ペイロード長Ｌより長いデータ長Ｈａを有するデータを生成し、所定の変換規則を利用して、前記データ長Ｈａを有するデータから前記ペイロード長Ｌ以下のデータ長Ｈｂを有するレスポンスデータを生成して前記第１機器に送信し、
前記第１演算回路は、前記第２機器に送信した前記チャレンジデータおよび前記第１鍵情報を入力値として含む前記関数による演算を行って、前記データ長Ｈａを有するデータを生成し、前記変換規則を利用して、前記データ長Ｈａのデータから前記データ長Ｈｂを有するデータＤ１を生成し、
前記第１演算回路は、前記第２機器から前記レスポンスデータを受信して、前記レスポンスデータと前記データＤ１とを照合して認証を行う、認証システム。
【請求項２】
前記第１機器は、可動子を有するモータをさらに備えており、
前記第１通信回路は外部機器からの指令を受信し、
前記第１演算回路は、前記指令に従って前記可動子の運動を制御する、請求項１に記載の認証システム。
【請求項３】
前記第１鍵情報は、前記モータの製造ばらつきによって変動する前記モータに固有のモータ指紋情報である、請求項２に記載の認証システム。
【請求項４】
前記第２機器は、前記モータを動作させる指令を送信するコンピュータである、請求項２または３に記載の認証システム。
【請求項５】
前記関数は非公開関数またはハッシュ関数である、請求項１から４のいずれかに記載の認証システム。
【請求項６】
前記関数はＳＨＡ−２５６のハッシュ関数であり、前記データ長Ｈａは３２バイトである、請求項１から５のいずれかに記載の認証システム。
【請求項７】
前記データ長Ｈｂは１３バイト以下である、請求項６に記載の認証システム。
【請求項８】
前記データ長Ｈｂは８バイトである、請求項７に記載の認証システム。
【請求項９】
前記第１記憶装置および前記第２記憶装置は、共通の変換規則を記憶する、請求項１から８のいずれかに記載の認証システム。
【請求項１０】
前記関数はハッシュ関数であり、
前記変換規則は、前記データ長Ｈａを有するデータの定められた位置から、連続するデータ長Ｈｂのデータを抽出する規則である、請求項９に記載の認証システム。
【請求項１１】
前記関数はハッシュ関数であり、
前記第２演算回路は、
前記データ長Ｈａを有するデータの所定位置から、連続するデータ長Ｙの部分データを抽出し、
前記所定位置を特定する情報、前記データ長Ｙを示す情報および前記部分データを、前記データ長Ｈｂを有するレスポンスデータとして生成する、請求項１から８のいずれかに記載の認証システム。
【請求項１２】
前記第２機器の認証が成功すると、
前記第２機器は、前記第１機器の動作を制御するための指令を送信し、
前記第１機器は、前記指令にしたがって動作する、請求項１から１１のいずれかに記載の認証システム。
【請求項１３】
前記第２機器の認証が予め定められた回数以上連続して失敗したときは、前記第１機器は、少なくとも一定期間、以後の認証処理を許否する、請求項１から１２のいずれかに記載の認証システム。
【請求項１４】
前記第１機器が前記第２機器の認証に成功した後、
前記第２機器の前記第２演算回路は、前記第１機器に、第１機器認証用チャレンジデータを送信し、
前記第１演算回路は、前記第１機器認証用チャレンジデータおよび前記第１鍵情報を入力値として含む前記関数による演算を行って、前記ペイロード長Ｌより長いデータ長Ｈａを有するデータを生成し、前記変換規則を利用して、前記データ長Ｈａのデータから前記ペイロード長Ｌ以下のデータ長Ｈｂを有する第１機器認証用レスポンスデータを生成して前記第２機器に送信し、
前記第１機器認証用レスポンスデータの受信に応答して、前記第２演算回路は、前記第１機器に送信した前記第１機器認証用チャレンジデータおよび前記第２鍵情報を入力値として含む前記関数による演算を行って、前記データ長Ｈａを有するデータを生成し、前記変換規則を利用して、前記データ長Ｈａのデータから前記データ長Ｈｂを有するデータＤ２を生成し、
前記第２演算回路は、前記第１機器から受信した前記第１機器認証用レスポンスデータと、前記データＤ２とを照合して前記第１機器の認証を行う、請求項１から１１のいずれかに記載の認証システム。
【請求項１５】
前記第１機器の認証が成功すると、
前記第２機器は、前記第１機器の動作を制御するための指令を送信し、
前記第１機器は、前記指令にしたがって動作する、請求項１３に記載の認証システム。
【請求項１６】
請求項１から１４のいずれかに記載の認証システムにおける前記第１の機器である電子機器。
【請求項１７】
請求項１から１４のいずれかに記載の認証システムにおける前記第２の機器である電子機器。
【請求項１８】
チャレンジ−レスポンス方式により、第１機器が第２機器を認証する認証方法であって、
前記第１機器は、
認証のための第１鍵情報が記憶されている第１記憶装置と、
第１演算回路と
を有し、
前記第２機器は、
第２鍵情報が記憶されている第２記憶装置と
第２演算回路と
を有しており、
前記第１機器および前記第２機器は、ペイロード長Ｌの通信データを用いて通信を行い、かつ、認証処理に用いる共通の関数を保持しており、
（ａ）前記第２機器の第２演算回路が、前記第１機器に認証要求を送信すること、
（ｂ）前記認証要求の受信に応答して、前記第１機器の前記第１演算回路が前記第２機器にチャレンジデータを送信すること、
（ｃ）前記第２演算回路が、前記チャレンジデータおよび前記第２鍵情報を入力値として含む前記関数による演算を行って、前記ペイロード長Ｌより長いデータ長Ｈａを有するデータを生成し、変換規則を利用して、前記データ長Ｈａのデータから前記ペイロード長Ｌ以下のデータ長Ｈｂを有するレスポンスデータを生成して前記第１機器に送信すること、
（ｄ）前記第１演算回路が、前記レスポンスデータを受信すること、
（ｅ）前記第１演算回路が、前記第２機器に送信した前記チャレンジデータおよび前記第１鍵情報を入力値として含む前記関数による演算を行って、前記データ長Ｈａを有するデータを生成し、前記変換規則を利用して、前記データ長Ｈａのデータから前記データ長Ｈｂを有するデータＤ１を生成すること、および
（ｆ）上記（ｄ）において受信した前記レスポンスデータと、上記（ｅ）において生成した前記データＤ１とを照合して認証を行うこと
を包含する、認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、認証システム、当該認証システムにおいて用いられる電子機器および認証方法に関する。
【背景技術】
【０００２】
チャレンジ・レスポンス認証は、認証を行う電子機器と、認証を受ける電子機器との間で行われる認証の一方式である。認証を行う電子機器（認証サーバ）は、認証を受ける電子機器（クライアント機器）から認証要求を受け付けると、チャレンジコードをクライアント機器に送信する。クライアント機器はチャレンジコードと認証のための文字列（例えばパスワード）とを利用してハッシュ値を計算し、求めたハッシュ値をそのままパケットのデータペイロードに格納して認証サーバに送信する。【０００３】
認証サーバは、自身が予め保有していた当該クライアント機器のパスワードとチャレンジコードとを利用して別途ハッシュ値を計算している。認証サーバは、自らが計算したハッシュ値とクライアント機器から受信したハッシュ値とを照合する。照合の結果、両者が完全に一致していれば当該クライアント機器の認証は成功し、不一致であれば認証は失敗する。【０００４】
例えば特開２００６−１９１５３７号公報は、セキュアなインターネットプロトコルであるＩＰｓｅｃの利用時に、ＳＨＡ−２５６等のハッシュ関数を利用して認証を行う技術を開示する。特開２００９−１８７５４７号公報は、データ記憶装置内のユーザ・データ記憶領域に安全な記憶領域を設け、当該記憶領域内の記憶サブ領域に記憶されたデータの読み取り操作の際に、ハッシュ関数を利用した認証を要求する技術を開示する。特開２００３−３１８８９４号公報は、ハッシュ関数を用いない認証を行い、なりすましを防止する技術を開示する。具体的には、認証を行うサーバが６４ビットのチャレンジデータを、認証を受ける端末に送信する。端末は、当該チャレンジデータの下位８ビットを取り除いた上位５６ビットのデータをレスポンスデータとしてサーバに送信する。チャレンジデータの一部を抽出する規則を予め有している端末のみが、正規の端末として認証を受けることができ、これによりなりすましの防止が実現される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１９１５３７号公報
【特許文献２】特開２００９−１８７５４７号公報
【特許文献３】特開２００３−３１８８９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のコンピュータを高速な通信回線で接続した一般的なコンピュータシステムでは、高い安全性を維持するため、比較的大きなデータサイズのチャレンジコード（例えば算出されたハッシュ値）がそのまま送受信されて認証が行われる。例えばハッシュ関数ＳＨＡ−２５６では、２５６ビットのハッシュ値がチャレンジコードとして送受信される。チャレンジコードはそのまま１パケットまたは１データフレームに収容され、高速な通信回線で送受信される。【０００７】
一方、通信に利用する帯域幅、伝送速度、パケットサイズなどによって決定される伝送性能が、一般的なコンピュータシステムの通信回線の伝送性能よりも低く設定された通信回線が存在し得る。例えば自動車の車内等に敷設される通信回線である。そのようなシステムでも認証が必要とされる局面が存在し得る。【０００８】
一般的なコンピュータシステムの通信回線よりも、伝送性能が相対的に低い通信回線でも利用可能な認証技術が必要とされている。
【課題を解決するための手段】
【０００９】
本開示の認証システムは、例示的な実施形態において、第１機器および第２機器を有し、チャレンジ−レスポンス方式により、前記第１機器が前記第２機器を認証する認証システムであって、前記第１機器は、認証のための第１鍵情報を記憶する第１記憶装置と、ペイロード長Ｌの通信データを送受信する第１通信回路と、第１演算回路とを有し、前記第２機器は、第２鍵情報を記憶する第２記憶装置と、前記ペイロード長Ｌの通信データを送受信する第２通信回路と、第２演算回路とを有し、前記第１記憶装置および前記第２記憶装置はさらに、認証処理に用いる共通の関数を保持しており、前記第２機器の前記第２演算回路は、前記第１機器に認証要求を送信し、前記第１機器の前記第１演算回路は、前記認証要求の受信に応答して、前記第２機器にチャレンジデータを送信し、前記第２演算回路は、前記チャレンジデータおよび前記第２鍵情報を入力値として含む前記関数による演算を行って、前記ペイロード長Ｌより長いデータ長Ｈａを有するデータを生成し、所定の変換規則を利用して、前記データ長Ｈａを有するデータから前記ペイロード長Ｌ以下のデータ長Ｈｂを有するレスポンスデータを生成して前記第１機器に送信し、前記第１演算回路は、前記第２機器に送信した前記チャレンジデータおよび前記第１鍵情報を入力値として含む前記関数による演算を行って、前記データ長Ｈａを有するデータを生成し、前記変換規則を利用して、前記データ長Ｈａのデータから前記データ長Ｈｂを有するデータＤ１を生成し、前記第１演算回路は、前記第２機器から前記レスポンスデータを受信して、前記レスポンスデータと前記データＤ１とを照合して認証を行う。
【発明の効果】
【００１０】
ペイロード長Ｌの通信データで通信を行う環境下でチャレンジ−レスポンス方式の認証を行う際、チャレンジデータおよび鍵情報から、ペイロード長よりも長いデータを生成するが、当該データを、ペイロード長Ｌで送信可能なデータ長のレスポンスデータに変換する。これにより、ペイロード長が短い通信コマンドフレームを変更し、または、複数のフレームを連結させることなく、認証機能を実現できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本開示の実施形態における、チャレンジデータとレスポンスデータとを送受信する認証システムの例を示す図である。
【図２】図２は、本開示の実施形態における自走ロボットとＰＣとを示す図である。
【図３Ａ】図３Ａは、本開示の実施形態における、自走ロボットの、特にモータ駆動システムのハードウェア構造を示す図である。
【図３Ｂ】図３Ｂは、本開示の実施形態における、ＰＣのハードウェア構成を示す図である。
【図４】図４は、本開示の実施形態における、２台のモータ駆動システムに１つの運搬台を載置し、荷物を運搬する協調制御システムを示す図である。
【図５】図５は、本開示の実施形態における溶接ロボットの構成を示す図である。
【図６】図６は、本開示の実施形態における、第３関節駆動システムの具体的な構造を示す図である。
【図７】図７は、本開示の実施形態における３２バイトのハッシュデータのデータ構造図である。
【発明を実施するための形態】
【００１２】
コンピュータシステムでハッシュ関数を用いて行われる認証は、異なる入力が同じハッシュ値にマッピングされてしまう「衝突」を回避することが非常に重要であると考えられている。高い安全性を維持するためである。その結果、ハッシュ値のデータサイズも大きくなり得る。例えばハッシュ関数ＳＨＡ−２５６でハッシュ化した場合は、ハッシュ値のデータサイズは２５６ビット（３２バイト）である。当該ハッシュ値のデータサイズは固定されている。計算されたハッシュ値は、そのまま他の端末に送信される。ハッシュ値のデータを送受信する際、例えばイーサネット（登録商標）のフレームでは最大１５００バイトのペイロード長を利用できるため、１つのデータフレームに収容して送受信を行うことができる。
【００１３】
一方、イーサネット（登録商標）のフレームと比較して、パケットまたはデータフレームのペイロード長が非常に短く設定された通信規格が存在する。例えば、自動車の車内ネットワークに関するＣＡＮ通信の通信規格である。ＣＡＮ規格ではペイロード長は８バイトである。また、ペイロード長が１３バイトの通信仕様も存在する。つまり、ペイロード長が１３バイト以下である通信規格が複数存在し得る。
【００１４】
短いペイロード長のパケットを用いてハッシュ値を送受信する場合、ハッシュ値をペイロード長のサイズに分割して複数のパケットを生成することが考えられる。そうすると、通信の回数、すなわちパケットの送信回数、が増加する。また、元のハッシュ値を復元するために、分割したハッシュ値のヘッダに分割箇所を示す情報を記述する必要が生じる。そして受信側機器は、分割されたハッシュ値を連結して元のハッシュ値に復元しなければならない。
【００１５】
上述の処理では、輻輳が発生する可能性が高まり、かつ、通信のオーバーヘッドが増大する。よって伝送性能が低い通信回線では負荷が大きい。
【００１６】
本発明者は、例えばイーサネット（登録商標）等と比較するとペイロード長が短い通信規格でパケットを送受信する通信システムであっても、一方の機器が他方の機器の認証を行う際に好適な認証システムを完成させるに至った。
【００１７】
以下、添付の図面を参照しながら、本開示による認証システムの実施形態を説明する。
【００１８】
実施形態では、モータを有するモータモジュールと、当該モータモジュールを制御する外部機器、例えばＰＣ、とが通信を行い、モータモジュールが外部機器を認証する処理を説明する。モータモジュールによる外部機器の認証が成功すると、モータモジュールは外部機器からの制御指令を受け付け、制御指令に従ってモータを動作させることが可能になる。
【００１９】
モータモジュールが外部機器を認証する必要性は、今後益々増加すると考えられる。例えば、自動運転機能を有する電気自動車を想定する。モータモジュールに何らのセキュリティ対策も施されていない場合、悪意のある第三者が電気自動車をハッキングし、遠隔地から電気自動車の走行の開始および停止、ハンドル操作等を乗っ取る可能性があり得る。そのような乗っ取りを回避するために、モータモジュールが、制御指令を送信する外部機器を認証することが有用である。
【００２０】
図１は、チャレンジ／レスポンス認証方式に従い、チャレンジデータとレスポンスデータとを送受信する認証システム１の例を示している。認証システム１で行われる通信は、パケット交換方式であり、パケットのペイロード長はＬであるとする。
【００２１】
この例において、外部機器は、まず、認証要求をモータモジュールに送信する。認証要求を受信したモータモジュールはランダムな数値列(チャレンジデータ)を生成し外部機器へ返信する。
【００２２】
外部機器はチャレンジデータおよびハッシュ関数を用いて、予め保持している鍵情報のハッシュ化を実行する。得られたハッシュ値のデータ長Ｈａは、Ｈａ＞Ｌの関係を有する。外部機器は、予め用意された変換規則を用いて、鍵情報のハッシュ値をレスポンスデータに変換する。レスポンスデータのデータ長Ｈｂは、Ｌ≧Ｈｂの関係を有する。つまり、レスポンスデータはパケットのペイロードに収まる。外部機器は、レスポンスデータを格納したパケットをモータモジュールに送信する。
【００２３】
モータモジュールは、レスポンスデータを受け取る。モータモジュールは、先に生成したチャレンジデータとモータモジュール内のハッシュ関数とを用いて、モータモジュール内に、認証のために用意されている鍵情報のハッシュ化を実行する。モータモジュールは、こうして得たハッシュ値と、外部機器から受信したハッシュ値とを照合し、認証の判定を行う。モータモジュールは、認証結果を外部機器に送信する。
【００２４】
外部機器が正当な機器であれば、外部機器が保持する鍵情報および変換規則と、モータモジュールがメモリ（図示せず）に予め格納している鍵情報および変換規則とは同じである。したがって認証は成功する。モータモジュールは、認証に成功したことを示すコマンド（ＡＣＫ）を外部機器に送信する。
【００２５】
一方、外部機器が不正な機器であれば、通常は鍵情報および変換規則の一方または両方が異なる。これにより、外部機器の認証は失敗する。モータモジュールは、認証に失敗したことを示すコマンド（ＮＡＫ）を外部機器に送信する。なお、認証に成功したときにのみ、コマンド（ＡＣＫ）を外部機器に送信してもよい。
【００２６】
上述のように、認証システム１では、外部機器は、ハッシュ値をそのままレスポンスデータとして送信するのではなく、所定の変換規則を利用して、ハッシュ値を、データサイズのより小さいデータに変換してレスポンスデータとして送信する。変換規則の一例は、ハッシュ値の上位Ｐビットを抽出する処理、ハッシュ値の下位Ｑビットを抽出する処理、または、ハッシュ値の上位Ｒビット目から下位向かってＲ＋（Ｓ−１）ビット分のＳビットを抽出する処理である。なお、上述のＰ、Ｑ、Ｒ、Ｓは正の整数である。
【００２７】
上述の処理によれば、ハッシュ値が、よりデータサイズの小さいデータに変換されるため、変換後のデータが偶然一致してしまう可能性が生じる。しかしながら、偶然一致するか否かは、鍵情報、ハッシュ関数および変換規則の組み合わせに依存するため、可能性は十分低いと考えられる。つまり、悪意の第三者が誤って認証されることは十分回避可能であると考えられる。上述の処理によれば、変換されたデータのサイズは１パケットで通信可能であり、パケットの送信回数を低減することが可能であるという利点が存在する。本発明者は、許容可能な信頼性を維持しつつ、通信負荷を低減することも可能であると考察し、上述の手法を採用するに至った。
【００２８】
上述の説明における具体例を説明する。ハッシュ関数は、ＳＨＡ−２５６である。
【００２９】
鍵情報として、人が予め設定した記号列を共通鍵として利用することができる。または、鍵情報として、人が設定した記号列ではなく、個々のモータが有する物理的な個体差を反映したパラメータを利用することもできる。例えば、モータの製造ばらつきによって変動するパラメータを数値化した数値列はモータ毎に異なっており、各モータに固有の情報である。当該数値列は、人を実質的に一意に特定することが可能な指紋になぞらえて、「モータ指紋情報」とも呼ぶことができる。
【００３０】
モータ指紋情報は、例えばロータが一定速度で回転するときにセンサが出力した信号に基づいて決定され得る。より詳細には、ロータが一定速度で回転しているときに、複数の磁気センサから出力された複数の信号のうちのいずれか２個の信号が互いに交差する交差点によって区分されるロータの回転量（可動子の移動量）が測定される。こうして、各セグメントに対応するロータの回転量を全てのセグメントに対応づける測定データが取得される。このような測定データを「モータ指紋情報」として使用することができる。このような測定データは、例えば７２個の数値の列であり得る。１セグメントを２バイトで表現した場合、６極対モータのモータ指紋情報のサイズは７２バイトである。このような数値列は、モータに取り付けられたセンサによって取得され、個々のモータに固有である。
【００３１】
パケットのペイロード長Ｌは１３バイトまたはそれ未満の値である。ＣＡＮ規格ではＬは８バイトである。上述のＰ、Ｑ、Ｓは、Ｌに等しくてもよいし、Ｌより短くても良い。
【００３２】
外部機器が認証を受けられた後、加えて、当該外部機器がモータモジュールを認証する、いわゆる相互認証を行っても良い。不正な遠隔操作を回避するためには、モータモジュールおよび外部機器がいずれも適正な機器であるという認証を相互にしておくことが安心だからである。
【００３３】
相互認証の手順は、モータモジュールから認証された外部機器が、モータモジュールに、モータモジュール認証用のチャレンジデータを送信することによって開始される。送信されるモータモジュール認証用のチャレンジデータは、外部機器が生成したランダムな数値列であってもよいし、処理の簡単化のために先の認証手順においてモータモジュールから送信されたチャレンジデータであってもよい。その後行われるモータモジュールの認証手順は、上述した外部機器の認証手順に準ずる。上述の外部機器の認証手順の説明中、動作主体である「モータモジュール」と「外部機器」とを入れ替えて読めば良い。
【００３４】
なお、相互認証を行う場合には、認証を受けるモータモジュールが外部機器に認証要求を送信する手順は省略することができる。外部機器の認証は完了しており、既に相互認証の手続きが始まっていると見なせるからである。ただし、モータモジュールが外部機器に認証要求の送信を行っても良い。
【００３５】
相互認証を行うことにより、第１機器および第２機器の間で、より信頼性の高い通信が実現される。仮に、初めに認証を行った機器が、あらゆる条件で認証を許可するような悪意のある、または信頼性の低い機器であったとしても、相互認証を行うことにより、信頼性を維持しながら機器を利用することができる。
【００３６】
パケットのペイロード長Ｌが１３バイトまたは８バイトであるため、３２バイトのハッシュ値は、１３バイトまたは８バイトのデータに変換される。変換後のデータは、２の（８＊８）乗通り、または、２の（８＊１３）乗通りの値を取り得る。いずれの値も十分大きいため、悪意の第三者が、偶然一致するデータをレスポンスデータとして送信することは事実上無い。
【００３７】
悪意の第三者が次に考える攻撃は総当り攻撃（ブルートフォースアタック）である。しかしながら総当り攻撃で一致するデータを見つけ出すには時間を要する。さらに総当り攻撃への対策は比較的容易である。認証処理が予め定められた回数連続で失敗した場合、その後、少なくとも一定時間は認証要求を受け付けないよう制限を課せば良いからである。具体的には、図１のモータモジュールは、認証処理が３回連続で失敗した場合、その後、少なくとも１０分間は外部機器からの認証要求を拒否する。より信頼性が要求される用途では、モータモジュールは、以後の全ての認証要求を拒否してもよい。
【００３８】
以上のとおり、ハッシュ値よりも短いデータに変換したとしても、十分高いセキュリティ強度を維持することが可能である。
【００３９】
以下、本開示による認証システム１の第１の実施形態を説明する。
【００４０】
図２は、自走ロボット１００とＰＣ１５０とを示している。ＰＣ１５０は上述の外部機器に相当しており、無線通信回線を介して自走ロボット１００の動作を制御する。
【００４１】
自走ロボット１００は、搬送テーブル１０１と、システムコントローラ１０２と、モータ駆動システム１０３と、左駆動輪１０４Ａおよび右駆動輪１０４Ｂとを有する。搬送テーブル１０１は運搬物を載置するテーブルである。システムコントローラ１０２は、自走ロボット１００の全体を制御する信号処理プロセッサ（ＣＰＵ）である。システムコントローラ１０２は、たとえば電源投入時の自走ロボット１００の初期化処理を行う。
【００４２】
モータ駆動システム１０３は、左駆動輪１０４Ａおよび右駆動輪１０４Ｂをそれぞれ駆動する２つのモータモジュールを含む。本実施形態では、モータ駆動システム１０３の各モータモジュールは、独立してＰＣ１５０と通信することが可能な通信回路（後述）を備えている。ただし、本実施形態では少なくとも１つの通信回路が存在していればよい。通信回路は、ＰＣ１５０との通信を、各モータモジュールに分配することができればよい。
【００４３】
電源が投入され、コントローラ１０２による初期化処理が完了すると、モータ駆動システム１０３内の各モータモジュールはＰＣ１５０と通信を行い、図１に示す認証処理を独立して行う。自走ロボット１００を制御しようとするＰＣ１５０は、自走ロボット１００の各モータモジュールに搭載されたモータ指紋情報を予め保持している。それぞれのモータモジュールにおいてＰＣ１５０の認証が成功すると、自走ロボット１００はＰＣ１５０からの制御指令の受け付けを許可する。自走ロボット１００は、ＰＣ１５０からの制御指令に従い、図２の矢印で示す方向を前進方向として走行する。
【００４４】
図３Ａは、自走ロボット１００の、特にモータ駆動システム１０３のハードウェア構造を示している。参考のため、自走ロボット１００を構成しないＰＣ１５０を破線で示す。
【００４５】
モータ駆動システム１０３は、左輪モータモジュール１０６Ａおよび右輪モータモジュール１０６Ｂを有している。左輪モータモジュール１０６Ａは、通信回路１１０Ａと、プロセッサ１１２Ａと、モータ駆動回路１１４Ａと、モータ１１６Ａとを有する。右輪モータモジュール１０６Ｂは、通信回路１１０Ｂと、プロセッサ１１２Ｂと、モータ駆動回路１１４Ｂと、モータ１１６Ｂとを有する。以下では、左輪モータモジュール１０６Ａおよび右輪モータモジュール１０６Ｂをまとめて、「モータモジュール１０６Ａおよび１０６Ｂ」と記述することがある。モータモジュール１０６Ａおよび１０６Ｂは、それぞれインテリジェントモータ（登録商標）と呼ばれることがある。
【００４６】
図３Ｂは、ＰＣ１５０のハードウェア構成を示している。ＰＣ１５０は、ＣＰＵ１５１と、メモリ１５２と、通信回路１５３と、画像処理回路１５４とを有する。ＣＰＵ１５１、メモリ１５２、通信回路１５３および画像処理回路１５４は通信バス１５５で接続されており、相互にデータを授受することが可能である。
【００４７】
ＣＰＵ１５１は、ＰＣ１５０の動作を制御する「信号処理回路」または「制御回路」（コンピュータ）である。典型的にはＣＰＵ１５１は半導体集積回路である。
【００４８】
メモリ１５２は、ＣＰＵ１５１が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ１５２は、ＣＰＵ１５１が演算を行う際のワークメモリとしても利用され得る。
【００４９】
通信回路１５３は、たとえばＷｉ−Ｆｉ（登録商標）規格に準拠した無線通信を行い、自走ロボット１００との間でデータを授受することができる。認証時には、通信回路１５３は、自走ロボット１００の各モータモジュールから受信したチャレンジデータを、バス１５５を介してＣＰＵ１５１および／またはメモリ１５２に送信する。また、通信回路１５３は、自走ロボット１００の各モータモジュールに送信すべきレスポンスデータを、バス１５５を介してＣＰＵ１５１から受信する。
【００５０】
画像処理回路１５４は外部モニタ１５６に表示する映像データを生成する回路である。画像処理回路１５４は、専ら、管理者が自走ロボット１００を制御する際に動作し、外部モニタ１５６に映像を表示する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ１５６はＰＣ１５０と一体化されていてもよい。また画像処理回路１５４の処理をＣＰＵ１５１が行ってもよい。
【００５１】
以下、主として図３Ａを参照しながら認証処理を具体的に説明する。なお、図３Ａに示すモータモジュール１０６Ａおよび１０６Ｂの処理は同等であるため、以下では左輪モータモジュール１０６Ａの処理を代表として説明する。
【００５２】
通信回路１１０Ａはバッファ１１１Ａを有している。バッファ１１１Ａには、予め、左輪モータモジュール１０６Ａを識別するための識別子が格納されている。当該識別子は、通信可能な範囲の通信ネットワーク内で一意に識別可能な文字および／または数字であればよく、たとえば、デバイスごとに重複なく付与された識別子であり得る。識別子の一例はＭＡＣアドレスまたはＩＰアドレスある。以下では識別子がＭＡＣアドレスであるとする。
【００５３】
ＰＣ１５０のＣＰＵ１５１は、認証要求を格納したデータフレームを左輪モータモジュール１０６Ａに送信する。当該データフレームでは、例えば左輪モータモジュール１０６ＡのＭＡＣアドレスが、宛先として指定されている。
【００５４】
データフレームを受信したとき、左輪モータモジュール１０６Ａの通信回路１１０Ａは、それぞれ、物理層、データリンク層の処理を行い、データフレームの宛先が、バッファ１１１Ａに格納されているＭＡＣアドレスと一致するか否かを判定する。一致する場合には、通信回路１１０Ａは当該データフレームの処理を続行し、一致しない場合には当該データフレームを破棄する。
【００５５】
データフレームの処理を続行する場合には、通信回路１１０Ａは、データフレームに、さらにＯＳＩ参照モデルにおけるＩＰ層、トランスポート層等毎の処理を順次行い、得られたデータをプロセッサ１１２Ａに伝送する。
【００５６】
プロセッサ１１２Ａはいずれも、半導体が集積された信号処理プロセッサである。プロセッサは「信号処理回路」または「制御回路」とも呼ばれる。プロセッサ１１２Ａは、演算処理に利用するデータを記憶するレジスタ１１３Ａを有している。
【００５７】
プロセッサ１１２Ａは、通信回路１１０Ａから受け取ったデータがＰＣ１５０からの認証要求であると判定する。これにより、左輪モータモジュール１０６Ａのプロセッサ１１２Ａは、通信回路１１０Ａを介してＰＣ１５０との間で図１の認証処理を開始する。当該認証処理により、ＰＣ１５０の認証が成功すると、プロセッサ１１２ＡはＰＣ１５０からの制御指令を、認証要求を取得した手順と同じ手順で取得する。
【００５８】
制御指令の一例は、モータの回転方向（正転または反転）を示す回転方向指令、回転速度を示す速度指令である。
【００５９】
プロセッサ１１２Ａは、指定された回転方向および回転速度に対応するデータをレジスタ１１３Ａから読み出し、指定された回転方向および回転速度でモータ１１６Ａを回転させるための信号を生成する。当該信号は、たとえばＰＷＭ（Pulse Width Modulation）信号である。
【００６０】
モータ駆動回路１１４Ａは、たとえばインバータ回路であり、それぞれ、ＰＷＭ信号に応じた大きさおよび方向で電流をモータ１１６Ａに流す。これにより、モータ１１６Ａは指定された回転方向および回転速度で回転する。
【００６１】
プロセッサ１１２Ａは、ＰＣ１５０から情報提供指令を受け付ける。情報提供指令を受け付けると、プロセッサ１１２Ａは、現在モータ１１６Ａで発生させているトルク値および位置情報をＰＣ１５０に送信する。位置情報は、例えばモータの回転回数と車輪の周長との積によって得られる、走行距離の情報として得られる。ＰＣ１５０は、取得したトルク値および位置情報を利用して、自走ロボット１００が想定された経路を走行しているか否かを判定できる。
【００６２】
次に、第１の実施形態の変形例を説明する。
【００６３】
図４は、２台のモータ駆動システム１０３−Ｆおよび１０３−Ｒに１つの運搬台１２０を載置し、荷物１２２を運搬する協調制御システム１９０を示している。モータ駆動システム１０３−Ｆおよび１０３−Ｒの各々は、図３Ａに示す構成を有している。つまり図示された協調制御システム１９０では、４台のモータにより荷物１２２が運搬される。
【００６４】
モータ駆動システム１０３−Ｆおよび１０３−Ｒの各々では、左輪モータモジュール１０６Ａおよび右輪モータモジュール１０６Ｂが独立してＰＣ１５０の認証を行う。全てのモータモジュールがＰＣ１５０を認証すると、ＰＣ１５０による制御が可能になる。
【００６５】
図４の例では、ＰＣ１５０は、モータ駆動システム１０３−Ｆおよび１０３−Ｒの各々の左輪モータモジュール１０６Ａおよび右輪モータモジュール１０６Ｂにそれぞれ回転方向指令および速度指令を送信する。さらにＰＣ１５０は、後ろ側のモータ駆動システム１０３−Ｒのモータモジュール１０６Ａおよび１０６Ｂに情報提供指令を送信し、トルク値および位置情報を取得する。ＰＣ１５０は、前側のモータ駆動システム１０３−Ｆよりも、後ろ側のモータ駆動システム１０３−Ｒの駆動力を強く動作させることにより、運搬台１２０を後ろから押すように動作する。
【００６６】
本発明者は、後ろ側のモータ駆動システム１０３−Ｒのモータモジュール１０６Ａおよび１０６Ｂに情報提供指令を送信し、トルク値および位置情報を取得して制御させたところ、安定して荷物１２２を運搬できることを確認した。なお、モータ駆動システム１０３−Ｆおよび１０３−Ｒの各モータモジュールに速度指令のみを与えて荷物１２２を運搬させたところ、荷物１２２は運搬台１２０から落下した。
【００６７】
次に、第２の実施形態を説明する。
【００６８】
図５は、溶接ロボット２００の構成を示している。溶接ロボット２００は、システムコントローラ１０２と、第１関節駆動システム２１０Ａと、第２関節駆動システム２１０Ｂと、第３関節駆動システム２１０Ｃと、溶接トーチ２３０とを備えている。隣接する２つの関節駆動システム同士はアームによって接続されている。
【００６９】
アーム２１９の端部に設けられた第３関節駆動システム２１０Ｃはアーム２２０をモータの回転軸を中心に回転させることにより、アーム２２０を上下させてアーム２２０先端に設けられた溶接トーチ２３０の位置を調整する。なおモータの回転軸をどのように配置するかによって、アーム２２０を上下から左右に変更することもできる。
【００７０】
溶接ロボット２００は、モータによって回転可能な複数の関節を有しており、各関節の動きは第１〜第３関節駆動システム２１０Ａ〜２１０Ｃによって別個独立に制御される。第１〜第３関節駆動システム２１０Ａ〜２１０Ｃの各々は、例えば、図３Ａに示すモータモジュール１０６Ａおよび／または１０６Ｂと同じ構成を有しており、各々がＰＣ１５０を認証する。認証の手順の説明は図１の説明および図３Ａの左輪モータモジュール１０６Ａの説明を援用する。
【００７１】
なお、第３関節駆動システム２１０Ｃには、２つのモータモジュール１０６Ａおよび１０６Ｂが設けられている。図６は、第３関節駆動システム２１０Ｃの具体的な構造を示している。図５に示す構成と実質的に同じ構成には同じ参照符号を付している。
【００７２】
第１関節駆動システム２１０Ａ、第２関節駆動システム２１０Ｂ、ならびに、第３関節駆動システム２１０Ｃのモータモジュール１０６Ａおよび１０６Ｂの各々が、独立してＰＣ１５０を認証する。第１〜第３関節駆動システム２１０Ａ〜２１０Ｃの各々は、ＰＣ１５０から個々の各関節駆動システムに送信された制御指令にしたがって動作する。
【００７３】
図６に示すように、第３関節駆動システム２１０Ｃのモータモジュール１０６Ａおよび１０６Ｂでは、モータ１１６Ａの回転軸とモータ１１６Ｂの回転軸とは対向している。そのため、溶接トーチ２３０をある方向に移動させる場合には、ＰＣ１５０は、モータ１１６Ａおよびモータ１１６Ｂをそれぞれ反対の方向に回転させる回転方向指令を送信する。なお、モータ１１６Ａおよびモータ１１６Ｂが同じ性能を有している場合には、速度指令は同じである。
【００７４】
以上、本開示による構成および認証動作を説明した。複数のモータモジュールを外部機器によって制御する製品またはシステムであれば、本開示による認証手順を導入することができる。例えば、船体スクリュー、野菜収穫用のピックアップアーム、ベルトコンベアが挙げられる。
【００７５】
上述の実施形態では、認証を行う外部機器（ＰＣ）と、モータモジュール（より具体的にはモータモジュール内のプロセッサ）とが共通の変換規則を予め別個に有しているとして説明した。しかしながら、認証するモータモジュールは変換規則を予め有していなくてもよい。例えば、認証を受ける外部機器（ＰＣ）が変換規則を決定し、当該変換規則をモータモジュールに通知してもよい。
【００７６】
図７は、３２バイトのハッシュ値の模式図である。外部機器が、３２バイトのハッシュ値の上位Ｘビット目の位置から下位ビットに向かって、連続してデータ長Ｙバイトの部分データを抽出する、という変換規則を採用する例を考える。外部機器は、抽出開始位置を示す情報（上記「Ｘ」）、データ長を示す情報（上記「Ｙ」）および抽出したＹバイトのデータ自体を結合したデータを、レスポンスデータとして生成し、モータモジュールに送信すれば良い。例えばペイロード長Ｌが１３バイトである場合には、抽出開始位置を示す情報の記述に１バイトを充て、データ長を示す情報の記述に１バイトを充て、残りの１１バイト以下に抽出したＹバイトのデータ自体を充てることができる。これにより、モータモジュールは変換規則を予め有していなくても、外部機器が利用した変換規則を知ることができる。モータモジュールは、当該変換規則を用いて、自らが算出したハッシュ値を、データサイズのより小さいデータに変換し、認証に用いることができる。
【産業上の利用可能性】
【００７７】
本開示による認証システムは、外部機器が、１または複数のモータユニットに含まれる各モータの制御に広く用いられ得る。
【符号の説明】
【００７８】
１・・認証システム、１００・・自走ロボット、１５０・・ＰＣ（外部機器）、１１０Ａ、１１０Ｂ・・通信回路、１１２Ａ、１１２Ｂ・・プロセッサ
【図１】
2019026833.tif 000003
【図２】
2019026833.tif 000004
【図３Ａ】
2019026833.tif 000005
【図３Ｂ】
2019026833.tif 000006
【図４】
2019026833.tif 000007
【図５】
2019026833.tif 000008
【図６】
2019026833.tif 000009
【図７】
2019026833.tif 000010
【国際調査報告】
2019026833.tif 000011
2019026833.tif 000012
2019026833.tif 000013
2019026833.tif 000014
2019026833.tif 000015
2019026833.tif 000016