(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-08
(45)【発行日】2023-11-16
(54)【発明の名称】管理プログラム、管理装置および管理方法
(51)【国際特許分類】
G06F 21/64 20130101AFI20231109BHJP
G06F 21/62 20130101ALI20231109BHJP
【FI】
G06F21/64
G06F21/62 318
(21)【出願番号】P 2020028779
(22)【出願日】2020-02-21
【審査請求日】2022-11-17
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】清水 智弘
(72)【発明者】
【氏名】中川 格
(72)【発明者】
【氏名】伊藤 章
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2019-153251(JP,A)
【文献】特許第6521170(JP,B1)
【文献】特開2019-174995(JP,A)
【文献】米国特許出願公開第2019/0278758(US,A1)
【文献】国際公開第2018/225428(WO,A1)
【文献】松原 正純,業種業界を越えたデータ流通の信頼性を向上させるChain Data Lineage,FUJITSU Vol.70 No.4 ,2019年09月,第70巻,p.55-62
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
データの加工内容を含む加工履歴がチェーン結合によりリンクするデータ加工系列を生成し、
前記データ加工系列のうちからアクセス制限の対象とする第1の加工履歴を設定し、
前記第1の加工履歴に対応する、公開可能な第2の加工履歴を生成し、
前記第2の加工履歴を前記データ加工系列にチェーン結合し、
前記第1の加工履歴と前記第2の加工履歴とにチェーン結合する第3の加工履歴を生成する、
処理を実行させる管理プログラム。
【請求項2】
前記処理は、
前記第1の加工履歴にアクセス権を設け、
前記アクセス権の所有者には前記第1の加工履歴を公開し、前記アクセス権の非所有者には前記第1の加工履歴を非公開とし、
前記第1の加工履歴から前記アクセス制限の非対象となる情報を抽出して前記第2の加工履歴を生成する、
請求項1記載の管理プログラム。
【請求項3】
前記処理は、前記データの属性が含まれる存在履歴および前記加工履歴から算出した各固有値を結合して、前記存在履歴と前記加工履歴をリンクさせた前記データ加工系列を生成し、
前記第1の加工履歴の入力となる前記存在履歴の固有値を含む前記第2の加工履歴を生成して、前記第2の加工履歴を前記データ加工系列にチェーン結合する、
請求項1記載の管理プログラム。
【請求項4】
前記処理は、
第1のデータの属性を含む第1の存在履歴を生成して、前記第1の存在履歴の第1の固有値を前記第1の存在履歴に付与し、
前記第1のデータに加工を行って第2のデータを生成し、
前記加工の履歴として、前記第1の固有値を格納する前記第1の加工履歴を生成して、前記第1の加工履歴の第2の固有値を前記第1の加工履歴に付与し、
前記第2の固有値を格納する、前記第2のデータの属性を含む第2の存在履歴を生成して、前記第2の存在履歴の第3の固有値を前記第2の存在履歴に付与し、
前記第1の加工履歴を前記アクセス制限の対象に設定し、
前記第1の固有値を格納する、前記第1の加工履歴に対応する前記第2の加工履歴を生成して、前記第2の加工履歴の第4の固有値を前記第2の加工履歴に付与する、
請求項3記載の管理プログラム。
【請求項5】
前記処理は、
前記第2のデータの第5の固有値と、前記第4の固有値とを格納する第3の存在履歴を生成し、前記第3の存在履歴の第6の固有値を前記第3の存在履歴に付与し、
前記第3の固有値と、前記第6の固有値とを格納する前記第3の加工履歴を生成し、前記第3の加工履歴の第7の固有値を前記第3の加工履歴に付与し、
前記第5の固有値と、前記第7の固有値とを格納する第4の存在履歴を生成し、前記第4の存在履歴の第8の固有値を前記第4の存在履歴に付与する、
請求項4記載の管理プログラム。
【請求項6】
前記処理は、前記第1の加工履歴のアクセスを許可する場合は、前記第3の加工履歴に格納されている前記第3の固有値にもとづいて、前記第2の存在履歴に接続するリンクを選択し、前記第2の加工履歴を公開する場合は、前記第3の加工履歴に格納されている前記第6の固有値にもとづいて、前記第3の存在履歴に接続するリンクを選択する、
請求項5記載の管理プログラム。
【請求項7】
前記処理は、前記第1の加工履歴が含まれるデータ加工範囲に包含される包含範囲を設定し、
前記包含範囲に含まれるアクセス制限の対象とする第4の加工履歴に対応する、前記アクセス制限の非対象の第5の加工履歴を生成し、
前記第5の加工履歴を前記データ加工範囲にチェーン結合し、
前記第1の加工履歴、前記第2の加工履歴および前記第5の加工履歴にチェーン結合する第6の加工履歴を生成する、
請求項1記載の管理プログラム。
【請求項8】
前記処理は、前記データ加工系列のうちの第1の端点に位置する前記存在履歴または前記加工履歴と、第2の端点に位置する前記存在履歴または前記加工履歴とを指定して、前記第1の端点および前記第2の端点に挟まれる範囲を前記第1の加工履歴が含まれるデータ加工範囲として設定する請求項3記載の管理プログラム。
【請求項9】
データの加工内容を含む加工履歴がチェーン結合によりリンクするデータ加工系列を生成し、前記データ加工系列のうちからアクセス制限の対象とする第1の加工履歴を設定し、前記第1の加工履歴に対応する、公開可能な第2の加工履歴を生成し、前記第2の加工履歴を前記データ加工系列にチェーン結合し、前記第1の加工履歴と前記第2の加工履歴とにチェーン結合する第3の加工履歴を生成する制御部、
を有する管理装置。
【請求項10】
コンピュータが、
データの加工内容を含む加工履歴がチェーン結合によりリンクするデータ加工系列を生成し、
前記データ加工系列のうちからアクセス制限の対象とする第1の加工履歴を設定し、
前記第1の加工履歴に対応する、公開可能な第2の加工履歴を生成し、
前記第2の加工履歴を前記データ加工系列にチェーン結合し、
前記第1の加工履歴と前記第2の加工履歴とにチェーン結合する第3の加工履歴を生成する、
管理方法。
【請求項11】
コンピュータに、
データの属性が含まれる存在履歴と、前記データの加工内容が含まれる加工履歴とを生成し、前記存在履歴および前記加工履歴から算出した各固有値を結合して、前記存在履歴と前記加工履歴をリンクさせたデータ加工系列を生成し、
前記データ加工系列に含まれる前記加工履歴に対して、アクセス制限の対象となる加工情報を含む秘密加工履歴と、アクセス制限の非対象となる公開可能な加工情報を含む公開加工履歴とを生成
し、
前記データ加工系列に含まれる前記加工履歴に対して、前記秘密加工履歴をチェーン結合させ、かつ前記公開加工履歴をチェーン結合させる、
処理を実行させる管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、管理プログラム、管理装置および管理方法に関する。
【背景技術】
【0002】
日々膨大に生成されるデータに対して、データを記録・保管して解析し、データ資産として管理するデータガバナンスと呼ばれる取り組みが注目されている。データガバナンスでは、データの生成・蓄積・公開・利用に係わる管理の在り方が規定されて統制される。また、データガバナンスを構築する際には、データがどのような加工をどこでされてきたか等の加工履歴を参照できることが求められている。
【0003】
関連する技術としては、例えば、ユーザデータが格納されたリーフノードと、リーフノードのハッシュ値を含むハッシュノードとの依存関係を含むグラフを管理して、開示範囲を限定して検証する技術が提案されている。また、分散台帳に格納されたトランザクションの内容に応じて実行したスマートコントラクトの結果にもとづいて、分散台帳へのデータアクセスの権限管理を行う技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-195907号公報
【文献】特開2019-74910号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
データの加工履歴は、他者からの改ざんが検証できるように、加工履歴のハッシュ値が結合されたハッシュチェーンでリンク付けされて管理されている。一方、データの加工履歴は、企業等のデータ加工のノウハウが含まれるため、秘密にしたい加工履歴にはアクセス制限を設けて、アクセス権の非所有者には非公開にしている。
【0006】
しかし、加工履歴のアクセスを制限すると、例えば、制限された履歴より以前の加工履歴の改ざん検証が困難になる場合がある。信頼性の高いデータガバナンスを構築する上では、アクセス制限によって非公開対象とした加工履歴を開示することなく、改ざん検証を行うことができる技術が要望されている。
【0007】
1つの側面では、本発明は、非公開対象とした加工履歴を開示することなく、改ざん検証を可能にした管理プログラム、管理装置および管理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、管理プログラムが提供される。管理プログラムは、コンピュータに、データの加工内容を含む加工履歴がチェーン結合によりリンクするデータ加工系列を生成し、データ加工系列のうちからアクセス制限の対象とする第1の加工履歴を設定し、第1の加工履歴に対応する、公開可能な第2の加工履歴を生成し、第2の加工履歴をデータ加工系列にチェーン結合し、第1の加工履歴と第2の加工履歴とにチェーン結合する第3の加工履歴を生成する、処理を実行させる。
【0009】
また、上記課題を解決するために、上記管理プログラムと同様の制御を実行する管理装置が提供される。
さらに、上記課題を解決するために、コンピュータが上記管理プログラムと同様の制御を実行する管理方法が提供される。
【発明の効果】
【0010】
1側面によれば、非公開対象とした加工履歴を開示することなく、改ざん検証を行うことができる。
【図面の簡単な説明】
【0011】
【
図3】履歴データとハッシュ値の一例を示す図である。
【
図4】履歴データのリンクを説明するための図である。
【
図5】ハッシュIDと履歴データとの対応関係の一例を示す図である。
【
図6】履歴データとハッシュ値の表記例を説明するための図である。
【
図7】アクセス制限を可能にする履歴リンクを説明するための図である。
【
図8】管理装置の機能ブロックの一例を示す図である。
【
図9】管理装置のハードウェアの一例を示す図である。
【
図10】アクセス制限を可能にする履歴リンクを説明するための図である。
【
図11】簡略加工履歴の生成動作の一例を示すフローチャートである。
【
図12】簡略加工履歴の生成の一例を示す図である。
【
図13】簡略加工履歴の生成の一例を示す図である。
【
図14】アクセス制限対象の指定範囲の自動設定の一例を示す図である。
【
図15】アクセス制限を可能にする履歴生成の変形例を説明するための図である。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は管理装置の一例を説明するための図である。管理装置1aは、制御部1a1と記憶部1a2を備える。制御部1a1は、データの加工内容を含む加工履歴がチェーン結合によりリンクするデータ加工系列を生成し、データ加工系列のうちからアクセス制限の対象とする第1の加工履歴が含まれる第1のデータ加工範囲を設定する。
【0013】
また、制御部1a1は、第1の加工履歴に対応する、アクセス制限の非対象の第2の加工履歴を生成する。さらに、制御部1a1は、第2の加工履歴が含まれる第2のデータ加工範囲をデータ加工系列にチェーン結合し、第1のデータ加工範囲と第2のデータ加工範囲とにチェーン結合する第3の加工履歴を含む履歴情報を生成する。
【0014】
記憶部1a2は、データ加工系列のデータ構造や履歴情報を保持する。なお、制御部1a1の機能は、管理装置1aが備える図示しないプロセッサが、所定のプログラムを実行することによって実現される。
【0015】
図1に示す例にもとづいて動作について説明する。なお、チェーン結合する際には、固有値が結合される。固有値としては例えば、ハッシュ値を使用できる。以降の説明では固有値をハッシュ値と呼ぶ。
【0016】
〔ステップS1〕制御部1a1は、データの属性を含む存在履歴1、3、およびデータの加工内容を含む加工履歴2を、ハッシュ値にもとづくチェーン結合によりリンクさせてデータ加工系列ch1を生成する。
【0017】
存在履歴1は、入力データの属性を含む。加工履歴2は、入力データを加工したときの加工内容を含む。存在履歴3は、入力データが加工された結果データの属性を含む。また、制御部1a1は、存在履歴1、3および加工履歴2の各ハッシュ値を算出し、ハッシュ値を介したチェーン結合を行って時系列に沿ったデータ加工系列ch1を生成する。
【0018】
〔ステップS2〕制御部1a1は、データ加工系列ch1のうちで、アクセス制限の対象とする加工履歴2(第1の加工履歴)が含まれるデータ加工範囲H1を設定する。
〔ステップS3〕制御部1a1は、データ加工範囲H1に含まれる加工履歴2に対応する、アクセス制限の非対象の加工履歴4(第2の加工履歴)を生成する。
【0019】
〔ステップS4〕制御部1a1は、加工履歴4が含まれるデータ加工範囲H2をデータ加工系列ch1にチェーン結合する。
〔ステップS5〕制御部1a1は、データ加工範囲H1およびデータ加工範囲H2にチェーン結合する加工履歴5(第3の加工履歴)を含み、データ加工範囲H1またはデータ加工範囲H2のいずれかにアクセスするかを決定するための履歴データ群D0を生成する。履歴データ群D0のうちの加工履歴5は、データ加工範囲H1またはデータ加工範囲H2のいずれにも辿ることができる分岐点の履歴データになる。
【0020】
ここで、制御部1a1は、データ加工系列ch1のうちで、データ加工範囲H1にアクセス権を設け、アクセス権の所有者にはデータ加工範囲H1を公開するが、アクセス権の非所有者にはデータ加工範囲H1を非公開とする。
【0021】
この場合、制御部1a1は、加工履歴2からアクセス制限の非対象となる情報を抽出して公開用にする加工履歴4を生成し、加工履歴4が含まれるデータ加工範囲H2を公開対象にし、データ加工範囲H2をデータ加工系列ch1にチェーン結合する。
【0022】
このように、管理装置1aは、データ加工の履歴がハッシュ値でチェーン結合されたデータ加工系列のうち、アクセス制限した非公開履歴に対応する公開用の履歴を新たに生成してチェーン結合する。これにより、非公開履歴と公開履歴のいずれにも辿れるパスが生成されるので、ハッシュ値のチェーン結合を通じて、公開用の加工履歴を辿ることができる。よって、加工履歴をアクセス制限した場合でも、アクセス制限によって非公開対象とした加工履歴を開示せずに改ざん検証が可能になる。
【0023】
<履歴データ>
図2は履歴データを説明するための図である。履歴データは、存在履歴または加工履歴を含む。図中のDは、データの存在履歴を表し、データの属性情報である。存在履歴としては、例えば、データの作成日やデータの所有者等の情報が相当する。
【0024】
図中のPは、データの加工履歴を表し、データに対して行われた処理に関する情報である。データの加工履歴としては、例えば、どのデータ入力に対して、どのような処理をして、どのような出力が得られたか等の情報が相当する。
【0025】
また、DとPのリンクは、グラフ構造で表現される。グラフg1の例では、処理Pは、左側にある入力Dに対して処理を行い、右側にある出力Dを生成することを示している。
データの多重度については、例えば、UML(Unified Modeling Language)の表記を使うことができる。図中に示す“*”、“1..*”および“1”は、UMLで表記した多重度を示している。“*”は、0以上であることを示し(0以上の入力Dがあることを示し)、“1..*”は、1以上であることを示す(1以上の出力Dがあることを示す)。“1”は1個であることを示す(処理Pは1入力1出力の処理を行うことを示す)。なお、以降の説明では、存在履歴をデータ履歴と呼ぶ場合がある。また、データ履歴をデータ履歴(D)、加工履歴を加工履歴(P)と表記する場合がある。
【0026】
<ハッシュ値および履歴データのリンク>
図3は履歴データとハッシュ値の一例を示す図である。履歴データd11は、json(JavaScript(登録商標) Object Notation)でデータ構造を表記した例を示している。また、履歴データd11の一連の文字列からハッシュ値が算出される。履歴データd11のハッシュ値は、“ef9d・・・3528b”と算出されている。
【0027】
図4は履歴データのリンクを説明するための図である。履歴データd12は、データ履歴(D)に対応し、履歴データd13は、加工履歴(P)に対応している。また、履歴データd12のハッシュ値は、“ef9d・・・3528b”と算出され、履歴データd13のハッシュ値は、“a236・・・ce94b”と算出されている。
【0028】
ここで、一方の履歴データから他方の履歴データに繋がる経路は、ハッシュID(hashId)のフィールドに記されるハッシュ値を介してリンク付けされる。図の例では、履歴データd12のハッシュIDに記されるハッシュ値は、“a236・・・ce94b”になっている。よって、ハッシュ値が“a236・・・ce94b”である履歴データd13が履歴データd12のリンク先になる。
【0029】
図5はハッシュIDと履歴データとの対応関係の一例を示す図である。テーブルT1は、ハッシュIDと履歴データ(jsonデータ)との対応関係を示している。ハッシュID=ef9d・・・3528bは、リンク先のデータが履歴データd12であること、ハッシュID=a236・・・ce94bは、リンク先のデータが履歴データd13であることが対応付けられている。このようなテーブルT1によって、ハッシュID(ハッシュ値)から履歴データがリンク付けされ、リンクを辿ることができる。
【0030】
<履歴データとハッシュ値の表記>
図6は履歴データとハッシュ値の表記例を説明するための図である。ハッシュ値AをhvAと示す。また、データ履歴(D)および加工履歴(P)を表す枠から出て示されるハッシュ値は履歴データ全体のハッシュ値とする。
【0031】
したがって、図に示す例において、hv0は、データ履歴(D)のハッシュ値であり、hv1は、加工履歴(P)のハッシュ値である。
図4の例に対応させると、hv0は、履歴データd12(データ履歴(D)の履歴データ)のハッシュ値であり、hv0=ef9d・・・3528bである。また、hv1は、履歴データd13(加工履歴(P)の履歴データ)のハッシュ値であり、hv1=a236・・・ce94bである。
【0032】
さらに、データ履歴(D)および加工履歴(P)を表す枠の中に示されるハッシュ値は履歴データに格納されるハッシュ値を示すものとする。したがって、hvaは、データ履歴(D)に格納されるハッシュ値であり、
図4の例に対応させると、hva=ef9d・・・3528bである。また、hv2は、加工履歴(P)に格納されるハッシュ値である。
【0033】
<アクセス制限を可能にする履歴リンク>
図7はアクセス制限を可能にする履歴リンクを説明するための図である。実データd1があり、実データd1に対して加工p1を行って実データd2が生成されるとする。
【0034】
また、実データd2を公開するものとする。このとき、実データd2の公開に伴い、実データd2が生成される詳細な加工の過程については、アクセス制限を設定して、アクセス権の非所有者に対しては非公開にするものとする。さらに、実データd2の詳細な加工過程を簡略化した加工履歴を生成しておき、簡略加工履歴を公開するものとする。
【0035】
以下にアクセス制限を可能にする履歴リンクの生成手順を説明する。なお、点線四角枠に示すハッシュ値は実データのハッシュ値であり、実線四角枠に示すハッシュ値は履歴データのハッシュ値である。
【0036】
〔ステップS101〕制御部1a1は、実データd1のデータ履歴(D)1を生成する。この場合、制御部1a1は、実データd1のハッシュ値“hva”を算出し、ハッシュ値“hva”を格納するデータ履歴(D)1を生成する。そして、制御部1a1は、データ履歴(D)1のハッシュ値“hv0”を算出して、ハッシュ値“hv0”をデータ履歴(D)1に付与する。
【0037】
〔ステップS102〕制御部1a1は、実データd1に加工p1を行って実データd2を生成する。
〔ステップS103a〕制御部1a1は、加工p1の加工履歴(P)2を生成する。この場合、制御部1a1は、データ履歴(D)1のハッシュ値“hv0”を格納する加工履歴(P)2を生成する。そして、制御部1a1は、加工履歴(P)2のハッシュ値“hv1”を算出して、ハッシュ値“hv1”を加工履歴(P)2に付与する。
【0038】
〔ステップS103b〕制御部1a1は、実データd2のデータ履歴(D)3を生成する。この場合、制御部1a1は、実データd2のハッシュ値“hvb”を算出し、実データd2のハッシュ値“hvb”と、加工履歴(P)2のハッシュ値“hv1”とを格納するデータ履歴(D)3を生成する。そして、制御部1a1は、データ履歴(D)3のハッシュ値“hv2”を算出して、ハッシュ値“hv2”をデータ履歴(D)3に付与する。
【0039】
〔ステップS104〕制御部1a1は、ユーザ指示にもとづき、加工履歴(P)2をアクセス制限の対象にする。そして、制御部1a1は、データ加工系列ch1のうちで、アクセス制限の対象とする加工履歴(P)2が含まれるデータ加工範囲H1を設定する。
【0040】
〔ステップS105〕制御部1a1は、データ加工範囲H1に含まれる加工履歴(P)2に対応する、アクセス制限の非対象の加工履歴4(簡略加工履歴(P)4)を生成する。簡略加工履歴(P)4は、加工履歴(P)2からアクセス制限が非対象の内容を抽出し、簡略化して公開可能とした加工履歴である。
【0041】
この場合、制御部1a1は、データ履歴(D)1のハッシュ値“hv0”を含む簡略加工履歴(P)4を生成し、簡略加工履歴(P)4のハッシュ値“hv3”を算出する。そして、ハッシュ値“hv3”を簡略加工履歴(P)4に付与することで、簡略加工履歴(P)4が含まれるデータ加工範囲H2をデータ加工系列ch1にチェーン結合させる。
【0042】
〔ステップS106〕制御部1a1は、データ加工範囲H1およびデータ加工範囲H2にチェーン結合する加工履歴(P)5(第3の加工履歴)を含む履歴データ群D0を生成する。履歴データ群D0には、加工履歴(P)5およびデータ履歴(D)6、7が含まれる。
【0043】
〔ステップS106a〕制御部1a1は、実データd2のハッシュ値“hvb”と、簡略加工履歴(P)4のハッシュ値“hv3”とを格納するデータ履歴(D)6を生成する。そして、制御部1a1は、データ履歴(D)6のハッシュ値“hv4”を算出して、ハッシュ値“hv4”をデータ履歴(D)6に付与する。
【0044】
〔ステップS106b〕制御部1a1は、データ履歴(D)6のハッシュ値“hv4”と、データ履歴(D)3のハッシュ値“hv2”とを格納する加工履歴(P)5を生成する。そして、制御部1a1は、加工履歴(P)5のハッシュ値“hv5”を算出して、ハッシュ値“hv5”を加工履歴(P)5に付与する。
【0045】
〔ステップS106c〕制御部1a1は、実データd2のハッシュ値“hvb”と、加工履歴(P)5のハッシュ値“hv5”とを格納するデータ履歴(D)7を生成する。そして、制御部1a1は、データ履歴(D)7のハッシュ値“hv7”を算出して、ハッシュ値“hv7”をデータ履歴(D)7に付与する。
【0046】
ここで、制御部1a1は、データ加工系列ch1のうちで、データ加工範囲H1にアクセス権を設け、アクセス権の所有者にはデータ加工範囲H1を公開するが、アクセス権の非所有者にはデータ加工範囲H1を非公開とする。
【0047】
この場合、制御部1a1は、加工履歴(P)2からアクセス制限の非対象となる情報を抽出して公開用にする簡略加工履歴(P)4を生成し、簡略加工履歴(P)4が含まれるデータ加工範囲H2を公開対象にし、データ加工範囲H2をデータ加工系列ch1にチェーン結合する。なお、履歴データ群D0のうちの加工履歴5は、データ加工範囲H1またはデータ加工範囲H2のいずれにも辿ることができる分岐点の履歴データになる。
【0048】
このように、管理装置1aは、アクセス制限した非公開の加工履歴(P)2に対応する公開用の簡略加工履歴(P)4を新たに生成してハッシュチェーン結合する。これにより、加工履歴(P)2をアクセス制限した場合でも、ハッシュチェーンを通じて簡略加工履歴(P)4を辿って加工履歴(P)2以前の履歴を辿ることができるので、非公開の加工履歴(P)2を開示せずにハッシュチェーンにもとづく改ざん検証が可能になる。
【0049】
[第2の実施の形態]
次に第2の実施の形態について説明する。
図8は管理装置の機能ブロックの一例を示す図である。第2の実施の形態の管理装置10は、制御部11および記憶部12を備える。制御部11は、データ加工処理部11a、履歴データ生成部11b、簡略加工履歴生成部11cおよび加工履歴公開判定部11dを含む。
【0050】
データ加工処理部11aは、実データの加工処理を行う。履歴データ生成部11bは、履歴データとして、データ履歴(D)および加工履歴(P)を生成する。
簡略加工履歴生成部11cは、アクセス制限対象の加工履歴(詳細な加工履歴)に対して、該加工履歴を簡略化して公開可能とした簡略加工履歴を生成する。加工履歴公開判定部11dは、履歴データの公開要求元に対して、アクセス権があるか否かを判定する。そして、アクセス権の所有者にはアクセス制限対象にした詳細な加工履歴を公開し、アクセス権の非所有者にはアクセス制限対象にした詳細な加工履歴を非公開とする(簡略加工履歴は一般公開が可能)。記憶部12は、装置全体に関わる制御情報を保持し、また実データ、履歴データおよび簡略加工履歴等を保持する。
【0051】
<ハードウェア>
図9は管理装置のハードウェアの一例を示す図である。管理装置10は、プロセッサ(コンピュータ)100によって全体制御されている。プロセッサ100は、制御部11の機能を実現する。
【0052】
プロセッサ100には、バス103を介して、メモリ101、入出力インタフェース102およびネットワークインタフェース104が接続されている。
プロセッサ100は、マルチプロセッサであってもよい。プロセッサ100は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ100は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0053】
メモリ101は、記憶部12の機能を実現し、管理装置10の主記憶装置として使用される。メモリ101には、プロセッサ100に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ101には、プロセッサ100による処理に要する各種データが格納される。
【0054】
また、メモリ101は、管理装置10の補助記憶装置としても使用され、OSのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ101は、補助記憶装置として、フラッシュメモリやSSD(Solid State Drive)等の半導体記憶装置やHDD(Hard Disk Drive)等の磁気記録媒体を含んでもよい。
【0055】
バス103に接続されている周辺機器としては、入出力インタフェース102およびネットワークインタフェース104がある。入出力インタフェース102は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ100に送信する。
【0056】
さらにまた、入出力インタフェース102は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース102は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Blu-rayDisc(登録商標)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(Rewritable)等がある。
【0057】
また、入出力インタフェース102は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース102との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【0058】
ネットワークインタフェース104は、ネットワークに接続してネットワークインタフェース制御を行う。ネットワークインタフェース104には、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等を使用することもできる。ネットワークインタフェース104で受信されたデータは、メモリ101やプロセッサ100に出力される。
【0059】
以上のようなハードウェア構成によって、管理装置10の処理機能を実現することができる。例えば、管理装置10は、プロセッサ100がそれぞれ所定のプログラムを実行することで本発明の処理を行うことができる。
【0060】
管理装置10は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。管理装置10に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【0061】
例えば、管理装置10に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ100は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【0062】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ100からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ100が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0063】
<アクセス制限を可能にする履歴リンク>
図10はアクセス制限を可能にする履歴リンクを説明するための図である。実データd1があり、実データd1に対して一連の加工処理を行って実データd5が生成されるとする。
【0064】
実データd5は公開可能とする。このとき、実データd5の公開に伴い、実データd5は公開するが、実データd5が生成される詳細な加工の過程については、アクセス権限の非所有者に対しては非公開にするものとする。この場合、実データd5の詳細な加工過程を簡略化した簡略加工履歴を生成しておき、簡略加工履歴を公開するものとする。
【0065】
〔ステップS11〕制御部11は、実データd1のデータ履歴(D)20を生成する。この場合、制御部11は、実データd1のハッシュ値“hva”を算出し、ハッシュ値“hva”を格納するデータ履歴(D)20を生成する。そして、制御部11は、データ履歴(D)20のハッシュ値“hv0”を算出して、ハッシュ値“hv0”をデータ履歴(D)20に付与する。
【0066】
〔ステップS12〕制御部11は、実データd1に加工p1を行って実データd2を生成する。
〔ステップS13a〕制御部11は、加工p1の加工履歴(P)21を生成する。この場合、制御部11は、データ履歴(D)20のハッシュ値“hv0”を格納する加工履歴(P)21を生成する。そして、制御部11は、加工履歴(P)21のハッシュ値“hv1”を算出して、ハッシュ値“hv1”を加工履歴(P)21に付与する。
【0067】
〔ステップS13b〕制御部11は、実データd2のデータ履歴(D)22を生成する。この場合、制御部11は、実データd2のハッシュ値“hvb”を算出し、実データd2のハッシュ値“hvb”と、加工履歴(P)21のハッシュ値“hv1”とを格納するデータ履歴(D)22を生成する。そして、制御部11は、データ履歴(D)22のハッシュ値“hv2”を算出して、ハッシュ値“hv2”をデータ履歴(D)22に付与する。
【0068】
〔ステップS14〕制御部11は、実データd2に加工p2を行って実データd3を生成する。
〔ステップS15a〕制御部11は、加工p2の加工履歴(P)23を生成する。この場合、制御部11は、データ履歴(D)22のハッシュ値“hv2”を格納する加工履歴(P)23を生成する。そして、制御部11は、加工履歴(P)23のハッシュ値“hv3”を算出して、ハッシュ値“hv3”を加工履歴(P)23に付与する。
【0069】
〔ステップS15b〕制御部11は、実データd3のデータ履歴(D)24を生成する。この場合、制御部11は、実データd3のハッシュ値“hvc”を算出し、実データd3のハッシュ値“hvc”と、加工履歴(P)23のハッシュ値“hv3”とを格納するデータ履歴(D)24を生成する。そして、制御部11は、データ履歴(D)24のハッシュ値“hv4”を算出して、ハッシュ値“hv4”をデータ履歴(D)24に付与する。
【0070】
〔ステップS16〕制御部11は、実データd3に加工p3を行って実データd4を生成する。
〔ステップS17a〕制御部11は、加工p3の加工履歴(P)25を生成する。この場合、制御部11は、データ履歴(D)24のハッシュ値“hv4”を格納する加工履歴(P)25を生成する。そして、制御部11は、加工履歴(P)25のハッシュ値“hv5”を算出して、ハッシュ値“hv5”を加工履歴(P)25に付与する。
【0071】
〔ステップS17b〕制御部11は、実データd4のデータ履歴(D)26を生成する。この場合、制御部11は、実データd4のハッシュ値“hvd”を算出し、実データd4のハッシュ値“hvd”と、加工履歴(P)25のハッシュ値“hv5”とを格納するデータ履歴(D)26を生成する。そして、制御部11は、データ履歴(D)26のハッシュ値“hv6”を算出して、ハッシュ値“hv6”をデータ履歴(D)26に付与する。
【0072】
〔ステップS18〕制御部11は、実データd4に加工p4を行って実データd5を生成する。
〔ステップS19a〕制御部11は、加工p4の加工履歴(P)27を生成する。この場合、制御部11は、データ履歴(D)26のハッシュ値“hv6”を格納する加工履歴(P)27を生成する。そして、制御部11は、加工履歴(P)27のハッシュ値“hv7”を算出して、ハッシュ値“hv7”を加工履歴(P)27に付与する。
【0073】
〔ステップS19b〕制御部11は、実データd5のデータ履歴(D)28を生成する。この場合、制御部11は、実データd5のハッシュ値“hve”を算出し、実データd5のハッシュ値“hve”と、加工履歴(P)27のハッシュ値“hv7”とを格納するデータ履歴(D)28を生成する。そして、制御部11は、データ履歴(D)28のハッシュ値“hv8”を算出して、ハッシュ値“hv8”をデータ履歴(D)28に付与する。
【0074】
〔ステップS20〕制御部11は、ユーザ指示にもとづき、加工履歴(P)21から加工履歴(P)27までの履歴範囲(詳細加工履歴2a)をアクセス制限対象に設定する。
〔ステップS21〕制御部11は、加工履歴(P)21から加工履歴(P)27までの履歴範囲のデータ加工の流れを簡略化した簡略加工履歴(P)29を生成する。
【0075】
この場合、制御部11は、データ履歴(D)20のハッシュ値“hv0”を含む簡略加工履歴(P)29を生成し、簡略加工履歴(P)29のハッシュ値“hv9”を算出して、ハッシュ値“hv9”を簡略加工履歴(P)29に付与する。
【0076】
〔ステップS22〕制御部11は、実データd5のハッシュ値“hve”と、簡略加工履歴(P)29のハッシュ値“hv9”とを格納するデータ履歴(D)30を生成する。そして、制御部11は、データ履歴(D)30のハッシュ値“hv10”を算出して、ハッシュ値“hv10”をデータ履歴(D)30に付与する。
【0077】
〔ステップS23〕制御部11は、データ履歴(D)28のハッシュ値“hv8”と、データ履歴(D)30のハッシュ値“hv10”とを格納する加工履歴(P)31(公開処理加工履歴(P)31)を生成する。そして、制御部11は、公開処理加工履歴(P)31のハッシュ値“hv11”を算出して、ハッシュ値“hv11”を公開処理加工履歴(P)31に付与する。
【0078】
〔ステップS24〕制御部11は、実データd5のハッシュ値“hve”と、公開処理加工履歴(P)31のハッシュ値“hv11”とを格納するデータ履歴(D)32(公開データ履歴(D)32)を生成する。そして、制御部11は、公開データ履歴(D)32のハッシュ値“hv12”を算出して、ハッシュ値“hv12”を公開データ履歴(D)32に付与する。
【0079】
上記において、データ履歴(D)30は、ハッシュ値“hve”およびハッシュ値“hv9”を格納するため、データ履歴(D)28と、簡略加工履歴(P)29との両方が生成された後に生成される。また、公開処理加工履歴(P)31は、ハッシュ値“hv10”を格納するため、データ履歴(D)30が生成された後に生成される。さらに、公開データ履歴(D)32は、ハッシュ値“hv11”を格納するため、公開処理加工履歴(P)31が生成された後に生成される。
【0080】
なお、公開処理加工履歴(P)31は、実データd5の加工履歴として詳細加工履歴2aを公開させるか、詳細加工履歴2aを簡略化した簡略加工履歴(P)29を公開させるかを分岐させるための加工を行った履歴である。また、公開データ履歴(D)32は、実データd5を公開させる場合に、実データd5のデータ履歴(D)28とは別に用意しておくデータ履歴(D)である。
【0081】
また、履歴データ群D1は、詳細加工履歴2aまたは簡略加工履歴(P)29のいずれかにアクセスするかを決定するための履歴データの集合であり、データ履歴(D)30、公開処理加工履歴(P)31および公開データ履歴(D)32を含む。履歴データ群D1のうちの公開処理加工履歴(P)31は、詳細加工履歴2aまたは簡略加工履歴(P)29のいずれにも辿ることができる分岐点の履歴データになる。
【0082】
ここで、実データd5の公開において、まず、制御部11は、実データd5のハッシュ値“hve”を格納する公開データ履歴(D)32にアクセスする。
制御部11は、公開データ履歴(D)32はハッシュ値“hv11”を格納するので、ハッシュ値“hv11”が格納される公開処理加工履歴(P)31にアクセスする。
【0083】
公開処理加工履歴(P)31には、ハッシュ値“hv8”および“hv10”が格納されている。制御部11は、実データd5の詳細加工履歴2aに対するアクセス権の所有者には、ハッシュ値“hv8”が付与されるデータ履歴(D)28にアクセスする。そして、詳細加工履歴2aを抽出して公開する。
【0084】
また、制御部11は、実データd5の詳細加工履歴2aに対するアクセス権の非所有者には、ハッシュ値“hv10”が付与されるデータ履歴(D)30にアクセスする。そして、データ履歴(D)30を介して簡略加工履歴(P)29を公開する。
【0085】
一方、制御部11は、アクセス制限した非公開の詳細加工履歴2aに対応する公開用の簡略加工履歴(P)29をデータ履歴(D)20にハッシュチェーン結合している。これにより、詳細加工履歴2aをアクセス制限した場合でも、ハッシュチェーンを通じて簡略加工履歴(P)29を辿って、詳細加工履歴2a以前の履歴を辿ることができるので、非公開の詳細加工履歴2aを開示せずにハッシュチェーンにもとづく改ざん検証が可能になる。
【0086】
<フローチャート>
図11は簡略加工履歴の生成動作の一例を示すフローチャートである。
〔ステップS31〕制御部11は、入力されたデータを加工し、履歴データ(データ履歴(D)および加工履歴(P))を生成する。
【0087】
〔ステップS32〕制御部11は、非公開とする加工の詳細履歴(アクセス制限対象の加工履歴)を指定する。例えば、
図10において、ハッシュ値“hv1”を持つ加工履歴(P)21からハッシュ値“hv7”を持つ加工履歴(P)27までの範囲が指定される。
【0088】
〔ステップS33〕制御部11は、指定範囲の入力となる履歴データを検索する。例えば、
図10において、ハッシュ値“hv0”のデータ履歴(D)20が、指定範囲の入力となる履歴データとして検索される。
【0089】
〔ステップS34〕制御部11は、指定範囲の入力となる履歴データのハッシュ値を含む簡略加工履歴(P)を生成する。例えば、
図10において、ハッシュ値“hv0”を含む簡略加工履歴(P)29を生成する。
【0090】
このように、制御部11が簡略加工履歴(P)を生成する場合、アクセス制限対象の詳細加工履歴の範囲の入力となる履歴データのハッシュ値を含む簡略加工履歴(P)を生成する。
【0091】
これにより、簡略加工履歴(P)が詳細加工履歴2a以前の履歴データにハッシュチェーン結合するので、ハッシュチェーンを通じて簡略加工履歴(P)29を辿って、詳細加工履歴2a以前の履歴を辿ることができる。よって、非公開の詳細加工履歴2aを開示せずにハッシュチェーンにもとづく改ざん検証が可能になる。
【0092】
<簡略加工履歴の他の生成例>
図12は簡略加工履歴の生成の一例を示す図である。上述した
図10の例では、詳細加工履歴2aを生成した後に簡略加工履歴を生成したが、加工処理毎に簡略加工履歴を逐一生成することもできる。
【0093】
〔ステップS41〕制御部11は、実データd1のデータ履歴(D)20を生成する。この場合、制御部11は、実データd1のハッシュ値“hva”を算出し、ハッシュ値“hva”を格納するデータ履歴(D)20を生成する。そして、制御部11は、データ履歴(D)20のハッシュ値“hv0”を算出して、ハッシュ値“hv0”をデータ履歴(D)20に付与する。
【0094】
〔ステップS42〕制御部11は、実データd1に加工p1を行って実データd2を生成する。
〔ステップS43a〕制御部11は、加工p1の加工履歴(P)21を生成する。この場合、制御部11は、データ履歴(D)20のハッシュ値“hv0”を格納する加工履歴(P)21を生成する。そして、制御部11は、加工履歴(P)21のハッシュ値“hv1”を算出して、ハッシュ値“hv1”を加工履歴(P)21に付与する。
【0095】
〔ステップS43b〕制御部11は、加工p1の加工履歴(P)21aを生成する。この場合、制御部11は、データ履歴(D)20のハッシュ値“hv0”を格納する加工履歴(P)21aを生成する。そして、制御部11は、加工履歴(P)21aのハッシュ値“hv11”を算出して、ハッシュ値“hv11”を加工履歴(P)21aに付与する。なお、加工履歴(P)21aは、加工履歴(P)21の内容を簡略化した加工履歴に相当する。
【0096】
〔ステップS44a〕制御部11は、実データd2のデータ履歴(D)22を生成する。この場合、制御部11は、実データd2のハッシュ値“hvb”を算出し、実データd2のハッシュ値“hvb”と、加工履歴(P)21のハッシュ値“hv1”とを格納するデータ履歴(D)22を生成する。そして、制御部11は、データ履歴(D)22のハッシュ値“hv2”を算出して、ハッシュ値“hv2”をデータ履歴(D)22に付与する。
【0097】
〔ステップS44b〕制御部11は、実データd2のデータ履歴(D)22aを生成する。この場合、制御部11は、実データd2のハッシュ値“hvb”と、加工履歴(P)21aのハッシュ値“hv11”とを格納するデータ履歴(D)22aを生成する。そして、制御部11は、データ履歴(D)22aのハッシュ値“hv12”を算出して、ハッシュ値“hv12”をデータ履歴(D)22aに付与する。
【0098】
〔ステップS45〕制御部11は、実データd2に加工p2を行って実データd3を生成する。
〔ステップS46a〕制御部11は、加工p2の加工履歴(P)23を生成する。この場合、制御部11は、データ履歴(D)22のハッシュ値“hv2”を格納する加工履歴(P)23を生成する。そして、制御部11は、加工履歴(P)23のハッシュ値“hv3”を算出して、ハッシュ値“hv3”を加工履歴(P)23に付与する。
【0099】
〔ステップS46b〕制御部11は、加工p2の加工履歴(P)23aを生成する。この場合、制御部11は、データ履歴(D)22aのハッシュ値“hv12”を格納する加工履歴(P)23aを生成する。そして、制御部11は、加工履歴(P)23aのハッシュ値“hv13”を算出して、ハッシュ値“hv13”を加工履歴(P)23aに付与する。なお、加工履歴(P)23aは、加工履歴(P)23の内容を簡略化した加工履歴に相当する。
【0100】
〔ステップS47a〕制御部11は、実データd3のデータ履歴(D)24を生成する。この場合、制御部11は、実データd3のハッシュ値“hvc”を算出し、実データd3のハッシュ値“hvc”と、加工履歴(P)23のハッシュ値“hv3”とを格納するデータ履歴(D)24を生成する。そして、制御部11は、データ履歴(D)24のハッシュ値“hv4”を算出して、ハッシュ値“hv4”をデータ履歴(D)24に付与する。
【0101】
〔ステップS47b〕制御部11は、実データd3のデータ履歴(D)24aを生成する。この場合、制御部11は、実データd3のハッシュ値“hvc”と、加工履歴(P)23aのハッシュ値“hv13”とを格納するデータ履歴(D)24aを生成する。そして、制御部11は、データ履歴(D)24aのハッシュ値“hv14”を算出して、ハッシュ値“hv14”をデータ履歴(D)24aに付与する。
【0102】
〔ステップS48〕制御部11は、実データd3に加工p3を行って実データd4を生成する。
〔ステップS49a〕制御部11は、加工p3の加工履歴(P)25を生成する。この場合、制御部11は、データ履歴(D)24のハッシュ値“hv4”を格納する加工履歴(P)25を生成する。そして、制御部11は、加工履歴(P)25のハッシュ値“hv5”を算出して、ハッシュ値“hv5”を加工履歴(P)25に付与する。
【0103】
〔ステップS49b〕制御部11は、加工p3の加工履歴(P)25aを生成する。この場合、制御部11は、データ履歴(D)24aのハッシュ値“hv14”を格納する加工履歴(P)25aを生成する。そして、制御部11は、加工履歴(P)25aのハッシュ値“hv15”を算出して、ハッシュ値“hv15”を加工履歴(P)25aに付与する。なお、加工履歴(P)25aは、加工履歴(P)25の内容を簡略化した加工履歴に相当する。
【0104】
〔ステップS50a〕制御部11は、実データd4のデータ履歴(D)26を生成する。この場合、制御部11は、実データd4のハッシュ値“hvd”を算出し、実データd4のハッシュ値“hvd”と、加工履歴(P)25のハッシュ値“hv5”とを格納するデータ履歴(D)26を生成する。そして、制御部11は、データ履歴(D)26のハッシュ値“hv6”を算出して、ハッシュ値“hv6”をデータ履歴(D)26に付与する。
【0105】
〔ステップS50b〕制御部11は、実データd4のデータ履歴(D)26aを生成する。この場合、制御部11は、実データd4のハッシュ値“hvd”と、加工履歴(P)25aのハッシュ値“hv15”とを格納するデータ履歴(D)26aを生成する。そして、制御部11は、データ履歴(D)26aのハッシュ値“hv16”を算出して、ハッシュ値“hv16”をデータ履歴(D)26aに付与する。
【0106】
〔ステップS51〕制御部11は、実データd4に加工p4を行って実データd5を生成する。
〔ステップS52a〕制御部11は、加工p4の加工履歴(P)27を生成する。この場合、制御部11は、データ履歴(D)26のハッシュ値“hv6”を格納する加工履歴(P)27を生成する。そして、制御部11は、加工履歴(P)27のハッシュ値“hv7”を算出して、ハッシュ値“hv7”を加工履歴(P)27に付与する。
【0107】
〔ステップS52b〕制御部11は、加工p4の加工履歴(P)27aを生成する。この場合、制御部11は、データ履歴(D)26aのハッシュ値“hv16”を格納する加工履歴(P)27aを生成する。そして、制御部11は、加工履歴(P)27aのハッシュ値“hv17”を算出して、ハッシュ値“hv17”を加工履歴(P)27aに付与する。なお、加工履歴(P)27aは、加工履歴(P)27の内容を簡略化した加工履歴に相当する。
【0108】
〔ステップS53a〕制御部11は、実データd5のデータ履歴(D)28を生成する。この場合、制御部11は、実データd5のハッシュ値“hve”を算出し、実データd5のハッシュ値“hve”と、加工履歴(P)27のハッシュ値“hv7”とを格納するデータ履歴(D)28を生成する。そして、制御部11は、データ履歴(D)28のハッシュ値“hv8”を算出して、ハッシュ値“hv8”をデータ履歴(D)28に付与する。
【0109】
〔ステップS53b〕制御部11は、実データd5のデータ履歴(D)28aを生成する。この場合、制御部11は、実データd5のハッシュ値“hve”と、加工履歴(P)27aのハッシュ値“hv17”とを格納するデータ履歴(D)28aを生成する。そして、制御部11は、データ履歴(D)28aのハッシュ値“hv18”を算出して、ハッシュ値“hv18”をデータ履歴(D)28aに付与する。
【0110】
〔ステップS54〕制御部11は、データ履歴(D)28のハッシュ値“hv8”と、データ履歴(D)28aのハッシュ値“hv18”とを格納する加工履歴(P)40(公開処理加工履歴(P)40)を生成する。そして、制御部11は、公開処理加工履歴(P)40のハッシュ値“hv20”を算出して、ハッシュ値“hv20”を公開処理加工履歴(P)40に付与する。
【0111】
〔ステップS55〕制御部11は、実データd5のハッシュ値“hve”と、公開処理加工履歴(P)40のハッシュ値“hv20”とを格納するデータ履歴(D)41(公開データ履歴(D)41)を生成する。そして、制御部11は、公開データ履歴(D)41のハッシュ値“hv21”を算出して、ハッシュ値“hv21”を公開データ履歴(D)41に付与する。
【0112】
ここで、加工履歴(P)21からデータ履歴(D)28までの履歴データ範囲はアクセス制限の対象とする詳細加工履歴2a-1であり、加工履歴(P)21aからデータ履歴(D)28aまでの履歴データ範囲はアクセス制限の非対象とする公開用の簡略加工履歴2a-2になる。
【0113】
また、履歴データ群D2は、詳細加工履歴2a-1または簡略加工履歴(P)2a-2のいずれかにアクセスするかを決定するための履歴データの集合であり、公開処理加工履歴(P)40と、公開データ履歴(D)41を含む。履歴データ群D2のうちの公開処理加工履歴(P)40は、詳細加工履歴2a-1または簡略加工履歴2a-2のいずれにも辿ることができる分岐点の履歴データになる。
【0114】
このように、制御部11が、加工処理毎に簡略加工履歴を逐一生成して、アクセス制限対象の詳細加工履歴2a-1に対応する簡略加工履歴2a-2を生成する。これにより、各加工段階で簡略加工履歴を生成できるので、簡略加工履歴2a-2で公開可能とする加工履歴の情報を柔軟に生成することができる。
【0115】
図13は簡略加工履歴の生成の一例を示す図である。上述した
図10、
図12の例では、1つの詳細加工履歴に対して1つの簡略加工履歴を生成したが、詳細加工履歴の複数の範囲に対応した複数の簡略加工履歴を生成することもできる。
【0116】
〔ステップS61〕制御部11は、実データd1のデータ履歴(D)20を生成する。この場合、制御部11は、実データd1のハッシュ値“hva”を算出し、ハッシュ値“hva”を格納するデータ履歴(D)20を生成する。そして、制御部11は、データ履歴(D)20のハッシュ値“hv0”を算出して、ハッシュ値“hv0”をデータ履歴(D)20に付与する。
【0117】
〔ステップS62〕制御部11は、実データd1に加工p1を行って実データd2を生成する。
〔ステップS63a〕制御部11は、加工p1の加工履歴(P)21を生成する。この場合、制御部11は、データ履歴(D)20のハッシュ値“hv0”を格納する加工履歴(P)21を生成する。そして、制御部11は、加工履歴(P)21のハッシュ値“hv1”を算出して、ハッシュ値“hv1”を加工履歴(P)21に付与する。
【0118】
〔ステップS63b〕制御部11は、実データd2のデータ履歴(D)22を生成する。この場合、制御部11は、実データd2のハッシュ値“hvb”を算出し、実データd2のハッシュ値“hvb”と、加工履歴(P)21のハッシュ値“hv1”とを格納するデータ履歴(D)22を生成する。そして、制御部11は、データ履歴(D)22のハッシュ値“hv2”を算出して、ハッシュ値“hv2”をデータ履歴(D)22に付与する。
【0119】
〔ステップS64〕制御部11は、実データd2に加工p2を行って実データd3を生成する。
〔ステップS65a〕制御部11は、加工p2の加工履歴(P)23を生成する。この場合、制御部11は、データ履歴(D)22のハッシュ値“hv2”を格納する加工履歴(P)23を生成する。そして、制御部11は、加工履歴(P)23のハッシュ値“hv3”を算出して、ハッシュ値“hv3”を加工履歴(P)23に付与する。
【0120】
〔ステップS65b〕制御部11は、実データd3のデータ履歴(D)24を生成する。この場合、制御部11は、実データd3のハッシュ値“hvc”を算出し、実データd3のハッシュ値“hvc”と、加工履歴(P)23のハッシュ値“hv3”とを格納するデータ履歴(D)24を生成する。そして、制御部11は、データ履歴(D)24のハッシュ値“hv4”を算出して、ハッシュ値“hv4”をデータ履歴(D)24に付与する。
【0121】
〔ステップS66〕制御部11は、実データd3に加工p3を行って実データd4を生成する。
〔ステップS67a〕制御部11は、加工p3の加工履歴(P)25を生成する。この場合、制御部11は、データ履歴(D)24のハッシュ値“hv4”を格納する加工履歴(P)25を生成する。そして、制御部11は、加工履歴(P)25のハッシュ値“hv5”を算出して、ハッシュ値“hv5”を加工履歴(P)25に付与する。
【0122】
〔ステップS67b〕制御部11は、実データd4のデータ履歴(D)26を生成する。この場合、制御部11は、実データd4のハッシュ値“hvd”を算出し、実データd4のハッシュ値“hvd”と、加工履歴(P)25のハッシュ値“hv5”とを格納するデータ履歴(D)26を生成する。そして、制御部11は、データ履歴(D)26のハッシュ値“hv6”を算出して、ハッシュ値“hv6”をデータ履歴(D)26に付与する。
【0123】
〔ステップS68〕制御部11は、実データd4に加工p4を行って実データd5を生成する。
〔ステップS69a〕制御部11は、加工p4の加工履歴(P)27を生成する。この場合、制御部11は、データ履歴(D)26のハッシュ値“hv6”を格納する加工履歴(P)27を生成する。そして、制御部11は、加工履歴(P)27のハッシュ値“hv7”を算出して、ハッシュ値“hv7”を加工履歴(P)27に付与する。
【0124】
〔ステップS69b〕制御部11は、実データd5のデータ履歴(D)28を生成する。この場合、制御部11は、実データd5のハッシュ値“hve”を算出し、実データd5のハッシュ値“hve”と、加工履歴(P)27のハッシュ値“hv7”とを格納するデータ履歴(D)28を生成する。そして、制御部11は、データ履歴(D)28のハッシュ値“hv8”を算出して、ハッシュ値“hv8”をデータ履歴(D)28に付与する。
【0125】
〔ステップS70a〕制御部11は、ユーザ指示にもとづき、加工履歴(P)21から加工履歴(P)27までのデータ加工範囲(詳細加工履歴2-1)をアクセス制限対象に設定する。
【0126】
〔ステップS70b〕制御部11は、ユーザ指示にもとづき、詳細加工履歴2-1に包含される、加工履歴(P)25から加工履歴(P)27までの包含範囲(詳細加工履歴2-2)をアクセス制限対象に設定する。
【0127】
〔ステップS71a〕制御部11は、加工履歴(P)21から加工履歴(P)27までの非公開にした詳細加工履歴2-1のデータ加工の流れを簡略化した簡略加工履歴(P)29を生成する。
【0128】
この場合、制御部11は、データ履歴(D)20のハッシュ値“hv0”を含む簡略加工履歴(P)29を生成し、簡略加工履歴(P)29のハッシュ値“hv9”を算出して、ハッシュ値“hv9”を簡略加工履歴(P)29に付与する。
【0129】
〔ステップS71b〕制御部11は、加工履歴(P)25から加工履歴(P)27までの非公開にした詳細加工履歴2-2のデータ加工の流れを簡略化した簡略加工履歴(P)51を生成する。
【0130】
この場合、制御部11は、データ履歴(D)24のハッシュ値“hv4”を含む簡略加工履歴(P)51を生成し、簡略加工履歴(P)51のハッシュ値“hv31”を算出して、ハッシュ値“hv31”を簡略加工履歴(P)51に付与する。
【0131】
〔ステップS72a〕制御部11は、実データd5のハッシュ値“hve”と、簡略加工履歴(P)29のハッシュ値“hv9”とを格納するデータ履歴(D)30を生成する。そして、制御部11は、データ履歴(D)30のハッシュ値“hv10”を算出して、ハッシュ値“hv10”をデータ履歴(D)30に付与する。
【0132】
〔ステップS72b〕制御部11は、実データd5のハッシュ値“hve”と、簡略加工履歴(P)51のハッシュ値“hv31”とを格納するデータ履歴(D)52を生成する。そして、制御部11は、データ履歴(D)52のハッシュ値“hv32”を算出して、ハッシュ値“hv32”をデータ履歴(D)52に付与する。
【0133】
〔ステップS73〕制御部11は、データ履歴(D)28のハッシュ値“hv8”と、データ履歴(D)52のハッシュ値“hv32”と、データ履歴(D)30のハッシュ値“hv10”とを格納する加工履歴(P)53を生成する。そして、制御部11は、加工履歴(P)53のハッシュ値“hv33”を算出して、ハッシュ値“hv33”を加工履歴(P)53に付与する。
【0134】
〔ステップS74〕制御部11は、実データd5のハッシュ値“hve”と、加工履歴(P)53のハッシュ値“hv33”とを格納するデータ履歴(D)54を生成する。そして、制御部11は、データ履歴(D)54のハッシュ値“hv34”を算出して、ハッシュ値“hv34”をデータ履歴(D)54に付与する。
【0135】
なお、履歴データ群D3は、詳細加工履歴2-1、詳細加工履歴2-2、簡略加工履歴(P)29、簡略加工履歴(P)51のいずれかにアクセスするかを決定するための履歴データの集合であり、データ履歴(D)30、52、54および加工履歴(P)53を含む。履歴データ群D3のうちの加工履歴(P)53は、詳細加工履歴2-1/詳細加工履歴2-2、簡略加工履歴(P)29、簡略加工履歴(P)51のいずれにも辿ることができる分岐点の履歴データになる。
【0136】
このように、アクセス制限対象となる詳細加工履歴を複数設定した場合、設定した詳細加工履歴毎に簡略加工履歴を生成する。これにより、詳細加工履歴の内容を複数に分割して、分割した加工履歴の内容毎に簡略加工履歴を構成することができる。
【0137】
<アクセス制限対象の指定範囲の自動設定>
図14はアクセス制限対象の指定範囲の自動設定の一例を示す図である。履歴データのグラフg2は、データ履歴(D)20、22、24、26、28、29と、加工履歴(P)21、23b、25、27とを含む。
【0138】
また、ハッシュチェーンは、ハッシュ値“hv0”を介してデータ履歴(D)20と加工履歴(P)21がリンクし、ハッシュ値“hv1”を介して加工履歴(P)21とデータ履歴(D)22がリンクし、ハッシュ値“hv2”を介してデータ履歴(D)22と加工履歴(P)23bがリンクしている。
【0139】
また、ハッシュ値“hv3”を介して加工履歴(P)23bとデータ履歴(D)24がリンクし、ハッシュ値“hv4”を介してデータ履歴(D)24と加工履歴(P)25がリンクし、ハッシュ値“hv5”を介して加工履歴(P)25とデータ履歴(D)26がリンクしている。
【0140】
さらに、ハッシュ値“hv6”を介してデータ履歴(D)26と加工履歴(P)27がリンクし、ハッシュ値“hv7”を介して加工履歴(P)27とデータ履歴(D)28がリンクしている。また、ハッシュ値“hv10”を介してデータ履歴(D)29と加工履歴(P)23bがリンクしている。
【0141】
ここで、履歴データのグラフg2に対して、簡略加工履歴を生成したい範囲を指定する場合、制御部11は、範囲内の入力端点と出力端点の2つの端点となる履歴データを指示することで指定範囲を自動的に設定する。
【0142】
図の例では、制御部11は、加工履歴(P)21から加工履歴(P)27までの範囲から簡略加工履歴(P)を生成する場合、ハッシュ値“hv1”が付与されている加工履歴(P)21と、ハッシュ値“hv7”が付与されている加工履歴(P)27を指示して、一括して範囲を決定する。
【0143】
このように、指定したい範囲内の入力端点と出力端点の2つの端点となる履歴データを指示することで指定範囲を自動的に設定するので、1つ1つの履歴データを指示する操作が不要になり、効率よく簡略加工履歴を生成したい範囲を指定することができる。
【0144】
<変形例>
図15はアクセス制限を可能にする履歴生成の変形例を説明するための図である。変形例では、個々の加工履歴(P)に対して、アクセス制限対象の秘密加工履歴3aと、公開用の公開加工履歴3bとを生成するものである。
【0145】
〔ステップS81〕制御部11は、実データのハッシュ値“hva”を格納するデータ履歴(D)60を生成する。また、制御部11は、データ履歴(D)60のハッシュ値“hv0”を算出して、ハッシュ値“hv0”をデータ履歴(D)60に付与する。
【0146】
〔ステップS82a〕制御部11は、ハッシュ値“hva”を持つ実データの加工履歴として、公開可能な公開加工履歴(P)61aを生成する。また、制御部11は、公開加工履歴(P)61aのハッシュ値“hv20”を算出して、ハッシュ値“hv20”を公開加工履歴(P)61aに付与する。
【0147】
〔ステップS82b〕制御部11は、ハッシュ値“hva”を持つ実データの加工履歴として、アクセス制限対象の秘密加工履歴(P)61bを生成する。また、制御部11は、秘密加工履歴(P)61bのハッシュ値“hv10”を算出して、ハッシュ値“hv10”を秘密加工履歴(P)61bに付与する。
【0148】
〔ステップS83〕制御部11は、ハッシュ値“hva”を持つ実データの加工履歴(P)61を生成する。この場合、制御部11は、データ履歴(D)60のハッシュ値“hv0”と、公開加工履歴(P)61aのハッシュ値“hv20”と、秘密加工履歴(P)61bのハッシュ値“hv10”とを格納する加工履歴(P)61を生成する。そして、制御部11は、加工履歴(P)61のハッシュ値“hv1”を算出して、ハッシュ値“hv1”を加工履歴(P)61に付与する。
【0149】
〔ステップS84〕制御部11は、実データのハッシュ値“hvb”と、加工履歴(P)61のハッシュ値“hv1”とを格納するデータ履歴(D)62を生成する。また、制御部11は、データ履歴(D)62のハッシュ値“hv2”を算出して、ハッシュ値“hv2”をデータ履歴(D)62に付与する。
【0150】
〔ステップS85a〕制御部11は、ハッシュ値“hvb”を持つ実データの加工履歴として、公開可能な公開加工履歴(P)63aを生成する。また、制御部11は、公開加工履歴(P)63aのハッシュ値“hv21”を算出して、ハッシュ値“hv21”を公開加工履歴(P)63aに付与する。
【0151】
〔ステップS85b〕制御部11は、ハッシュ値“hvb”を持つ実データの加工履歴として、アクセス制限対象の秘密加工履歴(P)63bを生成する。また、制御部11は、秘密加工履歴(P)63bのハッシュ値“hv11”を算出して、ハッシュ値“hv11”を秘密加工履歴(P)63bに付与する。
【0152】
〔ステップS86〕制御部11は、ハッシュ値“hvb”を持つ実データの加工履歴(P)63を生成する。この場合、制御部11は、データ履歴(D)62のハッシュ値“hv2”と、公開加工履歴(P)63aのハッシュ値“hv21”と、秘密加工履歴(P)63bのハッシュ値“hv11”とを格納する加工履歴(P)63を生成する。そして、制御部11は、加工履歴(P)63のハッシュ値“hv3”を算出して、ハッシュ値“hv3”を加工履歴(P)63に付与する。
【0153】
〔ステップS87〕制御部11は、実データのハッシュ値“hvc”と、加工履歴(P)63のハッシュ値“hv3”とを格納するデータ履歴(D)64を生成する。また、制御部11は、データ履歴(D)64のハッシュ値“hv4”を算出して、ハッシュ値“hv4”をデータ履歴(D)64に付与する。
【0154】
〔ステップS88a〕制御部11は、ハッシュ値“hvc”を持つ実データの加工履歴として、公開可能な公開加工履歴(P)65aを生成する。また、制御部11は、公開加工履歴(P)65aのハッシュ値“hv22”を算出して、ハッシュ値“hv22”を公開加工履歴(P)65aに付与する。
【0155】
〔ステップS88b〕制御部11は、ハッシュ値“hvc”を持つ実データの加工履歴として、アクセス制限対象の秘密加工履歴(P)65bを生成する。また、制御部11は、秘密加工履歴(P)65bのハッシュ値“hv12”を算出して、ハッシュ値“hv12”を秘密加工履歴(P)65bに付与する。
【0156】
〔ステップS89〕制御部11は、ハッシュ値“hvc”を持つ実データの加工履歴(P)65を生成する。この場合、制御部11は、データ履歴(D)64のハッシュ値“hv4”と、公開加工履歴(P)65aのハッシュ値“hv22”と、秘密加工履歴(P)65bのハッシュ値“hv12”とを格納する加工履歴(P)65を生成する。そして、制御部11は、加工履歴(P)65のハッシュ値“hv5”を算出して、ハッシュ値“hv5”を加工履歴(P)65に付与する。
【0157】
〔ステップS90〕制御部11は、実データのハッシュ値“hvd”と、加工履歴(P)65のハッシュ値“hv5”とを格納するデータ履歴(D)66を生成する。また、制御部11は、データ履歴(D)66のハッシュ値“hv6”を算出して、ハッシュ値“hv6”をデータ履歴(D)66に付与する。
【0158】
〔ステップS91a〕制御部11は、ハッシュ値“hvd”を持つ実データの加工履歴として、公開可能な公開加工履歴(P)67aを生成する。また、制御部11は、公開加工履歴(P)67aのハッシュ値“hv23”を算出して、ハッシュ値“hv23”を公開加工履歴(P)67aに付与する。
【0159】
〔ステップS91b〕制御部11は、ハッシュ値“hvd”を持つ実データの加工履歴として、アクセス制限対象の秘密加工履歴(P)67bを生成する。また、制御部11は、秘密加工履歴(P)67bのハッシュ値“hv13”を算出して、ハッシュ値“hv13”を秘密加工履歴(P)67bに付与する。
【0160】
〔ステップS92〕制御部11は、ハッシュ値“hvd”を持つ実データの加工履歴(P)67を生成する。この場合、制御部11は、データ履歴(D)66のハッシュ値“hv6”と、公開加工履歴(P)67aのハッシュ値“hv23”と、秘密加工履歴(P)67bのハッシュ値“hv13”とを格納する加工履歴(P)67を生成する。そして、制御部11は、加工履歴(P)67のハッシュ値“hv7”を算出して、ハッシュ値“hv7”を加工履歴(P)67に付与する。
【0161】
〔ステップS93〕制御部11は、実データのハッシュ値“hve”と、加工履歴(P)67のハッシュ値“hv7”とを格納するデータ履歴(D)68を生成する。また、制御部11は、データ履歴(D)68のハッシュ値“hv8”を算出して、ハッシュ値“hv8”をデータ履歴(D)68に付与する。
【0162】
このように、変形例では、データ加工系列に含まれる加工履歴に対して、アクセス制限の対象となる加工情報を含む秘密加工履歴と、アクセス制限の非対象となる公開可能な加工情報を含む公開加工履歴とを生成する。これにより、各加工履歴に応じた公開用の加工履歴と、アクセス制限対象の加工履歴との参照が可能になる。また、公開加工履歴および秘密加工履歴は、ハッシュチェーンでデータ加工系列に結合しているため、改ざん検証が可能になる。
【0163】
以上説明したように、本発明によれば、加工履歴について、詳細を見せずに、なおかつハッシュチェーンとして検証可能な加工履歴を提供できる。また、以下のような効果を奏する。
【0164】
・公開部分の履歴は改ざんがないことを検証可能になる。
・公開履歴を辿ることで、非公開部分を除いた全ての履歴を辿ることが可能になる。
・非公開履歴も、詳細が公開された時点で偽りがないことが保証可能になる。
【0165】
・非公開履歴と見えている公開履歴は対応付けが可能になる。
・非公開履歴が公開履歴に対応する履歴(例えば省略形であること)であると非公開のままでも推定可能になる。
【0166】
上記で説明した本発明の管理装置は、コンピュータによって実現することができる。この場合、管理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0167】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶部、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶部には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、CD-ROM/RW等がある。光磁気記録媒体には、MO(Magneto Optical disk)等がある。
【0168】
プログラムを流通させる場合、例えば、そのプログラムが記録されたCD-ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶部に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0169】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶部に格納する。そして、コンピュータは、自己の記憶部からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【0170】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
【0171】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0172】
1a 管理装置
1a1 制御部
1a2 記憶部
1、3 存在履歴
2、4、5 加工履歴
ch1 データ加工系列
H1、H2 データ加工範囲
D0 履歴データ群