(57)【要約】【課題】処理時間の短縮を図ることができる。また、使用メモリ領域の削減を図ることができる。【解決手段】通知手段４は、通信用暗号化データ２の通信用データ２ｂ部分のみを受信し、受信した通信用データ２ｂが備えるデータサイズを、コンピュータ１が備える一時記憶手段５に通信用暗号化データ２を格納するための格納領域６を準備する準備部７に通知する。データ格納手段８は、準備された格納領域６に、通信用暗号化データ２を格納する。復号手段９は、格納領域６に格納された通信用暗号化データ２に含まれる暗号化データ２ａを復号して平文データ３を取得する。【選択図】図１
2008210012.tif 000002
【特許請求の範囲】
【請求項１】
平文データを暗号化した暗号化データと、通信されるデータのデータサイズの情報を備える通信用データとを有する通信用暗号化データを受信した際の処理を行うデータ復号処理プログラムにおいて、
コンピュータを、
前記通信用暗号化データの前記通信用データ部分のみを受信し、受信した前記通信用データが備える前記データサイズを、前記コンピュータが備える一時記憶手段に前記通信用暗号化データを格納するための格納領域を準備する準備部に通知する通知手段、
準備された前記格納領域に、前記通信用暗号化データを格納するデータ格納手段、
前記格納領域に格納された前記通信用暗号化データに含まれる前記暗号化データから前記平文データに復号する復号手段、
として機能させることを特徴とするデータ復号処理プログラム。
【請求項２】
前記コンピュータを、さらに、前記復号手段によって復号された前記平文データのサイズを前記コンピュータが備える平文データ使用部に通知するデータサイズ通知手段、として機能させることを特徴とする請求項１記載のデータ復号処理プログラム。
【請求項３】
前記データ格納手段は、前記データサイズに基づいて前記格納領域と前記通信用暗号化データの量との大小を比較し、前記格納領域が前記通信用暗号化データ量より大きいか等しい場合、前記格納領域に前記通信用暗号化データを格納することを特徴とする請求項１記載のデータ復号処理プログラム。
【請求項４】
前記通信用データは、固定長のヘッダに格納されていることを特徴とする請求項１記載のデータ復号処理プログラム。
【請求項５】
平文データを暗号化した暗号化データと、通信されるデータのデータサイズの情報を備える通信用データとを有する通信用暗号化データを受信した際の処理を行うデータ復号処理プログラムにおいて、
コンピュータを、
予め用意されたサイズに基づいて前記コンピュータが備える一時記憶手段に準備される第１の格納領域以外の、前記通信用暗号化データに含まれるデータを格納する第２の格納領域を準備する準備手段、
前記第１の格納領域と前記第２の格納領域との双方の領域にわたって、前記通信用暗号化データを格納するデータ格納手段、
前記第１の格納領域と前記第２の格納領域との双方の領域にわたって格納された前記通信用暗号化データに含まれる前記暗号化データから前記平文データに復号する復号手段、
として機能させることを特徴とするデータ復号処理プログラム。
【請求項６】
前記準備手段は、予め用意された既知のデータサイズに基づいて前記第２の格納領域を準備することを特徴とする請求項５記載のデータ復号処理プログラム。
【請求項７】
前記データ格納手段は、前記第１の格納領域および前記第２の格納領域の合計と、前記通信用暗号化データの量との大小を比較し、前記格納領域が前記通信用暗号化データ量より大きいか等しい場合、前記第１の格納領域と前記第２の格納領域との双方の領域にわたって、前記通信用暗号化データを格納することを特徴とする請求項５記載のデータ復号処理プログラム。
【請求項８】
平文データを暗号化した暗号化データと、通信されるデータのデータサイズの情報を備える通信用データとを有する通信用暗号化データを受信した際の処理を行うデータ復号処理装置において、
前記通信用暗号化データの前記通信用データ部分のみを受信し、受信した前記通信用データが備える前記データサイズを通知する通知部と、
前記通知部により通知された前記データサイズに基づいて、前記コンピュータが備える一時記憶手段に前記通信用暗号化データを格納する格納領域を準備する準備部と、
前記格納領域に前記通信用暗号化データを格納するデータ格納部と、
前記格納領域に格納された前記通信用暗号化データに含まれる前記暗号化データから前記平文データに復号する復号部と、
前記復号部により復号された前記平文データを、前記格納領域から取り出す取り出し部と、
を有することを特徴とするデータ復号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ復号処理プログラムおよびデータ復号処理装置に関し、特に、通信用暗号化データを受信した際の処理を行うデータ復号処理プログラムおよびデータ復号処理装置に関する。
【背景技術】
【０００２】
ネットワーク上で第三者による「盗聴」「改竄」「なりすまし」といったトラブルを回避するために、例えばＴＬＳ（Transport Layer Security）／ＳＳＬ（Secure Socket Layer）通信等の各種暗号化通信方法が知られている（例えば、特許文献１参照）。例えばＴＬＳ／ＳＳＬ通信では、対向サーバ／クライアント間で、認証並びに暗号化方式とその鍵とのネゴシエーションを行い、その後、認証済みの対向サーバ／クライアントとその合意された暗号化方式と鍵とを使用してオリジナルデータ（平文データ、元データ）を暗号化してやりとりする。
【０００３】
図１０は、暗号化通信の従来の処理を示す図である。
この暗号化通信を行うシステム（サーバ、クライアント間）において、オリジナルデータ９０に暗号化処理を施す送信側９１のアプリケーション（図示せず）は、プロトコルスタック（protocol stack）が実装されている暗号通信用のソフトライブラリ（図示せず）を利用することが一般的に知られている。受信側９２では、ソフトライブラリ９３が確保した受信用バッファ９３ａ内で暗号化されたデータ９４を復号し、復号したオリジナルデータ９０を受信側のアプリケーション９５において参照する。
【０００４】
ところで、暗号化されたデータ９４は、オリジナルデータ９０に比べてそのデータサイズは増加し、その増加量は一定ではない。よって、オリジナルデータ９０のデータサイズは、暗号化されたデータ９４の全体を受信して、復号するまで分からない。すなわち、暗号化されたデータ９４は、オリジナルデータ９０とサイズが異なるため、受信側９２は、暗号化されたデータ９４のデータサイズを予め知ることはできない。そのため、受信側のアプリケーション９５は、データを受信するための受信用バッファ９３ａの管理をソフトライブラリ９３内で行っていた。
【０００５】
また、アプリケーション９５はオリジナルデータ９０を読み出すとき、アプリケーション９５が用意したデータ格納領域９６のアドレスおよびサイズをソフトライブラリ９３に指定し、ソフトライブラリ９３が復号したオリジナルデータ９０を指定したサイズ分だけデータ格納領域９６に複写して使用していた。
【特許文献１】特開平７−３２７０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般的な汎用ＰＣ（Personal Computer）等においては、メモリ領域は比較的大きいため、データ格納領域を大きくとってもあまり問題は生じない。しかし、組み込み機器等の、ＣＰＵ（Central Processing Unit）やメモリ等のリソースに制限がある機器にて暗号化通信を行う場合は、複写回数の削減が要求される。また、組み込み機器では、扱われるデータのデータサイズが限定されている場合や大きくない場合があり、従来のソフトライブラリが獲得する受信用バッファのサイズは必ずしも適切ではない。
【０００７】
本発明はこのような点に鑑みてなされたものであり、処理時間の短縮を図ることができるデータ復号処理プログラムおよびデータ復号処理装置を提供することを目的とする。
また、他の目的として、使用メモリ領域の削減を図ることができるデータ復号処理プログラムおよびデータ復号処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では上記問題を解決するために、図１に示すような処理をコンピュータ１に実行させるためのデータ復号処理プログラムが提供される。
本発明に係るデータ復号処理プログラムは、通信用暗号化データを受信した際の処理を行うプログラムである。
【０００９】
図１に示す通信用暗号化データ２は、平文データ３を暗号化した暗号化データ２ａと、通信されるデータ、すなわち通信用暗号化データ２のデータサイズの情報を備える通信用データ２ｂとを有する。
【００１０】
このデータ復号処理プログラムを実行するコンピュータ１は以下の機能を有する。
通知手段４は、通信用暗号化データ２の通信用データ２ｂ部分のみを受信し、受信した通信用データ２ｂが備えるデータサイズを、コンピュータ１が備える一時記憶手段５に通信用暗号化データ２を格納するための格納領域６を準備する準備部７に通知する。
【００１１】
データ格納手段８は、準備された格納領域６に、通信用暗号化データ２を格納する。
復号手段９は、格納領域６に格納された通信用暗号化データ２に含まれる暗号化データ２ａから平文データ３に復号する。
【００１２】
このようなデータ復号処理プログラムによれば、通知手段４により、通信用暗号化データ２の通信用データ２ｂ部分のみが受信され、受信された通信用データ２ｂが備えるデータサイズが、準備部７に通知される。準備部７により、コンピュータ１が備える一時記憶手段５に通信用暗号化データ２を格納するための格納領域６が準備されると、データ格納手段８により、準備された格納領域６に、通信用暗号化データ２が格納される。復号手段９により、格納領域６に格納された通信用暗号化データ２に含まれる暗号化データ２ａから平文データ３に復号される。
【００１３】
また、上記課題を解決するために、平文データを暗号化した暗号化データと、通信されるデータのデータサイズの情報を備える通信用データとを有する通信用暗号化データを受信した際の処理を行うデータ復号処理プログラムにおいて、コンピュータを、予め用意されたサイズに基づいて前記コンピュータが備える一時記憶手段に準備される第１の格納領域以外の、前記通信用暗号化データに含まれるデータを格納する第２の格納領域を準備する準備手段、前記第１の格納領域と前記第２の格納領域との双方の領域にわたって、前記通信用暗号化データを格納するデータ格納手段、前記第１の格納領域と前記第２の格納領域との双方の領域にわたって格納された前記通信用暗号化データに含まれる前記暗号化データから前記平文データに復号する復号手段、として機能させることを特徴とするデータ復号処理プログラムが提供される。
【００１４】
このようなデータ復号処理プログラムによれば、準備手段により第２の格納領域が準備される。データ格納手段により、第１の格納領域と第２の格納領域との双方の領域にわたって通信用暗号化データが格納され、第２の格納領域に通信用データが格納される。復号手段により、第１の格納領域と第２の格納領域との双方の領域にわたって格納された通信用暗号化データに含まれる暗号化データから平文データが復号される。
【００１５】
また、上記課題を解決するために、平文データを暗号化した暗号化データと、通信されるデータのデータサイズの情報を備える通信用データとを有する通信用暗号化データを受信した際の処理を行うデータ復号処理装置において、前記通信用暗号化データの前記通信用データ部分のみを受信し、受信した前記通信用データが備える前記データサイズを通知する通知部と、前記通知部により通知された前記データサイズに基づいて、前記コンピュータが備える一時記憶手段に前記通信用暗号化データを格納する格納領域を準備する準備部と、前記格納領域に前記通信用暗号化データを格納するデータ格納部と、前記格納領域に格納された前記通信用暗号化データに含まれる前記暗号化データから前記平文データに復号する復号部と、前記復号部により復号された前記平文データを、前記格納領域から取り出す取り出し部と、を有することを特徴とするデータ復号処理装置が提供される。
【００１６】
このようなデータ復号処理装置によれば、通知部により、通信用暗号化データの通信用データ部分のみが受信され、受信された通信用データが備えるデータサイズが、準備部に通知される。準備部により、一時記憶手段に通信用暗号化データを格納するための格納領域が準備される。データ格納部により、準備された格納領域に、通信用暗号化データが格納される。復号部により、格納領域に格納された通信用暗号化データに含まれる暗号化データから平文データが復号される。
【発明の効果】
【００１７】
本発明では、通知手段が、格納領域を準備する準備部にデータサイズを通知し、準備部が準備した格納領域に通信用暗号化データを格納するようにしたので、準備部側で、データサイズに応じた無駄のない格納領域を準備することができる。これにより、データ複写をすることなく、平文データを取得することができるため、処理時間の短縮および使用メモリ領域の削減を図ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図１は、本発明の概要を示す図である。
【００１９】
図１に示す通信用暗号化データ２は、平文データ３を暗号化した暗号化データ２ａと、通信用暗号化データ２のデータサイズ（暗号化データ２ａのデータサイズでもよい）の情報を備える通信用データ２ｂとを有する。通信用暗号化データ２は、コンピュータ１以外のコンピュータ（図示せず）により作成され、ネットワーク（図示せず）を介してコンピュータ１に送信される。
【００２０】
コンピュータ１は、通知手段４と、一時記憶手段５と、準備部７と、データ格納手段８と、復号手段９とを有する。これら各手段のうち、通知手段４と、データ格納手段８と、復号手段９とが、データ復号処理プログラムによって提供される。
【００２１】
通知手段４は、通信用暗号化データ２の通信用データ２ｂ部分のみを受信し、受信した通信用データ２ｂが備えるデータサイズを、準備部７に通知する。準備部７は、通知を受けてコンピュータ１が備える一時記憶手段５に通信用暗号化データ２を格納するための格納領域６を準備する。ここで、準備部７は、通信用暗号化データ２のデータサイズに応じた格納領域６を準備する。
【００２２】
データ格納手段８は、準備された格納領域６に、通信用暗号化データ２を格納する。
復号手段９は、格納領域６に格納された通信用暗号化データ２に含まれる暗号化データ２ａから平分データ３に復号する。
【００２３】
このようなデータ復号処理プログラムによれば、通知手段４により、通信用暗号化データ２の通信用データ２ｂ部分のみが受信され、受信された通信用データ２ｂが備えるデータサイズが、準備部７に通知される。準備部７により、コンピュータ１が備える一時記憶手段５に通信用暗号化データ２を格納するための格納領域６が準備されると、データ格納手段８により、準備された格納領域６に、通信用暗号化データ２が格納される。復号手段９により、格納領域６に格納された通信用暗号化データ２に含まれる暗号化データ２ａから平文データ３に復号される。
【００２４】
以下、本発明の実施の形態を説明する。
図２は、実施の形態の受信側装置を示すブロック図である。
暗号化処理システムは、受信側装置１００と、送信側装置２００とがネットワーク１１を介して接続されている。
【００２５】
受信側装置１００は、ユーザインタフェースを備えており、ユーザの操作等によって送信側装置２００に対してデータの送信指示を送信する。このデータの内容は、ユーザの指示内容によって異なるが、例えば、画像データや、音声データや文書データ等が挙げられる。
【００２６】
送信側装置２００は、受信側装置１００からのデータ送信指示を受信すると、受信側装置１００に送信する通信用暗号化データを作成する。
図３は、通信用暗号化データを説明する図である。
【００２７】
送信側装置２００は、受信側装置１００に送信する暗号化されていないデータ（オリジナルデータ）３００に暗号化処理を施して暗号化データ３１０を作成し、作成した暗号化データ３１０に固定長のヘッダ部３２０および暗号化通信方式に応じた増加部３３０を付加して通信用暗号化データ３４０を作成する。
【００２８】
ヘッダ部３２０は、通信用暗号化データ３４０のデータサイズ（レコード長）の情報を有している。
増加部３３０は、可変長であり、パディング（padding）等を含む。
【００２９】
これらヘッダ部３２０が、通信用データを構成し、暗号化データ３１０および増加部３３０が暗号化データを構成する。
図４は、受信側装置のハードウェア構成例を示す図である。
【００３０】
受信側装置１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０９を介してＲＡＭ（Random Access Memory）１０２、ＲＯＭ（Read Only Memory）１０３、グラフィック処理装置１０４、入力インタフェース１０６、および通信インタフェース１０８が接続されている。
【００３１】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３２】
ＲＯＭ１０３には、ＯＳやアプリケーション１０３ａ、ソフトライブラリ１０３ｂ等、各種プログラムが格納される。
グラフィック処理装置１０４には、モニタ１０５が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０５の画面に表示させる。入力インタフェース１０６には、例えば十字キーやボタン等を備える入力手段１０７が接続されている。入力インタフェース１０６は、入力手段１０７から送られてくる信号を、バス１０９を介してＣＰＵ１０１に送信する。
【００３３】
通信インタフェース１０８は、ネットワーク１１に接続されている。通信インタフェース１０８は、ネットワーク１１を介して、送信側装置２００との間でデータの送受信を行う。
【００３４】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、本実施の形態では、モニタ１０５および入力手段１０７を受信側装置１００が有する構成としたが、本発明はこれに限らず、外部に設けられたモニタおよび入力手段と接続可能な構成になっていてもよい。このようなハードウェア構成のシステムにおいてデータ復号処理を行うために、受信側装置１００内には、以下のような機能が設けられる。
【００３５】
図５は、受信側装置の機能を示すブロック図である。
受信側装置１００は、ＣＰＵ１０１の一機能によって実現されるアプリケーション実行部１０１ａおよびソフトライブラリ実行部１０１ｂと、ＲＡＭ１０２内に準備される受信用バッファ１０２ａと、通信インタフェース１０８の一機能によって実現される送受信部１０８ａとを有している。
【００３６】
アプリケーション実行部１０１ａは、例えば入力手段１０７からの送信側装置２００へのデータダウンロード指示があったとき等、送信側装置２００から通信用暗号化データ３４０を受信する際に起動し、ＲＯＭ１０３からアプリケーション１０３ａを読み出して実行する。
【００３７】
このアプリケーション実行部１０１ａは、アプリケーション１０３ａの実行時に、ＲＡＭ１０２内に所定のアドレス、サイズを備える受信用バッファ１０２ａを準備（確保）する。
【００３８】
ソフトライブラリ実行部１０１ｂは、アプリケーション実行部１０１ａの起動に伴い、ＲＯＭ１０３からソフトライブラリ１０３ｂを読み出して実行する。
ソフトライブラリ実行部１０１ｂは、送受信部１０８ａが受信した通信用暗号化データ３４０のデータサイズをアプリケーション実行部１０１ａに通知する。
【００３９】
また、ソフトライブラリ実行部１０１ｂは、受信用バッファ１０２ａ内で通信用暗号化データ３４０からオリジナルデータ３００を復号する。
送受信部１０８ａは、送信側装置２００とのインタフェースを構成している。
【００４０】
次に、本実施の形態のシステムの動作について説明する。
図６は、第１の実施の形態のシステムの動作を示す図である。
まず、受信側装置１００は、送信側装置２００に対し、受信側装置１００へのデータの送信指示を送信する。このとき、アプリケーション実行部１０１ａおよびソフトライブラリ実行部１０１ｂが起動する。
【００４１】
送信側装置２００は、この送信指示を受信してオリジナルデータ３００に暗号化処理を施して通信用暗号化データ３４０を作成する。
次に、送信側装置２００が、通信用暗号化データ３４０を、ネットワーク１１を介して受信側装置１００に送信する。
【００４２】
通信用暗号化データ３４０を受信した受信側装置１００では、アプリケーション実行部１０１ａが、ソフトライブラリ実行部１０１ｂによって通知された通信用暗号化データ３４０のデータサイズの受信用バッファ１０２ａをＲＡＭ１０２内に準備する。
【００４３】
ソフトライブラリ実行部１０１ｂは、アプリケーション実行部１０１ａが準備した受信用バッファ１０２ａにデータを直接受信する。そして、受信用バッファ１０２ａ内にて通信用暗号化データ３４０に復号処理を施し、オリジナルデータ３００に復号する。そして、アプリケーション実行部１０１ａは、復号されたオリジナルデータ３００を参照して読み出す。
【００４４】
次に、受信側装置１００が通信用暗号化データ３４０を受信してオリジナルデータ３００に復号するために、アプリケーション実行部１０１ａおよびソフトライブラリ実行部１０１ｂが行う処理（受信側処理）についてさらに詳しく説明する。
【００４５】
図７は、第１の実施の形態の受信側処理を示す図である。
受信側装置１００が通信用暗号化データ３４０を受信すると、まず、アプリケーション実行部１０１ａが、データサイズを通知する関数を呼び出す（ステップＳ１）。この関数については後述する。
【００４６】
この関数の呼び出しにより、ソフトライブラリ実行部１０１ｂが、通信用暗号化データ３４０のヘッダ部３２０のみを受信する（ステップＳ１ａ）。
次に、ソフトライブラリ実行部１０１ｂが、ヘッダ部３２０からデータサイズを取り出して参照し、そのデータサイズをアプリケーション実行部１０１ａに通知する（ステップＳ２ａ）。
【００４７】
データサイズを受け取ったアプリケーション実行部１０１ａは、そのデータサイズに対応する（データサイズ分の）受信用バッファ１０２ａをＲＡＭ１０２に準備する（ステップＳ２）。
【００４８】
次に、アプリケーション実行部１０１ａは、準備した受信用バッファ１０２ａのアドレスとそのサイズとをソフトライブラリ実行部１０１ｂに通知する（ステップＳ３）。
ソフトライブラリ実行部１０１ｂは、受け取ったデータサイズに基づいて、受信用バッファ１０２ａのサイズが、受け取ったデータサイズより小さいか否か（通信用暗号化データ３４０を受信できるデータサイズの受信用バッファ１０２ａを、アプリケーション実行部１０１ａが準備できたか否か）を判断する（ステップＳ３ａ）。
【００４９】
受け取ったデータサイズより受信用バッファ１０２ａのサイズが小さい場合（ステップＳ３ａのＹｅｓ）、エラー処理として空受信を行い（ステップＳ４ａ）、受信側処理を終了する。
【００５０】
受信用バッファ１０２ａのサイズが受け取ったデータサイズ以上の場合（ステップＳ３ａのＮｏ）、ソフトライブラリ実行部１０１ｂは、アプリケーション実行部１０１ａが準備した受信用バッファ１０２ａにデータを受信する（ステップＳ５ａ）。
【００５１】
そして、ソフトライブラリ実行部１０１ｂは、復号処理を行う（ステップＳ６ａ）。
その後、ソフトライブラリ実行部１０１ｂは、復号したオリジナルデータ３００のデータサイズをアプリケーション実行部１０１ａに通知する（ステップＳ７ａ）。
【００５２】
アプリケーション実行部１０１ａは、受信用バッファ１０２ａから、通知されたデータサイズ分のオリジナルデータ３００を読み出す（ステップＳ４）。
以上で受信側処理を終了する。
【００５３】
以上述べたように、本実施の形態のシステムによれば、ソフトライブラリ実行部１０１ｂが、まずヘッダ部３２０のみを受信し、データサイズを参照してアプリケーション実行部１０１ａに通知するようにしたので、アプリケーション実行部１０１ａが、データサイズに対応する受信用バッファ１０２ａを準備することができる。これにより、容量に無駄のない受信用バッファ１０２ａを準備することができる。また、ソフトライブラリ実行部１０１ｂは、受信用バッファ１０２ａ内でオリジナルデータ３００に復号するようにしたので、アプリケーション実行部１０１ａは、オリジナルデータ３００を取得するための領域を別個に作成することがない。これにより、データの複写回数を削減することができ、処理時間の短縮を図ることができる。また、メモリ使用量の削減およびメモリの低容量化を図ることができる。このため、特に組み込み用途において効果を発揮する。
【００５４】
次に、第２の実施の形態のシステムについて説明する。
以下、第２の実施の形態のシステムについて、前述した第１の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【００５５】
第２の実施の形態のシステムは、例えばオリジナルデータ３００の大きさに何らかの制限が加わり、オリジナルデータ３００の最大データサイズが予め予測できる場合に用いられるシステムである。第２の実施の形態のシステムは、受信側装置１００の受信側処理が第１の実施の形態と異なっている。
【００５６】
図８は、第２の実施の形態のシステムの動作を示す図である。
第２の実施の形態では、アプリケーション実行部１０１ａには、オリジナルデータ３００の大きさの情報（例えば１ｋＢ程度）が予め格納されている。
【００５７】
アプリケーション実行部１０１ａは、この情報に基づいて、（オリジナルデータ３００の最大長の）データ受信用バッファ（第１の格納領域）１０２ｂを準備する。
また、ソフトライブラリ実行部１０１ｂには、通信用暗号化データ３４０のサイズがオリジナルデータ３００のサイズに比べて増加し得る最大の大きさ（第２の格納領域１０２ｃの大きさ）の情報が予め格納されている。この大きさは、ヘッダ部の長さ、パディングの最大長、ＭＡＣの長さ等の既知の値から求めることができる。なお、これらの値は暗号化方式により規定されるため、ソフトライブラリ実行部１０１ｂが管理すべきである。
【００５８】
この第２の格納領域であるデータ受信用拡張バッファ１０２ｃの大きさは、ヘッダ部３２０および増加部３３０が格納できる大きさであれば小さい方が好ましく、例えば０．３ｋＢ程度である。
【００５９】
次に、第２の実施の形態の受信側処理について説明する。
図９は、第２の実施の形態の受信側処理を示す図である。
受信側装置１００が通信用暗号化データ３４０を受信すると、まず、アプリケーション実行部１０１ａが、データ受信用バッファ１０２ｂを準備する。（ステップＳ１１）。
【００６０】
また、ソフトライブラリ実行部１０１ｂが、データ受信用拡張バッファ１０２ｃを準備する（ステップＳ１１ａ）。その後、アプリケーション実行部１０１ａからの通知を待機する。
【００６１】
アプリケーション実行部１０１ａは、準備したデータ受信用バッファ１０２ｂのアドレスとサイズとをソフトライブラリ実行部１０１ｂに通知する（ステップＳ１２）。
ソフトライブラリ実行部１０１ｂは、準備したデータ受信用バッファ１０２ｂのサイズと、準備したデータ受信用拡張バッファ１０２ｃのサイズとの合計サイズが、受け取ったデータサイズより小さいか否か（通信用暗号化データ３４０を受信できるデータ受信用バッファ１０２ｂのサイズをアプリケーション実行部１０１ａが、用意できたか否か）を判断する（ステップＳ１２ａ）。
【００６２】
受け取ったデータサイズより合計サイズが小さい場合（ステップＳ１２ａのＹｅｓ）、エラー処理として空受信を行い（ステップＳ１３ａ）、受信側処理を終了する。
合計サイズが受け取ったデータサイズ以上の場合（ステップＳ１２ａのＮｏ）、ソフトライブラリ実行部１０１ｂは、通信用暗号化データ３４０を受信し、アプリケーション実行部１０１ａが準備したデータ受信用バッファ１０２ｂとデータ受信用拡張バッファ１０２ｃとにわたって、通信用暗号化データ３４０を格納する（ステップＳ１４ａ）。通信用暗号化データ３４０のサイズが小さい場合は、データ受信用バッファ１０２ｂのみで格納できる場合もある。
【００６３】
そして、ソフトライブラリ実行部１０１ｂは、復号処理を行う（ステップＳ１５ａ）。
その後、ソフトライブラリ実行部１０１ｂは、復号したオリジナルデータ３００のデータサイズをアプリケーション実行部１０１ａに通知する（ステップＳ１６ａ）。
【００６４】
アプリケーション実行部１０１ａは、データ受信用バッファ１０２ｂから、通知されたデータサイズ分のオリジナルデータ３００を参照して読み出す（ステップＳ１３）。
以上で、第２の実施の形態の受信側処理を終了する。
【００６５】
そして、第２の実施形態のシステムによれば、データ受信用拡張バッファ１０２ｃをソフトライブラリ実行部１０１ｂが準備しておくことで、アプリケーション実行部１０１ａは、データサイズの増加し得る大きさを意識することなく、データ受信用バッファ１０２ｂを準備することができる。よって、第１の実施の形態のシステムと同様の効果が得られる。
【００６６】
なお、本発明のデータ復号処理プログラムは、既存のプログラムに、以下の機能を有するインタフェース（関数）を追加することで実現することができる。この場合、以下の機能を有する関数が提供される。以下に示す関数１は、第１の実施の形態のシステムにおけるソフトライブラリ実行部１０１ｂの機能に対応しており、関数２は、第１の実施の形態のシステムおよび第２の実施の形態のシステムそれぞれにおけるソフトライブラリ実行部１０１ｂの機能に対応しており、関数３は、第２の実施の形態のシステムにおけるソフトライブラリ実行部１０１ｂの機能に対応している。
【００６７】
＜関数１＞
概要：受信した通信用暗号化データのデータサイズをあらかじめアプリケーションに通知する。
【００６８】
インタフェース：ｓｉｚｅ＝ｆ（ｖｏｉｄ）
ｓｉｚｅ：通信用暗号化データのデータサイズ
機能：通信用データであるレコードのヘッダ部分を受信し、そこに格納されている（あるいは算出される）データサイズを通知する。
【００６９】
＜関数２＞
概要：アプリケーションが準備した受信バッファのアドレスとそのサイズとをソフトライブラリへ通知させる。復号したオリジナルデータのデータサイズをアプリケーションに通知する。
【００７０】
インタフェース：ｓｉｚｅ２＝ｆ（ａｄｄｒｅｓｓ，ｓｉｚｅ１）
ａｄｄｒｅｓｓ：アプリケーションが準備した受信用バッファのアドレス
ここで、ｓｉｚｅ１は、アプリケーションが準備した受信用バッファのサイズであり、ｓｉｚｅ２は、復号したデータ（オリジナルデータ）のデータサイズである。
【００７１】
機能：アプリケーションが準備した受信用バッファを用いて、データを受信し、復号処理を行う。関数１で通知されたデータサイズよりｓｉｚｅ１が小さい場合は、エラー処理（データの空受信）を行う。復号後のデータ（オリジナルデータ）のデータサイズをアプリケーションに通知する。
【００７２】
＜関数３＞
概要：オリジナルデータの最大データサイズの受信用バッファを準備させて、そのアドレスとサイズとをソフトライブラリへ通知させる。
【００７３】
インタフェース：ｓｉｚｅ２＝ｆ（ａｄｄｒｅｓｓ，ｓｉｚｅ１）
ａｄｄｒｅｓｓ：アプリケーションが準備した受信用バッファのアドレス
ここで、ｓｉｚｅ１は、アプリケーションが準備した受信用バッファのサイズであり、ｓｉｚｅ２は、復号したデータ（オリジナルデータ）のデータサイズである。
【００７４】
機能：アプリケーションが準備した受信用バッファと受信用拡張バッファの両方を用いて、データを受信し、復号処理を行う。ｓｉｚｅ１と受信用拡張バッファの合計サイズより大きいデータを受信した場合は、エラー処理(データの空受信）を行う。復号後のデータ（オリジナルデータ）のデータサイズをアプリケーションに通知する。
【００７５】
以上、本発明のデータ復号処理プログラムおよびデータ復号処理装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００７６】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
また、本発明は、例えば産業機器や、ホームネットワーク等のセキュアな分野に適用することができる。
【００７７】
また、本発明に適用することができる暗号化方式は、特に限定されない。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ソフトライブラリ実行部１０１ｂが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【００７８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７９】
データ復号処理プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【００８０】
【図１】本発明の概要を示す図である。
【図２】実施の形態の受信側装置を示すブロック図である。
【図３】通信用暗号化データを説明する図である。
【図４】受信側装置のハードウェア構成例を示す図である。
【図５】受信側装置の機能を示すブロック図である。
【図６】第１の実施の形態のシステムの動作を示す図である。
【図７】第１の実施の形態の受信側処理を示す図である。
【図８】第２の実施の形態のシステムの動作を示す図である。
【図９】第２の実施の形態の受信側処理を示す図である。
【図１０】暗号化通信の従来の処理を示す図である。
【符号の説明】
【００８１】
１  コンピュータ
２  通信用暗号化データ
３  平文データ
４  通知手段
５  一時記憶手段
６  格納領域
７  準備部
８  データ格納手段
９  復号手段
１１  ネットワーク
１００  受信側装置
１０１ａ  アプリケーション実行部
１０１ｂ  ソフトライブラリ実行部
１０２ａ  受信用バッファ
１０２ｂ  データ受信用バッファ
１０２ｃ  データ受信用拡張バッファ
１０８ａ  送受信部
２００  送信側装置
３００  オリジナルデータ
３１０  暗号化データ
３２０  ヘッダ部
３３０  増加部
３４０  通信用暗号化データ
【図１】
2008210012.tif 000003
【図２】
2008210012.tif 000004
【図３】
2008210012.tif 000005
【図４】
2008210012.tif 000006
【図５】
2008210012.tif 000007
【図６】
2008210012.tif 000008
【図７】
2008210012.tif 000009
【図８】
2008210012.tif 000010
【図９】
2008210012.tif 000011
【図１０】
2008210012.tif 000012