IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

特許7614454データ保全システム、データ保全方法、データ保全プログラムおよびデータ検証装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-06
(45)【発行日】2025-01-15
(54)【発明の名称】データ保全システム、データ保全方法、データ保全プログラムおよびデータ検証装置
(51)【国際特許分類】
   G06F 21/64 20130101AFI20250107BHJP
   G06F 21/60 20130101ALI20250107BHJP
【FI】
G06F21/64
G06F21/60 320
【請求項の数】 16
(21)【出願番号】P 2024519805
(86)(22)【出願日】2022-06-06
(86)【国際出願番号】 JP2022022844
(87)【国際公開番号】W WO2023238207
(87)【国際公開日】2023-12-14
【審査請求日】2024-03-29
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】松本 光弘
(72)【発明者】
【氏名】本庄 将也
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2008-312064(JP,A)
【文献】特開2008-211290(JP,A)
【文献】特開2010-108383(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
データソースに保存されている元データを取得し、取得された元データを処理し、得られた処理済みデータを登録するデータ処理部と、
前記処理済みデータの登録時に、取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、前記参照結合データのダイジェスト値を参照ダイジェスト値として算出する参照ダイジェスト値算出部と、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出する仮ダイジェスト値算出部と、
前記データソースに保存されている前記元データのダイジェスト値を仮ダイジェスト値として取得し、前記元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、前記検証結合データのダイジェスト値を検証ダイジェスト値として算出し、前記検証ダイジェスト値を前記参照ダイジェスト値と比較し、登録されている処理済みデータが前記データソースの前記元データに由来するデータであるか判定するデータ検証部と、
を備えるデータ保全システム。
【請求項2】
前記参照ダイジェスト値がデータストアに保存され、
前記データ検証部は、前記データストアに保存されている前記参照ダイジェスト値を取得する
請求項1に記載のデータ保全システム。
【請求項3】
秘密鍵を用いて暗号化された前記参照ダイジェスト値である暗号化ダイジェスト値がデータストアに保存され、
前記データ検証部は、前記データストアに保存されている前記暗号化ダイジェスト値を取得し、前記秘密鍵に対応する公開鍵を用いて前記暗号化ダイジェスト値から前記参照ダイジェスト値を復号する
請求項1に記載のデータ保全システム。
【請求項4】
前記参照ダイジェスト値が前記データソースに保存され、
前記データ検証部は、前記データソースに保存されている前記参照ダイジェスト値を取得する
請求項1に記載のデータ保全システム。
【請求項5】
前記データ処理部は、データ処理プログラムを実行することによって前記元データを処理し、
前記参照ダイジェスト値算出部は、前記元データの前記ダイジェスト値と前記処理済みデータの前記ダイジェスト値の他に前記データ処理プログラムのダイジェスト値を算出し、前記元データの前記ダイジェスト値と前記処理済みデータの前記ダイジェスト値と前記データ処理プログラムの前記ダイジェスト値に基づいて前記参照結合データを生成し、
前記仮ダイジェスト値算出部は、登録されている処理済みデータの前記仮ダイジェスト値の他に、登録されているデータ処理プログラムのダイジェスト値を仮ダイジェスト値として算出し、
前記データ検証部は、前記元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値と前記データ処理プログラムの前記仮ダイジェスト値に基づいて前記検証結合データを生成する
請求項1に記載のデータ保全システム。
【請求項6】
前記データ処理プログラムが前記処理済みデータと共に登録され、
前記仮ダイジェスト値算出部は、前記処理済みデータと共に登録されているデータ処理プログラムを取得し、取得されたデータ処理プログラムのダイジェスト値を前記データ処理プログラムの前記仮ダイジェスト値として算出する
請求項5に記載のデータ保全システム。
【請求項7】
前記データ処理プログラムを識別するプログラム識別子が前記処理済みデータと共に登録され、
前記仮ダイジェスト値算出部は、前記処理済みデータと共に登録されているプログラム識別子を取得し、取得されたプログラム識別子で識別されるデータ処理プログラムを取得し、取得されたデータ処理プログラムのダイジェスト値を前記データ処理プログラムの前記仮ダイジェスト値として算出する
請求項5に記載のデータ保全システム。
【請求項8】
前記参照ダイジェスト値算出部は、前記算出されたダイジェスト値を結合して前記参照結合データを生成する
請求項1から請求項7のいずれか1項に記載のデータ保全システム。
【請求項9】
データ保存システムが、
データソースに保存されている元データを取得し、取得された元データを処理し、得られた処理済みデータを登録し、
前記処理済みデータの登録時に、取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、前記参照結合データのダイジェスト値を参照ダイジェスト値として算出し、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出し、
前記元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、前記検証結合データのダイジェスト値を検証ダイジェスト値として算出し、前記検証ダイジェスト値を前記参照ダイジェスト値と比較し、登録されている処理済みデータが前記データソースの前記元データに由来するデータであるか判定する
データ保全方法。
【請求項10】
データソースに保存されている元データを取得し、取得された元データを処理し、得られた処理済みデータを登録するデータ処理と、
前記処理済みデータの登録時に、取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、前記参照結合データのダイジェスト値を参照ダイジェスト値として算出する参照ダイジェスト値算出処理と、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出する仮ダイジェスト値算出処理と、
前記元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、前記検証結合データのダイジェスト値を検証ダイジェスト値として算出し、前記検証ダイジェスト値を前記参照ダイジェスト値と比較し、登録されている処理済みデータが前記データソースの前記元データに由来するデータであるか判定するデータ検証処理と、
をコンピュータに実行させるためのデータ保全プログラム。
【請求項11】
処理済みデータを検証するデータ検証装置であり、
前記処理済みデータは、データソースに保存されている元データを処理して得られ登録され、
前記処理済みデータの登録時に、取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、生成された参照結合データのダイジェスト値を参照ダイジェスト値として算出する参照ダイジェスト値算出部と、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出する仮ダイジェスト値算出部と、
前記元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、生成された検証結合データのダイジェスト値を検証ダイジェスト値として算出し、算出された検証ダイジェスト値を前記参照ダイジェスト値と比較し、登録されている処理済みデータが前記データソースの前記元データに由来するデータであるか判定するデータ検証部と、
を備えるデータ検証装置。
【請求項12】
データソースに保存されている元データの更新の前に前記データソースに保存されている元データを旧データとして取得し、取得された旧データを処理して処理済み旧データを得て、前記更新の後に前記データソースに保存されている元データを取得し、前記更新の後に取得された元データを処理して処理済み元データを得て、得られた処理済み元データと得られた処理済み旧データのダイジェスト値の組を処理済みデータとして登録するデータ処理部と、
前記処理済みデータの登録時に、前記更新の後に取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、前記参照結合データのダイジェスト値を参照ダイジェスト値として算出する参照ダイジェスト値算出部と、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出する仮ダイジェスト値算出部と、
前記更新の後に取得された元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記更新の後に取得された元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、前記検証結合データのダイジェスト値を検証ダイジェスト値として算出し、前記検証ダイジェスト値を前記参照ダイジェスト値と比較し、登録されている処理済みデータが前記更新の後の前記データソースの前記元データに由来するデータであるか判定するデータ検証部と、
を備えるデータ保全システム。
【請求項13】
前記データ処理部は、前記処理済み旧データを登録し、
前記データ検証部は、登録されている処理済み旧データのダイジェスト値を算出し、算出されたダイジェスト値を登録されている処理済みデータの中のダイジェスト値と比較する
請求項12に記載のデータ保全システム。
【請求項14】
データ保存システムが、
データソースに保存されている元データの更新の前に前記データソースに保存されている元データを旧データとして取得し、取得された旧データを処理して処理済み旧データを得て、前記更新の後に前記データソースに保存されている元データを取得し、前記更新の後に取得された元データを処理して処理済み元データを得て、得られた処理済み元データと得られた処理済み旧データのダイジェスト値の組を処理済みデータとして登録し、
前記処理済みデータの登録時に、前記更新の後に取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、生成された参照結合データのダイジェスト値を参照ダイジェスト値として算出し、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出し、
前記更新の後に取得された元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記更新の後に取得された元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、生成された検証結合データのダイジェスト値を検証ダイジェスト値として算出し、算出された検証ダイジェスト値を前記参照ダイジェスト値と比較する
データ保全方法。
【請求項15】
データソースに保存されている元データの更新の前に前記データソースに保存されている元データを旧データとして取得し、取得された旧データを処理して処理済み旧データを得て、前記更新の後に前記データソースに保存されている元データを取得し、前記更新の後に取得された元データを処理して処理済み元データを得て、得られた処理済み元データと得られた処理済み旧データのダイジェスト値の組を処理済みデータとして登録するデータ処理と、
前記処理済みデータの登録時に、前記更新の後に取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、生成された参照結合データのダイジェスト値を参照ダイジェスト値として算出する参照ダイジェスト値算出処理と、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出する仮ダイジェスト値算出処理と、
前記更新の後に取得された元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記更新の後に取得された元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、生成された検証結合データのダイジェスト値を検証ダイジェスト値として算出し、算出された検証ダイジェスト値を前記参照ダイジェスト値と比較するデータ検証処理と、
をコンピュータに実行させるためのデータ保全プログラム。
【請求項16】
処理済みデータを検証するデータ検証装置であり、
前記処理済みデータは、処理済み元データと処理済み旧データのダイジェスト値の組であり、
前記処理済み元データはデータソースに保存されている元データの更新の後に取得された元データを処理して得られ、
前記処理済み旧データは、前記更新の前に取得された元データを旧データとして処理して得られ、
前記処理済みデータの登録時に、前記更新の後に取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値に基づいて参照結合データを生成し、生成された参照結合データのダイジェスト値を参照ダイジェスト値として算出する参照ダイジェスト値算出部と、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出する仮ダイジェスト値算出部と、
前記更新の後に取得された元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記更新の後に取得された元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値に基づいて検証結合データを生成し、生成された検証結合データのダイジェスト値を検証ダイジェスト値として算出し、算出された検証ダイジェスト値を前記参照ダイジェスト値と比較するデータ検証部と、
を備えるデータ検証装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データを保全するための技術に関するものである。
【背景技術】
【0002】
伝統的に、大量のデータを安価に記憶しておくために、磁気テープを使ったデータバックアップシステムが使用されてきた。
しかし、データ記録システムの安全性、信頼性、および拡張性が不十分であった。例えば、データ圧縮およびエラー訂正が不十分であった。
【0003】
特許文献1はアーカイブデータ記録システムを開示している。
このシステムは、ジョブ計画の最適化、データプレーンでのデータ破損検出、メタデータプレーンでのエラー検出により、上記の課題を解決する。
具体的には、データは複数のサブパートに分割され、ダイジェスト値が集約されたルートダイジェストが保持される。これにより、データの真正性が担保される。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第6463796号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のデータ保全システムは、データの真正性を担保するためにデータのダイジェスト値を算出し、算出されたダイジェスト値をデータソースのダイジェスト値と比較する。これにより、データ保全システムは、データソースのデータと同じデータを保有することを検証する。
しかし、データの一部が保存された場合、また、加工されたデータが保存された場合、従来のデータ保全システムは、保存されたデータがデータソース由来のデータであることを保証できない。
【0006】
本開示は、データソースのデータが処理されて登録された場合に、登録されているデータがデータソースのデータに由来するデータであるか検証できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本開示のデータ保全システムは、
データソースに保存されている元データを取得し、取得された元データを処理し、得られた処理済みデータを登録するデータ処理部と、
前記処理済みデータの登録時に、取得された元データのダイジェスト値と前記処理済みデータのダイジェスト値を算出し、算出されたダイジェスト値を結合して参照結合データを生成し、前記参照結合データのダイジェスト値を参照ダイジェスト値として算出する参照ダイジェスト値算出部と、
前記処理済みデータの検証時に、登録されている処理済みデータのダイジェスト値を仮ダイジェスト値として算出する仮ダイジェスト値算出部と、
前記元データのダイジェスト値として前記データソースに保存されているダイジェスト値を仮ダイジェスト値として取得し、前記元データの前記仮ダイジェスト値と前記処理済みデータの前記仮ダイジェスト値を結合して検証結合データを生成し、前記検証結合データのダイジェスト値を検証ダイジェスト値として算出し、前記検証ダイジェスト値を前記参照ダイジェスト値と比較し、登録されている処理済みデータが前記データソースの前記元データに由来するデータであるか判定するデータ検証部と、を備える。
【発明の効果】
【0008】
本開示によれば、データソースのデータが処理されて登録された場合に、登録されているデータがデータソースのデータに由来するデータであるか検証することができる。
【図面の簡単な説明】
【0009】
図1】実施の形態1におけるデータ管理システム100の構成図。
図2】実施の形態1におけるデータ登録装置200の構成図。
図3】実施の形態1におけるデータ検証装置300の構成図。
図4】実施の形態1におけるデータソース装置400の構成図。
図5】実施の形態1におけるデータ登録処理のフローチャート。
図6】実施の形態1における整合性検証処理のフローチャート。
図7】実施の形態1におけるデータ保全方法の概要図。
図8】従来技術におけるデータ保全方法の概要図。
図9】従来技術におけるデータ保全方法の課題を示す図。
図10】実施の形態2におけるデータ管理システム100の構成図。
図11】実施の形態2における署名装置500の構成図。
図12】実施の形態2におけるデータ登録処理のフローチャート。
図13】実施の形態2における整合性検証処理のフローチャート。
図14】実施の形態2におけるデータ保全方法の概要図。
図15】実施の形態3におけるデータ登録処理のフローチャート。
図16】実施の形態3における整合性検証処理のフローチャート。
図17】実施の形態3におけるデータ保全方法の概要図。
図18】実施の形態4におけるデータ登録処理のフローチャート。
図19】実施の形態4における整合性検証処理のフローチャート。
図20】実施の形態4におけるデータ保全方法の概要図。
図21】実施の形態5におけるデータ登録処理のフローチャート。
図22】実施の形態5における整合性検証処理のフローチャート。
図23】実施の形態5におけるデータ保全方法の概要図。
図24】実施の形態6におけるデータ登録処理のフローチャート。
図25】実施の形態6における整合性検証処理のフローチャート。
図26】実施の形態6における整合性検証処理のフローチャート。
図27】実施の形態6におけるデータ保全方法の概要図。
図28】実施の形態6におけるデータ保全方法の概要図。
図29】実施の形態におけるデータ登録装置200のハードウェア構成図。
図30】実施の形態におけるデータ検証装置300のハードウェア構成図。
図31】実施の形態におけるデータソース装置400のハードウェア構成図。
図32】実施の形態における署名装置500のハードウェア構成図。
【発明を実施するための形態】
【0010】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【0011】
実施の形態1.
データ管理システム100について、図1から図9に基づいて説明する。
【0012】
***構成の説明***
図1に基づいて、データ管理システム100の構成を説明する。
データ管理システム100は、データ保全システム101と、データソース装置400と、を備える。
データ保全システム101は、データ登録装置200と、データ検証装置300と、を備える。
データ登録装置200とデータ検証装置300とデータソース装置400は、互いにネットワークを介して通信する。
【0013】
図2に基づいて、データ登録装置200の構成を説明する。
データ登録装置200は、プロセッサ201とメモリ202と補助記憶装置203と通信装置204と入出力インタフェース205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0014】
プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201はCPUである。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
【0015】
メモリ202は揮発性または不揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
RAMは、Random Access Memoryの略称である。
【0016】
補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
【0017】
通信装置204はレシーバ及びトランスミッタである。例えば、通信装置204は通信チップまたはNICである。データ登録装置200の通信は通信装置204を用いて行われる。
NICは、Network Interface Cardの略称である。
【0018】
入出力インタフェース205は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース205はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。データ登録装置200の入出力は入出力インタフェース205を用いて行われる。
USBは、Universal Serial Busの略称である。
【0019】
データ登録装置200は、データ処理部210とデータ管理部220という要素を備える。この要素はソフトウェアで実現される。
【0020】
補助記憶装置203には、データ処理部210とデータ管理部220としてコンピュータを機能させるためのデータ登録プログラムが記憶されている。データ登録プログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、データ登録プログラムを実行する。
OSは、Operating Systemの略称である。
【0021】
データ登録プログラムの入出力データは記憶部290に記憶される。
補助記憶装置203は記憶部290として機能する。但し、メモリ202、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、補助記憶装置203の代わりに、又は、補助記憶装置203と共に、記憶部290として機能してもよい。
記憶部290は、データストア291として機能する。
【0022】
データ登録装置200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。
【0023】
データ登録プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0024】
図3に基づいて、データ検証装置300の構成を説明する。
データ検証装置300は、プロセッサ301とメモリ302と補助記憶装置303と通信装置304と入出力インタフェース305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0025】
プロセッサ301は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ301はCPUである。
メモリ302は揮発性または不揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
通信装置304はレシーバ及びトランスミッタである。例えば、通信装置304は通信チップまたはNICである。データ検証装置300の通信は通信装置304を用いて行われる。
入出力インタフェース305は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース305はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。データ検証装置300の入出力は入出力インタフェース305を用いて行われる。
【0026】
データ検証装置300は、ダイジェスト値算出部310とデータ検証部320といった要素を備える。これらの要素はソフトウェアで実現される。
ダイジェスト値算出部310は、参照ダイジェスト値算出部311と、仮ダイジェスト値算出部312と、を備える。
【0027】
補助記憶装置303には、ダイジェスト値算出部310とデータ検証部320としてコンピュータを機能させるためのデータ検証プログラムが記憶されている。データ検証プログラムは、メモリ302にロードされて、プロセッサ301によって実行される。
補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
プロセッサ301は、OSを実行しながら、データ検証プログラムを実行する。
【0028】
データ検証プログラムの入出力データは記憶部390に記憶される。
補助記憶装置303は記憶部390として機能する。但し、メモリ302、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、補助記憶装置303の代わりに、又は、補助記憶装置303と共に、記憶部390として機能してもよい。
記憶部390は、データストア391として機能する。
【0029】
データ検証装置300は、プロセッサ301を代替する複数のプロセッサを備えてもよい。
【0030】
データ検証プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0031】
図4に基づいて、データソース装置400の構成を説明する。
データソース装置400は、プロセッサ401とメモリ402と補助記憶装置403と通信装置404と入出力インタフェース405といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0032】
プロセッサ401は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ401はCPUである。
メモリ402は揮発性または不揮発性の記憶装置である。メモリ402は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ402はRAMである。メモリ402に記憶されたデータは必要に応じて補助記憶装置403に保存される。
補助記憶装置403は不揮発性の記憶装置である。例えば、補助記憶装置403は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置403に記憶されたデータは必要に応じてメモリ402にロードされる。
通信装置404はレシーバ及びトランスミッタである。例えば、通信装置404は通信チップまたはNICである。データソース装置400の通信は通信装置404を用いて行われる。
入出力インタフェース405は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース405はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。データソース装置400の入出力は入出力インタフェース405を用いて行われる。
【0033】
データソース装置400は、データ管理部410とダイジェスト値算出部420といった要素を備える。これらの要素はソフトウェアで実現される。
【0034】
補助記憶装置403には、データ管理部410とダイジェスト値算出部420としてコンピュータを機能させるためのデータソースプログラムが記憶されている。データソースプログラムは、メモリ402にロードされて、プロセッサ401によって実行される。
補助記憶装置403には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ402にロードされて、プロセッサ401によって実行される。
プロセッサ401は、OSを実行しながら、データソースプログラムを実行する。
【0035】
データソースプログラムの入出力データは記憶部490に記憶される。
補助記憶装置403は記憶部490として機能する。但し、メモリ402、プロセッサ401内のレジスタおよびプロセッサ401内のキャッシュメモリなどの記憶装置が、補助記憶装置403の代わりに、又は、補助記憶装置403と共に、記憶部490として機能してもよい。
記憶部490は、データソース491として機能する。
【0036】
データソース装置400は、プロセッサ401を代替する複数のプロセッサを備えてもよい。
【0037】
データソースプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0038】
***動作の説明***
データ管理システム100の動作の手順はデータ管理方法に相当する。また、データ管理システム100の動作の手順はデータ管理プログラムによる処理の手順に相当する。
データ保全システム101の動作の手順はデータ保全方法に相当する。また、データ保全システム101の動作の手順はデータ保全プログラムによる処理の手順に相当する。
データ保全方法はデータ管理方法の一部である。
【0039】
図5から図7に基づいて、データ管理方法を説明する。
データソース491には、元データおよび元データのダイジェスト値が保存されている。元データのダイジェスト値は、ダイジェスト値算出部420によって算出される。
【0040】
図5に基づいて、データ登録処理を説明する。
データ登録処理は、データ管理方法において実行される処理である。
【0041】
ステップS101において、データ処理部210は、データソース491に保存されている元データを取得する。
例えば、データ管理部410が、データソース491から元データを読み出し、元データをデータ登録装置200へ送信する。そして、データ処理部210は元データを受信する。
【0042】
図7において、データAは元データでありデータソース491に保存されている。
データ処理部210は、データソース491に保存されているデータAを取得する。
【0043】
図5に戻り、ステップS102から説明を続ける。
ステップS102において、データ処理部210は、取得された元データを処理する。
具体的には、データ処理部210は、元データを入力にしてデータ処理プログラムを実行する。
これにより、処理済みデータが得られる。処理済みデータは処理後の元データである。
【0044】
ステップS103において、データ処理部210は、処理済みデータをデータストア291に登録する。
【0045】
図7において、データA’は、データAの処理済みデータであり、データストア291に保存される。
【0046】
図5に戻り、ステップS111から説明を続ける。
ステップS111において、参照ダイジェスト値算出部311は、元データと処理済みデータを取得する。
例えば、データ管理部220が元データと処理済みデータをデータ検証装置300へ送信する。そして、参照ダイジェスト値算出部311は元データと処理済みデータを受信する。
【0047】
そして、参照ダイジェスト値算出部311は、元データと処理済みデータを用いて、参照ダイジェスト値を算出する。
【0048】
参照ダイジェスト値は、以下のように算出される。
まず、参照ダイジェスト値算出部311は、元データのダイジェスト値を算出する。
また、参照ダイジェスト値算出部311は、処理済みデータのダイジェスト値を算出する。
次に、参照ダイジェスト値算出部311は、元データのダイジェスト値と処理済みデータのダイジェスト値を結合して結合データを生成する。生成された結合データを、参照結合データと称する。
参照結合データは、上記の方法以外の方法で算出されてもよい。例えば、元データと処理済みデータを結合して結合データを生成し、結合データのダイジェスト値が参照結合データとして算出されてもよい。また、結合の代わりに四則演算が用いられてもよい。
参照結合データの一意性が担保される方法であれば、参照結合データはどのような方法で算出されても構わない。参照結合データが元データと処理済みデータを使って算出されたダイジェスト値であれば問題ない。
そして、参照ダイジェスト値算出部311は、参照結合データのダイジェスト値を算出する。算出されるダイジェスト値が、参照ダイジェスト値である。
【0049】
ステップS112において、参照ダイジェスト値算出部311は、参照ダイジェスト値をデータストア391に保存する。
【0050】
図7において、D(D(データA)+D(データA’))は、参照ダイジェスト値であり、データストア391に保存される。D(データA)+D(データA’)は参照結合データである。D(データA)はデータAのダイジェスト値であり、D(データA’)はデータA’のダイジェスト値である。
【0051】
図6に基づいて、整合性検証処理を説明する。
整合性検証処理は、データ管理方法において実行される処理である。
【0052】
ステップS121において、仮ダイジェスト値算出部312は、データストア291に登録されている処理済みデータを取得する。
例えば、仮ダイジェスト値算出部312はデータ要求をデータ登録装置200へ送信する。データ管理部220は、データ要求を受信し、データストア291から処理済みデータを読み出し、処理済みデータをデータ検証装置300へ送信する。そして、仮ダイジェスト値算出部312は処理済みデータを受信する。
【0053】
そして、仮ダイジェスト値算出部312は、処理済みデータのダイジェスト値を算出する。算出されたダイジェスト値を、仮ダイジェスト値と称する。
【0054】
図7において、D(データA’)は処理済みデータの仮ダイジェスト値である。
【0055】
図6に戻り、ステップS122から説明を続ける。
ステップS122において、データ検証部320は、データソース491に保存されているダイジェスト値である元データのダイジェスト値を取得する。
例えば、データ検証部320はダイジェスト値要求をデータソース装置400へ送信する。データ管理部410は、ダイジェスト値要求を受信し、データソース491から元データのダイジェスト値を読み出し、元データのダイジェスト値をデータ検証装置300へ送信する。そして、データ検証部320は元データのダイジェスト値を受信する。
取得されたダイジェスト値を、仮ダイジェスト値と称する。
【0056】
図7において、D(データA)は、データAのダイジェスト値であり、データソース491に保存されている。
データ検証部320は、データソース491に保存されているD(データA)を取得する。
図7では、D(データA)は、データソース491に保存されている。しかし、データソース491には、データAのみがあってもよい。その場合、データ検証部320は、データAを取得し、取得したデータAを使ってD(データA)を算出する。
【0057】
図6に戻り、ステップS123から説明を続ける。
ステップS123において、データ検証部320は、元データの仮ダイジェスト値と処理済みデータの仮ダイジェスト値を結合して結合データを生成する。
生成された結合データを、検証結合データと称する。
【0058】
ステップS124において、データ検証部320は、検証結合データのダイジェスト値を算出する。
算出されたダイジェスト値を、検証ダイジェスト値と称する。
【0059】
ステップS125において、データ検証部320は、データストア391に保存されている参照ダイジェスト値を取得する。
具体的には、データ検証部320は、データストア391から参照ダイジェスト値を読み出す。
【0060】
図7において、D(D(データA)+D(データA’))は、参照ダイジェスト値であり、データストア391に保存されている。
データ検証部320は、データストア391に保存されている参照ダイジェスト値を取得する。
【0061】
図6に戻り、ステップS131から説明を続ける。
ステップS131において、データ検証部320は、検証ダイジェスト値を参照ダイジェスト値と比較する。
検証ダイジェスト値が参照ダイジェスト値と一致する場合、処理はステップS132に進む。
検証ダイジェスト値が参照ダイジェスト値と一致しない場合、処理はステップS133に進む。
【0062】
ステップS132において、データ検証部320は、“整合性あり”と判定する。
“整合性あり”は、データストア291に登録されている処理済みデータがデータソース491の元データに由来するデータであることを意味する。
そして、データ検証部320は、“整合性あり”を示す判定結果を出力する。例えば、データ検証部320は判定結果をディスプレイに表示する。
【0063】
ステップS133において、データ検証部320は、“整合性なし”と判定する。
“整合性なし”は、データストア291に登録されている処理済みデータがデータソース491の元データに由来するデータでないことを意味する。例えば、“整合性なし”は、データストア291に登録されている処理済みデータが改ざんされたデータであることを意味する。
そして、データ検証部320は、“整合性なし”を示す判定結果を出力する。例えば、データ検証部320は判定結果をディスプレイに表示する。
【0064】
***実施の形態1の効果***
図7から図9に基づいて、実施の形態1の効果を説明する。
図8および図9は、従来のデータ保全システムを示す。従来のデータ保全システムは、データAのダイジェスト値Dを比較することにより、登録されているデータAがデータソースのデータAと一致することを検証する(図8を参照)。しかし、データAの一部または変換されたデータAが登録される場合、従来のデータ保全システムは、登録されているデータA’がデータソースのデータAに由来するデータであることを検証できない。
図7は、データ保全システム101を示す。データ保全システム101は、データAのダイジェスト値DとデータA’のダイジェスト値Dの結合データのダイジェスト値D(D(データA)+D(データA’))(以下、DDと呼ぶ)を保存する。また、データ検証時に、データ保全システム101は、データソース491からデータAのダイジェスト値Dを取得し、登録されているデータA’のダイジェスト値Dを算出し、結合データのダイジェスト値DDを算出する。そして、データ保全システム101は、算出されたダイジェスト値DDを保存されたダイジェスト値DDと比較することにより、登録されているデータA’がデータソース491のデータAに由来するデータであることを検証する。
データA’が改ざんされるとデータA’のダイジェスト値Dが変わるため、検証時にダイジェスト値DDが一致しない。
つまり、データ保全システム101は、ダイジェスト値DDを保存することによって、登録されているデータA’がデータソース491のデータAに由来するデータであることを検証することができる。
なお、保存されているダイジェスト値DDが改ざんされるとデータA’の改ざんを検知することができなくなるので、ダイジェスト値DDは改ざんが難しい領域に保存することが望ましい。
【0065】
実施の形態2.
参照ダイジェスト値を安全に管理する形態について、主に実施の形態1と異なる点を図10から図14に基づいて説明する。
【0066】
***構成の説明***
図10に基づいて、データ管理システム100の構成を説明する。
データ管理システム100は、さらに署名装置500を備える。
【0067】
図11に基づいて、署名装置500の構成を説明する。
署名装置500は、プロセッサ501とメモリ502と補助記憶装置503と通信装置504と入出力インタフェース505といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0068】
プロセッサ501は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ501はCPUである。
メモリ502は揮発性または不揮発性の記憶装置である。メモリ502は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ502はRAMである。メモリ502に記憶されたデータは必要に応じて補助記憶装置503に保存される。
補助記憶装置503は不揮発性の記憶装置である。例えば、補助記憶装置503は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置503に記憶されたデータは必要に応じてメモリ502にロードされる。
通信装置504はレシーバ及びトランスミッタである。例えば、通信装置504は通信チップまたはNICである。署名装置500の通信は通信装置504を用いて行われる。
入出力インタフェース505は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース505はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。署名装置500の入出力は入出力インタフェース505を用いて行われる。
【0069】
署名装置500は、鍵管理部510と署名部520といった要素を備える。これらの要素はソフトウェアで実現される。
【0070】
補助記憶装置503には、鍵管理部510と署名部520としてコンピュータを機能させるための署名プログラムが記憶されている。署名プログラムは、メモリ502にロードされて、プロセッサ501によって実行される。
補助記憶装置503には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ502にロードされて、プロセッサ501によって実行される。
プロセッサ501は、OSを実行しながら、署名プログラムを実行する。
【0071】
署名プログラムの入出力データは記憶部590に記憶される。
補助記憶装置503は記憶部590として機能する。但し、メモリ502、プロセッサ501内のレジスタおよびプロセッサ501内のキャッシュメモリなどの記憶装置が、補助記憶装置503の代わりに、又は、補助記憶装置503と共に、記憶部590として機能してもよい。
【0072】
署名装置500は、プロセッサ501を代替する複数のプロセッサを備えてもよい。
【0073】
署名プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0074】
***動作の説明***
図12および図13に基づいて、データ管理方法を説明する。
署名装置500において、鍵管理部510は秘密鍵と公開鍵の組を生成する。秘密鍵は、署名装置500の記憶部590に記憶される。公開鍵は、データ検証装置300の記憶部390に記憶される。
【0075】
図12に基づいて、データ登録処理を説明する。
ステップS201からステップS203は、実施の形態1のステップS101からステップS103と同じである。
【0076】
ステップS211において、参照ダイジェスト値算出部311は、元データと処理済みデータを用いて、参照ダイジェスト値を算出する。
ステップS211は、実施の形態1のステップS111と同じである。
【0077】
ステップS212において、署名部520は、参照ダイジェスト値の署名(以下、ダイジェスト署名)を生成する。
ダイジェスト署名は、秘密鍵を用いて参照ダイジェスト値を暗号化して得られる値である。
【0078】
ダイジェスト署名は、以下のように生成される。
参照ダイジェスト値算出部311は、参照ダイジェスト値を署名装置500へ送信する。また、参照ダイジェスト値算出部311は、参照ダイジェスト値を一時的に記録しておく。
署名部520は、参照ダイジェスト値を受信し、秘密鍵を用いて参照ダイジェスト値のダイジェスト署名を生成する。
署名部520は、ダイジェスト署名をデータ検証装置300へ送信する。
参照ダイジェスト値算出部311は、ダイジェスト署名を受信する。
【0079】
ステップS213において、データ検証部320は、ダイジェスト署名をデータストア391に保存する。
【0080】
ダイジェスト署名は、以下のような手順で保存される。
データ検証部320は、公開鍵を用いてダイジェスト署名を復号して参照ダイジェスト値を取得する。
データ検証部320は、一時的に記録しておいた参照ダイジェスト値と復号して得られた参照ダイジェスト値を比較する。
比較した結果、一時的に記録しておいた参照ダイジェスト値と復号して得られた参照ダイジェスト値が同じであれば、データ検証部320は、ダイジェスト署名をデータストア391に保存する。
比較した結果、一時的に記録しておいた参照ダイジェスト値と復号して得られた参照ダイジェスト値が異なれば、処理はステップS212に進む。
【0081】
図13に基づいて、整合性検証処理を説明する。
ステップS221からステップS224は、実施の形態1のステップS121からステップS124と同じである。
【0082】
ステップS225において、データ検証部320は、データストア391からダイジェスト署名を取得し、公開鍵を用いてダイジェスト署名から参照ダイジェスト値を復号する。
【0083】
ステップS231からステップS233は、実施の形態1のステップS131からステップS133と同じである。
【0084】
***実施の形態2の効果***
図14に基づいて、実施の形態2の効果を説明する。
参照ダイジェスト値DDが改ざんされるとデータA’の改ざんを検知できないため、参照ダイジェスト値DDが安全に管理されることが望ましい。
そこで、署名装置500が用意され、秘密鍵を使ってダイジェスト署名S(D(D(データA)+D(データA’)))(以下、SDDと呼ぶ)が生成される。参照ダイジェスト値DDは公開鍵を使ってダイジェスト署名SDDを復号することでえることができる。秘密鍵を入手しない限り、ダイジェスト署名SDDを都合よく改ざんすることは困難である。
つまり、実施の形態2は、参照ダイジェスト値DDを安全に管理することができる。
【0085】
実施の形態3.
参照ダイジェスト値をデータソース491で管理する形態について、主に実施の形態1と異なる点を図15から図17に基づいて説明する。
【0086】
***構成の説明***
データ管理システム100の構成は、実施の形態1における構成と同じである。
【0087】
***動作の説明***
図15に基づいて、データ登録処理を説明する。
ステップS301からステップS303は、実施の形態1のステップS101からステップS103と同じである。
ステップS311は、実施の形態1のステップS111と同じである。
【0088】
ステップS312において、参照ダイジェスト値算出部311は、参照ダイジェスト値をデータソース装置400へ送信する。
データ管理部410は、参照ダイジェスト値を受信する。
【0089】
ステップS313において、データ管理部410は、参照ダイジェスト値をデータソース491に保存する。
【0090】
図16に基づいて、整合性検証処理を説明する。
ステップS321において、仮ダイジェスト値算出部312は、処理済みデータのダイジェスト値を算出する。算出されたダイジェスト値を、仮ダイジェスト値と称する。
ステップS321は、実施の形態1のステップS121と同じである。
【0091】
ステップS322において、データ検証部320は、データソース491に保存されているダイジェスト値である元データのダイジェスト値を取得する。取得されたダイジェスト値を、仮ダイジェスト値と称する。
また、データ検証部320は、データソース491に保存されている参照ダイジェスト値を取得する。
例えば、データ検証部320はダイジェスト値要求をデータソース装置400へ送信する。データ管理部410は、ダイジェスト値要求を受信し、データソース491から元データのダイジェスト値と参照ダイジェスト値を読み出し、元データのダイジェスト値と参照ダイジェスト値をデータ検証装置300へ送信する。そして、データ検証部320は元データのダイジェスト値と参照ダイジェスト値を受信する。
【0092】
ステップS323において、データ検証部320は、検証結合データを生成する。
ステップS323は、実施の形態1のステップS123と同じである。
【0093】
ステップS324において、データ検証部320は、検証ダイジェスト値を算出する。
ステップS324は、実施の形態1のステップS124と同じである。
【0094】
ステップS331からステップS333は、実施の形態1のステップS131からステップS133と同じである。
【0095】
***実施の形態3の効果***
図17に基づいて、実施の形態3の効果を説明する。
参照ダイジェスト値DDが改ざんされるとデータA’の改ざんを検知できないため、参照ダイジェスト値DDが安全に管理されることが望ましい。
そこで、参照ダイジェスト値DDをデータソース491で管理して参照ダイジェスト値DDの改ざんを困難にする。データソース491は、ブロックチェーンのような改ざんが困難なシステムであることが望ましい。
これにより、実施の形態3は、参照ダイジェスト値DDを安全に管理することができる。
【0096】
実施の形態4.
検証精度を高める形態について、主に実施の形態1と異なる点を図18から図20に基づいて説明する。
【0097】
***構成の説明***
データ管理システム100の構成は、実施の形態1における構成と同じである。
【0098】
***動作の説明***
図18に基づいて、データ登録処理を説明する。
ステップS401において、データ処理部210は、データソース491に保存されている元データを取得する。
ステップS401は、実施の形態1のステップS101と同じである。
【0099】
ステップS402において、データ処理部210は、元データを入力にしてデータ処理プログラムを実行する。これにより、処理済みデータが得られる。
ステップS402は、実施の形態1のステップS102と同じである。
【0100】
ステップS403において、データ処理部210は、処理済みデータと共にデータ処理プログラムをデータストア291に登録する。
【0101】
ステップS411において、参照ダイジェスト値算出部311は、元データと処理済みデータと共にデータ処理プログラムを取得する。
そして、参照ダイジェスト値算出部311は、元データと処理済みデータとデータ処理プログラムを用いて、参照ダイジェスト値を算出する。
具体的には、参照ダイジェスト値算出部311は、元データと処理済みデータとデータ処理プログラムのそれぞれのダイジェスト値を算出し、算出されたダイジェスト値を結合して参照結合データを生成する。そして、参照ダイジェスト値算出部311は、参照結合データのダイジェスト値(参照ダイジェスト値)を算出する。
【0102】
ステップS412において、参照ダイジェスト値算出部311は、参照ダイジェスト値をデータストア391に保存する。
ステップS412は、実施の形態1のステップS112と同じである。
【0103】
図19に基づいて、整合性検証処理を説明する。
ステップS421において、仮ダイジェスト値算出部312は、処理済みデータのダイジェスト値を算出する。算出されたダイジェスト値を、仮ダイジェスト値と称する。
ステップS421は、実施の形態1のステップS121と同じである。
【0104】
ステップS422において、仮ダイジェスト値算出部312は、データストア291に登録されているデータ処理プログラムを取得する。
そして、仮ダイジェスト値算出部312は、データ処理プログラムのダイジェスト値を算出する。算出されたダイジェスト値を、仮ダイジェスト値と称する。
【0105】
ステップS423において、データ検証部320は、データソース491に保存されているダイジェスト値である元データのダイジェスト値を取得する。取得されたダイジェスト値を、仮ダイジェスト値と称する。
ステップS423は、実施の形態1のステップS122と同じである。
【0106】
ステップS424において、データ検証部320は、元データの仮ダイジェスト値と処理済みデータの仮ダイジェスト値とデータ処理プログラムの仮ダイジェスト値を結合して結合データを生成する。生成された結合データを、検証結合データと称する。
【0107】
ステップS425において、データ検証部320は、検証結合データのダイジェスト値を算出する。算出されたダイジェスト値を、検証ダイジェスト値と称する。
ステップS425は、実施の形態1のステップS124と同じである。
【0108】
ステップS426において、データ検証部320は、データストア391に保存されている参照ダイジェスト値を取得する。
ステップS426は、実施の形態1のステップS125と同じである。
【0109】
ステップS431からステップS433は、実施の形態1のステップS131からステップS133と同じである。
【0110】
***実施の形態4の効果***
図20に基づいて、実施の形態4の効果を説明する。
データ処理プログラムがデータA’と共に登録される。そして、データAのダイジェスト値DとデータA’のダイジェスト値Dとデータ処理プログラムのダイジェスト値Dが結合され、結合データのダイジェスト値が参照ダイジェスト値D(D(データA)+D(データA’)+D(データ処理プログラム))(以下、DDと呼ぶ)として保存される。
データ処理プログラムも一緒に紐づけて参照ダイジェスト値として保存しておくことで、データA’がデータAをデータ処理プログラムで変換したことを保証することができ、データA’がデータAに由来することをより強く保証することができる。整合性をもってデータA’を改ざんするためには、データA’のダイジェスト値Dと参照ダイジェスト値DDの改ざんだけでなく、データ処理プログラムの改ざんも必要である。そのため、より高い堅牢性が得られる。
【0111】
実施の形態5.
複数のデータ処理プログラムを管理して検証精度を高める形態について、主に実施の形態1と異なる点を図21から図23に基づいて説明する。
【0112】
***構成の説明***
データ管理システム100の構成は、実施の形態1における構成と同じである。
但し、データ登録装置200の記憶部290には、複数のデータ処理プログラムが記憶されている。
【0113】
***動作の説明***
図18に基づいて、データ登録処理を説明する。
ステップS501において、データ処理部210は、データソース491に保存されている元データを取得する。
ステップS501は、実施の形態1のステップS101と同じである。
【0114】
ステップS502において、データ処理部210は、複数のデータ処理プログラムから、元データを処理するためのデータ処理プログラムを選択する。
例えば、データ処理プログラムは、データ登録装置200の利用者によって指定される。または、データ処理プログラムは、元データの種類によって決まる。
【0115】
そして、データ処理部210は、元データを入力にして、選択されたデータ処理プログラムを実行する。これにより、処理済みデータが得られる。
【0116】
ステップS503において、データ処理部210は、処理済みデータと共に、使用されたデータ処理プログラムのプログラム識別子をデータストア291に登録する。
【0117】
ステップS511において、参照ダイジェスト値算出部311は、元データと処理済みデータと共に、使用されたデータ処理プログラムを取得する。
そして、参照ダイジェスト値算出部311は、元データと処理済みデータとデータ処理プログラムを用いて、参照ダイジェスト値を算出する。
具体的には、参照ダイジェスト値算出部311は、元データと処理済みデータとデータ処理プログラムのそれぞれのダイジェスト値を算出し、算出されたダイジェスト値を結合して参照結合データを生成する。そして、参照ダイジェスト値算出部311は、参照結合データのダイジェスト値(参照ダイジェスト値)を算出する。
【0118】
ステップS512において、参照ダイジェスト値算出部311は、参照ダイジェスト値をデータストア391に保存する。
ステップS512は、実施の形態1のステップS112と同じである。
【0119】
図19に基づいて、整合性検証処理を説明する。
ステップS521において、仮ダイジェスト値算出部312は、処理済みデータのダイジェスト値を算出する。算出されたダイジェスト値を、仮ダイジェスト値と称する。
ステップS521は、実施の形態1のステップS121と同じである。
【0120】
ステップS522において、仮ダイジェスト値算出部312は、データストア291に登録されているプログラム識別子を取得する。
さらに、仮ダイジェスト値算出部312は、取得されたプログラム識別子で識別されるデータ処理プログラムを取得する。
そして、仮ダイジェスト値算出部312は、データ処理プログラムのダイジェスト値を算出する。算出されたダイジェスト値を、仮ダイジェスト値と称する。
【0121】
ステップS523において、データ検証部320は、データソース491に保存されているダイジェスト値である元データのダイジェスト値を取得する。取得されたダイジェスト値を、仮ダイジェスト値と称する。
ステップS523は、実施の形態1のステップS122と同じである。
【0122】
ステップS524において、データ検証部320は、元データの仮ダイジェスト値と処理済みデータの仮ダイジェスト値とデータ処理プログラムの仮ダイジェスト値を結合して結合データを生成する。生成された結合データを、検証結合データと称する。
【0123】
ステップS525において、データ検証部320は、検証結合データのダイジェスト値を算出する。算出されたダイジェスト値を、検証ダイジェスト値と称する。
ステップS525は、実施の形態1のステップS124と同じである。
【0124】
ステップS526において、データ検証部320は、データストア391に保存されている参照ダイジェスト値を取得する。
ステップS526は、実施の形態1のステップS125と同じである。
【0125】
ステップS531からステップS533は、実施の形態1のステップS131からステップS133と同じである。
【0126】
***実施の形態5の効果***
図23に基づいて、実施の形態5の効果を説明する。
データ処理プログラムのプログラム識別子がデータA’と共に登録される。そして、データAのダイジェスト値DとデータA’のダイジェスト値Dとデータ処理プログラムのダイジェスト値Dが結合され、結合データのダイジェスト値が参照ダイジェスト値DDとして保存される。検証時には、プログラム識別子で識別されるデータ処理プログラムのダイジェスト値Dが算出される。
これにより、データA’がデータAに由来することをより強い保証をもって検証できる。例えば、不正なデータ処理プログラムによるデータA’の改ざんを検出することが可能となる。
また、データ処理プログラムの代わりにプログラム識別子がデータストア291に登録されることにより、データストア291の省スペース化を図ることができる。
また、データ処理プログラムを限定することにより、任意のデータ処理プログラムが実行できなくなり、データA’の生成過程に不正が入りにくくなる。
【0127】
実施の形態6.
データソース491のデータが更新される場合の形態について、主に実施の形態1と異なる点を図24から図28に基づいて説明する。
【0128】
***構成の説明***
データ管理システム100の構成は、実施の形態1における構成と同じである。
但し、データソース491に保存される元データは更新される。更新される前の元データを、旧データと称する。
データソース491には、少なくとも元データおよび元データのダイジェスト値が保存されている。
【0129】
***動作の説明***
図24から図26に基づいて、データ管理方法を説明する。
旧データが更新される前に、データ処理部210は、データソース491に保存されている旧データを取得し、取得された旧データを処理して処理済み旧データを得て、処理済み旧データをデータストア291に登録している。
【0130】
図24に基づいて、データ登録処理を説明する。
ステップS601において、データ処理部210は、データソース491に保存されている元データを取得する。
ステップS601は、実施の形態1のステップS101と同じである。
【0131】
ステップS602において、データ処理部210は、取得された元データを処理する。
具体的には、データ処理部210は、元データを入力にしてデータ処理プログラムを実行する。
これにより、処理済み元データが得られる。処理済み元データは処理後の元データである。
【0132】
ステップS603において、データ処理部210は、処理済みデータをデータストア291に登録する。
処理済みデータは、処理済み元データと処理済み旧データのダイジェスト値の組である。
処理済み旧データのダイジェスト値は、例えば、ダイジェスト値算出部310によって算出される。
【0133】
ステップS611およびステップS612は、実施の形態1のステップS111およびステップS112と同じである。
【0134】
図25および図26に基づいて、整合性検証処理を説明する。
ステップS621からステップS625は、実施の形態1のステップS121からステップS125と同じである。
【0135】
ステップS631において、データ検証部320は、検証ダイジェスト値を参照ダイジェスト値と比較する。
検証ダイジェスト値が参照ダイジェスト値と一致する場合、処理はステップS641に進む。
検証ダイジェスト値が参照ダイジェスト値と一致しない場合、処理はステップS632に進む。
【0136】
ステップS632において、データ検証部320は、“整合性なし”と判定する。
ステップS632は、実施の形態1のステップS133と同じである。
【0137】
ステップS641において、データ検証部320は、データストア291に登録されている処理済み旧データを取得する。
そして、データ検証部320は、処理済み旧データのダイジェスト値を算出する。
【0138】
ステップS642において、データ検証部320は、処理済み旧データのダイジェスト値を、登録されている処理済みデータの中のダイジェスト値と比較する。
ダイジェスト値が一致する場合、データ検証部320は、処理済み旧データの中にダイジェスト値があるか判定する。
処理済み旧データの中にダイジェスト値がある場合、処理済み旧データが処理済みデータになり、処理はステップS641に進む。
処理済み旧データの中にダイジェスト値がない場合、処理はステップS651に進む。
ダイジェスト値が一致しない場合、処理はステップS652に進む。
【0139】
ステップS651において、データ検証部320は、“整合性あり”と判定する。
そして、データ検証部320は、“整合性あり”を示す判定結果を出力する。例えば、データ検証部320は判定結果をディスプレイに表示する。
【0140】
ステップS652において、データ検証部320は、“整合性なし”と判定する。
そして、データ検証部320は、“整合性なし”を示す判定結果を出力する。例えば、データ検証部320は判定結果をディスプレイに表示する。
【0141】
***実施の形態6の効果***
図27および図28に基づいて、実施の形態6の効果を説明する。
図27において、データソース491のデータは更新され、更新履歴が管理される。データの更新および更新履歴の管理に対応するため、データ保全システム101は、処理済み旧データA’のダイジェスト値Dを処理済みデータB’に含め、処理済みデータB’のダイジェスト値D(D(データB)+D(データB’))(以下、DDと呼ぶ)を保存する。
データ保全システム101は、ダイジェスト値DDからダイジェスト値Dを辿って検証を行うことにより、データの履歴の改ざんを検知することが可能である。ダイジェスト値DDは1つだけ保存されればよい。
図28で、ダイジェスト値DDが1つだけ保存されていれば、改ざんを検知できることを説明する。例えば、データA’を改ざんした場合、整合性を保つために、データB’のD(データA’)を改ざんする必要がある。同様に、データC’のD(データB’)、データD’のD(データC’)を改ざんし、最後にダイジェスト値DDを改ざんしなければ、整合性を保つことができない。そのため、ダイジェスト値DDが堅牢に保存されてさえいれば、どのデータを改ざんされても検知することが可能である。
【0142】
***実施の形態の補足***
データ保全システム101は、一つの装置で構成されてもよい。つまり、データ保全システム101はデータ保全装置であってもよい。
【0143】
図29に基づいて、データ登録装置200のハードウェア構成を説明する。
データ登録装置200は処理回路209を備える。
処理回路209は、データ処理部210とデータ管理部220を実現するハードウェアである。
処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
【0144】
処理回路209が専用のハードウェアである場合、処理回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
【0145】
データ登録装置200は、処理回路209を代替する複数の処理回路を備えてもよい。
【0146】
処理回路209において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【0147】
このように、データ登録装置200の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【0148】
図30に基づいて、データ検証装置300のハードウェア構成を説明する。
データ検証装置300は処理回路309を備える。
処理回路309は、ダイジェスト値算出部310とデータ検証部320を実現するハードウェアである。
処理回路309は、専用のハードウェアであってもよいし、メモリ302に格納されるプログラムを実行するプロセッサ301であってもよい。
処理回路309が専用のハードウェアである場合、処理回路309は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
データ検証装置300は、処理回路309を代替する複数の処理回路を備えてもよい。
処理回路309において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、データ検証装置300の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【0149】
図31に基づいて、データソース装置400のハードウェア構成を説明する。
データソース装置400は処理回路409を備える。
処理回路409は、データ管理部410とダイジェスト値算出部420を実現するハードウェアである。
処理回路409は、専用のハードウェアであってもよいし、メモリ402に格納されるプログラムを実行するプロセッサ401であってもよい。
処理回路409が専用のハードウェアである場合、処理回路409は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
データソース装置400は、処理回路409を代替する複数の処理回路を備えてもよい。
処理回路409において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、データソース装置400の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【0150】
図32に基づいて、署名装置500のハードウェア構成を説明する。
署名装置500は処理回路509を備える。
処理回路509は、鍵管理部510と署名部520を実現するハードウェアである。
処理回路509は、専用のハードウェアであってもよいし、メモリ502に格納されるプログラムを実行するプロセッサ501であってもよい。
処理回路509が専用のハードウェアである場合、処理回路509は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
署名装置500は、処理回路509を代替する複数の処理回路を備えてもよい。
処理回路509において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、署名装置500の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【0151】
各実施の形態は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【0152】
データ管理システム100において各装置の各要素の「部」は、「処理」、「工程」、「回路」または「サーキットリ」と読み替えてもよい。
【符号の説明】
【0153】
100 データ管理システム、101 データ保全システム、200 データ登録装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 通信装置、205 入出力インタフェース、209 処理回路、210 データ処理部、220 データ管理部、290 記憶部、291 データストア、300 データ検証装置、301 プロセッサ、302 メモリ、303 補助記憶装置、304 通信装置、305 入出力インタフェース、309 処理回路、310 ダイジェスト値算出部、311 参照ダイジェスト値算出部、312 仮ダイジェスト値算出部、320 データ検証部、390 記憶部、391 データストア、400 データソース装置、401 プロセッサ、402 メモリ、403 補助記憶装置、404 通信装置、405 入出力インタフェース、409 処理回路、410 データ管理部、420 ダイジェスト値算出部、490 記憶部、491 データソース、500 署名装置、501 プロセッサ、502 メモリ、503 補助記憶装置、504 通信装置、505 入出力インタフェース、5090 処理回路、510 鍵管理部、520 署名部、590 記憶部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32