(57)【要約】【課題】暗号を利用する第１装置に対して、その暗号のための暗号鍵を管理する第２装置から暗号鍵を供給するときに、暗号鍵の不正な取得を防ぐことができる。【解決手段】第１装置はＰＵＦによりデバイス固有データを生成し、第２装置は生成されたデバイス固有データに基づいて、１対のヘルパーデータとデバイス固有ＩＤを生成する。デバイス固有データには、その生成環境によって生じるゆらぎがあり、ヘルパーデータは、そのゆらぎをデバイス固有ＩＤに対する誤りとし、その誤りを訂正するための訂正データである。第２装置は、このデバイス固有ＩＤと暗号鍵からハッシュ関数を生成する。第２装置は、まず、ヘルパーデータとハッシュ関数のうちの一方を第１装置に書込み、その書込みによって第１装置を認証した上で、他方を第１装置に書き込む。第１装置では暗号鍵を復号して暗号が利用可能となる。【選択図】図１
2015065495.tif 000002
【特許請求の範囲】
【請求項１】
暗号を利用する第１装置に対して、前記暗号のための暗号鍵を管理する第２装置から前記暗号鍵を供給する、暗号鍵供給方法であって、
前記第１装置は、製造ばらつきによって固有に定まるデバイス固有データを生成可能であり、
前記第２装置は、デバイス固有データに基づいて、１対のヘルパーデータとデバイス固有ＩＤを生成可能であり、前記デバイス固有ＩＤは、前記デバイス固有データにその生成環境によって生じるゆらぎが、対応するヘルパーデータを用いて吸収されて、前記第１装置の個体固有に定まるコードであり、
前記第２装置は、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数を生成可能であり、
前記第１装置は、前記ハッシュ関数と前記デバイス固有ＩＤに基づいて前記暗号鍵を復号可能であり、
前記暗号鍵供給方法は、
前記第１装置が、デバイス固有データを生成して前記第２装置に供給する、第１ステップと、
前記第２装置が、供給された前記デバイス固有データに基づいて、前記第１装置に固有に定まる１対のヘルパーデータとデバイス固有ＩＤを生成する、第２ステップと、
前記第２装置が、生成されたデバイス固有ＩＤと前記暗号鍵からハッシュ関数を生成する、第３ステップと、
前記第２装置から前記第１装置へ、前記ヘルパーデータまたは前記ハッシュ関数のうちの一方を送信する、第４ステップと、
前記第１装置が、前記第４ステップで受信した前記ヘルパーデータまたは前記ハッシュ関数に基づいて、前記第２装置へ応答データを送信する、第５ステップと、
前記第２装置が、前記第５ステップで受信した応答データの正当性を確認することによって前記第１装置の認証を行う、第６ステップと、
前記第２装置が、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記ヘルパーデータまたは前記ハッシュ関数のうちの他方を送信する、第７ステップと、
前記第１装置が、自らが生成したデバイス固有データと、前記第４ステップまたは前記第６ステップで受信した前記ヘルパーデータと前記ハッシュ関数とに基づいて、前記暗号鍵を復号する、第８ステップと、を含む、暗号鍵供給方法。
【請求項２】
前記第４ステップにおいて、前記第２装置は、前記第１装置に前記ヘルパーデータを送信し、
前記第５ステップにおいて、前記第１装置は、受信した前記ヘルパーデータからデバイス固有ＩＤを再生し、再生した前記デバイス固有ＩＤに基づく応答データを作成して、前記第２装置に前記応答データを送信し、
前記第６ステップにおいて、前記第２装置は、前記応答データと前記第２ステップで生成したデバイス固有ＩＤに基づく期待値データとを比較することによって、前記応答データの正当性を確認し、
前記第７ステップにおいて、前記第２装置は、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記ハッシュ関数を送信する、
請求項１に記載の暗号鍵供給方法。
【請求項３】
前記第２ステップにおいて、前記第２装置は、供給された前記デバイス固有データに基づいて、前記第１装置に固有に定まる、第１デバイス固有ＩＤと前記第１デバイス固有ＩＤを生成するための第１ヘルパーデータと、前記第１デバイス固有ＩＤとは異なる第２デバイス固有ＩＤと前記第２デバイス固有ＩＤを生成するための第２ヘルパーデータとを生成し、
前記第３ステップにおいて、前記第２装置は、前記第２デバイス固有ＩＤと前記暗号鍵からハッシュ関数を生成し、
前記第４ステップにおいて、前記第２装置は、前記第１装置に前記第１ヘルパーデータを送信し、
前記第５ステップにおいて、前記第１装置は、受信した前記第１ヘルパーデータから第１デバイス固有ＩＤを再生し、再生した前記第１デバイス固有ＩＤに基づく応答データを作成して、前記第２装置に前記応答データを送信し、
前記第６ステップにおいて、前記第２装置は、前記応答データと前記第２ステップで生成した第１デバイス固有ＩＤに基づく期待値データとを比較することによって、前記応答データの正当性を確認し、
前記第７ステップにおいて、前記第２装置は、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記第２ヘルパーデータをさらに送信し、
前記第８ステップにおいて、前記第１装置は、自らが生成したデバイス固有データと前記第７ステップで受信した前記第２ヘルパーデータに基づいて第２デバイス固有ＩＤを生成し、再生した前記第２デバイス固有ＩＤと、前記第７ステップで受信した前記ハッシュ関数とに基づいて、前記暗号鍵を復号する、
請求項２に記載の暗号鍵供給方法。
【請求項４】
前記第５ステップにおいて、前記第１装置は、前記ハッシュ関数とは異なる他のハッシュ関数を用いて、再生した前記第１デバイス固有ＩＤのダイジェストを作成して前記応答データとし、
前記第６ステップにおいて、前記第２装置は、前記他のハッシュ関数と同じハッシュ関数を用いて、前記第２ステップで生成した第１デバイス固有ＩＤのダイジェストを作成して前記期待値データとし、前記応答データと前記期待値データとを比較することによって、前記応答データの正当性を確認する、
請求項３に記載の暗号鍵供給方法。
【請求項５】
前記第７ステップにおいて、前記第２装置は、前記ハッシュ関数と前記第２ヘルパーデータとを組合せてスクランブル処理を施して、前記第１装置に送出し、
前記第８ステップにおいて、前記第１装置は、前記スクランブル処理の逆の処理により、前記ハッシュ関数と前記第２ヘルパーデータとを復号する、
請求項３に記載の暗号鍵供給方法。
【請求項６】
前記第４ステップにおいて、前記第２装置は、前記第１装置に前記ハッシュ関数を送信し、
前記第５ステップにおいて、前記第１装置は、受信した前記ハッシュ関数に基づく応答データを作成して、前記第２装置に前記応答データを送信し、
前記第６ステップにおいて、前記第２装置は、前記応答データと前記第３ステップで生成したハッシュ関数に基づく期待値データとを比較することによって、前記応答データの正当性を確認し、
前記第７ステップにおいて、前記第２装置は、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記ヘルパーデータを送信する、
請求項１に記載の暗号鍵供給方法。
【請求項７】
製造ばらつきによって固有に定まるデバイス固有データを生成可能な固有データ生成部と、前記デバイス固有データに基づいて外部装置が生成し、前記外部装置から与えられる暗号鍵情報から暗号鍵を復号する暗号鍵復号部とを備える、半導体集積回路であって、
前記半導体集積回路は、前記固有データ生成部によってデバイス固有データを生成して、前記外部装置に供給可能に構成され、
前記外部装置は、前記半導体集積回路から前記デバイス固有データを受信可能に構成され、受信したデバイス固有データに基づいて、ヘルパーデータとデバイス固有ＩＤを生成可能であり、前記デバイス固有ＩＤは、前記デバイス固有データにその生成環境によって生じるゆらぎが、対応するヘルパーデータを用いて吸収されて、前記半導体集積回路の個体固有に定まるコードであり、前記外部装置は、前記ヘルパーデータを、前記半導体集積回路に送信可能に構成され、
前記半導体集積回路は、前記ヘルパーデータを受信可能に構成され、受信したヘルパーデータと、前記デバイス固有データに基づいて、対応するデバイス固有ＩＤを生成し、生成したデバイス固有ＩＤに基づく応答データを生成して、前記外部装置に送信可能に構成され、
前記外部装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した前記デバイス固有ＩＤに基づいて生成する期待値データとを比較可能に構成され、
前記外部装置は、前記比較結果が一致の場合に、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数を生成し、前記ハッシュ関数を、前記半導体集積回路に送信可能に構成され、
前記半導体集積回路は、前記ハッシュ関数を受信可能に構成され、自身で生成した前記デバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵を復号可能に構成される、
半導体集積回路。
【請求項８】
前記外部装置は、受信したデバイス固有データに基づいて、第１と第２ヘルパーデータと第１と第２デバイス固有ＩＤを生成可能であり、前記外部装置は、前記第１ヘルパーデータを、前記半導体集積回路に送信可能に構成され、
前記半導体集積回路は、前記第１ヘルパーデータを受信可能に構成され、受信した第１ヘルパーデータと前記デバイス固有データに基づいて対応する第１デバイス固有ＩＤを生成し、生成した第１デバイス固有ＩＤに基づく応答データを生成して、前記外部装置に送信可能に構成され、
前記外部装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した前記第１デバイス固有ＩＤに基づいて生成する期待値データとを比較可能に構成され、
前記外部装置は、前記比較結果が一致の場合に、前記第２デバイス固有ＩＤと前記暗号鍵からハッシュ関数を生成し、前記２ヘルパーデータと前記ハッシュ関数とを、前記半導体集積回路に送信可能に構成され、
前記半導体集積回路は、前記第２ヘルパーデータと前記ハッシュ関数とを受信可能に構成され、受信した第２ヘルパーデータと前記デバイス固有データに基づいて第２デバイス固有ＩＤを生成し、生成した前記第２デバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵を復号可能に構成される、
請求項７に記載の半導体集積回路。
【請求項９】
前記半導体集積回路は、前記ハッシュ関数とは異なる他のハッシュ関数を用いて、再生した前記第１デバイス固有ＩＤのダイジェストを作成して前記応答データとし、
前記外部装置は、自身が生成した前記第１デバイス固有ＩＤのダイジェストを、前記他のハッシュ関数と同じハッシュ関数を用いて作成して前記期待値データとし、前記応答データと前記期待値データとを比較する、
請求項８に記載の半導体集積回路。
【請求項１０】
前記外部装置は、前記ハッシュ関数と前記第２ヘルパーデータとを組合せてスクランブル処理を施して暗号鍵再生データを生成し、前記第１装置に送信可能に構成され、
前記半導体集積回路は、前記暗号鍵再生データを受信可能に構成され、受信した暗号鍵再生データに対して、前記スクランブル処理の逆の処理を施すことにより、前記ハッシュ関数と前記第２ヘルパーデータとを復号可能に構成される、
請求項８に記載の半導体集積回路。
【請求項１１】
前記半導体集積回路は、前記外部装置と通信可能な読み出し／書き込み機に接続可能に構成され、前記読み出し／書き込み機を介して、前記外部装置とデータの送受信を行う、
請求項７に記載の半導体集積回路。
【請求項１２】
前記半導体集積回路は、前記外部装置と通信可能なインターフェースを備える端末装置に実装され、前記端末装置を介して、前記外部装置とデータの送受信を行う、
請求項７に記載の半導体集積回路。
【請求項１３】
前記半導体集積回路は、復号した暗号鍵を用いた暗号化回路と復号回路と、暗号通信インターフェースをさらに備える、
請求項７に記載の半導体集積回路。
【請求項１４】
前記半導体集積回路は、復号した暗号鍵を用いた暗号復号回路をさらに備え、前記暗号鍵と同じ暗号鍵を使って暗号化されたデータを格納可能な不揮発性メモリにアクセス可能に構成され、前記不揮発性メモリに格納されたデータを読み出して前記暗号復号回路に供給可能に構成される、
請求項７に記載の半導体集積回路。
【請求項１５】
製造ばらつきによって固有に定まるデバイス固有データを生成可能な固有データ生成部と、暗号鍵情報から暗号鍵を復号する暗号鍵復号部と、を備える端末装置に接続可能に構成され、前記デバイス固有データに基づいて前記暗号鍵情報を生成して前記端末装置に供給可能に構成される、暗号鍵管理装置であって、
前記端末装置は、前記固有データ生成部によってデバイス固有データを生成して、前記暗号鍵管理装置に供給可能に構成され、
前記暗号鍵管理装置は、前記端末装置から前記デバイス固有データを受信可能に構成され、受信したデバイス固有データに基づいて、ヘルパーデータとデバイス固有ＩＤを生成可能であり、前記デバイス固有ＩＤは、前記デバイス固有データにその生成環境によって生じるゆらぎが、対応するヘルパーデータを用いて吸収されて、前記端末装置の個体固有に定まるコードであり、前記暗号鍵管理装置は、前記ヘルパーデータを、前記端末装置に送信可能に構成され、
前記端末装置は、前記ヘルパーデータを受信可能に構成され、受信したヘルパーデータと、前記デバイス固有データに基づいて、対応するデバイス固有ＩＤを生成し、生成したデバイス固有ＩＤに基づく応答データを生成して、前記暗号鍵管理装置に送信可能に構成され、
前記暗号鍵管理装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した前記デバイス固有ＩＤに基づいて生成する期待値データとを比較可能に構成され、
前記暗号鍵管理装置は、前記比較結果が一致の場合に、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数を生成し、前記ハッシュ関数を、前記端末装置に送信可能に構成され、
前記端末装置は、前記ハッシュ関数を受信可能に構成され、自身で生成した前記デバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵を復号可能に構成される、
暗号鍵管理装置。
【請求項１６】
前記暗号鍵管理装置は、受信したデバイス固有データに基づいて、第１と第２ヘルパーデータと第１と第２デバイス固有ＩＤを生成可能であり、前記暗号鍵管理装置は、前記第１ヘルパーデータを、前記端末装置に送信可能に構成され、
前記端末装置は、前記第１ヘルパーデータを受信可能に構成され、受信した第１ヘルパーデータと前記デバイス固有データに基づいて対応する第１デバイス固有ＩＤを生成し、生成した第１デバイス固有ＩＤに基づく応答データを生成して前記暗号鍵管理装置に送信可能に構成され、
前記暗号鍵管理装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した前記第１デバイス固有ＩＤに基づいて生成する期待値データとを比較可能に構成され、
前記暗号鍵管理装置は、前記比較結果が一致の場合に、前記第２デバイス固有ＩＤと前記暗号鍵からハッシュ関数を生成し、前記第２ヘルパーデータと前記ハッシュ関数とを、前記端末装置に送信可能に構成され、
前記端末装置は、前記第２ヘルパーデータと前記ハッシュ関数とを受信可能に構成され、受信した第２ヘルパーデータと前記デバイス固有データに基づいて第２デバイス固有ＩＤを生成し、生成した前記第２デバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵を復号可能に構成される、
請求項１５に記載の暗号鍵管理装置。
【請求項１７】
前記端末装置は、前記ハッシュ関数とは異なる他のハッシュ関数を用いて、再生した前記第１デバイス固有ＩＤのダイジェストを作成して前記応答データとし、
前記暗号鍵管理装置は、自身が生成した前記第１デバイス固有ＩＤのダイジェストを、前記他のハッシュ関数と同じハッシュ関数を用いて作成して前記期待値データとし、前記応答データと前記期待値データとを比較する、
請求項１６に記載の暗号鍵管理装置。
【請求項１８】
前記暗号鍵管理装置は、前記ハッシュ関数と前記第２ヘルパーデータとを組合せてスクランブル処理を施して暗号鍵再生データを生成し、前記第１装置に送信可能に構成され、
前記端末装置は、前記暗号鍵再生データを受信可能に構成され、受信した暗号鍵再生データに対して、前記スクランブル処理の逆の処理を施すことにより、前記ハッシュ関数と前記第２ヘルパーデータとを復号可能に構成される、
請求項１６に記載の暗号鍵管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号鍵供給方法、半導体集積回路および暗号鍵管理装置に関し、特に、物理的に複製不能なデバイス固有データを用いて生成された暗号鍵の不正な取得に対して耐性を有する、暗号鍵供給方法、半導体集積回路および暗号鍵管理装置に好適に利用できるものである。
【背景技術】
【０００２】
近年、自動車に搭載される電装ユニット（Electronic Control Unit：ＥＣＵ）への不正なアクセス、不正な模造品など、様々な攻撃の例が報告されている。車載マイコンにおける従来の方法では、暗号化・復号のための鍵そのものが、盗聴対策がなされないまま書きこまれており、暗号鍵を盗む事が容易であった。これらの不正行為は安全性の観点から大いに問題である事は自明である。これらの不正行為に対し、セキュリティの高い車載マイコンへの要求が高まってきている。一方で、車載マイコンにおける故障・不良は人命に関わるため、故障・不良解析は必須となっている。上記の不正行為を防ぐためにマイコン全面に耐タンパ技術を用いたマイコンを使用すると、高いセキュリティを有するため、不正行為を防ぐことができる反面、自動車メーカーや、ＥＣＵメーカー、チップメーカーが故障・不良解析を行うことが困難になるという、不都合を生じる。
【０００３】
そのため、物理的に複製不可能な関数（Physically Unclonable Function：ＰＵＦ）を用いて生成した、デバイス固有の識別コード（デバイス固有ＩＤ）を利用するセキュリティ技術が検討されている。このＰＵＦを用いた技術は、例えばROM（Read Only Memory）領域にデバイス固有ＩＤ（IDentification）を用いて暗号化したハッシュ関数を書き込んでおき、そのデバイス固有ＩＤで復号したハッシュ関数を用いてデータを復号するため、セキュリティが確保される。
【０００４】
物理的に複製不可能な関数（ＰＵＦ）は、例えば、ＳＲＡＭ（Static Random Access Memory）の電源投入時の初期値から導出される。ＳＲＡＭの初期値は、製造ばらつきによってばらつき、十分に多いビット数を取ることにより、デバイスごとに固有の値とすることができる。一方、同じデバイスから生成されるデバイス固有ＩＤは、何度生成しても同じ値になるという、再現性についての要求がある。本来同じデバイスでありながら、異なるデバイス固有ＩＤが生成されることにより、模倣品と誤認される恐れがあるからである。ところが、ＳＲＡＭの初期値を始め、多くのＰＵＦは、生成される環境、即ち、そのデバイスが置かれている雰囲気の温度、電源電圧などの違いによって、ゆらぎを生じる場合がある。
【０００５】
特許文献１には、デバイスに固有な値であってランダムなビットエラーを含む初期ユニークコードを生成する半導体装置が開示されている。この半導体装置は、初期ユニークコードに含まれるエラーを訂正して、確定デバイス固有ＩＤ（デバイス固有ＩＤ）を生成し、それを秘匿情報の復号に利用している。このときのエラー訂正のためには、確定デバイス固有ＩＤに対応する訂正データが参照される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−００３４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００８】
ＰＵＦを利用してデバイス固有ＩＤを生成することができる半導体装置を組み込んだ装置に対して、外部に接続されるサーバーなどの外部装置（暗号鍵管理装置）から、デバイス固有ＩＤに対応する暗号鍵を書き込んで、その暗号鍵を利用した暗号システムを構築することにより、その装置への不正なアクセス、不正な模造など、様々な攻撃からその装置を守ることができる。例えば、自動車に搭載されるＥＣＵ間の暗号通信に適用する場合、外部装置（例えば、サーバー）において、秘匿されるべき鍵情報を、ＰＵＦを利用して生成されたデバイス固有ＩＤを使って暗号化してハッシュ関数を生成し、そのハッシュ関数をＥＣＵ内部、特にＥＣＵに実装されるＭＣＵ（Micro Controller Unit）に保管する事になる。このハッシュ関数はＭＣＵの出荷時ではなく、ＥＣＵまたは自動車の組み立てを行った後に書き込まれる場合や、整備工場などで修理を行った際に書き込まれる場合がある。このとき、暗号鍵管理装置を欺く不正が行われる恐れがあることがわかった。
【０００９】
このようなシステムでは、ＭＣＵに所定のハッシュ関数が正しく書き込まれたことをもって、当該ＭＣＵは良品であるとされ、ハッシュ関数の書込みに失敗したＭＣＵは不良品とされる。不良品のＭＣＵについては代金の支払い対象から除外される。また、ハッシュ関数を使って暗号化されたコンテンツをダウンロードなどによって入手し、その後、所定のハッシュ関数が正しく書き込まれたときに、当該コンテンツを利用することができるようにするシステムが考えられる。ハッシュ関数の正常書込みによって初めて課金することとなるので、悪意のユーザが存在した場合、ハッシュ関数が正常に書込まれたにも拘らず、書込み失敗と偽って暗号鍵管理装置に報告することによって、課金を免れながら当該コンテンツを利用可能とする不正が行われる恐れがある。このように、暗号鍵の不正な取得を許す、セキュリティ上の欠陥が存在することがわかった。
【００１０】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態によれば、下記の通りである。
【００１２】
すなわち、暗号を利用する第１装置に対して、その暗号のための暗号鍵を管理する第２装置からの暗号鍵を供給する方法であって、以下のように構成される。第１装置は、製造ばらつきによって固有に定まるデバイス固有データを生成可能であり、第２装置は、第１装置で生成されたデバイス固有データに基づいて、１対のヘルパーデータとデバイス固有ＩＤを生成する。ここで、デバイス固有データには、その生成環境によって生じるゆらぎがあり、ヘルパーデータは、そのゆらぎをデバイス固有ＩＤに対する誤りとし、その誤りを訂正するための訂正データである。デバイス固有データに生じるゆらぎは、対応するヘルパーデータを用いて吸収されて、第１装置の個体固有に定まる、誤り（ゆらぎ）を含まないデバイス固有ＩＤとなる。第２装置は、このデバイス固有ＩＤと暗号鍵からハッシュ関数を生成する。第２装置から第１装置に対して、ヘルパーデータとハッシュ関数の両方を書き込むことにより、第１装置では暗号鍵を復号して暗号が利用可能となる。第２装置は、まず、ヘルパーデータとハッシュ関数のうちの一方を第１装置に書込み、その書込みが正常に行われたことを確認した上で、他方を第１装置に書き込む。
【発明の効果】
【００１３】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、第１装置での暗号鍵の利用を可能にするのに先立って、製造ばらつきによって第１装置の個体固有に定まるデバイス固有ＩＤを利用した認証を行うことができ、暗号鍵の不正な取得を防ぐことができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施形態１に係る暗号鍵供給方法を示すシーケンス図である。
【図２】図２は、実施形態２に係る暗号鍵供給システムを示すデータフロー図である。
【図３】図３は、実施形態２に係る暗号鍵供給方法を示すシーケンス図である。
【図４】図４は、実施形態３に係る暗号鍵供給システムを示すデータフロー図である。
【図５】図５は、実施形態３に係る暗号鍵供給方法を示すシーケンス図である。
【図６】図６は、実施形態４に係る暗号鍵供給システムを示すデータフロー図である。
【図７】図７は、実施形態４に係る暗号鍵供給方法を示すシーケンス図である。
【図８】図８は、自動車の電装系に応用された暗号鍵供給システムを示すデータフロー図である。
【図９】図９は、ネットワーク端末に応用された暗号鍵供給システムを示すデータフロー図である。
【発明を実施するための形態】
【００１６】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕＜ヘルパーデータ又はハッシュ関数の一方による認証後に他方を供給＞
暗号を利用する第１装置（２０、２１）に対して、前記暗号のための暗号鍵（ＨＦ１）を管理する第２装置（３０）から前記暗号鍵を供給する、暗号鍵供給方法であって、以下のように構成される。
【００１８】
前記第１装置は、製造ばらつきによって固有に定まるデバイス固有データ（ＵＤ）を生成可能である。
【００１９】
前記第２装置は、デバイス固有データ（ＵＤ）に基づいて、１対のヘルパーデータ（ＨＤ）とデバイス固有ＩＤ（ＵＣ）を生成可能である。前記デバイス固有ＩＤ（ＵＣ）は、前記デバイス固有データ（ＵＤ）にその生成環境によって生じるゆらぎが、対応するヘルパーデータ（ＨＤ）を用いて吸収されて、前記第１装置の個体固有に定まるコードである。１つのデバイス固有データ（ＵＤ）から複数組のヘルパーデータ（ＨＤ１、ＨＤ２）とデバイス固有ＩＤ（ＵＣ１、ＵＣ２）を生成することが可能である。
【００２０】
前記第２装置は、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成可能である。
【００２１】
前記第１装置は、前記ハッシュ関数と前記デバイス固有ＩＤに基づいて前記暗号鍵を復号可能である。
【００２２】
前記暗号鍵供給方法は、以下の各ステップを含んで構成される。
【００２３】
前記第１装置が、デバイス固有データ（ＵＤ）を生成して前記第２装置に供給する、第１ステップ。
【００２４】
前記第２装置が、供給された前記デバイス固有データに基づいて、前記第１装置に固有に定まる１対のヘルパーデータ（ＨＤ）とデバイス固有ＩＤ（ＵＣ）を生成する、第２ステップ。
【００２５】
前記第２装置が、生成されたデバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成する、第３ステップ。
【００２６】
前記第２装置から前記第１装置へ、前記ヘルパーデータまたは前記ハッシュ関数のうちの一方を送信する、第４ステップ。
【００２７】
前記第１装置が、前記第４ステップで受信した前記ヘルパーデータまたは前記ハッシュ関数に基づいて、前記第２装置へ応答データを送信する、第５ステップ。
【００２８】
前記第２装置が、前記第５ステップで受信した応答データの正当性を確認することによって前記第１装置の認証を行う、第６ステップ。
【００２９】
前記第２装置が、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記ヘルパーデータまたは前記ハッシュ関数のうちの他方を送信する、第７ステップ。
【００３０】
前記第１装置が、自らが生成したデバイス固有データと、前記第４ステップまたは前記第６ステップで受信した前記ヘルパーデータと前記ハッシュ関数とに基づいて、前記暗号鍵を復号する、第８ステップ。
【００３１】
これにより、第１装置（２０、２１）での暗号鍵（ＨＦ１）の利用を可能にするのに先立って、製造ばらつきによって第１装置の個体固有に定まるデバイス固有ＩＤ（ＵＣ）を利用した認証を行うことができ、暗号鍵の不正な取得を防ぐことができる。
【００３２】
〔２〕＜ヘルパーデータによる認証＞
項１に記載の暗号鍵供給方法であって、特に以下のように構成される。
【００３３】
前記第４ステップにおいて、前記第２装置は、前記第１装置に前記ヘルパーデータを送信する。
【００３４】
前記第５ステップにおいて、前記第１装置は、受信した前記ヘルパーデータからデバイス固有ＩＤ（ＵＣ）を再生し、再生した前記デバイス固有ＩＤに基づく応答データを作成して、前記第２装置に前記応答データを送信する。
【００３５】
前記第６ステップにおいて、前記第２装置は、前記応答データと前記第２ステップで生成したデバイス固有ＩＤ（ＵＣ）に基づく期待値データとを比較することによって、前記応答データの正当性を確認する。
【００３６】
前記第７ステップにおいて、前記第２装置は、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記ハッシュ関数（ＨＦ２）を送信する。
【００３７】
これにより、認証後、即ち通信経路が正常に確立されたことが確認された後に、暗号鍵の情報であるハッシュ関数を送ることができ、暗号鍵の不正な取得を防ぐことができる。
【００３８】
〔３〕＜２組のデバイス固有ＩＤとヘルパーデータ＞
項２に記載の暗号鍵供給方法であって、特に以下のように構成される。
【００３９】
前記第２ステップにおいて、前記第２装置は、供給された前記デバイス固有データに基づいて、前記第１装置に固有に定まる、第１デバイス固有ＩＤ（ＵＣ１）と前記第１デバイス固有ＩＤを生成するための第１ヘルパーデータ（ＨＤ１）とを生成する。さらに、前記第２装置は、供給された前記デバイス固有データに基づいて、前記第１デバイス固有ＩＤとは異なる第２デバイス固有ＩＤ（ＵＣ２）と前記第２デバイス固有ＩＤを生成するための第２ヘルパーデータ（ＨＤ２）とを生成する。
【００４０】
前記第３ステップにおいて、前記第２装置は、前記第２デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成する。
【００４１】
前記第４ステップにおいて、前記第２装置は、前記第１装置に前記第１ヘルパーデータを送信する。
【００４２】
前記第５ステップにおいて、前記第１装置は、受信した前記第１ヘルパーデータから第１デバイス固有ＩＤ（ＵＣ１）を再生し、再生した前記第１デバイス固有ＩＤに基づく応答データを作成して、前記第２装置に前記応答データを送信する。
【００４３】
前記第６ステップにおいて、前記第２装置は、前記応答データと前記第２ステップで生成した第１デバイス固有ＩＤ（ＵＣ１）に基づく期待値データとを比較することによって、前記応答データの正当性を確認する。
【００４４】
前記第７ステップにおいて、前記第２装置は、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記第２ヘルパーデータをさらに送信する。
【００４５】
前記第８ステップにおいて、前記第１装置は、自らが生成したデバイス固有データ（ＵＤ）と前記第７ステップで受信した前記第２ヘルパーデータに基づいて第２デバイス固有ＩＤ（ＵＣ２）を生成し、再生した前記第２デバイス固有ＩＤと、前記第７ステップで受信した前記ハッシュ関数とに基づいて、前記暗号鍵（ＨＦ１）を復号する。
【００４６】
これにより、認証のためのデバイス固有ＩＤ（ＵＣ１）と、暗号鍵を守るためのデバイス固有ＩＤ（ＵＣ２）を、互いに異なる値とすることができ、安全性を向上することができる。
【００４７】
〔４〕＜応答のダイジェスト化＞
項３に記載の暗号鍵供給方法であって、特に以下のように構成される。
【００４８】
前記第５ステップにおいて、前記第１装置は、前記ハッシュ関数とは異なる他のハッシュ関数を用いて、再生した前記第１デバイス固有ＩＤのダイジェスト（Ｈ［ＵＣ１］）を作成して前記応答データとする。
【００４９】
前記第６ステップにおいて、前記第２装置は、前記他のハッシュ関数と同じハッシュ関数を用いて、前記第２ステップで生成した第１デバイス固有ＩＤのダイジェスト（Ｈ［ＵＣ１］）を作成して前記期待値データとし、前記応答データと前記期待値データとを比較することによって、前記応答データの正当性を確認する。
【００５０】
これにより、認証時において通信されるデバイス固有ＩＤ（ＵＣ１）が保護され、安全性をより向上することができる。
【００５１】
〔５〕＜ＨＦ２＝Helper Data 2 + UC2で暗号化された暗号鍵＞
項３に記載の暗号鍵供給方法であって、特に以下のように構成される。
【００５２】
前記第７ステップにおいて、前記第２装置は、前記ハッシュ関数と前記第２ヘルパーデータとを組合せてスクランブル処理を施して、前記第１装置に送出する。
【００５３】
前記第８ステップにおいて、前記第１装置は、前記スクランブル処理の逆の処理により、前記ハッシュ関数と前記第２ヘルパーデータとを復号する。
【００５４】
これにより、鍵情報書込み時において通信されるハッシュ関数（ＨＦ２）とヘルパーデータ（ＨＤ２）が保護され、安全性をより向上することができる。
【００５５】
〔６〕＜ハッシュ関数による認証＞
項１に記載の暗号鍵供給方法であって、特に以下のように構成される。
【００５６】
前記第４ステップにおいて、前記第２装置は、前記第１装置に前記ハッシュ関数（ＨＦ２）を送信する。
【００５７】
前記第５ステップにおいて、前記第１装置は、受信した前記ハッシュ関数に基づく応答データを作成して、前記第２装置に前記応答データを送信する。
【００５８】
前記第６ステップにおいて、前記第２装置は、前記応答データと前記第３ステップで生成したハッシュ関数に基づく期待値データとを比較することによって、前記応答データの正当性を確認する。
【００５９】
前記第７ステップにおいて、前記第２装置は、前記第６ステップで前記第１装置を認証した後に、前記第１装置に対して、前記ヘルパーデータ（ＨＤ）を送信する。
【００６０】
これにより、認証後、即ち通信経路が正常に確立されたことが確認された後に、デバイス固有ＩＤ（ＵＣ）を生成するためのヘルパーデータ（ＨＤ）を送ることができ、暗号鍵の不正な取得を防ぐことができる。
【００６１】
〔７〕＜ＰＵＦ生成回路を備えるＬＳＩ（ヘルパーデータによる認証）＞
製造ばらつきによって固有に定まるデバイス固有データ（ＵＤ）を生成可能な固有データ生成部（１）と、前記デバイス固有データに基づいて外部装置（３０）が生成し、前記外部装置から与えられる暗号鍵情報から暗号鍵（ＨＦ１）を復号する暗号鍵復号部（６）とを備える、半導体集積回路（２１）であって、以下のように構成される。
【００６２】
前記半導体集積回路は、前記固有データ生成部によってデバイス固有データ（ＵＤ）を生成して、前記外部装置に供給可能に構成される。
【００６３】
前記外部装置は、前記半導体集積回路から前記デバイス固有データを受信可能に構成され、受信したデバイス固有データに基づいて、ヘルパーデータ（ＨＤ）とデバイス固有ＩＤ（ＵＣ）を生成可能である。前記デバイス固有ＩＤ（ＵＣ）は、前記デバイス固有データ（ＨＤ）にその生成環境によって生じるゆらぎが、対応するヘルパーデータ（ＨＤ）を用いて吸収されて、前記半導体集積回路の個体固有に定まるコードである。前記外部装置は、前記ヘルパーデータを、前記半導体集積回路に送信可能に構成される。
【００６４】
前記半導体集積回路は、前記ヘルパーデータを受信可能に構成され、受信したヘルパーデータと、前記デバイス固有データに基づいて、対応するデバイス固有ＩＤ（ＵＣ）を生成し（２）、生成したデバイス固有ＩＤに基づく応答データ（Ｈ［ＵＣ］）を生成して（４＿１）、前記外部装置に送信可能に構成される。
【００６５】
前記外部装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した前記デバイス固有ＩＤに基づいて生成する期待値データ（Ｈ［ＵＣ］）とを比較可能に構成される（４＿２、５）。
【００６６】
前記外部装置は、前記比較結果が一致の場合に、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成し（７）、前記ハッシュ関数を、前記半導体集積回路に送信可能に構成される。
【００６７】
前記半導体集積回路は、前記ハッシュ関数を受信可能に構成され、自身で生成した前記デバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵を復号可能に構成される（６）。
【００６８】
これにより、半導体集積回路（２１）での暗号鍵の利用を可能にするのに先立って、製造ばらつきによって半導体集積回路の個体固有に定まるデバイス固有ＩＤ（ＵＣ）を利用した認証を行うことができ、暗号鍵の不正な取得を防ぐことができる。
【００６９】
〔８〕＜２組のデバイス固有ＩＤとヘルパーデータ＞
項７に記載の半導体集積回路であって、特に以下のように構成される。
【００７０】
前記外部装置は、受信したデバイス固有データに基づいて、第１と第２ヘルパーデータ（ＨＤ１，ＨＤ２）と第１と第２デバイス固有ＩＤ（ＵＣ１，ＵＣ２）を生成可能であり（３）、前記外部装置は、前記第１ヘルパーデータを、前記半導体集積回路に送信可能に構成される。
【００７１】
前記半導体集積回路は、前記第１ヘルパーデータを受信可能に構成され、受信した第１ヘルパーデータ（ＨＤ１）と前記デバイス固有データに基づいて対応する第１デバイス固有ＩＤ（ＵＣ１）を生成し（２＿１）、生成した第１デバイス固有ＩＤに基づく応答データ（Ｈ［ＵＣ１］）を生成して、前記外部装置に送信可能に構成される。
【００７２】
前記外部装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した前記第１デバイス固有ＩＤ（ＵＣ１）に基づいて生成する期待値データ（Ｈ［ＵＣ１］）とを比較可能に構成される（５）。
【００７３】
前記外部装置は、前記比較結果が一致の場合に、前記第２デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成し、前記２ヘルパーデータと前記ハッシュ関数とを、前記半導体集積回路に送信可能に構成される（７、８、９）。
【００７４】
前記半導体集積回路は、前記第２ヘルパーデータと前記ハッシュ関数とを受信可能に構成され、受信した第２ヘルパーデータと前記デバイス固有データに基づいて第２デバイス固有ＩＤを生成し（１０、２＿２）、生成した前記第２デバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵（ＨＦ１）を復号可能に構成される（６）。
【００７５】
これにより、認証のためのデバイス固有ＩＤ（ＵＣ１）と、暗号鍵を守るためのデバイス固有ＩＤ（ＵＣ２）を、互いに異なる値とすることができ、安全性を向上することができる。
【００７６】
〔９〕＜応答のダイジェスト化＞
項８に記載の半導体集積回路であって、特に以下のように構成される。
【００７７】
前記半導体集積回路は、前記ハッシュ関数とは異なる他のハッシュ関数を用いて、再生した前記第１デバイス固有ＩＤのダイジェストを作成して前記応答データとする（４＿３）。
【００７８】
前記外部装置は、自身が生成した前記第１デバイス固有ＩＤのダイジェストを、前記他のハッシュ関数と同じハッシュ関数を用いて作成して前記期待値データとし（４＿４）、前記応答データと前記期待値データとを比較する（５）。
【００７９】
これにより、認証時において通信されるデバイス固有ＩＤ（ＵＣ１）が保護され、安全性をより向上することができる。
【００８０】
〔１０〕＜ＨＦ２＝Helper Data 2 + UC2で暗号化された暗号鍵＞
前記外部装置は、前記ハッシュ関数と前記第２ヘルパーデータとを組合せてスクランブル処理を施して暗号鍵再生データ（｛Ｅｎｃ［ＨＦ１］，ＨＤ２｝）を生成し（９）、前記第１装置に送信可能に構成される。
【００８１】
前記半導体集積回路は、前記暗号鍵再生データを受信可能に構成され、受信した暗号鍵再生データに対して、前記スクランブル処理の逆の処理を施すことにより、前記ハッシュ関数と前記第２ヘルパーデータとを復号可能に構成される（１０）。
【００８２】
これにより、鍵情報書込み時において通信されるハッシュ関数（ＨＦ１）とヘルパーデータ（ＨＤ２）が保護され、安全性をより向上することができる。
【００８３】
〔１１〕＜読み出し／書き込み機＞
項７から項１０のうちのいずれか１項に記載の半導体集積回路であって、特に以下のように構成される。
【００８４】
前記半導体集積回路は、前記外部装置と通信可能な読み出し／書き込み機（２２）に接続可能に構成され、前記読み出し／書き込み機を介して、前記外部装置とデータの送受信を行う。
【００８５】
これにより、実装される前の段階で、半導体集積回路（２１）に暗号鍵情報を書き込むことができる環境が提供される。
【００８６】
〔１２〕＜外部装置とのインターフェースを備えた端末装置に実装＞
項７から項１０のうちのいずれか１項に記載の半導体集積回路であって、特に以下のように構成される。
【００８７】
前記半導体集積回路は、前記外部装置と通信可能なインターフェース（２７）を備える端末装置（２０）に実装され、前記端末装置を介して、前記外部装置とデータの送受信を行う。
【００８８】
これにより、半導体集積回路（２１）が端末装置（２０）に実装された状態で、半導体集積回路に暗号鍵情報を書き込むことができる環境が提供される。
【００８９】
〔１３〕＜暗号通信インターフェース＞
項７から項１２のうちのいずれか１項に記載の半導体集積回路であって、特に以下のように構成される。
【００９０】
前記半導体集積回路は、復号した暗号鍵を用いた暗号化回路と復号回路と、暗号通信インターフェース（２５）をさらに備える。
【００９１】
これにより、外部装置から書き込まれた暗号鍵を利用した暗号通信を行うことができる、半導体集積回路を提供することができる。
【００９２】
〔１４〕＜暗号化されたコンテンツの復号＞
項７から項１２のうちのいずれか１項に記載の半導体集積回路であって、特に以下のように構成される。
【００９３】
前記半導体集積回路は、復号した暗号鍵を用いた暗号復号回路（２８）をさらに備え、前記暗号鍵と同じ暗号鍵を使って暗号化されたデータを格納可能な不揮発性メモリ（２９）にアクセス可能に構成され、前記不揮発性メモリに格納されたデータを読み出して前記暗号復号回路に供給可能に構成される。
【００９４】
これにより、不揮発性メモリ（２９）に格納された暗号化されたデータ（コンテンツ）を、暗号鍵情報を半導体集積回路（２１）に書き込むことによって、利用可能な状態に変更する（アクティベートする）ことができる、半導体集積回路を提供することができる。
【００９５】
〔１５〕＜暗号鍵管理装置（ヘルパーデータによる認証）＞
製造ばらつきによって固有に定まるデバイス固有データ（ＵＤ）を生成可能な固有データ生成部（１）と、暗号鍵情報から暗号鍵（ＨＦ１）を復号する暗号鍵復号部（６）と、を備える端末装置（２０、２１）に接続可能に構成され、前記デバイス固有データに基づいて前記暗号鍵情報を生成して前記端末装置に供給可能に構成される、暗号鍵管理装置（３０）であって、以下のように構成される。
【００９６】
前記端末装置は、前記固有データ生成部（１）によってデバイス固有データ（ＵＤ）を生成して、前記暗号鍵管理装置に供給可能に構成される。
【００９７】
前記暗号鍵管理装置は、前記端末装置から前記デバイス固有データを受信可能に構成され、受信したデバイス固有データ（ＵＤ）に基づいて、ヘルパーデータ（ＨＤ）とデバイス固有ＩＤ（ＵＣ）を生成可能である。前記デバイス固有ＩＤ（ＵＣ）は、前記デバイス固有データ（ＵＤ）にその生成環境によって生じるゆらぎが、対応するヘルパーデータ（ＨＤ）を用いて吸収されて、前記端末装置の個体固有に定まるコードである。前記暗号鍵管理装置は、前記ヘルパーデータを、前記端末装置に送信可能に構成される。
【００９８】
前記端末装置は、前記ヘルパーデータを受信可能に構成され、受信したヘルパーデータ（ＨＤ）と、前記デバイス固有データ（ＵＤ）に基づいて、対応するデバイス固有ＩＤ（ＵＣ）を生成し（２）、生成したデバイス固有ＩＤに基づく応答データ（Ｈ［ＵＣ］）を生成して（４＿１、４＿３）、前記暗号鍵管理装置に送信可能に構成される。
【００９９】
前記暗号鍵管理装置は、前記応答データを受信可能に構成され、受信した応答データ（Ｈ［ＵＣ］）と、自身が生成した前記デバイス固有ＩＤに基づいて生成する期待値データ（Ｈ［ＵＣ］）とを比較可能に構成される（４＿２、５）。
【０１００】
前記暗号鍵管理装置は、前記比較結果が一致の場合に、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成し（７）、前記ハッシュ関数を、前記端末装置に送信可能に構成される。
【０１０１】
前記端末装置は、前記ハッシュ関数を受信可能に構成され、自身で生成した前記デバイス固有ＩＤ（ＵＣ）と受信した前記ハッシュ関数（ＨＦ２）とに基づいて、前記暗号鍵（ＨＦ１）を復号可能に構成される。
【０１０２】
これにより、端末装置（２０）での暗号鍵の利用を可能にするのに先立って、暗号鍵管理装置（３０）は、製造ばらつきによって端末装置の個体固有に定まるデバイス固有ＩＤ（ＵＣ）を利用した認証を行うことができ、暗号鍵の不正な取得を防ぐことができる。
【０１０３】
〔１６〕＜２組のデバイス固有ＩＤとヘルパーデータ＞
項１５に記載の暗号鍵管理装置であって、特に以下のように構成される。
【０１０４】
前記暗号鍵管理装置は、受信したデバイス固有データ（ＵＤ）に基づいて、第１と第２ヘルパーデータ（ＨＤ１，ＨＤ２）と第１と第２デバイス固有ＩＤ（ＵＣ１，ＵＣ２）を生成可能であり（３）、前記暗号鍵管理装置は、前記第１ヘルパーデータを、前記端末装置に送信可能に構成される。
【０１０５】
前記端末装置は、前記第１ヘルパーデータを受信可能に構成され、受信した第１ヘルパーデータ（ＨＤ１）と前記デバイス固有データとに基づいて、対応する第１デバイス固有ＩＤ（ＵＣ）を生成し（２）、生成した第１デバイス固有ＩＤ（ＵＣ）に基づく応答データ（Ｈ［ＵＣ］）を生成して、前記暗号鍵管理装置に送信可能に構成される。
【０１０６】
前記暗号鍵管理装置は、前記応答データを受信可能に構成され、受信した応答データ（Ｈ［ＵＣ］）と、自身が生成した前記第１デバイス固有ＩＤに基づいて生成する期待値データ（Ｈ［ＵＣ］）とを比較可能に構成される（４＿２、５）。
【０１０７】
前記暗号鍵管理装置は、前記比較結果が一致の場合に、前記第２デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成し（７、８）、前記第２ヘルパーデータと前記ハッシュ関数とを、前記端末装置に送信可能に構成される。
【０１０８】
前記端末装置は、前記第２ヘルパーデータと前記ハッシュ関数とを受信可能に構成され、受信した第２ヘルパーデータ（ＨＤ２）と前記デバイス固有データ（ＵＤ）に基づいて第２デバイス固有ＩＤ（ＵＣ２）を生成し、生成した前記第２デバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵を復号可能に構成される（６）。
【０１０９】
これにより、認証のためのデバイス固有ＩＤ（ＵＣ１）と、暗号鍵を守るためのデバイス固有ＩＤ（ＵＣ２）を、互いに異なる値とすることができ、安全性を向上することができる。
【０１１０】
〔１７〕＜応答のダイジェスト化＞
項１６に記載の暗号鍵管理装置であって、特に以下のように構成される。
【０１１１】
前記端末装置は、前記ハッシュ関数とは異なる他のハッシュ関数を用いて、再生した前記第１デバイス固有ＩＤ（ＵＣ１）のダイジェスト（Ｈ［ＵＣ１］）を作成して前記応答データとする（４＿１）。
【０１１２】
前記暗号鍵管理装置は、自身が生成した前記第１デバイス固有ＩＤ（ＵＣ）のダイジェスト（Ｈ［ＵＣ１］）を、前記他のハッシュ関数と同じハッシュ関数を用いて作成して前記期待値データとし、前記応答データと前記期待値データ（｛Ｅｎｃ［ＨＦ１］，ＨＤ２｝）とを比較する（５）。
【０１１３】
これにより、認証時において通信されるデバイス固有ＩＤ（ＵＣ１）が保護され、安全性をより向上することができる。
【０１１４】
〔１８〕＜ＨＦ２＝Helper Data 2 + UC2で暗号化された暗号鍵＞
項１６に記載の暗号鍵管理装置であって、特に以下のように構成される。
【０１１５】
前記暗号鍵管理装置は、前記ハッシュ関数（ＨＦ２）と前記第２ヘルパーデータ（ＨＤ２）とを組合せてスクランブル処理を施して暗号鍵再生データを生成し（９）、前記第１装置に送信可能に構成される。
【０１１６】
前記端末装置は、前記暗号鍵再生データを受信可能に構成され、受信した暗号鍵再生データに対して、前記スクランブル処理の逆の処理を施すことにより、前記ハッシュ関数と前記第２ヘルパーデータとを復号可能に構成される（１０）。
【０１１７】
これにより、鍵情報書込み時において通信されるハッシュ関数（ＨＦ２）とヘルパーデータ（ＨＤ２）が保護され、安全性をより向上することができる。
【０１１８】
〔１９〕＜ＰＵＦ生成回路を備えるＬＳＩ（ハッシュ関数による認証）＞
製造ばらつきによって固有に定まるデバイス固有データ（ＵＤ）を生成可能な固有データ生成部（１）と、前記デバイス固有データに基づいて外部装置（３０）が生成し、前記外部装置から与えられる暗号鍵情報から暗号鍵（ＨＦ１）を復号する暗号鍵復号部（６）とを備える、半導体集積回路（２１）であって、以下のように構成される。
【０１１９】
前記半導体集積回路は、前記固有データ生成部によってデバイス固有データ（ＵＤ）を生成して、前記外部装置に供給可能に構成される。
【０１２０】
前記外部装置は、前記半導体集積回路から前記デバイス固有データを受信可能に構成され、受信したデバイス固有データに基づいて、ヘルパーデータ（ＨＤ）とデバイス固有ＩＤ（ＵＣ）を生成可能である。前記デバイス固有ＩＤ（ＵＣ）は、前記デバイス固有データにその生成環境によって生じるゆらぎが、対応するヘルパーデータ（ＨＤ）を用いて吸収されて、前記半導体集積回路の個体固有に定まるコードである。
【０１２１】
前記外部装置は、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成し、前記ハッシュ関数を、前記半導体集積回路に送信可能に構成される。
【０１２２】
前記半導体集積回路は、前記ハッシュ関数を受信可能に構成され、受信したハッシュ関数（ＨＦ２）に基づく応答データを生成して（４＿５）、前記外部装置に送信可能に構成される。
【０１２３】
前記外部装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した期待値データとを比較可能に構成され（５）、前記比較結果が一致の場合に、前記ヘルパーデータを、前記半導体集積回路に送信可能に構成される。
【０１２４】
前記半導体集積回路は、前記ヘルパーデータを受信可能に構成され、受信したヘルパーデータ（ＨＤ）と前記デバイス固有データ（ＵＤ）に基づいて対応するデバイス固有ＩＤ（ＵＤ）を生成し、生成したデバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵（ＨＦ１）を復号可能に構成される（６）。
【０１２５】
これにより、半導体集積回路での暗号鍵の利用を可能にするのに先立って、製造ばらつきによって半導体集積回路の個体固有に定まるデバイス固有ＩＤを利用した認証を行うことができ、暗号鍵の不正な取得を防ぐことができる。
【０１２６】
〔２０〕＜暗号鍵管理装置（ハッシュ関数による認証）＞
製造ばらつきによって固有に定まるデバイス固有データ（ＵＤ）を生成可能な固有データ生成部（１）と、暗号鍵情報から暗号鍵（ＨＦ１）を復号する暗号鍵復号部（６）と、を備える端末装置（２０、２１）に接続可能に構成され、前記デバイス固有データに基づいて前記暗号鍵情報を生成して前記端末装置に供給可能に構成される、暗号鍵管理装置（３０）であって、以下のように構成される。
【０１２７】
前記暗号鍵管理装置は、前記端末装置から前記デバイス固有データ（ＵＤ）を受信可能に構成され、受信したデバイス固有データ（ＵＤ）に基づいて、ヘルパーデータ（ＨＤ）とデバイス固有ＩＤ（ＵＣ）を生成可能である。前記デバイス固有ＩＤ（ＵＣ）は、前記デバイス固有データ（ＵＤ）にその生成環境によって生じるゆらぎが、対応するヘルパーデータ（ＨＤ）を用いて吸収されて、前記端末装置の個体固有に定まるコードである。
【０１２８】
前記暗号鍵管理装置は、前記デバイス固有ＩＤと前記暗号鍵からハッシュ関数（ＨＦ２）を生成し、前記ハッシュ関数を、前記端末装置に送信可能に構成される。
【０１２９】
前記端末装置は、前記ハッシュ関数を受信可能に構成され、受信したハッシュ関数（ＨＦ２）に基づく応答データを生成して、前記暗号鍵管理装置に送信可能に構成される。
【０１３０】
前記暗号鍵管理装置は、前記応答データを受信可能に構成され、受信した応答データと、自身が生成した期待値データとを比較可能に構成され（５）、前記比較結果が一致の場合に、前記ヘルパーデータ（ＨＤ）を、前記端末装置に送信可能に構成される。
【０１３１】
前記端末装置は、前記ヘルパーデータを受信可能に構成され、受信したヘルパーデータ（ＨＤ）と、前記デバイス固有データ（ＵＤ）に基づいて、対応するデバイス固有ＩＤ（ＵＣ）を生成し、生成したデバイス固有ＩＤと受信した前記ハッシュ関数とに基づいて、前記暗号鍵（ＨＦ１）を復号可能に構成される（６）。
【０１３２】
これにより、端末装置（２０、２１）での暗号鍵の利用を可能にするのに先立って、暗号鍵管理装置（３０）は、製造ばらつきによって端末装置の個体固有に定まるデバイス固有ＩＤ（ＵＣ）を利用した認証を行うことができ、暗号鍵の不正な取得を防ぐことができる。
【０１３３】
２．実施の形態の詳細
実施の形態について更に詳述する。
【０１３４】
〔実施形態１〕＜ヘルパーデータ又はハッシュ関数の一方による認証後に他方を供給＞
図１は、実施形態１に係る暗号鍵供給方法を示すシーケンス図である。
【０１３５】
実施形態１に係る暗号鍵供給方法は、暗号を利用する第１装置（２０、２１）に対して、暗号のための暗号鍵を管理する第２装置３０から暗号鍵ＨＦ１を供給する暗号鍵供給方法である。第１装置は、例えば、ＭＣＵ２１であって、読出し／書込み機（リーダ／ライタ）２２を介して、暗号鍵管理装置として機能する、サーバー等の外部装置３０に接続される。ＭＣＵ２１に代えてＭＣＵ２１が実装されたＥＣＵに、ＯＢＤ−ＩＩ（On-Board Diagnostics Version II）で接続されたリプログラミングツール２２を介して、サーバー等の外部装置３０に接続されもよい。また、第１装置は、ＭＣＵ２１をオンボードに実装された端末装置２０であり、ＭＣＵ２１に外付けされまたは内蔵される通信インターフェースにより、インターネットやＬＡＮ（Local Area Network）、その他の無線または有線の通信回線を介して、サーバー等の外部装置３０に接続される。さらに、第１装置（２０、２１）と第２装置３０は、単一の筐体内に実装され、あるいは同一基板上に実装されてもよい。その場合は、通信インターフェースと通信路は、極めて簡略に実装されるか、省略される。図１は、これらの構成の代表例として、ＭＣＵ２１とリーダ／ライタ２２と暗号鍵管理装置３０の３者間の通信を、縦方向に時間を取って示した、シーケンス図である。以上は、後述の図３、図５、図７にも同様に妥当するので、実施形態２、実施形態３、実施形態４では、説明を省略する。
【０１３６】
第１装置（例えばＭＣＵ）２１は、製造ばらつきによって固有に定まるデバイス固有データＵＤを生成可能である。デバイス固有データＵＤは、例えば物理的に複製不可能な関数（ＰＵＦ）を利用して生成することができ、より具体的にはＳＲＡＭの電源投入時の初期値などをデバイス固有データＵＤとすることができる。デバイス固有データＵＤは、生成される時の、デバイスの温度や電源電圧などの環境によって、多少のゆらぎが生じる。これは、デバイス固有データＵＤに含まれる誤り（ビットエラー）として扱われる。
【０１３７】
第２装置（サーバー等の外部装置）３０は、デバイス固有データＵＤに基づいて、１対のヘルパーデータＨＤとデバイス固有ＩＤ（ＵＣ）とを生成可能である。デバイス固有ＩＤ（ＵＣ）は、デバイス固有データＵＤにその生成環境によって生じるゆらぎが、対応するヘルパーデータＨＤを用いて吸収されて、第１装置２１の個体固有に定まるコードである。１つのデバイス固有データ（ＵＤ）から複数組のヘルパーデータ（ＨＤ１、ＨＤ２）とデバイス固有ＩＤ（ＵＣ１、ＵＣ２）を生成することが可能である。
【０１３８】
第２装置（サーバー等の外部装置）３０は、デバイス固有ＩＤ（ＵＣ）と暗号鍵ＨＦ１からハッシュ関数ＨＦ２を生成可能である。
【０１３９】
第１装置（例えばＭＣＵ）２１は、ハッシュ関数ＨＦ２とデバイス固有ＩＤ（ＵＣ）に基づいて暗号鍵ＨＦ１を復号可能である。
【０１４０】
図１に示される暗号鍵供給方法は、これらの構成の代表例として、ＭＣＵ２１とリーダ／ライタ２２と暗号鍵管理装置３０の３者間の通信を、縦方向に時間を取って示した、シーケンス図である。
【０１４１】
ＭＣＵ２１が、デバイス固有データＵＤを生成してリーダ／ライタ２２を介して暗号鍵管理装置３０に供給する（第１ステップ）。それ以前に、リーダ／ライタ２２と暗号鍵管理装置３０の間でのユーザ認証は完了してセッションが確立されており、その上で暗号鍵管理装置３０からリーダ／ライタ２２を介してＭＣＵ２１に対して、デバイス固有データＵＤの読出し命令が発行されたものとする。ＭＣＵ２１と暗号鍵管理装置３０との間の通信には、必ずリーダ／ライタ２２が介在するが、リーダ／ライタ２２がデータを改変することはないので、以下、リーダ／ライタ２２が介在することについては説明から省略する。
【０１４２】
暗号鍵管理装置３０は、ＭＣＵ２１から供給されたデバイス固有データＵＤに基づいて、ＭＣＵ２１の個体固有に定まる１対のヘルパーデータＨＤとデバイス固有ＩＤ（ＵＣ）とを生成する（第２ステップ）。
【０１４３】
暗号鍵管理装置３０は、生成されたデバイス固有ＩＤ（ＵＣ）と暗号鍵ＨＦ１からハッシュ関数ＨＦ２を生成する（第３ステップ）。ハッシュ関数ＨＦ２は、例えば、暗号鍵であるＨＦ１をメッセージとし、これに対してデバイス固有ＩＤ（ＵＣ）を暗号鍵として使った暗号化を施すことによって生成される。
【０１４４】
暗号鍵管理装置３０からＭＣＵ２１へ、ヘルパーデータＨＤまたはハッシュ関数ＨＦ２のうちの一方を送信する（第４ステップ）。
【０１４５】
ＭＣＵ２１は、前記第４ステップで受信したヘルパーデータＨＤまたはハッシュ関数ＨＦ２に基づいて、暗号鍵管理装置３０へ応答データを送信する（第５ステップ）。応答データは、受信したヘルパーデータＨＤまたはハッシュ関数ＨＦ２に基づいて生成され、送信元の暗号鍵管理装置３０において照合することができる形式であれば、任意である。
【０１４６】
暗号鍵管理装置３０は、前記第５ステップで受信した応答データの正当性を確認することによってＭＣＵ２１の認証を行う（第６ステップ）。暗号鍵管理装置３０は、認証（第６ステップ）に先立って、予め、第３ステップで生成したデバイス固有ＩＤ（ＵＣ）に基づいて、応答データを照合するための期待値データを生成しておく。
【０１４７】
暗号鍵管理装置３０は、前記第６ステップでＭＣＵ２１を認証した後に、ＭＣＵ２１に対して、ヘルパーデータＨＤまたはハッシュ関数ＨＦ２のうちの他方を送信する（第７ステップ）。
【０１４８】
ＭＣＵ２１は、自らが生成したデバイス固有データ（ＵＤ）と、前記第４ステップまたは前記第６ステップで受信したヘルパーデータ（ＨＤ）とハッシュ関数（ＨＦ２）とに基づいて、暗号鍵ＨＦ１を復号する（第８ステップ）。
【０１４９】
これにより、第１装置（例えば、ＭＣＵ２１）での暗号鍵ＨＦ１の利用を可能にするのに先立って、製造ばらつきによって第１装置（例えば、ＭＣＵ２１）の個体固有に定まるデバイス固有ＩＤ（ＵＣ）を利用した認証を行うことができ、暗号鍵の不正な取得を防ぐことができる。
【０１５０】
既に述べたように、悪意のユーザが存在した場合、ハッシュ関数が正常に書込まれたにも拘らず、これを書込み失敗と偽って暗号鍵管理装置に報告することによって、課金を免れながら第１装置（例えば、ＭＣＵ２１）を利用可能とする不正が行われる恐れがあることが、課題として見出された。これは、第１装置（例えば、ＭＣＵ２１）にハッシュ関数が正常に書込まれたときに初めて課金を行うためである。これに対して、本実施形態では、まず、デバイス固有ＩＤ（ＵＣ）を利用した認証を行うので、この認証をもって正常書込みとし課金を行うことができる。認証が失敗したときは、暗号鍵を再生するためのハッシュ関数ＨＦ２を供給しない。暗号鍵情報即ちハッシュ関数ＨＦ２が予め供給されている場合には、暗号鍵情報から暗号鍵を取り出すための情報であるヘルパーデータＨＤを供給しないことによって、暗号鍵を利用させないようにする。認証が成功しながら、次のヘルパーデータＨＤまたはハッシュ関数ＨＦ２のうちの他方の供給（ステップ７）が失敗することは、極めて稀な状態であり、機器の故障、通信障害などとして、対処されるべきである。仮に悪意のユーザがこのような状況を現出させたとしても、課金を免れるなどのために利用することはできない。以上のように、暗号鍵の不正な取得を防ぐことができる。
【０１５１】
〔実施形態２〕＜ヘルパーデータによる認証＞
図２は、実施形態２に係る暗号鍵供給システムを示すデータフロー図である。暗号を利用する第１装置（２０、２１）とその暗号のための暗号鍵ＨＦ１を管理する第２装置３０とが互いに接続されて構成される。「回路」として示される各ブロックは、その機能を有する独立した回路として構成されても良いし、ＣＰＵなどのプロセッサ上で動作するソフトウェアの機能として構成されても良い。また、複数の回路ブロックの機能を１つの回路で実現してもよく、回路ブロックとして示されるブロックの一部の機能を別の回路ブロックで実現するなど、実現する回路あるいはソフトウェアの形態は任意である。実施形態１で説明したのと同様に、第１装置は、例えば、ＭＣＵ２１であって、読出し／書込み機（リーダ／ライタ）２２を介して、暗号鍵管理装置として機能する、サーバー等の外部装置（第２装置）３０に接続される。或いは、第１装置は、ＭＣＵ２１をオンボードに実装された端末装置２０であり、ＭＣＵ２１に外付けされまたは内蔵される通信インターフェースにより、サーバー等の外部装置（第２装置）３０に接続される。第１装置（２０、２１）と第２装置３０との間の通信路は、特に限定されないが、例えばそれぞれが通信インターフェースを備え１系統で構成されるが、図２では、通信インターフェースは省略され、送受されるデータ毎に別の線として示される。第１装置（２０、２１）と第２装置３０との間の通信は、例えば、図示を省略された通信インターフェースを介して、１つの通信プロトコルによって、時分割の異なるパケットで送受される。以上は、後述の図４、図６にも同様に妥当するので、実施形態３、実施形態４では、説明を省略する。
【０１５２】
第１装置（２０、２１）は、固有データ生成部（ＰＵＦ）１と、固有ＩＤ生成回路２と、ダイジェスト生成回路４＿１と、ＨＦ１復号回路６とを含んで構成される。固有データ生成部（ＰＵＦ）１は、デバイス固有データＵＤを生成する。デバイス固有データＵＤは、上述のように、その生成環境によるゆらぎ即ち誤り（ビットエラー）を含む。生成されたデバイス固有データＵＤは、第２装置３０に対して送信され、固有ＩＤ生成回路２に供給される。固有ＩＤ生成回路２は、ＰＵＦ１が生成したデバイス固有データＵＤと第２装置３０から供給されるヘルパーデータＨＤとから、デバイス固有ＩＤ（ＵＣ）を生成する。ＰＵＦ１が生成したデバイス固有データＵＤに、その生成環境によるゆらぎが存在しても、ヘルパーデータＨＤによって吸収され、即ち、誤り（ビットエラー）が訂正されて、再現性の高いデータとなる。デバイス固有ＩＤ（ＵＣ）は、ダイジェスト生成回路４＿１とＨＦ１復号回路６に供給される。ダイジェスト生成回路４＿１は、所定のハッシュ関数を使って、デバイス固有ＩＤ（ＵＣ）からメッセージダイジェスト（以下簡単に「ダイジェスト」と呼ぶ）Ｈ［ＵＣ］を生成する。生成されたダイジェストＨ［ＵＣ］は、第２装置３０に対して送信される。ＨＦ１復号回路６は、第２装置３０から送信される、暗号化された暗号鍵ＨＦ１を、デバイス固有ＩＤ（ＵＣ）を使って復号して、暗号鍵ＨＦ１を得る。
【０１５３】
これらの各回路ブロックは、それぞれ独立した回路ブロックとして、ＭＣＵ２１に内蔵して構成されてもよく、または、１つの暗号演算アクセラレータとして実現されてもよい。さらに、ＭＣＵ２１に内蔵されるＣＰＵ（Central Processing Unit）、例えばフラッシュメモリ（登録商標）などの不揮発性メモリ、ＳＲＡＭなどを使ったソフトウェアの機能により、その一部または全部が実現されても良い。固有データ生成部（ＰＵＦ）１は、ＣＰＵがワークエリアとして利用するＳＲＡＭの、電源投入直後の初期値を読み出して、デバイス固有データＵＤとすることができる。
【０１５４】
第２装置３０は、ヘルパーデータとデバイス固有ＩＤの対（ペア）生成する生成回路３と、ダイジェスト生成回路４＿２と、比較回路５と、ＨＦ２生成回路７とを含んで構成される。ＨＦ２生成回路７には、暗号鍵であるＨＦ１を暗号化する暗号化回路８が含まれる。生成回路３は、第１装置（２０、２１）から供給されるデバイス固有データＵＤに基づいて、１対のヘルパーデータＨＤとデバイス固有ＩＤ（ＵＣ）を生成する。その生成環境によって生じるゆらぎ、即ち誤り（ビットエラー）を含むデバイス固有データＵＤに対して、ヘルパーデータＨＤを用いてそのゆらぎを吸収し（誤りを訂正し）、対応するデバイス固有ＩＤ（ＵＣ）を生成することができる。その機能を持つ回路の一例が、第１装置（２０、２１）に含まれる固有ＩＤ生成回路２である。生成回路３で生成されたヘルパーデータＨＤは、第１装置（２０、２１）の固有ＩＤ生成回路２に送信される。生成回路３で生成されたデバイス固有ＩＤ（ＵＣ）は、ダイジェスト生成回路４＿２に供給され、ダイジェストＨ［ＵＣ］が生成される。生成されたダイジェストＨ［ＵＣ］は、比較回路５に送られ、第１装置（２０、２１）のダイジェスト生成回路４＿１で生成されたダイジェストＨ［ＵＣ］と比較される。比較回路５は、例えばＣＲＣ（Circular Redundancy Checking）回路によって構成される。比較回路５による比較の結果、２つのダイジェストの一致を検出したときには、許可信号がＨＦ２生成回路７に対して出力される。ＨＦ２生成回路７は、２つのダイジェストの一致が確認されたときには、暗号鍵であるＨＦ１を暗号化回路８に送り、デバイス固有ＩＤ（ＵＣ）を暗号鍵として使用した暗号化を施して、暗号化された暗号鍵Ｅｎｃ［ＨＦ１］であるハッシュ関数ＨＦ２を生成する。ハッシュ関数ＨＦ２は、第１装置（２０、２１）のＨＦ１復号回路６に送信される。
【０１５５】
図３は、実施形態２に係る暗号鍵供給方法を示すシーケンス図である。
【０１５６】
読出し／書込み機（リーダ／ライタ）２２の操作者は、ＩＣカードをセットしてユーザ認証を行う。例えば、操作者はユーザＩＤとパスワードを入力する。読出し／書込み機２２から暗号鍵管理装置３０に認証情報が送付される。暗号鍵管理装置３０は送付された認証情報に基づいて認証を行い、正当なユーザであると認められると、セッションが確立される。それまでの間、読出し／書込み機２２からＭＣＵ２１へのアクセス、例えばＭＣＵ２１のメモリやレジスタの読出しは、禁止される。
【０１５７】
セッションが確立されると、暗号鍵管理装置３０は、読出し／書込み機２２を介してＭＣＵ２１へ、デバイス固有データ読出し命令を発行する。これを受けてＭＣＵ２１は、デバイス固有データ（ＵＤ）を生成し、読出し／書込み機２２を介して暗号鍵管理装置３０に送付する。以降、ＭＣＵ２１と暗号鍵管理装置３０の間の通信は全て読出し／書込み機２２を介して行われるが、「読出し／書込み機２２を介して」を省略して説明する。暗号鍵管理装置３０は、送付されたデバイス固有データ（ＵＤ）から１対のヘルパーデータＨＤとデバイス固有ＩＤ（ＵＣ）を生成する。暗号鍵管理装置３０は、まず、ヘルパーデータＨＤのみを、ＭＣＵ２１に送付する。ＭＣＵ２１は、送付されたヘルパーデータＨＤを、不揮発性メモリ等に書込み、このヘルパーデータＨＤとＭＣＵ２１の内部で生成したデバイス固有データＵＤからデバイス固有ＩＤ（ＵＣ）を生成する。デバイス固有データＵＤに含まれていた誤り（ビットエラー）が訂正されて、再現性の高いデバイス固有ＩＤ（ＵＣ）が生成される。生成されたデバイス固有ＩＤ（ＵＣ）は、ダイジェスト化されて、メッセージダイジェストＨ［ＵＣ］として暗号鍵管理装置３０に送付される。暗号鍵管理装置３０は、予め、先に生成したデバイス固有ＩＤ（ＵＣ）に基づいて、応答データを照合するための期待値データとしてダイジェストＨ［ＵＣ］を生成しておく。暗号鍵管理装置３０は、送付されたダイジェストＨ［ＵＣ］と、自身が内部で生成したダイジェストＨ［ＵＣ］が一致することを確認する。一致したときには、暗号鍵管理装置３０は、ハッシュ関数ＨＦ２を生成してＭＣＵ２１に送付する。ＭＣＵ２１は送付されたハッシュ関数ＨＦ２を不揮発性メモリに書き込む。ＭＣＵ２１はこれ以降暗号鍵であるＨＦ１を復号して利用することができるようになる。これにより、暗号鍵管理装置３０からＭＣＵ２１への暗号鍵の供給が完了する。
【０１５８】
ＭＣＵ２１が暗号鍵ＨＦ１を利用するには、ヘルパーデータＨＤとハッシュ関数ＨＦ２の両方が必要である。ハッシュ関数ＨＦ２を復号してＨＦ１を得るためには、デバイス固有ＩＤ（ＵＣ）が必要であり、デバイス固有ＩＤ（ＵＣ）を得るためには、内部で生成したデバイス固有データＵＤに発生するゆらぎを、ヘルパーデータＨＤを使って吸収する必要があるからである。既に説明したように、ヘルパーデータＨＤとハッシュ関数ＨＦ２の両方を一度に送ってしまうと、暗号鍵の書込みに対する課金を免れる不正行為を許してしまうという、セキュリティ上の欠陥が生じる。例えば、ＭＣＵ２１の利用者、読出し／書込み機２２の操作者が悪意である場合、ヘルパーデータＨＤとハッシュ関数ＨＦ２の両方を一度に送ってしまうと、その時点から、ＭＣＵ２１は暗号鍵ＨＦ１の利用が可能となるにも関わらず、暗号鍵のＭＣＵ２１への書込みが失敗したと偽って暗号鍵管理装置３０へ報告することにより、暗号鍵の書込みに対する課金を免れることができる。これに対して、図３に示した暗号鍵供給方法によれば、この課題を解決することができる。ＭＣＵ２１が暗号鍵ＨＦ１を利用するために必要な２つのパラメータである、ヘルパーデータＨＤとハッシュ関数ＨＦ２のうち、まず、ヘルパーデータＨＤのみをＭＣＵ２１に書き込む。ＭＣＵ２１で供給されたヘルパーデータＨＤを使って、適切なデバイス固有ＩＤ（ＵＣ）が生成できることを、ダイジェストＨ［ＵＣ］によって確認した上で、もう１つのパラメータである、ハッシュ関数ＨＦ２を送付する。ダイジェストＨ［ＵＣ］の確認が、ＭＣＵ２１が真正であることの認証として機能する。ダイジェストＨ［ＵＣ］は、この認証における応答データの返信に相当する。デバイス固有ＩＤ（ＵＣ）をそのまま応答するように構成しても、原理的には、課題は解決されるが、デバイス固有ＩＤ（ＵＣ）が他の攻撃によって知られるという別のセキュリティ上の欠陥となり得る。デバイス固有ＩＤ（ＵＣ）をそのまま応答するのではなく、ダイジェスト化して応答することにより、安全性をより向上することができる。
＜自動車の電装系に応用された暗号鍵供給システム＞
図８は、自動車の電装系に応用された暗号鍵供給システムを示すデータフロー図である。
【０１５９】
本実施形態に係るＭＣＵ２１＿１が搭載されたＥＣＵ２４＿１と、他のＭＣＵ２１＿２が搭載されたＥＣＵ２４＿２が車載ＬＡＮ（Local Area Network）２６を介して接続されている。車載ＬＡＮ２６は、例えば、ＣＡＮ（Controller Area Network）やＦｌｅｘＲａｙであり、複数のＥＣＵが接続されて互いに通信を行う。図８には、簡略化して２個のＥＣＵ２４＿１と２４＿２のみを示す。車載ＬＡＮ２６であっても、ハッキング等の攻撃に曝される恐れがある。例えば、ＣＡＮを乗っ取って外部からブレーキやライトを制御した攻撃例などが近年報告されている。このような攻撃に対する耐性を持たせ、安全性を向上するために暗号化された通信が採用される。ＭＣＵ２１＿１と２１＿２にはそれぞれ、暗号鍵ＨＦ１を使ってメッセージの暗号化と復号を行う、通信インターフェース２５＿１と２５＿２が内蔵されている。ＥＣＵ２４＿１が自動車のドアのＥＣＵであり、ＥＣＵ２４＿２がコンソールパネルのＥＣＵであり、ドアが交換されたとき、コンソールパネルとドアとの間の暗号化通信が再び行えるようにするためには、交換されたドアのＥＣＵ２４＿１に、同じ暗号鍵ＨＦ１を書き込む必要がある。前述のようなドアの交換は、自動車製造工場やディーラーなどと比べて、セキュリティ環境の低い整備工場で実施される事があるため、秘匿性の高い暗号鍵である暗号鍵ＨＦ１を暗号化しないで提供する事は危険である。そのため、ＭＣＵ２１＿１に読出し／書込み機２２を接続し、暗号鍵管理装置３０から暗号鍵を書き込む。ＭＣＵ２１＿１と読出し／書込み機２２の間は、例えば、ＯＢＤ−ＩＩに準拠する接続ケーブル２３で接続される。暗号鍵管理装置３０は、サーバー等の外部装置であって、セキュアな環境に設置され、読出し／書込み機２２からは、インターネットなどのネットワーク３１を介してアクセスされる。
【０１６０】
ＭＣＵ２１＿１は、固有データ生成部（ＰＵＦ）１＿１を含んで構成され、上述の実施形態で説明した、暗号鍵供給方法によって、暗号鍵ＨＦ１が書き込まれる。固有データ生成部（ＰＵＦ）１＿１によって生成されるデバイス固有データＵＤを使って、ＭＣＵの認証が行われ、実施形態に係る暗号鍵供給方法を実施することにより、読出し／書込み機２２の操作者等が仮に悪意であっても、暗号鍵ＨＦ１を安全に書き込むことができる。他のＥＣＵに搭載されるＭＣＵ、例えばＭＣＵ２１＿２も、同様に構成することができる。
【０１６１】
図８に示した自動車の電装系に応用された暗号鍵供給システムには、実施形態２に限らず、他の実施形態１、３、４のいずれも応用することができる。
＜ネットワーク端末に応用された暗号鍵供給システム＞
図９は、ネットワーク端末に応用された暗号鍵供給システムを示すデータフロー図である。
【０１６２】
インターネット等のネットワーク３１を介してコンテンツサーバ３０に接続されるネットワーク端末２０が示される。ネットワーク端末２０は、ＭＣＵ２１とネットワークインターフェース２７とフラッシュメモリ２９とを含んで構成される。ＭＣＵ２１は、固有データ生成部（ＰＵＦ）１と、暗号鍵ＨＦ１による暗号の復号回路２８を含んで構成される。ＰＵＦ１で生成されたデバイス固有データＵＤは、ネットワークインターフェース２７を介してネットワーク３１上のパケットに乗せられて、サーバー３０に送られ、サーバー３０は上述の暗号鍵供給方法と同様に、暗号鍵ＨＦ１をＭＣＵ２１に供給する。フラッシュメモリ２９には、暗号鍵ＨＦ１を使って暗号化されたコンテンツが格納され、ＭＣＵ２１は復号回路２８によって暗号を復号して、当該コンテンツを利用する。
【０１６３】
ネットワーク端末２０は、例えば電子辞書であって、ユーザが新たなコンテンツを購入するときに、本実施形態を適用することにより、安全性を高めることができる。新たなコンテンツを購入しようとするユーザは、ネットワーク３１経由でコンテンツサーバ３０からコンテンツをダウンロードして、自身のフラッシュメモリ２９に格納する。コンテンツは、ネットワークを介さず、パッケージメディア等によって提供されてもよい。暗号鍵ＨＦ１を使って暗号化されているので、ユーザは、暗号鍵ＨＦ１を入手するまでは、そのコンテンツを利用することができない。ユーザが、コンテンツサーバ３０に対して、当該コンテンツの購入意思を示すと、コンテンツサーバ３０は、これに応答して、ＭＣＵ２１からデバイス固有データＵＤを読出し、上述の暗号鍵供給方法と同様に、暗号鍵ＨＦ１をＭＣＵ２１に供給する。暗号鍵ＨＦ１がＭＣＵ２１に書き込まれて初めてユーザは当該コンテンツを利用することができる。
【０１６４】
上述したように、固有データ生成部（ＰＵＦ）１によって生成されるデバイス固有データＵＤを使って、ＭＣＵ２１の認証が行われるので、暗号鍵ＨＦ１を安全に書き込むことができる。
【０１６５】
図９に示したネットワーク端末に応用された暗号鍵供給システムには、実施形態２に限らず、他の実施形態１、３、４のいずれも応用することができる。
【０１６６】
〔実施形態３〕＜２組のデバイス固有ＩＤとヘルパーデータ＞
図４は、実施形態３に係る暗号鍵供給システムを示すデータフロー図である。
【０１６７】
図２に示した実施形態２に係る暗号鍵供給システムとの違いは、第１装置（２０、２１）が２個の固有ＩＤ生成回路２＿１と２＿２と、ＨＦ２復号回路１０とを備える点である。また、第２装置３０においてヘルパーデータとデバイス固有ＩＤの生成回路３が、２組のヘルパーデータＨＤ１とＨＤ２と、デバイス固有ＩＤ−１とＩＤ−２（ＵＣ１とＵＣ２）とを生成し、ＨＦ２生成回路７がマージ回路９をさらに備える点である。ヘルパーデータＨＤ１はデバイス固有ＩＤ−１（ＵＣ１）と対応し、ヘルパーデータＨＤ２はデバイス固有ＩＤ−２（ＵＣ２）と対応する。固有データ生成部（ＰＵＦ）１が生成する、１個のデバイス固有データＵＤに対して、ヘルパーデータＨＤ１を使うとデバイス固有ＩＤ−１（ＵＣ１）を生成することができ、ヘルパーデータＨＤ２を使うとデバイス固有ＩＤ−２（ＵＣ２）を生成することができる。固有ＩＤ生成回路２＿１と２＿２は、それぞれ、上記の機能を持つ回路である。ヘルパーデータＨＤ１とＨＤ２、デバイス固有ＩＤであるＵＣ１とＵＣ２は、それぞれ異なる値を持つ。ＨＦ２生成回路７に含まれるマージ回路９は、暗号化されたＨＦ１（Ｅｎｃ［ＨＦ１］）と、ヘルパーデータＨＤ２とを結合し、所定のスクランブル処理を施す回路であり、ＨＦ２復号回路１０は、その逆の処理を施して、暗号化されたＨＦ１（Ｅｎｃ［ＨＦ１］）とヘルパーデータＨＤ２とに分離する回路である。他の構成については、実施形態２と同様であるので、説明を省略する。
【０１６８】
図５は、実施形態３に係る暗号鍵供給方法を示すシーケンス図である。
【０１６９】
ユーザ認証からセッション確立を経て、暗号鍵管理装置３０からのデバイス固有データ読出し命令により、ＭＣＵ２１がデバイス固有データ（ＵＤ）を生成し、読出し／書込み機２２を介して暗号鍵管理装置３０に送付するまでのシーケンスは、図３を引用して説明した実施形態２と同様である。
【０１７０】
暗号鍵管理装置３０は、送付されたデバイス固有データ（ＵＤ）から２対のヘルパーデータとデバイス固有ＩＤ、即ち、互いに対応する１対のヘルパーデータＨＤ１とデバイス固有ＩＤ−１（ＵＣ１）と、互いに対応するもう１対のヘルパーデータＨＤ２とデバイス固有ＩＤ−２（ＵＣ２）とを生成する。暗号鍵管理装置３０は、まず、ヘルパーデータＨＤ１のみを、ＭＣＵ２１に送付する。ＭＣＵ２１は、送付されたヘルパーデータＨＤ１を、不揮発性メモリ等に書込み、このヘルパーデータＨＤ１とＭＣＵ２１の内部で生成したデバイス固有データＵＤからデバイス固有ＩＤ−１（ＵＣ１）を生成する。生成されたデバイス固有ＩＤ−１（ＵＣ１）は、ダイジェスト生成回路４＿３によってダイジェスト化されて、メッセージダイジェストＨ［ＵＣ１］として暗号鍵管理装置３０に送付される。暗号鍵管理装置３０は、認証予め、先に生成したデバイス固有ＩＤ−１（ＵＣ１）に基づいて、応答データを照合するための期待値データとしてダイジェストＨ［ＵＣ１］を生成しておく。暗号鍵管理装置３０は、送付されたダイジェストＨ［ＵＣ１］と、自身が内部で生成したダイジェストＨ［ＵＣ１］とが一致することを確認する。一致したときには、暗号鍵管理装置３０は、ハッシュ関数ＨＦ２を生成してＭＣＵ２１に送付する。ハッシュ関数ＨＦ２は、デバイス固有ＩＤ−２（ＵＣ２）を使って暗号化されたＨＦ１（Ｅｎｃ［ＨＦ１］）とヘルパーデータＨＤ２とが結合され、所定のスクランブル処理が施されたデータである。ＭＣＵ２１は送付されたハッシュ関数ＨＦ２は、不揮発性メモリに格納される。ＭＣＵ２１は、ＨＦ２復号回路１０により、ハッシュ関数ＨＦ２を暗号化されたＨＦ１（Ｅｎｃ［ＨＦ１］）とヘルパーデータＨＤ２とに分離する。ヘルパーデータＨＤ２は、固有ＩＤ生成回路２＿２に入力され、デバイス固有データ（ＵＤ）からデバイス固有ＩＤ−２（ＵＣ２）を生成する。生成されたデバイス固有ＩＤ−２（ＵＣ２）を使って、ＨＦ１復号回路６により、暗号化されたＨＦ１（Ｅｎｃ［ＨＦ１］）を復号して、暗号鍵ＨＦ１を得る。ＭＣＵ２１はこれ以降暗号鍵であるＨＦ１を復号して利用することができるようになる。これにより、暗号鍵管理装置３０からＭＣＵ２１への暗号鍵の供給が完了する。
【０１７１】
この実施形態によっても、実施形態２と同様に、ＭＣＵ２１が暗号鍵ＨＦ１を利用するために必要な２つのパラメータである、ヘルパーデータＨＤとハッシュ関数ＨＦ２のうち、まず、ヘルパーデータＨＤのみをＭＣＵ２１に送ってＭＣＵ２１の認証を行い、認証の後にもう１つのパラメータである、ハッシュ関数ＨＦ２を送付する。これにより、暗号鍵の不正な取得を防ぐことができる。
【０１７２】
さらに、認証のためのデバイス固有ＩＤ−１（ＵＣ１）と、暗号鍵ＨＦ１を暗号化するデバイス固有ＩＤ−２（ＵＣ２）を異なるものとしたので、安全性をより向上することができる。
【０１７３】
〔実施形態４〕＜ハッシュ関数による認証＞
実施形態２と実施形態３においては、ＭＣＵ２１が暗号鍵ＨＦ１を利用するために必要な２つのパラメータである、ヘルパーデータＨＤとハッシュ関数ＨＦ２のうち、まず、ヘルパーデータＨＤのみをＭＣＵ２１に送ってＭＣＵ２１の認証を行い、認証の後にもう１つのパラメータである、ハッシュ関数ＨＦ２を送付する。本実施形態４においては、逆に、暗号鍵ＨＦ１の情報を暗号化された状態で含む、ハッシュ関数ＨＦ２を先にＭＣＵ２１に書込み、認証の後にもう１つのパラメータである、ヘルパーデータＨＤを送付する。これによっても同様に、暗号鍵の不正な取得を防ぐことができる。
【０１７４】
図６は、実施形態４に係る暗号鍵供給システムを示すデータフロー図である。
【０１７５】
第１装置（２０、２１）は、固有データ生成部（ＰＵＦ）１と、固有ＩＤ生成回路２と、ダイジェスト生成回路４＿５と、ＨＦ１復号回路６とを含んで構成される。ＰＵＦ１で生成されたデバイス固有データＵＤは、第２装置３０のヘルパーデータとデバイス固有ＩＤの対（ペア）生成する生成回路３に対して送信され、第１装置（２０、２１）内の固有ＩＤ生成回路２に供給される。ダイジェスト生成回路４＿５は、第２装置３０から送付されるハッシュ関数ＨＦ２に対して、所定のハッシュ関数を使って、メッセージダイジェストＨ［ＨＦ２］を生成する。生成されたダイジェストＨ［ＨＦ２］は、第２装置３０の比較回路５に対して送信される。固有ＩＤ生成回路２は、ＰＵＦ１が生成したデバイス固有データＵＤと第２装置３０から供給されるヘルパーデータＨＤとから、デバイス固有ＩＤ（ＵＣ）を生成する。ＨＦ１復号回路６は、第２装置３０から送信される、ハッシュ関数ＨＦ２である暗号化された暗号鍵ＨＦ１を、デバイス固有ＩＤ（ＵＣ）を使って復号して、暗号鍵ＨＦ１を得る。
【０１７６】
第２装置３０は、ヘルパーデータとデバイス固有ＩＤの対（ペア）生成する生成回路３と、ＨＦ２生成回路７と、ダイジェスト生成回路４＿６と、比較回路５と、送信許可回路１１とを含んで構成される。生成回路３は、第１装置（２０、２１）から供給されるデバイス固有データＵＤに基づいて、１対のヘルパーデータＨＤとデバイス固有ＩＤ（ＵＣ）を生成する。生成回路３で生成されたデバイス固有ＩＤ（ＵＣ）は、ＨＦ２生成回路７に出力され、暗号化された暗号鍵Ｅｎｃ［ＨＦ１］であるハッシュ関数ＨＦ２が生成される。ハッシュ関数ＨＦ２は、第１装置（２０、２１）に送付され、ダイジェスト生成回路４＿５を使ってメッセージダイジェストＨ［ＨＦ２］が応答データとして生成される。第２装置３０内で生成されたハッシュ関数ＨＦ２は、ダイジェスト生成回路４＿６に供給され、ダイジェストＨ［ＨＦ２］が生成される。生成されたダイジェストＨ［ＨＦ２］は、比較回路５に送られ、第１装置（２０、２１）の応答データとして生成されたダイジェストＨ［ＨＦ２］と比較される。比較回路５による比較の結果、２つのダイジェストの一致を検出したときには、許可信号が送信許可回路１１に対して出力される。送信許可回路１１は、２つのダイジェストの一致が確認されたときには、ヘルパーデータＨＤが第１装置（２０、２１）の固有ＩＤ生成回路２に送信される。このように、ＨＦ２を先に送付して認証を行っても、実施形態２，３と同様のセキュリティを確保する事が可能となる。
【０１７７】
図７は、実施形態４に係る暗号鍵供給方法を示すシーケンス図である。
【０１７８】
ユーザ認証からセッション確立を経て、暗号鍵管理装置３０からのデバイス固有データ読出し命令により、ＭＣＵ２１がデバイス固有データ（ＵＤ）を生成し、読出し／書込み機２２を介して暗号鍵管理装置３０に送付するまでのシーケンスは、図３を引用して説明した実施形態２と同様である。
【０１７９】
暗号鍵管理装置３０は、送付されたデバイス固有データ（ＵＤ）から１対のヘルパーデータＨＤとデバイス固有ＩＤ（ＵＣ）を生成する。暗号鍵管理装置３０は、さらにハッシュ関数ＨＦ２を生成してＭＣＵ２１に送付する。ＭＣＵ２１は送付されたハッシュ関数ＨＦ２を不揮発性メモリに書き込む。ＭＣＵ２１は、送付されたハッシュ関数ＨＦ２から、ダイジェスト生成回路４＿５を使ってメッセージダイジェストＨ［ＨＦ２］を生成して、暗号鍵管理装置３０に応答する。暗号鍵管理装置３０では、応答データであるダイジェストＨ［ＨＦ２］と、自身がダイジェスト生成回路４＿６を使って生成したダイジェストＨ［ＨＦ２］とを比較することによって、ダイジェストの確認を行う。ダイジェストの一致が確認されると、暗号鍵管理装置３０からＭＣＵ２１へ、ヘルパーデータＨＤが送付される。ＭＣＵ２１ではヘルパーデータＨＤを不揮発性メモリに書込む。ＭＣＵ２１の固有ＩＤ生成回路２では、このヘルパーデータＨＤと内部で生成したデバイス固有データＵＤからデバイス固有ＩＤ（ＵＣ）を生成する。生成されたデバイス固有ＩＤ（ＵＣ）は、ＨＦ１復号回路６に入力される。ＨＦ１復号回路６には、既に送られた、ハッシュ関数ＨＦ２が入力されており、入力されたデバイス固有ＩＤ（ＵＣ）を使ってハッシュ関数ＨＦ２を復号することによって、暗号鍵であるＨＦ１を得ることができる。これ以降暗号鍵であるＨＦ１を復号して利用することができるようになる。これにより、暗号鍵管理装置３０からＭＣＵ２１への暗号鍵の供給が完了する。
【０１８０】
以上述べてきたように、ＭＣＵ２１が暗号鍵ＨＦ１を利用するために必要な２つのパラメータである、ヘルパーデータＨＤとハッシュ関数ＨＦ２のうち、実施形態２、３とは異なり、本実施形態ではまず、ハッシュ関数ＨＦ２のみをＭＣＵ２１に書き込む。ＭＣＵ２１がハッシュ関数ＨＦ２から応答データである、ダイジェストＨ［ＨＦ２］を生成して暗号鍵管理装置３０に応答する。暗号鍵管理装置３０がこのダイジェストＨ［ＨＦ２］の一致を確認した上で、もう１つのパラメータである、ヘルパーデータＨＤを送付する。ダイジェストＨ［ＨＦ２］の確認が、ＭＣＵ２１が真正であることの認証として機能する。ＭＣＵ２１は、ヘルパーデータＨＤが送付されて初めて暗号鍵ＨＦ１を利用することができるようになるので、暗号鍵の不正な取得を防ぐことができる。
【０１８１】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１８２】
例えば、第１装置（２０、２１）と第２装置３０は、具体的に如何なる態様で実施されてもよい。ＭＣＵ２１が周辺の機能を取り込んで単一チップで構成されてもよい。また、別の機能を実現するための回路の一部に取り込まれて構成されてもよい。
【符号の説明】
【０１８３】
１  固有データ生成部（ＰＵＦ）
２  固有ＩＤ生成回路
３  ヘルパーデータ＆デバイス固有ＩＤ生成回路
４  ダイジェスト生成回路
５  比較回路
６  ＨＦ１復号回路
７  ＨＦ２生成回路
８  ＨＦ１暗号化回路
９  マージ回路
１０  ＨＦ２復号回路
１１  ＨＤ送信許可回路
２０  端末装置
２１  ＭＣＵ
２２  読出し／書込み機
２３  接続ケーブル
２４  ＥＣＵ
２５  通信インターフェース
２６  車載ＬＡＮ（ＣＡＮ（Controller Area Network），ＦｌｅｘＲａｙ）
２７  ネットワークインターフェース
２８  復号回路
２９  フラッシュメモリ
３０  暗号鍵管理装置（サーバー等外部装置）
３１  ネットワーク
ＵＤ  デバイス固有データ（誤り（ビットエラー）を含む）
ＵＣ  デバイス固有ＩＤ（誤り（ビットエラー）なし）
ＨＤ  ヘルパーデータ
ＨＦ１  ハッシュ関数（暗号鍵）
ＨＦ２  ハッシュ関数
Ｈ［ｘ］  ダイジェスト
Ｅｎｃ［ｘ］  暗号化されたｘ
【図１】
2015065495.tif 000003
【図２】
2015065495.tif 000004
【図３】
2015065495.tif 000005
【図４】
2015065495.tif 000006
【図５】
2015065495.tif 000007
【図６】
2015065495.tif 000008
【図７】
2015065495.tif 000009
【図８】
2015065495.tif 000010
【図９】
2015065495.tif 000011