(57)【要約】      （修正有）【課題】グループを構成するデータの真正性を検証する。【解決手段】配置装置は、検証対象グループＧｔａｇを構成する１以上の検証対象データの夫々の、一部または全部に相当する検証対象部に基づき、検証対象部の真正性を検証するための第１検証情報Ｉｖ１を生成する。そして、配置装置は、検証対象データの検証対象部または第１検証情報Ｉｖ１に基づき、複数の配置先候補から選択された１の配置先候補に、第１検証情報Ｉｖ１を配置する。【選択図】図４
2019197470.tif 000002
【特許請求の範囲】
【請求項１】
グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、前記検証対象の真正性を検証するための検証情報を生成する生成手段と、
前記検証対象または前記検証情報に基づき、複数の配置先候補から選択された１の配置先候補に、前記検証情報を配置する配置手段と、
を有することを特徴とする配置装置。
【請求項２】
前記グループは複数のデータから構成されることを特徴とする請求項１に記載の配置装置。
【請求項３】
前記複数の配置先候補は、前記複数のデータのいずれかと対応していることを特徴とする請求項２に記載の配置装置。
【請求項４】
前記１の配置先候補以外の前記複数の配置先候補の少なくともいずれかに前記検証情報と異なる情報を配置することを特徴とする請求項１〜３のいずれか一項に記載の配置装置。
【請求項５】
前記複数の配置先候補は、前記データの内部であることを特徴とする請求項１〜４のいずれか一項に記載の配置装置。
【請求項６】
前記複数の配置先候補は、前記データの内部の所定のデータ領域であることを特徴とする請求項５に記載の配置装置。
【請求項７】
前記データは、ＤＩＣＯＭ形式のデータであることを特徴とする請求項６に記載の配置装置。
【請求項８】
前記配置手段は、前記検証対象または前記検証情報に基づき、前記１以上のデータから前記検証情報を配置すべき１のデータを特定し、かつ、前記検証対象または前記検証情報に基づき、前記１のデータ内において前記検証情報を配置すべきデータ領域を特定することを特徴とする請求項６または７に記載の配置装置。
【請求項９】
前記グループは、複数種類のデータから構成されることを特徴とする請求項１〜８のいずれか一項に記載の配置装置。
【請求項１０】
グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、第１の時間に第１の方法により生成された、前記検証対象の真正性を検証するための第１検証情報を検証する検証装置であって、
前記第１の方法により、前記第１の時間より後の第２の時間に、前記データの夫々の前記検証対象に基づき、第２検証情報を生成する生成手段と、
前記検証対象または前記第２検証情報に基づき、前記第１検証情報の複数の配置先候補から１の配置先候補を選択する選択手段と、
前記１の配置先候補における前記第１検証情報の有無に基づき、前記検証対象の真正性を検証する第１検証手段と、
前記１の配置先候補に前記第１検証情報が配置されていた場合に、当該第１検証情報と、前記第２検証情報とに基づき、前記検証対象の真正性を検証する第２検証手段と、
を有する検証装置。
【請求項１１】
情報処理装置が実行する制御方法であって、
グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、前記検証対象の真正性を検証するための検証情報を生成する生成工程と、
前記検証対象または前記検証情報に基づき、複数の配置先候補から選択された１の配置先候補に、前記検証情報を配置する配置工程と、
を有することを特徴とする制御方法。
【請求項１２】
グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、第１の時間に第１の方法により生成された、前記検証対象の真正性を検証するための第１検証情報を検証する情報処理装置が実行する制御方法であって、
前記第１の方法により、前記第１の時間より後の第２の時間に、前記データの夫々の前記検証対象に基づき、第２検証情報を生成する生成工程と、
前記検証対象または前記第２検証情報に基づき、前記第１検証情報の複数の配置先候補から１の配置先候補を選択する選択工程と、
前記１の配置先候補における前記第１検証情報の有無に基づき、前記検証対象の真正性を検証する第１検証工程と、
前記１の配置先候補に前記第１検証情報が配置されていた場合に、当該第１検証情報と、前記第２検証情報とに基づき、前記検証対象の真正性を検証する第２検証工程と、
を有することを特徴とする制御方法。
【請求項１３】
情報処理装置が実行するデータ生成方法であって、
グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、前記検証対象の真正性を検証するための検証情報を生成する第１生成工程と、
前記検証対象または前記検証情報に基づき、前記データの内部に存在する配置先候補から選択された１の配置先候補に前記検証情報を配置し、前記検証情報を内包する１つのグループを構成するデータを生成する第２生成工程と、
を有することを特徴とするデータ生成方法。
【請求項１４】
複数のデータからなるデータ群のデータ構造であって、
前記データ群の真正性を検証するための検証情報を有し、
前記検証情報は、前記複数のデータのいずれか１のデータに内包され、
前記データ群を参照する情報処理装置が前記検証情報に基づいて前記データ群の真正性を検証する処理に用いられる、データ群のデータ構造。
【請求項１５】
前記複数のデータそれぞれが検証対象となる検証対象データ領域を有し、
前記検証情報は、前記検証対象データ領域のデータに基づき生成され、
前記いずれか１のデータは、前記検証対象データ領域のデータまたは前記検証情報に基づき選択された
請求項１４記載のデータ群のデータ構造。
【請求項１６】
検証対象となる検証対象データ領域とオプション領域を含むデータのデータ構造であって、
前記オプション領域は、複数のデータ領域を含み、
前記複数のデータ領域のうちの１のデータ領域に、前記検証対象データ領域に基づき前記検証対象データの真正性を検証するための検証情報を有し、
前記１のデータ領域は、前記検証対象データ領域に基づき、前記複数のデータ領域から選択されている、
前記データを参照する情報処理装置が前記検証情報に基づいて前記検証対象の真正性を検証する処理に用いられる、データのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データの真正性を検証する技術に関する。
【背景技術】
【０００２】
従来から、データの真正性を検証するための電子署名を安全に保管する技術が知られている。例えば、特許文献１には、同じフォーマットに含まれている電子署名と電子文書を分離し、非セキュア領域に電子文書を保存し、セキュア領域に電子署名を保存し、電子文書と署名とに対して相互にリンク付けを行うように構成された携帯端末装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４８３３０１７号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、電子署名の保管場所としてセキュア領域という特殊な環境が必要である。セキュア領域がない環境に、データの改ざんの有無を検証するための電子署名などの情報（検証情報）を保管する場合、検証対象となるデータとともに保管場所が明らかな検証情報も改ざんされてしまい、改ざんの発生を的確に検証できなくなってしまう。
【０００５】
本開示は、上記のような課題を解決するためになされたものであり、検証情報の配置場所を好適に決定することが可能な配置装置及び当該検証情報を用いたデータの真正性を好適に検証可能な検証装置等を提供することを主な目的とする。
【課題を解決するための手段】
【０００６】
本開示の１つの観点では、配置装置は、グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、前記検証対象の真正性を検証するための検証情報を生成する生成手段と、前記検証対象または前記検証情報に基づき、複数の配置先候補から選択された１の配置先候補に、前記検証情報を配置する配置手段と、を有する。この態様によれば、検証対象または検証情報によって検証情報を配置する１の配置先候補が柔軟に変更されるため、配置装置は、検証情報の配置場所を好適に秘匿化し、検証情報の改ざんを好適に防ぐことができる。また、後述の検証装置において説明するように、データの改ざんがあった場合には検証装置が検証情報の配置場所を正しく特定することができなくなるため、仮に検証情報が改ざんされた場合であっても、改ざんの発生が好適に検出可能となる。
【０００７】
上記配置装置の一態様では、前記グループは複数のデータから構成される。この態様では、配置装置は、複数のデータの検証対象の真正性を検証するための検証情報を好適に生成及び配置することができる。好適には、前記複数の配置先候補は、前記複数のデータのいずれかと対応しているとよい。
【０００８】
上記配置装置の他の一態様では、前記１の配置先候補以外の前記複数の配置先候補の少なくともいずれかに前記検証情報と異なる情報を配置する。この態様により、配置装置は、検証情報の配置場所の秘匿性を好適に高めることができる。
【０００９】
上記配置装置の他の一態様では、前記複数の配置先候補は、前記データの内部である。この態様により、配置装置は、いずれかのデータに検証情報を好適に内包させることができる。好適には、前記複数の配置先候補は、前記データの内部の所定のデータ領域であるとよい。
【００１０】
上記配置装置の他の一態様では、前記データは、ＤＩＣＯＭ形式のデータである。この態様によれば、ＤＩＣＯＭ形式のデータの検証情報をグループ単位で生成し、かつ、検証情報をいずれかのＤＩＣＯＭ形式のデータのタグに好適に格納することができる。
【００１１】
上記配置装置の他の一態様では、前記配置手段は、前記検証対象または前記検証情報に基づき、前記１以上のデータから前記検証情報を配置すべき１のデータを特定し、かつ、前記検証対象または前記検証情報に基づき、前記１のデータ内において前記検証情報を配置すべきデータ領域を特定する。この態様では、配置装置は、配置場所を２段階の手順により決定するため、検証情報の配置場所の秘匿性を好適に高めることができる。
【００１２】
上記配置装置の他の一態様では、前記グループは、複数種類のデータから構成される。このように、配置装置は、複数種類のデータを対象とする場合であっても、これらのデータの検証対象の真正性を検証するための検証情報の生成及び配置を好適に行うことができる配置場所を決定してもよい。
【００１３】
本開示の他の観点では、グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、第１の時間に第１の方法により生成された、前記検証対象の真正性を検証するための第１検証情報を検証する検証装置であって、前記第１の方法により、前記第１の時間より後の第２の時間に、前記データの夫々の前記検証対象に基づき、第２検証情報を生成する生成手段と、前記検証対象または前記第２検証情報に基づき、前記第１検証情報の複数の配置先候補から１の配置先候補を選択する選択手段と、前記１の配置先候補における前記第１検証情報の有無に基づき、前記検証対象の真正性を検証する第１検証手段と、前記１の配置先候補に前記第１検証情報が配置されていた場合に、当該第１検証情報と、前記第２検証情報とに基づき、前記検証対象の真正性を検証する第２検証手段と、を有する。この態様では、データの改ざん発生が発生した場合、検証装置が第１検証情報の配置先候補を選択するための検証対象または検証情報が変更されるため、検証装置が選択する第１検証情報の配置先候補が改ざんの影響により変更される。従って、検証装置は、選択した第１検証情報の配置先候補における第１検証情報の有無に基づき、データの検証対象の真正性を好適に検証することができる。また、検証装置は、選択した配置先候補に第１検証情報が存在する場合には、グループを構成するデータの検証対象から自ら生成した第２検証情報と第１検証情報とを比較することで、データの検証対象の真正性をさらに検証することができる。従って、この態様によれば、検証装置は、データの検証対象の真正性を的確に検証することができる。
【００１４】
本開示のさらに別の実施形態では、情報処理装置が実行する制御方法であって、グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、前記検証対象の真正性を検証するための検証情報を生成する生成工程と、前記検証対象または前記検証情報に基づき、複数の配置先候補から選択された１の配置先候補に、前記検証情報を配置する配置工程と、を有する。情報処理装置は、この制御方法を実行することで、検証情報の配置場所を好適に秘匿化し、検証情報の改ざんを好適に防ぐことができる。
【００１５】
本開示のさらに別の実施形態では、グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、第１の時間に第１の方法により生成された、前記検証対象の真正性を検証するための第１検証情報を検証する情報処理装置が実行する制御方法であって、前記第１の方法により、前記第１の時間より後の第２の時間に、前記データの夫々の前記検証対象に基づき、第２検証情報を生成する生成工程と、前記検証対象または前記第２検証情報に基づき、前記第１検証情報の複数の配置先候補から１の配置先候補を選択する選択工程と、前記１の配置先候補における前記第１検証情報の有無に基づき、前記検証対象の真正性を検証する第１検証工程と、前記１の配置先候補に前記第１検証情報が配置されていた場合に、当該第１検証情報と、前記第２検証情報とに基づき、前記検証対象の真正性を検証する第２検証工程と、を有する。情報処理装置は、この制御方法を実行することで、データの検証対象の真正性を的確に検証することができる。
【００１６】
本開示のさらに別の実施形態では、情報処理装置が実行するデータ生成方法であって、グループを構成する１以上のデータの夫々の、一部または全部に相当する検証対象に基づき、前記検証対象の真正性を検証するための検証情報を生成する第１生成工程と、前記検証対象または前記検証情報に基づき、前記データの内部に存在する配置先候補から選択された１の配置先候補に前記検証情報を配置し、前記検証情報を内包する１つのグループを構成するデータを生成する第２生成工程と、を有する。情報処理装置は、このデータ生成方法を実行することで、グループ内のデータの検証対象の真正性を検証するための検証情報を内包したデータを好適に生成することができる。
【００１７】
本開示のさらに別の実施形態では、複数のデータからなるデータ群のデータ構造であって、前記データ群の真正性を検証するための検証情報を有し、前記検証情報は、前記複数のデータのいずれか１のデータに内包され、前記データ群を参照する情報処理装置が前記検証情報に基づいて前記データ群の真正性を検証する処理に用いられる、データ群のデータ構造である。このデータ構造によれば、複数のデータからなるデータ群には、データ群の真正性を検証するための検証情報が好適に内包される。よって、データ群を参照する情報処理装置は、この検証情報の配置場所及び内容に基づいて、データ群の真正性を好適に検証することができる。
【００１８】
上記データ構造の一態様では、データ構造は、前記複数のデータそれぞれが検証対象となる検証対象データ領域を有し、前記検証情報は、前記検証対象データ領域のデータに基づき生成され、前記いずれか１のデータは、前記検証対象データ領域のデータまたは前記検証情報に基づき選択される。この態様により、データ群を参照する情報処理装置は、検証情報の配置場所及び内容に基づいて、データ群の各検証対象データ領域のデータの真正性を好適に検証することができる。
【００１９】
本開示のさらに別の実施形態では、検証対象となる検証対象データ領域とオプション領域を含むデータのデータ構造であって、前記オプション領域は、複数のデータ領域を含み、前記複数のデータ領域のうちの１のデータ領域に、前記検証対象データ領域に基づき前記検証対象データの真正性を検証するための検証情報を有し、前記１のデータ領域は、前記検証対象データ領域に基づき、前記複数のデータ領域から選択されている、前記データを参照する情報処理装置が前記検証情報に基づいて前記検証対象の真正性を検証する処理に用いられる、データのデータ構造である。このデータ構造では、オプション領域内のいずれかのデータ領域に、検証対象データ領域の真正性を検証するための検証情報が含まれる。よって、データを参照する情報処理装置は、検証情報の配置場所及び内容に基づいて、検証対象データ領域のデータの真正性を好適に検証することができる。
【発明の効果】
【００２０】
本開示によれば、検証対象または検証情報によって検証情報を配置する１の配置先候補が柔軟に変更されるため、配置装置は、検証情報の配置場所を好適に秘匿化し、検証情報の改ざんを好適に防ぐことができる。また、検証装置は、データの改ざんがあった場合には配置された検証情報の場所を正しく特定することができなくなるため、仮に検証情報が改ざんされた場合であっても、検証情報の有無に基づき改ざんの発生を好適に検出することができる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態に係る検証システムの構成を示す。
【図２】配置装置のブロック構成を示す。
【図３】検証装置のブロック構成を示す。
【図４】第１検証情報の生成及び配置に関する処理の概要を示す図である。
【図５】第１実施形態における第１検証情報の生成及び配置に関するフローチャートである。
【図６】第１検証情報が配置された後にいずれのデータにも改ざんが発生していない場合の検証処理の概要を示す図である。
【図７】第１検証情報が配置された後にデータの改ざんが発生した場合の検証処理の概要を示す図である。
【図８】第１実施形態におけるデータ検証に関するフローチャートである。
【図９】変形例における検証処理の概要を示す図である。
【図１０】第２実施形態に係る検証システムの構成を示す。
【図１１】ＤＩＣＯＭデータのデータ構造例を示す。
【図１２】第２実施形態における配置装置のブロック構成を示す。
【図１３】第２実施形態における検証装置のブロック構成を示す。
【図１４】電子署名の生成及び配置に関する処理の概要を示す図である。
【図１５】電子署名を格納するタグを説明する図である。
【図１６】第２実施形態における電子署名の生成及び配置に関する処理手順を示すフローチャートである。
【図１７】第２実施形態におけるデータ検証の概要を示す図である。
【図１８】第２実施形態におけるデータ検証の手順を示すフローチャートである。
【図１９】第２実施形態の変形例に係る検証対象グループの構成例を示す。
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら、本開示の第１及び第２実施形態について説明する。
【００２３】
＜第１実施形態＞
［データ管理システムの構成］
図１は、第１実施形態に係る検証システム１００の構成を示す。検証システム１００は、グループ（データ群）ごとのデータの改ざんの有無（即ち真正性）の検証を行うシステムである。検証システム１００は、主に、検証対象となるグループ（「検証対象グループＧｔａｇ」とも呼ぶ。）に属する各データの真正性を検証するための情報の生成及び配置を行う配置装置１Ａと、検証対象グループＧｔａｇに属する各データの真正性を検証する検証装置１Ｂとを有する。
【００２４】
検証対象グループＧｔａｇは、検証対象とするデータ（「検証対象データ」とも呼ぶ。）である「データ１」〜「データｎ」（ｎは１以上の整数）から構成されるグループである。ここで、「グループ」は、所定のデータが、検証時に属していることが検証装置１Ｂにより確認できる単位により構成するようにしてもよい。例えば、グループを、所定の共通する属性を有するデータから構成してもよい。属性の共通性は、例えば、格納されているフォルダの共通性、作成者の共通性、作成年月日の共通性、及びファイル種の共通性、後述するＤＩＣＯＭ（Ｄｉｇｉｔａｌ  Ｉｍａｇｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｉｎ  Ｍｅｄｉｃｉｎｅ）シリーズの共通性などとしてよい。なお、検証対象グループＧｔａｇ内の各検証対象データは、配置装置１Ａ又は検証装置１Ｂに記憶されてもよく、配置装置１Ａ及び検証装置１Ｂ以外の外部装置により記憶されてもよい。
【００２５】
検証対象データ「データ１」〜「データｎ」は、それぞれ検証対象となる部分（「検証対象部」とも呼ぶ。）を含む。検証対象部は、検証対象データ全体であってもよく、検証対象データの一部であってもよい。後者の場合、配置装置１Ａ及び検証装置１Ｂは、検証対象データ内の同一領域を検証対象部として特定できるように、検証対象部を特定する情報を予め共有する。また、検証対象部は、検証対象データのデータ種類ごとに定められてもよい。例えば、検証対象データがバイナリデータの場合には、検証対象部は、データ領域又は／及びヘッダ領域に定められ、検証対象データがＤＩＣＯＭの場合には、検証対象部は、特定のタグ（例えばピクセルデータやレポートデータに対応するタグ）のデータ領域に定められる。なお、検証対象部は、後述する検証情報が任意の場所に配置された場合であっても影響がない領域に定められる。
【００２６】
配置装置１Ａは、検証対象グループＧｔａｇに含まれる全ての検証対象データの検証対象部の真正性を検証するための情報（「第１検証情報Ｉｖ１」とも呼ぶ。）を生成し、生成した第１検証情報Ｉｖ１を予め定めた配置候補のいずれかの場所に格納する。ここで、第１検証情報Ｉｖ１は、検証対象グループＧｔａｇに含まれる全ての検証対象データの検証対象部を用いて生成されるデータであって、いずれかの検証対象データの検証対象部が変化すると必ず変化するデータとなる。第１検証情報Ｉｖ１は、例えば、所定のハッシュ関数により得られるハッシュ値であってもよく、メッセージ認証コードであってもよく、デジタル署名であってもよい。また、第１検証情報Ｉｖ１の配置候補は、検証対象データ内の所定のデータ領域であってもよく、検証対象データ以外の場所であってもよい。後者の配置候補の例は、所定のパス、所定のファイルの所定箇所、又は、外部の記憶装置内の格納場所を示す所定のＵＲＩなどが該当する。なお、配置候補は、第１検証情報Ｉｖ１が配置されることにより検証対象データの検証対象部に影響が生じない場所に定められる。後述するように、配置装置１Ａは、第１検証情報Ｉｖ１に基づき、予め定めた複数の配置候補から１つ配置候補を選択し、選択した配置候補に第１検証情報Ｉｖ１を格納する。なお、配置装置１Ａが第１検証情報Ｉｖ１を生成する時間（時刻）は、本開示における「第１の時間」の一例であり、配置装置１Ａが第１検証情報Ｉｖ１を生成する方法は、本開示における「第１の方法」の一例である。
【００２７】
検証装置１Ｂは、検証対象グループＧｔａｇに属する検証対象データの真正性を、配置装置１Ａが生成及び配置した第１検証情報Ｉｖ１に基づき検証する。この場合、検証装置１Ｂは、第１検証情報Ｉｖ１が生成される時刻（第１の時間）より後の時刻において、各検証対象データの検証対象部の真正性を検証するための情報（「第２検証情報Ｉｖ２」とも呼ぶ。）を、第１検証情報Ｉｖ１の生成方法（第１の方法）と同一の方法により生成する。そして、検証装置１Ｂは、第２検証情報Ｉｖ２に基づき、第１検証情報Ｉｖ１の配置場所を特定し、特定した配置場所から抽出した第１検証情報Ｉｖ１と第２検証情報Ｉｖ２とを比較することで、検証対象グループＧｔａｇに属する検証対象データの真正性を検証する。ここで、第２検証情報Ｉｖ２は、検証対象グループＧｔａｇに含まれる全ての検証対象データの検証対象部を用いて生成されるデータであって、いずれかの検証対象データの検証対象部が変化すると必ず変化するデータとなる。なお、検証装置１Ｂが第２検証情報Ｉｖ２を生成する時間（時刻）は、本開示における「第２の時間」の一例である。
【００２８】
図２は、配置装置１Ａのブロック構成を示す。図２に示すように、配置装置１Ａは、記憶部３Ａと、通信部４Ａと、制御部５Ａとを含む。これらの各要素は、バスラインを介して相互に接続されている。なお、配置装置１Ａは、図２に示した構成要素以外の任意の構成要素（例えば入力部や表示部等）を含んでよい。
【００２９】
記憶部３Ａは、制御部５Ａが実行するプログラム、及び、制御部５Ａがプログラムを実行することで所定の処理を実行するのに必要な情報を記憶する。また、記憶部３Ａは、配置候補情報６Ａを記憶する。配置候補情報６Ａは、第１検証情報Ｉｖ１の配置候補を示す情報であり、インデックス（「候補インデックス」とも呼ぶ。）ごとに異なる配置候補が関連付けられた情報である。通信部４Ａは、制御部５Ａの制御に基づき、データ通信を行う。例えば、通信部４Ａは、検証対象グループＧｔａｇに属する検証対象データを検証装置１Ｂに送信する処理を行ったり、決定した第１検証情報Ｉｖ１の配置場所が配置装置１Ａの外部装置内である場合に当該外部装置に第１検証情報Ｉｖ１を送信する処理を行ったりする。
【００３０】
制御部５Ａは、図示しないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを備え、配置装置１Ａ内の各構成要素に対して種々の制御を行う。また、制御部５Ａは、検証情報生成器７Ａと、乱数生成器８Ａとを有する。検証情報生成器７Ａは、検証対象グループＧｔａｇに含まれる全ての検証対象データの検証対象部から第１検証情報Ｉｖ１を生成する。検証情報生成器７Ａは、例えばハッシュ関数を適用することで、いずれかの検証対象データの検証対象部が変化すると必ず変化するデータとなるような第１検証情報Ｉｖ１を生成する。乱数生成器８Ａは、第１検証情報Ｉｖ１から配置候補情報６Ａに記録された候補インデックスのいずれかを示す乱数を出力する。なお、乱数生成器８Ａは、同一の入力に対して同一の出力を行う。
【００３１】
図３は、検証装置１Ｂのブロック構成を示す。図３に示すように、検証装置１Ｂは、記憶部３Ｂと、通信部４Ｂと、制御部５Ｂとを含む。これらの各要素は、バスラインを介して相互に接続されている。なお、検証装置１Ｂは、図３に示した構成要素以外の任意の構成要素（例えば入力部や表示部等）を含んでよい。
【００３２】
記憶部３Ｂは、制御部５Ｂが実行するプログラム、及び、制御部５Ｂがプログラムを実行することで所定の処理を実行するのに必要な情報を記憶する。また、記憶部３Ｂは、配置候補情報６Ａと同一の候補インデックスと配置候補の組を示す配置候補情報６Ｂを記憶する。通信部４Ｂは、制御部５Ｂの制御に基づき、データ通信を行う。例えば、通信部４Ｂは、検証対象グループＧｔａｇに属する検証対象データを配置装置１Ａから受信する処理を行ったり、第１検証情報Ｉｖ１の配置場所が外部である場合に当該外部から第１検証情報Ｉｖ１を受信する処理を行ったりしてもよい。
【００３３】
制御部５Ｂは、図示しないＣＰＵ、ＲＯＭ及びＲＡＭなどを備え、検証装置１Ｂ内の各構成要素に対して種々の制御を行う。また、制御部５Ｂは、検証情報生成器７Ｂと、乱数生成器８Ｂとを有する。検証情報生成器７Ｂは、検証情報生成器７Ａと同一アルゴリズムにより、検証対象グループＧｔａｇに含まれる全ての検証対象データの検証対象部を用いて第２検証情報Ｉｖ２を生成する。乱数生成器８Ｂは、乱数生成器８Ａと同一アルゴリズムにより、第２検証情報Ｉｖ２から配置候補情報６Ａに記録された候補インデックスのいずれかを示す乱数を出力する。なお、乱数生成器８Ｂは、同一の入力に対して同一の出力を行い、乱数生成器８Ａと同一の入力が行われた場合には乱数生成器８Ａと同一の出力を行う。
【００３４】
［第１検証情報の生成及び配置］
次に、配置装置１Ａが実行する第１検証情報Ｉｖ１の生成及び配置について具体的に説明する。図４は、第１検証情報Ｉｖ１の生成及び配置に関する処理の概要を示す図である。なお、図４の例では、配置候補情報６Ａには、候補インデックス「１」〜「ｍ」（ｍは２以上の整数）に対してそれぞれ第１検証情報Ｉｖ１の配置候補が対応付けられているものとする。
【００３５】
まず、配置装置１Ａの検証情報生成器７Ａは、検証対象グループＧｔａｇに属する全ての検証対象データである「データ１」〜「データｎ」の検証対象部を入力データとして所定のアルゴリズムを実行することで第１検証情報Ｉｖ１を生成する。
【００３６】
次に、配置装置１Ａの乱数生成器８Ａは、検証情報生成器７Ａにより出力された第１検証情報Ｉｖ１を入力として乱数「Ｘ」（１≦Ｘ≦ｍ）を生成する。このように、乱数生成器８Ａは、第１検証情報Ｉｖ１に基づき、配置候補情報６Ａにおいて配置候補と対応付けられた候補インデックスのいずれかに対応する乱数Ｘを出力する。
【００３７】
そして、配置装置１Ａは、配置候補情報６Ａを参照することで、乱数生成器８Ａが出力した乱数Ｘを候補インデックスとする配置候補を特定し、特定した配置候補が示す配置場所に第１検証情報Ｉｖ１を格納する。
【００３８】
このように、配置装置１Ａは、検証対象グループＧｔａｇに属する全ての検証対象データの検証対象部に基づき第１検証情報Ｉｖ１を生成し、かつ、第１検証情報Ｉｖ１に基づき第１検証情報Ｉｖ１の配置場所を決定する。これにより、配置装置１Ａは、第１検証情報Ｉｖ１の配置場所を好適に秘匿化し、第１検証情報Ｉｖ１の改ざんを好適に防ぐことができる。また、後述するように、検証対象データの改ざんがあった場合には、検証装置１Ｂが第１検証情報Ｉｖ１の配置場所を正しく特定することができなくなるため、仮に第１検証情報Ｉｖ１が改ざんされた場合であっても、検証装置１Ｂは改ざんの発生を好適に認識することができる。
【００３９】
図５は、第１実施形態における第１検証情報Ｉｖ１の生成及び配置に関するフローチャートである。
【００４０】
まず、配置装置１Ａは、検証対象グループＧｔａｇに属する検証対象データを読み込む（ステップＳ１１）。そして、配置装置１Ａは、読み込んだ各検証対象データの検証対象部から第１検証情報Ｉｖ１を生成する（ステップＳ１２）。そして、配置装置１Ａは、ステップＳ１２で生成した第１検証情報Ｉｖ１から配置場所を決定する（ステップＳ１３）。この場合、配置装置１Ａは、配置候補情報６Ａにおいて配置候補と対応付けられた候補インデックスを示す乱数を第１検証情報Ｉｖ１に基づき生成することで、第１検証情報Ｉｖ１の配置場所を決定する。そして、配置装置１Ａは、ステップＳ１３で決定した配置場所に第１検証情報Ｉｖ１を配置する（ステップＳ１４）。
【００４１】
［真正性の検証］
次に、検証装置１Ｂが実行する検証対象グループＧｔａｇに属する検証対象データの真正性の検証について具体的に説明する。図６は、図４の例に基づき第１検証情報Ｉｖ１が配置された後にいずれの検証対象データにも改ざんが発生していない場合の検証処理の概要を示す図である。
【００４２】
まず、検証装置１Ｂの検証情報生成器７Ｂは、検証対象グループＧｔａｇに属する全ての検証対象データである「データ１」〜「データｎ」の検証対象部を入力データとして所定のアルゴリズムを実行することで第２検証情報Ｉｖ２を生成する。なお、検証情報生成器７Ｂは、検証情報生成器７Ａと同一アルゴリズムを実行するため、いずれの検証対象データにも改ざんが発生していない場合には、検証情報生成器７Ａが生成した第１検証情報Ｉｖ１と同一となる第２検証情報Ｉｖ２を出力する。
【００４３】
次に、検証装置１Ｂの乱数生成器８Ｂは、検証情報生成器７Ｂにより出力された第２検証情報Ｉｖ２を入力として、１以上ｍ以下となる整数の乱数を生成する。ここで、乱数生成器８Ａと乱数生成器８Ｂとは、同一の入力に対して同一の値を出力するため、第１検証情報Ｉｖ１と第２検証情報Ｉｖ２とが同一である場合には、同一の値を出力する。ここでは、いずれの検証対象データにも改ざんが発生していないことから、乱数生成器８Ｂは、乱数生成器８Ａと同一の乱数Ｘを出力する。
【００４４】
そして、検証装置１Ｂは、配置候補情報６Ａと同一内容を示す配置候補情報６Ｂを参照することで、乱数生成器８Ｂが出力した乱数Ｘを候補インデックスとする配置候補を特定し、当該配置候補に格納された情報を第１検証情報Ｉｖ１として抽出する。ここでは、検証装置１Ｂは、第１検証情報Ｉｖ１が格納された配置場所を示す候補インデックスＸの配置候補を特定することにより、第１検証情報Ｉｖ１を取得する。そして、検証装置１Ｂは、配置候補情報６Ｂを参照することで特定した配置候補に存在するデータ（ここでは第１検証情報Ｉｖ１）と第２検証情報Ｉｖ２とを比較し、同一である場合には改ざんが発生していないと判断する。
【００４５】
図７は、図４の例に基づき第１検証情報Ｉｖ１が配置された後に検証対象データの改ざんが発生した場合の検証処理の概要を示す図である。ここでは、一例として、「データ１」の検証対象部に対し改ざんが行われ、さらに改ざん後の検証対象グループＧｔａｇの検証対象データに整合するように第１検証情報Ｉｖ１が書き換えられたものとする。
【００４６】
この場合、検証装置１Ｂの検証情報生成器７Ｂは、検証対象グループＧｔａｇに属する全ての検証対象データである「データ１」〜「データｎ」の検証対象部を入力データとして所定のアルゴリズムを実行することで第２検証情報Ｉｖ２を生成する。ここで、第２検証情報Ｉｖ２は、書き換え前の第１検証情報Ｉｖ１の生成時（図４参照）と異なる入力データにより生成されているため、書き換え前の第１検証情報Ｉｖ１と異なる値となる。一方、第１検証情報Ｉｖ１は改ざん後の検証対象グループＧｔａｇのデータに整合するように書き換えられているため、検証情報生成器７Ｂが生成した第２検証情報Ｉｖ２は、書き換えられた第１検証情報Ｉｖ１と同一となる。
【００４７】
そして、検証装置１Ｂの乱数生成器８Ｂは、検証情報生成器７Ｂにより出力された第２検証情報Ｉｖ２を入力として、１以上ｍ以下となる整数の乱数「Ｙ」を生成する。ここで、第２検証情報Ｉｖ２は、書き換え前の第１検証情報Ｉｖ１と異なる値となるため、乱数生成器８Ｂが出力する乱数Ｙは、図４に示す乱数生成器８Ａが出力する乱数Ｘと異なる値となる。そして、検証装置１Ｂは、配置候補情報６Ｂを参照することで、乱数生成器８Ｂが出力した乱数Ｙを候補インデックスとする配置候補を特定し、当該配置候補に格納された情報を第１検証情報Ｉｖ１として抽出する処理を行う。
【００４８】
この場合、検証装置１Ｂは、第１検証情報Ｉｖ１が格納された配置候補と異なる配置候補を参照するため、第１検証情報Ｉｖ１を適切に抽出することができない。よって、この場合、検証装置１Ｂは、検証対象グループＧｔａｇに属する少なくともいずれかの検証対象データが改ざんされたことを認識する。
【００４９】
このように、検証装置１Ｂは、検証対象データに改ざんが行われ、かつ、改ざん後の検証対象データに整合するように第１検証情報Ｉｖ１が書き換えられた場合であっても、改ざんの発生を第１検証情報Ｉｖ１の配置により好適に認識することができる。言い換えると、第１検証情報Ｉｖ１に基づき第１検証情報Ｉｖ１の配置場所を決定することで、第１検証情報Ｉｖ１と第２検証情報Ｉｖ２との比較検証によっては検出できない改ざん等の不正についても好適に検出することができる。
【００５０】
図８は、第１実施形態において検証装置１Ｂが実行するデータ検証に関するフローチャートである。
【００５１】
まず、検証装置１Ｂは、検証対象グループＧｔａｇに属する検証対象データを読み込む（ステップＳ２１）。そして、検証装置１Ｂは、読み込んだ各検証対象データの検証対象部から第２検証情報Ｉｖ２を生成する（ステップＳ２２）。そして、検証装置１Ｂは、ステップＳ２２で生成した第２検証情報Ｉｖ２から、第１検証情報Ｉｖ１が配置されている配置場所を特定する（ステップＳ２３）。この場合、検証装置１Ｂは、配置候補情報６Ｂにおいて配置候補と対応付けられた候補インデックスのいずれかに対応する乱数を第２検証情報Ｉｖ２に基づき生成することで、第１検証情報Ｉｖ１の配置場所を特定する。
【００５２】
次に、検証装置１Ｂは、ステップＳ２３で特定した配置場所から第１検証情報Ｉｖ１を取得できたか否か判定する（ステップＳ２４）。そして、検証装置１Ｂは、ステップＳ２３で特定した配置場所から第１検証情報Ｉｖ１を取得できた場合（ステップＳ２４；Ｙｅｓ）、取得した第１検証情報Ｉｖ１とステップＳ２２で生成した第２検証情報Ｉｖ２とを比較する（ステップＳ２５）。この場合、検証装置１Ｂは、第１検証情報Ｉｖ１と第２検証情報Ｉｖ２が同一の場合には、検証対象グループＧｔａｇに属する検証対象データの真正性を確認できたと判断する。
【００５３】
一方、検証装置１Ｂは、ステップＳ２３で特定した配置場所から第１検証情報Ｉｖ１を取得できなかった場合（ステップＳ２４；Ｎｏ）、検証対象グループＧｔａｇに属する検証対象データのいずれかに改ざんが発生していると判断する。
【００５４】
［データ構造］
次に、第１検証情報Ｉｖ１が検証対象グループＧｔａｇ内のいずれかの検証対象データ内に配置される場合の検証対象データのデータ構造について説明する。
【００５５】
この場合、検証対象データは、検証対象部を格納する第１データ領域と、第１検証情報Ｉｖ１を配置可能な第２データ領域と、を有する。そして、配置候補情報６Ａには、配置候補として、検証対象データの第２データ領域がそれぞれ指定されている。そして、配置装置１Ａは、配置候補情報６Ａにおいて配置候補と対応付けられた候補インデックスを示す乱数を第１検証情報Ｉｖ１に基づき生成することで、第１検証情報Ｉｖ１を配置すべき検証対象データの第２データ領域を決定し、当該第２データ領域に第１検証情報Ｉｖ１を格納する。この場合、検証対象グループＧｔａｇ内のいずれかの検証対象データの第２データ領域には、第１検証情報Ｉｖ１が内包される。なお、第２データ領域が複数のデータ領域を含み、これらのいずれのデータ領域に第１検証情報Ｉｖ１を配置するか決定する場合については、第２実施形態において詳細に説明する。上記説明において、第１データ領域は、本開示における「検証対象データ領域」の一例であり、第２データ領域は、本開示における「オプション領域」の一例である。
【００５６】
［変形例］
次に、第１実施形態に好適な変形例について説明する。
【００５７】
（変形例１−１）
配置装置１Ａは、配置候補情報６Ａに記録された配置候補のうち、第１検証情報Ｉｖ１の配置場所以外の配置候補に対し、第１検証情報Ｉｖ１と異なるダミー情報を配置してもよい。
【００５８】
図９は、本変形例における検証処理の概要を示す図である。図９の例では、配置装置１Ａは、乱数生成器８Ａが生成した乱数Ｘを候補インデックスとする配置候補に第１検証情報Ｉｖ１を配置すると共に、配置候補情報６Ａに記録された他の配置候補にダミー情報（図９ではダミー情報Ａ〜Ｄ）を配置する。各ダミー情報は、第１検証情報Ｉｖ１と同一のフォーマットを有し、かつ、ダミー情報であることが第三者に容易に認識されないようにそれぞれ異なる情報となっている。
【００５９】
このように、配置装置１Ａは、ダミー情報を配置することによって、悪意のある第三者により第１検証情報Ｉｖ１の配置場所を推定されにくくすることができる。例えば、各検証対象データ内の所定のデータ領域、又は、各検証対象データを格納する複数のフォルダが配置候補に指定されている場合などに、悪意のある第三者が各検証対象データ同士又は上述のフォルダ同士を比較することにより第１検証情報Ｉｖ１の配置場所が推定されるのを、ダミー情報の配置により好適に抑制することができる。
【００６０】
なお、検証対象データの改ざんが発生した後の検証時には、検証装置１Ｂは、乱数生成器８Ｂが生成する乱数に基づきダミー情報が配置された配置候補から当該ダミー情報を抽出して第２検証情報Ｉｖ２と比較を行う。この場合、ダミー情報と第２検証情報Ｉｖ２とが一致しないことから、検証装置１Ｂは、改ざんの発生を好適に認識することが可能である。
【００６１】
（変形例１−２）
配置装置１Ａは、第１検証情報Ｉｖ１から配置候補を特定するためのインデックスを算出する代わりに、各検証対象データの検証対象部から上述のインデックスを算出してもよい。
【００６２】
この場合、乱数生成器８Ａ及び乱数生成器８Ｂは、各検証対象データの検証対象部が入力された場合に、配置候補を特定するための候補インデックスを示す乱数を出力する。この場合であっても、第１検証情報Ｉｖ１の配置場所は、いずれかの検証対象データが改ざんされた場合に変動する。よって、検証装置１Ｂは、検証時において、各検証対象データの検証対象部を入力とする乱数生成器８Ｂの出力により特定した配置候補での第１検証情報Ｉｖ１の有無により、改ざんの発生を好適に認識することができる。
【００６３】
＜第２実施形態＞
第２実施形態は、第１実施形態における検証対象データをＤＩＣＯＭ形式のデータ（「ＤＩＣＯＭデータ」とも呼ぶ。）とした場合の応用例である。
【００６４】
［概略構成］
図１０は、第２実施形態に係る検証システム１００の構成を示す。第２実施形態では、ＤＩＣＯＭの１つの属性であるシリーズ（Ｓｅｒｉｅｓ）が同一となるＤＩＣＯＭデータを検証対象グループＧｔａｇとしている。また、検証対象グループＧｔａｇに含まれる各ＤＩＣＯＭデータは、画像データとする。本第２実施形態ではＤＩＣＯＭ画像データだけを対象とする。各ＤＩＣＯＭデータ内の画像情報を表すピクセルデータを、本第２実施形態の検証対象部とする。そして、配置装置１Ａは、検証対象グループＧｔａｇ内の全てのＤＩＣＯＭデータのピクセルデータに基づき電子署名を生成し、いずれかのＤＩＣＯＭデータ内の未使用タグで指定された領域に格納する。また、検証装置１Ｂは、検証対象グループＧｔａｇ内の全てのＤＩＣＯＭデータのピクセルデータに基づき電子署名の配置場所を特定し、当該電子署名を用いて検証対象グループＧｔａｇ内のＤＩＣＯＭデータの真正性を検証する。
【００６５】
図１１は、ＤＩＣＯＭデータのデータ構造例を示す。図１１に示すように、ＤＩＣＯＭデータは、４桁のグループ番号と４桁のエレメント番号からなるインデックス（単に「タグ番号」とも呼ぶ。）が割り当てられた複数のタグ（Ｔａｇ）を有している。例えば、（７ＦＥ０、００１０）のタグには、ピクセルデータが格納されている。そして、（００００、０００１）から（ＦＦＦＦ、ＦＦＦＦ）までのタグ番号うち、使用されるタグ番号はファイル種ごとに定められている。以後では、データが格納されていない未使用のタグを「未使用タグ」と呼び、未使用タグのタグ番号を「未使用タグ番号」とも呼ぶ。
【００６６】
図１２は、第２実施形態における配置装置１Ａのブロック構成を示す。図１２に示すように、配置装置１Ａは、第１実施形態と同様、記憶部３Ａと、通信部４Ａと、制御部５Ａとを含む。記憶部３Ａは、配置候補情報６Ａと、電子署名を生成するための暗号用鍵９Ａと、乱数生成器８Ａが生成する乱数のシード（種）を決定するために使用する値「α」及び値「β」とを記憶する。第２実施形態における配置候補情報６Ａは、配置候補となる各未使用タグ番号と、各未使用タグ番号に割り当てられた通し番号であるインデックスとを対応付けた情報であり、詳細は後述する。制御部５Ａは、第１実施形態と同様、検証情報生成器７Ａと、乱数生成器８Ａとを有する。検証情報生成器７Ａと乱数生成器８Ａの処理の詳細は後述する。
【００６７】
図１３は、第２実施形態における検証装置１Ｂのブロック構成を示す。図１３に示すように、検証装置１Ｂは、第１実施形態と同様、記憶部３Ｂと、通信部４Ｂと、制御部５Ｂとを含む。記憶部３Ｂは、配置候補情報６Ａと同一内容を示す配置候補情報６Ｂと、電子署名を復号するための復号用鍵９Ｂと、乱数生成器８Ｂが生成する乱数のシード（種）を決定するために使用する値α及び値βとを記憶する。制御部５Ｂは、第２実施形態と同様、検証情報生成器７Ｂと、乱数生成器８Ｂとを有する。検証情報生成器７Ｂと乱数生成器８Ｂの処理の詳細は後述する。
【００６８】
［電子署名の生成及び配置］
図１４は、第２実施形態において配置装置１Ａが実行する電子署名の生成及び配置に関する処理の概要を示す図である。ここでは、配置装置１Ａは、乱数生成器８Ａとして、２〜ｎまでの値を出力する乱数生成器８Ａａと、１〜ｍまでの値を出力する乱数生成器８Ａｂとを有する。なお、「ｎ」は、対象のＤＩＣＯＭシリーズに属するＤＩＣＯＭデータの数と等しく、「ｍ」は、各ＤＩＣＯＭデータ内の未使用タグの数と等しい。以後において、「ＤＩＣＯＭデータ１」〜「ＤＩＣＯＭデータｎ」にそれぞれ付された通し番号「１」〜「ｎ」を「ＤＩＣＯＭ番号」とも呼ぶ。
【００６９】
まず、配置装置１Ａの検証情報生成器７Ａは、検証対象グループＧｔａｇである所定のＤＩＣＯＭシリーズに属する「ＤＩＣＯＭデータ１」〜「ＤＩＣＯＭデータｎ」のピクセルデータを入力とし、所定のアルゴリズムを実行することで、ハッシュ値「Ｖｈ１」を生成する。このハッシュ値Ｖｈ１は、第１検証情報Ｉｖ１に相当する。そして、配置装置１Ａは、ハッシュ値Ｖｈ１に対して暗号用鍵９Ａにより暗号化を行うことで、電子署名「Ｓｇ」を生成する。
【００７０】
さらに、配置装置１Ａは、ハッシュ値Ｖｈ１に基づき電子署名Ｓｇの配置場所を決定する。ここでは、電子署名Ｓｇの配置場所として、電子署名Ｓｇを付加するＤＩＣＯＭデータと、ＤＩＣＯＭデータ内に格納すべき未使用タグ番号とをそれぞれ決定する。
【００７１】
まず、配置装置１Ａは、ハッシュ値Ｖｈ１に値αを加えた値を乱数生成器８Ａａに入力することで、２〜ｎのいずれかとなる乱数「Ｘ１」を取得する。そして、配置装置１Ａは、乱数Ｘ１に対応するＤＩＣＯＭ番号となる「ＤＩＣＯＭデータＸ１」を、電子署名Ｓｇを付加する対象として決定する。なお、本実施形態では、後述するように、検証装置１Ｂは、「ＤＩＣＯＭデータ１」を参照して電子署名Ｓｇ付加前のＤＩＣＯＭデータ内の未使用タグを認識する。よって、電子署名Ｓｇを付加する対象から「ＤＩＣＯＭデータ１」を除外するため、乱数生成器８Ａａは、１を出力しないように構成されている。なお、配置装置１Ａは、値αを用いて乱数生成器８Ａａのシードを生成する場合、ハッシュ値Ｖｈ１に値αを加算する代わりに、ハッシュ値Ｖｈ１と値αとの論理演算を行うことで乱数生成器８Ａａのシードを生成してもよく、その他の方法により乱数生成器８Ａａのシードを生成してもよい。
【００７２】
さらに、配置装置１Ａは、ハッシュ値Ｖｈ１に値αとは異なる値βを加えた値を乱数生成器８Ａｂに入力することで、１〜ｍのいずれかとなる乱数「Ｘ２」を取得する。このように、配置装置１Ａは、ハッシュ値Ｖｈ１に対して値αとは異なる値βを加算した値を乱数生成器８Ａｂのシードとし、乱数生成器８Ａａのシードと乱数生成器８Ａｂのシードとを異ならせる。そして、配置装置１Ａは、ＤＩＣＯＭデータにおいてＸ２番目の未使用タグを電子署名Ｓｇの格納場所として決定する。なお、配置装置１Ａは、値βを用いて乱数生成器８Ａｂのシードを生成する場合、ハッシュ値Ｖｈ１に値βを加算する代わりに、ハッシュ値Ｖｈ１と値βとの論理演算を行うことで乱数生成器８Ａｂのシードを生成してもよく、その他の方法により乱数生成器８Ａｂのシードを生成してもよい。
【００７３】
ここで、電子署名Ｓｇを格納するタグについて図１５を参照して詳しく説明する。図１５（Ａ）は、未使用タグを破線により明示した「ＤＩＣＯＭデータ１」のデータ構造を示す。
【００７４】
まず、配置装置１Ａは、乱数生成器８Ａａによる乱数生成前において、「ＤＩＣＯＭデータ１」の未使用タグに対して通し番号を対応付け、当該通し番号と対応する未使用タグ番号とを対応付けた配置候補情報６Ａを生成する。ここでは、（００００、０００２）の未使用タグの通し番号が「１」、（００００、０００４）の未使用タグの通し番号が「２」、（ＹＹＹＹ、ＹＹＹＹ）の未使用タグの通し番号がＸ２、（ＦＦＦＦ、ＦＦＦＦ）となる最後尾の未使用タグの通し番号がｍとなる。
【００７５】
次に、配置装置１Ａは、乱数生成器８Ａａによる乱数生成後において、配置候補情報６Ａを参照し、乱数生成器８Ａｂが出力した乱数（ここではＸ２）に対応するタグ番号（ここでは（ＹＹＹＹ、ＹＹＹＹ））を特定する。このように、配置装置１Ａは、ハッシュ値Ｖｈ１に対して値αとは異なる値βを加算した値を乱数生成器８Ａｂのシードとし、乱数生成器８Ａａのシードと乱数生成器８Ａａのシードとを異ならせることで、悪意ある第三者による解析に対するセキュリティ強度を好適に高めることができる。
【００７６】
そして、配置装置１Ａは、乱数生成器８Ａａが取得した乱数Ｘ１に対応するＤＩＣＯＭ番号Ｘ１のＤＩＣＯＭデータである「ＤＩＣＯＭデータＸ１」のタグ（ＹＹＹＹ、ＹＹＹＹ）に電子署名Ｓｇを格納する。図１５（Ｂ）は、電子署名Ｓｇが付加された後の「ＤＩＣＯＭデータＸ１」のデータ構造を示す。図１５（Ｂ）では、未使用タグは明示されていない。図１５（Ｂ）に示すように、インデックス（ＹＹＹＹ、ＹＹＹＹ）のタグには、電子署名Ｓｇが格納される。
【００７７】
図１６は、第２実施形態における電子署名Ｓｇの生成及び配置に関する処理手順を示すフローチャートである。
【００７８】
まず、配置装置１Ａは、検証対象グループＧｔａｇとなるＤＩＣＯＭシリーズを読み込む（ステップＳ３１）。そして、配置装置１Ａは、読み込んだＤＩＣＯＭシリーズ内の各ＤＩＣＯＭデータの検証対象部（前述の例ではピクセルデータ）からハッシュ値Ｖｈ１を生成する（ステップＳ３２）。そして、配置装置１Ａは、暗号用鍵９Ａを用いて電子署名Ｓｇを生成する（ステップＳ３３）。
【００７９】
次に、配置装置１Ａは、電子署名Ｓｇを配置するＤＩＣＯＭ番号を決定する（ステップＳ３４）。この場合、配置装置１Ａは、例えば、ハッシュ値Ｖｈ１と値αとの加算値を乱数生成器８Ａａに入力することで得られた乱数を、電子署名Ｓｇを配置するＤＩＣＯＭ番号として認識する。
【００８０】
さらに、配置装置１Ａは、電子署名Ｓｇを配置する未使用タグを決定する（ステップＳ３５）。この場合、配置装置１Ａは、例えば、ハッシュ値Ｖｈ１と値βとの加算値を乱数生成器８Ａｂに入力することで得られた乱数を、電子署名Ｓｇを配置すべきタグを示す未使用タグの通し番号とみなすことで、電子署名Ｓｇを配置する未使用タグを決定する。そして、配置装置１Ａは、ステップＳ３４で決定したＤＩＣＯＭ番号のＤＩＣＯＭデータの未使用タグのうち、ステップＳ３５で決定した未使用タグに電子署名Ｓｇを配置する（ステップＳ３６）。
【００８１】
［真正性の検証］
図１７は、第２実施形態におけるＤＩＣＯＭデータの真正性の検証の概要を示す図である。
【００８２】
まず、検証装置１Ｂの検証情報生成器７Ｂは、検証対象グループＧｔａｇである所定のＤＩＣＯＭシリーズに属する「ＤＩＣＯＭデータ１」〜「ＤＩＣＯＭデータｎ」のピクセルデータを入力とし、所定のアルゴリズムを実行することで、ハッシュ値「Ｖｈ２」を生成する。このハッシュ値Ｖｈ２は、第１実施形態における第２検証情報Ｉｖ２に相当する。
【００８３】
次に、検証装置１Ｂは、ハッシュ値Ｖｈ２に基づき電子署名Ｓｇの配置場所を特定する。ここでは、電子署名Ｓｇの配置場所として、電子署名Ｓｇを付加するＤＩＣＯＭデータと、ＤＩＣＯＭデータ内に格納すべき未使用タグ番号とをそれぞれ特定する。まず、検証装置１Ｂは、ハッシュ値Ｖｈ２に値αを加えた値を乱数生成器８Ｂａに入力することで、２〜ｎのいずれかとなる乱数「Ｙ１」を取得する。なお、乱数生成器８Ｂａは、乱数生成器８Ａａと同一アルゴリズムを実行し、同一の入力に対して乱数生成器８Ａａと同一の出力を行う。そして、検証装置１Ｂは、乱数Ｙ１に対応するＤＩＣＯＭ番号となる「ＤＩＣＯＭデータＹ１」を、電子署名Ｓｇを付加する対象として決定する。さらに、検証装置１Ｂは、ハッシュ値Ｖｈ２に値αとは異なる値βを加えた値を乱数生成器８Ｂｂに入力することで、１〜ｍのいずれかとなる乱数「Ｙ２」を取得する。なお、乱数生成器８Ｂｂは、乱数生成器８Ａｂと同一アルゴリズムを実行し、同一の入力に対して乱数生成器８Ａｂと同一の出力を行う。さらに、検証装置１Ｂは、「ＤＩＣＯＭデータ１」の未使用タグに対して通し番号を対応付け、当該通し番号と対応する未使用タグ番号とを対応付けた配置候補情報６Ｂを生成する。
【００８４】
そして、検証装置１Ｂは、配置候補情報６Ｂを参照し、乱数生成器８Ｂｂが出力した乱数Ｙ２に対応するタグのインデックスを特定する。そして、検証装置１Ｂは、乱数生成器８Ｂａが取得した乱数Ｙ１に対応するＤＩＣＯＭ番号Ｙ１のＤＩＣＯＭデータである「ＤＩＣＯＭデータＹ１」のタグのうち、乱数Ｙ２と同一のタグ番号のタグに格納されたデータを電子署名Ｓｇとして抽出する。ここで、乱数Ｘ１と乱数Ｙ１、乱数Ｘ２と乱数Ｙ２とがそれぞれ等しい場合、検証装置１Ｂは、配置装置１Ａが配置した電子署名Ｓｇを適切に抽出することができる。そして、検証装置１Ｂは、電子署名Ｓｇを復号用鍵９Ｂにより復号することでハッシュ値Ｖｈ１を取得し、検証情報生成器７Ｂが出力したハッシュ値Ｖｈ２と比較検証を行う。
【００８５】
ここで、検証対象グループＧｔａｇであるＤＩＣＯＭシリーズに含まれるＤＩＣＯＭデータのピクセルデータのうち少なくともいずれかに改ざんが発生した場合、検証情報生成器７Ｂが出力するハッシュ値Ｖｈ２は、改ざん発生前に検証情報生成器７Ａが出力したハッシュ値Ｖｈ１と異なる値になる。よって、この場合、乱数生成器８Ｂａが出力する乱数Ｙ１と乱数生成器８Ａａが出力する乱数Ｘ１とが異なる値となり、かつ、乱数生成器８Ｂｂが出力する乱数Ｙ２と乱数生成器８Ａｂが出力する乱数Ｘ２とが異なる値となる。よって、この場合、検証装置１Ｂは、配置装置１Ａが電子署名Ｓｇを配置したタグと異なる未使用タグを電子署名Ｓｇの配置場所として参照することとなる。この場合、検証装置１Ｂは、参照したタグにデータが存在しないことから、検証対象グループＧｔａｇであるＤＩＣＯＭシリーズに含まれるＤＩＣＯＭデータのピクセルデータのうち少なくともいずれかに改ざんが発生したことを認識することができる。
【００８６】
図１８は、第２実施形態におけるデータ検証の手順を示すフローチャートである。
【００８７】
まず、検証装置１Ｂは、検証対象グループＧｔａｇとなるＤＩＣＯＭシリーズを読み込む（ステップＳ４１）。そして、検証装置１Ｂは、読み込んだＤＩＣＯＭシリーズ内の各ＤＩＣＯＭデータの検証対象部（ここではピクセルデータ）からハッシュ値Ｖｈ２を生成する（ステップＳ４２）。
【００８８】
次に、検証装置１Ｂは、電子署名Ｓｇが配置されたＤＩＣＯＭ番号を特定する（ステップＳ４３）。この場合、検証装置１Ｂは、例えば、ハッシュ値Ｖｈ２と値αとの加算値を乱数生成器８Ｂａに入力することで得られた乱数を、電子署名Ｓｇが配置されたＤＩＣＯＭ番号として認識する。さらに、検証装置１Ｂは、電子署名Ｓｇが配置されたタグを特定する（ステップＳ４４）。この場合、検証装置１Ｂは、例えば、ハッシュ値Ｖｈ２と値βとの加算値を乱数生成器８Ｂｂに入力することで得られた乱数を、電子署名Ｓｇが配置されたタグを示す未使用タグの通し番号とみなす。
【００８９】
そして、検証装置１Ｂは、ステップＳ４３で特定したＤＩＣＯＭ番号のＤＩＣＯＭデータを参照し、ステップＳ４４で特定したタグから電子署名Ｓｇが取得できたか否か判定する（ステップＳ４５）。そして、検証装置１Ｂは、電子署名Ｓｇを取得できた場合（ステップＳ４５；Ｙｅｓ）、電子署名Ｓｇを復号用鍵９Ｂにより復号することでハッシュ値Ｖｈ１を取得する（ステップＳ４６）。そして、検証装置１Ｂは、ステップＳ４６で取得したハッシュ値Ｖｈ１とステップＳ４２で生成したハッシュ値Ｖｈ２とを比較する（ステップＳ４７）。この場合、検証装置１Ｂは、ハッシュ値Ｖｈ１とハッシュ値Ｖｈ２が同一の場合には、対象のＤＩＣＯＭシリーズの各ＤＩＣＯＭデータの真正性を確認できたと判断する。一方、検証装置１Ｂは、特定した配置場所から電子署名Ｓｇを取得できなかった場合（ステップＳ４５；Ｎｏ）、対象のＤＩＣＯＭシリーズの少なくともいずれかのＤＩＣＯＭデータに改ざんが発生したと判断する。
【００９０】
［データ構造］
次に、検証対象グループＧｔａｇに属するＤＩＣＯＭデータのデータ構造について、図１１及び図１５を参照して補足説明する。
【００９１】
検証対象グループＧｔａｇ内のＤＩＣＯＭデータは、検証対象部であるピクセルデータを格納する第１データ領域（図１１では（７ＦＥ０、００１０）のタグに対応するデータ領域）と、図１５（Ａ）の破線枠により示された未使用タグに対応する第２データ領域とを含んでいる。第２実施形態では、第２データ領域は、図１５（Ａ）に示されるように、複数のデータ領域を有している。そして、図１５（Ｂ）に示すように、乱数生成器８Ａａが出力する乱数Ｘ１に対応する「ＤＩＣＯＭデータＸ１」の第２データ領域のいずれか１つのデータ領域には、第１検証情報Ｉｖ１に相当するハッシュ値Ｖｈ１が暗号化された電子署名Ｓｇが配置される。この場合、配置装置１Ａは、ハッシュ値Ｖｈ１と値βとの加算値を乱数生成器８Ａｂに入力することで得られた乱数に基づき、電子署名Ｓｇを配置するデータ領域を定める未使用タグを決定し、当該未使用タグに対応するデータ領域に電子署名Ｓｇを格納する。
【００９２】
［変形例］
次に、第２実施形態に好適な変形例について説明する。
【００９３】
（変形例２−１）
配置装置１Ａは、電子署名Ｓｇを配置しなかった未使用タグのうち少なくともいずれかに電子署名Ｓｇとは異なるダミー情報を配置してもよい。
【００９４】
例えば、配置装置１Ａは、電子署名Ｓｇを配置しなかったＤＩＣＯＭデータのそれぞれに対し、いずれかの未使用タグにダミー情報を配置する。この場合、例えば、配置装置１Ａは、電子署名Ｓｇが配置されたタグ番号が容易に推定されるのを防ぐため、電子署名Ｓｇを配置したタグ番号とは異なるタグ番号を無作為に選択してダミー情報を配置する。このように、配置装置１Ａは、電子署名Ｓｇを配置していない各ＤＩＣＯＭデータのいずれかの未使用タグにダミー情報を付加することで、対象のＤＩＣＯＭシリーズの各ＤＩＣＯＭデータを比較することにより電子署名Ｓｇの配置場所が容易に推定されるのを好適に抑制することができる。
【００９５】
（変形例２−２）
図１０に示す第２実施形態のデータ管理システム１００の構成では、検証対象グループＧｔａｇを構成するＤＩＣＯＭデータの各々はそれぞれピクセルデータを検証対象部として含む同一種類のファイルであるＤＩＣＯＭ画像データであった。これに代えて、検証対象グループＧｔａｇを構成するＤＩＣＯＭデータは、レポートデータ等の異なる種類のファイルであってもよい。
【００９６】
図１９は、本変形例に係る検証対象グループＧｔａｇの構成例を示す。図１９の例では、検証対象グループＧｔａｇは、ある患者（患者Ａ）に関連するＤＩＣＯＭデータから構成される。この場合、例えば、検証対象グループＧｔａｇを構成する各ＤＩＣＯＭデータは、患者Ａの患者ＩＤなどを含んでおり、かつ、ピクセルデータを検証対象部として含むＤＩＣＯＭデータの他に、ピクセルデータ以外のデータ（例えばテキストデータ）を検証対象部として含むＤＩＣＯＭデータが存在する。この場合、例えば、配置装置１Ａは、第１実施形態と同様、配置候補情報６Ａを予め記憶しておき、各ＤＩＣＯＭデータの検証対象部に基づき乱数生成器８Ａが出力する乱数を候補インデックスとする配置候補に電子署名Ｓｇを配置する。このように、ＤＩＣＯＭシリーズ以外のグループを検証対象グループＧｔａｇとして選定してもよく、検証対象グループＧｔａｇを構成する各ＤＩＣＯＭデータが異なるファイル種類であってもよい。
【００９７】
（変形例２−３）
配置装置１Ａは、ハッシュ値Ｖｈ１から電子署名Ｓｇの配置場所を決定する代わりに、各ＤＩＣＯＭデータの検証対象部から電子署名Ｓｇの配置場所を決定してもよい。
【００９８】
この場合、例えば、乱数生成器８Ａａは、各ＤＩＣＯＭデータの検証対象部に基づき生成されたシードが入力された場合に、電子署名Ｓｇを配置するＤＩＣＯＭ番号を示す２〜ｎの乱数を出力し、乱数生成器８Ａｂは、各ＤＩＣＯＭデータの検証対象部に基づき生成されたシードが入力された場合に、電子署名Ｓｇを格納するタグ番号を特定するための１〜ｍの乱数を出力する。また、検証装置１Ｂは、配置装置１Ａと同様、ハッシュ値Ｖｈ２から電子署名Ｓｇの配置場所を決定する代わりに、各ＤＩＣＯＭデータの検証対象部から電子署名Ｓｇの配置場所を決定する。
【符号の説明】
【００９９】
１Ａ…配置装置
１Ｂ…検証装置
３Ａ、３Ｂ…記憶部
４Ａ、４Ｂ…通信部
５Ａ、５Ｂ…制御部
６Ａ、６Ｂ…配置候補情報
７Ａ、７Ｂ…検証情報生成器
８Ａ、８Ｂ…乱数生成器
【図１】
2019197470.tif 000003
【図２】
2019197470.tif 000004
【図３】
2019197470.tif 000005
【図４】
2019197470.tif 000006
【図５】
2019197470.tif 000007
【図６】
2019197470.tif 000008
【図７】
2019197470.tif 000009
【図８】
2019197470.tif 000010
【図９】
2019197470.tif 000011
【図１０】
2019197470.tif 000012
【図１１】
2019197470.tif 000013
【図１２】
2019197470.tif 000014
【図１３】
2019197470.tif 000015
【図１４】
2019197470.tif 000016
【図１５】
2019197470.tif 000017
【図１６】
2019197470.tif 000018
【図１７】
2019197470.tif 000019
【図１８】
2019197470.tif 000020
【図１９】
2019197470.tif 000021