(57)【特許請求の範囲】
【請求項１】
端末と共に使用するための機密保護モジュールであって、
端末と接続するように適応されており、データの暗号化処理に関係している、アルゴリズムコードの第１の部分を、上記端末から受信するためのデータインターフェース（１１０）と、
供給エネルギーを上記端末から受けるための電源インターフェース（１２０）と、
データインターフェース（１１０）を介して受信される、上記アルゴリズムコードの第１の部分を記憶するための揮発性メモリ（１３０）と、
上記アルゴリズムコードのうち、上記第１の部分とは異なる部分であって、未受信である残りの部分である第２の部分が記憶されている不揮発性メモリ（１５０）と、
上記端末に受け渡される、暗号化処理されたデータを得るために、上記アルゴリズムコードを実行する処理装置（１４０）とを備え、
上記アルゴリズムコードの第１の部分は、上記アルゴリズムコードを実行するために必要な演算コンポーネントのメモリアドレス、または、上記アルゴリズムコードの特定の部分のルーチンを指し示している、上記アルゴリズムコードの飛び番地を含み、
上記揮発性メモリ（１３０）は、エネルギーが供給されるように上記電源インターフェース（１２０）に接続されており、上記端末からの供給エネルギーの供給が中断されると記憶が消去される機密保護モジュール。
【請求項２】
上記端末と上記機密保護モジュールとの間の認証を行うための手段（１４０、１５０）をさらに備える、請求項１に記載の機密保護モジュール。
【請求項３】
機密保護モジュールを用いて、上記端末から、上記アルゴリズムコードの第１の部分を暗号化された形式で受信するように、および、証明書を受信するように、データインターフェース（１１０）が配置されており、
機密保護モジュールは、
上記暗号化されたアルゴリズムコードの第１の部分、または、上記暗号化されたアルゴリズムコード全体を復号化するための手段（１４０、１５０）と、
証明書が本物であるか否かを調査するため、および証明書が本物でない場合、上記アルゴリズムコードの実行を防止するための手段（１４０、１５０）とをさらに備える、請求項１または２に記載の機密保護モジュール。
【請求項４】
所定の機密保護条件を監視する手段と、上記所定の機密保護条件の１つが満たされている場合、揮発性メモリ（１３０）を消去する手段とを備え、
上記所定の機密保護条件は、供給電圧の中断、および、上記機能保護モジュールのシステムクロックの中断を含んでいる請求項１〜３のいずれかに１項に記載の機密保護モジュール。
【請求項５】
上記アルゴリズムコードは、対称型暗号化アルゴリズム、あるいは、非対称型暗号化アルゴリズムを含んでいる、請求項１〜４のいずれか１項に記載の機密保護モジュール。
【請求項６】
上記揮発性メモリ（１３０）は、既に格納された上記アルゴリズムの第１の部分を上書きするように準備されている、請求項１〜５のいずれかに１項に記載の機密保護モジュール。
【請求項７】
上記機密保護モジュールは、チップカードとして設計されている、請求項１〜６のいずれかに記載の機密保護モジュール。
【請求項８】
機密保護モジュールを用いて、アルゴリズムコードの実行結果を演算するための方法であって、
上記機密保護モジュールは、揮発性メモリ（１３０）と不揮発性メモリとを備えたものであり、
当該揮発性メモリ（１３０）は、エネルギーが供給されるように電源インターフェース（１２０）に接続され、端末からの供給エネルギーの供給が中断されると記憶が消去されるものであると共に、
上記不揮発性メモリは、データの暗号化処理に関係している、アルゴリズムコードのうち、第１の部分とは異なる部分であって、未受信である残りの部分である第２の部分を記憶するものであり、
上記アルゴリズムコードの上記第１の部分を、データインターフェース（１１０）を用いて受信する工程（４０）と、
上記アルゴリズムコードの第１の部分を、上記機密保護モジュールの揮発性メモリ（１３０）に記憶する工程（５０）と、
上記端末からのエネルギーの供給が中断されない限り行われる、暗号化処理されたデータを得るために、機密保護モジュールにおいて、上記アルゴリズムコードを実行する工程（６０）、および、上記暗号化処理されたデータを端末に送信する工程（６０）とを含み、
上記アルゴリズムの第１の部分は、上記アルゴリズムコードを実行するために必要な演算コンポーネントのメモリアドレス、または、上記アルゴリズムコードの特定の部分のルーチンを指し示している、上記アルゴリズムコードの飛び番地を含んでいる方法。
【請求項９】
上記機密保護モジュールを端末から取り除くことによって、端末からの供給エネルギーの供給が中断され、上記揮発性メモリ（１３０）の記憶が消去される工程を含んでいる、請求項８に記載の方法。
【請求項１０】
データの暗号化処理に関係しているアルゴリズムコードのうち、第１の部分とは異なる部分であって、未受信である残りの部分である第２の部分が記憶されている不揮発性メモリと供給エネルギーの供給が中断されると記憶が消去される揮発性メモリとを含む機密保護モジュールであって、供給されたエネルギーを当該揮発性メモリに供給する機密保護モジュールと共に使用するための端末であって、
上記端末は、上記機密保護モジュール（１００）に接続するように適応されており、以下の各通信処理、すなわち、上記アルゴリズムコードの第１の部分を、端末から、上記機密保護モジュール（１００）の揮発性メモリ（１３０）に送信する処理、および暗号化されたデータを、この機密保護モジュールから受信する処理のためのデータインターフェース（２１０）と、
供給エネルギーを機密保護モジュールに供給する電源インターフェース（２２０）とを有しており、
上記端末は、端末と機密保護モジュールとの間での各通信処理中に、上記端末から上記機密保護モジュールへのエネルギーの供給が中断されない限り、上記アルゴリズムコードの第１の部分を、上記機密保護モジュール（１００）の揮発性メモリ（１３０）に送信し、その後、更なる通信処理時において、機密保護モジュールからアルゴリズムコードの実行結果を受信するものであり、
上記アルゴリズムコードの第１の部分は、上記アルゴリズムコードを実行するために必要な演算コンポーネントのメモリアドレス、または、上記アルゴリズムコードの特定の部分のルーチンを指し示している、上記アルゴリズムコードの飛び番地を含んでいる端末。
【請求項１１】
機密保護モジュールから、暗号化処理されたデータを得るために、端末を使用して機密保護モジュールを制御する方法であって、
上記機密保護モジュールは、揮発性メモリと不揮発性メモリとを備えたものであり、
当該揮発性メモリ（１３０）は、供給エネルギーが供給され、端末からの供給エネルギーの供給が中断されると記憶が消去されるものであると共に、
上記不揮発性メモリは、データの暗号化処理に関係している、アルゴリズムコードのうち、第１の部分とは異なる部分であって、未受信である残りの部分である第２の部分を記憶するものであり、
上記方法は、各通信処理において、
供給エネルギーを、端末から機密保護モジュールに供給する工程と、
上記アルゴリズムコードの第１の部分を、上記機密保護モジュールの揮発性メモリに、上記端末から送信する工程（６０）と、
上記端末から機密保護モジュールへの供給エネルギーの中断が発生しなければ、上記機密保護モジュールから上記暗号化処理されたデータを受信する工程（６０）とを含み、
上記アルゴリズムコードの第１の部分は、上記アルゴリズムコードを実行するために必要な演算コンポーネントのメモリアドレス、または、上記アルゴリズムコードの特定の部分のルーチンを指し示している、上記アルゴリズムコードの飛び番地を含んでいる方法。
【請求項１２】
機密保護モジュールと端末との間の通信のための方法であって、
上記機密保護モジュールは、揮発性メモリと不揮発性メモリとを備えたものであり、
当該揮発性メモリ（１３０）は、供給エネルギーが供給され、端末からの供給エネルギーの供給が中断されると記憶が消去されるものであると共に、
上記不揮発性メモリは、データの暗号化処理に関係しているアルゴリズムコードのうち、第１の部分とは異なる部分であって、未受信である残りの部分である第２の部分を記憶するものであり、
上記アルゴリズムコードの第１の部分を、上記端末から上記機密保護モジュールに伝送する工程（４０）と、
上記アルゴリズムコードの第１の部分を、上記機密保護モジュールの揮発性メモリ（１３０）に記憶する工程（５０）と、
上記端末から上記機密保護モジュールへのエネルギーの供給が中断されない限り行われる、暗号化処理されたデータを得るために、上記機密保護モジュールにおいて上記アルゴリズムコードを実行する工程（６０）、および、当該暗号化処理されたデータを上記端末に受け渡す工程（６０）とを含み、
上記アルゴリズムコードの第１の部分は、上記アルゴリズムコードを実行するために必要な演算コンポーネントのメモリアドレス、または、上記アルゴリズムコードの特定の部分のルーチンを指し示している、上記アルゴリズムコードの飛び番地を含んでいる方法。
【請求項１３】
上記伝送する工程および記憶する工程を、上記アルゴリズムの第１の部分を変えながら繰り返し、それにより、上記揮発性メモリに記憶された、上記アルゴリズムコードの第１の部分を実現する請求項１２に記載の方法。
【発明の詳細な説明】
本発明は、例えば、有料テレビの申し込み（Pay-TV-Anwendungen）、クレジットカード、電話用カードなどにおいて使用されるような機密保護モジュール、またはＴＰＭ組み込みカードなどのような機密保護モジュール（Sicherheitsmodul）に関するものである。特に、本発明は、この機密保護モジュールと端末との間での通信用のアルゴリズムコードを、外部の攻撃から保護することに関するものである。
【０００１】
現金不要の支払取引が増加するにつれ、そして、個別会計（例えば、有料テレビ申し込みなど）にまでおよぶ情報技術のネットワーク化が進むにつれ、デジタル署名、認証、および暗号化のタスクを実行できるように、暗号化アルゴリズムに対する要求が増している。公知の暗号化アルゴリズムには、非対称型暗号化アルゴリズム（asymmetrische Verschluesselungsalgorithmen）（例えば、ＲＳＡアルゴリズム）、対称型暗号化方式（symmetrische Verschluesselungsverfahren）（例えば、ＤＥＳ方式）、および楕円曲線を活用する方式がある。
【０００２】
暗号化アルゴリズムにより規定される計算を、一方では、通常の許容範囲の速度によって、他方では、使用者にとってできる限り都合のよい方式によって最良に実行できるように、例えば、スマートカードまたは署名カードなどのチップカードなどが利用される。なお、このチップカードには、暗号化アルゴリズムを実行するために、独自に備えられている暗号化処理装置がある。この暗号化処理装置は、特定の適用業務または特定の使用に応じて、認証、署名、証明、および暗号化または復号化を、様々な暗号化アルゴリズムに基づいて実行できなければならない。また、チップカードには、暗号化アルゴリズムの実行のほかに、秘密鍵などのようなチップカード特有の情報が記憶されている。つまり、チップカード特有の情報とは、例えばクレジットカードの場合では、クレジットカード番号、口座番号、および預金残高であり、有料ＴＶスマートカードの場合では、スマートカードＩＤ、顧客ＩＤ、およびその他の顧客特有の情報である。チップカードの使用者は、チップカードを用いて、簡単、且つ効果的な方法により、例えば決済などの特定の取引を、特別に備えられた端末や他の端末装置（例えば、有料テレビの解読器）において行うことができる。この場合、チップカードに組み込まれている暗号化アルゴリズムは、チップカードの取引を犯罪的操作（kriminelle Uebergriffe）から保護する。
【０００３】
犯罪的操作からチップカードの端末システムを保護するためには、端末とチップカードとの間において特別なプロトコルを使用する。なお、このプロトコルには、例えば、暗号化処理装置に組み込まれた暗号化アルゴリズムを使用する暗号化および復号化だけでなく、相互認証も含んでいる。従来のチップカードの問題は、例えば暗号化用などの秘密機能のために用いられるアルゴリズムが、固定配線の形式によっておよび／または記憶されている状態で、チップカードに固定的に付与されていることである。それゆえ、潜在的攻撃者（potentiellen Angreifern）によって盗み出されやすい。なお、この攻撃者による、チップカードに組み込まれる暗号化アルゴリズムの盗み出しとしては、例えば、暗号化処理装置の回路構成を化学的に除去することや、露出した半導体構造を光学的に分析することがあげられる。もし、攻撃者が、所持しているチップカードを参考にして、そのチップカードに組み込まれている暗号化アルゴリズムの獲得に成功する場合は、この攻撃者は、秘密データ（例えば秘密鍵またはチップカードの機密になっている重要なその他のデータ）を取得するために特定攻撃をチップカードに行える立場にある。つまり、この攻撃者は、暗号化アルゴリズムに関する知識に基づき、暗号化アルゴリズムを実行することによって、チップカードに特定攻撃を行えるのである。また、基本となる暗号化アルゴリズムが公知の場合は、その攻撃が成功する見込みは非常に大きくなる。その結果、チップカード取引の機密保護の連鎖（Sicherheitskette）は、危険にさらされることとなる。
【０００４】
従来のチップカードの場合、この盗み出される問題は、接触隠蔽処理（Versteckte-Kontakte-Verfahren）など、特定のハードウェア処理装置または技術によって単に緩和されているだけである。つまり、この処理の場合、取り除かれた半導体構造の光学分析と、それに伴う、基本となる電子回路の推定とを、隠蔽された接触部と、基本となるゲート（Gatter）用の特定の設計ライブラリの使用とによって、防止するように試みられている。なお、基本となっているゲートでは、例えば、ＡＮＤおよびＯＲなどの様々なゲートが、ドーピングの違いによってのみ相互に区別される。確かに、一方では、このハードウェアの隠蔽処理によって、潜在的攻撃者が、基本となる暗号化アルゴリズムを見つけ出すために必要とする経費は増加するが、他方では、回路と設計との経費も増加する。さらに、チップ面積の増加、これに伴う暗号化処理装置またはチップカードのコストもまた増加する。
【０００５】
したがって、外部からの攻撃に対する機密保護性が増し、回路経費を削減したチップカードは、特に、市場における高い潜在能力と、多数のチップカードが生産されていることとから考えると、チップカード製造者にとっては非常に魅力的である。
【０００６】
本発明の目的は、高い機密保護性を有する機密保護モジュールによる取引が保証され得るように、機密保護モジュール、端末、および、方法を提供することである。
【０００７】
本目的は、各請求項に記載の機密保護モジュール、各請求項に記載の端末、および、各請求項に記載の方法により達成される。
【０００８】
本発明は、機密保護モジュール（例えば、チップカードなど）の外部からの攻撃に対する機密保護性を、以下の点で、強化できるという認識に基づいている。すなわち、アルゴリズムコードの少なくとも一部を、機密保護モジュールに固定して記憶させておくのではなく、むしろ、アルゴリズムコードのこの欠落部分を、端末と機密保護モジュールとの間で通信が行われている間でのみ、機密保護モジュールに備えられている揮発性メモリに記憶させておく。このようにすることによって、機密保護性を強化できる。なお、アルゴリズムコードとは、例えば、決済機能もしくは暗号化アルゴリズムなどの機密になっている重要な機能を有しているか、または、概して秘密処理に関するものである。したがって、潜在的攻撃者の手に委ねられた機密保護モジュールに、完全なアルゴリズムコード（アルゴリズムコード全体）が存在してしまうということを効果的に防止する。その結果、潜在的攻撃者が、秘密鍵または他の秘密データを盗み出すことを目的として、アルゴリズムコードにアクセスできないようにする。さらに、例えば、欠陥への攻撃（Fehlerattacken）または情報漏洩による攻撃（Informations-Leck-Attacken）などを用いる、特定の攻撃処理法によって盗み出しを行うことができないようにする。言い換えれば、潜在的攻撃者にとって、アルゴリズムコード、例えば、暗号化アルゴリズムなどを悪用することがほぼ不可能となる。なぜなら、アルゴリズムコードは、完全な形で、機密保護モジュールに固定的に記憶されていないからであり、それゆえ、対応する端末での利用以外で、このコードが攻撃者の手中となることはない。
【０００９】
本発明に基づくと、例えば、チップカードなどの機密保護モジュールは、コンピュータ差込カードまたはスマートカードの方式にてＴＰＭ（Trusted Plattform Module＝信用プラットホームモジュール）を備える。というのは、端末と接続できるように適応されており、端末から少なくとも一部のアルゴリズムコードまたは完全なアルゴリズムコードを受信するデータインターフェースに加えて、端末と共に使用するためである。さらに、この機密保護モジュールは、供給エネルギーを受ける電源インターフェースと、データインターフェースを介して受信される一部のアルゴリズムコードを、または受信される完全なアルゴリズムコードを記憶する揮発性メモリとを備える。なお、この揮発性メモリは、エネルギーが供給されるように、電源インターフェースに接続されている。また、処理装置は、端末に転送するアルゴリズムコードの実行結果を得るために、このアルゴリズムコードを実行する。アルゴリズムコードのうち未受信である残りは、例えば、機密保護モジュールのＲＯＭなどの不揮発性メモリに記憶されていてもよい。その結果、供給エネルギーが十分でない場合、完全なアルゴリズムコードは、機密保護モジュールの不揮発性メモリに存在せず、それゆえ、潜在的攻撃者が実行するために利用できる、完全なアルゴリズムコードはない。
【００１０】
前述の機密保護モジュールと共に使用するのに好適な端末（例えば、銀行の現金自動支払機、カード読み取り器付き携帯電話、有料ＴＶ復号器、または、ＴＰＭ用スロットを有するコンピュータ）は、機密保護モジュールへ供給エネルギーを供給する電源インターフェースのみならず、例えば、機密保護モジュールに接続できるデータインターフェースを備えている。このデータインターフェースは、一部または完全なアルゴリズムコードを、端末から機密保護モジュールの揮発性メモリに転送し、機密保護モジュールからのアルゴリズムコードの実行結果を受信する。
【００１１】
特定の実施例において、認証（呼び出しおよび応答の方式（Challenge-und-Response-Verfahren）に基づく認証など）が、端末と機密保護モジュールとの間で、端末と機密保護モジュールとの間の通信時に行われる。端末から機密保護モジュールへのアルゴリズムコードの送信は、端末と機密保護モジュールとの間の通信接続の盗聴および巧妙な操作を妨げるために、暗号化され、かつ、証明方式によって行われる。この目的を達成するため、端末または機密保護モジュールは、認証、暗号化および復号化、ならびに、証明および証明書調査をそれぞれ実行する好適な手段（Einrichtungen）を含んでいる。機密保護性を高め、潜在的攻撃者がアルゴリズムコードの伝送された部分へのアクセスを効果的に防止するため、機密保護モジュールは監視手段をさらに備えていてもよい。なお、この監視手段は、所定の機密保護条件が満たされる場合、揮発性メモリを消去する。このような機密保護条件には、割り込み、供給電圧および／または処理装置刻時機構またはシステムクロック（Prozessor- oder Systemtaktes）における不規則性および変動、もしくは、端末と相互作用している間、機密保護モジュールの操作によって影響されるような他の操作パラメータを含んでいてもよい。監視手段が、予めメモリの消去を行っていない場合、揮発性メモリ、すなわち、アルゴリズムコードの記憶された一部は、遅くとも、端末と機密保護モジュールとの間の通信が終了するとき、または、例えば、機密保護モジュールが端末から引き出されたり、取り外されたりすることにより供給エネルギーが中断されるときに消去される。このことにより、アルゴリズムコードの一部は、特定の攻撃範囲内に対して、潜在的攻撃者が実行するために利用することができない。
【００１２】
システムが攻撃される可能性をさらに低減させるために、アルゴリズムコードの部分を、変更させた形態で、繰り返し、端末から機密保護モジュールに間欠的に伝送するように実行され得る。そして、その際に、アルゴリズムコードの記憶された古い部分の代わりに、アルゴリズムコードのその変更部分を、新しく伝送されるたびに、揮発性メモリに記憶することが考えられる。これにより、端末と機密保護モジュールとの間で通信が行われている間（例えば、有料ＴＶ適用業務などの場合）の暗号化アルゴリズムの変更だけではなく、（例えば、クレジットカードの場合など）端末・機密保護モジュール通信の初期化のたびに、アルゴリズムコードの変更も可能である。このことにより、潜在的攻撃者にとっては、使用されるアルゴリズムコードを調整したり、読み出したりすることがより困難になる。
【００１３】
機密保護モジュールのアルゴリズムコードを、潜在的攻撃者による盗み出しから保護することに加えて、本発明のその他の長所は、例えば、ＥＣカード、クレジットカード、多様なカードまたは有料ＴＶ用スマートカードなどの多数の適用業務分野において使用できることである。特定の適用業務に応じて、機密保護モジュールから受け取ったアルゴリズムコードまたは機密保護性機能コードは、機密になっている重要な機能に関するコードの一部、または、機密保護モジュールの１つ以上の暗号化アルゴリズムを含んでいる。チップカード製造者または機密保護モジュールの製造者にとって、多方面にわたる適用可能性および潜在的攻撃者に対する機密保護性の強化が、市場において益々容認されるようになっており、それに伴い、市場占有率はより大きくなっていることを意味している。さらに、コストをかけずに機密保護モジュールの機密保護性を向上させる。なぜなら、機密保護性の向上は、揮発性メモリを利用するソフトウエアによって実現され得るからである。また、アルゴリズムコードを潜在的攻撃者から保護するための、例えば、前述のような従来の複雑なハードウェア手段を、付加的に備えるか、あるいは、よりコストのかからないハードウェア技術によって置き換えてもよい。なぜなら、重要な機密保護機能、または、機密保護モジュールの基礎をなす暗号化アルゴリズムは、チップカードに恒久的に存在することはないからである。
【００１４】
また、本発明の発展形および、他の実施例は、添付の従属請求項において定義される。
【００１５】
なお、本発明の好ましい実施例は、以下に、添付の図を参考にして詳しく説明されており、
図１は、本発明に基づく、チップカードと端末との通信における作業順序の説明を概略的に示す図であり、
図２は、本発明の実施形態に基づく、チップカードの構成を示すブロック図であり、
図３は、本発明の実施形態に基づく、端末の構成を示す図である。
【００１６】
なお、本発明の特定の実施例について以下に示す詳細な説明は、ただ例示の手段として、チップカードの適用について述べているものであり、本発明は、これの代わりに、他の機密保護モジュール、例えば、差し込みカード方式のＴＰＭなどにも使用できるものである。つまり、以下の説明では、何の問題もなく簡単に、そのような適用が可能である。同じく、以下の説明では、チップカード、例えば、銀行の現金自動支払機用の端末を、ただ例示の手段として参考にしているが、本発明の端末は、他の適用業務分野では、例えば、自身のスロットにＴＰＭを有するコンピュータ、自身のカード読み取り器にスマートカードを備える携帯電話、または、端末は、一般的に機密保護モジュールと通信できるどの装置であってもよい。
【００１７】
まず、図１を参照する。図１は、例えば、チップカードが端末に挿入された場合に生じる、端末とチップカードとの間の作業順序を示す。有料無線放送の場合、チップカードは、例えば、有料ＴＶスマートカードであり、端末は、末端の各装置または有料ＴＶの顧客の復号器である。また、例えば、チップカードがクレジットカードである場合、端末は、銀行の現金自動支払機である。
【００１８】
図１には、チップカード１０および端末２０が、角の部分が丸くなっている長方形によって、それぞれが隣り合うように示されている。その下には、概略的に矢印とブロックとにより、チップカード１０と端末２０との通信または相互作用時に、実行される様々な工程が、その生じる順番に従って上から下へと示されている。矢印の方向は、送信されるデータの流れを示し、一方、ブロックは、チップカード１０において実行される処置を示す。
【００１９】
図１に示す工程では、端末とチップカードとの間で、既に通信できるということが必須条件であり、例えば、チップカードが端末に挿入時の場合などである。この際、端末 ２０は、非接触の（ein Kontaktlos-）端末、または、接触する端末でもよい。すなわち、通信接続は、接触せずに、または、接触部を介して行われてもよい。さらにまた、通信は、チップカード１０に、端末２０からエネルギーが供給されることを必要とする。また、エネルギーの供給は、電磁放射を介して接触せずに行われてもよいし、または接触部を介して行われてもよい。通信接続が、端末２０とチップカード１０との間に確立され、チップカード１０に供給エネルギーが供給された後、まず、関連するプロトコルの相互の取り決めなど、初期化する工程を実行してもよい。
【００２０】
チップカード１０にエネルギー供給し、通信接続を確立し、端末２０とチップカード１０との間の通信を初期化する工程（図示せず）の後、工程３０において、例えば、呼び出しおよび応答の方式に基づく認証などの、端末２０とチップカード１０との間の相互の認証を行う。この相互認証は、例えば、カード使用者によるＰＩＮ（Personal Identifikation Number＝個人識別番号）入力を含んでいてもよい。この場合、相互認証３０では、例えば、チップカード１０に記憶されている、チップカードに特有のデータ（例えば、チップカード識別番号および個人暗証番号など）を、チップカードに記憶されているチップカード鍵およびチップカードに記憶されている、暗号化アルゴリズム（例えば、対称型または非対称型暗号化アルゴリズムなど）である認証コードと関連して使用できる。また、この認証は、承認されたチップカードのみが、承認された端末に、確実に通信できるように役立つ。そして、もし、認証に誤りが生じると、通信接続は中断される。
【００２１】
相互の認証３０が成功すると、端末２０は、工程４０において、アルゴリズムコードの一部を暗号化され、かつ、証明された形式で、チップカード１０に対して伝送する。つまり、アルゴリズムコードの伝送される部分を暗号化することにより、潜在的攻撃者による盗聴から伝送が保護される。一方、チップカード１０の端末２０における証明書は、アルゴリズムコードの伝送された部分の発信元に関して保証する。チップカード１０は、アルゴリズムコードの伝送された部分を復号化し、認証を調査および相互認証３０を実行するために、適切な認証、復号化および証明書調査手段を備える。そして、これら手段は、ハードウェアの一部およびチップカードの不揮発性メモリに記憶されているコード（例えば、認証コード）により構成されている。相互認証３０と、暗号化および証明書４０を基礎とする暗号化アルゴリズムは、例えば、ＲＳＡアルゴリズム、ＤＥＳアルゴリズム、または、他の任意の暗号化アルゴリズムなどの、対称型または非対称型暗号化方式を備えていてもよい。
【００２２】
証明書調査により、証明書が本物ではないと結論付けられると、端末２０とチップカード１０との間の通信が中断され、チップカード１０は、所定の時間、もはや処理が行わないように規定されていてもよい。したがって、潜在的攻撃者が、端末２０とチップカード１０との間の通信接続に盗聴器をつなぎ、例えば、チップカード１０によって実行する際、このチップカード１０に記憶された秘密のデータを出力することに影響し得るような、「誤り」コードをチップカード１０の揮発性メモリに入力することを防止する。
【００２３】
工程５０において、証明書調査により、証明書が本物であると結論付けられると、アルゴリズムコードの伝送される部分は、チップカード１０の揮発性メモリに、暗号化または復号化された形式で記憶される。そして、暗号化または復号化された記憶に応じて、このアルゴリズムコードは、そのコードを記憶する前に復号化される、またはチップカード１０の暗号化処理装置によって実行する前に、復号化される。一部が工程４０において伝送されるアルゴリズムコードは、チップカード１０の、１つ以上の機密になっている重要な機能（例えば、チップカード１０によって請求や返済を行うための貸借機能）または、さらなる通信順序で必要となる、暗号化アルゴリズムを実行するためのプログラムコード（例えば、対称型または非対称型暗号化方式、ＲＳＡアルゴリズム、ＤＥＳ準拠による暗号化、楕円曲線を活用する方式または他の秘密アルゴリズムなどであるが、これらだけに制限されるものではない）を含んでいてもよい。有料ＴＶアプリケーションの場合、このアルゴリズムコードは、例えば、有料番組のテレビデータの復号化に関する情報（例えば、テレビデータの画像の画像走査線（Bildzeilen eines Bildes）の再組み換え（Repermutation）など）を含んでいてもよい。その結果、保護されるアルゴリズムコードは、完全な形で、端末２０とチップカード１０との間で通信が行われている期間のみチップカード１０に存在する。
【００２４】
工程６０では、ここで完全な形でチップカード１０に存在するアルゴリズムコードが用いられ、チップカード１０に備えられた処理装置により実行される。上述の有料ＴＶの例では、チップカード１０の処理装置は、例えば、テレビ画像の画像走査線の再組み換えを、記憶されているアルゴリズムコードに基づいて実行する。例えば、テレフォンカードなどのチップカード１０による即時決済適用業務では、貸借機能を示す、このアルゴリズムコードが、例えばチップカード１０に存在する借方または貸方残高に対して用いられる。また、クレジットカードを使用する場合では、工程６０は、例えば、振替注文を行うために、チップカード１０の暗号化処理装置により、例えば、暗号化アルゴリズムを示すアルゴリズムコードを実行することを含む。
【００２５】
工程７０において、揮発性メモリに記憶されている、アルゴリズムコードの一部が再び消去される。なお、アルゴリズムコードの消去は、例えば、カード使用者がチップカード１０を端末２０から抜き取り、これに伴って、端末２０からチップカード１０への供給エネルギーの供給が中断されることによって、達成されてもよい。また、潜在的攻撃者によって、ＲＡＭなどの揮発性メモリからアルゴリズムコードの記憶された部分が喪失してしまうことを防がれたら、完全なアルゴリズムコードを入手されてしまうので、チップカード１０には、特定の監視手段が備えられていてもよい。なお、この監視手段は、監視操作により、特定の機密保護条件（例えば、システムクロックの中断、供給エネルギーの供給の中断、または、電圧変動などその他の攻撃の可能性を示すようなものなど）を満たすと示される場合もまた、チップカード１０の揮発性メモリを能動的に消去する。その結果、アルゴリズムコードは、チップカード１０が端末２０において使用された後、または、通信順序が妨害された後には、チップカード１０にはもはや存在しない。従って、潜在的攻撃者による潜在的攻撃および盗み出しにさらされることはない。チップカードを有する攻撃者は、完全なアルゴリズムコードに基づく機密保護に関する計算（Sicherheitsberechnungen）を行えない。なぜならば、この完全なアルゴリズムコードは、攻撃者がアクセスする領域に存在しないからである。従って、鍵またはアルゴリズムが盗み出されることは、効果的に防止される。
【００２６】
図１を参考にして、チップカードが端末と通信している間の操作順序を記載した後、以下に、アルゴリズムコードの一部が、端末からチップカードの揮発性メモリに伝送されることについて、様々な可能性が記述される。アルゴリズムコードが、まだ知られていない暗号化アルゴリズムの機密のプログラムコードを含んでいる場合、例えば、アルゴリズムコードは、端末からチップカードの揮発性メモリに、完全に伝送される方が有利であり、この場合には、秘密の暗号化アルゴリズムは、潜在的攻撃者による盗み出しから効果的に保護される。
【００２７】
アルゴリズムコードの送信すなわち伝送される部分が、公知である暗号化アルゴリズムのプログラムコードの一部を含んでいる場合、プログラムコードの伝送される部分は、例えば、メモリアドレスを含んでいる。そして、このメモリアドレスには、暗号化計算に基づく計算成分（Berechnungskomponenten）が記憶されている。これにより、チップカードを手中にしている潜在的攻撃者によって、暗号化アルゴリズムに基づく機密保護に関する計算が行われることを効果的に回避する。なぜなら、チップカードの処理装置によってプログラムコードを実行するために、およびメモリへのアクセス操作を実行するために必要とされるメモリアドレスであって、チップカードの処理装置によってプログラムコードを実行するために要求されるメモリアドレス、およびメモリへのアクセス操作を実行するために要求されるメモリアドレスが失われるからである。
【００２８】
公知の暗号化アルゴリズムの場合には、アルゴリズムコードの伝送される部分に、飛び先番地（Sprungadressen）が含まれていてもよい。この番地は、特定のプログラムコードを開始するための開始アドレス（Startadresse）としてポイントされるか、あるいは、特定の部分ルーチン（Teilroutinen）の開始点への条件付きまたは条件なしプログラムジャンプ（Programmsprunge）としてポイントされる。したがって、この飛び先番地を知らなければ、攻撃者は、手中にしたチップカードから盗み出すことが非常に困難になる。
【００２９】
また、特定の例では、チップカード １０に、様々な暗号化アルゴリズムに関する多数のプログラムコードが備えられていてもよい。この場合、アルゴリズムコードの伝送される部分には、端末により直前に選択された、様々な暗号化アルゴリズムプログラムコードのうち、特定の１つの開始アドレス（Anfangsadresse）が含まれている。また、端末は、例えば、新しいチップカード端末通信処理ごとに、複数の暗号化アルゴリズムの中から１つの新しい暗号化アルゴリズムを選択する。または、この選択では、選択された暗号化アルゴリズムを動的に変更させるために、通信処理時に動的に数回更新が行われる。
【００３０】
さらに、アルゴリズムコードの伝送される部分には、開始アドレス、飛び先番地、またはプログラムコードのメモリアドレスが含まれていてもよい。なお、このプログラムコードとは、貸借または、チップカードの重要な機密保護に関する他の機能にとって必要となるものである。さらにまた、図１に示す工程４０、５０、および、６０を繰り返すことができ、この場合、アルゴリズムコードの伝送される部分が、所定の方法により変更される。つまり、各経路において、チップカードの揮発性メモリに記憶されている、アルゴリズムコードの古い部分が、アルゴリズムコードの新しく伝送された部分により上書きされる。なお、この上書きは、チップカードにある処理装置によって実行される。揮発性メモリに記憶されている、アルゴリズムコードの部分をこのように動的に変更することにより、更なる機密保護性が得られる。
【００３１】
また、図２および図３を参照して、以下に、チップカードおよび端末の構成に関する実施可能な例を説明する。図２は、チップカードのブロック図を示す。このチップカードは、概して１００と示されている。チップカード１００は、データインターフェース１１０、電源インターフェース１２０、ＲＡＭ１３０、処理装置１４０、およびＲＯＭ１５０を備えている。データインターフェース１１０は、例えば、非接触によって、または接触部を介して、端末（図示せず）に接続するように適応されており、データを、チップカードから端末に送信できる、または逆に、データを端末から受信できる。データインターフェース１１０は、処理装置１４０に接続されている。これにより、処理装置１４０から送信されるデータ、または、処理装置１４０に受信されるデータを伝送できる。電源インターフェース１２０は、同じく、例えば、電磁エネルギーまたは供給電圧である供給エネルギーを、端末から受け取るために、端末に接続されるように適応される。また、電源インターフェース１２０は、供給エネルギーを、処理装置１４０と、ＲＡＭ１３０とに分配する。
【００３２】
処理装置１４０は、例えば、ＣＰＵ（図示せず）および複数の暗号コプロセッサ（図示せず）により構成されている。なお、暗号コプロセッサは、ＣＰＵにより制御されており、また、チップカード１００に組み込まれている１以上の暗号化アルゴリズム（例えば、モジュール演算または算術演算など）に対して必要な特定の計算を行うために設計されている。ＣＰＵは、暗号コプロセッサを制御するほかに、さらに、データインターフェース１１０を介した端末との通信と、処理装置 １４０に接続されているＲＯＭ１５０へのメモリアクセスとを行う。また、ＲＯＭ１５０には、例えば、チップカードに特有の情報（例えば、チップカード識別番号、個人識別番号、講座番号、預金残高など）が存在する。
【００３３】
処理装置１４０のＣＰＵは、本発明に基づき伝送される、アルゴリズムコードの一部を受信した場合、復号化および証明書調査と同様に認証を行うために、端末とチップカード１００との通信を初期化するためのタスクを引き受ける。その場合、このために必要なプログラムコードが、ＲＯＭ１５０に記憶されていてもよい。さらに端末と通信を行うため、例えば、機密になっている特有の機能（口座振替／貸方記帳を行うために、ＲＯＭ１５０に記憶されている残高、または、暗号化アルゴリズムの取り出しなど）を実行するために、処理装置１４０のＣＰＵは、プログラムコードによりプログラム制御される。また、このプログラムコードは、本発明に基づき、チップカード１００が端末と通信している間、少なくとも部分的に、処理装置１４０に接続されているＲＡＭ１３０に存在する。また、他方では、プログラムコードは、チップカード１００にあるＲＯＭ１５０には、全く存在しないか、またはほんの部分的にしか存在しない。従って、チップカード１００を手中にしている潜在的攻撃者は、上述のように、機密保護に関する計算を処理装置１４０により行うことができない。なぜならば、アルゴリズムコードの一部は、失われており、そのアルゴリズムコードの一部は、チップカードが端末と通信している間でのみ揮発性メモリ１３０に記憶されるからである。
【００３４】
図３は、本発明の実施例に基づく端末の構成を示すブロック図である。概して２００として示す端末は、データインターフェース２１０、電源インターフェース２２０、このデータインターフェース２１０と電源インターフェース２２０とに接続されている処理装置２３０およびこの処理装置２３０と接続されているメモリ２４０を備えている。データインターフェース２１０は、端末２００とチップカード （図示せず）との間のデータ交換を行うために、対応するチップカードのデータインターフェースに接続するように適応されている。また、電源インターフェース２２０は、対応するチップカードの電源インターフェースと接続するように適応されており、供給エネルギーを、特定のチップカードの電源インターフェースに供給する。処理装置２３０は、例えば、端末２００がチップカードと通信する間の作業順序を制御し、そして、例えば、初期化、認証、メモリ２４０に記憶されている、伝送されるアルゴリズムコードの暗号化、その証明書、および、暗号化され証明されたアルゴリズムコードをデータインターフェース２１０に伝送を行う。なお、このデータインターフェース２１０は、それをチップカードへ伝送するためのものである。
【００３５】
また、メモリ２４０には、アルゴリズムコードが、例えば、暗号化された形式で既に含まれていてもよい。その結果、処理装置２３０は、このコードを暗号化する必要はなく、このコードは、メモリ２４０にも、またはその他のところにおいても、符号化されていないテキスト（Klartext）に表示されないことを示す。
【００３６】
上記した説明に関しては、特定の実施例に対してのみ言及してきた。そのため、相互認証、伝送されるアルゴリズムコードの一部の暗号化、および証明書を、例えば、特定の適用業務において省いてもよい。本発明に基づき、チップカードの揮発性メモリに、アルゴリズムコードの少なくとも一部が記憶されるということだけで、潜在的攻撃者が、チップカードの重要な機密に関する機能（暗号化アルゴリズム、および例えば、残高などのチップカードの特定情報に対するアクセス機能など）を実行することが非常に困難となる。なぜなら、チップカードの重要な機密機能は、恒常的にチップカードに記憶されているわけではないからである。つまり、これらが潜在的攻撃者の手中にないというよりは、むしろ供給エネルギーの供給を受けなくなることにより、失われるのである。したがって、この機能が失われないように揮発性メモリを保護しようとする試みは、明らかに困難であり、また実際の適用業務において実現不可能とみなすことができる。
【００３７】
さらにまた、本発明に基づく方法、本発明に基づく端末、および、本発明に基づくチップカードは、様々な手段によって実現されてもよい。また、対応する工程または手段は、不揮発性メモリとともに、ソフトウエア、ファームウエア、またはハードウェアによって、実施されてもよい。さらに、上記において使用されているチップカードという用語は、カード形状のものに制限されるものではなく、むしろ、類似した方法により使用されるチップ担体の全ての他の形状を含むものである。
【００３８】
本発明は、例えば、インフィネオン株式会社（Infineon AG）（登録商標）の商品群ＳＬＥ６６ＣＸ３２０Ｐの処理装置によって現在、実現可能である。この処理装置は、ＭＭＵ（ＭＭＵ = Memory Management Unit = メモリ管理ユニット）を用いて、ＲＡＭへのメモリアクセスを制御することにより、ＲＡＭに記憶されているコードを実行することができる。最も簡単な場合では、暗号化されている飛び先番地またはメモリアドレスを、端末からチップカードに伝送することにより、潜在的攻撃者によって、「固有のコード（nativ-code）」または機械コードがロードされることを、既に効果的に防止している。攻撃者は、本発明のこのような簡単な実現の場合に、チップカードの機密に関する計算を行うことができない。なぜなら、攻撃者は、飛び先番地、および、これに伴う順序が分からないからである。また、アプリケーションノートを作成することにより、本発明の構成要素を利用する顧客に本発明の概念を伝える。そうすることによって、チップカードの制御装置ソフトウエアおよび端末ソフトウエアにおいて、本発明の実現に対応させることで適用業務の機密保護性が向上する。
【００３９】
本発明のチップカードを手中にしている潜在的攻撃者は、ただ保護されているデータのみを有しており、潜在的攻撃者は、決済業務を初期化することも、アルゴリズムコードを正確に特定することもできない。従って、保護されている端末と、プログラム部分が再ロード可能であるということに関する知的アクセス保護メカニズムとの組み合わせによって、本発明は、非常に高いレベルの機密保護性を実現する。
【図面の簡単な説明】
【図１】  本発明に基づく、チップカードと端末との通信における作業順序の説明を概略的に示す図である。
【図２】  本発明の実施形態に基づく、チップカードの構成を示すブロック図である。
【図３】  本発明の実施形態に基づく、端末の構成を示す図である。
【符号の説明】
１０      チップカード
２０      端末
１００    チップカード
１１０    データインターフェース
１２０    電源インターフェース
１３０    ＲＡＭ
１４０    処理装置
１５０    ＲＯＭ
２００    端末
２１０    データインターフェース
２２０    電源インターフェース
２３０    処理装置
２４０    メモリ
【図１】
0003782059.tif 000002
【図２】
0003782059.tif 000003
【図３】
0003782059.tif 000004