説明

データ変換装置

【課題】データ変換装置において、マスク値の更新回数を減らしつつセキュリティ性を確保することにある。
【解決手段】S層変換(SubBytes)に係るマスク値M1,M2と、P層変換(ShiftRows及びMixColumns)に係るマスク値M3とを独立して更新することができる。例えば、マスク値M3は、マスク値M2とXORされたマスク値M4として使用される。このマスク値M3は、マスク値M1,M2より高い頻度で更新される。P層変換においては、S層変換に比して、同一のデータ(サブバイトS0〜S15)がより多く読み出されるものの、高頻度でマスク値M3が更新されることで、通信のセキュリティ性が確保される。また、マスク値M3のみを更新可能とすることで、マスク値M1,M2の更新回数を減らすことができ、その更新に要する消費電力を低減することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データの暗号化処理を行うデータ変換装置に関する。
【背景技術】
【0002】
従来、通信機器間の無線通信において、通信のセキュリティ性を確保するために、暗号化通信が一般的に行われている。
ここで、通信機器が暗号化処理を行う際の消費電流等から暗号化途中の中間値を不正に取得する、いわゆるサイドチャンネル攻撃が懸念されている。これを防ぐ方法の一つとして、マスク演算手法が提案されている(例えば、特許文献1参照)。これは、本来のデータにマスク値をXOR(排他論理和)することで、暗号処理時の消費電流と、本来のデータとの相関を薄め、上記サイドチャンネル攻撃を通じた本来のデータの取得を困難にする方法である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−6184号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記特許文献1においては、AES(Advanced Encryption Standard)と呼ばれる共通暗号方式が採用されている。AES暗号方式では、入力データはS層変換及びP層変換される。S層変換とはSubBytes(バイト置換)によるデータ変換をいい、P層変換とは、ShiftRows(行シフト)及びMixColumns(列ミックス)によるデータ変換をいう。
【0005】
上記特許文献1に記載の構成においては、入力データにマスク値をXOR(排他論理和)した後に、S(Substitution)層変換及びP(Permutation)層変換を行う。ここで、S層変換は非線形変換であって、P層変換は線形変換である。
【0006】
詳しくは、図6(a)に示すように、線形変換において、第1の入力は「データA XOR マスク値Ma」であって、第2の入力は「データB XOR マスク値Mb」であるとする。本例では、第1の出力は、第1及び第2の入力がXORされた値、すなわち「データA XOR データB XOR マスク値Ma XOR マスク値Mb」となる。また、第2の出力は、第2の入力と同一の「データB XOR マスク値Mb」となる。よって、第1の出力のマスク値は「マスク値Ma XOR マスク値Mb」となって、第1の出力のマスク値はMbとなる。このように、線形変換前のマスク値Ma,Mbから線形変換後のマスク値を算出することができる。よって、P層変換(線形変換)におけるマスク値の更新は容易である。
【0007】
一方、図6(b)に示すように、非線形変換においては、入力「データA XOR マスク値Ma」の場合にマスク値Maを更新すると、何らかの出力は得られるものの、その出力のマスク値を算出することができない。よって、マスク値を更新する際には、非線形変換後のマスク値を所望の値(例えばマスク値Mb)とするべく、非線形変換に係る変換テーブルを生成し直す必要がある。よって、S層変換(非線形変換)におけるマスク値の更新はP層変換と比較して処理負担が大きい。
【0008】
また、P層変換においては、同一データの参照頻度が高い。具体的には、P層変換においては、ShiftRows(行シフト)及びMixColumns(列ミックス)と呼ばれる処理が実行される。図7には、MixColumnsの処理が行列式の乗算として示されている。サブバイトS0〜S15は、S層変換におけるSubBytes(バイト置換)において生成されるものであって、ShiftRows(行シフト)によって、サブバイトS0〜S15の昇降順が並び替えられている。
【0009】
この行列式の乗算においては、各サブバイトS0〜S15が4回ずつ読み出される。また、サブバイトS0〜S15に乗算される行列には1のみならず、2又は3が設定されている。よって、この行列式を計算するときには、各サブバイトS0〜S15を2倍又は3倍する必要があるため、さらにサブバイトS0〜S15の読み出し回数が増大する。
【0010】
サブバイトS0〜S15の読み出し回数が多いと、消費電流と情報との相関を導出しやすく、上記サイドチャンネル攻撃を通じた不正なデータ取得を防止できないおそれがある。よって、P層変換に係るマスク値の更新は、S層変換に係るマスク値に比べて頻繁に行うことが望ましい。しかし、上記特許文献1に記載の構成においては、P層変換及びS層変換において共通のマスク値が使用されていた。従って、P層変換及びS層変換に係るマスク値の更新は同時に行われていた。例えば、P層変換に合わせた頻度でマスク値を更新すると、S層変換に関してはマスク値の更新が過剰となって、上述のように処理負担が問題となる。逆に、S層変換に合わせた頻度でマスク値を更新すると、P層変換に関してセキュリティ性を十分に確保できないおそれがある。
【0011】
この発明は、こうした実情に鑑みてなされたものであり、その目的は、マスク値の更新回数を減らしつつセキュリティ性を確保したデータ変換装置を提供することにある。
【課題を解決するための手段】
【0012】
以下、上記目的を達成するための手段及びその作用効果について説明する。
請求項1に記載の発明は、入力データを、記憶装置から読み込んだデータを利用して変換する第1の変換及び第2の変換を経て暗号化するとともに、前記第2の変換は前記第1の変換より多く同一のデータを読み出すデータ変換装置において、前記第1の変換前のデータと第1のマスク値との排他論理和の演算結果を前記第1の変換の変換対象とし、前記第1の変換後かつ前記第2の変換前のデータと第2のマスク値との排他論理和の演算結果を前記第2の変換の変換対象とし、前記第2のマスク値を前記第1のマスク値より高い頻度で更新することをその要旨としている。
【0013】
同構成によれば、第1のマスク値と、第2のマスク値とを独立して更新することができる。また、第2のマスク値は、第1のマスク値より高い頻度で更新される。第2の変換においては、第1の変換に比して、同一のデータがより多く読み出されるため、セキュリティ性の低下が懸念されるものの、高頻度で第2のマスク値が更新されることでセキュリティ性が確保される。また、第2のマスク値のみを更新可能とすることで、第1のマスク値の更新回数を減らすことができる。
【0014】
請求項2に記載の発明は、請求項1に記載のデータ変換装置において、前記第1の変換であるSubBytesと、前記第2の変換であるShiftRows及びMixColumnsとを順に行うAES暗号方式を採用することをその要旨としている。
【0015】
同構成によれば、暗号方式として、AES暗号方式(Advanced Encryption Standard)が採用されている。この方式においても、マスク値の更新回数を減らしつつ通信のセキュリティ性を確保することができる。
【発明の効果】
【0016】
本発明によれば、データ変換装置において、マスク値の更新回数を減らしつつセキュリティ性を確保することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の一実施形態における電子キーシステムの構成を示すブロック図。
【図2】本発明の一実施形態における電子キーと車載機との相互認証手順を示す動作シーケンス図。
【図3】本発明の一実施形態におけるAES暗号化処理の手順を示すフローチャート。
【図4】本発明の一実施形態におけるAES暗号化処理におけるRoundFunctionの処理手順を示すフローチャート。
【図5】本発明の一実施形態におけるAES暗号化処理におけるFinalRoundFunctionの処理手順を示すフローチャート。
【図6】背景技術における(a)線形変換(P層変換)における入出力を示す関係図、(b)非線形変換(S層変換)における入出力を示す関係図。
【図7】背景技術におけるP層変換を示した行列式。
【発明を実施するための形態】
【0018】
以下、本発明を車両の電子キーシステムに具体化した一実施形態を図1〜図5を参照しつつ説明する。この電子キーシステムは、ユーザにより所持される電子キーと車両との間の無線通信を通じてドアの施解錠及びエンジンの始動を行うものである。
【0019】
<電子キーシステムの概要>
まず、電子キーシステムの概要を説明する。図1に示すように、電子キーシステム11は、ユーザに所持される電子キー12と、車両10に搭載される車載機13とを備えてなる。
【0020】
電子キー12の制御回路21には、LF帯の無線信号を受信するLF受信回路22と、当該制御回路21からの指令に従いUHF帯の無線信号を送信するUHF送信回路23とが接続されている。LF受信回路22は、受信したLF信号を復調するとともに、その復調後の信号を受信データとして制御回路21に出力する。また、UHF送信回路23は、制御回路21からの指令に従い、電子キーに固有の識別コードを乗せたUHF帯の応答信号Srepを送信する。
【0021】
車載機13は、電子キー12との間の相互無線通信を通じて当該電子キー12の妥当性を判断する照合制御装置31を備えてなる。この照合制御装置31には、車室外へLF帯の無線信号を送信する車室外LF送信機32と、車室内へLF帯の無線信号を送信する車室内LF送信機33と、UHF帯の無線信号を受信するUHF受信機34とが接続されている。また、照合制御装置31には、ドア錠を施解錠するべくドアロックモータMを駆動制御するドア制御装置35と、ユーザによるプッシュスイッチSWの操作に応じて車両10の電源位置を切換制御する電源制御装置36と、エンジンEの駆動制御を行うエンジン制御装置37とが、バス(多重通信線)Bを介して接続されている。
【0022】
照合制御装置31は、エンジンEが停止状態且つドアが施錠状態である車両10の駐車状態において、電子キー12に応答を要求する車室外照合用のLF帯の応答要求信号Sreqを所定の制御周期で車室外LF送信機32を通じて車室外に送信する。これにより、車両10のドアの周辺には、電子キー12の図示しない検知領域が形成される。そして、ユーザが電子キー12を所持して車両10に接近して前記検知領域内に入ると、電子キー12の制御回路21は、応答要求信号Sreqを受けて自身の記憶装置21aに記憶された識別コードを含む応答信号Srepを、UHF送信回路23を通じて送信する。
【0023】
照合制御装置31は、UHF受信機34を通じて電子キー12からの応答信号Srepを受信すると、当該応答信号Srepに含まれる電子キー12に固有の識別コードと、自身の記憶装置31aに記憶された識別コードとを比較する車室外照合を行う。そして、照合制御装置31は、この車室外照合が成立した場合には、図示しないドアハンドルノブに内蔵されたタッチセンサを起動し、当該センサを通じてユーザによるドアハンドルノブのタッチ操作を検出すると、ドア制御装置35にドアアンロック要求信号を出力する。ドア制御装置35は、照合制御装置31からのドアアンロック要求信号を受けて、ドアロックモータMを駆動して車両10のドアを解錠する。
【0024】
この後、電子キー12を所持するユーザが車両10に乗り込んだとき、ドア制御装置35は図示しないカーテシスイッチを通じてこれを検出して当該検出信号を照合制御装置31へ出力する。照合制御装置31は、ドア制御装置35からユーザが乗車した旨を示す検出信号が入力されると、車室内LF送信機33を通じて車室内照合用の応答要求信号Sreqを送信する。これにより、車室内に電子キー12の検知領域が形成される。電子キー12の制御回路21は、前記検知領域内に入って、LF受信回路22を通じて車室内照合用の応答要求信号Sreqを受信すると、UHF送信回路23を通じて識別コードを含む応答信号Srepを送信する。照合制御装置31は、UHF受信機34を通じて電子キー12からの応答信号Srepを受信すると、当該応答信号Srepに含まれる電子キー12に固有の識別コードと、自身の記憶装置31aに記憶された識別コードとを比較する車室内照合を行う。そして、照合制御装置31は、この車室外照合の照合結果を記憶装置31aに記憶し、当該照合結果を各種の車載システムの実行機能に応じてこれらシステムの制御装置、例えば電源制御装置36及びエンジン制御装置37へ送信する。
【0025】
電源制御装置36は、シフトレバーが駐車位置に保持されるとともに、図示しないブレーキペダルが踏み込まれた状態で、プッシュスイッチSWがオン操作された旨検出すると、照合制御装置31に対して車室内照合の照合結果を確認する。電源制御装置36は、照合制御装置31を通じて取得した車室内照合の照合結果が照合成立を示すものであった場合には、図示しないアクセサリリレー及びイグニッションリレーをオン動作させて、車両10の各部に動作電力を供給する。
【0026】
そして、電源制御装置36は、エンジンEの始動を要求する始動要求信号を、バスBを通じてエンジン制御装置37へ出力する。エンジン制御装置37は、電源制御装置36からの始動要求信号を受けると、照合制御装置31に対して車室内照合の照合結果を確認するとともに、互いが対を成す制御装置同士であるか否かの確認(ペアリング)を行う。エンジン制御装置37は、車室内照合及びペアリングの双方が成立している場合にのみ、エンジンEを始動させる。
【0027】
そして、ユーザが降車するべくプッシュスイッチSWの操作を通じてエンジンEを停止した後に、解錠状態のドアを開けて車室外に出て、前記ドアハンドルノブに設けられる図示しないロックスイッチをオン操作した場合には、これが照合制御装置31により検出される。すると、照合制御装置31は、車室外LF送信機32を通じて車室外照合用の検知領域を再度形成して車室外照合を行い、当該車室外照合が成立したときには、ドアロック要求信号をドア制御装置35へ出力する。ドア制御装置35は、照合制御装置31からのドアロック要求信号を受けると、ドアロックモータMを駆動してドアを施錠する。
【0028】
<電子キー及び車載機の相互認証>
ここで、前述した電子キーシステム11においては、電子キー12と車載機13との相互認証が無線通信により行われることから、これら電子キー12と車載機13との間で送受信される情報(電子キー12に固有の識別情報等)が傍受され、この情報を使用して車両10が不正に使用されることが特に懸念される。このため、電子キー12と車載機13との間では、これらの間で授受する情報を所定の暗号アルゴリズムにより暗号化して送受信する暗号化通信を利用した認証が行われる。
【0029】
本実施形態では、認証を実施する装置間、すなわち電子キー12と車載機との間で互いに共通の暗号鍵を持ち合い、乱数データ(チャレンジコード)を暗号鍵で暗号化した結果を交換することにより認証を行う、いわゆるチャレンジ・レスポンス認証方式が採用されている。
【0030】
以下、電子キーシステム11におけるチャレンジ・レスポンス認証方式の暗号化通信について、図2に示される動作シーケンスに従って説明する。なお、ここでは、乗車時等に行われる車室外照合が行われるものとする。また、車載機13と電子キー12とは、同じ暗号鍵Kを持っている。
【0031】
車両10の駐車状態にあっては、車載機13は、応答要求信号Sreqとして、電子キー12を起動させるWAKEコードを含む起動信号Swakeを所定の制御周期で送信する。これにより、車両10のドアの周辺には、電子キー12の検知領域が形成される。
【0032】
そして、ユーザが電子キー12を携帯して前記検知領域に入った際、当該電子キー12が車両10からの起動信号Swakeを受信すると、当該電子キー12は、まず起動信号Swakeに含まれるWAKEコードの妥当性、すなわち、当該WAKEコードが登録された正規の信号パターンかどうかを判定する。次に、電子キー12は、前記WAKEコードが正規の信号パターンである旨判定したときには、自身の動作が安定するのを待って、正常に認識した旨の応答信号であるACK信号Sackを車両側へ返信する。
【0033】
車載機13は、電子キー12からのACK信号Sackを受信することにより、電子キー12が前記検知領域内にあると判断し、登録された自身の車両コードを含む車両識別信号Scarを発信する。
【0034】
そして、電子キー12は、車載機13からの車両識別信号Scarを受信すると、それに含まれる車両コードと自身に登録された車両コードとの照合を行う。そして、その照合が成立した場合には、電子キー12は、UHF送信回路23を通じてACK信号Sackを車両側へ再び返信する。
【0035】
<チャレンジ・レスポンス認証>
車載機13は、電子キー12からのACK信号Sackを再度受信すると、電子キー12との間でチャレンジ・レスポンス認証を行う。
【0036】
<S−1>
すなわち、車載機13は、自身の内部乱数生成器31bを通じて乱数を生成し、この乱数を電子キー12に対するチャレンジコードRaとする。そして、車載機13は、このチャレンジコードRaに特定の識別コードを付加した情報を含む認証信号Schaを送信する。ここで、チャレンジコードRaは、128ビットの情報量を有してなる。また、識別コードは、当該車載機13に予め登録された電子キー12に固有の情報である。
【0037】
<S−2>
電子キー12は、車載機13からの認証信号Schaを受信すると、これに含まれる識別コードと自身に登録された識別コードとの照合を行う。電子キー12は、当該照合が成立した場合には、自身の識別コードが当該車両10に登録されたコードである旨判断する。そして、電子キー12は、受信した認証信号Schaに含まれるチャレンジコードRaを自分の持つ暗号鍵Kにより暗号化する。この暗号化結果をEK(Ra)と示す。また、電子キー12は、自身の内部乱数生成器21bを通じて、車載機13に対するチャレンジコードRbとして乱数を生成する。そして、電子キー12は、これら暗号化結果EK(Ra)及びチャレンジコードRbを含む暗号化信号Scip−keyを車載機13に送信する。
【0038】
<S−3>
車載機13では、自らが生成したチャレンジコードRaを自分の持つ暗号鍵Kで暗号化した結果と、受信した暗号化信号Scip−keyに含まれる暗号化結果EK(Ra)とを比較し、その値が一致すれば電子キー12が正常に認証されたと判断する。また、車載機13は、受信した暗号化信号Scip−keyに含まれるチャレンジコードRbを自分の持つ暗号鍵Kにより暗号化し、その暗号化結果を含む暗号化信号Scip−carを電子キー12に送信する。なお、チャレンジコードRbの暗号化結果をEK(Rb)と示す。
【0039】
<S−4>
電子キー12では、自らが生成したチャレンジコードRbを自分の持つ暗号鍵Kで暗号化した結果と、受信した暗号化信号Scip−carに含まれる暗号化結果EK(Rb)とを比較し、その値が一致すれば車載機13が正常に認証されたと判断する。
【0040】
以上で、車載機13と電子キー12との間のチャレンジ・レスポンス認証は完了となる。そして、このチャレンジ・レスポンス認証が完了、すなわち前記<S−4>において、電子キー12が車載機13を正常に認証した場合には、電子キー12は、前記応答信号Srepとして、自身に固有の識別コードを含む識別信号Sidを車載機13に送信する。車載機13は、電子キー12からの識別信号Sidに含まれる識別コードと自身に登録された識別コードとの照合を行い、当該照合が成立したことをもって電子キー12との間の車室外照合が成立した旨判断する。この後、車両のドアが解錠されて、電子キー12を所持するユーザが乗車した際には、前述した車室外照合と同様にして車載機13と電子キー12との相互認証を行うべく車室内照合が行われる。
【0041】
<AES暗号化処理>
本実施形態では、前述したチャレンジ・レスポンス認証方式の暗号化通信における暗号化方式として、AES(Advanced Encryption Standard)暗号方式を採用している。また、上記背景技術で説明したサイドチャンネル攻撃を通じた暗号化処理の途中の中間値の漏洩を防ぐべく、この中間値にマスク値がXOR(排他論理和)される。このマスク値は、マスク値がXORされたデータに対して、再び同一のマスク値をXORすることで外すことができる。
【0042】
電子キー12の記憶装置21aには、AES暗号方式を使用して車載機13へ送信する情報を暗号化する処理を制御回路21に実行させるためのデータ変換プログラムと、前記データ変換プログラムが実行された際に使用される暗号鍵Kと、暗号化処理の途中の中間値の漏洩を防止するためのマスク値M1〜M3とが記憶されている。
【0043】
また、車載機13の記憶装置31aには、AES暗号方式を使用して電子キー12へ送信する情報を暗号化する処理を照合制御装置31に実行させるためのデータ変換プログラムと、データ変換プログラムが実行された際に使用される暗号鍵Kと、暗号化処理の途中の中間値の漏洩を防止するためのマスク値M1〜M3とが記憶されている。マスク値は、後述するS層変換に係るマスク値M1,M2と、同じく後述するP層変換に係るマスク値M3とからなる。
【0044】
制御回路21又は照合制御装置31は、マスク値M1,M2,M3を内部乱数生成器21b,31bを通じて生成する。そして、制御回路21又は照合制御装置31は、マスク値M1,M2に基づき、上記背景技術において図6(b)を参照しつつ説明したように、非線形変換に係る変換テーブルを算出し、そのテーブルをマスク値M1,M2,M3とともに記憶装置21a,31aに記憶させる。制御回路21又は照合制御装置31は、例えば暗号化処理が終了したタイミングで、必要があればS層変換に係るマスク値M1,M2及びP層変換に係るマスク値M3を更新する。マスク値M3の更新頻度は、マスク値M1,M2のそれより高く設定される。
【0045】
次に、前述したチャレンジ・レスポンス認証の実行中におけるAES暗号方式による暗号化処理について、図3に示すフローチャートに従って詳細に説明する。このフローチャートは、チャレンジ・レスポンス認証の実行中において、暗号化されていない平文データであるチャレンジコードRa,Rbを通信対象へ送信する場合に、電子キー12の制御回路21又は車載機13の照合制御装置31によって、上記記憶されたデータ変換プログラムに従い実行される。なお、当該暗号化処理は、電子キー12と車載機13とで同様の手順で実行されることから、ここでは、電子キー12を例にとって説明する。
【0046】
まず、制御回路21は、平文データであるチャレンジコードRaと、記憶装置21aに記憶されるマスク値M1とのXORをとる(S101)。これにより、データA1が生成される。
【0047】
そして、制御回路21は、自身の記憶装置21aに記憶される暗号鍵Kを使用してRoundKeyを生成する(S102)。すなわち、制御回路21は、元の暗号鍵Kを特定の拡張アルゴリズムに従って拡張し、その拡張した鍵を平文データであるチャレンジコードRaのデータ長(ここでは、128ビット)で順番に区切ることにより、AddRoundKeyの回数分(「ラウンド数Nr+1」回分)だけRoundKeyを生成する。そして、制御回路21は、この生成した複数のRoundKeyを記憶装置21a(正確には、その一時記憶領域)に記憶する。このRoundKeyは、後述のAddRoundKeyで使用される。
【0048】
次に、制御回路21は、チャレンジコードRaをマスク値M1でマスクしたデータA1に対して、AddRoundKeyを1回だけ行う(S103)。AddRoundKeyとは、データA1とRoundKeyとのXOR(排他論理和)をとることをいう。XORは、ビット単位で行われる。これにより、データA2が生成される。
【0049】
<RoundFunction>
次に、制御回路21は、RoundFunctionを行う(S104)。RoundFunctionは、SubBytes、ShiftRows、MixColumns及びAddRoundKeyからなる処理である。このRoundFunctionについては後で詳述する。
【0050】
制御回路21は、RoundFunctionの処理の後、RoundFunctionの処理を「Nr−1」回だけ行ったか否かを判定する(S105)。ここで、Nrは、予め定められたラウンド数である。そして、制御回路21は、RoundFunctionの処理を「Nr−1」回だけ行っていないと判定した場合(S105でNO)には、ステップS104へ処理を移行する。
【0051】
一方、制御回路21は、RoundFunctionの処理を「Nr−1」回だけ行ったと判定した場合(S105でYES)には、FinalRoundFunctionを行う(S106)。FinalRoundFunctionは、上記RoundFunctionからMixColumnsが省略された処理、すなわちSubBytes、ShiftRows及びAddRoundKeyからなる処理である。このFinalRoundFunctionについては後で詳述する。FinalRoundFunctionの処理が終了すると、必要があればマスク値を更新する(S107)。上記のように、マスク値M3の更新頻度は、マスク値M1,M2より高いため、マスク値M3のみ更新されることもある。例えば、ステップS107においては、「マスク値M1〜M3を更新しない」、「マスク値M1〜M3を更新する」及び「マスク値M3のみ更新」の何れかの処理を実行する。そして、暗号化処理は完了となる。
【0052】
次に、上述したRoundFunctionの処理手順について図4のフローチャートを参照しつつ詳細に説明する。なお、制御回路21は、事前に記憶装置21aに記憶されるマスク値M1〜M3に基づき、以下の3つの式からマスク値M4〜M6を算出する。
【0053】
M4=M2 XOR M3・・・・・・・・(1)
M5=ShiftRows(M3)・・・・(2)
M6=MixColumns(M5) XOR M1・・・・(3)
まず、制御回路21は、SubBytesを行う(S201)。このSubBytesは、8ビットのバイナリ情報を、他の8ビットの並びに変換して、その8ビットからなる複数のサブバイトS0〜S15を生成することをいう。これにより、データA2からデータA2´に変換される。このとき、マスク値は、マスク値M1からマスク値M2に変化する。
【0054】
制御回路21は、データA2´と、上記式(1)を通じて算出したマスク値M4とのXORをとる(S202)。これにより、データA3が生成される。このデータA3のマスク値は、マスク値M2とマスク値M4とをXORしたマスク値となる。ここで、「M2 XOR M4」に対して、上記式(1)を代入すると、「M2 XOR M2 XOR M3」となる。従って、データA3のマスク値はマスク値M3となる。
【0055】
そして、制御回路21は、ShiftRowsを行う(S203)。ShiftRowsでは、4×4行列の各行のデータをバイト単位で特定回数だけ循環左シフトする。次に、制御回路21は、MixColumnsを行う(S204)。MixColumnsでは、前述したShiftRowsによる変換後のブロックデータにおける各列に対して、多項式を掛け算する。
【0056】
ShiftRows及びMixColumnsによって、データA3からデータA3´に変換される。このとき、マスク値は、マスク値M3からマスク値Mcに変化する。このマスク値Mcは、以下の式から導出される。
【0057】
Mc=MixColumns 〔ShiftRows(M3)〕・・・・(4)
この式(4)に上記式(2)を代入することで、以下の式となる。
Mc=MixColumns(M5)」・・・・(5)
そして、制御回路21は、データA3´に対して、上記同様のAddRoundKeyを行う(S205)。これにより、データA4が生成される。このとき、マスク値は変化しない。次に、制御回路21は、データA4と、上記式(3)を通じて算出したマスク値M6とのXORをとる(S206)。これにより、データA5が生成される。このデータA5のマスク値は、マスク値Mcとマスク値M6とをXORしたマスク値となる。ここで、「Mc XOR M6」に対して、上記式(3)及び(5)を代入すると、「MixColumns(M5) XOR MixColumns(M5) XOR M1」となる。従って、データA5のマスク値は、マスク値M1となる。以上で、RoundFunctionの処理が終了する。
【0058】
<FinalRoundFunction>
次に、上述したFinalRoundFunctionの処理手順について図5のフローチャートを参照しつつ詳細に説明する。FinalRoundFunctionにおいては、MixColumnsが省略されている点、及びAddRoundKeyの後に、XORされるマスク値が異なる点を除き、上記RoundFunctionと同様である。なお、本例では図3のステップS105でYESのときには、データA10が生成され、そのデータA10のマスク値はマスク値M1であるとする。
【0059】
具体的には、図5に示すように、制御回路21はSubBytesを行う(S301)。これにより、データA10からデータA10´に変換される。このとき、マスク値は、マスク値M1からマスク値M2に変化する。制御回路21は、データA10´と、上記式(1)を通じて算出したマスク値M4とのXORをとる(S302)。これにより、データA11が生成される。このデータA11のマスク値は、上記同様に、マスク値M2とマスク値M4とをXORしたマスク値M3となる。
【0060】
そして、制御回路21は、ShiftRowsを行う(S303)。これにより、データA11からデータA11´に変換される。このとき、マスク値は、上記式(3)に示すように、マスク値M3からマスク値M5に変化する。そして、制御回路21は、データA11´に対して、上記同様のAddRoundKeyを行う(S304)。これにより、データA12が生成される。このとき、マスク値は変化しない。次に、制御回路21は、データA12と、上記式(2)を通じて算出したマスク値M5とのXORをとる(S305)。これにより、データA13が生成される。このデータA13のマスク値は、マスク値M5とマスク値M5との演算結果、すなわちゼロとなりマスクが除去される。以上のFinalRoundFunctionの処理によりデータA13をAESの暗号文として出力する。
【0061】
なお、マスク値M1,M2は第1のマスク値に相当し、マスク値M3は第2のマスク値に相当する。
以上、説明した実施形態によれば、以下の効果を奏することができる。
【0062】
(1)S層変換(SubBytes)に係るマスク値M1,M2と、P層変換(ShiftRows及びMixColumns)に係るマスク値M3とを独立して更新することができる。なお、本実施形態では、マスク値M3は、マスク値M2とXORされたマスク値M4として使用される。マスク値M3は、マスク値M1,M2より高い頻度で更新される。上記背景技術で図7を参照して説明したように、P層変換においては、S層変換に比して、同一のデータ(サブバイトS0〜S15)がより多く読み出されるものの、高頻度でマスク値M3が更新されることで、通信のセキュリティ性が確保される。また、マスク値M3のみを更新可能とすることで、マスク値M1,M2の更新回数を減らすことができ、その更新に要する消費電力を低減することができる。
【0063】
(2)暗号方式として、AES暗号方式(Advanced Encryption Standard)が採用されている。AES暗号方式において、P層変換(SubBytes)は線形変換であって、S層変換(ShiftRows及びMixColumns)は非線形変換である。ここで、上記背景技術において説明したように、S層変換に係るマスク値M1,M2の更新は、P層変換に係るマスク値M3の更新より処理負担が大きい。このため、上記効果(1)に記載のように、マスク値M1,M2の更新回数を減らすことで、制御回路21又は車載機13の処理負担を低減することができる。
【0064】
なお、上記実施形態は、これを適宜変更した以下の形態にて実施することができる。
・上記実施形態においては、電子キー12と車載機13との間の認証方式としてチャレンジ・レスポンス認証方式を採用し、電子キー12と車載機13との間で相互に認証するようにしたが、いずれか一方が他方の認証を行うのみとしてもよい。この場合にも、上記実施形態と同様に、電子キー12と車載機13との間で共通の暗号鍵を持ち合う。そして例えば車載機13側で電子キー12を認証するようにした場合、車載機13は電子キー12の認証を行うに際して、チャレンジコードを電子キー12へ送信する。電子キー12では、車載機13から送られてきたチャレンジコードを自身の暗号鍵で暗号化し、その暗号化結果を車載機13へ返信する。車載機13は、自身の暗号鍵で元のチャレンジコードを暗号化し、その暗号化結果と電子キー12から送信されてきた暗号化結果とを比較する。車載機13は自身が演算した暗号化結果と電子キー12からの暗号化結果とが一致した旨判定したときには認証成立、すなわち当該電子キー12を正当な通信相手である旨判断する。なお、電子キー12側で車載機13を認証するようにした場合も前述と同様にして認証が行われる。
【0065】
・上記実施形態においては、電子キー12と車載機13との間の認証方式として、チャレンジ・レスポンス認証方式を採用したが、他の認証方式を採用することも可能である。
・上記実施形態においては、電子キー12と車載機13との間の暗号化通信について説明したが、車載される各種の電子制御装置間の暗号化通信にも適用可能である。また、暗号化通信であれば、有線通信及び無線通信を問わず、通信機器全般について本発明を適用することができる。
【0066】
・上記実施形態においては、電子キー12と車載機13との相互無線通信を通じて特定の車両機能を作動制御する電子キーシステム11に本発明を具体化したが、例えば特定の情報を暗号化して特定の通信対象へ一方的に送信する単方向通信を行う通信システムに具体化することも可能である。例えば、電子キーに設けられる施解錠スイッチの操作を通じて施解錠要求信号を車両に送信することによりドアを施解錠する、いわゆるリモートキーシステムに本発明を具体化することもできる。この場合には、情報を暗号化して送信する側の電子機器である電子キーのみに前述のデータ変換機能を持たせればよい。このように、双方向通信及び単方向通信のいずれを行う場合であれ、本発明を適用することができる。
【0067】
・上記実施形態においては、暗号化処理のみを行うチャレンジ・レスポンス認証方式の暗号化処理に係る暗号アルゴリズムとして、AES暗号方式を採用した例について説明したが、復号化処理を必要とする認証方式に適用することも可能である。復号化処理は、暗号化処理と逆の処理が実行されることで成立する。
【0068】
・上記実施形態においては、暗号方式としてAES暗号方式を採用したが、上記背景技術において説明したように同一のデータ(上記例ではサブバイト)を複数回読み出すような暗号方式であれば、AES暗号方式に限らず、例えばDES(Data Encryption Standard)暗号方式であってもよい。また、P層変換のようなガロア体上の線形変換においてデータとマスク値をXORする場合に限らず、剰余算術乗算の線形変換においてデータとマスク値を剰余算術加算する場合や、べき乗演算においてマスク値を乗算する場合のような、マスク値変化の計算が容易である暗号処理であってもよい。
【0069】
・上記実施形態におけるステップS107のマスク値更新の処理は、車載機13及び電子キー12間の通信の完了後、例えば、車室内照合又は車室外照合成立後であってもよい。
【0070】
・上記実施形態においては、制御回路21は、図4のフローチャートを実行する前に記憶装置21aに記憶されるマスク値M1〜M3に基づき、式(1)〜(3)からマスク値M4〜M6を算出していた。しかし、制御回路21は、マスク値M4〜M6をマスク値M1〜M3の更新時に算出し、それを記憶装置21aに記憶しておいてもよい。
【符号の説明】
【0071】
11…電子キーシステム、12…電子キー、13…車載機、21…制御回路(データ変換装置)、31…照合制御装置(データ変換装置)。

【特許請求の範囲】
【請求項1】
入力データを、記憶装置から読み込んだデータを利用して変換する第1の変換及び第2の変換を経て暗号化するとともに、前記第2の変換は前記第1の変換より多く同一のデータを読み出すデータ変換装置において、
前記第1の変換前のデータと第1のマスク値との排他論理和の演算結果を前記第1の変換の変換対象とし、
前記第1の変換後かつ前記第2の変換前のデータと第2のマスク値との排他論理和の演算結果を前記第2の変換の変換対象とし、
前記第2のマスク値を前記第1のマスク値より高い頻度で更新するデータ変換装置。
【請求項2】
請求項1に記載のデータ変換装置において、
前記第1の変換であるSubBytesと、前記第2の変換であるShiftRows及びMixColumnsとを順に行うAES暗号方式を採用するデータ変換装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate