(57)【要約】【課題】パケットが改ざんされた場合に受信側で検知可能とすることを目的とする。【解決手段】データ送信装置１０は、データＡＰ［１］のハッシュ値Ｈ［１］を計算し、ハッシュ値Ｈ［１］とデータＡＰ［２］とを合わせてパケットＰ［２］を生成する。また、データ送信装置１０は、ｉ＝２からｎ−１まで順に、パケットＰ［ｉ］のハッシュ値Ｈ［ｉ］を計算し、ハッシュ値Ｈ［ｉ］とデータＡＰ［ｉ＋１］とを合わせてパケットＰ［ｉ＋１］を生成する。さらに、データ送信装置１０は、パケットＰ［ｎ］のハッシュ値Ｈ［ｎ］を計算し、ハッシュ値Ｈ［ｎ］とデータＡＰ［１］とを合わせた仮データについての署名Ｓｉｇ［１］を計算し、ハッシュ値Ｈ［ｎ］とデータＡＰ［１］と署名Ｓｉｇとを合わせてパケットＰ［１］を生成する。そして、データ送信装置１０は、パケットＰ［１］からパケットＰ［ｎ］までのパケットをデータ受信装置へ送信する。【選択図】図１
2013222984.tif 000002
【特許請求の範囲】
【請求項１】
データＡＰ［１］からデータＡＰ［ｎ］（ｎは３以上の整数）までをパケット化して送信する送信装置であり、
データＡＰ［１］のハッシュ値Ｈ［１］を計算し、計算したハッシュ値Ｈ［１］とデータＡＰ［２］とを合わせてパケットＰ［２］を生成する初期パケット生成部と、
ｉ＝２からｎ−１まで順に、パケットＰ［ｉ］のハッシュ値Ｈ［ｉ］を計算し、計算したハッシュ値Ｈ［ｉ］とデータＡＰ［ｉ＋１］とを合わせてパケットＰ［ｉ＋１］を生成する後続パケット生成部と、
パケットＰ［ｎ］のハッシュ値Ｈ［ｎ］を計算し、計算したハッシュ値Ｈ［ｎ］とデータＡＰ［１］とを合わせた仮データについての署名Ｓｉｇ［１］を計算し、計算したハッシュ値Ｈ［ｎ］とデータＡＰ［１］と計算した署名Ｓｉｇとを合わせてパケットＰ［１］を生成する最終パケット生成部と、
前記パケットＰ［１］から前記パケットＰ［ｎ］までのパケットを受信装置へ送信するパケット送信部と
を備えることを特徴とする送信装置。
【請求項２】
請求項１に記載の送信装置が送信したパケットを受信する受信装置であり、
前記パケットＰ［１］に含まれる署名Ｓｉｇを検証する署名検証部と、
ｉ＝２からｎまで順に、前記パケットＰ［ｉ−１］からハッシュ値Ｈ［ｉ−１］を計算して、計算したハッシュ値Ｈ［ｉ−１］と前記パケットＰ［ｉ］に含まれるハッシュ値Ｈ［ｉ−１］とを比較し、前記ハッシュ値Ｈ［ｉ−１］の検証を行うとともに、前記パケットＰ［ｎ］からハッシュ値Ｈ［ｎ］を計算して、計算したハッシュ値Ｈ［ｎ］と前記パケットＰ［１］に含まれるハッシュ値Ｈ［ｎ］とを比較し、前記ハッシュ値Ｈ［ｎ］の検証を行うハッシュ値検証部と、
前記署名Ｓｉｇの検証に前記署名検証部が成功し、かつ、ｉ＝１からｎまでの前記ハッシュ値Ｈ［ｉ］の検証に前記ハッシュ値検証部が成功した場合、前記送信装置が送信したパケットが改ざんされていないと判定する改ざん判定部と
を備えることを特徴とする受信装置。
【請求項３】
データＡＰ［１］からデータＡＰ［ｎ］（ｎは３以上の整数）までをパケット化して送信する送信装置であり、
データＡＰ［１］のハッシュ値Ｈ［１］を計算し、計算したハッシュ値Ｈ［１］とデータＡＰ［ｎ］とを合わせてパケットＰ［ｎ］を生成する初期パケット生成部と、
ｉ＝ｎから３まで順に、パケットＰ［ｉ］のハッシュ値Ｈ［ｉ］を計算し、計算したハッシュ値Ｈ［ｉ］とデータＡＰ［ｉ−１］とを合わせてパケットＰ［ｉ−１］を生成する後続パケット生成部と、
パケットＰ［２］のハッシュ値Ｈ［２］を計算し、計算したハッシュ値Ｈ［２］とデータＡＰ［１］とを合わせた仮データについての署名Ｓｉｇ［１］を計算し、計算したハッシュ値Ｈ［２］とデータＡＰ［１］と計算した署名Ｓｉｇとを合わせてパケットＰ［１］を生成する最終パケット生成部と、
前記パケットＰ［１］から前記パケットＰ［ｎ］までのパケットを受信装置へ送信するパケット送信部と
を備えることを特徴とする送信装置。
【請求項４】
請求項３に記載の送信装置が送信したパケットを受信する受信装置であり、
前記パケットＰ［１］に含まれる署名Ｓｉｇを検証する署名検証部と、
前記パケットＰ［１］からハッシュ値Ｈ［１］を計算して、計算したハッシュ値Ｈ［１］と前記パケットＰ［ｎ］に含まれるハッシュ値Ｈ［１］とを比較し、前記ハッシュ値Ｈ［１］の検証を行うとともに、ｉ＝ｎ−１から１まで順に、前記パケットＰ［ｉ＋１］からハッシュ値Ｈ［ｉ＋１］を計算して、計算したハッシュ値Ｈ［ｉ＋１］と前記パケットＰ［ｉ］に含まれるハッシュ値Ｈ［ｉ＋１］とを比較し、前記ハッシュ値Ｈ［ｉ＋１］の検証を行うハッシュ値検証部と、
前記署名Ｓｉｇの検証に前記署名検証部が成功し、かつ、ｉ＝１からｎまでの前記ハッシュ値Ｈ［ｉ］の検証に前記ハッシュ値検証部が成功した場合、前記送信装置が送信したパケットが改ざんされていないと判定する改ざん判定部と
を備えることを特徴とする受信装置。
【請求項５】
データＡＰ［１］からデータＡＰ［ｎ］（ｎは３以上の整数）までをパケット化して送信する送信装置であり、
データＡＰ［１］のハッシュ値Ｈ［１］を計算し、計算したハッシュ値Ｈ［１］とデータＡＰ［２］とを合わせて仮パケットＰ［２］を生成するとともに、計算したハッシュ値Ｈ［１］とデータＡＰ［ｎ］とを合わせて仮パケットＰ’［ｎ］を生成する初期パケット生成部と、
ｉ＝２からｎ−１まで順に、仮パケットＰ［ｉ］のハッシュ値Ｈ［ｉ］を計算し、計算したハッシュ値Ｈ［ｉ］とデータＡＰ［ｉ＋１］とを合わせて仮パケットＰ［ｉ＋１］を生成するとともに、ｉ＝ｎから３まで順に、パケットＰ’［ｉ］のハッシュ値Ｈ’［ｉ］を計算し、計算したハッシュ値Ｈ’［ｉ］とデータＡＰ［ｉ−１］とを合わせて仮パケットＰ’［ｉ−１］を生成する後続パケット生成部と、
仮パケットＰ［ｎ］のハッシュ値Ｈ［ｎ］と仮パケットＰ’［２］のハッシュ値Ｈ’［２］とを計算し、計算したハッシュ値Ｈ［ｎ］と計算したハッシュ値Ｈ’［２］とデータＡＰ［１］とを合わせた仮データについての署名Ｓｉｇ［１］を計算し、計算したハッシュ値Ｈ［ｎ］と計算したハッシュ値Ｈ’［２］とデータＡＰ［１］と計算した署名Ｓｉｇとを合わせてパケットＰ［１］を生成する最終パケット生成部と、
前記パケットＰ［１］と、ｉ＝２からｎまでのパケットＰ［ｉ］であって、前記ハッシュ値Ｈ［ｉ−１］と前記データＡＰ［ｉ］と前記ハッシュ値Ｈ’［ｉ＋１］とを合わせたパケットＰ［ｉ］とのパケットを受信装置へ送信するパケット送信部と
を備えることを特徴とする送信装置。
【請求項６】
請求項５に記載の送信装置が送信したパケットを受信する受信装置であり、
前記パケットＰ［１］に含まれる署名Ｓｉｇを検証する署名検証部と、
ｉ＝２からｎまで順に、前記パケットＰ［ｉ］からハッシュ値Ｈ’［ｉ］を計算して、計算したハッシュ値Ｈ’［ｉ］と前記パケットＰ［ｉ−１］に含まれるハッシュ値Ｈ’［ｉ］とを比較し、前記ハッシュ値Ｈ’［ｉ］の検証を行うとともに、前記パケットＰ［１］からハッシュ値Ｈ［１］を計算して、計算したハッシュ値Ｈ［１］と前記パケットＰ［ｎ］に含まれるハッシュ値Ｈ［１］とを比較し、前記ハッシュ値Ｈ［１］の検証を行うハッシュ値検証部と、
前記署名Ｓｉｇの検証に前記署名検証部が成功し、かつ、ｉ＝１からｎまでの前記ハッシュ値Ｈ［ｉ］の検証に前記ハッシュ値検証部が成功した場合、前記送信装置が送信したパケットが改ざんされていないと判定する改ざん判定部と
を備えることを特徴とする受信装置。
【請求項７】
前記ハッシュ値検証部は、ｉ＝２からｎのうちの所定のｊについてのパケットＰ［ｊ］が欠落していた場合、ｉ＝ｊ＋１からｎ−１まで順に、前記パケットＰ［ｉ］からハッシュ値Ｈ［ｉ］を計算して、計算したハッシュ値Ｈ［ｉ］と前記パケットＰ［ｉ＋１］に含まれるハッシュ値Ｈ［ｉ］とを比較し、前記ハッシュ値Ｈ［ｉ］の検証を行うとともに、前記パケットＰ［ｎ］からハッシュ値Ｈ［ｎ］を計算して、計算したハッシュ値Ｈ［ｎ］と前記パケットＰ［１］に含まれるハッシュ値Ｈ［ｎ］とを比較し、前記ハッシュ値Ｈ［ｎ］の検証を行う
ことを特徴とする請求項６に記載の受信装置。
【請求項８】
請求項５に記載の送信装置が送信したパケットを受信する受信装置であり、
前記パケットＰ［１］に含まれる署名Ｓｉｇを検証する署名検証部と、
ｉ＝２からｎまで順に、前記パケットＰ［ｉ−１］からハッシュ値Ｈ［ｉ−１］を計算して、計算したハッシュ値Ｈ［ｉ−１］と前記パケットＰ［ｉ］に含まれるハッシュ値Ｈ［ｉ−１］とを比較し、前記ハッシュ値Ｈ［ｉ−１］の検証を行うとともに、前記パケットＰ［ｎ］からハッシュ値Ｈ［ｎ］を計算して、計算したハッシュ値Ｈ［ｎ］と前記パケットＰ［１］に含まれるハッシュ値Ｈ［ｎ］とを比較し、前記ハッシュ値Ｈ［ｎ］の検証を行うハッシュ値検証部と、
前記署名Ｓｉｇの検証に前記署名検証部が成功し、かつ、ｉ＝１からｎまでの前記ハッシュ値Ｈ［ｉ］の検証に前記ハッシュ値検証部が成功した場合、前記送信装置が送信したパケットが改ざんされていないと判定する改ざん判定部と
を備えることを特徴とする受信装置。
【請求項９】
前記ハッシュ値検証部は、ｉ＝２からｎのうちの所定のｊについてのパケットＰ［ｊ］が欠落していた場合、ｉ＝ｊ＋２からｎまで順に、前記パケットＰ［ｉ］からハッシュ値Ｈ’［ｉ−１］を計算して、計算したハッシュ値Ｈ’［ｉ−１］と前記パケットＰ［ｉ−１］に含まれるハッシュ値Ｈ’［ｉ−１］とを比較し、前記ハッシュ値Ｈ’［ｉ−１］の検証を行うとともに、前記パケットＰ［１］からハッシュ値Ｈ［１］を計算して、計算したハッシュ値Ｈ［１］と前記パケットＰ［ｎ］に含まれるハッシュ値Ｈ［１］とを比較し、前記ハッシュ値Ｈ［１］の検証を行う
ことを特徴とする請求項８に記載の受信装置。
【請求項１０】
前記後続パケット生成部は、ｉ＝２からｎ−１のうちの所定のｔについて、前記パケットＰ［ｔ］についての署名Ｓｉｇ［ｔ］を計算し、計算した署名Ｓｉｇ［ｔ］を前記パケットＰ［ｔ］に含める
ことを特徴とする請求項１と請求項３と請求項５とのいずれかに記載の送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データをパケット化して通信する技術に関する。
【背景技術】
【０００２】
特許文献１には、印刷ジョブデータの通信方法についての記載がある。
特許文献１では、印刷クライアントは、印刷ジョブデータを小さなデータ断片であるチャンクに分け、各チャンクのハッシュ値を計算する。また、印刷クライアントは、乱数を発生させ、その乱数のハッシュ値を計算する。印刷クライアントは、乱数のハッシュ値の電子署名を生成し、乱数のハッシュ値と、電子署名と、第１のチャンクとを合わせて第１パケットとする。印刷クライアントは、第１パケットのハッシュ値と第２チャンクとを合わせて第２パケットとする。以降、印刷クライアントは、第（ｉ−１）パケットのハッシュ値と第ｉチャンクとを合わせて第ｉパケットとする。そして、印刷クライアントは、最終チャンク（第ｎチャンクとする）を含む第ｎパケット（第ｎ−１パケットのハッシュ値と第ｎチャンクとを合わせたもの）が決まると、第ｎパケットのハッシュ値とＮＵＬＬデータとを合わせて、第（ｎ＋１）パケットとする。
このように、特許文献１では、電子署名された乱数のハッシュ値から、各パケットのハッシュ値が連鎖して、最終の第（ｎ＋１）パケットのハッシュ値につながるようにパケットが構成される。そして、このパケットを印刷ジョブデータとして送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１１８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された印刷ジョブデータの通信方法では、パケット数が、チャンク数よりも１つ多くなってしまう。
【０００５】
また、特許文献１に記載された印刷ジョブデータの通信方法では、パケットを盗聴し、改ざんしても受信側では改ざんを検知できない場合がある。
具体的には、盗聴者が、一連のパケットのうちの途中のデータを盗聴し、チャンクを改ざんし、盗聴したパケットのハッシュ値と改ざんしたチャンクとを組み合わせて新たなパケットとする。盗聴者が、その後のパケットすべてを盗聴し、改ざんした直前のパケットのハッシュ値と改ざんしたチャンクとを組み合わせて新たなパケットとする。そして、盗聴者が、元のパケットに代えて、新たなパケットを送信しても、受信側ではその改ざんを検知できない。
【０００６】
この発明は、送信するパケット数をデータ数（チャンク数）と同じとし、かつ、パケットが改ざんされた場合に受信側で検知可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るデータ送信装置は、
データＡＰ［１］からデータＡＰ［ｎ］（ｎは３以上の整数）までをパケット化して送信するデータ送信装置であり、
データＡＰ［１］のハッシュ値Ｈ［１］を計算し、計算したハッシュ値Ｈ［１］とデータＡＰ［２］とを合わせてパケットＰ［２］を生成する初期パケット生成部と、
ｉ＝２からｎ−１まで順に、パケットＰ［ｉ］のハッシュ値Ｈ［ｉ］を計算し、計算したハッシュ値Ｈ［ｉ］とデータＡＰ［ｉ＋１］とを合わせてパケットＰ［ｉ＋１］を生成する後続パケット生成部と、
パケットＰ［ｎ］のハッシュ値Ｈ［ｎ］を計算し、計算したハッシュ値Ｈ［ｎ］とデータＡＰ［１］とを合わせた仮データについての署名Ｓｉｇ［１］を計算し、計算したハッシュ値Ｈ［ｎ］とデータＡＰ［１］と計算した署名Ｓｉｇとを合わせてパケットＰ［１］を生成する最終パケット生成部と、
前記パケットＰ［１］から前記パケットＰ［ｎ］までのパケットをデータ受信装置へ送信するデータ送信部と
を備えることを特徴とする。
【発明の効果】
【０００８】
この発明に係るデータ送信装置では、データ受信装置へ送信するパケット数が、送信するデータ数と同じｎ個である。
また、この発明に係るデータ送信装置では、パケットＰ［１］に署名を付すことで、パケットＰ［１］の構成データ（ハッシュ値Ｈ［ｎ］、データＡＰ［１］）の完全性が担保される。そして、ハッシュ値のリストが、署名が付されたパケットＰ［１］からパケットＰ［２］，．．．，パケットＰ［ｎ］へ順次繋がり、パケットＰ［ｎ］からパケットＰ［１］へ繋がる。上記の通り、パケットＰ［１］の構成データであるハッシュ値Ｈ［ｎ］の完全性は担保されており、途中のパケットでデータ改ざんを行っても、改ざんしたパケットＰ［ｎ］のハッシュ値をパケットＰ［１］の構成データであるハッシュ値Ｈ［ｎ］にすることは困難である。そのため、パケットが改ざんされた場合にデータ受信装置で改ざんの有無をチェックすることができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る通信システム１００の構成図。
【図２】実施の形態１に係るパケットの構成図。
【図３】実施の形態１に係る送信装置１０の動作を示すフローチャート。
【図４】実施の形態１に係る受信装置２０の動作を示すフローチャート。
【図５】実施の形態１に係るパケットの他の構成を示す図。
【図６】実施の形態１に係るパケットの他の構成を示す図。
【図７】実施の形態２に係るパケットの構成図。
【図８】実施の形態２に係る送信装置１０の動作を示すフローチャート。
【図９】実施の形態２に係る受信装置２０の動作を示すフローチャート。
【図１０】実施の形態２に係るパケットの他の構成を示す図。
【図１１】実施の形態２に係るパケットの他の構成を示す図。
【図１２】実施の形態３に係るパケットの構成図。
【図１３】実施の形態３に係る送信装置１０の動作を示すフローチャート。
【図１４】実施の形態３に係る受信装置２０の動作を示すフローチャート。
【図１５】実施の形態３に係る受信装置２０の動作を示すフローチャート。
【図１６】実施の形態１−３に係る送信装置１０、受信装置２０のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、実施の形態１に係る通信システム１００の構成図である。
通信システム１００は、送信装置１０と、受信装置２０とを備える。送信装置１０と受信装置２０とは、伝送路３０で接続されている。
送信装置１０は、データ入力部１１、初期パケット生成部１２、後続パケット生成部１３、最終パケット生成部１４、パケット送信部１５を備える。受信装置２０は、パケット受信部２１、署名検証部２２、ハッシュ値検証部２３、改ざん判定部２４を備える。伝送路３０は、無線通信用の伝送路であっても、有線通信用の伝送路であっても構わない。
【００１１】
ここでは、送信装置１０が、データＡＰ［１］からデータＡＰ［ｎ］までのｎ個（ｎは３以上の整数）のアプリケーションデータを、伝送路３０を介して、受信装置２０へ送信することとする。送信装置１０は、データＡＰ［１］からデータＡＰ［ｎ］までのｎ個のアプリケーションデータをパケット化して受信装置２０へ送信する。
【００１２】
図２は、実施の形態１に係るパケットの構成図である。
データＡＰ［ｉ］は、ｉ番目のアプリケーションデータである。パケットＰ［ｉ］は、データＡＰ［ｉ］に対応するｉ番目のパケットである。ハッシュ値Ｈ−［ｉ］は、データＡＰ［ｉ］のハッシュ値である。ハッシュ値Ｈ−Ｐ［ｉ］は、パケットＰ［ｉ］のハッシュ値である。具体的には、ハッシュ値Ｈ−Ｐ［２］は、パケットＰ［２］の構成データであるハッシュ値Ｈ−［１］とデータＡＰ［２］とを合わせたパケットＰ［２］全体のハッシュ値である。署名Ｓｉｇは、パケットＰ［１］の構成データであるハッシュ値Ｈ−Ｐ［ｎ］とデータＡＰ［１］とを合わせたデータ（図２において網掛で示すデータ）に対する電子署名である。
【００１３】
図３は、実施の形態１に係る送信装置１０の動作を示すフローチャートである。
（ＳＴ１１：データ入力処理）
データ入力部１１は、入力装置により、ＡＰ［１］からＡＰ［ｎ］までのｎ個のアプリケーションデータを入力する。
【００１４】
（ＳＴ１２：初期パケット生成処理）
初期パケット生成部１２は、処理装置により、データＡＰ［１］のハッシュ値Ｈ−［１］を計算する。初期パケット生成部１２は、処理装置により、計算したハッシュ値Ｈ−［１］とデータＡＰ［２］とを合わせてパケットＰ［２］を生成して記憶装置に記憶する。
【００１５】
（ＳＴ１３：後続パケット生成処理）
後続パケット生成部１３は、ｉ＝２からｎ−１まで順に、以下の処理を実行する。まず、後続パケット生成部１３は、処理装置により、パケットＰ［ｉ］のハッシュ値Ｈ−Ｐ［ｉ］を計算する。そして、後続パケット生成部１３は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｉ］とデータＡＰ［ｉ＋１］とを合わせてパケットＰ［ｉ＋１］を生成して記憶装置に記憶する。
【００１６】
（ＳＴ１４：最終パケット生成処理）
最終パケット生成部１４は、処理装置により、パケットＰ［ｎ］のハッシュ値Ｈ−Ｐ［ｎ］を計算する。最終パケット生成部１４は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｎ］とデータＡＰ［１］とを合わせた仮データについての署名Ｓｉｇを計算する。最終パケット生成部１４は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｎ］とデータＡＰ［１］と計算した署名Ｓｉｇとを合わせてパケットＰ［１］を生成して記憶装置に記憶する。
【００１７】
（ＳＴ１５：パケット送信処理）
パケット送信部１５は、通信装置により、ＳＴ１２からＳＴ１４までで生成されたパケットＰ［１］からパケットＰ［ｎ］までを、伝送路３０を介して、受信装置２０へ送信する。
【００１８】
図４は、実施の形態１に係る受信装置２０の動作を示すフローチャートである。
（ＳＲ１１：パケット受信処理）
パケット受信部２１は、通信装置により、ＳＴ１５で送信装置１０が送信したパケットＰ［１］からパケットＰ［ｎ］までを受信する。
【００１９】
（ＳＲ１２：署名検証処理）
署名検証部２２は、処理装置により、パケットＰ［１］に含まれる署名Ｓｉｇを検証する。署名Ｓｉｇの検証方法は、利用するアルゴリズムに依存する。
署名Ｓｉｇの検証に成功した場合、送信装置１０の真正性とパケットＰ［１］の他の構成データ（ハッシュ値Ｈ−Ｐ［ｎ］、データＡＰ［１］）の完全性とが確認されたことになる。
【００２０】
（ＳＲ１３：ハッシュ値検証処理）
ハッシュ値検証部２３は、処理装置により、パケットＰ［１］に含まれるデータＡＰ［１］からハッシュ値Ｈ−［１］を計算する。そして、ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ−［１］と前記パケットＰ［２］に含まれるハッシュ値Ｈ−［１］とを比較し、ハッシュ値Ｈ−［１］の検証を行う。ハッシュ値の検証方法は、比較して一致すれば、検証成功であり、一致しなければ、検証失敗である。
続いて、ハッシュ値検証部２３は、ｉ＝３からｎまで順に、以下の処理を実行する。まず、ハッシュ値検証部２３は、処理装置により、パケットＰ［ｉ−１］からハッシュ値Ｈ−Ｐ［ｉ−１］を計算する。次に、ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｉ−１］とパケットＰ［ｉ］に含まれるハッシュ値Ｈ−Ｐ［ｉ−１］とを比較し、ハッシュ値Ｈ−Ｐ［ｉ−１］の検証を行う。
続いて、ハッシュ値検証部２３は、処理装置により、パケットＰ［ｎ］からハッシュ値Ｈ−Ｐ［ｎ］を計算する。ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｎ］とパケットＰ［１］に含まれるハッシュ値Ｈ−Ｐ［ｎ］とを比較し、ハッシュ値Ｈ−Ｐ［ｎ］の検証を行う。
【００２１】
（ＳＲ１４：改ざん判定処理）
改ざん判定部２４は、処理装置により、ＳＲ１２で署名の検証に成功し、かつ、ＳＲ１３でハッシュ値Ｈ−［１］と、ｉ＝２からｎまでの全てのハッシュ値Ｈ−Ｐ［ｉ］との検証に成功した場合、ＳＲ１１で受信したパケットＰ［１］からパケットＰ［ｎ］までに改ざんがないと判定する。
【００２２】
以上のように、実施の形態１に係る通信システム１００は、データ受信装置へ送信するパケット数が、送信するアプリケーションデータ数と同じｎ個である。
また、実施の形態１に係る通信システム１００は、パケットＰ［１］に含まれるＳｉｇにより、送信装置の真正性とパケットＰ［１］の他の構成データ（ハッシュ値Ｈ−Ｐ［ｎ］、データＡＰ［１］）の完全性とが担保される。そして、ハッシュ値のリストが、署名が付されたパケットＰ［１］からパケットＰ［２］，．．．，パケットＰ［ｎ］へ順次繋がり、パケットＰ［ｎ］からパケットＰ［１］へ繋がる。上記の通り、パケットＰ［１］の構成データであるハッシュ値ＨＡＨＳ−Ｐ［ｎ］の完全性は担保されており、途中のパケットでデータ改ざんを行っても、改ざんしたパケットＰ［ｎ］のハッシュ値をパケットＰ［１］の構成データであるハッシュ値ＨＡＨＳ−Ｐ［ｎ］にすることは困難である。そのため、パケットが改ざんされた場合にデータ受信装置で改ざんの有無をチェックすることができる。また、パケットＰ［１］の署名によるセキュリティ担保が、パケットＰ［２］からパケットＰ［ｎ］まで波及する。
【００２３】
図５は、実施の形態１に係るパケットの他の構成を示す図である。
図５では、図２に示すパケットを構成するハッシュ値とデータとの順序を逆にしている。図５に示すように、パケットを構成するハッシュ値とデータとの順序を変更しても、同様の効果がある。
【００２４】
図６は、実施の形態１に係るパケットの他の構成を示す図である。
図６では、図２に示すパケットＰ［１］以外の所定のパケットＰ［ｔ］にも署名Ｓｉｇ（図６では、Ｓｉｇｔと表記）を付している。署名Ｓｉｇｔは、パケットＰ［ｔ］に対する電子署名である。図２に示すパケットの構成では、通信不良等により途中のパケットが欠落した場合、それ以降のパケットの真正性及び改ざんの確認をすることができなくなってしまう。しかし、図６に示すように、パケットＰ［１］以外のパケットにも署名を付しておけば、通信不良等によりパケットが欠落した際に、真正性及び改ざんの確認が行われないパケット数を減らすことができる。
例えば、図６において、パケットＰ［１］とパケットＰ［ｔ］との間のパケットＰ［ｉ］が欠落したとする。この場合、図２に示すように、パケットＰ［１］にのみ署名Ｓｉｇが付されていた場合、パケットＰ［ｉ＋１］以降の全てのパケットの真正性及び改ざんの確認はできない。しかし、図６に示すように、パケットＰ［１］だけでなく、パケットＰ［ｔ］にも署名Ｓｉｇを付していれば、パケットＰ［ｉ＋１］からパケットＰ［ｔ−１］までのパケットの真正性及び改ざんの確認はできないが、パケットＰ［ｔ］以降のパケットの真正性及び改ざんの確認はできる。
署名Ｓｉｇは、パケットＰ［１］の複数のパケットに付してもよい。
【００２５】
実施の形態２．
実施の形態１では、ハッシュ値のリストが、署名が付されたパケットＰ［１］からパケットＰ［２］，．．．，パケットＰ［ｎ］へ順次繋がり、パケットＰ［ｎ］からパケットＰ［１］へ繋がった。
実施の形態２では、ハッシュ値のリストが、署名が付されたパケットＰ［１］からパケットＰ［ｎ］へ繋がり、パケットＰ［ｎ］からパケットＰ［ｎ−１］，．．．，パケットＰ［１］へ順次繋がる構成について説明する。
【００２６】
実施の形態２に係る通信システム１００の構成は、図１に示す実施の形態１に係る通信システム１００の構成と同じである。
【００２７】
図７は、実施の形態２に係るパケットの構成図である。
データＡＰ［ｉ］、パケットＰ［ｉ］、ハッシュ値Ｈ−［ｉ］、ハッシュ値Ｈ−Ｐ［ｉ］は、図２示す各要素と同じものを意味する。署名Ｓｉｇは、パケットＰ［１］の構成データであるハッシュ値Ｈ−Ｐ［２］とデータＡＰ［１］とを合わせたデータ（図７において網掛で示すデータ）に対する電子署名である。
【００２８】
図８は、実施の形態２に係る送信装置１０の動作を示すフローチャートである。
（ＳＴ２１：データ入力処理）
データ入力部１１は、入力装置により、ＡＰ［１］からＡＰ［ｎ］までのｎ個のアプリケーションデータを入力する。
【００２９】
（ＳＴ２２：初期パケット生成処理）
初期パケット生成部１２は、処理装置により、データＡＰ［１］のハッシュ値Ｈ−［１］を計算する。初期パケット生成部１２は、処理装置により、計算したハッシュ値Ｈ−［１］とデータＡＰ［ｎ］とを合わせてパケットＰ［ｎ］を生成して記憶装置に記憶する。
【００３０】
（ＳＴ２３：後続パケット生成処理）
後続パケット生成部１３は、ｉ＝ｎから３まで順に、以下の処理を実行する。まず、後続パケット生成部１３は、処理装置により、パケットＰ［ｉ］のハッシュ値Ｈ−Ｐ［ｉ］を計算する。そして、後続パケット生成部１３は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｉ］とデータＡＰ［ｉ−１］とを合わせてパケットＰ［ｉ−１］を生成して記憶装置に記憶する。
【００３１】
（ＳＴ２４：最終パケット生成処理）
最終パケット生成部１４は、処理装置により、パケットＰ［２］のハッシュ値Ｈ−Ｐ［２］を計算する。最終パケット生成部１４は、処理装置により、計算したハッシュ値Ｈ−Ｐ［２］とデータＡＰ［１］とを合わせた仮データについての署名Ｓｉｇを計算する。最終パケット生成部１４は、処理装置により、計算したハッシュ値Ｈ−Ｐ［２］とデータＡＰ［１］と計算した署名Ｓｉｇとを合わせてパケットＰ［１］を生成して記憶装置に記憶する。
【００３２】
（ＳＴ２５：パケット送信処理）
パケット送信部１５は、通信装置により、ＳＴ２２からＳＴ２４までで生成されたパケットＰ［１］からパケットＰ［ｎ］までを、伝送路３０を介して、受信装置２０へ送信する。
【００３３】
図９は、実施の形態２に係る受信装置２０の動作を示すフローチャートである。
（ＳＲ２１：パケット受信処理）
パケット受信部２１は、通信装置により、ＳＴ２５で送信装置１０が送信したパケットＰ［１］からパケットＰ［ｎ］までを受信する。
【００３４】
（ＳＲ２２：署名検証処理）
署名検証部２２は、処理装置により、パケットＰ［１］に含まれる署名Ｓｉｇを検証する。
【００３５】
（ＳＲ２３：ハッシュ値検証処理）
ハッシュ値検証部２３は、ｉ＝２からｎまで順に、以下の処理を実行する。まず、ハッシュ値検証部２３は、処理装置により、パケットＰ［ｉ］からハッシュ値Ｈ−Ｐ［ｉ］を計算する。次に、ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｉ］とパケットＰ［ｉ−１］に含まれるハッシュ値Ｈ−Ｐ［ｉ］とを比較し、ハッシュ値Ｈ−Ｐ［ｉ］の検証を行う。
続いて、ハッシュ値検証部２３は、処理装置により、パケットＰ［１］に含まれるデータＡＰ［１］からハッシュ値Ｈ−［１］を計算する。そして、ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ−［１］と前記パケットＰ［ｎ］に含まれるハッシュ値Ｈ−［１］とを比較し、ハッシュ値Ｈ−［１］の検証を行う。
【００３６】
（ＳＲ２４：改ざん判定処理）
改ざん判定部２４は、処理装置により、ＳＲ２２で署名の検証に成功し、かつ、ＳＲ２３でハッシュ値Ｈ−［１］と、ｉ＝２からｎまでの全てのハッシュ値Ｈ−Ｐ［ｉ］との検証に成功した場合、ＳＲ２１で受信したパケットＰ［１］からパケットＰ［ｎ］までに改ざんがないと判定する。
【００３７】
以上のように、実施の形態２に係る通信システム１００は、データ受信装置へ送信するパケット数が、送信するアプリケーションデータ数と同じｎ個である。
また、実施の形態２に係る通信システム１００は、実施の形態１に係る通信システム１００とはハッシュ値のリストが繋がる方向が異なるが、実施の形態１に係る通信システム１００と同様に、各パケットの真正性及び改ざんの確認ができる。
【００３８】
図１０は、実施の形態２に係るパケットの他の構成を示す図である。
図１０では、図７に示すパケットを構成するハッシュ値とデータとの順序を逆にしている。図１０に示すように、パケットを構成するハッシュ値とデータとの順序を変更しても、同様の効果がある。
【００３９】
図１１は、実施の形態２に係るパケットの他の構成を示す図である。
図１１では、図７に示すパケットＰ［１］以外の所定のパケットＰ［ｔ］にも署名Ｓｉｇ（図１１では、Ｓｉｇｔと表記）を付している。図１１に示すように、パケットＰ［１］以外のパケットにも署名を付しておけば、通信不良等によりパケットが欠落した際に、真正性及び改ざんの確認が行われないパケット数を減らすことができる。
【００４０】
実施の形態３．
実施の形態１，２では、ハッシュ値のリストが一方向に繋がった。
実施の形態３では、ハッシュ値のリストが双方向に繋がる構成について説明する。
【００４１】
実施の形態３に係る通信システム１００の構成は、図１に示す実施の形態１に係る通信システム１００の構成と同じである。
【００４２】
図１２は、実施の形態３に係るパケットの構成図である。
データＡＰ［ｉ］、パケットＰ［ｉ］、ハッシュ値Ｈ−［ｉ］は、図２示す各要素と同じものを意味する。ハッシュ値Ｈ−Ｐ［ｉ］は、パケットＰ［ｉ］の構成データであるハッシュ値Ｈ−Ｐ［ｉ−１］とデータＡＰ［ｉ］とを合わせたデータ（仮パケットＰ［ｉ］）のハッシュ値である。ハッシュ値Ｈ’−Ｐ［ｉ］は、パケットＰ［ｉ］の構成データであるハッシュ値Ｈ’−Ｐ［ｉ＋１］とデータＡＰ［ｉ］とを合わせたデータ（仮パケットＰ’［ｉ］）のハッシュ値である。署名Ｓｉｇは、パケットＰ［１］の構成データであるハッシュ値Ｈ−Ｐ［ｎ］とデータＡＰ［１］とハッシュ値Ｈ’−Ｐ［２］とを合わせたデータ（図１２において網掛で示すデータ）に対する電子署名である。
【００４３】
図１３は、実施の形態３に係る送信装置１０の動作を示すフローチャートである。
（ＳＴ３１：データ入力処理）
データ入力部１１は、入力装置により、ＡＰ［１］からＡＰ［ｎ］までのｎ個のアプリケーションデータを入力する。
【００４４】
（ＳＴ３２：初期パケット生成処理（１））
初期パケット生成部１２は、処理装置により、データＡＰ［１］のハッシュ値Ｈ−［１］を計算する。初期パケット生成部１２は、処理装置により、計算したハッシュ値Ｈ−［１］とデータＡＰ［２］とを合わせて仮パケットＰ［２］を生成して記憶装置に記憶する。
【００４５】
（ＳＴ３３：後続パケット生成処理（１））
後続パケット生成部１３は、ｉ＝２からｎ−１まで順に、以下の処理を実行する。まず、後続パケット生成部１３は、処理装置により、仮パケットＰ［ｉ］のハッシュ値Ｈ−Ｐ［ｉ］を計算する。そして、後続パケット生成部１３は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｉ］とデータＡＰ［ｉ＋１］とを合わせて仮パケットＰ［ｉ＋１］を生成して記憶装置に記憶する。
【００４６】
（ＳＴ３４：最終パケット生成処理（１））
最終パケット生成部１４は、処理装置により、仮パケットＰ［ｎ］のハッシュ値Ｈ−Ｐ［ｎ］を計算する。最終パケット生成部１４は、処理装置により、計算したハッシュ値Ｈ−Ｐ［ｎ］とデータＡＰ［１］とを合わせて仮パケットＰ［１］を生成して記憶装置に記憶する。
【００４７】
（ＳＴ３５：初期パケット生成処理（２））
初期パケット生成部１２は、処理装置により、ＳＴ３２で計算したハッシュ値Ｈ−［１］とデータＡＰ［ｎ］とを合わせて仮パケットＰ’［ｎ］を生成して記憶装置に記憶する。
【００４８】
（ＳＴ３６：後続パケット生成処理（２））
後続パケット生成部１３は、ｉ＝ｎから３まで順に、以下の処理を実行する。まず、後続パケット生成部１３は、処理装置により、仮パケットＰ’［ｉ］のハッシュ値Ｈ’−Ｐ［ｉ］を計算する。そして、後続パケット生成部１３は、処理装置により、計算したハッシュ値Ｈ’−Ｐ［ｉ］とデータＡＰ［ｉ−１］とを合わせて仮パケットＰ’［ｉ−１］を生成して記憶装置に記憶する。
【００４９】
（ＳＴ３７：最終パケット生成処理（２））
最終パケット生成部１４は、処理装置により、仮パケットＰ’［２］のハッシュ値Ｈ’−Ｐ［２］を計算する。最終パケット生成部１４は、処理装置により、ＳＴ３４で計算したハッシュ値Ｈ−Ｐ［ｎ］とデータＡＰ［１］と計算したハッシュ値Ｈ’−Ｐ［２］とを合わせた仮データについての署名Ｓｉｇを計算する。最終パケット生成部１４は、処理装置により、ＳＴ３４で計算したハッシュ値Ｈ−Ｐ［ｎ］とデータＡＰ［１］と計算したハッシュ値Ｈ’−Ｐ［２］と計算した署名Ｓｉｇとを合わせてパケットＰ［１］を生成して記憶装置に記憶する。
（ＳＴ３８：パケット送信処理）
パケット送信部１５は、処理装置により、ハッシュ値Ｈ−［１］とデータＡＰ［２］とハッシュ値Ｈ’−Ｐ［３］とを合わせてパケットＰ［２］を生成して記憶装置に記憶する。また、パケット送信部１５は、処理装置により、ｉ＝３からｎ−１までについて、ハッシュ値Ｈ−Ｐ［ｉ−１］とデータＡＰ［ｉ］とハッシュ値Ｈ’−Ｐ［ｉ＋１］とを合わせてパケットＰ［ｉ］を生成して記憶装置に記憶する。また、パケット送信部１５は、処理装置により、ハッシュ値Ｈ−Ｐ［ｎ−１］とデータＡＰ［ｎ］とハッシュ値Ｈ−［１］とを合わせてパケットＰ［ｎ］を生成して記憶装置に記憶する。
そして、パケット送信部１５は、通信装置により、パケットＰ［１］からパケットＰ［ｎ］までを、伝送路３０を介して、受信装置２０へ送信する。
【００５０】
図１４は、実施の形態３に係る受信装置２０の動作を示すフローチャートである。
図１４は、通信不良等によるパケットの欠落がない場合の動作を示す。
（ＳＲ３１：パケット受信処理）
パケット受信部２１は、通信装置により、ＳＴ３８で送信装置１０が送信したパケットＰ［１］からパケットＰ［ｎ］までを受信する。
【００５１】
（ＳＲ３２：署名検証処理）
署名検証部２２は、処理装置により、パケットＰ［１］に含まれる署名Ｓｉｇを検証する。
【００５２】
（ＳＲ３３：ハッシュ値検証処理）
ハッシュ値検証部２３は、ｉ＝２からｎまで順に、以下の処理を実行する。まず、ハッシュ値検証部２３は、処理装置により、パケットＰ［ｉ］に含まれるデータＡＰ［ｉ］とハッシュ値Ｈ’−Ｐ［ｉ＋１］とからハッシュ値Ｈ’−Ｐ［ｉ］を計算する。そして、ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ’−Ｐ［ｉ］とパケットＰ［ｉ−１］に含まれるハッシュ値Ｈ−Ｐ［ｉ］とを比較し、ハッシュ値Ｈ’−Ｐ［ｉ］の検証を行う。
続いて、ハッシュ値検証部２３は、処理装置により、パケットＰ［１］］に含まれるデータＡＰ［１］からハッシュ値Ｈ−［１］を計算する。次に、ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ−［１］とパケットＰ［ｎ］に含まれるハッシュ値Ｈ−［１］とを比較し、ハッシュ値Ｈ−［１］の検証を行う。
【００５３】
（ＳＲ３４：改ざん判定処理）
改ざん判定部２４は、処理装置により、ＳＲ３２で署名の検証に成功し、かつ、ＳＲ３３でハッシュ値Ｈ−［１］と、ｉ＝２からｎまでの全てのハッシュ値Ｈ’−Ｐ［ｉ］との検証に成功した場合、ＳＲ３１で受信したパケットＰ［１］からパケットＰ［ｎ］までに改ざんがないと判定する。
【００５４】
なお、上記説明では、パケットＰ［ｎ］からパケットＰ［１］へ順次繋がるハッシュ値のリストを用いて確認した。しかし、パケットＰ［１］からパケットＰ［ｎ］へ順次繋がるハッシュ値のリストを用いて確認してもよい。
【００５５】
図１５は、実施の形態３に係る受信装置２０の動作を示すフローチャートである。
図１５は、通信不良等によるパケットの欠落がある場合の動作を示す。図１５では、パケットＰ［ｊ］が欠落している場合の動作を示す。
ＳＲ４１からＳＲ４２までは、ＳＲ３１からＳＲ３２までと同じである。
【００５６】
（ＳＲ４３：ハッシュ値検証処理）
ハッシュ値検証部２３は、ｉ＝２からｊ−１まで順に、以下の処理を実行する。まず、ハッシュ値検証部２３は、処理装置により、パケットＰ［ｉ］に含まれるデータＡＰ［ｉ］とハッシュ値Ｈ’−Ｐ［ｉ＋１］とからハッシュ値Ｈ’−Ｐ［ｉ］を計算する。そして、ハッシュ値検証部２３は、処理装置により、計算したハッシュ値Ｈ’−Ｐ［ｉ］とパケットＰ［ｉ−１］に含まれるハッシュ値Ｈ−Ｐ［ｉ］とを比較し、ハッシュ値Ｈ’−Ｐ［ｉ］の検証を行う。
続いて、ハッシュ値検証部２３は、ｉ＝ｊ＋１からｎ−１まで順に、以下の処理を実行する。まず、ハッシュ値検証部２３は、処理装置により、パケットＰ［ｉ］に含まれるデータＡＰ［ｉ］とハッシュ値Ｈ−Ｐ［ｉ−１］とからハッシュ値Ｈ−Ｐ［ｉ］を計算して、計算したハッシュ値Ｈ−Ｐ［ｉ］とパケットＰ［ｉ＋１］に含まれるハッシュ値Ｈ−Ｐ［ｉ］とを比較し、ハッシュ値Ｈ−Ｐ［ｉ］の検証を行う。続いて、ハッシュ値検証部２３は、処理装置により、パケットＰ［ｎ］に含まれるデータＡＰ［ｎ］とハッシュ値Ｈ−Ｐ［ｎ−１］とからからハッシュ値Ｈ［ｎ］を計算して、計算したハッシュ値Ｈ［ｎ］とパケットＰ［１］に含まれるハッシュ値Ｈ［ｎ］とを比較し、ハッシュ値Ｈ［ｎ］の検証を行う。
【００５７】
（ＳＲ４４：改ざん判定処理）
改ざん判定部２４は、処理装置により、ＳＲ１２で署名の検証に成功し、かつ、ＳＲ１３でｊを除くｉ＝１からｎまでの全てのハッシュ値Ｈ［ｉ］の検証に成功した場合、パケットＰ［ｊ］を除く、ＳＲ１１で受信したパケットＰ［１］からパケットＰ［ｎ］までに改ざんがないと判定する。
【００５８】
つまり、欠落したパケットの前までは一方向に繋がったハッシュ値のリストにより検証を行い、欠落したパケットの後からはもう一方向に繋がったハッシュ値のリストにより検証を行う。これにより、欠落したパケットを除く他のパケットについて、真正性及び改ざんの確認を行うことができる。
【００５９】
なお、上記説明では、欠落したパケットの前までをパケットＰ［ｎ］からパケットＰ［１］へ順次繋がるハッシュ値のリストを用い、欠落したパケットの後からをパケットＰ［１］からパケットＰ［ｎ］へ順次繋がるハッシュ値のリストを用いて確認した。
しかし、逆に、欠落したパケットの前までをパケットＰ［１］からパケットＰ［ｎ］へ順次繋がるハッシュ値のリストを用い、欠落したパケットの後からをパケットＰ［ｎ］からパケットＰ［１］へ順次繋がるハッシュ値のリストを用いて確認してもよい。
【００６０】
以上のように、実施の形態３に係る通信システム１００は、データ受信装置へ送信するパケット数が、送信するアプリケーションデータ数と同じｎ個である。
また、実施の形態３に係る通信システム１００は、実施の形態１に係る通信システム１００と同様に、各パケットの真正性及び改ざんの確認ができる。特に、実施の形態３に係る通信システム１００は、パケットの１つが欠落した場合であっても、残りンパケットについては、真正性及び改ざんの確認を行うことができる。
【００６１】
なお、実施の形態１，２と同様に、実施の形態３に係るパケットについても、パケットを構成するデータの順序を変更しても、同様の効果がある。
【００６２】
また、実施の形態３に係るパケット構成であっても、複数のパケットが欠落した場合、欠落したパケット間のパケットの真正性及び改ざんの確認はできない。そこで、実施の形態１，２と同様に、実施の形態３に係るパケットについても、パケットＰ［１］以外の所定のパケットＰ［ｔ］にも署名Ｓｉｇを付してもよい。パケットＰ［１］以外のパケットにも署名を付しておけば、通信不良等によりパケットが欠落した際に、真正性及び改ざんの確認が行われないパケット数を減らすことができる。
【００６３】
図１６は、実施の形態１−３に係る送信装置１０、受信装置２０のハードウェア構成の一例を示す図である。
図１６に示すように、送信装置１０、受信装置２０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００６４】
ＲＯＭ９１３、磁気ディスク装置９２０は、不揮発性メモリの一例である。ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３とＲＡＭ９１４と磁気ディスク装置９２０とは、記憶装置（メモリ）の一例である。また、キーボード９０２、通信ボード９１５は、入力装置の一例である。また、通信ボード９１５は、通信装置の一例である。さらに、ＬＣＤ９０１は、表示装置の一例である。
【００６５】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００６６】
プログラム群９２３には、上記の説明において「データ入力部１１」、「初期パケット生成部１２」、「後続パケット生成部１３」、「最終パケット生成部１４」、「パケット送信部１５」、「パケット受信部２１」、「署名検証部２２」、「ハッシュ値検証部２３」、「改ざん判定部２４」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「進捗情報」等の情報が記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００６７】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００６８】
１０  送信装置、１１  データ入力部、１２  初期パケット生成部、１３  後続パケット生成部、１４  最終パケット生成部、１５  パケット送信部、２０  受信装置、２１  パケット受信部、２２  署名検証部、２３  ハッシュ値検証部、２４  改ざん判定部、３０  伝送路。
【図１】
2013222984.tif 000003
【図２】
2013222984.tif 000004
【図３】
2013222984.tif 000005
【図４】
2013222984.tif 000006
【図５】
2013222984.tif 000007
【図６】
2013222984.tif 000008
【図７】
2013222984.tif 000009
【図８】
2013222984.tif 000010
【図９】
2013222984.tif 000011
【図１０】
2013222984.tif 000012
【図１１】
2013222984.tif 000013
【図１２】
2013222984.tif 000014
【図１３】
2013222984.tif 000015
【図１４】
2013222984.tif 000016
【図１５】
2013222984.tif 000017
【図１６】
2013222984.tif 000018