JP7476876B2 - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP7476876B2
JP7476876B2 JP2021501718A JP2021501718A JP7476876B2 JP 7476876 B2 JP7476876 B2 JP 7476876B2 JP 2021501718 A JP2021501718 A JP 2021501718A JP 2021501718 A JP2021501718 A JP 2021501718A JP 7476876 B2 JP7476876 B2 JP 7476876B2
Authority
JP
Japan
Prior art keywords
data
trace
public key
certificate
generated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021501718A
Other languages
English (en)
Other versions
JPWO2020170685A1 (ja
Inventor
卓也 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp, Sony Group Corp filed Critical Sony Corp
Publication of JPWO2020170685A1 publication Critical patent/JPWO2020170685A1/ja
Application granted granted Critical
Publication of JP7476876B2 publication Critical patent/JP7476876B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
近年、ブロックチェーンをはじめとしたピアツーピアデータベースを使用するサービスが盛んに開発されている。例えば、カメラ等のセンサーデバイスによって生成されたデータ(画像データ等)や加工されたデータを、ブロックチェーンを用いて各データの真正性に係るメタデータ(例えば、著作権データ等)を検証する著作権管理サービスや、加工元データと加工データ(加工により生成されたデータ)の関係をトレースするデータ流通管理サービス等が開発されている。図1を参照してデータ流通管理サービスの具体例を説明する。例えば、図1に示すように、生成装置がデータ0を含むファイル0を生成した後、加工装置Aがデータ0(加工元データ)を用いて、データ1(加工データ)を含むファイル1を生成したとする。このとき、加工装置Aは、自装置の記憶部に記憶された公開鍵暗号の秘密鍵と秘密鍵のペアを用い、例えば、秘密鍵Aを用いてデータ1のハッシュ値に対して電子署名を施すことで生成した証明書(図1では、「データ1の証明書」と表記)をファイル1に含める。そして加工装置Aの公開鍵A及びデータ1の証明書は、ブロックチェーンに登録される。その後、加工装置Bがデータ1(加工元データ)を用いて、データ2(加工データ)を含むファイル2を生成したとする。このとき、加工装置Bは、上記と同様に、自装置の記憶部に記憶された秘密鍵Bを用いてデータ2のハッシュ値に対して電子署名を施すことで生成した証明書(図1では、「データ2の証明書」と表記)をファイル2に含め、加工装置Bの公開鍵B及びデータ2の証明書がブロックチェーンに登録される。上記の加工はデータ流通の過程にて連鎖的に行われ、各証明書にはデータ流通を識別可能なIDが含まれる。
そして、検証装置(図示なし)は、ブロックチェーンに登録された公開鍵Aでデータ1の証明書を検証し、公開鍵Bでデータ2の証明書を検証することで各データの真正性を検証することができる。また、検証装置は、ブロックチェーンにおける証明書の登録順等に基づいて加工元データと加工データの関係をトレースすることもできる(なお、トレースの方法は必ずしもこれに限定されない)。当該仕組みを利用したものには、例えば以下の特許文献1に係る情報処理システムが挙げられる。
特開2018-117287号公報
しかし、図1を参照して説明した上記の仕組みによっては、各データの真正性の検証、及び加工元データと加工データの関係のトレースを適切に実現することができない場合があった。例えば、トレース対象となる全ての加工データを順番にブロックチェーンに登録することが求められることにより、登録されるデータの管理が複雑化し、データの登録数に依存してブロックチェーンのトランザクション数が増加するため、ブロックチェーン及びサービスの運用コストが高くなる場合がある。また、証明書の生成に用いられる秘密鍵を漏洩することなく管理することが求められ、仮に秘密鍵が漏洩すると情報処理システム全体の信頼が失われる。さらに、悪意のある第三者が、他人の加工データを、自らが作成したオリジナルデータであると偽ってブロックチェーンに登録することもできる場合があるため、データに係るメタデータの真正性や当該メタデータの検証の観点で問題がある。
そこで、本開示は、上記事情に鑑みてなされたものであり、各データに係るメタデータの真正性の検証、及び加工元データと加工データの関係のトレースをより適切に実現することが可能な、新規かつ改良された情報処理装置、情報処理方法、およびプログラムを提供する。
本開示によれば、少なくとも1以上の第1のデータに基づいて生成された第2のデータに対する公開鍵及び秘密鍵を生成する鍵生成部と、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記第2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名を施した証明書を生成する証明書生成部と、前記第1のデータと前記第2のデータの関係をトレースすることに用いられるトレースデータと、前記第2のデータに対する秘密鍵を前記第2のデータに付加するトレースデータ処理部と、を備え、前記トレースデータは、前記証明書生成部によって生成された証明書、及び前記第1のデータに付加されたトレースデータを含む、情報処理装置が提供される。
また、本開示によれば、少なくとも1以上の第1のデータに基づいて生成された第2のデータに対する公開鍵及び秘密鍵を生成することと、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記第2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名を施した証明書を生成することと、前記第1のデータと前記第2のデータの関係をトレースすることに用いられるトレースデータと、前記第2のデータに対する秘密鍵を前記第2のデータに付加することと、前記トレースデータは、前記証明書、及び前記第1のデータに付加されたトレースデータを含む、コンピュータに実現させるためのプログラムが提供される。
また、本開示によれば、データを生成するデータ生成部と、前記データに対する公開鍵及び秘密鍵を生成する鍵生成部と、前記データに対する公開鍵、若しくは前記データに対する公開鍵を用いて生成された、前記データに対する公開鍵を識別可能なIDと、前記データ、若しくは前記データから生成されたデータに対して、自装置に対する秘密鍵を用いて電子署名を施した証明書を生成する証明書生成部と、前記データが自装置によって生成されたことをトレースすることに用いられ、前記証明書生成部によって生成された証明書が含まれるトレースデータと、前記データに対する秘密鍵を前記データに付加するトレースデータ処理部と、を備える、情報処理装置が提供される。
また、本開示によれば、少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証する検証部と、前記第2のデータ、若しくは前記第2のデータを識別可能なIDを前記データベースに登録する登録部と、を備え、前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、情報処理装置が提供される。
また、本開示によれば、少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証することと、前記第2のデータ、若しくは前記第2のデータを識別可能なIDを前記データベースに登録することと、を有し、前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、コンピュータにより実行される情報処理方法が提供される。
また、本開示によれば、少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証する外部装置へ、前記トレースデータを提供するプログラムであり、前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、コンピュータに実現させるためのプログラムが提供される。
本開示の背景技術として、ブロックチェーンに関する技術を説明する図である。 本開示の背景技術として、ブロックチェーンに関する技術を説明する図である。 本開示の背景技術として、ブロックチェーンに関する技術を説明する図である。 本開示の背景技術として、ブロックチェーンに関する技術を説明する図である。 本実施形態に係る情報処理システムの構成例を示すブロック図である。 製造者装置及び生成装置の構成例と、生成装置により生成されるデータの構成例と、を示すブロック図である。 加工装置の構成例と、加工装置により生成されるデータの構成例と、を示すブロック図である。 検証装置の構成例を示すブロック図である。 ノード装置の構成例と、ノード装置によりP2Pデータベースに登録されるデータの構成例と、を示すブロック図である。 Origin Trace Dataの構成例を示す図である。 Origin Trace Dataにおけるデータ情報(Data Info)の構成例を示す図である。 Origin Trace Dataにおけるトレースデータ(Trace Info)の構成例を示す図である。 トレースデータ(Trace Info)におけるダイジェスト情報(DigestInfo)の構成例を示す図である。 P2Pデータベースに登録されるデータ情報(DataRecord)の構成例を示す図である。 P2Pデータベースに登録されるユーザ情報(UserRecord)の構成例を示す図である。 P2Pデータベースに登録される、生成装置の公開鍵の証明書(Certificate)の構成例を示す図である。 P2Pデータベースに登録される連想配列の構成例を示す図である。 著作権について、定義値、プログラムで使用される値、及び各著作権の内容の一覧を示す図である。 加工装置によるデータの加工処理フローの一例を示すフローチャートである。 加工装置による第2のデータのOrigin Trace Dataの生成処理フローの一例を示すフローチャートである。 加工装置による第2のデータのOrigin Trace Dataの生成処理フローの一例を示すフローチャートである。 P2PデータベースプログラムによるUserRecordの登録処理フローの一例を示すフローチャートである。 P2PデータベースプログラムによるDataRecordの登録処理フローの一例を示すフローチャートである。 検証部によるトレースデータの検証処理フローの一例を示すフローチャートである。 P2PデータベースプログラムによるUserRecordの取得処理フローの一例を示すフローチャートである。 P2PデータベースプログラムによるDataRecordの取得処理フローの一例を示すフローチャートである。 図23や図24にて行われるトレースデータの検証処理フロー(サブルーチン2-1)の一例を示すフローチャートである。 図27にて行われるTraceInfoの証明書検証処理フロー(サブルーチン2-1-1)の一例を示すフローチャートである。 図28にて行われるオリジナルデータの証明書検証処理フロー(サブルーチン2-1-2)の一例を示すフローチャートである。 図28にて行われるデータの証明書検証処理フロー(サブルーチン2-1-3)の一例を示すフローチャートである。 図23にて行われる登録済DataRecordの検証処理フロー(サブルーチン2-2)の一例を示すフローチャートである。 図23にて行われるDataRecordの登録処理フロー(サブルーチン2-3)の一例を示すフローチャートである。 生成装置(カメラ等)の所有者がメーカ提供のアプリケーションを用いて画像データをブロックチェーンに登録する場合の処理フローの一例を示すシーケンス図である。 画像データを生成したユーザがメーカ提供のサービスを利用して画像データの真正性を証明する証明書を作成し、当該証明書を他者と共有する場合の処理フローの一例を示すシーケンス図である。 ユーザがメーカ提供のサービスを利用して不正使用を報告する報告書を作成し、当該報告書を他者と共有する場合の処理フローの一例を示すシーケンス図である。 ユーザが、他のユーザによって生成された画像データを購入する場合の処理フローの一例を示すシーケンス図である。 本実施形態に係る製造者装置、生成装置、加工装置、検証装置、又はノード装置の少なくともいずれかを具現する情報処理装置のハードウェア構成例を示すブロック図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.ピアツーピアデータベースの概要
2.情報処理システムの構成例
3.各装置の構成例及び生成されるデータ
4.データの構成例
5.著作権
6.各装置の処理フロー例
7.実施例
8.各装置のハードウェア構成例
<1.ピアツーピアデータベースの概要>
本開示に係る一実施形態について説明する前に、まず、ピアツーピアデータベースの概要について説明する。
本開示に係る情報処理システムでは、ピアツーピアネットワークに流通している分散型のピアツーピアデータベースが利用される。なお、ピアツーピアネットワークは、ピアツーピア型分散ファイルシステムと呼称される場合もある。本書では、ピアツーピアネットワークを「P2Pネットワーク」、ピアツーピアデータベースを「P2Pデータベース」と呼称する。P2Pデータベースの例として、P2Pネットワークに流通しているブロックチェーンが挙げられる。よって最初に、一例として、ブロックチェーンシステムの概要について説明する。
図2に示すように、ブロックチェーンは、複数のブロックがあたかも鎖のように連なって含まれるデータである。それぞれのブロックには、1又は2以上の対象データが、トランザクションデータ(取引)として格納され得る。
ブロックチェーンとしては、例えば、Bitcoin等の仮想通貨のデータのやり取りに用いられるものが挙げられる。仮想通貨のデータのやり取りに用いられるブロックチェーンには、例えば、直前のブロックのハッシュと、ナンスと呼ばれる値が含まれる。直前のブロックのハッシュは、直前のブロックから正しく連なる、「正しいブロック」であるか否かを判定するために用いられる情報である。ナンスは、ハッシュを用いた認証においてなりすましを防ぐために用いられる情報であり、ナンスを用いることによって改ざんが防止される。ナンスとしては、例えば、文字列、数字列、あるいは、これらの組み合わせを示すデータ等が挙げられる。
また、ブロックチェーンでは、各トランザクションデータに暗号鍵を用いた電子署名が付与されることによって、なりすましが防止される。また、各トランザクションデータは公開され、P2Pネットワーク全体で共有される。なお、各トランザクションデータは暗号鍵を用いて暗号化されてもよい。
図3は、ブロックチェーンシステムにおいて、対象データがユーザAによって登録される様子を示す図である。ユーザAは、ブロックチェーンに登録する対象データに対して、ユーザAの秘密鍵を用いて生成された電子署名を付する。そしてユーザAは、電子署名が付された対象データを含むトランザクションデータをP2Pネットワーク上にブロードキャストする。これによって、対象データの保有者がユーザAであることが担保される。
図4は、ブロックチェーンシステムにおいて、対象データの所有権がユーザAからユーザBに移行される様子を示す図である。ユーザAは、ユーザAの秘密鍵を用いて生成した電子署名をトランザクションデータに付し、当該トランザクションデータにユーザBの公開鍵を含める。これにより、対象データの所有権がユーザAからユーザBに移行されたことが示される。またユーザBは、対象データの取引に際して、ユーザAの公開鍵をユーザAから取得し、電子署名が付された又は暗号化された対象データを取得してもよい。
また、ブロックチェーンシステムでは、例えばサイドチェイン技術を利用することによって、Bitcoinのブロックチェーン等(既存の仮想通貨のデータのやり取りに用いられるブロックチェーン)に、仮想通貨とは異なる他の対象データを含めることも可能である。
<2.情報処理システムの構成例>
上記では、P2Pデータベースの概要について説明した。続いて、図5を参照して、本開示の一実施形態に係る情報処理システムの構成例について説明する。図5は、本実施形態に係る情報処理システムの構成例を示すブロック図である。
図5に示すように、本実施形態に係る情報処理システムは、製造者装置100と、生成装置200と、加工装置300と、検証装置400と、ノード装置500と、を備える。そして、ノード装置500は、P2Pネットワーク600に接続している。
製造者装置100は、生成装置200の製造者の装置であり、生成装置200の鍵を管理する情報処理装置である。本実施形態においては、生成装置200がカメラである場合(換言すると、処理対象となるデータが画像データである場合)を一例として説明するところ、製造者装置100は、例えば生成装置200(カメラ)の製造メーカの情報処理装置である。生成装置200は、加工元データとして使用されるオリジナルデータを生成する情報処理装置である。加工装置300は、生成装置200によって生成されたオリジナルデータを用いて加工データを生成する情報処理装置である。ここで、図5の例では1台の加工装置300のみが表示されているが、加工装置300の台数は特に限定されず、加工装置300は、他の加工装置300によって生成された加工元データを用いて加工データを生成してもよい。加工装置300は、例えば、画像データの編集に用いられるコンピュータ等であり得る。検証装置400は、ノード装置500と連携することによって各データの真正性を検証し、加工元データと加工データの関係をトレースする情報処理装置である。ノード装置500は、P2Pデータベースを保持しており、P2Pデータベースへのデータの登録、及びP2Pデータベースからのデータの取得等を行う情報処理装置である。P2Pネットワーク600は、P2Pデータベースが流通しているネットワークである。
なお、図5を参照して説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理システムの構成は係る例に限定されない。本実施形態に係る情報処理システムの構成は、仕様や運用に応じて柔軟に変形可能である。また、上記のとおり、本実施形態においては、処理対象となるデータが画像データである場合を一例として説明するところ、処理対象となるデータは必ずしもこれに限定されない。例えば、処理対象となるデータは、音楽データや任意のセンサデータ等であってもよい。
<3.各装置の構成例及び生成されるデータ>
上記では、本開示の一実施形態に係る情報処理システムの構成例について説明した。続いて図6~図9を参照して、本実施形態に係る各装置の構成例、及び各装置により生成されるデータ(又は、各装置により記憶されるデータ)について説明する。なお、本実施形態の各装置で使用される鍵は楕円曲線暗号等の公開鍵暗号の鍵であり、鍵は秘密鍵と公開鍵のペアからなる。
図6は、製造者装置100及び生成装置200の構成例と、生成装置200により生成されるデータの構成例と、を示すブロック図である。なお図6は、本実施形態に係る各装置及び各データの主たる構成の例を示したものであり、一部の構成が省略されたものである点に留意されたい(図7~図9についても同様)。
図6に示すように、製造者装置100は記憶部110を備えており、記憶部110は、生成装置200の鍵、及び製造者の鍵を記憶している。製造者の鍵は、公開鍵Sに対して秘密鍵Sを用いて署名が施されることで生成された公開鍵Sの証明書と、秘密鍵Sと、を含んでいる。また、生成装置200の鍵は、公開鍵αに対して秘密鍵Sを用いて署名が施されることで生成された公開鍵αの証明書と、秘密鍵αと、を含んでいる。
また図6に示すように、生成装置200は、データ生成部210と、証明書生成部220と、鍵生成部230と、トレースデータ処理部240と、記憶部250と、を備える。データ生成部210は、データとして例えば画像データ(図6では「データ0」と表記)を生成する構成である。鍵生成部230は、データ生成部210によって生成されたデータ0に対して公開鍵暗号の鍵(公開鍵及び秘密鍵)を生成する構成である。記憶部250は、上記で説明した生成装置200の鍵を記憶しており、証明書生成部220は、データ0に対する公開鍵0(又はデータ0に対する公開鍵0を用いて生成された、データ0に対する公開鍵0を識別可能なID)、及びデータ0の認証符号(データ0から生成されたデータであり、データ0の認証に用いられる情報。詳細については後述する。又はデータ0自体であってもよい)に対して、自装置に対する秘密鍵αを用いて電子署名を施すことでデータ0の証明書を生成する。トレースデータ処理部240は、データ0が自装置によって生成されたことをトレースすることに用いられ、証明書生成部220によって生成された証明書が含まれるトレースデータと、データ0に対する秘密鍵0をデータ0に付加することでファイル0を生成する。
図7は、加工装置300の構成例と、加工装置300により生成されるデータの構成例と、を示すブロック図である。図7には、加工装置300が、生成装置200によって生成されたデータ0に基づいてデータ(図7では「データ1」)を生成する場合が示されている。図7に示すように、加工装置300は、データ加工部310と、証明書生成部320と、鍵生成部330と、トレースデータ処理部340と、を備える。データ加工部310は、少なくとも1以上の第1のデータ(加工元データ。図7の例ではデータ0)に基づいて第2のデータ(加工データ。図7の例ではデータ1)を生成する構成である。例えば、データ加工部310は、画像データであるデータ0に対して画像処理を施すことによってデータ1を生成する。鍵生成部330は、データ加工部310によって生成されたデータ1に対して公開鍵暗号の鍵(公開鍵及び秘密鍵)を生成する構成である。証明書生成部320は、データ1に対する公開鍵1(又は、データ1に対する公開鍵1を用いて生成された、データ1に対する公開鍵を識別可能なID)、及びデータ1の認証符号(データ1から生成されたデータであり、データ1の認証に用いられる情報。詳細については後述する。又はデータ1自体であってもよい)に対して、データ0に対する秘密鍵0を用いて電子署名を施すことでデータ1の証明書を生成する。トレースデータ処理部340は、データ0(第1のデータ)とデータ1(第2のデータ)の関係をトレースすることに用いられるトレースデータと、データ1(第2のデータ)に対する秘密鍵1をデータ1(第2のデータ)に付加することでファイル1を生成する。なお、トレースデータは、証明書生成部320によって生成された証明書、及びデータ0(第1のデータ)に付加されたトレースデータを含む。ファイル1の生成に際して、トレースデータ処理部340はデータ1の証明書生成後は秘密鍵0を破棄する。なお、以降では、第2のデータの生成に用いられた第1のデータを「親データ」と呼称し、第2のデータを「子データ」と呼称する場合がある。また、データ同士の連鎖的な関係において、あるデータの前段に連なる各データを「祖先データ」と呼称する場合もある。
図6及び図7を参照して説明したように、第2のデータについての証明書、及び第1のデータに付加された証明書が含まれるトレースデータが第2のデータに付加されることで、データ間の関係を適切にトレースすることができる。より具体的には、第1のデータの証明書に含まれる、第1のデータについての公開鍵を用いて、ペアとなる秘密鍵で生成された第2のデータの証明書を検証することができる。これによって、連鎖的に関係する各データをさかのぼり、各トレースデータに含まれる各証明書を検証し、生成装置200の公開鍵αによりオリジナルデータの証明書を検証することで、各データが生成装置200によって生成されたオリジナルデータを基に加工されたデータであると証明することができる。また、第2のデータについての秘密鍵が、第2のデータに付加されるトレースデータに含まれる一方で、第1のデータについての秘密鍵は、第2のデータに付加されるトレースデータに含まれないことで、祖先データについての秘密鍵の漏洩を適切に防止することができる。また、図6に示すように、生成装置200に対する秘密鍵αによって生成された、データ0の証明書がトレースデータに含まれることによって、オリジナルデータが生成装置200により生成されたことを検証することができる。また、悪意のある第三者が、他人のトレースデータ付きデータを、自らが作成したデータであると偽って登録することを防ぐことができる。例えば、カメラの所有者のみがオリジナル写真および加工写真を登録できる著作権管理システムを実現することができる。
図8は、検証装置400の構成例を示すブロック図である。図8に示すように、検証装置400は、検証部410と、データ類似判定部420と、を備える。検証部410は、ノード装置500と連携することで、生成装置200や加工装置300により生成されたデータの真正性の検証、及びデータ間の関係をトレースする構成である。より具体的には、検証部410は、少なくとも1以上の第1のデータと、第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、第2のデータに付加されるトレースデータ、及びデータベース(本実施形態ではP2Pデータベース)に登録されている情報を用いて、第2のデータの真正性を検証するノード装置500へトレースデータを提供する構成である。ノード装置500は、当該トレースデータを用いて第2のデータの真正性の検証、及びデータ間の関係のトレースを行い、その後、検証部410は、ノード装置500から検証結果を受ける。データ類似判定部420は、第1のデータと第2のデータの類似度を判定することで、第2のデータが第1のデータを元に生成されたこと等を判定することができる。例えば、データ類似判定部420は、画像データ解析等(これに限定されない)により、複数の画像データ同士の類似度を算出し、当該類似度が所定の閾値以上である場合、これらのデータが第1のデータと第2のデータの関係(換言すると、親子関係)にあると判定することができる。一方、算出された類似度が所定の閾値より低い場合、データ類似判定部420は、これらのデータが第1のデータと第2のデータの関係にないと判定することができる。これによって、検証装置400は、オリジナル写真の真正性又は著作権を証明するサービスや、登録されたオリジナル写真との画像類似判定により、対象写真が盗用写真であるか否かを検証するサービス等を実現することができる。これらサービスについては後述する。
図9は、ノード装置500の構成例と、ノード装置500によりP2Pデータベースに登録されるデータの構成例とを示すブロック図である。図9に示すように、ノード装置500は、P2Pデータベース510を備える。また、図9に示すように、P2Pデータベース510はP2Pデータベースプログラム511を含み、さらに、P2Pデータベースプログラム511は検証部511aを含む。P2Pデータベース510は、ノード装置500に保持されるデータベースであり、例えば、ブロックチェーンのノードである。P2Pデータベース510には、真正性の担保が求められるようなより重要度の高いデータが登録される。P2Pデータベース510に登録される各種データは、暗号鍵を用いて生成された電子署名を付されたり、または暗号鍵を用いて暗号化されたりしてもよい。なお、P2Pデータベース510に登録されるデータの内容は特に限定されない。P2Pデータベースプログラム511は、P2Pデータベース510に備えられ、P2Pデータベース510上で実行される所定のプログラムである。P2Pデータベースプログラム511が用いられることによって、例えば、Bitcoin等のような仮想通貨の取引を含む様々な処理が所定のルールに従って一貫性を保ちつつ実現される。また、P2Pデータベースプログラム511がP2Pデータベース510に設けられることによって当該プログラムが不正に改変されるリスクが低減される。P2Pデータベースプログラム511は、ハイパーレッジャー(Hyperledger)におけるチェーンコードであってもよいが、スマートコントラクトであってもよい。検証部511aは、P2Pデータベースプログラム511の機能の一部を実現する構成であり、少なくとも1以上の第1のデータと、第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、第2のデータに付加されるトレースデータ、及びデータベース(本実施形態ではP2Pデータベース)に登録されている情報を用いて、第2のデータ(又は第2のデータから生成されたデータ)の真正性の検証、及びデータ間の関係のトレースを行う構成である。より具体的には、検証部511aは、第1のデータに付加されたトレースデータに含まれる、第1のデータに対する公開鍵(若しくは第1のデータに対する公開鍵を用いて生成された、第1のデータに対する公開鍵を識別可能なID)を用いて、トレースデータに含まれる、第1のデータに対する秘密鍵を用いて電子署名を施された第2のデータの証明書を検証する。検証部511aは、連鎖的に関係する各データをさかのぼるように証明書の検証を繰り返し行う。また、検証部511aは、検証の成功後に、第2のデータ、若しくは第2のデータを識別可能なIDをP2Pデータベース510に登録する登録部(図示なし)としても機能する。
また、図9に示すように、P2Pデータベース510には、製造者に対する公開鍵Sが製造者に対する秘密鍵Sによって電子署名を施されることで生成された公開鍵Sの証明書が製造者情報として登録される。また、P2Pデータベース510には、生成装置200に対する公開鍵α(又は、生成装置200に対する公開鍵αの識別子)が製造者に対する秘密鍵Sによって電子署名を施されることで生成された公開鍵αの証明書(Certificate)もユーザ情報(UserRecord)として登録される。なお、公開鍵αの証明書は、製造者の公開鍵Sにて署名検証され生成装置200がユーザの所有であることが検証された後にP2Pデータベース510に登録される。また、公開鍵αの証明書がP2Pデータベース510に登録されず、製造者の公開鍵Sにて署名検証が行われた後に、生成装置200に対する公開鍵α(又は、生成装置200に対する公開鍵αの識別子)がP2Pデータベース510に登録されてもよい。P2Pデータベース510には、例えば、データ間の連鎖的な関係における最初のデータ(図9の例では「データ0」。本書では「オリジナルデータ」とも呼称する)のIDと著作権情報がデータ情報(DataRecord)として登録される。なお、データ0の後に生成された各データのIDと著作権情報も所定のタイミングでデータ情報として登録され得る(詳細については後述する)。
図9に示したように、生成装置200に対する公開鍵αの証明書がP2Pデータベース510に登録されることで、データ間の関係を適切にトレースすることができる。より具体的には、ノード装置500の検証部511aは、上記のように、連鎖的に関係する各データをさかのぼるように、トレースデータに含まれる各証明書を検証することができ、連鎖的な関係における最初のデータのトレースデータに含まれる証明書の検証には、P2Pデータベース510に登録されている、最初のデータの生成装置200に対する公開鍵α(若しくは生成装置200に対する公開鍵αを用いて生成された、生成装置200に対する公開鍵αを識別可能なID)を用いて適切に行うことができる。また、この手法によって、少なくとも生成装置200に対する公開鍵αがP2Pデータベース510に登録されていれば、トレースデータによりデータ間の関係をトレースするための証明書を検証することができるため、各データを個別に登録してP2Pデータベース510にトランザクションを発生させなくてもよく、P2Pデータベース510及びサービスの運用コストを低く抑えることができる。また、トレースデータの証明書によってデータ間の関係を検証できるので、順番を問わずに各データをP2Pデータベースに登録することができ、データの管理がより容易になる。
<4.データの構成例>
上記では、本実施形態に係る各装置の構成例、及び各装置により生成されるデータ(又は、各装置により記憶されるデータ)について説明した。続いて、各装置により生成されるデータ(又は、各装置により記憶されるデータ)の構成例について説明する。
(4.1.トレースデータ等の構成例)
まず、トレースデータ等の構成例について説明する。生成装置200のトレースデータ処理部240や加工装置300のトレースデータ処理部340は、トレースデータを付加する際に、図10に示すようにトレースデータ(Trace Info)と共に、データ情報(Data Info)及びデータに対する秘密鍵(Private Key)を付加する(なお、データ情報は図6や図7では省略されている)。第1のデータに係るデータ情報(Data Info)及びデータに対する秘密鍵(Private Key)は、第2のデータには付加されず、トレースデータ(Trace Info)が履歴として第2のデータに付加される。なお、図10に示すデータ長(Length)はハッシュ値、秘密鍵、公開鍵の暗号方式、およびセキュリティ強度に依存するのであくまで一例である点に留意されたい(図11~図13についても同様)。また、楕円曲線暗号の場合は署名されるメッセージと署名から公開鍵を復元できるので、公開鍵の代りにそのハッシュ値を記録して署名検証が行われてもよい。この検証方法をとることで、トレースデータ全体のサイズを小さくすることができる。以降、データ情報(Data Info)、トレースデータ(Trace Info)、及びデータに対する秘密鍵(Private Key)を併せて、オリジナルデータのトレースに用いられる情報として「Origin Trace Data」と呼称する。
図11は、図10におけるデータ情報(Data Info)の構成例を示す図である。図11に示すように、データ情報(Data Info)は、データタイプ(Data Type)、ハッシュの数(Number of Hashes)、及びハッシュ値(Hash1~HashN)を含む。データタイプ(Data Type)には、JPEGファイル等のデータ形式を示す情報が格納される。ハッシュ値(Hash1~HashN)には、データの各領域(Data Area 1~Data Area N)のハッシュ値が格納される。例えば、データ自体が所定の方法によって複数の領域に区別されてもよいし、データ自体(例えば、JPEG圧縮データ)とデータに付加されるメタデータ(例えば、EXIFメタデータ)等が互いに異なる領域として区別されてもよい。データ情報(Data Info)のハッシュ値を連結して更にハッシュ値を求めたものが第2のデータのハッシュ値となり、後述のIDの生成に利用される。
図12は、図10におけるトレースデータ(Trace Info)の構成例を示す図である。図12に示すように、トレースデータ(Trace Info)は、データ長(Length of TraceInfo)、ID、ダイジェスト情報(DigestInfo)、データに対する公開鍵(PublicKey)、少なくとも1以上の親データのIDを連結したメッセージのハッシュ値(ParentsHash。データがオリジナルデータである場合、ParentsHashは、生成装置200の公開鍵のハッシュ値)、親データの数(Number of parents)、親データに対する秘密鍵を用いて施された電子署名(Signature 1)、及び親データに付加されたトレースデータ(TraceInfo 1)を含む。なお、親データが複数存在する場合には、存在する親の数だけ電子署名及び親データに付加されたトレースデータが含まれる(Signature 2~Signature N、TraceInfo 2~TraceInfo N)。少なくとも証明の対象となるID、PublicKeyID、ParentsHashを連結した署名メッセージが親データに対する秘密鍵で署名される。トレースデータにDigestInfoが含まれる場合は、後述するDigestHashが署名メッセージとして連結される。
ここで、「ParentsHash」及び「ID」について説明すると、加工装置300のトレースデータ処理部340は、少なくとも1以上の第1のデータを識別可能なIDを用いて暗号学的ハッシュ関数で計算することで「ParentsHash」(例えば、第1のデータを識別可能なIDのハッシュ値)を生成する。また、トレースデータ処理部340は、少なくとも第2のデータのハッシュ値、第2のデータに対する公開鍵、及び、ParentsHash(全ての第1のデータを識別可能なID)を用いて、暗号学的ハッシュ関数(例えば、MAC(Message Authentication Code)等)で計算することで生成した、第2のデータを識別可能な「ID」をトレースデータに付加する。より具体的には、トレースデータ処理部340は、第2のデータに対する公開鍵及びParentsHashを連結したメッセージと、第2のデータのハッシュ値を鍵としてHMAC(Hash-based Message Authentication Code)を計算し、結果を「ID」とする。なお、「ID」は、図6及び図7に示した認証符号(データの認証に使用される情報)として機能する概念である。
「ParentsHash」が第1のデータのIDを用いて生成されることで、第1のデータと第2のデータの関係(換言すると、親子関係)をより適切に示すことができる。なお、親子関係が正しいことは、署名検証した全ての親データのIDのハッシュ値を計算し、ParentsHashと比較することで検証できる。また、「ID」が「第2のデータのハッシュ値」、「第2のデータに対する公開鍵」、及び「ParentsHash(換言すると、親データ)」に依存することで、例えば同一の親データをもつ第2のデータが複数存在する場合であっても、これらの「ID」が互いに異なるものとなるため、複数の第2のデータを適切に区別することができる。すなわち、悪意のある第三者が、あるデータと「ID」が同一の偽造データを生成した場合であっても、当該偽造データの検出をより容易に実現することができる。「ID」は第2のデータに対する公開鍵に依存することで、悪意のある第三者が、その対となる秘密鍵以外で子のトレースデータに署名した場合は、データ関係の連鎖が偽造されたことを検出することができる、また、「ID」がHMACによって生成され、データのハッシュ値が秘密にされることで、当該「ID」に対応するデータの祖先データがトレースされることを適切に防ぐことができるため、プライバシーの観点で有用である。
なお、生成装置200によって生成される「ParentsHash」及び「ID」について説明すると、生成装置200のトレースデータ処理部240は、自装置に対する公開鍵を用いて暗号学的ハッシュ関数で計算することで「ParentsHash」(例えば、自装置に対する公開鍵のハッシュ値)を生成する。また、トレースデータ処理部240は、少なくともオリジナルデータ、オリジナルデータに対する公開鍵、及び自装置に対する公開鍵を用いて、暗号学的ハッシュ関数(例えば、MAC(Message Authentication Code)等)で計算することで生成した、オリジナルデータを識別可能な「ID」をトレースデータに付加する。より具体的には、トレースデータ処理部240は、オリジナルデータに対する公開鍵及びParentsHash(自装置に対する公開鍵を用いて生成されたデータ)を連結したメッセージと、オリジナルデータのハッシュ値を鍵としてHMAC(Hash-based Message Authentication Code)を計算し、結果を「ID」とする。
図13は、トレースデータ(Trace Info)におけるダイジェスト情報(DigestInfo)の構成例を示す図である。生成装置200のトレースデータ処理部240は、オリジナルデータの内容を示すダイジェスト情報を、加工装置300のトレースデータ処理部340は、第2のデータの内容を示すダイジェスト情報を、それぞれトレースデータに対応付ける。図13に示すように、ダイジェスト情報(DigestInfo)は、データ長(Digest length)、EXIF等のデータ形式を示すダイジェストタイプ(Digest Type)、EXIF(サムネイル等)を含むAPP1のコピー等であるダイジェストデータ(Digest Data)、及びダイジェストタイプ(Digest Type)とダイジェストデータ(Digest Data)のハッシュ値(Digest Hash)を含む。なお、Digest Hashはダイジェスト情報を識別可能なIDであるとも言え、当該Digest
Hashは、証明対象として証明書に含められる。すなわち、生成装置200の証明書生成部220、および加工装置300の証明書生成部320は、ダイジェスト情報を用いて暗号学的ハッシュ関数で計算することで生成された、Digest Hash(ダイジェスト情報を識別可能なID)を証明対象として証明書に含める。
ダイジェスト情報がトレースデータに対応付けられることで、加工元データ(第1のデータ)と加工データ(第2のデータ)との比較をより容易に実現することができる。例えば、加工元データのEXIF等がダイジェスト情報としてトレースデータに対応付けられることで、検証装置400(必ずしもこれに限定されない)は、加工データを入手するだけで、その元となった加工元データの撮影時間や撮影場所、又はサムネイル等を取得することができる。また、悪意のある第三者が故意に加工データを偽造した場合でも、検証装置400(必ずしもこれに限定されない)は、加工元データのサムネイルと加工データとの類似度を判定することで偽造の有無を判定することができる。例えば、加工元データのサムネイルと加工データとの類似度が所定の閾値より低い場合、データが偽造されたと判定されてもよい。例えば、写真の著作権判定においては、加工写真のトレースデータに含まれるオリジナル写真のダイジェスト情報(サムネイルや3次元距離画像等)と加工写真とを比較することで、オリジナル写真を入手することなく、加工写真がカメラ所有者の著作物であることが判定できる。
(4.2.P2Pデータベースに登録されるデータの構成例)
続いて、P2Pデータベース510に登録されるデータの構成例について説明する。
図14は、図9にて説明したデータ情報(DataRecord)の構成例を示す図である。図14に示すように、データ情報(DataRecord)は、データの識別子(dataID)、データのオーナの識別子(ownerID)、データに関する著作権とライセンスの情報(rightsLicense)、ライセンス契約により権利を譲り受けたユーザの識別子(licenseeID)、及びデータの子データのIDの配列(childrenIDList)を含む。後段で詳細に説明するが、データの真正性の検証、及びデータ間のトレースの検証が成功した場合に、データの真生性を検証されたデータの識別子(dataID)を含むデータ情報(DataRecord)がP2Pデータベース510に登録される。連鎖的な関係を有する一連のデータ群の各トレースデータに含まれるIDも登録されても良いが、必ずしもこれに限定されない。また、各データに設定された著作権を検証するために、一連の祖先のデータがP2Pデータベース510に未登録の場合には、全ての祖先のIDがP2Pデータベース510に登録される。その場合、子データのIDの配列(childrenIDList)に子のデータのIDも登録することで、オリジナルデータから全ての子孫までのツリー(階層構造)が構築でき、各データに設定された著作権を検証することに利用可能である。また、トレースデータの検証においてIDを含むデータ情報(DataRecord)が既にP2Pデータベース510に登録されている場合には、当該データより祖先のデータのトレースデータは検証されなくてもよい。データ自体ではなく、図14に示す情報のみがP2Pデータベース510に登録されることで、P2Pデータベース510への登録データ量を抑制することができる。
図15は、図9にて説明したユーザ情報(UserRecord)の構成例を示す図である。図15に示すように、ユーザ情報(UserRecord)は、ユーザの識別子(userID)、ユーザの氏名(name)、ユーザの属性(description。例えば、住所や電子メールアドレス等)、ユーザが所有する生成装置200(例えば、カメラ等)の識別子(originatorIDList)、及びP2Pデータベース510にて使用されるクライアントのアドレスリスト(addressList)を含む。生成装置200の識別子の配列(originatorIDList)には、ユーザが所有する生成装置200の識別子が登録されており、後述する生成装置200の公開鍵の連想配列(OriginatorCertKeyList)を参照して、生成装置200の公開鍵を特定することができる。
図16は、生成装置200および製造者に対する公開鍵の証明書(Certificate)の構成例を示す図である。図16に示すように、当該証明書(Certificate)は、証明対象の識別子(subject。生成装置200であるカメラの識別子)、証明される公開鍵(publicKey。例えば、生成装置200であるカメラの公開鍵もしくは、製造者の公開鍵)、証明書の発行者の識別子(issuer。例えば、生成装置200であるカメラの製造者の識別子)、及び証明書の電子署名(signature。製造者の秘密鍵Sで上記構成に対して署名したもの)を含む。
図17は、P2Pデータベース510に登録される連想配列の構成例を示す図である。図17に示すように、P2Pデータベース510には、データの識別子に対するDataRecord値の連想配列(dataRecord)、ユーザの識別子に対するUserRecord値の連想配列(userRecord)、P2Pデータベース510にて使用されるクライアントのアドレスに対するUser識別子の連想配列(userID)、生成装置200(例えば、カメラ)の識別子(図16のsubject)に対する公開鍵の値の連想配列(originatorKeyList)、及び製造者識別子(図16のissuer)に対する生成装置200製造者(例えば、カメラメーカ)のCertificate値の連想配列(makerCertList)を含む。ユーザは生成装置200から入手した生成装置200の証明書(Certificate)をP2Pデータベース510に登録し、P2Pデータベース510は、登録されている製造者のCertificate値の連想配列(makerCertList)にて証明書を使用して、生成装置200の証明書(Certificate)を検証し、公開鍵と証明対象の識別子を連想配列(originatorKeyList)に生成装置200の公開鍵を登録すると共に、Subjectに含まれる証明対象の識別子をカメラの識別子として該当するユーザ情報の連想配列(originatorKeyList)に登録する。なお、P2Pデータベース510の製造者のCertificate値の連想配列(makerCertList)は特権のあるクライアントのアドレスのみしか書き換えできない。
<5.著作権>
上記では、各装置により生成されるデータ(又は、各装置により記憶されるデータ)の構成例について説明した。続いて、本実施形態のデータに係るメタデータである著作権について説明する。
本実施形態に係る情報処理システムは、各データの著作権又はライセンスも管理することができる。より具体的には、本実施形態に係る情報処理システムは、各データの著作権情報(図14のrightsLicense)をデータ情報(DataRecord)としてP2Pデータベース510に登録することで管理する。
図18は、本実施形態に係る著作権について、定義値、プログラムで使用される値、及び各著作権の内容の一覧を示す図である。なお、図18はあくまで一例であり、本実施形態にて用いられる著作権はこれらに限定されない。
本実施形態においては、各データ間に親子関係が存在するところ、子や子孫のデータには親データよりも厳しい(より制限された)著作権又はライセンスが設定できないこととする。換言すると、子や子孫のデータに設定される著作権は、親データと同一か、又は親データよりも緩やかなものである。この著作権の設定ルールが存在することによって、P2Pデータベース510に登録されている著作権情報に基づいて、ユーザが登録しようとするデータの著作権が、P2Pデータベース510に登録されているオリジナルデータからの子孫ツリーに対して適切であるか否かを正しく判断することができる。より具体的に説明すると、各データに付加されるトレースデータによってデータ間の連鎖的な関係を認識することができるため、最も上流に位置するオリジナルデータに関する著作権情報がP2Pデータベース510に登録されていれば、著作権の設定ルールに基づいて子データの著作権が適切であるか否かを正しく判断することができる。仮に、オリジナルデータを含む祖先データのデータ情報(DataRecord)がP2Pデータベース510に登録されていて、著作権情報(図14のrightsLicense)として、著作権が設定されていないことを示すNoLicensSpecified(図18の値0)が設定されている場合は、デフォルトの著作権であるAllRightReserved(図18の値6)が設定されていると判断されてもよい。なお、各データについての著作権の設定ルールは必ずしもこれに限定されない。
<6.各装置の処理フロー例>
上記では、本実施形態に係る著作権について説明した。続いて、各装置の処理フロー例について説明する。
(6.1.加工装置300によるデータの加工処理フロー)
まず、図19を参照して、加工装置300によるデータの加工処理フローについて説明する。図19は、加工装置300によるデータの加工処理フローの一例を示すフローチャートである。
ステップS1000では、トレースデータ処理部340が加工元ファイルを読み込み、解析する。ステップS1004では、データ加工部310が加工元ファイルに含まれるデータ(第1のデータ)を加工することで第2のデータを生成する。加工元ファイルにOrigin Trace Dataが付加されている場合(換言すると、加工元ファイルが本実施形態に係る装置によって生成されたものである場合。ステップS1008/Yes)、ステップS1012では、第2のデータのOrigin Trace Dataが生成される。第2のデータのOrigin Trace Dataの生成処理フローについては後段にて図20及び図21を参照しながら詳細に説明する。ステップS1016では、トレースデータ処理部340が、第2のデータのOrigin Trace Dataを第2のデータに付加しファイルを生成することで一連の処理が終了する。なお、ステップS1008にて、加工元ファイルにOrigin Trace Dataが付加されていない場合(換言すると、加工元ファイルが本実施形態に係る装置によって生成されたものでない場合。ステップS1008/No)、ステップS1012及びステップS1016の処理は省略される。
続いて、図20及び図21を参照して、第2のデータのOrigin Trace Dataの生成処理フローについて説明する。図20及び図21は、加工装置300による第2のデータのOrigin Trace Dataの生成処理フローの一例を示すフローチャートである。なお、図20、図21および下記の手順では、加工元のファイルが複数の場合については“複数の第1のデータ”と表記しており、加工元のファイルが一つの場合については、“第1のデータ”と表記している。
ステップS1100では、加工装置300のトレースデータ処理部340が、第2のデータの各領域のHash値を計算し、それらHash値からデータ情報(DataInfo)を作成し、一時記録する。ステップS1104では、トレースデータ処理部340が、データ情報(DataInfo)のHash値を連結したメッセージから更にHash値を計算し、結果をDataHashとして一時記録する。ステップS1108では、トレースデータ処理部340が、複数の第1のデータのトレースデータ(Trace Info)のIDを連結したメッセージのHash値を計算し、結果をParentsHashとして一時記録する。ステップS1112では、トレースデータ処理部340が、複数の第1のデータのトレースデータ(Trace Info)の秘密鍵から構成される配列を作成して、ParentPrivateKeyとして一時記録する。
ステップS1116では、鍵生成部330が公開鍵暗号の秘密鍵と公開鍵のペアを作成し、PrivateKey及びPublicKeyとして一時記録する。ステップS1120では、トレースデータ処理部340が、PublicKeyとParentsHashを連結したメッセージと、DataHashを鍵としてHMACを計算し、結果をIDとして一時記録する。ステップS1124では、証明書生成部320がParentPrivateKeyListの最初の要素を秘密鍵とする。ステップS1128では、証明書生成部320が、ID、PublicKey、及びParentsHash等を連結したメッセージを秘密鍵で署名して、結果をSignatureとして一時保存する。
ParentPrivateKeyListに次の要素がある場合(すなわち、未処理の親データが存在する場合。ステップS1132/Yes)、ステップS1136にて、証明書生成部320は、ParentPrivateKeyListの次の要素を秘密鍵とし、ステップS1128にて署名を行う処理を繰り返す。ParentPrivateKeyListに次の要素がない場合(すなわち、未処理の親データが存在しない場合。ステップS1132/No)、ステップS1140にて、トレースデータ処理部340は、第2のデータのID、PublicKey、ParentHash、複数のSignature、及び複数の第1のデータのTraceInfoから構成されたTrace Infoを生成する。ステップS1144では、トレースデータ処理部340が、DataInfo、Trace Info、及びPrivateKeyから構成されたOrigin Trace Dataを生成することで一連の処理が終了する。
(6.2.P2Pデータベースプログラム511によるUserRecordの登録処理フロー)
続いて、図22を参照して、UserRecordの登録処理フローについて説明する。図22は、P2Pデータベースプログラム511によるUserRecordの登録処理フローの一例を示すフローチャートである。
ステップS1200では、ノード装置500が外部装置からUserRecordの登録リクエストを受信し、当該リクエストに含まれるsender_addressから連想配列(userID)を参照してuserIDを特定する。当該userIDが既にP2Pデータベース510の連想配列(userID)に登録されている場合(ステップS1204/Yes)、ステップS1208にて、P2Pデータベースプログラム511は、所定のエラー処理を行う。例えば、P2Pデータベースプログラム511は、userIDが既に登録済である旨を登録リスエストの送信元装置へ通知する。
userIDが未だP2Pデータベース510の連想配列(userID)に登録されていない場合(ステップS1204/No)、ステップS1212にて、P2Pデータベースプログラム511は、P2Pデータベース510にて使用される対象ユーザのアドレス(address)を取得し、userIDを連想配列(userID)に設定する。なお、アドレス(address)とは、対象ユーザの資産を管理するWalletとしても機能するものである。ユーザは、複数のアドレス(address)を所有する場合があるところ、複数のアドレス(address)に一意のuserIDが設定されることによって、userIDによってユーザを管理することが可能になる(すなわち、特定のWalletに依存することなく複数のWalletのアドレスを利用して、サービスを提供することが可能になる)。
ステップS1216では、P2Pデータベースプログラム511がP2Pデータベース510における製造者情報を検索する。ステップS1220では、検証部511aが、登録リクエストに含まれる、製造者に対する秘密鍵Sによって電子署名された「生成装置200の公開鍵αの証明書」を、製造者情報としてP2Pデータベース510の連想配列(makerCertList)を参照して、製造者の公開鍵Sを用いて検証する。「生成装置200の公開鍵αの証明書」の検証に成功した場合(ステップS1224/Yes)、ステップS1228にて、P2Pデータベースプログラム511は、P2Pデータベース510の連想配列(originatorKeyList)に「生成装置200の公開鍵αの証明書」に含まれる公開鍵を登録し、その鍵の識別子をユーザ情報(UserRecord)の連想配列(originatorKeyListに登録することで一連の処理が終了する。「生成装置200の公開鍵αの証明書」の検証に失敗した場合(ステップS1224/No)、ステップS1208にて、P2Pデータベースプログラム511は、所定のエラー処理を行うことで一連の処理が終了する。
(6.3.P2Pデータベースプログラム511によるDataRecordの登録処理フロー)
続いて、図23を参照して、DataRecordの登録処理フローについて説明する。図23は、P2Pデータベースプログラム511によるDataRecordの登録処理フローの一例を示すフローチャートである。
ステップS1300では、ノード装置500が外部装置からDataRecordの登録リクエストを受信し、当該リクエストに含まれるsender_addressから連想配列(userID)を参照してuserIDを特定する。当該userIDがP2Pデータベース510の連想配列(userID)に登録されていない場合(ステップS1304/No)、ステップS1308にて、P2Pデータベースプログラム511は、所定のエラー処理を行う。
userIDがP2Pデータベース510の連想配列(userID)に登録されている場合(ステップS1304/Yes)、ステップS1312にて、検証部511aが、トレースデータの検証(サブルーチン2-1)を行う。より具体的には、検証部511aは、データに付加されている全てのトレースデータ(Trace Info)の証明書が正しいものであるか否かを検証する。サブルーチン2-1については後段にて詳細に説明する(他のサブルーチンも同様)。
トレースデータの検証に成功した場合(ステップS1316/Yes)、ステップS1320にて、検証部511aは、登録済DataRecordの検証(サブルーチン2-2)を行う。より具体的には、検証部511aは、登録済のデータ情報(DataRecord)を用いて著作権のルールやオーナの設定等が正しいか否かを検証する。登録済DataRecordの検証に成功した場合(ステップS1324/Yes)、ステップS1328にて、検証部511aは、DataRecordの登録(サブルーチン2-3)を行う。より具体的には、登録部として機能する検証部511aは、前段で行われた証明書の検証後に、第2のデータを識別可能なID、若しくはトレースデータに含まれる、各データを識別可能なIDを、P2Pデータベース510に登録する。
なお、ステップS1316にてトレースデータの検証に失敗した場合(ステップS1316/No)、及びステップS1324にて登録済DataRecordの検証に失敗した場合(ステップS1324/No)、ステップS1308にて、P2Pデータベースプログラム511は、所定のエラー処理を行うことで一連の処理が終了する。
(6.4.P2Pデータベースプログラム511によるトレースデータの検証処理フロー)
続いて、図24を参照して、トレースデータの検証処理フローについて説明する。図24は、P2Pデータベースプログラム511に含まれる検証部511aによるトレースデータの検証処理フローの一例を示すフローチャートである。例えば、あるデータの真正性や親子関係等を確認したいユーザの検証リクエストによって以下の処理が行われる。
ステップS1400では、例えばユーザからの検証リクエストに基づいて、検証部511aがトレースデータの検証(サブルーチン2-1)を行う。トレースデータの検証に失敗した場合(ステップS1404/No)、ステップS1408にて、P2Pデータベースプログラム511は、所定のエラー処理を行うことで一連の処理が終了する。トレースデータの検証に成功した場合(ステップS1404/Yes)、ステップS1412にて、検証部511aは、トレースデータの検証結果を作成することで一連の処理が終了する。より具体的には、検証部511aは、検証対象のデータ及び祖先データに関する著作権情報(図14のrightsLicense)、オーナの識別子(図14のownerID)、又はライセンス契約を行って権利を譲り受けたユーザの識別子(図14のlicenseeID)等をトレースデータの検証結果としてまとめる。
(6.5.P2Pデータベースプログラム511によるUserRecordの取得処理フロー)
続いて、図25を参照して、UserRecordの取得処理フローについて説明する。図25は、P2Pデータベースプログラム511によるUserRecordの取得処理フローの一例を示すフローチャートである。例えば、図24によって得られたトレースデータの検証結果に含まれているオーナの識別子、又はライセンス契約を行って権利を譲り受けたユーザの識別子に対応するユーザの詳細を確認したい他のユーザの取得リクエストによって以下の処理が行われる。
ステップS1500では、P2Pデータベースプログラム511がP2Pデータベース510を参照し、例えばユーザからの取得リクエストにて指定される所望のuserIDを、連想配列(userRecord)を参照することで検索する。userIDを含むUserRecordが発見されなかった場合(ステップS1504/No)、ステップS1508にて、P2Pデータベースプログラム511は、所定のエラー処理を行うことで一連の処理が終了する。userIDを含むUserRecordが発見された場合(ステップS1504/Yes)、ステップS1512にて、P2Pデータベースプログラム511は、userIDに対応付けられるUserRecordをP2Pデータベース510から取得することで一連の処理が終了する。
(6.6.P2Pデータベースプログラム511によるDataRecordの取得処理フロー)
続いて、図26を参照して、DataRecordの取得処理フローについて説明する。図26は、P2Pデータベースプログラム511によるDataRecordの取得処理フローの一例を示すフローチャートである。例えば、あるデータの詳細を確認したいユーザの取得リクエストによって以下の処理が行われる。
ステップS1600では、P2Pデータベースプログラム511がP2Pデータベース510を参照し、例えばユーザからの取得リクエストにて指定される所望のdataIDを、連想配列(dataRecord)を参照することで検索する。dataIDを含むDataRecordが発見されなかった場合(ステップS1604/No)、ステップS1608にて、P2Pデータベースプログラム511は、所定のエラー処理を行うことで一連の処理が終了する。dataIDを含むDetaRecordが発見された場合(ステップS1604/Yes)、ステップS1612にて、P2Pデータベースプログラム511は、dataIDに対応付けられるDataRecordをP2Pデータベース510から取得することで一連の処理が終了する。
(6.7.トレースデータの検証処理フロー(サブルーチン2-1))
続いて、図27を参照して、トレースデータの検証処理フロー(サブルーチン2-1)について説明する。図27は、図23や図24にて行われるトレースデータの検証処理フローの一例を示すフローチャートである。
ステップS1700では、検証部511aが、Origin Trace DataにおけるDataInfo内のHash値を連結したメッセージを用いてHash値を計算し、結果をDataHashとして一時記録する。ステップS1704では、検証部511aが、Origin Trace DataにおけるTraceInfo内のPublicKeyとParentsHashを連結したメッセージと、DataHashを鍵としてHMACを計算し、結果をMACとして一時記録する(換言すると、検証部511aは、第2のデータのハッシュ値、第2のデータに対する公開鍵、及び第1のデータを識別可能なIDのハッシュ値を用いてMACを計算する)。
ステップS1708では、検証部511aが、当該MACがTraceInfo内のIDと一致することを検証する。なお、当該検証処理は、検証部511aが、少なくとも第2のデータ(第2のデータを用いて生成されたDataHash)、第2のデータに対する公開鍵(PublicKey)、及び、全ての第1のデータを識別可能なID(ParentsHash)を用いて、暗号学的ハッシュ関数で計算することで生成した、第2のデータを識別可能なIDが、トレースデータに含まれる、第2のデータを識別可能なIDと一致することを検証する処理であると言える点に留意されたい。MACがTraceInfo内のIDと一致する場合(ステップS1708/Yes)、ステップS1712にて、検証部511aがTraceInfoの証明書検証(サブルーチン2-1-1)を行う。より具体的には、検証部511aは、TraceInfoに含まれる祖先データに関する全ての証明書が正しいものであるか否かを検証することで一連の処理が終了する。MACがTraceInfo内のIDと一致しない場合(ステップS1708/No)、ステップS1716にて、検証部511aは、所定のエラー処理を行うことで一連の処理が終了する。
(6.8.TraceInfoの証明書検証処理フロー(サブルーチン2-1-1))
続いて、図28を参照して、TraceInfoの証明書検証処理フロー(サブルーチン2-1-1)について説明する。図28は、図27にて行われるTraceInfoの証明書検証処理フローの一例を示すフローチャートである。
検証対象となるデータに親データが存在しない場合(換言すると、検証対象となるデータがオリジナルデータである場合。ステップS1800/No)、ステップS1804にて、検証部511aは、オリジナルデータの証明書検証(サブルーチン2-1-2)を行う。より具体的には、検証部511aは、P2Pデータベース510に登録されている生成装置200の公開鍵αを用いてオリジナルデータの証明書を検証する。オリジナルデータの証明書の検証に成功した場合(ステップS1808/Yes)には一連の処理が終了し、オリジナルデータの証明書の検証に失敗した場合(ステップS1808/No)、ステップS1812にて、検証部511aが所定のエラー処理を行うことで一連の処理が終了する。
検証対象となるデータに親データが存在する場合(ステップS1800/Yes)、ステップS1816にて、検証部511aは、データの証明書検証(サブルーチン2-1-3)を行う。より具体的には、検証部511aは、第1のデータ(親データ)に付加された証明書に含まれる、第1のデータに対する公開鍵を用いて、トレースデータに含まれる、第1のデータに対する秘密鍵を用いて電子署名を施した証明書(子データに対する証明書)を検証する。データの証明書の検証に失敗した場合(ステップS1820/No)、ステップS1812にて、検証部511aが所定のエラー処理を行うことで一連の処理が終了する。
データの証明書の検証に成功した場合(ステップS1820/Yes)、ステップS1824にて、検証部511aは、トレースデータに基づいて、オリジナルデータを除く全ての祖先データについて証明書の検証が終了したか否かを判定する。オリジナルデータを除く全ての祖先データについて証明書の検証が終了した場合(ステップS1824/Yes)、処理がステップS1804に遷移することで、検証部511aが、オリジナルデータの証明書検証(サブルーチン2-1-2)を行った後に処理を終了させる。オリジナルデータを除く全ての祖先データについて証明書の検証が終了していない場合(ステップS1824/No)、処理がステップS1816に遷移し、検証部511aは、オリジナルデータを除く全ての祖先データについての証明書の検証を終えるまで、データの証明書検証(サブルーチン2-1-3)を繰り返す。
(6.9.オリジナルデータの証明書検証(サブルーチン2-1-2))
続いて、図29を参照して、オリジナルデータの証明書検証(サブルーチン2-1-2)について説明する。図29は、図28にて行われるオリジナルデータの証明書検証処理フローの一例を示すフローチャートである。
ステップS1900では、検証部511aが、P2Pデータベース510から生成装置200の公開鍵αを取得する。ステップS1904では、検証部511aが、生成装置200の公開鍵αを用いてオリジナルデータの証明書を検証する。換言すると、検証部511aは、オリジナルデータのトレースデータに含まれる証明書の検証に、P2Pデータベース510に登録されている、オリジナルデータの生成装置200に対する公開鍵αを用いる。オリジナルデータのトレースデータに含まれるParentHashは生成装置200の公開鍵のハッシュ値(生成装置200の識別子)であるので、連想配列(originatorKeyList)を参照した公開鍵を得ることでオリジナルデータの証明書の検証を行うことができる。オリジナルデータの証明書の検証に成功した場合(ステップS1908/Yes)には一連の処理が終了し、オリジナルデータの証明書の検証に失敗した場合(ステップS1908/No)、ステップS1912にて、検証部511aが所定のエラー処理を行うことで一連の処理が終了する。
(6.10.データの証明書検証(サブルーチン2-1-3))
続いて、図30を参照して、データの証明書検証(サブルーチン2-1-3)について説明する。図30は、図28にて行われるデータの証明書検証処理フローの一例を示すフローチャートである。
ステップS2000では、検証部511aは、TraceInfoにおける少なくとも1以上の親データのIDを連結したメッセージからHash値(換言すると、少なくとも1以上の第1のデータを識別可能なIDを用いて暗号学的ハッシュ関数で計算することで生成された第1のデータを識別可能なIDのハッシュ値)を計算する。そしてステップS2004にて、検証部511aは、当該Hash値がTraceInfoにおけるParentsHashと等しいか否かを判定する。当該Hash値がTraceInfoにおけるParentsHashと等しくない場合(ステップS2004/No)、ステップS2008にて、検証部511aが所定のエラー処理を行うことで一連の処理が終了する。Hash値がTraceInfoにおけるParentsHashと等しい場合(ステップS2004/Yes)、ステップS2012にて、検証部511aは、TraceInfoのすべてのSignatureから構成される配列signature_listを作成する。ステップS2016では、検証部511aは、TraceInfoのすべてのPublicKeyから構成される配列publickey_listを作成する。ステップS2020では、検証部511aは、signature_listの最初の要素を署名、publickey_listの最初の要素を公開鍵とする。
ステップS2024では、検証部511aが、公開鍵を用いて署名を検証する。署名の検証に成功した場合(ステップS2028/Yes)、ステップS2032にて、検証部511aは、publickey_listには次の要素があるか否かを確認する。publickey_listには次の要素がある場合(ステップS2032/Yes)、ステップS2036にて、検証部511aは、signature_listの次の要素を署名、publickey_listの次の要素を公開鍵とし、ステップS2024~ステップS2032の処理を繰り返し、一連の処理が終了する。こうして検証部511aは、検証対象のデータにとってのすべての親データについて署名の検証を行う。なお、ステップS2028にて、署名の検証に失敗した場合(ステップS2028/No)、ステップS2008にて、検証部511aが所定のエラー処理を行うことで一連の処理が終了する。
(6.11.登録済DataRecordの検証(サブルーチン2-2))
続いて、図31を参照して、登録済DataRecordの検証(サブルーチン2-2)について説明する。図31は、図23にて行われる登録済DataRecordの検証処理フローの一例を示すフローチャートである。
ステップS2100では、検証部511aがP2Pデータベース510の連想配列(dataRecord)を参照し、TraceInfoのIDを検索する。IDがP2Pデータベース510に登録されていない場合(ステップS2104/No)、ステップS2108にて、検証部511aは、検証対象となるデータに親データが存在するか否か(換言すると、検証対象となるデータがオリジナルデータであるか否か)を確認する。検証対象となるデータに親データが存在しない場合(ステップS2108/No)、ステップS2112にて、検証部511aは、オリジナルデータのオーナ検証を行う。より具体的には、検証部511aは、オリジナルデータのトレースデータ(Trace Info)に含まれるParentsHash(データがオリジナルデータである場合、ParentsHashは生成装置200の公開鍵のハッシュ値であり生成装置200の識別子である)に基づいて、登録リクエストで指定されたUserIDに該当するUserRecordの配列OriginatorIDListにOriginatorの識別子が含まれていることを確認することで、オリジナルデータがリクエストを行ったユーザの所有する生成装置200のいずれかで生成されたものであることを検証する。そして、オリジナルデータがユーザの所有する生成装置200のいずれかで生成されたものでない場合には、検証部511aは所定のエラー処理を行う。
検証対象となるデータに親データが存在する場合(ステップS2108/Yes)、ステップS2116にて、検証部511aは、検証対象のデータのTraceInfoを利用して登録済の祖先データを検証する。より具体的には、検証部511aは、検証対象のデータに設定されようとしている著作権が、登録済の祖先データのDataRecordに設定されている著作権よりも厳しい(より制限された)ものでないかを検証する。そして、検証対象のデータに設定されようとしている著作権が、登録済の祖先データのDataRecordに設定されている著作権よりも厳しい(より制限された)ものである場合、検証部511aは所定のエラー処理を行う。
ステップS2104にて、TraceInfoのIDがP2Pデータベース510に登録されている場合(換言すると、既に登録されている著作権が更新されようとしている場合。ステップS2104/Yes)、ステップS2120にて、検証部511aは、著作権を更新しようとするユーザIDが適切か否かを検証する(換言すると、検証部511aは、リクエストを行ったユーザの識別子が著作権を更新しようとしているデータの所有者と一致することを検証する)。より具体的には、検証部511aは、P2Pデータベース510に登録されているDataRecordのownerID(ライセンス契約によって権利を譲り受けたユーザが存在する場合にはlicenseeID)と、登録リクエストにより特定されたuserIDが一致するか否かを確認する。著作権を更新しようとするユーザIDが適切でない場合(ステップS2120/No)、検証部511aは所定のエラー処理を行う。
著作権を更新しようとするユーザIDが適切である場合(ステップS2120/Yes)、ステップS2124にて、検証部511aは、著作権ルールによる検証を行う。より具体的には、検証部511aは、更新対象の著作権が著作権ルール(子データには親データよりも厳しい(より制限された)著作権が設定できないというルール)に合っているか否かを検証する。著作権ルールによる検証が失敗した場合、検証部511aは所定のエラー処理を行う。
その後、ステップS2128では、検証部511aが、検証対象データの子データに関する情報がP2Pデータベース510に登録されているか否かに基づいて、検証対象データに子データが存在するか否かを確認する。検証対象データに子データが存在する場合(ステップS2128/Yes)、ステップS2132にて、検証部511aが、検証対象のDataRecordのchildrenIDListを参照し、全ての登録済の子データの著作権が設定ルールに適合しているかを検証する。より具体的には、検証部511aは、検証対象データに設定されようとしている著作権が、登録済の子データのDataRecordに設定されている著作権よりも緩やかな(より制限されない)ものでないかを検証する。そして、検証対象のデータに設定されようとしている著作権が、登録済の子データに設定されている著作権よりも緩やかな(より制限されない)ものである場合、検証部511aは所定のエラー処理を行う。
(6.12.DataRecordの登録(サブルーチン2-3))
続いて、図32を参照して、DataRecordの登録(サブルーチン2-3)について説明する。図32は、図23にて行われるDataRecordの登録処理フローの一例を示すフローチャートである。
ステップS2200では、検証部511aが、TraceInfoのIDを有するDataRecordがP2Pデータベース510に登録済みであるか否かを確認する。TraceInfoのIDを有するDataRecordがP2Pデータベース510に登録されていない場合(ステップS2200/No)、ステップS2204にて、検証部511aがP2Pデータベース510中にDataRecordを生成する。ステップS2208では、検証部511aが変数rights_licenseをNoLicenseSpecifiedに設定する。
ステップS2212では、検証部511aがchildrenIDListにchild_idを追加する。ステップS2216では、検証部511aがDataRecordをP2Pデータベース510の連想配列(dataRecord)に登録する。そして、登録対象データに親データが存在する場合(ステップS2220/Yes)、ステップS2200~ステップS2216の処理が繰り返される(換言すると、登録対象データの前段に連なる祖先データのDataRecordの登録と、childrenIDListの更新が行われる)。そして、登録対象データに親データが存在しない場合(換言すると、登録対象データの前段に連なる祖先データのDataRecordの登録と、childrenIDListの更新が行われた後。ステップS2220/No)、一連の処理が終了する。
<7.実施例>
上記では、各装置の処理フロー例について説明した。続いて、本開示の実施例について説明する。なお、以降では、P2Pデータベース510がコンソーシアム型のブロックチェーンである場合を一例として説明する。
(7.1.画像データの登録)
例えば生成装置200(又は加工装置300でもよい)の所有者は、メーカ提供のアプリケーションを用いて画像データをブロックチェーンに登録することができる。そこで、図33を参照して、この場合の処理フロー例を説明する。図33は、生成装置200の所有者がメーカ提供のアプリケーションを用いて画像データをブロックチェーンに登録する場合の処理フローの一例を示すシーケンス図である。なお、図33では、ノード装置500の他に、ユーザ装置及びサービス提供装置について言及する。ユーザ装置は、ユーザによって操作される任意の情報処理装置であり、例えば生成装置200等(もちろん、これに限定されない)によって実現され得る。サービス提供装置は、ユーザに代わってP2Pデータベース510のWallet管理をしており、アプリケーション(換言するとサービス)を提供するメーカのサーバ等によって実現され得る。
ステップS2300では、ユーザ装置が、ログインのためのID及びPassWordを含むログイン要求をサービス提供装置に対して送信する。ステップS2304では、サービス提供装置が、ログイン要求に含まれるID及びPassWordと、予め登録されているID及びPassWordとを比較することによってユーザ認証を行う。ステップS2308では、サービス提供装置が認証結果をユーザ装置に対して送信する。ユーザ認証が成功した場合、ステップS2312にて、ユーザ装置が、ユーザ情報(例えば、氏名や属性等)及び生成装置200の公開鍵αの証明書等を含む、UserRecordの登録要求をサービス提供装置に対して送信し、ステップS2316では、サービス提供装置が、認証されたユーザのWalletのアドレスのトランザクションとして、当該要求をノード装置500に対して送信する。
ステップS2320では、ノード装置500がUserRecordをブロックチェーンに登録する。より具体的には、ノード装置500は、図22に示した一連の処理を行うことでUserRecordをブロックチェーンに登録する。ステップS2324では、ノード装置500が登録結果をサービス提供装置に対して送信し、ステップS2328では、サービス提供装置が登録結果をユーザ装置に対して送信する。
UserRecordの登録に成功した場合、ステップS2332にて、ユーザ装置が、画像データやオーナの識別子及び著作権情報等を含む、DataRecordの登録要求をサービス提供装置に対して送信し、ステップS2336では、サービス提供装置が、認証されたユーザのWalletのアドレスのトランザクションとして、当該要求をノード装置500に対して送信する。
ステップS2340では、ノード装置500がDataRecordをブロックチェーンに登録する。より具体的には、ノード装置500は、図23に示した一連の処理を行うことでDataRecordをブロックチェーンに登録する。ステップS2344では、ノード装置500が登録結果をサービス提供装置に対して送信し、ステップS2348では、サービス提供装置が登録結果をユーザ装置に対して送信することで、一連の処理が終了する。以上の一連の処理によって画像データのDataRecordのP2Pデータベース510への登録が実現される。
(7.2.画像データに関する証明書の作成等)
また、例えば生成装置200(又は加工装置300でもよい)を用いて画像データを生成したユーザがメーカ提供のサービスを利用して画像データの真正性を証明する証明書を作成し、当該証明書を他者と共有することができる。そこで、図34を参照して、この場合の処理フロー例を説明する。図34は、画像データを生成したユーザがメーカ提供のサービスを利用して画像データの真正性を証明する証明書を作成し、当該証明書を他者と共有する場合の処理フローの一例を示すシーケンス図である。なお、図34におけるユーザ装置は、例えば検証装置400等(もちろん、これに限定されない)によって実現され得る。サービス提供装置は、サービスを提供するメーカのサーバ等によって実現され得る。
ステップS2400~ステップS2408では、図33のステップS2300~ステップS2308で説明したユーザ認証に関する一連の処理が行われる。ユーザ認証が成功した場合、ステップS2412にて、ユーザ装置がOrigin Trace Data等を含む画像データをサービス提供装置に対して送信し、ステップS2416では、サービス提供装置は、Origin Trace Dataに含まれるDataInfoのHash値が画像データのハッシュ値と一致していることを確認し、DataInfoのHash値からデータのハッシュ値とTraceDataを含む検証要求を作成し、認証したユーザのWalletのアドレスのトランザクションとして当該要求をノード装置500に対して送信する。
ステップS2420では、ノード装置500がブロックチェーンに登録されているデータを用いてTraceDataを検証する。より具体的には、ノード装置500は、図24に示した一連の処理を行うことでTraceDataを検証する。TraceDataが検証された場合、ステップS2424では、ノード装置500が所定の証明書を生成し、当該証明書を検証結果としてサービス提供装置に対して送信し、ステップS2428では、サービス提供装置が当該証明書を検証結果としてユーザ装置に対して送信する。そして、ユーザは、検証結果として提供された証明書を他者(例えば、画像データの購入者や閲覧者)に対して提示する。また、サービス提供装置が所定のウェブサイト等に証明書を公開することで証明書を他者に提示してもよい。以上の一連の処理によって画像データに関する証明書の作成及び共有が実現される。
(7.3.画像データの不正使用の報告)
また、画像データを生成したユーザは、他者による当該画像データの不正使用(例えば、著作権に違反した使用、又は画像データの偽造等)を発見した場合、メーカ提供のサービスを利用して不正使用を報告する報告書を作成し、当該報告書を他者と共有することができる。そこで、図35を参照して、この場合の処理フロー例を説明する。図35は、ユーザがメーカ提供のサービスを利用して不正使用を報告する報告書を作成し、当該報告書を他者と共有する場合の処理フローの一例を示すシーケンス図である。なお、図35におけるユーザ装置は、例えば検証装置400等(もちろん、これに限定されない)によって実現され得る。サービス提供装置は、サービスを提供するメーカのサーバ等によって実現され得る。
ステップS2500~ステップS2508では、図33のステップS2300~ステップS2308で説明したユーザ認証に関する一連の処理が行われる。ユーザ認証が成功した場合、ステップS2512にて、ユーザ装置が、不正に使用されているデータのパス(例えば、URL等)及び画像データを生成したユーザが作成しP2Pデータベース510に登録されているOriginTraceDataを含む、データの不正使用検証要求をサービス提供装置に対して送信し、サービス提供装置は、不正利用されているデータのパスから画像データのハッシュ値を算出し、当該ハッシュ値がOriginTraceDataのIDと一致することを確認した上で、ステップS2516で、サービス提供装置は、不正利用されている画像データのハッシュ値とOriginTraceDataを含む検証要求を、認証したユーザのWalletのアドレスのトランザクションとして当該要求をノード装置500に対して送信する。
ステップS2520では、ノード装置500がブロックチェーンに登録されているデータを用いて、OriginTraceDataに対応するデータがブロックチェーンに登録されているか否かを検証する。例えば、ノード装置500は、図24に示した一連の処理を行うことで、要求されたOriginTraceDataのIDに基づいて不正利用されている画像データのハッシュ値がOriginTraceDataのハッシュ値と一致することを検証する。そして、ノード装置500は、検証結果として得られる著作権情報に基づいて、正当利用であることを確認し、正当利用でない場合は、ユーザが作成した画像データの不正使用が行われていると判定する。
ステップS2524では、ノード装置500が所定の報告書を生成し、当該報告書を検証結果としてサービス提供装置に対して送信し、ステップS2528では、サービス提供装置が当該報告書を検証結果としてユーザ装置に対して送信する。そして、ユーザは、検証結果として提供された報告書を他者に対して提示する。また、サービス提供装置が所定のウェブサイト等に報告書を含むWebページを公開し、そのURLを通知することで報告書を他者に提示してもよい。以上の一連の処理によって画像データの不正使用の報告が実現される。
(7.4.画像データの購入)
また例えば、ユーザは、他のユーザが生成した画像データを購入してもよい(換言すると、画像データの所有権を他のユーザから取得してもよい)。そこで、図36を参照して、この場合の処理フロー例を説明する。図36は、ユーザが、他のユーザによって生成された画像データを購入する場合のデータのLicenseeIDに購入者のUserID設定する処理フローの一例を示すシーケンス図である。なお、図36におけるユーザ装置は、例えば加工装置300等(もちろん、これに限定されない)によって実現され得る。サービス提供装置は、サービスを提供するメーカのサーバ等によって実現され得る。
ステップS2600~ステップS2608では、図33のステップS2300~ステップS2308で説明したユーザ認証に関する一連の処理が行われる。ユーザ認証が成功した場合、ステップS2612にて、ユーザ装置が、画像データの購入要求(画像データのLicenseeIDに購入者のUserIDを設定する要求)をサービス提供装置に対して送信する。このとき、購入者は、事前にデータの所有者が提示したライセンス条件に合意し、画像データの購入の対価を支払っており、所有者は購入者から購入依頼を受けているものとする。ステップS2616では、サービス提供装置が当該要求に基づいて、購入対象の画像データについて、P2Pデータベース510に登録されるデータ情報(DataRecord)中の所有者に関する情報の変更要求を、認証したユーザのWalletのアドレスのトランザクションとしてノード装置500に対して送信する。
ステップS2620では、ノード装置500が、当該要求に基づいて、P2Pデータベース510に登録されるデータ情報(DataRecord)中のLicenseeに関する情報を変更する。より具体的には、ノード装置500が、DataRecord中のlicenseeID(ライセンス契約により権利を譲り受けたユーザの識別子)を、画像データの購入を希望しているユーザのUserIDに変更する。また、rightsLicenseは図18のAllRightsReserved_UnderAgreementsに変更される。
ステップS2624では、ノード装置500が所有者変更結果(licenseeIDの変更結果)をサービス提供装置に対して送信し、ステップS2628では、サービス提供装置が、所有者変更結果をユーザ装置に対して送信する。以上の一連の処理によって画像データの購入に際してのLicenseeIDの設定が実現される。
<8.各装置のハードウェア構成例>
上記では、本開示の実施例について説明した。続いて、図37を参照して、上記で説明してきた本実施形態に係る各装置のハードウェア構成例について説明する。図37は、本実施形態に係る製造者装置100、生成装置200、加工装置300、検証装置400、又はノード装置500の少なくともいずれかを具現する情報処理装置900のハードウェア構成例を示すブロック図である。本実施形態に係る各装置による情報処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
図37に示すように、情報処理装置900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903及びホストバス904aを備える。また、情報処理装置900は、ブリッジ904、外部バス904b、インタフェース905、入力装置906、出力装置907、ストレージ装置908、ドライブ909、接続ポート911、通信装置913、及びセンサ915を備える。情報処理装置900は、CPU901に代えて、又はこれとともに、暗号計算のLSI、DSP若しくはASICなどの処理回路を有してもよい。
CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。CPU901は、例えば、生成装置200のデータ生成部210、証明書生成部220、鍵生成部230及びトレースデータ処理部240、加工装置300のデータ加工部310、証明書生成部320、鍵生成部330及びトレースデータ処理部340、検証装置400の検証部410及びデータ類似判定部420、ノード装置500のP2Pデータベースプログラム511を実行する構成を具現し得る。
CPU901、ROM902及びRAM903は、CPUバス等を含むホストバス904aにより相互に接続されている。ホストバス904aは、ブリッジ904を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス904bに接続されている。なお、必ずしもホストバス904a、ブリッジ904および外部バス904bを分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
入力装置906は、例えば、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、ユーザによって情報が入力される装置によって実現される。また、入力装置906は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話やPDA等の外部接続機器であってもよい。さらに、入力装置906は、例えば、上記の入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などを含んでいてもよい。情報処理装置900のユーザは、この入力装置906を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置907は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で形成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音響出力装置や、プリンタ装置等がある。
ストレージ装置908は、情報処理装置900の記憶部の一例として形成されたデータ格納用の装置である。ストレージ装置908は、例えば、HDD等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により実現される。ストレージ装置908は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置908は、CPU901が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。ストレージ装置908は、例えば、製造者装置100の記憶部110、生成装置200の記憶部250、ノード装置500のP2Pデータベース510を具現し得る。
ドライブ909は、記憶媒体用リーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ909は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、RAM903に出力する。また、ドライブ909は、リムーバブル記憶媒体に情報を書き込むこともできる。
接続ポート911は、外部機器と接続されるインタフェースであって、例えばUSB(Universal Serial Bus)などによりデータ伝送可能な外部機器との接続口である。
通信装置913は、例えば、ネットワーク920に接続するための通信デバイス等で形成された通信インタフェースである。通信装置913は、例えば、有線若しくは無線LAN(Local Area Network)、LTE(Long Term Evolution)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置913は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置913は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。
センサ915は、例えば、撮像センサ、感圧センサ、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサ、又は測距センサ等の各種のセンサである。本実施形態において生成装置200がカメラである場合、センサ915は生成装置200の撮像センサを具現し得る。
なお、ネットワーク920は、ネットワーク920に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク920は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク920は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。
以上、本実施形態に係る各装置のハードウェア構成例を示した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
なお、上記のような情報処理装置900の各機能を実現するためのコンピュータプログラムを作製し、PC等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的又は例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、又は上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
少なくとも1以上の第1のデータに基づいて生成された第2のデータに対する公開鍵及び秘密鍵を生成する鍵生成部と、
前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記第2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名を施した証明書を生成する証明書生成部と、
前記第1のデータと前記第2のデータの関係をトレースすることに用いられるトレースデータと、前記第2のデータに対する秘密鍵を前記第2のデータに付加するトレースデータ処理部と、を備え、
前記トレースデータは、前記証明書生成部によって生成された証明書、及び前記第1のデータに付加されたトレースデータを含む、
情報処理装置。
(2)
前記トレースデータ処理部は、少なくとも前記第2のデータ、前記第2のデータに対する公開鍵、及び、全ての前記第1のデータを識別可能なIDを用いて、暗号学的ハッシュ関数で計算することで生成した、前記第2のデータを識別可能なIDを前記トレースデータに付加する、
前記(1)に記載の情報処理装置。
(3)
前記トレースデータ処理部は、前記第2のデータの内容を示すダイジェスト情報を前記トレースデータに対応付け、
前記証明書生成部は、前記ダイジェスト情報を用いて暗号学的ハッシュ関数で計算することで生成された、前記ダイジェスト情報を識別可能なIDを証明対象として前記証明書に含める、
前記(1)または(2)に記載の情報処理装置。
(4)
少なくとも1以上の第1のデータに基づいて生成された第2のデータに対する公開鍵及び秘密鍵を生成することと、
前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記第2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名を施した証明書を生成することと、
前記第1のデータと前記第2のデータの関係をトレースすることに用いられるトレースデータと、前記第2のデータに対する秘密鍵を前記第2のデータに付加することと、
前記トレースデータは、前記証明書、及び前記第1のデータに付加されたトレースデータを含む、
コンピュータに実現させるためのプログラム。
(5)
データを生成するデータ生成部と、
前記データに対する公開鍵及び秘密鍵を生成する鍵生成部と、
前記データに対する公開鍵、若しくは前記データに対する公開鍵を用いて生成された、前記データに対する公開鍵を識別可能なIDと、前記データ、若しくは前記データから生成されたデータに対して、自装置に対する秘密鍵を用いて電子署名を施した証明書を生成する証明書生成部と、
前記データが自装置によって生成されたことをトレースすることに用いられ、前記証明書生成部によって生成された証明書が含まれるトレースデータと、前記データに対する秘密鍵を前記データに付加するトレースデータ処理部と、を備える、
情報処理装置。
(6)
前記トレースデータ処理部は、少なくとも前記データ、前記のデータに対する公開鍵、及び、前記自装置に対する公開鍵を用いて、暗号学的ハッシュ関数で計算することで生成した、前記データを識別可能なIDを前記トレースデータに付加する、
前記(5)に記載の情報処理装置。
(7)
前記トレースデータ処理部は、前記データの内容を示すダイジェスト情報を前記トレースデータに対応付け、
前記証明書生成部は、前記ダイジェスト情報を用いて暗号学的ハッシュ関数で計算することで生成された、前記ダイジェスト情報を識別可能なIDを証明対象として前記証明書に含める、
前記(5)または(6)に記載の情報処理装置。
(8)
前記自装置に対する公開鍵、若しくは前記自装置に対する公開鍵の識別子が前記自装置の製造者に対する秘密鍵によって電子署名を施されることで生成された証明書、前記自装置に対する公開鍵、又は前記自装置に対する公開鍵の識別子は、P2Pデータベースに登録される、
前記(5)から(7)のいずれか1項に記載の情報処理装置。
(9)
前記製造者に対する公開鍵が前記製造者に対する秘密鍵によって電子署名を施されることで生成された証明書は、前記P2Pデータベースに登録される、
前記(8)に記載の情報処理装置。
(10)
少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証する検証部と、
前記第2のデータ、若しくは前記第2のデータを識別可能なIDを前記データベースに登録する登録部と、を備え、
前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、
情報処理装置。
(11)
前記検証部は、前記第1のデータに付加されたトレースデータに含まれる、前記第1のデータに対する公開鍵、若しくは前記第1のデータに対する公開鍵を用いて生成された、前記第1のデータに対する公開鍵を識別可能なIDを用いて、前記トレースデータに含まれる、前記第1のデータに対する秘密鍵を用いて電子署名を施された前記第2のデータの証明書を検証し、
少なくとも前記第2のデータ、前記第2のデータに対する公開鍵、及び、全ての前記第1のデータを識別可能なIDを用いて、暗号学的ハッシュ関数で計算することで生成した、前記第2のデータを識別可能なIDが、前記トレースデータに含まれる、前記第2のデータを識別可能なIDと一致することを検証する、
前記(10)に記載の情報処理装置。
(12)
前記第2のデータとして扱われるデータが、前記第1のデータとしても扱われることで、各データは連鎖的な関係を有し、
前記検証部は、前記連鎖的な関係における最初のデータの前記トレースデータに含まれる証明書の検証には、前記データベースに登録されている、前記最初のデータの生成装置に対する公開鍵、若しくは前記生成装置に対する公開鍵を用いて生成された、前記生成装置に対する公開鍵を識別可能なIDを用い、
前記生成装置に対する公開鍵は、製造者に対する秘密鍵によって電子署名を施された証明書によって検証され、前記データベースに登録されている、
前記(11)に記載の情報処理装置。
(13)
前記登録部は、前記検証部による前記証明書の検証後に、前記第2のデータを識別可能なID、若しくは前記トレースデータに含まれる、各データを識別可能なIDを、前記データベースに登録する、
前記(12)に記載の情報処理装置。
(14)
前記データベースは、P2Pデータベースであり、
前記検証部は、前記P2Pデータベースに備えられ、前記P2Pデータベース上で実行される所定のプログラムによって実現される、
前記(10)から(13)のいずれか1項に記載の情報処理装置。
(15)
少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証することと、
前記第2のデータ、若しくは前記第2のデータを識別可能なIDを前記データベースに登録することと、を有し、
前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、
コンピュータにより実行される情報処理方法。
(16)
少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証する外部装置へ、前記トレースデータを提供するプログラムであり、
前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、
コンピュータに実現させるためのプログラム。
100 製造者装置
110 記憶部
200 生成装置
210 データ生成部
220 証明書生成部
230 鍵生成部
240 トレースデータ処理部
250 記憶部
300 加工装置
310 データ加工部
320 証明書生成部
330 鍵生成部
340 トレースデータ処理部
400 検証装置
410 検証部
420 データ類似判定部
500 ノード装置
510 P2Pデータベース
511 P2Pデータベースプログラム
511a 検証部(登録部)
600 P2Pネットワーク

Claims (16)

  1. 少なくとも1以上の第1のデータに基づいて生成された第2のデータに対する公開鍵及び秘密鍵を生成する鍵生成部と、
    前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記第2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名を施した証明書を生成する証明書生成部と、
    前記第1のデータと前記第2のデータの関係をトレースすることに用いられるトレースデータと、前記第2のデータに対する秘密鍵を前記第2のデータに付加するトレースデータ処理部と、を備え、
    前記トレースデータは、前記証明書生成部によって生成された証明書、及び前記第1のデータに付加されたトレースデータを含む、
    情報処理装置。
  2. 前記トレースデータ処理部は、少なくとも前記第2のデータ、前記第2のデータに対する公開鍵、及び、全ての前記第1のデータを識別可能なIDを用いて、暗号学的ハッシュ関数で計算することで生成した、前記第2のデータを識別可能なIDを前記トレースデータに付加する、
    請求項1に記載の情報処理装置。
  3. 前記トレースデータ処理部は、前記第2のデータの内容を示すダイジェスト情報を前記トレースデータに対応付け、
    前記証明書生成部は、前記ダイジェスト情報を用いて暗号学的ハッシュ関数で計算することで生成された、前記ダイジェスト情報を識別可能なIDを証明対象として前記証明書に含める、
    請求項1に記載の情報処理装置。
  4. 少なくとも1以上の第1のデータに基づいて生成された第2のデータに対する公開鍵及び秘密鍵を生成することと、
    前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記第2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名を施した証明書を生成することと、
    前記第1のデータと前記第2のデータの関係をトレースすることに用いられるトレースデータと、前記第2のデータに対する秘密鍵を前記第2のデータに付加することと、
    前記トレースデータは、前記証明書、及び前記第1のデータに付加されたトレースデータを含む、
    コンピュータに実現させるためのプログラム。
  5. データを生成するデータ生成部と、
    前記データに対する公開鍵及び秘密鍵を生成する鍵生成部と、
    前記データに対する公開鍵、若しくは前記データに対する公開鍵を用いて生成された、前記データに対する公開鍵を識別可能なIDと、前記データ、若しくは前記データから生成されたデータに対して、自装置に対する秘密鍵を用いて電子署名を施した証明書を生成する証明書生成部と、
    前記データが自装置によって生成されたことをトレースすることに用いられ、前記証明書生成部によって生成された証明書が含まれるトレースデータと、前記データに対する秘密鍵を前記データに付加するトレースデータ処理部と、を備える、
    情報処理装置。
  6. 前記トレースデータ処理部は、少なくとも前記データ、前記データに対する公開鍵、及び、前記自装置に対する公開鍵を用いて、暗号学的ハッシュ関数で計算することで生成した、前記データを識別可能なIDを前記トレースデータに付加する、
    請求項5に記載の情報処理装置。
  7. 前記トレースデータ処理部は、前記データの内容を示すダイジェスト情報を前記トレースデータに対応付け、
    前記証明書生成部は、前記ダイジェスト情報を用いて暗号学的ハッシュ関数で計算することで生成された、前記ダイジェスト情報を識別可能なIDを証明対象として前記証明書に含める、
    請求項5に記載の情報処理装置。
  8. 前記自装置に対する公開鍵、若しくは前記自装置に対する公開鍵の識別子が前記自装置の製造者に対する秘密鍵によって電子署名を施されることで生成された証明書、前記自装置に対する公開鍵、又は前記自装置に対する公開鍵の識別子は、P2Pデータベースに登録される、
    請求項5に記載の情報処理装置。
  9. 前記製造者に対する公開鍵が前記製造者に対する秘密鍵によって電子署名を施されることで生成された証明書は、前記P2Pデータベースに登録される、
    請求項8に記載の情報処理装置。
  10. 少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証する検証部と、
    前記第2のデータ、若しくは前記第2のデータを識別可能なIDを前記データベースに登録する登録部と、を備え、
    前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、
    情報処理装置。
  11. 前記検証部は、前記第1のデータに付加されたトレースデータに含まれる、前記第1のデータに対する公開鍵、若しくは前記第1のデータに対する公開鍵を用いて生成された、前記第1のデータに対する公開鍵を識別可能なIDを用いて、前記トレースデータに含まれる、前記第1のデータに対する秘密鍵を用いて電子署名を施された前記第2のデータの証明書を検証し、
    少なくとも前記第2のデータ、前記第2のデータに対する公開鍵、及び、全ての前記第1のデータを識別可能なIDを用いて、暗号学的ハッシュ関数で計算することで生成した、前記第2のデータを識別可能なIDが、前記トレースデータに含まれる、前記第2のデータを識別可能なIDと一致することを検証する、
    請求項10に記載の情報処理装置。
  12. 前記第2のデータとして扱われるデータが、前記第1のデータとしても扱われることで、各データは連鎖的な関係を有し、
    前記検証部は、前記連鎖的な関係における最初のデータの前記トレースデータに含まれる証明書の検証には、前記データベースに登録されている、前記最初のデータの生成装置に対する公開鍵、若しくは前記生成装置に対する公開鍵を用いて生成された、前記生成装置に対する公開鍵を識別可能なIDを用い、
    前記生成装置に対する公開鍵は、製造者に対する秘密鍵によって電子署名を施された証明書によって検証され、前記データベースに登録されている、
    請求項11に記載の情報処理装置。
  13. 前記登録部は、前記検証部による前記証明書の検証後に、前記第2のデータを識別可能なID、若しくは前記トレースデータに含まれる、各データを識別可能なIDを、前記データベースに登録する、
    請求項12に記載の情報処理装置。
  14. 前記データベースは、P2Pデータベースであり、
    前記検証部は、前記P2Pデータベースに備えられ、前記P2Pデータベース上で実行される所定のプログラムによって実現される、
    請求項10に記載の情報処理装置。
  15. 少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証することと、
    前記第2のデータ、若しくは前記第2のデータを識別可能なIDを前記データベースに登録することと、を有し、
    前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、
    コンピュータにより実行される情報処理方法。
  16. 少なくとも1以上の第1のデータと、前記第1のデータに基づいて生成された第2のデータの関係をトレースすることに用いられ、前記第2のデータに付加されるトレースデータ、及びデータベースに登録されている情報を用いて、前記第2のデータ、若しくは前記第2のデータから生成されたデータの真正性を検証する外部装置へ、前記トレースデータを提供するプログラムであり、
    前記トレースデータは、前記第2のデータに対する公開鍵、若しくは前記第2のデータに対する公開鍵を用いて生成された、前記第2のデータに対する公開鍵を識別可能なIDと、前記第2のデータ、若しくは前記2のデータから生成されたデータとに対して、前記第1のデータに対する秘密鍵を用いて電子署名が施された証明書、及び前記第1のデータに付加されたトレースデータを含む、
    コンピュータに実現させるためのプログラム。
JP2021501718A 2019-02-22 2020-01-21 情報処理装置、情報処理方法、及びプログラム Active JP7476876B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019030632 2019-02-22
JP2019030632 2019-02-22
PCT/JP2020/001801 WO2020170685A1 (ja) 2019-02-22 2020-01-21 情報処理装置、情報処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2020170685A1 JPWO2020170685A1 (ja) 2020-08-27
JP7476876B2 true JP7476876B2 (ja) 2024-05-01

Family

ID=72144210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021501718A Active JP7476876B2 (ja) 2019-02-22 2020-01-21 情報処理装置、情報処理方法、及びプログラム

Country Status (3)

Country Link
US (1) US11943339B2 (ja)
JP (1) JP7476876B2 (ja)
WO (1) WO2020170685A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021192992A1 (ja) * 2020-03-23 2021-09-30 ソニーグループ株式会社 エンティティ、ゲートウェイ装置、情報処理装置、情報処理システム、および情報処理方法
US20220006642A1 (en) * 2020-07-06 2022-01-06 The Samo Project System and method for content storage and ownership verification
US20240005019A1 (en) * 2020-12-09 2024-01-04 Nec Corporation Data trading device, data trading system, data trading method, and non-transitory computer-readable medium
US20220417030A1 (en) * 2021-06-26 2022-12-29 Redpine Signals, Inc. Device Authentication using Blockchain

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008124668A (ja) 2006-11-09 2008-05-29 Canon Inc コンテンツ編集装置及びコンテンツ検証装置
WO2009028513A1 (ja) 2007-08-29 2009-03-05 Nec Corporation コンテンツの公開システム及び該システムにおける公開コンテンツの保証方法
JP2010050760A (ja) 2008-08-22 2010-03-04 Hitachi Ltd コンテンツ保護装置、および、コンテンツ利用装置
WO2018207424A1 (ja) 2017-05-11 2018-11-15 三菱電機株式会社 メッセージ加工装置、地図管理装置、地図会社装置および自動車会社装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4390570B2 (ja) 2004-01-21 2009-12-24 株式会社エヌ・ティ・ティ・ドコモ 多段署名検証システム、電子署名付与装置、データ追加装置及び電子署名検証装置
US20210334794A1 (en) * 2016-06-24 2021-10-28 Raise Marketplace, Llc Resolving a parameter error associated with a primary blockchain
JP6826290B2 (ja) 2017-01-19 2021-02-03 富士通株式会社 証明書配付システム、証明書配付方法、および証明書配付プログラム
US10819526B2 (en) * 2018-02-19 2020-10-27 Microsoft Technology Licensing, Llc Identity-based certificate authority system architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008124668A (ja) 2006-11-09 2008-05-29 Canon Inc コンテンツ編集装置及びコンテンツ検証装置
WO2009028513A1 (ja) 2007-08-29 2009-03-05 Nec Corporation コンテンツの公開システム及び該システムにおける公開コンテンツの保証方法
JP2010050760A (ja) 2008-08-22 2010-03-04 Hitachi Ltd コンテンツ保護装置、および、コンテンツ利用装置
WO2018207424A1 (ja) 2017-05-11 2018-11-15 三菱電機株式会社 メッセージ加工装置、地図管理装置、地図会社装置および自動車会社装置

Also Published As

Publication number Publication date
US11943339B2 (en) 2024-03-26
US20220166609A1 (en) 2022-05-26
JPWO2020170685A1 (ja) 2020-08-27
WO2020170685A1 (ja) 2020-08-27

Similar Documents

Publication Publication Date Title
JP7476876B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP4847701B2 (ja) 著作権管理システムにおける柔軟性のある権利テンプレートを使用したデジタルコンテンツの署名済み権利ラベル(srl)の取得
JP4627624B2 (ja) 組織などの限定された領域内におけるデジタル著作権管理(drm)システムによるデジタルコンテンツのパブリッシュ
EP1376980B1 (en) Secure server plug-in architecture for digital rights management systems
US7891007B2 (en) Systems and methods for issuing usage licenses for digital content and services
AU2004200471B2 (en) Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system
KR100912276B1 (ko) 하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템
US7174021B2 (en) Systems and methods for providing secure server key operations
AU2004200454B2 (en) Enrolling/sub-enrolling a digital rights management (DRM) server into a DRM architecture
JP4724360B2 (ja) ディジタル権利管理システムにおいて権利テンプレートを使用してディジタルコンテンツのための署名権利ラベル(srl)を取得する方法
JP5357292B2 (ja) デジタル著作権管理エンジンのシステムおよび方法
TW486902B (en) Method capable of preventing electronic documents from being illegally copied and its system
JP2004046856A (ja) デジタルコンテンツに対応するデジタルライセンスを取得する方法
JP2004046790A (ja) デジタルコンテンツの保護及び管理のためのシステム
JP2004110197A (ja) センタ・システムにおける情報処理方法及びアクセス権限管理方法
JP2004133654A (ja) 記憶装置、端末装置およびサーバ装置
KR101979323B1 (ko) 소프트웨어 저작권 인증 관리 방법
JP2009515270A (ja) バイオメトリックデータを用いたデジタル著作権管理
JP3575210B2 (ja) デジタル情報管理システム、端末装置、情報管理センタ及びデジタル情報管理方法
TW200941996A (en) Using mobile device to construct a secure E-DRM method
JP2001147899A (ja) コンテンツ配布システム
JP6813705B1 (ja) コンテンツ利用システム、コンテンツ利用方法、ユーザ端末、プログラムおよび配信サーバ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240401

R150 Certificate of patent or registration of utility model

Ref document number: 7476876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150