(57)【要約】【課題】異常な暗号特有データを検出することにより、データ保護と外部進入に対して解析困難な応答をして、耐タンパ性を向上する。【解決手段】この発明の暗号通信装置は、通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、一連のデータのやり取りを示す同一通信トランザクション内で認証用チャレンジデータとして時刻情報を受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段と、チャレンジデータカウント手段がカウントしたチャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段とを備えて、執拗な攻撃者によるアクセスを早期に、容易に検出する。【選択図】図１
2007129783.tif 000002
【特許請求の範囲】
【請求項１】
以下の要素を有することを特徴とする暗号通信装置
（１）少なくともデータフィールドを有する通信データの送受信を行う通信手段
（２）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
（３）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、一連のデータのやり取りを示す同一通信トランザクション内で認証用チャレンジデータとして時刻情報を受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段
（４）チャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【請求項２】
制御手段は、チャレンジデータ受信回数が最小チャレンジカウント値より大きい場合に、不正終了の処理を行うことを特徴とする請求項１記載の暗号通信装置。
【請求項３】
制御手段は、不正終了の処理として、暗号化処理あるいは復号化処理を施さないように制御することを特徴とする請求項１記載の暗号通信装置。
【請求項４】
制御手段は、不正終了の処理として、データフィールド内のデータと異なるダミーデータに対して、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項１記載の暗号通信装置。
【請求項５】
暗号通信装置は、更に、暗号処理手段に入力する入力データを切り替える切り替え手段を有し、
制御部は、切り替え手段をデータフィールド内の正常データとは異なるダミーデータ側に切り替えることにより、ダミーデータに対して、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項４に記載の暗号通信装置。
【請求項６】
暗号通信装置は、更に、乱数を生成する乱数生成手段を有し、
制御手段は、乱数制御手段により生成された乱数を、上記ダミーデータとして用いることを特徴とする請求項４又は５のいずれかに記載の暗号通信装置。
【請求項７】
制御手段は、不正終了の処理として、正常な鍵以外のダミー鍵を用いて、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項１記載の暗号通信装置。
【請求項８】
暗号通信手段は、更に、暗号処理手段で使用する鍵を切り替える鍵切り替え手段を有し、
上記制御部は、鍵切り替え手段を正常な鍵以外のダミー鍵に切り替えることにより、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項７に記載の暗号通信装置。
【請求項９】
暗号通信装置は、更に、乱数を生成する乱数生成手段を有し、
制御手段は、乱数制御手段により生成された乱数を、ダミー鍵として用いることを特徴とする請求項８に記載の暗号通信装置。
【請求項１０】
制御手段は、不正終了の処理として、暗号通信装置内で記憶する秘密情報に対する情報資産保護の処理を行うことを特徴とする請求項１記載の暗号通信装置。
【請求項１１】
制御手段は、情報資産保護の処理として、不揮発メモリ内の秘密情報を消去することを特徴とする請求項１０記載の暗号通信装置。
【請求項１２】
制御手段は、情報資産保護の処理として、暗号通信装置を使用できないようにブロックすることを特徴とする請求項１０記載の暗号通信装置。
【請求項１３】
制御手段は、情報資産保護の処理として、特定コマンドと特定データを受信後にのみ正常動作することを特徴とする請求項１０記載の暗号通信装置。
【請求項１４】
最小チャレンジカウント値は、通信手段を介して変更可能でることを特徴とする請求項１記載の暗号通信装置。
【請求項１５】
通信トランザクションが正常に終了した場合には、最小チャレンジカウント値を初期化することを特徴とする請求項１記載の暗号通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号通信におけるデータの特殊性に着目して、検出し、あるいは相手を幻惑して、秘密情報を読み出す困難性（耐タンパ性）を向上させる安全な装置を容易に得るものである。
【背景技術】
【０００２】
暗号通信分野における認証方法としては数多くの提案がなされているが、通常、ある秘密情報を知っている者を本人と（検証者が）確かめることで、認証が行われる。例えば、特開２０００−１８２１０２号公報に示された従来の認証方法では、あらかじめ共通鍵をＡ（証明者側暗号通信装置）とＢ（検証者側暗号通信装置）の双方で保持しておき、以下の手順で相手を認証していた。
（１）Ａは乱数Ｒ１を生成し、Ｂに乱数Ｒ１を送信する。
（２）Ｂは乱数Ｒ１と共通鍵から認証子１を生成し、また、乱数Ｒ２も生成する。そして、認証子１と乱数Ｒ２をＡに送信する。
（３）Ａは乱数Ｒ１と共通鍵から認証子を生成し、Ｂから受信した認証子１と一致するかを検査する（これによりＡはＢを認証）。
（４）次に、Ａは乱数Ｒ２と共通鍵から認証子２を生成し、認証子２をＢに送信する。
（５）Ｂは乱数Ｒ２と共通鍵から認証子を生成し、Ａから受信した認証子２と一致するかを検査する（これによりＢはＡを認証）。
【０００３】
また、共通鍵（秘密鍵）生成のために複数の情報を別々に保持しておき、共通鍵（秘密鍵）を共有せず、認証時や鍵共有時に共通鍵（秘密鍵）を生成することで認証する方法も開示されている。さらに、零知識証明技術に基づいた暗号認証方法（Ｆｉａｔ−Ｓｈａｍｉｒ法等）や、公開鍵と秘密鍵の２つの非対称なデータ暗号鍵を用いる方法（公開鍵暗号方式）、即ち、暗号化を公開された鍵（あるいは秘密鍵）で行い、秘密鍵（あるいは公開鍵）で復号化を行う方法も様々な装置で使用されている。
これらの認証方法が搭載された暗号通信装置では、通常、秘密情報（暗号処理で用いる鍵等）を不揮発性メモリに記録し、これをマイクロプロセッサがアクセス制御することで、容易な読み出しを不可能とする耐タンパ性を実現していた。例えば、モバイルコマースシステムの基地局、携帯電話とスマートカード等で構成される複数の暗号通信装置やノンストップ自動料金収受システムの路側機と車載器及びスマートカードで構成される複数の暗号通信装置等では、所定のコマンドを送信（または受信）し、これに対するレスポンスを受信（または送信）する、という方法でアクセスが行われる。
このようなコマンドとレスポンスは、暗号通信装置間の通信ラインを介して行われるが、通信ラインは外部から物理的にアクセスすることが比較的容易であるため、通信ラインを流れるデータを外部から観測されたり、不正データを意図的に挿入されたりする可能性が高い。さらに近年、故障解析、タイミング解析、電力解析、テンペスト（過渡的電磁気パルス解析）などの各種解析／攻撃法が提案されたことにより、不揮発性メモリ上の秘密情報は読み出せないとする考え方が覆されはじめている。
【特許文献１】特開２０００−１８２１０２号公報
【特許文献２】特開平１０−１５４９７６号公報
【特許文献３】特開２００１−１６６５５号公報
【特許文献４】特開２００１−２８２７３９号公報
【特許文献５】特開２０００−４７９８７号公報
【特許文献６】特開平１１−８７０２号公報
【特許文献７】特開平３−１３９７１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の暗号通信装置は以上のように構成されており、先ず読み出しが困難になるように秘密情報を不揮発性メモリに持っているが、これらへのアクセスと解析の機会が増えて、電力波形解析や、その間の処理時間解析により、秘密情報を解く鍵情報が流出する危険性が増して、システムへのなりすまし進入や、その結果によるデータの改ざん等が発生する可能性が高くなり、装置またはシステムが安全であるとは言えなくなっているという課題がある。
【０００５】
この発明は上記の課題を解決するためになされたもので、暗号データ及び関連データに着目し、暗号通信システムに外部からアクセスしようとするハッカーに対して、早期に異常な暗号特有データを比較的簡易に検出することにより、内部の情報保護及び外部進入に対して解析困難な応答をしたり、正常でない応答を正常であるかのように応答することにより、耐タンパ性を向上することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
（１）少なくともデータフィールドを有する通信データの送受信を行う通信手段
（２）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
（３）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、不正データを受信した回数である不正データ受信回数をカウントする不正データ検出・カウント手段
（４）不正データ受信回数を、予め装置内に記憶している最小不正データカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【０００７】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
（１）少なくともデータフィールドを有する通信データの送受信を行う通信手段
（２）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
（３）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、通信トランザクションが不正に終了した回数である不正終了回数をカウントする不正終了・検出カウント手段
（４）不正終了回数を、予め装置内に記憶している最小不正終了カウント値と比較し、比較結果に基づいて、暗号通信装置内で記憶する秘密情報に対する情報資産保護の処理を行う制御手段。
【０００８】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
（１）少なくともデータフィールドを有する通信データの送受信を行う通信手段
（２）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
（３）通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、同一通信トランザクション内で認証用チャレンジデータを受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段
（４）チャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【０００９】
この発明に係る暗号通信装置は、共通鍵または秘密鍵を用いて受信データを暗号あるいは復号する通信装置において、
受信データ、あるいは受信データを上記鍵を用いて復号した結果に対して、所定の値と比較して秘密通信関連データの不正を検出し、かつ設定回数以上の不正受信回数を検出する不正データ検出・カウント手段を備えて、設定回数以上の不正な受信データに対してはこれを破棄あるいは無視し、または自通信装置内の情報を保護するようにした。
【００１０】
また更に、不正データ検出・カウント手段が持つ不正データの検出基準として、データのレングスと、データのフィールド・レングスとを設け、かつカウント基準をシステムで可変指定するようにした。
【００１１】
また更に、不正データ検出・カウント手段は、設定回数以上の不正な受信データに対しては、装置として不正終了を行ってこの不正受信データの送信者に意図的なダミーデータを応答指示する、不正終了検出・カウント手段とした。
【００１２】
また更に、不正データ検出・カウント手段は、設定回数以上の不正な受信データに対しては、正常な鍵とは異なるダミー鍵を用いて復号し、この復号結果のデータを元の不正受信データの送信者に応答指示するようにした。
【００１３】
また更に、不正データ検出・カウント手段は、チャレンジデータに対しては鍵を用いずに受信データを直接に所定の値と比較し、また不正受信回数を調べるチャレンジデータ検出・カウント手段とした。
【００１４】
また更に、不正データ検出・カウント手段を省き、特定データ部分に対して鍵を用いて復号した結果が正常であると、送信者に対する該特定データの返送時に予め取り決めた順序に変更して送るようにした。
【００１５】
また更に、通信トランザクションが正常に終了すると、設定回数をリセットして不正回数のカウントを初期化するようにした。
【発明の効果】
【００１６】
この発明によれば、チャレンジデータ検出・カウント手段を備えたので、執拗な攻撃者によるアクセスを早期に、容易に検出できる効果がある。
【発明を実施するための最良の形態】
【００１７】
実施の形態１．
まず、この発明の主旨である耐タンパ性向上の概要を説明する。
従来の暗号通信装置では、秘密情報を用いて演算を行う際に、電力波形や処理時間など攻撃者に有益な情報が外部にもれてしまい、その結果、偽造被害が増加するという不具合があった。さらに詳しく説明すると、例えば、攻撃者は暗号通信装置内の電源ラインを観測しつつ、通信ラインから不正データを意図的に挿入して、秘密情報を用いた演算を行う際の電力波形や処理時間などを解析することで秘密情報を暴露し、なりすましや改ざん、通信の回線盗聴などの悪事を働く可能性を秘めていた。とすれば、様々な外部脅威から充分なセキュリティを確保しつつ、耐タンパ性に優れた暗号通信装置を得るためには、以下のような対抗策を講じるようにすればよい。本発明では、（Ａ）〜（Ｃ）の具体的対抗策について述べる。
（Ａ）不正データの意図的挿入等を検出し、攻撃者に有益情報をもらさない。
（Ｂ）攻撃者に意図的に誤った情報を流して、解読を不可能にする。
（Ｃ）情報フロー（通信手順や認証データのデータ構造等）を複雑にする。
【００１８】
以下、上記概念の（Ａ）の不正侵入を検出し、読み出しを阻止する形態を実施の形態１として、図１〜図４を用いて説明する。
図１は、この発明の実施の形態１における暗号通信装置の構成と動作を示す図である。
図３は、暗号通信装置間の通信データ構成を示す図、図４は、通信データ内の暗号化されたデータ（または署名データ）を復号する（または署名検証する）手順や平文データを署名生成する手順を示す図である。
図１において、１は通信手段で、少なくともレングスフィールドとデータフィールドを有した通信データ９の送受信を行う。例えば、スマートカード用の接触式インタフェースや非接触式インタフェース、セントロニクス社準拠のパラレルインタフェースやＲＳ２３２Ｃなどのシリアルインタフェース、ＩＥＥＥ１３９４やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの有線インタフェース、赤外線通信、Ｂｌｕｅｔｏｏｔｈ（登録商標）、無線ＬＡＮやＤＳＲＣ（Ｄｅｄｉｃａｔｅｄ  ｓｈｏｒｔ  Ｒａｎｇｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、あるいは携帯電話に用いられているような無線インタフェースや専用のインタフェースなどが用いられる。２は制御手段で、通信手段１で受信した通信データ９を解読するとともに（または送信する通信データ９を生成するとともに）装置全体を制御する。例えば、ＣＰＵやロジック回路、あるいは必要に応じてＲＯＭやＲＡＭなどから構成される。３は不揮発性メモリで、暗号処理時に使用する鍵等の秘密情報を記憶する。４は乱数を生成する乱数生成手段で、後の実施の形態では更に他の機能もある。５は通信データのデータフィールド内のデータを暗号あるいは復号処理する（または署名生成あるいは署名検証する）暗号生成・復号手段、６は通信データのデータフィールド内のデータを暗号あるいは復号処理する際に通信データ９の不正データを検出して、その不正データを受信した回数である不正データ受信回数を計数し、所定回数範囲にあるかを調べる不正データ検出・カウント手段、８は装置全体としての暗号通信装置であり、本実施の形態１では、通信データ９の受信を通じて、送信側を検証する構成の例を示している。
【００１９】
また、９は通信データであり、図３（ａ）に概念、図３（ｂ）にいくつかの例で示すように、少なくともレングスフィールド１０とデータフィールド１１から構成されており、データフィールド１１の長さは可変である。レングスフィールド１０には、認証データ等が格納されるデータフィールド１１のレングス値が格納されている。なお、データフィールド１１内には、図３（ｂ）に示すように、暗号化されたデータ（暗号文）、暗号化されていないチャレンジデータとしての平文データ、あるいは両者が混在したデータのいずれかで構成される。
【００２０】
次に、動作を図１（ｂ）と図４を用いて説明する。
まず、送信側の暗号通信装置８では、装置全体を制御する制御手段２が、例えば、以下のステップ（以下、Ｓと略記）１ないしＳ４の手順にて受信側の暗号通信装置８に向けて通信データ９を送信する。
Ｓ１：乱数生成手段４用いて乱数Ｒ１を生成する。
Ｓ２：次に、受信側の暗号通信装置８内に存在する（アプリケーションの種類を示す）アプリケーションＩＤと上記乱数Ｒ１を連結する。
Ｓ３：連結したデータを暗号生成・復号手段５に入力して暗号化する。この時の暗号生成用の鍵としては、不揮発性メモリ３内に記憶している秘密情報Ｈを使用する。
Ｓ４：そして、送信側の暗号通信装置８では、通信手段１を通して受信側の暗号通信装置８に通信データ９を送信する。ここで、通信データ９のレングスフィールド１０にはデータフィールド１１のデータ長を示す「２４」、データフィールド１１には２４バイトの「（暗号化された）アプリケーションＩＤと乱数Ｒ１、（暗号化されていない）アプリケーションＩＤ」が格納されている。
【００２１】
一方、データ受信側となる検証側の暗号通信装置８では、図１（ｂ）に示すように、装置全体を制御する制御手段２が、例えば、以下の手順でデータを処理する。
Ｓ２０：通信手段１を介して通信データ９を受信する。
Ｓ２１：通信データ９が不正データであるかどうかを検出する。
Ｓ２２：不正データと判断した場合には（Ｓ３０，Ｓ３１，Ｓ３２）、不正データ検出・カウント手段６にて不正データの受信回数を計数し（Ｓ２２−１〜Ｓ２２−３）、
Ｓ２３：正常データと判断した場合には、正常処理を実行する。
ここで、不正データであるかどうかを検出するには、例えば、図１（ｂ）のようなフローにすればよい。まず、通信データ９のレングスフィールド１０の値とデータフィールド１１のデータ長を通信手段１あるいは制御手段２で比較し、一致していればＳ３１に進み、一致していなければＳ２２−１に進む。そして、Ｓ３１では、レングスフィールド１０の値と予め装置内に格納している最小レングス値とレングスフィールド１０の値を比較し、レングスフィールド１０の値が最小レングス値以上であればＳ３２へ進み、レングスフィールド１０の値が最小レングス値未満であればＳ２２−２へ進む。ここで、最小レングス値とは、正常な通信データ９のやりとりにおけるデータフィールド１１の最小データ長に相当する値のことで、通信トランザクション中の、あるいはトランザクション毎の値を指す。Ｓ３０又はＳ３１のいずれかの判断を省略する場合も有効である。
なお、最小レングス値は予め求めておくことができ、テーブル形式などで装置内の不揮発性メモリ３や制御手段２等に格納される。
【００２２】
そして、Ｓ３２では、データフィールド１１を制御手段２で解読しながら不正データかどうかを判定する。例えば、以下の基準を適用する。
１）平文データであれば、アプリケーションＩＤなどの所定のデータが存在するか否かを判定する。
２）予め証明者側と検証者側とが規定したデータが正しく存在するか等を判定する。
一方、暗号化（あるいは復号化）データであれば、図４（ａ）や図４（ｂ）に示すように、データフィールド１１内の暗号化データ（あるいは復号化データ）を不揮発性メモリ３内に格納している秘密鍵１２から復号化データ（あるいは暗号化データ）を生成する（Ｓ１３ａ，１３ｂ，１３ｃ）。規定したデータが正しく存在しているか（例えば、送信した乱数との一致や所定の管理番号が一致するか等）を判定したり、あるいは署名検証した結果が正当かどうか等を判定する（Ｓ３２で、詳しくは、Ｓ３２ａ，３２ｂ，３２ｃ等）。
一方、Ｓ３２で不正データを検出しなくて、不正のない通信データ９と解釈できた場合は、例えば、図４（ａ）の動作フローを用いて復号化されたアプリケーションＩＤとデータフィールド１１内の暗号化されていないアプリケーションＩＤを比較し、一致していれば正しい送信者であることを認証する。
なお、暗号生成・復号手段５を使用したフローとしては、暗号化データを復号してから、復号化データに対して署名生成したり、暗号化データを署名検証（Ｓ１３ａの復号化データに相当）するようにしてもよい。さらに、図４（ｂ）のように、復号化データから暗号化データを生成してもよく、また、図４（ｃ）に示すように、平文データを署名生成処理するようにしてもよい。
【００２３】
次に、Ｓ２４では、時間内に不正データと検出した回数が装置内に予め設定している最小不正データカウント値（例えば、３）以上か否かを不正データ検出・カウント手段６で調べて、設定回数より少なければ、不正終了（１）のＳ２５へ進む。
最小不正データカウント値とは、不正データの受信許容回数を示しており、守るべき情報資産に応じた強度と考えてよい。例えば、重要な情報資産であれば３程度、通常の情報資産であれば５程度を、制御手段２や不揮発性メモリ３等に設定しておく。そして、設定回数以上の検出回数であれば、不正終了（２）のＳ２６へ進む。
そして、Ｓ２５の不正終了（１）では、後述するように、暗号生成・復号手段５の入力データとしてダミーデータを用いて処理したり、ダミー鍵を用いて処理したり、あるいはデータ破棄の例として、復号処理（あるいは暗号処理または署名処理）をしないようにしたり、データ長不一致エラー、認証エラー、不正データエラーのようなレスポンス等を出力したりする。
一方、Ｓ２６の不正終了（２）の場合には、装置内データ保護の例として、不揮発性メモリ３内の秘密情報を消去したり、暗号通信装置８が使用できないようにブロックしたり、あるいは、他の装置内情報の保護の例として、特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等、情報資産に応じて暗号通信装置内で記憶する秘密情報に対する外部からの読み取りを制限する処理を実施する。これらは、例えば、攻撃者が通信ラインから不正データを意図的に挿入したり、装置内の信号を観測することによる、秘密情報を用いた演算を行う際の電力波形／処理時間などの解析や情報フローの解読を未然に防ぐもので、特に、不揮発性メモリ３に記憶している秘密情報を読み出すような攻撃や解読に対する困難性を向上させたものである。
【００２４】
以上のように、本実施の形態においては、通信データの不正データ受信回数を計数し、不正の場合は、更にその回数が設定範囲内か調べる不正データ検出・カウント手段を備えたので、情報資産に応じて攻撃者の不正アクセスに対する強度を設定でき、利便性に優れ、また、簡易に不正アクセスを見抜ける暗号通信装置が得られる。
【００２５】
なお、この実施の形態では、本発明の主旨を逸脱しない範囲で種々の変更や組み合わせが可能である。例えば、図１（ｂ）のＳ２１の構成（不正データの検出）をＳ３０，Ｓ３１，Ｓ３２を組み合わせた構成ではなく、図５（ａ），（ｂ），（ｃ）のような単独の構成としてもよい。あるいは、Ｓ３１とＳ３０を組み合わせた構成、またはＳ３０とＳ３２を組み合わせた構成などにしてもよい。また、Ｓ３０とＳ３１とＳ３２の組み合わせ等におけるステップの順番についても特に限定されない。また、図２（ｃ）や（ｄ）のように、利便性を考慮して設定回数未満のときには正常処理Ｓ２３として、設定回数以上のときには不正終了（１）や不正終了（２）を実施するようにしてもよい。
さらに、一方向性関数のハッシュ値をデータフィールド１１内に設けたり、あるいはデジタル署名を施して不正データを検証するようにしてもよい。
さらに、通信トランザクション毎にセッション鍵を変更したり、あるいは通信データの伝送エラーを検出するために水平冗長符号（ＬＲＣ）や巡回冗長検査（ＣＲＣ）を加えるようにしてもよい。
また、データフィールド１１内の暗号化（あるいは復号化）されたデータまたは平文データに対して復号化（あるいは暗号化、署名生成または署名検証）する際には、複数の暗号生成・復号手段５を有して高速に処理するようにしてもよい。
さらに、上述した実施の形態では、最小不正データカウント値を制御手段２や不揮発性メモリ３内に記憶しているように記述したが、装置内であればよく、特に限定しない。
また、「〜より小さい場合」を「〜以下の場合」、あるいは「〜以上の場合」を「〜より大きい場合」のような範囲設定としてもよい。
【００２６】
また、本実施の形態に示す暗号通信装置８は、相互認証、本人認証、データ認証等、暗号と通信を必要とする分野であれば、特に用途や構成を限定せず種々の変更が可能である。例えば、受信認証を複数回繰り返す構成にしてもよい。
また、認証時には、共通鍵を用いる方法や公開鍵を用いる方法（署名生成・署名検証含）等を採用してもよく、特に限定しない。加えて、通信データ９を一方の暗号通信装置８内で暗号化してから他方で復号化するのではなく、復号化してから暗号化するようにしてもよく、また、公開鍵方式で乱数を交換後に、その乱数をセッション鍵として暗号通信するようにしてもよい。
さらに、一方の暗号通信装置８で平文データを受信後に一方向性関数でハッシュ値を求めて、このハッシュ値に対する署名生成処理を行い、他方の暗号通信装置８で署名検証するようにしてもよく、特に限定しない。加えて、上述した実施の形態では、アプリケーションＩＤで認証するようにしたが、乱数での認証や契約情報などを認証するようにしてもよく、特に限定しない。
上述した動作フローは、認証フェーズの一例を示したものであり、適宜追加したり変更したりすることができる。
【００２７】
また、図１の構成において、図面左側の暗号通信装置８を携帯電話とし、図面右側の暗号通信装置８をスマートカードと想定した場合には、図示しない携帯電話用基地局やクレジットカード認証局との通信手段や通信フローを適宜追加することができる。加えて、図１においては、説明を容易にするために、暗号通信装置８において、受信データを検証する場合を例として説明したが、本発明の暗号通信装置８と他の暗号通信装置を組み合わせるようにしてもよい。
【００２８】
また、図６に示すように、正常処理後に不正データ検出・カウント手段６のカウント値を初期化するようにしてもよい。即ち、同図において、Ｓ２０の通信データ９を受信後に、Ｓ３４の不正データ検出処理などの様々な処理を施し、Ｓ２３の正常処理が実施されて、通信トランザクションが正常に終了した場合には（Ｓ３５でＹｅｓ）、不正データ検出・カウント手段６のカウント値を初期化して（Ｓ３６）、正常終了するようにしてもよい。これは不正アクセス以外の、例えば、通信状態の不安定さなどに起因する異常データに対して冗長性をもたせたものであり、セキュリティを確保しつつ装置の利便性を向上させたものである。
この場合にも、種々の変更が可能である。例えば、通信トランザクションが正常に３回連続終了した場合に、不正データ検出・カウント手段６を初期化するようにしてもよく、また、正常トランザクション１回毎に不正データ検出・カウント手段６を１つダウンカウントしたり、連続した正常トランザクション２回毎に不正データ検出・カウント手段６を１つダウンカウントしたり、あるいは通信トランザクション１０回中７回が正常であれば初期化するような処理も、Ｓ３６に含めるものとする。さらに、Ｓ３６をＳ２３とＳ３５の間に入れたり、Ｓ３７の後に入れたり、適宜変更可能である。
【００２９】
加えて、図１（ｂ）に示すように、Ｓ２２の不正データ受信回数を計数する際には、図５に示すように、不正データの種類に応じた計数（Ｓ２２−１ないしＳ２２−３）をするようにしてもよい。例えば、レングスフィールド１０の値とデータフィールド１１のデータ長不一致回数（Ｓ２２−１）、レングスフィールド１０が最小レングス値より小さい回数（Ｓ２２−２）及び不正データそのものを受信した回数（Ｓ２２−３）等を不正データ検出・カウント手段６でそれぞれ計数して調べるようにしてもよい。この場合には、不正データ検出・カウント手段６の機能が強化され、対応したきめ細かな処理が可能になる。
さらに、当事者しか分からないようなコマンドを設けて、上記不正データ検出・カウント手段６の値を読み出せるようにしてもよいことは言うまでもない。
さらに、図３（ｂ）の点線付加部分に示すように、通信データ９においてコマンドフィールド３８をレングスフィールド１０やデータフィールド１１の先頭に加えるようにしてもよい。コマンドフィールド３８を設けることは、互いに定めた固定的な通信トランザクションを汎用的にできるという効果がある。例えば、先頭のコマンドフィールド３８を制御手段２等で解読することで、現在のフェーズが認証データであることや特定データの読みだし要求等であることが分かり、より利便性に優れた装置となる。
【００３０】
また、上述した例では、最小不正データカウント値を固定としているが、通信状態／状況に対応したり、あるいはデバックやメンテナンス時へ利便性を考慮して、図７に示すような動作としてもよい。即ち、Ｓ２０の通信データ９の受信後、コマンドフィールド３８を解釈し、最小不正データ検出・カウント値を変更するコマンドであれば、Ｓ３９で装置内に格納している最小不正データ検出・カウント値を変更できるようにしてもよい。この場合には、当事者しか分からないようなコマンドにしたり、あるいは暗証番号による認証や署名検証することで、セキュリティを確保した方が望ましい。また、受信したデータフィールド１１のデータを暗号処理（あるいは復号処理または署名処理）する場合には、受信データを全て暗号処理してから制御手段２にて解読しても、暗号処理しながら解読するようにしてもよく、特に限定しない。
【００３１】
以上のように、不正データ検出・カウント手段を備えたので、システムの重要度に応じて容易に不正アクセスを検出できる効果がある。
【００３２】
実施の形態２．
以下、本発明の概念（Ｂ）である攻撃者に意図的に誤り情報を与える形態を実施の形態２として、図１及び図８を用いて説明する。
具体的なシステムとしては、駐車場システムがあり、図１（ａ）の暗号通信装置８が路側機としてある。これに対して、図の右側の交信先で、他の図示と同じ暗号通信装置８が車載器に相当する。また、図１（ａ）において、不正データ検出・カウント手段に換えて、不正終了検出・カウント手段４０を用いた構成となっている。その他の構成要素は、図１（ａ）に示す通りである。
駐車場システムは、車両の車種情報や車両が通過した時刻などの料金計算に必要な情報と、クレジットカード番号等の決済に必要な利用者の情報とを車両に装着されている車載器と料金所に設置されている路側機との間で無線通信することにより、料金所でも停止することなく車両の通行を可能とするシステムである。暗号通信装置８である路側機と、図示していないが、同様の構成を持つ車載器は、相互に認証するとともに、決済情報を含む様々なデータをやり取りするため、セキュリティの確保は必須である。
【００３３】
本実施の形態における動作フローは、図１（ｂ）に換えて例を図８（ａ），（ｂ）に示すものとなる。
動作としては、実施の形態１における動作とほぼ同様で、まず、車載器側の暗号通信装置８から制御手段２が実施の形態１で説明したＳ１ないしＳ４の処理を行って、図１（ａ）の路側機の暗号通信装置８に通信データ９を送信してくる。
一方、データ受信側となる路側機の暗号通信装置８では、図８（ａ）に示すように、装置全体を制御する制御手段２が、以下の手順でデータを処理する。
Ｓ２０：通信データ９を受信する。
Ｓ２１：通信データ９の不正データ検出を行う。
不正データが検出された場合には、不正終了（Ｓ４２）に進み、検出されない場合には、正常処理（Ｓ２３）に進む。ここで、Ｓ４２の不正終了処理とは、例えば、攻撃者へのエラー処理後の送信のことを指し、具体的にはデータ長不一致エラーや認証エラー、あるいは不正データエラーのようなレスポンス等を出力し、これに基づいて制御手段２により攻撃者へ意図的に誤り情報を返送する。さらには、後述するように、暗号生成・復号手段５の入力データとしてダミーデータを用いて処理したり、ダミー鍵を用いて処理した結果を攻撃者へ返送したり、あるいは復号処理（あるいは暗号処理または署名処理）をしないようにしたりしてもよい。
【００３４】
意図的なダミー情報と返送について説明する。
図９は、不正終了４２の具体的な例４２ａと４２ｂの動作を示す図である。
図９では、実施の形態１の検出結果に対しても、意図的な誤情報を送信できることも示しているので、不正データ検出・カウント手段６の出力値が最小不正データカウント値より大きい場合、あるいは不正終了検出・カウント手段４０の出力値が最小不正終了カウント値より大きい場合、あるいは後述のチャレンジデータ検出・カウント手段５０の出力値が最小チャレンジカウント値より大きい場合には、受信データ以外のダミーデータを用いて復号処理（あるいは暗号処理または署名処理）する動作も示している。
図９において、６０は不正終了検出・カウント手段４０の出力値と最小不正終了カウント値等を比較するステップ、６１はデータフィールド１１内のデータを用いて復号処理（あるいは暗号処理または署名処理）するステップ、６２はダミーデータを用いて復号処理するステップである。
【００３５】
動作は、以下のようになる。
まず、通信データ９を受信した後（Ｓ２０）、不正終了検出・カウント手段４０の出力値と最小不正終了カウント値等を比較し（Ｓ６０）、規定の最小不正終了カウント値以上等の場合には、異常として、データフィールド１１内のデータではなくダミーデータを用いて復号処理し（Ｓ６２）、不正終了検出・カウント手段４０の出力値が最小不正終了カウント値等より小さい場合には、正常であるとして、データフィールド１１内の正常データで復号処理する（Ｓ６１）。
なお、Ｓ６２の処理では、図９（ｂ）に示すように、暗号生成・復号手段５には正常データとは異なるダミーデータ６３を入力し、不揮発性メモリ３に格納している秘密鍵１２を用いて復号化データ１３を得て、それを攻撃者側に送信するようにしている。
【００３６】
ここで、ダミーデータについてもう少し詳細に説明する。
ダミーデータとは、攻撃者に対し、あたかも正常のデータを用いて復号処理（あるいは暗号処理または署名処理）しているようにみせかけるもので、例えば、正常な受信データを１バイトずらしたり、反転させたデータを使用したり、あるいは制御手段２内のメモリ内容そのものをダミーデータとしたりする。または、予めダミーデータを不揮発性メモリ３に格納しておき、上記データを使用したり、複数のダミーデータを切り替えたり、あるいは図示しないカウンタ手段の出力値をダミーデータとしてもよい。
さらに、上述した正常な受信データを１バイトずらしたものに、予め不揮発性メモリ３に格納しておいたダミーデータを排他的論理和演算してから最終的なダミーデータとしたり、様々な演算や加工を施してダミーデータとすることもできる。加えて、復号化データ１３自身をダミーデータとして使いまわしてもよい。
なお、更に、Ｓ６０の不正データを検出する場合には、３つの比較を全て実施したり、あるいはいずれかの一つにしたり、あるいはダミーデータとして乱数発生手段４の出力を用いたり適宜変更が可能である。
【００３７】
Ｓ４３では、不正終了の回数を計数して調査する不正終了検出・カウント手段４０が格納している最小不正終了カウント値と比較して調べて、Ｓ４２で検出した不正終了の回数が最小不正終了カウント値より大きい場合には、Ｓ４４の不正終了処理へ進み、最小不正終了カウント値が最小不正終了カウント値以下の場合には、Ｓ４５の未処理へ進む。ここで、Ｓ４５の未処理とは、通信データ９の受信待機状態にもどることを意味している。
Ｓ４４の不正終了処理（情報資産保護の処理）では、不正終了回数が所定の値を超えたため、不揮発性メモリ３内の秘密情報を消去したり、暗号通信装置８が使用できないようにブロックしたり、あるいは特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等、情報資産に応じて暗号通信装置内で記憶する秘密情報に対する外部からの読み取りを制限する処理を実施する。これは、受信側のブロックである。
【００３８】
本実施の形態においては、通信トランザクションが不正に終了した回数を計数する不正終了検出・カウント手段と、これに基づいて攻撃者に意図的な誤り情報を流す制御手段とを備えたので、攻撃者のデータ解読を困難にするという耐タンパ性に優れた暗号通信装置が得られる。
【００３９】
なお、この実施の形態においても種々の変更が可能で、例えば、実施の形態１で述べたような内容の適用や種々の変更が可能である。さらに、実施の形態１と実施の形態２を組み合わせることも可能である。また、図８（ｂ）に示すように動作させることも可能である。即ち、通信データ９を受信した後、不正データか否かをＳ２１で検出し、不正データであれば、さらに、不正終了検出・カウント手段４０の出力値が最小不正終了カウント値より大きい場合にはＳ４４の不正終了処理へ進み、最小不正終了カウント値が最小不正終了カウント値以下の場合には、Ｓ４２の不正終了へ進むようにしてもよい。
【００４０】
また、上述した例では、アプリケーションＩＤを解読することで不正データかどうかを区別したが、検証できるデータであれば特に限定しない。例えば、レングスフィールド１０の値を暗号化データの中に格納してチェックしたり、一方向性関数を用いた認証子や署名データ、あるいは相互の乱数や読み出すレコード番号の値など特に規定しない。
いずれにしても、認証データや更新データのやり取り等を示す一連の通信トランザクションが正常に終了していない回数を計数し、予め格納している許容回数以上かどうかを判定する比較手段を有していれば、種々の変更が可能である。例えば、通信トランザクションが３回正常に終了した場合には、不正終了検出・カウント手段４０を初期化するようにしてもよい。
【００４１】
以上のように、不正終了を行って、装置として攻撃者にダミーデータを返送するので、攻撃者によるデータ解読を困難にする効果がある。
【００４２】
実施の形態３．
以下、本発明の概念（Ａ）の不正侵入の限定された形態を実施の形態３として、図１（ａ）と図１０を用いて説明する。
本実施の形態では、同一通信トランザクション内（認証データや更新データのやり取り等を示す一連の通信トランザクションを指す）で認証用のチャレンジデータ（例えば、乱数、ある規定値のハッシュ値、カウンタ値、時刻、あるいは暗証番号等）の受信回数を検出し、規定値と比較するチャレンジデータ検出・カウント手段とを備えた構成としている。即ち、図１（ａ）において、不正データ検出・カウント手段に換えて５０のチャレンジデータ検出・カウント手段を設けており、その他の要素は、図１（ａ）の通りである。
【００４３】
次に、動作について、図１０の動作フローを用いて説明する。
Ｓ３３のスタートから始まり、通信データ９を受信した後（Ｓ２０）、通信データ９を解釈し、認証用のチャレンジデータであれば、上記チャレンジデータの受信回数をチャレンジデータ検出・カウント手段５０で計数する（Ｓ５２）。
そもそもチャレンジデータ受信回数が異常に多いことは、相手が攻撃者である可能性が高いことを示している。従って、チャレンジデータ検出・カウント手段５０の検出回数出力値と予め装置内に記憶されている最小チャレンジカウント値をＳ５３で比較し、規定最小チャレンジカウント値より小さければＳ２３の正常処理に進み、最小チャレンジカウント値以上であればＳ４４の不正終了処理に進む。
ここで、最小チャレンジカウント値とは、一連の通信トランザクションにおけるチャレンジデータの受信許容回数を示しており、守るべき情報資産に応じた強度と考えてもよい。例えば、重要な情報資産であれば２程度、通常の情報資産であれば５程度を設定しておき、攻撃者による不正なチャレンジデータ攻撃（複数のチャレンジデータを送りつけ、秘密情報を用いた処理状態の観測等）にして対策を施している。
即ち、Ｓ４４の不正終了処理では、不揮発性メモリ３内の秘密情報を消去したり、暗号通信装置８が使用できないようにブロックしたり、あるいは特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等の情報資産に応じた処理を実施し、Ｓ２３の正常処理後は、一連の通信トランザクションが終了したかどうかを判定し（Ｓ３５）、終了していればＳ３７の正常終了へ進み、トランザクションが終了していない場合には、再び、通信データ９を受信する（Ｓ２０）。
更に、実施の形態２のように、攻撃者へ意図的に誤り情報を流す。
【００４４】
以上のように、同一通信トランザクション内で認証用チャレンジデータの受信回数を計数し、規定値と比較するチャレンジデータ検出・カウント手段を備えた構成にしたので、耐タンパ性に優れた装置を得ることができる。
【００４５】
なお、この実施の形態においても、実施の形態１や２で述べたような内容の適用や種々の変更が可能である。例えば、図６に示したように、Ｓ３５とＳ３７の間にチャレンジデータ検出・カウント手段５０を初期化するようなステップを挿入したり、実施の形態１や実施の形態２と本実施の形態３を組み合わせて構成してもよい。
また、通信データ受信（Ｓ２０）後に、データフィールド１１の内容がチャレンジデータであるかどうかを判定する手段を設けたり、不正データか否かを判定する手段を設けたりすることも可能である。
【００４６】
以上のように、チャレンジデータ検出・カウント手段を備えたので、執拗な攻撃者によるアクセスを早期に、容易に検出できる効果がある。
【００４７】
実施の形態４．
以下、本発明の概念（Ｂ）の他の例と、概念（Ｃ）である返送情報フローの内容を複雑にする形態を実施の形態として、図１１，１２を用いて説明する。
図１１のフローは、概念（Ｂ）の改良例であり、正常な秘密鍵１２の代わりにダミー鍵を用いるようにしたものである。
図において、７０は正常な秘密鍵１２を用いて復号処理するステップ、７１はダミー鍵７２を用いて復号処理するステップである。
次に、動作について説明する。
まず、Ｓ２０の通信データ９を受信した後、Ｓ６０で不正データか否かを判定し、不正データを検出した場合、データフィールド１１内の正常データとダミー鍵７２を用いて復号処理し、正常なデータであればデータフィールド１１内の正常データを復号処理する。
【００４８】
ここで、ダミー鍵７２についてもう少し詳細に説明する。
ダミー鍵７２としては、例えば、正常な鍵の値に所定の値を加算したり、シフトさせた値を使用したり、あるいは制御手段２内のメモリ内容やプログラムカウンタの値をダミー鍵７２としたりしてもよい。また、予めダミー鍵７２を不揮発性メモリ３に格納しておき、このダミー鍵７２を使用したり、複数のダミー鍵７２を切り替えたり、様々な演算や加工を施してしてダミー鍵７２とすることができる。いずれにしてもダミー鍵７２は、正常な鍵と異なる鍵であればよい。
【００４９】
以上のように、不正データを検出した場合には、不揮発性メモリ３内に格納している暗号生成・復号手段５用の鍵以外のダミー鍵７２を用いて復号処理（あるいは暗号処理または署名処理）し、攻撃者に送信するので、より耐タンパ性に優れた暗号通信装置が得られる。
なお、この実施の形態においても、実施の形態１〜３で述べたような内容の適用、種々の変更や組み合わせが可能である。例えば、ダミー鍵７２として乱数発生手段４の出力値を用いるようにしてもよい。
【００５０】
図１３は、本実施の形態における本発明の概念（Ｃ）を適用する場合を説明するための図である。
装置構成は、図１（ａ）において、乱数発生手段に換えて乱数発生及び順序設定手段４Ｂとしたものである。この場合の暗号通信装置８は、例えば、自動販売機システムに適用可能であり、図１の暗号通信装置８が自動販売機、図示していない右側の交信相手の暗号通信装置８が携帯電話に相当する。
また、図１３（ａ），（ｂ）は、通信データ９におけるデータフィールド１１の構成を示した図である。
本実施の形態において、概念（Ｃ）の情報フローの複雑化は、具体的には、予め正常送信者には既知の逆転したデータ順序を返送し、照合しようとするものである。
【００５１】
自動販売機システムは、現金を使用せずに携帯電話を用いた自動販売機の利用が可能となるもので、両者の相互認証後に携帯電話が所望の商品に対応する番号を自動販売機に送信すると、自動販売機では商品を出力すると共に、決済センターに対し、携帯電話の個別番号やクレジットカード番号等、決済に必要な利用者の情報（携帯情報）を送信することで、課金されるシステムである。本実施の形態においても、決済情報を含む様々なデータをやり取りするため、セキュリティの確保は必須である。
【００５２】
次に、動作について、特に本発明のポイントである認証フローについて簡単に説明する。
図示していない図１（ａ）右側の交信相手である携帯電話側の暗号通信装置８は、乱数発生手段４用いて乱数Ｒ１を生成する。次に、図１３（ａ）に示すように、装置内に存在するアプリケーションＩＤと上記乱数Ｒ１及び携帯情報を順番に連結し、この連結データを秘密鍵１２で暗号化して、図１（ａ）に示す自動販売機側の暗号通信装置８に送信する。
図示の自動販売機側の暗号通信装置８は、受信した通信データ９を秘密鍵１２で復号処理後、規定のアプリケーションＩＤと携帯情報が存在する場合には、証明者側を認証すると共に、図１３（ｂ）に示すように、例えば、乱数、次いで携帯情報、更に、アプリケーションＩＤと順番を変更してから秘密鍵１２で暗号化し、携帯電話側の暗号通信装置８に送信する。
図示していない携帯電話側の暗号通信装置８は、受信した通信データ９を秘密鍵１２で復号化し、既知の逆転順序（図１３（ａ））に戻して後、受信したアプリケーションＩＤ、乱数Ｒ１と携帯情報の順番と内容が所定通りであるかどうかを確認する。もし一致していれば、自動販売機を認証したことになる。
【００５３】
本実施の形態においては、正常データ受信時にはデータフィールド内の認証データ順を異ならせてデータ送信するようにしたので、情報フローが複雑になると共に、攻撃者には情報を漏れにくくするという耐タンパ性に優れた暗号通信装置が得られる。
なお、この実施の形態においても、種々の変更が可能で、例えば、実施の形態１から実施の形態３で述べたような内容の適用や種々の変更が可能である。さらに、実施の形態１から実施の形態３を組み合わせることも可能である。また、上述した例では、アプリケーションＩＤ等の順番を変更するように説明したが、特に限定するものではなく、また、認証フローにおいても適宜変更が可能である。
また、上記実施の形態においては、順序設定手段を乱数発生手段４と兼用化するようにしたが、制御手段２で実施するようにしてもよいことはいうまでもない。
【００５４】
以上のように、特定データに対しては返送時に予め取り決めた順序に変更して送るので、比較的簡易に攻撃者によるデータ解読を困難にする効果がある。
【図面の簡単な説明】
【００５５】
【図１】この発明の実施の形態１における暗号通信装置の構成と動作を示す図である。
【図２】実施の形態１における暗号通信装置の他の動作を示す図である。
【図３】実施の形態１における暗号通信装置間の通信データの例を示す図である。
【図４】実施の形態１における暗号通信装置の暗号生成・復号手段が行う動作を示すフロー図である。
【図５】実施の形態１における暗号通信装置が行う他の動作を示すフロー図である。
【図６】実施の形態１における暗号通信装置が行う不正データ検出・カウント手段の初期化動作フロー図である。
【図７】実施の形態１における暗号通信装置へのシステムによる不正データ検出・カウント手段への検出基準値の変更指示動作フロー図である。
【図８】この発明の実施の形態２における暗号通信装置が行う動作を示すフロー図である。
【図９】図８の不正終了における詳細動作フローの例を示す図である。
【図１０】この発明の実施の形態３における暗号通信装置が行う動作を示すフロー図である。
【図１１】この発明の実施の形態４における暗号通信装置が行う動作を示すフロー図である。
【図１２】実施の形態４における暗号通信装置が行う動作を示すフロー図である。
【図１３】実施の形態４における他の暗号通信装置が行う動作を示すフロー図である。
【符号の説明】
【００５６】
１  通信手段、２  制御手段、３  不揮発メモリ、４  乱数発生（及び４Ｂは順序設定）手段、５  暗号生成・復号手段、６  不正データ検出・カウント手段、８  暗号通信装置、９  通信データ、１０  レングス・フィールド、１１  データ・フィールド、２１  受信データの不正検出ステップ、２２  不正データ受信回数係数ステップ、２４  不正データ受信回数の設定値との比較ステップ、３０  (データ)レングス値の基準値との比較ステップ、３１  (データ)フィールド値の基準値との比較ステップ、３２  不正データの検出ステップ、４０  不正終了検出・カウント手段、４２  不正終了ステップ、４４  不正終了処理ステップ、５０  チャレンジデータ検出・カウント手段。
【図１】
2007129783.tif 000003
【図２】
2007129783.tif 000004
【図３】
2007129783.tif 000005
【図４】
2007129783.tif 000006
【図５】
2007129783.tif 000007
【図６】
2007129783.tif 000008
【図７】
2007129783.tif 000009
【図８】
2007129783.tif 000010
【図９】
2007129783.tif 000011
【図１０】
2007129783.tif 000012
【図１１】
2007129783.tif 000013
【図１２】
2007129783.tif 000014
【図１３】
2007129783.tif 000015