JP2019146088A - 計算機システム、接続装置、及びデータ処理方法 - Google Patents

計算機システム、接続装置、及びデータ処理方法 Download PDF

Info

Publication number
JP2019146088A
JP2019146088A JP2018030153A JP2018030153A JP2019146088A JP 2019146088 A JP2019146088 A JP 2019146088A JP 2018030153 A JP2018030153 A JP 2018030153A JP 2018030153 A JP2018030153 A JP 2018030153A JP 2019146088 A JP2019146088 A JP 2019146088A
Authority
JP
Japan
Prior art keywords
transaction
processing unit
search
connection
filter
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.)
Granted
Application number
JP2018030153A
Other languages
English (en)
Other versions
JP6840692B2 (ja
Inventor
鈴木 貴之
Takayuki Suzuki
貴之 鈴木
俊郎 山吉
Toshiro Yamayoshi
俊郎 山吉
尚宜 佐藤
Hisanobu Sato
尚宜 佐藤
雅之 吉野
Masayuki Yoshino
雅之 吉野
健 長沼
Takeshi Naganuma
健 長沼
渡辺 大
Masaru Watanabe
大 渡辺
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018030153A priority Critical patent/JP6840692B2/ja
Priority to US16/276,798 priority patent/US20190260715A1/en
Priority to EP19157845.9A priority patent/EP3531365B1/en
Priority to PT191578459T priority patent/PT3531365T/pt
Publication of JP2019146088A publication Critical patent/JP2019146088A/ja
Application granted granted Critical
Publication of JP6840692B2 publication Critical patent/JP6840692B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Evolutionary Biology (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】匿名性を維持し、かつ、管理が容易なアドレスを含むトランザクションを扱うブロックチェーンを提供する。【解決手段】ブロックチェーンネットワークを構成する複数の処理ノード及びブロックチェーンネットワークへ接続する接続装置を備える計算機システムであって、処理ノードは情報を保持し、接続装置は、処理ノードにトランザクションを送信する接続処理部を有し、接続処理部は、確率的暗号化方式に基づいてキーワードから検索可能暗号文を生成する暗号処理部を含み、前記暗号処理部は、前記キーワードから、前記トランザクションの送信元又は送信先を示すアドレスとして使用する前記検索可能暗号文を生成し、前記検索可能暗号文を含む前記トランザクションを生成する。【選択図】 図1

Description

本発明は、ブロックチェーンのトランザクションの処理方法に関する。
近年、ビットコイン(登録商標、以下同じ)をはじめとした様々な仮想通貨の利用が進んでいる。仮想通貨を実現する技術としてブロックチェーンが用いられている。
ブロックチェーンは、ユーザの取引内容を含む処理依頼リクエストを一定数集めてブロックを生成し、ブロックを連結してデータを管理する技術である。本明細書では、処理依頼リクエストをトランザクションと記載する。
ブロックには、一つ前のブロックに格納されるトランザクションから算出されたハッシュ値が含まれる。ブロックチェーンでは、ハッシュ値を使ってブロックを連結することによって、ブロックに格納された情報の改ざんを困難にしている。
また、ブロックチェーンは、ピアツーピアのネットワーク(ブロックチェーンネットワーク)として実現され、ブロックチェーンネットワークを構成する全てのノードが、連結されたブロックを保持することで、情報の改ざんをさらに困難にしている。
各ノードは同一の情報を保持するため、可用性及び耐障害性の高いシステムを構築できる。前述のような特徴を持つことから、金融分野をはじめ、様々な分野でブロックチェーンの利用が検討されている。
ブロックに格納されるトランザクションは、全てのノードによって共有されるため、どのノードからも閲覧できる。このため、ブロックに格納されるトランザクションは秘匿性を持たない。
しかし、用途によっては取引自体を秘匿したい場合がある。そこで、例えば、ビットコインでは、トランザクションの送信先又は送信元を示すアドレスを匿名化することで取引の秘匿化に対応している。具体的には、ビットコインを扱うシステムでは、ユーザが保持する公開鍵からハッシュ値を算出する等して、アドレスを生成している。
非特許文献1には、取引内容又は用途に応じて異なる秘密鍵及び公開鍵の鍵ペアを生成し、各鍵ペアを管理し、また、取引内容又は用途に応じて鍵ペアを使い分けて複数のアドレスを生成することが記載されている。複数個の鍵ペアを生成することによって、同じユーザが異なるアドレスを利用できる。したがって、ブロックに格納されたトランザクションが第三者によって参照された場合でも、どのユーザのトランザクションであるかを秘匿することが可能になる。
国際公開第2012/077541号
Pieter Wuille、"Hierarchical Deterministic Wallets"、[online]、2012年2月11日、[平成30年2月14日]、インターネット<URL:https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki>
非特許文献1に記載の方法では、ユーザが鍵ペアの情報を管理する必要がある。匿名性を高めるために取引内容又は用途ごとに鍵ペアを生成した場合、鍵ペアの管理が煩雑になり、また、管理するデータ量も増加するという課題がある。ブロックチェーンネットワークへの接続サービスを提供する業者の場合、全ユーザの複数の鍵ペアの情報を管理する必要があるため、管理するデータ量の増加は顕著な課題となる。
本発明は、匿名性を維持し、かつ、管理が容易なアドレスを含むトランザクションを扱うブロックチェーンを提供する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ブロックチェーンを用いたサービスを提供するためのブロックチェーンネットワークを構成する複数の処理ノード及び前記ブロックチェーンネットワークへ接続する接続装置を備える計算機システムであって、前記複数の処理ノードは、前記サービスにおける取引情報の履歴を含むトランザクションを管理するための情報であって、前記複数のトランザクションを含むブロックが時系列順に連結された情報である台帳情報を保持し、前記接続装置は、前記トランザクションを生成し、少なくとも一つの前記処理ノードに前記トランザクションを送信する接続処理部を有し、前記接続処理部は、確率的暗号化方式に基づいてキーワードから検索可能暗号文を生成する暗号処理部を含み、前記暗号処理部は、前記キーワードから、前記トランザクションの送信元又は送信先を示すアドレスとして使用する前記検索可能暗号文を生成し、前記接続処理部は、前記検索可能暗号文を含む前記トランザクションを生成する。
本発明の一形態によれば、一つのキーワードから複数の暗号化されたアドレスを生成できる。これによって、匿名性を維持しつつ、管理が容易なアドレスを含むトランザクションを扱うブロックチェーンを実現できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1のシステムの構成の一例を示す図である。 実施例1の接続装置の構成の一例を示す図である。 実施例1の処理ノードの構成の一例を示す図である。 実施例1のユーザ管理情報の一例を示す図である。 実施例1の台帳情報の一例を示す図である。 実施例1のシステムにおけるトランザクションの生成処理の流れを説明するシーケンス図である。 実施例1の接続装置が実行するアドレスの生成処理の一例を説明するフローチャートである。 実施例1の接続装置がフィルタ生成情報を生成する処理の一例を説明するフローチャートである。 実施例1の処理ノードがフィルタを生成する処理の一例を説明するフローチャートである。 実施例1のシステムにおけるトランザクションの検索処理の流れを説明するシーケンス図である。 実施例1の処理ノードが実行する検索処理の一例を説明するフローチャートである。 実施例2のユーザ管理情報の一例を示す図である。 実施例2の接続装置が実行するアドレス生成処理の一例を説明するフローチャートである。 実施例3の接続装置が実行する鍵ペアの生成処理の一例を説明するフローチャートである。
以下、図面を用いて本発明の実施例を説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
本明細書等における「第一」、「第二」、「第三」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
図1は、実施例1のシステムの構成の一例を示す図である。
実施例1のシステムは、少なくとも一つの接続装置100及び複数の処理ノード101から構成される。少なくとも一つの接続装置100及び複数の処理ノード101は、LAN(Local Area Network)及びWAN(Wide Area Network)等のネットワークを介して互いに接続される。
複数の処理ノード101は、ブロックチェーンを用いたサービスを提供するためのブロックチェーンネットワーク110を構成する。接続装置100は、ブロックチェーンネットワーク110への接続サービスを提供する。ユーザ150は、接続装置100を利用して、ブロックチェーンネットワーク110によって提供されるサービスを利用する。実施例1では仮想通貨の取引サービスが提供されるものとする。
接続装置100が接続する処理ノード101は、ユーザ150が自身で構築した処理ノード101でもよいし、また、他のユーザ150が構築した処理ノード101でもよい。
ブロックチェーンネットワーク110に接続する方法としては二つの方法がある。
一つの接続方法は、ユーザ150自身が保持する接続装置100を用いてブロックチェーンネットワーク110に接続する方法である。当該の接続方法は、例えば、ユーザ150が保持するパーソナルコンピュータ及びスマートフォン等の端末に、接続装置100の機能を実現するソフトウェアをインストールすることによって実現できる。
もう一つの接続方法は、銀行及び証券会社等の接続サービスの提供者が保持する接続装置100を介してブロックチェーンネットワーク110に接続する方法がある。当該の接続方法は、例えば、接続サービスの提供者と契約したユーザ150に対して、接続サービスの提供者が保持する接続装置100を介したブロックチェーンネットワーク110への接続サービスを提供することによって実現できる。なお、接続サービスの提供者は、複数の接続装置100を保持する。また、ブロックチェーンネットワーク110は、提供者が保持する処理ノード101を用いて構築されたものでもよい。
なお、上記の二つの接続方法は利用形態の規模が異なるが基本的な構成は同一である。
図2は、実施例1の接続装置100の構成の一例を示す図である。
接続装置100は、CPU201、メモリ202、ストレージインタフェース203、ネットワークインタフェース204、入出力インタフェース205、耐タンパ装置206、及び記憶装置207を有する。
CPU201、メモリ202、ストレージインタフェース203、ネットワークインタフェース204、入出力インタフェース205、及び耐タンパ装置206は、内部バスを介して互いに接続される。また、記憶装置207は、ストレージインタフェース203に接続される。
CPU201は、メモリ202に格納されるプログラムを実行する。CPU201は、プログラムにしたがって処理を実行することによって任意の機能部(モジュール)として稼働する。
メモリ202は、CPU201が実行するプログラム及び情報を格納する。実施例1のメモリ202は、接続処理部210を実現するプログラムを格納する。接続処理部210は、ブロックチェーンネットワーク110への接続サービスを制御する。接続処理部210は、暗号処理部211を含む。また、メモリ202は、トランザクションの暗号化及び復号化等に使用するサービス用の暗号鍵、及び確率的暗号化方式で使用する暗号鍵を保持する。
暗号処理部211は、確率的暗号化方式の暗号化処理を実行する。後述するように、暗号処理部211によって生成された暗号文が、トランザクションの発行元又は発行先を示すアドレスとして用いられる。ここで、確率的暗号化方式は、平文からランダムな暗号文を生成する暗号化のアルゴリズムである。確率的暗号化方式では、平文及び暗号文が一対多の対応関係を有する。暗号処理部211によって生成された暗号文は検索可能な暗号文である。確率的暗号化方式に基づいて検索可能暗号を生成する手法としては、例えば、特許文献1に記載の手法を採用する。
本明細書では、確率的暗号化方式に基づいて生成された暗号文を検索可能暗号文とも記載する。
なお、「発明が解決しようとする課題」で記載した課題の他にも以下のような課題が存在する。ブロックに格納されたトランザクションの中から、特定のユーザのトランザクションを取得する場合、当該ユーザが管理するアドレス毎にトランザクションを検索する必要がある。したがって、トランザクションの効率的な検索が難しいという課題がある。後述するように、検索可能暗号文をアドレスとして用いることによって当該課題も解決することができる。
ストレージインタフェース203は、記憶装置207に接続するためのインタフェースである。ネットワークインタフェース204は、ネットワークを介して、処理ノード101等の他の装置と接続するためのインタフェースである。入出力インタフェース205は、キーボード及びマウス等の入力装置、並びに、ディスプレイ等の出力装置と接続するためのインタフェースである。
耐タンパ装置206は、ブロックチェーンネットワーク110を用いたサービスにおいて、秘密かつ安全に扱う必要がある情報を格納し、また、安全な処理を実行するために利用される耐タンパ領域を提供する装置である。例えば、暗号処理部211は耐タンパ領域を用いて処理を実行する。
耐タンパ領域は接続装置100に実装される専用のハードウェアを用いて実現されているがこれに限定されない。例えば、オフラインでの接続装置100の利用、又は接続装置100とは異なる機器でデータを管理する等、安全性が担保される運用によって耐タンパ領域を実現してもよい。また、各インタフェースを介して接続される装置を利用して耐タンパ領域を実現してもよい。
なお、サービスにおけるリスクが許容される場合、接続装置100は、耐タンパ装置206等を用いて実現される耐タンパ領域を利用しなくてもよい。
記憶装置207は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置である。実施例1の記憶装置207はユーザ管理情報220を格納する。
ユーザ管理情報220は、ユーザ150に関する情報を格納する。ユーザ管理情報220は、アドレスの生成に用いられる情報である。ユーザ管理情報220の詳細は図4を用いて説明する。
図3は、実施例1の処理ノード101の構成の一例を示す図である。
処理ノード101は、接続装置100と同一の装置構成であり、CPU301、メモリ302、ストレージインタフェース303、ネットワークインタフェース304、入出力インタフェース305、耐タンパ装置306、及び記憶装置307を有する。
実施例1のメモリ302は、サービス処理部310を実現するプログラムを格納する。サービス処理部310は、後述する台帳情報320を管理し、ブロックチェーンネットワーク110を利用したサービスの処理を制御する。サービス処理部310は、検索処理部311を含む。検索処理部311は、暗号処理部211によって生成されたアドレスに基づくトランザクションの検索処理を実行する。
実施例1の記憶装置307は、接続装置100が送信したトランザクションを管理するための台帳情報320を格納する。台帳情報320の詳細は図5を用いて説明する。
図4は、実施例1のユーザ管理情報220の一例を示す図である。
ユーザ管理情報220は、ユーザID401、検索語402、及び利用目的403から構成されるエントリを含む。一つのエントリが一人のユーザ150に対応する。なお、エントリの構造は一例であってこれに限定されない。例えば、エントリは、処理に必要な各種管理情報を格納するフィールドを含んでもよい。
ユーザID401は、ユーザ150の識別情報を格納するフィールドである。検索語402は、アドレスとして使用する検索可能暗号文を生成するためのキーワード(検索語)を格納するフィールドである。利用目的403は、ユーザ150のサービスの利用目的を格納するフィールドである。
実施例1では、検索語及び利用目的が対応づけられており、ユーザ150は、検索語を記憶することなく、利用目的に応じたトランザクションを発行できる。これによって、ユーザ150の利便性を向上させることができる。
実施例1のユーザ管理情報220は、記憶装置207に格納されているが、必要に応じて耐タンパ領域(耐タンパ装置206)に格納されてもよい。
図5は、実施例1の台帳情報320の一例を示す図である。
台帳情報320は、時系列順に連結された複数のブロック500から構成される。各ブロック500は、時系列が前のブロック500と接続される。ブロック500は、接続されるブロック500に含まれるデータから算出されたハッシュ値を含む。また、ブロック500は、フィルタ510及びトランザクション情報520を含む。
フィルタ510は、ブロック500に格納される複数のトランザクションの中から特定のトランザクションを検索するために用いられる情報である。
トランザクション情報520は、ユーザ150の取引内容を示すトランザクションを管理するための情報である。トランザクション情報520は、送信元521、送信先522、値523、及びフィルタ生成情報524から構成されるエントリを含む。一つのエントリが一つのトランザクションに対応する。
送信元521、送信先522、値523は、取引内容を格納するフィールドである。実施例1では、仮想通貨の取引サービスを想定しているため、仮想通貨の送信元、送信先、仮想通貨の値(金額)を格納するフィールドを設けている。なお、前述の取引内容は一例であってこれらに限定されない。
送信元521は、検索語から生成された検索可能暗号文であるアドレスを格納するフィールドである。
送信先522は、送信先のユーザ150等から予め取得したアドレスを格納するフィールドである。送信先522に格納されるアドレスは、検索可能暗号文でなくてもよい。実施例1では、送信先のユーザ150は、アドレスを通知する場合に、後述する処理によって生成された検索可能暗号文をアドレスとして通知する。
値523は、仮想通貨の取引金額を格納するフィールドである。
フィルタ生成情報524は、フィルタ510を生成するために使用するフィルタ生成情報を格納するフィールドである。
図6は、実施例1のシステムにおけるトランザクションの生成処理の流れを説明するシーケンス図である。
送信元のユーザ150及び送信先のユーザ150の間で、予め送信先のユーザ150のアドレスを取得する(ステップS100)。アドレスを取得する方法は、例えば、メール及びWebサイトの掲示等を用いて取得する方法が考えられる。なお、本発明はアドレスを取得する方法に限定されない。
送信元のユーザ150は、接続装置100に対して送信リクエストを入力する(ステップS101)。送信リクエストは、ユーザ150が保持する端末を操作して入力されてもよいし、また、接続装置100に接続される入力装置を操作して入力されてもよい。
送信リクエストには、アドレスを生成するために使用する検索語又は検索語を特定するための利用目的に関する情報のいずれかが含まれる。また、送信リクエストには、送金取引における金額及び送信の宛先を示す情報が含まれる。
次に、接続装置100は、送信リクエストを受信した場合、確率的暗号方式の暗号鍵(第一暗号鍵)を用いて、検索語から検索可能暗号をアドレスとして生成する(ステップS102)。アドレスの生成処理の詳細は図7を用いて説明する。
次に、接続装置100は、確率的暗号方式の暗号鍵(第二暗号鍵)を用いて、検索語からフィルタ生成情報を生成する(ステップS103)。具体的には、接続装置100は、ブルームフィルタ又はアキュームレータの生成処理と同様の処理を行ってフィルタ生成情報を生成する。フィルタ生成情報の生成処理の詳細は図8を用いて説明する。
次に、接続装置100は、アドレス及びフィルタ生成情報を含むトランザクションを生成し(ステップS104)、また、サービス用の秘密鍵を用いてトランザクションに対して電子署名を行うことによって、署名済のトランザクションを生成する(ステップS105)。トランザクションにはフィルタ生成情報が含まれる。
次に、接続装置100は、ブロックチェーンネットワーク110へ署名済のトランザクションを送信する(ステップS106)。具体的には、ブロックチェーンネットワーク110を構成する処理ノード101に署名済のトランザクションが送信される。また、接続装置100は、送信元のユーザ150に送信完了を通知する(ステップS107)。
処理ノード101は、署名済のトランザクションを受信した場合、当該トランザクションを検証する(ステップS108)。具体的には、処理ノード101は、送信元のユーザ150から配布されたサービス用の公開鍵を用いて署名済のトランザクションを検証する。
処理ノード101は、検証が成功した場合、トランザクションを台帳情報320に登録する(ステップS109)。
トランザクションがブロック500に格納されることによって、送信元のユーザ150から送信先のユーザ150への送金取引が確定する。したがって、送信先のユーザ150には送金取引が確定した旨は明示的には通知されない。送信先のユーザ150が、トランザクション及びブロック500を監視している場合、ブロックチェーンネットワーク110を構成する処理ノード101から通知を受け取ることによって送金取引を確認できる。
なお、ブロック500の生成時に実行されるフィルタの生成処理の詳細は図9を用いて説明する。
なお、フィルタ510を含める必要がない場合、接続装置100は、フィルタ生成情報を生成しなくてもよく、また、処理ノード101は、ブロック500の生成時にフィルタを生成しなくてもよい。
図7は、実施例1の接続装置100が実行するアドレスの生成処理の一例を説明するフローチャートである。
以下で説明する処理は、送信リクエストを受信した接続処理部210によって呼び出された暗号処理部211によって実行される。
暗号処理部211は、検索語を特定する(ステップS201)。
具体的には、暗号処理部211は、送信リクエストに検索語が含まれるか否かを判定する。送信リクエストに検索語が含まれる場合、暗号処理部211は当該検索語をそのまま用いる。送信リクエストに検索語が含まれない場合、暗号処理部211は、送信リクエストを解析し、解析結果に基づいてユーザ管理情報220を参照し、ユーザの識別情報及び利用目的等に基づいて検索語を特定する。
次に、暗号処理部211は、第一暗号鍵を用いて検索語から検索可能暗号文を生成する(ステップS202)。
接続処理部210は、暗号処理部211によって生成された検索可能暗号文をブロックチェーンで用いるアドレスとして使用する。検索可能暗号文は確率的暗号化方式に基づいて生成されるため、一つの検索語に対してランダムなアドレスを生成することができる。これによって送信元の匿名化を実現できる。
銀行及び証券会社等のサービス提供者がブロックチェーンネットワーク110への接続サービスを提供する場合、サービス提供者は、ユーザ150に対してユーザID等の識別情報を割り当てていることが想定される。そこで、ユーザIDを検索語として利用することによって、検索可能なアドレスを複数個生成することができる。これによって、ブロックチェーンネットワーク110におけるユーザのアドレスの匿名化を実現できる。
従来の接続装置100は複数のアドレスを保持する必要があったが、実施例1の接続装置100は複数のアドレスを保持する必要がない。
また、実施例1では、接続装置100がユーザ管理情報220に検索語を登録することによって、ユーザ150が検索語を指定することなく匿名化されたアドレスを生成することができる。なお、ユーザID及びユーザ管理情報220に登録された検索語を合成した入力に基づいてアドレスが生成されてもよい。これによって、ユーザ150の利便性を向上させることができる。
図8は、実施例1の接続装置100がフィルタ生成情報を生成する処理の一例を説明するフローチャートである。
以下で説明する処理は、送信リクエストを受信した接続処理部210によって呼び出された暗号処理部211によって実行される。なお、フィルタ生成情報の生成処理は、アドレスの生成処理と同期してもよいし、同期していなくてもよい。
暗号処理部211は、検索語を特定する(ステップS301)。
暗号処理部211は、検索語の暗号化が必要であるか否かを判定する(ステップS302)。検索語の暗号化が必要であるか否かは予め設定されているものとする。
検索語の暗号化を行う理由は、検索語及びフィルタ生成情報の対応関係を秘匿するためである。決定性暗号を用いて検索語を暗号化する場合、暗号化された検索語及びフィルタ生成情報の対応関係を公開する必要がある。しかし、検索語の暗号化に使用した暗号鍵が漏洩しない限り、検索語が他者に知られる可能性は低い。
なお、安全性を向上させるために、決定的暗号で使用する暗号鍵は、確率的暗号化方式で使用する暗号鍵とは別の鍵として耐タンパ装置206で管理することが望ましい。
検索語の暗号化が必要でないと判定された場合、暗号処理部211は、ステップS304に進む。
検索語の暗号化が必要であると判定された場合、暗号処理部211は、検索語を暗号化する(ステップS303)。その後、暗号処理部211は、ステップS304に進む。
ステップS304では、暗号処理部211は、フィルタ生成情報の加工が必要であるか否かを判定する(ステップS304)。フィルタ生成情報の加工が必要であるか否かは予め設定されているものとする。
フィルタを加工する理由は、検索語及びフィルタ生成情報の対応関係を秘匿するためである。
フィルタ生成情報の加工が必要でないと判定された場合、暗号処理部211は、平文の検索語又は暗号文の検索語を用いてフィルタ生成情報を生成する(ステップS305)。その後、暗号処理部211は、生成されたフィルタを接続処理部210に出力し、処理を終了する。
フィルタ生成情報は、ブルームフィルタ及びアキュームレータを生成する処理と同様の処理に基づいて生成される。
フィルタ生成情報の加工が必要であると判定された場合、暗号処理部211は、平文の検索語又は暗号文の検索語を用いてフィルタ生成情報を生成する(ステップS306)。さらに、暗号処理部211は、生成されたフィルタ生成情報を加工する(ステップS307)。その後、暗号処理部211は、加工されたフィルタ生成情報を接続処理部210に出力し、処理を終了する。
フィルタ生成情報の加工方法としては、例えば、検索語に関連しない場所にある「0」及び「1」いずれかである部分を逆の値に変換する方法が考えられる。ただし、同一のフィルタ生成情報を加工した場合に、加工後のフィルタ生成情報が同一とならないように値を変更する場所は固定されていない。
なお、前述した加工方法は一例であってこれに限定されない。トランザクションの重要度に応じて複数の加工方法が選択できるように構成されてもよい。
なお、加工方法及び加工の程度を示す情報は、暗号処理部211に含めてもよいし、メモリ202に格納してもよい。また、外部の装置が管理してもよい。
図9は、実施例1の処理ノード101がフィルタ510を生成する処理の一例を説明するフローチャートである。
以下で説明する処理は、サービス処理部310がブロック500を生成するときに実行される。なお、ブロック500を生成するタイミングは、例えば、一定数のトランザクションが蓄積された場合等が考えられる。
サービス処理部310は、ブロック500に含めるトランザクションに含まれるフィルタ生成情報を取得する(ステップS401)。なお、ブロック500に含めるトランザクションは任意のアルゴリズムによって決定される。
次に、サービス処理部310は、取得したフィルタ生成情報を用いてフィルタ510を生成する(ステップS402)。その後、サービス処理部310はフィルタ510の生成処理を終了する。
例えば、サービス処理部310は、取得したフィルタ生成情報を合成するためのAND演算又はXOR演算等のビット演算を実行して、フィルタ510を生成する。なお、前述のフィルタ510の生成方法は一例であってこれに限定されない。
サービス処理部310は、フィルタ510を生成した後、生成されたフィルタ510及び複数のトランザクションを含むブロック500を生成し、台帳情報320に追加する。
本来、フィルタ生成情報をフィルタ510として使用できることが望ましい。しかし、生成されたフィルタ510は常に同じデータとなることから、検索語が類推される可能性がある。確率的暗号方式で暗号化したフィルタ生成情報をフィルタ510として使用する方法も考えられるが、暗号文に含まれる情報を保持しつつ、複数のフィルタ生成情報を用いてフィルタ510を生成することは難しい。そのため、接続装置100は、一定レベルの偽陽性を許容したフィルタを生成する。
図10は、実施例1のシステムにおけるトランザクションの検索処理の流れを説明するシーケンス図である。
ユーザ150は、接続装置100に対して検索リクエストを入力する(ステップS501)。検索リクエストは、ユーザ150の識別情報及び検索対象のトランザクションの生成時に使用した検索語が含まれる。
なお、検索リクエストには、検索語の代わりに利用目的が含まれてもよい。この場合、接続装置100は、ユーザ管理情報220を参照し、検索語を特定してもよい。
接続装置100は、検索リクエストを受信した場合、検索クエリを生成する(ステップS502)。
具体的には、暗号処理部211は、検索リクエストに含まれる検索語及び第一暗号鍵を用いて検索可能暗号文を生成する。接続装置100は、検索キーとして生成された暗号文を含む検索クエリを生成する。
次に、接続装置100は、検索フィルタを生成する(ステップS503)。
具体的には、接続処理部210は、フィルタ生成情報を検索フィルタとして生成する。フィルタ生成情報の生成処理は、図8で説明した処理と同一であるため説明を省略する。
なお、トランザクションに含まれるフィルタ生成情報が暗号化された検索語を用いて生成されている場合、接続装置100は、暗号化された検索語を用いて検索フィルタを生成する。また、トランザクションに含まれるフィルタ生成情報が加工されている場合、接続装置100は、同様の作成手順にしたがって加工されたフィルタ生成情報を検索フィルタとして生成する。
なお、ブロック単位の検索を行わない場合、接続装置100は、検索フィルタを生成しなくてもよい。
次に、接続装置100は、処理ノード101に検索クエリ及び検索フィルタを含む検索指示を送信する(ステップS504)。
処理ノード101は、検索指示を受信した場合、検索処理を実行する(ステップS505)。検索処理の詳細は図11を用いて説明する。
処理ノード101は、検索結果を接続装置100に送信する(ステップS506)。接続装置100は、受信した検索結果をユーザ150に通知する(ステップS507)。
処理ノード101がトランザクションを検索できた場合、検索結果には検索されたトランザクションが含まれ、処理ノード101がトランザクションを検索できなかった場合、検索結果には失敗を示す値が含まれる。
検索対象のトランザクションの検索処理は、通常、台帳情報320に含まれる全てのトランザクションに対して行われる。ブロックチェーンを構成するブロックは複数のトランザクションから構成されるため、検索対象のトランザクションを含むブロック500を特定した後に、トランザクション単位の検索を行うと、効率的な検索処理となる。前述の検索処理を実現するために従来技術では、ブルームフィルタ及びアキュームレータ等を用いて検索対象のトランザクションを含むブロック500を特定している。
しかし、実施例1では、確率的暗号方式で生成された検索可能暗号文をアドレスとして用いているため、ブロック500の生成時に、トランザクションに含まれるアドレスからフィルタを生成しても、ブロック単位の検索ができない。そこで、実施例1の処理ノード101は、ブロック500の生成時に専用のフィルタ(フィルタ510)を生成し、また、ブロック500の検索時に専用のフィルタ(検索フィルタ)を生成する。
図11は、実施例1の処理ノード101が実行する検索処理の一例を説明するフローチャートである。
以下の処理は、検索指示を受け付けたサービス処理部310によって呼び出された検索処理部311によって実行される。
検索処理部311は、検索指示に含まれる検索フィルタを用いて検索対象のトランザクションを含む対象ブロック500を検索し(ステップS601)、対象ブロック500が存在するか否かを判定する(ステップS602)。
具体的には、検索処理部311は、ブロック500に含まれるフィルタ510及び検索フィルタのマッチング処理を実行する。なお、フィルタを用いて対象ブロック500を検索する方法は、ブルームフィルタ及びアキュームレータ等を用いた検索方法と同様のものであるため詳細な説明は省略する。
対象ブロック500が存在しない場合、検索処理部311は、失敗を示す値を含む検索結果を出力する(ステップS606)。その後、検索処理部311は検索処理を終了する。
対象ブロック500が存在する場合、検索処理部311は、検索クエリに基づいて、対象ブロック500から検索対象のトランザクションを検索し(ステップS603)、検索対象のトランザクションが存在するか否かを判定する(ステップS604)。
検索クエリに基づくトランザクションの検索方法は、例えば、特許文献1に記載の方法を用いる。同一の検索語から生成されたアドレスはそれぞれ異なる値であるが、検索可能暗号文に基づく検索クエリによって、一度の検索で複数のトランザクションを検索できる。
実施例1では、検索語の類推を困難にするために偽陽性を許容したフィルタ510が用いられる。そのため、対象ブロック500に検索対象のトランザクションが含まれない可能性がある。そこで、検索処理部311は、対象ブロック500に含まれる全てのトランザクションを処理対象とする。
対象ブロック500に検索対象のトランザクションが存在しない場合、検索処理部311は、失敗を示す値を含む検索結果を出力する(ステップS606)。その後、検索処理部311は検索処理を終了する。
対象ブロック500に検索対象のトランザクションが存在する場合、検索処理部311は、検索されたトランザクションを含む検索結果を出力する(ステップS605)。
実施例1のアドレスは検索可能暗号文である。したがって、検索処理部311は、検索クエリに含まれる暗号文、すなわち、検索語から生成されたアドレスを含む全てのトランザクションを検索することができる。接続サービスの提供者が他のシステムと連携する場合、例えば、銀行がユーザ150からのリクエストをうけてブロックチェーンネットワーク110で管理される仮想通貨を当該ユーザ150の銀行口座に振り替える場合、処理ノード101は、当該ユーザ150の全てのトランザクションを一回又は従来の検索処理より少ない回数で検索できる。
なお、対象ブロック500を検索する場合、接続装置100は、フィルタ生成情報を生成し、フィルタ生成情報を検索フィルタとして検索指示に含めてもよい。この方式の場合、同一の検索語から生成される検索フィルタは全て異なるため情報漏洩のリスクを抑えることができる。
以上で説明したように、実施例1のシステムは、確率的暗号化方式で生成された検索可能暗号文をアドレスとして使用することによって、ユーザ150及びサービス提供者が複数のアドレスを管理する必要がない。
また、確率的暗号化方式で生成されたアドレスは、検索可能暗号文であることから、検索語に基づいて特定のユーザの特定の用途に関連するトランザクションを一度に検索することができる。
また、効率的な検索処理を実現するために偽陽性を許容したフィルタを用いることによって、検索語の情報を漏らすことなくブロック単位でトランザクションを検索できる。
実施例1によれば、匿名性を維持し、かつ、管理が容易なアドレスを含むトランザクションを扱うブロックチェーンを提供できる。
なお、実施例1では、仮想通貨の取引サービスを提供するブロックチェーンネットワーク110を想定しているため、検索可能暗号文の対象をアドレスとしている。ただし、実施例1で説明した構成及び処理は、サービスに応じて様々な項目に対して適用することができる。
実施例2では、アドレスの生成方法が異なる。以下、実施例1との差異を中心に実施例2について説明する。
実施例2のシステム構成は、実施例1のシステム構成と同一である。また、実施例2の接続装置100のハードウェア構成及びモジュールの構成は、実施例1の接続装置100と同一である。実施例2の処理ノード101の構成は、実施例1の処理ノード101と同一である。
実施例2では、接続装置100が保持するユーザ管理情報220が一部異なる。図12は、実施例2のユーザ管理情報220の一例を示す図である。
ユーザ管理情報220は、ユーザID1201、秘密鍵1202、公開鍵1203、検索語1204、及び利用目的1205から構成されるエントリを含む。一つのエントリが一人のユーザ150に対応する。ユーザID1201、検索語1204、及び利用目的1205は、ユーザID401、検索語402、及び利用目的403と同一のフィールドである。
秘密鍵1202は、秘密鍵を格納するフィールドである。公開鍵1203は、秘密鍵に対応する公開鍵を格納するフィールドである。
ユーザ管理情報220にて検索語及び鍵を管理することによって、ユーザ150の利便性を高めることができる。
従来の仮想通貨の取引サービスで利用されるアドレスは、ユーザ150又はサービス提供者が管理する公開鍵と一対一の関係になっている。これは、公開鍵に対してハッシュ演算を実行したデータをアドレスとして扱っているためである。
実施例2では、接続装置100は、従来技術で生成されたアドレス(入力用アドレス)及び検索語を入力として検索可能暗号文を生成する。
実施例2の接続処理部210は、予め、秘密鍵及び当該秘密鍵に対応する公開鍵を生成する。接続処理部210は、ユーザ管理情報220の秘密鍵1202及び公開鍵1203に、生成された秘密鍵及び公開鍵を格納する。
なお、秘密鍵及び公開鍵を生成するタイミングは、ユーザ150が接続サービスを契約した時、及び、ユーザ150が初めて接続サービスの利用を開始した時等が考えられる。なお、実施例2では、秘密鍵及び公開鍵を生成するタイミングに限定されない。
図13は、実施例2の接続装置100が実行するアドレス生成処理の一例を説明するフローチャートである。なお、公開鍵及び秘密鍵は当該処理の開始前に生成されているものとする。
暗号処理部211は、検索語を特定し(ステップS701)、また、公開鍵を用いて入力アドレスを生成する(ステップS702)。ステップS701及びステップS702の処理は、同時に実行してもよいし、また、実行順番を入れ替えてもよい。
入力用アドレスの生成処理は公知の技術を用いればよいため詳細な説明は省略するが、例えば、以下のような手順にしたがって入力用アドレスが生成される。
(生成方法1)接続処理部210は、公開鍵を第一ハッシュ関数に入力し、第一ハッシュ値を算出する。接続処理部210は、第一ハッシュ値を第二ハッシュ関数に入力し、第二ハッシュ値を算出する。接続処理部210は、第二ハッシュ値にプレフィックスを追加して、第三ハッシュ関数に入力し、再度、出力された値を第三ハッシュ関数に入力して、第三ハッシュ値を取得する。接続処理部210は、第三ハッシュ値にチェックサムを追加し、所定のフォーマットにエンコードする。以上の処理によって得られた値が入力用アドレスとなる。
(生成方法2)接続処理部210は、公開鍵を第一ハッシュ関数に入力し、文字列を取得する。接続処理部210は、文字列に対してデータの削除及び追加等の加工し、文字列の先頭に所定のデータを追加する。以上の処理によって得られた値が入力用アドレスとなる。
次に、暗号処理部211は、第一暗号鍵を用いて検索語及び入力アドレスから検索可能暗号文を生成する(ステップS703)。
検索可能暗号文を生成する方法は、例えば、以下のようなものが考えられる。(1)暗号処理部211は、検索語及び入力アドレスを足し合わせて一つのデータを生成し、当該データを入力として検索可能暗号文を生成する。(2)暗号処理部211は、検索語及び入力アドレスに対してビット演算を実行して一つのデータを生成し、当該データを入力として検索可能暗号文を生成する。(3)暗号処理部211は、入力アドレスを暗号処理に使用するシードとして用いて検索語を暗号化する。
なお、前述の生成方法は一例であってこれに限定されない。ただし、システム内の接続装置100が利用する生成方法は統一する。
なお、実施例2では、公開鍵から生成された入力アドレス及び検索語を用いて検索可能暗号文が生成されていたがこれに限定されない。例えば、アルゴリズムを変更して、公開鍵及び検索語を入力として検索可能暗号文を生成するようにしてもよい。
実施例2では、検索クエリに含める検索可能暗号文も図13で示した方法と同様の方法で生成される。
実施例2の処理ノード101が実行する検索処理は実施例1と同一である。
実施例2によれば、一つの公開鍵(公開鍵及び秘密鍵のペア)から複数のアドレスを生成することができる。これによって、管理する鍵の数の増加を抑止し、かつ、匿名性の向上による情報保護が可能となる。
また、実施例2で説明したアドレスの生成方法は、従来技術のアドレス(入力用アドレス)の生成方法に組み込むことが可能である。したがって、従来のシステムに迅速かつ容易に本発明を適用することができる。
実施例3では、ブロックチェーンネットワーク110において使用するサービス用の公開鍵及び秘密鍵の生成方法が従来と異なる。
従来技術では、ユーザ150又は接続装置100は複数の鍵ペアを管理する必要があった。実施例3では接続装置100が処理に必要な場合に検索可能暗号文から鍵ペアを生成する。以下、実施例1との差異を中心に実施例3について説明する。
実施例3のシステム構成は、実施例1のシステム構成と同一である。また、実施例3の接続装置100の構成は、実施例1の接続装置100と同一である。実施例3の処理ノード101の構成は、実施例1の処理ノード101と同一である。
図14は、実施例3の接続装置100が実行する鍵ペアの生成処理の一例を説明するフローチャートである。
以下の処理は、暗号鍵が必要となる処理を実行する接続処理部210によって呼び出された暗号処理部211によって実行される。なお、実施例3は、暗号鍵が必要となる処理の種別及び実行タイミングに限定されない。
暗号処理部211は、検索語を特定し(ステップS801)、第一暗号鍵を用いて検索語から検索可能暗号文を生成する(ステップS802)。
次に、暗号処理部211は、検索可能暗号文を用いて鍵ペア(秘密鍵及び公開鍵)を生成する(ステップS803)。
鍵ペアの作成方法としては、例えば、ID−Based暗号を利用する。ID−Based暗号は、メールアドレス等の所定の識別子を公開鍵として利用する暗号化方式である。ID−Based暗号では、信頼できる鍵生成局が存在する。ユーザ150は、当該鍵生成局に対して秘密鍵等の処理に必要な情報の生成を依頼する。
上記の方式を採用する場合、接続処理部210が鍵生成局を実現する機能を備えるようにすればよい。これによって、接続処理部210は、検索可能暗号文から秘密鍵及び公開鍵を生成できる。
なお、鍵生成局を実現する機能によって使用される情報は、メモリ202、耐タンパ装置206、及び記憶装置207の少なくともいずれかに格納される。
実施例3によれば、接続装置100は、必要に応じて検索可能暗号文から鍵ペアを生成できる。したがって、ユーザ150又は接続装置100は、用途毎に使い分ける複数の鍵ペアを管理する必要がない。
また、実施例3では、接続装置100が恒常的に鍵ペアを保持していないため、暗号鍵の漏洩等、セキュリティの問題発生等を抑止できる。したがって、安全なシステムの運用が可能となる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 接続装置
101 処理ノード
110 ブロックチェーンネットワーク
150 ユーザ
201、301 CPU
202、302 メモリ
203、303 ストレージインタフェース
204、304 ネットワークインタフェース
205、305 入出力インタフェース
206、306 耐タンパ装置
207、307 記憶装置
210 接続処理部
211 暗号処理部
220 ユーザ管理情報
310 サービス処理部
311 検索処理部
320 台帳情報
500 ブロック
510 フィルタ
520 トランザクション情報
521 送信元
522 送信先
523 値
524 フィルタ生成情報

Claims (15)

  1. ブロックチェーンを用いたサービスを提供するためのブロックチェーンネットワークを構成する複数の処理ノード及び前記ブロックチェーンネットワークへ接続する接続装置を備える計算機システムであって、
    前記複数の処理ノードは、前記サービスにおける取引情報の履歴を含むトランザクションを管理するための情報であって、前記複数のトランザクションを含むブロックが時系列順に連結された情報である台帳情報を保持し、
    前記接続装置は、前記トランザクションを生成し、少なくとも一つの前記処理ノードに前記トランザクションを送信する接続処理部を有し、
    前記接続処理部は、確率的暗号化方式に基づいてキーワードから検索可能暗号文を生成する暗号処理部を含み、
    前記暗号処理部は、前記キーワードから、前記トランザクションの送信元又は送信先を示すアドレスとして使用する前記検索可能暗号文を生成し、
    前記接続処理部は、前記検索可能暗号文を含む前記トランザクションを生成することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記暗号処理部は、前記検索可能暗号文を用いて、前記トランザクションに関連するデータの暗号化及び復号化に使用する暗号鍵を生成することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記処理ノードは、前記台帳情報を管理するサービス処理部を有し、
    前記サービス処理部は、前記トランザクションの検索処理を実行する検索処理部を含み、
    前記接続処理部は、
    第一キーワードから生成された検索可能暗号文を含むトランザクションを検索するための検索クエリを生成し、
    前記少なくとも一つの処理ノードに前記検索クエリを送信し、
    前記検索処理部は、
    前記検索クエリに基づいて検索処理を実行することによって、前記第一キーワードから生成された検索可能暗号文を含むトランザクションを検索し、
    前記検索の結果を前記接続装置に応答することを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記ブロックは、当該ブロックに含まれる前記トランザクションを特定するためのフィルタを含み、
    前記接続処理部は、前記第一キーワードを用いて、前記第一キーワードから生成された検索可能暗号文を含むトランザクションを含むブロックを特定するための検索フィルタを生成し、
    前記検索処理部は、
    前記ブロックに含まれる前記フィルタ及び前記検索フィルタを比較することによって、前記第一キーワードから生成された検索可能暗号文を含むトランザクションを含むブロックを特定し、
    前記特定されたブロックに対して前記検索クエリに基づく検索処理を実行することを特徴とする計算機システム。
  5. 請求項4に記載の計算機システムであって、
    前記接続処理部は、
    前記キーワードを用いて、前記フィルタを生成するためのフィルタ生成情報を生成し、
    前記検索可能暗号文及び前記フィルタ生成情報を含む前記トランザクションを生成し、
    前記サービス処理部は、
    新規ブロックに含める複数のトランザクションを決定し、
    前記決定された複数のトランザクションに含まれる前記フィルタ生成情報を用いて前記フィルタを生成し、
    前記フィルタを含む前記新規ブロックを生成し、前記新規ブロックを前記台帳情報に登録することを特徴とする計算機システム。
  6. 請求項5に記載の計算機システムであって、
    前記接続処理部は、
    前記キーワードを暗号化し、
    前記暗号化されたキーワードを用いて前記フィルタ生成情報を生成することを特徴とする計算機システム。
  7. 請求項5に記載の計算機システムであって、
    前記接続処理部は、
    前記フィルタ生成情報を加工し、
    前記検索可能暗号文及び前記加工されたフィルタ生成情報を含む前記トランザクションを生成することと特徴とする計算機システム。
  8. 複数の処理ノードから構成され、ブロックチェーンを用いたサービスを提供するためのブロックチェーンネットワークに接続する接続装置であって、
    前記複数の処理ノードは、前記サービスにおける取引情報の履歴を含むトランザクションを管理するための情報であって、前記複数のトランザクションを含むブロックが時系列順に連結された情報である台帳情報を保持し、
    前記接続装置は、前記トランザクションを生成し、少なくとも一つの前記処理ノードに前記トランザクションを送信する接続処理部を有し、
    前記接続処理部は、確率的暗号化方式に基づいてキーワードから検索可能暗号文を生成する暗号処理部を含み、
    前記暗号処理部は、前記キーワードから、前記トランザクションの送信元又は送信先を示すアドレスとして使用する前記検索可能暗号文を生成し、
    前記接続処理部は、前記検索可能暗号文を含む前記トランザクションを生成することを特徴とする接続装置。
  9. 請求項8に記載の接続装置であって、
    前記暗号処理部は、前記検索可能暗号文を用いて、前記トランザクションに関連するデータの暗号化及び復号化に使用する暗号鍵を生成することを特徴とする接続装置。
  10. 請求項9に記載の接続装置であって、
    前記接続処理部は、
    第一キーワードから生成された検索可能暗号文を含むトランザクションを検索するための検索クエリを生成し、
    前記少なくとも一つの処理ノードに前記検索クエリを送信することを特徴とする接続装置。
  11. 請求項10に記載の接続装置であって、
    前記ブロックは、当該ブロックに含まれる前記トランザクションを特定するためのフィルタを含み、
    前記接続処理部は、
    前記第一キーワードを用いて、前記第一キーワードから生成された検索可能暗号文を含むトランザクションを含むブロックを特定するための検索フィルタを生成することを特徴とする接続装置。
  12. 請求項11に記載の接続装置であって、
    前記接続処理部は、
    前記キーワードを用いて、前記フィルタを生成するためのフィルタ生成情報を生成し、
    前記検索可能暗号文及び前記フィルタ生成情報を含む前記トランザクションを生成し、
    前記台帳情報には、前記複数のトランザクションに含まれる前記フィルタ生成情報を用いて生成された前記フィルタを含むブロックが格納されることを特徴とする接続装置。
  13. 複数の処理ノードから構成され、ブロックチェーンを用いたサービスを提供するためのブロックチェーンネットワークに接続する接続装置が実行するデータ処理方法であって、
    前記複数の処理ノードは、前記サービスにおける取引情報の履歴を含むトランザクションを管理するための情報であって、前記複数のトランザクションを含むブロックが時系列順に連結された情報である台帳情報を保持し、
    前記接続装置が、前記トランザクションの送信元又は送信先を示すアドレスとして、確率的暗号化方式に基づいてキーワードから検索可能暗号文を生成するステップと、
    前記接続装置が、前記検索可能暗号文を含む前記トランザクションを生成し、少なくとも一つの前記処理ノードに前記トランザクションを送信するステップと、を含むことを特徴とするデータ処理方法。
  14. 請求項13に記載のデータ処理方法であって、
    前記接続装置が、前記検索可能暗号文を用いて、前記トランザクションに関連するデータの暗号化及び復号化に使用する暗号鍵を生成するステップを含むことを特徴とするデータ処理方法。
  15. 請求項14に記載のデータ処理方法であって、
    前記接続装置が、第一キーワードから生成された検索可能暗号文を含むトランザクションを検索するための検索クエリを生成するステップと、
    前記接続装置が、前記少なくとも一つの処理ノードに前記検索クエリを送信するステップと、を含むことを特徴とするデータ処理方法。
JP2018030153A 2018-02-22 2018-02-22 計算機システム、接続装置、及びデータ処理方法 Active JP6840692B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018030153A JP6840692B2 (ja) 2018-02-22 2018-02-22 計算機システム、接続装置、及びデータ処理方法
US16/276,798 US20190260715A1 (en) 2018-02-22 2019-02-15 Computer system, connection apparatus, and processing method using transaction
EP19157845.9A EP3531365B1 (en) 2018-02-22 2019-02-18 Computer system, connection apparatus, and processing method using transaction
PT191578459T PT3531365T (pt) 2018-02-22 2019-02-18 Sistema de computador, aparelho de ligação, e método de processamento usando transação

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018030153A JP6840692B2 (ja) 2018-02-22 2018-02-22 計算機システム、接続装置、及びデータ処理方法

Publications (2)

Publication Number Publication Date
JP2019146088A true JP2019146088A (ja) 2019-08-29
JP6840692B2 JP6840692B2 (ja) 2021-03-10

Family

ID=65657210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018030153A Active JP6840692B2 (ja) 2018-02-22 2018-02-22 計算機システム、接続装置、及びデータ処理方法

Country Status (4)

Country Link
US (1) US20190260715A1 (ja)
EP (1) EP3531365B1 (ja)
JP (1) JP6840692B2 (ja)
PT (1) PT3531365T (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597864A (zh) * 2019-09-26 2019-12-20 腾讯科技(深圳)有限公司 一种基于区块链的个人信息管理方法及装置
KR102124942B1 (ko) * 2019-10-07 2020-06-19 신호열 블록체인 데이터 검색 방법
WO2021133153A1 (en) * 2019-12-24 2021-07-01 Mimos Berhad Transaction signing with ergonomic addressing and compact encapsulation
CN111914027B (zh) * 2020-08-05 2023-07-28 北京科技大学 一种区块链交易关键字可搜索加密方法及***
CN113014563B (zh) * 2021-02-10 2022-03-25 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123614A (ja) * 2010-12-08 2012-06-28 Hitachi Ltd 検索可能暗号処理システム
US20140052999A1 (en) * 2012-08-15 2014-02-20 Selim Aissi Searchable Encrypted Data
JP2015187828A (ja) * 2014-03-13 2015-10-29 株式会社日立ソリューションズ 情報管理システム
JP2016162431A (ja) * 2015-03-05 2016-09-05 ブラザー工業株式会社 情報処理装置、コンテンツ配信システム、情報処理方法、及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6144992B2 (ja) * 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
WO2016129259A1 (ja) * 2015-02-09 2016-08-18 日本電気株式会社 サーバ装置、データ検索システム、検索方法および記録媒体
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
KR102449816B1 (ko) * 2016-03-25 2022-10-04 삼성전자주식회사 암호화 및 검색 장치 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123614A (ja) * 2010-12-08 2012-06-28 Hitachi Ltd 検索可能暗号処理システム
US20140052999A1 (en) * 2012-08-15 2014-02-20 Selim Aissi Searchable Encrypted Data
JP2015187828A (ja) * 2014-03-13 2015-10-29 株式会社日立ソリューションズ 情報管理システム
JP2016162431A (ja) * 2015-03-05 2016-09-05 ブラザー工業株式会社 情報処理装置、コンテンツ配信システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
JP6840692B2 (ja) 2021-03-10
US20190260715A1 (en) 2019-08-22
PT3531365T (pt) 2022-12-30
EP3531365A1 (en) 2019-08-28
EP3531365B1 (en) 2022-12-21

Similar Documents

Publication Publication Date Title
CN110915164B (zh) 基于可信执行环境中执行的智能合约操作处理区块链数据
KR101974060B1 (ko) 분산 해시 테이블과 피어투피어 분산 대장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템
CN110462621B (zh) 在区块链网络中管理敏感数据元素
JP6840692B2 (ja) 計算機システム、接続装置、及びデータ処理方法
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
Ullah et al. Towards blockchain-based secure storage and trusted data sharing scheme for IoT environment
CN111047324B (zh) 用于更新区块链节点处的公钥集合的方法及装置
CN111066019B (zh) 处理存储在区块链网络中的数据元素
KR20190142353A (ko) 분산 트랜잭션 컨센서스 네트워크에서의 디지털 자산 트랜잭션의 익명성 및 추적성 향상 기법
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
US11870897B1 (en) Post quantum unique key per token system
US20210035090A1 (en) System and method for secure data delivery
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
JP7462903B2 (ja) 利用者端末、認証者端末、登録者端末、管理システムおよびプログラム
Skudnov Bitcoin clients
KR20230141845A (ko) 임계값 키 교환
Mishra et al. Enabling efficient deduplication and secure decentralized public auditing for cloud storage: A redactable blockchain approach
KR102282788B1 (ko) 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
CN113342802A (zh) 区块链数据存储的方法和装置
US11921877B2 (en) Efficient random tokenization in the cloud
Barsoum Provable data possession in single cloud server: A survey, classification and comparative study
JP6901373B2 (ja) ユーザ管理装置、ユーザ管理システム
US20210056624A1 (en) Secure communication framework for crypto-exchange services using asymmetric and symmetric encryption
JP2011164907A (ja) 情報管理システム
JP2020191552A (ja) シェア分散システムおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210217

R150 Certificate of patent or registration of utility model

Ref document number: 6840692

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150