(57)【特許請求の範囲】
【請求項１】
ネットワークに接続される端末であって、
前記ネットワークから第一のデータを取得するデータ取得部と、
前記第一のデータを用いて、物理量に関する第二のデータを抽出する抽出部と、
前記第一のデータの数を数えるカウンタ部と、
前記第二のデータもしくは前記カウンタ部が数えた値のいずれかを選択し、選択された前記第二のデータもしくは前記値のいずれかを種として乱数を生成する乱数生成部と、
前記乱数に基づいて、前記第一のデータを暗号化する暗号化部を備える端末。
【請求項２】
請求項１記載の端末であって、
前記乱数生成部は、前記第二のデータもしくは前記カウンタ部が数えた値のいずれかをランダムに選択して乱数を生成することを特徴とする端末。
【請求項３】
ネットワークに接続される端末により実行されるプログラムであって、
前記ネットワークから第一のデータを取得する処理と、
前記第一のデータを用いて、物理量に関する第二のデータを抽出する処理と、
前記第一のデータの数を数える処理と、
前記第二のデータもしくは前記第一のデータの数のいずれかを選択し、選択された前記第二のデータもしくは前記第一のデータの数のいずれかを種として乱数を生成する処理と、
前記乱数に基づいて、前記第一のデータを暗号化する処理を前記端末に実行させるプログラム。
【請求項４】
請求項３記載のプログラムであって、
前記乱数を発生する処理においては、前記第二のデータもしくは前記第一のデータの数のいずれかをランダムに選択して乱数を生成することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティを確保するための暗号鍵を生成する車載端末に関する。
【背景技術】
【０００２】
自動車分野において、安全性・環境性・利便性の要請が高まるにつれて、車載端末の電動化が進展してきている。例えば、ハイブリッドカーでは、従来のガソリンエンジンだけではなく、これと連携する重要な電装品として電気モータやインバータが搭載されている。また、これらを制御する電子制御装置（ＥＣＵ；Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）間での連携を実現するためにＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）などの車内ネットワークも普及してきている。更に、障害情報やイベント情報を後から確認できるように車内ネットワークを介して車両情報を収集し、メモリやハードディスクドライブ（ＨＤＤ）等の記憶媒体に格納しておくＶＲＭ端末も利用が拡大しつつある。尚、ＶＲＭ（Ｖｅｈｉｃｌｅ  Ｒｅｌａｔｉｏｎｓｈｉｐ  Ｍａｎａｇｅｍｅｎｔ）とは、車両情報を収集・蓄積・活用して、リモートメンテナンス等の新しいサービスを提供することで車両の付加価値を高めるための技術のことを示す。
【０００３】
但し、車両情報が、車の制御・診断及びドライバ個人の挙動に係わる場合は、収集データの機密性が問われる場合が多く、機密保護のための対策として暗号化が必要になる。暗号化を行う場合、十分な安全性を確保するため、通常の情報システムでは、暗号鍵をその場で動的に、乱数として、生成する。乱数には、一定のアルゴリズムに従って得られる「算術乱数（擬似乱数）」と、物理現象から得られる「物理乱数」があることが知られている。
【０００４】
算術乱数を生成する技術として、１６ビットのフリーランカウンタで生成したビット列をシフトレジスタで逐次右に１６ビットシフトし、新たなフリーランカウンタ値を左端１６ビットに格納していくことにより、長い乱数を小規模のハードウェアで生成する技術がある（特許文献１参照）。また、物理乱数を生成する技術として、外部から予測不可能な温度センサの出力値に基づいて乱数を生成する技術もある（特許文献２参照）。
【０００５】
【特許文献１】特開平１０−２４７１４０号公報
【特許文献２】特開２００１−００５３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
かかる従来技術においては、次のような課題がある。
【０００７】
特許文献１による「算術乱数」を生成する場合、同じ初期値に対して同じ乱数を作り出す再現性があるため、初期値をフリーランカウンタ等で毎回変更する必要がある。但し、カウンタも周期性があるため、出力乱数を集めることにより、次に生成される乱数を予測できてしまう。即ち、この方法により外部から推測困難な乱数を生成しようとすると、複雑な構成の乱数生成方法を用いる必要があり、実現コストが高くなってしまう。
【０００８】
また、特許文献２による「物理乱数」を生成する場合、物理現象を捉えるためのセンサが追加で必要になり、その分コストがかかる。
【０００９】
そこで、本発明の目的は、別途センサなどの機器等を追加することなく、外部からは推測困難な乱数を生成する装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の望ましい態様の一つは次の通りである。
【００１１】
ネットワークに接続される端末は、ネットワークから第一のデータを取得するデータ取得部と、第一のデータに基づいて物理量に関する第二のデータを抽出する抽出部と、第二のデータに基づいて乱数を生成する乱数生成部と、乱数に基づいて第一のデータを暗号化する暗号化部を備える。
【発明の効果】
【００１２】
本発明によれば、別途センサなどの機器等を追加することなく、外部からは推測困難な乱数を生成する装置を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面に従い、車載端末で収集した車両情報を暗号化する際の鍵生成方法について説明する。尚、車載端末とは、ＶＲＭ端末及びＥＣＵを含む、車に載せられた端末を意味する。また、車両情報とは、エンジン回転数、ヨーレート、加速度、操舵角、燃料噴射量、トルク目標値等の、物理量に関するデータを示す。
【００１４】
図１は、車内システムの機能ブロックを表す図である。
【００１５】
ＶＲＭ端末１０１は、各部（車両のエンジンやブレーキ等）を制御するＥＣＵ１０２ａ〜ｃ間で制御ネットワークを介してやり取りされる情報を収集する。ここでは、制御ネットワークをＣＡＮであるとして説明するが、これに限定されるものではない。
【００１６】
データ取得部１０４は、ＣＡＮ１０３に流れている、車両情報がパッキングされたＣＡＮデータを取得し、情報管理部１０５のデータ管理部１０７に一時的に格納する。データ管理部１０７は、ＣＡＮデータから抽出された車両情報も格納する。カウンタ部１１０は、取得したデータ（パケット）の数を数える。情報管理部１０５の抽出部１０６は、データ管理部１０７に格納されたＣＡＮデータから車両情報を抽出する。データ管理部１０７に格納されたＣＡＮデータは、情報格納部１１４により情報蓄積部１１５に長期保管される。暗号化部１１３は、乱数生成部１１２が生成する乱数を暗号鍵として取得し、この暗号鍵を用いてデータ管理部１０７に格納されたＣＡＮデータの暗号化を行う。ここで、乱数生成部１１２は設定部１１１が設定した値（以下、乱数シードと称する）に基づいて、乱数を生成する。情報出力部１１６は、情報蓄積部１１５に蓄積された情報を外部ツール１１７に出力する。
【００１７】
図２は、ＶＲＭ端末のハードウェア構成を示す図である。ＶＲＭ端末１０１は、マイクロコンピュータ（以下、マイコンと略す）２０１、電源の管理を行う電源管理部２１１、電源電圧が低下した際にマイコン２０１にリセット信号を出力するリセットＩＣ２１２、システムクロックを監視することでシステム暴走時にリセット信号を発生するウォッチドックタイマ２０６、バッテリ（ＢＡＴ）インタフェース２１４、イグニッションスイッチ（ＩＧＮ）インタフェース２１５、ＣＡＮ１０３を送受信する物理的入出力インタフェースとなるトランシーバ２０８、ＣＡＮデータをデジタル情報として処理するコントローラ２０７、外付ＲＡＭ２０９、及び外付ＦＲＯＭ２１０（フラッシュＲＯＭ）とから構成される。トランシーバ２０８はトランスミッタ（Ｔｘ）２１７からＣＡＮ１０３に信号を送信し、レシーバ（Ｒｘ）２１８から信号を受信する。電源管理部２１１は、イグニッションスイッチ（ＩＧＮ）インタフェース２１５からのＩＧＮ信号がＯＮの時にバッテリ（ＢＡＴ）インタフェース２１４から入力電源を得る。アース（ＧＮＤ）２１６はＶＲＭ端末１０１の基準電圧点として、例えば車のボディに接続される。
【００１８】
マイコン２０１は、ＣＰＵ２０３、内蔵ＲＡＭ２０４、内蔵ＦＲＯＭ２０５、及びこれら構成要素を接続する内部バス２０２とから構成される。
【００１９】
ＣＰＵ２０３は、内蔵ＦＲＯＭ２０５（又は外付ＦＲＯＭ２１０）に格納されたプログラムを内蔵ＲＡＭ２０４（又は外付ＲＡＭ２０９）にロードして、処理を行う。
【００２０】
内蔵ＲＡＭ２０４（又は外付ＲＡＭ２０９）は、後述する、図４、図６、及び図７のデータを格納する。また、情報格納部１１４の役割も果たす。
【００２１】
内蔵ＦＲＯＭ２０５（又は外付ＦＲＯＭ２１０）は、図１で説明した、データ取得部１０４、情報管理部１０５（抽出部１０６、データ管理部１０７を含む）、暗号化部１１３、情報格納部１１４、カウンタ部１１０、設定部１１１、乱数生成部１１２、及び情報出力部１１６などの機能を有するプログラムを格納する。また、情報蓄積部１１５の役割も果たす。尚、外付のＲＡＭやＦＲＯＭを用いず、大容量のＲＡＭやＦＲＯＭを内蔵してもよい。
【００２２】
ＶＲＭ端末１０１と外部ツール１１６は、シリアル通信インタフェース（ＳＣＩ）２１３を介して通信を行うが、ＣＡＮ１０３を介して行ってもよい。
【００２３】
尚、図１で説明した機能を、ハードウェアにより実現してもよい。また、上記機能を実現するためのプログラムは、ＣＤ−ＲＯＭ等の記憶媒体から移してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。
【００２４】
図３は、収集した車両情報を暗号化して蓄積するときのフロー図である。以下、図１で説明した機能ブロックをハードウェアであるかのように説明するが（機能ブロックを処理主体とする）、該機能をソフトウェアで実現する場合の主体は、プログラムを実行するＣＰＵ２０３であることはいうまでもない。
【００２５】
まず、データ取得部１０４は、ＣＡＮ１０３から収集対象のＣＡＮデータを取得する（ステップ３０１）。データ取得部１０４には収集すべきＣＡＮデータのリストを予め登録しておく。収集データリストの例を図４に示す。ＣＡＮデータは図５に示す通り、ＣＡＮ  ＩＤ５０１、ＣＴＬ５０２、データ部５０３、ＣＲＣ５０４、及びＡＣＫ５０５とから構成され、ＣＡＮ  ＩＤ５０１がＣＡＮデータを区別するための識別子となっている。ＣＴＬ５０２はＣＡＮデータを制御する情報、データ部５０３は実際の制御情報を含むコア部分、ＣＲＣ５０４は誤り検知符号、ＡＣＫ５０５は送達確認情報を表す。図４に示すリストには、収集したいＣＡＮデータのＣＡＮ  ＩＤ５０１をリストアップしている。
【００２６】
次に、データ取得部１０４は、取得したＣＡＮデータをデータ管理部１０７に一時的に格納する（ステップ３０２）。この時、カウンタ部１１０は、ＣＡＮデータ（パケット）の数を数えてもよい。データ管理部１０７は、ＣＡＮデータを丸ごとタイムスタンプ付で指定したデータ容量分（例えば１０ＭＢ）バッファリングしていく。
【００２７】
次に、抽出部１０６は、データ管理部１０７に格納されたＣＡＮデータから車両情報を抽出する（ステップ３０３）。具体的には、データ部５０３の中から該当するビット列を抜き出し、このビット列を変換式に入力して得られた結果が車両情報となる。ＣＡＮデータから車両情報を抽出するための参照テーブルの例を図６に示す。該テーブルは、車両情報の種類を表す名称６０１、車両情報の種類を識別するためのＣＡＮ  ＩＤ５０１、データの始まりを表すビット位置６０２、データ全体の長さを表すデータ長６０３、及び得られたビット列を入力として実際の物理量を出力するための変換式６０４とから構成される。例えば、「エンジン回転数」を取得するには、ＣＡＮ  ＩＤ５０１が「１２３」のＣＡＮデータを取得し、そのデータ部５０３の先頭から７ビット目から８ビットのビット列を抽出する。このビット列を変換式６０４に入力し、得られたデータが「エンジン回転数」となる。情報管理部１０５は、このようにして得られた車両情報に、取得した時刻をタイムスタンプとして付与し、それぞれ一定個数（例えば１０個）履歴管理していく。収集結果としての情報管理部１０５の内部データテーブルを図７に示す。
【００２８】
次に、データ管理部１０７のＣＡＮデータを格納する領域が容量一杯（満杯）になったか否かを判定し（ステップ３０４）、満杯の場合には、暗号化部１１３にその旨を伝達する（ステップ３０５）。満杯でない場合は、ステップ３０１に戻る。尚、容量に閾値を設け、その閾値を超えたら伝達するようにしてもよいし、その他のタイミングで、伝達してもよい。あるいは、暗号化部１１３を経由せず、直接設定部１１１に伝達してもよい。
【００２９】
次に、該伝達を受けた暗号化部１１３は、設定部１１１に対して、乱数シードを設定するように指示し、設定部１１１は、情報管理部１０５が履歴管理している値（例えば、最新値）を乱数シードに設定する。この時、カウンタ部１１０が数えた値を設定してもよい。または、情報管理部１０５が履歴管理している値とカウンタ部１１０が数えた値のいずれかから設定してもよい（ステップ３０６）。その後、設定部１１１は、設定した乱数シードを乱数生成部１１２に渡す。
【００３０】
乱数生成部１１２は、設定部１１１より渡された乱数シードに基づいて乱数を生成し、１２８ビットの乱数を、暗号鍵として、暗号化部１１３に渡す（ステップ３０７）。乱数シードから乱数を生成する方法としては、例えば、ＣやＪａｖａ（登録商標）といった一般的なプログラミング言語において、ライブラリとして用意されている乱数生成用関数（引数は乱数シード）を用いる方法がある。
【００３１】
暗号化部１１３は、データ管理部１０７からＣＡＮデータを取得し、該ＣＡＮデータを、乱数生成部１１２から渡された暗号鍵に基づいて暗号化し、該暗号データを、情報格納部１１４に渡す（ステップ３０８）。その後、情報格納部１１４は、該暗号データを、情報蓄積部１１５に格納する（ステップ３０９）。暗号アルゴリズムとしては標準的に用いられているＡＥＳなどの共通鍵暗号アルゴリズムを用いればよい。尚、暗号化に用いた暗号鍵は事前に指定した公開鍵を用いて暗号化し、情報蓄積部１１５に追加格納する。また、乱数生成部１１２と設定部１１１の機能を統合したものを乱数生成部としてもよい。
【００３２】
本実施例によれば、事前に設定した値に基づくのではなく、その場の車載端末の動作状況に応じた車両情報を乱数発生の種（乱数シード）とするため、外部者は車載端末の外から乱数の種に関する情報を入手し、該乱数による暗号鍵を推定することも困難となる。また、車載端末の仕様が外部に漏洩して車載端末の複製が作成され、本物の車載端末と同じネットワークに成りすまし端末が設置されても、乱数の種を複数候補からランダムに選択するため、暗号鍵を推定される確率を極めて低くすることができる。
【００３３】
尚、以上では、車載端末について説明したが、車載端末以外の端末についても本発明を適用できることはいうまでもない。例えば、半導体の製造では歩留まり向上のために装置情報を監視することがあるが、このような場合に半導体製造装置に本実施例による端末を設置することで、前記の車両の場合と同様に、高い機密性を保持したまま半導体製造装置内の装置情報を収集することが可能となる。この場合、収集するのは、液薬吐出圧力、ガス供給圧力、モータ回転数、真空度などの物理量に関するデータになる。
【図面の簡単な説明】
【００３４】
【図１】車内システムの機能ブロック図。
【図２】ＶＲＭ端末のハードウェア構成図。
【図３】収集データの暗号化を行うためのフロー図。
【図４】ＣＡＮ  ＩＤのリストを表す図。
【図５】ＣＡＮデータの構造を表す図。
【図６】車両情報を抽出するための情報を示すテーブルを表す図。
【図７】情報管理部内部のテーブルを表す図。
【符号の説明】
【００３５】
１０１…ＶＲＭ端末、１０２…ＥＣＵ、１０３…ＣＡＮ、２０１…マイコン、２０３…ＣＰＵ、２０４…内蔵ＲＡＭ、２０５…内蔵ＦＲＯＭ
【図１】
0004734089.tif 000002
【図２】
0004734089.tif 000003
【図３】
0004734089.tif 000004
【図４】
0004734089.tif 000005
【図５】
0004734089.tif 000006
【図６】
0004734089.tif 000007
【図７】
0004734089.tif 000008