(57)【特許請求の範囲】
【請求項１】
複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行う認証装置であって、
前記認証条件に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証条件が記憶される付加ビット付認証条件記憶部と、
前記認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証値が記憶される付加ビット付認証値記憶部と、
前記付加ビット付認証条件記憶部に記憶されている前記付加ビット付認証条件から、前記認証条件に含まれる１ビットと、当該１ビットに隣り合う前後の前記付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した当該認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定する認証条件改ざん判定部と、
前記付加ビット付認証値記憶部に記憶されている前記付加ビット付認証値から、前記認証値に含まれる１ビットと、当該１ビットに隣り合う前後の前記付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証値ビット列を読み出し、読み出した当該認証値ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定する認証値改ざん判定部と、
前記認証条件改ざん判定部が、前記認証条件ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合、または、前記認証値改ざん判定部が、前記認証値ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に、前記認証処理を行う認証処理部と、
を備えることを特徴とする認証装置。
【請求項２】
前記付加ビット付認証条件記憶部に記憶されている前記付加ビット付認証条件に含まれる前記付加ビット列は、偶数個のビットであり、
前記付加ビット付認証値記憶部に記憶されている前記付加ビット付認証値に含まれる前記付加ビット列は、偶数個のビットである
ことを特徴とする請求項１に記載の認証装置。
【請求項３】
前記付加ビット付認証条件記憶部に記憶されている前記付加ビット付認証条件に含まれる前記付加ビット列は、奇数個のビットであり、当該付加ビット列は、前記認証条件に含まれるビットの前後で反転値であり、
前記付加ビット付認証値記憶部に記憶されている前記付加ビット付認証値に含まれる前記付加ビット列は、奇数個のビットであり、当該付加ビット列は、前記認証値に含まれるビットの前後で反転値である
ことを特徴とする請求項１に記載の認証装置。
【請求項４】
前記付加ビット付認証条件記憶部に記憶されている前記付加ビット付認証条件に含まれる前記付加ビット列は、２個のビットであり、
前記付加ビット付認証値記憶部に記憶されている前記付加ビット付認証値に含まれる前記付加ビット列は、２個のビットである
ことを特徴とする請求項１または請求項２のいずれかに記載の認証装置。
【請求項５】
複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行い、前記認証条件に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証条件が記憶される付加ビット付認証条件記憶部と、前記認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証値が記憶される付加ビット付認証値記憶部と、を備えた認証装置の認証方法であって、
前記付加ビット付認証条件記憶部に記憶されている前記付加ビット付認証条件から、前記認証条件に含まれる１ビットと、当該１ビットに隣り合う前後の前記付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した当該認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、
前記付加ビット付認証値記憶部に記憶されている前記付加ビット付認証値から、前記認証値に含まれる１ビットと、当該１ビットに隣り合う前後の前記付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証値ビット列を読み出し、読み出した当該認証値ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、
前記認証条件ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合、または、前記認証値ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に、前記認証処理を行うステップと、
を備えることを特徴とする認証方法。
【請求項６】
複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行い、前記認証条件に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証条件が記憶される付加ビット付認証条件記憶部と、前記認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証値が記憶される付加ビット付認証値記憶部と、を備えた認証装置のコンピュータに、
前記付加ビット付認証条件記憶部に記憶されている前記付加ビット付認証条件から、前記認証条件に含まれる１ビットと、当該１ビットに隣り合う前後の前記付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した当該認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、
前記付加ビット付認証値記憶部に記憶されている前記付加ビット付認証値から、前記認証値に含まれる１ビットと、当該１ビットに隣り合う前後の前記付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証値ビット列を読み出し、読み出した当該認証値ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、
前記認証条件ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合、または、前記認証値ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に、前記認証処理を行うステップと、
を実行させる認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、定められた認証条件と、入力される認証値とを比較して認証処理を行う技術に関する。
【背景技術】
【０００２】
高い耐タンパ性が要求されるＩＣ（integrated circuit）デバイスにおいて、そのＩＣデバイスに記憶されている情報が読み出される際に、定められた認証処理を行って認証成功と判定した場合にのみ情報を出力するような制御が行われている。このような制御を行うＩＣデバイスは、例えば、複数のビット列によって定められた認証条件を予め記憶し、このような認証条件と、入力される複数のビット列である認証値とを比較し、認証値が認証条件を満たす場合に認証成功と判定する。
特許文献１には、認証処理を行う際に用いる暗号鍵やそれに付帯する情報をアクセス制限のある特殊なエリアに記憶させ、安全な認証処理を行おうとする技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２０６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年、フォルトインジェクション等の攻撃手法が高度化しており、このような攻撃へのさらなる対策が必要である。例えば、ＩＣデバイスの半導体に対して物理的に電圧や光線等を当てて、半導体内部のビットデータを書き換えて改ざんしてしまうという攻撃手法が現実的なものとなってきている。例えば、このような手法によりＩＣデバイス内の認証条件や認証値が改ざんされてしまえば、本来意図しない手順により認証が成功してしまうことがあると考えられる。ただし、このような攻撃を行う場合、半導体内部のデータを１ビット単位で書き換えることは非常に困難であり、攻撃によるデータ書き換えの対象であるビットの前後１ビットずつ（計３ビット）が改ざんされる。ここで、このようなフォルトインジェクション攻撃による改ざんが行われた場合に、改ざんが行われたことを検知し、改ざんが行われた場合には認証を成功しないようにすることが望ましい。
【０００５】
本発明は、このような状況に鑑みてなされたもので、フォルトインジェクション攻撃による改ざんが行われた場合に、改ざんが行われたか否かを判定する認証装置、認証方法および認証プログラムを提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明は、複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行う認証装置であって、認証条件に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証条件が記憶される付加ビット付認証条件記憶部と、認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証値が記憶される付加ビット付認証値記憶部と、付加ビット付認証条件記憶部に記憶されている付加ビット付認証条件から、認証条件に含まれる１ビットと、１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定する認証条件改ざん判定部と、付加ビット付認証値記憶部に記憶されている付加ビット付認証値から、認証値に含まれる１ビットと、１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証値ビット列を読み出し、読み出した認証値ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定する認証値改ざん判定部と、認証条件改ざん判定部が、認証条件ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合、または、認証値改ざん判定部が、認証値ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に、認証処理を行う認証処理部と、を備えることを特徴とする。
【０００７】
また、本発明は、付加ビット付認証条件記憶部に記憶されている付加ビット付認証条件に含まれる付加ビット列は、偶数個のビットであり、付加ビット付認証値記憶部に記憶されている付加ビット付認証値に含まれる付加ビット列は、偶数個のビットであることを特徴とする。
【０００８】
また、本発明は、付加ビット付認証条件記憶部に記憶されている付加ビット付認証条件に含まれる付加ビット列は、奇数個のビットであり、付加ビット列は、認証条件に含まれるビットの前後で反転値であり、付加ビット付認証値記憶部に記憶されている付加ビット付認証値に含まれる付加ビット列は、奇数個のビットであり、付加ビット列は、認証値に含まれるビットの前後で反転値であることを特徴とする。
【０００９】
また、本発明は、付加ビット付認証条件記憶部に記憶されている付加ビット付認証条件に含まれる付加ビット列は、２個のビットであり、付加ビット付認証値記憶部に記憶されている付加ビット付認証値に含まれる付加ビット列は、２個のビットであることを特徴とする。
【００１０】
また、本発明は、複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行い、認証条件に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証条件が記憶される付加ビット付認証条件記憶部と、認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証値が記憶される付加ビット付認証値記憶部と、を備えた認証装置の認証方法であって、付加ビット付認証条件記憶部に記憶されている付加ビット付認証条件から、認証条件に含まれる１ビットと、１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、付加ビット付認証値記憶部に記憶されている付加ビット付認証値から、認証値に含まれる１ビットと、１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証値ビット列を読み出し、読み出した認証値ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、認証条件ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合、または、認証値ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に、認証処理を行うステップと、を備えることを特徴とする。
【００１１】
また、本発明は、複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行い、認証条件に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証条件が記憶される付加ビット付認証条件記憶部と、認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証値が記憶される付加ビット付認証値記憶部と、を備えた認証装置のコンピュータに、付加ビット付認証条件記憶部に記憶されている付加ビット付認証条件から、認証条件に含まれる１ビットと、１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、付加ビット付認証値記憶部に記憶されている付加ビット付認証値から、認証値に含まれる１ビットと、１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証値ビット列を読み出し、読み出した認証値ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定するステップと、認証条件ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合、または、認証値ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に、認証処理を行うステップと、を実行させる認証プログラムである。
【発明の効果】
【００１２】
以上説明したように、本発明によれば、複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行う認証装置が、認証条件または認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列を記憶し、認証処理の際には、記憶したビット列から、認証条件または認証値に含まれる１ビットと、その１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれるビット列を読み出し、同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に認証処理を行うようにしたので、フォルトインジェクション攻撃により少なくとも３ビットの改ざんが行われた場合に改ざんが行われたことを検知することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による認証装置の構成例を示すブロック図である。
【図２】本発明の一実施形態による認証条件のデータ例を示す図である。
【図３】本発明の一実施形態による付加ビット付認証条件のデータ例を示す図である。
【図４】本発明の一実施形態による認証装置の動作例を示すフローチャートである。
【図５】本発明の一実施形態による付加ビット付認証条件のデータ例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態について、図面を参照して説明する。
＜第１の実施形態＞
図１は、本実施形態による認証装置１０の構成を示すブロック図である。認証装置１０は、複数のビットが含まれるビット列によって予め定められた認証条件と、入力されるビット列である認証値とを比較して認証処理を行うコンピュータ装置である。具体的には、認証装置１０には、ＵＳＢ（Universal Serial Bus）メモリやＴＰＭ（Trusted Platform Module）、ＩＣカードなどの、ＩＣチップの機能によって認証処理を行う各種ＩＣデバイスが適用できる。認証装置１０には、例えばＩＳＯ／ＩＥＣ７８１６−４に示されるような階層構造によりデータが記憶されており、階層の区画毎にアクセス制限が設定される。ここでは、このような区画にアクセスするためのコマンドごとに、認証条件のいずれのビットのフラグを用いるか、また各領域のフラグをどのように演算するかを示す条件が定められている。
【００１５】
図２を参照して、このような認証処理の概要を説明する。例えば、認証装置１０は、この図に示すような情報を認証条件として予め記憶している。認証条件は、ＡカテゴリとＢカテゴリとに分類されたＡ０〜Ａ３とＢ０〜Ｂ３との計８ビットの情報である。Ａ０、Ｂ０はそれぞれＡＮＤフラグであり、Ａ１〜Ａ３、Ｂ１〜Ｂ３はそれぞれアクセス制御フラグである。ＡＮＤフラグは、それぞれのカテゴリにおけるアクセス制御フラグの結合関係を示すフラグであり、１ならＡＮＤを示し、０ならＯＲを示す。ＡカテゴリとＢカテゴリとはＡＮＤにより結合される。本実施形態ではアクセス制御フラグは３ビットとして説明するが、制御内容に応じて任意の数のビットをアクセス制御フラグとすることができる。
【００１６】
認証装置１０は、Ａ１〜Ａ３、Ｂ１〜Ｂ３をそれぞれ権限に対応する値とし、ＰＩＮ認証や指紋認証、署名認証などに応じて、認証されたユーザの権限に対応するビットのフラグを立てる（０を１にする）。このようなフラグによって、特定の情報にアクセスすることが許可されているか否かを判定するアクセス制限を行う。例えば、このようなビット列によって、「（Ａ１  ＯＲ  Ａ２）  ＡＮＤ  Ｂ２」のような権限によるアクセス制限を行うことができる。すなわち、多様な権限の組み合わせに応じて、特定の情報にアクセスすることを許可するように制御することができる。このような処理を行うため、認証装置１０は、付加ビット付認証条件記憶部１１と、認証条件改ざん判定部１２と、認証値入力部１３と、付加ビット付認証値記憶部１４と、認証値改ざん判定部１５と、認証処理部１６と、記憶部１７と、制御部１８とを備えている。
【００１７】
付加ビット付認証条件記憶部１１には、定められた認証条件に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証条件が記憶される。図３は、付加ビット付認証条件記憶部１１に記憶される付加ビット付認証条件のデータ例を示す図である。ここでは、付加ビット列は２個のビットであり、「０１」の値である。図では、認証条件のビットと付加ビット列のビットとを区別して示すために認証条件のビットと付加ビット列とを区切って示しているが、データとして区切りはなく、付加ビット付認証条件は連続する２６ビットのデータ（０１００１１０１０・・・）である。付加ビット付認証条件記憶部１１には、このようなフォーマットによって認証条件が記憶されており、付加ビット列が２ビットである場合には、３（付加ビット列のビット数＋１）の倍数の箇所のビットが認証条件であることが予め定義されている。ただし、付加ビット列は隣り合うビットが異なる値を示す偶数個のビット列であれば良く、例えば「１０」、「０１０１」、「１０１０」などでも良い。
【００１８】
認証条件改ざん判定部１２は、付加ビット付認証条件記憶部１１に記憶されている付加ビット付認証条件から、認証条件に含まれる１ビットと、その１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定する。図３の例では、認証条件に含まれるＡ１の値を読み出す場合には、Ａ１に隣り合う前後の付加ビットを２ビットずつが含まれるビット列「０１１０１」を認証条件ビット列として読み出す。そして、認証条件改ざん判定部１２は、読み出した認証条件ビット列に、同値が少なくとも３ビット連続するビット列（「１１１」または「０００」）が含まれるか否かを判定する。ここで、付加ビットは隣り合うビットが異なる値を示すビット列（０１）であるため、通常の動作を行っている限りは、同値が少なくとも３ビット連続するビット列が検出されることはない。このような認証条件改ざん判定処理により、同値が少なくとも３ビット連続するビット列が検出された場合には、何らかの改ざんが行われたと判定する。同値が少なくとも３ビット連続するビット列が検出されない場合には、改ざんが行われていないと判定する。
【００１９】
認証値入力部１３は、ユーザからの認証値の入力を受付け、入力に応じた付加ビット付き認証値を付加ビット付認証値記憶部１４に記憶させる。認証値入力部１３が付加ビット付認証値記憶部１４に記憶させる付加ビット付き認証値のフォーマットは、図３に示した付加ビット付認証条件と同様である。ここでは、認証値入力部１３は、例えば、ＰＩＮ認証や指紋認証、署名認証などの処理を行い、認証結果に応じて、付加ビット付き認証値に含まれる認証値の該当箇所のフラグを立てる。例えばＰＩＮ認証を行う場合、認証値入力部１３はＰＩＮの入力を受付け、定められた認証処理によりＰＩＮ認証を行う。そして、「Ａ１」カテゴリの認証成功と判定した場合には、付加ビット付き認証値に含まれるＡ１の箇所のビットを１にして、付加ビット付認証値記憶部１４に記憶させる。
【００２０】
付加ビット付認証値記憶部１４には、認証値に含まれる複数のビットのそれぞれの前後に、隣り合うビットが異なる値を示す付加ビット列が付加されたビット列である付加ビット付認証値が記憶される。上述したように、付加ビット付認証値記憶部１４に記憶される付加ビット付き認証値のフォーマットは、図３に示した付加ビット付認証条件と同様である。
【００２１】
認証値改ざん判定部１５は、付加ビット付認証値記憶部１４に記憶されている付加ビット付認証値から、認証値に含まれる１ビットと、その１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証値ビット列を読み出し、読み出した認証値ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定する。認証値改ざん判定部１５が行う認証値改ざん判定処理は、認証条件改ざん判定部１２が行う認証条件改ざん判定と同様である。
【００２２】
認証処理部１６は、認証条件改ざん判定部１２が、認証条件ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定し、かつ、認証値改ざん判定部１５が、認証値ビット列に同値が少なくとも３ビット連続するビット列が含まれないと判定した場合に、認証条件改ざん判定部１２に記憶されている認証条件と、付加ビット付認証値記憶部１４に記憶されている認証値とを比較する認証処理を行う。認証処理部１６は、認証条件改ざん判定部１２に記憶されている認証条件を、付加ビット付認証値記憶部１４に記憶されている認証値が満たすと判定した場合には、認証成功と判定する。
【００２３】
記憶部１７には、読み出しの対象となる情報が記憶されている。例えば、記憶部１７には、階層構造によりデータが記憶されるようにしても良く、特定の階層の区画毎に異なるアクセス制限を設定することができる。すなわち、付加ビット付認証条件記憶部１１には、記憶部１７に記憶されている情報の区画毎に、対応する付加ビット付認証条件が記憶されている。
制御部１８は、認証処理部１６によって認証成功と判定されると、対応する区画の情報を記憶部１７から読み出し、読み出した情報を出力する。
【００２４】
次に、本実施形態による認証装置１０の動作例を説明する。図４は、認証装置１０による認証処理の動作例を示すフローチャートである。
ここでは、認証装置１０はＵＳＢメモリであり、ＰＩＮ認証を行う場合を説明する。ＵＳＢメモリである認証装置１０が、例えばＰＣ（パーソナルコンピュータ）に接続され、認証装置１０の記憶部１７に記憶されているデータの読み出し要求が入力されると、その要求に応じて、認証装置１０の認証値入力部１３は、ＰＣにＰＩＮ入力画面を表示させる。ユーザからＰＩＮが入力されると、認証値入力部１３は、ＰＩＮ認証の処理を行う。例えば、認証値入力部１３には予め定められたＰＩＮが記憶されており、入力されたＰＩＮと予め記憶されているＰＩＮとが一致するか否かを判定する。そして、認証成功と判定すれば、付加ビット付認証値記憶部１４に記憶されている付加ビット付認証値の対応箇所のビットに１を記憶させる（ステップＳ１）。認証失敗と判定すれば、何もしない。
【００２５】
次に、認証条件改ざん判定部１２は、付加ビット付認証条件記憶部１１に記憶されている付加ビット付認証条件を読み出し、認証条件改ざん判定処理を行う（ステップＳ２）。認証条件改ざん判定部１２が、改ざんが行われたと判定すれば（ステップＳ２：ＮＯ）、接続されたＰＣにエラーを出力して処理を終了する（ステップＳ３）。認証条件改ざん判定部１２が、改ざんが行われていないと判定すれば（ステップＳ２：ＹＥＳ）、認証値改ざん判定部１５が、付加ビット付認証値記憶部１４に記憶されている付加ビット付認証値を読み出し、認証値改ざん判定処理を行う（ステップＳ４）。認証値改ざん判定部１５が、改ざんが行われたと判定すれば（ステップＳ４：ＮＯ）、接続されたＰＣにエラーを出力して処理を終了する（ステップＳ３）。認証値改ざん判定部１５が、改ざんが行われていないと判定すれば（ステップＳ４：ＹＥＳ）、認証処理部１６は、付加ビット付認証条件記憶部１１に記憶されている認証条件と、付加ビット付認証値記憶部１４に記憶されている認証値とを比較して認証処理を行う（ステップＳ５）。
【００２６】
認証処理部１６が、認証失敗と判定すれば（ステップＳ５：ＮＯ）、接続されたＰＣにエラーを出力して処理を終了する（ステップＳ３）。認証処理部１６が、認証成功と判定すれば（ステップＳ５：ＹＥＳ）、制御部１８は、記憶部１７に記憶されている情報を読み出して、接続されたＰＣに出力する（ステップＳ６）。
このように、本実施形態によれば、フォルトインジェクション攻撃により、認証条件または認証値の３ビットの改ざんが行われた場合に、改ざんがあったことを検知することができる。これにより、例えばフォルトインジェクション攻撃により認証条件の値を全て０（認証不要）にして、アクセス制限を解除して情報が読み出されるようなことを防ぐことが可能となる。
【００２７】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。第１の実施形態では、改ざん判定のために、認証条件および認証値に含まれるそれぞれのビットを、隣り合うビットが異なる値を示す偶数個のビットである付加ビット列によって挟むようにしたが、本実施形態では、奇数個のビットである付加ビット列によって挟む例を説明する。本実施形態における認証装置１０の構成、動作は第１の実施形態と同様であるが、付加ビット付認証条件記憶部１１に記憶されている付加ビット付認証条件に含まれる付加ビット列は、奇数個のビットであり、この付加ビット列は、認証条件に含まれるビットの前後で反転値である。
【００２８】
図５は、本実施形態の付加ビット付認証条件記憶部１１に記憶されている付加ビット付認証条件のデータ例を示す図である。フォルトインジェクション攻撃により３ビットのデータが同値に改ざんされ書き換えられた場合に、改ざんがあったことを検知するために、認証条件の前後の付加ビットが異なる値となるように認証条件の前後の付加ビットを反転値としている。例えば、図に示すように、Ａ０のビットの前にビット列「１０１」を付加し、Ａ０のビットの後ろに反転値であるビット列「０１０」を付加すれば、Ａ０が０であっても１であっても、正常な状態で同値が３ビット連続することはない。図では、認証条件のビットと付加ビット列のビットとを区別して示すために認証条件のビットと付加ビット列とを区切って示しているが、データとして区切りはなく、付加ビット付認証条件は連続する３５ビットのデータ（１０１００１０１１０１０・・・）である。付加ビット付認証条件記憶部１１には、このようなフォーマットによって認証条件が記憶されており、付加ビット列が３ビットである場合には、４（付加ビット列のビット数＋１）の倍数の箇所のビットが認証条件であることが予め定義されている。
同様に、付加ビット付認証値記憶部１４に記憶されている付加ビット付認証値に含まれる付加ビット列は、奇数個のビットであり、この付加ビット列は、認証値に含まれるビットの前後で反転値である。
【００２９】
なお、本実施形態では、認証条件改ざん判定部１２が認証条件の改ざんを判定し、認証値改ざん判定部１５が認証値の改ざんを判定することにより認証条件と認証値との双方の改ざんを判定する例を説明したが、認証条件と認証値とのいずれかのみの改ざんを判定するようにしても良い。例えば、認証条件改ざん判定部１２が認証条件の改ざんのみを判定し、改ざんが行われていないと判定すれば認証処理を行い、改ざんが行われたと判定すればエラーを出力するようにしても良い。あるいは、認証値改ざん判定部１５が認証値の改ざんのみを判定し、改ざんが行われていないと判定すれば認証処理を行い、改ざんが行われたと判定すればエラーを出力するようにしても良い。あるいは、認証条件と認証値との双方の改ざん判定を行い、少なくともいずれかが改ざんされたと判定された場合には、エラーを出力するようにしても良い。
【００３０】
本実施形態においても、認証条件改ざん判定部１２は、付加ビット付認証条件記憶部１１に記憶されている付加ビット付認証条件から、認証条件に含まれる１ビットと、その１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれる認証条件ビット列を読み出し、読み出した当該認証条件ビット列に、同値が少なくとも３ビット連続するビット列が含まれるか否かを判定する。ここで、認証条件改ざん判定部１２が読み出す認証条件ビット列は、認証条件に含まれる１ビットと、その１ビットに隣り合う前後の付加ビットのうち少なくとも２ビットずつとの少なくとも５ビットが含まれるビット列であれば良い。例えば、認証条件に含まれる１ビットと、その１ビットに隣り合う前後の３ビットずつである計７ビットのビット列でも良いし、認証条件に含まれる１ビットと、その１ビットに隣り合う前２ビットと後３ビット、あるいは前３ビットと後２ビットである計６ビットのビット列でも良い。
【００３１】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより認証処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３２】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００３３】
１０  認証装置
１１  付加ビット付認証条件記憶部
１２  認証条件改ざん判定部
１３  認証値入力部
１４  付加ビット付認証値記憶部
１５  認証値改ざん判定部
１６  認証処理部
１７  記憶部
１８  制御部
【図１】
0005452440.tif 000002
【図２】
0005452440.tif 000003
【図３】
0005452440.tif 000004
【図４】
0005452440.tif 000005
【図５】
0005452440.tif 000006