(57)【要約】【課題】完全性検証の対象となるデータのデータ長に応じ、演算アルゴリズムを自動的に選択して誤り検出符号を演算しデータの完全性を検証できる情報処理装置を提供する。【解決手段】本発明の情報処理装置１は、誤り検出符号が付加されたデータ１３０を保持するデータ保持手段１３と、それぞれ異なる誤り検出符号の演算アルゴリズムに対応した複数の演算部１２０と、データ長の範囲と演算部１２０を対応付けた参照テーブル１２１を有し、演算対象となるデータが指定されると、参照テーブル１２１を参照し、演算対象となるデータのデータ長に対応した演算部１２０を選択して誤り検出符号を演算する誤り検出符号演算手段１２と、誤り検出符号演算手段１２が演算した誤り検出符号を用いて、データ保持手段１３に保持されているデータ１３０の完全性を検証するデータ整合性検証手段１０を備えている。【選択図】図１
2013062691.tif 000002
【特許請求の範囲】
【請求項１】
誤り検出符号が付加されたデータを保持するデータ保持手段と、それぞれ異なる誤り検出符号の演算アルゴリズムに対応した複数の演算部と、データ長の範囲と前記演算部を対応付けた参照テーブルを有し、演算対象となるデータが指定されると、前記参照テーブルを参照し、演算対象となるデータのデータ長に対応した前記演算部を選択して誤り検出符号を演算する誤り検出符号演算手段と、前記データ保持手段に保持されているデータの完全性を検証する指示を受けると、指示されたデータの誤り検出符号を前記誤り検出符号演算手段に演算させ、指示されたデータに付加されている誤り検出符号と前記誤り検出符号演算手段が演算した誤り検出符号を照合するデータ整合性検証手段を備えたことを特徴とする情報処理装置。
【請求項２】
前記データ保持手段に保持されているデータに付加された誤り検出符号の更新が指示されると、指示されたデータを更新した後、更新後のデータの誤り検出符号を前記誤り検出符号演算手段に演算させ、更新後のデータに付加されている誤り検出符号を前記誤り検出符号演算手段が演算した誤り検出符号に更新する誤り検出符号更新手段を備えたことを特徴とする、請求項１に記載した情報処理装置。
【請求項３】
それぞれ異なる誤り検出符号の演算アルゴリズムに対応した複数の演算部と、データ長の範囲と前記演算部を対応付けた参照テーブルを有し、演算対象となるデータが指定されると、前記参照テーブルを参照し、演算対象となるデータのデータ長に対応した前記演算部を選択して誤り検出符号を演算する誤り検出符号演算手段と、前記データ保持手段に保持されているデータの完全性を検証する指示を受けると、指示されたデータの誤り検出符号を前記誤り検出符号演算手段に演算させ、指示されたデータに付加されている誤り検出符号と前記誤り検出符号演算手段が演算した誤り検出符号を照合するデータ整合性検証手段としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの誤り検出符号を演算しデータの完全性を検証するための技術に関する。
【背景技術】
【０００２】
ＩＣカードやパーソナルコンピュータなどの情報処理装置が、情報処理装置のメモリに記憶されているデータまたは外部から受信したデータの完全性を検証する際、特許文献１に記載のように、所定の演算アルゴリムにより演算した誤り検出符号を用いることが一般的である。
【０００３】
情報処理装置が外部から受信したデータの完全性を検証する場合、特許文献１に記載のように、情報処理装置が演算した誤り検出符号を検証する装置は、情報処理装置自体でもよく、また、外部の装置であってもよいが、情報処理装置が、情報処理装置のメモリに記憶されているデータの完全性を検証する場合、誤り検出符号を検証する装置は情報処理装置自体になり、情報処理装置は、情報処理装置のメモリに記憶されているデータの完全性を検証するために、所定の演算アルゴリムにより演算した誤り検出符号を付加した形態でデータをメモリに記憶しておき、データの完全性を検証する際、所定の演算アルゴリムにより演算したデータの誤り検出符号と、メモリに記憶されているデータの誤り検出符号を照合する。
【０００４】
誤り検出符号の演算に用いられる演算アルゴリズムとしては、データに対して論理演算のＮＯＴを施した値を誤り検出符号とする演算アルゴリズムや、チェックサム、ＣＲＣ、ＳＨＡ１、ＤＥＳなどの演算アルゴリズムが複数存在し、情報処理装置が、外部から受信したデータの完全性を検証する場合、誤り検出符号の演算に利用する演算アルゴリズムについて、データを送信する側の装置と予め取り決めがなされていることが一般的である。
【０００５】
これに対し、情報処理装置が、情報処理装置のメモリに記憶されているデータの完全性を検証する場合、メモリに記憶するデータに付加する誤り検出符号の演算に用いる演算アルゴリムは、情報処理装置側で任意に決定することができる。
【０００６】
情報処理装置のメモリに記憶されているデータの完全性の検証に誤り検出符号を用いる際の課題としては、誤り検出符号の演算時間の短縮がある。
【０００７】
図５は、データ長と誤り検出符号の演算時間の関係を説明する図である。当然のことながら、図５に図示しているように、同一の演算アルゴリズムならばデータ長が長くなるに従い演算時間も長くなるが、演算アルゴリズム同士を比較した場合、演算時間が短くなる演算アルゴリズムはデータ長に依存する。
【０００８】
例えば、演算対象となるデータのデータ長が長さＬよりも短ければ、演算アルゴリズムＢを用いるときよりも演算アルゴリズムＡを用いる方が誤り検出符号の演算時間は短いが、データ長が長さＬよりも長ければ、演算アルゴリズムＢを用いるときよりも演算アルゴリズムＡを用いる方が誤り検出符号の演算時間は長くなってしまう。
【０００９】
特に、Ｊａｖａ（登録商標）などのバーチャルマシン（ＶＭ）を搭載したプラットフォーム型オペレーティングシステムにおいて、プラットフォーム型オペレーティングシステム上のアプリケーションが誤り検出符号を演算する場合、誤り検出符号の演算対象となるデータへのアクセスや中間コードの解釈・実行が、演算対象となるデータのデータ長に応じて繰り返し実行されるため、上述した性質は顕著に現れる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６―３５０７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
情報処理装置のメモリに記憶されているデータの完全性の検証に係る時間を短縮することを考えた場合、情報処理装置のメモリに記憶されているデータが固定長ならば、例えば、図５のようなグラフを参照して、誤り検出符号の演算に用いる演算アルゴリズムを一意に決定することができるが、データが可変長の場合は、図５に図示したように、誤り検出符号の演算時間の短い演算アルゴリムはデータ長に応じて変更になるため、データ長に応じて誤り検出符号の演算に用いる演算アルゴリズムを決定できることが望ましい。
【００１２】
そこで、本発明は、完全性検証の対象となるデータのデータ長に応じ、演算アルゴリズムを自動的に選択して誤り検出符号を演算しデータの完全性を検証できる情報処理装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決する第１の発明は、誤り検出符号が付加されたデータを保持するデータ保持手段と、演算対象となるデータのデータ長に応じて演算アルゴリズムを変更できるように、それぞれ異なる誤り検出符号の演算アルゴリズムに対応した複数の演算部と、データ長の範囲と前記演算部を対応付けた参照テーブルを有し、演算対象となるデータが指定されると、前記参照テーブルを参照し、演算対象となるデータのデータ長に対応した前記演算部を選択して誤り検出符号を演算する誤り検出符号演算手段と、前記データ保持手段に保持されているデータの完全性を検証する指示を受けると、指示されたデータの誤り検出符号を前記誤り検出符号演算手段に演算させ、指示されたデータに付加されている誤り検出符号と前記誤り検出符号演算手段が演算した誤り検出符号を照合するデータ整合性検証手段を備えたことを特徴とする情報処理装置である。
【００１４】
更に、第２の発明は、前記データ保持手段に保持されているデータに付加された誤り検出符号の更新が指示されると、指示されたデータを更新した後、更新後のデータの誤り検出符号を前記誤り検出符号演算手段に演算させ、更新後のデータに付加されている誤り検出符号を前記誤り検出符号演算手段が演算した誤り検出符号に更新する誤り検出符号更新手段を備えたことを特徴とする、第１の発明に記載した情報処理装置である。
【００１５】
更に、第３の発明は、それぞれ異なる誤り検出符号の演算アルゴリズムに対応した複数の演算部と、データ長の範囲と前記演算部を対応付けた参照テーブルを有し、演算対象となるデータが指定されると、前記参照テーブルを参照し、演算対象となるデータのデータ長に対応した前記演算部を選択して誤り検出符号を演算する誤り検出符号演算手段と、前記データ保持手段に保持されているデータの完全性を検証する指示を受けると、指示されたデータの誤り検出符号を前記誤り検出符号演算手段に演算させ、指示されたデータに付加されている誤り検出符号と前記誤り検出符号演算手段が演算した誤り検出符号を照合するデータ整合性検証手段としてコンピュータを機能させるためのコンピュータプログラムである。
【発明の効果】
【００１６】
このように、本発明によれば、完全性検証の対象となるデータのデータ長に応じ、演算アルゴリズムを自動的に選択して誤り検出符号を演算しデータの完全性を検証できる情報処理装置及びコンピュータプログラムを提供できる。
【図面の簡単な説明】
【００１７】
【図１】情報処理装置が有する機能を説明する図。
【図２】情報処理装置の動作を説明する図。
【図３】実施例のＩＣカードに実装されたＩＣチップのハードウェア構成を説明する図。
【図４】実施例における参照テーブルを説明する図。
【図５】データ長と誤り検出符号の演算時間の関係を説明する図。
【発明を実施するための形態】
【００１８】
ここから、本発明にかかる情報処理装置の好適な実施形態について、図面を参照しながら詳細に説明する。なお、本発明は，これから説明する実施形態に限定されることなく、種々の変形や変更が可能である。
【００１９】
図１は、本実施形態の情報処理装置１が有する機能を説明する図である。本実施形態の情報処理装置１は、コンピュータを用いて実現される装置で、好ましくは、本実施形態の情報処理装置１は、プラットフォーム型オペレーティングシステムが実装されたＩＣカードであるが、汎用的なパーソナルコンピュータやスマートフォンであっても構わない。
【００２０】
図１に図示したように、本実施形態の情報処理装置１は、誤り検出符号が付加されたデータ１３０を保持するデータ保持手段１３と、演算対象となるデータ１３０の誤り検出符号を演算する誤り検出符号演算手段１２を備え、誤り検出符号演算手段１２は、それぞれ異なる誤り検出符号の演算アルゴリズムに対応した複数の演算部１２０と、データ長の範囲と演算部１２０を対応付けた参照テーブル１２１を有し、演算対象となるデータ１３０が指定されると、参照テーブル１２１を参照し、演算対象となるデータ１３０のデータ長に対応した演算部１２０を選択して誤り検出符号を演算する。
【００２１】
更に、本実施形態の情報処理装置１は、データ保持手段１３に保持されているデータ１３０の完全性を検証できるように、データ保持手段１３に保持されているデータ１３０の完全性を検証する指示を受けると、指示されたデータ１３０の誤り検出符号を誤り検出符号演算手段１２に演算させ、指示されたデータ１３０に付加されている誤り検出符号と誤り検出符号演算手段１２が演算した誤り検出符号を照合するデータ完全検証手段１０を備える。
【００２２】
更に、本実施形態の情報処理装置１は、データ保持手段１３に保持されているデータ１３０を更新した際に誤り検出符号も更新できるように、データ１３０に付加された誤り検出符号の更新が指示されると、更新されたデータ１３０の誤り検出符号を誤り検出符号演算手段１２に演算させ、更新されたデータ１３０に付加されている誤り検出符号を誤り検出符号演算手段１２が演算した誤り検出符号に更新する誤り検出符号更新手段１１を備えている。
【００２３】
なお、本実施形態において、情報処理装置１に備えられた参照テーブル１２１はテーブル形式のデータで、データ保持手段１３は、情報処理装置１に実装されたメモリ、または、情報処理装置１に接続されたハードディスクなどで実現され、情報処理装置１の各手段は、情報処理装置１に実装されたコンピュータプログラムで実現される。
【００２４】
図２は、情報処理装置１の動作を説明する図である。情報処理装置１が誤り検出符号を演算する際、まず、データ保持手段１３に保持されているデータ１３０の中から、誤り検出符号演算手段１２に対して誤り検出符号の演算対象となるデータ１３０が、情報処理装置１の他の手段から指定される（Ｓ１）。
【００２５】
本実施形態では、データ保持手段１３に保持されているデータ１３０には、それぞれのデータ１３０を識別するための識別子が付加され、この識別子により演算対象となるデータ１３０が指定される。なお、データ１３０の完全性を検証する際は、情報処理装置１のデータ完全性検証手段１０が、完全性検証の対象となるデータ１３０を指定することになり、また、データ保持手段１３に保持されているデータ１３０が更新された際は、情報処理装置１の誤り検出符号更新手段１１が更新されたデータ１３０を指定することになる。
【００２６】
情報処理装置１の誤り検出符号演算手段１２は、演算対象となるデータ１３０が指定されると、データ１３０の識別子を利用して演算対象となるデータ１３０のデータ長をデータ保持手段１３から取得した後（Ｓ２）、参照テーブル１２１を参照して、演算対象となるデータ１３０の誤り検出符号の演算に用いる演算部１２０として、演算対象となるデータ１３０のデータ長に対応する演算部１２０を選択する（Ｓ３）。
【００２７】
本実施形態において、誤り検出符号演算手段１２の参照テーブル１２１には、誤り検出符号演算手段１２が有する演算部１２０毎にレコードが設けられ、該レコードには、それぞれの演算部１２０を識別する識別子に対応付けて演算部１２０を利用する際のデータ長の範囲が記述されている。
【００２８】
例えば、１バイトから３１バイトまでのデータ長の範囲に対応付けられた演算部１２０の識別子が「０１」、３２バイトから６３バイトまでのデータ長の範囲に対応付けられた演算部１２０の識別子が「０２」、６４バイト以上のデータ長の範囲に対応付けられた演算部１２０の識別子が「０３」の場合、演算対象となるデータ１３０のデータ長が１６バイトならば、識別子が「０１」である演算部１２０が選択され、演算対象となるデータ１３０のデータ長が５６バイトならば、識別子が「０２」である演算部１２０が選択され、また、演算対象となるデータ１３０のデータ長が２５６バイトならば、識別子が「０３」である演算部１２０が選択されることになる。
【００２９】
情報処理装置１の誤り検出符号演算手段１２は、演算対象となるデータ１３０のデータ長に対応する演算部１２０を選択すると、演算対象となるデータ１３０をデータ保持手段１３から取得して、演算対象となるデータ１３０の誤り検出符号を選択した演算部１２０に演算する（Ｓ４）。なお、選択した演算部１２０が演算した誤り検出符号はメモリの所定の場所に記憶されることで、演算対象となるデータ１３０を指定した手段に、選択した演算部１２０が演算した誤り検出符号が引き渡される。
【００３０】
演算対象となるデータ１３０を指定した手段は、誤り検出符号演算手段１２から引き渡された誤り検出符号を用いた処理が実行され（Ｓ５）、この手順は終了する。
【００３１】
演算対象となるデータ１３０を指定した手段がデータ完全性検証手段１０の場合、データ完全性検証手段１０は、完全性検証の対象となるデータ１３０に付加されている誤り検出符号をデータ保持手段１３から取得し、取得した誤り検出符号と誤り検出符号演算手段１２から引き渡された誤り検出符号を照合することで、演算対象として指定したデータ１３０の完全性を検証する。
【００３２】
また、演算対象となるデータ１３０を指定した手段が誤り検出符号更新手段１１の場合、誤り検出符号更新手段１１は、更新されたデータ１３０に付加されている誤り検出符号を、誤り検出符号演算手段１２から引き渡された誤り検出符号に更新する。
【実施例】
【００３３】
ここから、情報処理装置１をＩＣカードとしたときの実施例について説明する。図３は、実施例のＩＣカード２に実装されたＩＣチップのハードウェア構成を説明する図である。図３に図示したように、ＩＣカード２に実装されたＩＣチップには、ＩＣチップを制御するＣＰＵ２１（Central Processing Unit）を有し、このＣＰＵ２１には、外部装置とデータ通信するためのＩ／Ｏインターフェース２０と、揮発性メモリとしてＲＡＭ（Random Access Memory）２２と、電気的に書き換え可能な不揮発性メモリとしてＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）２３と、プログラム等を記憶させる不揮発性メモリであるＲＯＭ（Read-Only Memory）２４が接続された構成となっている。なお、図４で図示したＩＣチップのハードウェア構成は一例にしか過ぎず、暗号演算に特化したコプロセッサや、時間を計測するタイマなどの他のハードウェアが実装されていることが一般的である。
【００３４】
実施例のＩＣカード２において、ＥＥＰＲＯＭ２３は情報処理装置１のデータ保持手段１３として利用され、情報処理装置１の誤り検出符号演算手段１２、データ完全性検証手段１０及び誤り検出符号更新手段１１としてＣＰＵ２０を動作させるモジュールはＲＯＭ２４に格納されている。
【００３５】
データ完全性検証手段１０として機能するモジュールは、例えば、ＥＥＰＲＯＭ２３に記憶されたデータを読み出すＲＥＡＤコマンドなど、ＥＥＰＲＯＭ２３に記憶されたデータを利用するコマンドによって呼び出されるモジュールで、また誤り検出符号更新手段１１として機能するモジュールは、ＥＥＰＲＯＭ２３に記憶されたデータを更新するＵＰＤＡＴＥコマンドなど、ＥＥＰＲＯＭ２３に記憶されたデータを書き換えるコマンドによって呼び出されるモジュールである。
【００３６】
また、実施例のＩＣカード２は、演算部１２０として機能する演算モジュールとして、チェックサムを演算する演算モジュールと、ＣＲＣ（Cyclic Redundancy Check）を演算する演算モジュールを有し、いずれかの演算モジュールを利用するかは、実施例のＩＣカード２が有する参照テーブル１２１によって決定される。
【００３７】
図４は、実施例における参照テーブル１２１ａを説明する図である。図４に図示したように、実施例では、データ長の範囲が１バイト以上３１バイト以下の場合、誤り検出符号の演算にチェックサムを利用し、データ長の範囲が３２バイト以上の場合、誤り検出符号の演算にＣＲＣ（Cyclic Redundancy Check）を利用するようになっている。
【００３８】
図４に従えば、ＲＥＡＤコマンドによりＥＥＰＲＯＭ２３に記憶されているデータを読み出す際、読み出すデータの完全性がデータ完全性検証手段１０として機能するモジュールによって検証され、読み出し対象となるデータのデータ長が３２バイト以上であれば、誤り検出符号の演算にＣＲＣが用いられてデータの完全性が検証され、それ以外であれば、誤り検出符号の演算にチェックサムが用いられてデータの完全性が検証される。
【００３９】
また、ＵＰＤＡＴＥコマンドによりＥＥＰＲＯＭ２３に記憶されているデータが更新されると、更新されたデータに付加された誤り検出符号も誤り検出符号更新手段１１として機能するモジュールによって更新され、更新後のデータのデータ長が３２バイト以上であれば、ＣＲＣが用いられて誤り検出符号が演算され、それ以外であれば、チェックサムが用いられて誤り検出符号が演算される。
【符号の説明】
【００４０】
１    情報処理装置
１０  データ完全性検証手段
１１  誤り検出符号更新手段
１２  誤り検出符号演算手段
１２０  演算部
１２１  参照テーブル
１３  データ保持手段
１３０  データ
【図１】
2013062691.tif 000003
【図２】
2013062691.tif 000004
【図３】
2013062691.tif 000005
【図４】
2013062691.tif 000006
【図５】
2013062691.tif 000007