(57)【特許請求の範囲】
【請求項１】
搭載システムの電子チップ（ＣＰ）のメモリ（Ｍ）内にあらかじめ設定されたオペレーションの安全化専用の鍵（ＫＦ）の安全化されたローディング方法であって、前記専用鍵（ＫＦ）が、前記電子チップ（ＣＰ）との双方向通信手段を有する安全装置（３）内に含まれ、前記電子チップの前記メモリ（Ｍ）は、対称暗号化技術の秘密暗号鍵（ＫＭ）と非対称暗号化技術の公開鍵（ｎ）とを記憶するように構成され、前記安全装置（３）は、前記専用鍵（ＫＦ）と対称暗号化技術の秘密暗号鍵（ＫＭ）と前記電子チップ（ＣＰ）の前記公開鍵（ｎ）に対応する非対称暗号化技術の秘密鍵（Ｋｐｑ）とを保存する記憶手段を有し、
第１のランダム数（ＮａＣ）を発生するために、電子チップ（ＣＰ）の計算手段を使用し、
第１のランダム数（ＮａＣ）を前記安全装置（３）へ伝達するために、電子チップ（ＣＰ）の通信手段を使用し、
第２ランダム数（ＮａＳ）を生成しそして、前記非対称暗号化技術の秘密鍵（Ｋｐｑ）を用いて、非対称型の署名アルゴリズムの適用によって、前記第１（ＮａＣ）および第２（ＮａＳ）のランダム数にもとづく、第１の暗号文（ＳＲ）を生成するために、安全装置（３）の計算手段を使用し、
少なくとも第１の暗号文を前記電子チップ（ＣＰ）へ伝達するために前記安全装置（３）の前記通信手段を使用し、
前記安全装置（３）を認証するために、前記第１の暗号文（ＳＲ）を確認するために、前記電子チップ（ＣＰ）の計算手段と前記公開鍵（ｎ）を使用して、
前記安全装置（３）を認証する段階と、
前記秘密鍵（ＫＭ）を用いた、対称型暗号アルゴリズムの適用による、前記第１のランダム数（ＮａＣ）に基づく、セッション秘密鍵（ＫＳ）を、前記電子チップ（ＣＰ）内で、生成するために、前記電子チップ（ＣＰ）の計算手段（ＸＯＲ、Ｄ１１−Ｄ３２）を使用し、
前記秘密鍵（ＫＭ）を用いた、対称型暗号アルゴリズムの適用による、前記電子チップ（ＣＰ）により前記安全装置（３）へ伝達された、第１のランダム数（ＮａＣ）に基づく、同じセッション秘密鍵（ＫＳ）を、前記安全装置（３）内で、計算するために、前記安全装置（３）の計算手段を使用し、
前記セッション秘密鍵（ＫＳ）を用いた、対称型暗号アルゴリズムの適用による、前記安全装置（３）により前記電子チップ（ＣＰ）へ伝達された前記第２ランダム数（ＮａＳ）に基づく第２の暗号文（ＣＣ）を生成するために、前記電子チップ（ＣＰ）の計算手段を使用し、
前記安全装置（３）へ前記第２の暗号文（ＣＣ）を伝達するために、前記電子チップ（ＣＰ）の通信手段を使用し、
前記電子チップ（ＣＰ）を認証するために、前記第２の暗号文（ＣＣ）を確認するために、前記安全装置（３）の計算手段と前記計算されたセッション秘密鍵（ＫＳ）を使用して、
前記電子チップ（ＣＰ）を認証する段階と、
前記安全装置（３）の計算手段と前記セッション鍵（ＫＳ）を使用して、前記専用鍵（ＫＦ）を暗号化する段階と、
前記電子チップ（ＣＰ）へ前記暗号化された専用鍵（ＫＦ）を伝達するために、前記安全装置（３）の通信手段を使用する段階と、
前記伝達された暗号化された専用鍵（ＫＦ）を前記電子チップ（ＣＰ）の前記メモリ（Ｍ）へ転送するために、前記電子チップ（ＣＰ）の転送手段を使用する段階と、
を有することを特徴とする方法。
【請求項２】
前記暗号化された専用鍵（ＫＦ）を伝達し及び転送する段階が、鍵のローディングコマンド（Ｃｃｈ）によって開始され、前記鍵のローディングコマンド（Ｃｃｈ）は、前記鍵のローディングコマンド（Ｃｃｈ）へ非対称型の署名アルゴリズムを適用するように構成された前記安全装置（３）の計算手段によって署名される（ＳＲ’）ことを特徴とする請求項１に記載の方法。
【請求項３】
前記非対称アルゴリズムがラビン型と呼ばれるアルゴリズムであることを特徴とする請求項１に記載の方法。
【請求項４】
前記第１（ＮａＣ）および第２（ＮａＳ）ランダム数が、１６オクテットの長さを有し、前記第１の暗号文（ＳＲ）が、前記第１（ＮａＣ）および第２（ＮａＳ）のランダム数（ＤＳＲ３）と、ヘッダを形成するオクテットの定められた第１の数（ＤＳＲ２）と、充填用のオクテットの定められた第２の数（ＤＳＲ１）との連結に対する前記ラビンアルゴリズムの適用によって得られ、前記連結の全長（ＤＳＲ）が、前記公開鍵（ｎ）の長さと同等の９６オクテットであることを特徴とする請求項３に記載の方法。
【請求項５】
前記専用鍵（ＫＦ）が前記セッション秘密鍵（ＫＳ）によって暗号化（ＤＳＲ’２）され、ヘッダを形成するオクテットの定められた第３の数（ＤＳＲ’３）と充填用のオクテットの定められた第４の数（ＤＳＲ’１）とで連結され、前記連結の全長（ＤＳＲ’）が、９６オクテットであり、前記連結（ＤＳＲ’）が、前記電子チップ（ＣＰ）への前記転送の前に、前記ラビンアルゴリズムの適用によって署名されることを特徴とする請求項３に記載の方法。
【請求項６】
前記対称アルゴリズムがトリプル「ＤＥＳ」と呼ばれる型のアルゴリズムであることを特徴とする請求項１に記載の方法。
【請求項７】
前記第１のランダム数（Ｎａｃ）と前記秘密鍵（ＫＭ）が１６オクテットの長さを有し、前記セッション秘密鍵の前記生成段階が、
前記トリプルＤＥＳアルゴリズムの前記第１のランダム数（ＮａＣ）の最下位の８オクテット（ＮａＣ１）に対する適用であって、前記トリプルＤＥＳアルゴリズムは、連続して、暗号化鍵として前記秘密鍵の最上位の８オクテット（ＫＭ１）を有する直接「ＤＥＳ」（Ｄ１１）、暗号化鍵として前記秘密鍵の最下位の８オクテット（ＫＭ２）を有する逆「ＤＥＳ」（Ｄ２１）及び、暗号化鍵として前記秘密鍵の最上位の８オクテット（ＫＭ１）を有する直接「ＤＥＳ」（Ｄ３１）をを使用して適用され、前記トリプルＤＥＳアルゴリズムが前記セッション秘密鍵の最上位の８オクテット（ＫＳ１）を生成する、適用と、
前記セッション秘密鍵の最上位の８オクテット（ＫＳ１）と、前記第１のランダム数（ＮａＣ）の最上位の８オクテット（ＮａＣ２）との間への「排他的論理和」論理オペレーション（ＸＯＲ）の適用と、
前記トリプル「ＤＥＳ」アルゴリズムの前記論理オペレーションの結果への適用であって、前記トリプル「ＤＥＳ」アルゴリズムは、連続して、暗号化鍵として前記秘密鍵の最上位の８オクテット（ＫＭ１）を有する直接「ＤＥＳ」（Ｄ１２）と、暗号化鍵として前記秘密鍵の最下位の８オクテット（ＫＭ２）を有する逆「ＤＥＳ」（Ｄ２２）と、暗号化鍵として前記秘密鍵の最上位の８オクテット（ＫＭ１）を有する直接「ＤＥＳ」（Ｄ３２）とを使用し、前記トリプル「ＤＥＳ」アルゴリズムは、前記セッション秘密鍵（ＫＳ）の最下位の８オクテット（ＫＳ２）を生成し、前記最上位のオクテット（ＫＳ１）と最下位のオクテット（ＫＳ２）がともに前記セッション秘密鍵（ＫＳ）を形成する、
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記第２のランダム数（ＮａＳ）と前記セッション秘密鍵（ＫＳ）が１６オクテットの長さを有し、前記カード暗号文の前記生成段階が、
前記第２のランダム数（ＮａＳ）の最上位の８オクテット（ＮａＳ１）と１６進法の値００に固定されている８オクテットとの間への「排他的論理和」論理オペレーション（ＸＯＲ１）の適用と、
前記トリプル「ＤＥＳ」アルゴリズムの前記論理オペレーションの結果への適用であって、前記トリプル「ＤＥＳ」アルゴリズムは、連続して、暗号化鍵として前記セッション秘密鍵の最上位の８オクテット（ＫＳ１）を有する直接「ＤＥＳ」（Ｄ１１）と、暗号化鍵として前記セッション秘密鍵の最下位の８オクテット（ＫＳ２）を有する逆「ＤＥＳ」（Ｄ２１）と、暗号化鍵として前記セッション秘密鍵の最上位の８オクテット（ＫＳ１）を有する直接「ＤＥＳ」（Ｄ３１）を使用し、前記トリプル「ＤＥＳ」アルゴリズムは、前記第２の暗号文（ＣＣ）の最上位の８オクテット（ＣＣ１）を生成する、適用と、
前記第２の暗号文（ＣＣ）の最上位の８オクテット（ＣＣ１）と前記第２のランダム数（ＮａＳ）の最下位の８オクテット（ＮａＳ２）との間への「排他的論理和」論理オペレーション（ＸＯＲＳ）の適用と、
前記トリプル「ＤＥＳ」アルゴリズムの前記論理オペレーションの結果に対する適用であって、前記トリプル「ＤＥＳ」アルゴリズムは、連続して、暗号化鍵として前記セッション秘密鍵の最上位の８オクテット（ＫＳ１）を有する直接「ＤＥＳ」（Ｄ１２）と、暗号化鍵として前記セッション秘密鍵の最下位の８オクテット（ＫＳ２）を有する逆「ＤＥＳ」（Ｄ２２）と、暗号化鍵として前記セッション秘密鍵の最上位の８オクテット（ＫＳ１）を有する直接「ＤＥＳ」（Ｄ３２）とを使用し、前記トリプル「ＤＥＳ」アルゴリズムは、前記第２の暗号文（ＣＣ）の最下位の８オクテット（ＣＣ２）を生成し、前記最上位のオクテット（ＣＣ１）と最下位のオクテット（ＣＣ２）がともに前記第２の暗号文（ＣＣ）を形成する、適用と、
を有することを特徴とする請求項６に記載の方法。
【請求項９】
電子チップの前記搭載システムがチップカード（ＣＰ）であり、前記専用鍵が、チップカードの予備初期化オペレーションを安全化するのに役立つ製造用の鍵（ＫＦ）であることを特徴とする請求項１に記載の方法。
【請求項１０】
電子チップの搭載システム（ＣＰ）であって、あらかじめ設定されたオペレーションの安全化専用鍵（ＫＦ）を受け取ることができるように、双方向通信を介して安全装置（３）と協働するように構成された通信手段と、データプロセッサおよびデータメモリを有し、前記データメモリ（Ｍ）が対称型暗号化技術の秘密暗号化鍵（ＫＭ）と非対称暗号化技術の公開鍵（ｎ）とを保存するように構成され、前記安全装置（３）は、
同じ対称型暗号化技術の秘密暗号化鍵（ＫＭ）と、
前記公開鍵（ｎ）に対応する非対称暗号化技術の秘密鍵（Ｋｐｑ）と、
前記専用鍵（ＫＦ）と、
を記録するように構成された記憶手段を有し、
前記電子チップシステム（ＣＰ）は、
前記安全装置（３）に伝達される第１のランダム数（ＮａＣ）を生成するための手段と、
前記安全装置（３）の計算手段により生成された第２のランダム数（ＮａＳ）と、
非対称アルゴリズムの適用と前記非対称暗号化技術の秘密鍵（Ｋｐｑ）の使用によって、前記第１のランダム数（ＮａＣ）および前記第２のランダム数（ＮａＳ）から前記安全装置（３）の計算手段により生成された、第１の認証暗号文（ＳＲ）と、
を含む認証データを前記安全装置（３）から受信する手段と、
対称型アルゴリズムの適用と前記秘密鍵（ＫＭ）の使用によって、前記第１のランダム数（ＮａＣ）から、セッション秘密鍵（ＫＳ）を生成するための手段（ＸＯＲ、Ｄ１１〜Ｄ３２）と、
対称型アルゴリズムの適用と前記セッション秘密鍵（ＫＳ）の使用によって、前記安全装置（３）から受け取った前記第２のランダム数（ＮａＳ）から、第２の暗号文（ＣＣ）を生成するための手段と、
前記安全装置（３）から、前記セッション鍵（ＫＳ）を用いて暗号化（ＤＳＲ’２）された前記専用鍵（ＫＦ）を受け取り、前記専用鍵を前記メモリ（Ｍ）内へ記録するための手段と、
を含むことを特徴とするシステム。
【請求項１１】
前記データプロセッサとメモリが組み込まれたチップカード（ＣＰ）とを更に有し、
前記専用鍵が、製造用の鍵（ＫＦ）であり、
前記安全化のためのオペレーションが、前記チップカード（ＣＰ）の予備初期化のオペレーションであることを特徴とする請求項１０に記載のシステム。
【発明の詳細な説明】
【０００１】
本発明は、専用の暗号鍵の安全化されたロードによる、所定のオペレーション、特に電子チップに搭載されたシステムの予備初期化段階の安全化方法に関するものである。
【０００２】
本発明はとりわけチップカードに適用される。
【０００３】
本発明はまた、その方法を実施するための搭載システムに関する。
【０００４】
本発明の枠組みにおいて、「予備初期化」という用語は、一般的な意味を有する。特に、従来のチップカードの製造段階、またはオープン型と呼ばれるチップカードの初期化段階に先立つ段階を意味する。
【０００５】
同様に、「搭載システム」という用語は、メモリおよび一般にマイクロプロセッサまたはマイクロコントローラによって構成されるデータ処理手段を有する電子チップを自由に使用できるという事実を共通に有するさまざまなシステムまたは装置を意味する。このような搭載システムは、特にチップカードによって構成することができる。
【０００６】
わかりやすくするために、以下においては本発明の好ましい適用例、すなわちチップカードの予備初期化の例を紹介する。
【０００７】
チップカードベースの適用例の大半においては、安全性に関する機能はそれらチップカードに帰属する。さらにこの安全性という用語はそれ自体が、秘密性、認証等のさまざまなコンセプトを有する。
【０００８】
そのため、これらの機能に必要な、いわゆる秘密データ、すなわち暗号アルゴリズム、暗号秘密鍵、識別データ等が電子チップの上述のメモリ手段の不揮発性部分に最終的に（いわゆる「ＲＯＭ」（読取り専用メモリ）型の固定メモリの使用）、または半固定的に（「ＥＥＰＲＭ」（電気的に消去可能でプログラム可能な読取り専用メモリ）型の再書込み可能メモリ）書き込まれる。
【０００９】
それらのデータには、従来、チップカードのあらゆる予備初期化段階を安全化することができる製造鍵と呼ばれる鍵が存在する。
【００１０】
通常、チップカードの製造は、２つの大きな段階で実施される。第１の段階中には、電子チップは、以下「製造者（ｆｏｎｄｅｕｒ）」と呼ぶ第１のエンティティによって製造される。第２の段階中、この電子チップはモジュールに置かれ、その後基板、すなわち、いわゆるチップカードを構成するほぼ長方形のプラスチック片内に組み込まれる。このオペレーションは、一般に、以下「バインダ（ｅｎｃａｒｔｅｕｒ）」と呼ばれる第１のエンティティとは別の第２のエンティティによって実施される。
【００１１】
以下「プレパーソナライザ」と呼ばれる第３のエンティティは、上述の予備初期化オペレーションを行う。
【００１２】
現行の技術においては、ほぼ体系的に、チップカードの予備初期化のあらゆる段階を安全化する製造鍵は、暗号化することなく、バインダによるあらかじめの認証を行わずに、書き込まれる。この作業モードはいくつかの問題を提起する。
【００１３】
製造者からバインダへのカードの運搬中に、カードが盗まれる場合には、いかなる論理（ソフトウェア）の安全性も保障されない。カードは、不正に予備初期化され、以下のように悪意をもって使用される恐れがある。
【００１４】
完全にクローン化されたカードを製作する不正行為者が、マーキングされることなくバインディングチェーン内にカードを挿入する恐れがある。
【００１５】
簡単なオンラインスパイ行為によって、暗号化せずに伝達された製造鍵を得ることが可能になってしまう。
【００１６】
解決策は、「ポイント下（ｓｏｕｓ  ｐｏｉｎｔｅ）」と呼ばれるオペレーションの際に、製造者によって製造鍵を書き込ませることであるが、その方法は非常にコストがかかる。なぜなら秘密のデータは、各カード（固定されていないデータ）について異なっていなければならないからである。その結果、さらに製造者の製造頻度にうまく適合しなくなってしまう。したがって、コストがかかるこの方法は現実的でなく、そのことによって実質的には決して実施されることはない。
【００１７】
本発明の目的は、以上にいくつかの例を挙げたような従来の技術による装置の不都合を解消することにある。
【００１８】
そのために、本発明の第１の有利な特徴によれば、製造鍵の書き込みは、偽造「ＳＡＭ」モジュールまたは、クローン化された、あるいはまた、偽造された「ＲＯＭまたは他の」不揮発性メモリの使用を防ぐことができるように、英語の略語「ＳＡＭ」（「安全アクセスモジュール」の意味）で知られている機構とチップカードとの間の相互認証によって保護される。以下では、簡略化するために、このモジュールを「ＳＡＭ」と呼ぶ。このモジュールは、たとえばマイクロコンピュータまたはチップカード内に収納することができる。一般に、「ＳＡＭ」は、「鍵ホルダ」機構であるとみなすことができる。この機構は、実際に、秘密鍵が外部世界に伝えられないという意味において、決して漏洩されない秘密鍵を保存する。この鍵は、上述の相互認証を可能にするその他の鍵を計算するのに役立つ。
【００１９】
チップカードによる「ＳＡＭ」の認証は、非対称型の暗号アルゴリズムを使用する。たとえば、銀行での適用分野において頻繁に使用され、略語「ＲＳＡ（特許ＵＳ  ４  ４０５ ８２９  Ａ内で指定される発明者、Ｒｉｖｅｓｔ、Ｓｈａｍｉｒ、Ａｄｌｅｍａｎをとって）で知られているアルゴリズムを対象とすることができる。しかしながら、チップカードが限定された情報処理リソースしか備えていない場合には、そのために「ラビン」と呼ばれるアルゴリズムを使用することが好ましい。実際に、ラビンの場合には、必要な計算力はより小さく、その結果、チップカード型または類似の装置に固有の特徴にさらに適合する。したがって、以下では、いかなる点においても本発明の範囲を限定することなく、使用される非対称アルゴリズムは「ラビン」アルゴリズムであるとみなされる。
【００２０】
「ＳＡＭ」モジュールによるチップカードの認証に関しては、このモジュールは、有利にも、好ましくは「トリプルＤＥＳ（データ暗号システム）」と呼ばれる型の対称アルゴリズムに基づいている。
【００２１】
チップカードによる「ＳＡＭ」の認証にラビンアルゴリズムと、「ＳＡＭ」によるチップカードの認証に「トリプルＤＥＳ」アルゴリズムを使用することによって、安全化メカニズムを実施するためには暗号プロセッサに頼る必要がなく、そのことはまた、本発明の対象となる用途の枠組みにおいても有利である。
【００２２】
次に、本発明による方法によって、認証された「ＳＡＭ」は、それ自体が認証されたチップカードに安全に製造鍵をロードすることが可能になる。
【００２３】
したがって、本発明は、搭載システムの電子チップのメモリ手段への、あらかじめ定められたオペレーションの安全化に専用の鍵の安全なローディング方法を主な対象とし、前記専用鍵は、前記電子チップとの双方向通信手段を備える安全装置内に含まれ、さらに、前記電子チップの前記メモリ手段が、対称秘密暗号鍵と非対称公開鍵とを保存し、前記安全装置が、同じ対称秘密暗号鍵と、前記電子チップの公開鍵に対応する非対称秘密鍵とを保存することを特徴とし、
前記電子チップによる前記安全装置の認証からなり、第１のランダム数の電子チップによる生成と安全装置へのその伝達ステップと、前記非対称秘密鍵を用いて、非対称型の署名アルゴリズムの適用によって、第１および第２のランダム数に基づく、第２のランダム数と第１の暗号文の安全装置による生成と、前記公開鍵を用いた確認によって前記認証を実施することができるように、前記電子チップへのその伝達ステップとを含む第１の段階と、
前記電子チップの認証からなり、前記秘密暗号鍵を用いた、対称型暗号アルゴリズムの適用による、前記第１の乱数に基づく、セッション秘密鍵の電子チップと前記安全装置による生成ステップと、前記セッション秘密鍵を用いた、対称型暗号アルゴリズムの適用による第２の暗号文の生成ステップと、前記セッション鍵を用いた確認によって前記認証を行うことができるように前記安全装置へのその伝達ステップとを含む第２段階と、
前記セッション秘密鍵によって暗号化された、前記専用鍵の前記電子チップの前記メモリ手段内への伝達段階とを
有することを特徴とする方法を対象とする。
【００２４】
本発明はさらに、その方法の実施のために電子チップ型搭載システムを対象とする。
【００２５】
ここで、添付の図面を参照して、本発明をより詳細に説明する。
【００２６】
以下においては、発明の範囲を限定することなく、本発明の好ましい適用の枠組み、すなわち反対記載がない限り、チップカードの予備初期化段階の安全化について説明する。
【００２７】
本発明による方法は、チップカードと「ＳＡＭ」モジュールの観点から、以下ではマスター鍵ＫＭと呼ばれる対称秘密鍵を必要とする。この鍵ＫＭは、電子チップまたは「チップ」が「製造者」と呼ばれたエンティティから出されるや否や、存在しなければならない。
【００２８】
この鍵ＫＭの保存は、電子チップが備えるメモリ、すなわち「ＲＯＭ」型の固定メモリまたは「ＥＥＰＲＯＭ」型の半固定メモリまたは類似メモリの不揮発性部分内で実行される。
【００２９】
本発明の好ましい変形実施形態において、さらに第１の特徴によれば、鍵ＫＭは、製造者によって「ＥＥＰＲＯＭ」で「ピークの下に」書き込まれる。鍵ＫＭを構成するオクテットは、極端に敏感なデータであり、安全オクテットとして処理されなければならない。「ＥＥＰＲＯＭ」による保存は、複数のロットのカードのために場合によってはこの鍵ＫＭの多様化を可能にする。
【００３０】
本発明による方法はまた、チップカードの観点から、以下では非対称公開鍵ｎと呼ばれる非対称公開鍵を必要とする。あらゆるカードについて固定されているこの鍵ｎは、電子チップまたは「チップ」が「製造者」と呼ばれたエンティティから出されるとすぐに存在しなければならない。
【００３１】
この鍵ｎの保存は、電子チップが備えているメモリ、すなわち「ＲＯＭ」型の固定メモリおよび／または「ＥＥＰＲＯＭ」型の半固定メモリまたは類似メモリの不揮発性部分内で実行される。
【００３２】
本発明による好ましい変形実施形態において、さらに第２の特徴によって、電子チップの不揮発性メモリは、物理的および論理的な独自のハイブリッドの、コンフィギュレーションを有する。「ＲＯＭ」型の固定部分と、たとえば「ＥＥＰＲＯＭ」型の再プログラミング可能な半固定部分とが設備される。以下に明確に述べる独自の方法によってこれら２つのメモリゾーンの間に上述した公開鍵のオクテットが分配される。オクテットは、チップが製造者から出されるとすぐに存在しなければならない。
【００３３】
メモリの「ＥＥＰＲＯＭ」部分の中に「ピーク下に」書き込まれたオクテットは、極端に敏感であるとみなされ、そのため、安全オクテットとして処理されなければならない。
【００３４】
たとえば、わかりやすくするために、７６８ビット（つまり９６オクテット）の長さの公開鍵を見てみよう。この鍵は、全体が「ＲＯＭ」メモリ内にある。しかしながら、本発明による方法の好ましい実施形態によれば、「ＲＯＭ」型のメモリゾーン内に意図的に誤った方法で１２のブロックごとに１オクテットを記録し、この誤った値は、「ＲＯＭ」型のメモリのこの部分内に記録されたコード内に自発的に書き込まれている。オクテットの正しい値は、「ＥＥＰＲＯＭ」型の部分内に記録される。したがって、この例においては、８オクテット（すなわち、９６／１２＝８）はメモリの「ＥＥＰＲＯＭ」型の部分内にプログラミングされなければならない。それらのデータは固定である。なぜなら公開鍵は多様化されないからである。
【００３５】
さらに、公開鍵ｎの１６０ビットに対し「ハッシュ」という用語で知られているオペレーションが実行される。その結果は、鍵ｎを使用するごとに確認されることができるように、「ＲＯＭ」メモリに保存される。そのために、有利にも、略語「ＳＨＡ−１」で知られている型のアルゴリズムが使用される。したがって、この独自のアルゴリズムは、チップカード内に配置されなければならない。
【００３６】
公開鍵ｎの独自の保存に関連して、「ハッシュ」は、メモリの「ＲＯＭ」および「ＥＥＰＲＯＭ」型の２つの部分の完全性を同時に保証することができる。
【００３７】
図１は、チップカードＣＰのメモリのこのようなコンフィギュレーションを概略的に示す図である。説明した例においては、メモリ手段Ｍは、特に「ＲＯＭ」型のメモリ部分１と、「ＥＥＰＲＯＭ」型のメモリ部分２とを有する。同じく説明した例においては、「ＲＯＭ」メモリ１の中に、上述の公開鍵ｎを示す１２オクテットのデジタルデータからなる８つのブロックＢ１からＢ８を記録する。これら８つのブロックＢ１からＢ８の各々の中に、意図的に誤った１つのオクテット、例えばオクテットＯ１からＯ８が存在する。「ＥＥＰＲＯＭ」２メモリ内には、これらの誤ったオクテットＯ１からＯ８に対応する８つの正確なオクテットＯ’１からＯ’８を記録する。
【００３８】
ここで、チップカード内に製造用と呼ばれる鍵の安全化されたロードを可能にするステップを説明しよう。
【００３９】
本発明による方法の第１の段階は、チップカードＣＰに対する「ＳＡＭ」の認証に存在する。
【００４０】
この段階は、特に、カード内に含まれる非対称公開鍵ｎに対応する非対称秘密鍵を使用することによって暗号文の「ＳＡＭ」による計算ステップを含む。実際には、鍵は、例えばｐおよびｑと呼ばれる２つの素数で構成される。「ＳＡＭ」の非対称秘密鍵は例えばＫｐｑと呼ばれる。いいかれば、「ＳＡＭ」は、チップカードＣＰを識別し、そのチップカードは、公開鍵ｎにより対話者を認識する。
【００４１】
図２に示されているように、出力オーダーＯＳを用いて、「ＳＡＭ」３は、チップカードＣＰから、１６のオクテットについてランダム数ＮａＣを回収する。この数ＮａＣは、以下では「カードランダム数」と呼ばれ、たとえば、チップカードＣＰの計算手段によって、ここに示された例ではマイクロプロセッサＣＰＵによって生成することができる。「ＳＡＭ」３はまた、「ＳＡＭランダム数」ＮａＣと呼ばれる１６オクテットのランダム数を生成させる。
【００４２】
以下ではＳＲと呼ぶラビン署名は、ＤＳＲと参照記号が付された、９６オクテットのデータに対し、「ＳＡＭ」３によって計算される。これらのデータＤＳＲは、上述の９６オクテットに到達することができるように、図３に示されている連結に合致することができる：
たとえば１６進法における次の固定コンフィギュレーション：０１、ＦＦ、・・・ＦＦを有する５９の充填オクテットの列ＤＳＲ１。
【００４３】
相互認証のコマンドのヘッダと呼ばれる５オクテットの列ＤＳＲ２および、
上述の数ＮａＳおよびＮａＣの連結によって構成された３２のオクテットＤＳＲ３。
【００４４】
相互認証コマンドのヘッダの５オクテット列ＤＳＲ２は、チップカードＣＰが規格「ＩＳＯ  ７８１６−１」から「ＩＳＯ  ７８１６−４」に準拠するプロトコルに従ってチップカードの読取装置によって読取られる場合、有利には「ＡＰＤＵ」と呼ばれる型のコマンドの内容によって構成することができる。より厳密には、ローディング命令に関連したコードを問題にすることができる。
【００４５】
再び図２を参照すると、ラビン署名ＳＲとランダム数ＮａＳは、相互認証を指定する入出力命令ＯＥＳによって、チップカードＣＰに送られる。「ＳＡＭ」３は、自ら保存している秘密鍵が決して漏洩しないことから、この署名ＳＲを生成することができる。チップカードＣＰは、それが保存する非対称公開鍵ｎを用いてラビン署名を確認し、その結果「ＳＡＭ」３の認証を可能にする。
【００４６】
方法の第２の段階は、２つのエンティティの相互認証を補足することができるように、「ＳＡＭ」３に対するチップカードＣＰの認証からなる。
【００４７】
マスタ秘密鍵ＫＭと１６オクテットの上述のランダム数ＮａＣから、チップカードＣＰは、チップカードＣＰに固有の暗号文を計算することができる、１６オクテットのセッションと呼ばれる対称秘密鍵ＫＳを生成する。
【００４８】
好ましくは、認証用と呼ばれるこのセッション秘密鍵ＫＳは、カードランダム数ＮａＣの２つの部分ＮａＣ１およびＮａＣ２についてのトリプル型のアルゴリズム「ＤＥＳ」による暗号化を実施することによって得られる。
【００４９】
より厳密には、セッション秘密鍵ＫＳの計算プロセスは、図４のフローチャートが示しているように実行される。
【００５０】
よく知られているように、トリプル「ＤＥＳ」型のアルゴリズムによる暗号化は、直接「ＤＥＳ」により、鍵を用いた（マスタ秘密鍵ＫＭの場合には）、第１の暗号化、第２の反対の型の「ＤＥＳ」、および同じく第３の「ＤＥＳ」を直接に連続で含む。
【００５１】
チップカードランダム数ＮａＣの８オクテットの「最下位」部分ＮａＣ１では、トリプル「ＤＥＳ」は、Ｄ１１、Ｄ２１、Ｄ３１と参照記号が付された３つのモジュールを連続して用いて直接実行される。モジュールＤ１１およびＤ３１は、鍵の入力において、鍵ＫＭの８オクテットの「最上位」部分ＫＭ１の場合には、同じ値の鍵を受け取るのに対して、モジュールＤ２１は、その鍵の入力時に同じく８オクテットの「最下位」部分ＫＭ２を受け取る。モジュールＤ３１の出力によって、セッション秘密鍵ＫＳの８オクテットの「最上位」部分ＫＳ１が得られる。この８オクテットのワードＫＳ１は、通常チップカードＣＰに備えられるメモリのレジスタまたはＲＡＭの一部内に一時的に保存されることができる。
【００５２】
部分ＫＳ１は、ＸＯＲと参照記号が付された「排他的論理和」型の論理回路の第１の入力に再注入される。この論理回路は、第２の入力において、チップカードランダム数ＮａＣの８オクテットの「最上位」部分ＮａＣ２を受け取る。この論理回路ＸＯＲの出力は、トリプル「ＤＥＳ」における暗号化チェーンの入力に伝達される。このトリプル「ＤＥＳ」は、参照記号Ｄ１２、Ｄ２２、Ｄ３２が付された連続する３つのモジュールを用いて実行される。先述したように、モジュールＤ１２およびＤ３２は、それらの鍵の入力において、鍵の同じ値、この場合には、鍵ＫＭの８オクテットの「最上位」部分ＫＭ１を受け取るのに対して、モジュールＤ２２は、その鍵入力において、同じく８オクテットの「最下位」部分ＫＭ２を受け取る。モジュールＤ３２の出力では、セッション秘密鍵ＫＳの８オクテットの「最下位」部分ＫＳ２が得られる。この８オクテットのワードＫＳ２は、同じく、メモリレジスタ内に、またはＲＡＭメモリの一部内に一時的に保存されることができる。
【００５３】
秘密鍵ＫＭは、先述したように、「ＲＯＭ」に存在する、または「ＥＥＰＲＯＭ」に「ピーク下」で書き込まれることができる。
【００５４】
「排他的論理和」論理オペレーションが、特定の論理回路ＸＯＲを使用する代わりにソフトウエアによって実行されるのは当然のことであり、それは、マイクロプロセッサＣＰＵのコマンドの下で、たとえば「ＲＯＭ」メモリ１に記録されたルーチンに頼ることによって行われる。同様に、暗号化オペレーション「ＤＥＳ」または「ＤＥＳ−１」は、一般に、マイクロプロセッサＣＰＵのコマンドの下で、メモリ「ＲＯＭ」１内に記録されたアルゴリズムを用いて実行される。中間結果は、レジスタまたはＲＡＭメモリ内に保存される。
【００５５】
「ＳＡＭ」３は、上述の方法によって、同じ秘密セッション鍵ＫＳを計算することができる。なぜなら、これはまたマスタ秘密鍵ＫＭも保存するからである。
【００５６】
追加ステップにおいては、チップカードＣＰは、以下「カード暗号文」ＣＣと呼ばれるオクテット列を生成する。カード暗号文は、計算したばかりのセッション秘密鍵ＫＳを用いてチップカードＣＰに伝達されるランダム数「ＳＡＭ」を暗号化することによって得られる。
【００５７】
図５は、そのプロセスを示している。プロセスは、セッション秘密鍵ＫＳを計算することができたプロセスと類似する。プロセスは特に、「排他的論理和」機能およびトリプルアルゴリズム「ＤＥＳ」による暗号化に頼る。こうして、先の図面に共通のエレメントは、同じ参照記号が付され、必要な場合にしか再記されない。
【００５８】
「ＳＡＭ」ランダム数ＮａＳは、「ＳＡＭ」３から受け取られ、メモリの場所、すなわちレジスタまたは他の場所に一時的に保存される。このランダム数ＮａＳの８オクテットの最上位部分ＮａＳ１は、チェーンＤ１１からＤ３１によるトリプル「ＤＥＳ」に従う。しかしながら、それはまず、第１の回路ＸＯＲ１を用いて（またはソフトウェアプロセスによって）、１６進法「００」の値の８オクテットの最初のチェーンの値Ｎｆによる、「排他的論理和」論理オペレーションを受ける。上述のチャネルに伝達されるのはこの回路ＸＯＲ１の出力である。暗号化の鍵は、先のステップで計算されたセッション秘密鍵ＫＳである。より厳密には、「ＤＥＳ」の鍵Ｄ１１およびＤ３１の入力は、この鍵ＫＳの最上位の８オクテットＫＳ１を受け取り、「ＤＥＳ」の鍵Ｄ２１の入力は、この鍵ＫＳの最下位の８オクテットＫＳ２を受け取る。
【００５９】
このプロセスは、暗号文ＣＣの最上位の８オクテットＣＣ１を計算することを可能にする。これらのオクテットＣＣ１は、「ＳＡＭ」ランダム数ＮａＳの最下位のオクテットＮａＳ２について、より正確には、第２の回路「排他的論理和」ＸＯＲ２の入力の１つにおいて、トリプル「ＤＥＳ」の暗号化チェーンＤ１２からＤ３２の入力に再注入され、最初の入力は、ランダム数ＮａＳの最下位の８オクテットを受け取る。先述のチェーンに伝達されるのはこの回路ＸＯＲ２の出力である。「ＤＥＳ」の鍵Ｄ１２およびＤ３２の入力は、この鍵ＫＳの最上位の８オクテットＫＳ１を受け取り、「ＤＥＳ」の鍵Ｄ２２の入力は、この鍵ＫＳの最下位の８オクテットＫＳ２を受け取る。「ＤＥＳ」Ｄ３２の出力は、カードＣＣの暗号文の最下位の８オクテットＣＣ２を生成する。
【００６０】
この暗号文は、相互認証の入出力のオーダーＯＥＳ（図２）によって、「ＳＡＭ」３に伝達される。このステップが終わると、「ＳＡＭ」３は、上述したようにセッション鍵Ｋｓも計算しているので、カードの暗号文ＣＣからチップカードＣＰを認証することができる。
【００６１】
最後のステップは、ローディングコマンドＣｃｈを用いてチップカードＣＰのメモリ内に製造用と呼ばれる鍵ＫＦをロードすることからなる。この鍵ＫＦは、「ＣＢＣ」（「暗号化された連結ブロック」）と呼ばれるモードにおいてセッション秘密鍵Ｋｓを用いた暗号化によって安全化される。
【００６２】
ローディングコマンドが失敗すると、セッション鍵ＫＳは失われ、新しい相互認証が、新しいセッション鍵の計算とともに必要である。
【００６３】
ローディングコマンドは、「ＳＡＭ」３によってラビン署名を用いて署名される。図６は、ラビン署名ＳＲ’を計算するのに役立つデータＤＳＲ’を概略的に示している。
【００６４】
合計して、ＤＳＲ’は、９６オクテットを含む。ＤＳＲ’は、この例においては以下の３つの部分を含む：
【００６５】
ヘッダＤＳＲ’３、有利には、図２の場合のようなコマンド「ＡＰＤＵ」。
【００６６】
製造鍵ＫＦを表す、暗号化されたデータＤＳＲ’２、すなわち、Ｄｏ１からＤｏｎ（ｎは製造鍵ＫＦの合計オクテット数を示す）。
【００６７】
たとえば、１６進法における、コンフィギュレーション：０１、ＦＦ・・・ＦＦによる、充填用固定データＤＳＲ’１、すなわちｘオクテット（ｘの値は、ＤＳＲ’のオクテットの合計数が９６となるように選択される）。
【００６８】
以上のことから、本発明は、定められた目的を容易に達成できることがわかる。
【００６９】
特に、チップカードＣＰの予備初期化ステップの安全化のためにその後に使用される製造鍵のローディングは、非常に高い安全性レベルで実行される。この方法によって、各チップカードＣＰ内に、その固有の鍵、いいかえれば、他のチップカードとは異なる鍵をロードすることが可能になる。
【００７０】
しかしながら、この鍵の多様化を可能にするにもかかわらず、この方法はその分、「製造者のピーク下」での書き込みと呼ばれる型の時間とコストがかかるオペレーションには頼る必要がない。
【００７１】
しかしながら、本発明は、特に図１から６に関連して、明白に説明された実施例のみに限定されるものではないことを明らかにしなければならない。
【００７２】
すでに示されたように、ラビンアルゴリズムがとりわけ有利ではあろうが、情報ソースはほとんど消費しないので、このアルゴリズムは、「ＲＳＡ」のような、他の型の非対称アルゴリズムによって置き換えることもできるだろう。それは、トリプル「ＤＥＳ」型のアルゴリムに関しても同様である。対称鍵を有する他のアルゴリズムは、本発明の分野を逸脱しないで使用可能である。それは、それ自体が当業者によって実施可能なテクノロジーの選択の問題にすぎず、特に考えられた厳密な適用によって異なる。
【００７３】
同様に、ここで明記した数値、オクテット数またはその他の数は、わかりやすくするための目的においてのみ示されたものであり、いかなる点においても本発明の範囲を限定するものではない。特によく知られているように、暗号化の鍵の長さは、到達することが期待されている安全性の度合いによって異なり、たとえば実際の規格および／または選択されたアルゴリズムの型に関連したテクノロジー選択の結果として定めることができる。
【００７４】
さらに、すでに示したように、本発明は、チップカードをベースとする適用のみに限定されるものではない。本発明は、電子チップまたは類似の機構を有する搭載システム全体の枠組みの中に用途を見出すことができ、その電子チップの中では、あらかじめ設定されたオペレーションの安全化のために鍵をロードすることが必要とされる。
【００７５】
対象となるオペレーションは、詳細に説明してきたように、予備初期化オペレーションとすることができるが、他の型のオペレーションも可能である。
【００７６】
例として、「ＥＥＰＲＯＭ」部分において「ＡＰＩ」（「アプリケーションプログラムインターフェイス」と呼ばれる型のライブラリまたは種々のコードのロードのような、開放型とよばれるチップカードの敏感なコマンドを、ローディング装置とチップカードとの間の相互認証に従わせることが可能であり、相互認証プロセスは、本発明の方法に合致する方法で展開する。
【００７７】
一般に、チップカードの観点から、安全化される各型のオペレーションに公開鍵および対称秘密鍵を割り当てることが可能である。認証メカニズムから派生したセッション鍵は、続いて、先述の「ＡＰＩ」型のライブラリまたは「パッチ」の保護、すなわち、既存のプログラム全体または一部を置き換えることによる二進データの適用のように、専用の他の鍵のロードを安全化するために使用することができる。
【図面の簡単な説明】
【図１】  本発明の態様による公開鍵の記録用チップカードのメモリの構成例を概略的に示す図である。
【図２】  本発明の方法による鍵のホルダである「ＳＡＭ」と呼ばれるモジュールと、チップカードとの相互認証のための主な情報交換を概略的に示す図である。
【図３】  本発明の方法の態様による、それぞれチップカードと「ＳＡＭ」モジュールによって生成されたランダム数におけるラビン署名の計算に役立つ連結データの例を示す図である。
【図４】  本発明の態様による、チップカード内のセッション鍵の生成を、例として、示す図である。
【図５】  本発明の態様による、セッション鍵を用いた、チップカード内の暗号文の生成を、例として、示す図である。
【図６】  チップカード内に暗号化されて転送されなければならない製造鍵のローディングコマンドにおいて、「ＳＡＭ」によって計算される、ラビン署名の計算に役立つ連結データの例を示す図である。
【図１】
0003773488.tif 000002
【図２】
0003773488.tif 000003
【図３】
0003773488.tif 000004
【図４】
0003773488.tif 000005
【図５】
0003773488.tif 000006
【図６】
0003773488.tif 000007