Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7211517B2 - データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム - Google Patents
[go: Go Back, main page]

JP7211517B2 - データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム - Google Patents

データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム Download PDF

Info

Publication number
JP7211517B2
JP7211517B2 JP2021536553A JP2021536553A JP7211517B2 JP 7211517 B2 JP7211517 B2 JP 7211517B2 JP 2021536553 A JP2021536553 A JP 2021536553A JP 2021536553 A JP2021536553 A JP 2021536553A JP 7211517 B2 JP7211517 B2 JP 7211517B2
Authority
JP
Japan
Prior art keywords
data
key
secure area
signature
verification
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
JP2021536553A
Other languages
English (en)
Other versions
JPWO2021019738A1 (ja
JPWO2021019738A5 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2021019738A1 publication Critical patent/JPWO2021019738A1/ja
Publication of JPWO2021019738A5 publication Critical patent/JPWO2021019738A5/ja
Application granted granted Critical
Publication of JP7211517B2 publication Critical patent/JP7211517B2/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/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Description

本開示は、データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、コンピュータ可読媒体に関する。
近年、電子データによる広告等のデータを配信するために、データ配信を専門に行うデータ流通基盤(Data Distribution Platform(DDP))が用いられることが増加している。その際、データ流通基盤は、広告主であるデータ所有者(Data Owner)に対して、配信されるデータ量に応じた課金を行うことが一般的である。そのため、データ流通基盤は、自身が実際にデータ送信を行ったことと、送信先であるエンドユーザ(End User)が実際にデータ受信を行ったことを証明することが重要である。
尚、特許文献1には、データの正当性を判定するための検証情報付与装置に関する技術が開示されている。
国際公開第2018/179293号
ここで、上述したデータ配信において、データ流通基盤とエンドユーザが共謀した場合には、データ所有者は不正に金銭の支払い等の不正な価値の移転が生じ、損害が発生するおそれがあるという問題点がある。その理由は、これまでは、データ流通基盤からエンドユーザへ特定のデータが送信されたことを検証する仕組みが不十分であったためである。
本開示は、このような問題点を解決するためになされたものであり、データ配信の信頼性を向上するためのデータ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、コンピュータ可読媒体を提供することを目的とする。
本開示の第1の態様にかかるデータ配信装置は、
自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成する鍵生成手段と、
前記第1の検証鍵を自装置内かつ前記第1のセキュア領域外へ出力する出力手段と、
前記出力された第1の検証鍵を外部に公開する公開手段と、
データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち、公開された第2の検証鍵を取得する取得手段と、
前記データ要求装置からのデータ配信要求に応じて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名する署名手段と、
前記署名後の送信データを前記データ要求装置へ送信する第1の送信手段と、
前記データ要求装置において前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された証明データを、前記データ要求装置から受信する受信手段と、
前記証明データに対して、前記第2の検証鍵を用いて署名を検証する検証手段と、
前記証明データに対する前記第2の検証鍵を用いた署名が検証できた場合に、当該証明データを前記データ提供装置へ送信する第2の送信手段と、
を備える。
本開示の第2の態様にかかるデータ要求装置は、
データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち、公開された第1の検証鍵を取得する取得手段と、
自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成する鍵生成手段と、
前記第2の検証鍵を自装置内かつ前記第2のセキュア領域外へ出力する出力手段と、
前記出力された第2の検証鍵を外部に公開する公開手段と、
前記データ配信装置に対して、データ提供装置から提供された配信対象データの配信要求を行う要求手段と、
前記データ配信装置において前記配信対象データの少なくとも一部を含む処理対象データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された署名後の送信データを、前記データ配信装置から受信する受信手段と、
前記送信データに対して、前記第1の検証鍵を用いて署名を検証する検証手段と、
前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名する署名手段と、
前記署名後の証明データを前記データ配信装置へ送信する送信手段と、
を備える。
本開示の第3の態様にかかるデータ配信システムは、
第1のセキュア領域を備えるデータ配信装置と、
第2のセキュア領域を備えるデータ要求装置と、
配信対象データを前記データ配信装置に提供するデータ提供装置と、
を備え、
前記データ配信装置は、
前記第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成し、当該第1の検証鍵を当該第1のセキュア領域外へ出力して外部に公開し、
前記データ要求装置は、
前記第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成し、当該第2の検証鍵を当該第2のセキュア領域外へ出力して外部に公開し、
前記データ配信装置は、
前記データ要求装置からのデータ配信要求に応じて、前記配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、
前記署名後の送信データを前記データ要求装置へ送信し、
前記データ要求装置は、
前記データ配信装置から受信した前記送信データに対して、前記第1の検証鍵を用いて署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
前記署名後の証明データを前記データ配信装置へ送信し、
前記データ配信装置は、
前記データ要求装置から受信した前記証明データに対して、前記第2の検証鍵を用いて署名が検証できた場合に、前記証明データを前記データ提供装置へ送信する。
本開示の第4の態様にかかるデータ配信方法は、
コンピュータが、
自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成し、
前記第1の検証鍵を自装置内かつ前記第1のセキュア領域外へ出力し、
前記出力された第1の検証鍵を外部に公開し、
データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち、公開された第2の検証鍵を取得し、
前記データ要求装置からのデータ配信要求に応じて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、
前記署名後の送信データを前記データ要求装置へ送信し、
前記データ要求装置において前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された証明データを、前記データ要求装置から受信し、
前記証明データに対して、前記第2の検証鍵を用いて署名を検証し、
前記証明データに対する前記第2の検証鍵を用いた署名が検証できた場合に、当該証明データを前記データ提供装置へ送信する。
本開示の第5の態様にかかるコンピュータ可読媒体は、
自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成する鍵生成処理と、
前記第1の検証鍵を公開するために前記第1のセキュア領域外へ出力する第1の出力処理と、
データ要求装置からのデータ配信要求に応じて、前記データ要求装置の第2のセキュア領域内でデータ通信用として生成されて入力された暗号鍵を用いて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で暗号化して暗号化データとする暗号化処理と、
前記データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち公開された第2の検証鍵を用いて、前記暗号化データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名する署名処理と、
前記署名されたデータを前記データ要求装置への送信データとして前記第1のセキュア領域外へ出力する第2の出力処理と、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体である。
本開示の第6の態様にかかるデータ要求方法は、
コンピュータが、
データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち、公開された第1の検証鍵を取得し、
自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成し、
前記第2の検証鍵を自装置内かつ前記第2のセキュア領域外へ出力し、
前記出力された第2の検証鍵を外部に公開し、
前記データ配信装置に対して、データ提供装置から提供された配信対象データの配信要求を行い、
前記データ配信装置において前記配信対象データの少なくとも一部を含む処理対象データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された署名後の送信データを、前記データ配信装置から受信し、
前記送信データに対して、前記第1の検証鍵を用いて署名を検証し、
前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
前記署名後の証明データを前記データ配信装置へ送信する。
本開示の第7の態様にかかるコンピュータ可読媒体は、
自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成する第1の鍵生成処理と、
前記第2の検証鍵を公開するために前記第2のセキュア領域外へ出力する第1の出力処理と、
前記第2のセキュア領域内でデータ通信用の暗号鍵を生成する第2の鍵生成処理と、
前記暗号鍵をデータ配信装置へ送信するために前記第2のセキュア領域外へ出力する第2の出力処理と、
前記データ配信装置から受信した受信データに対して前記データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち公開された第1の検証鍵を用いて署名が検証された場合に、前記受信データに含まれる暗号化データに対して、前記第2のセキュア領域内で前記暗号鍵に基づく鍵を用いて復号する復号処理と、
前記復号された復号データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名する署名処理と、
前記署名後の証明データを前記データ配信装置への返信データとして前記第2のセキュア領域外へ出力する第3の出力処理と、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体である。
上述の態様によれば、データ配信の信頼性を向上するためのデータ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、コンピュータ可読媒体を提供することができる。
本実施形態1にかかるデータ配信システムの全体構成を示すブロック図である。 本実施形態1にかかるデータ配信方法の流れを示すシーケンス図である。 本実施形態2にかかるデータ配信システムの全体構成を示すブロック図である。 本実施形態2にかかるデータ配信装置の構成を示すブロック図である。 本実施形態2にかかるデータ配信装置のハードウェア構成を示すブロック図である。 本実施形態2にかかるデータ要求装置の構成を示すブロック図である。 本実施形態2にかかるデータ要求装置のハードウェア構成を示すブロック図である。 本実施形態2にかかるデータ提供装置の構成を示すブロック図である。 本実施形態2にかかる鍵の生成及び公開の流れを示すシーケンス図である。 本実施形態2にかかるデータ配信方法の流れを示すシーケンス図である。 本実施形態2にかかるデータ配信方法の流れを示すシーケンス図である。
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<実施形態1>
図1は、本実施形態1にかかるデータ配信システム1000の全体構成を示すブロック図である。データ配信システム1000は、データ提供装置1と、データ配信装置2と、データ要求装置3とを備える。データ提供装置1は、配信対象データをデータ配信装置2に提供し、配信対象データの配信を要求するものに対するデータ配信をデータ配信装置2に依頼する。ここで、配信対象データとは、例えば、広告データであるがこれに限定されない。データ提供装置1は、例えば、配信対象データの広告主であるデータ所有者が操作する情報処理装置である。
データ配信装置2は、自装置内に第1のセキュア領域21を備える情報処理装置である。データ配信装置2は、例えば、データ流通基盤(Data Distribution Platform(DDP))を実現する情報システムである。第1のセキュア領域21は、セキュア領域外22とは物理的又は論理的に分離されたTEE (Trusted Execution Environment)である。第1のセキュア領域21は、セキュア領域外22のメインプロセスからのアクセスが制限されるメモリ(不図示)を有し、本実施形態にかかるセキュアプログラム及び各種鍵情報を安全に保持する。よって、第1のセキュア領域21は、データ配信装置2のうちセキュア領域外22と比べてセキュアな実行環境であるTEEである。ここで、第1のセキュア領域21は、ARM(登録商標)アーキテクチャのTrustZoneやIntel SGX等に代表される技術仕様により実現可能である。
データ配信装置2は、鍵生成部211、出力部212、署名部213、公開部221、取得部222、第1の送信部223、受信部224、検証部225及び第2の送信部226を備える。ここで、鍵生成部211、出力部212及び署名部213は、第1のセキュア領域21内で動作する構成である。また、データ配信装置2は、第1の署名鍵201及び第1の検証鍵202を第1のセキュア領域21内のメモリ(不図示)に保持し、第2の検証鍵203をセキュア領域外22のメモリ(不図示)に保持する。そのため、第1の署名鍵201及び第1の検証鍵202は、セキュア領域外22からは、直接、読出しや書き換えができない。尚、第2の検証鍵203は、第1のセキュア領域21内のメモリに保持されてもよい。
鍵生成部211は、第1のセキュア領域21内で第1の署名鍵201と第1の検証鍵202の組を生成する。第1の署名鍵201は、所定のデータに電子署名を行う際の鍵情報であり、秘密鍵である。第1の検証鍵202は、第1の署名鍵201による署名を検証するための鍵情報であり、公開鍵である。そして、第1の署名鍵201と第1の検証鍵202とは対応する。
出力部212は、第1の検証鍵202を自装置内かつ第1のセキュア領域21外(セキュア領域外22)へ出力する。尚、第1の署名鍵201は、セキュア領域外22へ出力されない。
公開部221は、出力部212により出力された第1の検証鍵202をデータ配信装置2の外部に公開する。ここで、「公開」とは、例えば、データ配信装置2内の特定の記憶領域を外部からアクセス可能に設定し、当該記憶領域に第1の検証鍵202を保存することが挙げられる。または、「公開」とは、例えば、ネットワーク上で任意のコンピュータからアクセス可能なファイルサーバに第1の検証鍵202をアップロードする等が挙げられる。そのため、データ提供装置1やデータ要求装置3は、第1の検証鍵202を取得することが可能である。または、公開部221は、少なくともデータ要求装置3へ第1の検証鍵202を送信してもよい。本実施形態では、データ要求装置3内の第1の検証鍵303とデータ配信装置2内の第1の検証鍵202とは同一の鍵情報である。
取得部222は、データ要求装置3の第2のセキュア領域31内で生成された第2の署名鍵301と第2の検証鍵302の組のうち、公開された第2の検証鍵302を第2の検証鍵203として取得する。つまり、本実施形態では、データ要求装置3内の第2の検証鍵302とデータ配信装置2内の第2の検証鍵203とは同一の鍵情報である。
署名部213は、データ要求装置3からのデータ配信要求に応じて、配信対象データの少なくとも一部を含む処理対象データに対して、第1のセキュア領域21内で第1の署名鍵201を用いて署名する。尚、処理対象データに加えて、処理対象データを特定するための特定情報を含めて署名がされても良い。ここで、「特定情報」とは、処理対象データの識別情報、処理対象データのハッシュ値、又は、配信対象データ内における位置を特定する情報等である。また、処理対象データに加えて、配信対象データの識別情報を含めて署名がされてもよい。また、配信対象データの識別情報を特定情報としても良い。
第1の送信部223は、署名後の送信データをデータ要求装置3へ送信する。尚、送信データには、少なくとも上述した特定情報が含まれる。受信部224は、後述する証明データを、データ要求装置3から受信する。検証部225は、受信した証明データに対して、第2の検証鍵203を用いて署名を検証する。第2の送信部226は、証明データに対する第2の検証鍵203を用いた署名が検証できた場合に、当該証明データをデータ提供装置1へ送信する。
データ要求装置3は、自装置内に第2のセキュア領域31を備える情報処理装置である。データ要求装置3は、例えば、データ提供装置1が所有する配信対象データを、データ配信装置2を介して取得するエンドユーザが操作する端末である。第2のセキュア領域31は、セキュア領域外32とは物理的又は論理的に分離されたTEEである。よって、第2のセキュア領域31は、データ要求装置3のうちセキュア領域外32と比べてセキュアな実行環境であるTEEである。ここで、第2のセキュア領域31は、上述した第1のセキュア領域21と同様にTEEにより実現可能である。
データ要求装置3は、鍵生成部311、出力部312、署名部313、公開部321、取得部322、要求部323、受信部324、検証部325及び送信部326を備える。ここで、鍵生成部311、出力部312及び署名部313は、第2のセキュア領域31内で動作する構成である。また、データ要求装置3は、第2の署名鍵301及び第2の検証鍵302を第2のセキュア領域31内のメモリ(不図示)に保持し、第1の検証鍵303をセキュア領域外32のメモリ(不図示)に保持する。そのため、第2の署名鍵301及び第2の検証鍵302は、セキュア領域外32からは、直接、読出しや書き換えができない。尚、第1の検証鍵303は、第2のセキュア領域31内のメモリに保持されてもよい。
鍵生成部311は、第2のセキュア領域31内で第2の署名鍵301と第2の検証鍵302の組を生成する。第2の署名鍵301は、所定のデータに電子署名を行う際の鍵情報であり、秘密鍵である。第2の検証鍵302は、第2の署名鍵301による署名を検証するための鍵情報であり、公開鍵である。そして、第2の署名鍵301と第2の検証鍵302とは対応する。
出力部312は、第2の検証鍵302を自装置内かつ第2のセキュア領域31外(セキュア領域外32)へ出力する。尚、第2の署名鍵301は、セキュア領域外32へ出力されない。
公開部321は、出力部312により出力された第2の検証鍵302をデータ要求装置3の外部に公開する。ここで、「公開」とは、例えば、データ要求装置3内の特定の記憶領域を外部からアクセス可能に設定し、当該記憶領域に第2の検証鍵302を保存することが挙げられる。または、「公開」とは、例えば、ネットワーク上で任意のコンピュータからアクセス可能なファイルサーバに第2の検証鍵302をアップロードする等が挙げられる。または、公開部321は、データ提供装置1やデータ配信装置2へ第2の検証鍵302を送信してもよい。そのため、データ提供装置1やデータ配信装置2は、第2の検証鍵302を取得することが可能である。
取得部322は、データ配信装置2の第1のセキュア領域21内で生成された第1の署名鍵201と第1の検証鍵202の組のうち、公開された第1の検証鍵202を第1の検証鍵303として取得する。
要求部323は、データ配信装置2に対して、配信対象データの配信要求を行う。受信部324は、上述した署名部213による署名後の送信データを、データ配信装置2から受信する。検証部325は、送信データに対して、第1の検証鍵303を用いて署名を検証する。署名部313は、送信データに対する第1の検証鍵303を用いた署名が検証できた場合に、(送信データに含まれる)処理対象データを特定するための特定情報を含めた検証結果に対して、第2のセキュア領域31内で第2の署名鍵301を用いて署名する。送信部326は、署名後の証明データをデータ配信装置2へ送信する。つまり、「証明データ」とは、データ要求装置3において送信データに対する第1の検証鍵303を用いた署名が検証できた場合に、処理対象データを特定するための特定情報を含めた検証結果に対して第2のセキュア領域31内で第2の署名鍵301を用いて署名されたデータである。
図2は、本実施形態1にかかるデータ配信方法の流れを示すシーケンス図である。前提として、データ配信装置2は、データ提供装置1から配信対象データの提供を受けており、データ配信装置2からアクセス可能な記憶装置(不図示)に配信対象データが格納済みであるものとする。
まず、データ配信装置2の鍵生成部211は、第1のセキュア領域21内で第1の署名鍵201と第1の検証鍵202の組を生成する(S101)。次に、出力部212は、第1の検証鍵202をセキュア領域外22へ出力する(S102)。そして、公開部221は、出力された第1の検証鍵202をデータ配信装置2の外部へ公開する(S103)。これに応じて、データ要求装置3の取得部322は、公開された第1の検証鍵202を取得し(S104)、第1の検証鍵303として内部に保持する。
また、データ要求装置3の鍵生成部311は、第2のセキュア領域31内で第2の署名鍵301と第2の検証鍵302の組を生成する(S105)。次に、出力部312は、第2の検証鍵302をセキュア領域外32へ出力する(S106)。そして、公開部321は、出力された第2の検証鍵302をデータ要求装置3の外部へ公開する(S107)。これに応じて、データ配信装置2の取得部222は、公開された第2の検証鍵302を取得し(S108)、第2の検証鍵203として内部に保持する。尚、ステップS104は、ステップS109より前に実行されていれば良い。
続いて、データ要求装置3の要求部323は、データ配信装置2に対して、配信対象データの配信要求を行う(S109)。例えば、要求部323は、データ配信装置2に対して、配信対象データを指定した配信要求を送信する。
次に、データ配信装置2は、データ要求装置3からのデータ配信要求を受け付けると、署名部213にその旨を通知する。そして、署名部213は、配信対象データの少なくとも一部を含む処理対象データに対して、第1のセキュア領域21内で第1の署名鍵201を用いて署名する(S110)。そして、第1の送信部223は、署名後のデータを送信データとしてデータ要求装置へ送信する(S111)。
これに応じて、データ要求装置3の受信部324は、データ配信装置2からの送信データを受信する。そして、検証部325は、送信データに対して、第1の検証鍵303を用いて署名を検証する(S112)。署名部313は、送信データに対して、第1の検証鍵303を用いて署名が検証できた場合に、処理対象データを特定するための特定情報を含めた検証結果に対して、第2のセキュア領域31内で第2の署名鍵301を用いて署名する(S113)。
そして、送信部326は、署名後のデータを証明データとしてデータ配信装置2へ送信する(S114)。これに応じて、データ配信装置2の受信部224は、データ要求装置3からの証明データを受信する。そして、検証部225は、証明データに対して、第2の検証鍵203を用いて署名を検証する(S115)。第2の送信部226は、証明データに対して第2の検証鍵203を用いて署名が検証できた場合に、当該証明データをデータ提供装置1へ送信する(S116)。
これにより、データ提供装置1は、データ配信装置2から受信した証明データに対して、第2の検証鍵203を用いて署名を検証できる。そして、検証できた場合に、データ提供装置1は、データ配信装置2に対して所定の金額を送金することもできる。
このように、本実施形態では、データ配信装置2及びデータ要求装置3のそれぞれのセキュア領域で署名されたデータを送信し合い、相手側において受信データの署名が送信元の検証鍵を用いて検証される。ここで、データ配信装置2及びデータ要求装置3のそれぞれにおける署名は、セキュア領域内で生成された署名鍵を用いてセキュア領域内で行われるため、各装置のメインプロセスであっても自己の署名を改ざんできない。また、署名鍵に対応する検証鍵については、セキュア領域内で動作する出力部を用いて領域外へ出力するため、相手側で取得することができる。
そして、データ配信装置2は、配信要求に応じた送信データに対するデータ要求装置3からの返信データとして証明データを受信し、証明データの検証が行えた場合に、データ提供装置1へ証明データを転送する。そして、データ提供装置1においてもデータ要求装置3の検証鍵(第2の検証鍵302)が取得可能であるため、証明データの検証が可能となる。また、証明データ内に処理対象データを特定するための特定情報が含まれることで、配信対象データの少なくとも一部がデータ配信装置2からデータ要求装置3へ送信されたことの保証ができる。
尚、データ配信装置2は、図示しない構成として第1のセキュア領域21及びセキュア領域外22のそれぞれにプロセッサ、メモリ及び他の記憶装置を備えるものである。また、当該他の記憶装置には、本実施形態にかかるセキュアプログラム及びデータ配信処理が実装されたコンピュータプログラムが記憶されている。そして、第1のセキュア領域21のプロセッサがセキュアプログラムを第1のセキュア領域21内のメモリへ読み込ませ、当該コンピュータプログラムを実行する。これにより、データ配信装置2の第1のセキュア領域21のプロセッサは、鍵生成部211、出力部212及び署名部213の機能を実現する。また、セキュア領域外22のプロセッサがデータ配信プログラムをセキュア領域外22のメモリへ読み込ませ、当該コンピュータプログラムを実行する。これにより、データ配信装置2のセキュア領域外22のプロセッサは、公開部221、取得部222、第1の送信部223、受信部224、検証部225及び第2の送信部226の機能を実現する。
また、データ要求装置3は、図示しない構成として第1のセキュア領域21及びセキュア領域外32のそれぞれにプロセッサ、メモリ及び他の記憶装置を備えるものである。また、当該他の記憶装置には、本実施形態にかかるセキュアプログラム及びデータ要求処理が実装されたコンピュータプログラムが記憶されている。そして、第2のセキュア領域31のプロセッサがセキュアプログラムを第2のセキュア領域31内のメモリへ読み込ませ、当該コンピュータプログラムを実行する。これにより、データ要求装置3の第2のセキュア領域31のプロセッサは、鍵生成部311、出力部312及び署名部313の機能を実現する。また、セキュア領域外32のプロセッサがデータ要求プログラムをセキュア領域外32のメモリへ読み込ませ、当該コンピュータプログラムを実行する。これにより、データ要求装置3のセキュア領域外32のプロセッサは、公開部321、取得部322、要求部323、受信部324、検証部325及び送信部326の機能を実現する。
または、上述した鍵生成部211等は、専用のハードウェアで実現されていてもよい。また、鍵生成部211等の構成要素の一部又は全部は、汎用または専用の回路(circuitry)、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。また、プロセッサとして、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(field-programmable gate array)、ARM(登録商標)アーキテクチャ、Intel SGX(Software Guard Extensions)等を用いることができる。
<実施形態2>
図3は、本実施形態2にかかるデータ配信システム2000の全体構成を示すブロック図である。データ配信システム2000は、データ提供装置1と、データ配信装置2aと、データ要求装置3aと、データベース4と、ブロックチェーン5を備える。データ提供装置1、データ配信装置2a、データ要求装置3a及びブロックチェーン5は、少なくともネットワークNを介して接続されている。尚、データベース4もネットワークNを介して接続されていても良い。ここで、ネットワークNは、インターネット等の通信回線である。
データベース4は、データ配信装置2aと接続されたファイルサーバ等である。データベース4は、少なくとも配信対象データ41が格納されている。配信対象データ41は、例えば、広告データ等である。ブロックチェーン5は、トランザクションの集合であるブロックが連結された情報群であり、ネットワークN上で分散管理された台帳情報である。
図4は、本実施形態2にかかるデータ配信装置2aの構成を示すブロック図である。データ配信装置2aは、上述したデータ配信装置2を改良したものである。データ配信装置2aは、データ配信装置2と比べて、第1のセキュア領域21内に暗号化部214、セキュア領域外22として非セキュア領域22aに分割部227、算出部228、インストール部229及び暗号鍵204が追加されたものである。尚、以下において、実施形態1と同様の処理については、適宜説明を省略する。
取得部222は、データ要求装置3aにおいて第2のセキュア領域31内で生成されたデータ通信用の暗号鍵204を取得する。尚、暗号鍵204は、第1のセキュア領域21内で保持されても良い。暗号化部214は、処理対象データに対して、第1のセキュア領域21内で暗号鍵204を用いて暗号化して暗号化データとする。署名部213は、暗号化データに対して、第1のセキュア領域21内で第1の署名鍵201を用いて署名し、送信データとする。これにより、データの改ざんを抑止できる。
算出部228は、処理対象データに対してハッシュ値(特定情報)を算出する。署名部213は、暗号化データ及びハッシュ値に対して第1のセキュア領域21内で第1の署名鍵201を用いて署名し、送信データとする。これにより、送信データ(データ要求装置3aにおける受信データ)の検証にハッシュ値の比較を用いることができ、よりデータの信頼性が向上できる。
分割部227は、データ配信要求に応じて、配信対象データ41を複数のチャンクに分割する。この場合、算出部228は、複数のチャンクのそれぞれに対してハッシュ値を算出する。そして、暗号化部214は、複数のチャンクのそれぞれに対して暗号鍵204を用いて第1のセキュア領域21内で暗号化する。そして、署名部213は、各暗号化データと当該各暗号化データに対応するハッシュ値の組に対して第1のセキュア領域21内で第1の署名鍵201を用いて署名し、チャンクごとに送信データとする。第1の送信部223は、送信データをチャンクごとにデータ要求装置3aへ送信する。これにより、1回当たりの送信データ量を抑制し、かつ、各チャンクの信頼性を保証できる。さらに、データ要求装置3aから受信証明をもらえなかった場合のリスクを低減する。ここで、データをチャンクに分割する主な理由は次の通りである。まず、上記のデータを渡して、そのまま受信者からデータ受信証明をもらえなかった場合に対応するためである。また、ハードウェアのメモリの制約で、セキュア領域にデータが入りきらない場合に、セキュア領域に入るようなサイズに分割するためである。
ここで、第1の送信部223は、データ要求装置3aに対して第1のチャンクに対応する(上述した暗号化及びハッシュ値を含めて署名を行った)第1の送信データを送信する。そして、受信部224は、第1の送信データに対する応答である第1の証明データを、データ要求装置3aから受信する。ここで、第1の証明データは、第1のチャンクを特定するための第1の特定情報を含めた第1の検証結果に対して、データ要求装置3aにおいて第2のセキュア領域31内で第2の署名鍵301を用いて署名されたデータである。そして、第1の送信部223は、検証部225において、第1の証明データに対して第2の検証鍵203を用いて署名が検証できた場合に、第2のチャンクに対応する第2の送信データをデータ要求装置3aへ送信する。これにより、送信に成功したチャンクを保証できるため、再送効率が向上する。
尚、第2の送信部226は、検証部225において、第1の証明データに対して第2の検証鍵203を用いて署名が検証できなかった場合、第1の証明データより前に受信した証明データをデータ提供装置1へ送信する。これにより、送信できたことを証明できるチャンクを正確に通知できる。
公開部221は、第1のセキュア領域21に関する情報及び第1の検証鍵202をブロックチェーン5に記録することにより公開する。ここで、第1のセキュア領域21に関する情報とは、第1のセキュア領域21の識別情報やトラステッドハードウェアの仕様等が含まれるが、これらに限定されない。また、取得部222は、データ要求装置3aによりブロックチェーン5に記録された第2の検証鍵302をブロックチェーン5から取得する。これらにより、正確な公開情報を取得できる。
インストール部229は、鍵生成部211、出力部212、署名部213を少なくとも含むセキュアプログラム(後述)を第1のセキュア領域21内にインストールする。この場合、公開部221は、セキュアプログラムのインタフェース仕様を外部にさらに公開する。尚、セキュアプログラムには、暗号化部214を含めても良い。また、セキュアプログラムのインタフェース仕様とは、例えば、セキュア領域外から当該セキュアプログラムを呼び出す際の入力値の仕様と、当該セキュアプログラムが呼び出されて実行された実行結果の出力仕様とが挙げられる。
図5は、本実施形態2にかかるデータ配信装置2aのハードウェア構成を示すブロック図である。データ配信装置2aは、セキュアエレメント23と非セキュアエレメント24とを備える。セキュアエレメント23は、上述した第1のセキュア領域21に対応し、非セキュアエレメント24は、上述した非セキュア領域22aに対応する。非セキュアエレメント24は、データ配信装置2aの本体部分であり、データ配信装置2aの多くの機能を実現する。セキュアエレメント23は、非セキュアエレメント24とは物理的又は論理的に分離されたハードウェアである。セキュアエレメント23は、非セキュアエレメント24と比べてより安全な実行環境であり、例えば、上述したTEEにより実現される。
セキュアエレメント23は、制御部231、記憶部232及びIF(InterFace)部233を備える。制御部231は、セキュアエレメント23の各構成を制御するプロセッサつまり制御装置である。例えば、制御部231は、1以上のプロセッサコアであってもよい。記憶部232は、制御部231の動作時に一時的に情報を保持するための記憶領域である。記憶部232は、例えば、RAM(Random Access Memory)等の揮発性記憶装置又はフラッシュメモリ等の不揮発性記憶装置である。記憶部232は、非セキュアエレメント24(のインストール部229)からロードされたセキュアプログラム2321を記憶する。セキュアプログラム2321は、鍵生成部211、出力部212、署名部213及び暗号化部214の処理が実装されたコンピュータプログラムである。また、記憶部232は、セキュアエレメント23内で生成された第1の署名鍵201及び第1の検証鍵202を記憶する。IF部233は、非セキュアエレメント24と情報の入出力を行うためのインタフェースである。制御部231は、記憶部232にロードされたセキュアプログラム2321を実行することにより、上述した鍵生成部211、出力部212、署名部213及び暗号化部214の機能を実現する。
非セキュアエレメント24は、制御部241、記憶部242、IF部243及び通信部244を備える。制御部241は、非セキュアエレメント24の各構成を制御するプロセッサつまり制御装置である。例えば、制御部241は、1以上のプロセッサコアであってもよい。記憶部242は、制御部241の動作時に一時的に情報を保持するための記憶領域である。記憶部232は、例えば、RAM等の揮発性記憶装置又はフラッシュメモリ等の不揮発性記憶装置である。記憶部242は、制御部241からロードされたデータ配信プログラム2421を記憶する。データ配信プログラム2421は、公開部221、取得部222、第1の送信部223、受信部224、検証部225、第2の送信部226、分割部227及び算出部228の処理が実装されたコンピュータプログラムである。尚、データ配信プログラム2421には、インストール部229の処理がさらに実装されていてもよい。また、記憶部242は、データ要求装置3aから取得された第2の検証鍵203及び暗号鍵204を記憶する。尚、暗号鍵204は、セキュアエレメント23の記憶部232に記憶されてもよい。IF部243は、セキュアエレメント23と情報の入出力を行うためのインタフェースである。通信部244は、外部との通信に関する処理を行うための処理回路、アンテナ等を含み、ネットワークNを介してデータ提供装置1、データ要求装置3a、データベース4及びブロックチェーン5等と情報の送受信を行う。制御部241は、記憶部242にロードされたデータ配信プログラム2421を実行することにより、上述した公開部221、取得部222、第1の送信部223、受信部224、検証部225、第2の送信部226、分割部227、算出部228及びインストール部229の機能を実現する。
図6は、本実施形態2にかかるデータ要求装置3aの構成を示すブロック図である。データ要求装置3aは、上述したデータ要求装置3を改良したものである。データ要求装置3aは、データ要求装置3と比べて、第2のセキュア領域31内に復号部314、セキュア領域外32として非セキュア領域32aに算出部327及びインストール部328が追加されたものである。尚、以下において、実施形態1と同様の処理については、適宜説明を省略する。
鍵生成部311は、第2のセキュア領域31内でデータ通信用の暗号鍵304及び復号鍵305の組を生成する。暗号鍵304は、通信用のデータを暗号化するための鍵情報であり、公開鍵である。復号鍵305は、暗号鍵304により暗号化されたデータを復号するための鍵情報であり、秘密鍵である。尚、暗号鍵304と復号鍵305は、同一、つまり、共通鍵であっても良い。
出力部312は、暗号鍵304を自装置内かつ第2のセキュア領域31外(セキュア領域外32)へ出力する。尚、復号鍵305は、セキュア領域外32へ出力されない。
送信部326は、出力された暗号鍵304をデータ配信装置2aへ送信する。受信部324は、上述した暗号化部214による暗号化及び署名部213による署名がされた送信データを、データ配信装置2aから受信する。復号部314は、送信データに対して第1の検証鍵303を用いて署名が検証できた場合に、送信データに含まれる暗号化データに対して、第2のセキュア領域31内で暗号鍵304に基づく鍵(ここでは、復号鍵305)を用いて復号する。これにより、データの改ざんを抑止できる。尚、「暗号鍵304に基づく鍵」は、暗号鍵304であってもよい。
また、受信部324は、処理対象データに対して算出されたハッシュ値及び暗号化データに対して第1のセキュア領域21内で第1の署名鍵201を用いて署名された送信データを受信する。この場合、算出部327は、復号部314により復号された復号データから検証用ハッシュ値を算出する。そして、検証部325は、送信データに含まれるハッシュ値と検証用ハッシュ値とが一致するか否かを検証する。そして、署名部313は、送信データに含まれるハッシュ値と検証用ハッシュ値とが一致する場合に、ハッシュ値を特定情報として含めた検証結果に対して第2のセキュア領域31内で第2の署名鍵301を用いて署名し、証明データとする。これにより、受信データの検証にハッシュ値の比較を用いることができ、よりデータの信頼性が向上できる。
さらに、算出部327は、送信データに含まれるハッシュ値と検証用ハッシュ値とが一致する場合に、当該ハッシュ値と、当該送信データ以前の送信データに含まれたハッシュ値とを用いて検証済ハッシュ値を算出する。そして、署名部313は、検証済ハッシュ値を特定情報として含めた検証結果に対して第2のセキュア領域31内で第2の署名鍵301を用いて署名し、証明データとする。これにより、最新の証明データには、全ての受信済の処理対象データの特定情報に基づく検証結果が含まれており、データ配信装置2aやデータ提供装置1は、最新の証明データによって、正当に受信されたデータ量を検証できる。
公開部321は、第2のセキュア領域31に関する情報及び第2の検証鍵302をブロックチェーン5に記録することにより公開する。ここで、第2のセキュア領域31に関する情報とは、第2のセキュア領域31の識別情報やトラステッドハードウェアの仕様等が含まれるが、これらに限定されない。また、取得部322は、データ配信装置2aによりブロックチェーン5に記録された第1の検証鍵202をブロックチェーン5から取得する。これらにより、正確な公開情報を取得できる。
インストール部328は、鍵生成部311、出力部312及び署名部313を少なくとも含むセキュアプログラム(後述)を第2のセキュア領域31内にインストールする。この場合、公開部321は、セキュアプログラムのインタフェース仕様を外部にさらに公開する。尚、セキュアプログラムには、復号部314を含めても良い。
図7は、本実施形態2にかかるデータ要求装置3aのハードウェア構成を示すブロック図である。データ要求装置3aは、セキュアエレメント33と非セキュアエレメント34とを備える。セキュアエレメント33は、上述した第2のセキュア領域31に対応し、非セキュアエレメント34は、上述した非セキュア領域32aに対応する。非セキュアエレメント34は、データ要求装置3aの本体部分であり、データ要求装置3aの多くの機能を実現する。セキュアエレメント33は、非セキュアエレメント34とは物理的又は論理的に分離されたハードウェアである。セキュアエレメント33は、非セキュアエレメント34と比べてより安全な実行環境であり、例えば、上述したTEEにより実現される。
セキュアエレメント33は、制御部331、記憶部332及びIF部333を備える。制御部331は、セキュアエレメント33の各構成を制御するプロセッサつまり制御装置である。例えば、制御部331は、1以上のプロセッサコアであってもよい。記憶部332は、制御部331の動作時に一時的に情報を保持するための記憶領域である。記憶部332は、例えば、RAM等の揮発性記憶装置又はフラッシュメモリ等の不揮発性記憶装置である。記憶部332は、非セキュアエレメント34(のインストール部328)からロードされたセキュアプログラム3321を記憶する。セキュアプログラム3321は、鍵生成部311、出力部312、署名部313及び復号部314の処理が実装されたコンピュータプログラムである。また、記憶部332は、セキュアエレメント33内で生成された第2の署名鍵301及び第2の検証鍵302並びに暗号鍵304及び復号鍵305を記憶する。IF部333は、非セキュアエレメント34と情報の入出力を行うためのインタフェースである。制御部331は、記憶部332にロードされたセキュアプログラム3321を実行することにより、上述した鍵生成部311、出力部312、署名部313及び復号部314の機能を実現する。
非セキュアエレメント34は、制御部341、記憶部342、IF部343及び通信部344を備える。制御部341は、非セキュアエレメント34の各構成を制御するプロセッサつまり制御装置である。例えば、制御部341は、1以上のプロセッサコアであってもよい。記憶部342は、制御部341の動作時に一時的に情報を保持するための記憶領域である。記憶部332は、例えば、RAM等の揮発性記憶装置又はフラッシュメモリ等の不揮発性記憶装置である。記憶部342は、制御部341からロードされたデータ要求プログラム3421を記憶する。データ要求プログラム3421は、公開部321、取得部322、要求部323、受信部324、検証部325、送信部326及び算出部327の処理が実装されたコンピュータプログラムである。尚、データ要求プログラム3421には、インストール部328の処理がさらに実装されていてもよい。また、記憶部342は、データ配信装置2aから取得された第1の検証鍵303を記憶する。IF部343は、セキュアエレメント33と情報の入出力を行うためのインタフェースである。通信部344は、外部との通信に関する処理を行うための処理回路、アンテナ等を含み、ネットワークNを介してデータ提供装置1、データ配信装置2a、データベース4及びブロックチェーン5等と情報の送受信を行う。制御部341は、記憶部342にロードされたデータ要求プログラム3421を実行することにより、上述した公開部321、取得部322、要求部323、受信部324、検証部325、送信部326、算出部327及びインストール部328の機能を実現する。
尚、上述したセキュアエレメント23及びセキュアエレメント33は、ハードウェア的に他の処理領域と隔離されたものであっても良く、ソフトウェア的に他の処理領域と隔離されたものであっても良い。
図8は、本実施形態2にかかるデータ提供装置1の構成を示すブロック図である。データ提供装置1は、記憶部11と、提供部12と、受信部13と、検証部14と、送金処理部15とを備える。記憶部11は、不揮発性の記憶装置であり、配信対象データ111と第2の検証鍵112とを記憶する。配信対象データ111は、配信対象データ41と同等のデータである。第2の検証鍵112は、データ要求装置3aで生成された第2の検証鍵302と同等の鍵情報である。
提供部12は、ネットワークNを介してデータ配信装置2aに対して配信対象データ111を送信し、データベース4に配信対象データ41として保存させる。受信部13は、データ配信装置2aから証明データを受信する。検証部14は、受信した証明データに対して、第2の検証鍵112を用いて署名を検証する。送金処理部15は、署名が検証できた場合に、証明データに応じた金額をデータ配信装置2aへ送金する。ここで、送金処理は、公知の技術を用いるものとする。例えば、金融システムにおけるデータ提供装置1の口座からデータ配信装置2a側の口座へ送金を指示してもよい。ここで、金融システムとして、銀行等の他にブロックチェーンで管理された暗号通貨(仮想通貨)や暗号資産あってもよい。さらに、送金処理部15は、証明データに対して第2の検証鍵112を用いて署名が検証できた場合に、検証済のチャンク数に応じた金額をデータ配信装置2aへ送金すると良い。これにより、一部のチャンクの送信が確認できなかった場合にはその分の余計な支出を抑制できる。
尚、データ提供装置1は、図示しない構成としてプロセッサ、メモリ及び記憶装置を備えるものである。また、当該記憶装置には、本実施形態にかかるデータ提供装置1の処理が実装されたコンピュータプログラムが記憶されている。そして、当該プロセッサは、記憶装置からコンピュータプログラムを前記メモリへ読み込み、当該コンピュータプログラムを実行する。これにより、前記プロセッサは、提供部12、受信部13、検証部14及び送金処理部15の機能を実現する。
または、提供部12、受信部13、検証部14及び送金処理部15は、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。また、プロセッサとして、CPU、GPU、FPGA等を用いることができる。
図9は、本実施形態2にかかる鍵の生成及び公開の流れを示すシーケンス図である。ここで、データ配信装置2a及びデータ要求装置3aがIntel SGXを用いて実現されている場合、各装置には、第1のセキュア領域21及び第2のセキュア領域31に相当するエンクレーブが予め作成済みであるものとする。
まず、データ配信装置2aは、非セキュア領域22aから鍵生成部211に対して署名鍵及び検証鍵の生成を指示する。そして、鍵生成部211は、第1のセキュア領域21内で第1の署名鍵201と第1の検証鍵202の組を生成する(S201)。次に、出力部212は、第1の検証鍵202を非セキュア領域22aへ出力する(S202)。そして、公開部221は、出力された第1の検証鍵202をブロックチェーン5へ記録する(S203)。このとき併せて、公開部221は、第1のセキュア領域21に関する情報等も記録してもよい。第1のセキュア領域21に関する情報としては、例えば、第1のセキュア領域21にセキュアプログラム2321をインストールしたことや、セキュアプログラム2321のインタフェース仕様、第1のセキュア領域21の識別情報等が挙げられるが、これらに限定されない。
また、データ要求装置3aは、非セキュア領域32aから鍵生成部311に対して署名鍵及び検証鍵の生成を指示する。そして、鍵生成部311は、第2のセキュア領域31内で第2の署名鍵301と第2の検証鍵302の組を生成する(S204)。次に、出力部312は、第2の検証鍵302を非セキュア領域32aへ出力する(S205)。そして、公開部321は、出力された第2の検証鍵302をブロックチェーン5へ記録する(S206)。このとき併せて、公開部321は、第2のセキュア領域31に関する情報等も記録してもよい。第2のセキュア領域31に関する情報としては、例えば、第2のセキュア領域31にセキュアプログラム3321をインストールしたことや、セキュアプログラム3321のインタフェース仕様、第2のセキュア領域31の識別情報等が挙げられるが、これらに限定されない。
その後、データ要求装置3aの取得部322は、ブロックチェーン5から第1の検証鍵202を取得し(S207)、第1の検証鍵303として内部に保持する。また、データ配信装置2aの取得部222は、ブロックチェーン5から第2の検証鍵302を取得し(S208)、第2の検証鍵203として内部に保持する。また、データ提供装置1は、ブロックチェーン5から第2の検証鍵302を取得し(S209)、第2の検証鍵112として記憶部11に保持する。
その後、データ要求装置3aは、非セキュア領域32aから鍵生成部311に対して、鍵の長さ(例えば、128bit)、暗号種類(例えば、RSA、楕円曲線等)等を指定して、暗号鍵及び復号鍵の生成を指示する。尚、暗号種類として、RSA暗号、楕円曲線暗号のような公開鍵暗号方式の他にAES-GCM(Advanced Encryption Standard - Galois/Counter Mode)などのような共通鍵暗号方式を指定することも可能である。この場合は、暗号鍵と復号鍵が同じである。そして、鍵生成部311は、第2のセキュア領域31内で暗号鍵304及び復号鍵305の組を生成する(S210)。そして、出力部312は、暗号鍵304を非セキュア領域32aへ出力する(S211)。その後、送信部326は、暗号鍵304をネットワークNを介してデータ配信装置2aへ送信する(S212)。このとき、送信部326は、セキュアチャネルを用いて暗号鍵304を送信するものとする。これに応じて、データ配信装置2aの取得部222は、ネットワークNを介して暗号鍵304を取得し、暗号鍵204として非セキュア領域22a又は第1のセキュア領域21に保存する。
続いて、図10及び図11は、本実施形態2にかかるデータ配信方法の流れを示すシーケンス図である。まず、データ要求装置3aの要求部323は、データ配信要求をネットワークNを介してデータ配信装置2aへ送信する(S221)。このとき、データ配信要求には、配信対象データ41の識別情報(dataID)が指定されているものとする。これに応じて、データ配信装置2aの分割部227は、配信対象データ41をn(nは2以上の自然数。)チャンクに分割する(S222)。具体的には、分割部227は、データ配信要求に指定されたdataIDに対応する配信対象データ41をデータベース4から読み出し、予め定められた分割数nで配信対象データ41をn個のチャンクに分割する。
そして、分割部227は、暗号化部214に対して暗号鍵204を指定して各チャンクの暗号化を指示する。暗号化部214は、非セキュア領域22aから第1のセキュア領域21へ暗号鍵204及び各チャンクを読み込み、チャンクごとに暗号鍵204を用いて第1のセキュア領域21内で暗号化を行う。暗号化された各チャンク(暗号化データ)は、"enc(pk_enc, dataChunk_i)"と表現するものとする。ここで、pk_encは暗号鍵204に対応し、dataChunk_iはi番目のチャンク(iは1からnの間の自然数。)に対応する。
次に、算出部228は、チャンクごとにハッシュ値(hash_i)を算出する(S224)。尚、図10では、算出部228は、非セキュア領域22aでハッシュ値を算出することを示すが、第1のセキュア領域21内でハッシュ値を算出してもよい。算出部228は、署名部213に対して署名を指示する。そして、署名部213は、第1のセキュア領域21内で、チャンクごとにハッシュ値を含めて第1の署名鍵201を用いて署名を行う(S225)。具体的には、署名部213は、i番目の暗号化データ、dataID、チャンク番号i、チャンク総数n、i番目のハッシュ値をまとめて、署名を行う。署名されたデータは、"< enc(pk_enc, dataChunk_i), dataID, i, n, hash_i>σ1"と表現するものとする。ここで、σ1は第1の署名鍵201に対応する。そして、出力部212は、署名されたデータ(送信データ)を非セキュア領域22aへ出力する。尚、ステップS223からS225をまとめて、i=1からnのそれぞれについて実行してもよい。または、i番目のチャンクに対するステップS223からS233までが終了した後に、i+1番目のチャンクに対するステップS223からS233までを実行してもよい。
続いて、第1の送信部223は、チャンク1における署名後の送信データをネットワークNを介してデータ要求装置3aへ送信する(S226)。これに応じて、データ要求装置3aの受信部324は、送信データ(チャンク1)を受信する。そして、検証部325は、受信した送信データ(チャンク1)に対して、第1の検証鍵303を用いて署名を検証する(S227)。署名が検証できた場合、検証部325は、送信データから1番目の暗号化データ、dataID、チャンク番号1、チャンク総数n、1番目のハッシュ値を抽出する。そして、検証部325は、復号部314に対して1番目の暗号化データに対する復号を指示する。尚、署名が検証できなかった場合、データ要求装置3aはその旨をデータ配信装置2aに応答し、再送を依頼してもよい。
復号部314は、1番目の暗号化データに対して、第2のセキュア領域31内で復号鍵305を用いて復号する(S228)。そして、出力部312は、復号された復号データを第2のセキュア領域31から非セキュア領域32aへ出力する。算出部327は、復号データに対して検証用ハッシュ値を算出する(S229)。尚、図10では、算出部327は、非セキュア領域32aで検証用ハッシュ値を算出することを示すが、第2のセキュア領域31内で検証用ハッシュ値を算出してもよい。その場合、出力部312は、算出された検証用ハッシュ値を第2のセキュア領域31から非セキュア領域32aへ出力する。
そして、検証部325は、送信データから抽出された1番目のハッシュ値と、算出部327により算出された検証用ハッシュ値を比較し(S230)、一致するか否かを判定する。尚、一致しないと判定された場合、データ要求装置3aはその旨をデータ配信装置2aに応答し、再送を依頼してもよい。
ハッシュ値が一致すると判定された場合、検証部325は、署名部313に対して署名を指示する。署名部313は、セキュア領域外32内で検証済ハッシュ値を含めて第2の署名鍵301を用いて署名する(S231)。具体的には、署名部313は、m番目のハッシュ値、チャンク番号m、dataIDをまとめて、署名を行う。署名されたデータは、"< hash_m, m, dataID >σ2"と表現するものとする。ここで、σ2は第2の署名鍵301に対応する。また、検証済ハッシュ値は、直前までの検証済ハッシュ値と今回受信した送信データに含まれていたハッシュ値との連結した文字列に対するハッシュ値であってもよい。具体的には、検証済ハッシュ値は、"hash(hash_1 || hash_2 || … || hash_m)"と表現するものとする。この場合、署名されたデータは、"< hash(hash_1 || hash_2 || … || hash_m), m, dataID >σ2"と表現できる。さらに、算出部327は、"hash(hash_1 || hash_2 || … || hash_m) = hash_[1…m]"と算出しておくことで、次回のチャンク番号m+1のデータにおいては、署名されたデータは、"< hash(hash_[1…m] || hash_m+1), m, dataID >σ2"と表現できる。または、検証済ハッシュ値を" hash(hash_[1…m]|| hash_m+1) = hash_[1…m+1]"と算出しておくことで、署名されたデータは、"< hash_[1…m+1], m, dataID >σ2"と表現できる。
その後、送信部326は、署名後の証明データ(チャンク1)をネットワークNを介してデータ配信装置2aへ送信する(S232)。これに応じて、データ配信装置2aの受信部224は、証明データ(チャンク1)をネットワークNを介して受信する。そして、検証部225は、受信した証明データ(チャンク1)に対して、第2の検証鍵203を用いて署名を検証する(S233)。署名が検証できなかった場合、第1の送信部223は次のチャンクの送信データを送信せず、第2の送信部226は、その旨をデータ提供装置1へ送信する。一方、ステップS233において署名が検証できた場合、第2の送信部226は、次のチャンクであるチャンク2における署名後の送信データをネットワークNを介してデータ要求装置3aへ送信する(S234)。以降、m=2について、ステップS227からS233が実行される。
また、m=nの場合について、つまり、チャンクnについてもステップS241からS247が実行される。この場合、ステップS246における署名されたデータは、"< hash(hash_1 || hash_2 || … || hash_n), n, dataID >σ2"と表現できる。
そして、送信部326は、署名後の証明データ(チャンク1~n)をネットワークNを介してデータ配信装置2aへ送信する(S247)。これに応じて、データ配信装置2aの受信部224は、証明データ(チャンク1~n)をネットワークNを介して受信する。そして、検証部225は、受信した証明データ(チャンク1~n)に対して、第2の検証鍵203を用いて署名を検証する(S248)。署名が検証できた場合、第2の送信部226は、証明データ(チャンク1~n)をネットワークNを介してデータ提供装置1へ送信する(S249)。
尚、m=2からn-1の場合に、検証部225における証明データ(チャンク1~m)の署名の検証に失敗した場合、第1の送信部223は次のチャンクの送信データを送信しない。また、m=2からnの場合に、検証部225における証明データ(チャンク1~m)の署名の検証に失敗した場合、第2の送信部226は、m-1における証明データ(チャンク1~m-1)をネットワークNを介してデータ提供装置1へ送信する。つまり、第2の送信部226は、署名が検証できた最新(最後)の証明データを送信する。
ステップS249の後、データ提供装置1の受信部13は、ネットワークNを介して証明データ(チャンク1~n)を受信する。そして、検証部14は、受信した証明データ(チャンク1~n)に対して、第2の検証鍵112を用いて署名を検証する(S250)。続いて、送金処理部15は、検証された証明データに基づいて送金額を決定する(S251)。具体的には、送金処理部15は、証明データからDataIDとチャンク番号を抽出する。そして、送金処理部15は、DataIDについて予め定められた配信に対する支払金額に対して、チャンク総数における(送信に成功した)チャンク番号の比率を乗じて、送金額を算出する。そして、送金処理部15は、ネットワークNを介してデータ配信装置2aに対して算出した送金額を送金する(S252)。
また、第2の送信部226は、署名が検証できた証明データをネットワークNを介してブロックチェーン5へ記録してもよい。これによっても、結果的に、データ提供装置1は、ネットワークNを介してブロックチェーン5から証明データを取得できる。
<その他の実施形態>
尚、上記実施形態2においては、暗号鍵をデータ要求装置3aで生成し、セキュアチャネルを通してデータ配信装置2aへ送信していたが、これに限定されない。例えば、データ配信装置2aが暗号鍵(対称鍵、共通鍵)を生成し、セキュアチャネルを通してデータ要求装置3aへ当該暗号鍵を送信してもよい。この場合、データ要求装置3aの復号部314は、受信した暗号鍵を復号鍵として用いる。または、データ要求装置3aが暗号鍵と復号鍵の組を生成し、セキュアチャネルを通してデータ要求装置3aへ復号鍵を送信してもよい。この場合、データ要求装置3aの復号部314は、受信した復号鍵を用いる。

尚、上記実施形態において、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、CPUがメモリにロードして実行するプログラム等によって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
また、上記のプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Compact Disc-Read Only Memory)、CD-R(CD-Recordable)、CD-R/W(CD-ReWritable)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されても良い。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
なお、本開示は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施形態を適宜組み合わせて実施されてもよい。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記A1)
自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成する鍵生成手段と、
前記第1の検証鍵を自装置内かつ前記第1のセキュア領域外へ出力する出力手段と、
前記出力された第1の検証鍵を外部に公開する公開手段と、
データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち、公開された第2の検証鍵を取得する取得手段と、
前記データ要求装置からのデータ配信要求に応じて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名する署名手段と、
前記署名後の送信データを前記データ要求装置へ送信する第1の送信手段と、
前記データ要求装置において前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された証明データを、前記データ要求装置から受信する受信手段と、
前記証明データに対して、前記第2の検証鍵を用いて署名を検証する検証手段と、
前記証明データに対する前記第2の検証鍵を用いた署名が検証できた場合に、当該証明データを前記データ提供装置へ送信する第2の送信手段と、
を備えるデータ配信装置。
(付記A2)
前記取得手段は、前記データ要求装置において前記第2のセキュア領域内で生成されたデータ通信用の暗号鍵を取得し、
前記データ配信装置は、
前記処理対象データに対して、前記第1のセキュア領域内で前記暗号鍵を用いて暗号化して暗号化データとする暗号化手段をさらに備え、
前記署名手段は、前記暗号化データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとする
付記A1に記載のデータ配信装置。
(付記A3)
前記データ配信装置は、
前記処理対象データに対してハッシュ値を算出する算出手段をさらに備え、
前記署名手段は、前記暗号化データ及び前記ハッシュ値に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとする
付記A2に記載のデータ配信装置。
(付記A4)
前記データ配信装置は、
前記データ配信要求に応じて、前記配信対象データを複数のチャンクに分割する分割手段をさらに備え、
前記算出手段は、前記複数のチャンクのそれぞれに対してハッシュ値を算出し、
前記暗号化手段は、前記複数のチャンクのそれぞれに対して前記暗号鍵を用いて前記第1のセキュア領域内で暗号化し、
前記署名手段は、各暗号化データと当該各暗号化データに対応するハッシュ値の組に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、チャンクごとに前記送信データとし、
前記送信手段は、前記送信データをチャンクごとに前記データ要求装置へ送信する
付記A3に記載のデータ配信装置。
(付記A5)
前記受信手段は、前記データ要求装置において第1のチャンクに対応する第1の送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記第1のチャンクを特定するための第1の特定情報を含めた第1の検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された第1の証明データを、前記データ要求装置から受信し、
前記第1の送信手段は、前記検証手段において、前記第1の証明データに対して前記第2の検証鍵を用いて署名が検証できた場合に、第2のチャンクに対応する第2の送信データを前記データ要求装置へ送信する
付記A4に記載のデータ配信装置。
(付記A6)
前記公開手段は、前記第1のセキュア領域に関する情報及び前記第1の検証鍵をブロックチェーンに記録することにより公開し、
前記取得手段は、前記データ要求装置により前記ブロックチェーンに記録された前記第2の検証鍵を前記ブロックチェーンから取得する
付記A1乃至A5のいずれか1項に記載のデータ配信装置。
(付記A7)
前記データ配信装置は、
前記鍵生成手段、前記出力手段及び前記署名手段を少なくとも含むセキュアプログラムを前記第1のセキュア領域内にインストールするインストール手段をさらに備え、
前記公開手段は、
前記セキュアプログラムのインタフェース仕様を外部にさらに公開する
付記A1乃至A6のいずれか1項に記載のデータ配信装置。
(付記A8)
前記第1のセキュア領域は、前記データ配信装置のうち前記第1のセキュア領域外と比べてセキュアな実行環境であるTEE(Trusted Execution Environment)であり、
前記第2のセキュア領域は、前記データ要求装置のうち前記第2のセキュア領域外と比べてセキュアな実行環境であるTEEである
付記A1乃至A7のいずれか1項に記載のデータ配信装置。
(付記B1)
データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち、公開された第1の検証鍵を取得する取得手段と、
自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成する鍵生成手段と、
前記第2の検証鍵を自装置内かつ前記第2のセキュア領域外へ出力する出力手段と、
前記出力された第2の検証鍵を外部に公開する公開手段と、
前記データ配信装置に対して、データ提供装置から提供された配信対象データの配信要求を行う要求手段と、
前記データ配信装置において前記配信対象データの少なくとも一部を含む処理対象データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された署名後の送信データを、前記データ配信装置から受信する受信手段と、
前記送信データに対して、前記第1の検証鍵を用いて署名を検証する検証手段と、
前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名する署名手段と、
前記署名後の証明データを前記データ配信装置へ送信する送信手段と、
を備えるデータ要求装置。
(付記B2)
前記鍵生成手段は、前記第2のセキュア領域内でデータ通信用の暗号鍵を生成し、
前記出力手段は、前記暗号鍵を自装置内かつ前記第2のセキュア領域外へ出力し、
前記送信手段は、前記出力された暗号鍵を前記データ配信装置へ送信し、
前記受信手段は、
前記処理対象データに対して前記第1のセキュア領域内で前記暗号鍵を用いて暗号化された暗号化データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された前記送信データを、前記データ配信装置から受信し、
前記データ要求装置は、
前記送信データに対して前記第1の検証鍵を用いて署名が検証できた場合に、前記送信データに含まれる前記暗号化データに対して、前記第2のセキュア領域内で前記暗号鍵に基づく鍵を用いて復号する復号手段をさらに備える
付記B1に記載のデータ要求装置。
(付記B3)
前記受信手段は、前記処理対象データに対して算出されたハッシュ値及び前記暗号化データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された前記送信データを受信し、
前記データ要求装置は、
前記復号手段により復号された復号データから検証用ハッシュ値を算出する算出手段をさらに備え、
前記検証手段は、前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致するか否かを検証し、
前記署名手段は、前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、前記ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとする
付記B2に記載のデータ要求装置。
(付記B4)
前記算出手段は、
前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、当該ハッシュ値と、当該送信データ以前の送信データに含まれたハッシュ値とを用いて検証済ハッシュ値を算出し、
前記署名手段は、
前記検証済ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとする
付記B3に記載のデータ要求装置。
(付記B5)
前記公開手段は、前記第2のセキュア領域に関する情報及び前記第2の検証鍵をブロックチェーンに記録することにより公開し、
前記取得手段は、前記データ配信装置により前記ブロックチェーンに記録された前記第1の検証鍵を前記ブロックチェーンから取得する
付記B1乃至B4のいずれか1項に記載のデータ要求装置。
(付記B6)
前記データ要求装置は、
前記鍵生成手段、前記出力手段及び前記署名手段を少なくとも含むセキュアプログラムを前記第2のセキュア領域内にインストールするインストール手段をさらに備え、
前記公開手段は、
前記セキュアプログラムのインタフェース仕様を外部にさらに公開する
付記B1乃至B5のいずれか1項に記載のデータ要求装置。
(付記B7)
前記第1のセキュア領域は、前記データ配信装置のうち前記第1のセキュア領域外と比べてセキュアな実行環境であるTEE(Trusted Execution Environment)であり、
前記第2のセキュア領域は、前記データ要求装置のうち前記第2のセキュア領域外と比べてセキュアな実行環境であるTEEである
付記B1乃至B6のいずれか1項に記載のデータ要求装置。
(付記C1)
第1のセキュア領域を備えるデータ配信装置と、
第2のセキュア領域を備えるデータ要求装置と、
配信対象データを前記データ配信装置に提供するデータ提供装置と、
を備え、
前記データ配信装置は、
前記第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成し、当該第1の検証鍵を当該第1のセキュア領域外へ出力して外部に公開し、
前記データ要求装置は、
前記第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成し、当該第2の検証鍵を当該第2のセキュア領域外へ出力して外部に公開し、
前記データ配信装置は、
前記データ要求装置からのデータ配信要求に応じて、前記配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、
前記署名後の送信データを前記データ要求装置へ送信し、
前記データ要求装置は、
前記データ配信装置から受信した前記送信データに対して、前記第1の検証鍵を用いて署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
前記署名後の証明データを前記データ配信装置へ送信し、
前記データ配信装置は、
前記データ要求装置から受信した前記証明データに対して、前記第2の検証鍵を用いて署名が検証できた場合に、前記証明データを前記データ提供装置へ送信する、
データ配信システム。
(付記C2)
前記データ提供装置は、
前記データ配信装置から受信した前記証明データに対して、前記第2の検証鍵を用いて署名が検証できた場合に、前記証明データに応じた金額を前記データ配信装置へ送金する
付記C1に記載のデータ配信システム。
(付記C3)
前記データ要求装置は、
前記第2のセキュア領域内でデータ通信用の暗号鍵を生成し、当該暗号鍵を前記第2のセキュア領域外へ出力して前記データ配信装置へ送信し、
前記データ配信装置は、
前記データ配信要求に応じて、前記処理対象データに対して、前記データ配信装置から取得した前記暗号鍵を用いて前記第1のセキュア領域内で暗号化し、
前記暗号化された暗号化データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとして前記データ要求装置へ送信し、
前記データ要求装置は、
前記送信データに対して、前記第1の検証鍵を用いて署名が検証できた場合に、前記送信データに含まれる前記暗号化データに対して、前記第2のセキュア領域内で前記暗号鍵に基づく鍵を用いて復号し、
前記復号された復号データにおける前記特定情報を含めた前記検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
前記署名後の前記証明データを前記データ配信装置へ送信する
付記C1又はC2に記載のデータ配信システム。
(付記C4)
前記データ配信装置は、
前記処理対象データに対してハッシュ値を算出し、
前記暗号化データ及び前記ハッシュ値に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとして前記データ要求装置へ送信し、
前記データ要求装置は、
前記復号データから検証用ハッシュ値を算出し、
前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、前記ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとして前記データ配信装置へ送信する
付記C3に記載のデータ配信システム。
(付記C5)
前記データ配信装置は、
前記データ配信要求に応じて、前記配信対象データを複数のチャンクに分割し、
前記複数のチャンクのそれぞれに対してハッシュ値を算出し、
前記複数のチャンクのそれぞれに対して前記暗号鍵を用いて前記第1のセキュア領域内で暗号化し、各暗号化データと当該各暗号化データに対応するハッシュ値の組に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、チャンクごとに前記送信データとして前記データ要求装置へ送信し、
前記データ要求装置は、
前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、当該ハッシュ値と、当該ハッシュ値以前のハッシュ値とを用いて検証済ハッシュ値を算出し、
前記検証済ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとして前記データ配信装置へ送信する
付記C4に記載のデータ配信システム。
(付記C6)
前記データ提供装置は、
前記証明データに対して、前記第2の検証鍵を用いて署名が検証できた場合に、検証済のチャンク数に応じた金額を前記データ配信装置へ送金する
付記C5に記載のデータ配信システム。
(付記C7)
前記データ配信装置は、前記第1のセキュア領域に関する情報及び前記第1の検証鍵をブロックチェーンに記録することにより公開し、
前記データ要求装置は、前記第2のセキュア領域に関する情報及び前記第2の検証鍵を前記ブロックチェーンに記録することにより公開し、少なくとも前記第1の検証鍵を前記ブロックチェーンから取得し、
前記データ要求装置及び前記データ提供装置は、少なくとも前記第2の検証鍵を前記ブロックチェーンから取得し、
付記C1乃至C6のいずれか1項に記載のデータ配信システム。
(付記C8)
前記第1のセキュア領域は、前記データ配信装置のうち前記第1のセキュア領域外と比べてセキュアな実行環境であるTEE(Trusted Execution Environment)であり、
前記第2のセキュア領域は、前記データ要求装置のうち前記第2のセキュア領域外と比べてセキュアな実行環境であるTEEである
付記C1乃至C7のいずれか1項に記載のデータ配信システム。
(付記D1)
コンピュータが、
自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成し、
前記第1の検証鍵を自装置内かつ前記第1のセキュア領域外へ出力し、
前記出力された第1の検証鍵を外部に公開し、
データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち、公開された第2の検証鍵を取得し、
前記データ要求装置からのデータ配信要求に応じて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、
前記署名後の送信データを前記データ要求装置へ送信し、
前記データ要求装置において前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された証明データを、前記データ要求装置から受信し、
前記証明データに対して、前記第2の検証鍵を用いて署名を検証し、
前記証明データに対する前記第2の検証鍵を用いた署名が検証できた場合に、当該証明データを前記データ提供装置へ送信する、
データ配信方法。
(付記E1)
自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成する鍵生成処理と、
前記第1の検証鍵を公開するために前記第1のセキュア領域外へ出力する第1の出力処理と、
データ要求装置からのデータ配信要求に応じて、前記データ要求装置の第2のセキュア領域内でデータ通信用として生成されて入力された暗号鍵を用いて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で暗号化して暗号化データとする暗号化処理と、
前記データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち公開された第2の検証鍵を用いて、前記暗号化データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名する署名処理と、
前記署名されたデータを前記データ要求装置への送信データとして前記第1のセキュア領域外へ出力する第2の出力処理と、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
(付記F1)
コンピュータが、
データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち、公開された第1の検証鍵を取得し、
自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成し、
前記第2の検証鍵を自装置内かつ前記第2のセキュア領域外へ出力し、
前記出力された第2の検証鍵を外部に公開し、
前記データ配信装置に対して、データ提供装置から提供された配信対象データの配信要求を行い、
前記データ配信装置において前記配信対象データの少なくとも一部を含む処理対象データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された署名後の送信データを、前記データ配信装置から受信し、
前記送信データに対して、前記第1の検証鍵を用いて署名を検証し、
前記送信データに対する前記第1の検証鍵を用いた署名が検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
前記署名後の証明データを前記データ配信装置へ送信する、
データ要求方法。
(付記G1)
自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成する第1の鍵生成処理と、
前記第2の検証鍵を公開するために前記第2のセキュア領域外へ出力する第1の出力処理と、
前記第2のセキュア領域内でデータ通信用の暗号鍵を生成する第2の鍵生成処理と、
前記暗号鍵をデータ配信装置へ送信するために前記第2のセキュア領域外へ出力する第2の出力処理と、
前記データ配信装置から受信した受信データに対して前記データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち公開された第1の検証鍵を用いて署名が検証された場合に、前記受信データに含まれる暗号化データに対して、前記第2のセキュア領域内で前記暗号鍵に基づく鍵を用いて復号する復号処理と、
前記復号された復号データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名する署名処理と、
前記署名後の証明データを前記データ配信装置への返信データとして前記第2のセキュア領域外へ出力する第3の出力処理と、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1000 データ配信システム
1 データ提供装置
11 記憶部
111 配信対象データ
112 第2の検証鍵
12 提供部
13 受信部
14 検証部
15 送金処理部
2 データ配信装置
21 第1のセキュア領域
201 第1の署名鍵
202 第1の検証鍵
203 第2の検証鍵
211 鍵生成部
212 出力部
213 署名部
22 セキュア領域外
22a 非セキュア領域
221 公開部
222 取得部
223 第1の送信部
224 受信部
225 検証部
226 第2の送信部
3 データ要求装置
31 第2のセキュア領域
301 第2の署名鍵
302 第2の検証鍵
303 第1の検証鍵
32 セキュア領域外
32a 非セキュア領域
311 鍵生成部
312 出力部
313 署名部
321 公開部
322 取得部
323 要求部
324 受信部
325 検証部
326 送信部
2000 データ配信システム
2a データ配信装置
204 暗号鍵
214 暗号化部
227 分割部
228 算出部
229 インストール部
23 セキュアエレメント
231 制御部
232 記憶部
2321 セキュアプログラム
233 IF部
24 非セキュアエレメント
241 制御部
242 記憶部
2421 データ配信プログラム
243 IF部
244 通信部
3a データ要求装置
314 復号部
304 暗号鍵
305 復号鍵
327 算出部
328 インストール部
33 セキュアエレメント
331 制御部
332 記憶部
3321 セキュアプログラム
333 IF部
34 非セキュアエレメント
341 制御部
342 記憶部
3421 データ要求プログラム
343 IF部
344 通信部
4 データベース
41 配信対象データ
5 ブロックチェーン
N ネットワーク

Claims (27)

  1. 自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成する鍵生成手段と、
    前記第1の検証鍵を自装置内かつ前記第1のセキュア領域外へ出力する出力手段と、
    前記出力された第1の検証鍵を外部に公開する公開手段と、
    データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち、公開された第2の検証鍵を取得する取得手段と、
    前記データ要求装置からのデータ配信要求に応じて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名する署名手段と、
    前記署名後の送信データを前記データ要求装置へ送信する第1の送信手段と、
    前記データ要求装置において前記送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された証明データを、前記データ要求装置から受信する受信手段と、
    前記証明データに対して、前記第2の検証鍵を用いて署名を検証する検証手段と、
    前記証明データに対する署名が前記第2の検証鍵を用いて検証できた場合に、当該証明データを前記データ提供装置へ送信する第2の送信手段と、
    を備えるデータ配信装置。
  2. 前記取得手段は、前記データ要求装置において前記第2のセキュア領域内で生成されたデータ通信用の暗号鍵を取得し、
    前記データ配信装置は、
    前記処理対象データに対して、前記第1のセキュア領域内で前記暗号鍵を用いて暗号化して暗号化データとする暗号化手段をさらに備え、
    前記署名手段は、前記暗号化データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとする
    請求項1に記載のデータ配信装置。
  3. 前記データ配信装置は、
    前記処理対象データに対してハッシュ値を算出する算出手段をさらに備え、
    前記署名手段は、前記暗号化データ及び前記ハッシュ値に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとする
    請求項2に記載のデータ配信装置。
  4. 前記データ配信装置は、
    前記データ配信要求に応じて、前記配信対象データを複数のチャンクに分割する分割手段をさらに備え、
    前記算出手段は、前記複数のチャンクのそれぞれに対してハッシュ値を算出し、
    前記暗号化手段は、前記複数のチャンクのそれぞれに対して前記暗号鍵を用いて前記第1のセキュア領域内で暗号化し、
    前記署名手段は、各暗号化データと当該各暗号化データに対応するハッシュ値の組に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、チャンクごとに前記送信データとし、
    前記送信手段は、前記送信データをチャンクごとに前記データ要求装置へ送信する
    請求項3に記載のデータ配信装置。
  5. 前記受信手段は、前記データ要求装置において第1のチャンクに対応する第1の送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記第1のチャンクを特定するための第1の特定情報を含めた第1の検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された第1の証明データを、前記データ要求装置から受信し、
    前記第1の送信手段は、前記検証手段において、前記第1の証明データに対する署名が前記第2の検証鍵を用いて検証できた場合に、第2のチャンクに対応する第2の送信データを前記データ要求装置へ送信する
    請求項4に記載のデータ配信装置。
  6. 前記公開手段は、前記第1のセキュア領域に関する情報及び前記第1の検証鍵をブロックチェーンに記録することにより公開し、
    前記取得手段は、前記データ要求装置により前記ブロックチェーンに記録された前記第2の検証鍵を前記ブロックチェーンから取得する
    請求項1乃至5のいずれか1項に記載のデータ配信装置。
  7. 前記データ配信装置は、
    前記鍵生成手段、前記出力手段及び前記署名手段を少なくとも含むセキュアプログラムを前記第1のセキュア領域内にインストールするインストール手段をさらに備え、
    前記公開手段は、
    前記セキュアプログラムのインタフェース仕様を外部にさらに公開する
    請求項1乃至6のいずれか1項に記載のデータ配信装置。
  8. 前記第1のセキュア領域は、前記データ配信装置のうち前記第1のセキュア領域外と比べてセキュアな実行環境であるTEE(Trusted Execution Environment)であり、
    前記第2のセキュア領域は、前記データ要求装置のうち前記第2のセキュア領域外と比べてセキュアな実行環境であるTEEである
    請求項1乃至7のいずれか1項に記載のデータ配信装置。
  9. データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち、公開された第1の検証鍵を取得する取得手段と、
    自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成する鍵生成手段と、
    前記第2の検証鍵を自装置内かつ前記第2のセキュア領域外へ出力する出力手段と、
    前記出力された第2の検証鍵を外部に公開する公開手段と、
    前記データ配信装置に対して、データ提供装置から提供された配信対象データの配信要求を行う要求手段と、
    前記データ配信装置において前記配信対象データの少なくとも一部を含む処理対象データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された署名後の送信データを、前記データ配信装置から受信する受信手段と、
    前記送信データに対して、前記第1の検証鍵を用いて署名を検証する検証手段と、
    前記送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名する署名手段と、
    前記署名後の証明データを前記データ配信装置へ送信する送信手段と、
    を備えるデータ要求装置。
  10. 前記鍵生成手段は、前記第2のセキュア領域内でデータ通信用の暗号鍵を生成し、
    前記出力手段は、前記暗号鍵を自装置内かつ前記第2のセキュア領域外へ出力し、
    前記送信手段は、前記出力された暗号鍵を前記データ配信装置へ送信し、
    前記受信手段は、
    前記処理対象データに対して前記第1のセキュア領域内で前記暗号鍵を用いて暗号化された暗号化データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された前記送信データを、前記データ配信装置から受信し、
    前記データ要求装置は、
    前記送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記送信データに含まれる前記暗号化データに対して、前記第2のセキュア領域内で前記暗号鍵に基づく鍵を用いて復号する復号手段をさらに備える
    請求項9に記載のデータ要求装置。
  11. 前記受信手段は、前記処理対象データに対して算出されたハッシュ値及び前記暗号化データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された前記送信データを受信し、
    前記データ要求装置は、
    前記復号手段により復号された復号データから検証用ハッシュ値を算出する算出手段をさらに備え、
    前記検証手段は、前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致するか否かを検証し、
    前記署名手段は、前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、前記ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとする
    請求項10に記載のデータ要求装置。
  12. 前記算出手段は、
    前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、当該ハッシュ値と、当該送信データ以前の送信データに含まれたハッシュ値とを用いて検証済ハッシュ値を算出し、
    前記署名手段は、
    前記検証済ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとする
    請求項11に記載のデータ要求装置。
  13. 前記公開手段は、前記第2のセキュア領域に関する情報及び前記第2の検証鍵をブロックチェーンに記録することにより公開し、
    前記取得手段は、前記データ配信装置により前記ブロックチェーンに記録された前記第1の検証鍵を前記ブロックチェーンから取得する
    請求項9乃至12のいずれか1項に記載のデータ要求装置。
  14. 前記データ要求装置は、
    前記鍵生成手段、前記出力手段及び前記署名手段を少なくとも含むセキュアプログラムを前記第2のセキュア領域内にインストールするインストール手段をさらに備え、
    前記公開手段は、
    前記セキュアプログラムのインタフェース仕様を外部にさらに公開する
    請求項9乃至13のいずれか1項に記載のデータ要求装置。
  15. 前記第1のセキュア領域は、前記データ配信装置のうち前記第1のセキュア領域外と比べてセキュアな実行環境であるTEE(Trusted Execution Environment)であり、
    前記第2のセキュア領域は、前記データ要求装置のうち前記第2のセキュア領域外と比べてセキュアな実行環境であるTEEである
    請求項9乃至14のいずれか1項に記載のデータ要求装置。
  16. 第1のセキュア領域を備えるデータ配信装置と、
    第2のセキュア領域を備えるデータ要求装置と、
    配信対象データを前記データ配信装置に提供するデータ提供装置と、
    を備え、
    前記データ配信装置は、
    前記第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成し、当該第1の検証鍵を当該第1のセキュア領域外へ出力して外部に公開し、
    前記データ要求装置は、
    前記第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成し、当該第2の検証鍵を当該第2のセキュア領域外へ出力して外部に公開し、
    前記データ配信装置は、
    前記データ要求装置からのデータ配信要求に応じて、前記配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、
    前記署名後の送信データを前記データ要求装置へ送信し、
    前記データ要求装置は、
    前記データ配信装置から受信した前記送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
    前記署名後の証明データを前記データ配信装置へ送信し、
    前記データ配信装置は、
    前記データ要求装置から受信した前記証明データに対する署名が前記第2の検証鍵を用いて検証できた場合に、前記証明データを前記データ提供装置へ送信する、
    データ配信システム。
  17. 前記データ提供装置は、
    前記データ配信装置から受信した前記証明データに対する署名が前記第2の検証鍵を用いて検証できた場合に、前記証明データに応じた金額を前記データ配信装置へ送金する
    請求項16に記載のデータ配信システム。
  18. 前記データ要求装置は、
    前記第2のセキュア領域内でデータ通信用の暗号鍵を生成し、当該暗号鍵を前記第2のセキュア領域外へ出力して前記データ配信装置へ送信し、
    前記データ配信装置は、
    前記データ配信要求に応じて、前記処理対象データに対して、前記データ要求装置から取得した前記暗号鍵を用いて前記第1のセキュア領域内で暗号化し、
    前記暗号化された暗号化データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとして前記データ要求装置へ送信し、
    前記データ要求装置は、
    前記送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記送信データに含まれる前記暗号化データに対して、前記第2のセキュア領域内で前記暗号鍵に基づく鍵を用いて復号し、
    前記復号された復号データにおける前記特定情報を含めた前記検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
    前記署名後の前記証明データを前記データ配信装置へ送信する
    請求項16又は17に記載のデータ配信システム。
  19. 前記データ配信装置は、
    前記処理対象データに対してハッシュ値を算出し、
    前記暗号化データ及び前記ハッシュ値に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、前記送信データとして前記データ要求装置へ送信し、
    前記データ要求装置は、
    前記復号データから検証用ハッシュ値を算出し、
    前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、前記ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとして前記データ配信装置へ送信する
    請求項18に記載のデータ配信システム。
  20. 前記データ配信装置は、
    前記データ配信要求に応じて、前記配信対象データを複数のチャンクに分割し、
    前記複数のチャンクのそれぞれに対してハッシュ値を算出し、
    前記複数のチャンクのそれぞれに対して前記暗号鍵を用いて前記第1のセキュア領域内で暗号化し、各暗号化データと当該各暗号化データに対応するハッシュ値の組に対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、チャンクごとに前記送信データとして前記データ要求装置へ送信し、
    前記データ要求装置は、
    前記送信データに含まれるハッシュ値と前記検証用ハッシュ値とが一致する場合に、当該ハッシュ値と、当該ハッシュ値以前のハッシュ値とを用いて検証済ハッシュ値を算出し、
    前記検証済ハッシュ値を前記特定情報として含めた前記検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、前記証明データとして前記データ配信装置へ送信する
    請求項19に記載のデータ配信システム。
  21. 前記データ提供装置は、
    前記証明データに対する署名が前記第2の検証鍵を用いて検証できた場合に、検証済のチャンク数に応じた金額を前記データ配信装置へ送金する
    請求項20に記載のデータ配信システム。
  22. 前記データ配信装置は、前記第1のセキュア領域に関する情報及び前記第1の検証鍵をブロックチェーンに記録することにより公開し、
    前記データ要求装置は、前記第2のセキュア領域に関する情報及び前記第2の検証鍵を前記ブロックチェーンに記録することにより公開し、少なくとも前記第1の検証鍵を前記ブロックチェーンから取得し、
    前記データ要求装置及び前記データ提供装置は、少なくとも前記第2の検証鍵を前記ブロックチェーンから取得する
    請求項16乃至21のいずれか1項に記載のデータ配信システム。
  23. 前記第1のセキュア領域は、前記データ配信装置のうち前記第1のセキュア領域外と比べてセキュアな実行環境であるTEE(Trusted Execution Environment)であり、
    前記第2のセキュア領域は、前記データ要求装置のうち前記第2のセキュア領域外と比べてセキュアな実行環境であるTEEである
    請求項16乃至22のいずれか1項に記載のデータ配信システム。
  24. コンピュータが、
    自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成し、
    前記第1の検証鍵を自装置内かつ前記第1のセキュア領域外へ出力し、
    前記出力された第1の検証鍵を外部に公開し、
    データ要求装置の第2のセキュア領域内で生成された第2の署名鍵と第2の検証鍵の組のうち、公開された第2の検証鍵を取得し、
    前記データ要求装置からのデータ配信要求に応じて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で前記第1の署名鍵を用いて署名し、
    前記署名後の送信データを前記データ要求装置へ送信し、
    前記データ要求装置において前記送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して前記第2のセキュア領域内で前記第2の署名鍵を用いて署名された証明データを、前記データ要求装置から受信し、
    前記証明データに対して、前記第2の検証鍵を用いて署名を検証し、
    前記証明データに対する署名が前記第2の検証鍵を用いて検証できた場合に、当該証明データを前記データ提供装置へ送信する、
    データ配信方法。
  25. 自装置の第1のセキュア領域内で第1の署名鍵と第1の検証鍵の組を生成する鍵生成処理と、
    前記第1の検証鍵を公開するために前記第1のセキュア領域外へ出力する第1の出力処理と、
    データ要求装置からのデータ配信要求に応じて、前記データ要求装置の第2のセキュア領域内でデータ通信用として生成されて入力された暗号鍵を用いて、データ提供装置から提供された配信対象データの少なくとも一部を含む処理対象データに対して、前記第1のセキュア領域内で暗号化して暗号化データとする暗号化処理と、
    前記暗号化データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名する署名処理と、
    前記署名されたデータを前記データ要求装置への送信データとして前記第1のセキュア領域外へ出力する第2の出力処理と、
    をコンピュータに実行させるプログラム
  26. コンピュータが、
    データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち、公開された第1の検証鍵を取得し、
    自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成し、
    前記第2の検証鍵を自装置内かつ前記第2のセキュア領域外へ出力し、
    前記出力された第2の検証鍵を外部に公開し、
    前記データ配信装置に対して、データ提供装置から提供された配信対象データの配信要求を行い、
    前記データ配信装置において前記配信対象データの少なくとも一部を含む処理対象データに対して前記第1のセキュア領域内で前記第1の署名鍵を用いて署名された署名後の送信データを、前記データ配信装置から受信し、
    前記送信データに対して、前記第1の検証鍵を用いて署名を検証し、
    前記送信データに対する署名が前記第1の検証鍵を用いて検証できた場合に、前記処理対象データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名し、
    前記署名後の証明データを前記データ配信装置へ送信する、
    データ要求方法。
  27. 自装置の第2のセキュア領域内で第2の署名鍵と第2の検証鍵の組を生成する第1の鍵生成処理と、
    前記第2の検証鍵を公開するために前記第2のセキュア領域外へ出力する第1の出力処理と、
    前記第2のセキュア領域内でデータ通信用の暗号鍵を生成する第2の鍵生成処理と、
    前記暗号鍵をデータ配信装置へ送信するために前記第2のセキュア領域外へ出力する第2の出力処理と、
    前記データ配信装置から受信した受信データに対して前記データ配信装置の第1のセキュア領域内で生成された第1の署名鍵と第1の検証鍵の組のうち公開された第1の検証鍵を用いて署名が検証された場合に、前記受信データに含まれる暗号化データに対して、前記第2のセキュア領域内で前記暗号鍵に基づく鍵を用いて復号する復号処理と、
    前記復号された復号データを特定するための特定情報を含めた検証結果に対して、前記第2のセキュア領域内で前記第2の署名鍵を用いて署名する署名処理と、
    前記署名後の証明データを前記データ配信装置への返信データとして前記第2のセキュア領域外へ出力する第3の出力処理と、
    をコンピュータに実行させるプログラム
JP2021536553A 2019-07-31 2019-07-31 データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム Active JP7211517B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/030060 WO2021019738A1 (ja) 2019-07-31 2019-07-31 データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、コンピュータ可読媒体

Publications (3)

Publication Number Publication Date
JPWO2021019738A1 JPWO2021019738A1 (ja) 2021-02-04
JPWO2021019738A5 JPWO2021019738A5 (ja) 2022-03-22
JP7211517B2 true JP7211517B2 (ja) 2023-01-24

Family

ID=74229445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021536553A Active JP7211517B2 (ja) 2019-07-31 2019-07-31 データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム

Country Status (3)

Country Link
US (1) US12267411B2 (ja)
JP (1) JP7211517B2 (ja)
WO (1) WO2021019738A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023060682A (ja) * 2021-10-18 2023-04-28 大日本印刷株式会社 情報配送システム、情報配送方法、及びセキュアコンポーネント

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001189723A (ja) 1999-12-28 2001-07-10 Quad Kk 内容証明を行う通信システムおよび内容証明サイト装置
JP2017204182A (ja) 2016-05-12 2017-11-16 日本電信電話株式会社 広告アクセス数測定方法、広告配信サーバ、プログラム
JP2018113504A (ja) 2017-01-06 2018-07-19 大日本印刷株式会社 セキュアエレメント、uimカード、認証方法、及び認証プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1195660A (ja) 1997-09-22 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> 電子文書匿名通信方法、そのプログラム記録媒体及びその装置
JP2002183633A (ja) * 2000-12-13 2002-06-28 Sony Corp 情報記録媒体、情報処理装置および情報処理方法、プログラム記録媒体、並びに情報処理システム
JP2003087243A (ja) * 2001-06-28 2003-03-20 Hitachi Ltd データ検証方法、データ検証装置およびその処理プログラム製品
CN1820237A (zh) * 2003-07-08 2006-08-16 松下电器产业株式会社 信息输入/输出系统
US7370202B2 (en) * 2004-11-02 2008-05-06 Voltage Security, Inc. Security device for cryptographic communications
US9411976B2 (en) * 2006-12-01 2016-08-09 Maidsafe Foundation Communication system and method
US8595816B2 (en) * 2007-10-19 2013-11-26 Nippon Telegraph And Telephone Corporation User authentication system and method for the same
JP2010152704A (ja) * 2008-12-25 2010-07-08 Hitachi Ltd 計算機システムの運用管理システム及び管理方法
CN101808092B (zh) * 2010-03-12 2013-03-20 中国电信股份有限公司 多证书共享方法、系统和智能卡
JP4970585B2 (ja) * 2010-11-10 2012-07-11 株式会社東芝 サービス提供システム及びユニット装置
US9832024B2 (en) * 2015-11-13 2017-11-28 Visa International Service Association Methods and systems for PKI-based authentication
US20210111900A1 (en) 2017-03-30 2021-04-15 Nec Corporation Verification information attaching device, verification device, information management system, method, and program
CN107257340B (zh) * 2017-06-19 2019-10-01 阿里巴巴集团控股有限公司 一种认证方法、基于区块链的认证数据处理方法及设备
CN108768664B (zh) * 2018-06-06 2020-11-03 腾讯科技(深圳)有限公司 密钥管理方法、装置、系统、存储介质和计算机设备
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation
KR20200088180A (ko) * 2019-01-14 2020-07-22 주식회사 비틀게임즈 블록체인 기반의 다수의 사용자 간의 자료 공유 서비스를 위한 자료 관리 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001189723A (ja) 1999-12-28 2001-07-10 Quad Kk 内容証明を行う通信システムおよび内容証明サイト装置
JP2017204182A (ja) 2016-05-12 2017-11-16 日本電信電話株式会社 広告アクセス数測定方法、広告配信サーバ、プログラム
JP2018113504A (ja) 2017-01-06 2018-07-19 大日本印刷株式会社 セキュアエレメント、uimカード、認証方法、及び認証プログラム

Also Published As

Publication number Publication date
JPWO2021019738A1 (ja) 2021-02-04
US20220271923A1 (en) 2022-08-25
WO2021019738A1 (ja) 2021-02-04
US12267411B2 (en) 2025-04-01

Similar Documents

Publication Publication Date Title
TWI723658B (zh) 基於區塊鏈中智慧合約保護交易活動敏感資料的方法和設備
CN103905207B (zh) 一种统一apk签名的方法及其系统
CN111538784A (zh) 一种基于区块链的数字资产交易方法、装置及存储介质
CN101883100B (zh) 一种数字内容分布式授权方法
KR101780634B1 (ko) 가상 화폐를 이용하여 주식을 발행하여 분배하고 발행된 주식의 소유권을 이전하는 방법 및 서버
WO2021219086A1 (zh) 基于区块链的数据传输方法和系统
CN108989339B (zh) 一种具有策略隐藏功能的密文加密方法、系统及存储介质
US20250021631A1 (en) Systems and methods for whitebox device binding
CN115203749B (zh) 一种基于区块链的数据交易方法和系统
KR20210107456A (ko) 전력 계량 장치, 전력 계량 서버 및 블록 체인 기반의 전력 계량 방법
US11831760B1 (en) Secure computing environments with key management for private communication over data networks
CN112435026A (zh) 用零知识证明保护文件交易信息的方法、装置和电子设备
KR20010040248A (ko) 과도 키 디지탈 시간 스탬프 방법 및 시스템
CN107294710A (zh) 一种vTPM2.0的密钥迁移方法及装置
US8745375B2 (en) Handling of the usage of software in a disconnected computing environment
JP7211517B2 (ja) データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム
CN113807832A (zh) 基于区块链的交易方法、装置、设备及可读存储介质
CN112929871B (zh) Ota升级包的获取方法、电子设备以及存储介质
CN116071071B (zh) 基于区块链的数据要素交易方法、系统、存储介质及设备
CN118842634A (zh) 数字证书分发方法、属性证书管理端及证书申请终端
JP7343035B2 (ja) データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム
JPWO2021019738A5 (ja) データ配信装置及び方法、データ要求装置及び方法、データ配信システム、並びに、プログラム
CN119180060B (zh) 数据处理系统、方法、电子设备、存储介质及程序产品
JP2008060617A (ja) 電子データ検証装置、電子データ作成装置、電子データ検証方法、電子データ作成方法及び集積回路
CN119835075A (zh) 电力系统微服务消息异步处理方法、装置、计算机设备、存储介质和计算机程序产品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211227

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: 20221213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221226

R151 Written notification of patent or utility model registration

Ref document number: 7211517

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151