JP6319866B2 - 暗号システム - Google Patents
暗号システム Download PDFInfo
- 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
Links
- 230000005540 biological transmission Effects 0.000 claims description 63
- 230000006870 function Effects 0.000 claims description 55
- 238000000034 method Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 42
- 238000012937 correction Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 description 65
- 238000004891 communication Methods 0.000 description 47
- 238000004364 calculation method Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 16
- 230000001360 synchronised effect Effects 0.000 description 15
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 13
- 230000015654 memory Effects 0.000 description 10
- 239000000284 extract Substances 0.000 description 9
- 230000006866 deterioration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Description
この特許文献1では、互いに同期してカウント動作されるクロックカウンターを用いて送信機と受信機において生成されるカンンター値を同期させている。
これにより、本実施形態に係る暗号システムは、常に同期を必用とする高精度なカウンターやタイマーを用いなくても、簡易な構成によって、送信側装置側の暗号化カウンター値と受信側装置側の復号化カウンター値との同期をとることができる。
これにより、本実施形態に係る暗号システムは、暗号システムに不正な受信側装置が接続された場合、送信側装置は、不正な受信側装置を検出することができる。
これにより、本実施形態に係る暗号システムは、送信側装置側の暗号化カウンター値と受信側装置側の復号化カウンター値との同期をとることができる。
これにより、本実施形態に係る暗号システムは、常に同期を必用とする高精度なカウンターやタイマーを用いなくても、簡易な構成によって、送信側装置側の暗号化カウンター値と受信側装置側の復号化カウンター値との同期をとることができる。
(5)また、本発明の一態様による暗号システムは、互いに通信可能に接続された複数個の装置を備え、前記装置は、識別子により識別される暗号情報を送信する送信側装置と、前記暗号情報を受信する受信側装置と、のいずれか又は両方として機能する暗号システムであって、前記送信側装置は、鍵情報と、暗号化処理ごとにカウントアップされる、前記識別子に固有の暗号化カウンター値とに基づき、暗号関数を用いて前記暗号情報を作成する暗号部と、前記暗号部によって作成された前記暗号情報とともに、前記暗号化カウンター値の一部を表わす部分値を前記受信側装置に送信する第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は、暗号文CTを作成した際に利用したCTR値_1の一部を表わす部分値Cや送信側装置100におけるカウンター値を補正するための制御コード等を含むカウンタコントロール(以下、CCという)を作成し、暗号文に対応づける。このカウンタコントロールCCとは、カウンター値の補正処理用の制御コードである。
なお、本実施形態において、暗号文CTとカウンタコントロールCCとを含む情報を暗号文データという。また、本実施形態において、暗号文データは、64bit以下であり、カウンタコントロールCCのビット長と暗号文のビット長は、任意に設定可能である。さらに、本実施形態において、暗号部103は、CTR値_1の一部を表わす部分値Cとして、CTR値_1の最も下の位の桁からnbitの部分値Cを抽出する。
通信部104は、暗号部103によって作成された暗号文CTとカウンタコントロールCCとを含む暗号文データを、受信側装置200に送信する。
カウンター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と同一の情報が予め記憶されている。
復号部203は、通信部204が受信した暗号文データに含まれる暗号文と、記憶部202に記憶されているKEY値と、復号化処理ごとにカウンター201によってカウントアップされるCTR値_2とに基づき、暗号関数を用いて暗号文を復号して、平文情報を抽出する。本実施形態において、復号部203による復号によって得られた平文情報を、平文PT_2という。
[カウンター値補正部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長の符号なしの整数の最大値である。
さらに、復号部203は、暗号関数処理部231と、マスク処理部232と、排他的論理和計算部233と、復号処理部334とを備える。
なお、暗号部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に出力する。
通信部104は、カウンタコントロールCC、暗号文CTの順番で、カウンタコントロールCCと暗号文CTからなる暗号文データを受信側装置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である。
認証部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に送信する。
(ステップST101)
送信側装置100の通信部104は、暗号化通信を開始する前に、CTR値_1の初期値を受信側装置200に送信する。例えば、送信側装置100は、カウンター101が保持するCTR値_1の全桁の値を初期値として、受信側装置200に送信する。
(ステップST102)
次いで、送信側装置100の暗号部103は、暗号化処理の実行指示を待つ。例えば、送信側装置100内に含まれる制御部(図示せず)から暗号化処理の実行が指示された場合、暗号部103は、以下に説明する暗号化処理を実行する。
暗号部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に出力する。
そして、暗号文データ生成部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に送信する。
一方、受信側装置200は、送信側装置100からCTR値_1の初期値を受信すると、CTR値の初期設定処理を実行する。例えば、受信側装置200のカウンター201は、受信したCTR値_1の初期値をCTR値_2の初期値として保持する。これにより、送信側装置100のカウンター101のCTR値_1と受信側装置200のカウンター201のCTR値_2とを同期させることができる。
次いで、受信側装置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の補正はしない。
そして、復号部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に出力する。
次いで、認証部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に送信する。
そして、受信側装置200は、送信側装置100から受信した暗号文CTを復号した結果が、決められた平文PT_1と一致する場合、この受信側装置200が送信側装置100と同一の鍵情報を保持する正規品であると判定することができる。よって、受信側装置200は、認証判定の結果が「真」であることを示す情報を送信側装置100に送信することによって、送信側装置100は、受信側装置200を正規品であると認識することができる。
よって、送信側装置100や受信側装置200は、常にカウンター値の同期を必要としないため、CTR値_1やCTR値_2を保持する記憶部と、暗号化処理あるいは復号化処理毎に、前回値をカウントアップさせるCPU(処理部)によって、カウンター101,201を実現することができる。従って、精度の高いカウンターを必要としないため、各装置に精度の高いカウンターを設けることによるコストを削減することができる。
EVに搭載されている蓄電池(バッテリ)は、そのものの経済価値が高く、偽造や模倣の対象となりやすい。加えて、EV用の蓄電池は、エネルギー密度が高く、品質管理が必要な危険物である。このような背景から、EVに使用される蓄電池の偽造品や模倣品を排除するため、蓄電池が正規品であることを認証するための仕組みが必要とされている。
蓄電池の認証を行う仕組みとしては、蓄電池または蓄電池を制御する制御ユニット内にセキュリティデバイス(LSI)を設け、暗号通信を行うことで実現することができる。EV内の各ユニット間の通信には、一般的にはCAN-BUSが広く使われている。このCAN-BUSの通信パケットは、最大8バイトである。
一方、暗号通信に使われる暗号アルゴリズムは、現在、セキュリティーの観点から、16バイトブロック長以上のものを使用することが推奨されている。
このため、暗号単位ブロック長が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値を埋め込めば、送信側装置100と受信側装置200におけるCTR値の共有(同期)は容易に実現可能であるが、CAN-BUSの通信パケットにCTRを埋め込むと、それだけで通信パケットを消費してしまい、伝送効率が非常に悪くなってしまう。
つまり、本実施形態に係る送信側装置100は、CTR値_1の一部である部分値Cを暗号文CTとともに受信側装置200に送信する。また、受信側装置200は、暗号文CTを送信側装置100から受信した場合、CTR値_1の一部を用いて、CTR値_1とCTR値_2とを同期させるように、自身のカウンター201のCTR値_2を補正する。これにより、自動的に同期する精度の高いカウンターでなく、暗号化処理あるいは復号化処理の処理ごとにカウンター値をカウントアップさせるような簡易なカウンターを用いる場合であっても、復号化処理の際に、送信側装置100と受信側装置200のカウンターのカウンター値を同期させることができる。また、同期させるための情報の伝送量を制限することによって、伝送効率の悪化を抑えることができる。
このような場合、以下の方法を用いて、補正によりCTR値_1とCTR値_2を同期させることができる。
例えば、受信側装置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に同期させることができる。
また、送信側装置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実施形態について図面を参照して詳細に説明する。図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をカウントアップしたカウンター値を上書きして更新していくことによって、カウンター値を出力する処理構成をいう。
例えば、装置M1_1が、カウンター301_1から出力されるカウンター値に基づき暗号文データを生成し、CAN−ID=001あるいは002を含む暗号文データを他の装置M1_2,・・・,M1_Nに送信したとする。
一方、装置M1_Nは、CAN−ID=001を含む暗号文データを受信すると、自装置のカウンター301_Nから出力されるカウンター値に基づき、暗号文データに含まれる暗号文を復号する。しかし、CAN−ID=002を含む暗号文データを受信すると、装置M1_Nは、暗号文データに含まれる暗号文を復号することなく、例えば廃棄するとする。つまり、CAN−ID=001を含む暗号文データについては、装置M1_1がCTRマスター(送信側装置100)であって、他の装置M1_2がCTRスレーブ(受信側装置200)である。
ここで、受信側装置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の出力するカウンター値とを、同期させることができる。
また、装置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の出力するカウンター値とを、同期させることができる。
さらに、案2において、他の装置M1_2,・・・,M1_Nは、装置M1_1からカウンター値の全桁データを受信するのを待って、カウンター値を利用する場合、カウンター値の利用タイミングが遅れる場合がある。このような場合、他の装置M1_2,・・・,M1_Nは、カウンター値の利用の必要が生じた場合、CTRマスターである装置M1_1に対してカウンター値の全桁データの送信を要求する。これにより、他の装置M1_2,・・・,M1_Nは、最新のカウンター値を取得し、同期させた後で、迅速に、カウンター値を利用した処理を実行することができる。
本発明に係る第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_Nは、装置M2_1から受信した暗号文データを復号するために用いるカウンター値を保持しており、装置M2_1のカウンター401_1のカウンター値と同期するように補正される。カウンター403_Nは、装置M2_2から受信した暗号文データを復号するために用いるカウンター値を保持しており、装置M2_2のカウンター401_2のカウンター値と同期するように補正される。
なお、この場合、受信側装置200として受信した暗号文データが、異なる装置の送信側装置100から受信したデータであって、平文が同一である場合、受信側装置200において利用するカウンター値を決定できないおそれがある。このようば問題を解決するため、装置M2_1,M2_2,・・・,M2_Nは、暗号文データを受信側装置200に送信する際、自装置を他の装置と識別するための装置IDを対応付けて、受信側装置200に送信するものであってもよい。
本発明に係る第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_Nは、装置M3_2から受信した、CAN−ID=002のデータの暗号文を含む暗号文データを復号するために用いるカウンター値を保持しており、装置M3_2のカウンター502_2のカウンター値と同期するように補正される。カウンター502_Nは、装置M3_1から受信した、CAN−ID=003のデータの暗号文を含む暗号文データを復号するために用いるカウンター値を保持しており、装置M3_1のカウンター502_1のカウンター値と同期するように補正される。
これにより、装置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のビット長をできるだけ小さい値とした方がよい。
例えば、送信側装置100が、1回だけCTR値_1の全桁データを送信するとすると、受信側装置200がこのデータを受信できない場合がある。例えば、受信側装置200側で、この全桁データよりも優先度の高いデータを受信している場合や、優先度の高い処理を実行している場合などがある。
このような場合に備え、送信側装置100は、CTR値_1の全桁データを受信側装置200に対して、2回以上送信する。
これにより、受信側装置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のデータである。
図9に示す通り、CTR全桁データ受信Acknowledgeフレームは、ID、DLC、データの順番で送出されるデータである。
IDは、CTR値_1の全桁データの受信を通知するAcknowledgeデータに割り当てられた専用IDである。データは、CTR管理番号と受信側装置200の装置番号とを含む。このCTR管理番号は、例えば11bitのデータであり、受信側装置200の装置番号は、例えば11bitのデータである。
この問題に対して、例えば、送信側装置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を読み出すだけでよいため、暗号化処理あるいは復号化処理における処理負荷を軽減することができる。よって、暗号化処理あるいは復号化処理に伴う処理遅延を大幅に軽減することができる。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
100 送信側装置
101 カウンター
102 記憶部
103 暗号部
104 通信部
105 カウンター値補正部
131 暗号関数処理部
132 マスク処理部
133 排他的論理和計算部
134 暗号文データ生成部
200 受信側装置
201 カウンター
202 記憶部
203 復号部
204 通信部
205 カウンター値補正部
231 暗号関数処理部
232 マスク処理部
233 排他的論理和計算部
234 暗号文データ生成部
Claims (1)
- 互いに通信可能に接続された複数個の装置を備え、
前記装置は、識別子により識別される暗号情報を送信する送信側装置と、前記暗号情報を受信する受信側装置と、のいずれか又は両方として機能する
暗号システムにおいて、
前記送信側装置は、
鍵情報と、暗号化処理ごとにカウントアップされる、前記識別子に固有の暗号化カウンター値とに基づき、暗号関数を用いて前記暗号情報を作成する暗号部と、
前記暗号部によって作成された前記暗号情報とともに、前記暗号化カウンター値の一部を表わす部分値を前記受信側装置に送信する第1送信部と、を備え、
前記受信側装置は、
前記暗号化カウンター値に含まれる部分値および前記暗号情報を前記送信側装置から受信する受信部と、
前記鍵情報と、復号化処理ごとにカウントアップされる、前記識別子に固有の復号化カウンター値とに基づき、前記暗号関数を用いて、前記受信部が受信した前記暗号情報を復号する復号部と、
前記受信部が受信した前記暗号化カウンター値の一部を表わす部分値と、当該部分値に対応する前記復号化カウンター値とが一致しない場合、前記暗号化カウンター値の一部を表わす部分値に基づき、前記復号化カウンター値を補正する補正部と、
を備え、
前記識別子ごとに、いずれか一つの前記装置のみが前記送信側装置として機能する
ことを特徴とする暗号システム。
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)
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)
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 |
-
2013
- 2013-02-28 JP JP2013040099A patent/JP6319866B2/ja active Active
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 |