(57)【要約】【課題】  この発明は、固定値で照合していた場合に比べて、照合データ全体に対してセキュリティ性が向上する。【解決手段】  この発明は、照合データの各バイトに対して、乱数を使って照合結果をマスクする。このとき、乱数を上ニブルと下ニブルとにわけ、“０ｘ００”のデータと論理和を計算し、「４ビットの“０”＋４ビットの乱数」というデータを生成する。この０付き乱数データと照合データの排他的論理和を計算することで、照合結果を毎回異なる値にするようにしたものである。【選択図】      図２
2006344142.tif 000002
【特許請求の範囲】
【請求項１】
暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と外部から供給される暗証とを用いてカード保有者の認証を行う制御素子とを有し、外部機器からの電源供給により作動するＩＣカードにおいて、
乱数を発生する乱数発生手段と、
上記電源が供給され、外部機器からカード保有者の認証が指示されるとともに暗証が供給された際に、この暗証と上記乱数発生手段からの乱数との演算結果と上記不揮発性メモリに記憶されている暗証と上記乱数発生手段からの乱数との演算結果とが一致するか否かにより、暗証照合による認証を行う認証手段と、
を具備したことを特徴とするＩＣカード。
【請求項２】
暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と外部から供給される暗証とを用いてカード保有者の認証を行う制御素子とを有し、外部機器からの電源供給により作動するＩＣカードにおいて、
乱数を発生する乱数発生手段と、
上ニブルに”０”、下ニブルに上記乱数発生手段からの乱数の下ニブルを格納した第１の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第１の演算手段と、
上ニブルに上記乱数発生手段からの乱数の上ニブル、下ニブルに”０”を格納した第２の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第２の演算手段と、
上記第１の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第３の演算手段と、
上記第２の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第４の演算手段と、
上記第３の演算手段による演算結果の上ニブルが”０”で、かつ、上記第４の演算手段による演算結果の下ニブルが”０”の場合に、暗証照合による認証を行う認証手段と、
を具備したことを特徴とするＩＣカード。
【請求項３】
上記第３の演算手段により論理和演算する際に、上記第１の演算手段による演算結果に対して上ニブルに”０”、下ニブルに上記乱数発生手段からの乱数の下ニブルを格納した第３の乱数データによる排他的論理和演算を行い、
上記第４の演算手段により論理和演算する際に、上記第２の演算手段による演算結果に対して下ニブルに”０”、上ニブルに上記乱数発生手段からの乱数の上ニブルを格納した第４の乱数データによる排他的論理和演算を行うことを特徴とする請求項２に記載のＩＣカード。
【請求項４】
上記第１、第２の演算手段により１バイト毎に排他的論理和を計算する際に、論理和演算を計算し、これを暗証番号長分繰り返すことを特徴とする請求項２に記載のＩＣカード。
【請求項５】
上記第１、第２の演算データの単位をバイトに限定せず、“０”と乱数を格納したデータとにより構成したことを特徴とする請求項２に記載のＩＣカード。
【請求項６】
暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と端末から供給される暗証との照合を行いカード保有者の認証を行う制御素子とを有し、端末からの電源供給により作動するＩＣカードと、このＩＣカードを扱う端末から構成されるＩＣカード処理システムにおいて、
上記端末が、
上記ＩＣカードへ電源を供給する供給手段と、
この供給手段による電源の供給時、上記ＩＣカードからの暗証要求に基づいて、暗証を設定する設定手段と、
この設定手段により設定された暗証を上記ＩＣカードへ送信する送信手段と、
この送信手段による暗証の送信に応答して、上記ＩＣカードから認証が供給された際に、処理の実行を許可する許可手段とからなり、
上記ＩＣカードが、
乱数を発生する乱数発生手段と、
上記端末から電源が供給され、かつカード保有者の認証が指示されるとともに暗証が供給された際に、この暗証と上記乱数発生手段からの乱数との演算結果と上記不揮発性メモリに記憶されている暗証と上記乱数発生手段からの乱数との演算結果とが一致するか否かにより、暗証照合による認証を行う認証手段と、
この認証手段による認証結果を上記端末へ送信する第２の送信手段とから構成される、
ことを特徴とするＩＣカード処理システム。
【請求項７】
暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と端末から供給される暗証との照合を行いカード保有者の認証を行う制御素子とを有し、端末からの電源供給により作動するＩＣカードと、このＩＣカードを扱う端末から構成されるＩＣカード処理システムにおいて、
上記端末が、
上記ＩＣカードへ電源を供給する供給手段と、
この供給手段による電源の供給時、上記ＩＣカードからの暗証要求に基づいて、暗証を設定する設定手段と、
この設定手段により設定された暗証を上記ＩＣカードへ送信する送信手段と、
この送信手段による暗証の送信に応答して、上記ＩＣカードから認証が供給された際に、処理の実行を許可する許可手段とからなり、
上記ＩＣカードが、
乱数を発生する乱数発生手段と、
上ニブルに”０”、下ニブルに上記乱数発生手段からの乱数の下ニブルを格納した第１の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第１の演算手段と、
上ニブルに上記乱数発生手段からの乱数の上ニブル、下ニブルに”０”を格納した第２の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第２の演算手段と、
上記第１の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第３の演算手段と、
上記第２の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第４の演算手段と、
上記第３の演算手段による演算結果の上ニブルが”０”で、かつ、上記第４の演算手段による演算結果の下ニブルが”０”の場合に、暗証照合による認証を行う認証手段と、
この認証手段による認証結果を上記端末へ送信する第２の送信手段とから構成される、
ことを特徴とするＩＣカード処理システム。
【請求項８】
上記第３の演算手段により論理和演算する際に、上記第１の演算手段による演算結果に対して上ニブルに”０”、下ニブルに上記乱数発生手段からの乱数の下ニブルを格納した第３の乱数データによる排他的論理和演算を行い、
上記第４の演算手段により論理和演算する際に、上記第２の演算手段による演算結果に対して下ニブルに”０”、上ニブルに上記乱数発生手段からの乱数の上ニブルを格納した第４の乱数データによる排他的論理和演算を行うことを特徴とする請求項７に記載のＩＣカード処理システム。
【請求項９】
上記第１、第２の演算手段により１バイト毎に排他的論理和を計算する際に、論理和演算を計算し、これを暗証番号長分繰り返すことを特徴とする請求項７に記載のＩＣカード処理システム。
【請求項１０】
上記第１、第２の演算データの単位をバイトに限定せず、“０”と乱数を格納したデータとにより構成したことを特徴とする請求項７に記載のＩＣカード処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内部で暗証照合を行い、この照合結果が満足するものであった際に、種々の取引を行うことができるＩＣカードとＩＣカード処理システムに関する。
【背景技術】
【０００２】
今日、ＩＣカードを、銀行やクレジット業界で使用する動きが見られる。これは、ＩＣカードが、カード内部のデータに関して、高いセキュリティを保っているためであり、特に他人（第三者）によるカード内部のデータ改竄の困難性が、ＩＣカードが選ばれた一要因である。しかし、ＩＣカードのセキュリティが高くても、そのＩＣカードを他人が簡単に使用できると問題が発生する。いわゆる”なりすまし”による犯罪である。
【０００３】
そこで、一般的に、ＩＣカードで商品を購入する場合には、カード保持者（本人）の確認のために、４桁の暗証番号（ＰＩＮ）を入力してもらう。ＰＩＮは、カード保持者のみしか、知り得ない情報であるので、カード保持者の認証になるのである。思想の着目点は、銀行のＡＴＭ等と同じである。
【０００４】
すなわち、ＩＣカードは電源が切られてもデータを保持する事が可能な不揮発性メモリ、及び、端末と通信可能な通信Ｉ／Ｆ、及び、ＩＣカードの動作を実行するＣＰＵ、ＲＯＭ、ＲＡＭを有している。
【０００５】
このＩＣカードにおける、不揮発性メモリには、対象となるＰＩＮデータ、及び、ＰＩＮ照合可能な回数を示すＰＩＮ  Ｔｒｙ  Ｃｏｕｎｔｅｒ、このＰＩＮ  Ｔｒｙ  Ｃｏｕｎｔｅｒの設定値を示すＰＩＮ  Ｔｒｙ  Ｌｉｍｉｔが格納されている。
【０００６】
これにより、ＩＣカードは端末からの照合コマンドを受信すると、現在のファイル選択状態、及び、コマンドのパラメータに応じ、一義的に決まる対象ＰＩＮのＰＩＮデータと受信したデータとの内容比較を行う。その結果、一致した場合、照合成功と判断し、ＰＩＮ  Ｔｒｙ  ＣｏｕｎｔｅｒをＰＩＮ  Ｔｒｙ  Ｌｉｍｉｔに格納されている設定値に書き換え、照合成功のＳＷを返す。逆に、比較結果が不一致の場合、照合失敗と判断し、ＰＩＮ  Ｔｒｙ  Ｃｏｕｎｔｅｒを減算し、照合失敗のＳＷを端末に返す。ＰＩＮ  Ｔｒｙ  Ｃｏｕｎｔｅｒが、所定の範囲を超えた場合、対象のＰＩＮはロックし、以降、その対象ＰＩＮをアンロックしない限り、照合することが不可能となる。これにより、正しいＰＩＮを知らない者が、照合できる回数を制限することが可能となり、セキュリティを保っている。
【０００７】
悪意のある者は、他人のＩＣカードの照合ＰＩＮをあらゆるアタックにより、解読しようとする。例えば、電源電流波形を観測し、その波形の変化により、ＩＣカード内部の動作を推測したりするなどの方法がある。このとき、照合結果が正しいときは“０”という固定値にした場合には、電源電流波形により容易に照合結果を判断することができ、これらのものは電源を遮断し、その照合はなかったものとする。これを繰り返すことにより、ＰＩＮが判明してしまう問題がある。
【０００８】
従来技術における照合コマンドの処理フローを説明する。
【０００９】
（１）ＩＣカードは照合コマンドを受信すると、受信したコマンドのパラメータチェックや対象ＰＩＮの状態チェック等を行う。（以降、これらを照合コマンド照合前処理と記述している。）
（２）不揮発メモリ内のＰＩＮデータをレジスタＲ１に読み出す。
【００１０】
（３）受信データ内のＰＩＮデータをレジスタＲ２に読み出す。
【００１１】
（４）レジスタＲ１とレジスタＲ２の排他的論理和を計算する。計算結果をレジスタ１に格納する。
【００１２】
（５）計算結果が“００”の場合は照合成功。“００”でなければ照合失敗とする。
【００１３】
（５−１）  照合成功の場合、ＰＩＮデータが残っている場合は、（２）に移る。
【００１４】
（５−２）  照合成功で、ＰＩＮデータが残っていない場合は照合成功を示すＳＷを端末１に返し、照合コマンドを終了する。
【００１５】
（５−３）  照合失敗の場合、照合失敗を示すＳＷを端末１を返し、照合コマンドを終了する。
【００１６】
このように、従来技術では、照合処理を行った結果を格納するレジスタを、電源電流波形を観測することにより、“００”であるかどうかを判断し、不一致と判断できた場合、電源を遮断する事により、照合コマンドを無制限に試すことが可能となってしまう。これにより、ＰＩＮが特定され、ＩＣカードが不正使用される可能性があると言う問題がある。
【特許文献１】特開２０００−１０５７８８号公報。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
この発明は、ＩＣカードが照合コマンドを受信し、照合結果を処理する際に、乱数を用いて照合結果をマスクし、照合結果を不定値にすることにより、ＰＩＮの安全性を高めることができ、ＩＣカードの不正使用を防止することができるＩＣカードとＩＣカード処理システムを提供することを目的としている。
【課題を解決するための手段】
【００１８】
この発明のＩＣカードは、暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と外部から供給される暗証とを用いてカード保有者の認証を行う制御素子とを有し、外部機器からの電源供給により作動するものにおいて、乱数を発生する乱数発生手段と、上記電源が供給され、外部機器からカード保有者の認証が指示されるとともに暗証が供給された際に、この暗証と上記乱数発生手段からの乱数との演算結果と上記不揮発性メモリに記憶されている暗証と上記乱数発生手段からの乱数との演算結果とが一致するか否かにより、暗証照合による認証を行う認証手段とを有する。
【００１９】
この発明のＩＣカードは、暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と外部から供給される暗証とを用いてカード保有者の認証を行う制御素子とを有し、外部機器からの電源供給により作動するものにおいて、乱数を発生する乱数発生手段と、上ニブルに”０”、下ニブルに上記乱数発生手段からの乱数の下ニブルを格納した第１の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第１の演算手段と、上ニブルに上記乱数発生手段からの乱数の上ニブル、下ニブルに”０”を格納した第２の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第２の演算手段と、上記第１の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第３の演算手段と、上記第２の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第４の演算手段と、上記第３の演算手段による演算結果の上ニブルが”０”で、かつ、上記第４の演算手段による演算結果の下ニブルが”０”の場合に、暗証照合による認証を行う認証手段とを有する。
【００２０】
この発明のＩＣカード処理システムは、暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と端末から供給される暗証との照合を行いカード保有者の認証を行う制御素子とを有し、端末からの電源供給により作動するＩＣカードと、このＩＣカードを扱う端末から構成されるものおいて、上記端末が、上記ＩＣカードへ電源を供給する供給手段と、この供給手段による電源の供給時、上記ＩＣカードからの暗証要求に基づいて、暗証を設定する設定手段と、この設定手段により設定された暗証を上記ＩＣカードへする送信手段と、この送信手段による暗証の送信に応答して、上記ＩＣカードから認証が供給された際に、処理の実行を許可する許可手段とからなり、上記ＩＣカードが、乱数を発生する乱数発生手段と、上記端末から電源が供給され、かつカード保有者の認証が指示されるとともに暗証が供給された際に、この暗証と上記乱数発生手段からの乱数との演算結果と上記不揮発性メモリに記憶されている暗証と上記乱数発生手段からの乱数との演算結果とが一致するか否かにより、暗証照合による認証を行う認証手段と、この認証手段による認証結果を上記端末へ送信する第２の送信手段とから構成される。
【００２１】
この発明のＩＣカード処理システムは、暗証等を記憶する不揮発性メモリと、この不揮発性メモリに記憶されている暗証と端末から供給される暗証との照合を行いカード保有者の認証を行う制御素子とを有し、端末からの電源供給により作動するＩＣカードと、このＩＣカードを扱う端末から構成されるものにおいて、上記端末が、上記ＩＣカードへ電源を供給する供給手段と、この供給手段による電源の供給時、上記ＩＣカードからの暗証要求に基づいて、暗証を設定する設定手段と、この設定手段により設定された暗証を上記ＩＣカードへ送信する送信手段と、この送信手段による暗証の送信に応答して、上記ＩＣカードから認証が供給された際に、処理の実行を許可する許可手段とからなり、上記ＩＣカードが、乱数を発生する乱数発生手段と、上ニブルに”０”、下ニブルに上記乱数発生手段からの乱数の下ニブルを格納した第１の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第１の演算手段と、上ニブルに上記乱数発生手段からの乱数の上ニブル、下ニブルに”０”を格納した第２の乱数データと、外部から供給される暗証と、上記不揮発性メモリに記憶されている暗証との排他的論理和を、１バイト毎に計算し、これを暗証番号長分繰り返す第２の演算手段と、上記第１の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第３の演算手段と、上記第２の演算手段によるそれぞれの演算結果を１バイト毎に論理和演算する第４の演算手段と、上記第３の演算手段による演算結果の上ニブルが”０”で、かつ、上記第４の演算手段による演算結果の下ニブルが”０”の場合に、暗証照合による認証を行う認証手段と、この認証手段による認証結果を上記端末へ送信する第２の送信手段とから構成される。
【発明の効果】
【００２２】
この発明によれば、ＩＣカードが照合コマンドを受信し、照合結果を処理する際に、乱数を用いて照合結果をマスクし、照合結果を不定値にすることにより、ＰＩＮの安全性を高めることができ、ＩＣカードの不正使用を防止することができるＩＣカードとＩＣカード処理システムを提供できる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照してこの発明の実施形態のＩＣカード処理システムを説明する。
【００２４】
このＩＣカード処理システムは、図１に示すように、上位装置（ＰＯＳ端末）としてのパソコン（ＰＣ）１とこのＰＣ１と無線等で接続される取引対象カードとしてのＩＣカード４とにより構成されている。
【００２５】
ＰＣ１は、ＰＣ１の全体を制御する制御部５、制御用のプログラムが記憶されていたり種々のデータが記憶されるメモリ６、操作指示を行うキーボードと商品の読取り用のバーコードリーダ等の操作部７、操作案内等が表示される表示部８、ＩＣカード４とのデータのやり取りとともに電源を供給する通信インターフェース（リーダライタ）９により構成されている。
【００２６】
ＩＣカード４は、図２に示すように、ＩＣカード４の全体を制御するＣＰＵ（制御素子）１１、ＣＰＵ１１の演算補助を行うコプロセッサ１２、カード内部動作の制御用のプログラムが記憶されているマスクＲＯＭ（プログラムメモリ）１３、ＰＣ１と交換する電文の送受信バッファとＣＰＵ１１の処理中のデータの一時格納バッファとして利用されるＲＡＭ（ワーキングメモリ、揮発性メモリ）１４、アプリケーション運用でその内容をリードライトして使用される運用データが格納されるデータメモリ（不揮発性メモリ、ＮＶＲＯＭ、ＥＥＰＲＯＭ）１５、ＰＣ１とのデータのやり取りを行うとともに電源が供給される通信インターフェース（ＵＡＲＴ）１６、乱数を発生する乱数発生部１７により構成されている。アプリケーションプログラムとしては、一例として、銀行取引業務処理、クレジット取引業務処理、プリペイド取引業務処理となっている。
【００２７】
データメモリ１５には、あらかじめ暗証ＰＩＮが登録されている。
【００２８】
ＲＡＭ１４には、暗証照合処理時に利用するＲＡＭ1、2、レジスタＲ1、Ｒ2、Ｒ３、Ｒ４、Ｒ５の各領域を有する。
【００２９】
次に、上記のような構成において、商品購入に伴うＰＩＮ保護機能を実施する際の処理を、図３に示すフローチャートを参照しつつ説明する。
【００３０】
たとえば今、商品の購入の際に、カード保持者はＰＯＳ端末１の図示しないカード挿入口からＩＣカード４を挿入する（ＳＴ１）。これにより、ＰＯＳ端末１とＩＣカード４との無線通信により電源がＩＣカード４に供給され、ＰＯＳ端末１の制御部５とＩＣカード４のＣＰＵ１１との間でデータのやり取りをして初期設定（ＡＴＲ）を行う（ＳＴ２）。
【００３１】
また、ＰＯＳ端末１のオペレータは購入する商品に対する情報を操作部７により設定する。
【００３２】
これにより、商品購入処理に入り、ＰＯＳ端末１とＩＣカード４の間では、コマンドと、レスポンスのやりとりが発生する（ＳＴ３、４）。この処理中に、ＩＣカード４のＣＰＵ１１は、レスポンスとして認証のための暗証要求をＰＯＳ端末１の制御部５に送信する（ＳＴ５）。
【００３３】
これにより、ＰＯＳ端末１の制御部５は、供給される暗証要求により暗証による認証処理を判断し（ＳＴ６）、表示部８を用いて、カード保持者に暗証入力を案内する（ＳＴ７）。この案内に応じて、カード保持者は操作部７により暗証を入力する（ＳＴ８）。
【００３４】
ついで、ＰＯＳ端末１の制御部５はこの暗証による認証を行うコマンドをＩＣカード４に送信する（ＳＴ９）。
【００３５】
これにより、ＩＣカード４のＣＰＵ１１はＥＥＰＲＯＭ１５に登録されている暗証とＰＯＳ端末１から供給される暗証とが一致するか否かを判断する（ＳＴ１０）。この判断の結果、ＩＣカード４のＣＰＵ１１は暗証による認証結果（ＯＫあるいはＮＧ）を示すレスポンスをＰＯＳ端末１の制御部５に送信する（ＳＴ１１）。
【００３６】
上記認証がＯＫの際に、ＰＯＳ端末１とＩＣカード４の間で、コマンドと、レスポンスのやりとりにより、商品購入に伴う他の処理が行われる（ＳＴ１２、１３）。
【００３７】
この後、商品購入処理の終了に伴い、ＰＯＳ端末１の図示しないカード排出口からＩＣカード４が排出され、カード保持者に返却される。
【００３８】
また、ステップ１１による認証のレスポンスがＮＧの際に、ＰＯＳ端末１は商品購入処理を中止し、表示部８により案内するとともに、ＩＣカード４が排出され、カード保持者に返却される。
【００３９】
次に、ＩＣカード４における暗証照合処理について、図４に示すフローチャートを参照しつつ説明する。
【００４０】
まず、ＩＣカード４のＣＰＵ１１はＰＣ１からリーダライタ３を介して供給されるパラメータとＰＩＮとを含む照合コマンドを受信した際（ＳＴ２１）、受信したコマンドのパラメータチェックや対象ＰＩＮの状態チェック等を行う（ＳＴ２２）。（以降、これらを照合コマンド照合前処理と記述している。）
このチェックの後、ＣＰＵ１１は乱数データ用領域ＲＡＭ１とＲＡＭ２とレジスタＲ４、５に“０ｘ００”をセットする（ＳＴ２３）。
【００４１】
ＣＰＵ１１は乱数発生部２６から乱数データを読出しレジスタＲ３にセットする（ＳＴ２４）。
【００４２】
ＣＰＵ１１はレジスタＲ３の乱数データの下ニブルと［０ｘＦ０］の論理積を計算し、計算結果をレジスタＲ１に格納する（ＳＴ２５）。
【００４３】
ＣＰＵ１１はレジスタＲ３の乱数データの上ニブルと［０ｘ０Ｆ］の論理積を計算し、計算結果をレジスタＲ２に格納する（ＳＴ２６）。
【００４４】
ＣＰＵ１１はレジスタＲ１とＲＡＭ１の排他的論理和を計算しＲＡＭ１に格納する（ＳＴ２７）。
【００４５】
ＣＰＵ１１はレジスタＲ２とＲＡＭ２の排他的論理和を計算しＲＡＭ２に格納する（ＳＴ２８）。
【００４６】
ＣＰＵ１１は不揮発メモリ２５内のＰＩＮデータを読出し、レジスタＲ３にセットする（ＳＴ２９）。
【００４７】
ＣＰＵ１１はレジスタＲ１とレジスタＲ３のＰＩＮデータとの排他的論理和を計算し、計算結果をレジスタＲ１に格納する（ＳＴ３０）。
【００４８】
ＣＰＵ１１はレジスタＲ２とレジスタＲ３のＰＩＮデータとの排他的論理和を計算し、計算結果をレジスタＲ２に格納する（ＳＴ３１）。
【００４９】
ＣＰＵ１１は受信データ内のＰＩＮデータを読出しレジスタＲ３にセットする（ＳＴ３２）。
【００５０】
ＣＰＵ１１はレジスタＲ１とレジスタＲ３のＰＩＮデータとの排他的論理和を計算し、計算結果をレジスタＲ１に格納する（ＳＴ３３）。
【００５１】
ＣＰＵ１１はレジスタＲ２とレジスタＲ３のＰＩＮデータとの排他的論理和を計算し、計算結果をレジスタＲ２に格納する（ＳＴ３４）。
【００５２】
ＣＰＵ１１はレジスタＲ１とレジスタＲ４の論理和を計算し、計算結果をレジスタＲ４に格納する（ＳＴ３５）。
【００５３】
ＣＰＵ１１はレジスタＲ２とレジスタＲ５の論理和を計算し、計算結果をレジスタＲ５に格納する（ＳＴ３６）。
【００５４】
ＣＰＵ１１は上記ステップ２４で用いた乱数データをレジスタＲ３にセットする（ＳＴ３７）。
【００５５】
ＣＰＵ１１はレジスタＲ３の乱数データの下ニブルと［０ｘＦ０］の論理積を計算し、その結果とレジスタＲ４の排他的論理和を計算し、結果をレジスタＲ４に格納する（ＳＴ３８）。  ＣＰＵ１１はレジスタＲ３の乱数データの上ニブルと［０ｘ０Ｆ］の論理積を計算し、その結果とレジスタＲ５の排他的論理和を計算し、結果をレジスタＲ５に格納する（ＳＴ３９）。  ＣＰＵ１１はレジスタＲ３の上ニブルと［０ｘＦ０］の論理積を計算し、その結果とＲＡＭ１の排他的論理和を計算し、結果をＲＡＭ１に格納する（ＳＴ４０）。
【００５６】
ＣＰＵ１１はレジスタＲ３の下ニブルと［０ｘ０Ｆ］の論理積を計算し、その結果とＲＡＭ２の排他的論理和を計算し、結果をＲＡＭ２に格納する（ＳＴ４１）。
【００５７】
ＣＰＵ１１は照合残データが残っている場合（ＳＴ４２）、ステップ２３に移る。
【００５８】
ＣＰＵ１１は照合残データが残っていない場合（ＳＴ４２）、レジスタＲ４、５とＲＡＭ１、２の値を比較する（ＳＴ４３）。
【００５９】
ＣＰＵ１１は上記比較の結果が一致している場合、照合成功を判断し、照合成功を示すＳＷをリーダライタ３を介してＯＰ１に返送し、照合コマンドを終了する（ＳＴ４４）
ＣＰＵ１１は上記比較の結果が一致していない場合、照合失敗を判断し、照合失敗を示すＳＷをリーダライタ３を介してＯＰ１に返送し、照合コマンドを終了する（ＳＴ４５）。
【００６０】
上記したように、本発明では、従来技術に比べ、ＰＩＮデータの照合に乱数データを用いていて、照合結果は“００”のような固定値にはならず、毎回不定値になる。この場合、仮に電源電流波形を観測しても、照合結果が不定値になるので、照合コマンドを試すことにより、ＰＩＮを解読することはできない。これにより、セキュリティ性、耐タンパー性が高いＩＣカードを実現することが可能となる。
【００６１】
この発明は、
（１）  照合データの各バイトに対して、乱数を使って照合結果をマスクする。このとき、乱数を上ニブルと下ニブルとにわけ、“０ｘ００”のデータと論理和を計算し、「４ビットの“０”＋４ビットの乱数」というデータを生成する。これを「０付き乱数データ」と呼ぶこととする。この０付き乱数データと照合データの排他的論理和を計算することで、照合結果を毎回異なる値にする。このため、固定値で照合していた場合に比べて、照合データ全体に対してセキュリティ性が向上することを特徴としている。
【００６２】
（２）  ０付き乱数データと照合データの排他的論理和の計算結果に対し、バイト毎に論理和の計算を行う。これにより、最終バイトの計算まで照合の結果を保持することを特徴としている。
【００６３】
（３）  （２）に対して、バイト毎の論理和を計算する際に、乱数を割り付けたビットに対して１となる確率を低くするため、論理和の計算とともに、同様のビット割付をした別の０付乱数データとの排他的論理和を計算することを特徴とする。
【００６４】
この結果、従来、照合結果が固定値であるかどうかを判断していたため、照合処理を中断し、電源電流波形を測定することにより、容易に照合結果の正否を判断することが出来た点を改良し、照合前に乱数値によって照合結果をマスクすることで、照合結果を不定値にし、電源電流波形の測定による照合結果の正否を判断できないようにし、セキュリティ性、耐タンパー性が向上する事を特徴としている。
【００６５】
すなわち、乱数を用いずに演算を行うと、等しい場合は、演算結果が０、等しくない場合は、演算結果が０以外となり、電流波形を解析することにより、照合途中の結果が判明してしまう可能性がある。乱数と、同時に演算することにより、計算結果が不定になり、電流波形から照合結果を解析することを困難にすることが可能となる。
【００６６】
また、ＩＣカードに対し、１バイトごと論理和演算する際に、上ニブルに”０”、下ニブルに乱数を格納したデータと排他的論理和演算をしたデータに関しては、別の上ニブルに”０”、下ニブルに乱数を格納したデータと排他的論理和演算を計算した上で論理和演算を繰り返し、上ニブルに乱数、下ニブルに”０”を格納したデータと排他的論理和演算をしたデータに関しては、別の上ニブルに乱数、下ニブルに”０”を格納したデータと排他的論理和演算を計算した上で論理和演算を繰り返すことを特徴とする。
【００６７】
また、乱数と排他的論理和した演算結果同士を論理和する場合、それぞれのｂｉｔが１になる確率は、１−（１／２のｎ乗）（ｎは論理和する回数）であり、論理和する回数が多いほど、１になってしなう。これにより、乱数と排他的論理和した演算結果同士を論理和した演算結果は、１に収束する可能性が高く、乱数では無くなってしまう為、別の乱数値で、排他的論理和する事により、乱数性を保持し、演算時の電流波形を一定にしない効果がある。
【００６８】
さらに、上記ＩＣカードにおいて、１バイト毎に排他的論理和を計算する際に、論理和演算を計算し、これを暗証番号長分繰り返すものである。
【００６９】
これにより、また、１バイトごとに論理和を計算することで、照合結果を暗証番号長分確保しておく必要がなくなり、ＲＡＭの使用量を抑えることが可能となる。
【図面の簡単な説明】
【００７０】
【図１】この発明の実施形態を説明するためのＩＣカード処理システムの概略構成を示すブロック図。
【図２】ＩＣカードの概略構成を示すブロック図。
【図３】ＩＣカードによる商品購入処理を説明するためのフローチャート。
【図４】ＩＣカードによる暗証照合処理を説明するためのフローチャート。
【符号の説明】
【００７１】
１…ＰＣ、４…ＩＣカード、５…制御部、１１…ＣＰＵ、１５…データメモリ、１７…乱数発生部。
【図１】
2006344142.tif 000003
【図２】
2006344142.tif 000004
【図３】
2006344142.tif 000005
【図４】
2006344142.tif 000006