【文献】
鈴木 貴大,光アクセス装置プログラマブル化に向けたCPU/GPUによる暗号化の並列実装の検討,電子情報通信学会技術研究報告 Vol.116 No.9,日本,一般社団法人電子情報通信学会,2016年 4月14日,第116巻
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
(第一実施形態)
図1は、第一実施形態における光通信システム1全体のシステム構成を表すシステム構成図である。光通信システム1は、局側終端装置100、光回線終端装置200、光合分波手段300、上位装置400及びユーザ機器等500を備える。局側終端装置100及び光回線終端装置200は、光合分波手段300を介して互いに通信可能に接続される。
【0016】
局側終端装置100は、通信網を経由する光信号によって他の通信装置との通信を実現する装置である。局側終端装置100が接続される通信網は、例えばPON(Passive Optical Network)等の光ファイバ網である。局側終端装置100は、例えば通信サービスを提供するための局舎に設置される。局側終端装置100は、例えばOLT(Optical Line Terminal:光加入者線端局装置)である。局側終端装置100は、例えばOSU(Optical Subscriber Unit)であってもよい。局側終端装置100は、複数の機器を用いて構成されてもよい。
【0017】
光回線終端装置200は、通信網を経由する光信号によって他の通信装置との通信を実現する装置である。光回線終端装置200が接続される通信網は、例えばPON等の光ファイバ網である。光回線終端装置200は、例えば通信サービスの提供を受けるユーザの宅内に設置される。光回線終端装置200は、例えばONU(Optical Network Unit)である。光回線終端装置200は、複数の機器を用いて構成されてもよい。
【0018】
光合分波手段300は、光回線終端装置200から送信された信号を集約して局側終端装置100に送信する。光合分波手段300は、局側終端装置100から送信された信号を分配して光回線終端装置200に送信する。光合分波手段300は、例えば光スプリッタである。
【0019】
上位装置400は、局側終端装置100が接続される通信網において局側終端装置100の上位側に配置される装置である。上位装置400は、上位ネットワークに接続される。
【0020】
ユーザ機器等500は、ユーザによって操作される機器である。ユーザ機器等500は、例えば通信サービスの提供を受けるユーザの宅内に設置される。ユーザ機器等500は、例えばパーソナルコンピュータ、スマートフォン、携帯電話、タブレットコンピュータ、無線LANルータ、テレビ受像機等の通信可能な情報処理装置である。
【0021】
図2は、局側終端装置100の機能構成を表す機能構成図である。局側終端装置100は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備える。局側終端装置100は、光通信プログラムを実行することによって、第1通信部101、MAC部102、タグ長制御部103、ユーザタグ長記憶部104、入出力インタフェース105、暗号化部106、フレーム生成部107、PCS(Physical Coding Sublayer)部108及び第2通信部109を備える装置として機能する。なお、局側終端装置100の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。光通信プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM、半導体記憶装置(例えばSSD:Solid State Drive)等の可搬媒体、コンピュータシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。光通信プログラムは、電気通信回線を介して送信されてもよい。
【0022】
第1通信部101は、ネットワークインタフェースである。第1通信部101は上位装置400から下り信号を受信する。下り信号は、例えばデータを表す。
【0023】
MAC部102は、上位装置400から受信した下り信号に含まれるユーザIDをタグ長制御部103に出力する。ユーザIDは、通信サービスを利用するユーザ毎に割当てられる識別子である。ユーザIDは、例えばメールアドレス、ユーザ指定の文字列、光回線終端装置200の製造番号等の他のユーザIDと重複しない値であればどのような値であってもよい。また、MAC部102は、上位装置400から受信した下り信号に含まれる平文を暗号化部106に出力する。
【0024】
タグ長制御部103は、認証タグ情報を制御する。認証タグ情報は、暗号文に付与される認証タグの認証タグ長を表す。暗号文は、下り信号に含まれる平文に基づいて、暗号化部106によって生成されるデータである。認証タグは、暗号文の完全性を検証するための情報である。認証タグは、暗号文に基づいて生成される。認証タグは、例えばハッシュ関数を用いるHMAC(Hash-based Message Authentication Code)、ブロック暗号方式を用いるCMAC(Cipher-based Message Authentication Code)等を用いて生成される。認証タグ長は、認証タグの長さ(例えば、ビット長)を表す。タグ長制御部103は、ユーザタグ長記憶部104から、MAC部102によって出力されたユーザIDに対応する認証タグ長を取得する。タグ長制御部103は、取得した認証タグ長を、暗号化部106及びフレーム生成部107へ出力する。タグ長制御部103は、タグ情報取得部の一態様である。
【0025】
ユーザタグ長記憶部104は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。ユーザタグ長記憶部104は、ユーザタグ長テーブルを記憶する。
図3は、ユーザタグ長テーブルの概略を示す図である。ユーザタグ長テーブルは、ユーザIDと認証タグ長とを対応付けたテーブルである。ユーザタグ長テーブルでは、1つのユーザIDに対して、1つの認証タグ長が対応付けられている。ユーザタグ長テーブルを参照することによって、ユーザID毎に設定される認証タグ長を取得することが可能となる。ユーザタグ長テーブルは、入出力インタフェース105からの入力データに基づいて構成される。
【0026】
図3に示される例では、ユーザタグ長テーブルの最上段のレコードは、ユーザIDの値が“UserA”、認証タグ長の値が“L1”である。このレコードでは、ユーザID“UserA”に対応する認証タグ長の値が“L1”であることが示されている。なお、
図3に示されるユーザタグ長テーブルは一具体例にすぎない。そのため、
図3とは異なる態様でユーザタグ長テーブルが構成されてもよい。例えばユーザタグ長テーブルは、通信サービス名のカラムをさらに有していてもよい。
【0027】
図2に戻って局側終端装置100の構成について説明を続ける。入出力インタフェース105は、局側終端装置100と入出力装置とを接続するためのインタフェースである。入出力装置は、例えばパーソナルコンピュータ、タッチパネル、キーボード、マウス、ディスプレイ、プリンタ等の装置を用いて構成される。入出力インタフェース105は、入出力装置を介したユーザの入力に応じて生成された入力信号を局側終端装置100に入力する。入出力インタフェース105は、局側終端装置100により生成された出力信号を入出力装置に出力する。
【0028】
暗号化部106は、MAC部102から出力された平文と、タグ長制御部103によって取得された認証タグ長とに基づいて暗号化処理を実行する。暗号化処理には、ブロック暗号化方式が用いられてもよい。ブロック暗号化方式とは、平文を固定長のデータ列のブロックに分割し、それぞれのブロックに対して暗号化処理を実行する方式である。例えば暗号化処理にAES―128暗号化を用いる場合、まず暗号化部106は、平文を128ビット毎のデータ列のブロックに分割する。次に、暗号化部106は、各ブロックに対してAES処理を実行する。AES処理では、鍵生成、撹拌処理及び鍵加算処理が実行される。これにより、128ビット単位で暗号化されたブロックが出力される。最後に、暗号化部106は、出力されたブロックを元の順番で並べることにより暗号文を生成する暗号化処理には、他のブロック暗号化方式を用いてもよい。暗号化処理の具体的な処理については
図6で説明する。
【0029】
フレーム生成部107は、タグ長制御部103によって出力された認証タグ長に基づいて、光回線終端装置200宛のフレームを生成する。フレーム生成部107は、生成したフレームを光回線終端装置200へ送信する。フレーム生成部107は、送信部の一態様である。
【0030】
図4は、光通信システム1において送受信されるフレームのフォーマットである。フレームは、DestinationAddress、SourceAddress、Length/Type、Data/Pad、FCS(Frame Check Sequence)等の各値を格納するフィールドを有する。Data/Padのフィールドには、光回線終端装置200が認証タグ長の設定を行うためのコマンドが格納される。コマンドは、PDUType、ErrorStatus及びPDUDataである。PDUTypeのフィールドには、局側終端装置100から光回線終端装置200、又は、光回線終端装置200から局側終端装置100に対する情報変更を要求するSetRequest又はSetRequestに対する応答であるSetResponseが格納される。情報変更とは、例えば自装置が受け付ける認証タグ長の設定等である。また、PDUDataのフィールドには、情報種別を設定できるDataTypeの値、通知情報となるDataValueの値等が格納される。情報種別とは、例えば光回線終端装置200の認証タグ長を設定するコマンドを表す値である。通知情報とは、例えば光回線終端装置200の識別子や認証タグ長の値等である。
【0031】
図2に戻って局側終端装置100の構成について説明を続ける。PCS部108は、データと符号化情報を相互に変換する。PCS部108は、光回線終端装置200へデータを送信するために符号化情報を生成する。PCS部108は、光回線終端装置200から受信した符号化情報からデータを生成する。
【0032】
第2通信部109は、ネットワークインタフェースである。第2通信部109は、通信網を介して光回線終端装置200と通信する。
【0033】
図5は、第一実施形態における認証タグ長設定の処理の流れを表すシーケンス図である。まず、上位装置400は、下り信号を局側終端装置100に送信する(ステップS101)。局側終端装置100の第1通信部101は、上位装置400から下り信号を受信する。局側終端装置100のMAC部102は、受信された下り信号からユーザID及び平文を取得する。MAC部102は、取得したユーザIDをタグ長制御部103へ出力する。MAC部102は、取得した平文を暗号化部106へ出力する。タグ長制御部103は、ユーザタグ長テーブルからユーザIDに対応する認証タグ長を取得する(ステップS102)。タグ長制御部103は、取得した認証タグ長をフレーム生成部107へ出力する。
【0034】
フレーム生成部107は、フレーム生成部107から出力された認証タグ長に基づいてSetRequestフレームを生成する(ステップS103)。具体的には、フレーム生成部107は、PDUTypeのフィールドにSetRequestを示す値を格納し、DataTypeのフィールドに光回線終端装置200の認証タグ長を設定するコマンドを示す値を格納し、DataValueのフィールドに、設定する光回線終端装置200の識別子と認証タグ長の値を示す値を格納することによってSetRequestフレームを生成する。フレーム生成部107は、生成したSetRequestフレームをPCS部108に符号化させ、第2通信部109を介して光回線終端装置200へ送信する(ステップS104)。
【0035】
光回線終端装置200の設定部は、SetRequestフレームを受信すると、SetRequestフレームに基づいて、自装置が受け付ける認証タグ長の設定を行う(ステップS105)。ここで設定される認証タグ長は、SetRequestフレームに含まれる認証タグ長の値である。光回線終端装置200は、認証タグ長の設定が成功すると、設定結果を示すSetResponse(No Error)フレームを局側終端装置100へ送信する(ステップS106)。局側終端装置100のPCS部108は、SetResponseフレーム(No Error)を受信すると、暗号化部106にコマンド応答を出力する。暗号化部106は、出力されたコマンド応答に応じて認証タグ長の設定を行う(ステップS107)。
【0036】
図6は、暗号化部106が行う暗号化処理の具体的な処理の流れを示すフローチャートである。まず、暗号化部106は、平文P及びフレーム情報Aを受け付ける(ステップS201)。平文Pは、MAC部102から出力される。フレーム情報Aは、フレーム生成部107から出力される。暗号化部106は、初期値J
0を生成済か否か判定する(ステップS202)。J
0を生成済の場合(ステップS202−YES)、暗号化部106はJ
0の値をインクリメントする(ステップS203)。J
0を生成済ではない場合(ステップS202−NO)、暗号化部106はJ
0を生成する(ステップS204)。
【0037】
暗号化部106は、平文Pに対してブロック暗号化処理を実行し、暗号文Cを生成する(ステップS205)。暗号化部106は、フレーム情報Aを用いて64ビットの数値データ[len(A)]
64を生成する。暗号化部106は、暗号文Cを用いて64ビットの数値データ[len(C)]
64を生成する(ステップS206)。暗号化部106は、タグ長制御部103から受付けた認証タグ長が0より大きいか否か判定する(ステップS207)。認証タグ長が0以下の場合(ステップS207−NO)、暗号化部106はフレーム情報A及び暗号文CをPCS部108へ出力し、
図6の処理を終了する(ステップS208)。
【0038】
一方、認証タグ長が0より大きい場合(ステップS207−YES)、暗号化部106は光回線終端装置200から受付けたコマンド応答の値が1であるか否かを判定する(ステップS209)。コマンド応答の値が1の場合(ステップS209−YES)、暗号化部106は、タグ長制御部103から出力された認証タグ長を設定する(ステップS210)。認証タグ長の設定が完了した後、又は、コマンド応答の値が1ではない場合(ステップS209−NO)、暗号化部106はフレーム情報A、暗号文C、[len(A)]
64及び[len(C)]
64を用いてGHASH処理を実行する(ステップS211)。GHASH処理では、フレーム情報A、暗号文C、[len(A)]
64及び[len(C)]
64に対してHASH関数処理及び乗算が実行される。
【0039】
暗号化部106は、GHASH処理の実行結果に対して、再度ブロック暗号化処理を実行する(ステップS212)。このブロック暗号化処理は、ステップS205で実行された暗号化処理と同じ暗号化アルゴリズムが用いられる。その後、暗号化部106は、ブロック暗号化処理の実行結果に対して、MSBt処理を実行し認証タグTを生成する(ステップS213)。MSBt処理では、ブロック暗号化処理の実行結果に対して認証タグ長に応じたビット数を先頭ビットから取得される。暗号化部106は、暗号文C及び認証タグTを用いて認証タグ付き暗号文を生成する(ステップS214)。暗号化部106は、認証タグ付き暗号文をPCS部108へ出力し、
図6の処理を終了する(ステップS215)。
【0040】
このように構成された第一実施形態における光通信システム1では、局側終端装置100は、ユーザタグ長テーブルに基づいて認証タグ長を自由に変更する。したがって、要求に応じて認証タグ長を長くすることでセキュリティを高めることができる。また、要求に応じて認証タグ長を短くすることで帯域効率を高めることができる。そのため、セキュリティ又は帯域効率の要求を満足することが可能となる。
【0041】
<第二実施形態>
次に、第二実施形態における光通信システム1について説明する。第二実施形態における光通信システム1は、局側終端装置100の代わりに局側終端装置100aを備え、光回線終端装置200の代わりに光回線終端装置200aを備える点で第一実施形態とは異なるが、それ以外の構成は同じである。以下、第一実施形態と異なる点について説明する。
【0042】
図7は、局側終端装置100aの機能構成を表す機能構成図である。局側終端装置100aは、MAC部102の代わりにMAC部102aを備え、タグ長制御部103の代わりにタグ長制御部103aを備え、入出力インタフェース105を備えず、タグ長算出部110及びカウンタタグ長記憶部111を更に備える。局側終端装置100aは、それ以外の点については、第一実施形態における局側終端装置100と同じである。
【0043】
MAC部102aは、上位装置400から受信した下り信号に含まれるユーザIDをタグ長制御部103aに出力する。MAC部102aは、光回線終端装置200
aから受信した認証失敗カウンタの値をタグ長算出部110へ出力する。認証失敗カウンタは、光回線終端装置200
aにてカウントされた認証タグ付き暗号文の認証失敗の回数である。
【0044】
タグ長制御部103aは、暗号文に付与される認証タグの認証タグ長を制御する。タグ長制御部103aは、ユーザタグ長テーブルに登録される認証タグ長の値を、タグ長算出部110から出力される認証タグ長の値に更新する。タグ長制御部103aは、出力された認証タグ長を、暗号化部106及びフレーム生成部107へ出力する。
【0045】
タグ長算出部110は、カウンタタグ長記憶部111から認証失敗カウンタの値に対応する認証タグ長を取得する。タグ長算出部110は、取得した認証タグ長を、タグ長制御部103aへ出力する。
【0046】
カウンタタグ長記憶部111は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。カウンタタグ長記憶部111は、カウンタタグ長テーブルを記憶する。
図8は、カウンタタグ長テーブルの概略を示す図である。カウンタタグ長テーブルは、認証失敗カウンタとタグ長とを対応付けたテーブルである。カウンタタグ長テーブルでは、所定の範囲内の認証失敗カウンタ値に対して、1つの認証タグ長が対応付けられている。タグ長算出部110は、カウンタタグ長テーブルを参照することによって、各認証失敗カウンタに設定される認証タグ長を取得することが可能となる。
【0047】
図8に示される例では、カウンタタグ長テーブルの最上段のレコードは、認証失敗カウンタの値が“K1以上K2未満”、認証タグ長の値が“L1”である。このレコードでは、出力された認証失敗カウンタが“K1以上K2未満”である場合、認証タグ長が“L1”であることが示されている。なお、
図8に示されるカウンタタグ長テーブルは一具体例にすぎない。そのため、
図8とは異なる態様でカウンタタグ長テーブルが構成されてもよい。例えばカウンタタグ長テーブルは、通信サービス名のカラムをさらに有していてもよい。なお、カウンタタグ長テーブルでは、所定の範囲内の値(例えば、“K1以上K2未満”など)が大きいほど、認証タグ長が長くなるように設定される。例えば、認証失敗カウンタが“KN以上”である場合には、認証タグ長が最も長くなるように設定される。
【0048】
図9は、第二実施形態における光回線終端装置200aの機能構成を表す機能構成図である。光回線終端装置200
aは、バスで接続されたCPUやメモリや補助記憶装置などを備える。光回線終端装置200
aは、光通信プログラムを実行することによって、第1通信部201、PCS部202、タグ認証処理部203、復号処理部204、認証失敗カウント部205、MAC部206及び第2通信部207を備える装置として機能する。なお、光回線終端装置200aの各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。光通信プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM、半導体記憶装置(例えば、SSD)等の可搬媒体、コンピュータシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。光通信プログラムは、電気通信回線を介して送信されてもよい。
【0049】
第1通信部201は、ネットワークインタフェースである。第1通信部201は光通信網を介して局側終端装置100aと通信する。
【0050】
PCS部202は、データと符号化情報を相互に変換する。PCS部202は、第1通信部201が受信した符号化情報からデータを生成する。PCS部108は、局側終端装置100aにデータを送信するため、符号化情報を生成する。
【0051】
タグ認証処理部203は、認証タグ付き暗号文が有する認証タグ及び暗号文に基づいて、認証処理を実行する。タグ認証処理部203による認証処理では、認証タグ付き暗号文が改ざんされているか否かが判定される。認証成功(改ざんされていない)の場合、タグ認証処理部203は、タグ付き暗号文を復号処理部204へ出力する。認証失敗(改ざんされている)の場合、タグ認証処理部203は、認証失敗カウント部205に認証失敗通知を出力する。タグ認証処理部203は、認証部の一態様である。
【0052】
復号処理部204は、認証タグ付き暗号文を復号することによって平文を復元する。復号処理部204は、平文をMAC部206へ出力する。
【0053】
認証失敗カウント部205は、出力された認証失敗通知に基づいて、認証失敗カウンタの値をインクリメントする。認証失敗カウント部205でインクリメントされた認証失敗カウンタの値は、所定の周期でMAC部206へ出力される。所定の周期とは、一定間隔の時間である。所定の周期とは、例えばT秒などであってもよい。認証失敗カウント部205は、カウント部の一態様である。
【0054】
MAC部206は、復号処理部204から出力された平文に基づいてフレームを生成する。MAC部206は、生成したフレームをユーザ機器等500に送信する。MAC部206は、認証失敗カウント部から出力された認証失敗カウンタに基づいてフレームを生成する。MAC部206は、生成したフレームを局側終端装置100aに送信する。この時のフレームは、
図4と同じ構成のフレームである。
【0055】
第2通信部207は、ネットワークインタフェースである。第2通信部207は、通信回線を介してユーザ機器等500と通信をする。
【0056】
図10は、第二実施形態における認証タグ長設定の処理の流れを表すシーケンス図である。まず、光回線終端装置200aは、SetRequestフレームを局側終端装置100aへ送信する(ステップS301)。具体的には、光回線終端装置200aのMAC部206は、PDUTypeのフィールドにSetRequestを示す値を格納し、DataTypeのフィールドに認証失敗カウンタの値を格納し、DataValueのフィールドに認証失敗カウンタを格納することによってSetRequestフレームを生成する。その後、MAC部206は、PCS部202及び第1通信部201を介して、SetRequestフレームを局側終端装置100aへ送信する。
【0057】
局側終端装置100aの第2通信部109は、光回線終端装置200aから送信されたSetRequestフレームを受信する。第2通信部109は、受信したSetRequestフレームを、PCS部108を介してMAC部102aへ出力する。上位装置400は、下り信号を局側終端装置100に送信する(ステップS302)。局側終端装置100aの第1通信部101は、上位装置400から下り信号を受信する。
MAC部102aは、SetRequestフレームに含まれる認証失敗カウンタの値を取得する(ステップS303)。MAC部102aは、認証失敗カウンタの値をタグ長算出部110へ出力する。MAC部102aは、下り信号に含まれるユーザIDを取得する。MAC部102aは、ユーザIDをタグ長制御部103aに出力する。
【0058】
タグ長算出部110は、認証失敗カウンタの値が閾値より大きいか否か判定する(ステップS304)。認証失敗カウンタの値が閾値以下の場合(ステップS304−NO)、局側終端装置100aは
図10の処理を終了する(ステップS305)。認証失敗カウンタの値が閾値より大きい場合(ステップS304−YES)、タグ長算出部110は、カウンタタグ長テーブルから認証失敗カウンタの値に対応する認証タグ長を取得する(ステップS306)。タグ長算出部110は、認証タグ長をタグ長制御部103aに出力する。タグ長制御部103aは、出力された認証タグ長をユーザタグ長テーブルの全てのレコードに登録する(ステップS307)。タグ長制御部103aは、出力されたユーザIDに対応する認証タグ長を、ユーザタグ長テーブルから取得する(ステップS308)。タグ長制御部103aは、取得した認証タグ長をフレーム生成部107へ出力する。
【0059】
フレーム生成部107は、認証タグ長に基づいてSetRequestフレームを生成する(ステップS309)。認証タグ長に基づくSetRequestフレームの生成方法は、第一実施形態と同様であるため説明を省略する。フレーム生成部107は、生成したSetRequestフレームをPCS部108に符号化させ、光回線終端装置200aへ送信する(ステップS310)。
【0060】
光回線終端装置200aは、SetRequestフレームを受信すると、認証タグ長の設定を行う(ステップS311)。ここで設定される認証タグ長は、SetRequestフレームに含まれる認証タグ長の値である。光回線終端装置200aは、認証タグ長の設定が成功すると、設定結果を示すSetResponse(No Error)フレームを局側終端装置100aへ送信する(ステップS312)。局側終端装置100aのPCS部108は、SetResponseフレーム(No Error)を受信すると、暗号化部106にコマンド応答を出力する。暗号化部106は、出力されたコマンド応答に応じて認証タグ長の設定を行う(ステップS313)。
【0061】
このように構成された第二実施形態における光通信システムでは、第一実施形態と同様の効果を得ることができる。
また、第二実施形態における光通信システムでは、光回線終端装置200aからの認証失敗カウンタの通知に基づいて、局側終端装置100aは、認証失敗カウンタに応じて自動的に認証タグ長を変更する。したがって、不正アクセスを受けて、認証タグの認証失敗が頻発する場合などに、自動的に認証タグ長を長くすることができる。したがって、第一実施形態における光通信システムよりも速やかにセキュリティを高めることができる。
【0062】
<変形例>
タグ長算出部110は、認証失敗の回数が閾値より大きい場合、現在の認証タグ長に所定のタグ長を加算してもよい。暗号化部106は、加算された認証タグ長を用いて認証タグ付き暗号文を生成する。このように構成されることで、認証失敗カウンタの値が、カウンタタグ長テーブルのレンジを大きく超えた場合にも、認証タグ長を長くすることができる。したがって、外部からの攻撃に対応してセキュリティを高めることができる。
【0063】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。