(57)【要約】【課題】簡単なソフトウェア又はハードウェア構成によって、ＵＳＢのセキュリティ機能を実現すること。【解決手段】ＵＳＢインタフェース装置１０は、ＵＳＢパケットを送信する側の電子機器に設けられ、ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する変換部１１と、変換部による変換前のＣＲＣ対象データに対するＣＲＣを算出するＣＲＣ算出部１２と、変換部１１によって変換されたデータとＣＲＣ算出部１２によって算出されたＣＲＣとを含むＵＳＢパケットを生成するパケット生成部１３と、を備えている。【選択図】図１
2010211276.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢパケットを送信する側の電子機器に設けられるＵＳＢインタフェース装置であって、
ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する変換部と、
前記変換部による変換前のＣＲＣ対象データに対するＣＲＣを算出するＣＲＣ算出部と、
前記変換部によって変換されたデータと前記ＣＲＣ算出部によって算出されたＣＲＣとを含むＵＳＢパケットを生成するパケット生成部と、を備えていることを特徴とするＵＳＢインタフェース装置。
【請求項２】
ＵＳＢパケットを受信する側の電子機器に設けられるＵＳＢインタフェース装置であって、
ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データと、ＣＲＣとをＵＳＢパケットから抽出する抽出部と、
ＣＲＣ対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出部により抽出されたＣＲＣ対象データを変換する変換部と、
前記変換部による変換後のＣＲＣ対象データに対するＣＲＣを算出するＣＲＣ算出部と、
前記抽出部により抽出されたＣＲＣと前記ＣＲＣ算出部により算出されたＣＲＣとを比較する比較部と、を備えていることを特徴とするＵＳＢインタフェース装置。
【請求項３】
前記変換部による所定の規則に基づく変換は、送信元と送信先との間で共有された所定のデータを用いて行われることを特徴とする、請求項１又は２に記載のＵＳＢインタフェース装置。
【請求項４】
前記所定のデータは所定のビット列であって、
前記所定の規則は前記所定のビット列と前記ＣＲＣ対象データとの間で、ビット単位で排他的論理和を求めることであることを特徴とする、請求項３に記載のＵＳＢインタフェース装置。
【請求項５】
前記所定のデータは共通鍵暗号における共通鍵であって、
前記所定の規則は前記共通鍵に基づいて前記ＣＲＣ対象データを暗号化又は復号化することであることを特徴とする、請求項３に記載のＵＳＢインタフェース装置。
【請求項６】
前記所定のデータを記憶する記憶部をさらに備えていることを特徴とする、請求項１乃至５のいずれか１項に記載のＵＳＢインタフェース装置。
【請求項７】
前記ＵＳＢパケットは、ＵＳＢ通信におけるトークンパケット又はデータパケットであることを特徴とする、請求項１乃至６のいずれか１項に記載のＵＳＢインタフェース装置。
【請求項８】
請求項１及び／又は請求項２に記載のＵＳＢインタフェース装置を備えていることを特徴とする電子機器。
【請求項９】
請求項８に記載の電子機器を複数備えていることを特徴とするＵＳＢ通信システム装置。
【請求項１０】
ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する工程と、
前記変換工程における変換前のＣＲＣ対象データに対するＣＲＣを算出する工程と、
前記変換工程において変換されたデータと前記ＣＲＣ算出工程において算出されたＣＲＣとを含むＵＳＢパケットを生成して送信する工程と、を含むことを特徴とするＵＳＢパケット送信方法。
【請求項１１】
ＵＳＢパケットを受信する工程と、
受信したＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データと、ＣＲＣとをＵＳＢパケットから抽出する工程と、
ＣＲＣ対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出工程において抽出されたＣＲＣ対象データを変換する工程と、
前記変換工程における変換後のＣＲＣ対象データに対するＣＲＣを算出する工程と、
前記抽出工程において抽出されたＣＲＣと前記ＣＲＣ算出工程において算出されたＣＲＣとを比較する工程と、を含むことを特徴とするＵＳＢパケット受信方法。
【請求項１２】
請求項１０に記載のＵＳＢパケット送信方法における各工程と、
請求項１１に記載のＵＳＢパケット受信方法における各工程と、を含むことを特徴とするＵＳＢパケット通信方法。
【請求項１３】
ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する処理と、
前記変換処理における変換前のＣＲＣ対象データに対するＣＲＣを算出する処理と、
前記変換処理において変換されたデータと前記ＣＲＣ算出処理において算出されたＣＲＣとを含むＵＳＢパケットを生成して送信する処理とを、ＵＳＢパケットを送信する側のコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
ＵＳＢパケットを受信する処理と、
受信したＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データと、ＣＲＣとをＵＳＢパケットから抽出する処理と、
ＣＲＣ対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出処理において抽出されたＣＲＣ対象データを変換する処理と、
前記変換処理における変換後のＣＲＣ対象データに対するＣＲＣを算出する処理と、
前記抽出処理において抽出されたＣＲＣと前記ＣＲＣ算出処理において算出されたＣＲＣとを比較する処理とを、ＵＳＢパケットを受信する側のコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢインタフェース装置及びＵＳＢパケット送受信方法に関し、特に、セキュリティ機能を有するＵＳＢインタフェース装置及びＵＳＢパケット送受信方法に関する。
【背景技術】
【０００２】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースは利便性が高いことから、多くのパソコン（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）に標準で装備されており、各種のデバイスはＵＳＢによってパソコンへ接続することができるようになっている。また、ＵＳＢはパソコンのみならず、デジタルＴＶ、カーナビなどにも装備されており、パソコンを介さないデータ転送にも使用されている。
【０００３】
しかしながら、ＵＳＢの規格は標準でセキュリティ機能を有していないため、別途セキュリティ機能を設けていないＵＳＢ機器は悪意のあるユーザによって容易に不正使用され得るという問題がある。一例として、ＵＳＢデバイスに保存されたデータを不正に読み書きされ得る。また、許可されていないＵＳＢデバイスから意図しないデータ（例えば、コンピュータウィルス）が不正にコピーされて実行され得る。
【０００４】
特許文献１において、セキュリティ機能付きのＵＳＢ機器を有するコンピュータシステムが記載されている。特許文献１の図１を参照すると、ＵＳＢホスト１０及びＵＳＢデバイス２０に対して、認証機能を実現するハードウェア及びソフトウェアを追加することによってセキュリティ機能が強化されている。ＵＳＢホスト１０がＵＳＢデバイス２０の接続を認識するとデータ転送に必要な情報を交換した後（Ｅｎｕｍｅｒａｔｉｏｎフェーズ）、通常のＵＳＢ通信が可能となる。このＥｎｕｍｅｒａｔｉｏｎフェーズに認証機能を追加し、認証をパスした場合のみデータ転送が可能となる。
【０００５】
特許文献１に記載されたコンピュータシステムにおいて、新たに追加されたハードウェア及びソフトウェアは、次の通りである。特許文献１の図１を参照すると、ＵＳＢホスト１０に対して、クライアントソフトウェア１１及びＩＤ記憶部１６が追加されている。一方、ＵＳＢデバイス２０に対して、セキュリティインタフェース２４、インタフェース制御部２５、インタフェース切り替えスイッチ２６、セキュリティ機能切り替えスイッチ２８、及びセキュリティ機能ステータス表示部２９が追加されている。
【０００６】
特許文献１に記載のコンピュータシステムの動作は次の通りである。特許文献１の図１を参照すると、
［１］ＵＳＢホスト１０のＩＤ記憶部１６とＵＳＢデバイス２０のＩＤ記憶部２７に共通の値を登録する。
［２］ＵＳＢデバイス２０が接続されると、ＵＳＢホスト１０がＵＳＢデバイス２０のＣｏｎｎｅｃｔを検出する。ＵＳＢデバイス２０は、セキュリティインタフェース２４がディスクリプタを返すようにインタフェース制御部２５を設定する。
［３］ＵＳＢホスト１０はＵＳＢデバイス２０に対し、セキュリティインタフェース２４のディスクリプタを要求する。
［４］ＵＳＢデバイス２０はＵＳＢホスト１０に対し、セキュリティインタフェース２４のディスクリプタを返す。
［５］ＵＳＢホスト１０はセキュリティインタフェース２４のディスクリプタを取得後、ＵＳＢデバイス２０に対してＩＤ（ＩＤ記憶部の値）を要求する。
［６］ＵＳＢデバイス２０はＵＳＢホスト１０に対し、ＵＳＢデバイス２０のＩＤ記憶部２７に登録された値を返す。
［７］ＵＳＢホスト１０はＵＳＢデバイス２０から送信されてきたＩＤに対し認証処理を行う。
［８］認証が許可された場合、ＵＳＢホスト１０はＵＳＢデバイス２０に対して周辺機器インタフェース２１を有効にするためのコマンドを発行する。これによりＵＳＢデバイス２０はインタフェース制御部２５により周辺インタフェース２１がセレクトされる。以降、通常のＵＳＢのＥｎｕｍｅｒａｔｉｏｎフェーズとなる。
【０００７】
なお、「通常のＵＳＢのＥｎｕｍｅｒａｔｉｏｎフェーズ」とは、「周辺機器インタフェースとのＥｎｕｍｅｒａｔｉｏｎ」を意味する。一方、認証が許可されなかった場合には、ＵＳＢのＥｎｕｍｅｒａｔｉｏｎフェーズには移行しないため、ＵＳＢデバイス２０は使用不可となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−１８６８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以下の分析は、本発明者によってなされたものである。
【００１０】
特許文献１に記載されたコンピュータシステムにおいては、認証後に周辺機器インタフェース２１とのＥｎｕｍｅｒａｔｉｏｎが可能となるようにする。したがって、ＵＳＢデバイス２０において、認証前にディスクリプタの送受信を行うセキュリティインタフェース２４及び、２つのインタフェースを切り替えるインタフェース制御部２５が必要とされる。インタフェースの切り替えは認証結果に応じてＵＳＢホスト１０によって行われるため、本機能を実現するソフトウェアをＵＳＢホスト１０に追加する必要がある。また、ＵＳＢホスト１０のＩＤ記憶部１６に登録されている値とＵＳＢデバイス２０から入手したＩＤとを照合する認証機能もＵＳＢホスト１０側に設ける必要がある。
【００１１】
また、セキュリティインタフェース２４とのＥｎｕｍｅｒａｔｉｏｎフェーズにおいてＩＤの要求及び送信を実施している。しかし、これは標準デバイスリクエストではないため、標準的なＵＳＢデバイス用ドライバ以外に別途ドライバが必要とされる。ＵＳＢホスト１０はＯＨＣＩ／ＥＨＣＩ等のホストコントローラ規格に準拠している場合には、標準ドライバを流用することができる。ＵＳＢデバイス２０も標準的なクラスであれば標準ドライバを流用することができる。標準ドライバを流用することができれば、ソフトウェアの開発コストを抑制することができる。
【００１２】
しかし、特許文献１に記載されたコンピュータシステムのように、認証機能をＵＳＢの上位層（ソフトウェア階層）において実現した場合には、標準的なソフトウェア以外に上記の機能を実現するためのソフトウェアが必要とされる。したがって、標準ソフトウェアを流用するという利点が損なわれ、専用ソフトウェアを開発することによる開発期間及びテスト期間の長期化を招き、開発コストの上昇を招くという問題がある。
【００１３】
そこで、簡単なソフトウェア又はハードウェア構成によって、ＵＳＢのセキュリティ機能を実現することが課題となる。
【課題を解決するための手段】
【００１４】
本発明の第１の視点に係るＵＳＢインタフェース装置は、ＵＳＢパケットを送信する側の電子機器に設けられるＵＳＢインタフェース装置であって、ＵＳＢパケットにおいてＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ、巡回冗長検査）を算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する変換部と、変換部による変換前のＣＲＣ対象データに対するＣＲＣを算出するＣＲＣ算出部と、変換部によって変換されたデータとＣＲＣ算出部によって算出されたＣＲＣとを含むＵＳＢパケットを生成するパケット生成部と、を備えている。
【００１５】
本発明の第２の視点に係るＵＳＢインタフェース装置は、ＵＳＢパケットを受信する側の電子機器に設けられるＵＳＢインタフェース装置であって、ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データと、ＣＲＣとをＵＳＢパケットから抽出する抽出部と、ＣＲＣ対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、抽出部により抽出されたＣＲＣ対象データを変換する変換部と、変換部による変換後のＣＲＣ対象データに対するＣＲＣを算出するＣＲＣ算出部と、抽出部により抽出されたＣＲＣとＣＲＣ算出部により算出されたＣＲＣとを比較する比較部と、を備えている。
【００１６】
本発明の第３の視点に係る電子機器は、上記のＵＳＢインタフェース装置を備えている。
【００１７】
本発明の第４の視点に係るＵＳＢ通信システム装置は、上記の電子機器を複数備えている。
【００１８】
本発明の第５の視点に係るＵＳＢパケット送信方法は、ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する工程と、変換工程における変換前のＣＲＣ対象データに対するＣＲＣを算出する工程と、変換工程において変換されたデータとＣＲＣ算出工程において算出されたＣＲＣとを含むＵＳＢパケットを生成して送信する工程と、を含む。
【００１９】
本発明の第６の視点に係るＵＳＢパケット受信方法は、ＵＳＢパケットを受信する工程と、受信したＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データと、ＣＲＣとをＵＳＢパケットから抽出する工程と、ＣＲＣ対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、抽出工程において抽出されたＣＲＣ対象データを変換する工程と、変換工程における変換後のＣＲＣ対象データに対するＣＲＣを算出する工程と、抽出工程において抽出されたＣＲＣとＣＲＣ算出工程において算出されたＣＲＣとを比較する工程と、を含む。
【００２０】
本発明の第７の視点に係るＵＳＢパケット通信方法は、上記のＵＳＢパケット送信方法における各工程と、上記のＵＳＢパケット受信方法における各工程と、を含む。
【００２１】
本発明の第８の視点に係るプログラムは、ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する処理と、変換処理における変換前のＣＲＣ対象データに対するＣＲＣを算出する処理と、変換処理において変換されたデータとＣＲＣ算出処理において算出されたＣＲＣとを含むＵＳＢパケットを生成して送信する処理とを、ＵＳＢパケットを送信する側のコンピュータに実行させる。
【００２２】
本発明の第９の視点に係るプログラムは、ＵＳＢパケットを受信する処理と、受信したＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データと、ＣＲＣとをＵＳＢパケットから抽出する処理と、ＣＲＣ対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出処理において抽出されたＣＲＣ対象データを変換する処理と、変換処理における変換後のＣＲＣ対象データに対するＣＲＣを算出する処理と、抽出処理において抽出されたＣＲＣとＣＲＣ算出処理において算出されたＣＲＣとを比較する処理とを、ＵＳＢパケットを受信する側のコンピュータに実行させる。
【発明の効果】
【００２３】
本発明に係るＵＳＢインタフェース装置、ＵＳＢパケット送受信方法、及びプログラムによると、簡単なソフトウェア又はハードウェア構成によって、ＵＳＢのセキュリティ機能を実現することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【図２】本発明の第２の実施形態に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【図３】本発明の第４の実施形態に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【図４】実施例１におけるＵＳＢパケット処理回路（ＳＩＥ）の構成を示すブロック図である。
【図５】ＵＳＢにおけるトークンパケットの構成を示す図である。
【図６】ＵＳＢにおけるデータパケットの構成を示す図である。
【図７】本発明の第２の実施例に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【図８】本発明の第２の実施例に係るＵＳＢインタフェース装置によるＩＮ方向のＵＳＢトランザクション処理のフローチャートである。
【図９】本発明の第３の実施例に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【図１０】本発明の第３の実施例に係るＵＳＢインタフェース装置によるＩＮ方向のＵＳＢトランザクション処理のフローチャートである。
【図１１】本発明の第３の実施例に係るＵＳＢインタフェース装置によるＯＵＴ方向のＵＳＢトランザクション処理のフローチャートである。
【図１２】本発明の第４の実施例に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
（第１の実施形態）
本発明の第１の実施形態に係るＵＳＢインタフェース装置について、図面を参照して説明する。図１は、本発明の実施形態に係るＵＳＢインタフェース装置であってＵＳＢパケット送信側の電子機器に設けられるものの構成を示すブロック図である。図１を参照すると、ＵＳＢインタフェース装置１０は、変換部１１、ＣＲＣ算出部１２、及びパケット生成部１３を備えている。
【００２６】
変換部１１は、ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データを、送信先の電子機器によってＣＲＣ対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する。
【００２７】
ＣＲＣ算出部１２は、変換部１１による変換前のＣＲＣ対象データに対するＣＲＣを算出する。
【００２８】
パケット生成部１３は、変換部１１によって変換されたデータとＣＲＣ算出部１２によって算出されたＣＲＣとを含むＵＳＢパケットを生成する。
【００２９】
（第２の実施形態）
本発明の第２の実施形態に係るＵＳＢインタフェース装置について、図面を参照して説明する。図２は、本発明の実施形態に係るＵＳＢインタフェース装置であってＵＳＢパケット受信側の電子機器に設けられるものの構成を示すブロック図である。図２を参照すると、ＵＳＢインタフェース装置２０は、抽出部２１、変換部２２、ＣＲＣ算出部２３、及び比較部２４を備えている。
【００３０】
抽出部２１は、ＵＳＢパケットにおいてＣＲＣを算出する対象とされるフィールドに含まれるデータであるＣＲＣ対象データと、ＣＲＣとをＵＳＢパケットから抽出する。
【００３１】
変換部２２は、ＣＲＣ対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、抽出部２１により抽出されたＣＲＣ対象データを変換する。
【００３２】
ＣＲＣ算出部２３は、変換部２２による変換後のＣＲＣ対象データに対するＣＲＣを算出する。
【００３３】
比較部２４は、抽出部２１により抽出されたＣＲＣとＣＲＣ算出部２３により算出されたＣＲＣとを比較する。
【００３４】
（第３の実施形態）
【００３５】
上記第１の実施形態のＵＳＢインタフェース装置１０における変換部１１、及び、上記第２の実施形態のＵＳＢインタフェース装置２０における変換部２２による所定の規則に基づく変換は、送信元と送信先との間で共有された所定のデータを用いて行われるようにしてもよい。
【００３６】
また、上記の所定のデータは所定のビット列であって、上記の所定の規則は所定のビット列とＣＲＣ対象データとの間で、ビット単位で排他的論理和を求めることであってもよい。
【００３７】
さらに、上記の所定のデータは共通鍵暗号における共通鍵であって、上記の所定の規則は共通鍵に基づいてＣＲＣ対象データを暗号化又は復号化することであってもよい。
【００３８】
ＵＳＢインタフェース装置１０又はＵＳＢインタフェース装置２０は、上記の所定のデータを記憶する記憶部１４又は記憶部２５をさらに備えていてもよい。
【００３９】
また、上記のＵＳＢパケットは、ＵＳＢ通信におけるトークンパケット又はデータパケットでことが好ましい。
【００４０】
電子機器において、上記のＵＳＢインタフェース１０及び／又は２０を備えていることが好ましい。さらに、ＵＳＢ通信システム装置は、かかる電子機器を複数備えていることが好ましい。
【００４１】
（第４の実施形態）
本発明の第４の実施形態に係るＵＳＢインタフェース装置について図面を参照して説明する。図３を参照すると、ＵＳＢホスト１０１のＵＳＢインタフェース装置１０２、及び、ＵＳＢデバイス１０７のＵＳＢインタフェース装置１０８は、それぞれ、送信するデータを、ＩＤ記憶部１０６、１１２に記録された値に応じて変換する変換回路１０５、１１１を有することによって、セキュリティ機能を実現している。
【００４２】
特許文献１に記載されたコンピュータシステムにおいては、認証機能を追加することでＵＳＢのセキュリティを向上させている。一方、本発明においては、共通のＩＤ（ＩＤ記憶部１０６、１１２の値）を持たないＵＳＢホストとＵＳＢデバイスとの間のＵＳＢ通信においてはＣＲＣエラーを生じさせ、ＵＳＢ通信を成立させないことによりセキュリティを向上させている。本実施形態において、標準的なＵＳＢシステムに対して追加する必要があるのは、変換回路１０５、１１１、及び、ＩＤ記憶部１０６、１１２である。
【００４３】
一例として、変換回路１０５、１１１は、ＸＯＲ回路のような簡素な回路構成によって実現することができる。また、ＩＤ記憶部１０６、１１２へのＩＤの登録をソフトウェアによって実現する場合には、かかる機能を実現するソフトウェアが必要とされる。しかし、ＵＳＢホスト１０１及びＵＳＢデバイス１０７のＵＳＢインタフェース装置１０２、１０８よりも上層における処理は、標準的なＵＳＢの処理であるため、標準的なソフトウェアのみに基づいて実現することができる。
【００４４】
以上のことから、本実施形態のＵＳＢインタフェース装置によると、簡単なハードウェア（回路）とソフトウェアを追加することで、セキュリティ機能を実現することができる。
【実施例１】
【００４５】
本発明の第１の実施例について、図面を参照して説明する。ＵＳＢ通信においては、トークンパケット、データパケット、及び、ハンドシェークパケットからなるトランザクションが繰り返される。
【００４６】
図５は、ＵＳＢにおけるトークンパケットの構成を示す図である。一方、図６は、ＵＳＢにおけるデータパケットの構成を示す図である。図５及び図６を参照すると、トークンパケットとデータパケットは、パケット内の特定のフィールド３０１、４０１（以後、「ＣＲＣ対象フィールド」とする）に格納されたデータ（以後、「ＣＲＣ対象データ」とする）のＣＲＣを含む。
【００４７】
ＣＲＣは、パケットの送信側において、ＣＲＣ対象データに対して算出され、パケットに付加されて送信される。すなわち、ＵＳＢのパケットに付加されているＣＲＣは、そのパケットのＣＲＣ対象データから算出された値である。受信側においては、ＣＲＣ対象データに対するＣＲＣが再び計算され、再計算されたＣＲＣと受信したパケットに付加されていたＣＲＣとを照合し、一致した場合にはそのパケットを正常受信するとともに、一致しない場合には破棄する。以上が、通常のＵＳＢ通信の概要である。
【００４８】
一方、本実施例においては、送信されるパケット内のＣＲＣ対象データとそのパケットに付加されたＣＲＣとの関係が上述した通常のＵＳＢ通信におけるパケットとは異なる。すなわち、送信パケットに付加されるＣＲＣは変換回路で変換される前のＣＲＣ対象フィールドに対して算出したＣＲＣであり、ＣＲＣ対象データはＣＲＣ変換後のデータとなっている。本実施例においては、送信側で変換されたＣＲＣ対象データが受信側において復元できない場合には、ＵＳＢ通信が成立しない。
【００４９】
なお、変換が必要なのはＣＲＣ対象フィールドに格納されるデータであり、ＰＩＤ（Ｐａｃｋｅｔ  ＩＤ）などＣＲＣ算出の対象となっていないフィールドの値は変換不要である。したがって、ＣＲＣを含んでいないハンドシェークパケットは変換されない。
【００５０】
図４は、本実施例においてＵＳＢパケットを処理するＳＩＥ（Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ  Ｅｎｇｉｎｅ）の構成を示すブロック図である。図４のＳＩＥ２０１は、図３のＳＩＥ１０５、１１０の機能ブロックの概要を示す。ＳＩＥ２０１は、変換回路を有し、パケットの生成を行う。
【００５１】
ＵＳＢホストコントローラ１０３及び論理デバイス１０９からＳＩＥ１０４、１１０へ入力されるデータは、一般に、ＰＩＤ（Ｐａｃｋｅｔ  ＩＤ）とＤＡＴＡ（ＣＲＣ対象データ）に分離されている。しかし、入力されたデータが分離されていない場合には、データ分離・統合回路２０６は、入力されたデータをＰＩＤとＤＡＴＡに分離する。
【００５２】
ＳＩＥ２０１によって、ＰＩＤとＤＡＴＡから送信パケットを生成する動作は次の通りである。
［１］変換回路２０２は、ＳＩＥ２０１へ入力されたＤＡＴＡをＩＤ記憶部２０４の値を用いて変換する。
［２］ＣＲＣ算出回路２０７は、ＳＩＥ２０１へ入力されたＤＡＴＡのＣＲＣを算出する。
［３］パケット生成回路２０８は、ＳＩＥ２０１へ入力されたＰＩＤと変換後のデータとＣＲＣに基づいて送信パケットを生成する。
［４］ＵＳＢ符号化・復号化回路２０９は、送信パケットをＵＳＢのバスフォーマットへ変換し、送信する。
【００５３】
一方、受信パケットの処理動作は以下のとおりである。
［１］ＵＳＢ符号化・復号化回路２０９は、受信パケットをＵＳＢのバスフォーマットからＳＩＥで処理することのできるフォーマットへ復号する。
［２］パケット分解回路２１０は、受信パケットをＰＩＤ、ＤＡＴＡ、ＣＲＣに分離する。
［３］変換回路２０３は、受信パケットから分離されたＤＡＴＡをＩＤ記憶部２０５の値を用いて変換する。
［４］ＣＲＣ算出回路２１１は、変換後のデータのＣＲＣを算出する。
［５］ＣＲＣ比較回路２１２は、変換後のデータのＣＲＣと受信パケットから分離されたＣＲＣとを比較する。
［６］データ分離・統合回路２０６は、比較結果に応じて受信パケットを処理する。データ分離・統合回路２０６は、比較結果が一致した場合にはパケットを正常処理し、一致しない場合にはパケットを破棄する。
【００５４】
なお、図３においては、変換回路１０５、１１１は、それぞれＳＩＥ１０４、１１０に配置されている。しかしながら、変換後のデータと変換前のデータのＣＲＣとを含むパケットを生成することができる構成であれば、変換回路１０５、１１１はＵＳＢインタフェース装置１０２、１０８のいずれに配置してもよい。また、変換回路２０２、２０３は、それぞれ、ＩＤ記憶部２０４、２０５の値を用いて、送信側で変換されたデータを受信側で復元することができる構成であれば、どのような回路構成であってもよい。
【００５５】
変換回路２０２、２０３は、一例として、ＸＯＲ回路であってもよい。このとき、変換回路２０２は、ＣＲＣ対象データとＩＤ記憶部２０４の値とをＸＯＲした値を送信パケットのＣＲＣ対象フィールドに格納する。また、変換回路２０２、２０３は、ＤＥＳ又はＡＥＳなどの共通鍵を用いた暗号回路であってもよい。このとき、変換回路２０２、２０３は、ＩＤ記憶部２０４の値を共通鍵として暗号化したＣＲＣ対象データを送信パケットのＣＲＣ対象フィールドに格納する。
【００５６】
特に、変換回路２０２、２０３をＸＯＲ回路とする構成は簡素な回路構成となる。ＳＩＥ２０１のモジュール内にＸＯＲ回路を配置した構成について、実施例２〜４において述べる。ただし、図７、図９、図１２においては、図４における機能ブロックの記載は省略した。
【００５７】
本実施例においては、ＵＳＢにおいてセキュリティ機能を実現するために、従来技術のように認証フェーズを追加するのではなく、送受信されるパケットのＣＲＣ対象フィールドに格納されるデータに変換が施される。したがって、ＵＳＢインタフェースの上位のソフトウェアによるデータ処理については、標準的なＵＳＢにおける処理フローと同一である。すなわち、従来技術のようにセキュリティ機能を実現するためのソフトウェアを追加する必要はなく、標準的なＵＳＢソフトウェアのみに基づいて、セキュリティ機能を実現することができる。
【００５８】
なお、本実施例においては、ＵＳＢインタフェース装置に送信データの変換回路を追加する必要がある。一例として、変換回路をＸＯＲ回路とすることによって、簡素な回路構成で送信データを変換することができる。
【実施例２】
【００５９】
本発明の第２の実施例について図面を参照して説明する。本実施例においては、ＵＳＢデバイスからＵＳＢホストへ向かう方向（以下「ＩＮ方向」という。）のデータのみを変換対象とする。図７は、本実施例に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【００６０】
図７を参照すると、ＵＳＢホスト５０１において、ＸＯＲ回路５０５は、ＵＳＢデバイス５０７からのデータとＩＤ記憶部５０６の値とをＸＯＲしたデータがＵＳＢホストコントローラ５０３へ受け渡されるように配置される。ＵＳＢデバイス５０７において、ＸＯＲ回路５１１は、ＵＳＢホスト５０１へ送信されるデータとＩＤ記憶部５１２の値とをＸＯＲしたデータがＵＳＢホスト５０１へ送信されるように配置される。
【００６１】
図７に示した構成においては、ＩＮ方向のデータのみが変換対象とされるため、主に、ＵＳＢデバイス５０７のセキュリティを向上させる効果が生じる。例えば、ＩＤを知らないＵＳＢホスト５０１（すなわち、許可されていないＵＳＢホスト）がＵＳＢデバイスに５０７保存されているデータを不正に入手しようとした場合、ＩＤが一致しないときにはＵＳＢ通信が成立しないため、ＵＳＢホスト５０１によるデータの不正入手を防止することができる。
【００６２】
（動作）
図８は、本実施例に係るＵＳＢインタフェース装置５０２、５０８によるＩＮ方向のＵＳＢトランザクション処理のフローチャートである。本実施例に係るＵＳＢインタフェース装置５０２、５０８の具体的な動作を以下に示す。一例として、送信対象データを１１１１００００、ＩＤ記憶部５０６、５１２の値（ＩＤ）を１０１０１０１０として、動作の説明を行う。
【００６３】
なお、図８のフローチャートにおいては、簡単のため、以下の処理に関する記載は省略されている（図１０及び図１１においても同様である。）。
・ＵＳＢデバイスの接続認識からＵＳＢ速度決定までの処理
・ＣＲＣエラー以外のエラー処理
・ＣＲＣ対象データに変換を実施したパケット以外のＣＲＣ再算出およびＣＲＣ照合処理
・ＨＳ（Ｈｉｇｈ  Ｓｐｅｅｄ）モード時のＯＵＴ転送において実施されるＰＩＮＧフロー
・ＡＣＫ以外のハンドシェークパケットの送信およびそれに伴う処理
【００６４】
図８は、本実施例に係るＵＳＢインタフェース装置５０２、５０８（すなわち、ＩＮ方向のデータのみを変換対象とする装置）によるＩＮ方向のＵＳＢトランザクション処理のフローチャートである。なお、ＯＵＴ方向のＵＳＢトランザクション処理においては、ＵＳＢデバイス５０７からＵＳＢホスト５０１へ送信されるパケットはハンドシェークパケットのみであり、ＸＯＲ回路５０５、５１１によるデータの変換は発生しない。すなわち、標準的なＵＳＢトランザクションフローと同一であるため、図８においてかかるパケットの処理を省略した。
【００６５】
図７及び図８を参照すると、
［１］ＵＳＢホスト５０１のＩＤ記憶部５０６とＵＳＢデバイス５０７のＩＤ記憶部５１２に共通の値を登録する（ステップＳ１１、ステップＳ２１）。
［２］ＯＵＴ方向のデータの場合、ＵＳＢホスト５０１においてＣＲＣ対象データはＳＩＥ５０４内でＸＯＲされず、パス５１３を経由する。したがって、ＵＳＢのバス上のパケットのＣＲＣ対象フィールドには”１１１１００００”が格納され、パケットには”１１１１００００”に対して算出されたＣＲＣが付加されている。
［３］ＵＳＢデバイス５０７において、受信したパケットのＣＲＣ対象データはＳＩＥ５１０内でＸＯＲされず、パス５１４を経由する。したがって、ＣＲＣ対象データ”１１１１００００”に対してＣＲＣが再び算出される。再算出されたＣＲＣと受信パケットに付加されていたＣＲＣが一致した場合には、パケットは正常に受信され、処理される。
［４］ＩＮ方向のデータの場合、ＵＳＢデバイス５０７においてホスト側に送信したいＣＲＣ対象データのＣＲＣを算出する（ステップＳ２３）。
［５］ＣＲＣを算出後、送信したいＣＲＣ対象データ”１１１１００００”とＩＤ記憶部５１２の値”１０１０１０１０”とのＸＯＲを実施する（ステップＳ２４）。
［６］ＵＳＢデバイス５０７は、ＸＯＲ後のデータ”０１０１１０１０”をＣＲＣ対象フィールドに格納し、変換前のデータ”１１１１００００”に対するＣＲＣを付加したパケットを生成して（ステップＳ２５）、ＵＳＢホスト５０１へ送信する（ステップＳ２６）。
［７］ＵＳＢホスト５０１において、受信したパケットのＣＲＣ対象データ”０１０１１０１０”とＩＤ記憶部５０６の値”１０１０１０１０”とのＸＯＲを実施する（ステップＳ１３）。
［８］ＸＯＲ後のデータ”１１１１００００”に対してＣＲＣを再算出する（ステップＳ１４）。再算出されたＣＲＣと受信パケットに付加されていたＣＲＣが一致した場合には（ステップＳ１５のＹｅｓ）、当該パケットは正常に受信され、処理される（ステップＳ１６）。一方、ＵＳＢホスト５０１がＵＳＢデバイス５０７とは異なるＩＤを用いた場合には、ＣＲＣ照合において不一致が生じる（ステップＳ１５のＮｏ）ため、当該パケットは破棄される。
【００６６】
具体例を挙げると、ＵＳＢホスト５０１のＩＤ記憶部５０６の値が”１０１０１１１１”の場合、ＵＳＢホスト５０１におけるＸＯＲ後のデータは”１０１００１０１”となる。再算出されたＣＲＣは”１０１００１０１”に対するＣＲＣであるため、受信パケットに付加されたＣＲＣとは一致しない。
【００６７】
図８のフローチャートにおいて、標準的なＵＳＢトランザクション処理フローに含まれない処理は、ステップＳ１１、Ｓ２１、Ｓ２４、Ｓ１３である。ステップＳ１１、Ｓ２１の処理をソフトウェアで実現する場合には専用のソフトウェアが必要とされる。しかし、これらの処理はＵＳＢディスクリプタの処理とは無関係であるから、標準的なＵＳＢソフトウェア（ドライバなど）の変更を必要としない。また、ステップＳ２４、Ｓ１３はＵＳＢインタフェース装置５０２、５０８（ハードウェア）への機能追加によって実現されることから、これらの処理において標準的なＵＳＢソフトウェアは介在しない。ステップＳ２５の処理においては、ＣＲＣ対象データとＣＲＣの組み合わせが標準のＵＳＢのパケット構成と異なることから図４に示した回路構成が必要とされる。しかし、ステップＳ２５の処理においても標準的なソフトウェアは介在しない。図８における他の処理は標準的なＵＳＢトランザクション処理フローと同一である。
【００６８】
したがって、本実施例によると、標準的なＵＳＢソフトウェアとＵＳＢディスクリプタ処理に関係しないソフトウェアのみによって、セキュリティ機能を備えたＵＳＢトランザクションが可能となる。すなわち、ＵＳＢのセキュリティ機能を、認証機能の追加ではなく、ＵＳＢパケットの構成の変更によって実現することにより、簡単な回路の追加と標準的なソフトウェアのみに基づいて、ＵＳＢのセキュリティ機能を実現することができる。
【実施例３】
【００６９】
本発明の第２の実施例について図面を参照して説明する。本実施例においては、ＵＳＢホストからＵＳＢデバイスへ向かう方向（ＯＵＴ方向）のデータのみを変換対象とする。図９は、本実施例に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【００７０】
図９を参照すると、ＵＳＢホスト６０１において、ＸＯＲ回路６０５は、ＵＳＢデバイス６０７へ送信されるデータとＩＤ記憶部６０６の値とのＸＯＲしたデータがＵＳＢデバイス６０７へ送信されるように配置される。ＵＳＢデバイス６０７においては、ＸＯＲ回路６１１は、ＵＳＢホスト６０１からのデータとＩＤ記憶部６１２の値とをＸＯＲしたデータが論理デバイス６０９へ受け渡されるように配置される。
【００７１】
図９に示した構成においては、ＯＵＴ方向のみのデータが変換対象とされるため、主に、ＵＳＢホスト６０１のセキュリティを向上させる効果が生じる。例えば、ＩＤを知らないＵＳＢデバイス６０７（すなわち、許可されていないＵＳＢデバイス）において自動実行される不正なプログラム（例えば、ＵＳＢウィルス）が保存されていた場合、当該デバイスをＵＳＢホストに接続してもＵＳＢホスト側から送信されるトークンパケットは変換回路において変換されており、ＩＤが一致しない限りＵＳＢ通信が成立しないため、不正なプログラムの実行を防止することができる。
【００７２】
（動作）
図１０は、本実施例に係るＵＳＢインタフェース装置６０２、６０８によるＩＮ方向のＵＳＢトランザクション処理のフローチャートである。本実施例に係るＵＳＢインタフェース装置６０２、６０８の具体的な動作を以下に示す。一例として、送信対象データを１１１１００００、ＩＤ記憶部６０６、６１２の値（ＩＤ）を１０１０１０１０として、動作の説明を行う。
【００７３】
図９及び図１０を参照すると、
［１］ＵＳＢホスト６０１のＩＤ記憶部６０６とＵＳＢデバイス６０７のＩＤ記憶部６１２に共通の値を登録する（ステップＳ３１、ステップＳ４１）。
［２］ＯＵＴ方向のデータの場合、ＵＳＢホスト６０１においてＵＳＢデバイス６０７に送信されるＣＲＣ対象データのＣＲＣを算出する（ステップＳ３２）。
［３］ＣＲＣを算出後、送信されるＣＲＣ対象データ”１１１１００００”とＩＤ記憶部６０６の値”１０１０１０１０”とのＸＯＲを実施する（ステップＳ３３）。
［４］ＵＳＢホスト６０１は、ＸＯＲ後のデータ”０１０１１０１０”をＣＲＣ対象フィールドに格納し、変換前のデータ”１１１１００００”に対するＣＲＣを付加したパケット生成して（ステップＳ３４）、ＵＳＢデバイス６０７へ送信する（ステップＳ３５）。
［５］ＵＳＢデバイス６０７において、受信したパケットのＣＲＣ対象データ”０１０１１０１０”とＩＤ記憶部６１２の値”１０１０１０１０”とのＸＯＲを実施する（ステップＳ４３）。
［６］ＸＯＲ後のデータ”１１１１００００”に対してＣＲＣを再算出する（ステップＳ４４）。再算出されたＣＲＣと受信パケットに付加されていたＣＲＣが一致した場合には（ステップＳ４５のＹｅｓ）、当該パケットは正常に受信され、処理される。一方、ＵＳＢデバイス６０７がＵＳＢホスト６０１とは異なるＩＤを用いた場合には、ＣＲＣ照合において不一致が生じる（ステップＳ４５のＮｏ）ため、当該パケットは破棄される。
［７］ＩＮ方向のデータの場合、ＵＳＢデバイス６０７においてＣＲＣ対象データはＳＩＥ６１０内でＸＯＲされず、パス６１３を経由する。したがって、ＵＳＢのバス上のパケットのＣＲＣ対象フィールドには”１１１１００００”が格納され、パケットには”１１１１００００”に対して算出されたＣＲＣが付加されている。
［８］ＵＳＢホスト６０１において、受信したパケットのＣＲＣ対象データはＳＩＥ６０４内でＸＯＲされず、パス６１４を経由する。したがって、ＣＲＣ対象データ”１１１１００００”に対してＣＲＣが再算出される。再算出されたＣＲＣとパケットに付加されていたＣＲＣが一致した場合、当該パケットは正常に受信され、処理される。
【００７４】
図１１は、本実施例に係るＵＳＢインタフェース装置６０２、６０８によるＯＵＴ方向のＵＳＢトランザクション処理のフローチャートである。図１１においては、トークンパケット及びデータパケットの双方について、ＸＯＲ回路６０５、６１１に基づく変換が施される。
【００７５】
図１０及び図１１のフローチャートにおいて、標準的なＵＳＢトランザクションフローに含まれない処理は、図１０のステップＳ３１、Ｓ４１、Ｓ３３、Ｓ４３、図１１のステップＳ５１、Ｓ７１、Ｓ５３、Ｓ７３、Ｓ５７、Ｓ７７である。ステップＳ３１、Ｓ４１、Ｓ５１、Ｓ７１の処理をソフトウェアで実現する場合には専用のソフトウェアが必要とされる。しかし、これらの処理はＵＳＢディスクリプタの処理とは無関係であるから、標準的なＵＳＢソフトウェア（ドライバなど）の変更を必要としない。また、ステップＳ３３、Ｓ４３、Ｓ５３、Ｓ７３、Ｓ５７およびＳ７７はＵＳＢインタフェース装置６０２、６０８（ハードウェア）への機能追加によって実現されることから、これらの処理において標準的なＵＳＢソフトウェアは介在しない。ステップＳ３４、Ｓ５４、Ｓ５８の処理においては、ＣＲＣ対象データとＣＲＣの組み合わせが標準のＵＳＢのパケットの構成と異なることから、図４に示した回路構成が必要とされる。しかし、これらの処理にも標準的なソフトウェアは介在しない。図１０及び図１１における他の処理は標準的なＵＳＢトランザクション処理フローと同一である。
【００７６】
したがって、本実施例によると、標準的なＵＳＢソフトウェアとＵＳＢディスクリプタ処理に関係しないソフトウェアのみによって、セキュリティ機能を備えてＵＳＢトランザクションが可能となる。
【実施例４】
【００７７】
本発明の第４の実施例について図面を参照して説明する。本実施例においては、ＩＮ方向及びＯＵＴ方向の双方のデータが変換対象とされる。図１２は、本実施例に係るＵＳＢインタフェース装置の構成を示すブロック図である。
【００７８】
図１２を参照すると、本実施例に係るＵＳＢインタフェース装置７０２、７０８においては、ＩＮ方向のデータに対するＸＯＲ回路７１４、７１５と、ＯＵＴ方向のデータに対するＸＯＲ回路７０５、７１１を別個に設ける。また、ＩＮ方向に対するＩＤ記憶部７１３、７１６と、ＯＵＴ方向に対するＩＤ記憶部７０６、７１２とを別個に設ける。このとき、実施例２（図７）及び実施例３（図９）と比較してセキュリティ強度を強化することができる。セキュテイ強度はＩＤのビット長に依存することから、ｎビットのＩＤを用いた場合には、実施例２及び実施例３の構成と比較して、セキュリティ強度は２のｎ乗倍となる。
【００７９】
以上の記載は実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。
【符号の説明】
【００８０】
１０、２０、１０２、１０８、５０２、５０８、６０２、６０８、７０２、７０８  ＵＳＢインタフェース装置
１１、２２  変換部
１２、２３  ＣＲＣ算出部
１３  パケット生成部
１４、２５  記憶部
２１  抽出部
２４  比較部
１０１、５０１、６０１、７０１  ＵＳＢホスト
１０３、５０３、６０３、７０３  ＵＳＢホストコントローラ
１０４、１１０、２０１、５０４、５１０、６０４、６１０、７０４、７１０  ＳＩＥ（Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ  Ｅｎｇｉｎｅ）
１０５、１１１、２０２、２０３  変換回路
１０６、１１２、２０４、２０５、５０６、５１２、６０６、６１２、７０６、７１２、７１３、７１６  ＩＤ記憶部
１０７、５０７、６０７、７０７  ＵＳＢデバイス
１０９、５０９、６０９、７０９  論理デバイス
２０６  データ分離・統合回路
２０７、２１１  ＣＲＣ算出回路
２０８  パケット生成回路
２０９  ＵＳＢ符号化・復号化回路
２１０  パケット分解回路
２１２  ＣＲＣ比較回路
３０１、４０１  フィールド（ＣＲＣ対象フィールド）
５０５、５１１、６０５、６１１、７０５、７１１、７１４、７１５  ＸＯＲ回路
５１３、５１４、６１３、６１４  パス
【図１】
2010211276.tif 000003
【図２】
2010211276.tif 000004
【図３】
2010211276.tif 000005
【図４】
2010211276.tif 000006
【図５】
2010211276.tif 000007
【図６】
2010211276.tif 000008
【図７】
2010211276.tif 000009
【図８】
2010211276.tif 000010
【図９】
2010211276.tif 000011
【図１０】
2010211276.tif 000012
【図１１】
2010211276.tif 000013
【図１２】
2010211276.tif 000014