(57)【特許請求の範囲】
【請求項１】
携帯型データキャリアの多値メモリにデータを安全に格納する方法であって、前記多値レベルメモリが、相異なるデータ内容を表す少なくとも３つの値をそれぞれがとり得る、１つまたはいくつかの多値メモリセルを有し、メモリセルのそれぞれの値が有効または無効と定義され、それぞれのメモリセルの前記値が所要の保全レベルに応じて選択的に有効または無効と定義される方法において、
前記多値メモリの前記１つまたはいくつかのメモリセルについての有効値及び無効値の前記定義が動的に行われることを特徴とする方法。
【請求項２】
それぞれのメモリセルの無効値数に対する有効値数の比が前記所要保全レベルに応じて変えられることを特徴とする請求項１に記載の方法。
【請求項３】
最高度の所要保全レベルにおいては、前記メモリセルが有効値を１つしか有していないことを特徴とする請求項１または２に記載の方法。
【請求項４】
最低限度の所要保全レベルにおいては、前記メモリセルの全ての値が有効であることを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記１つまたはいくつかのメモリセルについての有効値及び無効値の前記動的定義が、その出力が決定論的である、表、関数または擬似乱数発生器を用いて行われることを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項６】
メモリセルからのデータの読出し時に、前記表、前記関数または前記擬似乱数発生器によって、許容値が、注目する前記メモリセルについて決定されることを特徴とする請求項５に記載の方法。
【請求項７】
多値メモリのメモリセルの読出し時に、読み出されたデータ内容が許容データ内容または非許容データ内容のいずれを表すかが、前記定義された有効値及び無効値にしたがって、チェックされ、許容データ内容である場合には前記データ内容が以降の処理に利用可能であるとされ、非許容データ内容である場合には前記メモリセルが不正改竄されていると結論付けられることを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記全てのメモリセルにおいて、２つの許容値のそれぞれの間に少なくとも１つの非許容値が存在する場合に、あるメモリセルについて時間起因または環境起因の変化が判定された場合、無効値が前記メモリセルに与えられていれば、後続のさらに高い許容値が実値として推定されることを特徴とする請求項１から７のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は携帯型データキャリアの多値メモリにデータを安全に格納する方法に関し、多値メモリは、相異なるデータ内容を表す少なくとも３つの値をそれぞれがとり得る、１つまたはいくつかの多値メモリセルを有する。メモリ内のメモリセルのそれぞれの値は有効または無効と定義することができる。
【背景技術】
【０００２】
本説明の文脈における携帯型データキャリアは、例えば、ＩＣカード、ＳＩＭ(加入者識別モジュール)カード、マイクロコントローラ装備キーホルダー(ｆｏｂ)、トークン、等として理解される。携帯型データキャリアのマイクロコントローラは、例えばＥＥＰＲＯＭセルまたはフラッシュメモリセルの形態の、不揮発性メモリを備える。そのようなメモリの動作モードは、メモリセル内の電荷の有無の測定に基づく。さらに正確には、この場合、メモリセルのいわゆる浮遊ゲートに取り込まれている電荷の有無が決定される。多値メモリでは、電荷の有無だけでなく、電荷の量も再現可能な態様で決定される。
【０００３】
それを用いてＥＥＰＲＯＭ／フラッシュメモリセルの内容を変更または消去する、方法が知られている。例えば、高エネルギー光によってメモリセルの浮遊ゲートの電荷を消去することができる。したがって、メモリセルのデータ内容の変更はメモリ全体に対しても、また選択的にいくつかのメモリセルに対しても、行うことができる。したがって、不揮発性メモリを攻撃者が大領域にわたって不正に改竄することが可能である。
【０００４】
不揮発性メモリのデータ内容を不正改竄攻撃に対して保全するため、保護されるべきデータ及び／またはプログラムに対してチェックサムが用いられる。チェックサムとして、例えばＣＲＣ(巡回冗長検査)またはハッシュ値が用いられる。定期的に、データ内容の変更により、対応するチェックサムが新たに計算されて格納されなければならない。しかし、この手続きにはいくつかの欠点がある。一方で、チェックサムの計算及び格納には時間が必要である。他方で、多くの書込アクセスにチェックサムは必要ではないから、メモリ全体に対して単一のチェックサムを定めるのでは不十分である。したがって、不揮発性メモリは、それぞれが数多くのメモリセルを有する、相異なるメモリ領域に対して複数のチェックサムを用いて保護される。さらに、攻撃の文脈において、実有効データだけでなく対応するチェックサムも不正に改竄され、よってメモリを管理しているオペレーティングシステムが攻撃によって変更されたデータをもはや認識できなくなる危険もある。
【０００５】
したがって、特許文献１において、機密情報を安全に格納するために、２つの外側の値が格納されたデータ内容に関して無効であると宣言される、多値メモリの使用が提案されている。情報を格納するために、２つの外側の値の間にある値だけが用いられる。この手続きは、メモリセルのデータ内容を不正に改竄しようとすれば多値メモリセルの無効状態の１つに変化が生じ、これは単純な態様で検出して不正改竄であると認識できるという考察に基づく。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第６３３１９４６Ｂ１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、不正改竄に対する一層改善された保全を可能にする、携帯型データキャリアの多値レベルメモリのデータを格納する方法を提供することである。
【課題を解決するための手段】
【０００８】
上記課題は特許請求項１に記載の特徴を有する方法によって達成される。有益な実施形態は従属請求項に指定される。
【０００９】
本発明にしたがう方法は、携帯型データキャリアの多値メモリにデータを安全に格納するための現在最高の技術に説明される方法よりも進歩している。すなわち、多値メモリは、相異なるデータ内容を表す少なくとも３つの値をそれぞれがとることができ、メモリセルのそれぞれの値が有効または無効と定義される、１つまたはいくつかのメモリセルを有する。本発明にしたがえば、それぞれのメモリセルの値が所要の保全レベルに応じて選択的に有効または無効と定義される態様が提供される。
【００１０】
すなわち、本発明は、多値技術における不揮発性メモリの記憶可能容量の全部は使用しないという、現在最高の技術において知られている考え方に基づく。むしろ、必要な保全レベル、すなわちそれぞれのデータ内容に必要な保護にしたがって定められる保全レベルに応じて、それぞれのメモリセルの値が選択的に有効または無効と定義される。よって、不揮発性メモリの保全性をスケーラブルであるように設計することができる。
【００１１】
詳しくは、それぞれのメモリセルの有効値の無効値に対する比が所要の保全レベルに応じて変えられる。この実施形態においては、最高度の保全レベルが要求される場合には、データ内容の格納に対してメモリセルが１つの有効値しか有しておらず、メモリセルがとり得る他の値は全て無効である。別の実施形態において、所要の保全レベルが最低限度の場合には、データ内容の格納に対してメモリセルの全ての値が有効であり、よってメモリセルの記憶可能容量の全部を使用することができる。
【００１２】
すなわち、本発明にしたがう方法によって、携帯型データキャリアのメモリセルのデータ内容の許容値または禁制値の比を変えることができるようになり、この比は所要保全レベルに応じて変えることができる。この場合は特に、例えば、定められたメモリ内の秘密キーが特に保護され、外部から自由に読み出すことができるデータがほとんどまたは全く保護されない状態でメモリセルに与えられるように、変化はメモリ内でなされる態様が提供され得る。
【００１３】
別の実施形態にしたがえば、多値メモリの１つまたはいくつかのメモリセルに対する有効及び無効の定義は動的にまたは製造過程内で行われる。これは、メモリセルが攻撃で不正に改竄され、よってそれらのメモリセルがいくらかの電荷、したがって何らかのデータ内容を有する場合であっても、どの値、したがってどのデータ態様が個々のメモリセル内で許容または禁制されているかが知られることはない。
【００１４】
具体的な実施形態において、１つまたはいくつかのメモリセルに対する有効及び無効の動的定義は、その出力が決定論的である、表、関数または擬似乱数生成を用いて行うことができ、これは随意に繰り返すことができる。メモリセルからのデータ読出時には特に、該当するメモリに対して表、関数または擬似乱数発生によって許容値が決定される。その後に限って、あるアドレスからのデータの読出が可能になる。よって、携帯型データキャリアの多値メモリにおけるデータ格納において、さらに高められた保全が達成される。
【００１５】
別の実施形態において、多値メモリのメモリセルの読出時に、定義された有効値または無効値にしたがって、許容データ内容または非許容データ内容を表しているか否かがチェックされ、許容データ内容の場合にはその内容が以降の処理に利用可能にされ、非許容データ内容の場合にはメモリセルが不正に改竄されていると結論付けられる態様が提供される。この態様においては、不正に改竄されたデータ内容の無意識の使用を防止することができる。
【００１６】
本発明にしたがう方法の有益な実施形態において、有効値の定義は、消去されていると論理的に宣言されたメモリセルの、ハードウエアに近い、単純な態様での安全な消去の実施に用いられる。この目的のため、消去プロセスにおいて、有効と定義された値は本来無効である値と交換される。したがって、メモリセルのデータ内容は、不正改竄を試みたときに関連する論理的消去宣言がバイパスされ得るとしても、回復させることはできない。
【００１７】
本発明にしたがう方法の別の有益な実施形態において、経時または環境の影響によって生じるメモリセルの物理的変化を補償するために値の選択的有効／無効定義が用いられる。湿度、熱または放射線のような、様々な環境条件によってメモリセルは経時変化をおこす。したがって、もはや個々の値を確実に調節することはできないかあるいは個々の値はひとりでに変化する。変化は永続的であり、通常は、一定の決定論的原理にしたがう。例えば、メモリセルの個々の値を定める電荷は時間の経過とともに減少し、よって電荷によって表されるデータ内容は一見して異なる値に対応する。メモリセルのそのような変化機構が認識された場合には、値の有効／無効定義への潜在的変化原理の適用による、単純な態様でメモリセルの元の状態を再構成または維持することができる。この場合の潜在的変化の認識は外部センサシステムを用いて行うことができる。しかし、これは、例えば複数の隣接メモリをそれぞれのデータ内容の同様の変化についてチェックするように、メモリセル自体を評価することで行うこともできる。そのような変化を補償することにより、一方では「死にかけている」メモリセルをさらに長く用いることが可能になり、同時に、メモリセルがもはや完全には健全ではなく、交換すべきであるという補償信号の実行が可能になる。
【００１８】
以下で、一実施形態を用い、図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【００１９】
【図１】通常のメモリセル及び多値メモリセルの可能な状態を比較する表
【図２】本発明の基礎をなす手続きを説明する表
【発明を実施するための形態】
【００２０】
本発明の手続きを実施するため、携帯型データキャリア、特にＩＣカードの多値メモリが用いられる。多値メモリは、相異なるデータ内容を表す少なくとも３つの値をそれぞれがとることができる、１つまたはいくつかの多値メモリセルを既知の態様で有する。多値メモリセルの値は英語では「レベル」とも称される。不正改竄に対する改善された保護を提供する方法は、不揮発性多値メモリの記憶可能容量の全ては用いないことに基づく。代わりに、所要保全レベルに応じて、メモリセル毎に有効値または無効値が選択的に定義される。言い換えれば、これは、メモリセル毎に許容データ内容または非許容データ内容が選択的に定義されることを意味する。多値メモリの個々のメモリセルを読み出すときに、先に定義された有効値及び無効値にしたがって、許容データ内容を表しているかまたは非許容データ内容を表しているかがチェックされ、許容データ内容である場合には、その内容が以降の処理、例えば携帯型データキャリアの呼び出しルーチンに転送される。しかし、データ内容が非許容である場合は、メモリセルの内容が不正に改竄されていると推定される。
【００２１】
メモリセルが２つの値(状態)しかとることができない通常のメモリ技術と比較すると、本発明の保護は、攻撃者にとり、不正改竄時に多値メモリの中間状態に到達することは従来のメモリセルが空であるかまたはデータが入っている状態に到達するよりも必要以上に困難であるという状況に基づく。図１は、従来のメモリセル及び４つの可能な値を含む多値メモリセルの内容及びそれぞれに関連付けられる電荷の例が示されている、表を示す。ＡＤＲはそれぞれのメモリセルのアドレスの例、‘0x8000’,‘0x8001’,‘0x8002’及び‘0x8003’を表す。ＩＮＨ１は従来のデータ内容を論理表現で例示的に表す。ＬＡＤ１は従来のメモリセルのデータ内容をそれぞれの電荷に関して表す。ＬＡＤ１において、例えば、白丸は荷電されていない浮遊ゲートを表し、黒丸は荷電されている浮遊ゲートを表す。ＩＮＨ２は４値メモリセルのデータ内容を論理表現で例示的に表す。ＬＡＤ２は４値メモリセルのデータ内容をそれぞれの電荷に関して表す。例えば、白の面積に対する黒の面積の比が大きくなるほど、浮遊ゲートの電荷が多くなる。図示される実施形態において、それぞれの多値メモリは１つ毎に、全部で、４つの異なる荷電状態をとり得る。
【００２２】
従来のメモリ技術で、アドレスが‘0x8000’及び‘0x8002’のメモリセルＳＺは論理値‘０’を有する。対照的に、アドレスが‘0x8001’及び‘0x8003’のメモリセルＳＺは論理値‘１’を有する。例えば論理値‘０’は荷電していない浮遊ゲートで表される。対応する態様において、論理値‘１’は荷電している浮遊ゲートで表される。しかしこれは、メモリに用いられる論理に依存して、逆にもなり得る。
【００２３】
従来のメモリ技術とは対照的に、多値メモリのメモリセルＳＺは、２つだけでなく、合計で４つの異なる状態(‘０’,‘１’,‘２’及び‘３’)をとることができ、これらの異なる状態は浮遊ゲートの異なる大きさの荷電によって表される。例えば、アドレスが‘0x8000’のメモリセルＳＺの論理値‘０’は荷電されていない浮遊ゲートで表される。完全に荷電された浮遊ゲートは、例としてアドレスが‘0x8003’のメモリセルＳＺで表される、論理値‘３’を表す。アドレスが‘0x8001’及び‘0x8002’のメモリセルはこれらの２つの状態の間にある値を有する。メモリに用いられる論理に依存して、これは逆にもなり得る。
【００２４】
多値メモリに入れられたデータの保全性を高めるため、例えばデータ内容‘１’及び‘２’またはそれぞれに対応する値だけが許容されると定義され、図２による表に‘Ｅ’で表される。対照的にデータ内容‘０’及び‘３’は非許容データ内容または非許容値を表す。これは、メモリセル読出時にデータ内容‘０’及び‘３’が決定された場合、それぞれのメモリセルＳＺ(表１においてアドレスが‘0x8000’及び‘0x8003’のメモリセル)の不正改竄が成功していると推定されることを意味する。図２にはさらに、許容データ内容を表す許容値が読み出されるが、非許容値は以降のいかなる処理にもかけられないことが示される。これは、実行されるべき動作ＡＫＴがＭまたはＲで表されている、表の最下行に簡略に表される。Ｍは不正改竄されたメモリセルを表し、そのデータ内容が以降全く処理されないが、例えば携帯型データキャリアのオペレーティングシステムによっては特別な態様で扱われる。Ｒは不正改竄されていないメモリセルを表し、そのデータ内容は読み出されて、以降の処理にかけられる。
【００２５】
いくつかの値またはデータ内容の使用制限は、実際上、利用できるメモリを減少させる。しかし、これは保全性の実質的な向上にリンクされる。本発明により、特に不揮発性メモリの保全性をスケーラブルにすることが可能になる。最高度の保全性が要求される場合、例えば、メモリセルが有効値を１つしかもたないと定義することができる。対照的に、要求される保全性が最低限度の場合、メモリセルの全ての値がそれぞれのデータ内容に対して有効であると定義することができる。この変化は完全に多値メモリ内で行うことができ、よって秘密キーまたはその他の機密情報を特に保護することができる。対照的に、携帯型データキャリアの多値メモリの外部から自由に読み出せるデータは、それらがほとんどまたは全く保護されないような態様で格納することができる。
【００２６】
メモリセルの有効値及び無効値の固定された定義の変形において、不揮発性メモリのいくつかの領域、すなわちメモリセルに対して動的に定義を行う態様が提供される。ある変更、したがってあるデータ内容を含むような態様で攻撃者がメモリセルを不正改竄することが可能であったとしても、それぞれのメモリセルにおいてどのデータ内容が許容あるいは禁制であるかが攻撃者にはわからない。
【００２７】
別の変形において、メモリセル毎に個別に有効な値またはデータ内容及び無効な値またはデータ内容を定義する態様が提供される。この定義は、その出力が決定論的であり、したがって随意に繰り返すことができる、表、関数または擬似乱数発生器によって行うことができる。そのように保護されたメモリからデータを読み出す場合、それぞれのメモリセルの１つ毎、すなわちそれぞれのメモリアドレス毎に対する許容データ内容は、例えば、擬似乱数発生器によって決定されなければならない。その後に限って、そのメモリアドレスに関連付けられたメモリセルからのデータ内容の読出しが可能になる。
【００２８】
さらに、動的でメモリセル個別の有効値及び無効値の定義を、さらにＩＣ個別態様で、実施することが可能である。携帯型データキャリアの製造時、特にその初期化及び個人化時に、データ内容をローディングする前に、例えばＩＣ個別態様でランダムに擬似乱数発生器のパラメータを定めることができる。次いで、擬似乱数発生器によって発生された値を用いて、データを不揮発性メモリにローディングすることができる。
【００２９】
メモリセルからの読出プロセスに対して可能なアルゴリズムは：
１．初めにアドレスがＸのメモリセルのデータ内容ＤＩが読み出される；
２．アドレスがＸのメモリセル許容データ内容ｅＤＩが決定される；
３．データ内容ＤＩが許容データ内容ｅＤＩの領域にあるか否かがチェックされる。これが成立すれば、データ内容ＤＩは不正改竄されていないと見なされ、呼び出しルーチンに送られる。データ内容が許容データ内容ｅＤＩの領域にない場合は、データ内容ＤＩが不正改竄されていると推定される。対応手段がオペレーティングシステムによって開始される；
のようにすることができる。
【００３０】
多値メモリセルのいくつかの値だけを有効と定義するための上述した手続きは、多値メモリセルの、ハードウエアに近い、安全な消去を実施するためにも用いることができる。この目的のため、消去プロセスにおいてそれまでは有効と定義された値が無効値と交換される。例えば、図２に示される表において、‘Ｅ’で表される許容状態が‘ＮＥ’で表される非許容状態に変えられ、‘Ｅ’を‘ＮＥ’で置き換えることによって許容状態が非許容状態に変えられる[原文のまま]。この場合、メモリセルは未だ読み出すことができるが、役に立たないデータ内容が得られる。消去をシミュレートするための値の再定義は、メモリの可能な状態の数が大きくなるほど、一層有効になる。
【００３１】
値はメモリセルの相異なる物理的状態を表すから、メモリセルの一般的な時間起因の物理的変化を補償するために用いることもできる。メモリセルは、湿度、熱または放射線のような様々な環境条件によって、経時変化する。時間が経過するにしたがい、これは機能の低下をもたらす[原文のまま]。定常的に、いつかは、個々の値はもはや確実には調節することができなくなるか、あるいは個々の値はひとりでに変化してしまう。しかし、通常、変化した機能は永続的であり、一定の決定論的原理にしたがう。例えば、時間が経過するにしたがって、メモリセルの記憶能力は変化し、これは個々の値の減衰に対応し、よって電荷によって表される値は一見して異なるデータ内容に対応する。図２に示されるような、適する有効性表の定義により、１つまたはいくつかの、メモリセルの変化した機能は補償することができる。そのような有効性表は、例えば、２つの許容状態‘Ｅ’のそれぞれの間に少なくとも１つの非許容状態‘ＮＥ’を有することができるであろう。変化した機能があり得ることを考慮すれば、例えば非許容状態‘ＮＥ’が存在する場合、続いてさらに高い許容状態‘Ｅ’が実値としてとられるはずであり、よってメモリセルの値が低下している状況を考慮して、補償を行うことができる。補償の実施は当然さらに複雑な機構にしたがってなされ得る。補償により、メモリセルがもはや完全には健全ではないとしても、そのようなメモリセルをまだ少なくともある程度は使用し続けることができる。便宜上、補償が行われる状況は、メモリセルを交換するかまたは使用から外すことができるように、適する出力手段によって示される。
【００３２】
補償可能な時間起因または環境起因の変化がメモリセルにおこっているか否かを判定するため、隣接メモリセルのブロックを、隣接メモリセルが何らかの同様の変化を有しているかまたはあるパターンにしたがって変化しているかどうかについて、簡単な態様でチェックすることができる。あるいは、時間起因または環境起因の変化の判定は別個のセンサを用いて行うことができる。
【００３３】
本発明の手続きによって、携帯型データキャリアの多値メモリにデータを、チェックサムをさらに用いる必要なしに、不正改竄防止態様で、格納することが可能になる。本方法は多値メモリセルでの有効メモリ技術の使用に基づく。本方法は簡単な態様で、また現用オペレーティングシステムに少々手を加えるだけで、用いることができる。
【図１】
0005584227.tif 000002
【図２】
0005584227.tif 000003