(57)【特許請求の範囲】
【請求項１】
外部装置と連動する車両制御器での相互認証方法において、
前記外部装置から受信された認証要請メッセージによって乱数Ｓを生成して前記外部装置に伝送する第１のステップ；
前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する第２のステップ；
前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成する第３のステップ；
前記外部装置から第１の応答キーを受信する第４のステップ；
前記乱数Ｓ、前記変数ｉ及び前記第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第２の応答キーを生成する第５のステップ；及び
前記第１の応答キーと前記第２の応答キーとが一致するか否かに基づいて前記外部装置を認証する第６のステップ；
を含む、相互認証方法。
【請求項２】
前記認証要請メッセージに乱数Ｒが含まれる場合、前記乱数Ｒ及び前記乱数Ｓを前記第１の関数の媒介変数として設定し、前記変数ｉを生成する、請求項１に記載の相互認証方法。
【請求項３】
前記変数ｉは、数式：
ｉ＝ｆ１（Ｒ，Ｓ）＝ＬＳ（Ｒ）＋Ｓ  ｍｏｄ  １６
によって生成され、ここで、前記ＬＳ（Ｒ）は、前記乱数Ｒを前記乱数Ｓのビット数だけ循環前置する関数である、請求項２に記載の相互認証方法。
【請求項４】
前記第１のセッションキーＫＳは、前記乱数Ｓをさらに用いて生成される、請求項１に記載の相互認証方法。
【請求項５】
前記第１のセッションキーＫＳは、
前記保安キーＫと前記乱数Ｓとのビット単位ＸＯＲ演算を通じて生成された第１の値と、前記第１の値を前記変数ｉだけ循環前置して生成された第２の値とのビット単位ＸＯＲ演算を通じて生成される、請求項４に記載の相互認証方法。
【請求項６】
前記乱数Ｓを前記保安キーＫのビット長と同一ビット長になるまで反復して連接した後、ビット単位ＸＯＲ演算を通じて前記第１の値を生成する、請求項５に記載の相互認証方法。
【請求項７】
前記認証要請メッセージに乱数Ｒが含まれる場合、前記乱数Ｒをさらに用いて前記第２の応答キーを生成する、請求項１に記載の相互認証方法。
【請求項８】
前記第２の応答キーは、数式：
【数１】
0006556495.tif 000010
によって算出され、ここで、ｍは、前記車両制御器に要求される保安水準によって予め設定可能な最小反復実行回数である、請求項７に記載の相互認証方法。
【請求項９】
前記
【数２】
0006556495.tif 000011
は、数式：
【数３】
0006556495.tif 000012
によって算出され、ここで、前記ｌｊは、前記乱数Ｒと前記乱数Ｓとのビット単位ＸＯＲ結果を４ビット単位で区分した値である、請求項８に記載の相互認証方法。
【請求項１０】
前記
【数４】
0006556495.tif 000013
は、数式：
【数５】
0006556495.tif 000014
によって算出され、ここで、ｈ（ｌｊ）は置換演算である、請求項９に記載の相互認証方法。
【請求項１１】
前記ｈ（ｌｊ）は、数式：
ｈ（ｌｊ）＝｛９，４，１０，１１，１３，１，８，５，６，２，０，３，１２，１４，１５，７｝
によって算出される、請求項１０に記載の相互認証方法。
【請求項１２】
前記
【数６】
0006556495.tif 000015
は、予め定義された４Ｘ４行列と４ビット単位の前記ｈ（ｌｊ）との積を通じて算出される、請求項１０に記載の相互認証方法。
【請求項１３】
前記
【数７】
0006556495.tif 000016
は、数式：
【数８】
0006556495.tif 000017
によって算出される、請求項１２に記載の相互認証方法。
【請求項１４】
前記ｈ（ｌｊ）が（ｘ３，ｘ２，ｘ１，ｘ０）であるとき、２ｈ（ｌｊ）及び３ｈ（ｌｊ）は、
それぞれ下記の数式：
【数９】
0006556495.tif 000018
【数１０】
0006556495.tif 000019
によって算出される、請求項１３に記載の相互認証方法。
【請求項１５】
前記ｗｉ＋ｍ（ＫＳ）は、前記第１のセッションキーＫＳの下位３２ビットを所定ビット数だけ循環前置させる関数である、請求項１３に記載の相互認証方法。
【請求項１６】
前記
【数１１】
0006556495.tif 000020
は、前記の循環前置された３２ビットのＫＳと前記８個の４ビットブロックである
【数１２】
0006556495.tif 000021
とのビット単位ＸＯＲ演算を行う関数である、請求項１５に記載の相互認証方法。
【請求項１７】
前記第１の応答キーと前記第２の応答キーとが一致する場合、
前記第２の応答キーを用いて第３の応答キーを生成する第７のステップ；及び
前記第３の応答キーを前記外部装置に伝送する第８のステップ；
をさらに含む、請求項１に記載の相互認証方法。
【請求項１８】
前記第７のステップは、
前記第２の応答キー及び前記変数ｉを媒介変数とする前記第１の関数を用いて変数ｊを生成するステップ；
前記変数ｊ、前記第１のセッションキーＫＳ及び前記乱数Ｓを媒介変数とする前記第２の関数を用いて第２のセッションキーＫＳ２を生成するステップ；及び
前記変数ｊ、前記第２のセッションキーＫＳ２及び前記乱数Ｓを媒介変数とする前記第３の関数を用いて前記第３の応答キーを生成するステップ；
を含む、請求項１７に記載の相互認証方法。
【請求項１９】
前記第１の応答キーと前記第２の応答キーとが一致しない場合、乱数である第３の応答キーを前記外部装置に伝送するステップをさらに含む、請求項１に記載の相互認証方法。
【請求項２０】
車両制御器と連動する外部装置での相互認証方法において、
前記車両制御器に認証要請メッセージを伝送する第１のステップ；
前記車両制御器から乱数Ｓを受信する第２のステップ；
前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する第３のステップ；
前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成する第４のステップ；
前記乱数Ｓ、前記変数ｉ、前記第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第１の応答キーを生成する第５のステップ；及び
前記第１の応答キーを前記車両制御器に伝送する第６のステップ；
を含む、相互認証方法。
【請求項２１】
前記認証要請メッセージに乱数Ｒが含まれて伝送される場合、前記乱数Ｒ及び前記乱数Ｓを前記第１の関数の媒介変数として設定し、前記変数ｉを生成する、請求項２０に記載の相互認証方法。
【請求項２２】
前記変数ｉは、数式：
ｉ＝ｆ１（Ｒ，Ｓ）＝ＬＳ（Ｒ）＋Ｓ  ｍｏｄ  １６
によって生成され、ここで、前記ＬＳ（Ｒ）は、前記乱数Ｒを前記乱数Ｓのビット数だけ循環前置する関数である、請求項２１に記載の相互認証方法。
【請求項２３】
前記乱数Ｓを前記第２の関数の媒介変数としてさらに用いて前記第１のセッションキーＫＳを生成する、請求項２０に記載の相互認証方法。
【請求項２４】
前記第１のセッションキーＫＳは、
前記保安キーＫと前記乱数Ｓとのビット単位ＸＯＲ演算を通じて生成された第１の値と、前記第１の値を前記変数ｉだけ循環前置して生成された第２の値とのビット単位ＸＯＲ演算を通じて生成される、請求項２３に記載の相互認証方法。
【請求項２５】
前記乱数Ｓを前記保安キーＫのビット長と同一ビット長になるまで反復して連接した後、ビット単位ＸＯＲ演算を通じて前記第１の値を生成する、請求項２４に記載の相互認証方法。
【請求項２６】
前記認証要請メッセージに乱数Ｒが含まれる場合、前記乱数Ｒをさらに用いて前記第１の応答キーを生成する、請求項２０に記載の相互認証方法。
【請求項２７】
前記第１の応答キーは、数式：
【数１３】
0006556495.tif 000022
によって算出され、ここで、ｍは、前記車両制御器に要求される保安水準によって予め設定可能な値である、請求項２６に記載の相互認証方法。
【請求項２８】
前記
【数１４】
0006556495.tif 000023
は、数式：
【数１５】
0006556495.tif 000024
によって算出され、ここで、前記ｌｊは、前記乱数Ｒと前記乱数Ｓとのビット単位ＸＯＲ結果を４ビット単位で区分した値である、請求項２７に記載の相互認証方法。
【請求項２９】
前記
【数１６】
0006556495.tif 000025
は、数式：
【数１７】
0006556495.tif 000026
によって算出され、ここで、ｈ（ｌｊ）は置換演算である、請求項２８に記載の相互認証方法。
【請求項３０】
前記ｈ（ｌｊ）は、数式：
ｈ（ｌｊ）＝｛９，４，１０，１１，１３，１，８，５，６，２，０，３，１２，１４，１５，７｝
によって算出される、請求項２９に記載の相互認証方法。
【請求項３１】
前記
【数１８】
0006556495.tif 000027
は、予め定義された４Ｘ４行列と４ビット単位の前記ｈ（ｌｊ）との積を通じて算出される、請求項２９に記載の相互認証方法。
【請求項３２】
前記
【数１９】
0006556495.tif 000028
は、数式：
【数２０】
0006556495.tif 000029
によって算出される、請求項３１に記載の相互認証方法。
【請求項３３】
前記ｈ（ｌｊ）が（ｘ３，ｘ２，ｘ１，ｘ０）であるとき、２ｈ（ｌｊ）及び３ｈ（ｌｊ）は、
それぞれ下記の数式：
【数２１】
0006556495.tif 000030
【数２２】
0006556495.tif 000031
によって算出される、請求項３２に記載の相互認証方法。
【請求項３４】
前記ｗｉ＋ｍ（ＫＳ）は、前記第１のセッションキーＫＳの下位３２ビットを所定ビット数だけ循環前置させる関数である、請求項３２に記載の相互認証方法。
【請求項３５】
前記
【数２３】
0006556495.tif 000032
は、前記の循環前置された３２ビットのＫＳと前記８個の４ビットブロックである
【数２４】
0006556495.tif 000033
とのビット単位ＸＯＲ演算を行う関数である、請求項３４に記載の相互認証方法。
【請求項３６】
前記車両制御器から第３の応答キーを受信する第７のステップ；
前記第１の応答キーを用いて第４の応答キーを生成する第８のステップ；及び
前記第３の応答キーと前記第４の応答キーとが一致するか否か基づいて前記車両制御器を認証する第９のステップ；
をさらに含む、請求項２０に記載の相互認証方法。
【請求項３７】
前記第８のステップは、
前記第１の応答キー及び前記変数ｉを媒介変数とする前記第１の関数を用いて変数ｊを生成するステップ；
前記変数ｊ及び前記第１のセッションキーＫＳを媒介変数とする前記第２の関数を用いて第２のセッションキーＫＳ２を生成するステップ；及び
前記変数ｊ、前記セッションキーＫＳ２前記及び乱数Ｓを媒介変数とする第３の関数を用いて前記第４の応答キーを生成するステップ；
を含む、請求項３６に記載の相互認証方法。
【請求項３８】
請求項１から３７のいずれか一つの方法を実行させるためのプログラムを記録したコンピューター読み取り可能な記録媒体。
【請求項３９】
外部装置と相互認証を行う相互認証装置において、
前記外部装置との通信を行う通信部；
前記外部装置から受信された認証要請メッセージによって乱数Ｓを生成する乱数生成部；
前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する反復回数生成部；
前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成するセッションキー生成部；
前記外部装置から第１の応答キーが受信されると、前記乱数Ｓ、前記変数ｉ及び前記第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第２の応答キーを生成する応答キー生成部；及び
前記第１の応答キーと前記第２の応答キーとが一致するか否かに基づいて前記外部装置を認証する認証部；
を含む、相互認証装置。
【請求項４０】
車両制御器と相互認証を行う相互認証装置において、
前記車両制御器に認証要請メッセージを伝送し、前記車両制御器から乱数Ｓを受信する通信部；
前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する反復回数生成部；
前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成するセッションキー生成部；
前記変数ｉ、前記第１のセッションキーＫＳ及び前記乱数Ｓを媒介変数とする第３の関数を用いて第１の応答キーを生成する応答キー生成部；及び
前記車両制御器に伝送された前記第１の応答キーと前記前記車両制御器から受信された第３の応答キーとが一致するか否かを確認し、前記車両制御器を認証する認証部；
を含む、相互認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両での相互認証方法及び装置に関し、より詳細には、秘密情報に基づいて車両制御器と外部装置との間の相互認証を可能にする秘密情報基盤の相互認証方法及び装置に関する。
【背景技術】
【０００２】
最近、市販されている車両には、運転手の便宜及び安全を向上させるための各種の電子制御装置が搭載されており、これら電子制御装置間の相互通信のための車両内の通信ネットワークが基本的に搭載されている。
【０００３】
車両内の電子制御器の個数が持続的に増加し、多様な外部機器との連動が可能になることによって、車両の保安を維持することは安全運行のために非常に重要なイシューである。
【０００４】
したがって、車両制御器に対する診断及び車両制御器内部のデータアップデートを行うためには、外部診断装置に対する認証手順が要求される。
【０００５】
従来、車両制御器と診断器との間の認証手順は、診断器の認証要請に応じて車両制御器がシード（Ｓｅｅｄ）値を診断器に伝送すると、診断器が受信されたシード値を用いてキー（Ｋｅｙ）値を生成する。このとき、生成されたキー値は電子制御器に伝送され、電子制御器は、診断器から受信されたキー値と、予め定義されたアルゴリズムによって内部に生成されたキー値とが一致するか否かに基づいて診断器の接近を許容する。
【０００６】
しかし、従来のシードキー（Ｓｅｅｄ  Ｋｅｙ）アルゴリズムは、シード値を受け取り、キーを生成するアルゴリズム自体を秘密に維持することによって保安を達成する方式であるので、該当のシードキーアルゴリズムが公開または分析される場合、保安に致命的であるという問題があった。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上述した従来技術の問題を解決するためになされたものであって、本発明の目的は、保安情報に基づいた相互認証方法及び装置を提供することにある。
【０００８】
本発明の他の目的は、シード値に対して独立的な事前に共有された秘密キーに基づいて相互認証を行うことが可能な保安情報に基づいた相互認証方法及び装置を提供することにある。
【０００９】
本発明で達成しようとする技術的課題は、上述した技術的課題に制限されず、言及していない更に他の技術的課題は、下記の記載から、本発明の属する技術分野で通常の知識を有する者に明確に理解され得るだろう。
【課題を解決するための手段】
【００１０】
本発明は、秘密情報基盤の相互認証方法及び装置に関する。
【００１１】
本発明の一実施例に係る外部装置と連動する車両制御器での相互認証方法は、前記外部装置から受信された認証要請メッセージによって乱数Ｓを前記外部装置に伝送する第１のステップと、前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する第２のステップと、前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成する第３のステップと、前記外部装置から第１の応答キーを受信する第４のステップと、前記乱数Ｓ、前記変数ｉ、前記第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第２の応答キーを生成する第５のステップと、前記第１の応答キーと前記第２の応答キーとが一致するか否かに基づいて前記外部装置を認証する第６のステップとを含んで構成することができる。
【００１２】
本発明の他の一実施例に係る車両制御器と連動する外部装置での相互認証方法は、前記車両制御器に認証要請メッセージを伝送する第１のステップと、前記車両制御器から乱数Ｓを受信する第２のステップと、前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する第３のステップと、前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成する第４のステップと、前記乱数Ｓ、前記変数ｉ、前記第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第１の応答キーを生成する第５のステップと、前記第１の応答キーを前記車両制御器に伝送する第６のステップとを含んで構成することができる。
【００１３】
本発明の更に他の一実施例に係る外部装置と相互認証を行う相互認証装置は、前記外部装置との通信を行う通信部と、前記外部装置から受信された認証要請メッセージによって乱数Ｓを生成する乱数生成部と、前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する反復回数生成部と、前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成するセッションキー生成部と、前記外部装置から第１の応答キーが受信されると、前記乱数Ｓ、前記変数ｉ及び前記第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第２の応答キーを生成する応答キー生成部と、前記第１の応答キーと前記第２の応答キーとが一致するか否かに基づいて前記外部装置を認証する認証部とを含むことができる。
【００１４】
本発明の更に他の一実施例に係る車両制御器と相互認証を行う相互認証装置は、前記車両制御器に認証要請メッセージを伝送し、前記車両制御器から乱数Ｓを受信する通信部と、前記乱数Ｓを媒介変数とする第１の関数を用いて変数ｉを生成する反復回数生成部と、前記変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成するセッションキー生成部と、前記変数ｉ、前記第１のセッションキーＫＳ及び前記乱数Ｓを媒介変数とする第３の関数を用いて第１の応答キーを生成する応答キー生成部と、前記車両制御器に伝送された前記第１の応答キーと、前記前記車両制御器から受信された第３の応答キーとが一致するか否かを確認し、前記車両制御器を認証する認証部とを含むことができる。
【００１５】
本発明の更に他の一実施例は、前記相互認証方法を実行させるためのプログラムを記録したコンピューター読み取り可能な記録媒体を提供することができる。
【００１６】
前記本発明の各様態は、本発明の好ましい各実施例の一部に過ぎず、本願発明の技術的特徴が反映された多様な実施例は、当該技術分野で通常の知識を有する者によって後述する本発明の詳細な説明に基づいて導出されて理解され得る。
【発明の効果】
【００１７】
本発明に係る方法及び装置に対する効果について説明すると、次の通りである。
【００１８】
第一に、本発明は、保安情報に基づいた相互認証方法及び装置を提供するという長所を有する。
【００１９】
第二に、本発明は、シード値に対して独立的な事前に共有された秘密キーに基づいて相互認証を行うことが可能な保安情報に基づいた相互認証方法及び装置を提供するという長所を有する。
【００２０】
第三に、本発明は、シード値によって反復回数ｉが動的に変更され、秘密キー値に対する保安水準及び演算の複雑度が動的に変更され得るという長所を有する。
【００２１】
第四に、本発明は、多様な長さの秘密キーを提供することによって、保安水準を制御できるという長所を有する。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例に係る秘密情報に基づいた相互認証システム構成図である。
【図２】本発明の一実施例に係る相互認証方法を説明するためのフローチャートである。
【図３】本発明の一実施例に係るセッションキー生成方法を説明するための図である。
【図４】本発明の他の一実施例に係るセッションキー生成方法を説明するための図である。
【図５】本発明の一実施例に係る応答キー生成手順を説明するための図である。
【図６】本発明の一実施例に係る車両制御器での相互認証方法を説明するためのフローチャートである。
【図７】本発明の一実施例に係る外部装置での相互認証方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明の各実施例が適用される装置及び多様な方法について図面を参照してより詳細に説明する。以下の説明で使用される構成要素に対する接尾辞「モジュール」及び「部」は、明細書作成の容易さのみが考慮されて付与または混用されるものであって、それ自体で互いに区別される意味または役割を有するものではない。
【００２４】
以上で、本発明の実施例を構成する全ての構成要素が一つに結合されたり、一つに結合されて動作すると説明されたとして、本発明が必ずしもこのような実施例に限定されることはない。すなわち、本発明の目的範囲内であれば、その全ての構成要素が一つ以上に選択的に結合されて動作することもできる。また、その全ての構成要素がそれぞれ一つの独立的なハードウェアで具現化され得るが、各構成要素のその一部または全部が選択的に組み合わされ、一つまたは複数のハードウェアで組み合わされた一部または全部の機能を行うプログラムモジュールを有するコンピュータープログラムとして具現されることも可能である。そのコンピュータープログラムを構成する各コード及び各コードセグメントは、本発明の技術分野の当業者によって容易に推測可能であろう。このようなコンピュータープログラムは、コンピューター読み取り可能な保存媒体（Ｃｏｍｐｕｔｅｒ  Ｒｅａｄａｂｌｅ  Ｍｅｄｉａ）に保存され、コンピューターによって読み取られて実行されることによって、本発明の実施例を具現することができる。コンピュータープログラムの保存媒体としては、磁気記録媒体、光記録媒体、キャリアウェーブ媒体などを含ませることができる。
【００２５】
また、以上で記載した「含む」、「構成する」または「有する」などの用語は、特別に反対の記載がない限り、該当の構成要素が内在し得ることを意味するので、他の構成要素を除外するのではなく、他の構成要素をさらに含み得ると解釈しなければならない。技術的または科学的な用語を含む全ての用語は、異なる意味に定義されない限り、本発明の属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。事前に定義された用語のように一般的に使用される各用語は、関連技術の文脈上の意味と一致するものと解釈しなければならず、本発明で明らかに定義しない限り、理想的または過度に形式的な意味に解釈しない。
【００２６】
また、本発明の構成要素を説明するにおいて、第１、第２、Ａ、Ｂ、（ａ）、（ｂ）などの用語を使用することができる。このような用語は、その構成要素を他の構成要素と区別するためのものに過ぎず、その用語によって該当の構成要素の本質や順番または順序などが限定されることはない。いずれかの構成要素が他の構成要素に「連結」、「結合」または「接続」されると記載した場合、その構成要素は、その他の構成要素に直接連結または接続され得るが、各構成要素の間に更に他の構成要素が「連結」、「結合」または「接続」されることも可能であると理解すべきであろう。
【００２７】
図１は、本発明の一実施例に係る秘密情報に基づいた相互認証システム構成図である。
【００２８】
図１を参照すると、相互認証システムは、大きく、外部装置１０及び車両制御器２０を含んで構成することができる。
【００２９】
一例において、外部装置１０は、所定の接続端子または無線連結を通じて車両の状態を診断する診断器（Ｔｅｓｔｅｒ）またはＯＢＤ（Ｏｎ―Ｂｏａｒｄ  Ｄｉａｇｎｏｓｔｉｃｓ）であり得る。
【００３０】
外部装置１０と車両制御器２０は、有線または無線連結を通じて信号を送受信する通信部１１及び２１を含むことができる。
【００３１】
また、外部装置１０と車両制御器２０は、相互認証のための乱数生成部１２、２２、反復回数生成部１３、２３、セッションキー生成部１４、２４、応答キー生成部１５、２５、認証部１６、２６、及び装置内部の全体的な動作を制御する制御部１７、２７を含んで構成することができる。
【００３２】
乱数生成部１２、２２は、所定の長さを有する乱数を生成する機能を行うことができる。一例として、外部装置１０の乱数生成部１２は、所定長さの乱数Ｒを生成し、生成された乱数Ｒが含まれた認証要請メッセージを車両制御器２０に伝送することができる。また、車両制御器２０の乱数生成部２２は、認証要請メッセージが受信されると、所定長さの乱数Ｓを生成することができる。
【００３３】
反復回数生成部１３、２３は、外部装置１０の乱数生成部１２によって生成された乱数Ｒ及び車両制御器２０の乱数生成部２２によって生成された乱数Ｓのうち少なくとも一つを用いて保安水準及び認証アルゴリズムの演算複雑度を決定するパラメーター値である変数ｉ―以下、説明の便宜上、反復回数ｉと混用して使用することにする。―を生成することができる。以下、乱数Ｒ及び乱数Ｓのうち少なくとも一つを媒介変数として変数ｉを生成する関数を、説明の便宜上、第１の関数（ｆ１）と称することにする。
【００３４】
一例として、反復回数ｉは、下記の数式（１）によって算出することができる。
【００３５】
ｉ＝ｆ１（Ｒ，Ｓ）＝ＬＳ（Ｒ）＋Ｓ  ｍｏｄ  １６  数式（１）
【００３６】
ここで、ＬＳ（Ｒ）は、乱数Ｒを乱数Ｓのビット数だけ循環前置（ｃｙｃｌｉｃ  ｓｈｉｆｔ）させる関数であり得る。一例として、乱数Ｒのビット順序が（ｘｎ−１，ｘｎ−２，…，ｘ１，ｘ０）２である場合、関数ＬＳ（Ｒ）は、乱数Ｓのビット数だけ左側に循環前置され、（ｘｎ−ｓ−１，…，ｘ１，ｘ０，ｘｎ−１，ｘｎ−２，…，ｘｎ−ｓ）２値が生成されるように定義することができる。
【００３７】
セッションキー生成部１４、２４は、反復回数ｉ、予め共有された秘密キーＫ及び乱数Ｓを媒介変数とする第２の関数ｆ２を用いて第１のセッションキーＫＳを生成する機能を行う。また、セッションキー生成部１４、２４は、反復変数ｉ、第１のセッションキーＫＳ及び後述する第１の応答キーＡ＿Ｔｅｓｔｅｒまたは第２の応答キーＡ＿ＥＣＵを用いて第２のセッションキーＫＳ２を生成することもできる。
【００３８】
セッションキー生成手順は、後述する図３〜図４を通じて詳細に説明する。
【００３９】
応答キー生成部１５、２５は、反復回数ｉ、セッションキー、乱数Ｒ、及び乱数Ｓのうち少なくとも一つを媒介変数として受け取り、応答キーを生成する機能を行うことができる。以下、説明の便宜上、応答キーの生成のために使用される関数を第３の関数と称することにする。
【００４０】
一例として、車両制御器２０の応答キー生成部２５は、反復回数ｉ、第１のセッションキーＫＳ、乱数Ｒ及び乱数Ｓを媒介変数として受け取り、第２の応答キーＡ＿ＥＣＵを生成することができる。これと同様に、外部装置１０の応答キー生成部１５も、反復回数ｉ、第１のセッションキーＫＳ、乱数Ｒ及び乱数Ｓを媒介変数として受け取り、第１の応答キーＡ＿Ｔｅｓｔｅｒを生成することができる。
【００４１】
また、車両制御器２０の応答キー生成部２５は、外部装置１０から第１の応答キーＡ＿Ｔｅｓｔｅｒが受信されると、第１の応答キーと第２の応答キーとが同一であるか否かによって第３の応答キーＢ＿ＥＣＵを生成することができる。これと同様に、外部装置１０の応答キー生成部１５も第４の応答キーＢ＿Ｔｅｓｔｅｒを生成することができる。
【００４２】
応答キー生成部１５、２５での応答キー生成手順は、後述する図５を通じて詳細に説明する。
【００４３】
認証部１６、２６は、他の装置から受信された応答キーと内部に生成された応答キーとが一致するか否かを確認し、他の装置に対する認証成功の有無を判断する機能を行うことができる。
【００４４】
一例として、外部装置１０の認証部１６は、内部に生成された第４の応答キーＢ＿Ｔｅｓｔｅｒと車両制御器２０から受信された第３の応答キーＢ＿ＥＣＵとが互いに一致する場合、車両制御器２０に対する認証に成功したと判断することができる。
【００４５】
他の一例として、車両制御器２０の認証部２６は、外部装置１０から受信された第１の応答キーＡ＿Ｔｅｓｔｅｒと内部に生成された第２の応答キーＡ＿ＥＣＵとが互いに一致する場合、外部装置１０の認証に成功したと判断することができる。
【００４６】
したがって、本発明に係る外部装置１０及び車両制御器２０は、予め共有された秘密キーを用いて応答キーを生成した後、生成された応答キーを互いに交換することによって相互認証を行うことができる。
【００４７】
図２は、本発明の一実施例に係る相互認証方法を説明するためのフローチャートである。
【００４８】
図２を参照すると、外部装置１０と車両制御器２０には、予め共有された秘密キーＫを維持することができる。一例として、秘密キーＫの長さは、８０ビット及び１２８ビットのうちいずれか一つであり得る。
【００４９】
外部装置１０は、乱数Ｒを生成し、生成された乱数Ｒが含まれた認証要請メッセージを車両制御器２０に伝送することができる（Ｓ２０１〜Ｓ２０３）。
【００５０】
車両制御器２０は、認証要請メッセージが受信されると、乱数Ｓを生成して外部装置１０に伝送する（Ｓ２０５〜Ｓ２０７）。このとき、車両制御器２０は、乱数Ｒ及び乱数Ｓを媒介変数とする第１の関数を用いて反復回数ｉを算出することができる（Ｓ２０９）。
【００５１】
続いて、車両制御器２０は、反復回数ｉ、秘密キーＫ及び乱数Ｓを第２の関数の媒介変数として入力し、第１のセッションキーＫＳを生成することができる（Ｓ２１１）。
【００５２】
外部装置１０は、シード値である乱数Ｓが受信されると、既に生成された乱数Ｒ及び車両制御器２０から受信された乱数Ｓを媒介変数とする第１の関数を用いて反復回数ｉを生成することができる（Ｓ２１５）。
【００５３】
また、外部装置１０は、反復回数ｉ、秘密キーＫ及び乱数Ｓを第２の関数の媒介変数として入力し、第１のセッションキーＫＳを生成することができる（Ｓ２１６）。
【００５４】
外部装置１０は、反復回数ｉ、第１のセッションキーＫＳ、乱数Ｒ及び乱数Ｓを媒介変数とする第３の関数を用いて第１の応答キーＡ＿Ｔｅｓｔｅｒを生成して車両制御器２０に伝送することができる（Ｓ２１９〜Ｓ２２１）。
【００５５】
このとき、外部装置１０は、生成された第１の応答キーＡ＿Ｔｅｓｅｔｅｒを用いて第４の応答キーＢ＿Ｔｅｓｔｅｒを生成することができる。より詳細に、外部装置１０は、第１の応答キーＡ＿Ｔｅｓｔｅｒと反復回数ｉを媒介変数とする第４の関数を用いて反復回数ｊを生成し、生成された反復回数ｊ及び既に生成された第１のセッションキーＫＳを媒介変数とする第５の関数を用いて第２のセッションキーＫＳ２を生成することができる。続いて、外部装置１０は、変換変数ｊ、第２のセッションキーＫＳ２、乱数Ｒ及び乱数Ｓを媒介変数とする第６の関数を用いて第４の応答キーＢ＿Ｔｅｓｔｅｒを生成することができる。
【００５６】
車両制御器２０は、受信された第１の応答キーＡ＿Ｔｅｓｅｔｅｒと内部に生成された第２の応答キーＡ＿ＥＵＣとが一致するか否かを確認することができる（Ｓ２２３）。ここで、確認の結果、これらが一致すると、第１の応答キーＡ＿ＥＣＵと反復回数ｉを媒介変数とする第４の関数を用いて反復回数ｊを生成し、生成された反復回数ｊ及び既に生成された第１のセッションキーＫＳを媒介変数とする第５の関数を用いて第２のセッションキーＫＳ２を生成することができる。続いて、車両制御器２０は、変換変数ｊ、第２セッションキーＫＳ２、乱数Ｒ及び乱数Ｓを媒介変数とする第６の関数を用いて第３の応答キーＢ＿ＥＣＵを生成することができる。前記２２３ステップの確認の結果、これらが一致しない場合、車両制御器２０は、所定の乱数生成器を用いて乱数を生成することができる。このとき、生成された乱数は、第３の応答キーＢ＿ＥＣＵになり得る。
【００５７】
車両制御器２０は、第３の応答キーＢ＿ＥＣＵを外部装置１０に伝送することができる（Ｓ２２５）。
【００５８】
外部装置１０は、受信された第３の応答キーＢ＿ＥＣＵと既に生成された第４の応答キーＢ＿Ｔｅｓｔｅｒ値とが一致するか否かを確認することができる（Ｓ２２７）。ここで、確認の結果、これらが一致すると、外部装置１０は、車両制御器２０の認証に成功したと判断することができる。その一方、前記２２７ステップの確認の結果、これらが一致しないと、外部装置１０は、車両制御器２０の認証に失敗したと判断することができる。
【００５９】
図３は、本発明の一実施例に係るセッションキー生成方法を説明するための図である。
【００６０】
より詳細に、図３は、外部装置１０で予め割り当てられた秘密キーＫ（３０１）の長さが８０ビットである場合、第１のセッションキーＫＳを生成する方法に関する。
【００６１】
図３を参照すると、外部装置１０は、車両制御器２０から受信されたシード値である乱数Ｓ（３０２）を秘密キーＫ（３０１）の長さだけ反復して連接した後、ＸＯＲ演算（３０３）を通じて８０ビットの長さを有するＫ'（３０４）を生成することができる。
【００６２】
一例として、図面番号３１０に示したように、２個の乱数Ｓ（３０２）と乱数Ｓ（３０２）の下位１６ビットが連接され、８０ビットの長さを有するビットシーケンスが生成され得る。このとき、外部装置１０は、生成されたビットシーケンスと秘密キーＫ（３０１）とのビット単位ＸＯＲ演算を通じてＫ'（３０４）を生成することができる。
【００６３】
続いて、図面番号３２０に示したように、外部装置１０は、生成されたＫ'（３０４）を反復回数ｉだけ左側または右側に循環前置させた後、循環前置されたＫ'（Ｌｉ（Ｋ'））とＫ'（３０４）とのビット単位ＸＯＲ演算を通じて第１のセッションキーＫＳを生成することができる。
【００６４】
図４は、本発明の他の一実施例に係るセッションキー生成方法を説明するための図である。
【００６５】
より詳細に、図４は、外部装置１０で予め割り当てられた秘密キーＫ（４０１）の長さが１２８ビットである場合、第１のセッションキーＫＳを生成する方法に関する。
【００６６】
図４を参照すると、外部装置１０は、車両制御器２０から受信されたシード値である乱数Ｓ（４０２）を秘密キーＫ（４０１）の長さだけ反復して連接した後、ＸＯＲ演算（４０３）を通じて１２８ビットの長さを有するＫ'（４０４）を生成することができる。
【００６７】
一例として、図面番号４１０に示したように、乱数Ｓ（４０２）が３２ビットの長さを有する場合、４個の乱数Ｓ（４０２）を連接し、１２８ビットの長さを有するビットシーケンスが生成され得る。このとき、外部装置１０は、生成されたビットシーケンスと秘密キーＫ（４０１）とのビット単位ＸＯＲ演算を通じてＫ'（４０４）を生成することができる。
【００６８】
続いて、図面番号４２０に示したように、外部装置１０は、生成されたＫ'（４０４）を反復回数ｉだけ左側または右側に循環前置させた後、循環前置されたＫ'（Ｌｉ（Ｋ'））とＫ'（４０４）とのビット単位ＸＯＲ演算を通じて第１のセッションキーＫＳを生成することができる。
【００６９】
以上では、外部装置１０での第１のセッションキーＫＳを生成する手順を説明しているが、本発明に係る第２のセッションキーＫＳ２も、前記の図３〜図４に開示した方法で生成され得ることに注意すべきである。
【００７０】
図５は、本発明の一実施例に係る応答キー生成手順を説明するための図である。
【００７１】
より詳細に、図５は、外部装置１０での第１の応答キーＡ＿Ｔｅｓｔｅｒ生成手順を説明するための図である。
【００７２】
図５を参照すると、外部装置１０は、下記の数式５―１のように、内部に生成された乱数Ｒと車両制御器２０から受信された乱数Ｓとのビット単位ＸＯＲ演算を通じて４ビット単位のｌｉを生成することができる。ここで、ｉは、０〜７の値を有することができる。
【００７３】
＜数式５―１＞
【数１】
0006556495.tif 000002
【００７４】
続いて、外部装置１０は、下記の数式５―２のように、集合ｈ（ｌｉ）を参照してｌｉに対する置換演算を行うことができる。
【００７５】
＜数式５―２＞
【数２】
0006556495.tif 000003
【００７６】
ここで、ｈ（ｌｉ）＝｛９，４，１０，１１，１３，１，８，５，６，２，０，３，１２，１４，１５，１７｝
【００７７】
その後、外部装置１０は、前記置換演算結果であるｈ（ｌ７）||ｈ（ｌ６）||ｈ（ｌ５）||ｈ（ｌ４）||ｈ（ｌ３）||ｈ（ｌ２）||ｈ（ｌ１）||ｈ（ｌ０）を、下記の数式５―３のように、所定の４Ｘ４行列と掛けて
【数３】
0006556495.tif 000004
を生成することができる。
【００７８】
＜数式５―３＞
【数４】
0006556495.tif 000005
【００７９】
一例として、前記数式５―３を参照すると、
ｌ’７は、
【数５】
0006556495.tif 000006
と算出することができる。
【００８０】
ここで、２進数として表記したｘが（ｘ３，ｘ２，ｘ１，ｘ０）である場合、２ｘと３ｘは、それぞれ
【数６】
0006556495.tif 000007
及び
【数７】
0006556495.tif 000008
と定義することができる。
【００８１】
最後に、外部装置１０は、下記の数式５―４のように、第１の応答キーＡ＿Ｔｅｓｔｅｒを生成することができる。
【００８２】
＜数式５―４＞
【数８】
0006556495.tif 000009
によって算出することができ、ｗｊ（ＫＳ）＝Ｌ３７ｊ  ｍｏｄ（ｓｅｃｒｅｔｅ  ｋｅｙ  ｓｉｚｅ）（ＫＳ）ｍｏｄ
２３２と定義することができる。ここで、ＫＳは、前記の図３または図４で算出された第１のセッションキーＫＳの値であり、ｊは、反復回数ｉに４―ここで、４は、ｇ３関数の最小反復実行回数である。―を足した値であり得る。また、ｗｊ（ＫＳ）は、第１のセッションキーＫＳの下位３２ビットを３７ビットだけ左側に循環前置させる関数であり得る。
【００８３】
以上の実施例では、応答キーを生成するためのｇ３関数の最小反復実行回数が４であると定義されているが、これは一つの実施例に過ぎず、本発明の他の一実施例は、ＥＣＵの種類及び該当のＥＣＵに対して要求される保安等級によって最小反復実行回数が差等的に指定され得ることに注意すべきである。一例として、要求される保安等級が高いＥＣＵの最小反復実行回数は、相対的に保安等級が低いＥＣＵより高く設定され得る。
【００８４】
以上の図３〜図５では、外部装置１０でのセッションキー生成手順及び応答キー生成手順について説明したが、車両制御器２０でのセッションキー生成手順及び応答キー生成手順も、それと同一または類似する方法で生成することができる。
【００８５】
図６は、本発明の一実施例に係る車両制御器での相互認証方法を説明するためのフローチャートである。
【００８６】
図６を参照すると、車両制御器２０は、外部装置１０から認証要請メッセージが受信されると、乱数Ｓを生成して外部装置１０に伝送することができる（Ｓ６０１）。
【００８７】
ここで、認証要請メッセージには、外部装置１０によって生成された乱数Ｒを含ませることができる。
【００８８】
車両制御器２０は、乱数Ｓを媒介変数とする第１の関数を用いて反復回数である変数ｉを生成し、生成された変数ｉ及び予め保存された保安キーＫを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成することができる（Ｓ６０３〜Ｓ６０５）。
【００８９】
車両制御器２０は、外部装置１０から第１の応答キーＡ＿Ｔｅｓｔｅｒが受信されると、乱数Ｓ、変数ｉ及び第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第２の応答キーＡ＿ＥＣＵを生成することができる（Ｓ６０７〜Ｓ６０９）。認証要請メッセージに乱数Ｒが含まれる場合、車両制御器２０は、乱数Ｓ、変数ｉ及び第１のセッションキーＫＳのみならず、乱数Ｒをさらに用いて第１の応答キーＡ＿Ｔｅｓｔｅｒを生成することも可能であることに注意すべきである。
【００９０】
続いて、車両制御器２０は、第１の応答キーＡ＿Ｔｅｓｔｅｒと第２の応答キーＡ＿ＥＣＵとが一致するか否かを確認することができる（Ｓ６１１）。
【００９１】
前記確認の結果、これらが一致すると、車両制御器２０は、第２の応答キーＡ＿ＥＣＵ及び変数ｉを媒介変数とする第４の関数を用いて変数ｊを生成し、前記６０５ステップで生成された第１のセッションキーＫＳ及び変数ｊを媒介変数とする第５の関数を用いて第２のセッションキーＫＳ２を生成することができる（Ｓ６１５）。
【００９２】
ここで、第４の関数は、第２の応答キーＡ＿ＥＣＵを変数ｉだけ左側に循環前置させる関数であって、第１の関数に対応し得る。
【００９３】
また、第５の関数は、変数ｊ、セッションキーＫＳ及び乱数Ｓを媒介変数として前記の図３または図４に示したセッションキー生成手順を行う関数であって、前記６０５ステップの第２の関数に対応し得る。
【００９４】
車両制御器２０は、乱数Ｓ、変数ｊ、第２のセッションキーＫＳ２を媒介変数とする第６の関数を用いて第３の応答キーＢ＿ＥＣＵを生成した後、生成された第３の応答キーＢ＿ＥＣＵを外部装置１０に伝送することができる（Ｓ６１７〜Ｓ６１９）。認証要請メッセージに乱数Ｒが含まれる場合、車両制御器２０は、乱数Ｒをさらに用いて第３の応答キーＢ＿ＥＣＵを生成することも可能であることに注意すべきである。
【００９５】
ここで、第６の関数は、前記図５に示した応答キー生成手順を行う関数であって、前記６０９ステップの第３の関数に対応し得る。
【００９６】
前記の６１１ステップの確認の結果、これらが一致しないと、車両制御器２０は、所定の乱数生成器を通じて乱数を生成し、生成された乱数を第３の応答キーＢ＿ＥＣＵとして設定して外部装置１０に伝送することができる（Ｓ６１８〜Ｓ６１９）。この場合、外部装置１０では、内部に生成された第４の応答キーＢ＿Ｔｅｓｔｅｒと車両制御器２０から受信された第３の応答キーＢ＿ＥＣＵとが互いに異なることを確認し、車両制御器２０の認証に失敗したと判断することができる。
【００９７】
図７は、本発明の一実施例に係る外部装置での相互認証方法を説明するためのフローチャートである。
【００９８】
図７を参照すると、外部装置１０は、認証要請メッセージを車両制御器２０に伝送することができる（Ｓ７０１）。ここで、認証要請メッセージには、外部装置１０によって生成された乱数Ｒが含まれて伝送され得る。
【００９９】
外部装置１０は、車両制御器２０から乱数Ｓが受信されると、乱数Ｓを媒介変数とする第１の関数を用いて反復回数である変数ｉを生成することができる（Ｓ７０３〜Ｓ７０５）。
【０１００】
外部装置１０は、生成された変数ｉ、予め保存された保安キーＫ及び乱数Ｓを媒介変数とする第２の関数を用いて第１のセッションキーＫＳを生成することができる（Ｓ７０７）。
【０１０１】
続いて、外部装置１０は、乱数Ｓ、変数ｉ及び第１のセッションキーＫＳを媒介変数とする第３の関数を用いて第３の応答キーＡ＿Ｔｅｓｔｅｒを生成した後、生成された第３の応答キーＡ＿Ｔｅｓｔｅｒを車両制御器２００に伝送することができる（Ｓ７０９）。認証要請メッセージに乱数Ｒが含まれる場合、外部装置１０は、乱数Ｒをさらに用いて第１の応答キーＡ＿Ｔｅｓｔｅｒを生成することも可能であることに注意すべきである。
【０１０２】
外部装置１０は、第１の応答キーＡ＿Ｔｅｓｔｅｒ及び変数ｉを媒介変数とする第４の関数を用いて変数ｊを生成し、前記変数ｊ及び第１のセッションキーＫＳを媒介変数とする第５の関数を用いて第２のセッションキーＫＳ２を生成することができる（Ｓ７１１）。
【０１０３】
ここで、第４の関数は、第１の応答キーＡ＿Ｔｅｓｔｅｒを変数ｉだけ左側に循環前置させる関数であり得る。また、第５の関数は、前記７０７ステップの第２の関数と同様に、変数ｊ、第１のセッションキーＫＳ及び乱数Ｓを媒介変数として前記の図３または図４に示したセッションキー生成手順を行う関数であり得る。
【０１０４】
外部装置１０は、乱数Ｓ、変数ｊ、第２のセッションキーＫＳ２を媒介変数とする第６の関数を用いて第４の応答キーＢ＿Ｔｅｓｔｅｒを生成することができる（Ｓ７１３）。ここで、第６の関数は、前記図５に示した応答キー生成手順を行う関数であって、前記７０９ステップの第３の関数に対応し得る。
【０１０５】
外部装置１０は、車両制御器２０から第３の応答キーＢ＿ＥＣＵが受信されると、既に生成された第４の応答キーＢ＿Ｔｅｓｔｅｒと第３の応答キーＢ＿ＥＣＵとが一致するか否かを確認することができる（Ｓ７１４〜Ｓ７１５）。
【０１０６】
確認の結果、第４の応答キーＢ＿Ｔｅｓｔｅｒと第３の応答キーＢ＿ＥＣＵとが一致すると、外部装置１０は、車両制御器２０の認証に成功したと判断することができる（Ｓ７１７）。その一方、確認の結果、第４の応答キーＢ＿Ｔｅｓｔｅｒと第３の応答キーＢ＿ＥＣＵとが一致しないと、外部装置１０は、車両制御器２０の認証に失敗したと判断することができる（Ｓ７１９）。
【０１０７】
本発明が本発明の精神及び必須的特徴から逸脱しない範囲で他の特定の形態に具体化され得ることは、当業者にとって自明である。
【０１０８】
したがって、前記の詳細な説明は、全ての面で制限的に解釈してはならず、例示的なものとして考慮しなければならない。本発明の範囲は、添付の請求項の合理的解釈によって決定しなければならず、本発明の均等の範囲内での全ての変更は本発明の範囲に含まれる。
【符号の説明】
【０１０９】
１０    外部装置
２０    車両制御器
１２、２２    乱数生成部
１３、２３    反復回数生成部
１４、２４    セッションキー生成部
１５、２５    応答キー生成部
１６、２６    認証部
【図１】
0006556495.tif 000034
【図２】
0006556495.tif 000035
【図３】
0006556495.tif 000036
【図４】
0006556495.tif 000037
【図５】
0006556495.tif 000038
【図６】
0006556495.tif 000039
【図７】
0006556495.tif 000040