(57)【要約】  本発明は、１つのマイクロプロセッサと、少なくとも１つの運用プログラム及び前記モジュールの独自の識別手段を含むプログラムメモリを備えるセキュリティモジュールに関する。このセキュリティモジュールは、識別手段が、モジュールの前記マイクロプロセッサによる実行と適合するダミー情報処理コードの独自の集合で構成され、プログラムメモリ内に保存されることを特徴とする。本発明は、１つのマイクロプロセッサと、少なくとも１つの運用プログラムを含む１つのプログラムメモリを備えるセキュリティモジュールを独自の識別子によりカスタマイズする方法にも関する。本発明の方法は、ダミー情報処理コードと呼ばれる情報処理コードの独自の集合を生成する工程と、このコードの集合を専用のメモリロケーション内のプログラムメモリ内に書込む工程を含むことを特徴とする。
2008504617.tif 000002
【特許請求の範囲】
【請求項１】
１つのマイクロプロセッサと、少なくとも１つの運用プログラム及び前記モジュールの独自の識別手段を含むプログラムメモリを備えるセキュリティモジュールであって、この識別手段(UA2)がモジュールの前記マイクロプロセッサによる実行と適合するダミー情報処理コードの集合で構成され、プログラムメモリ内に保存されることを特徴とするセキュリティモジュール。
【請求項２】
前記情報処理コードが専用の命令ブロック内に置かれることを特徴とする、請求項１記載のセキュリティモジュール。
【請求項３】
前記ダミー情報処理コードが運用プログラムを形成する情報処理コード内に配分されることを特徴とする、請求項１記載のセキュリティモジュール。
【請求項４】
前記ダミー情報処理コードが前記マイクロプロセッサによって実行されないことを特徴とする、請求項２又は３記載のセキュリティモジュール。
【請求項５】
前記マイクロプロセッサによって実行される運用プログラムの進行は前記ダミー情報処理コードによっては変更されないことを特徴とする、請求項２又は３記載のセキュリティモジュール。
【請求項６】
更に前記モジュールがセキュリティモジュールの運転にも識別手段の形成にも使用されないダミー情報処理コードの集合を含むことを特徴とする、請求項１記載のセキュリティモジュール。
【請求項７】
１つのマイクロプロセッサと、少なくとも１つの運用プログラムを含む１つのプログラムメモリを備え、
‐  ダミー情報処理コードと呼ばれる情報処理コードの独自の集合を生成する工程と、
‐  このコードの集合を専用のメモリロケーション内のプログラムメモリ内に書込む工程と
を含むことを特徴とする、独自の識別子によるセキュリティモジュールのカスタマイズ方法。
【請求項８】
前記専用のメモリロケーション内に配置されたダミー情報処理コードが前記マイクロプロセッサによって実行されないことを特徴とする、請求項７記載のカスタマイズ方法。
【請求項９】
前記専用のメモリロケーション内に配置されたダミー情報処理コードが、前記マイクロプロセッサによる運用プログラムの実行に影響を及ぼさないことを特徴とする、請求項７記載のカスタマイズ方法。
【請求項１０】
前記独自の集合を形成する前記ダミー情報処理コードが情報処理コードライブラリーの中から選択されることを特徴とする、請求項８又は９記載のカスタマイズ方法。
【請求項１１】
前記ダミー情報処理コードが、運用プログラムを構成する情報処理コードとは異なる命令ブロックを形成することを特徴とする、請求項７記載のカスタマイズ方法。
【請求項１２】
前記ダミー情報処理コードが運用プログラムを構成する情報処理コードの中に分散していることを特徴とする、請求項７記載のカスタマイズ方法。
【請求項１３】
情報処理コードが、これらのコードによって形成されるプログラムの構造を隠すよう処理されることを特徴とする、請求項７から１２のいずれか１項記載のカスタマイズ方法。
【請求項１４】
情報処理コードが一般人からアクセス可能であるようにされた、請求項１から６のいずれか１項において規定されたようなセキュリティモジュールの識別方法であって、
‐  一般人からアクセス可能であるようにされた情報処理コードの中からダミー情報処理コードを抽出する工程と、
‐  前記セキュリティモジュールの識別手段を導くようあらかじめ決められた規定に従って前記ダミー情報処理コードを処理する工程
を含む前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのマイクロプロセッサとプログラムメモリを備えるセキュア化されたセキュリティモジュールの分野に関する。本発明はまた、そのようなセキュリティモジュールのカスタマイズ、並びに内容が公開されたセキュリティモジュールの識別にも関する。
【背景技術】
【０００２】
これらのセキュリティモジュールは、暗号化操作を行うシステム内で使用され、シングルブロックの形態で納入される。これらのモジュールは単体のシリコンチップ上に作製されるか、担体上に組み付けられ樹脂内に埋め込まれるか、種々の要素を覆い割り込みの試みがある時ヒューズとして作用するシートにより保護される。
【０００３】
これらのセキュリティモジュールは、特に起動プログラムと単一の又は複数の運用プログラムを含むプログラムメモリを有する。起動プログラムはプロセッサの起動時又は毎回のリセット時に実行される。この起動プログラムはＲＯＭタイプのメモリ内に保存される。即ち、読込みアクセスしかできない。
【０００４】
運用プログラムは、通常、ＥＥＰＲＯＭ、ＮＶＲＡＭ、又はフラッシュタイプの書換え可能型メモリ内に保存される。
【０００５】
起動プログラムは、その確認を終了すると、所定のアドレスにて運用プログラムの実行を開始する。
【０００６】
セキュリティモジュールのメモリの内容を知るための既知のアタックのうちの１つは、プロセッサの制御を握ることが可能になるメモリのオーバフローなどのセキュリティリークを探すことである。一旦この制御の把握が成功すると、メモリの内容を外部に転送すること、並びにセキュリティのメカニズム及び使用されている鍵を分析することが可能である。
【０００７】
メモリの内容を知ることにより、プロセッサが制御する種々の権利及びサービスへのアクセスを管理するのに用いる鍵を得ることができる。従って、管理センターにより指令されて鍵の変更が生じる場合、この変更指令はプログラムメモリ内に存在する鍵により暗号化される。この鍵を使用することにより、鍵の変更メッセージを復号すること、及びこの新しい鍵の内容を更新することも可能になる。
【０００８】
従って、不正を働く者によりセキュリティモジュールのセキュリティが一度侵害されると、変更手段（例えば新しい送信鍵）はこの者が既に所有する鍵を使用するので、管理センターによって開始される全ての変更はセキュリティに対しては効果がないことが確かめられる。従ってこの者は更新メッセージを復号すること、及びその送信鍵を変更することができる。
【０００９】
セキュリティモジュールのセキュリティが侵害され、プログラムメモリの内容が知られると、このモジュールのセキュリティを侵害した不正を働いた者が、プログラムメモリの内容に対応する情報処理コードを特にインタネットなどのネットワーク上で公開するということが起こる。これにより、未使用のカードを所有する第三者がこれらのコードをコピーし、完璧に機能するクローンカードを全面的に不正な方法で作り出すことができるようになる。
【００１０】
これらの不正な行為を制限するための手段の１つは、モジュールの安全性を向上させ、このモジュールのセキュリティを侵害することが極めて難しくなるようにすることである。
【００１１】
これらの不正な行為を著しく制限するための別の手段は、セキュリティが侵害されクローン化を可能にさせてしまったセキュリティモジュールを検出し、このモジュール、並びにこのモジュールにより作製されたクローンの機能を無効化することでこのモジュールに働きかけることにある。
【００１２】
米国特許ＵＳ６７２５３７４（特許文献１）は、先行技術のモジュールと比較してセキュリティの向上を目的とする上述の第１手段を使用するセキュリティモジュールについて記述している。実際、この特許において記述されているモジュールにおいては、例えば電気消費量など鍵を抽出するのに使用することができる情報をスクランブルする「スクランブル」要素をモジュールの情報処理コードに付加することにより、鍵を見つけ出すことがより難しくなっている。これらのスクランブル要素は、実行順序がプログラムの進行に対して重要性をもたないモジュールで形成される。これらの要素はランダムに使用されるので、同一の２つの入力信号を処理しても同一の２つの出力信号が生成されるわけではない。このようにより難しくなってもなお、ある者がセキュリティモジュールの内容を判定できるようになった場合、このコードは第三者により公開され再使用されることがあるが、その場合でも、公開されたコードの発生源を見出すことは不可能である。
【００１３】
本発明は、上述の第２手段を使用すること、即ち不正行為に用いられたモジュールを検出することができる手段をモジュール内に導入することを意図するものである。
【００１４】
周知のように各セキュリティモジュールは独自の識別番号を含む。一般的に、あるセキュリティモジュールから情報処理コードを抽出することができる者は、このモジュールの内容についての比較的簡略な分析からそのモジュールの独自の番号を検出することもできる。この独自の番号は情報処理コードの公開時にも公開されない。
【００１５】
このため、不正を働く者を識別すること、並びに出所となるモジュール及びそのクローンを無効にすることができない。
【特許文献１】米国特許ＵＳ６７２５３７４
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明の目的は、不正を働く第三者がセキュリティモジュールの識別子を引き出したとしても、このモジュールのコードを不正に公開した際、このモジュールを識別する手段を含む方法及びセキュリティモジュールを提案することである。従って本発明においては、セキュリティモジュールのクローン化防止策は、これらのモジュールのセキュリティを向上させることではなく、クローン化のために用いられたモジュールの検出を容易にし、その結果、これらのモジュールの機能を無効にすることを内容とする。
【００１７】
欧州特許ＥＰ１１７８４０６は、プリント回路の独自のシリアルナンバーがメモリに記憶される方法について記述している。この発明においては、まずバーコードからシリアル番号が読み込まれ、次にデジタル情報に変換される。これらの情報は場合によっては暗号化され、その後、単一の又は複数のメモリに入力される。この発明の目的は、シリアルナンバーの検出を難しくすること、及び無許可の者がこのシリアルナンバーを知り変更することを防止することである。シリアルナンバーを隠すためにシリアルナンバーは大容量メモリに記憶され、その結果、他の記憶された全ての情報の中でこのシリアルナンバーを割り出すことが困難になる。シリアルナンバーを知り変更することを防止するためにシリアルナンバーが暗号化される。
【００１８】
シリアルナンバーを隠すことによっても本発明の問題を満足のいく方法で解決することはできない。事実、シリアルナンバーはメモリの所与のロケーションに、ある値として記憶される。ある者、又はある者のグループがシリアルナンバーのロケーションを割り出すと、このロケーションは公開される可能性がある。従って、クローン化されたセキュリティモジュールを作製するのに必要な情報処理コードが公開された時は、セキュリティモジュールが検出されるのを防止するためには、このロケーションの内容を公開しないようにすればよい。
【課題を解決するための手段】
【００１９】
本発明の目的は、１つのマイクロプロセッサと、少なくとも1つの運用プログラム及び前記モジュールの独自の識別手段を含むプログラムメモリを備えるセキュリティモジュールであって、この識別手段が、モジュールの前記マイクロプロセッサによる実行と適合するダミー情報処理コードの集合で構成され、プログラムメモリ内に保存されることを特徴とするセキュリティモジュールにより達成される。
【００２０】
この目的は、１つのマイクロプロセッサと、少なくとも１つの運用プログラムを含む１つのプログラムメモリを備え、
‐  ダミー情報処理コードと呼ばれる情報処理コードの独自の集合を生成する工程と、
‐  このコードの集合を専用のメモリロケーション内のプログラムメモリ内に書込む工程と
を含むことを特徴とする、独自の識別子によるセキュリティモジュールのカスタマイズ方法によっても達成される。
【００２１】
本発明の目的は、情報処理コードが一般人からアクセス可能であるようにされた、請求項１から６のいずれか１項において規定されたようなセキュリティモジュールの識別方法であって、
‐  一般人からアクセス可能であるようにされた情報処理コードの中からダミー情報処理コードを抽出する工程と、
‐  前記セキュリティモジュールの識別手段を導くようあらかじめ決められた規定に従って前記ダミー情報処理コードを処理する工程と
を含む方法によっても達成される。
【００２２】
本発明のカスタマイズ方法は、不正を働く第三者からはダミー情報処理コードがプログラムの一部を成すものとみなされ、従ってクローンモジュールの再生に必要であるように思われるということがその主な特長である。
【００２３】
これらのダミー情報処理コードは運用プログラム内に紛れ込んでいるので、モジュールが良好に作動するのに真に必要な情報はどれであるか、また識別番号を生成するのに使用される情報はどれであるかを判別することが難しい。
【００２４】
本発明によるセキュリティモジュール並びにこれに関連する方法により、不正にアクセスしたセキュリティモジュールの情報処理コードの公開という不正を働く者に対し、セキュリティモジュールの独自の識別番号又は番号を決定することを可能にする情報も公開させるように駆り立てることができる。このおかげで、元のセキュリティモジュールがどこにあるかを判定することが比較的容易である。そこを起点として、この元のモジュール、並びにこのモジュールにより作製することができたクローンを無効にすることができる方法が存在する。これらの方法のうちの１つは、同じ出願人の欧州特許出願ＥＰ０４１００９６９．７にて記述されている。
【００２５】
本発明は、非限定的例として示した添付の図面を参照して行う以下の詳細な説明により、より良く理解されよう。
【発明を実施するための最良の形態】
【００２６】
図１を参照すると、セキュリティモジュールＳＭは、セキュア化されたプロセッサモジュールである。そのためセキュリティモジュールは、少なくとも１つのマイクロプロセッサＣＰＵ、及び特に運用プログラムを含むプログラムメモリを有する。図示する実施形態では、プログラムメモリは第１の起動エリアＺ１と第２の作業エリアＺ２を含む。第１の起動エリアはその全体又は一部がＲＯＭメモリ、即ち書込み不可メモリで構成される。特に変数用として、ある部分がＲＡＭ又はＥＥＰＲＯＭメモリエリアを含むことができる。この部分は、セキュリティモジュールの電源入りの際に最初に実行されるので、「起動」エリアと呼ばれる。
【００２７】
従来、セキュリティモジュールは、読取り専用メモリエリアに記憶することができる独自の識別番号ＵＡ１を含むことができる。通常、この番号ＵＡ１は例えばセキュリティモジュール自体又は添付書類に印刷することができるシリアルナンバーの形態でユーザーがアクセスすることができる。
【００２８】
作業エリアＺ２は運用プログラム及びデータを含む。このエリアは不揮発性メモリで構成されるが、ＥＥＰＲＯＭ等の書込みの可能性を有する。エリアＺ２はＲＡＭのような揮発性メモリも含むことができる。実際にはこのエリアは通常均一ではなく、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、ＮＶＲＡＭ又はフラッシュ等、複数のメモリを含むことができる。
【００２９】
マイクロプロセッサＣＰＵは、起動時又は再起動（リセット）時に、自動的に第１エリアＺ１に向けられる。第１のセキュリティ関連の作業が行われるのはそこである。これらの作業は第１メモリエリアを使用することになるが、必要であれば作業エリアＺ２も使用する。
【００３０】
図１においてＩ／Ｏブロックは、モジュールＳＭの外部への通信手段を示すが、これは、暗号化機能及びメモリ内に保存されている権利を使用するのに不可欠な手段である。また、上で記述したようなセキュリティリークによってエリアＺ２からデータが偶発的に抽出される場合もここを介して行われる。
【００３１】
上で示したように、作業エリアＺ２はモジュールの運転のための運用プログラムを含む。図２及び図３により、運用プログラムの構造の一実施形態を詳細に示す。この運用プログラムは、そのようなプログラムのコンパイルの前に置かれるのであれば、決められた機能を有する命令ラインの形態で表すことができる情報処理コードで構成される。
【００３２】
説明をわかりやすくするために、命令が、ある所定のシンタックスを満たす命令ブロックＢ１、Ｂ２、Ｂ３に配分されていると仮定する。
【００３３】
本発明のモジュール内には、少なくとも２種類の命令ラインが共存する。第１の種類は、決められた基準に従いマイクロプロセッサにより実行され、プログラムの動作にとって「有用」な結果を生み出す、実ラインと呼ばれる従来の命令に相当する。第２の種類の命令は、マイクロプロセッサによって実際に実行されず、及び／又は結果を直接生み出さない命令である。一方、以下の文中ではダミーラインと呼ぶこれらの命令ラインは、当該セキュリティモジュールに組み合わせられる独自の識別手段ＵＡ２を形成するのに使用される。実際には、ダミーラインは、マイクロプロセッサにより実行されない命令とするか、実際に実行されるが、運用プログラムの進行に影響を与える結果を生み出さない命令とすることができる。別の言い方をすれば、これらのコードの存在の有無に関わらず、プログラムの動作は同じである。「ダミーコード」又は「ダミーライン」という用語は、これら２つの実施形態を包含するものとして理解しなければならない。
【００３４】
図２に示す実施形態を特に参照すると、運用プログラムはある数の実命令ブロックＢ１、Ｂ２を含み、これらはプログラムルーチン、並びに命令ブロックＢ３を形成するダミー情報処理コードの集合を形成することができ、この命令ブロックは従来の命令ブロックと同じ態様を有するが、各モジュール毎に異なる。これらの情報処理コードはマイクロプロセッサによる実行に適し、前記マイクロプロセッサのシンタックスに対応するので、ただコードを分析しただけでは、実行されるであろう実コードや、実行されない或いは運用プログラムに対し影響を与えないダミーコードを割り出すことは不可能である。このダミーの集合に含まれる命令は、通常、マイクロプロセッサによって実行されないダミーラインであるか、それらを実行してもプログラムの動作には影響が及ばない。即ちこれらの命令はモジュールの独自の識別手段ＵＡ２を形成することにしか用いられない。実命令は図２及び図３においてＲで示す実ラインで形成され、ダミーラインはこれらの図において符号Ｆで示してある。好ましくは、この命令ブロックＢ３は、よりうまく隠すよう、運用プログラムに挿入される。識別手段を形成するのに用いられるダミー情報処理コードも、例えばレジスター値又は変数値を含むことができる。
【００３５】
図３に示すような実施の変形形態によれば、ダミーラインが運用プログラムのメモリ内に一緒にまとめられる先の例とは異なり、セキュリティモジュールは、実命令Ｒの中に分配されたある数のダミー命令ラインＦを含む。これらのダミーラインは、独自であり各セキュリティモジュール毎に異なる情報処理コードの集合を形成する。
【００３６】
通常、命令ラインは順番に実行されるため、これらの命令ラインが実行されないこと、又はそれらを実行することにより運用プログラムの良好な進行に影響が及ばないようにすることが重要である。また、不正を働く者によってこれら専用の情報処理コードが検出されないようにする、或いは検出が難しいようにすることも同じく重要である。
【００３７】
これらの制約を解消するためのものとして複数の実施形態が利用可能である。実施形態のうちの１つにおいては、ダミーラインは、当該ラインがダミーであり、従ってマイクロプロセッサにより実行してはならないことを示す特別な情報を含むことができる。
【００３８】
別の実施形態によれば、実命令によっては、ダミーラインのロケーションに関する手がかりを含むものがある。そのような手がかりは、例えば、決められたメモリロケーションに配置されたラインは処理してはならないことを示す命令の形態にすることができる。
【００３９】
ダミーラインを処理しないようにする命令は、例えばある条件が満たされた時、当該ラインをジャンプしなければならないことを示すことにより隠すことができる。そうすることにより、この条件が常に満足されるよう手筈を整えることが可能である。また、次のラインがダミーであることを示す手がかりを実ラインに付加することも可能である。
【００４０】
別の実施形態によれば、情報処理コード内のいかななるものもダミーラインと実ラインを区別しない。セキュリティモジュールは、マイクロプロセッサが実行してはならない情報処理コードのロケーションを示す記憶情報を含む。
【００４１】
上で簡単に記述したような変形形態もまた、マイクロプロセッサにより実際に実行されるがプログラムのその後の実行に対しては影響を及ぼさない命令をダミーラインとして使用することにある。そのような命令を、プログラムが次のラインに移行しなければならないことを示す手がかりとすることができる。例えば、条件付きジャンプの形態の命令を書込むことにより、ある決められた条件が満たされる時のみ次のラインへの移行が行われるように指示することにより、この条件が常に満たされるように準備しながら、この種の「無用」な命令を突き止めにくくすることはもちろん可能である。別の形態は、ある条件が満たされる時、この条件が決して満たされないように準備しながら、任意のあらかじめ決められたアドレスにプログラムを送ることにある。また別の形態は、重要でないとわかっているメモリロケーションを変更することにある。これらの「無用」な命令は、運用プログラムの実行の結果に影響を与えることなく削除することができるので、文中では、「マイクロプロセッサによる運用プログラムの実行に対し影響を及ぼさない」と記載してある。
【００４２】
不正を働く者によるダミーラインの検出を困難にする極めて好適な方法は、逆コンパイルされた情報処理コードの理解を著しく複雑にする方法である難読化或いは隠蔽である。
【００４３】
本発明の一変形形態によれば、ダミーラインのうちの一部のみがセキュリティモジュールの識別に用いられるようにすることも可能である。セキュリティモジュールの識別に用いられないダミーラインは、情報処理コードの理解を困難にするために、また、機能クローンを作成することができるようにする場合に公開しなければならない情報は何か、またセキュリティモジュールの独自の識別番号も露見されることを欲しない場合に省略しなければならない情報は何かを不正者が検出することを妨げるために、もっぱら存在する。
【００４４】
そのような追加のダミーラインは、モジュールがダミーブロックを含む実施形態にも、また、命令が実命令内に散在している実施形態にも挿入することができる。
【００４５】
例えば図２に示す実施形態及び図３に示す実施形態など２つの実施形態を組み合わせることもできること、即ち、他のダミー命令を実命令の中に配分しながら、ダミー命令をある決まった１つのブロックに入れることが可能であることに留意すべきである。
【００４６】
また、複数の識別手段を生成すること、或いは同じ独自の識別手段ＵＡ２を複数回生成することが可能な情報を入力し、その結果、ダミーラインのうちのいつくかが検出され従って公開されなくても、識別手段ＵＡ２を割り出すことが可能であるようにすることも可能である。
【００４７】
本発明によるセキュリティモジュールの実施には、モジュールに特有なデータを入力するカスタマイズ工程が含まれる。本発明は、情報処理コードが公開されたモジュールを検出する工程にも関連付けられる。この検出工程は、公開された情報からセキュリティモジュールに固有なデータを抽出することを内容とする。
【００４８】
本発明によるカスタマイズ方法の主な内容は、情報処理コードの独自の集合を生成し、次にこれらのコードをプログラムメモリ内に書込むことである。
【００４９】
このカスタマイズ方法はまず、選択されたセキュリティモジュールの種類によって変わり、特に、ダミー情報処理コードのロケーションによって変わる。例えば、ダミーコードが分離されたブロックの形態でプログラムメモリ内に置かれた場合、ダミーコードはブロックの形態で生成され、次にモジュール内に入力することができる。
【００５０】
ダミーコードが実情報処理コード内に分散している時、運用プログラムを形成する実コードは、空きロケーションを含むように記憶される。次にダミーコードが生成され、これらの空きロケーションに挿入される。
【００５１】
マイクロプロセッサによって実際に実行されるコードがダミーコードとなる実施形態においては、これらのコードは運用プログラムの進行には何ら影響を及ぼさないので、コードディレクトリを使用することが可能である。このディレクトリーは、運用プログラムの進行に影響を及ぼさないあらかじめ決められた情報処理コードの集合を含む。上述のように、これらのコードは、条件付きジャンプ、メモリエリアへの値の書込み、値の変更、その他、命令の実行の有無に関わらず、プログラムの進行を変更しない命令を含むことができる。
【００５２】
また、ディレクトリーに含まれているダミーコードから識別手段を自動的に生成する方法を用意することも可能である。例えば、空いている命令ライン数及び場合によっては挿入するブロックのサイズを知ることにより、運用プログラムの空ラインを挿入し各セキュリティモジュールが独自の命令の集合を使用するよう、ライブラリーの命令の中からある数のコードを取り出すことが可能である。このユニーク性は、使用する情報処理コードによって実現することも、これらのコードの使用順によっても実現することも可能である。図４はこの方法の概略図であり、図中の符号１０はダミーコードＦ１、Ｆ２、．．．のディレクトリを示す。符号１１は運用プログラムを形成する実情報処理コードＲ１、Ｒ２、．．．を示す。これらのコードは空のメモリロケーションを含む。
【００５３】
セキュリティモジュールのカスタマイズ化の際には、ディレクトリーに記憶されているダミーコードの中から、ある数の情報処理コードが選択され、その結果、２つのセキュリティモジュールが同じコードを含まないようになる。これらのコードは運用プログラムの空きメモリロケーションに入力される。図４に示す例では、符号ＳＭ１、ＳＭ２、ＳＭ３を有するセキュリティモジュールのダミーコードはそれぞれ集合（Ｆ１、Ｆ１、Ｆ３）、（Ｆ３、Ｆ２、Ｆ４）及び（Ｆ３、Ｆ３、Ｆ１）である。
【００５４】
更に本カスタマイズ方法は、ダミー情報処理コードの検出をより複雑することをねらいとする工程を含むことができる。特に、ダミーコードがブロックの形態で、ある決まったメモリロケーション内にまとめられている時は、セキュリティが侵害された２つのセキュリティモジュールの情報処理コードを単純に比較するだけで、不正を働く者がダミーコードを割り出すことができるようになり、その結果、これらを公開するようになるような事態を防止するのが適切である。この問題を解決するには、難読化又は隠蔽が特に適している。
【００５５】
上述のような、情報処理コードが公開されたモジュールを検出する工程は、公開された情報からセキュリティモジュールの独自の識別手段を抽出して、元のモジュールの所有者を見つけること、及びモジュール並びにモジュールにより作成されたクローンの無効にすることを内容とする。
【００５６】
この検出する工程の主な内容は、公開された情報処理コードを、カスタマイズ工程時にセキュリティモジュール内に入力されたコードと比較することである。このために種々の手段を用意することが可能である。特に、公開されたコードと生成されたコードの「１ラインずつ」の比較が可能である。この比較を行う別の方法は公開されたコードからダミーコードを抽出し、次に、これらのダミーコードに、ある演算を適用することである。実行可能な基本的演算は、ダミーコードを形成するビットの連結である。別の演算は、命令ブロックの署名（ハッシュ）を決めることでもある。実際には、ある独自の命令ブロックから独自の値を得ることができる任意の演算を使用することができる。この演算はカスタマイズ工程の際生成された情報コードに適用され、次にユニーク値が比較される。
【００５７】
まき散らされたダミー命令は先の例の場合と同様に図２に示すようにして処理され、その結果、セキュリティモジュールの独自の識別手段ＵＡ２が特定される。
【００５８】
セキュリティが侵害されたセキュリティモジュールの識別手段が特定されたら、元のセキュリティモジュール、並びにこの元のモジュールからクローン化されたモジュールを無効にすることが可能である。
【００５９】
上では詳細に記述しなかったその他の具体的な実施の変形形態も本発明の一部を成すものである。特に、１つのセキュリティモジュールに対し複数の識別手段を生成することができるダミー情報処理コードを入力することが可能である。例として、個別命令ブロックにより第１識別を構成し、公開コードにより、別の識別手段を構成することが可能である。
【００６０】
また、冗長ダミーコードを入力して、公開時にダミーコードの一部が削除されても識別手段を抽出できるようにすることも可能である。
【００６１】
独自のセキュリティモジュールについてではく、あるセキュリティモジュールのグループについて同一の識別手段ＵＡ２が使われるようにすることが可能である。これは、モジュールのグループが同一人、より詳細には同一のエンティティに所属する場合には有利である。上の種々のモードの組み合わせも同じく可能であり、例えば、あるセキュリティモジュールはあるモジュールグループに共通な第１識別手段と、モジュール毎に独自の第２識別手段を含むことができる。
【００６２】
また、識別手段ＵＡ２は、レジスタ内の値を示す情報処理コードを基にして画定することもできる。
【００６３】
一般的に、識別手段ＵＡ２は、セキュリティモジュールに従来含まれている識別手段ＵＡ１の代りとなるものではない。識別手段ＵＡ１はモジュール内にあり、モジュールが例えばチップカード又は鍵の形状を有する場合、モジュール上に印刷することができる。
【００６４】
一方、識別手段ＵＡ２は機密が保たれたままであり、第２識別番号ＵＡ２が存在することすら機密が保たれる。
【図面の簡単な説明】
【００６５】
【図１】図１は本発明によるセキュリティモジュールの概略図である。
【図２】図２は図１のセキュリティモジュールの一部分の第１実施形態を示す図である。
【図３】図３は図１のセキュリティモジュールの一部分の第２実施形態を示す図である。
【図４】図４は本発明の方法の個別の実施形態を示す図である。
【図１】
2008504617.tif 000003
【図２】
2008504617.tif 000004
【図３】
2008504617.tif 000005
【図４】
2008504617.tif 000006
【国際調査報告】
2008504617.tif 000007
2008504617.tif 000008
2008504617.tif 000009
2008504617.tif 000010