(57)【要約】【課題】データ変換装置において、マスク値の更新回数を減らしつつセキュリティ性を確保することにある。【解決手段】Ｓ層変換（ＳｕｂＢｙｔｅｓ）に係るマスク値Ｍ１，Ｍ２と、Ｐ層変換（ＳｈｉｆｔＲｏｗｓ及びＭｉｘＣｏｌｕｍｎｓ）に係るマスク値Ｍ３とを独立して更新することができる。例えば、マスク値Ｍ３は、マスク値Ｍ２とＸＯＲされたマスク値Ｍ４として使用される。このマスク値Ｍ３は、マスク値Ｍ１，Ｍ２より高い頻度で更新される。Ｐ層変換においては、Ｓ層変換に比して、同一のデータ（サブバイトＳ０〜Ｓ１５）がより多く読み出されるものの、高頻度でマスク値Ｍ３が更新されることで、通信のセキュリティ性が確保される。また、マスク値Ｍ３のみを更新可能とすることで、マスク値Ｍ１，Ｍ２の更新回数を減らすことができ、その更新に要する消費電力を低減することができる。【選択図】図３
2013105100.tif 000002
【特許請求の範囲】
【請求項１】
入力データを、記憶装置から読み込んだデータを利用して変換する第１の変換及び第２の変換を経て暗号化するとともに、前記第２の変換は前記第１の変換より多く同一のデータを読み出すデータ変換装置において、
前記第１の変換前のデータと第１のマスク値との排他論理和の演算結果を前記第１の変換の変換対象とし、
前記第１の変換後かつ前記第２の変換前のデータと第２のマスク値との排他論理和の演算結果を前記第２の変換の変換対象とし、
前記第２のマスク値を前記第１のマスク値より高い頻度で更新するデータ変換装置。
【請求項２】
請求項１に記載のデータ変換装置において、
前記第１の変換であるＳｕｂＢｙｔｅｓと、前記第２の変換であるＳｈｉｆｔＲｏｗｓ及びＭｉｘＣｏｌｕｍｎｓとを順に行うＡＥＳ暗号方式を採用するデータ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データの暗号化処理を行うデータ変換装置に関する。
【背景技術】
【０００２】
従来、通信機器間の無線通信において、通信のセキュリティ性を確保するために、暗号化通信が一般的に行われている。
ここで、通信機器が暗号化処理を行う際の消費電流等から暗号化途中の中間値を不正に取得する、いわゆるサイドチャンネル攻撃が懸念されている。これを防ぐ方法の一つとして、マスク演算手法が提案されている（例えば、特許文献１参照）。これは、本来のデータにマスク値をＸＯＲ（排他論理和）することで、暗号処理時の消費電流と、本来のデータとの相関を薄め、上記サイドチャンネル攻撃を通じた本来のデータの取得を困難にする方法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−６１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１においては、ＡＥＳ（Advanced  Encryption  Standard）と呼ばれる共通暗号方式が採用されている。ＡＥＳ暗号方式では、入力データはＳ層変換及びＰ層変換される。Ｓ層変換とはＳｕｂＢｙｔｅｓ（バイト置換）によるデータ変換をいい、Ｐ層変換とは、ＳｈｉｆｔＲｏｗｓ（行シフト）及びＭｉｘＣｏｌｕｍｎｓ（列ミックス）によるデータ変換をいう。
【０００５】
上記特許文献１に記載の構成においては、入力データにマスク値をＸＯＲ（排他論理和）した後に、Ｓ（Substitution）層変換及びＰ（Permutation）層変換を行う。ここで、Ｓ層変換は非線形変換であって、Ｐ層変換は線形変換である。
【０００６】
詳しくは、図６（ａ）に示すように、線形変換において、第１の入力は「データＡ  ＸＯＲ  マスク値Ｍａ」であって、第２の入力は「データＢ  ＸＯＲ  マスク値Ｍｂ」であるとする。本例では、第１の出力は、第１及び第２の入力がＸＯＲされた値、すなわち「データＡ  ＸＯＲ  データＢ  ＸＯＲ  マスク値Ｍａ  ＸＯＲ  マスク値Ｍｂ」となる。また、第２の出力は、第２の入力と同一の「データＢ  ＸＯＲ  マスク値Ｍｂ」となる。よって、第１の出力のマスク値は「マスク値Ｍａ  ＸＯＲ  マスク値Ｍｂ」となって、第１の出力のマスク値はＭｂとなる。このように、線形変換前のマスク値Ｍａ，Ｍｂから線形変換後のマスク値を算出することができる。よって、Ｐ層変換（線形変換）におけるマスク値の更新は容易である。
【０００７】
一方、図６（ｂ）に示すように、非線形変換においては、入力「データＡ  ＸＯＲ  マスク値Ｍａ」の場合にマスク値Ｍａを更新すると、何らかの出力は得られるものの、その出力のマスク値を算出することができない。よって、マスク値を更新する際には、非線形変換後のマスク値を所望の値（例えばマスク値Ｍｂ）とするべく、非線形変換に係る変換テーブルを生成し直す必要がある。よって、Ｓ層変換（非線形変換）におけるマスク値の更新はＰ層変換と比較して処理負担が大きい。
【０００８】
また、Ｐ層変換においては、同一データの参照頻度が高い。具体的には、Ｐ層変換においては、ＳｈｉｆｔＲｏｗｓ（行シフト）及びＭｉｘＣｏｌｕｍｎｓ（列ミックス）と呼ばれる処理が実行される。図７には、ＭｉｘＣｏｌｕｍｎｓの処理が行列式の乗算として示されている。サブバイトＳ０〜Ｓ１５は、Ｓ層変換におけるＳｕｂＢｙｔｅｓ（バイト置換）において生成されるものであって、ＳｈｉｆｔＲｏｗｓ（行シフト）によって、サブバイトＳ０〜Ｓ１５の昇降順が並び替えられている。
【０００９】
この行列式の乗算においては、各サブバイトＳ０〜Ｓ１５が４回ずつ読み出される。また、サブバイトＳ０〜Ｓ１５に乗算される行列には１のみならず、２又は３が設定されている。よって、この行列式を計算するときには、各サブバイトＳ０〜Ｓ１５を２倍又は３倍する必要があるため、さらにサブバイトＳ０〜Ｓ１５の読み出し回数が増大する。
【００１０】
サブバイトＳ０〜Ｓ１５の読み出し回数が多いと、消費電流と情報との相関を導出しやすく、上記サイドチャンネル攻撃を通じた不正なデータ取得を防止できないおそれがある。よって、Ｐ層変換に係るマスク値の更新は、Ｓ層変換に係るマスク値に比べて頻繁に行うことが望ましい。しかし、上記特許文献１に記載の構成においては、Ｐ層変換及びＳ層変換において共通のマスク値が使用されていた。従って、Ｐ層変換及びＳ層変換に係るマスク値の更新は同時に行われていた。例えば、Ｐ層変換に合わせた頻度でマスク値を更新すると、Ｓ層変換に関してはマスク値の更新が過剰となって、上述のように処理負担が問題となる。逆に、Ｓ層変換に合わせた頻度でマスク値を更新すると、Ｐ層変換に関してセキュリティ性を十分に確保できないおそれがある。
【００１１】
この発明は、こうした実情に鑑みてなされたものであり、その目的は、マスク値の更新回数を減らしつつセキュリティ性を確保したデータ変換装置を提供することにある。
【課題を解決するための手段】
【００１２】
以下、上記目的を達成するための手段及びその作用効果について説明する。
請求項１に記載の発明は、入力データを、記憶装置から読み込んだデータを利用して変換する第１の変換及び第２の変換を経て暗号化するとともに、前記第２の変換は前記第１の変換より多く同一のデータを読み出すデータ変換装置において、前記第１の変換前のデータと第１のマスク値との排他論理和の演算結果を前記第１の変換の変換対象とし、前記第１の変換後かつ前記第２の変換前のデータと第２のマスク値との排他論理和の演算結果を前記第２の変換の変換対象とし、前記第２のマスク値を前記第１のマスク値より高い頻度で更新することをその要旨としている。
【００１３】
同構成によれば、第１のマスク値と、第２のマスク値とを独立して更新することができる。また、第２のマスク値は、第１のマスク値より高い頻度で更新される。第２の変換においては、第１の変換に比して、同一のデータがより多く読み出されるため、セキュリティ性の低下が懸念されるものの、高頻度で第２のマスク値が更新されることでセキュリティ性が確保される。また、第２のマスク値のみを更新可能とすることで、第１のマスク値の更新回数を減らすことができる。
【００１４】
請求項２に記載の発明は、請求項１に記載のデータ変換装置において、前記第１の変換であるＳｕｂＢｙｔｅｓと、前記第２の変換であるＳｈｉｆｔＲｏｗｓ及びＭｉｘＣｏｌｕｍｎｓとを順に行うＡＥＳ暗号方式を採用することをその要旨としている。
【００１５】
同構成によれば、暗号方式として、ＡＥＳ暗号方式（Advanced  Encryption  Standard）が採用されている。この方式においても、マスク値の更新回数を減らしつつ通信のセキュリティ性を確保することができる。
【発明の効果】
【００１６】
本発明によれば、データ変換装置において、マスク値の更新回数を減らしつつセキュリティ性を確保することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態における電子キーシステムの構成を示すブロック図。
【図２】本発明の一実施形態における電子キーと車載機との相互認証手順を示す動作シーケンス図。
【図３】本発明の一実施形態におけるＡＥＳ暗号化処理の手順を示すフローチャート。
【図４】本発明の一実施形態におけるＡＥＳ暗号化処理におけるＲｏｕｎｄＦｕｎｃｔｉｏｎの処理手順を示すフローチャート。
【図５】本発明の一実施形態におけるＡＥＳ暗号化処理におけるＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎの処理手順を示すフローチャート。
【図６】背景技術における（ａ）線形変換（Ｐ層変換）における入出力を示す関係図、（ｂ）非線形変換（Ｓ層変換）における入出力を示す関係図。
【図７】背景技術におけるＰ層変換を示した行列式。
【発明を実施するための形態】
【００１８】
以下、本発明を車両の電子キーシステムに具体化した一実施形態を図１〜図５を参照しつつ説明する。この電子キーシステムは、ユーザにより所持される電子キーと車両との間の無線通信を通じてドアの施解錠及びエンジンの始動を行うものである。
【００１９】
＜電子キーシステムの概要＞
まず、電子キーシステムの概要を説明する。図１に示すように、電子キーシステム１１は、ユーザに所持される電子キー１２と、車両１０に搭載される車載機１３とを備えてなる。
【００２０】
電子キー１２の制御回路２１には、ＬＦ帯の無線信号を受信するＬＦ受信回路２２と、当該制御回路２１からの指令に従いＵＨＦ帯の無線信号を送信するＵＨＦ送信回路２３とが接続されている。ＬＦ受信回路２２は、受信したＬＦ信号を復調するとともに、その復調後の信号を受信データとして制御回路２１に出力する。また、ＵＨＦ送信回路２３は、制御回路２１からの指令に従い、電子キーに固有の識別コードを乗せたＵＨＦ帯の応答信号Ｓｒｅｐを送信する。
【００２１】
車載機１３は、電子キー１２との間の相互無線通信を通じて当該電子キー１２の妥当性を判断する照合制御装置３１を備えてなる。この照合制御装置３１には、車室外へＬＦ帯の無線信号を送信する車室外ＬＦ送信機３２と、車室内へＬＦ帯の無線信号を送信する車室内ＬＦ送信機３３と、ＵＨＦ帯の無線信号を受信するＵＨＦ受信機３４とが接続されている。また、照合制御装置３１には、ドア錠を施解錠するべくドアロックモータＭを駆動制御するドア制御装置３５と、ユーザによるプッシュスイッチＳＷの操作に応じて車両１０の電源位置を切換制御する電源制御装置３６と、エンジンＥの駆動制御を行うエンジン制御装置３７とが、バス（多重通信線）Ｂを介して接続されている。
【００２２】
照合制御装置３１は、エンジンＥが停止状態且つドアが施錠状態である車両１０の駐車状態において、電子キー１２に応答を要求する車室外照合用のＬＦ帯の応答要求信号Ｓｒｅｑを所定の制御周期で車室外ＬＦ送信機３２を通じて車室外に送信する。これにより、車両１０のドアの周辺には、電子キー１２の図示しない検知領域が形成される。そして、ユーザが電子キー１２を所持して車両１０に接近して前記検知領域内に入ると、電子キー１２の制御回路２１は、応答要求信号Ｓｒｅｑを受けて自身の記憶装置２１ａに記憶された識別コードを含む応答信号Ｓｒｅｐを、ＵＨＦ送信回路２３を通じて送信する。
【００２３】
照合制御装置３１は、ＵＨＦ受信機３４を通じて電子キー１２からの応答信号Ｓｒｅｐを受信すると、当該応答信号Ｓｒｅｐに含まれる電子キー１２に固有の識別コードと、自身の記憶装置３１ａに記憶された識別コードとを比較する車室外照合を行う。そして、照合制御装置３１は、この車室外照合が成立した場合には、図示しないドアハンドルノブに内蔵されたタッチセンサを起動し、当該センサを通じてユーザによるドアハンドルノブのタッチ操作を検出すると、ドア制御装置３５にドアアンロック要求信号を出力する。ドア制御装置３５は、照合制御装置３１からのドアアンロック要求信号を受けて、ドアロックモータＭを駆動して車両１０のドアを解錠する。
【００２４】
この後、電子キー１２を所持するユーザが車両１０に乗り込んだとき、ドア制御装置３５は図示しないカーテシスイッチを通じてこれを検出して当該検出信号を照合制御装置３１へ出力する。照合制御装置３１は、ドア制御装置３５からユーザが乗車した旨を示す検出信号が入力されると、車室内ＬＦ送信機３３を通じて車室内照合用の応答要求信号Ｓｒｅｑを送信する。これにより、車室内に電子キー１２の検知領域が形成される。電子キー１２の制御回路２１は、前記検知領域内に入って、ＬＦ受信回路２２を通じて車室内照合用の応答要求信号Ｓｒｅｑを受信すると、ＵＨＦ送信回路２３を通じて識別コードを含む応答信号Ｓｒｅｐを送信する。照合制御装置３１は、ＵＨＦ受信機３４を通じて電子キー１２からの応答信号Ｓｒｅｐを受信すると、当該応答信号Ｓｒｅｐに含まれる電子キー１２に固有の識別コードと、自身の記憶装置３１ａに記憶された識別コードとを比較する車室内照合を行う。そして、照合制御装置３１は、この車室外照合の照合結果を記憶装置３１ａに記憶し、当該照合結果を各種の車載システムの実行機能に応じてこれらシステムの制御装置、例えば電源制御装置３６及びエンジン制御装置３７へ送信する。
【００２５】
電源制御装置３６は、シフトレバーが駐車位置に保持されるとともに、図示しないブレーキペダルが踏み込まれた状態で、プッシュスイッチＳＷがオン操作された旨検出すると、照合制御装置３１に対して車室内照合の照合結果を確認する。電源制御装置３６は、照合制御装置３１を通じて取得した車室内照合の照合結果が照合成立を示すものであった場合には、図示しないアクセサリリレー及びイグニッションリレーをオン動作させて、車両１０の各部に動作電力を供給する。
【００２６】
そして、電源制御装置３６は、エンジンＥの始動を要求する始動要求信号を、バスＢを通じてエンジン制御装置３７へ出力する。エンジン制御装置３７は、電源制御装置３６からの始動要求信号を受けると、照合制御装置３１に対して車室内照合の照合結果を確認するとともに、互いが対を成す制御装置同士であるか否かの確認（ペアリング）を行う。エンジン制御装置３７は、車室内照合及びペアリングの双方が成立している場合にのみ、エンジンＥを始動させる。
【００２７】
そして、ユーザが降車するべくプッシュスイッチＳＷの操作を通じてエンジンＥを停止した後に、解錠状態のドアを開けて車室外に出て、前記ドアハンドルノブに設けられる図示しないロックスイッチをオン操作した場合には、これが照合制御装置３１により検出される。すると、照合制御装置３１は、車室外ＬＦ送信機３２を通じて車室外照合用の検知領域を再度形成して車室外照合を行い、当該車室外照合が成立したときには、ドアロック要求信号をドア制御装置３５へ出力する。ドア制御装置３５は、照合制御装置３１からのドアロック要求信号を受けると、ドアロックモータＭを駆動してドアを施錠する。
【００２８】
＜電子キー及び車載機の相互認証＞
ここで、前述した電子キーシステム１１においては、電子キー１２と車載機１３との相互認証が無線通信により行われることから、これら電子キー１２と車載機１３との間で送受信される情報（電子キー１２に固有の識別情報等）が傍受され、この情報を使用して車両１０が不正に使用されることが特に懸念される。このため、電子キー１２と車載機１３との間では、これらの間で授受する情報を所定の暗号アルゴリズムにより暗号化して送受信する暗号化通信を利用した認証が行われる。
【００２９】
本実施形態では、認証を実施する装置間、すなわち電子キー１２と車載機との間で互いに共通の暗号鍵を持ち合い、乱数データ（チャレンジコード）を暗号鍵で暗号化した結果を交換することにより認証を行う、いわゆるチャレンジ・レスポンス認証方式が採用されている。
【００３０】
以下、電子キーシステム１１におけるチャレンジ・レスポンス認証方式の暗号化通信について、図２に示される動作シーケンスに従って説明する。なお、ここでは、乗車時等に行われる車室外照合が行われるものとする。また、車載機１３と電子キー１２とは、同じ暗号鍵Ｋを持っている。
【００３１】
車両１０の駐車状態にあっては、車載機１３は、応答要求信号Ｓｒｅｑとして、電子キー１２を起動させるＷＡＫＥコードを含む起動信号Ｓｗａｋｅを所定の制御周期で送信する。これにより、車両１０のドアの周辺には、電子キー１２の検知領域が形成される。
【００３２】
そして、ユーザが電子キー１２を携帯して前記検知領域に入った際、当該電子キー１２が車両１０からの起動信号Ｓｗａｋｅを受信すると、当該電子キー１２は、まず起動信号Ｓｗａｋｅに含まれるＷＡＫＥコードの妥当性、すなわち、当該ＷＡＫＥコードが登録された正規の信号パターンかどうかを判定する。次に、電子キー１２は、前記ＷＡＫＥコードが正規の信号パターンである旨判定したときには、自身の動作が安定するのを待って、正常に認識した旨の応答信号であるＡＣＫ信号Ｓａｃｋを車両側へ返信する。
【００３３】
車載機１３は、電子キー１２からのＡＣＫ信号Ｓａｃｋを受信することにより、電子キー１２が前記検知領域内にあると判断し、登録された自身の車両コードを含む車両識別信号Ｓｃａｒを発信する。
【００３４】
そして、電子キー１２は、車載機１３からの車両識別信号Ｓｃａｒを受信すると、それに含まれる車両コードと自身に登録された車両コードとの照合を行う。そして、その照合が成立した場合には、電子キー１２は、ＵＨＦ送信回路２３を通じてＡＣＫ信号Ｓａｃｋを車両側へ再び返信する。
【００３５】
＜チャレンジ・レスポンス認証＞
車載機１３は、電子キー１２からのＡＣＫ信号Ｓａｃｋを再度受信すると、電子キー１２との間でチャレンジ・レスポンス認証を行う。
【００３６】
＜Ｓ−１＞
すなわち、車載機１３は、自身の内部乱数生成器３１ｂを通じて乱数を生成し、この乱数を電子キー１２に対するチャレンジコードＲａとする。そして、車載機１３は、このチャレンジコードＲａに特定の識別コードを付加した情報を含む認証信号Ｓｃｈａを送信する。ここで、チャレンジコードＲａは、１２８ビットの情報量を有してなる。また、識別コードは、当該車載機１３に予め登録された電子キー１２に固有の情報である。
【００３７】
＜Ｓ−２＞
電子キー１２は、車載機１３からの認証信号Ｓｃｈａを受信すると、これに含まれる識別コードと自身に登録された識別コードとの照合を行う。電子キー１２は、当該照合が成立した場合には、自身の識別コードが当該車両１０に登録されたコードである旨判断する。そして、電子キー１２は、受信した認証信号Ｓｃｈａに含まれるチャレンジコードＲａを自分の持つ暗号鍵Ｋにより暗号化する。この暗号化結果をＥＫ（Ｒａ）と示す。また、電子キー１２は、自身の内部乱数生成器２１ｂを通じて、車載機１３に対するチャレンジコードＲｂとして乱数を生成する。そして、電子キー１２は、これら暗号化結果ＥＫ（Ｒａ）及びチャレンジコードＲｂを含む暗号化信号Ｓｃｉｐ−ｋｅｙを車載機１３に送信する。
【００３８】
＜Ｓ−３＞
車載機１３では、自らが生成したチャレンジコードＲａを自分の持つ暗号鍵Ｋで暗号化した結果と、受信した暗号化信号Ｓｃｉｐ−ｋｅｙに含まれる暗号化結果ＥＫ（Ｒａ）とを比較し、その値が一致すれば電子キー１２が正常に認証されたと判断する。また、車載機１３は、受信した暗号化信号Ｓｃｉｐ−ｋｅｙに含まれるチャレンジコードＲｂを自分の持つ暗号鍵Ｋにより暗号化し、その暗号化結果を含む暗号化信号Ｓｃｉｐ−ｃａｒを電子キー１２に送信する。なお、チャレンジコードＲｂの暗号化結果をＥＫ（Ｒｂ）と示す。
【００３９】
＜Ｓ−４＞
電子キー１２では、自らが生成したチャレンジコードＲｂを自分の持つ暗号鍵Ｋで暗号化した結果と、受信した暗号化信号Ｓｃｉｐ−ｃａｒに含まれる暗号化結果ＥＫ（Ｒｂ）とを比較し、その値が一致すれば車載機１３が正常に認証されたと判断する。
【００４０】
以上で、車載機１３と電子キー１２との間のチャレンジ・レスポンス認証は完了となる。そして、このチャレンジ・レスポンス認証が完了、すなわち前記＜Ｓ−４＞において、電子キー１２が車載機１３を正常に認証した場合には、電子キー１２は、前記応答信号Ｓｒｅｐとして、自身に固有の識別コードを含む識別信号Ｓｉｄを車載機１３に送信する。車載機１３は、電子キー１２からの識別信号Ｓｉｄに含まれる識別コードと自身に登録された識別コードとの照合を行い、当該照合が成立したことをもって電子キー１２との間の車室外照合が成立した旨判断する。この後、車両のドアが解錠されて、電子キー１２を所持するユーザが乗車した際には、前述した車室外照合と同様にして車載機１３と電子キー１２との相互認証を行うべく車室内照合が行われる。
【００４１】
＜ＡＥＳ暗号化処理＞
本実施形態では、前述したチャレンジ・レスポンス認証方式の暗号化通信における暗号化方式として、ＡＥＳ（Advanced  Encryption  Standard）暗号方式を採用している。また、上記背景技術で説明したサイドチャンネル攻撃を通じた暗号化処理の途中の中間値の漏洩を防ぐべく、この中間値にマスク値がＸＯＲ（排他論理和）される。このマスク値は、マスク値がＸＯＲされたデータに対して、再び同一のマスク値をＸＯＲすることで外すことができる。
【００４２】
電子キー１２の記憶装置２１ａには、ＡＥＳ暗号方式を使用して車載機１３へ送信する情報を暗号化する処理を制御回路２１に実行させるためのデータ変換プログラムと、前記データ変換プログラムが実行された際に使用される暗号鍵Ｋと、暗号化処理の途中の中間値の漏洩を防止するためのマスク値Ｍ１〜Ｍ３とが記憶されている。
【００４３】
また、車載機１３の記憶装置３１ａには、ＡＥＳ暗号方式を使用して電子キー１２へ送信する情報を暗号化する処理を照合制御装置３１に実行させるためのデータ変換プログラムと、データ変換プログラムが実行された際に使用される暗号鍵Ｋと、暗号化処理の途中の中間値の漏洩を防止するためのマスク値Ｍ１〜Ｍ３とが記憶されている。マスク値は、後述するＳ層変換に係るマスク値Ｍ１，Ｍ２と、同じく後述するＰ層変換に係るマスク値Ｍ３とからなる。
【００４４】
制御回路２１又は照合制御装置３１は、マスク値Ｍ１，Ｍ２，Ｍ３を内部乱数生成器２１ｂ，３１ｂを通じて生成する。そして、制御回路２１又は照合制御装置３１は、マスク値Ｍ１，Ｍ２に基づき、上記背景技術において図６（ｂ）を参照しつつ説明したように、非線形変換に係る変換テーブルを算出し、そのテーブルをマスク値Ｍ１，Ｍ２，Ｍ３とともに記憶装置２１ａ，３１ａに記憶させる。制御回路２１又は照合制御装置３１は、例えば暗号化処理が終了したタイミングで、必要があればＳ層変換に係るマスク値Ｍ１，Ｍ２及びＰ層変換に係るマスク値Ｍ３を更新する。マスク値Ｍ３の更新頻度は、マスク値Ｍ１，Ｍ２のそれより高く設定される。
【００４５】
次に、前述したチャレンジ・レスポンス認証の実行中におけるＡＥＳ暗号方式による暗号化処理について、図３に示すフローチャートに従って詳細に説明する。このフローチャートは、チャレンジ・レスポンス認証の実行中において、暗号化されていない平文データであるチャレンジコードＲａ，Ｒｂを通信対象へ送信する場合に、電子キー１２の制御回路２１又は車載機１３の照合制御装置３１によって、上記記憶されたデータ変換プログラムに従い実行される。なお、当該暗号化処理は、電子キー１２と車載機１３とで同様の手順で実行されることから、ここでは、電子キー１２を例にとって説明する。
【００４６】
まず、制御回路２１は、平文データであるチャレンジコードＲａと、記憶装置２１ａに記憶されるマスク値Ｍ１とのＸＯＲをとる（Ｓ１０１）。これにより、データＡ１が生成される。
【００４７】
そして、制御回路２１は、自身の記憶装置２１ａに記憶される暗号鍵Ｋを使用してＲｏｕｎｄＫｅｙを生成する（Ｓ１０２）。すなわち、制御回路２１は、元の暗号鍵Ｋを特定の拡張アルゴリズムに従って拡張し、その拡張した鍵を平文データであるチャレンジコードＲａのデータ長（ここでは、１２８ビット）で順番に区切ることにより、ＡｄｄＲｏｕｎｄＫｅｙの回数分（「ラウンド数Ｎｒ＋１」回分）だけＲｏｕｎｄＫｅｙを生成する。そして、制御回路２１は、この生成した複数のＲｏｕｎｄＫｅｙを記憶装置２１ａ（正確には、その一時記憶領域）に記憶する。このＲｏｕｎｄＫｅｙは、後述のＡｄｄＲｏｕｎｄＫｅｙで使用される。
【００４８】
次に、制御回路２１は、チャレンジコードＲａをマスク値Ｍ１でマスクしたデータＡ１に対して、ＡｄｄＲｏｕｎｄＫｅｙを１回だけ行う（Ｓ１０３）。ＡｄｄＲｏｕｎｄＫｅｙとは、データＡ１とＲｏｕｎｄＫｅｙとのＸＯＲ（排他論理和）をとることをいう。ＸＯＲは、ビット単位で行われる。これにより、データＡ２が生成される。
【００４９】
＜ＲｏｕｎｄＦｕｎｃｔｉｏｎ＞
次に、制御回路２１は、ＲｏｕｎｄＦｕｎｃｔｉｏｎを行う（Ｓ１０４）。ＲｏｕｎｄＦｕｎｃｔｉｏｎは、ＳｕｂＢｙｔｅｓ、ＳｈｉｆｔＲｏｗｓ、ＭｉｘＣｏｌｕｍｎｓ及びＡｄｄＲｏｕｎｄＫｅｙからなる処理である。このＲｏｕｎｄＦｕｎｃｔｉｏｎについては後で詳述する。
【００５０】
制御回路２１は、ＲｏｕｎｄＦｕｎｃｔｉｏｎの処理の後、ＲｏｕｎｄＦｕｎｃｔｉｏｎの処理を「Ｎｒ−１」回だけ行ったか否かを判定する（Ｓ１０５）。ここで、Ｎｒは、予め定められたラウンド数である。そして、制御回路２１は、ＲｏｕｎｄＦｕｎｃｔｉｏｎの処理を「Ｎｒ−１」回だけ行っていないと判定した場合（Ｓ１０５でＮＯ）には、ステップＳ１０４へ処理を移行する。
【００５１】
一方、制御回路２１は、ＲｏｕｎｄＦｕｎｃｔｉｏｎの処理を「Ｎｒ−１」回だけ行ったと判定した場合（Ｓ１０５でＹＥＳ）には、ＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎを行う（Ｓ１０６）。ＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎは、上記ＲｏｕｎｄＦｕｎｃｔｉｏｎからＭｉｘＣｏｌｕｍｎｓが省略された処理、すなわちＳｕｂＢｙｔｅｓ、ＳｈｉｆｔＲｏｗｓ及びＡｄｄＲｏｕｎｄＫｅｙからなる処理である。このＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎについては後で詳述する。ＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎの処理が終了すると、必要があればマスク値を更新する（Ｓ１０７）。上記のように、マスク値Ｍ３の更新頻度は、マスク値Ｍ１，Ｍ２より高いため、マスク値Ｍ３のみ更新されることもある。例えば、ステップＳ１０７においては、「マスク値Ｍ１〜Ｍ３を更新しない」、「マスク値Ｍ１〜Ｍ３を更新する」及び「マスク値Ｍ３のみ更新」の何れかの処理を実行する。そして、暗号化処理は完了となる。
【００５２】
次に、上述したＲｏｕｎｄＦｕｎｃｔｉｏｎの処理手順について図４のフローチャートを参照しつつ詳細に説明する。なお、制御回路２１は、事前に記憶装置２１ａに記憶されるマスク値Ｍ１〜Ｍ３に基づき、以下の３つの式からマスク値Ｍ４〜Ｍ６を算出する。
【００５３】
Ｍ４＝Ｍ２  ＸＯＲ  Ｍ３・・・・・・・・（１）
Ｍ５＝ＳｈｉｆｔＲｏｗｓ（Ｍ３）・・・・（２）
Ｍ６＝ＭｉｘＣｏｌｕｍｎｓ（Ｍ５）  ＸＯＲ  Ｍ１・・・・（３）
まず、制御回路２１は、ＳｕｂＢｙｔｅｓを行う（Ｓ２０１）。このＳｕｂＢｙｔｅｓは、８ビットのバイナリ情報を、他の８ビットの並びに変換して、その８ビットからなる複数のサブバイトＳ０〜Ｓ１５を生成することをいう。これにより、データＡ２からデータＡ２´に変換される。このとき、マスク値は、マスク値Ｍ１からマスク値Ｍ２に変化する。
【００５４】
制御回路２１は、データＡ２´と、上記式（１）を通じて算出したマスク値Ｍ４とのＸＯＲをとる（Ｓ２０２）。これにより、データＡ３が生成される。このデータＡ３のマスク値は、マスク値Ｍ２とマスク値Ｍ４とをＸＯＲしたマスク値となる。ここで、「Ｍ２  ＸＯＲ  Ｍ４」に対して、上記式（１）を代入すると、「Ｍ２  ＸＯＲ  Ｍ２  ＸＯＲ  Ｍ３」となる。従って、データＡ３のマスク値はマスク値Ｍ３となる。
【００５５】
そして、制御回路２１は、ＳｈｉｆｔＲｏｗｓを行う（Ｓ２０３）。ＳｈｉｆｔＲｏｗｓでは、４×４行列の各行のデータをバイト単位で特定回数だけ循環左シフトする。次に、制御回路２１は、ＭｉｘＣｏｌｕｍｎｓを行う（Ｓ２０４）。ＭｉｘＣｏｌｕｍｎｓでは、前述したＳｈｉｆｔＲｏｗｓによる変換後のブロックデータにおける各列に対して、多項式を掛け算する。
【００５６】
ＳｈｉｆｔＲｏｗｓ及びＭｉｘＣｏｌｕｍｎｓによって、データＡ３からデータＡ３´に変換される。このとき、マスク値は、マスク値Ｍ３からマスク値Ｍｃに変化する。このマスク値Ｍｃは、以下の式から導出される。
【００５７】
Ｍｃ＝ＭｉｘＣｏｌｕｍｎｓ  〔ＳｈｉｆｔＲｏｗｓ（Ｍ３）〕・・・・（４）
この式（４）に上記式（２）を代入することで、以下の式となる。
Ｍｃ＝ＭｉｘＣｏｌｕｍｎｓ（Ｍ５）」・・・・（５）
そして、制御回路２１は、データＡ３´に対して、上記同様のＡｄｄＲｏｕｎｄＫｅｙを行う（Ｓ２０５）。これにより、データＡ４が生成される。このとき、マスク値は変化しない。次に、制御回路２１は、データＡ４と、上記式（３）を通じて算出したマスク値Ｍ６とのＸＯＲをとる（Ｓ２０６）。これにより、データＡ５が生成される。このデータＡ５のマスク値は、マスク値Ｍｃとマスク値Ｍ６とをＸＯＲしたマスク値となる。ここで、「Ｍｃ  ＸＯＲ  Ｍ６」に対して、上記式（３）及び（５）を代入すると、「ＭｉｘＣｏｌｕｍｎｓ（Ｍ５）  ＸＯＲ  ＭｉｘＣｏｌｕｍｎｓ（Ｍ５）  ＸＯＲ  Ｍ１」となる。従って、データＡ５のマスク値は、マスク値Ｍ１となる。以上で、ＲｏｕｎｄＦｕｎｃｔｉｏｎの処理が終了する。
【００５８】
＜ＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎ＞
次に、上述したＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎの処理手順について図５のフローチャートを参照しつつ詳細に説明する。ＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎにおいては、ＭｉｘＣｏｌｕｍｎｓが省略されている点、及びＡｄｄＲｏｕｎｄＫｅｙの後に、ＸＯＲされるマスク値が異なる点を除き、上記ＲｏｕｎｄＦｕｎｃｔｉｏｎと同様である。なお、本例では図３のステップＳ１０５でＹＥＳのときには、データＡ１０が生成され、そのデータＡ１０のマスク値はマスク値Ｍ１であるとする。
【００５９】
具体的には、図５に示すように、制御回路２１はＳｕｂＢｙｔｅｓを行う（Ｓ３０１）。これにより、データＡ１０からデータＡ１０´に変換される。このとき、マスク値は、マスク値Ｍ１からマスク値Ｍ２に変化する。制御回路２１は、データＡ１０´と、上記式（１）を通じて算出したマスク値Ｍ４とのＸＯＲをとる（Ｓ３０２）。これにより、データＡ１１が生成される。このデータＡ１１のマスク値は、上記同様に、マスク値Ｍ２とマスク値Ｍ４とをＸＯＲしたマスク値Ｍ３となる。
【００６０】
そして、制御回路２１は、ＳｈｉｆｔＲｏｗｓを行う（Ｓ３０３）。これにより、データＡ１１からデータＡ１１´に変換される。このとき、マスク値は、上記式（３）に示すように、マスク値Ｍ３からマスク値Ｍ５に変化する。そして、制御回路２１は、データＡ１１´に対して、上記同様のＡｄｄＲｏｕｎｄＫｅｙを行う（Ｓ３０４）。これにより、データＡ１２が生成される。このとき、マスク値は変化しない。次に、制御回路２１は、データＡ１２と、上記式（２）を通じて算出したマスク値Ｍ５とのＸＯＲをとる（Ｓ３０５）。これにより、データＡ１３が生成される。このデータＡ１３のマスク値は、マスク値Ｍ５とマスク値Ｍ５との演算結果、すなわちゼロとなりマスクが除去される。以上のＦｉｎａｌＲｏｕｎｄＦｕｎｃｔｉｏｎの処理によりデータＡ１３をＡＥＳの暗号文として出力する。
【００６１】
なお、マスク値Ｍ１，Ｍ２は第１のマスク値に相当し、マスク値Ｍ３は第２のマスク値に相当する。
以上、説明した実施形態によれば、以下の効果を奏することができる。
【００６２】
（１）Ｓ層変換（ＳｕｂＢｙｔｅｓ）に係るマスク値Ｍ１，Ｍ２と、Ｐ層変換（ＳｈｉｆｔＲｏｗｓ及びＭｉｘＣｏｌｕｍｎｓ）に係るマスク値Ｍ３とを独立して更新することができる。なお、本実施形態では、マスク値Ｍ３は、マスク値Ｍ２とＸＯＲされたマスク値Ｍ４として使用される。マスク値Ｍ３は、マスク値Ｍ１，Ｍ２より高い頻度で更新される。上記背景技術で図７を参照して説明したように、Ｐ層変換においては、Ｓ層変換に比して、同一のデータ（サブバイトＳ０〜Ｓ１５）がより多く読み出されるものの、高頻度でマスク値Ｍ３が更新されることで、通信のセキュリティ性が確保される。また、マスク値Ｍ３のみを更新可能とすることで、マスク値Ｍ１，Ｍ２の更新回数を減らすことができ、その更新に要する消費電力を低減することができる。
【００６３】
（２）暗号方式として、ＡＥＳ暗号方式（Advanced  Encryption  Standard）が採用されている。ＡＥＳ暗号方式において、Ｐ層変換（ＳｕｂＢｙｔｅｓ）は線形変換であって、Ｓ層変換（ＳｈｉｆｔＲｏｗｓ及びＭｉｘＣｏｌｕｍｎｓ）は非線形変換である。ここで、上記背景技術において説明したように、Ｓ層変換に係るマスク値Ｍ１，Ｍ２の更新は、Ｐ層変換に係るマスク値Ｍ３の更新より処理負担が大きい。このため、上記効果（１）に記載のように、マスク値Ｍ１，Ｍ２の更新回数を減らすことで、制御回路２１又は車載機１３の処理負担を低減することができる。
【００６４】
なお、上記実施形態は、これを適宜変更した以下の形態にて実施することができる。
・上記実施形態においては、電子キー１２と車載機１３との間の認証方式としてチャレンジ・レスポンス認証方式を採用し、電子キー１２と車載機１３との間で相互に認証するようにしたが、いずれか一方が他方の認証を行うのみとしてもよい。この場合にも、上記実施形態と同様に、電子キー１２と車載機１３との間で共通の暗号鍵を持ち合う。そして例えば車載機１３側で電子キー１２を認証するようにした場合、車載機１３は電子キー１２の認証を行うに際して、チャレンジコードを電子キー１２へ送信する。電子キー１２では、車載機１３から送られてきたチャレンジコードを自身の暗号鍵で暗号化し、その暗号化結果を車載機１３へ返信する。車載機１３は、自身の暗号鍵で元のチャレンジコードを暗号化し、その暗号化結果と電子キー１２から送信されてきた暗号化結果とを比較する。車載機１３は自身が演算した暗号化結果と電子キー１２からの暗号化結果とが一致した旨判定したときには認証成立、すなわち当該電子キー１２を正当な通信相手である旨判断する。なお、電子キー１２側で車載機１３を認証するようにした場合も前述と同様にして認証が行われる。
【００６５】
・上記実施形態においては、電子キー１２と車載機１３との間の認証方式として、チャレンジ・レスポンス認証方式を採用したが、他の認証方式を採用することも可能である。
・上記実施形態においては、電子キー１２と車載機１３との間の暗号化通信について説明したが、車載される各種の電子制御装置間の暗号化通信にも適用可能である。また、暗号化通信であれば、有線通信及び無線通信を問わず、通信機器全般について本発明を適用することができる。
【００６６】
・上記実施形態においては、電子キー１２と車載機１３との相互無線通信を通じて特定の車両機能を作動制御する電子キーシステム１１に本発明を具体化したが、例えば特定の情報を暗号化して特定の通信対象へ一方的に送信する単方向通信を行う通信システムに具体化することも可能である。例えば、電子キーに設けられる施解錠スイッチの操作を通じて施解錠要求信号を車両に送信することによりドアを施解錠する、いわゆるリモートキーシステムに本発明を具体化することもできる。この場合には、情報を暗号化して送信する側の電子機器である電子キーのみに前述のデータ変換機能を持たせればよい。このように、双方向通信及び単方向通信のいずれを行う場合であれ、本発明を適用することができる。
【００６７】
・上記実施形態においては、暗号化処理のみを行うチャレンジ・レスポンス認証方式の暗号化処理に係る暗号アルゴリズムとして、ＡＥＳ暗号方式を採用した例について説明したが、復号化処理を必要とする認証方式に適用することも可能である。復号化処理は、暗号化処理と逆の処理が実行されることで成立する。
【００６８】
・上記実施形態においては、暗号方式としてＡＥＳ暗号方式を採用したが、上記背景技術において説明したように同一のデータ（上記例ではサブバイト）を複数回読み出すような暗号方式であれば、ＡＥＳ暗号方式に限らず、例えばＤＥＳ（Data  Encryption  Standard）暗号方式であってもよい。また、Ｐ層変換のようなガロア体上の線形変換においてデータとマスク値をＸＯＲする場合に限らず、剰余算術乗算の線形変換においてデータとマスク値を剰余算術加算する場合や、べき乗演算においてマスク値を乗算する場合のような、マスク値変化の計算が容易である暗号処理であってもよい。
【００６９】
・上記実施形態におけるステップＳ１０７のマスク値更新の処理は、車載機１３及び電子キー１２間の通信の完了後、例えば、車室内照合又は車室外照合成立後であってもよい。
【００７０】
・上記実施形態においては、制御回路２１は、図４のフローチャートを実行する前に記憶装置２１ａに記憶されるマスク値Ｍ１〜Ｍ３に基づき、式（１）〜（３）からマスク値Ｍ４〜Ｍ６を算出していた。しかし、制御回路２１は、マスク値Ｍ４〜Ｍ６をマスク値Ｍ１〜Ｍ３の更新時に算出し、それを記憶装置２１ａに記憶しておいてもよい。
【符号の説明】
【００７１】
１１…電子キーシステム、１２…電子キー、１３…車載機、２１…制御回路（データ変換装置）、３１…照合制御装置（データ変換装置）。
【図１】
2013105100.tif 000003
【図２】
2013105100.tif 000004
【図３】
2013105100.tif 000005
【図４】
2013105100.tif 000006
【図５】
2013105100.tif 000007
【図６】
2013105100.tif 000008
【図７】
2013105100.tif 000009