(57)【要約】  受付部（１２９Ｒ）は、配信メッセージを受け付ける。抽出部（１２１）は、配信メッセージから加工の対象となる対象データを抽出する。加工部（１２４）は、対象データを加工することによって加工データを生成する。署名部（１２５）は、対象データと加工データとを含んだ組データに対する署名を生成する。メッセージ生成部（１２６）は、組データと組データに対する署名とを含んだ加工メッセージを生成する。配信部（１２９Ｓ）は、加工メッセージを配信する。
2018207424.tif 000002
【特許請求の範囲】
【請求項１】
配信メッセージを受け付ける受付部と、
前記配信メッセージから加工の対象となる対象データを抽出する抽出部と、
前記対象データを加工することによって加工データを生成する加工部と、
前記対象データと前記加工データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備えるメッセージ加工装置。
【請求項２】
配信メッセージを受け付ける受付部と、
前記配信メッセージから加工の対象となる対象データを抽出する抽出部と、
前記対象データを加工することによって加工データを生成する加工部と、
前記対象データのダイジェスト値を算出する算出部と、
前記対象データのダイジェスト値と前記加工データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備えるメッセージ加工装置。
【請求項３】
配信メッセージを受け付ける受付部と、
前記配信メッセージから加工の対象となる対象データを抽出する抽出部と、
前記対象データを加工することによって加工データを生成する加工部と、
前記配信メッセージに含まれるデータであって前記対象データを含んだデータである配信データのダイジェスト値を算出する算出部と、
前記配信データのダイジェスト値と前記加工データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備えるメッセージ加工装置。
【請求項４】
前記配信メッセージは、前記対象データを含んだ配信データと前記配信データに対する署名とを含み、
前記メッセージ加工装置は、前記配信データに対する署名を検証する検証部を備え、
前記加工部は、前記配信データに対する署名の検証が成功した場合に前記加工データを生成する
請求項１から請求項３のいずれか１項に記載のメッセージ加工装置。
【請求項５】
前記加工メッセージを配信する配信部を備える
請求項１から請求項４のいずれか１項に記載のメッセージ加工装置。
【請求項６】
前記メッセージ加工装置は、前記加工メッセージの配信先に配布される公開鍵と前記公開鍵に対応する秘密鍵とを生成する鍵生成部を備え、
前記署名部は、生成された秘密鍵を用いて前記組データに対する署名を生成する
請求項１から請求項５のいずれか１項に記載のメッセージ加工装置。
【請求項７】
複数のコンピュータで構成されたことを特徴とする請求項１から請求項６のいずれか１項に記載のメッセージ加工装置。
【請求項８】
地図会社装置に配信されるメッセージであって基盤地図情報が含まれるメッセージである配信メッセージを生成するメッセージ生成部を備え、
前記地図会社装置が、前記基盤地図情報を加工することによって地図会社データを生成し、前記基盤地図情報と前記地図会社データとを含んだ組データに対する署名を生成し、前記組データと前記組データに対する署名とを含んだ加工メッセージを生成する
ことを特徴とする地図管理装置。
【請求項９】
地図会社装置に配信されるメッセージであって基盤地図情報が含まれるメッセージである配信メッセージを生成するメッセージ生成部を備え、
前記地図会社装置が、前記基盤地図情報を加工することによって地図会社データを生成し、前記基盤地図情報のダイジェスト値を算出し、前記基盤地図情報のダイジェスト値と前記地図会社データとを含んだ組データに対する署名を生成し、前記組データと前記組データに対する署名とを含んだ加工メッセージを生成する
ことを特徴とする地図管理装置。
【請求項１０】
前記加工メッセージの配信先に配布される公開鍵と前記公開鍵に対応する秘密鍵とを生成する鍵生成部を備える
請求項８または請求項９に記載の地図管理装置。
【請求項１１】
基盤地図情報が含まれる配信メッセージを受け付ける受付部と、
前記配信メッセージから前記基盤地図情報を抽出する抽出部と、
前記基盤地図情報を加工することによって地図会社データを生成する加工部と、
前記基盤地図情報と前記地図会社データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備える地図会社装置。
【請求項１２】
基盤地図情報が含まれる配信メッセージを受け付ける受付部と、
前記配信メッセージから前記基盤地図情報を抽出する抽出部と、
前記基盤地図情報を加工することによって地図会社データを生成する加工部と、
前記基盤地図情報のダイジェスト値を算出する算出部と、
前記基盤地図情報のダイジェスト値と前記地図会社データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備える地図会社装置。
【請求項１３】
前記地図会社装置は、前記加工メッセージの配信先に配布される公開鍵と前記公開鍵に対応する秘密鍵とを生成する鍵生成部を備え、
前記署名部は、生成された秘密鍵を用いて前記組データに対する署名を生成する
請求項１１または請求項１２に記載の地図会社装置。
【請求項１４】
基盤地図情報を加工して生成された地図会社データが含まれる配信メッセージを受け付ける受付部と、
前記配信メッセージから前記地図会社データを抽出する抽出部と、
前記地図会社データを加工することによって自動車会社データを生成する加工部と、
前記地図会社データと前記自動車会社データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備える自動車会社装置。
【請求項１５】
基盤地図情報を加工して生成された地図会社データが含まれる配信メッセージを受け付ける受付部と、
前記配信メッセージから前記地図会社データを抽出する抽出部と、
前記地図会社データを加工することによって自動車会社データを生成する加工部と、
前記地図会社データのダイジェスト値を算出する算出部と、
前記地図会社データのダイジェスト値と前記自動車会社データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備える自動車会社装置。
【請求項１６】
基盤地図情報のダイジェスト値と前記基盤地図情報を加工して生成された地図会社データとを含んだ配信データが含まれる配信メッセージを受け付ける受付部と、
前記配信メッセージから前記地図会社データを抽出する抽出部と、
前記地図会社データを加工することによって自動車会社データを生成する加工部と、
前記配信データのダイジェスト値を算出する算出部と、
前記配信データのダイジェスト値と前記自動車会社データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部と
を備える自動車会社装置。
【請求項１７】
前記自動車会社装置は、前記加工メッセージの配信先に配布される公開鍵と前記公開鍵に対応する秘密鍵とを生成する鍵生成部を備え、
前記署名部は、生成された秘密鍵を用いて前記組データに対する署名を生成する
請求項１４から請求項１６のいずれか１項に記載の自動車会社装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データが含まれるメッセージを配信するための技術に関するものである。
【背景技術】
【０００２】
特許文献１は「電子署名付き電子文書交換支援方法及び情報処理装置」を開示している。
特許文献１における「電子署名付き電子文書交換支援方法及び情報処理装置」では、電子文書作成装置が電子文書を作成し、電子文書支援装置が電子文書を正規化した後にダイジェスト値を算出し、電子文書作成装置がダイジェスト値を元に署名を生成する。
これによって、電子文書作成装置毎に異なる実装方法による正規化処理のズレに起因する差異が解消される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１５７３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１における「電子署名付き電子文書交換支援方法及び情報処理装置」では、作成された電子文書を再編集して作成される新たな電子文書が編集元の電子文書とは別個の電子文書として扱われるため、新たな電子文書の署名が生成される。
そして、編集元の電子文書と新たな電子文書とを互いに紐つけることができない。
また、電子文書作成装置が認証局から離れた地域に存在する場合、認証局から電子文書作成装置へ鍵を安全に配送するために、安全な配送経路を設けなければならない。【０００５】
本発明は、加工前のデータと加工後のデータとの関係を保証しながら加工後のデータを配信できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明のメッセージ加工装置は、
配信メッセージを受け付ける受付部と、
前記配信メッセージから加工の対象となる対象データを抽出する抽出部と、
前記対象データを加工することによって加工データを生成する加工部と、
前記対象データと前記加工データとを含んだ組データに対する署名を生成する署名部と、
前記組データと前記組データに対する署名とを含んだ加工メッセージを生成するメッセージ生成部とを備える。
【発明の効果】
【０００７】
本発明によれば、加工前のデータ（対象データ）と加工後のデータ（加工データ）との関係を保証しながら加工後のデータを配信することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１におけるメッセージ配信システム１００の構成図。
【図２】実施の形態１におけるメッセージ生成装置１１０の構成図。
【図３】実施の形態１におけるメッセージ加工装置１２０の構成図。
【図４】実施の形態１におけるメッセージ利用装置１３０の構成図。
【図５】実施の形態１におけるメッセージ配信方法の概要図。
【図６】実施の形態１におけるメッセージ生成方法のフローチャート。
【図７】実施の形態１におけるメッセージ加工方法のフローチャート。
【図８】実施の形態１におけるメッセージ利用方法のフローチャート。
【図９】実施の形態２におけるメッセージ配信方法の概要図。
【図１０】実施の形態３におけるメッセージ配信方法の概要図。
【図１１】実施の形態４におけるメッセージ生成装置１１０の構成図。
【図１２】実施の形態４におけるメッセージ加工装置１２０の構成図。
【図１３】実施の形態４におけるメッセージ配信方法の概要図。
【図１４】実施の形態４におけるメッセージ配信方法の概要図。
【図１５】実施の形態におけるメッセージ生成装置１１０のハードウェア構成図。
【図１６】実施の形態におけるメッセージ加工装置１２０のハードウェア構成図。
【図１７】実施の形態におけるメッセージ利用装置１３０のハードウェア構成図。
【発明を実施するための形態】
【０００９】
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１０】
実施の形態１．
メッセージ配信システム１００について、図１から図８に基づいて説明する。
【００１１】
＊＊＊構成の説明＊＊＊
図１に基づいて、メッセージ配信システム１００の構成を説明する。
メッセージ配信システム１００は、メッセージを配信するためのシステムである。
メッセージ配信システム１００は、メッセージ生成装置１１０と１つ以上のメッセージ加工装置１２０−ｎとメッセージ利用装置１３０とを備える。
メッセージ加工装置１２０−ｎを特定しない場合、それぞれをメッセージ加工装置１２０と称する。
【００１２】
メッセージ生成装置１１０は、元データを含んだメッセージを生成するコンピュータである。
１つ以上のメッセージ加工装置１２０−ｎは、元データを加工して得られる加工後のデータを含んだメッセージを生成するコンピュータである。
メッセージ利用装置１３０は、加工後のデータを利用するコンピュータである。
【００１３】
図２に基づいて、メッセージ生成装置１１０の構成を説明する。
メッセージ生成装置１１０は、プロセッサ９１１とメモリ９１２と補助記憶装置９１３と入出力インタフェース９１４といったハードウェアを備える。これらのハードウェアは、信号線を介して互いに接続されている。
【００１４】
プロセッサ９１１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ９１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ９１２は揮発性の記憶装置である。メモリ９１２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ９１２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ９１２に記憶されたデータは必要に応じて補助記憶装置９１３に保存される。
補助記憶装置９１３は不揮発性の記憶装置である。例えば、補助記憶装置９１３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）またはフラッシュメモリである。補助記憶装置９１３に記憶されたデータは必要に応じてメモリ９１２にロードされる。
【００１５】
入出力インタフェース９１４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース９１４はＵＳＢ端子であり、入力装置はキーボード、マウスおよびレシーバであり、出力装置はディスプレイおよびトランスミッタである。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。レシーバとトランスミッタとを総称して通信装置という。
【００１６】
メッセージ生成装置１１０は、データ生成部１１１と算出部１１２と署名部１１３とメッセージ生成部１１４といったソフトウェア要素を備える。ソフトウェア要素はソフトウェアで実現される要素である。
【００１７】
補助記憶装置９１３には、データ生成部１１１と算出部１１２と署名部１１３とメッセージ生成部１１４としてコンピュータを機能させるためのメッセージ生成プログラムが記憶されている。メッセージ生成プログラムは、メモリ９１２にロードされて、プロセッサ９１１によって実行される。
さらに、補助記憶装置９１３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ９１２にロードされて、プロセッサ９１１によって実行される。
つまり、プロセッサ９１１は、ＯＳを実行しながら、メッセージ生成プログラムを実行する。
メッセージ生成プログラムを実行して得られるデータは、メモリ９１２、補助記憶装置９１３、プロセッサ９１１内のレジスタまたはプロセッサ９１１内のキャッシュメモリといった記憶装置に記憶される。
【００１８】
メモリ９１２はデータを記憶する記憶部１１９Ｍとして機能する。但し、他の記憶装置が、メモリ９１２の代わりに、又は、メモリ９１２と共に、記憶部１１９Ｍとして機能してもよい。
入出力インタフェース９１４は、入力を受け付ける受付部１１９Ｒとして機能する。さらに、入出力インタフェース９１４は、メッセージを配信する配信部１１９Ｓとして機能する。
【００１９】
メッセージ生成装置１１０は、プロセッサ９１１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ９１１の役割を分担する。
【００２０】
メッセージ生成プログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
【００２１】
図３に基づいて、メッセージ加工装置１２０の構成を説明する。
メッセージ加工装置１２０は、プロセッサ９２１とメモリ９２２と補助記憶装置９２３と入出力インタフェース９２４といったハードウェアを備える。これらのハードウェアは、信号線を介して互いに接続されている。
【００２２】
プロセッサ９２１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ９２１は、ＣＰＵである。
メモリ９２２は揮発性の記憶装置である。メモリ９２２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ９２２はＲＡＭである。メモリ９２２に記憶されたデータは必要に応じて補助記憶装置９２３に保存される。
補助記憶装置９２３は不揮発性の記憶装置である。例えば、補助記憶装置９２３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置９２３に記憶されたデータは必要に応じてメモリ９２２にロードされる。
【００２３】
入出力インタフェース９２４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース９２４はＵＳＢ端子であり、入力装置はキーボード、マウスおよびレシーバであり、出力装置はディスプレイおよびトランスミッタである。
【００２４】
メッセージ加工装置１２０は、抽出部１２１と算出部１２２と検証部１２３と加工部１２４と署名部１２５とメッセージ生成部１２６といったソフトウェア要素を備える。
【００２５】
補助記憶装置９２３には、抽出部１２１と算出部１２２と検証部１２３と加工部１２４と署名部１２５とメッセージ生成部１２６としてコンピュータを機能させるためのメッセージ加工プログラムが記憶されている。メッセージ加工プログラムは、メモリ９２２にロードされて、プロセッサ９２１によって実行される。
さらに、補助記憶装置９２３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ９２２にロードされて、プロセッサ９２１によって実行される。
つまり、プロセッサ９２１は、ＯＳを実行しながら、メッセージ加工プログラムを実行する。
メッセージ加工プログラムを実行して得られるデータは、メモリ９２２、補助記憶装置９２３、プロセッサ９２１内のレジスタまたはプロセッサ９２１内のキャッシュメモリといった記憶装置に記憶される。
【００２６】
メモリ９２２はデータを記憶する記憶部１２９Ｍとして機能する。但し、他の記憶装置が、メモリ９２２の代わりに、又は、メモリ９２２と共に、記憶部１２９Ｍとして機能してもよい。
入出力インタフェース９２４は、入力を受け付ける受付部１２９Ｒとして機能する。さらに、入出力インタフェース９２４は、メッセージを配信する配信部１２９Ｓとして機能する。
【００２７】
メッセージ加工装置１２０は、プロセッサ９２１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ９２１の役割を分担する。
【００２８】
メッセージ加工プログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
【００２９】
図４に基づいて、メッセージ利用装置１３０の構成を説明する。
メッセージ利用装置１３０は、プロセッサ９３１とメモリ９３２と補助記憶装置９３３と入出力インタフェース９３４といったハードウェアを備える。これらのハードウェアは、信号線を介して互いに接続されている。
【００３０】
プロセッサ９３１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ９２１は、ＣＰＵである。
メモリ９３２は揮発性の記憶装置である。メモリ９３２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ９３２はＲＡＭである。メモリ９３２に記憶されたデータは必要に応じて補助記憶装置９３３に保存される。
補助記憶装置９３３は不揮発性の記憶装置である。例えば、補助記憶装置９３３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置９３３に記憶されたデータは必要に応じてメモリ９３２にロードされる。
【００３１】
入出力インタフェース９３４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース９３４はＵＳＢ端子であり、入力装置はキーボード、マウスおよびレシーバであり、出力装置はディスプレイおよびトランスミッタである。
【００３２】
メッセージ生成装置１１０は、抽出部１３１と算出部１３２と検証部１３３と利用部１３４といったソフトウェア要素を備える。
【００３３】
補助記憶装置９３３には、抽出部１３１と算出部１３２と検証部１３３と利用部１３４としてコンピュータを機能させるためのメッセージ利用プログラムが記憶されている。メッセージ利用プログラムは、メモリ９３２にロードされて、プロセッサ９３１によって実行される。
さらに、補助記憶装置９３３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ９３２にロードされて、プロセッサ９３１によって実行される。
つまり、プロセッサ９３１は、ＯＳを実行しながら、メッセージ利用工プログラムを実行する。
メッセージ利用プログラムを実行して得られるデータは、メモリ９３２、補助記憶装置９３３、プロセッサ９３１内のレジスタまたはプロセッサ９３１内のキャッシュメモリといった記憶装置に記憶される。
【００３４】
メモリ９３２はデータを記憶する記憶部１３９Ｍとして機能する。但し、他の記憶装置が、メモリ９３２の代わりに、又は、メモリ９３２と共に、記憶部１３９Ｍとして機能してもよい。
入出力インタフェース９３４は、入力を受け付ける受付部１３９Ｒとして機能する。
【００３５】
メッセージ利用装置１３０は、プロセッサ９３１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ９３１の役割を分担する。
【００３６】
メッセージ利用プログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
【００３７】
＊＊＊動作の説明＊＊＊
メッセージ配信システム１００の動作はメッセージ配信方法に相当する。
メッセージ生成装置１１０の動作はメッセージ生成方法に相当する。メッセージ生成方法の手順はメッセージ生成プログラムの手順に相当する。
メッセージ加工装置１２０の動作はメッセージ加工方法に相当する。また、メッセージ加工方法の手順はメッセージ加工プログラムの手順に相当する。
メッセージ利用装置１３０の動作はメッセージ利用方法に相当する。また、メッセージ利用方法の手順はメッセージ利用プログラムの手順に相当する。
【００３８】
図５に基づいて、メッセージ配信方法を説明する。
装置０は、メッセージ生成装置１１０である。
装置ｎは、メッセージ加工装置１２０−ｎである。実施の形態において、ｎは１から３までの整数である。
装置Ｕは、メッセージ利用装置１３０である。
【００３９】
データ０は、装置０によって生成されるデータである。
データｎは、装置ｎによって生成されるデータであり、データ（ｎ−１）を加工することによって生成される。
【００４０】
署名０は、データ０に対する署名である。
署名ＸＹは、組データＸＹに対する署名である。
組データＸＹは、データＸとデータＹとを含んだデータである。具体的には、組データＸＹは、データＸとデータＹとから成るデータである。
実施の形態において、Ｘはｎ−１を意味し、Ｙはｎを意味する。
【００４１】
秘密鍵０は、装置０用の秘密鍵である。
証明書０は、装置０用の証明書であり、秘密鍵０に対応する公開鍵０を含んでいる。
秘密鍵ｎは、装置ｎ用の秘密鍵である。
証明書ｎは、装置ｎ用の証明書であり、秘密鍵ｎに対する公開鍵ｎを含んでいる。
【００４２】
まず、認証局が以下のように動作する。
認証局は、秘密鍵０と証明書０とを生成し、秘密鍵０を装置０に配布し、証明書０を装置１に配布する。装置０の記憶部１１９Ｍは秘密鍵０を記憶し、装置１の記憶部１２９Ｍは証明書０を記憶する。
認証局は、秘密鍵１と証明書１とを生成し、秘密鍵１を装置１に配布し、証明書１を装置２に配布する。装置１の記憶部１２９Ｍは秘密鍵１を記憶し、装置２の記憶部１２９Ｍは証明書１を記憶する。
認証局は、秘密鍵２と証明書２とを生成し、秘密鍵２を装置２に配布し、証明書２を装置３に配布する。装置２の記憶部１２９Ｍは秘密鍵２を記憶し、装置３の記憶部１２９Ｍは証明書２を記憶する。
認証局は、秘密鍵３と証明書３とを生成し、秘密鍵３を装置３に配布し、証明書３を装置Ｕに配布する。装置３の記憶部１２９Ｍは秘密鍵３を記憶し、装置Ｕの記憶部１３９Ｍは証明書３を記憶する。
各秘密鍵および各証明書は、安全な経路で配布されるものとする。
また、認証局は、認証局用の証明書を各装置に配布する。認証局用の証明書は、認証局用の公開鍵を含んでいる。各装置において、認証局用の証明書は、証明書０〜３の検証に使用される。
【００４３】
次に、装置０が以下のように動作する。装置０の動作を図６に基づいて説明する。
ステップＳ１１１において、データ生成部１１１はデータ０（初期データ）を生成する。
具体的には、データ０は以下のように生成される。
まず、受付部１１９Ｒが、データ０の元となる電子情報を受け付ける。
そして、データ生成部１１１が、受け付けられた電子情報をユーザ０の操作に従って加工することによって、データ０を生成する。ユーザ０は、メッセージ生成装置１１０を使用するユーザである。
【００４４】
ステップＳ１１２において、署名部１１３は署名０を生成する。
具体的には、署名０は以下のように生成される。
まず、算出部１１２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。ダイジェスト関数の具体例は、ＳＨＡ−２５６と呼ばれるハッシュ関数である。
そして、署名部１１３が、秘密鍵０を用いてデータ０のダイジェスト値を暗号化することによって、署名０を生成する。
【００４５】
ステップＳ１１３において、メッセージ生成部１１４は、データ０と署名０とを用いて、メッセージ０（配信メッセージ）を生成する。
メッセージ０は、データ０と署名０とを含んだメッセージである。
【００４６】
ステップＳ１１４において、配信部１１９Ｓはメッセージ０を配信する。メッセージ０は装置１に配信される。
【００４７】
次に、装置１が以下のように動作する。装置１の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ０（配信メッセージ）を受け付ける。
【００４８】
ステップＳ１２２において、検証部１２３は署名０を検証する。
具体的には、署名０は以下のように検証される。
まず、抽出部１２１が、メッセージ０からデータ０（配信データ）と署名０とを抽出する。
次に、算出部１２２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵０を用いて署名０を復号することによって、署名０の復号値を算出する。
そして、検証部１２３が、データ０のダイジェスト値を署名０の復号値と比較する。
データ０のダイジェスト値が署名０の復号値と一致した場合、署名０の検証は成功である。署名０の検証が成功した場合、データ０の真正性および完全性が担保される。
署名０の検証が成功した場合、処理はステップＳ１２３に進む。
署名０の検証が失敗した場合、以降の処理は行われない。
【００４９】
ステップＳ１２３において、加工部１２４はデータ１（加工データ）を生成する。
具体的には、データ１は以下のように生成される。
まず、抽出部１２１が、メッセージ０からデータ０（対象データ）を抽出する。
そして、加工部１２４が、ユーザ１の操作に従ってデータ０を加工することによって、データ１を生成する。ユーザ１は装置１のユーザである。
【００５０】
ステップＳ１２４において、署名部１２５は署名０１を生成する。
具体的には、署名０１は以下のように生成される。
まず、算出部１２２が、組データ０１（データ０およびデータ１）を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵１を用いて組データ０１のダイジェスト値を暗号化することによって、署名０１を生成する。
署名０１は、組データ０１の真正性および完全性を検証することを可能にする。つまり、署名０１は、データ０とデータ１との組の真正性および完全性を検証することを可能とする。
【００５１】
ステップＳ１２５において、メッセージ生成部１２６は、組データ０１と署名０１とを用いて、メッセージ１（加工メッセージ）を生成する。
メッセージ１は、組データ０１と署名０１とを含んだメッセージである。
【００５２】
ステップＳ１２６において、配信部１２９Ｓはメッセージ１を配信する。メッセージ１は装置２に配信される。
【００５３】
次に、装置２が以下のように動作する。装置２の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ１（配信メッセージ）を受け付ける。
【００５４】
ステップＳ１２２において、検証部１２３は署名０１を検証する。
具体的には、署名０１は以下のように検証される。
まず、抽出部１２１が、メッセージ１から組データ０１（配信データ）と署名０１とを抽出する。
次に、算出部１２２が、組データ０１を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵１を用いて署名０１を復号することによって、署名０１の復号値を算出する。
そして、検証部１２３が、組データ０１のダイジェスト値を署名０１の復号値と比較する。
組データ０１のダイジェスト値が署名０１の復号値と一致した場合、署名０１の検証は成功である。署名０１の検証が成功した場合、組データ０１の真正性および完全性が担保される。つまり、データ０とデータ１との組の真正性および完全性が担保される。
署名０１の検証が成功した場合、処理はステップＳ１２３に進む。
署名０１の検証が失敗した場合、以降の処理は行われない。
【００５５】
ステップＳ１２３において、加工部１２４はデータ２（加工データ）を生成する。
具体的には、データ２は以下のように生成される。
まず、抽出部１２１が、メッセージ１からデータ１（対象データ）を抽出する。
そして、加工部１２４が、ユーザ２の操作に従ってデータ１を加工することによって、データ２を生成する。ユーザ２は装置２のユーザである。
【００５６】
ステップＳ１２４において、署名部１２５は署名１２を生成する。
具体的には、署名１２は以下のように生成される。
まず、算出部１２２が、組データ１２（データ１およびデータ２）を入力としてダイジェスト関数を実行することによって、組データ１２のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵２を用いて組データ１２のダイジェスト値を暗号化することによって、署名１２を生成する。
署名１２は、組データ１２の真正性および完全性を検証することを可能にする。
【００５７】
ステップＳ１２５において、メッセージ生成部１２６は、組データ１２と署名１２とを用いて、メッセージ２（加工メッセージ）を生成する。
メッセージ２は、組データ１２と署名１２とを含んだメッセージである。
【００５８】
ステップＳ１２６において、配信部１２９Ｓはメッセージ２を配信する。メッセージ２は装置３に配信される。
【００５９】
次に、装置３が以下のように動作する。装置３の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ２（配信メッセージ）を受け付ける。
【００６０】
ステップＳ１２２において、検証部１２３は署名１２を検証する。
具体的には、署名１２は以下のように検証される。
まず、抽出部１２１が、メッセージ２から組データ１２（配信データ）と署名１２とを抽出する。
次に、算出部１２２が、組データ１２を入力としてダイジェスト関数を実行することによって、組データ１２のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵２を用いて署名１２を復号することによって、署名１２の復号値を算出する。
そして、検証部１２３が、組データ１２のダイジェスト値を署名１２の復号値と比較する。
組データ１２のダイジェスト値が署名１２の復号値と一致した場合、署名１２の検証は成功である。署名１２の検証が成功した場合、組データ１２の真正性および完全性が担保される。つまり、データ１とデータ２との組の真正性および完全性が担保される。
署名１２の検証が成功した場合、処理はステップＳ１２３に進む。
署名１２の検証が失敗した場合、以降の処理は行われない。
【００６１】
ステップＳ１２３において、加工部１２４はデータ３（加工データ）を生成する。
具体的には、データ３は以下のように生成される。
まず、抽出部１２１が、メッセージ２からデータ２（対象データ）を抽出する。
そして、加工部１２４が、ユーザ３の操作に従ってデータ２を加工することによって、データ３を生成する。ユーザ３は装置３のユーザである。
【００６２】
ステップＳ１２４において、署名部１２５は署名２３を生成する。
具体的には、署名２３は以下のように生成される。
まず、算出部１２２が、組データ２３（データ２およびデータ３）を入力としてダイジェスト関数を実行することによって、組データ２３のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵３を用いて組データ２３のダイジェスト値を暗号化することによって、署名２３を生成する。
署名２３は、組データ２３の真正性および完全性を検証することを可能にする。つまり、署名２３は、データ２とデータ３との組の真正性および完全性を検証することを可能とする。
【００６３】
ステップＳ１２５において、メッセージ生成部１２６は、組データ２３と署名２３とを用いて、メッセージ３（加工メッセージ）を生成する。
メッセージ３は、組データ２３と署名２３とを含んだメッセージである。
【００６４】
ステップＳ１２６において、配信部１２９Ｓはメッセージ３を配信する。メッセージ３は装置Ｕに配信される。
【００６５】
次に、装置Ｕが以下のように動作する。装置Ｕの動作を図８に基づいて説明する。
ステップＳ１３１において、受付部１２９Ｒはメッセージ３（配信メッセージ）を受け付ける。
【００６６】
ステップＳ１３２において、検証部１２３は署名２３を検証する。
具体的には、署名２３は以下のように検証される。
まず、抽出部１３１が、メッセージ３から組データ２３（配信データ）と署名２３とを抽出する。
次に、算出部１３２が、組データ２３を入力としてダイジェスト関数を実行することによって、組データ２３のダイジェスト値を算出する。
次に、検証部１３３が、署名２３を公開鍵３を用いて復号することによって、署名２３の復号値を算出する。
そして、検証部１３３が、組データ２３のダイジェスト値を署名２３の復号値と比較する。
組データ２３のダイジェスト値が署名２３の復号値と一致した場合、署名２３の検証は成功である。署名２３の検証が成功した場合、組データ２３の真正性および完全性が担保される。つまり、データ２とデータ３との組の真正性および完全性が担保される。
署名２３の検証が成功した場合、処理はステップＳ１３３に進む。
署名２３の検証が失敗した場合、以降の処理は行われない。
【００６７】
ステップＳ１３３において、利用部１３４はデータ３を利用する。
具体的には、データ３は以下のように利用される。
まず、抽出部１３１が、メッセージ３からデータ３（対象データ）を抽出する。
そして、利用部１３４が、データ３を用いてデータ処理を行う。
【００６８】
＊＊＊実施の形態１の実施例＊＊＊
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに適用することが可能である。
衛星測位技術の普及に伴って、３次元位置情報を用いた自動運転が検討されており、地図情報の高度化技術（ダイナミックマップ）のための研究開発が行われている。
ダイナミックマップは、静的情報、准静的情報、准動的情報および動的情報などを含む。ダイナミックマップにおいて、各階層の情報は紐付けされている。
静的情報は、路面情報、車線情報および３次元構造物情報などの情報である。
准静的情報は、交通規制情報、道路工事情報および広域気象情報などの情報である。
准動的情報は、事故情報、渋滞情報および狭域気象情報などの情報である。
動的情報は、周辺車両、歩行者情報および信号情報などの情報である。
【００６９】
自動運転用ダイナミックマップは、自動運転車両またはカーナビゲーション装置に搭載される。
例えば、自動運転用ダイナミックマップは、基盤地図情報（静的情報）に、地図会社専用のアプリケーションデータと、自動車会社専用のアプリケーションデータとが付加されて構成される。
【００７０】
基盤地図情報は、移動計測装置によって得られた計測データに基づいて生成される情報である。地図管理装置が、基盤地図情報を管理し、基盤地図情報を地図会社装置に提供する。地図会社装置は、地図会社で管理される装置である。
地図会社装置は、地図管理装置から取得した基盤地図情報の一部または全てを改変して地図会社データを生成し、地図会社データを自動車会社装置に提供する。地図会社データは、地図会社専用のアプリケーションデータである。自動車会社装置は、自動車会社で管理される装置である。
自動車会社装置は、地図会社装置から取得した地図会社データの一部または全てを改変して自動車会社データを生成し、自動車会社データを自動運転車両に提供する。自動車会社データは、自動車会社専用のアプリケーションデータである。
自動運転車両は、自動車会社装置から取得した自動車会社データに基づいて、自動運転を行う。
【００７１】
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに以下のように適用される。
メッセージ配信システム１００は、メッセージ生成装置１１０（装置０）と２つのメッセージ加工装置１２０（装置１および装置２）とメッセージ利用装置１３０（装置Ｕ）とを備える。
装置０は、地図管理装置である。データ０は、基盤地図情報である。
装置１は、地図会社装置である。データ１は、地図会社データである。
装置２は、自動車会社装置である。データ２は、自動車会社データである。
装置Ｕは、自動運転車両である。
【００７２】
地図管理装置は、基盤地図情報を生成し、基盤地図情報に対する署名０を生成し、基盤地図情報と署名０とを含んだメッセージ０を生成し、メッセージ０を地図会社装置へ配信する。
地図会社装置は、メッセージ０を受け取り、署名０を検証する。署名０の検証が失敗した場合、地図会社装置は、基盤地図情報の改ざんを検知する。署名０の検証が成功した場合、地図会社装置は、基盤地図情報を加工して地図会社データを生成し、基盤地図情報と地図会社データとを含んだ組データ０１に対する署名０１を生成し、組データ０１と署名０１とを含んだメッセージ１を生成し、メッセージ１を自動車会社装置へ配信する。
自動車会社装置は、メッセージ１を受け取り、署名０１を検証する。署名０１の検証が失敗した場合、自動車会社装置は、組データ０１の改ざんを検知する。署名０１の検証が成功した場合、自動車会社装置は、地図会社データを加工して自動車会社データを生成し、地図会社データと自動車会社データとを含んだ組データ１２に対する署名１２を生成し、組データ１２と署名１２とを含んだメッセージ２を生成し、メッセージ２を自動運転車両へ配信する。
自動運転車両は、メッセージ２を受け取り、署名１２を検証する。署名１２の検証が失敗した場合、自動運転車両は、組データ１２の改ざんを検知する。署名１２の検証が成功した場合、自動運転車両は、自動車会社データを用いて自動運転を行う。
【００７３】
＊＊＊実施の形態１の効果＊＊＊
実施の形態１では、加工前のデータ（対象データ）と加工後のデータ（加工データ）との組に対して署名される。
そのため、署名２３から遡って署名１２、署名０１、署名０の順に辿り、データ３の元データがデータ０であることを認証局の信頼性の下で確認することができる。
さらに、データ０、データ１、データ２およびデータ３の完全性を、署名０、署名０１、署名１２および署名２３により確認することができる効果がある。
【００７４】
実施の形態２．
対象データの代わりに対象データのダイジェスト値を組データに含める形態について、主に実施の形態１と異なる点を図９に基づいて説明する。
【００７５】
＊＊＊構成の説明＊＊＊
メッセージ配信システム１００、メッセージ生成装置１１０、メッセージ加工装置１２０およびメッセージ利用装置１３０の構成は、実施の形態１と同じである。
【００７６】
＊＊＊動作の説明＊＊＊
図９に基づいて、メッセージ配信方法を説明する。
装置０は、メッセージ生成装置１１０である。
装置ｎは、メッセージ加工装置１２０−ｎである。
装置Ｕは、メッセージ利用装置１３０である。
【００７７】
データ０は、装置０によって生成されるデータである。
データｎは、装置ｎによって生成されるデータであり、データ（ｎ−１）を加工することによって生成される。
【００７８】
ダイジェスト値０は、データ０のダイジェスト値である。
ダイジェスト値ｎは、データｎのダイジェスト値である。
【００７９】
署名０は、データ０に対する署名である。
署名ＸＹは、組データＸＹに対する署名である。
組データＸＹは、ダイジェスト値ＸとデータＹとを含んだデータである。具体的には、組データＸＹは、ダイジェスト値ＸとデータＹとから成るデータである。
【００８０】
秘密鍵０は、装置０用の秘密鍵である。
証明書０は、装置０用の証明書であり、秘密鍵０に対応する公開鍵０を含んでいる。
秘密鍵ｎは、装置ｎ用の秘密鍵である。
証明書ｎは、装置ｎ用の証明書であり、秘密鍵ｎに対する公開鍵ｎを含んでいる。
【００８１】
まず、認証局が以下のように動作する。
認証局は、秘密鍵０と証明書０とを生成し、秘密鍵０を装置０に配布し、証明書０を装置１に配布する。装置０の記憶部１１９Ｍは秘密鍵０を記憶し、装置１の記憶部１２９Ｍは証明書０を記憶する。
認証局は、秘密鍵１と証明書１とを生成し、秘密鍵１を装置１に配布し、証明書１を装置２に配布する。装置１の記憶部１２９Ｍは秘密鍵１を記憶し、装置２の記憶部１２９Ｍは証明書１を記憶する。
認証局は、秘密鍵２と証明書２とを生成し、秘密鍵２を装置２に配布し、証明書２を装置３に配布する。装置２の記憶部１２９Ｍは秘密鍵２を記憶し、装置３の記憶部１２９Ｍは証明書２を記憶する。
認証局は、秘密鍵３と証明書３とを生成し、秘密鍵３を装置３に配布し、証明書３を装置Ｕに配布する。装置３の記憶部１２９Ｍは秘密鍵３を記憶し、装置Ｕの記憶部１３９Ｍは証明書３を記憶する。
各秘密鍵および各証明書は、安全な経路で配布されるものとする。
また、認証局は、認証局用の証明書を各装置に配布する。認証局用の証明書は、認証局用の公開鍵を含んでいる。各装置において、認証局用の証明書は、証明書０〜３の検証に使用される。
【００８２】
次に、装置０が以下のように動作する。装置０の動作を図６に基づいて説明する。
ステップＳ１１１において、データ生成部１１１はデータ０（初期データ）を生成する。
具体的には、データ０は以下のように生成される。
まず、受付部１１９Ｒが、データ０の元となる電子情報を受け付ける。
そして、データ生成部１１１が、受け付けられた電子情報をユーザ０の操作に従って加工することによって、データ０を生成する。
【００８３】
ステップＳ１１２において、署名部１１３は署名０を生成する。
具体的には、署名０は以下のように生成される。
まず、算出部１１２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。
そして、署名部１１３が、秘密鍵０を用いてデータ０のダイジェスト値を暗号化することによって、署名０を生成する。
【００８４】
ステップＳ１１３において、メッセージ生成部１１４は、データ０と署名０とを用いて、メッセージ０（配信メッセージ）を生成する。
メッセージ０は、データ０と署名０とを含んだメッセージである。
【００８５】
ステップＳ１１４において、配信部１１９Ｓはメッセージ０を配信する。メッセージ０は装置１に配信される。
【００８６】
次に、装置１が以下のように動作する。装置１の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ０（配信メッセージ）を受け付ける。
【００８７】
ステップＳ１２２において、検証部１２３は署名０を検証する。
具体的には、署名０は以下のように検証される。
まず、抽出部１２１が、メッセージ０からデータ０（配信データ）と署名０とを抽出する。
次に、算出部１２２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵０を用いて署名０を復号することによって、署名０の復号値を算出する。
そして、検証部１２３が、データ０のダイジェスト値を署名０の復号値と比較する。
データ０のダイジェスト値が署名０の復号値と一致した場合、署名０の検証は成功である。署名０の検証が成功した場合、データ０の真正性および完全性が担保される。
署名０の検証が成功した場合、処理はステップＳ１２３に進む。
署名０の検証が失敗した場合、以降の処理は行われない。
【００８８】
ステップＳ１２３において、加工部１２４はデータ１（加工データ）を生成する。
具体的には、データ１は以下のように生成される。
まず、抽出部１２１が、メッセージ０からデータ０（対象データ）を抽出する。
そして、加工部１２４が、ユーザ１の操作に従ってデータ０を加工することによって、データ１を生成する。
【００８９】
ステップＳ１２４において、署名部１２５は署名０１を生成する。
具体的には、署名０１は以下のように生成される。
まず、算出部１２２が、データ０（対象データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値０を算出する。
次に、算出部１２２が、組データ０１（ダイジェスト値０およびデータ１）を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵１を用いて組データ０１のダイジェスト値を暗号化することによって、署名０１を生成する。
署名０１は、組データ０１の真正性および完全性を検証することを可能にする。つまり、署名０１は、データ０とデータ１との組の真正性および完全性を検証することを可能とする。
【００９０】
ステップＳ１２５において、メッセージ生成部１２６は、組データ０１と署名０１とを用いて、メッセージ１（加工メッセージ）を生成する。
メッセージ１は、組データ０１と署名０１とを含んだメッセージである。
【００９１】
ステップＳ１２６において、配信部１２９Ｓはメッセージ１を配信する。メッセージ１は装置２に配信される。
【００９２】
次に、装置２が以下のように動作する。装置２の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ１（配信メッセージ）を受け付ける。
【００９３】
ステップＳ１２２において、検証部１２３は署名０１を検証する。
具体的には、署名０１は以下のように検証される。
まず、抽出部１２１が、メッセージ１から組データ０１（配信データ）と署名０１とを抽出する。
次に、算出部１２２が、組データ０１を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵１を用いて署名０１を復号することによって、署名０１の復号値を算出する。
そして、検証部１２３が、組データ０１のダイジェスト値を署名０１の復号値と比較する。
組データ０１のダイジェスト値が署名０１の復号値と一致した場合、署名０１の検証は成功である。署名０１の検証が成功した場合、組データ０１の真正性および完全性が担保される。つまり、データ０とデータ１との組の真正性および完全性が担保される。
署名０１の検証が成功した場合、処理はステップＳ１２３に進む。
署名０１の検証が失敗した場合、以降の処理は行われない。
【００９４】
ステップＳ１２３において、加工部１２４はデータ２（加工データ）を生成する。
具体的には、データ２は以下のように生成される。
まず、抽出部１２１が、メッセージ１からデータ１（対象データ）を抽出する。
そして、加工部１２４が、ユーザ２の操作に従ってデータ１を加工することによって、データ２を生成する。
【００９５】
ステップＳ１２４において、署名部１２５は署名１２を生成する。
具体的には、署名１２は以下のように生成される。
まず、算出部１２２が、データ１（対象データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値１を算出する。
次に、算出部１２２が、組データ１２（ダイジェスト値１およびデータ２）を入力としてダイジェスト関数を実行することによって、組データ１２のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵２を用いて組データ１２のダイジェスト値を暗号化することによって、署名１２を生成する。
署名１２は、組データ１２の真正性および完全性を検証することを可能にする。つまり、署名１２は、データ１とデータ２との組の真正性および完全性を検証することを可能とする。
【００９６】
ステップＳ１２５において、メッセージ生成部１２６は、組データ１２と署名１２とを用いて、メッセージ２（加工メッセージ）を生成する。
メッセージ２は、組データ１２と署名１２とを含んだメッセージである。
【００９７】
ステップＳ１２６において、配信部１２９Ｓはメッセージ２を配信する。メッセージ２は装置３に配信される。
【００９８】
次に、装置３が以下のように動作する。装置３の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ２（配信メッセージ）を受け付ける。
【００９９】
ステップＳ１２２において、検証部１２３は署名１２を検証する。
具体的には、署名１２は以下のように検証される。
まず、抽出部１２１が、メッセージ２から組データ１２（配信データ）と署名１２とを抽出する。
次に、算出部１２２が、組データ１２を入力としてダイジェスト関数を実行することによって、組データ１２のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵２を用いて署名１２を復号することによって、署名１２の復号値を算出する。
そして、検証部１２３が、組データ１２のダイジェスト値を署名１２の復号値と比較する。
組データ１２のダイジェスト値が署名１２の復号値と一致した場合、署名１２の検証は成功である。署名１２の検証が成功した場合、組データ１２の真正性および完全性が担保される。つまり、データ１とデータ２との組の真正性および完全性が担保される。
署名１２の検証が成功した場合、処理はステップＳ１２３に進む。
署名１２の検証が失敗した場合、以降の処理は行われない。
【０１００】
ステップＳ１２３において、加工部１２４はデータ３（加工データ）を生成する。
具体的には、データ３は以下のように生成される。
まず、抽出部１２１が、メッセージ２からデータ２（対象データ）を抽出する。
そして、加工部１２４が、ユーザ３の操作に従ってデータ２を加工することによって、データ３を生成する。
【０１０１】
ステップＳ１２４において、署名部１２５は署名２３を生成する。
具体的には、署名２３は以下のように生成される。
まず、算出部１２２が、データ２（対象データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値２を算出する。
次に、算出部１２２が、組データ２３（ダイジェスト値２およびデータ３）を入力としてダイジェスト関数を実行することによって、組データ２３のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵３を用いて組データ２３のダイジェスト値を暗号化することによって、署名２３を生成する。
署名２３は、組データ２３の真正性および完全性を検証することを可能にする。つまり、署名２３は、データ２とデータ３との組の真正性および完全性を検証することを可能にする。
【０１０２】
ステップＳ１２５において、メッセージ生成部１２６は、組データ２３と署名２３とを用いて、メッセージ３（加工メッセージ）を生成する。
メッセージ３は、組データ２３と署名２３とを含んだメッセージである。
【０１０３】
ステップＳ１２６において、配信部１２９Ｓはメッセージ３を配信する。メッセージ３は装置Ｕに配信される。
【０１０４】
次に、装置Ｕが以下のように動作する。装置Ｕの動作を図８に基づいて説明する。
ステップＳ１３１において、受付部１２９Ｒはメッセージ３（配信メッセージ）を受け付ける。
【０１０５】
ステップＳ１３２において、検証部１２３は署名２３を検証する。
具体的には、署名２３は以下のように検証される。
まず、抽出部１３１が、メッセージ３から組データ２３（配信データ）と署名２３とを抽出する。
次に、算出部１３２が、組データ２３を入力としてダイジェスト関数を実行することによって、組データ２３のダイジェスト値を算出する。
次に、検証部１３３が、署名２３を公開鍵３を用いて復号することによって、署名２３の復号値を算出する。
そして、検証部１３３が、組データ２３のダイジェスト値を署名２３の復号値と比較する。
組データ２３のダイジェスト値が署名２３の復号値と一致した場合、署名２３の検証は成功である。署名２３の検証が成功した場合、組データ２３の真正性および完全性が担保される。つまり、データ２とデータ３との組の真正性および完全性が担保される。
署名２３の検証が成功した場合、処理はステップＳ１３３に進む。
署名２３の検証が失敗した場合、以降の処理は行われない。
【０１０６】
ステップＳ１３３において、利用部１３４はデータ３を利用する。
具体的には、データ３は以下のように利用される。
まず、抽出部１３１が、メッセージ３からデータ３（対象データ）を抽出する。
そして、利用部１３４が、データ３を用いてデータ処理を行う。
【０１０７】
＊＊＊実施の形態２の実施例＊＊＊
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに適用することが可能である。
【０１０８】
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに以下のように適用される。
メッセージ配信システム１００は、メッセージ生成装置１１０（装置０）と２つのメッセージ加工装置１２０（装置１および装置２）とメッセージ利用装置１３０（装置Ｕ）とを備える。
装置０は、地図管理装置である。データ０は、基盤地図情報である。
装置１は、地図会社装置である。データ１は、地図会社データである。
装置２は、自動車会社装置である。データ２は、自動車会社データである。
装置Ｕは、自動運転車両である。
【０１０９】
地図管理装置は、基盤地図情報を生成し、基盤地図情報に対する署名０を生成し、基盤地図情報と署名０とを含んだメッセージ０を生成し、メッセージ０を地図会社装置へ配信する。
地図会社装置は、メッセージ０を受け取り、署名０を検証する。署名０の検証が失敗した場合、地図会社装置は、基盤地図情報の改ざんを検知する。署名０の検証が成功した場合、地図会社装置は、基盤地図情報を加工して地図会社データを生成し、基盤地図情報のダイジェスト値０を算出する。そして、地図会社装置は、ダイジェスト値０と地図会社データとを含んだ組データ０１に対する署名０１を生成し、組データ０１と署名０１とを含んだメッセージ１を生成し、メッセージ１を自動車会社装置へ配信する。
自動車会社装置は、メッセージ１を受け取り、署名０１を検証する。署名０１の検証が失敗した場合、自動車会社装置は、組データ０１の改ざんを検知する。署名０１の検証が成功した場合、自動車会社装置は、地図会社データを加工して自動車会社データを生成し、地図会社データのダイジェスト値１を算出する。そして、自動車会社装置は、ダイジェスト値１と自動車会社データとを含んだ組データ１２に対する署名１２を生成し、組データ１２と署名１２とを含んだメッセージ２を生成し、メッセージ２を自動運転車両へ配信する。
自動運転車両は、メッセージ２を受け取り、署名１２を検証する。署名１２の検証が失敗した場合、自動運転車両は、組データ１２の改ざんを検知する。署名１２の検証が成功した場合、自動運転車両は、自動車会社データを用いて自動運転を行う。
【０１１０】
＊＊＊実施の形態２の効果＊＊＊
実施の形態２では、加工前のデータ（対象データ）のダイジェスト値と加工後のデータ（加工データ）との組に対して署名される。
そのため、署名２３から遡って署名１２、署名０１、署名０の順に辿り、データ３の元データがデータ０であることを認証局の信頼性の下で確認することができる。
さらに、データ０、データ１、データ２およびデータ３の完全性を、ダイジェスト値０、ダイジェスト値１およびダイジェスト値２を介して、署名０、署名０１、署名１２および署名２３により確認することができる。データ３の完全性は署名２３により確認できる。
【０１１１】
さらに、ダイジェスト値を使ってメッセージが構築されるので、配信経路の通信量を抑える効果がある。
【０１１２】
実施の形態３．
対象データの代わりに配信データのダイジェスト値を組データに含める形態について、主に実施の形態１と異なる点を図１０に基づいて説明する。
【０１１３】
＊＊＊構成の説明＊＊＊
メッセージ配信システム１００、メッセージ生成装置１１０、メッセージ加工装置１２０およびメッセージ利用装置１３０の構成は、実施の形態１と同じである。
【０１１４】
＊＊＊動作の説明＊＊＊
図１０に基づいて、メッセージ配信方法を説明する。
装置０は、メッセージ生成装置１１０である。
装置ｎは、メッセージ加工装置１２０−ｎである。
装置Ｕは、メッセージ利用装置１３０である。
【０１１５】
データ０は、装置０によって生成されるデータである。
データｎは、装置ｎによって生成されるデータであり、データ（ｎ−１）を加工することによって生成される。
【０１１６】
署名０は、データ０に対する署名である。
ダイジェスト値０は、データ０のダイジェスト値である。
【０１１７】
署名ＸＹは、組データＸＹに対する署名である。
ダイジェスト値ＸＹは、組データＸＹのダイジェスト値である。
組データＸＹは、ダイジェスト値ＸとデータＹとを含んだデータである。具体的には、組データＸＹは、ダイジェスト値ＸとデータＹとから成るデータである。
【０１１８】
秘密鍵０は、装置０用の秘密鍵である。
証明書０は、装置０用の証明書であり、秘密鍵０に対応する公開鍵０を含んでいる。
秘密鍵ｎは、装置ｎ用の秘密鍵である。
証明書ｎは、装置ｎ用の証明書であり、秘密鍵ｎに対する公開鍵ｎを含んでいる。
【０１１９】
まず、認証局が以下のように動作する。
認証局は、秘密鍵０と証明書０とを生成し、秘密鍵０を装置０に配布し、証明書０を装置１に配布する。装置０の記憶部１１９Ｍは秘密鍵０を記憶し、装置１の記憶部１２９Ｍは証明書０を記憶する。
認証局は、秘密鍵１と証明書１とを生成し、秘密鍵１を装置１に配布し、証明書１を装置２に配布する。装置１の記憶部１２９Ｍは秘密鍵１を記憶し、装置２の記憶部１２９Ｍは証明書１を記憶する。
認証局は、秘密鍵２と証明書２とを生成し、秘密鍵２を装置２に配布し、証明書２を装置３に配布する。装置２の記憶部１２９Ｍは秘密鍵２を記憶し、装置３の記憶部１２９Ｍは証明書２を記憶する。
認証局は、秘密鍵３と証明書３とを生成し、秘密鍵３を装置３に配布し、証明書３を装置Ｕに配布する。装置３の記憶部１２９Ｍは秘密鍵３を記憶し、装置Ｕの記憶部１３９Ｍは証明書３を記憶する。
各秘密鍵および各証明書は、安全な経路で配布されるものとする。
また、認証局は、認証局用の証明書を各装置に配布する。認証局用の証明書は、認証局用の公開鍵を含んでいる。各装置において、認証局用の証明書は、証明書０〜３の検証に使用される。
【０１２０】
次に、装置０が以下のように動作する。装置０の動作を図６に基づいて説明する。
ステップＳ１１１において、データ生成部１１１はデータ０（初期データ）を生成する。
具体的には、データ０は以下のように生成される。
まず、受付部１１９Ｒが、データ０の元となる電子情報を受け付ける。
そして、データ生成部１１１が、受け付けられた電子情報をユーザ０の操作に従って加工することによって、データ０を生成する。
【０１２１】
ステップＳ１１２において、署名部１１３は署名０を生成する。
具体的には、署名０は以下のように生成される。
まず、算出部１１２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。
そして、署名部１１３が、秘密鍵０を用いてデータ０のダイジェスト値を暗号化することによって、署名０を生成する。
【０１２２】
ステップＳ１１３において、メッセージ生成部１１４は、データ０と署名０とを用いて、メッセージ０（配信メッセージ）を生成する。
メッセージ０は、データ０と署名０とを含んだメッセージである。
【０１２３】
ステップＳ１１４において、配信部１１９Ｓはメッセージ０を配信する。メッセージ０は装置１に配信される。
【０１２４】
次に、装置１が以下のように動作する。装置１の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ０（配信メッセージ）を受け付ける。
【０１２５】
ステップＳ１２２において、検証部１２３は署名０を検証する。
具体的には、署名０は以下のように検証される。
まず、抽出部１２１が、メッセージ０からデータ０（配信データ）と署名０とを抽出する。
次に、算出部１２２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵０を用いて署名０を復号することによって、署名０の復号値を算出する。
そして、検証部１２３が、データ０のダイジェスト値を署名０の復号値と比較する。
データ０のダイジェスト値が署名０の復号値と一致した場合、署名０の検証は成功である。署名０の検証が成功した場合、データ０の真正性および完全性が担保される。
署名０の検証が成功した場合、処理はステップＳ１２３に進む。
署名０の検証が失敗した場合、以降の処理は行われない。
【０１２６】
ステップＳ１２３において、加工部１２４はデータ１（加工データ）を生成する。
具体的には、データ１は以下のように生成される。
まず、抽出部１２１が、メッセージ０からデータ０（対象データ）を抽出する。
そして、加工部１２４が、ユーザ１の操作に従ってデータ０を加工することによって、データ１を生成する。
【０１２７】
ステップＳ１２４において、署名部１２５は署名０１を生成する。
具体的には、署名０１は以下のように生成される。
まず、算出部１２２が、データ０（対象データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値０を算出する。
次に、算出部１２２が、組データ０１（ダイジェスト値０およびデータ１）を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵１を用いて組データ０１のダイジェスト値を暗号化することによって、署名０１を生成する。
署名０１は、組データ０１の真正性および完全性を検証することを可能にする。つまり、署名０１は、データ０とデータ１との組の真正性および完全性を検証することを可能とする。
【０１２８】
ステップＳ１２５において、メッセージ生成部１２６は、組データ０１と署名０１とを用いて、メッセージ１（加工メッセージ）を生成する。
メッセージ１は、組データ０１と署名０１とを含んだメッセージである。
【０１２９】
ステップＳ１２６において、配信部１２９Ｓはメッセージ１を配信する。メッセージ１は装置２に配信される。
【０１３０】
次に、装置２が以下のように動作する。装置２の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ１（配信メッセージ）を受け付ける。
【０１３１】
ステップＳ１２２において、検証部１２３は署名０１を検証する。
具体的には、署名０１は以下のように検証される。
まず、抽出部１２１が、メッセージ１から組データ０１（配信データ）と署名０１とを抽出する。
次に、算出部１２２が、組データ０１を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵１を用いて署名０１を復号することによって、署名０１の復号値を算出する。
そして、検証部１２３が、組データ０１のダイジェスト値を署名０１の復号値と比較する。
組データ０１のダイジェスト値が署名０１の復号値と一致した場合、署名０１の検証は成功である。署名０１の検証が成功した場合、組データ０１の真正性および完全性が担保される。つまり、データ０とデータ１との組の真正性および完全性が担保される。
署名０１の検証が成功した場合、処理はステップＳ１２３に進む。
署名０１の検証が失敗した場合、以降の処理は行われない。
【０１３２】
ステップＳ１２３において、加工部１２４はデータ２（加工データ）を生成する。
具体的には、データ２は以下のように生成される。
まず、抽出部１２１が、メッセージ１からデータ１（対象データ）を抽出する。
そして、加工部１２４が、ユーザ２の操作に従ってデータ１を加工することによって、データ２を生成する。
【０１３３】
ステップＳ１２４において、署名部１２５は署名１２を生成する。
具体的には、署名１２は以下のように生成される。
まず、算出部１２２が、組データ０１（配信データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値０１を算出する。
次に、算出部１２２が、組データ０１２（ダイジェスト値０１およびデータ２）を入力としてダイジェスト関数を実行することによって、組データ０１２のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵２を用いて組データ０１２のダイジェスト値を暗号化することによって、署名０１２を生成する。
署名０１２は、組データ０１２の真正性および完全性を検証することを可能にする。つまり、署名０１２は、データ０からデータ２までのデータの組の真正性および完全性を検証することを可能とする。
【０１３４】
ステップＳ１２５において、メッセージ生成部１２６は、組データ０１２と署名０１２とを用いて、メッセージ２（加工メッセージ）を生成する。
メッセージ２は、組データ０１２と署名０１２とを含んだメッセージである。
【０１３５】
ステップＳ１２６において、配信部１２９Ｓはメッセージ２を配信する。メッセージ２は装置３に配信される。
【０１３６】
次に、装置３が以下のように動作する。装置３の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ２（配信メッセージ）を受け付ける。
【０１３７】
ステップＳ１２２において、検証部１２３は署名０１２を検証する。
具体的には、署名０１２は以下のように検証される。
まず、抽出部１２１が、メッセージ２から組データ０１２（配信データ）と署名１２とを抽出する。
次に、算出部１２２が、組データ０１２を入力としてダイジェスト関数を実行することによって、組データ０１２のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵２を用いて署名０１２を復号することによって、署名０１２の復号値を算出する。
そして、検証部１２３が、組データ０１２のダイジェスト値を署名０１２の復号値と比較する。
組データ０１２のダイジェスト値が署名０１２の復号値と一致した場合、署名０１２の検証は成功である。署名０１２の検証が成功した場合、組データ０１２の真正性および完全性が担保される。つまり、データ０からデータ２までのデータの組の真正性および完全性が担保される。
署名０１２の検証が成功した場合、処理はステップＳ１２３に進む。
署名０１２の検証が失敗した場合、以降の処理は行われない。
【０１３８】
ステップＳ１２３において、加工部１２４はデータ３（加工データ）を生成する。
具体的には、データ３は以下のように生成される。
まず、抽出部１２１が、メッセージ２からデータ２（対象データ）を抽出する。
そして、加工部１２４が、ユーザ３の操作に従ってデータ２を加工することによって、データ３を生成する。
【０１３９】
ステップＳ１２４において、署名部１２５は署名０１２３を生成する。
具体的には、署名０１２３は以下のように生成される。
まず、算出部１２２が、組データ０１２（配信データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値０１２を算出する。
次に、算出部１２２が、組データ０１２３（ダイジェスト値０１２およびデータ３）を入力としてダイジェスト関数を実行することによって、組データ０１２３のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵３を用いて組データ０１２３のダイジェスト値を暗号化することによって、署名０１２３を生成する。
署名０１２３は、組データ０１２３の真正性および完全性を検証することを可能にする。つまり、署名０１２３は、データ０からデータ３までのデータの組の真正性および完全性を検証することを可能にする。
【０１４０】
ステップＳ１２５において、メッセージ生成部１２６は、組データ０１２３と署名０１２３とを用いて、メッセージ３（加工メッセージ）を生成する。
メッセージ３は、組データ０１２３と署名０１２３とを含んだメッセージである。
【０１４１】
ステップＳ１２６において、配信部１２９Ｓはメッセージ３を配信する。メッセージ３は装置Ｕに配信される。
【０１４２】
次に、装置Ｕが以下のように動作する。装置Ｕの動作を図８に基づいて説明する。
ステップＳ１３１において、受付部１２９Ｒはメッセージ３（配信メッセージ）を受け付ける。
【０１４３】
ステップＳ１３２において、検証部１２３は署名０１２３を検証する。
具体的には、署名０１２３は以下のように検証される。
まず、抽出部１３１が、メッセージ３から組データ０１２３（配信データ）と署名０１２３とを抽出する。
次に、算出部１３２が、組データ０１２３を入力としてダイジェスト関数を実行することによって、組データ０１２３のダイジェスト値を算出する。
次に、検証部１３３が、署名０１２３を公開鍵３を用いて復号することによって、署名０１２３の復号値を算出する。
そして、検証部１３３が、組データ０１２３のダイジェスト値を署名０１２３の復号値と比較する。
組データ０１２３のダイジェスト値が署名０１２３の復号値と一致した場合、署名０１２３の検証は成功である。署名０１２３の検証が成功した場合、組データ０１２３の真正性および完全性が担保される。つまり、データ０からデータ３までのデータの組の真正性および完全性が担保される。
署名０１２３の検証が成功した場合、処理はステップＳ１３３に進む。
署名０１２３の検証が失敗した場合、以降の処理は行われない。
【０１４４】
ステップＳ１３３において、利用部１３４はデータ３を利用する。
具体的には、データ３は以下のように利用される。
まず、抽出部１３１が、メッセージ３からデータ３（対象データ）を抽出する。
そして、利用部１３４が、データ３を用いてデータ処理を行う。
【０１４５】
＊＊＊実施の形態３の実施例＊＊＊
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに適用することが可能である。
【０１４６】
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに以下のように適用される。
メッセージ配信システム１００は、メッセージ生成装置１１０（装置０）と２つのメッセージ加工装置１２０（装置１および装置２）とメッセージ利用装置１３０（装置Ｕ）とを備える。
装置０は、地図管理装置である。データ０は、基盤地図情報である。
装置１は、地図会社装置である。データ１は、地図会社データである。
装置２は、自動車会社装置である。データ２は、自動車会社データである。
装置Ｕは、自動運転車両である。
【０１４７】
地図管理装置は、基盤地図情報を生成し、基盤地図情報に対する署名０を生成し、基盤地図情報と署名０とを含んだメッセージ０を生成し、メッセージ０を地図会社装置へ配信する。
地図会社装置は、メッセージ０を受け取り、署名０を検証する。署名０の検証が失敗した場合、地図会社装置は、基盤地図情報の改ざんを検知する。署名０の検証が成功した場合、地図会社装置は、基盤地図情報を加工して地図会社データを生成し、基盤地図情報のダイジェスト値０を算出する。そして、地図会社装置は、ダイジェスト値０と地図会社データとを含んだ組データ０１に対する署名０１を生成し、組データ０１と署名０１とを含んだメッセージ１を生成し、メッセージ１を自動車会社装置へ配信する。
自動車会社装置は、メッセージ１を受け取り、署名０１を検証する。署名０１の検証が失敗した場合、自動車会社装置は、組データ０１の改ざんを検知する。署名０１の検証が成功した場合、自動車会社装置は、地図会社データを加工して自動車会社データを生成し、組データ０１のダイジェスト値０１を算出する。そして、自動車会社装置は、ダイジェスト値０１と自動車会社データとを含んだ組データ０１２に対する署名０１２を生成し、組データ０１２と署名０１２とを含んだメッセージ２を生成し、メッセージ２を自動運転車両へ配信する。
自動運転車両は、メッセージ２を受け取り、署名０１２を検証する。署名０１２の検証が失敗した場合、自動運転車両は、組データ０１２の改ざんを検知する。署名０１２の検証が成功した場合、自動運転車両は、自動車会社データを用いて自動運転を行う。
【０１４８】
＊＊＊実施の形態３の効果＊＊＊
実施の形態３では、配信データのダイジェスト値と加工後のデータ（対象データ）との組に対して署名される。
そのため、データが加工された経路に沿ったダイジェスト値がメッセージに含まれ、データ３の元データがデータ０であることを認証局の信頼性の下で確認することができる。
具体的には、署名０１２３により、データの経路を遡って、データ３の加工前のデータがデータ２であり、データ２の加工前のデータがデータ１であり、データ１の加工前のデータがデータ０であることを確認できる。また、署名０１２により、データの経路を遡って、データ２の加工前のデータがデータ１であり、データ１の加工前のデータがデータ０であることを確認できる。
さらに、データ０、データ１、データ２およびデータ３の完全性を、ダイジェスト値０、ダイジェスト値０１、ダイジェスト値０１２およびダイジェスト値０１２３を介して、署名０、署名０１、署名０１２、署名０１２３により確認することができる。データ３の完全性は署名０１２３により確認できる。
【０１４９】
さらに、ダイジェスト値を使ってメッセージが構築されるので、配信経路の通信量を抑える効果がある。
【０１５０】
実施の形態４．
それぞれのメッセージ加工装置１２０が秘密鍵と公開鍵との組を生成する形態について、主に実施の形態１から実施の形態３と異なる点を図１１から図１４に基づいて説明する。
【０１５１】
＊＊＊構成の説明＊＊＊
図１１に基づいて、メッセージ生成装置１１０の構成を説明する。
メッセージ生成装置１１０は、さらに、認証部１１５をソフトウェア要素として備える。
メッセージ生成プログラムは、さらに、認証部１１５としてコンピュータを機能させる。
【０１５２】
図１２に基づいて、メッセージ加工装置１２０の構成を説明する。
メッセージ加工装置１２０は、さらに、鍵生成部１２７をソフトウェア要素として備える。
メッセージ加工プログラムは、さらに、鍵生成部１２７としてコンピュータを機能させる。
【０１５３】
メッセージ利用装置１３０の構成は、実施の形態１と同じである。
【０１５４】
＊＊＊動作の説明＊＊＊
図１３に基づいて、メッセージ配信システム１００の動作を説明する。
装置０は、メッセージ生成装置１１０である。
装置ｎは、メッセージ加工装置１２０−ｎである。
装置Ｕは、メッセージ利用装置１３０である。
【０１５５】
ＣＡは認証局（Ｃｅｒｔｉｆｉｃａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ）を意味する。つまり、メインＣＡは主認証局であり、サブＣＡは副認証局である。また、サブＣＡｎは、装置ｎにおける副認証局である。主認証局は、副認証局を認証する認証局である。副認証局は、主認証局から認証を受ける認証局である。
装置０は、メインＣＡとして機能する。具体的には、装置０の認証部１１５がメインＣＡとして機能する。
装置ｎは、サブＣＡｎとして機能する。具体的には、装置ｎの鍵生成部１２７がサブＣＡｎとして機能する。
【０１５６】
データ０は、装置０によって生成されるデータである。
データｎは、装置ｎによって生成されるデータであり、データ（ｎ−１）を加工することによって生成される。
【０１５７】
ダイジェスト値０は、データ０のダイジェスト値である。
ダイジェスト値ｎは、データｎのダイジェスト値である。
【０１５８】
署名０は、データ０に対する署名である。
署名ＸＹは、組データＸＹに対する署名である。
組データＸＹは、ダイジェスト値ＸとデータＹとを含んだデータである。具体的には、組データＸＹは、ダイジェスト値ＸとデータＹとから成るデータである。
【０１５９】
秘密鍵０は、装置０用の秘密鍵である。
証明書０は、装置０用の証明書であり、秘密鍵０に対応する公開鍵０を含んでいる。
秘密鍵ｎは、装置ｎ用の秘密鍵である。
証明書ｎは、装置ｎ用の証明書であり、秘密鍵ｎに対する公開鍵ｎを含んでいる。
【０１６０】
まず、メインＣＡおよびサブＣＡｎが以下のように動作する。
メインＣＡは、秘密鍵０と証明書０とを生成し、装置ｎと装置Ｕとのそれぞれに証明書０を配布する。装置０の記憶部１１９Ｍは秘密鍵０を記憶し、装置ｎの記憶部１２９Ｍは証明書０を記憶し、装置Ｕの記憶部１３９Ｍは証明書０を記憶する。秘密鍵０は安全に保管され、証明書０は安全な経路で配布される。
サブＣＡｎは、秘密鍵ｎと証明書ｎとを生成し、証明書ｎをメインＣＡに送付する。メインＣＡは、証明書ｎを受け取り、公開鍵ｎに対する署名を生成し、署名付きの証明書ｎをサブＣＡｎに送付する。そして、サブＣＡｎは、署名付きの証明書ｎを受け取る。署名付きの証明書ｎには、公開鍵ｎに対するメインＣＡの署名が埋め込まれている。装置ｎの記憶部１２９Ｍは、秘密鍵ｎと署名付きの公開鍵ｎとを記憶する。
サブＣＡ１は、署名付きの証明書１を装置２に配布する。装置２の記憶部１２９Ｍは署名付きの証明書１を記憶する。
サブＣＡ２は、署名付きの証明書２を装置３に配布する。装置３の記憶部１２９Ｍは署名付きの証明書２を記憶する。
サブＣＡ３は、署名付きの証明書３を装置Ｕに配布する。装置Ｕの記憶部１３９Ｍは署名付きの証明書３を記憶する。
各装置において、秘密鍵ｎおよび署名付きの公開鍵ｎは安全に保管される。
各装置は、証明書０に含まれる公開鍵０を用いて、署名付きの証明書ｎを検証する。
【０１６１】
次に、装置０が以下のように動作する。装置０の動作を図６に基づいて説明する。
ステップＳ１１１において、データ生成部１１１はデータ０（初期データ）を生成する。
具体的には、データ０は以下のように生成される。
まず、受付部１１９Ｒが、データ０の元となる電子情報を受け付ける。
そして、データ生成部１１１が、受け付けられた電子情報をユーザ０の操作に従って加工することによって、データ０を生成する。
【０１６２】
ステップＳ１１２において、署名部１１３は署名０を生成する。
具体的には、署名０は以下のように生成される。
まず、算出部１１２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。
そして、署名部１１３が、秘密鍵０を用いてデータ０のダイジェスト値を暗号化することによって、署名０を生成する。
【０１６３】
ステップＳ１１３において、メッセージ生成部１１４は、データ０と署名０とを用いて、メッセージ０（配信メッセージ）を生成する。
メッセージ０は、データ０と署名０とを含んだメッセージである。
【０１６４】
ステップＳ１１４において、配信部１１９Ｓはメッセージ０を配信する。メッセージ０は装置１に配信される。
【０１６５】
次に、装置１が以下のように動作する。装置１の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ０（配信メッセージ）を受け付ける。
【０１６６】
ステップＳ１２２において、検証部１２３は署名０を検証する。
具体的には、署名０は以下のように検証される。
まず、抽出部１２１が、メッセージ０からデータ０（配信データ）と署名０とを抽出する。
次に、算出部１２２が、データ０を入力としてダイジェスト関数を実行することによって、データ０のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵０を用いて署名０を復号することによって、署名０の復号値を算出する。
そして、検証部１２３が、データ０のダイジェスト値を署名０の復号値と比較する。
データ０のダイジェスト値が署名０の復号値と一致した場合、署名０の検証は成功である。署名０の検証が成功した場合、データ０の真正性および完全性が担保される。
署名０の検証が成功した場合、処理はステップＳ１２３に進む。
署名０の検証が失敗した場合、以降の処理は行われない。
【０１６７】
ステップＳ１２３において、加工部１２４はデータ１（加工データ）を生成する。
具体的には、データ１は以下のように生成される。
まず、抽出部１２１が、メッセージ０からデータ０（対象データ）を抽出する。
そして、加工部１２４が、ユーザ１の操作に従ってデータ０を加工することによって、データ１を生成する。
【０１６８】
ステップＳ１２４において、署名部１２５は署名０１を生成する。
具体的には、署名０１は以下のように生成される。
まず、算出部１２２が、データ０（対象データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値０を算出する。
次に、算出部１２２が、組データ０１（ダイジェスト値０およびデータ１）を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵１を用いて組データ０１のダイジェスト値を暗号化することによって、署名０１を生成する。
署名０１は、組データ０１の真正性および完全性を検証することを可能にする。つまり、署名０１は、データ０とデータ１との組の真正性および完全性を検証することを可能とする。
【０１６９】
ステップＳ１２５において、メッセージ生成部１２６は、組データ０１と署名０１とを用いて、メッセージ１（加工メッセージ）を生成する。
メッセージ１は、組データ０１と署名０１とを含んだメッセージである。
【０１７０】
ステップＳ１２６において、配信部１２９Ｓはメッセージ１を配信する。メッセージ１は装置２に配信される。
【０１７１】
次に、装置２が以下のように動作する。装置２の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ１（配信メッセージ）を受け付ける。
【０１７２】
ステップＳ１２２において、検証部１２３は署名０１を検証する。
具体的には、署名０１は以下のように検証される。
まず、抽出部１２１が、メッセージ１から組データ０１（配信データ）と署名０１とを抽出する。
次に、算出部１２２が、組データ０１を入力としてダイジェスト関数を実行することによって、組データ０１のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵１を用いて署名０１を復号することによって、署名０１の復号値を算出する。
そして、検証部１２３が、組データ０１のダイジェスト値を署名０１の復号値と比較する。
組データ０１のダイジェスト値が署名０１の復号値と一致した場合、署名０１の検証は成功である。署名０１の検証が成功した場合、組データ０１の真正性および完全性が担保される。つまり、データ０とデータ１との組の真正性および完全性が担保される。
署名０１の検証が成功した場合、処理はステップＳ１２３に進む。
署名０１の検証が失敗した場合、以降の処理は行われない。
【０１７３】
ステップＳ１２３において、加工部１２４はデータ２（加工データ）を生成する。
具体的には、データ２は以下のように生成される。
まず、抽出部１２１が、メッセージ１からデータ１（対象データ）を抽出する。
そして、加工部１２４が、ユーザ２の操作に従ってデータ１を加工することによって、データ２を生成する。
【０１７４】
ステップＳ１２４において、署名部１２５は署名１２を生成する。
具体的には、署名１２は以下のように生成される。
まず、算出部１２２が、データ１（対象データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値１を算出する。
次に、算出部１２２が、組データ１２（ダイジェスト値１およびデータ２）を入力としてダイジェスト関数を実行することによって、組データ１２のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵２を用いて組データ１２のダイジェスト値を暗号化することによって、署名１２を生成する。
署名１２は、組データ１２の真正性および完全性を検証することを可能にする。つまり、署名１２は、データ１とデータ２との組の真正性および完全性を検証することを可能とする。
【０１７５】
ステップＳ１２５において、メッセージ生成部１２６は、組データ１２と署名１２とを用いて、メッセージ２（加工メッセージ）を生成する。
メッセージ２は、組データ１２と署名１２とを含んだメッセージである。
【０１７６】
ステップＳ１２６において、配信部１２９Ｓはメッセージ２を配信する。メッセージ２は装置３に配信される。
【０１７７】
次に、装置３が以下のように動作する。装置３の動作を図７に基づいて説明する。
ステップＳ１２１において、受付部１２９Ｒはメッセージ２（配信メッセージ）を受け付ける。
【０１７８】
ステップＳ１２２において、検証部１２３は署名１２を検証する。
具体的には、署名１２は以下のように検証される。
まず、抽出部１２１が、メッセージ２から組データ１２（配信データ）と署名１２とを抽出する。
次に、算出部１２２が、組データ１２を入力としてダイジェスト関数を実行することによって、組データ１２のダイジェスト値を算出する。
次に、検証部１２３が、公開鍵２を用いて署名１２を復号することによって、署名１２の復号値を算出する。
そして、検証部１２３が、組データ１２のダイジェスト値を署名１２の復号値と比較する。
組データ１２のダイジェスト値が署名１２の復号値と一致した場合、署名１２の検証は成功である。署名１２の検証が成功した場合、組データ１２の真正性および完全性が担保される。つまり、データ１とデータ２との組の真正性および完全性が担保される。
署名１２の検証が成功した場合、処理はステップＳ１２３に進む。
署名１２の検証が失敗した場合、以降の処理は行われない。
【０１７９】
ステップＳ１２３において、加工部１２４はデータ３（加工データ）を生成する。
具体的には、データ３は以下のように生成される。
まず、抽出部１２１が、メッセージ２からデータ２（対象データ）を抽出する。
そして、加工部１２４が、ユーザ３の操作に従ってデータ２を加工することによって、データ３を生成する。
【０１８０】
ステップＳ１２４において、署名部１２５は署名２３を生成する。
具体的には、署名２３は以下のように生成される。
まず、算出部１２２が、データ２（対象データ）を入力としてダイジェスト関数を実行することによって、ダイジェスト値２を算出する。
次に、算出部１２２が、組データ２３（ダイジェスト値２およびデータ３）を入力としてダイジェスト関数を実行することによって、組データ２３のダイジェスト値を算出する。
そして、署名部１２５が、秘密鍵３を用いて組データ２３のダイジェスト値を暗号化することによって、署名２３を生成する。
署名２３は、組データ２３の真正性および完全性を検証することを可能にする。つまり、署名２３は、データ２とデータ３との組の真正性および完全性を検証することを可能にする。
【０１８１】
ステップＳ１２５において、メッセージ生成部１２６は、組データ２３と署名２３とを用いて、メッセージ３（加工メッセージ）を生成する。
メッセージ３は、組データ２３と署名２３とを含んだメッセージである。
【０１８２】
ステップＳ１２６において、配信部１２９Ｓはメッセージ３を配信する。メッセージ３は装置Ｕに配信される。
【０１８３】
次に、装置Ｕが以下のように動作する。装置Ｕの動作を図８に基づいて説明する。
ステップＳ１３１において、受付部１２９Ｒはメッセージ３（配信メッセージ）を受け付ける。
【０１８４】
ステップＳ１３２において、検証部１２３は署名２３を検証する。
具体的には、署名２３は以下のように検証される。
まず、抽出部１３１が、メッセージ３から組データ２３（配信データ）と署名２３とを抽出する。
次に、算出部１３２が、組データ２３を入力としてダイジェスト関数を実行することによって、組データ２３のダイジェスト値を算出する。
次に、検証部１３３が、署名２３を公開鍵３を用いて復号することによって、署名２３の復号値を算出する。
そして、検証部１３３が、組データ２３のダイジェスト値を署名２３の復号値と比較する。
組データ２３のダイジェスト値が署名２３の復号値と一致した場合、署名２３の検証は成功である。署名２３の検証が成功した場合、組データ２３の真正性および完全性が担保される。つまり、データ２とデータ３との組の真正性および完全性が担保される。
署名２３の検証が成功した場合、処理はステップＳ１３３に進む。
署名２３の検証が失敗した場合、以降の処理は行われない。
【０１８５】
ステップＳ１３３において、利用部１３４はデータ３を利用する。
具体的には、データ３は以下のように利用される。
まず、抽出部１３１が、メッセージ３からデータ３（対象データ）を抽出する。
そして、利用部１３４が、データ３を用いてデータ処理を行う。
【０１８６】
＊＊＊実施の形態４の補足＊＊＊
図１３において、実施の形態２と同じく、対象データの代わりに対象データのダイジェスト値を組データに含める形態を説明した。
但し、実施の形態４は、実施の形態３と同じく、対象データの代わりに配信データのダイジェスト値を組データに含める形態であってもよい（図１４参照）。
【０１８７】
＊＊＊実施の形態４の実施例＊＊＊
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに適用することが可能である。
【０１８８】
メッセージ配信システム１００は、ダイナミックマップを配信するためのシステムに以下のように適用される。
メッセージ配信システム１００は、メッセージ生成装置１１０（装置０）と２つのメッセージ加工装置１２０（装置１および装置２）とメッセージ利用装置１３０（装置Ｕ）とを備える。
装置０は、地図管理装置である。データ０は、基盤地図情報である。
装置１は、地図会社装置である。データ１は、地図会社データである。
装置２は、自動車会社装置である。データ２は、自動車会社データである。
装置Ｕは、自動運転車両である。
【０１８９】
＊＊＊実施の形態４の効果＊＊＊
実施の形態４では、メインＣＡの認証の下でサブＣＡが設けられる。
そのため、秘密鍵の配付に伴うリスクを避けてシステムを構築することができる。また、鍵ペアの配布に伴うメインＣＡの負荷を低減できる。
【０１９０】
サブＣＡは自由に鍵ペアを生成することができる。
そのため、各装置が属する機関は、自らのサービス区分に沿ったきめ細やかな運用を行うことができる。例えば、各機関は、生成したデータの配布先が複数ある場合に配布先ごとに鍵ペアを生成したり、生成したデータの種類が複数ある場合にデータごとに鍵ペアを生成することで、自らのサービス区分に応じたデータの管理や完全性確認のための管理をすることができる。
【０１９１】
＊＊＊実施の形態の補足＊＊＊
メッセージの配信は、通信による配信と人手による配信とのいずれであってもよい。
つまり、メッセージは、ネットワークを介して装置間で通信されてもよいし、人手によって各装置に対して入出力されてもよい。
【０１９２】
メッセージ加工装置１２０は、複数のコンピュータで構成されてもよい。
例えば、実施の形態４におけるメッセージ加工装置１２０が、第１コンピュータと第２コンピュータとで構成されてもよい。第１コンピュータは、抽出部１２１と算出部１２２と検証部１２３と加工部１２４と署名部１２５とメッセージ生成部１２６とを実現する。第２コンピュータは鍵生成部１２７を実現する。
【０１９３】
図１５に基づいて、メッセージ生成装置１１０のハードウェア構成を説明する。
メッセージ生成装置１１０は処理回路９９１を備える。
処理回路９９１は、データ生成部１１１と算出部１１２と署名部１１３とメッセージ生成部１１４と認証部１１５と記憶部１１９Ｍとを実現するハードウェアである。
処理回路９９１は、専用のハードウェアであってもよいし、メモリ９１２に格納されるプログラムを実行するプロセッサ９１１であってもよい。
【０１９４】
処理回路９９１が専用のハードウェアである場合、処理回路９９１は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
メッセージ生成装置１１０は、処理回路９９１を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路９９１の役割を分担する。
【０１９５】
処理回路９９１において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０１９６】
このように、処理回路９９１はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１９７】
図１６に基づいて、メッセージ加工装置１２０のハードウェア構成を説明する。
メッセージ加工装置１２０は処理回路９９２を備える。
処理回路９９２は、抽出部１２１と算出部１２２と検証部１２３と加工部１２４と署名部１２５とメッセージ生成部１２６と鍵生成部１２７と記憶部１２９Ｍとを実現するハードウェアである。
処理回路９９２は、専用のハードウェアであってもよいし、メモリ９２２に格納されるプログラムを実行するプロセッサ９２１であってもよい。
【０１９８】
処理回路９９２が専用のハードウェアである場合、処理回路９９２は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
メッセージ加工装置１２０は、処理回路９９２を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路９９２の役割を分担する。
【０１９９】
処理回路９９２において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０２００】
このように、処理回路９９２はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０２０１】
図１７に基づいて、メッセージ利用装置１３０のハードウェア構成を説明する。
メッセージ利用装置１３０は処理回路９９３を備える。
処理回路９９３は、抽出部１３１と算出部１３２と検証部１３３と利用部１３４と記憶部１３９Ｍとを実現するハードウェアである。
処理回路９９３は、専用のハードウェアであってもよいし、メモリ９３２に格納されるプログラムを実行するプロセッサ９２１であってもよい。
【０２０２】
処理回路９９３が専用のハードウェアである場合、処理回路９９３は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
メッセージ利用装置１３０は、処理回路９９３を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路９９３の役割を分担する。
【０２０３】
処理回路９９３において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０２０４】
このように、処理回路９９３はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０２０５】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【０２０６】
１００  メッセージ配信システム、１１０  メッセージ生成装置、１１１  データ生成部、１１２  算出部、１１３  署名部、１１４  メッセージ生成部、１１５  認証部、１１９Ｍ  記憶部、１１９Ｒ  受付部、１１９Ｓ  配信部、１２０  メッセージ加工装置、１２１  抽出部、１２２  算出部、１２３  検証部、１２４  加工部、１２５  署名部、１２６  メッセージ生成部、１２７  鍵生成部、１２９Ｍ  記憶部、１２９Ｒ  受付部、１２９Ｓ  配信部、１３０  メッセージ利用装置、１３１  抽出部、１３２  算出部、１３３  検証部、１３４  利用部、１３９Ｍ  記憶部、１３９Ｒ  受付部、９１１  プロセッサ、９１２  メモリ、９１３  補助記憶装置、９１４  入出力インタフェース、９２１  プロセッサ、９２２  メモリ、９２３  補助記憶装置、９２４  入出力インタフェース、９３１  プロセッサ、９３２  メモリ、９３３  補助記憶装置、９３４  入出力インタフェース、９９１，９９２，９９３  処理回路。
【図１】
2018207424.tif 000003
【図２】
2018207424.tif 000004
【図３】
2018207424.tif 000005
【図４】
2018207424.tif 000006
【図５】
2018207424.tif 000007
【図６】
2018207424.tif 000008
【図７】
2018207424.tif 000009
【図８】
2018207424.tif 000010
【図９】
2018207424.tif 000011
【図１０】
2018207424.tif 000012
【図１１】
2018207424.tif 000013
【図１２】
2018207424.tif 000014
【図１３】
2018207424.tif 000015
【図１４】
2018207424.tif 000016
【図１５】
2018207424.tif 000017
【図１６】
2018207424.tif 000018
【図１７】
2018207424.tif 000019
【国際調査報告】
2018207424.tif 000020
2018207424.tif 000021
2018207424.tif 000022
2018207424.tif 000023