(57)【特許請求の範囲】
【請求項１】
変化値を発生させる変化値発生器と、認証装置との間で以前に使用された暗号文レスポンスデータを記憶するデータ文メモリと、前記認証装置からチャレンジデータを受信すると前記変化値発生器により発生された前記変化値及び前記データ文メモリに記憶された前記暗号文レスポンスデータに基づいて変形データ文を作成し、前記変形データ文及び前記チャレンジデータを用いて前記チャレンジデータに対応する平文レスポンスデータを生成し、前記平文レスポンスデータを暗号化して暗号文レスポンスデータを生成し、前記暗号文レスポンスデータを前記認証装置に送信するシーケンス部と、を備えたことを特徴とする被認証装置。
【請求項２】
認証装置と被認証装置を備えた認証システムにおいて、
前記被認証装置は、変化値を発生させる変化値発生器と、前記認証装置との間で以前に使用された暗号文レスポンスデータを記憶するデータ文メモリと、前記認証装置から前記チャレンジデータを受信すると前記変化値発生器により生成された前記変化値及び前記データ文メモリに記憶された前記暗号文レスポンスデータに基づいて変形データ文を作成し、前記変形データ文及び前記チャレンジデータを用いて前記チャレンジデータに対応する平文レスポンスデータを生成し、前記平文レスポンスデータを暗号化して暗号文レスポンスデータを生成し、前記暗号文レスポンスデータを前記認証装置に送信するシーケンス部と、を有し、
前記認証装置は、チャレンジデータを生成して被認証装置へ送信するチャレンジデータ発生部と、前記被認証装置から前記チャレンジデータに対応する暗号文レスポンスデータを受信し、平文レスポンスデータに復号化する復号化部と、前記復号化部により復号化された平文レスポンスデータから前記チャレンジデータを抽出し、該チャレンジデータと前記チャレンジデータ発生部で発生され前記被認証装置へ送信されたチャレンジデータとを比較し、一致する場合には前記被認証装置を認証し不一致の場合には前記被認証装置を否認する認証部と、を有することを特徴とする認証システム。
【請求項３】
認証装置及び被認証装置間で行われる認証方法において、
前記認証装置が第１のチャレンジデータを発生するチャレンジデータ発生ステップと、前記チャレンジデータ発生ステップにより発生された前記第１のチャレンジデータを前記被認証装置へ送信するチャレンジデータ送信ステップと、前記送信ステップにより前記認証装置から送信された前記第１のチャレンジデータを前記被認証装置が受信する受信ステップと、変化値を発生させる変化値発生ステップと、前記認証装置と前記被認証装置との間で以前に使用された暗号文レスポンスデータを記憶する記憶ステップと、前記変化値発生ステップにより発生された前記変化値及び前記記憶ステップにより記憶された前記暗号文レスポンスデータに基づいて変形データ文を作成する変形データ文作成ステップと、前記受信ステップにより受信された前記第１のチャレンジデータ及び前記変形データ文作成ステップにより作成された前記変形データ文を用いて前記第１のチャレンジデータに対応する平文レスポンスデータを生成する平文レスポンスデータ生成ステップと、前記平文レスポンスデータ生成ステップにより生成された前記平文レスポンスデータを暗号化して暗号文レスポンスデータを生成する暗号化ステップと、前記暗号化ステップにより生成された前記暗号文レスポンスデータを前記認証装置へ送信する送信ステップと、前記被認証装置から前記第１のチャレンジデータに対応する暗号文レスポンスデータを受信する受信ステップと、前記受信ステップにより受信された前記暗号文レスポンスデータを平文レスポンスデータに復号化する復号化ステップと、前記復号化ステップにより復号化された前記平文レスポンスデータから第２のチャレンジデータを抽出する抽出ステップと、前記抽出ステップにより抽出された前記第２のチャレンジデータと前記チャレンジデータ発生ステップにより発生された前記第１のチャレンジデータとを比較し、一致する場合には前記被認証装置を認証し不一致の場合には前記被認証装置を否認する認証ステップと、を備えたことを特徴とする認証方法。
【請求項４】
乱数を発生させる乱数回路と、認証装置との間で以前に使用された暗号文レスポンスデータを記憶するデータ文メモリと、前記認証装置と通信を行う通信回路と、前記乱数回路により発生された前記乱数及び前記データ文メモリに記憶された前記暗号文レスポンスデータに基づいて変形データ文を作成し、前記変形データ文及び前記通信回路を介して受信された前記チャレンジデータを用いて前記チャレンジデータに対応する平文レスポンスデータを生成し、前記平文レスポンスデータを暗号化して暗号文レスポンスデータを生成し、前記通信回路に前記暗号文レスポンスデータの送信指示を出力するシーケンス回路と、を備えたことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証側がチャレンジデータを被認証側に送り、被認証側がチャレンジデータを秘密鍵で暗号化し、その暗号をレスポンスデータとして認証側に送り、認証側はレスポンスデータを復号し、チャレンジデータと比較を行うチャレンジ・レスポンスの認証方式および装置に関するものである。
【背景技術】
【０００２】
従来の識別信号照合方式は、乱数発生部から発生する乱数とカウンタ値とを結合してチャレンジデータとして、チャレンジ＆レスポンスの認証方式を採用している（例えば、特許文献１参照）。また、チャレンジ・カウンタ値を符号変換し、乱数などと組み合わせてチャレンジデータとして、チャレンジ＆レスポンスの認証方式を行う方法も提案されている（例えば、特許文献２参照）。ここで述べているチャレンジ＆レスポンスの認証方式は、広く一般に知られている技術である（例えば、非特許文献１参照）。
【特許文献１】特開平１０−３０３８８７号公報（第８頁、第１図）
【特許文献２】特表２０００−５０６９４７号公報（第１８頁、第１図）
【非特許文献１】http://www5d.biglobe.ne.jp/~engineer/doc/security/security_ch3_01.htm  http://www5d.biglobe.ne.jp/~engineer/doc/security/security_ch3_02.htm
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した従来技術による認証方式では、差分電力解析と呼ばれる暗号解析法が有効であるという課題が存在する。
【０００４】
差分電力解析が有効に機能する条件としては、第１に暗号化される平文を選択的に制御できること、第２に暗号化処理時の電力が暗号演算状態を反映していること、の２点が挙げられる。
【０００５】
従来の認証方式では、通信されるチャレンジデータをモニタすることが、暗号化される平文を選択的に制御することに値する。また、暗号化処理時の電力を暗号演算状態と無関係にすることは一般には不可能である。
【０００６】
この発明は、上述の課題を解決するためになされたもので、目的は差分電力解析に耐性のあるデジタル認証方式を提供することである。
【課題を解決するための手段】
【０００７】
この発明に係る被認証装置は、変化値を発生させる変化値発生器と、認証装置との間で以前に使用された暗号文レスポンスデータを記憶するデータ文メモリと、認証装置からチャレンジデータを受信すると変化値発生器により発生された変化値及びデータ文メモリに記憶された暗号文レスポンスデータに基づいて変形データ文を作成し、この変形データ文及びチャレンジデータを用いてチャレンジデータに対応する平文レスポンスデータを生成し、平文レスポンスデータを暗号化して暗号文レスポンスデータを生成し、この暗号文レスポンスデータを認証装置に送信するシーケンス部と、を備えたものである。
【発明の効果】
【０００８】
この発明によれば、被認証装置は、変化値を発生させる変化値発生器と、認証装置との間で以前に使用された暗号文レスポンスデータを記憶するデータ文メモリと、認証装置からチャレンジデータを受信すると、変化値発生器により発生された変化値及びデータ文メモリに記憶された暗号文レスポンスデータに基づいて変形データ文を作成し、変形データ文及びチャレンジデータを用いてチャレンジデータに対応する平文レスポンスデータを生成し、平文レスポンスデータを暗号化して暗号文レスポンスデータを生成し、この暗号文レスポンスデータを認証装置に送信するシーケンス部と、を備えたことにより、暗号文レスポンスデータの通信を観測してもデータ文メモリに記憶された暗号文レスポンスデータに基づいて作成された変形データ文を知ることはできないため、暗号化前の平文レスポンスデータの値も知ることができなくなり、差分電力解析への耐性を有する被認証装置が得られる。
【発明を実施するための最良の形態】
【０００９】
以下、チャレンジ・レスポンス認証方式を例にして説明する。
チャレンジ・レスポンス認証方式とは、認証装置がランダムに発生させたチャレンジコードを被認証装置に渡し、被認証装置が暗号回路で暗号化し、レスポンスコードを生成し、そして、被認証装置が認証装置にレスポンスコードを渡すと、認証装置でレスポンスコードを復号して矛盾がないかどうか確認し、被認証装置を認証する方式をいう。
【００１０】
実施の形態１．
図１０は、認証装置１００（以下、認証装置Ａともいう）から乱数ｒ（チャレンジデータの一例）を受信して応答暗号文（レスポンスデータの一例）を応答する被認証装置２００（以下、被認証装置Ｂともいう）と、被認証装置２００へ乱数ｒを送信して応答暗号文を受信することにより被認証装置２００を認証する認証装置１００とを備えたチャレンジ・レスポンス認証システム３００（認証システムの一例）を示している。
被認証装置２００（以下、単に、Ｂともいう）は、
変化値を発生させるフリーランカウンタ２０１（変化値発生器の一例）と、
暗号文（データ文の一例）を記憶する暗号文メモリ２０８（データ文メモリの一例）と、
暗号回路２０７と、
認証装置１００から乱数ｒを受信し、フリーランカウンタ２０１が発生させたカウンタ値（変化値の一例）と暗号文メモリ２０８に記憶されたを暗号文とを取得し、カウンタ値に基づいて暗号文を変更した変形暗号文（変形データ文の一例）を作成し、この変形暗号文と乱数ｒとを暗号回路２０７で暗号化して応答暗号文を作成しこの応答暗号文を認証装置１００に送信するシーケンス部２０２と
を備えている。
【００１１】
上記シーケンス部２０２は、
認証装置１００から乱数ｒを受信した場合、フリーランカウンタ２０１が発生させたカウンタ値を取得して、暗号文を変更する変更仕様（例えばビット位置）を決定する変更仕様決定部２０３と、
変更仕様決定部２０３が決定した変更仕様（ビット位置）に基づいて暗号文を変更して変形暗号文を作成する暗号文変形部２０４（データ文変形部の一例）と、
暗号文変形部２０４が作成した変形暗号文と乱数ｒと連接した連接文を作成する連接部と、
連接部が作成した連接文を応答平文として暗号回路で暗号化して応答暗号文を作成しこの応答暗号文を認証装置１００に送信するとともに、この応答暗号文を暗号文メモリ２０８に記憶する暗号化部２０６と
を備えている。
【００１２】
上記変更仕様決定部２０３は、以下の少なくともいずれかに基づいて、暗号文を変更するビット位置を決定する。
（１）変化値のビット値が１であるビットの数。
（２）変化値のビット値が０であるビットの数。
（３）変化値のビット値が１であるビットの位置。
（４）変化値のビット値が０であるビットの位置。
【００１３】
また、上記暗号文変形部２０４は、以下の少なくともいずれかの変更により、暗号文を変更する。
（１）暗号文を所定のビット位置のビット値を１に設定する。
（２）暗号文を所定のビット位置のビット値を０に設定する。
（３）暗号文を所定のビット位置のビット値を反転値に設定する。
【００１４】
認証装置１００は、
乱数ｒ（チャレンジデータの一例）を発生させ被認証装置２００へ乱数ｒを送信する乱数発生器１０１（チャレンジデータ発生器の一例）と、
被認証装置２００へ送信した乱数ｒを記憶する乱数メモリ１０２（チャレンジデータメモリの一例）と、
復号回路１０３と、
被認証装置２００から応答暗号文を受信し、復号回路で応答平文を復号する復号化部１０４と、
復号化部１０４で復号した応答平文の一部から乱数ｒ’を取り出す乱数取出部１０５（チャレンジデータ取出部の一例）と、
乱数メモリ１０２が記憶した乱数ｒと、乱数取出部１０５が取り出した乱数ｒ’とを比較し、一致した場合に、被認証装置２００を認証する認証部１０６と
を備えている。
【００１５】
認証装置１００と被認証装置２００は、コンピュータ又はＩＣ（集積回路）であり、図示していないが、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵは、バスを介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）（記憶装置の一例である）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（記憶装置の一例である）、通信ボード、ＣＲＴ表示装置、Ｋ／Ｂ、マウス、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、磁気ディスク装置（記憶装置の一例である）、ＣＤＤ、プリンタ装置、スキャナ装置等と接続することができる。通信ボードは、ＬＡＮに接続される。ここで、通信ボードは、ＬＡＮに限らず、さらに、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群（データベース）が記憶されている。プログラム群は、ＣＰＵ、ＯＳ、ウィンドウシステムにより実行される。
【００１６】
上記認証装置１００と被認証装置２００の各部、各回路は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
【００１７】
プログラムにより構成する場合、上記プログラム群には、実施の形態の説明において「〜部」として説明したものにより実行されるプログラムが記憶される。これらのプログラムは、例えば、Ｃ言語により作成することができる。或いは、ＨＴＭＬやＳＧＭＬやＸＭＬを用いても構わない。或いは、ＪＡＶＡ（登録商標）を用いて画面表示を行っても構わない。
【００１８】
また、上記プログラムは、また、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体による記録装置を用いて記憶されても構わない。
【００１９】
図１は、この発明の実施の形態１におけるデジタル認証方式のフローチャートを示すものである。
図において、認証装置Ａは認証を行うもの（認証装置１００）、被認証装置Ｂは認証されるもの（被認証装置２００）とする。具体的な例であるＩＣ（インテグレーテッド・サーキット）カードシステムでは、認証装置ＡはＲ／Ｗ（リーダ／ライタ）、被認証装置ＢはＩＣカードとなる。双方向の認証を行う場合は、認証装置Ａと被認証装置Ｂを入れ替えて認証を行う。また、認証装置Ａと被認証装置Ｂは何らかの通信を行い、認証を行うものとする。
【００２０】
認証装置Ａは何らかのタイミング（図示せず）で、被認証装置Ｂを認証する必要が生じると、ステップＳ１０１で乱数発生器１０１が乱数ｒを発生する。乱数は、ハードウェアで発生させても、ソフトウェアで発生させてもよい。乱数ｒ（チャレンジデータ）は認証装置Ａから被認証装置Ｂに通信される。
【００２１】
一方、被認証装置Ｂにはステップ１０２のフリーランカウンタ２０１があり、認証装置Ａおよび被認証装置Ｂの動作とは無関係にカウンタが動作している。カウンタは、アップカウンタでも、ダウンカウンタでもよい。また、カウンタの増分は、１でも、それ以外でも構わない。自由に動作するカウンタをここでは想定する。また、カウンタのクロックは実施の形態１では被認証装置Ｂの外部から供給されているものとする。
【００２２】
ステップＳ１０３では、変更仕様決定部２０３が、通信された乱数ｒを受信したタイミングで、フリーランカウンタＳ１０２のカウンタ値を読み取り、そのカウンタ値に基づいて、ビット位置ｍを決定する。ビット位置ｍを決定する方法には色々な方法が考えられる。例えば、以下のような方法が考えられる。
１．カウンタ値のビット値が１であるビットの数
例えば、カウンタ値が２進数で、１０１０１１０１であれば、値１であるビット数を数えて、５をビット位置ｍとする。
２．カウンタ値のビット値が１であるビット位置
例えば、カウンタ値が２進数で、１０１０１１０１であれば、値１であるビット位置を探して、ビット位置ｍを０，２，３，５，７とする。
【００２３】
このように、ビット位置は、単数でも、複数でもよい。また、上記例では値１のビットに着目しているが、値０に着目してもよい。さらに、カウンタ値のビット位置毎に着目する値を切り替えてもよい。
【００２４】
ステップＳ１０４では、暗号文変形部２０４が、被認証装置Ｂに予め格納してある以前の暗号Ｃの一部Ｃｎのビット位置ｍの値を変更する。例えば、ビット位置ｍの値を全て１にする、ビット位置ｍの値を全て０にする、ビット位置ｍの値を反転するなどの方法が考えられる。さらに、これらの変更方法を組み合わせてもよい。この変形された暗号文をＣ’ｎとする。
【００２５】
ステップＳ１０５では、連接部２０５が、受信した乱数ｒと変形暗号Ｃ’ｎを連接して、平文Ｐとする。連接する順番は構わない。また、ビット位置が交差するように連接させても構わない。
【００２６】
ステップＳ１０６では、暗号化部２０６が、暗号回路２０７を用いて平文Ｐを規定の暗号アルゴリズムで暗号化し、結果である暗号文をＣ（以下、単に、暗号Ｃともいう）とする。暗号Ｃ（レスポンスデータ）は、認証装置Ａに通信される。なお、差分電力解析では、この暗号化期間の電力を測定し、秘密である暗号化鍵を解析する。
【００２７】
ステップＳ１０７では、暗号化部２０６が次回の認証に備えて、暗号Ｃの一部分を被認証装置Ｂの内部に格納する。
【００２８】
認証装置Ａに通信された暗号Ｃは、ステップＳ１０８で、復号化部１０４により、復号回路１０３によって復号化される。復号された平文をＰ’とする。
【００２９】
ステップＳ１０９では、乱数取出部１０５が、平文Ｐ’から乱数を取り出す。取り出した乱数をｒ’とする。乱数の取り出し方法は、ステップＳ１０５の連接方法と整合が取れていなければならない。
【００３０】
ステップＳ１１０では、認証部１０６が、認証装置Ａが発生した乱数ｒと被認証装置Ｂから送信された暗号Ｃから取り出した乱数ｒ’を比較し、一致したら被認証装置Ｂを認証し、不一致の場合は否認とする。
【００３１】
この実施の形態は、以上説明したように、ステップＳ１０５で乱数ｒと変形暗号Ｃ’ｎを連接して、平文Ｐを作っているので、乱数ｒの通信を観測してｒの値を得ても、平文Ｐの値を知ることが出来ないので、差分電力解析に耐性がある効果を得られる。
【００３２】
また、ステップＳ１０４で格納暗号Ｃｎを変形しているので、暗号Ｃを観測しても、変形暗号Ｃ’ｎを知ることが出来ない、すなわち、平文Ｐの値を知ることが出来ないので、差分電力解析に耐性がある効果を得られる。
【００３３】
また、ステップＳ１０２のフリーランカウンタ、ステップＳ１０３の受信タイミングでビット位置ｍを決めるので、変形暗号Ｃ’ｎの変化が外部から予測不可能になり、つまり、平文Ｐの値を知ることが出来ないので、差分電力解析に耐性がある効果を得られる。
【００３４】
また、ステップＳ１１０では、取出された乱数部分だけを比較するので、認証装置Ａと被認証装置Ｂの同期をとる必要がないという効果を得られる。
【００３５】
なお、ステップＳ１０４では、被認証装置Ｂに予め格納してある以前の暗号Ｃの一部Ｃｎのビット位置ｍの値を画一的な方法で変更しているが、複数のビット位置を決めた場合、ビット位置によって変更方法を変えてもよい。
【００３６】
実施の形態２．
実施の形態１では、ステップＳ１０３では、通信された乱数ｒを受信したタイミングで、フリーランカウンタＳ１０２のカウンタ値を読み取り、そのカウンタ値に基づいて、ビット位置ｍを決定し、ステップＳ１０４で該当ビット位置ｍの値を変更してしたが、実施の形態２はこの変更方法を変えたものである。
【００３７】
図２に、実施の形態２のフローチャートを示す。
図１で示したフローと同じ手続きは同一の番号をつけている。
【００３８】
ステップＳ２０３では、変更仕様決定部２０３が、乱数ｒを受信したタイミングで、フリーランカウンタの値Ｋを取得する。ここでは、変更仕様決定部２０３がフリーランカウンタの値Ｋをそのまま用いて暗号文を変形する仕様を決定するものとする。
【００３９】
ステップＳ２０４では、暗号文変形部が、カウンタ値Ｋを用いて格納暗号Ｃｎを変形する。変形する方法は色々考えられる。例えば、以下のような方法が考えられる。
１．カウンタ値Ｋと格納暗号Ｃｎの排他的論理和を計算し、結果を変形暗号とする。
２．格納暗号Ｃｎとカウンタ値Ｋを加算し、その結果を変形暗号とする。
３．格納暗号Ｃｎとカウンタ値Ｋを差分を計算し、その結果を変形暗号とする。
【００４０】
この発明の第２の実施の形態は、以上説明したように、ステップＳ２０４で乱数ｒをカウンタ値Ｋで変形しているので、予測不可能なカウンタ値Ｋの影響が複数ビットにおよび、変形暗号Ｃ’ｎの変化が外部から予測不可能になり、つまり、平文Ｐの値を知ることが出来ないので、差分電力解析に耐性がある効果を得られる。
【００４１】
実施の形態３．
次に、本発明の第３の実施の形態について説明する。
図３に、本実施の形態のフローチャートを示す。
実施の形態１とほとんど同一であるが、フリーランカウンタＳ１０２に供給するクロックを、内部クロックＣＬＫ３０１としている点が異なっている。フリーランカウンタＳ１０２以外は、外部から供給されるクロックに同期して動作しているものとする。
【００４２】
次に、動作について説明する。
内部クロックＣＬＫ３０１でフリーカウンタＳ１０２を動かす。乱数ｒを受取るタイミングで、フリーカウンタＳ１０２のカウンタ値を取得する（Ｓ１０３）。以下の動作は、実施の形態１および２と同一である。内部クロックＣＬＫ３０１でフリーカウンタＳ１０２が動作するので、外部クロックのタイミングからフリーカウンタＳ１０２のカウンタ値を予測するのが困難になる。
【００４３】
この発明の第３の実施の形態は、以上説明したように、フリーランカウンタＳ１０２のクロックが外部とは切り離された内部クロックであるので、フリーランカウンタ値の予測がより困難となり、よって、変形暗号Ｃ’ｎの変化が外部から予測不可能になり、つまり、平文Ｐの値を知ることが出来ないので、差分電力解析により強力な耐性がある効果を得られる。
【００４４】
実施の形態４．
次に、実施の形態４について説明する。
図４に、本実施の形態のフローチャートを示す。
実施の形態１とほとんど同一であるが、フリーランカウンタＳ１０２の代わりに、タイマーＳ４０２がある点が異なっている。
【００４５】
次に、動作について説明する。
ステップＳ１０３で、乱数ｒを受けたタイミングで、タイマーＳ４０２の値を取得し、ビット位置ｍを決める点が実施の形態１と異なるだけで、あとは、実施の形態１と同一である。
【００４６】
この発明の第４の実施の形態は、以上説明したように、タイマーは１チップマイコンなどに通常搭載されている機能なので、１チップマイコンに本デジタル認証方式を搭載するには、新たなるハードウェアを追加する必要がなく、コスト的に有利である効果が得られる。
【００４７】
実施の形態５．
次に、実施の形態５について説明する。
図５に、本実施の形態のフローチャートを示す。
実施の形態３とほとんど同一であるが、内部クロックＣＬＫ３０１の代わりに、不安定な内部クロックＣＬＫ５０１となる点が異なっている。不安定なクロックは、周波数が温度特性により変化する不安定な発信器で生成する。不安定な発信器としては、インバータを奇数個リング状につないだリングオシレータなどを使用する。インバータ単体では製造上のバラツキがあり、温度特性もあるので、補正機能をつけていないリングオシレータは不安定な発信器となる。
【００４８】
次に、動作について説明する。
フリーランカウンタＳ１０２を不安定な内部クロックＣＬＫ５０１で動作させる点を除いて、実施の形態３と同一である。
【００４９】
この発明の第５の実施の形態は、以上説明したように、フリーランカウンタＳ１０２のクロックが外部とは切り離された不安定な内部クロックＣＬＫ５０１であるので、フリーランカウンタ値の予測がさらに困難となり、よって、変形暗号Ｃ’ｎの変化が外部から予測不可能になり、つまり、平文Ｐの値を知ることが出来ないので、差分電力解析にさらに強力な耐性がある効果を得られる。
【００５０】
実施の形態６．
次に、実施の形態６について説明する。
図６に、本実施の形態のフローチャートを示す。
実施の形態１とほとんど同一であるが、フリーランカウンタＳ１０２の代わりに、乱数発生器Ｓ６０２となる点が異なっている。Ｓ６０２が発する乱数は、真性乱数でも、擬似乱数でも構わない。また、ソフトウェアで発生させても、ハードウェアで発生させても構わない。
【００５１】
次に、動作について説明する。
ステップＳ１０３では、乱数発生器Ｓ６０２で発生した乱数値を基に、ビット位置ｍを決定することになる。この点以外は、実施の形態１と同一である。
【００５２】
この発明の第６の実施の形態は、以上説明したように、乱数発生器で発生させた数値を基にビット位置ｍを決めるので、変化するビット位置ｍの予測が困難となり、よって、変形暗号Ｃ’ｎの変化が外部から予測不可能になり、つまり、平文Ｐの値を知ることが出来ないので、差分電力解析にさらに強力な耐性がある効果を得られる。
【００５３】
実施の形態７．
次に、実施の形態７について説明する。
実施の形態１で説明した図１０は、論理ブロック図であったが、図７に、本実施の形態のハードウェア形態を示す。
７０１は以下に述べる７０２から７０６の回路要素が構築されている集積回路である。７０２は各回路要素の動作を制御するシーケンス回路、７０３は外部との通信を行う通信回路、７０４は暗号計算を行う暗号回路、７０５は乱数を発生する乱数回路または自由にカウントするフリーランカウンタ、７０６はクロックを供給するクロック回路である。また、図には記載していないが、必要に応じて揮発メモリ、不揮発メモリを搭載するものとする。
【００５４】
デジタル認証において、認証を行う認証装置Ａと被認証装置Ｂのそれぞれに、集積回路７０１があるものとする。
【００５５】
次に、動作について説明する。
実施の形態１を例にとって説明する。認証装置Ａや被認証装置Ｂの処理フローの制御は、シーケンス回路７０２が行う。例えば、ステップＳ１０１で被認証装置Ｂを認証するタイミングを検知して、乱数ｒを発生させるために乱数回路７０５に指示を出す、発生させた乱数ｒを送信するために通信回路７０３に指示を出すという具合である。ステップＳ１０１が終了すれば、暗号Ｃが送られてくるまで待機し、送られてきたらステップＳ１０８を処理する。被認証装置Ｂにおいても同様に被認証装置Ｂのフローをシーケンス回路が制御する。
【００５６】
外部との信号の送受信を通信回路７０３が行う。ここでは、デジタル信号の変復調、ビットコーディングなどが行われる。暗号計算は暗号回路７０４が行う。暗号アルゴリズムにそって暗号計算が行われる。予測不可能な数値を発生するには、乱数またはフリーランカウンタ７０５を使用する。クロック回路７０６は、内部に供給されるクロックを生成し、このクロックは外部から容易に観測できないように、クロックラインの保護などがなされているものとする。
【００５７】
この発明の第７の実施の形態は、以上説明したように、デジタル認証方式を実現する回路を１つの集積回路に実装したので、集積回路外では、乱数ｒと暗号Ｃのモニタしか出来ず、さらに、これらの情報からでは変形暗号Ｃ’ｎの変化が外部から予測不可能になり、つまり、平文Ｐの値を知ることが出来ないので、差分電力解析にさらに強力な耐性がある効果を得られる。
【００５８】
また、実施の形態７では、実施の形態１を例にとったが、シーケンス回路７０２の回路構成をかえることで、実施の形態２から６まで対応できることは言うまでもない。
【００５９】
実施の形態８．
次に、実施の形態８について説明する。
図８に、本実施の形態のハードウェア形態を示す。
７０１〜７０６は実施の形態７と同一である。８０７は分離可能なテスト回路である。一般に、半導体回路には検査のためにテスト回路が実装されている。テスト回路は回路内部の状態を検査するために、内部と外部をつなぐパスを提供する。このような回路が集積回路７０１に実装されている場合、検査のためのパスが何らかの原因で変化して、内部と外部がつながってしまう恐れがある。場合によっては、予測困難とする変形暗号Ｃ’ｎが外部モニタ可能になってしまう。８０７の分離可能なテスト回路は、検査後この外部と内部を結ぶパスを物理的に分離できる回路である。例えば、検査後に集積回路をアニール（熱処理またはレーザ処理）することにより、信号ラインに酸化アイランドが生成されて、信号ラインを切断する方法を使うことができる。
【００６０】
この発明の第８の実施の形態は、以上説明したように、デジタル認証方式を実現する回路を１つの集積回路に実装し、かつ、外部とつながる恐れのある信号ラインを物理的に切断したので、暗号計算途中、シーケンス途中の信号モニタが容易に出来なくなり、さらに、変形暗号Ｃ’ｎの変化が外部から予測不可能になる。つまり、平文Ｐの値を知ることが出来ないので、差分電力解析にさらに強力な耐性がある効果を得られる。
【００６１】
また、実施の形態８では、シーケンス回路７０２の回路構成をかえることで、実施の形態１から６まで対応できることは言うまでもない。
【００６２】
実施の形態９．
次に、実施の形態９について説明する。
図９に、本実施の形態のハードウェア形態を示す。
９０１は各種Ｉ／Ｏ機能が備わった１チップマイコンである。マイコンはプログラムを書き換えることで様々な機能を実現することができる。本実施の形態では、実施の形態１のデジタル認証方式のフローを実現するプログラムがロードされているものとする。９０２は、通信を行うための回路がチップないしボードの通信回路である。マイコン９０１と通信回路９０２とは信号ラインでつながっている。
【００６３】
デジタル認証において、認証を行う認証装置Ａと被認証装置Ｂのそれぞれに、マイコン９０１、通信回路９０２があるものとする。
【００６４】
次に、動作について説明する。
必要に応じて、図１を参照して説明を行う。認証装置Ａのマイコン９０１は、何らかのタイミングで被認証装置Ｂを認証する必要が生じると、ステップＳ１０１で乱数ｒをソフトウェア手法で発生させる。乱数は信号ラインを介して通信回路９０２に送られ、被認証装置Ｂに向けて発信される。その後、認証装置Ａは待機状態になる。
【００６５】
被認証装置Ｂでは、認証装置Ａからの信号を受取ると、マイコン９０１内のフリーランカウントＳ１０２のカウンタ値からビット位置ｍを決める（Ｓ１０３）。その後、格納してある暗号の一部Ｃｎのビット位置ｍの値を変更して（Ｓ１０４）、平文Ｐを得る（Ｓ１０５）。平文Ｐを暗号化し、暗号Ｃを、信号ラインを介して、通信回路９０２に送り、認証装置Ａに向けて発信する（Ｓ１０６）。一方、暗号Ｃの一部は、次回に備えて格納される（Ｓ１０７）。その後、被認証装置Ｂは待機状態になる。この一連のシーケンス中、フリーランカウンタＳ１０２は、マイコン９０１の場合は内蔵タイマーで代用することになる。
【００６６】
待機状態にある認証装置Ａは、被認証装置Ｂからの信号を受取ると、暗号Ｃを復号し（Ｓ１０８）、平文Ｐ’から乱数ｒ’を取り出し（Ｓ１０９）、乱数ｒと乱数ｒ’を比較し認証結果を判断する（Ｓ１１０）。その後、認証装置Ａは待機状態、または、定められた次の処理を行う。
【００６７】
この発明の第９の実施の形態は、以上説明したように、デジタル認証方式を実現するプログラムをマイコンで実行し、認証作業中のデータはマイコン内に閉じて存在するので、ビット位置ｍの予測、変形暗号Ｃ’ｎの変化が外部から予測不可能になる。つまり、平文Ｐの値を知ることが出来ないので、差分電力解析に強力な耐性がある効果を得られる。また、マイコンという多機能なデバイスを使用しているので、デジタル認証をマイコンを使用している既存のシステムに容易に搭載できるという効果を得られる。
【００６８】
また、実施の形態９では、プログラムをかえることで、実施の形態２から６まで対応できることは言うまでもない。
【００６９】
実施の形態１０．
図１１は、図１０の暗号文メモリ２０８を平文メモリ３０８とし、図１０の暗号文変形部２０４を平文変形部３０４としたものである。
このように、暗号文の代わりに、平文を記憶して変形するようにしてもよい。また、平文ではなく、その他のデータ文でも構わない。
【００７０】
実施の形態１１．
図１２は、暗号文変形部２０４が、常時、或いは、任意時に暗号文メモリ２０８の暗号文を読み取りして変更仕様決定部２０３による変更仕様に基づいて暗号文メモリ２０８の暗号文を更新し、連接部３０５が、常時、或いは、任意時に変更される暗号文メモリ２０８の暗号文を乱数ｒと連接する場合を示している。
この実施の形態によれば、乱数ｒの受信タイミングに依存しないで変形暗号文を作成することが出来る。
【００７１】
実施の形態１２．
図１３は、変更仕様決定部２０３が複数の変更仕様（図１３では、仕様１、仕様２、仕様３）から１つの仕様を時刻に応じて、または、順番に応じて、または、ランダムに選択して使用する場合を示している。
この実施の形態によれば、変更仕様が毎回変わるので、変形暗号文がさらに予測不可能になるという効果がある。
【図面の簡単な説明】
【００７２】
【図１】実施の形態１のデジタル認証方式のフローチャート。
【図２】実施の形態２のデジタル認証方式のフローチャート。
【図３】実施の形態３のデジタル認証方式のフローチャート。
【図４】実施の形態４のデジタル認証方式のフローチャート。
【図５】実施の形態５のデジタル認証方式のフローチャート。
【図６】実施の形態６のデジタル認証方式のフローチャート。
【図７】実施の形態７のハードウェア構成図。
【図８】実施の形態８のデジタル認証方式のフローチャート。
【図９】実施の形態９のデジタル認証方式のフローチャート。
【図１０】実施の形態１のデジタル認証方式の論理ブロック図。
【図１１】実施の形態１０のデジタル認証方式の論理ブロック図。
【図１２】実施の形態１１のデジタル認証方式の論理ブロック図。
【図１３】実施の形態１２のデジタル認証方式の論理ブロック図。
【符号の説明】
【００７３】
１００  認証装置、１０１  乱数発生器、１０２  乱数メモリ、１０３  復号回路、１０４  復号化部、１０５  乱数取出部、１０６  認証部、２００  被認証装置、２０１  フリーランカウンタ、２０２  シーケンス部、２０３  変更仕様決定部、２０４  暗号文変形部、２０５  連接部、２０６  暗号化部、２０７  暗号回路、２０８  暗号文メモリ、３０４  平文変形部、３００  チャレンジ・レスポンス認証システム、３０８  平文メモリ。
【図１】
0004550438.tif 000002
【図２】
0004550438.tif 000003
【図３】
0004550438.tif 000004
【図４】
0004550438.tif 000005
【図５】
0004550438.tif 000006
【図６】
0004550438.tif 000007
【図７】
0004550438.tif 000008
【図８】
0004550438.tif 000009
【図９】
0004550438.tif 000010
【図１０】
0004550438.tif 000011
【図１１】
0004550438.tif 000012
【図１２】
0004550438.tif 000013
【図１３】
0004550438.tif 000014