JP7321481B2 - 第1通信装置、第2通信装置、方法、コンピュータプログラム - Google Patents

第1通信装置、第2通信装置、方法、コンピュータプログラム Download PDF

Info

Publication number
JP7321481B2
JP7321481B2 JP2017177056A JP2017177056A JP7321481B2 JP 7321481 B2 JP7321481 B2 JP 7321481B2 JP 2017177056 A JP2017177056 A JP 2017177056A JP 2017177056 A JP2017177056 A JP 2017177056A JP 7321481 B2 JP7321481 B2 JP 7321481B2
Authority
JP
Japan
Prior art keywords
target data
communication device
encryption
data
encrypted
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
JP2017177056A
Other languages
English (en)
Other versions
JP2019016997A (ja
Inventor
貴利 中村
Original Assignee
株式会社 エヌティーアイ
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 株式会社 エヌティーアイ filed Critical 株式会社 エヌティーアイ
Priority to EP18829093.6A priority Critical patent/EP3651406A4/en
Priority to PCT/JP2018/025163 priority patent/WO2019009275A2/ja
Priority to US16/626,902 priority patent/US20200267133A1/en
Publication of JP2019016997A publication Critical patent/JP2019016997A/ja
Application granted granted Critical
Publication of JP7321481B2 publication Critical patent/JP7321481B2/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
    • 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/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/88Medical equipments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/16Interfaces between hierarchically similar devices
    • H04W92/18Interfaces between hierarchically similar devices between terminal devices

Landscapes

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

Description

本発明は、ブロックチェーンに代わるデータを改竄無く記録することが可能な技術に関する。
近年、ブロックチェーン、及びその応用技術に対する期待が大きくなってきている。ブロックチェーンを応用することにより、例えば、決済、送金等に関するフィンテックの分野や、個人認証、美術品の鑑定書等の認証の分野、投薬履歴の管理等についての医療分野、選挙の投票等についての公共の分野等で、従来存在しなかった新しいサービスを創造できるという指摘がなされている。
ところが、ある意味夢のような技術であるとすら言われるブロックチェーンではあるが、最近はその欠点も指摘され始めている。
まず、ブロックチェーンの最もよく知られている応用先である、ビットコイン(商標)の仕組みについて説明しつつ、ブロックチェーンの仕組みについて説明する。
ビットコインは仮想通貨と呼ばれる。ビットコインは、ナカモトサトシなる人物の論文に発してインターネット上に構築されたシステムによって実現された。ビットコインの仕組みは以下のようなものである。
ビットコインは、まず、以下のようにして発生させられる。
ビットコインを発生させる権利を有する者は、後述するノードを管理する管理者(一般に、「マイナー」と呼ばれる。)に限られる。ノードの管理者は、インターネット上で行われるある種のゲームに参加する。ゲームは繰返し行われ、ゲームに勝ったノードの管理者は、ゲームに勝つ都度、所定の量のビットコインを得ることができるようになっている。
このようにして発生させられたビットコインは、一般的な貨幣と同様に、それを得たノードの管理者から、ノードの管理者以外の者を含む第三者に、例えば、「支払い」を行うために譲渡され、結果として点々と流布されることになる。
ところで、ビットコインに限られないが、仮想通貨、或いは仮想貨幣の分野では、二重譲渡をどのようにして防止するのかというのが、大変重要な問題となる。有体物である一般的な貨幣は、譲渡者から譲受者に譲渡されると譲渡者の手の中から消えるため、譲渡者が譲受者に貨幣を譲渡した後に、同じ貨幣を更に別の譲受者に譲渡することは原則的に不可能である。しかしながら、仮想通貨は複製が容易であり、且つ譲渡者が譲受者に仮想通貨を譲渡したとしても譲渡者が所有していたデータとしての仮想通貨を消滅させないことが可能であるから、同じ仮想通貨を、複数人に譲渡することは極めて容易である。同じ仮想通貨が複数人に譲渡されることを防止できなければ、そのような仮想通貨は通貨として何らの信用も得られない。
かかる二重譲渡の問題をビットコインは、すべての取引記録を保存するという方法で、解決することとしている。取引記録は、例えば以下のようなものである。簡単のために、ビットコインの仕組みへの参加者が、A~Dの4人のみであり、且つノードの管理者は、A、Bの2人のみであるとする。ノードの管理者たるAは、上述のゲームに勝利して1000の、Bは、上述のゲームに勝利して500のビットコインを得たとする。
この状態では、A~Dがそれぞれ持つビットコインは以下のように記述される。
[表1]
A +1000
B +500
C 0
D 0
次いで、AはCに100の、BはDに200のビットコインを支払ったとする。
この状態では、A~Dがそれぞれ持つビットコインは以下のように記述される。
[表2]
A +1000 -100(to C)
B +500 -200(to D)
C 0 +100(from A)
D 0 +200(from B)
次いで、AはBに300の、DはCに100のビットコインを支払ったとする。
この状態では、A~Dがそれぞれ持つビットコインは以下のように記述される。
[表3]
A +1000 -100(to C) -300(to B)
B +500 -200(to D) +300(from A)
C 0 +100(from A) +100(from D)
D 0 +200(from B) -100(to C)
上記、表1から表3に記載の記録のすべてが取引記録である。上述の取引記録によれば、表3の時点において、Aの持つビットコインは+1000-100-300=600、同様にBの持つビットコインは600、Cの持つビットコインは、200、Dの持つビットコインは、100であるということがわかる。
このような仕組みを持つビットコインは、興味深いことに、上述の例でいうA~D間におけるビットコインの譲渡において、譲渡者から譲受者にビットコインの本体となる何らかのデータを引渡すということを行わない。それにも関わらず、取引記録さえ存在すれば、A~Dが現在持つビットコインの残高を特定することができる、というのがビットコインの仕組みの巧妙なところである。
なお、ビットコインの仕組みにおけるノードの管理者がゲームに勝利してビットコインを得るという現象は、取引がある程度進んだ後の例えば、表3以降の時点であってでも生じうる。
上述のように、ビットコインの仕組みにおいては、ビットコインの仕組みに参加する各参加者は、自分が所有するビットコインに相当するデータを持たない。つまり、各参加者の財布は空なのであるが、過去のすべての取引記録が閲覧可能に存在しており、且つその時点におけるビットコインの残高は閲覧記録からこのように特定されるのであるから、各参加者が持つビットコインはきっとこうであるはずである、というお互いの理解、或いは共同幻想によってその仕組が成り立っている。
それだけに、その共同幻想を参加者の皆が信じられるようにするためには、取引記録が正当である、或いは取引記録の改竄が不可能である、という保証が必要である。それを可能とするための技術の一つがブロックチェーンである。
ビットコインの技術では、取引記録の正当性を、ブロックチェーンと、プルーフ・オブ・ワークいう技術乃至思想によって担保している。
ビットコインの取引記録は、それ以前の取引記録に新たな取引記録を連ねていく、という構造となっている。過去の取引記録に新たな取引記録のデータ(ブロック)を連続して連ねていくことにより、取引記録のデータは、ブロックを鎖のように連ねたものとなる。これがブロックチェーンと呼ばれる。ブロックチェーンに付加される新たなブロックが生成される場合、それ直前のブロックを暗号化することによって得られた値(正確には、1つ手前のブロックのデータから作ったハッシュ値)が新たなブロックに付加される。それにより、ブロックチェーンに新たなブロックが付加された時点よりも後においては、過去のブロックに対して改竄を行うとハッシュ値に変化が生じてその改竄が発覚することとなるので、それ以前に作られた過去のブロックに対するデータの改竄を行うことが事実上不可能となる。
また、ブロックチェーンのデータは、インターネット上に多数存在する、ノードと呼ばれるサーバに記録される。各ノードに記録されるブロックチェーンのデータは同じものである。これを、ブロックチェーンでは、データの分散管理等と称する。ところで、ブロックチェーン以外の技術において、データの分散管理という場合には一般に、あるデータ(例えば1~100のデータ)が存在する場合に、その1~10のデータをX装置に記録させ、11~70のデータをY装置に記録させ、71~100のデータをZ装置に記録させ、というように多数の装置にそれぞれ異なるデータ(全データの一部ずつ)を持たせる技術を意味する。なぜかブロックチェーンの技術分野では、同一のデータを多数のノードに記録させることを、分散管理と称しているが、ブロックチェーンで多数のノードが行っているのは単なるミラーリングの処理である。
さて、ビットコインの技術においては、上述のように多数のノードにそれぞれ記録された多数のブロックチェーンが存在する。多数のブロックチェーンは、原則として、それらがすべて同一であるということが保証されなければ、取引記録の真正性について疑義が生じ、ビットコインの信頼性を大きく揺らがせる。
したがって、既に存在するブロックチェーンの末尾に新たなブロックを追加する際に、多数のノードの管理者がそれを各々勝手に行うようなことは避けないとならない。ブロックチェーンの末尾に新たなブロックを追加する者を1人に限定するための方策として利用されているのが、ノードの管理者が参加する上述のゲームである。このゲームを利用した仕組みを、ビットコインの世界では、プルーフ・オブ・ワークと呼ぶ。上述したように、ノードの管理者は、ある種のゲームに参加して、それに勝利した場合にビットコインを手に入れることができるが、それのみならず、ゲームに勝利した場合には、新たな取引記録のブロックを過去の取引記録に対して付加する権利を手に入れる。ゲームに敗れた他のノードの管理者は、その新たな取引記録のブロックを、自らが管理するノードに記録されたブロックチェーンの末尾にコピーして追加する。このようにして、ノードに新たなブロックを追加できる者を1人のみに限定し、且つ新たなブロックと同じブロックをすべてのノードの管理者がブロックチェーンの末尾に追加するというルールを作り、そのルールを正しく運用することにより、多数のノードに存在する多数のブロックチェーンは同じものであるといえる状態を作っている。
以上のような仕組みにより、各ノードに記録されたブロックチェーンは、ハッシュ値により改竄ができない、或いは改竄がなされた場合にはハッシュ値が変化するため、改竄がなされたことが発覚するようになっている。これは言ってみれば、ある1つのブロックチェーンに着目した場合に、各ブロックのデータを改竄できないということである。
また、各ノードに記録されたブロックチェーンのうちの幾つかが、過去のブロックのデータの改竄が発覚しないようにハッシュ値も含めて同じように改竄されたとしても(例えば、多数のノードに記録されたブロックチェーンのうちの幾つかについて、同じ改竄がなされたとしても)、多数のノードに記録されたブロックチェーンのうちの改竄されていないものの方が多数を占めているのであればそちらを真とすることにより、過去のブロックのデータのハッシュ値も含めた改竄も無力となるようにすることができる。実際ビットコインのブロックチェーンではこのような多数決の理論を採用している。これにより、ビットコインにおけるブロックチェーンは、中央集権的なブロックチェーンの管理者が存在しなくとも、その正当性が保証されると言われている。上述のようにノードの管理者は、ゲームに勝つことにより報酬としてビットコインを得ることができる(実際には、それ以外の報酬もある。)。それをモチベーションとしてノードの管理者達は、自らのコンピュータのコンピューティングパワーを向上させる。悪意のある第三者がノードに記録されたブロックチェーンのうちの過半数を改竄するには、ノードの管理者達が持つ多数のコンピュータのコンピューティングパワーの合計の少なくとも半分以上のコンピューティングパワーを持つコンピュータを用意することが必要となる。既にノードの数(正確に言うと、ノードを構成するサーバの数)は、一説によると1千万台を超えていると言われており、それが持つコンピューティングパワーを持つコンピュータを用意することは事実上不可能であるという前提を、ビットコインの仕組みに参加する者は信用している。かかる信用、或いは信頼関係により、ブロックチェーンの、ひいては取引記録の正当性が保証され、ビットコインにある種の信用が与えられている。
ビットコイン、及びそれに応用されているブロックチェーンの仕組みは大凡以上のようなものである。
上述の如き仕組みにより、各ブロックチェーンのそれぞれは改竄が防止され、また、多数のブロックチェーンのうちの幾つかに改竄が行われたとしても、その改竄は無視され、正当なブロックチェーンが正当なものであると正しく扱われるようになっている。一言で言えば、ブロックチェーンは、記録されたデータを改竄不可能に保全するための技術である、といえる。
しかしながら、改竄不可能にして記録されたデータを保全するという目的だけのために、多数のノードに、同じデータを記録し続けるというのは膨大な無駄であり、敢えて強い言葉を用いるのであれば馬鹿げている。ビットコインのブロックチェーンの各ノードに記録されているブロックチェーンのデータ量は、昨年の段階で既に90TBを超えているとも言われ、ビットコインの取引量が増えるに連れて、益々膨大なものとなっている。ブロックチェーンは、中央集権的な管理者のいない民主的な技術であると言われることが多いが、かかる無駄は、その利点をも霞ませる程の欠点であると言える。
また、ブロックチェーンの技術はコストが安いと言われることが多いが、それはブロックチェーンのノードの管理者が自発的に負うコストを度外視した場合にのみ成立する利点であって、多数のノードのそれぞれが膨大な同一のデータを記録し続けなければならないのであれば、そのコストが安いわけが無い。
ビットコインのノードの管理者には、ノードを準備するだけの費用と技術力を有するものであれば、誰でもなろうと思えばなれる。そのような開かれたブロックチェーンであるパブリックブロックチェーンに対し、より少数のある一定の立場の者のみがノードの管理者になれる外部に対して閉ざされたプライベートブロックチェーンなるものも最近提案されてはいる。
しかしながら、ある立場の者同士が互いに信頼関係を結べているのであれば、多数のノードを用いること自体が無駄である場合もあるであろうし、プライベートブロックチェーンの場合であれば、ノードを立てまた維持する費用はその管理者達に直接掛かってくるのであるから、そのコスト負担は自ずから大きくなる。そう考えると、プライベートブロックチェーンという技術はそもそも何を利点とする技術か、ということにすら疑問が生じる。
本願発明は、記録されたデータを改竄不可能に保全するための技術であって、その運用のコストがブロックチェーンよりも低い技術を提供することをその課題とする。
かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
本願発明は、所定のネットワークを介して互いに通信可能であるとともに、それらがそれぞれ他とは異なる方法で所定のデータを復号化可能に暗号化することができるようになっている暗号化部を備えており、且つそれらのユーザが共に保全することを希望するデータである対象データをそれらのうちの一つが保有している複数の通信装置にて実行される方法である。
かかる方法は、複数の前記通信装置のすべてが、前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部によって次々に暗号化する暗号化過程、及び複数の前記通信装置のすべてが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより共有する共有過程、を含んでいる、
かかる方法は、極めて簡単である。かかる発明を実行する場合における最小の構成は、ネットワークを介して互いに通信可能な2つの通信装置のみである。ただし、それら2つの通信装置は、データの暗号化を復号化可能に実行することのできる暗号化部を備えていることが必要となる。ここで、2つの通信装置にそれぞれ存在する暗号化部は、それぞれ異なる方法で(例えば、異なるアルゴリズムで、或いは異なる鍵で)暗号化を行えるようになっている。
2つの通信装置で本願発明の方法が実行される場合、保全の対象となるデータは、2つの通信装置のユーザがそれぞれ保全することを希望するデータである対象データである。単独のユーザが自己が持つ何らかのデータを記録して保全する場合には、各々のユーザが独自にそのデータを記録し、自らが変更しなければ良い。他方、上述のビットコインのブロックチェーンにおいては典型的であるが、記録した上で改竄がなされない状態で保全されなければならないデータというのは、多くの場合、仮に改竄がされた場合に複数のユーザの間で利害が対立するデータである。ビットコインの取引記録でいえば、ビットコインの譲渡人は、渡したビットコインの数がなるべく小さかったと取引記録を改竄したいというのが本音であろうし、ビットコインの譲受人は渡されたビットコインの数がなるべく大きかったと取引記録を改ざんしたいというのが本音であろう。そのような複数のユーザの間で利害の対立する事柄についてのデータが、本願発明における対象データの典型例となる。
2つの通信装置で本願発明の方法が実行される場合、1つの対象データが2つの通信装置の暗号化部で次々に暗号化される。この場合、どちらの通信装置の暗号化部が先に対象データの暗号化を行うかは不問である。対象データを2つの通信装置の片方のみが持っているのであれば、対象データを持っている通信装置の暗号化部で先に対象データを暗号化するのが普通であろうが、対象データを持っていた一方の通信装置から対象データを持っていなかった他方の通信装置に対象データをまず送信し、それを受取った他方の通信装置の暗号化部で先に対象データの暗号化を行うことも可能である。いずれにせよ、その暗号化部で対象データを先に暗号化した通信装置は、もう1つの通信装置に暗号化された対象データを送信し、それを受取った通信装置は、暗号化された対象データをその暗号化部で更に暗号化する。2つの通信装置の暗号化部で順に暗号化されることにより生成されたデータは、2つの通信装置の暗号化部で行われる暗号化の方法が異なることから、第三者が復号することができなくなるばかりか、2つの通信装置のいずれでももはや復号化することができなくなる。とはいえ、2つの通信装置のユーザが後に対象データの内容を確認したいと考えた場合には、2つの通信装置の例えば暗号化部により(もちろん2つの通信装置の暗号化部は暗号化に特化しており、それとは別にその通信装置の暗号化部で暗号化されたデータを復号化する復号化部を備えていても構わない。)、2つの暗号化部によって暗号化された対象データを順に(一般的には、暗号化を行った順番とは逆の順番で)復号化することにより、元の平文の対象データに戻すことができる。つまり、2つの通信装置の協力によって作られた、対象データを2つの通信装置の暗号化部で順に暗号化することにより生成されたデータは、2つの通信装置或いはそれらのユーザが協力すればいつでも平文の対象データに戻せる一方で、改竄が行われたときには平文の対象データに戻せないことにより改竄が行われたという事実が明らかになるから、事実上改竄ができない。
2つの通信装置で本願発明が実行される場合、少なくともそれら2つの装置が、対象データを2つの通信装置の暗号化部で順に暗号化することにより生成されたデータをその一方から他方に送信することで共有する。それにより、ブロックチェーンを用いることなく、データを改竄不能な状態で記録することが可能となる。もちろん、2つの通信装置のみで実行できるこの方法に必要なコストはブロックチェーンを実現する場合に比べて遥かに低廉である。また、特にビットコインで使用されているブロックチェーンは、新たなブロックを生成して新たなデータを記録するために必要とされる時間が長い(例えば10分程度)が、本願発明ではそれに比較してその実行に要する時間が一般に短い。
以上では、通信装置が2つであることとして説明したが、本願発明における通信装置は3つ以上でも良い。つまり、本願発明における通信装置は、複数である。この場合の対象データは、それら複数の通信装置のユーザが共に保全することを希望するデータである。それら複数の通信装置は上述した如き暗号化部を備えており、且つそれら暗号化部は互いに異なる方法で何らかのデータの暗号化を行える。対象データは、通信装置が2つの場合と同様に、それら複数の通信装置がそれぞれ持つ暗号化部のすべてで次々に暗号化される。そして、すべての通信装置の暗号化部でそれぞれ暗号化された対象データは、すべての通信装置で共有される。これにより、複数の通信装置は、ブロックチェーンを用いることなく、データを改竄不能な状態で記録することが可能となる。もちろんこの処理に要する時間は、通信装置の数が増えればその分長くなるが、ブロックチェーンでデータを記録するのに要する時間よりは一般に短い。
上述のように、本願発明による方法は、複数の通信装置のユーザが共に保全することを希望するデータである対象データを、それら複数の通信装置の暗号化部で、次々に暗号化する暗号化過程を含んでいる。他方、本願発明による方法における暗号化過程で、対象データを次々に暗号化するのは、対象データを保全することを希望するユーザの通信装置のみに限られない。
本願発明の方法における前記暗号化過程では、所定のネットワークを介して互いに通信可能であり、それらがそれぞれ他とは異なる方法で、且つ複数の前記通信装置の前記暗号化部とも異なる方法で所定のデータを復号化可能に暗号化することができるようになっている補助暗号化部を有している1つ以上の補助通信装置のすべてと、複数の前記通信装置のすべてとが、前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とによって次々に暗号化してもよい。
補助暗号化部を有する補助通信装置のユーザは、対象データの内容に対して典型的には利害関係を持つ当事者としてのユーザとは異なり、対象データの内容に対してまったく無関係なものであっても良い。通信装置と補助通信装置とは、そのハードウェア、ソフトウェア、機能等についてはまったく同一のものであっても構わないが、通信装置以外の補助通信装置にも暗号化過程における対象データの暗号化に参加してもらうことによって、最終的に得られる多重に暗号化された対象データはますます、安全に保全されることとなる。補助通信装置は、1つでも複数でも良い。また、例えば、補助通信装置は、公証人的な法的に公正さが認められた者の通信装置とすることができる。通信装置の暗号化部と、補助通信装置の補助暗号化部とがどのような順番で対象データを暗号化するかは自由である。なお、この場合、最終的に得られた多重に暗号化された対象データは、暗号化過程に参加したすべての通信装置と、すべての補助通信装置との協働によって復号化することができる。
暗号化過程に補助通信装置が参加する場合、最終的に得られる多重に暗号化された対象データは上述したように、通信装置のみが共有しても良い。また、通信装置のみならず、補助通信装置もが、最終的に得られる多重に暗号化された対象データを共有しても良い。例えば、前記共有過程では、複数の前記通信装置のすべてと、前記補助通信装置の少なくとも1つとが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより共有してもよい。
本願発明の方法は、暗号化過程に補助通信装置が参加しない場合には、前記複数の前記通信装置の1つが、前記ネットワークに接続されている、データの記録が可能な記録装置に、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを送信して、前記記録装置に複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを記録させる記録過程を含んでいても良い。
暗号化過程に補助通信装置が参加しない場合には、上述したように多重に暗号化された対象データをすべての通信装置で共有するのが原則である。これによれば、各通信装置で記録されている多重に暗号化された対象データは、改竄できない、或いは改竄されたらそれが判明する状態となる。とはいえ、各通信装置で記録されている多重に暗号化された対象データは、例えば消去されたり紛失したりする可能性がある。そのようなことに備えて、多重に暗号化された対象データは、通信装置から外部の記録装置に送られ、そこで記録されていればいわゆるバックアップが存在するため安心である。記録装置は複数存在していてもよく、複数の記録装置に多重に暗号化された対象データが記録されることとすれば、かかるデータの改竄が益々難しくなる。これは、ビットコインのシステムにおけるブロックチェーンでノードを多数準備し、多数のノードに同一のブロックチェーンを記録することと類似するが、ブロックチェーンの仕組みでは、ノードの数の多さがブロックチェーンの真正さを証明するというシステムになっておりノードは増殖していく宿命にあったことに鑑みれば、本願発明で必要な記録装置の数などたかが知れている。記録装置が複数存在する場合、時間の経過とともに、各記録装置には、多重に暗号化された対象データがそれぞれ複数(或いは多数)記録されることになろうが、その場合において、各記録装置に記録されている多重に暗号化された対象データは同じものである必要はない。例えば、ある時点までに生成された多重に暗号化された対象データが1~100までの100個であり、且つ記録装置が記録装置1~5の4つであったとすると、記録装置1には、多重に暗号化された対象データの1~100までが、記録装置2には多重に暗号化された対象データの1~50が、記録装置3には、多重に暗号化された対象データの40~90が、記録装置4には、多重に暗号化された対象データの偶数番目のものが、記録装置5には、多重に暗号化された対象データの奇数番目のものが、それぞれ記録されている、というような状態が許容され得る。従来のブロックチェーンにおいては、原則としてすべてのノードにブロックチェーンのデータのすべてが記録されることが必要とされており、それがノードに記録されるデータの量が膨大となることに拍車をかけていたが、本願発明の方法によれば、そのようは弊害は生じにくい。
記録過程により記録装置に、複数の通信装置の暗号化部のすべてで暗号化された対象データを記録することができるが、暗号化されたその対象データに加えて、その対象データの元となった対象データ(平文である)を、記録装置が記録するようになっていても良い。このようにすれば、暗号化された対象データの内容を、暗号化された対象データを復号化することなく確認することができるようになる。これは、ビットコインのブロックチェーンのように、記録されたデータ(取引記録等)を公開する場合に有用である。対象データそれ自体は改竄が可能であろうが、そのような改竄があったときには暗号化された対象データを復号化したときに、改竄された対象データと、暗号化されていた対象データを復号化して得られた対象データとが一致しなくなるから、その改竄が発覚する。例えば、前記記録過程で前記通信装置が、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録するようになっていてもよい。
前記記録過程で前記記録装置に記録されている複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態とすることも可能である。そうすることで、多重に暗号化された対象データが第三者による監視下に置かれることになり、かかるデータの改竄の可能性がより小さくなる。この場合、記録装置に暗号化された対象データと、その元になった平文の対象データとが記録されるのであれば、それらの双方を公開された状態とすることも可能である。
以上の事情は、暗号化過程に補助通信装置が参加する場合でも同様である。
本願発明の方法は、暗号化過程に補助通信装置が参加する場合には、前記複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを持つものが、前記ネットワークに接続されている、データの記録が可能な記録装置に、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを送信して、前記記録装置に前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを記録させる記録過程を含んでもよい。また、前記記録過程で前記通信装置又は前記補助通信装置が、複数の前記通信装置及び前記補助通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録してもよい。この場合、記録装置に暗号化された対象データと、その元になった平文の対象データとが記録されるのであれば、それらの一方或いは双方を公開された状態とすることも可能である。
この場合、前記記録過程で前記記録装置に記録されている前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態としてもよい。
もっとも、記録装置に記録される暗号化された対象データ、又は暗号化された対象データ及び対象データは、従来のブロックチェーンの如く、ブロックに含まれた状態とされてもよい。そのようにすることで、記録装置に記録された暗号化された対象データが改竄されること、或いは消去されることを防止すること、或いは改竄、消去されたことが発覚するようにすることが可能となる。
例えば、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。この場合、新たなブロックは、通信装置で生成される。なお、以下も同様であるが、演算値は例えば、直前のブロックに対してハッシュ演算を行うことによって得られたハッシュ値であってもよい。補助通信装置が存在する場合も同様であり、補助通信装置が存在する場合には、複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。この場合、新たなブロックは、通信装置或いは補助通信装置で生成される。
他方、新たなブロックは、記録装置において生成されてもよい。例えば、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置が、前記通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。補助通信装置が存在する場合には、複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置が、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。記録装置で新たなブロックが生成される場合においては、1つの前記ブロックに含まれる前記暗号化対象データは1つ以上であり、前記記録過程で前記記録装置は、前記通信装置から1つ以上の前記暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った1つ以上の前記暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。このようにすることで、1つのブロックに複数の暗号化対象データを含めることが可能となる。
この場合、ブロックには、暗号化対象データのみならず、暗号化対象データの元になった対象データも含まれるようにすることができる。例えば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データと、前記暗号化対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。補助通信装置が存在するのであれば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データと、その元となった前記暗号化対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。
ブロックは、上述のように通信装置或いは補助通信装置で生成されても良いが、記録装置で生成されても良い。例えば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、前記記録過程で前記記録装置は、前記通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。補助通信装置が存在するのであれば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、前記記録過程で前記記録装置は、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。
暗号化対象データ、及び対象データは、それらがブロックに含まれた状態で記録装置に記録されているか否かによらず、前記ネットワークに接続されている機器に対して公開された状態とすることができる。
本願発明による方法を、より具体化して記述すると以下のようなものとなる。かかる方法は、以上で説明した発明のうち、2つの通信装置によって実行されるものに相当する。以下の説明における第1通信装置と、第2通信装置とが、以上で説明した発明における2つの通信装置に相当する。第1通信装置と第2通信装置とは本来区別する必要はないが、2つの通信装置のうち、最初に対象データの暗号化を行うものを便宜上第1通信装置と称することにしている。
この場合による本願発明は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、所定のデータを前記第1暗号化部と異なる方法で復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにて実行される方法である。
そして、この方法は、前記第1通信装置が、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを、前記第1暗号化部で暗号化して第1暗号化対象データを生成する第1暗号化過程、前記第1通信装置が、前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信過程、前記第2通信装置が、前記第1通信装置から前記第1暗号化対象データを前記ネットワークを介して受取る第1受信過程、前記第2通信装置が、前記第1暗号化対象データを、前記第2暗号化部で暗号化して第2第1暗号化対象データを生成する第2暗号化過程、前記第2通信装置が、前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信する第2送信過程、前記第1通信装置が、前記第2通信装置から前記第2第1暗号化対象データを前記ネットワークを介して受取る第2受信過程、を含む。
かかる発明による効果は、上述した方法による効果と同じである。
なお、対象データを暗号化したものが暗号化対象データであり、第1通信装置のみで暗号化された対象データが第1暗号化対象データである。その後第1暗号化対象データを第2通信装置で更に暗号化したものを第2第1暗号化対象データと称する。用語の使い方は、以後も同様である。
第1通信装置と第2通信装置とを含む通信システムで実行される方法についての上記発明は、以下のように、第1通信装置で実行される方法、或いは、第2通信装置で実行される方法として把握することも可能である。第1通信装置で実行される方法、及び第2通信装置で実行される方法の発明の効果は、第1通信装置と第2通信装置とを含む通信システムで実行される方法による効果と同じである。
一例となる第1通信装置で実行される方法は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、所定のデータを前記第1暗号化部と異なる方法で復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける前記第1通信装置にて実行される方法である。
そしてこの方法は、前記第1通信装置が実行する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して第1暗号化対象データを生成する第1暗号化過程、前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信過程、前記第2通信装置が、前記第1通信装置から前記ネットワークを介して受取った前記第1暗号化対象データを、前記第2暗号化部で暗号化して生成された第2第1暗号化対象データを、前記ネットワークを介して前記第2通信装置から受取る第2受信過程、を含む。
第1通信装置で実行される方法では、前記第1通信装置が、前記第1暗号化過程と、前記第1送信過程と、前記第2受信過程とを、自動的に実行しても良い。例えば、第1通信装置のユーザが、第2通信装置を選択する或いは特定して処理開始のための何らかの操作内容を第1通信装置に入力した後に、第1通信装置が、第1暗号化過程と、第1送信過程と、第2受信過程とを、自動的に実行するようにすることができる。この効果は既に述べた通りである。
第1通信装置で実行される方法は、前記第1通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第2第1暗号化対象データを送信して、前記記録装置に前記第2第1暗号化対象データを記録させる過程を含んでいてもよい。この効果は既に述べた通りである。
前記第1通信装置が、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記第2第1暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録してもよい。記録装置に記録される暗号化対象データは、上述したが如きブロックに含まれていても良い。例えば、前記第2第1暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記第1通信装置は、送信の対象となる前記第2第1暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。ブロックには、第2第1暗号化対象データのみならず、その元になった対象データも含まれていてもよい。例えば、前記ブロックには、前記第2第1暗号化対象データと、当該第2第1暗号化データの元となった前記対象データと、前記演算値とが含まれており、前記第1通信装置は、送信の対象となる前記第2第1暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。また、前記第2第1暗号化対象データが、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっている場合であって、第1通信装置が第2第1暗号化対象化データを記録装置に送信する場合には、記録装置がそれに続けて、前記第1通信装置から受取った前記第2第1暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、方法を実行しても良い。この場合、1つの前記ブロックに含まれる前記第2第1暗号化対象データは1つ以上であり、前記記録装置は、前記第1通信装置から1つ以上の前記第2第1暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った1つ以上の前記第2第1暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。また、前記第2第1暗号化対象データと、当該第2第1暗号化データの元となった前記対象データとが、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっている場合であって、第1通信装置が第2第1暗号化対象化データ及びその元になった対象データを記録装置に送信する場合には、前記記録装置がそれに続けて、前記第1通信装置から受取った前記第2第1暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。これらの効果は、既に述べた通りである。
一例となる第2通信装置で実行される方法は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、所定のデータを前記第1暗号化部と異なる方法で復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける前記第2通信装置にて実行される方法である。
そしてこの方法は、前記第2通信装置が実行する、前記第1通信装置が、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して生成された第1暗号化対象データを、前記第1通信装置から前記ネットワークを介して受取る第1受信過程、前記第1暗号化対象データを、前記第2暗号化部で暗号化して第2第1暗号化対象データを生成する第2暗号化過程、前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信する第2送信過程、を含む。
第2通信装置で実行される方法では、前記第2通信装置が、前記第1受信過程と、前記第2暗号化過程と、前記第2送信過程とを、自動的に実行しても良い。例えば、第1通信装置のユーザが、第2通信装置を選択する或いは特定して処理開始のための何らかの操作内容を第1通信装置に入力した後に、第2通信装置が、第1受信過程と、第2暗号化過程と、第2送信過程とを、自動的に実行するようにすることができる。この効果は既に述べた通りである。
第2通信装置で実行される方法は、前記第2通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第2第1暗号化対象データを送信して、前記記録装置に前記第2第1暗号化対象データを記録させる過程を含んでいてもよい。この効果は既に述べた通りである。
前記第2通信装置が、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記第2第1暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録してもよい。記録装置に記録される暗号化対象データは、上述したが如きブロックに含まれていても良い。例えば、前記第2第1暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記第2通信装置は、送信の対象となる前記第2第1暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。ブロックには、第2第1暗号化対象データのみならず、その元になった対象データも含まれていてもよい。例えば、前記ブロックには、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、前記第2通信装置は、送信の対象となる前記第2第1暗号化対象データと、その元となった対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。
また、前記第2第1暗号化対象データが、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっている場合であって、第2通信装置が第2第1暗号化対象化データを記録装置に送信した場合に、前記記録装置がそれに続けて、前記第2通信装置から受取った前記第2第1暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、方法を実行しても良い。前記ブロックには、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データと、前記演算値とが、前記第2第1暗号化対象データ及び前記対象データとを互いに紐付けられた状態で含まれるようになっている場合には、前記記録装置は、前記第2通信装置から受取った前記第2第1暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。記録装置でブロックを生成するこれら2つの場合、1つの前記ブロックに含まれる前記第2第1暗号化対象データは1つ以上であり、前記記録装置は、前記第2通信装置から1つ以上の前記第2第1暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った1つ以上の前記第2第1暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。これらの効果は、既に述べた通りである。
本願発明者は、第1通信装置をも本願発明の一態様として提案する。その効果は、第1通信装置で実行される方法による効果と等しい。それは例えば、以下のようなものである。
第1通信装置は、所定のネットワークを介して互いに通信可能である、第1通信装置と、所定のデータを復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける第1通信装置である。
第1通信装置は、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第2暗号化部と異なる方法で暗号化して第1暗号化対象データを生成する第1暗号化部と、前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信部と、前記第2通信装置が、前記第1通信装置から前記ネットワークを介して受取った前記第1暗号化対象データを、前記第2暗号化部で暗号化して生成された第2第1暗号化対象データを、前記ネットワークを介して前記第2通信装置から受取る第1受信部と、を含む。
本願発明者は、第1通信装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、所定のネットワークを介して互いに通信可能である、第1通信装置と、所定のデータを復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける第1通信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータを、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第2暗号化部と異なる方法で暗号化して第1暗号化対象データを生成する第1暗号化部と、前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信部と、前記第2通信装置が、前記第1通信装置から前記ネットワークを介して受取った前記第1暗号化対象データを、前記第2暗号化部で暗号化して生成された第2第1暗号化対象データを、前記ネットワークを介して前記第2通信装置から受取る第1受信部と、して機能させるためのコンピュータプログラムである。
本願発明者は、第2通信装置をも本願発明の一態様として提案する。その効果は、第2通信装置で実行される方法による効果と等しい。それは例えば、以下のようなものである。
第2通信装置は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、第2通信装置と、を含んでなる通信システムにおける第2通信装置である。
第2通信装置は、前記第1通信装置が、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して生成された第1暗号化対象データを、前記第1通信装置から前記ネットワークを介して受取る第2受信部と、前記第1暗号化対象データを前記第1暗号化部と異なる方法で暗号化して第2第1暗号化対象データを生成する第2暗号化部と、前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信する第2送信部と、を含む。
本願発明者は、第2通信装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、第2通信装置と、を含んでなる通信システムにおける第2通信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータを、前記第1通信装置が、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して生成された第1暗号化対象データを、前記第1通信装置から前記ネットワークを介して第2受信部と、前記第1暗号化対象データを前記第1暗号化部と異なる方法で暗号化して第2第1暗号化対象データを生成する第2暗号化部と、前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信する第2送信部と、して機能させるためのコンピュータプログラムである。
第1実施形態による通信システムの全体構成を概略的に示す図。 図1に示した通信システムにおけるユーザ端末の外観を示す斜視図。 図1に示した通信システムにおけるユーザ端末のハードウェア構成を示す図。 図1に示した通信システムにおけるユーザ端末の内部に生成される機能ブロックを示すブロック図。 図1に示した通信システムで実行される処理の流れを示す図。 図2に示したユーザ端末のディスプレイに表示される画像の一例を示す図。 第2実施形態による通信システムの全体構成を概略的に示す図。 第2実施形態におけるユーザ端末のディスプレイに表示される画像の一例を示す図。 変形例1の通信システムにおける記録装置の内部に生成される機能ブロックを示すブロック図。 変形例1の通信システムにおける記録装置の記録部に記録されるブロックに含まれるデータを概念的に示す図。 変形例2の通信システムにおけるユーザ端末の内部に生成される機能ブロックを示すブロック図。
以下、本発明の第1、第2実施形態について説明する。各実施形態、変形例の説明で同じ対象には同一の符号を付すものとし、重複する説明は場合により省略するものとする。また、特に矛盾なき場合、各実施形態及び変形例は、他の実施形態及び変形例とも組合せることができる。
≪第1実施形態≫
図1に、第1実施形態による通信システムの全体構成を概略で示す。
通信システムは、複数の、通常は多数のユーザ端末100-1~100-N(以後、単に、「ユーザ端末100」と記載する場合もある。)を含んで構成されている。これらはすべて、ネットワーク400に接続可能とされている。
ネットワーク400は、これには限られないが、この実施形態ではインターネットである。
ユーザ端末100は、広く言えば本願発明の通信装置(或いは、第1通信装置、及び第2通信装置)の一例である。
また、かかる通信システムには、必須ではないが、ネットワーク400に接続された記録装置300が含まれている。記録装置300は、複数である場合が多く、場合によっては多数である。
通常、ユーザ端末100は各ユーザの所有物である。ユーザ端末100は、コンピュータを含んでいる。ユーザ端末100は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。これらはいずれも汎用のもので良い。スマートフォンは例えば、Apple Japan合同会社が製造、販売を行うiPhoneである。タブレットの例はApple Japan合同会社が製造、販売を行うiPadである。以下、これには限られないが、ユーザ端末がスマートフォンであることとして話を進める。
ユーザ端末100は少なくとも、互いにネットワーク400を介しての通信が可能なことと、後述するようなデータの暗号化、及び復号化の処理を行えることが必要とされる。この実施形態におけるユーザ端末100はスマートフォンであるから、当然に、他のユーザ端末100と、ネットワーク400を介しての通信が可能である。また、データの暗号化と復号化の機能は、後述するように、コンピュータプログラムにより獲得可能である。
次に、ユーザ端末100の構成を説明する。各ユーザ端末100-1~100-Nの構成は、本願発明との関連でいえば同じである。
ユーザ端末100の外観の一例を図2に示す。
ユーザ端末100は、ディスプレイ101を備えている。ディスプレイ101は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ101は例えば、液晶ディスプレイである。ユーザ端末100は、また入力装置102を備えている。入力装置102は、ユーザが所望の入力をユーザ端末100に対して行うためのものである。入力装置102は、公知或いは周知のものを用いることができる。この実施形態におけるユーザ端末100の入力装置102はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。ユーザ端末100が例えば、ノート型パソコン、デスクトップ型パソコンなのであれば、その入力装置102は、キーボード、トラックボール、マウス等となるであろう。また、ディスプレイ101がタッチパネルである場合、ディスプレイ101は入力装置102の機能を兼ねることになり、この実施形態ではそうされている。
入力装置102から入力されるデータは、いずれもその詳細を追って説明するが、例えば、選択情報、開始情報である。
ユーザ端末100のハードウェア構成を、図3に示す。
ハードウェアには、CPU(central processing unit)111、ROM(read only memory)112、RAM(random access memory)113、インターフェイス114が含まれており、これらはバス116によって相互に接続されている。
CPU111は、演算を行う演算装置である。CPU111は、例えば、ROM112に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。なお、ここでいうコンピュータプログラムには、本願発明の通信装置(或いは、第1通信装置、及び第2通信装置)としてこのユーザ端末100を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、ユーザ端末100にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのユーザ端末100へのインストールは、メモリカード等の図示を省略の所定の記録媒体を介して行なわれても良いし、インターネットなどのネットワークを介して行なわれても構わない。
ROM112は、CPU111が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ROM112に記録されたコンピュータプログラムは、これに限られず、ユーザ端末100がスマートフォンであれば、ユーザ端末100をスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。ユーザ端末100は、また、ネットワーク400を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のwebブラウザを実装している。
RAM113は、CPU111が処理を行うために必要なワーク領域を提供する。
インターフェイス114は、バス116で接続されたCPU111やRAM113等と外部との間でデータのやり取りを行うものである。インターフェイス114には、上述のディスプレイ101と、入力装置102とが接続されている。入力装置102から入力された操作内容は、インターフェイス114からバス116に入力されるようになっているとともに、後述する画像データは、インターフェイス114から、ディスプレイ101に出力されるようになっている。インターフェイス114は、また、図示を省略する送受信部に接続されている。
送受信部は、インターネットであるネットワーク400を介してのデータの送受信を行うものである。かかる通信は、有線で行われる場合もあるが、ユーザ端末100がスマートフォンである場合には、かかる通信は通常無線で行われる。それが可能な限り、送受信部の構成は、公知或いは周知のものとすることができる。送受信部がネットワーク400から受取ったデータは、インターフェイス114により受取られるようになっており、インターフェイス114から送受信部に渡されたデータは、送受信部によって、ネットワーク400を介して外部、例えば、他のユーザ端末100に送られるようになっている。送受信部からネットワーク400を介して他の装置に送られることのあるデータは、後述する対象データ又は暗号化された対象データであり、送受信部がネットワーク400を介して他の装置から受取ることのあるデータも同様である。
CPU111がコンピュータプログラムを実行することにより、ユーザ端末100内部には、図4で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、ユーザ端末100を本願発明の通信装置(或いは、第1通信装置、及び第2通信装置)として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、ユーザ端末100にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ端末100内には、本願発明の機能との関係で、以下のような制御部120が生成される。制御部120には、主制御部121、データ入出力部122、第1記録部123、暗号化部124が存在する。
制御部120は、以下に説明するような情報処理を実行する。
主制御部121は、制御部120内の全体的な制御を行う。例えば、主制御部121は、データ入出力部122から、後述する選択情報と開始情報とを受付ける場合がある。選択情報は、この主制御部121を有するユーザ端末100を含む幾つかのユーザ端末100の間で、共有して記録し保全する対象となるデータである対象データを選択するとともに、対象データを共有して記録し保全するユーザ端末100を特定する情報である。選択情報を受付けた場合、主制御部121は、第1記録部123から、選択情報で選択された対象データを読み出すようになっている。また、開始情報を受付けた場合、主制御部121は、後述する暗号化過程を開始するための後述する処理を実行するようになっている。
主制御部121は、また、対象データを第1記録部123から読み出した場合に、暗号化部124に、その対象データを送る場合がある。また、主制御部121は、対象データ又は暗号化された対象データをデータ入出力部122から受取る場合がある。これらを受取った場合、主制御部121はそのデータを暗号化部124か、又は第1記録部123に送るようになっている。
なお、各ユーザ端末100の主制御部121には、各ユーザ端末100にユニークなユーザIDが記録されている。ユーザIDを用いることにより、各ユーザ端末100を特定することができる。ユーザIDは例えば、数字、英字、記号或いはそれらを混合したものである。現実にはあまり即さないが、この実施形態では、各ユーザ端末100に割当てられた符号である、100-1~100-Nが各ユーザ端末100のユーザIDであるものとする。ユーザIDの利用の仕方については後述するものとする。
また、主制御部121は、暗号化部124から暗号化された対象データを受取る場合がある。暗号化された対象データを受取った場合、主制御部121はそれを、データ入出力部122に送るようになっている。
データ入出力部122は、制御部120へのデータの入出力を行うものである。
具体的には、データ入出力部122は、インターフェイス114を介して、上述の入力装置102から入力された、選択情報、開始情報を受付けるようになっている。それら入力装置102からのデータを受付けた場合には、データ入出力部122は、選択情報、開始情報を主制御部121に送るようになっている。
また、データ入出力部122には、主制御部121から対象データ又は暗号化された対象データが送られてくる場合がある。それらデータが送られてきた場合には、データ入出力部122は、それらをインターフェイス114を介して送受信部に送るようになっている。
また、データ入出力部122には、他の装置からネットワーク400を介して送られて来て送受信部で受け取られた対象データ又は暗号化された対象データがインターフェイス114を介して送られてくる場合がある。データ入出力部122はそれらデータを受取った場合には、主制御部121にそれらを送るようになっている。
第1記録部123は、データを記録するものである。第1記録部123に記録されることがあり得るデータは、例えば、対象データであり、或いは、対象データを暗号化した後述のデータである。第1記録部123には、後述するように他のデータ、例えば鍵のデータが記録される場合がある。
暗号化部124は、データの暗号化と復号化とを行うものである。暗号化部124が行う暗号化と復号化との方法は、常に同一、例えば、常に同じ鍵と同じアルゴリズムとを用いて行われても良いし、そうでなくても良い。例えば、暗号化部124が行う暗号化の方法は、あるデータを暗号化する処理が行われる都度異なるものとされても構わない。暗号化部124が行う暗号化の方法が変化する場合、暗号化に用いる鍵を変化させる、暗号化に用いるアルゴリズムを変化させる、暗号化に用いる鍵とアルゴリズムを変化させる、という3通りのいずれによってそれが行われても構わない。暗号化部124が行う暗号化の方法が変化するかによらず、暗号化部124がデータの復号化を行う場合には、暗号化されているデータを復号化するために必要な演算を暗号化部124が行う。
各ユーザ端末100にはそれぞれ暗号化部124が存在するが、各ユーザ端末100の暗号化部124において実行される暗号化の方法は、それぞれユニークなものとなっている。例えば、各ユーザ端末100の暗号化部124で実行される暗号化の方法が1通りで固定されている場合において、各ユーザ端末100の暗号化部124で暗号化の処理に用いられるアルゴリズムを同一とするとともに、各ユーザ端末100の暗号化部124で暗号化の処理に用いられる鍵を異なるものとすることができる。各ユーザ端末100の暗号化部124において実行される暗号化の方法がそれぞれ変化する場合において、例えば、各ユーザ端末100の暗号化部124で暗号化のために用いられるアルゴリズムが常に固定であり且つすべての暗号化部124で同一であるとともに、各ユーザ端末100の暗号化部124で暗号化のために用いられる鍵が、データの暗号化を行う度に変化するようになっている場合、仮にあるユーザ端末100と他のユーザ端末100とで、たまたま同じ鍵が用いられることがあったとしても、その確率が無視できる程度に低ければ(例えば、同じ鍵の発生確率が1万分の1以下)、各ユーザ端末100の暗号化部124において実行される暗号化の方法は、それぞれユニークなものと言えるものとする。
暗号化部124は、対象データ又は暗号化された対象データを主制御部121から受取る場合がある。それらが、多重に暗号化された対象データを生成するために主制御部121から送られたのであれば、暗号化部124は受取ったデータを更に暗号化してから、暗号化後のデータを主制御部121に戻すようになっている。暗号化部124は、暗号化された対象データを主制御部121から受取る場合がある。対象データに戻すためにそれが主制御部121から送られたのであれば、暗号化部124はそのデータに復号化の処理を行ってから、復号化後のデータを主制御部121に戻すようになっている。
次に、記録装置の構成について説明する。
記録装置300は、ネットワーク400に接続可能な一般的なデータベースであり、ハードウェア構成的には、一般的なデータベースを構築するためのコンピュータ、或いはサーバのそれと同じで構わず、特に特徴はない。記録装置300は、図示を省略するが、CPU、ROM、RAM、大容量記録媒体の一例となるHDD、インターフェイスを備えており、それらをバスで接続して構成されている。
記録装置300は、ハードウェア的に見た場合にはHDDの一部により構成される、図示を省略する機能ブロックとしての記録部を備えている。かかる記録部に、ユーザ端末100から送られて来た多重に暗号化された対象データが記録される。後述するように、多重に暗号化された対象データは、ネットワーク400に接続された他の機器(例えば、ユーザ端末100)から閲覧可能な状態で、記録部に記録されても良い。
記録装置300は一つでも良いが、通常は複数である。記録装置300はビットコインのブロックチェーンのノードの用に、自発的にこの通信システムの仕組みに参加する者が設置しても良いし、或いは通信システムの管理者的な者が設置しても良い。
以上のような通信システムの使用方法、及び動作を、主に図5を用いて説明する。
かかる通信システムでは、複数のユーザ端末100のユーザが共に保全することを希望するデータである対象データを、ユーザ端末100内に保全する。
<2つのユーザ端末100が対象データを保全する場合>
まず、対象データを保全することを希望するのが2人のユーザで、対象データを保全するのに用いられるのがそれらユーザの2つのユーザ端末100である場合について説明する。これには限られないが、ユーザ端末100-1と、ユーザ端末100-2とが、この場合の2つのユーザ端末100であるものとして以下の説明を行う。
まず、ユーザ端末100-1と、ユーザ端末100-2との少なくとも一方が、対象データを保持した状態となる。ユーザ端末100-1と、ユーザ端末100-2とのユーザが共に、そのデータを保全する(例えば、ユーザ端末100-1と、ユーザ端末100-2との内部に改竄できない状態で記録する。)ことを希望するデータというのは、典型的には、その2人のユーザの間で交わされた契約を特定する契約書のデータである。例えば、仮想通貨を、ユーザ端末100-1のユーザがユーザ端末100-2のユーザに譲渡した、言い換えればユーザ端末100-1からユーザ端末100-2に仮想通貨のデータを送信したのであれば、そのような取引記録のデータが契約書のデータとなる。もちろん、契約書のデータにより特定される契約は、ユーザ端末100間でのデータの送受信を伴う必要はなく、土地の売買の契約や、婚姻の契約等であっても構わない。また、ユーザ端末100-1と、ユーザ端末100-2との一方、例えば、ユーザ端末100-1が、ホームページの閲覧を第三者に行わせるのを目的とする公知のホームページサーバであって、何らかのプログラムをユーザ端末100-2のユーザにダウンロードを許可させるに先立って行われる、著作権に関する契約がかかる契約であっても良い。
もちろん、対象データは契約に関するものに限られるものではなく、ユーザ端末100-1と、ユーザ端末100-2のユーザが2人だけの秘密にしておきたく、且つ改竄されたくはない、正確な記録を残しておきたいというような情報を特定するデータであっても構わない。例えば、ユーザ端末100-1のユーザが医師であり、ユーザ端末100-2のユーザが患者である場合、医師が患者に与えた処方箋や、診断書のデータがそれに当たる。例えば、ユーザ端末100-1のユーザが弁護士であり、ユーザ端末100-2のユーザがその顧客である場合、弁護士が顧客に与えたアドバイスや、鑑定書のデータがそれに当たる。対象データは、少なくともその一部にコンピュータプログラムを含むものであり、所定の条件が充足されたときに、適当なコンピュータで例えば自動実行されるものであっても良い。それによれば、Ethereum(商標)等で実現されつつあるいわゆるスマートコントラクトにこの通信システムを対応させられるようになる。
もっとも、以上の対象データはすべて例示であり、複数のユーザ端末100のユーザが共に保全することを希望するデータであれば、対象データはどのようなものであっても構わない。
いずれにせよ、公知、或いは周知の方法で、対象データは生成される(S801)。対象データは、ユーザ端末100-1内で生成されてもよく、ユーザ端末100-2内で生成されてもよく、ユーザ端末100-1とユーザ端末100-2内で例えば同時に生成されてもよく、或いはユーザ端末100-1、ユーザ端末100-2外の他の装置で生成され、ユーザ端末100-1、ユーザ端末100-2にネットワーク400を介しての送信等により送られて来ても構わない。更に言えば、対象データは新たに生成されたデータではなく、例えば、ユーザ端末100-1、ユーザ端末100-2の少なくとも一方が、従前から持っていたデータであっても構わない。
その入手の過程の如何によらず、ユーザ端末100-1と、ユーザ端末100-2の一方は、対象データを持った状態となる。この実施形態では、とりあえず、ユーザ端末100-1内にのみ対象データが存在する状態となったこととする。
対象データは、例えば、ユーザ端末100-1内の第1記録部123に記録された状態となる。ここで、ユーザ端末100-1のユーザは、保全すべき対象データを特定する情報と、その対象データを共有して保全することを希望するユーザ或いはそのユーザ端末100を特定するデータを組合せたものである、選択情報の入力を行う(S802)。選択情報の入力を行う場合、例えば、ユーザ端末100-1のディスプレイ101には、図6に示したようなユーザに選択情報の入力を促すための画像が表示される。かかる画像のデータは、ユーザ端末100-1の主制御部121が生成する。かかる画像データが、主制御部121から、データ入出力部122、インターフェイス114を介して、ディスプレイ101に送られることにより、ディスプレイ101に図6に示したような画像が表示される。
選択情報の入力をユーザに促すための画像には、対象データという文字、及び対象データの入力を行うための、その文字と横並びになっている横長の矩形の枠と、共有先1~3という文字、及び共有先1~3という文字のそれぞれに対応した入力を行うための、それら文字と横並びになっている横長の矩形の枠と、マルチキャストという文字、及びマルチキャストという文字と横並びになっているYESとNOという文字がそれぞれ付されたボタンと、最も下に位置するOKという文字が付されたボタンとが含まれている。
対象データという文字の横に表示されている枠は、対象データを選択するための情報を書き込むためのものである。対象データは一般にあるデータについてのファイルであると思われるから、その場合にはユーザは、例えば、対象データのファイル名をその枠の中に書き込むことになる。かかる書き込みは、入力装置102の操作により、これを行う。
共有先1~3という文字の横に準備されている枠は、ユーザ端末100-1と共に対象データを保全するユーザ端末100を特定するための情報を書き込むためのものである。共有先1~3のそれぞれが、1つのユーザ端末100を特定するための情報に対応し、図6の例では最大3つのユーザ端末100を、ユーザ端末100-1と共に対象データを保全するユーザ端末100として指定できるようになっている。かかるユーザ端末100の指定は、例えば、ユーザIDによって行うことが可能であり、或いは各ユーザの名前やハンドルネーム、各ユーザ端末100にそれぞれ付された何らかの識別子によって行うことができる。この実施形態では、ユーザ端末100-1と共に対象データを保全するユーザ端末100は、ユーザ端末100-2の1つだけであるから、ユーザ端末100-1のユーザは、そのディスプレイ101の共有先1のみに書き込みを行う。かかる書き込みは、入力装置102の操作により、これを行う。なお、この実施形態では、共有先を書き込むための枠は、共有先1~3の3つ予め用意されているが、これはもちろんこの限りではない。例えば、かかる枠は、ディスプレイ101上に初めは1つのみ表示されており、必要に応じて入力装置102の操作によりユーザが追加できるようになっていても良いし、或いは、まず必要な枠の数の入力をユーザに行わせ、ユーザが指定した数の枠をディスプレイ101に表示するようになっていてもよい。
ここまでが、選択情報の入力に当たる。この実施形態では、必ずしも必須ではないが、選択情報に加えて、更にマルチキャストの要否についての以下の入力を行う。なお、マルチキャストの要否についての入力も選択情報の入力の一部に該当すると考えても良い。マルチキャストを常に実行する、或いは常に実行しないようにすることも可能であり、その場合には当然にマルチキャストの要否をユーザに確認する必要がないから、以下で説明する入力及びその入力をユーザに促すためのディスプレイ101上の表示を省略することができる。
マルチキャストという文字の横に位置するYESとNOという文字がそれぞれ付されたボタンは、それらのボタンのいずれかをユーザがクリックすることで、マルチキャストを行うか否かを選択するものである。ここで、「マルチキャスト」は、後述する多重に暗号化された対象データを、記録装置300に記録させる処理を意味する。かかる処理については、追って詳述するが、YESという文字が付されたボタンをユーザが選択した場合にはマルチキャストが行われ、NOという文字が付されたボタンをユーザが選択した場合にはマルチキャストが行われないことになる。かかる選択は、入力装置102の操作により、これを行う。なお、この実施形態では、これには限られないが、YESという文字が付されたボタンをユーザが選択したものとする。
そして、上述の入力のすべてを終えたらユーザは、OKという文字の付されたボタンをクリックする。OKという文字の付されたボタンに対する入力を行うと、上述した選択情報と、マルチキャストを行うかどうかということの選択についての情報の入力が実行される。また、OKという文字の付されたボタンに対する入力は、開始情報の入力をも兼ねている(S803)。
OKという文字の付されたボタンをユーザ端末100-1のユーザがクリックすると、選択情報と、マルチキャストの要否についての情報と、開始情報とが生成される。これら情報は、入力装置102から、インターフェイス114を経て制御部120のデータ入出力部122に送られ、そこから主制御部121へと送られる。
選択情報を受取ると、主制御部121は、選択情報のうち、ディスプレイ101において、対象データという文字の横に表示されている枠の中に書き込まれた情報によって特定されるデータを、対象データとして第1記録部123から読み出す。かかるデータは平文のデータである。以後、これが対象データとして扱われる。
主制御部121は、第1記録部123から読み出した対象データを暗号化部124に送る。それを受取った暗号化部124は、受取った対象データを暗号化する(S804)。これには限られないが、この実施形態における暗号化部124が、対象データ或いは暗号化された対象データの暗号化を行う場合に使用されるアルゴリズムは常に同一である。他方、この実施形態における暗号化部124は、これには限られないが、対象データ或いは暗号化された対象データの暗号化を行う度に、それに先立って新しい鍵を生成し、生成された新しい鍵によって暗号化の処理を実行するようになっている。暗号化部124は、固定のアルゴリズムと暗号化の処理を行う度に変化する鍵を用いて、対象データを暗号化して、暗号化された対象データを得る。
暗号化部124は、暗号化された対象データとその暗号化に用いた鍵を、主制御部121に送る。主制御部121は、その鍵を一旦保持する。主制御部121は、暗号化された対象データに、選択情報のうち、ディスプレイ101において、共有先1という文字の横に表示されている枠の中に書き込まれた情報、即ち多重に暗号化された対象データをユーザ端末100-1とともに共有する相手方のユーザ端末100であるユーザ端末100-2を特定する情報と、ユーザ端末100-1を特定するための情報とを付す。これには限られないが、この実施形態では、暗号化された対象データに付される情報の前者としてユーザ端末100-2のユーザIDが、後者として主制御部121が持っていたユーザ端末100-1のユーザIDがそれぞれ用いられる。2つのユーザIDの付された対象データを、主制御部121は、データ入出力部122に送る。かかるデータは、データ入出力部122から、インターフェイス114を介して送受信部に送られる。
送受信部は、2つのユーザIDの付された暗号化された対象データを、多重に暗号化された対象データをユーザ端末100-1とともに共有する相手方のユーザ端末100であるユーザ端末100-2に対して、ネットワーク400を介して送信する(S805)。送信先のユーザ端末100-2は、対象データに付された相手方のユーザ端末100-2のユーザIDによって特定可能である。
2つのユーザIDの付された暗号化された対象データは、ネットワーク400を介して送信され、ユーザ端末100-2の送受信部によって受取られる(S901)。
2つのユーザIDの付された、ユーザ端末100-1で暗号化された対象データは、ユーザ端末100-2の送受信部から、インターフェイス114、データ入出力部122を経て、主制御部121へと送られる。主制御部121は、そのデータのうち、暗号化された対象データを暗号化部124へと送る。
暗号化部124は、暗号化された対象データを更に暗号化する(S902)。これにより対象データは、ユーザ端末100-1の暗号化部124と、ユーザ端末100-2の暗号化部124とで、次々に、或いはその順番で連続して暗号化されたことになる。つまり、これにより得られるデータは、多重に(二重に)暗号化された対象データである。ユーザ端末100-2の暗号化部124でも、ユーザ端末100-1の場合と同様に、固定のアルゴリズムと、変化する鍵を用いて暗号化が行われるものとする。もっとも、ユーザ端末100-1とユーザ端末100-2とで用いられる暗号化のアルゴリズムは、同じである必要はない。
二重に暗号化された対象データは、それを暗号化するときに暗号化部124が使用した鍵とともに、暗号化部124から主制御部121へと送られる。主制御部121は、二重に暗号化された対象データを、それを暗号化するときに使用された鍵とともに、第1記録部123へと記録する(S903)。第1記録部123に記録される二重に暗号化された対象データには、上述した2つのユーザIDのうち少なくともユーザ端末100-1のユーザIDが付されていても良い。他方、主制御部121は、上述した2つのユーザIDを再び二重に暗号化された対象データに付す。そして、それら2つのユーザIDが付された二重に暗号化された対象データは、主制御部121から、データ入出力部122、インターフェイス114を介して送受信部に送られる。
送受信部は、2つのユーザIDの付された二重に暗号化された対象データを、ユーザ端末100-1へネットワーク400を介して送信する(S904)。送信先のユーザ端末100-1は、対象データに付された相手方のユーザ端末100-1のユーザIDによって特定可能である。
2つのユーザIDの付された暗号化された対象データは、ネットワーク400を介して送信され、ユーザ端末100-1の送受信部によって受取られる(S806)。
2つのユーザIDの付された二重に暗号化された対象データは、ユーザ端末100-1の送受信部から、インターフェイス114、データ入出力部122を経て、主制御部121へと送られる。
二重に暗号化された対象データは、対象データを最初に暗号化するときにユーザ端末100-1の暗号化部124が使用した鍵(この鍵は、上述したように暗号化部124から提供されて主制御部121が保持している。)とともに、主制御部121が、第1記録部123へと記録する(S807)。第1記録部123に記録される二重に暗号化された対象データには、上述した2つのユーザIDのうち少なくともユーザ端末100-2のユーザIDが付されていても良い。
これにて、二重に暗号化された対象データは、ユーザ端末100-1と、ユーザ端末100-2とで共有された状態となる。二重に暗号化された対象データは、第三者は当然として、この二重に暗号化された対象データを生成した当事者であるユーザ端末100-1、及びユーザ端末100-2も、単独では復号化することができない。仮に二重に暗号化された対象データに何らかの改竄がなされたとすれば、ユーザ端末100-1、及びユーザ端末100-2が協力しても、その二重に暗号化された対象データを復号化できなかったという事実により、改竄があったことが判明する。したがって、二重に暗号化された対象データは、ひいてはその元になった平文の対象データは、改竄不可能に保全された状態で、ユーザ端末100-1と、ユーザ端末100-2との間で共有された状態となる。
他方、主制御部121は、上述した2つのユーザIDを再び付された二重に暗号化された対象データをマルチキャストする(S808)。マルチキャストの処理は、ユーザが、上述のように、YESという文字が付されたボタンをユーザが選択したという事実に基いて、主制御部121が実行する。マルチキャストを行うために、主制御部121は、主制御部121がユーザ端末100-1の第1記録部123に記録したデータから鍵を除いたデータを、データ入出力部122、インターフェイス114を介して送受信部に送る。送受信部に送られたそれらデータは、送受信部からネットワーク400を介して、記録装置300のうちの少なくとも1つに送られる。それらデータの送り先となる記録装置300は、記録装置300の中からユーザ端末100-1のユーザが選択したものであっても良いし、記録装置300の中からランダムに、或いは何らかのルールにしたがってユーザ端末100-1が選択したものであっても良いし、又は記録装置300のすべてであっても良い。
2つのユーザIDが付された二重に暗号化された対象データを受取った記録装置300は、受取ったそのデータを、図示を省略の記録部に記録する。そのデータは、第三者がネットワーク400を介して閲覧可能な状態で、記録部に記録されてもよく、この実施形態ではそうされている。なお、第三者が閲覧可能な状態にされるのは、多重に暗号化された対象データのみであっても良い。記録装置300は一つのみでも良いが、それが複数存在する場合、時間の経過とともに、記録装置300のそれぞれには、多重に暗号化された対象データがそれぞれ複数(或いは多数)記録されることになる。その場合において、各記録装置300に記録されている多重に暗号化された対象データは、同じである必要はない。各記録装置300に記録される多重に暗号化された対象データは、多数生成された多重に暗号化された対象データのすべてでも良いし、そのうちの一部のものだけでも良い。また、多数生成された多重に暗号化された対象データのうちの一部のもののみを記録する複数の記録装置300に記録されている多重に暗号化された対象データは、一部重複していても構わないが、互いに異なる多重に暗号化された対象データを記録していても良い。
結果として、2つのユーザIDが付された二重に暗号化された対象データは、そのデータを生成した当事者たる2つのユーザ端末100であるユーザ端末100-1、及びユーザ端末100-2と、例えばいくつかの記録装置300とで共有して保全された状態になる。なお、マルチキャストの処理は、二重に暗号化された対象データを持っていれば行えるので、二重に暗号化された対象データを持っている他の装置が行ってもよい。例えば、ユーザ端末100-1に代わって、ユーザ端末100-2がマルチキャストの処理を行っても良い。
なお、以上で説明した過程のうち、開始情報の入力についてのS803から、二重に暗号化された対象データの受信についてのS807までの処理、或いは開始情報の入力についてのS803から、マルチキャストについてのS808までの処理を、ユーザ端末100-1と、ユーザ端末100-2と、場合によっては記録装置300とが、自動的に行うようになっていてもよく、この実施形態ではこれには限られないが、そうされている。また、この実施形態では、選択情報、開始情報の入力をユーザ端末100-1のユーザが行うこととしているが、例えば、対象データが生成されたら自動的にユーザ端末100-1と、ユーザ端末100-2と、場合によっては記録装置300とが、上述した処理のすべてを自動的に実行するようにすることも可能である。その場合には、選択情報、開始情報のユーザによる入力は省略可能である。
ユーザ端末100-1、ユーザ端末100-2、記録装置300で共有された、二重に暗号化された対象データは、その後一切利用されなくとも構わないが、後述するように、例えば、将来的に対象データの内容を検証する必要が生じた場合にそれを使用することができる。
その場合には、二重に暗号化された対象データは、復号化して平文の対象データに戻される。復号化された平文の対象データは、二重に暗号化される前の対象データの内容と等しいのであるから、復号化された対象データによる過去の対象データの検証には誤りは生じないし、対象データの真正性についての疑義が生じる余地がない。
なお、この例では、マルチキャストの際にユーザ端末100-1又はユーザ端末100-2から記録装置300に対して送られるのは、2つのユーザIDが付された二重に暗号化された対象データであった。ここで、マルチキャストの際にユーザ端末100-1又はユーザ端末100-2から記録装置300に送られるデータに、二重に暗号化された対象データの元となった対象データを加えることが可能である。この場合、記録装置300の図示を省略の記録部に記録されるのは、2つのユーザIDが付された二重に暗号化された対象データと、二重に暗号化された対象データの元となった対象データとになる。二重に暗号化された対象データと、二重に暗号化された対象データの元となった対象データとは互いに紐付けられて、或いは対として記録される。各記録装置300の記録部には、同一の或いは異なる対となった二重に暗号化された対象データと、二重に暗号化された対象データの元となった対象データとが蓄積されることになる。この場合、二重に暗号化された対象データと、その元となった対象データとは、少なくともその一方が、ネットワーク400を介して他の機器に開示された状態とされても良い。なお、対象データの生成(S801)の処理の際に、平文の対象データを持っているのがユーザ端末100-1のみである場合、二重に暗号化された対象データに加えて、その元となった対象データを記録装置300に送信できるのは、基本的にユーザ端末100-1とユーザ端末100-2のうちユーザ端末100-1のみである。もし、ユーザ端末100-2からそれらデータを記録装置300に送信させるのであれば、ユーザ端末100-1からユーザ端末100-2へ、平文の対象データ、或いはユーザ端末100-2で復号化することができるようにユーザ端末100-1で暗号化された対象データを、ユーザ端末100-2が二重に暗号化された対象データと、その元となった対象データとを記録装置300に送信する前の適当なタイミングで、ユーザ端末100-1からユーザ端末100-2へと送信すれば良い。
<2つのユーザ端末100が保全された対象データを復号化する場合>
二重に暗号化された対象データの復号化は、例えば、以下のようにして行われる。
二重に暗号化された対象データの検証を行いたいと考えるのは通常、ユーザ端末100-1のユーザか、ユーザ端末100-2のユーザである。
そして、ユーザ端末100-1と、ユーザ端末100-2とは、上述したように、二重に暗号化された対象データを、それらの第1記録部123に記録した状態で保持している。したがって、ユーザは、復号化したい二重に暗号化されたデータを、第1記録部123に記録されたデータの中から選択して、それをユーザ端末100-1と、ユーザ端末100-2の間でやり取りして復号化すれば良い。かかる処理は、通常、対象データを二重に暗号化された対象データとしたときの逆の処理として実行され、この実施形態ではこれには限られないがそうされている。
例えば、ユーザ端末100-2のユーザが、ユーザ端末100-1との間で二重に暗号化した対象データを復号化したい、と望んだとする。ユーザ端末100-2のユーザは、例えば、ユーザ端末100-2の入力装置102を用いて、その二重に暗号化された対象データを選択する。選択された二重に暗号化された対象データには上述のように、そのデータを暗号化したときに用いられた鍵とユーザ端末100-1、及びユーザ端末100-2のユーザIDが付されている。それらデータのすべてを、主制御部121は、第1記録部123から読み出す。
主制御部121は、読み出したそれらデータのうち、鍵と二重に暗号化された対象データとを暗号化部124へと送る。暗号化部124は、固定のアルゴリズムと、主制御部121から提供されたその鍵を用いて、二重に暗号化された対象データを復号化する。そうすると、二重に暗号化された対象データは復号化され、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態に戻る。暗号化部124は、そのデータを、二重に暗号化されたデータとともに、主制御部121に送る。
主制御部121は、それらデータにユーザ端末100-1、及びユーザ端末100-2のユーザIDを付して、データ入出力部122、インターフェイス114を介して、送受信部に送る。それらデータは、送受信部から、ネットワーク400を介してユーザ端末100-1に送られる。
ユーザ端末100-1は、その送受信部でそれらのデータを受取る。2つのユーザIDと、二重に暗号化された対象データの付された、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータは、ユーザ端末100-1の送受信部から、インターフェイス114、データ入出力部122を介して主制御部121へと送られる。
それを受取った主制御部121は、二重に暗号化されたデータと同じデータを第1記録部123に記録されたデータの中から探す。ユーザ端末100-2から受取った二重に暗号化されたデータと同じデータを第1記録部123の中から発見したら、主制御部121は、その二重に暗号化されたデータに付されていた鍵を第1記録部123から読み出す。この鍵は、その二重に暗号化されたデータを暗号化した際に、ユーザ端末100-1の暗号化部124で使用された鍵である。主制御部121は、その鍵とともに、ユーザ端末100-2から送信されてきた、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータを、暗号化部124に送る。
暗号化部124は、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータを主制御部121から受け取ったら、そのデータを、固定のアルゴリズムと、主制御部121から提供された鍵を用いて復号化する。そうすることにより、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータは平文の対象データに戻る。
暗号化部124は、対象データを主制御部121に送る。主制御部121は、対象データを、ユーザ端末100-1の第1記録部123に記録する。これにより、対象データの検証が可能な状態となる。
必要であれば、ユーザ端末100-1からユーザ端末100-2に対象データを送る。これにより、ユーザ端末100-1と、ユーザ端末100-2とは対象データを共有した状態となる。
以上の説明から明らかであろうが、ユーザ端末100-2から、ユーザ端末100-1に対して二重に暗号化された対象データを送信したのは、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータをユーザ端末100-1の暗号化部124で復号化する際に使用する鍵を特定するためである。ユーザ端末100-1の第1記録部123には、ユーザ端末100-2と協働して生成した上述の二重に暗号化された対象データ以外の多重に暗号化された対象データが記録されているのが通常であろうし、更には多数のユーザ端末100の第1記録部123に記録されている、或いは複数の記録装置300の記録部に記録されている、多重に暗号化された対象データは、その内容も数も、通信システムを運用している間にそれぞれ異なるものとなっているであろう。そのような状況の中で、ユーザ端末100-1がユーザ端末100-2から受取った上述のデータを復号化する際には、そのデータを復号化するために用いるべき鍵を特定する必要がある。そのような鍵の特定を行うために用いるものの一つの例が、ユーザ端末100-2から、ユーザ端末100-1に対して送信された、上述の、二重に暗号化された対象データである。
したがって、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータをユーザ端末100-2からユーザ端末100-1へ送ることは必須であるが、上述の鍵の特定が他の方法により可能なのであれば、ユーザ端末100-2からユーザ端末100-1へ二重に暗号化された対象データを送信する必要はない。例えば、二重に暗号化された対象データを生成する場合に、そのデータを特定するための識別子を例えば、ユーザ端末100-2で生成し、ユーザ端末100-2の主制御部121が、その識別子を二重に暗号化された対象データに付して第1記録部123に記録するとともに、ユーザ端末100-2からその識別子を受信したユーザ端末100-1の主制御部121も、第1記録部123にその識別子を二重に暗号化された対象データに付して記録するようになっているとする。その場合、二重に暗号化されたデータを先に復号化したユーザ端末100-2は、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータをユーザ端末100-1に送る際に、二重に暗号化されたデータの代わりにその識別子を送信することができる。それらデータを受取ったユーザ端末100-1の主制御部121は、対象データをユーザ端末100-1の暗号化部124のみで暗号化した状態のデータをその暗号化部124で復号化するときに用いる鍵を第1記録部123に記録された鍵から検索するためのクエリとして、二重に暗号化された対象データの代わりに、その識別子を用いることができる。
なお、以上で説明した例において、ユーザ端末100-1とユーザ端末100-2とが、第1記録部123にそれぞれ鍵を保存しておくこととしていたのは、二重に暗号化された対象データの復号化を行う際に、対象データを二重に暗号化するときに使用された鍵を特定できるようにするためである。他の方法によりかかる鍵の特定が可能なのであれば、第1記録部123に二重に暗号化された対象データと紐付けて記録されるべきデータは、鍵のデータそのものである必要はなく、鍵を特定することのできるデータであればよい。例えば、ユーザ端末100-1とユーザ端末100-2の暗号化部124が、その暗号化を行ったときの日時に基いて、鍵を変化させるとする。そうであれば、両暗号化部124は、鍵が生成された日時の情報さえあれば、暗号化の処理を行ったときの鍵を再び生成することができる。そのような場合には、第1記録部123に、二重に暗号化された対象データと紐付けて記録されるデータを、鍵のデータの代わりに、その鍵が生成された日時のデータとすることができる。それにより、両暗号化部124は、主制御部121から、鍵のデータの供給を受ける代わりに、その日時のデータを供給されれば、主制御部121から供給されるはずだった鍵と同じ鍵を生成することができるから、復号化の処理を上述の場合と変わらずに成し遂げることが可能となる。
更にいえば、両暗号化部124で使用される鍵が常に同一なのであれば、両暗号化部124が復号化を行う際に、過去に対象データを二重に暗号化する場合に使用された鍵を特定する必要がそもそもない。そのような場合には、鍵のデータや、鍵を特定することのできる上述の日時のデータの如きデータを第1記録部123に記録しておく必要もない。
以上の例では、二重に暗号化された対象データの復号化は、二重に暗号化された対象データを最後に暗号化したユーザ端末100-2から始められた。これは通常、あるデータを、異なる方法で複数回暗号化した場合には、その逆の順番で復号化しないと元のデータに戻らないからである。つまり、上述の例では、対象データは、ユーザ端末100-1の暗号化部124で暗号化されてから、ユーザ端末100-2の暗号化部124で、更に暗号化された。この場合、二重に暗号化された対象データを、ユーザ端末100-2の暗号化部124で復号化してから、更にユーザ端末100-1の暗号化部124で復号化すれば元の対象データに戻るが、ユーザ端末100-1の暗号化部124で先に復号化してからユーザ端末100-2の暗号化部で更に復号化しても、元の対象データには戻らない。
したがって、例えば、ユーザ端末100-1のユーザが二重に暗号化された上述の対象データの復号化を希望した場合であっても、ユーザ端末100-2の暗号化部124でまず先に、二重に暗号化された対象データの復号化を開始する必要がある。ユーザ端末100-1は、ユーザ端末100-2に、復号化をしてもらいたい二重に暗号化された対象データを特定して、二重に暗号化された対象データの復号化を依頼する。二重に暗号化された対象データを特定するためのデータとして、ユーザ端末100-1は、ユーザ端末100-1の第1記録部123に記録されていた二重に暗号化された対象データをユーザ端末100-2に送っても良いし、ユーザ端末100-1とユーザ端末100-2が共通して有している上述の識別子が存在するのであれば、それをユーザ端末100-2に送っても良い。以降における、ユーザ端末100-2から始まる二重に暗号化された対象データの復号化の処理の流れは、上述した場合と同じである。
なお、この実施形態の通信システムにおいて、二重に暗号化された対象データを復号化する場合においては、二重に暗号化されたその対象データが、どのユーザ端末100においてどのような順番で暗号化されたかということを、その復号化が必要になったときに把握できるように準備しておくべきである。そのような点を考慮すれば、ユーザ端末100-1、及びユーザ端末100-2の第1記録部123において、二重に暗号化された対象データに付されているユーザ端末100-1、及びユーザ端末100-2のユーザIDは、そのデータの順番により、ユーザ端末100-1とユーザ端末100-2でどのような順番で暗号化が行われたかを把握しておくべきであり、さもなくば二重に暗号化されたその対象データが、どのユーザ端末100においてどのような順番で暗号化されたかということを示すデータを別に付しておくべきである。
同様に、各記録装置300のユーザ或いは管理者等が、記録装置300の記録部に記録されていたある多重に暗号化された対象データの復号化を希望した場合には、そのユーザ或いは管理者が、復号化をしてもらいたい多重に暗号化された対象データを特定して、その多重に暗号化された対象データを最後に暗号化したユーザ端末100に、その多重に暗号化された対象データの復号化を依頼する。上述の二重に暗号化された対象データの復号化を、ある等が希望したのであれば、そのユーザ或いは管理者等は、復号化をしてもらいたい上述の二重に暗号化された対象データを特定して、その二重に暗号化された対象データを最後に暗号化したユーザ端末100であるユーザ端末100-2に、その二重に暗号化された対象データの復号化を依頼する。以降における、ユーザ端末100-2から始まる二重に暗号化された対象データの復号化の処理の流れは、上述した場合と同じである。或いは、記録装置300の記録部に記録されており、且つネットワーク400を介して公開されていた多重に暗号化された対象データを監視していた第三者が、ある多重に暗号化された対象データの復号化を希望した場合にも、その第三者が復号化をしてもらいたい多重に暗号化された対象データを特定して、その多重に暗号化された対象データを最後に暗号化したユーザ端末100に、その多重に暗号化された対象データの復号化を依頼すれば良い。
<3つ以上のユーザ端末100が対象データを保全する場合>
対象データを保全するのが3つのユーザ端末100である場合について説明する。これには限られないが、ユーザ端末100-1と、ユーザ端末100-2と、ユーザ端末100-3とが、この場合の3つのユーザ端末100であるものとして以下の説明を行う。
この場合においては、ユーザ端末100-1と、ユーザ端末100-2と、ユーザ端末100-3の少なくとも一つが、対象データを保持した状態となる。この場合の対象データは、典型的には、ユーザ端末100-1と、ユーザ端末100-2と、ユーザ端末100-3のユーザにおける三者間契約によるものとなるであろうが、対象データはそれには限られない。
対象データは、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3のいずれか1つの内部で生成されてもよく、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3の少なくとも2つの内部で例えば同時に生成されてもよく、或いはユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3外の他の装置で生成されてもよい。また、対象データは新たに生成されたデータではなく、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3の少なくとも1つが、従前から持っていたデータであっても構わない。
今回は、ユーザ端末100-1内にのみ対象データが存在する状態となったこととする。
以後において、対象データは、ユーザ端末100-1内の暗号化部124でまず暗号化され、ユーザ端末100-2、ユーザ端末100-3の暗号化部124で続けて暗号化される。ユーザ端末100-1ともに対象データを暗号化するユーザ端末100としてのユーザ端末100-2、ユーザ端末100-3の選択と、ユーザ端末100-2、及びユーザ端末100-3への暗号化された対象データの送信には、ユーザ端末100-2の間で対象データが二重に暗号化される場合と同様に、例えばユーザIDを利用することができる。
ユーザ端末100-2の暗号化部124と、ユーザ端末100-3の暗号化部124とのどちらで先に暗号化されるかは自由であるが、対象データは、結果として、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3のすべての暗号化部124で暗号化される。ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3の各暗号化部124で、どのような順序で暗号化を行うようにするかは、例えば、最初に暗号化を行う暗号化部124を有するユーザ端末100-1が決定するのが簡単であろうが、ユーザ端末100-2又はユーザ端末100-3が決定しても良いし、或いはユーザ端末100-1と、ユーザ端末100-2と、ユーザ端末100-3の(或いはそれらのユーザの)総意によって決定されても構わないし、或いはランダムに決定されても構わない。この事情は、ユーザ端末100が2つの場合でも、ユーザ端末100が4つ以上の場合でも同様である。
そして、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3のすべての暗号化部124で順に暗号化された多重に(三重に)暗号化された対象データは、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3のすべての第1記録部123に記録される。ここで、3つの第1記録部123に三重に暗号化された対象データとともに記録されるべきデータは、<2つのユーザ端末100が対象データを保全する場合>で説明したのと同様に、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3が、その三重に暗号化された対象データと後に復号化するために必要なデータである。例えば、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3内の3つの第1記録部123には、三重に暗号化された対象データとともに、それら3つのユーザ端末100のユーザIDが記録される。これら3つのユーザIDは、その三重に暗号化された対象データが、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3において、どのような順番で暗号化されたかを示すようになっているのが好ましいのも、上記と同様である。
また、三重に暗号化された対象データを共有することとなったユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3のうちの少なくとも一つは、マルチキャストの処理を行うことができる。その場合、ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3内の第1記録部123にそれぞれ記録されたデータと同じ、三重に暗号化された対象データを含むデータが、複数の記録装置300の中の少なくとも1つの記録部に書き込まれることになる。
三重に暗号化された対象データのみならず、その元となった対象データをもマルチキャストの対象とし、記録装置300の記録部に平文の対象データも書き込まれた状態とすることができるのは、ユーザ端末100が2つの場合でもユーザ端末100が3つの場合でも同じである。
ユーザ端末100-1、ユーザ端末100-2、ユーザ端末100-3の第1記録部123に記録された三重に暗号化された対象データは、<2つのユーザ端末100が保全された対象データを復号化する場合>で説明したのと同様に、三重に暗号化された対象データの元となった対象データが暗号化されたのと逆の順番で、各ユーザ端末100の暗号化部124において復号化される。それにより、三重に暗号化された対象データは、元の対象データに戻る。
記録装置300に記録された三重に暗号化された対象データの取扱も同様である。
以上の例では、対象データを暗号化するユーザ端末100は3つであった。これが、4つ、5つ、或いは、M個であっても話は同様である。
ある対象データを保全するユーザ端末100がM個である場合、対象データ或いはそれを暗号化したデータは、M個のユーザ端末100の間で送受信されながら、M個のユーザ端末100の暗号化部124のすべてで、暗号化される。それにより、M重に暗号化された対象データが、M個のユーザ端末100で共有され、M個のユーザ端末100の第1記録部123にそれぞれ記録されることになる。M重に暗号化された対象データとともにM個のユーザ端末100の第1記録部123にそれぞれ記録されるべきデータは、上述のように、その復号化に必要なデータとなる。
M個のユーザ端末100の第1記録部123にそれぞれ記録されたM重に暗号化された対象データは、上述した場合と同様に、M重に暗号化された対象データの元となった対象データが暗号化されたのと逆の順番で、各ユーザ端末100の暗号化部124で復号化される。それにより、M重に暗号化された対象データは、元の対象データに戻る。
記録装置300に記録されたM重に暗号化された対象データの取扱も同様である。
≪第2実施形態≫
第2実施形態の通信システムについて説明する。
第2実施形態の通信システムは、第1実施形態の通信システムと概ね同じである。第2実施形態の通信システムは、第1実施形態の場合と同様に、ネットワーク400に接続された多数のユーザ端末100と、多数の、少なくとも複数の記録装置300とを備えている。
第2実施形態の通信システムが第1実施形態の通信システムと異なるのは、図7に示したように、第2実施形態の通信システムは、第1実施形態の場合には存在しなかった、ネットワーク400に接続された多数の或いは複数の補助暗号化端末200を有する、という点である。構成に着目した場合、第2実施形態と第1実施形態との違いは、この点のみである。
補助暗号化端末200-1~補助暗号化端末200-Nの構成、動作は、本願発明との関係で考えた場合すべて同一でよく、この実施形態ではそうされている。
補助暗号化端末200は、本願発明における補助通信装置に相当するものである。補助暗号化端末200は、ユーザ端末100の機能の一部のみを有するものとすることができる。ユーザ端末100は、平たくいえば、対象データを決定する機能、対象データの多重の暗号化を行う際における1つの暗号化の処理を実行する機能、多重に暗号化された対象データを保存する機能、及び多重に暗号化された対象データの復号化をおこなう際における1つの復号化の処理を実行する機能、を有している。これら機能のうち、補助暗号化端末200に必須なのは、対象データの多重の暗号化を行う際における1つの暗号化の処理を実行する機能、及び多重に暗号化された対象データの復号化をおこなう際における1つの復号化の処理を実行する機能のみである。
第1実施形態で説明したように、対象データは、複数のユーザ端末100のユーザが共に保全することを希望するデータである。つまり、ユーザ端末100のユーザは、対象データの保全を行うことについての動機付けがある者であるといえ、典型的には対象データの内容に対して利害関係を持つ者であると言える。それに対して、補助暗号化端末200又はそのユーザ或いは管理者には、対象データの保全を行うことについての動機付けは特段存在しなくても良い。第1実施形態では、対象データの多重の暗号化は、当事者的な地位をそのユーザが有する複数のユーザ端末100によって行われたが、第2実施形態では、対象データの多重の暗号化には、ユーザ端末100のみならず、補助暗号化端末200が参加する。対象データの多重の暗号化に参加できるようにするために、補助暗号化端末200は上述のように、対象データの多重の暗号化を行う際における1つの暗号化の処理を実行する機能が必要とされるのである。また、複数のユーザ端末100のみならず、補助暗号化端末200が参加して多重に暗号化された対象データを復号化するには、複数のユーザ端末100のみならず、補助暗号化端末200も参加しない限り、多重に暗号化された対象データを平文の対象データに戻すことができない。それを可能とするために、補助暗号化端末200は、上述のように、多重に暗号化された対象データの復号化をおこなう際における1つの復号化の処理を実行する機能が必要なのである。
補助暗号化端末200は、例えば、公証人的な公的な性質を帯びたユーザに管理される装置とすることができる。或いは、補助暗号化端末200は、ユーザ端末100そのものとすることもでき、以下に説明される補助暗号化端末200の機能をユーザ端末100が発揮しても良い。また、記録装置300が補助暗号化端末200の機能を兼ね備えていても構わない。この実施形態では、公証人的な性格を有するユーザのみが、補助暗号化端末200を所持するものとして以下の話を進める。
補助暗号化端末200のハードウェア構成は、ユーザ端末100と同じとすることができ、この実施形態ではそうされている。また、補助暗号化端末200において必要とされる機能は、上述のようにユーザ端末100の機能の一部なのであるから、補助暗号化端末200の内部に生成される機能ブロックは、ユーザ端末100の内部に生成される機能ブロックの一部で良いということになるが、これには限られないが、この実施形態においては、補助暗号化端末200の内部にはユーザ端末100の内部に存在するのと同じ、図4に示した機能ブロックが生成されるものとする。
補助暗号化端末200の中に生成される各機能ブロックの機能は、ユーザ端末100の内部に生成される機能ブロックが持つ機能と同じである。ただし、その主制御部121は、選択情報と開始情報とを扱う必要がない。したがって、補助暗号化端末200の主制御部121は、第1実施形態で説明した、ユーザ端末100の主制御部121が有していた選択情報と開始情報とを扱う機能を有していない。補助暗号化端末200には上述のように、対象データの多重の暗号化を行う際における1つの暗号化の処理を実行する機能と、多重に暗号化された対象データの復号化をおこなう際における1つの復号化の処理を実行する機能とが必要とされるが、かかる機能は、ユーザ端末100の場合と同様に、補助暗号化端末200における暗号化部124によって担保されている。つまり、補助暗号化端末200における暗号化部124は、データを暗号化する機能と、暗号化部124で暗号化されたデータを復号化する機能とを有している。補助暗号化端末200の暗号化部124は、第1実施形態で説明したユーザ端末100のように、常に同じ方法で暗号化と復号化とを行うようになっていても構わないし、場合によって、例えば対象データ等の暗号化と復号化とを行うたびに暗号化と復号化の方法を変化させる(例えば鍵を変化させる)ようになっていても構わない。ただし、各補助暗号化端末200の暗号化部124と、各ユーザ端末100の暗号化部124とで実行される暗号化と復号化の処理は互いにユニークである。
第2実施形態の通信装置の使用方法、及び動作について説明する。
例として、対象データを2つのユーザ端末100が保全する場合について説明する。対象データを保全するのは、第1実施形態の場合と同様に、ユーザ端末100-1と、ユーザ端末100-2である。
第1実施形態の場合と同様に、まず、ユーザ端末100-1と、ユーザ端末100-2との少なくとも一方が、対象データを保持した状態となる。第1実施形態の場合と同様に、第2実施形態でも、ユーザ端末100-1内にのみ対象データが存在する状態となったこととする。
対象データは、例えば、ユーザ端末100-1内の第1記録部123に記録された状態となる。ここで、ユーザ端末100-1のユーは、保全すべき対象データを特定する情報と、その対象データを共有して保全することを希望するユーザ或いはそのユーザ端末100を特定するデータを組合せたものである、選択情報の入力を行う。選択情報の入力を行う場合、例えば、ユーザ端末100-1のディスプレイ101には、図8に示したようなユーザに選択情報の入力を促すための画像が表示される。選択情報の入力をユーザに促すための画像には、対象データという文字、及びそれに対応した横長の矩形の枠と、共有先1~3という文字、及びそれらに対応した横長の矩形の枠と、マルチキャストという文字、及びYESとNOという文字がそれぞれ付されたボタンと、OKという文字が付されたボタンとが含まれている。これらは、それらに割り振られた機能を含め、いずれも第1実施形態におけるそれらと同じである。第2実施形態の当該画像には、上記に加え、更に、公証人1、公証人2という文字、及びそれらにそれぞれ対応して横並びに表示されている横長矩形の枠が存在している。
公証人1、公証人2という文字の隣に存在する枠は、対象データの暗号化を行う場合に、ユーザ端末100のみならず、公証人的性格を有するユーザが所持する補助暗号化端末200をも、対象データを多重に暗号化させる過程に参加させるか否かをユーザ端末100-1のユーザに選択させるためのものである。ユーザ端末100-1のユーザは、1つの補助暗号化端末200を対象データを多重に暗号化する過程に参加させるのであれば、公証人1という文字の右隣の枠に、当該公証人の補助暗号化端末200を特定するための情報(例えば、公証人を特定するユーザID)を入力し、或いは2つの補助暗号化端末200を対象データを多重に暗号化する過程に参加させるのであれば、公証人1と公証人2という文字の右隣の2つの枠に、2人の当該公証人の補助暗号化端末200を特定するための情報を入力する。もちろん、より多くの補助暗号化端末200を対象データを多重に暗号化する過程に参加させるために、公証人の書き込みのための枠をより多く準備すること、或いはユーザの意志により枠を増やせるようにすることも可能である。なお、公証人の補助暗号化端末200を対象データを多重に暗号化する過程に参加させるか否か、参加させるならどの補助暗号化端末200をその過程に参加させるか否かについての上述の情報は、選択情報の一部をなす。これには限られないが、この実施形態では、公証人1の右隣の枠に、補助暗号化端末200-1を選択するための情報である公証人のユーザIDが書き込まれたとする。
そして、上述の入力のすべてを終えたらユーザは、OKという文字の付されたボタンをクリックする。OKという文字の付されたボタンに対する入力を行うと、上述した選択情報の入力と、マルチキャストを行うか否かについての選択についての情報の入力とが実行される。また、OKという文字の付されたボタンに対する入力は、開始情報の入力をも兼ねている。
OKという文字の付されたボタンをユーザ端末100-1のユーザがクリックすると、選択情報と、マルチキャストの要否についての情報と、開始情報とが生成される。これら情報は、入力装置102から、インターフェイス114を経て制御部120のデータ入出力部122に送られ、そこから主制御部121へと送られる。ここから先の処理は、概ね第1実施形態と同様である。特に、補助暗号化端末200を対象データを多重に暗号化する処理に参加させない場合の処理は、第1実施形態とまったく変わるところがない。
選択情報を受取ると、主制御部121は、選択情報のうち、ディスプレイ101において、対象データという文字の横に表示されている枠の中に書き込まれた情報によって特定されるデータを、対象データとして第1記録部123から読み出す。かかるデータは平文のデータである。以後、これが対象データとして扱われる。
主制御部121は、第1記録部123から読み出した対象データを暗号化部124に送る。それを受取った暗号化部124は、受取った対象データを暗号化する。暗号化部124で暗号化された対象データは、続けて、ユーザ端末100-2又は補助暗号化端末200-1の一方に送られ、ユーザ端末100-2又は補助暗号化端末200-1の一方の暗号化部124で暗号化されてから、ユーザ端末100-2又は補助暗号化端末200-1の他方に送られ、ユーザ端末100-2又は補助暗号化端末200-1の他方の暗号化部124で暗号化される。このようにして生成された多重に(三重に)暗号化された対象データは、その送受信の経路は不問であるが、ユーザ端末100-1、ユーザ端末100-2、補助暗号化端末200-1の間で送受信され、結果としてユーザ端末100-1、ユーザ端末100-2、補助暗号化端末200-1で共有されることになる。三重に暗号化された対象データは、例えば、ユーザ端末100-1、ユーザ端末100-2、補助暗号化端末200-1の第1記録部123に記録されることになる。それら3つの第1記録部123には、第1実施形態で説明したような、後にその多重に暗号化された対象データを復号化するときに必要な情報を特定するためのデータを、多重に暗号化された対象データとともに記録しておく。もっとも、上述したように、補助暗号化端末200は、対象データの多重の暗号化の処理と、多重に暗号化された対象データの復号化の処理には参加するものの、対象データの保全を行う必要がないのであるから、補助暗号化端末200の第1記録部123には、多重に暗号化された対象データを復号化するときに必要な情報を特定するためのデータが記録されていれば、多重に暗号化された対象データが記録される必要は必ずしもない。
また、マルチキャストの処理は、第1実施形態の場合と同様に、必要に応じて行われる。第2実施形態でマルチキャストの処理を行うのは、ユーザ端末100-1、ユーザ端末100-2ではなく、仮に多重に暗号化された対象データを補助暗号化端末200-1が持っているのであれば、補助暗号化端末200-1であっても構わない。
このようにして生成された、多重に暗号化された対象データの利用方法は、第1実施形態の場合と同様である。
もっとも、この場合における多重に暗号化された対象データを復号化する過程には、ユーザ端末100-1とユーザ端末100-2のみならず、補助暗号化端末200-1も参加しなければならない。
なお、第2実施形態では、対象データを多重に暗号化する過程に参加させる少なくとも1つの補助暗号化端末200を対象データの暗号化を最初に行うユーザ端末100で決定することとしていたが、かかる補助暗号化端末200は、最初のユーザ端末100で決定する必要はなく、他のユーザ端末100や、複数のユーザ端末100の協働によって決定されてもかまわない。対象データを多重に暗号化する過程に参加する少なくとも1つの補助暗号化端末200は、例えば、対象データを多重に暗号化する過程に参加する各ユーザ端末100のユーザのそれぞれが、対象データを多重に暗号化する過程に参加させる少なくとも1つの補助暗号化端末200を、その要否も含めて自ら決定することにより決定するようにすることが可能である。このようにすれば、各ユーザ端末100のユーザは、自らが信用する補助暗号化端末200を、対象データを多重に暗号化する過程に参加させることが可能となる。例えば、各ユーザ端末100は、そのユーザ端末100が対象データを多重に暗号化するための処理に参加する場合に必ずその処理に参加させる補助暗号化端末200を選択できるようにすることができる。或いは、複数のユーザ端末100が対象データを保全しようとしたとき、対象データを多重に暗号化するための処理に参加する少なくとも1つの補助暗号化端末200が、各ユーザ端末100のユーザの意思によらずに、自動的に決定されるようにしても良い。
なお、第2実施形態の通信システムの使用方法と、動作は、対象データを保全しようとするユーザ端末100が3つ以上となったときでも同様である。
例えば、対象データを保全しようとするユーザ端末100が4つであり、各ユーザ端末100のユーザがそれぞれ別の補助暗号化端末200を1つずつ、対象データを多重に暗号化する過程に参加させるように設定したとする。そうすると、あるユーザ端末100で対象データを多重に暗号化させるための最初の暗号化の処理が開始されるとすれば、その後に3つのユーザ端末100と4つの補助暗号化端末200で対象データは更に暗号化され、結果的に多重に暗号化された対象データは、八重に暗号化された対象データになる。この場合、3つのユーザ端末100と4つの補助暗号化端末200でどのような順番で暗号化の処理が行われるかは自由である。その順番は、7!通り存在するが、それは、最初に暗号化の処理を実行するユーザ端末100で決定されても良いし、4つのユーザ端末100の協働によって決定されても良いし、4つのユーザ端末100と4つの補助暗号化端末200の協働によって決定されても良いし、更には他の方法によって決定されても良い。
<変形例1>
変形例1は、第1実施形態に幾らかの変形を加えたものである。とはいえ、変形例1は、特に言及しない点については、第1実施形態と変わらない。変形例1の通信システムでも、ネットワーク400に接続可能な多数のユーザ端末100と、記録装置300とが用いられる。第1実施形態では記録装置300は、複数或いは多数であったが、変形例1においては記録装置300は、少なくとも1つであり、単数であることもあり得る。
変形例1と、第1実施形態の違いは、記録装置300の違いである。変形例1の記録装置300には、第1実施形態の場合と同様に、二重に(或いは多重に。この変形例1においては、以後も同様である。)暗号化された対象データが記録されることになるが、二重に暗号化された対象データは、第1実施形態の場合とは異なり、ブロックチェーンに含まれた状態で記録されることになる。
変形例1における記録装置300は、基本的に第1実施形態における記録装置300と同じように構成され、特にそのハードウェア構成については第1実施形態と同じで良い。他方、変形例1における記録装置300には、ブロックチェーン、或いは新たなブロックを生成する機能が必要とされる。変形例1における記録装置300には例えば、図9に示したような機能ブロックが生成される。かかる機能ブロックは、大容量記録媒体に記録されたコンピュータプログラムをCPUが実行することによって生成されることになる。
記録装置300の中には、データ入出力部321、主制御部322、ブロック生成部323、及び記録部324を有する制御部320が生成される。
データ入出力部321は、制御部320に入力されるデータを受取り、或いは制御部320から外部へデータを出力するものである。データ入出力部321は、後述する送受信部から受取ったデータを主制御部322に送るようになっており、また主制御部322から受取ったデータを送受信部に送るようになっている。変形例1におけるデータ入出力部321は、少なくとも制御部320外にある送受信部との間でデータをやり取りするようになっている。記録装置300における送受信部は、ユーザ端末100や補助暗号化端末200における送受信部と同じく、ネットワーク400を介して、ネットワーク400に接続された他の機器との間で通信を行う機能を有するものとなっている。送受信部からデータ入出力部321に入力されるデータは、マルチキャストの処理によってユーザ端末100から送られてくる2つのユーザIDが付された二重に暗号化された対象データである。また、二重に暗号化された対象データの検証が必要になった場合に、第三者の機器から記録装置300に、二重に暗号化された対象データの送信の要求が送られてくる場合があるが、かかる要求についてのデータも送受信部から、データ入出力部321へと送られてくる。他方、データ入出力部321から送受信部に送られるデータは、2つのユーザIDの付された二重に暗号化されたデータである。既に説明したように、対象データを監視していた第三者において対象データの検証が必要になった場合に、それらデータを記録装置300から当該第三者の機器に対して送れという上述の要求についてのデータを送信してくることがあるが、そのような要求についてのデータを記録装置300が受取った場合、後述するようにして、データ入出力部321から送受信部にその要求に応じたデータが送られる。それらデータは、送受信部から第三者の機器へと送信される。
主制御部322は、制御部320にある各機能ブロックの全体的な制御を行う機能を有している。主制御部322は、データ入出力部321から、2つのユーザIDの付された二重に暗号化されたデータを受取った場合には、それをブロック生成部323に送るようになっている。主制御部322は、また、第三者の機器である、例えばデータの検証の対象となる対象データの生成とは無関係だったユーザのユーザ端末100から、データの検証の対象となる二重に暗号化された対象データの送信を要求された場合に、その要求により特定された二重に暗号化された対象データをそれに付されたユーザIDとともに記録部324から読出すようになっている。主制御部322は、記録部324から読出したそれらデータをデータ入出力部321へと送るようになっている。
ブロック生成部323は、新規のブロックを生成して、それを記録部324に記録する機能を有している。ブロック生成部323が新規のブロックを生成する方法は、公知或いは周知の方法に従うことができる。例えば、ビットコインのブロックチェーンにおいて新たなブロックを生成する方法を、ブロック生成部323が新たなブロックを生成するために実行する方法として採用することができる。ブロック生成部323は、生成した新たなブロックを、記録部324に対して送るようになっている。ブロック生成部323は、生成した新たなブロックを、その直前のブロックに接続した状態として、記録部324に記録する。
記録部324は、ブロック生成部323によって生成したブロックを記録する。記録部324に記録されるブロックは、それが生成された順番にしたがって連なっている。つまり、記録部324にはブロックチェーンが記録される。
次に変形例1の通信システムの使用方法、及び動作について説明する。
変形例1の通信システムは、対象データを保全するユーザ端末100が2つの場合でも、3つの場合でも、マルチキャストが行われるまでの処理はすべて第1実施形態の場合と変わらない。
あるユーザ端末100からマルチキャストが行われ、ある記録装置300に、ユーザIDの付された二重に暗号化された対象データが送られたとする。
そうすると、その記録装置300は、その送受信部でユーザIDの付された二重に暗号化された対象データを受取る。なお、以下の説明では、二重(多重)に暗号化された対象データを、「暗号化対象データ」と称する。ユーザIDの付された暗号化対象化データは、送受信部からデータ入出力部321へと送られ、データ入出力部321から、主制御部322へと送られる。
主制御部322は、暗号化対象データを受取ると、それをブロック生成部323へと送る。これを受取ったブロック生成部323は、新たなブロックを生成する。ブロックのデータを概念的に説明すると、図10のようになる。各ブロックBには、暗号化対象データCを記録する記録スペースSと、その直前のブロックに対して何らかの演算を行って得た値である演算値Hが含まれている。演算値Hは例えば、その直前のブロックに対してハッシュ演算を行うことによって得られたハッシュ値である。
例えば、n番目のブロックBまでが既に生成されており、ブロック生成部323がn+1番目のブロックBn+1を新たに生成するとする。BからBまでのブロックBは生成された順に接続されており、いわゆるブロックチェーンを構成している。ブロックBn+1を新たに生成する場合、ブロック生成部323は、記録部324からブロックBのデータを読出し、ブロックBのデータに対して、例えばハッシュ演算を行うことによってハッシュ値である演算値Hn+1を得る。ブロック生成部323は、記録スペースSn+1に、主制御部322から受取ったユーザIDの付された暗号化対象データを書込むとともに、記録スペースSn+1に演算値Hn+1を付加することにより、新たなブロックBn+1のデータを生成する。そして、ブロック生成部323は、この新たなブロックBn+1を、ブロックBに接続した状態で、記録部324に記録する。
変形例1においても、第1実施形態の<2つのユーザ端末100が保全された対象データを復号化する場合>で説明した処理は基本的に、第1実施形態と同様に実行され得る。暗号化対象データの生成に関わったユーザ端末100が暗号化対象データを復号化する場合には、第1実施形態の場合と同じように、それらユーザ端末100が持っている暗号化対象データを復号化すれば良いのであるから、記録装置300の記録部324に記録されている暗号化対象データが使用されることは無い。
他方、暗号化対象データの生成に関わったユーザ端末100等が暗号化対象データを復号化する場合には、そのユーザ端末100等から、記録装置300へ、暗号化対象データを送信せよという要求が送られる。かかる要求には、送信する暗号化対象データを特定する情報が当然に含まれる。かかる要求は、記録装置300の送受信部で受け取られる。かかる要求は、送受信部からデータ入出力部321を経て主制御部322へと送られる。主制御部322は、その要求によって特定される暗号化対象データを記録部324に記録されているブロックチェーンの中から読み出す。かかる暗号化対象データは、データ入出力部321を経て送受信部へと送られ、第1実施形態の場合と同様に、ユーザ端末100等へと送られる。そのユーザ端末100等が、その暗号化対象データを復号化することのできるユーザ端末100にその復号化を依頼すること、及びそれ以降の処理は、第1実施形態の場合と同じである。
なお、変形例1についての上述の説明では、ブロックBの1つの記録スペースSに含まれる暗号化対象データは1つとされていた。それに対して、ブロックBの1つの記録スペースSに対して複数の暗号化対象データを含めることも可能である。例えば、ブロック生成部323は、主制御部322から暗号化対象データを受取る度に新しいブロックSを生成する代わりに、例えば主制御部322から決まった数の複数の暗号化対象データを受取る度に、或いはその前のブロックBを生成してから所定の時間が経過する度に、新しいブロックBを生成し、その直前に生成したブロックBが生成された後に主制御部322から受取ったすべてのユーザIDの付された暗号化対象データを、新たなブロックBの記録スペースSに書き込むようになっていても良い。後者の場合には記録スペースSに書き込まれる暗号化対象データが0又は単数の場合も生じることもあるであろうが、このようにすることで、ブロックBの記録スペースSに含まれる暗号化対象データの数を複数とすることが可能となる。
また、第1実施形態で説明したように、ユーザ端末100から記録装置300へは、暗号化対象データだけでなく、その元になった対象データも送られる場合がある。その場合、各ブロックの記録スペースSに記録されるのは、ユーザIDの付された暗号化対象データのみでなく、暗号化対象データ及びその元になった対象データとなる。この場合、両データは互いに紐付けられた状態となる。記録スペースSには上述したように複数の暗号化対象データが記録される場合があるが、その場合にはかかる紐付けが必須となる。
<変形例2>
変形例2による通信システムは、変形例1の通信システムと殆ど変わらない。変形例2は、特に言及しない点については、変形例1と変わらない。
変形例2における通信システムも、変形例1の場合と同様に、ネットワーク400に接続可能な多数のユーザ端末100と、単数或いは複数の記録装置300とによって構成される。そして、変形例2の記録装置300においても、変形例1の場合と同様に、暗号化対象データは、ブロックチェーンを構成するブロックに含まれた状態で、記録装置300に記録される。
変形例2の通信システムにおいて、暗号化対象データが含まれた新たなブロックは、ユーザ端末100で生成される。この点で、変形例2の通信システムは、新たなブロックが記録装置300で生成される変形例1の通信システムと異なっている。
変形例2のユーザ端末100の構成について説明する。ハードウェア構成に関していえば変形例2のユーザ端末100は変形例1のユーザ端末100と同一である。異なるのは、その内部に生成される機能ブロックである。変形例2のユーザ端末100の内部に生成される機能ブロックについて説明する。
変形例2のユーザ端末100の内部に生成される機能ブロックは、その殆どが変形例1乃至第1実施形態におけるユーザ端末100の内部に生成される機能ブロックと変わらないが、変形例2のユーザ端末100内に生成される機能ブロックには、変形例1の場合には存在しなかったブロック生成部125が存在する(図11)。
かかるブロック生成部125は、変形例1で説明した変形例1の記録装置300内に存在したブロック生成部323と同様に、ブロックチェーンに接続される新たなブロックを生成する機能を有している。ブロック生成部125がどのようにしてブロックを生成するのかについては後述する。
変形例2の記録装置300は、基本的に第1実施形態における記録装置300と同様に構成される。その記録部には、第1実施形態における記録装置300と同様に、ユーザIDが付された暗号化対象データが記録されるが、変形例2においては上述のように、暗号化対象データは、ブロックチェーンを構成するブロックの記録スペースに含まれた状態で記録されるという点で、第1実施形態と異なる。
変形例2の通信システムの使用方法、及び動作について説明する。
変形例2の通信システムの使用方法、及び動作は変形例1の場合と同様に、暗号化対象データを、対象データの保全を希望する複数のユーザの複数のユーザ端末100で共有するところまでは第1実施形態と変わらない。
変形例2の通信システムにおける暗号化対象データを共有した複数のユーザ端末100のうちの一つは、第1実施形態又は変形例1のユーザ端末100と同様にマルチキャストを行おうとする。
変形例2の通信システムにおけるマルチキャストを行おうとするユーザ端末100の主制御部121は、第1実施形態の場合と同様に、第1記録部123から、ユーザIDが付された暗号化対象データを読み出す。他方、主制御部121は、マルチキャストの対象となる記録装置300から、記録装置300の記録部に記録されているブロックチェーンを構成するブロックのうち、最新のものを送信せよとの要求を生成し、それをデータ入出力部122、送受信部、ネットワーク400を介して、記録装置300に送信する。これを受取った記録装置300は、最新のブロックのデータを、ネットワーク400を介してユーザ端末100に送る。マルチキャストの対象となる記録装置300が複数である場合には、複数の記録装置300からユーザ端末100へブロックのデータが送られてくる。各記録装置300の記録部に記録されているブロックチェーンを構成する最新のブロックは記録装置300毎に異なる場合があり、その場合には各記録装置300から送られてくるブロックのデータは異なるものとなる。
ブロックのデータは、ユーザ端末100の送受信部によって受け取られ、データ入出力部122を経て、主制御部121へと送られる。これにより、変形例2のユーザ端末100における主制御部121は、ユーザIDの付された暗号化対象データと、ブロックチェーンを構成するブロックのうちの直前のブロックのデータを保持した状態となる。かかる状態は、新たなブロックを生成する直前における、変形例1の記録装置300内のブロック生成部323の状態と同じである。つまり、変形例2のブロック生成部125は、変形例1のブロック生成部323と同じ方法で新たなブロックを生成することができる。変形例2のブロック生成部125はそうやって新たなブロックのデータを生成する。ブロック生成部125は、主制御部121から複数の記録装置300からのブロックのデータを受付けた場合には、それらブロックのデータのそれぞれに基いて、各記録装置300用の新たなブロックのデータを生成する。
ブロック生成部125は新たなブロックのデータを生成したら、それを主制御部121へと送る。新たなブロックのデータが複数生成されたのであれば、それらはすべて主制御部121へと送られる。主制御部121の制御下において、新たなブロックのデータのそれぞれは、対応する例えば複数の記録装置300へとそれぞれ送られる。
各記録装置300は、そのそれぞれの記録部に記録されていたブロックチェーンの最も新しいブロックに、ユーザ端末100から送られてきた新たなブロックを接続して記録する。このようにして更新されたブロックチェーンは、変形例1の場合と同じものとすることができ、変形例2ではそうなるようになっている。
変形例2における、第1実施形態の<2つのユーザ端末100が保全された対象データを復号化する場合>で説明した処理は、変形例1で説明した処理と同一である。
<変形例3>
変形例3は、第2実施形態における記録装置300を、変形例1における記録装置300のように変形した通信システムである。
変形例3の記録装置300は、ユーザ端末100のみならず、補助暗号化端末200から受付けたユーザIDの付された暗号化対象データに基いて新たなブロックを生成して、それをその直前のブロックチェーンの末尾のブロックに接続する場合がある。また、ユーザ端末100と補助暗号化端末200とは、ユーザIDの付された暗号化対象データと、その暗号化対象データの元となった対象データとを記録装置300に送る場合がある。ユーザ端末100と補助暗号化端末200のどちらから受取ったに関わらず、記録装置300は、その記録部に、ユーザID、暗号化対象データ、暗号化対象データの元となった対象データとを互いに紐付けた状態で記録する。
変形例3の通信システムの動作、及び使用方法は変形例1に準じるのでその説明を省略する。
<変形例4>
変形例4は、第2実施形態におけるユーザ端末100及び補助暗号化端末200を、変形例2におけるユーザ端末100のように変形した通信システムである。記録装置300も変形例2における記録装置300と同様である。
変形例4のユーザ端末100又は補助暗号化端末200は、変形例2の場合と同様に、マルチキャストを行う直前に新たなブロックを生成する。ブロックのデータは、変形例2で生成されるものと同じである。各記録装置300へは、ユーザ端末100又は補助暗号化端末200から新たなブロックが送られ、各記録装置300は、変形例2の場合と同様に、その記録部に記録されていたブロックチェーンを構成するブロックのうち末尾に位置するものに、ユーザ端末100又は記録装置300から受取った新たなブロックを接続する。
変形例4の通信システムの動作、及び使用方法は変形例2に準じるのでその説明を省略する。
100 ユーザ端末
120 制御部
121 主制御部
122 データ入出力部
123 第1記録部
124 暗号化部
125 ブロック生成部
200 補助暗号化端末
300 記録装置
323 ブロック生成部

Claims (41)

  1. 所定のネットワークを介して互いに通信可能であるとともに、それらがそれぞれ他とは異なる方法で所定のデータを復号化可能に暗号化することができるようになっている暗号化部を備えており、且つそれらのユーザが共に保全することを希望するデータである対象データをそれらのうちの少なくとも一つが保有している複数の通信装置にて実行される方法であって、
    複数の前記通信装置のすべてが、最初に対象データを保有していた前記通信装置においては前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部によって次々に暗号化する暗号化過程、
    複数の前記通信装置のすべてが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより、複数の前記通信装置の協働により復号化可能な状態で共有する共有過程、
    複数の前記通信装置のユーザが必要とする場合に、前記複数の通信装置のいずれかで保持されていた、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、複数の前記通信装置の協働により復号化する復号化過程、
    を含んでいる、
    方法。
  2. 前記暗号化過程では、所定のネットワークを介して互いに通信可能であり、それらがそれぞれ他とは異なる方法で、且つ複数の前記通信装置の前記暗号化部とも異なる方法で所定のデータを復号化可能に暗号化することができるようになっている補助暗号化部を有している1つ以上の補助通信装置のすべてと、複数の前記通信装置のすべてとが、前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とによって次々に暗号化するとともに、
    前記復号化過程では、複数の前記通信装置のユーザが必要とする場合に、複数の前記通信装置のいずれかで保持されていた、複数の前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部のすべてで暗号化された前記対象データを、複数の前記通信装置の協働により復号化する、
    請求項1記載の方法。
  3. 前記共有過程では、複数の前記通信装置のすべてと、前記補助通信装置の少なくとも1つとが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより共有する、
    請求項2記載の方法。
  4. 前記複数の前記通信装置の1つが、前記ネットワークに接続されている、データの記録が可能な記録装置に、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを送信して、前記記録装置に複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを記録させる記録過程を含むとともに、
    前記復号化過程では、複数の前記通信装置のユーザが必要とする場合に、前記複数の通信装置又は前記記録装置のいずれかで保持されていた、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、複数の前記通信装置の協働により復号化する
    請求項1記載の方法。
  5. 前記複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを持つものが、前記ネットワークに接続されている、データの記録が可能な記録装置に、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを送信して、前記記録装置に前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを記録させる記録過程を含むとともに、
    前記復号化過程では、複数の前記通信装置のユーザが必要とする場合に、前記複数の通信装置又は前記記録装置のいずれかで保持されていた、複数の前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部のすべてで暗号化された前記対象データを、複数の前記通信装置の協働により復号化する、
    請求項3記載の方法。
  6. 前記記録過程で前記記録装置に記録されている複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態とする、
    請求項4記載の方法。
  7. 前記記録過程で前記記録装置に記録されている前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態とする、
    請求項5記載の方法。
  8. 所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、所定のデータを前記第1暗号化部と異なる方法で復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにて実行される方法であって、
    前記第1通信装置が、前記第1通信装置が保有する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを、前記第1暗号化部で暗号化して第1暗号化対象データを生成する第1暗号化過程、
    前記第1通信装置が、前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信過程、
    前記第2通信装置が、前記第1通信装置から前記第1暗号化対象データを前記ネットワークを介して受取る第1受信過程、
    前記第2通信装置が、前記第1暗号化対象データを、前記第2暗号化部で暗号化して第2第1暗号化対象データを生成する第2暗号化過程、
    前記第2通信装置が、前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信する第2送信過程、
    前記第1通信装置が、前記第2通信装置から前記第2第1暗号化対象データを前記ネットワークを介して受取ることで、前記第1通信装置及び前記第2通信装置の協働により復号化可能な状態で、前記第2第1暗号化対象データを前記第1通信装置及び前記第2通信装置で共有する第2受信過程、
    前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置及び前記第2通信装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する復号化過程、
    を含む、方法。
  9. 所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、所定のデータを前記第1暗号化部と異なる方法で復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける前記第1通信装置にて実行される方法であって、
    前記第1通信装置が実行する、
    前記第1通信装置が保有する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して第1暗号化対象データを生成する第1暗号化過程、
    前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信過程、
    前記第2通信装置が、前記第1通信装置から前記ネットワークを介して受取った前記第1暗号化対象データを、前記第2暗号化部で暗号化して生成された第2第1暗号化対象データを、前記ネットワークを介して前記第2通信装置から受取ることで、前記第1通信装置及び前記第2通信装置の協働により復号化可能な状態で、前記第2第1暗号化対象データを前記第1通信装置及び前記第2通信装置で共有する第2受信過程、
    前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置及び前記第2通信装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する復号化過程、
    を含む、方法。
  10. 前記第1通信装置が、前記第1暗号化過程と、前記第1送信過程と、前記第2受信過程とを、自動的に実行する、
    請求項9記載の方法。
  11. 前記第1通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第2第1暗号化対象データを送信して、前記記録装置に前記第2第1暗号化対象データを記録させる過程を含むとともに、
    前記復号化過程では、前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置、前記第2通信装置、及び前記記録装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する、
    請求項9又は10記載の方法。
  12. 所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、所定のデータを前記第1暗号化部と異なる方法で復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける前記第2通信装置にて実行される方法であって、
    前記第2通信装置が実行する、
    前記第1通信装置が、前記第1通信装置が保有する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して生成された第1暗号化対象データを、前記第1通信装置から前記ネットワークを介して受取る第1受信過程、
    前記第1暗号化対象データを、前記第2暗号化部で暗号化して第2第1暗号化対象データを生成する第2暗号化過程、
    前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信することで、前記第1通信装置及び前記第2通信装置の協働により復号化可能な状態で、前記第2第1暗号化対象データを前記第1通信装置及び前記第2通信装置で共有する第2送信過程、
    前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置及び前記第2通信装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する復号化過程、
    を含む、方法。
  13. 前記第2通信装置が、前記第1受信過程と、前記第2暗号化過程と、前記第2送信過程とを、自動的に実行する、
    請求項12記載の方法。
  14. 前記第2通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第2第1暗号化対象データを送信して、前記記録装置に前記第2第1暗号化対象データを記録させる過程を含むとともに、
    前記復号化過程では、前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置、前記第2通信装置、及び前記記録装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する、
    請求項12又は13記載の方法。
  15. 所定のネットワークを介して互いに通信可能である、第1通信装置と、所定のデータを復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける第1通信装置であって、
    前記第1通信装置が保有する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第2暗号化部と異なる方法で暗号化して第1暗号化対象データを生成する第1暗号化部と、
    前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信部と、
    前記第2通信装置が、前記第1通信装置から前記ネットワークを介して受取った前記第1暗号化対象データを、前記第2暗号化部で暗号化して生成された第2第1暗号化対象データを、前記ネットワークを介して前記第2通信装置から受取ることで、前記第1通信装置及び前記第2通信装置の協働により復号化可能な状態で、前記第2第1暗号化対象データを前記第1通信装置及び前記第2通信装置で共有する第1受信部と、
    前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置、前記第2通信装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する第1復号化部と、
    を含む、第1通信装置。
  16. 所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、第2通信装置と、を含んでなる通信システムにおける第2通信装置であって、
    前記第1通信装置が、前記第1通信装置が保有する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して生成された第1暗号化対象データを、前記第1通信装置から前記ネットワークを介して受取る第2受信部と、
    前記第1暗号化対象データを前記第1暗号化部と異なる方法で暗号化して第2第1暗号化対象データを生成する第2暗号化部と、
    前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信することで、前記第1通信装置及び前記第2通信装置の協働により復号化可能な状態で、前記第2第1暗号化対象データを前記第1通信装置及び前記第2通信装置で共有する第2送信部と、
    前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置、前記第2通信装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する第2復号化部と、
    を含む、第2通信装置。
  17. 所定のネットワークを介して互いに通信可能である、第1通信装置と、所定のデータを復号化可能に暗号化することができる第2暗号化部を有する第2通信装置と、を含んでなる通信システムにおける第1通信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
    前記コンピュータを、
    前記第1通信装置が保有する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第2暗号化部と異なる方法で暗号化して第1暗号化対象データを生成する第1暗号化部と、
    前記第1暗号化対象データを前記ネットワークを介して前記第2通信装置に送信する第1送信部と、
    前記第2通信装置が、前記第1通信装置から前記ネットワークを介して受取った前記第1暗号化対象データを、前記第2暗号化部で暗号化して生成された第2第1暗号化対象データを、前記ネットワークを介して前記第2通信装置から受取ることで、前記第1通信装置及び前記第2通信装置の協働により復号化可能な状態で、前記第2第1暗号化対象データを前記第1通信装置及び前記第2通信装置で共有する第1受信部と、
    前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置、前記第2通信装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する第1復号化部と、
    して機能させるためのコンピュータプログラム。
  18. 所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第1暗号化部を有する第1通信装置と、第2通信装置と、を含んでなる通信システムにおける第2通信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
    前記コンピュータを、
    前記第1通信装置が、前記第1通信装置が保有する、前記第1通信装置と前記第2通信装置とのユーザがともに保全することを希望するデータである対象データを前記第1暗号化部で暗号化して生成された第1暗号化対象データを、前記第1通信装置から前記ネットワークを介して受取る第2受信部と、
    前記第1暗号化対象データを前記第1暗号化部と異なる方法で暗号化して第2第1暗号化対象データを生成する第2暗号化部と、
    前記第2第1暗号化対象データを前記ネットワークを介して前記第1通信装置に送信することで、前記第1通信装置及び前記第2通信装置の協働により復号化可能な状態で、前記第2第1暗号化対象データを前記第1通信装置及び前記第2通信装置で共有する第2送信部と、
    前記第1通信装置及び前記第2通信装置のユーザが必要とする場合に、前記第1通信装置、前記第2通信装置のいずれかで保持されていた、前記第2第1暗号化対象データを、前記第1通信装置及び前記第2通信装置の協働により復号化する第2復号化部と、
    して機能させるためのコンピュータプログラム。
  19. 複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項4記載の方法。
  20. 複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項5記載の方法。
  21. 複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記記録過程で前記記録装置が、前記通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項4記載の方法。
  22. 複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記記録過程で前記記録装置が、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項5記載の方法。
  23. 1つの前記ブロックに含まれる前記暗号化対象データは1つ以上であり、
    前記記録過程で前記記録装置は、前記通信装置から1つ以上の前記暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った1つ以上の前記暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項21又は22記載の方法。
  24. 前記記録過程で前記通信装置が、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
    前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
    請求項4記載の方法。
  25. 前記記録過程で前記通信装置又は前記補助通信装置が、複数の前記通信装置及び前記補助通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
    前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
    請求項5記載の方法。
  26. 前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、
    前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項19記載の方法。
  27. 前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、
    前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項20記載の方法。
  28. 前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、
    前記記録過程で前記記録装置は、前記通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項21記載の方法。
  29. 前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、
    前記記録過程で前記記録装置は、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項22記載の方法。
  30. 前記第2第1暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記第1通信装置は、
    送信の対象となる前記第2第1暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項11記載の方法。
  31. 請求項11記載の方法に続けて、前記記録装置が実行する方法であって、
    前記第2第1暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記記録装置は、前記第1通信装置から受取った前記第2第1暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    方法。
  32. 1つの前記ブロックに含まれる前記第2第1暗号化対象データは1つ以上であり、
    前記記録装置は、前記第1通信装置から1つ以上の前記第2第1暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った1つ以上の前記第2第1暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項31記載の方法。
  33. 前記第1通信装置が、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
    前記記録装置は、前記第2第1暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
    請求項11記載の方法。
  34. 前記ブロックには、前記第2第1暗号化対象データと、当該第2第1対象データの元となった前記対象データと、前記演算値とが含まれており、
    前記第1通信装置は、送信の対象となる前記第2第1暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項30記載の方法。
  35. 前記ブロックには、前記第2第1暗号化対象データと、当該第2第1対象データの元となった前記対象データと、前記演算値とが、前記第2第1暗号化対象データ及び前記対象データとを互いに紐付けられた状態で含まれており、
    前記記録装置は、前記第1通信装置から受取った前記第2第1暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項31記載の方法。
  36. 前記第2第1暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記第2通信装置は、
    送信の対象となる前記第2第1暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項14記載の方法。
  37. 請求項14記載の方法に続けて、前記記録装置が実行する方法であって、
    前記第2第1暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
    前記記録装置は、前記第2通信装置から受取った前記第2第1暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    方法。
  38. 1つの前記ブロックに含まれる前記第2第1暗号化対象データは1つ以上であり、
    前記記録装置は、前記第2通信装置から1つ以上の前記第2第1暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った1つ以上の前記第2第1暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項37記載の方法。
  39. 前記第2通信装置が、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
    前記記録装置は、前記第2第1暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
    請求項14記載の方法。
  40. 前記ブロックには、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、
    前記第2通信装置は、送信の対象となる前記第2第1暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
    請求項36記載の方法。
  41. 前記ブロックには、前記第2第1暗号化対象データと、当該第2第1暗号化対象データの元となった前記対象データと、前記演算値とが、前記第2第1暗号化対象データ及び前記対象データとを互いに紐付けられた状態で含まれており、
    前記記録装置は、前記第2通信装置から受取った前記第2第1暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
    請求項37記載の方法。
JP2017177056A 2017-07-03 2017-09-14 第1通信装置、第2通信装置、方法、コンピュータプログラム Active JP7321481B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP18829093.6A EP3651406A4 (en) 2017-07-03 2018-07-03 FIRST COMMUNICATION DEVICE, SECOND COMMUNICATION DEVICE, METHOD AND COMPUTER PROGRAM
PCT/JP2018/025163 WO2019009275A2 (ja) 2017-07-03 2018-07-03 第1通信装置、第2通信装置、方法、コンピュータプログラム
US16/626,902 US20200267133A1 (en) 2017-07-03 2018-07-03 First communication device, second communication device, method, and computer program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017130407 2017-07-03
JP2017130407 2017-07-03

Publications (2)

Publication Number Publication Date
JP2019016997A JP2019016997A (ja) 2019-01-31
JP7321481B2 true JP7321481B2 (ja) 2023-08-07

Family

ID=65357135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017177056A Active JP7321481B2 (ja) 2017-07-03 2017-09-14 第1通信装置、第2通信装置、方法、コンピュータプログラム

Country Status (3)

Country Link
US (1) US20200267133A1 (ja)
EP (1) EP3651406A4 (ja)
JP (1) JP7321481B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3462667A1 (en) * 2017-09-27 2019-04-03 Banco Bilbao Vizcaya Argentaria, S.A. Blockchain based joint blind key escrow

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7225550B2 (ja) 2018-03-23 2023-02-21 株式会社富士通ゼネラル モータ制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225550A (ja) * 1994-02-10 1995-08-22 Hitachi Software Eng Co Ltd データ多段階参照方法およびデータ多段階参照システム
US5557765A (en) * 1994-08-11 1996-09-17 Trusted Information Systems, Inc. System and method for data recovery
US6272632B1 (en) * 1995-02-21 2001-08-07 Network Associates, Inc. System and method for controlling access to a user secret using a key recovery field
JP4067614B2 (ja) * 1996-10-30 2008-03-26 富士通株式会社 ネットワーク環境における取り引き証明装置および方法
JP2006253745A (ja) * 2005-03-08 2006-09-21 N-Crypt Inc データ処理装置、データ処理システム、及びデータ処理方法
US8510835B1 (en) * 2009-09-18 2013-08-13 Trend Micro Incorporated Techniques for protecting data in cloud computing environments
US8687809B2 (en) * 2011-05-27 2014-04-01 Adobe Systems Incorporated System and method for decryption of content including disconnected encryption chains
JP6075017B2 (ja) * 2012-11-09 2017-02-08 富士通株式会社 情報分析システム及び情報分析方法
IL234613A0 (en) * 2014-09-11 2014-12-02 Google Inc Exchange consolidated and encrypted transaction information with a transaction information provider
US9942315B2 (en) * 2015-10-27 2018-04-10 International Business Machines Corporation Anonymous peer storage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7225550B2 (ja) 2018-03-23 2023-02-21 株式会社富士通ゼネラル モータ制御装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AGRAWAL,Rakesh et al.,Information Sharing Across Private Databases,Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data,米国,ACM,2003年6月,pp.86-97
東角 芳樹 ほか,コンソーシアムチェーンにおける証明書管理に関する一考察,2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集[USB],日本,2017年 暗号と情報セキュリティシンポジウム実行委員会,2017年1月24日,1F2-3,pp.1-4

Also Published As

Publication number Publication date
JP2019016997A (ja) 2019-01-31
US20200267133A1 (en) 2020-08-20
EP3651406A2 (en) 2020-05-13
EP3651406A4 (en) 2021-04-21

Similar Documents

Publication Publication Date Title
US11184394B1 (en) Methods, systems, and devices for encrypted electronic storage and confidential network transfer of private data through a trustless distributed ledger technology system
JP6811317B2 (ja) ブロックチェーン機密トランザクション内の暗号化されたトランザクション情報の復元
US9922207B2 (en) Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
Fabian et al. Collaborative and secure sharing of healthcare data in multi-clouds
CN101569132B (zh) 用于分发数据和保护数据安全的系统和方法
CN113127916B (zh) 数据集合处理方法、数据处理方法、装置及存储介质
CA2808369C (en) System for protecting an encrypted information unit
KR20200054128A (ko) 준동형 암호화를 사용하는 블록체인 데이터 보호
CN111343001A (zh) 一种基于区块链的社交数据共享系统
Domingo-Ferrer et al. User-private information retrieval based on a peer-to-peer community
CN110474893A (zh) 一种异构跨信任域密态数据安全分享方法及系统
CN108781161A (zh) 用于控制和分发数字内容的区块链实现的方法
CN106407766A (zh) 安全文件共享方法与系统
JP6709243B2 (ja) 情報処理装置
JP2018098564A (ja) 分散型台帳システムおよびプログラム
CN107113164A (zh) 加密数据的重复删除
JPWO2019082442A1 (ja) データ登録方法、データ復号方法、データ構造、コンピュータ、及びプログラム
JP6293245B1 (ja) 強化されたセキュリティを有する取引相互監視システム
Gowda et al. BPCPR-FC: blockchain-based privacy preservation with confidentiality using proxy reencryption and ring signature in fog computing environments
JP7321481B2 (ja) 第1通信装置、第2通信装置、方法、コンピュータプログラム
CN115982746B (zh) 一种基于区块链的数据共享方法
Mittal et al. A novel two-level secure access control approach for blockchain platform in healthcare
JP4657706B2 (ja) 権限管理システム、認証サーバ、権限管理方法および権限管理プログラム
WO2019009275A2 (ja) 第1通信装置、第2通信装置、方法、コンピュータプログラム
CN113656829A (zh) 一种基于格密码与联盟链的医疗数据安全共享方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220712

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221012

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221108

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221213

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230719

R150 Certificate of patent or registration of utility model

Ref document number: 7321481

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150