JP6319866B2 - 暗号システム - Google Patents

暗号システム Download PDF

Info

Publication number
JP6319866B2
JP6319866B2 JP2013040099A JP2013040099A JP6319866B2 JP 6319866 B2 JP6319866 B2 JP 6319866B2 JP 2013040099 A JP2013040099 A JP 2013040099A JP 2013040099 A JP2013040099 A JP 2013040099A JP 6319866 B2 JP6319866 B2 JP 6319866B2
Authority
JP
Japan
Prior art keywords
value
encryption
counter
ctr
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013040099A
Other languages
English (en)
Other versions
JP2014168216A (ja
Inventor
伸行 尾張
伸行 尾張
鈴木 浩恭
浩恭 鈴木
都志 川上
都志 川上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Motors Corp
Renesas Electronics Corp
Mitsubishi Heavy Industries Machinery Systems Co Ltd
Original Assignee
Mitsubishi Motors Corp
Renesas Electronics Corp
Mitsubishi Heavy Industries Machinery Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Motors Corp, Renesas Electronics Corp, Mitsubishi Heavy Industries Machinery Systems Co Ltd filed Critical Mitsubishi Motors Corp
Priority to JP2013040099A priority Critical patent/JP6319866B2/ja
Publication of JP2014168216A publication Critical patent/JP2014168216A/ja
Application granted granted Critical
Publication of JP6319866B2 publication Critical patent/JP6319866B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号システムに関する。
暗号生成部を備える送信機と、暗号復号部を備える受信機とを含むシステムにおいて、時変パラメータとしてカウンター値を用いて、送信機が平文を暗号化した暗号文を生成し、受信機が送信機から受信した暗号文を復号するというものがある(例えば、特許文献1参照)。
この特許文献1では、互いに同期してカウント動作されるクロックカウンターを用いて送信機と受信機において生成されるカンンター値を同期させている。
特開2008−281832号公報
しかしながら、特許文献1に記載されたもののように、互いに同期してカウント動作されるクロックカウンターを用意する場合、精度の高いカウンターが必要となるため、各送信機と受信機に精度の高いカウンターを設けることによるコスト増大を招くという問題があった。
本発明は、前記の点に鑑みてなされたものであり、簡易なカウンターを用いてカウンター値に基づく暗号化と復号を実現するための暗号システムを提供することを目的とする。
(1)この発明は上述した課題を解決するためになされたもので、本発明の一態様による暗号システムは、暗号情報を送信する送信側装置と前記暗号情報を受信する受信側装置とを備える暗号システムであって、前記送信側装置は、鍵情報と、暗号化処理ごとにカウントアップされる暗号化カウンター値とに基づき、暗号関数を用いて前記暗号情報を作成する暗号部と、前記暗号部によって作成された前記暗号情報とともに、前記暗号化カウンター値の一部を表わす部分値を前記受信側装置に送信する第1送信部と、を備え、前記受信側装置は、前記暗号化カウンター値に含まれる部分値および前記暗号情報を前記送信側装置から受信する受信部と、前記鍵情報と、復号化処理ごとにカウントアップされる復号化カウンター値とに基づき、前記暗号関数を用いて、前記受信部が受信した前記暗号情報を復号する復号部と、前記受信部が受信した前記暗号化カウンター値の一部を表わす部分値と、当該部分値に対応する前記復号化カウンター値とが一致しない場合、前記暗号化カウンター値の一部を表わす部分値に基づき、前記復号化カウンター値を補正する補正部と、を備え、前記暗号部は、前記暗号化カウンター値に基づき前記暗号関数を用いて前記鍵情報を暗号化したマスク情報を作成し、暗号処理の対象である暗号対象データと前記マスク情報に含まれる部分値との排他的論理和を算出することによって、前記暗号情報を作成し、前記暗号化カウンター値の一部を表わす部分値と前記マスク情報に含まれる部分値とのビット長の和が、前記暗号情報の送受信に用いられる通信パケットの最大値以下である。
これにより、本実施形態に係る暗号システムは、常に同期を必用とする高精度なカウンターやタイマーを用いなくても、簡易な構成によって、送信側装置側の暗号化カウンター値と受信側装置側の復号化カウンター値との同期をとることができる。
また、これにより、本実施形態に係る暗号システムは、鍵情報によって暗号化されたデータのビット長よりも短い暗号情報を作成することができる。このように、暗号化されたデータのビット長を長くすることによって、セキュリティー性を向上できるとともに、暗号システムが適用される通信方式に従って任意のデータ長の暗号情報を送信することができる。
)また、本発明の一態様による暗号システムにおいて、前記受信側装置は、前記送信側装置の前記暗号部によって暗号化される平文を事前に保持しており、前記復号部によって復号化された暗号情報と、前記平文とが、一致するか否かを判定する認証部と、前記認証部によって、前記復号化された暗号情報と前記平文とが一致すると判定された場合、認証判定の結果が真であることを示す情報を前記送信側装置に送信する第2送信部をさらに備える
これにより、本実施形態に係る暗号システムは、暗号システムに不正な受信側装置が接続された場合、送信側装置は、不正な受信側装置を検出することができる。
)また、本発明の一態様による暗号システムにおいて、前記送信側装置の前記第1送信部は、予め定められたタイミングに到達した場合、あるいは、前記認証部による認証判定の結果が偽である場合、またはその両方の場合において、前記暗号化カウンター値のすべてを前記受信側装置に送信する。
これにより、本実施形態に係る暗号システムは、送信側装置側の暗号化カウンター値と受信側装置側の復号化カウンター値との同期をとることができる。
)また、本発明の一態様による暗号システムにおいて、前記送信側装置は、前記暗号部によって前記暗号情報が作成された場合、前記送信側装置の記憶領域に格納されている前記暗号化カウンター値を1つカウントアップする第1カウンターをさらに備え、前記受信側装置は、前記復号部によって前記暗号情報が復号化された場合、前記受信側装置の記憶領域に格納されている前記復号化カウンター値を1つカウントアップする第2カウンターをさらに備える。
これにより、本実施形態に係る暗号システムは、常に同期を必用とする高精度なカウンターやタイマーを用いなくても、簡易な構成によって、送信側装置側の暗号化カウンター値と受信側装置側の復号化カウンター値との同期をとることができる。
(5)また、本発明の一態様による暗号システムは、互いに通信可能に接続された複数個の装置を備え、前記装置は、識別子により識別される暗号情報を送信する送信側装置と、前記暗号情報を受信する受信側装置と、のいずれか又は両方として機能する暗号システムであって、前記送信側装置は、鍵情報と、暗号化処理ごとにカウントアップされる、前記識別子に固有の暗号化カウンター値とに基づき、暗号関数を用いて前記暗号情報を作成する暗号部と、前記暗号部によって作成された前記暗号情報とともに、前記暗号化カウンター値の一部を表わす部分値を前記受信側装置に送信する第1送信部と、を備え、前記受信側装置は、前記暗号化カウンター値に含まれる部分値および前記暗号情報を前記送信側装置から受信する受信部と、前記鍵情報と、復号化処理ごとにカウントアップされる、前記識別子に固有の復号化カウンター値とに基づき、前記暗号関数を用いて、前記受信部が受信した前記暗号情報を復号する復号部と、前記受信部が受信した前記暗号化カウンター値の一部を表わす部分値と、当該部分値に対応する前記復号化カウンター値とが一致しない場合、前記暗号化カウンター値の一部を表わす部分値に基づき、前記復号化カウンター値を補正する補正部と、を備え、前記識別子ごとに、いずれか一つの前記装置のみが前記送信側装置として機能する。
(6)また、本発明の一態様による暗号情報認証方法は、暗号情報を送信する送信側装置と前記暗号情報を受信する受信側装置とを備える暗号システムにおいて暗号情報認証方法であって、前記送信側装置が、鍵情報と、暗号化処理ごとにカウントアップされる暗号化カウンター値とに基づき、暗号関数を用いて前記暗号情報を作成する暗号ステップと、前記送信側装置が、前記暗号ステップによって作成された前記暗号情報とともに、前記暗号化カウンター値の一部を表わす部分値を前記受信側装置に送信するステップと、前記受信側装置が、前記暗号化カウンター値に含まれる部分値および前記暗号情報を前記送信側装置から受信するステップと、前記受信側装置が、前記鍵情報と、復号化処理ごとにカウントアップされる復号化カウンター値とに基づき、前記暗号関数を用いて、前記送信側装置から受信した前記暗号情報を復号する復号ステップと、前記受信側装置が、前記送信側装置から受信した前記暗号化カウンター値の一部を表わす部分値と、当該部分値に対応する前記復号化カウンター値とが一致しない場合、前記暗号化カウンター値の一部を表わす部分値に基づき、前記復号化カウンター値を補正する補正ステップと、を備え、前記暗号ステップでは、前記暗号化カウンター値に基づき前記暗号関数を用いて前記鍵情報を暗号化したマスク情報が作成され、暗号処理の対象である暗号対象データと前記マスク情報に含まれる部分値との排他的論理和を算出することによって、前記暗号情報が作成され、前記暗号化カウンター値の一部を表わす部分値と前記マスク情報に含まれる部分値とのビット長の和が、前記暗号情報の送受信に用いられる通信パケットの最大値以下である。
(7)また、本発明の一態様によるプログラムは、コンピュータを、鍵情報と、暗号化処理ごとにカウントアップされる暗号化カウンター値とに基づき、暗号関数を用いて暗号情報を作成する暗号手段、前記暗号手段によって作成された前記暗号情報とともに、前記暗号化カウンター値の一部を表わす部分値を送信する送信手段として機能させ、前記暗号手段は、前記暗号化カウンター値に基づき前記暗号関数を用いて前記鍵情報を暗号化したマスク情報を作成し、暗号処理の対象である暗号対象データと前記マスク情報に含まれる部分値との排他的論理和を算出することによって、前記暗号情報を作成し、前記暗号化カウンター値の一部を表わす部分値と前記マスク情報に含まれる部分値とのビット長の和が、前記暗号情報の送受信に用いられる通信パケットの最大値以下である。
本発明によれば、簡易なカウンターを用いてカウンター値に基づく暗号化と復号を実現することができる。
本発明に係る第1実施形態に係る暗号システムの構成の一例を示すブロック図である。 本発明に係る第1実施形態に係る暗号部と復号部による処理の一例を説明するための参考図である。 本発明に係る第1実施形態に係る暗号情報認証方法の一例について説明するためのフローチャートである。 本発明に係る第2実施形態に係る暗号システムの構成の一例を示すブロック図である。 本発明に係る第3実施形態に係る暗号システムの構成の一例を示すブロック図である。 本発明に係る第4実施形態に係る暗号システムの構成の一例を示すブロック図である。 本発明に係る各実施形態に適用可能なカウンター値の初期化の一例を説明するための図である。 本発明に係る第4実施形態に係る暗号システムの構成の一例を示すブロック図である。 本発明に係る第4実施形態に係る暗号システムの構成の一例を示すブロック図である。 本発明に係る第4実施形態に係る暗号システムの構成の一例を示すブロック図である。
[第1実施形態]
本発明の実施形態について図面を参照して詳細に説明する。図1は、本実施形態に係る暗号システムの構成の一例を示すブロック図である。
図1に示す通り、本実施形態に係る暗号システム1は、暗号情報を送信する送信側装置100と、送信側装置100から暗号情報を受信する受信側装置200とを備える。
送信側装置100は、カウンター101と、記憶部102と、暗号部103と、通信部104と、カウンター値補正部105とを備える。
カウンター101は、前回値を保持するとともに、暗号化処理ごとに、カウントアップさせた暗号化カウンター値を出力する。本実施形態において、カウンター101は、暗号化処理ごとに+1を加算し、32bitの暗号化カウンター値であるCTR値_1を出力する。ただし、本発明はこれに限られず、カウンター101は、暗号化処理ごとに所定値を減算するものであってもよく、加減の値も1以外(2,3,・・・)であってもよい。なお、本実施形態において、カウンター101は、記憶部とCPU(Central Processing Unit)によって構成される機能部であって、記憶部が記憶する前回値に、CPUが+1を加算したCTR値_1を出力する構成である。また、送信側装置100のカウンター101は、不揮発性メモリにCTR値_1を格納しておく。これにより、送信側装置100は、電源がOFFした場合であっても、再び起動した際に、次のCTR値_1から利用することができる。
記憶部102は、暗号部103による暗号処理に利用される鍵情報と、暗号文を作成するための平文情報とが記憶されている。本実施形態において、記憶部102には、鍵情報として128bitのKEY値と、平文情報としてmbit(mは、1以上128未満の自然数)の平文PT_1とが、それぞれ記憶されている。
暗号部103は、鍵情報であるKEY値と、暗号化処理ごとにカウントアップされるCTR値_1とに基づき、暗号関数を用いて暗号情報である暗号文CTを作成する。本実施形態において、暗号部103は、128bitのKEY値を用いてmbitの平文PT_1を暗号化することによって、mbitの暗号文CTを作成する。
また、暗号部103は、暗号文CTを作成した際に利用したCTR値_1の一部を表わす部分値Cや送信側装置100におけるカウンター値を補正するための制御コード等を含むカウンタコントロール(以下、CCという)を作成し、暗号文に対応づける。このカウンタコントロールCCとは、カウンター値の補正処理用の制御コードである。
なお、本実施形態において、暗号文CTとカウンタコントロールCCとを含む情報を暗号文データという。また、本実施形態において、暗号文データは、64bit以下であり、カウンタコントロールCCのビット長と暗号文のビット長は、任意に設定可能である。さらに、本実施形態において、暗号部103は、CTR値_1の一部を表わす部分値Cとして、CTR値_1の最も下の位の桁からnbitの部分値Cを抽出する。
通信部104は、暗号部103によって作成された暗号文CTとカウンタコントロールCCとを含む暗号文データを、受信側装置200に送信する。
カウンター値補正部105は、予め決められたタイミングに到達した場合、カウンター101が保持するCTR値_1の全桁データを、通信部104を介して受信側装置200に送信する。このカウンター値補正部105は、例えば、カウンター101が予め決められた数をカウントしたタイミング、あるいは、送信側装置100や暗号システム1に搭載されたタイマー(図示せず)によって計時された値が予め決められた時間を経過したタイミングで、CTR値_1の全桁データを送信する。
受信側装置200は、カウンター201と、記憶部202と、復号部203と、通信部204と、カウンター値補正部205とを備える。
カウンター201は、復号化処理ごとに、カウントアップさせた復号化カウンター値を出力する。本実施形態において、カウンター201は、復号化処理ごとに+1を加算し、32bitの復号化カウンター値であるCTR値_2を出力する。ただし、本発明はこれに限られず、カウンター201は、復号化処理ごとに所定値を減算するものであってもよく、加減の値も1以外(2,3,・・・)であってもよい。なお、本実施形態において、カウンター201は、カウンター101と同様、記憶部とCPUによって構成される機能部である。また、受信側装置200のカウンター201は、揮発性メモリにCTR値_2を格納しておく。これにより、受信側装置200は、電源のOFF後に再び起動した場合であってもCTR値_2を保持していないため、CTR値_1の漏洩を防止するとう観点から、セキュリティー性を向上させることができる。
記憶部202は、復号部203による暗号処理に利用される鍵情報と、外部機器において暗号文を作成する際に利用される平文情報とが記憶されている。本実施形態において、記憶部202には、鍵情報として128bitのKEY値が、平文情報としてmbit(mは、1以上128未満の自然数)の平文PT_1が、それぞれ記憶されている。つまり、この記憶部202には、送信側装置100の暗号化処理において利用されるKEY値とPT_1と同一の情報が予め記憶されている。
通信部204は、送信側装置100からの暗号文データを受信する。
復号部203は、通信部204が受信した暗号文データに含まれる暗号文と、記憶部202に記憶されているKEY値と、復号化処理ごとにカウンター201によってカウントアップされるCTR値_2とに基づき、暗号関数を用いて暗号文を復号して、平文情報を抽出する。本実施形態において、復号部203による復号によって得られた平文情報を、平文PT_2という。
カウンター値補正部205は、通信部204が受信した暗号文データに含まれるカウンタコントロールCCに基づき、カウンター201から出力されるCTR値_2、つまり、復号部203による復号化処理で利用されるCTR値_2を補正する。具体的に説明すると、カウンター値補正部205は、暗号文の暗号化に利用されたカウンター値であるCTR値_1の一部を表わす部分値をカウンタコントロールCCから取得し、カウンタコントロールCCから取得したCTR値_1の一部と、カウンター201から出力されるCTR値_2の一部とを比較する。なお、カウンター値補正部205は、CTR値_1の一部と同じ位の桁のCTR値_2の一部を取得し、それぞれを比較する。CTR値_1の一部とCTR値_2の一部とが一致しない場合、カウンター値補正部205は、CTR値_1の一部に基づき、カウンター201から出力されるCTR値_2を補正する。具体的説明すると、カウンター値補正部205は、カウンター201から出力されるCTR値_2の一部がCTR値_1と同じ値になるまで、+1を加算する。一方、CTR値_1の一部とCTR値_2の一部とが一致する場合、カウンター値補正部205は、CTR値_2を補正しない。
なお、カウンター値補正部205による補正を数式で示すと以下のように示すことができる。
[カウンター値補正部205による補正を表わす数式]
CTR値_2←CTR値_1+{(CTR値_1の部分値C−CTR値_2の部分値C’) AND Cmax}・・・式(1)
なお、CTR値_1の部分値Cは、CTR値_1に含まれる一部である。
CTR値_2の部分値C’は、CTR値_1の部分値Cと同じ位の桁のCTR値_2の一部である。
ANDは、論理積を示す。
Cmaxは、CTR値_1の部分値Cのビット長と同じnbit長の符号なしの整数の最大値である。
また、暗号部103は、暗号関数処理部131と、マスク処理部132と、排他的論理和計算部133と、暗号文データ生成部134とを備える。
さらに、復号部203は、暗号関数処理部231と、マスク処理部232と、排他的論理和計算部233と、復号処理部334とを備える。
なお、暗号部103と復号部203とにおいて、それぞれ同一の名称で示す機能部は同一の機能を有する。
ここで、図2を参照して、暗号部103と復号部203が備える各機能部について詳細に説明する。図2は、暗号部103と復号部203による処理の一例を説明するための参考図である。
暗号関数処理部131は、記憶部102から読み出した128bitのKEY値と、カウンター101から出力される32bitのCTR値_1とに基づき、予め決められた暗号関数を用いてKEY値を暗号化して、128bitのマスク情報であるMASK_1を生成し、マスク処理部132に出力する。なお、暗号関数処理部131は、高いセキュリティーの実現するため、KEY値を128bit以上の値に暗号化することが好ましい。
マスク処理部132は、暗号関数処理部131から入力するMASK_1の先頭からmbitの値を抽出し、抽出したmbitのMASK部分値_1を排他的論理和計算部133に出力する。なお、マスク処理部132が抽出するMASK部分値_1のビット長を予め決められており、1≦m<128である。
排他的論理和計算部133は、マスク処理部132から入力するmbitのMASK部分値_1と、記憶部102から読み出したmbitの平文PT_1との排他的論理和を算出し、算出したmbitの値、つまり、暗号文CTを暗号文データ生成部134に出力する。
暗号文データ生成部134は、排他的論理和計算部133によって暗号文CTが算出された際に利用されたCTR値_1をカウンター101から入力し、このCTR値_1の最も下の位の桁からnbitの部分値Cを抽出する。この暗号文データ生成部134は、抽出したCTR値_1の部分値Cと、この部分値Cのビット長を示す値Lと、暗号化フラグEとを含むカウンタコントロールCCを生成する。本実施形態において、カウンタコントロールCC内のデータの順番は、先頭から、暗号化フラグE、ビット長L、CTR値_1の部分値Cの順番である。カウンタコントロールCCのビット長は、1〜64bitであることが好ましい。なお、暗号化フラグEとは、電文が暗号化されているか否かを示す制御コードである。暗号化フラグE=1の場合、以下に続く電文が暗号化された電文であることを示し、暗号化フラグEの後ろにはCTR値_1の部分値Cのビット長Lが続く。一方、暗号化フラグE=0の場合、以下に続く電文が暗号化されていない電文であることを示し、暗号化フラグEの後ろには、暗号化されていない平文PTが続く。また、ビット長Lは、これに続くCTR値_1の部分値Cのビット長(=n)を表わす。なお、n=0の場合、つまり、CTR値_1の部分値Cがない場合、ビット長Lの後ろには、暗号化された暗号文CTあるいは暗号化されていない平文PTが続く。さらに、CTR値_1の部分値Cは、CTR値_1の下位側nbitの値である。なお、nは、0≦n≦57(1+6+n≦64)となる。本実施形態において、カウンタコントロールCCには、暗号化フラグEとビット長Lとを含む例について説明したが、本発明はこれに限られず、送信側装置100と受信側装置200が搭載されるシステムの仕様としてこれらが固定値である場合、省略してもよい。
また、暗号文データ生成部134は、生成したカウンタコントロールCCと、排他的論理和計算部133から入力するmbitの暗号文CTとを対応付けて通信部104に出力する。
通信部104は、カウンタコントロールCC、暗号文CTの順番で、カウンタコントロールCCと暗号文CTからなる暗号文データを受信側装置200に送信する。
次に、受信側装置200の各機能構成の処理について詳細に説明する。
カウンター値補正部205は、通信部204が受信した暗号文データから、暗号文の暗号化に利用されたカウンター値であるCTR値_1の一部を表わす部分値を取得し、このCTR値_1の一部と、カウンター201から出力されるCTR値_2の一部とを比較する。CTR値_1の一部とCTR値_2の一部とが一致しない場合、カウンター値補正部205は、カウンター201から出力されるCTR値_2の一部がCTR値_1と同じ値になるまで、+1を加算することによって、CTR値_2を補正する。
暗号関数処理部231は、記憶部202から読み出した128bitのKEY値と、カウンター201から出力される32bitのCTR値_2とに基づき、予め決められた暗号関数を用いてKEY値を暗号化して、128bitのMASK_2を生成し、マスク処理部132に出力する。なお、暗号関数処理部231で用いられる暗号関数は、暗号関数処理部131で用いられる暗号関数と同一のものである。
マスク処理部232は、暗号関数処理部231から入力するMASK_2の先頭からmbitと抽出し、抽出したmbitのMASK部分値_2を排他的論理和計算部233に出力する。なお、マスク処理部232が抽出するMASK部分値のビット数を予め決められており、1≦m<128である。
排他的論理和計算部233は、マスク処理部232から入力するmbitのMASK部分値_2と、送信側装置100から受信した暗号文データに含まれるmbitの暗号文CTとの排他的論理和を算出し、算出したmbitの値、つまり、平文PT_2を認証部234に出力する。
認証部234は、記憶部202から読み出した平文PT_1と、排他的論理和計算部233から出力された平文PT_2を比較し、これらが一致した場合、認証判定の結果が真であることを示す情報を通信部204を介して送信側装置100に送信する。また、認証部234は、記憶部202から読み出した平文PT_1と、排他的論理和計算部233から出力された平文PT_2とが一致しない場合、認証判定の結果が偽であることを示す情報を通信部204を介して送信側装置100に送信する。なおこの場合において、認証部234は、カウンター101が保持するCTR値_1の全桁データの送信を、通信部204を介して送信側装置100に要求するものであってもよい。
通信部204は、認証部234から入力する情報を、送信側装置100に送信する。
次に、図3を参照して、本実施形態に係る暗号情報認証方法の一例について説明する。図3は、本実施形態に係る暗号情報認証方法の一例について説明するためのフローチャートである。本実施形態では、送信側装置100がCTRマスタであって、受信側装置200がCTRスレーブである例について説明する。なお、CTRマスタとは、暗号部103を備え、暗号化に用いるCTR値_1を保持している装置をいう。一方、CTRスレーブとは、復号部203を備える装置をいう。
(ステップST101)
送信側装置100の通信部104は、暗号化通信を開始する前に、CTR値_1の初期値を受信側装置200に送信する。例えば、送信側装置100は、カウンター101が保持するCTR値_1の全桁の値を初期値として、受信側装置200に送信する。
(ステップST102)
次いで、送信側装置100の暗号部103は、暗号化処理の実行指示を待つ。例えば、送信側装置100内に含まれる制御部(図示せず)から暗号化処理の実行が指示された場合、暗号部103は、以下に説明する暗号化処理を実行する。
(ステップST103)
暗号部103の暗号関数処理部131は、記憶部102から読み出したKEY値と、カウンター101から出力されるCTR値_1とに基づき、KEY値を暗号化して、MASK_1を生成し、マスク処理部132に出力する。
(ステップST104)
そして、マスク処理部132は、暗号関数処理部131から入力するMASK_1の一部であるMASK部分値_1を抽出し、この抽出したMASK部分値_1を排他的論理和計算部133に出力する。
(ステップST105)
次いで、排他的論理和計算部133は、マスク処理部132から入力するMASK部分値_1と、記憶部102から読み出した平文PT_1との排他的論理和を算出し、算出した暗号文CTを暗号文データ生成部134に出力する。
(ステップST106)
そして、暗号文データ生成部134は、排他的論理和計算部133によって暗号文CTが算出された際に利用されたCTR値_1をカウンター101から入力し、このCTR値_1の一部である部分値Cを抽出する。この暗号文データ生成部134は、抽出したCTR値_1の部分値Cと、この部分値Cのビット長を示す値Lと、暗号化フラグEとを含むカウンタコントロールCCを生成する。
また、暗号文データ生成部134は、生成したカウンタコントロールCCと、排他的論理和計算部133から入力する暗号文CTとを対応付けた情報である暗号文データを生成し、通信部104に出力する。
(ステップST107)
通信部104は、暗号文データ生成部134によって生成された暗号文データに基づき、カウンタコントロールCC、暗号文CTの順番で、暗号文データを受信側装置200に送信する。
(ステップST108)
一方、受信側装置200は、送信側装置100からCTR値_1の初期値を受信すると、CTR値の初期設定処理を実行する。例えば、受信側装置200のカウンター201は、受信したCTR値_1の初期値をCTR値_2の初期値として保持する。これにより、送信側装置100のカウンター101のCTR値_1と受信側装置200のカウンター201のCTR値_2とを同期させることができる。
(ステップST109)
次いで、受信側装置200は、送信側装置100から暗号文データを受信する。
(ステップST110)
そして、カウンター値補正部205は、通信部204が受信した暗号文データから、暗号文の暗号化に利用されたカウンター値であるCTR値_1の一部を表わす部分値Cを取得し、このCTR値_1の部分値Cと、カウンター201から出力されるCTR値_2の部分値とを比較する。
(ステップST111−YES、ステップST112)
CTR値_1の部分値CとCTR値_2の部分値とが一致しない場合、カウンター値補正部205は、カウンター201が保持するCTR値_2の部分値がCTR値_1の部分値Cと同じ値になるまで、+1を加算することによって、CTR値_2を補正する。これにより、送信側装置100のカウンター101のCTR値_1と受信側装置200のカウンター201のCTR値_2とを同期させることができる。
(ステップST111−NO)
一方、CTR値_1の部分値CとCTR値_2の部分値とが一致する場合、カウンター値補正部205は、CTR値_2の補正はしない。
(ステップST113)
そして、復号部203の暗号関数処理部231は、記憶部202から読み出したKEY値と、カウンター201から出力されるCTR値_2とに基づき、KEY値を暗号化して、MASK_2を生成し、マスク処理部132に出力する。
(ステップST114)
次いで、マスク処理部232は、暗号関数処理部131から入力するMASK_2の一部であるMASK部分値_2を抽出し、この抽出したMASK部分値_2を排他的論理和計算部233に出力する。
(ステップST115)
そして、排他的論理和計算部233は、マスク処理部232から入力するMASK部分値_2と、送信側装置100から受信した暗号文データに含まれる暗号文CTとの排他的論理和を算出し、算出した平文PT_2を認証部234に出力する。
(ステップST116)
次いで、認証部234は、記憶部202から読み出した平文PT_1と、排他的論理和計算部233から出力された平文PT_2を比較する。
(ステップST116−YES,ステップST117)
記憶部202から読み出した平文PT_1と、排他的論理和計算部233から出力された平文PT_2とが一致した場合、認証部234は、認証判定の結果が「真」であることを示す情報を通信部204に出力する。通信部204は、認証部234から入力する情報を、送信側装置100に送信する。
(ステップST116−YES,ステップST118)
一方、記憶部202から読み出した平文PT_1と、排他的論理和計算部233から出力された平文PT_2とが一致しない場合、認証部234は、認証判定の結果が「偽」であることを示す情報を通信部204に出力する。通信部204は、認証部234から入力する情報を、送信側装置100に送信する。
上述の通り、送信側装置100から送信されるCTR値_1の部分値Cに基づき、受信側装置200のCTR値_2を補正するカウンター値補正部205を備えることによって、送信側装置100と受信側装置200のカウンター値を同期させることができる。これにより、暗号文を受信した時点で受信側装置200のCTR値_2が送信側装置100のCTR値_1と同期していない場合であっても、受信側装置200は、暗号文CTを復号することができる。
そして、受信側装置200は、送信側装置100から受信した暗号文CTを復号した結果が、決められた平文PT_1と一致する場合、この受信側装置200が送信側装置100と同一の鍵情報を保持する正規品であると判定することができる。よって、受信側装置200は、認証判定の結果が「真」であることを示す情報を送信側装置100に送信することによって、送信側装置100は、受信側装置200を正規品であると認識することができる。
よって、送信側装置100や受信側装置200は、常にカウンター値の同期を必要としないため、CTR値_1やCTR値_2を保持する記憶部と、暗号化処理あるいは復号化処理毎に、前回値をカウントアップさせるCPU(処理部)によって、カウンター101,201を実現することができる。従って、精度の高いカウンターを必要としないため、各装置に精度の高いカウンターを設けることによるコストを削減することができる。
なお、本実施形態に係る送信側装置100と受信側装置200は、例えば、電気自動車(以下、EV(electric vehicle)という)に搭載される制御ユニットに適用することができる。以下、適用シーンにおける課題と効果について説明する。
EVに搭載されている蓄電池(バッテリ)は、そのものの経済価値が高く、偽造や模倣の対象となりやすい。加えて、EV用の蓄電池は、エネルギー密度が高く、品質管理が必要な危険物である。このような背景から、EVに使用される蓄電池の偽造品や模倣品を排除するため、蓄電池が正規品であることを認証するための仕組みが必要とされている。
蓄電池の認証を行う仕組みとしては、蓄電池または蓄電池を制御する制御ユニット内にセキュリティデバイス(LSI)を設け、暗号通信を行うことで実現することができる。EV内の各ユニット間の通信には、一般的にはCAN-BUSが広く使われている。このCAN-BUSの通信パケットは、最大8バイトである。
一方、暗号通信に使われる暗号アルゴリズムは、現在、セキュリティーの観点から、16バイトブロック長以上のものを使用することが推奨されている。
このため、暗号単位ブロック長がCAN-BUSの通信パケットサイズより大きくなってしまうため、単純実装が出来ないという問題があった。
そこで、本実施形態に係る暗号システム1は、ブロック暗号の暗号モードの1つであるCTRモード(CTR:カウンタ)を用いることで、セキュリティーの観点から暗号通信に使われる暗号アルゴリズムの暗号化された情報のバイトブロック長を推奨値以上とするとともに、CAN-BUSの通信パケットサイズの制約の問題を解消することができる。
つまり、本実施形態に係る送信側装置100と受信側装置200は、CTR値_1とCTR値_2とに基づき、同一のKEY値を暗号化したMASK_1とMASK_2を作成する。ここで、CTR値_1とCTR値_2とは互いに同期しているため、MASK_1とMASK_2も同一の値となる。従って、暗号部103と復号部203は、生成するMASK_1とMASK_2のビット長を16バイトブロック長以上のものとすることにより、セキュリティーの観点から推奨されているビット長を確保することができる。
また、暗号部103は、送信側装置100から受信側装置200に送信する暗号化データのバイトブロック長が、CAN-BUSの通信パケットの最大値(8バイト)以下となるように、MASK_1からmbitのMASK部分値_1を抽出する。なお、mbitの値は、カウンタコントロールCCのビット長を加えたとしても、CAN-BUSの通信パケットの最大値(8バイト)以下となる数値が任意に設定される。そして、このMASK部分値_1に基づき、平文PT_1から暗号文を生成する。これにより、送信側装置100は、mbitの暗号文を作成することができるため、CAN-BUSの通信パケットの最大値(8バイト)以下とすることができ、CAN-BUSの通信パケットサイズの制約の問題を解消することができる。
なお、このCTRモードとは、ブロック暗号をストリーム暗号のように使用するための演算方式であり、1ビット単位の暗復号が可能である。CTR値は、通信が行われる毎に更新(+1)される時変パラメータである。このCTRモードにおいては、送信側装置100と受信側装置200で同じ値のCTR値を共有(同期)する必要がある。
通信電文の中にCTR値を埋め込めば、送信側装置100と受信側装置200におけるCTR値の共有(同期)は容易に実現可能であるが、CAN-BUSの通信パケットにCTRを埋め込むと、それだけで通信パケットを消費してしまい、伝送効率が非常に悪くなってしまう。
そこで、本実施形態に係る暗号システム1は、送信側装置100と受信側装置200とにおいて、それぞれCTR値_1とCTR値_2とを保持し、CTR値_1の全ての値を全ての通信電文中に埋め込まないようにしたため、伝送効率の悪化を抑えた上で、CTRの同期を取ることができる。
つまり、本実施形態に係る送信側装置100は、CTR値_1の一部である部分値Cを暗号文CTとともに受信側装置200に送信する。また、受信側装置200は、暗号文CTを送信側装置100から受信した場合、CTR値_1の一部を用いて、CTR値_1とCTR値_2とを同期させるように、自身のカウンター201のCTR値_2を補正する。これにより、自動的に同期する精度の高いカウンターでなく、暗号化処理あるいは復号化処理の処理ごとにカウンター値をカウントアップさせるような簡易なカウンターを用いる場合であっても、復号化処理の際に、送信側装置100と受信側装置200のカウンターのカウンター値を同期させることができる。また、同期させるための情報の伝送量を制限することによって、伝送効率の悪化を抑えることができる。
なお、式(1)で示した通り、カウンター値補正部205は、CTR値_1とCTR値_2とのズレがCmax以下である場合、補正により両値を同期させることができるが、CTR値_1とCTR値_2とのズレがCmaxを超えた場合、補正により両値を同期させることができない。
このような場合、以下の方法を用いて、補正によりCTR値_1とCTR値_2を同期させることができる。
(案1)
例えば、受信側装置200のカウンター値補正部205によって、式(1)に示すような補正が実行された場合であっても、記憶部202から読み出した平文PT_1と、排他的論理和計算部233から出力された平文PT_2とが一致しない場合が生じたとする。この場合、認証部234は、暗号関数処理部231に対して、1回目の補正処理において利用したCTR値_2に対して、Cmaxを加算したCTR値_2を利用して、再びMASK_2を算出するよう指示する。これにより、復号部203は、1回目の補正処理において利用したCTR値_2にCmaxを加算したCTR値_2を用いて、2回目の補正処理実行することができる。
これにより、カウンター値補正部205は、CTR値_1とCTR値_2とのズレがCmaxを超えた場合であっても、補正により両値を同期させることができ
なお、受信側装置200は、2回目以降の補正処理の回数に上限値が設定されていることが好ましい。補正処理の回数が上限値に達した場合、受信側装置200は、送信側装置100に対して、CTR値_1の全桁データの送信を要求することにより、CTR値_2をCTR値_1に同期させることができる。
(案2)
また、送信側装置100は、定期的に、CTR値_1の全桁データを、受信側装置200に送信するものであってもよい。例えば、送信側装置100は、CTR値_1の部分値Cが0となる度に、カウンター101が保持するCTR値_1の全桁データを、受信側装置200に送信する。受信側装置200は、受信したCTR値_1の全桁データを、カウンター201が保持するCTR値_2として上書き保存する。これにより、CTR値_2をCTR値_1に同期させることができる。
(案3)
さらに、本発明は、案2で説明したタイミングに限られず、例えば、送信側装置100が備えるタイマーによて計時された一定時間が経過する度に、カウンター101が保持するCTR値_1の全桁データを、受信側装置200に送信するものであってよい。
(案4)
また、送信側装置100は、案2と案3とを組み合わせた方法によって、カウンター101が保持するCTR値_1の全桁データを、受信側装置200に送信するものであってもよい。
[第2実施形態]
本発明に係る第2実施形態について図面を参照して詳細に説明する。図4は、第2実施形態に係る暗号システムの構成の一例を示すブロック図である。
図4に示す通り、本実施形態に係る暗号システム2は、バスを介してそれぞれ通信可能に接続されているN個の装置M1_1,M1_2,・・・,M1_Nを備える。これら装置M1_1,M1_2,・・・,M1_Nは、第1実施形態に係る送信側装置100および受信側装置200として機能する装置である。また、これら装置M1_1,M1_2,・・・,M1_Nは、それぞれ、カウンター101およびカウンター201に相当するカウンター301_1,301_2,・・・,301_Nを備える。なお、カウンターとは、メモリに格納されている最新のカウンター値を参照して、+1をカウントアップしたカウンター値を上書きして更新していくことによって、カウンター値を出力する処理構成をいう。
これらカウンター301_1,301_2,・・・,301_Nは、予め決められたCAN−IDに対応するデータの暗号化および復号を、共通のカンンター値を出力するカウンターである。
例えば、装置M1_1が、カウンター301_1から出力されるカウンター値に基づき暗号文データを生成し、CAN−ID=001あるいは002を含む暗号文データを他の装置M1_2,・・・,M1_Nに送信したとする。
ここで、装置M1_2は、CAN−ID=001あるいは002を含む暗号文データを受信すると、自装置のカウンター301_2から出力されるカウンター値に基づき、暗号文データに含まれる暗号文を復号すると仮定する。つまり、CAN−ID=001あるいは002を含む暗号文データについては、装置M1_1がCTRマスター(送信側装置100)であって、他の装置M1_2がCTRスレーブ(受信側装置200)であるとする。
一方、装置M1_Nは、CAN−ID=001を含む暗号文データを受信すると、自装置のカウンター301_Nから出力されるカウンター値に基づき、暗号文データに含まれる暗号文を復号する。しかし、CAN−ID=002を含む暗号文データを受信すると、装置M1_Nは、暗号文データに含まれる暗号文を復号することなく、例えば廃棄するとする。つまり、CAN−ID=001を含む暗号文データについては、装置M1_1がCTRマスター(送信側装置100)であって、他の装置M1_2がCTRスレーブ(受信側装置200)である。
(案1)
ここで、受信側装置200である他の装置M1_2,・・・,M1_Nは、受信した暗号文データからCAN−IDを読み出し、読み出したCAN−IDが自装置の復号対象であるか否かを判定する。受信した暗号文データが自装置の復号対象であると判定した場合、他の装置M1_2,・・・,M1_Nは、自装置のカウンター301_2,・・・,301_Nから出力されるカウンター値に基づき、暗号文データに含まれる暗号文を復号する。
一方、受信した暗号文データが自装置の復号対象でないと判定した場合、他の装置M1_2,・・・,M1_Nは、暗号文データに含まれる暗号文を復号することなく、例えば廃棄する。例えば、装置M1_Nは、CAN−ID=002を含む暗号文データを受信した場合、暗号文データは復号せずに破棄するが、自装置のカウンター301_Nのカウンター値はカウントアップしておく。あるいは、この場合、装置M1_Nは、受信した暗号文データからカウンタコントロールCCに含まれる情報を抽出し、自装置のカウンター301_Nから出力されるカウンター値を補正するものであってもよい。
これにより、例えば、装置M1_Nが、連続して複数のCAN−ID=002を含む暗号文データを受信した後、CAN−ID=001を含む暗号文データを受信した場合であっても、自装置のカウンター301_Nが出力するカウンター値と、CTRマスターである装置M1_1のカウンター301_1の出力するカウンター値とを、同期させることができる。
(案2)
また、装置M1_1,M1_2,・・・,M1_Nのうちいずれか1つが、固定のCTRマスターとなって、定期的に、カウンター値の全桁データを、CTRスレーブとなっている他の装置に送信するものであってもよい。例えば、装置M1_1が固定のCTRマスターである設定されている場合、装置M1_1は、定期的に、カウンター値の全桁データを、他の装置M1_2,・・・,M1_Nのそれぞれに送信する。他の装置M1_2,・・・,M1_Nは、それぞれ、受信したカウンター値の全桁データに基づいて、自装置のカウンター301_2,・・・,301_Nから出力されるカウンター値を補正する。つまり、他の装置M1_2,・・・,M1_Nは、自装置のカウンター301_2,・・・,301_Nから出力されるカウンター値を、受信したカウンター値と一致させる。これにより、他の装置M1_2,・・・,M1_Nは、自装置のカウンター301_2,・・・,301_Nが出力するカウンター値と、CTRマスターである装置M1_1のカウンター301_1の出力するカウンター値とを、同期させることができる。
なお、CTRスレーブとなっている他の装置M1_2,・・・,M1_Nでは、カウンター値を利用する場合、装置M1_1からカウンター値の全桁データを受信するまで、自装置のカウンター301_2,・・・,301_Nから出力されるカウンター値の利用を中断しておくものであってもよい。つまり、他の装置M1_2,・・・,M1_Nは、装置M1_1からカウンター値の全桁データを受信するのを待って、カウンター値を利用する。例えば、最新のカウンター値の全桁データを受信した場合、他の装置M1_2,・・・,M1_Nは、自装置のカウンター301_2,・・・,301_Nから出力されるカウンター値と受信したカウンター値とが一致するか否かを判定する。一致しない場合、他の装置M1_2,・・・,M1_Nは、自装置のカウンター301_2,・・・,301_Nから出力されるカウンター値を補正する。この処理の後、他の装置M1_2,・・・,M1_Nでは、カウンター値を利用する。
(案3)
さらに、案2において、他の装置M1_2,・・・,M1_Nは、装置M1_1からカウンター値の全桁データを受信するのを待って、カウンター値を利用する場合、カウンター値の利用タイミングが遅れる場合がある。このような場合、他の装置M1_2,・・・,M1_Nは、カウンター値の利用の必要が生じた場合、CTRマスターである装置M1_1に対してカウンター値の全桁データの送信を要求する。これにより、他の装置M1_2,・・・,M1_Nは、最新のカウンター値を取得し、同期させた後で、迅速に、カウンター値を利用した処理を実行することができる。
[第3実施形態]
本発明に係る第3実施形態について図面を参照して詳細に説明する。図5は、第3実施形態に係る暗号システムの構成の一例を示すブロック図である。
図5に示す通り、本実施形態に係る暗号システム3は、バスを介してそれぞれ通信可能に接続されているN個の装置M2_1,M2_2,・・・,M2_Nを備える。これら装置M2_1,M2_2,・・・,M2_Nは、第1実施形態に係る送信側装置100および受信側装置200として機能する装置である。また、これら装置M2_1,M2_2,・・・,M2_Nは、それぞれ、送信側装置100のカウンター101に相当するカウンター401_1,401_2,・・・,401_Nを備える。また、装置M2_2は、受信側装置200のカウンター201に相当するカウンター402_2を備える。装置M2_Nは、受信側装置200のカウンター201に相当するカウンター402_N,403_Nを備える。
カウンター402_2は、装置M2_1から受信した暗号文データを復号するために用いるカウンター値を保持しており、装置M2_1のカウンター401_1のカウンター値と同期するように補正される。例えば、第1実施形態において説明した通り、受信側装置200である装置M2_2は、送信側装置100である装置M2_1から受信した暗号文データからカウンタコントロールCCに含まれる情報を抽出し、自装置のカウンター402_2が保持するカウンター値を補正するものであってもよい。
また、カウンター402_Nは、装置M2_1から受信した暗号文データを復号するために用いるカウンター値を保持しており、装置M2_1のカウンター401_1のカウンター値と同期するように補正される。カウンター403_Nは、装置M2_2から受信した暗号文データを復号するために用いるカウンター値を保持しており、装置M2_2のカウンター401_2のカウンター値と同期するように補正される。
このように、各装置毎に、暗号文を作成する際のカウンター値を保持する。つまり、装置M2_1,M2_2,・・・,M2_Nがそれぞれ送信側装置100である場合に利用されるカウンター値が、一致していない。これにより、装置M2_1,M2_2,・・・,M2_Nのうちのいずれか1つのカウンター値が不正に見られた場合であっても、他の装置M2_1,M2_2,・・・,M2_Nにおいて利用されるカウンター値までは知られずにすむ。よって、セキュリティー性を向上させることができる。
なお、この場合、受信側装置200として受信した暗号文データが、異なる装置の送信側装置100から受信したデータであって、平文が同一である場合、受信側装置200において利用するカウンター値を決定できないおそれがある。このようば問題を解決するため、装置M2_1,M2_2,・・・,M2_Nは、暗号文データを受信側装置200に送信する際、自装置を他の装置と識別するための装置IDを対応付けて、受信側装置200に送信するものであってもよい。
また、カウンター401_1,401_2,・・・,401_Nが保持するカウンター値は、不揮発性メモリに記憶されており、カウンター402_2,402_N,403_Nが保持するカウンター値は、揮発性メモリに記憶されている。これにより、例えば、装置M2_Nが保持するカウンター値が不正に見られた場合であっても、カウンター401_1,401_2が保持するカウンター値は、電源がOFFされた際に消去されているため、流出することを防止することができ、セキュリティー性を向上させることができる。
[第4実施形態]
本発明に係る第4実施形態について図面を参照して詳細に説明する。図6は、第4実施形態に係る暗号システムの構成の一例を示すブロック図である。
図6に示す通り、本実施形態に係る暗号システム4は、バスを介してそれぞれ通信可能に接続されているN個の装置M3_1,M3_2,・・・,M3_Nを備える。これら装置M3_1,M3_2,・・・,M3_Nは、第1実施形態に係る送信側装置100および受信側装置200として機能する装置である。
装置M3_1は、送信側装置100のカウンター101に相当するカウンター501_1,502_1を備える。装置M3_2は、送信側装置100のカウンター101に相当するカウンター502_2を備える。これら送信側装置100のカウンター101に相当するカウンター501_1,502_1,502_2は、それぞれ、データに応じたカウンター値を保持する。なお、本実施形態にでは、説明簡略化のため、各装置装置M3_1,M3_2,・・・,M3_Nからはそれぞれ異なるデータを暗号化して送信する例について説明する。
また、装置M3_2は、受信側装置200のカウンター201に相当するカウンター501_2を備える。装置M3_Nは、受信側装置200のカウンター201に相当するカウンター501_N,502_Nを備える。
カウンター501_2は、装置M3_1から受信した、CAN−ID=001のデータの暗号文を含む暗号文データを復号するために用いるカウンター値を保持しており、装置M3_1のカウンター501_1のカウンター値と同期するように補正される。なお、補正方法については、例えば、第1実施形態において説明した通り、受信側装置200である装置M3_2は、送信側装置100である装置M3_1から受信した暗号文データからカウンタコントロールCCに含まれる情報を抽出し、自装置のカウンター501_2が保持するカウンター値を補正するものであってもよい。
また、カウンター501_Nは、装置M3_2から受信した、CAN−ID=002のデータの暗号文を含む暗号文データを復号するために用いるカウンター値を保持しており、装置M3_2のカウンター502_2のカウンター値と同期するように補正される。カウンター502_Nは、装置M3_1から受信した、CAN−ID=003のデータの暗号文を含む暗号文データを復号するために用いるカウンター値を保持しており、装置M3_1のカウンター502_1のカウンター値と同期するように補正される。
このように、装置M2_1,M2_2,・・・,M2_Nは、データの種類に応じて、それぞれ異なるカウンター値を保持している。つまり、装置M2_1,M2_2,・・・,M2_Nが、複数の異なるデータを暗号化して送信する送信側装置100である場合、送信側装置100のカウンター101に相当するカウンターをデータ毎に備えている。また、本実施形態のように、同一のCAN−IDのデータについて複数の装置を送信側装置100としない場合、データ毎に、装置M3_1,M3_2,・・・,M3_Nがそれぞれ送信側装置100として利用するカウンター値が、互いに一致していない。
これにより、装置M3_1,M3_2,・・・,M3_Nのうちのいずれか1つのカウンター値が不正に見られた場合であっても、他の装置M3_1,M3_2,・・・,M3_Nにおいて利用されるカウンター値までは知られずにすむ。よって、セキュリティー性を向上させることができる。
また、データ毎にカウンター値を決定することができる。よって、高いセキュリティーが求められるデータに対しては、カウンター値のビット長を長くし、低いセキュリティーでよいデータに対しては、カウンター値のビット長を短くすることができる。これにより、高効率に暗号化および復号の処理を実行できるとともに、カウンター値の同期処理の効率についても向上させることができる。
[カウンター値の初期化の一例]
次に、上述の実施形態に適用できる、CTR値_2の初期化の一例について説明する。
初めに、図3に示すステップST101に相当する処理の一例について説明する。
送信側装置100は、初期値であるCTR値_1の全桁データを送信するための専用IDを用いて、このCTR値_1の全桁データを受信側装置200に送信する。なお、専用IDとは、データの種類を示す固有の識別情報である。
このCTR値_1の全桁データのデータフレームの一例を、図7に示す。図7は、CTR値_1の全桁データのデータフレームの一例を示す図である。
図7に示す通り、CTR値_1の全桁データのデータフレームは、ID、DLC、データの順番で送出されるデータである。IDは、CTR値_1の全桁データに割り当てられた専用IDである。DLTは、データのビット長を示す。データは、CTR管理番号とCTR全桁データとを含む。CTR管理番号は、システムで利用するカウンター値が複数ある場合に、装置あるいはデータに対応するCTR値_1であるのかを識別するための識別情報である。本実施形態において、CTR管理番号は、例えば、11bitのデータである。CTR全桁データは、CTR値_1の全桁の値を示す情報であって、例えば、32bitである。
なお、CTR全桁データのビット長を削ることはできないため、データフレームのビット長を抑えるためには、IDのビット長をできるだけ小さい値とした方がよい。
次に、図3に示すステップST108に相当する処理が実行されなかった場合の処理の一例について説明する。つまり、送信側装置100から送信されるCTR値_1の全桁データを受信側装置200が受信できなかった場合の処理の一例である。
例えば、送信側装置100が、1回だけCTR値_1の全桁データを送信するとすると、受信側装置200がこのデータを受信できない場合がある。例えば、受信側装置200側で、この全桁データよりも優先度の高いデータを受信している場合や、優先度の高い処理を実行している場合などがある。
このような場合に備え、送信側装置100は、CTR値_1の全桁データを受信側装置200に対して、2回以上送信する。
これにより、受信側装置200でCTR値_1の全桁データを取りこぼす事態を防止することができる。
また、本発明はこれに限られず、例えば、受信側装置200から、CTR値_1の全桁データの送信を要求するものであってもよい。
例えば、受信側装置200は、起動後一定時間が経過してもなお、必要なCTR値_1の全桁データを得られていない場合、図8に示すような、CTR全桁データ要求フレームを送信側装置100に送信するものであってもよい。図8は、CTR全桁データ要求フレームの一例を示す図である。
図8に示す通り、CTR全桁データ要求フレームは、ID、DLC、データの順番で送出されるデータである。
IDは、CTR値_1の全桁データの送信を要求するリクエストデータに割り当てられた専用IDである。データは、CTR管理番号と受信側装置200の装置番号とを含む。このCTR管理番号は、例えば11bitのデータであり、受信側装置200の装置番号は、例えば11bitのデータである。
あるいは、CTRマスターである送信側装置100が、CTRスレーブである受信側装置200の装置IDを保持しておき、全ての受信側装置200にCTR値_1の全桁データ(初期値)を送信したか否かを確認し、確認が取れるまでCTR値_1の全桁データを送信するものであってもよい。具体的に説明すると、送信側装置100は、CTR値_1の全桁データを受信側装置200に対して送信する。受信側装置200は、CTR値_1の全桁データを受信した場合、例えば、図9に示すようなCTR全桁データ受信Acknowledgeフレームを送信側装置100に送信し、CTR値_1の全桁データの受信に成功したことを送信側装置100に通知する。図9は、CTR全桁データ受信Acknowledgeフレームの一例を示す図である。
図9に示す通り、CTR全桁データ受信Acknowledgeフレームは、ID、DLC、データの順番で送出されるデータである。
IDは、CTR値_1の全桁データの受信を通知するAcknowledgeデータに割り当てられた専用IDである。データは、CTR管理番号と受信側装置200の装置番号とを含む。このCTR管理番号は、例えば11bitのデータであり、受信側装置200の装置番号は、例えば11bitのデータである。
また、CAN−BUS上に不正な装置が接続され、不正なCTR値_1の全桁データが送出されるおそれがある。この場合、受信側装置200に不正なCTR値_1の初期値が設定されてしまい、不正は制御に利用される虞がある。
この問題に対して、例えば、送信側装置100は、初期値を送信する際、図10に示すような、MAC値をCTR全桁データフレームの最後につけたデータを受信側装置200に送信する。図10は、MAC付き暗号化CTR全桁データフレームの一例を示す図である。
図10に示す通り、MAC付き暗号化CTR全桁データフレームは、ID、DLC、データの順番で送出されるデータである。
IDは、CTR値_1の全桁データに割り当てられた専用IDである。データは、CTR管理番号と、ECBモードで暗号化されたCTR値_1の全桁データと、MAC値とを含む。このCTR管理番号は、例えば11bitのデータであり、ECBモードで暗号化されたCTR値_1の全桁データは、例えば5(1+4)bitであり、MAC値は、例えば48bitである。なお、送信側装置100は、受信側装置200と共有するKEY値を用いて、CTR値_1の全桁データをECBモードで暗号化する。受信側装置200は、このCTR全桁データフレームを受信した場合、MAC検証を行うことによって、不正な受信側装置200から受信したCTR全桁データフレームに基づき、カウンター201が初期化してしまうことを防止することができる。
なお、本発明はこれに限られず、MAC値だけをデータ内に含める構成であってもよく、ECBモードでCTR値_1の全桁データを暗号化するだけの構成であってもよい。
なお、本発明は上記構成および機能に限られず、以下のような構成および機能を実現するものであってもよい。
例えば、送信側装置100の暗号関数処理部131と、受信側装置200の暗号関数処理部231とは、それぞれ、カウンター101あるいはカウンター201のCTR値_1あるいはCTR値_2とKEY値に基づき、暗号化処理あるいは復号化処理毎に、MASK_1あるいはMASK_2を算出すると説明した。しかし、本発明はこれに限られず、暗号関数処理部131あるいは暗号関数処理部231は、それぞれCTR値_1あるいはCTR値_2に対応するMASK_1あるいはMASK_2を、KEY値毎に予め算出しておき、算出結果を記憶部102あるいは記憶部202に格納しておくものであってもよい。
例えば、送信側装置100や受信側装置200において、十分なアイドル時間がある場合、予めメモリの許す範囲において、暗号関数処理部131あるいは暗号関数処理部231は、それぞれ、将来使用されるであろうCTR値_1とMASK_1のペア、あるいは、CTR値_2とMASK_2のペアを計算で求めておき、それぞれ、記憶部102あるいは記憶部202に格納しておく。これらペアの値をプールしておくことによって、暗号化処理あるいは復号化処理中に、演算負荷の高いMASK_1あるいはMASK_2の演算処理(Encryption処理)を実行せずに済む。つまり、CTR値とMASKの対応テーブルを参照して、CTR値_1あるいはCTR値_2に対応するMASK_1あるいはMASK_2を読み出すだけでよいため、暗号化処理あるいは復号化処理における処理負荷を軽減することができる。よって、暗号化処理あるいは復号化処理に伴う処理遅延を大幅に軽減することができる。
また、本実施の形態に係る送信側装置100および受信側装置200は、内部にコンピュータシステムを有している。そして、動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、各処理を行ってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
1 暗号システム
100 送信側装置
101 カウンター
102 記憶部
103 暗号部
104 通信部
105 カウンター値補正部
131 暗号関数処理部
132 マスク処理部
133 排他的論理和計算部
134 暗号文データ生成部
200 受信側装置
201 カウンター
202 記憶部
203 復号部
204 通信部
205 カウンター値補正部
231 暗号関数処理部
232 マスク処理部
233 排他的論理和計算部
234 暗号文データ生成部

Claims (1)

  1. 互いに通信可能に接続された複数個の装置を備え、
    前記装置は、識別子により識別される暗号情報を送信する送信側装置と、前記暗号情報を受信する受信側装置と、のいずれか又は両方として機能する
    暗号システムにおいて、
    前記送信側装置は、
    鍵情報と、暗号化処理ごとにカウントアップされる、前記識別子に固有の暗号化カウンター値とに基づき、暗号関数を用いて前記暗号情報を作成する暗号部と、
    前記暗号部によって作成された前記暗号情報とともに、前記暗号化カウンター値の一部を表わす部分値を前記受信側装置に送信する第1送信部と、を備え、
    前記受信側装置は、
    前記暗号化カウンター値に含まれる部分値および前記暗号情報を前記送信側装置から受信する受信部と、
    前記鍵情報と、復号化処理ごとにカウントアップされる、前記識別子に固有の復号化カウンター値とに基づき、前記暗号関数を用いて、前記受信部が受信した前記暗号情報を復号する復号部と、
    前記受信部が受信した前記暗号化カウンター値の一部を表わす部分値と、当該部分値に対応する前記復号化カウンター値とが一致しない場合、前記暗号化カウンター値の一部を表わす部分値に基づき、前記復号化カウンター値を補正する補正部と、
    を備え、
    前記識別子ごとに、いずれか一つの前記装置のみが前記送信側装置として機能する
    ことを特徴とする暗号システム。
JP2013040099A 2013-02-28 2013-02-28 暗号システム Active JP6319866B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013040099A JP6319866B2 (ja) 2013-02-28 2013-02-28 暗号システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013040099A JP6319866B2 (ja) 2013-02-28 2013-02-28 暗号システム

Publications (2)

Publication Number Publication Date
JP2014168216A JP2014168216A (ja) 2014-09-11
JP6319866B2 true JP6319866B2 (ja) 2018-05-09

Family

ID=51617680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013040099A Active JP6319866B2 (ja) 2013-02-28 2013-02-28 暗号システム

Country Status (1)

Country Link
JP (1) JP6319866B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6512023B2 (ja) * 2015-08-07 2019-05-15 株式会社デンソー 通信システム、送信ノード、及び受信ノード
JP2017102349A (ja) * 2015-12-03 2017-06-08 株式会社オートネットワーク技術研究所 暗号化装置、暗号通信システム及び暗号化送信方法
JP7105894B2 (ja) * 2018-08-28 2022-07-25 アルプスアルパイン株式会社 相互認証方法及び通信システム
JP7307400B2 (ja) * 2019-07-16 2023-07-12 大日本印刷株式会社 電子情報記憶媒体、カウンタ更新方法及びカウンタ更新プログラム
JP2020123960A (ja) * 2020-03-26 2020-08-13 トヨタ自動車株式会社 通信システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081679A (en) * 1990-07-20 1992-01-14 Ericsson Ge Mobile Communications Holding Inc. Resynchronization of encryption systems upon handoff
JPH10154977A (ja) * 1996-11-21 1998-06-09 Kobe Nippon Denki Software Kk 利用者認証装置およびその方法
JP3627623B2 (ja) * 2000-06-01 2005-03-09 日本電気株式会社 暗号通信システムおよび移動通信システム
JP2004015305A (ja) * 2002-06-05 2004-01-15 Denso Corp 暗号化通信方式、および通信装置
JP4333351B2 (ja) * 2003-12-05 2009-09-16 株式会社デンソー 通信システム
EP1646022A4 (en) * 2003-07-14 2010-09-08 Sony Corp METHOD AND DEVICE FOR ENCRYPTION AND DECRYPTION
US8270599B2 (en) * 2008-02-28 2012-09-18 Ciena Corporation Transparent protocol independent data compression and encryption
US20110093639A1 (en) * 2009-10-19 2011-04-21 Microchip Technology Incorporated Secure Communications Between and Verification of Authorized CAN Devices

Also Published As

Publication number Publication date
JP2014168216A (ja) 2014-09-11

Similar Documents

Publication Publication Date Title
US10104048B2 (en) Method and system for secure key generation over an insecure shared communication medium
US10050955B2 (en) Efficient start-up for secured connections and related services
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
US9525557B2 (en) Certificate issuing system, client terminal, server device, certificate acquisition method, and certificate issuing method
US9166793B2 (en) Efficient authentication for mobile and pervasive computing
US20160119291A1 (en) Secure communication channel with token renewal mechanism
JP6319866B2 (ja) 暗号システム
WO2016098303A1 (ja) 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法
US20120096278A1 (en) Authenticating Messages Using Cryptographic Algorithm Constants Supplied to a Storage-Constrained Target
US10699031B2 (en) Secure transactions in a memory fabric
US20190268145A1 (en) Systems and Methods for Authenticating Communications Using a Single Message Exchange and Symmetric Key
CN107534558B (zh) 用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统
US20180013832A1 (en) Health device, gateway device and method for securing protocol using the same
CN110855597B (zh) 消息传输方法、服务器及客户端
CN113051590A (zh) 一种数据处理方法和相关设备
WO2023160420A1 (zh) 群组消息加密方法、装置、设备和存储介质
TWI597960B (zh) 金鑰分裂技術
US8793505B2 (en) Encryption processing apparatus
CN111192050A (zh) 一种数字资产私钥存储提取方法及装置
CN106549754A (zh) 管理密钥的方法和装置
CN107534552B (zh) 在服务器设备、客户端设备处执行的方法及服务器设备
WO2023231817A1 (zh) 数据处理方法、装置、计算机设备及存储介质
US10057054B2 (en) Method and system for remotely keyed encrypting/decrypting data with prior checking a token
CN114205142B (zh) 数据传输方法、装置、电子设备和存储介质
CN111131158A (zh) 单字节对称加密解密方法、装置及可读介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160209

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20160323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170516

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171213

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180402

R150 Certificate of patent or registration of utility model

Ref document number: 6319866

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250