(57)【要約】【課題】プログラムの起動時に改竄の判定対象であるプログラムが改竄されているか否かを極力短時間で判定するプログラム処理装置を提供する。【解決手段】プログラムの起動時、プログラム処理装置は、重要度の高い所定のプログラムを読み出し、読み出したプログラムの各ブロックに基づいて圧縮データを生成し（Ｓ４１０）、読み出したプログラムの各ブロックと対応する圧縮データを読み出して復号する（Ｓ４１２）。生成された圧縮データと復号された圧縮データとが一致しない場合（Ｓ４１４：Ｎｏ）、異常フラグが設定される（Ｓ４１６）。一致する場合（Ｓ４１４：Ｙｅｓ）、プログラム処理装置は、重要度に関係なくすべての圧縮データを読出して復号し（Ｓ４１８）、復号された圧縮データに基づいて検証値を生成して記憶されていた検証値と比較する（Ｓ４２０、Ｓ４２２）。一致しない場合（Ｓ４２２：Ｎｏ）、異常フラグが設定される（Ｓ４１６）。【選択図】図３
2015049785.tif 000002
【特許請求の範囲】
【請求項１】
書込要求に応じてプログラム記憶領域（１００）にプログラムを書き込むプログラム書込手段（２０、Ｓ４００、Ｓ４０２）と、
前記プログラムを圧縮した圧縮データを圧縮データ記憶領域（１０２）に書き込む圧縮データ書込手段（３４、Ｓ４０４）と、
前記圧縮データの正当性を検証するための第１検証値を検証値記憶領域（１０４）に書き込む検証値書込手段（４０、Ｓ４０６、Ｓ４０８）と、
前記プログラムの起動時に、前記圧縮データ記憶領域に記憶されている前記圧縮データに基づいて前記第１検証値と比較するための第２検証値を生成する検証値生成手段（４２、Ｓ４２０）と、
前記プログラムの起動時に、前記検証値記憶領域に記憶されている前記第１検証値と前記検証値生成手段が生成する前記第２検証値とを比較して前記プログラムが改竄されているか否かを判定する検証値判定手段（４４、Ｓ４２２）と、
を備えることを特徴とするプログラム処理装置（１０）。
【請求項２】
前記圧縮データ書込手段が前記圧縮データ記憶領域に書き込む前記圧縮データを前記プログラムを圧縮して自動的に生成する圧縮データ生成手段（３０、Ｓ４０２）を備えることを特徴とする請求項１に記載のプログラム処理装置。
【請求項３】
前記プログラムは複数のブロックに分割されており、各ブロックの大きさ、ならびに各ブロックと各ブロックに対応する前記圧縮データとを関連付ける関連情報を情報記憶領域（１００）に書き込む情報書込手段（２０、Ｓ４００、Ｓ４０２）を備えることを特徴とする請求項１または２に記載のプログラム処理装置。
【請求項４】
重要度の高い前記プログラムの前記ブロックの大きさが重要度の低い前記プログラムの前記ブロックの大きさよりも小さくなるように前記プログラムは分割されていることを特徴とする請求項３に記載のプログラム処理装置。
【請求項５】
前記プログラムの処理負荷が所定の低負荷時に、前記プログラム記憶領域に記憶されている前記プログラムを圧縮して前記所定の低負荷時の異常判定用の圧縮データを生成する圧縮データ生成手段（３０、Ｓ４３２）と、
前記所定の低負荷時に、前記圧縮データ記憶領域に記憶されている前記圧縮データと前記圧縮データ生成手段が生成する前記所定の低負荷時の異常判定用の圧縮データとを比較してデータ異常であるか否かを判定する圧縮データ判定手段（３６、Ｓ４３６）と、
を備えることを特徴とする請求項１から４のいずれか一項に記載のプログラム処理装置。
【請求項６】
前記プログラムの起動時に、前記プログラム記憶領域に記憶されている前記プログラムのうち重要度の高い所定の前記プログラムを圧縮して前記起動時の異常判定用の圧縮データを生成する圧縮データ生成手段（３０、Ｓ４１０）と、
前記プログラムの起動時に、前記圧縮データ記憶領域に記憶されている前記圧縮データと前記圧縮データ生成手段が生成する前記起動時の異常判定用の圧縮データとを比較してデータ異常であるか否かを判定する圧縮データ判定手段（３６、Ｓ４２２）と、
を備えることを特徴とする請求項１から５のいずれか一項に記載のプログラム処理装置。
【請求項７】
前記圧縮データ書込手段が前記圧縮データ記憶領域に書き込む前記圧縮データを暗号化し、暗号化された前記圧縮データが前記圧縮データ記憶領域から読み出されるときに復号する暗号処理手段（３２、Ｓ４０４、Ｓ４１２、Ｓ４３４）を備えることを特徴とする請求項１から６のいずれか一項に記載のプログラム処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの起動時にプログラムが改竄されているか否かを判定するプログラム処理装置に関する。
【背景技術】
【０００２】
プログラムの起動時に、予め記憶されている正規の検証値と、読み出したプログラムから生成した検証値とを比較してプログラムが改竄されているか否かを判定することが知られている。しかしながら、改竄の判定対象であるプログラムに基づいて検証値を生成するためには長い時間を要するので、プログラムが改竄されているか否かを判定してプログラムを起動するための時間が長くなる。
【０００３】
これに対し特許文献１では、プログラムを所定数のブロックに分割し、ブロック毎に正規の検証値を記憶している。そして、プログラムの起動時間を短縮するために、プログラムの起動時に、改竄の判定対象であるプログラムのうち一部のブロックや後半のブロック等の特定のブロックを読み出して生成された検証値と正規の検証値とを比較することにより、プログラムが改竄されているか否かを判定しようとしている。
【０００４】
これは、特許文献１では、プログラムが改竄されると、例えば改竄されたプログラムの後続のプログラムも変更されることを前提にしているからである。特許文献１では、改竄の判定対象であるプログラムのうち特定のブロックに基づいて検証値を生成して正規の検証値と比較すれば、改竄の判定対象であるプログラムが改竄されているか否かを判定できると判断している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−７８９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、プログラムの起動時間を短縮するために改竄の判定対象であるプログラムのうち特定のブロックに基づいて検証値を比較する方式では、検証値を比較されない他のブロックのプログラムが改竄されていないことを保証することはできない。
【０００７】
本発明は上記課題を解決するためになされたものであり、プログラムの起動時に改竄の判定対象であるプログラムが改竄されているか否かを極力短時間で高精度に判定できるプログラム処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のプログラム処理装置は、プログラム書込手段と、圧縮データ書込手段と、検証値書込手段と、検証値生成手段と、検証値判定手段と、を備える。
プログラム書込手段は、書込要求に応じてプログラム記憶領域にプログラムを書き込み、圧縮データ書込手段は、プログラムを圧縮した圧縮データを圧縮データ記憶領域に書き込む。
【０００９】
検証値書込手段は、圧縮データの正当性を検証するための第１検証値を検証値記憶領域に書き込み、検証値生成手段は、プログラムの起動時に、圧縮データ記憶領域に記憶されている圧縮データに基づいて第１検証値と比較するための第２検証値を生成する。検証値判定手段は、プログラムの起動時に、検証値記憶領域に記憶されている第１検証値と検証値生成手段が生成する第２検証値とを比較してプログラムが改竄されているか否かを判定する。
【００１０】
圧縮していないプログラムに基づいて検証値を生成するよりも、プログラムを圧縮してデータ量が小さくなった圧縮データに基づいて検証値を生成する方が、検証値を生成するために要する時間は短くなる。その結果、プログラムの起動時に、改竄の判定対象であるプログラムを圧縮した圧縮データに基づいて第２検証値を生成しても、第２検証値と予め記憶されている第１検証値とを比較することにより、プログラムの起動時に改竄の判定対象であるプログラムが改竄されているか否かを極力短時間で判定できる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態によるプログラム処理装置を示す機能ブロック図。
【図２】プログラム書込処理を示すフローチャート。
【図３】プログラム起動処理を示すフローチャート。
【図４】低負荷時処理を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図に基づいて説明する。
図１に示すプログラム処理装置１０は、例えば自動車に搭載される電子制御装置（ＥＣＵ）として使用される。プログラム処理装置１０は、プログラム読出し（Ｒ）／書き込み（Ｗ）部２０、圧縮データ生成部３０、暗号処理部３２、圧縮データＲ／Ｗ部３４、圧縮データ判定部３６、検証値Ｒ／Ｗ部４０、検証値生成部４２、検証値判定部４４、プログラム記憶領域１００、圧縮データ記憶領域１０２、および検証値記憶領域１０４等を備えており、ＣＰＵ、ＲＡＭ、ＲＯＭ、フラッシュメモリ等を備えるマイクロコンピュータにより主に構成される。
【００１３】
プログラム読出し（Ｒ）／書き込み（Ｗ）部２０、圧縮データ生成部３０、暗号処理部３２、圧縮データＲ／Ｗ部３４、圧縮データ判定部３６、検証値Ｒ／Ｗ部４０、検証値生成部４２、および検証値判定部４４の機能は、専用回路によるハード処理、あるいはＲＯＭまたはフラッシュメモリに記憶されたプログラムをＣＰＵが実行することにより実現される。プログラム記憶領域１００、圧縮データ記憶領域１０２、および検証値記憶領域１０４は、書き換え可能な不揮発性記憶装置であるフラッシュメモリ等により構成される。
【００１４】
プログラムＲ／Ｗ部２０は、外部装置２００から車内ＬＡＮを介してプログラムの書込要求があると、外部装置２００からプログラムを受信し、受信したプログラムをプログラム記憶領域１００に書き込む。プログラムは複数の所定数（Ｎ）のブロックに分割されているので、プログラムＲ／Ｗ部２０は、ブロック毎にプログラム記憶領域１００にプログラムを書き込む。
【００１５】
プログラムの各ブロックは、ブロック番号とブロックの大きさを示すサイズ情報とを有している。ブロック番号は、各ブロックと、後述する各ブロックに対応する圧縮データとを関連付ける関連情報である。
【００１６】
プログラムＲ／Ｗ部２０は、プログラムの各ブロックをプログラム記憶領域１００に書き込むときに、ブロック番号とブロックの大きさも外部装置２００から受信してプログラム記憶領域１００に書き込む。ブロック番号とブロックの大きさとが対応付けられているので、一部のブロックのプログラムだけを書き込むこともできる。
【００１７】
また、各ブロックに対応する大きさのプログラムをプログラムＲ／Ｗ部２０がサイズ情報に基づいてプログラム記憶領域１００から読み出すことにより、圧縮データ生成部３０は、読み出されたプログラムの各ブロックを圧縮して各ブロックに対応する圧縮データを生成できる。
【００１８】
尚、重要度の高いプログラムのブロックの大きさが重要度の低いプログラムのブロックの大きさよりも小さくなるようにプログラムが分割されていることが望ましい。これは、圧縮データ生成部３０がプログラムの各ブロックを圧縮して圧縮データを生成するときに、ブロックの大きさが小さいほど圧縮データが同じ圧縮値になる可能性が低くなるからである。これにより、重要度の高いプログラムの圧縮データが他のプログラムの圧縮データと同じ圧縮値になることを極力防止できる。
【００１９】
圧縮データ生成部３０は、外部装置２００からプログラムの書込要求があると、ハッシュ関数等を用いた所定の圧縮方式によりプログラムの各ブロックを圧縮して圧縮データを自動的に生成する。圧縮データを生成するために、ハッシュ関数以外にＣＲＣ（巡回冗長検査）等を用いてもよい。圧縮データとして固定長のデータが生成されると、書き込み等の圧縮データを取り扱う処理が容易になる。
【００２０】
暗号処理部３２は、圧縮データ生成部３０が生成して圧縮データＲ／Ｗ部３４が圧縮データ記憶領域１０２に書き込む圧縮データを自動的に暗号化する。また、暗号処理部３２は、圧縮データＲ／Ｗ部３４が圧縮データ記憶領域１０２から読み出す暗号化された圧縮データを復号する。
【００２１】
圧縮データＲ／Ｗ部３４は、暗号処理部３２で暗号化された圧縮データを、対応するプログラムのブロック番号とともに圧縮データ記憶領域１０２に自動的に書き込む。また、圧縮データＲ／Ｗ部３４は、暗号化された圧縮データを圧縮データ記憶領域１０２から読み出す。
【００２２】
圧縮データ判定部３６は、圧縮データ生成部３０が生成する圧縮データと暗号処理部３２で復号された圧縮データとを比較し、一致しない場合はエラーを通知する。
検証値Ｒ／Ｗ部４０は、外部装置２００がプログラムの書き込みを要求するときに、プログラムの各ブロックに対応する検証値を外部装置２００から受信し、受信した各ブロックの検証値を検証値記憶領域１０４に書き込む。
【００２３】
また、検証値Ｒ／Ｗ部４０は、検証値生成部４２が生成する検証値と比較するために、検証値記憶領域１０４から検証値を読み出す。
検証値生成部４２は、暗号処理部３２が復号した圧縮データに基づいて検証値を生成する。検証値は、例えばＭＡＣ(Message Authentication Code)のような共通鍵タイプか、あるいは電子署名のような公開鍵タイプにより生成される。
【００２４】
検証値判定部４４は、検証値Ｒ／Ｗ部４０が検証値記憶領域１０４から読み出した検証値と、暗号処理部３２が復号した圧縮データから生成された検証値とを比較し、一致しない場合はエラーを通知する。
【００２５】
次に、プログラム処理装置１０が実行するプログラム書込処理、プログラム起動処理、低負荷時処理を、それぞれ図２、図３、図４に基づいて説明する。図２〜図４のフローチャートにおいて、「Ｓ」はステップを表わしている。
【００２６】
（プログラム書込処理）
図２のＳ４００において、外部装置２００からプログラムの書き込みを要求されると、プログラムＲ／Ｗ部２０は、外部装置２００からブロック毎にプログラムとブロック番号とブロックのサイズ情報とを通信によりダウンロードする。
【００２７】
Ｓ４０２において、プログラムＲ／Ｗ部２０は外部装置２００からダウンロードしたプログラムとブロック番号とサイズ情報とをブロック毎にプログラム記憶領域１００に書き込み、圧縮データ生成部３０は外部装置２００からダウンロードしたプログラムに対しブロック毎に圧縮データを生成する。
【００２８】
Ｓ４０４において、暗号処理部３２は圧縮データ生成部３０が生成した圧縮データを暗号化し、圧縮データＲ／Ｗ部３４は暗号処理部３２が暗号化した圧縮データとブロック番号とをブロック毎に圧縮データ記憶領域１０２に書き込む。
【００２９】
検証値Ｒ／Ｗ部４０は、Ｓ４０６において、外部装置２００から圧縮データの各ブロックに対応する検証値を通信によりダウンロードし、Ｓ４０８において、ダウンロードした検証値をブロック毎に検証値記憶領域１０４に書き込む。
【００３０】
ここで、悪意のある第３者が外部装置２００により不正なプログラムの書き込みを要求すると、プログラム処理装置１０は、外部装置２００からダウンロードしたプログラムをブロック毎にプログラム記憶領域１００に書き込み、プログラムの圧縮データをブロック毎に自動的に生成して圧縮データ記憶領域１０２に書き込む。
【００３１】
しかし、圧縮データおよび圧縮データに対する検証値の生成方法は外部からは不明であるから、不正なプログラムに対応して圧縮データ記憶領域１０２に書き込まれた圧縮データに基づいて検証値生成部４２が生成する検証値を第３者が生成することはできない。
【００３２】
したがって、第３者は、不正なプログラムを圧縮した圧縮データに対応する検証値を送信できないか、検証値を送信しても、圧縮データ記憶領域１０２に書き込まれた圧縮データに基づいて検証値生成部４２が生成する検証値とは異なる値である。
【００３３】
つまり、プログラムが不正に書き込まれると、書き込まれたプログラムと圧縮データとは対応するが、検証値記憶領域１０４に記憶されている検証値と、圧縮データ記憶領域１０２に書き込まれた圧縮データに基づいて検証値生成部４２が生成する検証値とは一致しない。
【００３４】
（プログラム起動処理）
図３において実行されるプログラム起動処理のプログラムは、外部装置２００から書込要求を受けない記憶領域またはＲＯＭ等の書換不能な記憶領域に記憶されている。
【００３５】
プログラム処理装置１０への通電が開始されプログラムが起動されると、図３のＳ４１０において、プログラムＲ／Ｗ部２０は、重要度の高い所定のプログラムをブロックのサイズ情報に基づいてプログラム記憶領域１００から読み出し、圧縮データ生成部３０は読み出されたプログラムの各ブロックに基づいて、起動時の異常判定用の圧縮データを生成する。
【００３６】
重要度の高い所定のプログラムは、車載ＥＣＵの場合、燃料噴射制御、アクセル開度検出等の車両の安全走行に関係するプログラムである。
Ｓ４１２において、圧縮データＲ／Ｗ部３４はＳ４１０でプログラムＲ／Ｗ部２０が読み出したプログラムと対応するブロックの圧縮データをブロック番号に基づいて圧縮データ記憶領域１０２から読出し、暗号処理部３２は読み出された圧縮データを復号する。
【００３７】
Ｓ４１４において圧縮データ判定部３６は、Ｓ４１０において生成された圧縮データと、Ｓ４１２において復号された圧縮データとを比較し、一致するか否かを判定する。一致しない場合（Ｓ４１４：Ｎｏ）、データ異常であると判断して異常フラグが設定され（Ｓ４１６）、本処理は終了する。
【００３８】
図３のプログラムの起動処理を実行しているときには異常処理プログラムはまだ起動されていないので、Ｓ４１６で異常フラグが設定されることにより、異常処理プログラムが起動されたときに異常フラグが設定されているか否かを判定できる。異常処理プログラムは、異常フラグの値に基づいて適切な処理を実行する。
【００３９】
圧縮データが一致する場合（Ｓ４１４：Ｙｅｓ）、Ｓ４１８において、圧縮データＲ／Ｗ部３４は重要度に関係なく圧縮データ記憶領域１０２からすべての圧縮データを読出し、暗号処理部３２は読み出された圧縮データを復号する。
【００４０】
Ｓ４２０において検証値生成部４２は、復号された圧縮データに基づいてブロック毎に検証値を生成する。
Ｓ４２２において検証値判定部４４は、検証値Ｒ／Ｗ部４０が検証値記憶領域１０４から読み出した検証値と、Ｓ４２０において検証値生成部４２が生成した検証値とを比較し、一致するか否かを判定する。一致する場合（Ｓ４２２：Ｙｅｓ）、本処理は終了する。
【００４１】
一致しない場合（Ｓ４２２：Ｎｏ）、異常フラグが設定され（Ｓ４１６）、本処理は終了する。
（低負荷時処理）
図３のプログラム起動処理が終了し通常のプログラム処理に移行すると、図４のＳ４３０において、アイドリング中またはアイドルストップ中のように他のプログラムよりも処理負荷が低い所定の低負荷時であるか否かが判定される。
【００４２】
所定の低負荷時の場合（Ｓ４３０：Ｙｅｓ）、圧縮データ生成部３０はプログラムＲ／Ｗ部２０がプログラム記憶領域１００からサイズ情報に基づいて読み出したプログラムの各ブロックに基づいて、低負荷時の異常判定用の圧縮データを生成する（Ｓ４３２）。
【００４３】
Ｓ４３４において、圧縮データＲ／Ｗ部３４は圧縮データ記憶領域１０２から各ブロックの圧縮データを読出し、暗号処理部３２は読み出された圧縮データを復号する。
Ｓ４３６において圧縮データ判定部３６は、Ｓ４３２において圧縮データ生成部３０が生成した圧縮データと、Ｓ４３４において圧縮データ記憶領域１０２から読み出され復号された圧縮データとを比較し、一致するか否かを判定する。
【００４４】
一致する場合（Ｓ４３６：Ｙｅｓ）、本処理は終了する。一致しない場合（Ｓ４３６：Ｎｏ）、データ異常であると圧縮データ判定部３６は判断し、異常処理プログラムに異常を通知し（Ｓ４３８）、本処理は終了する。
【００４５】
以上説明した上記実施形態では、プログラムの起動時に、プログラムを圧縮した圧縮データに基づいて検証値を生成し、生成した検証値と予め書き込んでおいた正規の検証値とを比較してプログラムが改竄されたか否かを判定する。圧縮されていないプログラムに基づいて検証値を生成するよりも、プログラムを圧縮してデータ量が小さくなった圧縮データに基づいて検証値を生成する方が検証値を生成するために要する時間が短くなる。
【００４６】
その結果、プログラムの起動時に改竄の判定対象である全てのプログラムを圧縮した圧縮データに基づいて検証値を生成しても、プログラムの起動時間を極力短縮できる。さらに、判定対象である全てのプログラムを圧縮した圧縮データに基づいて検証値を生成し、記憶されている正規の検証値と比較するので、改竄の判定対象であるプログラムが改竄されているか否かを高精度に判定できる。
【００４７】
また、プログラムを書き込むときに、プログラム処理装置１０がプログラムを自動的に圧縮して圧縮データを生成するので、外部から圧縮データを改竄することはできない。さらに、圧縮データを暗号化して書き込むので、圧縮データの解読が困難である。
【００４８】
また、検証値を比較するだけでなく、プログラム記憶領域１００に記憶されているプログラムを圧縮して生成した圧縮データと、圧縮データ記憶領域１０２に記憶されている圧縮データとを比較することにより、プログラム記憶領域１００または圧縮データ記憶領域１０２に記憶されているデータがビット反転等の偶発的故障により変化する異常を検出できる。
【００４９】
特に、プログラム起動時において重要度の高いプログラムについて圧縮データを比較して異常を検出することにより、重要度の高いプログラムのデータが偶発的故障により変化し、プログラムが暴走することを防止できる。
【００５０】
さらに、プログラム起動後においては、プログラムの処理負荷が所定の低負荷時においてすべてのプログラムについて圧縮データを比較して異常を検出することにより、プログラムが暴走することを防止できる。
【００５１】
［他の実施形態］
上記実施形態では、プログラムを圧縮した圧縮データを暗号化して圧縮データ記憶領域１０２に書き込んだ。これに対し、圧縮データを暗号化せずに圧縮データ記憶領域１０２に書き込んでもよい。また、プログラムをブロックに分割せずにプログラム全体を圧縮して一つの圧縮データとしてもよい。
【００５２】
また、圧縮データ記憶領域１０２に書き込まれる圧縮データは、外部装置２００から送信されるプログラムをプログラム処理装置１０で自動的に圧縮するのではなく、外部装置２００から送信されるものでもよい。
【００５３】
この場合にも、悪意のある第３者の場合、書き込まれる圧縮データに対応する正規の検証値を外部装置２００から書き込むことはできないので、プログラムの起動時に、記憶されている検証値と圧縮データから生成される検証値とを比較することにより、プログラムが改竄されたか否かを適切に判定できる。
【００５４】
上記実施形態では、複数のブロックに分割された各ブロックの大きさ、ならびに各ブロックと各ブロックに対応する圧縮データとを関連付ける関連情報であるブロック番号をプログラムＲ／Ｗ部２０がプログラム記憶領域１００に書き込んだ。
【００５５】
これに対し、各ブロックの大きさとブロック番号とが書き込まれる情報記憶領域をプログラム記憶領域１００とは異なる記憶領域にしてもよい。また、各ブロックの大きさとブロック番号とを情報記憶領域に書き込む情報書込手段を、プログラム書込手段であるプログラムＲ／Ｗ部２０とは別に設けてもよい。
【００５６】
本発明のプログラム処理装置は、車両に搭載されるプログラム処理装置に限らず、どのような分野に適用されるプログラム処理装置であってもよい。
このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【００５７】
１０：プログラム処理装置、２０：プログラムＲ／Ｗ部（プログラム書込手段、情報書込手段）、３０：圧縮データ生成部（圧縮データ生成手段）、３２：暗号処理部（暗号処理手段）、３４：圧縮データＲ／Ｗ部（圧縮データ書込手段）、３６：圧縮データ判定部（圧縮データ判定手段）、４０：検証値Ｒ／Ｗ部（検証値書込手段）、４２：検証値生成部（検証値生成手段）、４４：検証値判定部（検証値判定手段）、１００：プログラム記憶領域（情報記憶領域）、１０２：圧縮データ記憶領域、１０４：検証値記憶領域、２００：外部装置
【図１】
2015049785.tif 000003
【図２】
2015049785.tif 000004
【図３】
2015049785.tif 000005
【図４】
2015049785.tif 000006