JP2022528925A - データを暗号化するためのコンピュータにより実施される方法及びシステム - Google Patents

データを暗号化するためのコンピュータにより実施される方法及びシステム Download PDF

Info

Publication number
JP2022528925A
JP2022528925A JP2021559820A JP2021559820A JP2022528925A JP 2022528925 A JP2022528925 A JP 2022528925A JP 2021559820 A JP2021559820 A JP 2021559820A JP 2021559820 A JP2021559820 A JP 2021559820A JP 2022528925 A JP2022528925 A JP 2022528925A
Authority
JP
Japan
Prior art keywords
data
participant
key
common secret
encryption
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.)
Pending
Application number
JP2021559820A
Other languages
English (en)
Other versions
JPWO2020212796A5 (ja
Inventor
スティーヴン ライト,クレイグ
ジルズ ドワロン,ブロック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings 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 Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2022528925A publication Critical patent/JP2022528925A/ja
Publication of JPWO2020212796A5 publication Critical patent/JPWO2020212796A5/ja
Pending legal-status Critical Current

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/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

データを暗号化する方法が開示される。当該方法は、第1秘密鍵(VA)及び第1公開鍵(PA)を有する暗号システムの第1公開-秘密鍵ペアに関連付けられた第1ノードにといて、前記第1ノード及び第2ノードに共通の共通シークレット(S1)を決定するステップであって、前記第2ノードは、第2秘密鍵(VB)及び第2公開鍵(PB)を有する暗号システムの第2公開-秘密鍵ペアに関連付けられる、ステップを含む。共通シークレットは、第1秘密鍵及び第2公開鍵に基づき決定され、暗号システムの特性は、共通シークレットが第2秘密鍵及び第1公開鍵に基づき決定できることである。共通シークレットに基づく暗号鍵は、データ(M)の暗号化のために決定され、該データは、暗号鍵に基づき暗号化され、データを暗号化するステップは排他的又はXOR演算を含む。

Description

本開示は、データを暗号化する、コンピュータにより実施される方法及びシステムに関し、特に排他的ではなく、ブロックチェーンで使用するためのそのような方法に関する。本開示は、メッセージに認証データを適用する方法にも関する。
本願明細書では、私たちは、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本開示はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本開示の範囲に包含されることに留意すべきである。用語「ユーザ」は、ここでは、人間またはプロセッサに基づくリソースを表してよい。
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピアの電子台帳であり、ブロックにより構成され、ブロックはまたトランザクションにより構成される。各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、これらのブロックは一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
トランザクションがブロックチェーンに書き込まれるためには、「検証」されなければならない。ネットワークノード(マイナー)は、無効なトランザクションがネットワークから拒否され、各トランザクションが有効であることを保証するために作業を実行する。ノードにインストールされたソフトウェアクライアントは、未使用トランザクション(unspent transaction, UTXO)のロック及びアンロックスクリプトを実行することにより、UTXOに対してこの検証作業を実行する。ロック及びアンロックスクリプトの実行が真(TRUE)と評価する場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。従って、トランザクションがブロックチェーンに書き込まれるためには、(i)トランザクションを受信した第1ノードにより検証され、トランザクションが有効な場合には、ノードが該トランザクションをネットワーク内の他のノードに中継する、(ii)マイナーにより構築された新しいブロックに追加される、(iii)マイニングされる、つまり過去のトランザクションの公開台帳に追加される、ことが必要である。
ブロックチェーン技術は、暗号通貨の実装の使用のために最も広く知られているが、デジタル事業家が、Bitcoinの基づく暗号セキュリティシステム及び新しいシステムを実装するためにブロックチェーンに格納できるデータの両方の使用を開発し始めている。ブロックチェーンが、暗号通貨の分野に限定されない自動化タスク及びプロセスのために使用できれば、非常に有利になる。このようなソリューションは、ブロックチェーンの利益(例えば、永久性、イベントの記録の耐タンパ性、分散型処理等)を利用しながら、それらの用途をより多様化し得る。
パーティ間の通信が非セキュアネットワーク上で生じるシステムでは、重要な関心事は、共通された秘密鍵の確率である。この問題を解決するために、セキュアな鍵配信プロトコルが開発されており、以下を含む:Diffie-Helman (DH)対称鍵交換[Merkle, Ralph C. (April 1978)、"Secure Communications Over Insecure Channels"、Communications of the ACM. 21(4): 294-299;Diffie, Whitfield; Hellman, Martin E. (November 1976)、"New Directions in Cryptography"、IEEE Transactions on Information Theory. 22 (6): 644-654]、及び3パスプロトコル(three-pass protocol)[Menezes, A.; van Oorschot, P.; Vanstone, S. (1996)、“Handbook of Applied Cryptography”、CRC Press. p.500]。これらの方法はセキュアな暗号化を達成するが、大規模な鍵セットを生成し共有するには、又は連続的に鍵を生成するには、計算上高価である。
国際特許出願公開番号WO2017/145016は、公開鍵、決定性(deterministic)鍵、及び楕円曲線代数学の特性のみを用いて一連の共有シークレット鍵を確立する方法を開示している。共有シークレット鍵を公衆ネットワークを介して送信する必要がないので、それは中間者攻撃(man-in-the-middle attack)を受けない。この共有シークレット鍵から、この研究で提案されたように楕円曲線演算又は鍵生成拡張を通じて任意の数の追加の共有秘密鍵を導出することは、簡単である。留意すべきことに、このプロトコルは、鍵を連結又はトランケートして所望の長さにできるので、鍵の長さに依存しない。
同じレベルのセキュリティを維持しながら、国際特許出願番号WO2017/145016で開示されたプロトコルの更に計算効率のよい拡張を提供することが望ましい。
したがって、本開示によると、添付の請求項において定められる方法が提供される。
データを暗号化する方法であって、
第1参加者により、前記第1参加者及び第2参加者に共通の共通シークレットに基づき、データの暗号化のための暗号鍵を決定するステップと、
暗号化データを提供するために、前記暗号鍵に基づき前記データを暗号化するステップであって、前記データを暗号化するステップは、少なくとも1つの排他的又はXOR演算を含む、ステップと、
前記暗号化データをブロックチェーントランザクションに組み込むステップと、
を含む方法が提供され得る。
データを暗号化するための暗号鍵を生成する方法であって、前記方法は、
第1参加者により、データの暗号化のための暗号鍵を決定するステップであって、前記暗号鍵は、第1データの少なくとも1つの排他的又はXOR結合に基づき、第2データを有する前記第1参加者及び第2参加者に共通の共通シークレットに基づき、前記共通シークレットに基づきデータに一方向関数を適用することに基づく、ステップ、を含む方法が提供され得る。
メッセージに認証データを適用する方法であって、前記方法は、
第1参加者により、第2参加者へ通信されるべきメッセージのためのメッセージ認証データを決定するステップであって、前記メッセージ認証データは、前記第1参加者及び前記第2参加者に知られている関数を、前記メッセージに、及び前記第1参加者及び前記第2参加者に共通の共通シークレットに適用することにより決定される、ステップ、を含む方法が提供され得る。
プロセッサと、プロセッサによる実行の結果として、システムに本願明細書に記載のコンピュータにより実施される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、を含むシステムが提供され得る。
実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、本願明細書に記載のコンピュータにより実施される方法を実行させる、非一時的コンピュータ可読記憶媒体が提供され得る。
本開示による種々の実施形態は、図面を参照して説明される。
暗号化及び復号プロトコルの概略図である。 ブロックチェーントランザクションの償還のためのブロックチェーンスクリプトの処理を示す。 ブロックデータ暗号化及び復号方式を示す。 メッセージ認証データを組み込むブロックチェーントランザクションを示す。 メッセージ認証コードプロトコルを示す。 種々の実施形態が実装できるコンピューティング環境を示す概略図である。
<XORに基づく暗号化方式>
以下の記号:
Figure 2022528925000002
により示されるXOR演算は、2つのバイナリビットの間の演算であり、入力ビットのうちの1つが1に等しい場合に且つその場合にのみ、1を返す。その他の場合、該演算は0の値を返す。これは、以下の真理値表に纏められる。
Figure 2022528925000003
メッセージM及びシークレット鍵Sが与えられると、メッセージの導出される暗号文は次式により与えられる:
Figure 2022528925000004
例えば、メッセージM=011110、シークレット鍵S=101010では、暗号化メッセージはビット毎のXOR演算を用いて計算される:
Figure 2022528925000005
復号処理は、XOR演算と次式の結合特性を利用して、元のメッセージを回復する:
Figure 2022528925000006
つまり、
Figure 2022528925000007
従って、元のメッセージ(M)を回復させるために、共有シークレット鍵(S)の暗号文メッセージ(M')とのビット毎XORは、1回のみでよい。
Figure 2022528925000008
シークレット鍵とメッセージが任意の傍受パーティに知られていないことを前提に、各シークレット鍵が1回だけ使用されるならば、これは、通信の完璧にセキュアなワンタイムパッド(one-time-pad (OTP))方法を提供する。公衆ネットワークを介して暗号文を転送することの1つのリスクは、傍受パーティの攻撃の場合に、バイナリ文字列の順応性(malleability)である。しかしながら、これは、以下に示すように、パブリックブロックチェーンの不変性を利用することにより、回避できる。
<共有秘密鍵のセキュアな確立>
国際特許出願番号WO2017/145016において確立されたように、共有秘密鍵は、2つのパーティ、例えばAlice(A)及びBob(B)の間で、彼らの公開鍵、予め合意した楕円曲線(例えば、scep256k1)、及び生成元(generator point、G)を用いて、導出できる。彼らのそれぞれの秘密鍵(Alice及びBobのそれぞれVA及びVB)から開始する。彼らは、それぞれ、以下の楕円曲線演算を用いて彼らの公開鍵を計算することにより開始する:
Figure 2022528925000009
そして、次に、彼らの公開鍵を交換する。Aliceは、彼女の秘密鍵(VA)及びBobの公開鍵(PB)を用いて、共有秘密鍵(SAB)を計算する:
Figure 2022528925000010
Bobは、彼の秘密鍵(VB)及びAliceの公開鍵(PA)を用いて、共有秘密鍵(SAB)を計算する:
Figure 2022528925000011
楕円曲線点加算の結合法則と可換性を用いると、2つの計算された値が同一であることが分かる:
Figure 2022528925000012
共有秘密鍵の計算の結果は楕円曲線上の点(xAB,yAB)であり、彼らは例えばS=xABを取り入れることに合意し得る。これは、国際特許出願番号WO2017/145016に記載された構成と同じ階層構造及び同じ処理セットを有するが、生成したシークレットを対称鍵として使用する代わりに、XORに基づくという意味でワンタイムパッド(one-time pad (OTP))として使用される。国際特許出願番号WO2017/145016におけるように、この作業の各処理を拡張して、同様の階層的鍵生成方式を用いて決定性鍵を組み込むことができる。
図1は、非セキュア公衆ネットワークを介する2つのパーティ間の通信のために本開示を利用する鍵生成及びXORメッセージ暗号化プロトコルを示す。AliceとBobとの間の公開鍵PA及びPBの交換に続き、彼らはそれぞれ、楕円曲線乗算を用いて、共有秘密鍵Sを計算する。Aliceは、シークレット鍵Sを用いてメッセージMを暗号化し、結果として生じた暗号文M'をブロックチェーン2上のトランザクションに含める。Bobは、暗号文M'を読み出し、それを共有シークレット鍵を用いて復号する。図1の実線のボックスは秘密パラメータを示し、破線のボックスは公に共有される情報を示す。
<ブロックチェーンを用いる非順応性XOR暗号システム>
パブリックブロックチェーンの不変性は、非セキュアネットワークを介してバイナリ暗号文を転送することの順応性問題を解決できる。暗号文は、ネットワークへ送信されブロックチェーン上に普遍的に記録されるBitcoinトランザクション内に含めることができる。暗号文が、送信者により署名されマイニングノードにより検証されるトランザクションのアウトプットに含まれる場合、それが署名後に変更されていない場合にのみブロックチェーン上に記録される。同様に、ブロックチェーンから暗号文を読み出す者は、トランザクションのハッシュがトランザクションIDに等しいことをチェックすることにより、トランザクションデータの完全性を確かめることができる。これは、暗号文のエンドツーエンドの不変性を保証する。更に、署名は公開鍵にユニークなので、送信者のアイデンティティも検証できる。
留意すべきことに、データがインプットスクリプトに含まれる場合、トランザクションのこの部分は送信者により署名されないので、真正さは保証できない。
暗号文をトランザクションのアウトプットに挿入するための2つのオプションがある:
(1)使用不可能アウトプット(Unspendable Output)(OP_RETURN)
データがOP_RETURNに含まれる場合、それは、将来のロックスクリプトで使用できないが、暗号文の格納(store)として役立つ。例えば、受信者Bobのアドレスがトランザクションに含まれる場合、Bobのウォレットは、彼のアドレスへの参照についてブロックチェーンをスキャンし(例えば、トークン化プロトコルで使用されるようなスマートウォレットを用いて[William H, Brian P, Flannery P, Saul A, et al. Numerical recipes in C: The Art of Scientific Computing (1992) Cambridge])、暗号文を特定できる。Bobは、次に、上述の確立されたプロトコルにより共有秘密鍵(S)を計算し、次に、次式を用いて元のメッセージをローカルに取り出す:
Figure 2022528925000013
このプロトコルは、図1に概略的に示される。この方法を用いて、データの送信は、中間者攻撃に対して回復力を有する。
留意すべきことに、この処理はXOR計算しか必要としないので、これは低い処理能力の装置で容易に実行できる。
使用例として、サービスプロバイダAlice(A)がユーザBob(B)に1回限りのセッション鍵を送信したいとする。このセッション鍵は、Bobを宛先とするメッセージとして含まれ、ログイン資格情報を検証するために、通信チャネルを開始するために使用でき、又は従来のユーザ名及びパスワードに基づくシステムを置き換えるアイデンティティ検証を要求する任意の他のアプリケーションで使用できる。
処理は、1回限りのセッション鍵Kを確立するという点で、次のように進行する。共有シークレット鍵を再利用できるために、それは、メッセージを隠蔽するために直接使用されてはならない。セッション鍵を暗号化するために共有鍵のハッシュ(H(S))を用いることにより、1回限り公開されるセッション鍵はシークレット鍵を開示しない。
Figure 2022528925000014
Aliceは、次に、彼女のシステムへのアクセスを許可するために、ハッシュパズル解h(K)の解を要求し得る。ここでSが公開されるリスクがないので、同じ共有シークレットを再利用し続けることが安全である。
(2)使用可能アウトプット(Spendable Output)
上述と同様の方法が、暗号文を使用可能アウトプットとして挿入するために、OP_RETURNの代わりに、OP_DROPを用いて使用できる。しかしながら、Bitcoinスクリプトでは、オペコードOP_XORは、暗号文を復号することにより使用条件を課すことができ、使用後までデータをマスクすることができる。例えば、XOR演算は、AliceとBobがよりプライベートな及びセキュアなスクリプトを生成するために使用できるOTP鍵を人目に付かずに入力又は交換するために使用できる。Bobとの相互作用を伴わず、Aliceは、このシークレット値(S)を使用して、未使用のまま、彼への支払いを覆い隠すことができる。
これを行うために、Aliceは以下の形式のロックスクリプトを使用する:
Figure 2022528925000015
これは、以下のインプットにより解決される:
Figure 2022528925000016
ロックスクリプトの第1行は、正しい共有シークレットが使用されることを保証するハッシュパズルである。第2行は、シークレットを使用して<h(PB)>を復号する。次に、第3行は、標準的なトランザクションにおけるように、署名をチェックする。償還(redemption)処理の評価は、図2に詳細に示される。
留意すべきことに、上述のトランザクションが使用されるとき、共有シークレットが開示される。これは、上述のスクリプトにおいて、SをS'=h(S)により置き換えることにより回避できる。これは、Bob及びAliceの両者が計算できる。
例として、Aliceは、Bob又は第三者Charlieにより償還可能なトランザクションを生成できる。Charlieに対する償還条件は、AliceとCharlieとの間の共有鍵を用いて同じ方法でロックスクリプトに含まれ得る。上述のハッシュ関数とXOR演算の特性を用いて、Bob及びCharlieのアイデンティティは、トランザクションが償還されるまで完全に隠すことができる。償還されると、トランザクションを償還する者のアイデンティティのみが開示される。
これは、2つ(以上)のパーティが、先に条件を満たすことを匿名で競争している場合、又は1つのパーティが償還する条件を待機している場合に(これは、スポーツまたはその他のイベントの結果を含むことができる)、役立ち得る。複数のパーティ、例としてBob及びCharlieが存在する場合、Aliceは、同じスクリプト内に他者が知らないままBob又はCharlieにより償還可能なようにトランザクションを設定できる。つまり、Aliceは、Bob又はCharlieのいずれかにより償還可能な、条件OP_ORを用いてロックスクリプトを構成する。これは、Bob及びCharlieが、償還のために彼ら自身の公開鍵ハッシュ値のXOR値を計算できるが、他者はできないシナリオである。
<マルチパーティ通信>
XOR方式の多様性は、それぞれが彼らの間のセキュアな通信手段を有する多くのメンバを含むための、通信ネットワークの容易な拡張を可能にする。上述の鍵配信プロトコル又はマスター鍵導出アプローチを用いて、非集中型通信ネットワークは、XOR暗号化及びワンタイムパッドを直接的に確立する。XORに基づく暗号化は、低い処理能力の装置においてもセキュア且つ迅速な復号を可能にする。サービスプロバイダがアイデンティティを検証し選択されたパーティへのアクセスを与える集中型システムでは、更なる懸念が解決されなければならない。
例えば、管理者Alice(A)を構成員とする会社又は組織を取り上げる。Aliceは、通信の記録を保持したまま、従業員の間で暗号化通信を提供したい場合がある。例えば、AliceはBob(B)にメッセージを送信し、BobはCharlie(C)にメッセージを送信する(A→B、B→C)。Aliceは、彼らのネットワーク上のイベントの完全な記録を有するために、全部のトランザクションの記録を保持したい。Alice及びBobは、彼らの共有鍵(SAB1)を用いて通信できる。BobがCharlieにメッセージ送信するとき、彼らは彼らの共有鍵(SBC1)を使用するが、このメッセージは導出される秘密鍵(SAB2)を用いてAliceにも中継される。
Figure 2022528925000017
これは、従って、Aliceを以降の全部の他のパーティにリンクして、彼女がネットワーク上のアクションを常に通知されることを保証する。これは、サービスプロバイダから完全に隠されないまま、相互に信頼していないユーザ間のプライベート通信を可能にする。
<鍵導出方式>
上述の処理から導出される初期共有シークレット鍵を用いて、秘密鍵の新しいセットを確立する必要を有しないで、追加鍵がセキュアに且つ効率的に生成できる。ハッシュ関数の逆算が実行不可能であることを利用して、XOR暗号方式のワンタイムパッド(one-time pad (OTP))制限が、セキュリティを犠牲にすることなく緩和できる。これは、後述するように、マルチメディアファイルのような大規模なデータ構成をセキュアに暗号化できるよう、非常に多数の鍵へと拡張できる。
上述のような単一の楕円曲線計算を用いて、2つのパーティは秘密鍵S=xABを確立する。一連の鍵は、このメッセージから導出でき、所定数、例えばn個のメッセージを符号化する。鍵セットは、次式に用に導出でき:
Figure 2022528925000018
次式を生じる:
Figure 2022528925000019
この鍵セットは、初期共有シークレットのみ、及び単一の初期楕円曲線点計算のみを用いて生成される。これらの鍵は、次に、n個のメッセージを符号化するために使用でき、Snから開始する。つまり、
Figure 2022528925000020
初期共有シークレットは、メッセージを暗号化するために単独で使用されることはなく、このような単一の危険に晒されたメッセージが全部の暗号化メッセージのセキュリティを破壊することはない。更に、鍵計算においてハッシュ関数を使用することは、計算の逆算を防ぐ。従って、鍵の中で逆順に使用することにより(Sn+1→S)、Sn+1の発見はSnを危険に晒さない。S及びSiを決定することが実現可能ではないので、メッセージM(n-i+1)が与えられたとしても、鍵は依然として安全に再利用できる。
<ブロック暗号を用いる大規模データ暗号化>
マルチメディアファイルのような大規模データセットを効率的に暗号化するために、データは、固定長ブロックに分割され、同一の演算が各ブロックに対して実行される。上述のように、行列乗算の特性を利用することにより、追加セキュリティがブロック暗号方式に適用できる[Sastry, V. U. K.; Anup Kumar, K. (2012) “A Modified Feistel Cypher Involving XOR Operation and Modular Arithmetic Inverse of a Key Matrix”. International Journal of Advanced Computer Science and Applications (IJACSA). 3(7):35-39]。参考文献では、大きな文字列は、各文字のASCII値を行列に加算し、Feistel暗号で(標準的には、順列とXOR演算の繰り返しが使用され、単一の文字列を符号化する)該行列をランダムに生成した鍵行列により乗算することにより符号化される。本願では、大規模データセットをセキュア且つ効率的に暗号化するために、XOR演算を用いてこの処理を拡張するために、決定性鍵がどのように導出できるかを示す。
本明細書では、[Sastry, V. U. K.; Anup Kumar, K. (2012) “A Modified Feistel Cypher Involving XOR Operation and Modular Arithmetic Inverse of a Key Matrix”. International Journal of Advanced Computer Science and Applications (IJACSA). 3(7):35-39]において導出された処理が概説される。大規模データセットは、ワード(word)として知られる8ビットチャンクに分割され、データが正確に2mワードに適合することを保証するためにパディングされる。これらのワードは、次に、2m×m行列Pにエントリとして挿入される。素数モジュラス(prime modulus)Nは、所望のアプリケーションに十分なセキュリティを提供するよう選択される。Pに格納されたデータを暗号化するために、サイズm×mのランダムに生成された鍵行列Kが構成される。これに続いて、データ行列Pが、2つのm×m行列P=(P,Q)に分割される。データ行列を暗号化及び復号するアルゴリズムは以下に示される。暗号化(及び対応する復号)アルゴリズムは、n回繰り返され、追加セキュリティパラメータを提供する。各繰り返しがデータを並べ替えるので、繰り返しの増加に伴い、データは更にスクランブリングされる。この構造は、データ暗号化標準又はDES(n=16)及び高度暗号化標準又はAES(n=10-14)において使用される。
暗号化処理の非線形性を利用することは、複数の暗号文ペアが開示された場合でも、鍵がガウスの消去法アルゴリズム(Gaussian elimination algorithm)を用いて決定できないことを保証する。従って、単一の鍵行列Kが、複数のデータファイルを暗号化するうために使用できる。更に、暗号化及び復号処理の類似性は、計算のために必要なコード及び従ってハードウェアの量を削減する。
<暗号化>
Figure 2022528925000021
<復号>
Figure 2022528925000022
<Feistel暗号鍵行列の構成>
変更されたFeistel暗号方式がここで提案され、以上に概説した処理を用いて生成されるような鍵Sのみを使用する。詳細は図3に示される。鍵行列Kは、シークレットSのハッシュを繰り返しとり、次にSとのビット毎XOR演算を行うことにより構成される。
上述の鍵生成プロトコルを使用して、m(m+1)個のユニークな鍵が、先ず、上述のSから導出される。
Figure 2022528925000023
要素を用いて、線形独立な列及び行を有する(従って可逆である)2つの行列を構成する。
Figure 2022528925000024
Kは、次に、K=KKとなるよう定義され、ここで、Kも可逆であるとする(復号処理のために必要である)。
<セキュアなマルチメディア転送>
大規模データセットを暗号化する更に効率的な方法により、公衆ネットワークを介して、例えばインターネット及び移動電話サー委¥ビスプロバイダを介して、エンドツーエンドで、マルチメディアファイルをセキュアに送信することが可能である。行列乗算及びGauss-Jordan消去法行列反転(Elimination matrix inversion)の両方が、Coppersmith-Winogradアルゴリズムを用いて、O(m2.376)の計算的複雑さで、実行できる。これは、最新のモバイル装置においても、1秒未満の暗号化及び復号を可能にする。データを均一なサイズのブロックに予め分割することは、単一のストリームとして、又は複数のトランザクションの間で分割して、膨大なファイルをブロックチェーンに含めることを実現可能にする。前述の章からメッセージングプロトコルを用いて、これは、ピアツーピア通信に容易に統合できる。
<ストリーミング暗号化を用いる大規模データ暗号化>
ブロック暗号プロトコルの代替として、鍵が連続的に生成され、データが一度に1ビット、迅速に符号化されるストリーミング暗号化方式がある。セキュアに生成された秘密鍵S及び導出された鍵Sを用いて、ストリーム暗号シードが次式を用いて生成できる:
Figure 2022528925000025
シードを標準的なPRNG(pseudo random number generator、疑似乱数生成器)の入力として用い、XOR演算をデータを符号化するために用いて、ストリーム暗号は、高速暗号化及び復号システムとして共有され得る。このようなプロトコルは、2つのパーティ間のメディアファイル又はオーディオ/ビデオ呼のセキュアなストリーミングのために不可欠である。プロトコルの詳細は、ハッシュに基づくメッセージ認証コード(hash-based message authentication code (HMAC))に関して以下に詳述される。
<メッセージ認証コード(Message Authentication Code (MAC))>
鍵配信プロトコルを用いて、メッセージ認証コード(Message Authentication Code (MAC))が生成できる。MACは、メッセージの受信者が、送信者のアイデンティティを検証できるようにするとともに、メッセージが改ざんされていないことを保証する。MACは、メッセージが送信されるのと一緒に、Alice(A)及びBob(B)により共に知られる共有シークレット鍵の公衆に知られている関数を用いて生成される。
<ブロックチェーンに基づくメッセージ認証コード>
Alice及びBobは、以上に紹介したプロトコルを用いて共有鍵(S)を確立できる。つまり:
Figure 2022528925000026
公衆に知られている関数f(例えば、XOR演算を含むもの)を用いて、MACは共有鍵(S又はSから導出される何からの鍵)及びメッセージMの観点で計算される。Aliceは、値y=f(M,S)を計算し、ペア(M,y)をBobへ送信する。ブロックチェーンの文脈で、この情報は、OP_RETURN内のAliceからBobへのトランザクションに、又はトランザクション内のメタデータとして組み込むことができる。Bobは、Aliceからのトランザクション内の情報を取り込み、彼はその有効性をチェックするためにyを再計算できる。メッセージがAliceから生じたものではない、又はメッセージが変更されている場合、関数fは、yの異なる値を生成し、無視され得る。
例として、メッセージMを、OP_RETURNの前の全部のトランザクションデータであると定義することにより、これは、トランザクションデータが送信中に変更されていないことをオフラインで検証する方法を提供し、マイナー検証の必要がない。これは、図4に概略的に示される。図4は、ブロックチェーントランザクションデータを用いるメッセージ認証コード(message authentication code (MAC))を示す。MAC内にトランザクションデータを組み込むことにより、それは、トランザクション検証方式として使用でき、ネットワークに接続する必要を有しないで追加セキュリティを提供する。これは、非常に低い能力のモバイル装置にとって重要である。
図5は、パブリックブロックチェーンを用いる2つのパーティ間の通信のために本開示を利用するメッセージ認証コード(message authentication code (MAC))プロトコルを示す。(図1に示されるような)共有シークレット鍵の確立に続き、Aliceは、合意した関数fを用い、メッセージMを用いて、MAC(y)を計算する。Aliceは、メッセージ及びMACをBobへのトランザクションに含める。Bobは、シークレット鍵を用いてMACを自身で計算し、それをブロックチェーンから読み出したMACと比較する。それらが等しい場合、Bobは、送信者のアイデンティティでメッセージの完全性を確認できる。
この検証アプローチは、2つのパーティ間でオフラインで実行できる。ここで、Bobは、Aliceからの情報M及び共有シークレットS1を使用して、オフラインで値を受信し、後に値yを認証として受け入れることができる。つまり、鍵Sが計算された後に、Aliceは、メタデータとして含まれるメッセージ(M)を有するトランザクションtxを送信する。Aliceは、Bobにメッセージペア(y,M)をオフラインで送信して、リモートシステムへの認証を行い、これはブロックチェーン上のトランザクションを認識する。
処理は、以下の通りである。
Figure 2022528925000027
MACは、符号化又は送信の際のランダムなエラーを検出するために、CRC(Cyclic Redundancy Check、巡回冗長検査)としても使用できる。同じMACが送信に続いて再生成できることを検証することにより、正しいメッセージが復元されることを保証できる。これは、リモートシステムへの認証のために、オフライン方法としても使用できる。
<信頼性>
MACは、トランザクション及び認証に信頼性を追加するために暗号化できる(例えば、サーバへ送信するとき、値y及びMを隠す)。2番目に生成された鍵はMACを暗号化し及び追加プライバシーを提供するために使用できる。これは、第2のMAC鍵を生成するためにハッシュを取り入れ、同時に認証と信頼性の両方を可能にすることにより、拡張できる。複数回認証するために、Aliceがサーバに認証しようとする度に、新しい鍵が使用されなければならない。
必要な場合には、サブキーを使用することにより、追加の複雑性が追加できる。例えば、TAが最後の有効なブロックハッシュを用いる時間マーカであるならば、これは、鍵階層構造を形成するために組み込むことができる。
Figure 2022528925000028
S(S,S)から導出される鍵のペアは、次に、係数として取り入れられ、関数を次のように定義する:
Figure 2022528925000029
f(M,K)は、何らかの合意された適切な整数Nについて、y=(SM+S) mod Nとして更に強力にできる。攻撃者が1つの(M,y)ペアを知った場合、これは、次のメッセージM'についてy'を決定する際に保持される。
<ショートMAC>
少ない量のセキュリティが犠牲になり得るが、依然として十分にセキュアなMACを有する。Bitcoinでは、鍵長は、単一の座標(S)のみを取り入れ、256ビットである。低い能力の装置では、これは、モジュラスに低次の値を使用することにより削減することができ、中程度の計算応力により妥当な時間内に処理を実行可能にする。小さいN、例えば64ビットが選択される場合:
Figure 2022528925000030
代替として、Mは、N以下の長さを有するブロックに分割できる:
Figure 2022528925000031
対応する数のユニークな鍵が、上述のプロトコルを用いて導出できる:
Figure 2022528925000032
Figure 2022528925000033
最後に、次式の低次ビットのみを送信する、あまりセキュアではないが非常に簡易な手段を有することが可能である。
Figure 2022528925000034
<ストリーミングハッシュに基づくMAC(Streaming Hash-Based MAC (HMAC))>
アプリケーションが標準的なMACにより提供されるものに追加のセキュリティを要求する場合、ハッシュに基づくMAC(HMAC)が使用できる。MACと異なり、HMACは、第3章で提案されたストリーム又はブロック暗号方式を通じて、(国際特許出願番号WO2017/145016に開示される構成の要件であるように、SHA-256ハッシュの鍵サイズを超える)大規模ファイルへ容易に拡張できる。これは、ファイルを256ビット部分に分割することにより行うことができる。
Figure 2022528925000035
<プロトコル>
国際特許出願番号WO2017/145016に開示され上述した方法を用いて導出されたシークレットSで開始すると、後続の鍵は、次式を含む種々の演算を用いてセキュアに導出できる:
Figure 2022528925000036
疑似乱数生成器(pseudorandom number generator (PRNG))の使用に対する5個の効率的な代替案は、以下を使用する:
Figure 2022528925000037
ここで、後続の鍵を導出するための方法により、値Siは、Biに対してXOR結合され、OTP(ワンタイムパッド)として機能し、ストリーム又はチャネルをセキュアにする。明らかに、暗号ブロック(Ci)は以下のように計算できる:
Figure 2022528925000038
全部の導出された鍵は、S及び初期ブロックハッシュ(初期の256ビット)を用いて計算でき、データ完全性を保証できる。
<使用例>
<セキュアなピアツーピアメッセージングサービス>
エンドツーエンド暗号化を伴うピアツーピア通信は、以上で検証されたマルチメディアファイル及びストリーミングデータを組み込むための拡張と共に、以上に詳細に説明された。これらのプロトコルをブロックチェーンシステムに自由に統合する能力は、アプリケーション開発者が、彼らのユーザに改ざん耐性のあるセキュリティを提供するために、更なる自由度を提供する。メッセージ認証コード(Message Authentication Code (MAC))の組み込みにより、メッセージが請求されるアイデンティティから生じていること、及びメッセージを不明瞭にし又は変更する試みがなかったことの、追加の確実さをユーザに提供できる。非常に機密性のある情報を送信するために、これは重要な特徴である。
本開示は、XOR演算を用いて効率的且つセキュアな暗号システムを提供する。必要な計算の簡易性は、Bitcoin(BSV)のような最も基本的な言語によるブロックチェーンを使用しても、容易に組み込むことを可能にする。これらの方式は、多くの異なるシステム及び装置に渡りセキュア且つ多様なアプリケーションの急伸を可能にする。
図6を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置2600の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置2600は、上述の図示のシステムのうちのいずれかを実装するために使用されてよい。例えば、コンピューティング装置2600は、データサーバ、ウェブサーバ、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置として使用するために構成されてよい。図6に示すように、コンピューティング装置2600は、主メモリ2608及び永久記憶装置2610を含む記憶サブシステム2606と通信するよう構成され得る1つ以上のレベルのキャッシュメモリ及びメモリ制御部(集合的に2602とラベル付けされる)を備える1つ以上のプロセッサを含んでよい。主メモリ2608は、図示のように、動的ランダムアクセスメモリ(DRAM)2618及び読み出し専用メモリ(ROM)2620を含み得る。記憶サブシステム2606及びキャッシュメモリ2602は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
プロセッサ2602は、1つ以上のユーザインタフェース入力装置2612、1つ以上のユーザインタフェース出力装置2614、及びネットワークインタフェースサブシステム2616とも通信できる。
バスサブシステム2604は、コンピューティング装置2600の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム2604は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
ネットワークインタフェースサブシステム2616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム2616は、幾つかの実施形態では、コンピューティング装置2600の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
ユーザインタフェース入力装置2612は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置2600に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
1つ以上のユーザインタフェース出力装置2614は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイ、等を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置2600から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置2614は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション(例えば、プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供し、記憶サブシステム2606に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてよい。記憶サブシステム2606は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置2610は、プログラム及びデータの永久(不揮発性)記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた1つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた1つ以上の光ドライブ(例えば、CD-ROM、又はDVD、又はBlue-Ray)ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した1つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
コンピューティング装置2600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、光コネクタ、等)を通じてコンピューティング装置2600に接続可能な別の装置を含み得る。コンピューティング装置2600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。従って、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置2600に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、図6に示したコンピューティング装置2600の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。図6に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
<列挙される例示的な実施形態>
本開示の実施形態の例は、以下の項の観点で記載できる。
(項1)データを暗号化する方法であって、
第1参加者により、前記第1参加者及び第2参加者に共通の共通シークレットに基づき、データの暗号化のための暗号鍵を決定するステップと、
暗号化データを提供するために、前記暗号鍵に基づき前記データを暗号化するステップであって、前記データを暗号化するステップは、少なくとも1つの排他的又はXOR演算を含む、ステップと、
前記暗号化データをブロックチェーントランザクションに組み込むステップと、
を含む方法。
少なくとも1つの排他的又はXOR演算を含む暗号化処理を提供することにより、これは、同じ長さのシークレット鍵を有するバイナリメッセージ文字列のビット毎XOR符号化を使用することにより、XOR暗号が導出でき公衆ネットワーク上で自由に享有できるという利点を提供する。後に、暗号文は、同じシークレット鍵及びメッセージに対するビット毎XOR演算を用いて復号できる。プロトコルの簡易性は、任意の暗号に基づくシステムに組み込むことができるという更なる利点を有する。本発明の計算上の効率性が、国際特許出願番号WO2017/145016で提案されたセッション鍵生成を、低い能力の装置(モバイル装置又はスマートカード)において使用可能にし、及びBitcoinにおけるスクリプト内に含むことができるという利点も提供される。データを変更するという又はデータの変更を検出不可能にするというリスクを最小限にするという利点も提供される。
(項2)前記暗号化データは、前記ブロックチェーントランザクションのアウトプットに含まれる、項1に記載の方法。
これは、ブロックチェーントランザクションのアウトプットの中のデータが検証可能なデジタル署名を有し、その結果、データの送信者のアイデンティティが受信者によりチェックでき、データが署名後に変更されていないことのチェックが行われるという利点を提供する。
(項3)前記暗号化データは前記トランザクションの中の公衆アクセス可能なデータに含まれる、項1又は2に記載の方法。
これは、復号のためのデータへのアクセスが、ブロックチェーントランザクションを償還/使用する必要がなく、取得できるという利点を提供する。
(項4)前記共通シークレットを用いて、前記暗号化データからセッション鍵及び/又はパスワードが導出できる、項1~3のいずれか一項に記載の方法。
(項5)前記ブロックチェーントランザクションは前記共通シークレットに基づきスクリプトを用いて償還される、項1~4のいずれか一項に記載の方法。
(項6)前記トランザクションは、前記共通シークレットに基づくデータに一方向関数を適用することに基づき、データを含むスクリプトを用いて償還される、項5に記載の方法。
これは、共通シークレットがトランザクションの償還により開示されず、従って再利用できるという利点を提供する。
(項7)前記一方向関数は、ハッシュ関数である、項6に記載の方法。
(項8)前記トランザクションの償還は前記データを公開する、項1~7のいずれか一項に記載の方法。
(項9)前記トランザクションの償還は、前記トランザクションを償還する参加者を識別させる、項1~8のいずれか一項に記載の方法。
これは、トランザクションが償還されるまでプライバシーを維持するが、1つより多くの公開鍵の場合にトランザクションの消費者を識別可能にするという利点を提供する。
(項10)暗号化データを前記第2参加者へ送信した結果として、前記第1参加者及び第3参加者に共通の第2共通シークレットに基づく暗号鍵を用いて、前記データを暗号化させるステップ、を更に含む項1~9のいずれか一項に記載の方法。
これは、通信の記録を有するマルチパーティ暗号化通信を可能にするという利点を提供する。
(項11)データが前記第2参加者から第3参加者へ送信された結果として、データを前記第1参加者へ送信させるステップ、を更に含む項1~10のいずれか一項に記載の方法。
(項12)前記共通シークレットに基づきデータに一方向関数を繰り返し適用することにより、複数の前記暗号鍵を決定するステップ、を更に含む項1~11のいずれか一項に記載の方法。
これは、共通シークレットが1回のみ確立されればよく、次に複数の鍵の生成のためのシードとして使用され、オンラインでデータを交換する必要を伴わないという利点を提供する。
(項13)前記一方向関数は、ハッシュ関数である、項12に記載の方法。
(項14)第1データを暗号化するために使用される第1暗号鍵は、前記第1暗号鍵に基づきデータに前記一方向関数の適用を適用することにより前記第1データを暗号化した後に、第2データを暗号化するために使用される第2暗号鍵に関連する、項12又は13に記載の方法。
これは、共有シークレット秘密性を維持するという利点を提供する。
(項15)前記暗号化は、前記データの部分に少なくとも1つの暗号鍵を適用することにより実行される、項1~14のいずれか一項に記載の方法。
これは、大規模データセットの場合に、効率を向上するという利点を提供する。
(項16)少なくとも1つの前記暗号鍵は行列である、項1~15のいずれか一項に記載の方法。
これは、行列乗算の非線形特性のために、よりセキュアな暗号化を可能にするという利点を提供する。
(項17)前記行列の要素は、前記共通シークレットに基づきデータに一方向関数を繰り返し適用することにより生成される、項16に記載の方法。
(項18)少なくとも1つの前記行列は、線形独立の列及び行を有する2つの行列の積から導出される、項16又は17に記載の方法。
これは、可逆行列を提供し、それにより復号鍵の計算を可能にするという利点を提供する。
(項19)前記暗号化は、前記データの少なくとも1つの部分に少なくとも1つの暗号鍵を繰り返し適用することにより実行される、項1~18のいずれか一項に記載の方法。
これは、繰り返し暗号化のような非線形特性のために、更なるセキュリティを提供するという利点を提供する。
(項20)前記第1参加者において、前記共通シークレットを決定するステップであって、前記第1参加者は、第1秘密鍵と第1公開鍵とを有する暗号システムの第1公開-秘密鍵ペアに関連付けられ、前記第2参加者は、第2秘密鍵と第2公開鍵とを有する前記暗号システムの第2公開-秘密鍵ペアに関連付けられ、前記共通シークレットは、前記第1参加者において前記第1秘密鍵及び前記第2公開鍵に基づき決定され、前記暗号システムの特性は、前記共通シークレットが前記第2参加者において前記第2秘密鍵及び前記第1公開鍵に基づき決定できることである、ステップを更に含む、項1~19のいずれか一項に記載の方法。
(項21)前記暗号システムは、楕円曲線暗号システムである、項21に記載の方法。
(項22)前記第1参加者は前記共通シークレットのシェアを有し、前記共通シークレットは、閾数の前記シェアによりアクセス可能であり、前記閾数より少ないシェアでアクセス不可能である、項1~21のいずれか一項に記載の方法。
(項23)データを暗号化するための暗号鍵を生成する方法であって、前記方法は、
第1参加者により、データの暗号化のための暗号鍵を決定するステップであって、前記暗号鍵は、第1データの少なくとも1回の排他的又はXOR結合に基づき、第2データを有する前記第1参加者及び第2参加者に共通の共通シークレットに基づき、前記共通シークレットに基づきデータに一方向関数を適用することに基づく、ステップ、を含む方法。
これは、計算上の効率性、当該方法を低処理能力の装置により使用可能にするという利点を提供する。
(項24)前記共通シークレットに基づきデータに前記一方向関数を繰り返し適用することにより、複数の前記暗号鍵を決定するステップ、を更に含む項23に記載の方法。
(項25)前記一方向関数は、ハッシュ関数である、項23又は24に記載の方法。
(項26)第3データを暗号化するために使用される第1暗号鍵は、前記第1暗号鍵に基づきデータに前記一方向関数を適用することにより前記第3データを暗号化した後に、第4データを暗号化するために使用される第2暗号鍵に関連する、項23~25のいずれか一項に記載の方法。
(項27)前記暗号化は、前記データの部分に少なくとも1つの暗号鍵を適用することにより実行される、項23~26のいずれか一項に記載の方法。
(項28)少なくとも1つの前記暗号鍵は行列である、項23~27のいずれか一項に記載の方法。
(項29)前記行列の要素は、前記共通シークレットに基づきデータに前記一方向関数を繰り返し適用することにより生成される、項28に記載の方法。
(項30)少なくとも1つの前記行列は、線形独立の列及び行を有する2つの行列の積から導出される、項28又は29に記載の方法。
(項31)前記暗号化は、前記データの少なくとも1つの部分に少なくとも1つの暗号鍵を繰り返し適用することにより実行される、項23~30のいずれか一項に記載の方法。
(項32)前記第1参加者において、前記共通シークレットを決定するステップであって、前記第1参加者は、第1秘密鍵と第1公開鍵とを有する暗号システムの第1公開-秘密鍵ペアに関連付けられ、前記第2参加者は、第2秘密鍵と第2公開鍵とを有する前記暗号システムの第2公開-秘密鍵ペアに関連付けられ、前記共通シークレットは、前記第1参加者において前記第1秘密鍵及び前記第2公開鍵に基づき決定され、前記暗号システムの特性は、前記共通シークレットが前記第2参加者において前記第2秘密鍵及び前記第1公開鍵に基づき決定できることである、ステップを更に含む、項23~31のいずれか一項に記載の方法。
(項33)前記暗号システムは、楕円曲線暗号システムである、項32に記載の方法。
(項34)前記第1参加者は前記共通シークレットのシェアを有し、前記共通シークレットは、閾数の前記シェアによりアクセス可能であり、前記閾数より少ないシェアでアクセス不可能である、項23~33のいずれか一項に記載の方法。
(項35)データを暗号化する方法であって、前記法は、
項23~34のいずれか一項に記載の方法により暗号鍵を生成するステップと、
暗号化データを提供するために、前記暗号鍵に基づきデータを暗号化するステップであって、前記データを暗号化する前記ステップは、少なくとも1つの排他的又はXOR演算を含む、ステップと、
を含む方法。
(項36)前記暗号化データをブロックチェーントランザクションに組み込むステップ、を更に含む項35に記載の方法。
(項37)前記暗号化データは、前記ブロックチェーントランザクションのアウトプットに含まれる、項36に記載の方法。
(項38)前記暗号化データは前記トランザクションの中の公衆アクセス可能なデータに含まれる、項36又は37に記載の方法。
(項39)前記共通シークレットを用いて、前記暗号化データからセッション鍵及び/又はパスワードが導出できる、項36~38のいずれか一項に記載の方法。
(項40)前記ブロックチェーントランザクションは前記共通シークレットに基づきスクリプトを用いて償還される、項36~39のいずれか一項に記載の方法。
(項41)前記トランザクションは、前記共通シークレットに基づくデータに一方向関数を適用することに基づき、データを含むスクリプトを用いて償還される、項40に記載の方法。
(項42)前記一方向関数は、ハッシュ関数である、項41に記載の方法。
(項43)前記トランザクションの償還は前記データを公開する、項36~42のいずれか一項に記載の方法。
(項44)前記トランザクションの償還は、前記トランザクションを償還する参加者を識別させる、項36~43のいずれか一項に記載の方法。
(項45)メッセージに認証データを適用する方法であって、前記方法は、
第1参加者により、第2参加者へ通信されるべきメッセージのためのメッセージ認証データを決定するステップであって、前記メッセージ認証データは、前記第1参加者及び前記第2参加者に知られている関数を、前記メッセージに、及び前記第1参加者及び前記第2参加者に共通の共通シークレットに適用することにより決定される、ステップ、を含む方法。
これは、メッセージ認証データが最初に決定されて以来、データが損傷していないことをチェックするために、メッセージ認証データを第2ノードにおいて再計算可能にするという利点を提供する。
(項46)前記メッセージは、ブロックチェーントランザクションに含まれる、項45に記載の方法。
(項47)前記メッセージは前のブロックチェーントランザクションに関するデータを含む、項46に記載の方法。
これは、トランザクションデータが送信中に変更されていないことのチェックをオフラインで行うことを可能にするという利点を提供する。これは、特に、低能力装置の場合に役立つ。
(項48)前記メッセージ認証データは、前記ブロックチェーントランザクションに含まれる、項46又は47に記載の方法。
(項49)少なくとも前記第2参加者へ、前記ブロックチェーントランザクションと別個に前記メッセージ認証データを通信するステップ、を更に含む項46~48のいずれか一項に記載の方法。
(項50)前記メッセージ認証データは前記共通シークレットに基づく複数のデータアイテムを含む、項45~49のいずれか一項に記載の方法。
(項51)複数の前記データアイテムは、前記メッセージのそれぞれの部分に適用される、項50に記載の方法。
これは、大規模データアイテムの場合に、メッセージデータの処理を更に効率的にするという利点を提供する。
(項52)前記関数は、少なくとも1つの排他的又はXOR演算を含む、項45~51のいずれか一項に記載の方法。
(項53)前記メッセージ認証データは、前記共通シークレットに基づき一方向関数をデータに繰り返し適用することにより決定される複数のデータアイテムを含む、項45~52のいずれか一項に記載の方法。
(項54)前記一方向関数は、ハッシュ関数である、項53に記載の方法。
(項55)第1メッセージに適用される第1データアイテムは、前記共通シークレットに基づき前記一方向関数をデータに適用することにより前記第1データアイテムを前記第1メッセージに適用した後に、第2メッセージに適用される第2データに関連する、項53又は54に記載の方法。
(項56)前記第1参加者において、前記共通シークレットを決定するステップであって、前記第1参加者は、第1秘密鍵と第1公開鍵とを有する暗号システムの第1公開-秘密鍵ペアに関連付けられ、前記第2参加者は、第2秘密鍵と第2公開鍵とを有する前記暗号システムの第2公開-秘密鍵ペアに関連付けられ、前記共通シークレットは、前記第1参加者において前記第1秘密鍵及び前記第2公開鍵に基づき決定され、前記暗号システムの特性は、前記共通シークレットが前記第2参加者において前記第2秘密鍵及び前記第1公開鍵に基づき決定できることである、ステップを更に含む、項45~55のいずれか一項に記載の方法。
(項57)前記暗号システムは、楕円曲線暗号システムである、項56に記載の方法。
(項58)前記第1参加者は前記共通シークレットのシェアを有し、前記共通シークレットは、閾数の前記シェアによりアクセス可能であり、前記閾数より少ないシェアでアクセス不可能である、項45~57のいずれか一項に記載の方法。
(項59)コンピュータにより実装されるシステムであって、
プロセッサと、
前記プロセッサによる実行の結果として、前記システムに項1~58のいずれかに記載のコンピュータにより実施される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、
を含むシステム。
(項60)実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、項1~58のいずれかに記載の方法の実施形態を実行させる、非一時的コンピュータ可読記憶媒体。
上述の実施形態は、本開示を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本開示の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。請求項において、括弧内の任意の参照符号は、請求項を限定すると考えられるべきではない。用語「有する」及び「含む」(comprising、comprises)等は、任意の請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、そのような要素の複数の参照を排除しない。逆も同様である。本開示は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、1つの同じハードウェアアイテムにより具現化されてよい。単に特定の手段が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。
参考文献
[1] Merkle, Ralph C. (April 1978). "Secure Communications Over Insecure Channels". Communications of the ACM. 21 (4): 294-299.
[2] Diffie, Whitfield; Hellman, Martin E. (November 1976). "New Directions in Cryptography」 IEEE Transactions on Information Theory. 22 (6): 644-654.
[3] Menezes, A.; van Oorschot, P.; Vanstone, S. (1996). “Handbook of Applied Cryptography”. CRC Press. p.500.
[4] International patent application WO2017/145016
[5] Belding, J.; Georges, S.; Barr, S.; Uddeen, F.; Lee, B. (2018) “Tokenized: A token Protocol for the Bitcoin (BSV) Network.
[6] Sastry, V.U. K.; Anup Kumar, K. (2012) “A Modified Feistel Cypher Involving XOR Operation and Modular Arithmetic Inverse of a Key Matrix”. International Journal of Advanced Computer Science and Applications (IJACSA). 3(7):35-39.
[7] William H, Brian P, Flannery P, Saul A, et al. Numerical recipes in C: The Art of Scientific Computing (1992) Cambridge.

Claims (60)

  1. データを暗号化する方法であって、
    第1参加者により、前記第1参加者及び第2参加者に共通の共通シークレットに基づき、データの暗号化のための暗号鍵を決定するステップと、
    暗号化データを提供するために、前記暗号鍵に基づき前記データを暗号化するステップであって、前記データを暗号化するステップは、少なくとも1つの排他的又はXOR演算を含む、ステップと、
    前記暗号化データをブロックチェーントランザクションに組み込むステップと、
    を含む方法。
  2. 前記暗号化データは、前記ブロックチェーントランザクションのアウトプットに含まれる、請求項1に記載の方法。
  3. 前記暗号化データは前記トランザクションの中の公衆アクセス可能なデータに含まれる、請求項1又は2に記載の方法。
  4. 前記共通シークレットを用いて、前記暗号化データからセッション鍵及び/又はパスワードが導出できる、請求項1~3のいずれか一項に記載の方法。
  5. 前記ブロックチェーントランザクションは前記共通シークレットに基づきスクリプトを用いて償還される、請求項1~4のいずれか一項に記載の方法。
  6. 前記トランザクションは、前記共通シークレットに基づくデータに一方向関数を適用することに基づき、データを含むスクリプトを用いて償還される、請求項5に記載の方法。
  7. 前記一方向関数は、ハッシュ関数である、請求項6に記載の方法。
  8. 前記トランザクションの償還は前記データを公開する、請求項1~7のいずれか一項に記載の方法。
  9. 前記トランザクションの償還は、前記トランザクションを償還する参加者を識別させる、請求項1~8のいずれか一項に記載の方法。
  10. 暗号化データを前記第2参加者へ送信した結果として、前記第1参加者及び第3参加者に共通の第2共通シークレットに基づく暗号鍵を用いて、前記データを暗号化させるステップ、を更に含む請求項1~9のいずれか一項に記載の方法。
  11. データが前記第2参加者から第3参加者へ送信された結果として、データを前記第1参加者へ送信させるステップ、を更に含む請求項1~10のいずれか一項に記載の方法。
  12. 前記共通シークレットに基づきデータに一方向関数を繰り返し適用することにより、複数の前記暗号鍵を決定するステップ、を更に含む請求項1~11のいずれか一項に記載の方法。
  13. 前記一方向関数は、ハッシュ関数である、請求項12に記載の方法。
  14. 第1データを暗号化するために使用される第1暗号鍵は、前記第1暗号鍵に基づきデータに前記一方向関数の適用を適用することにより前記第1データを暗号化した後に、第2データを暗号化するために使用される第2暗号鍵に関連する、請求項12又は13に記載の方法。
  15. 前記暗号化は、前記データの部分に少なくとも1つの暗号鍵を適用することにより実行される、請求項1~14のいずれか一項に記載の方法。
  16. 少なくとも1つの前記暗号鍵は行列である、請求項1~15のいずれか一項に記載の方法。
  17. 前記行列の要素は、前記共通シークレットに基づきデータに一方向関数を繰り返し適用することにより生成される、請求項16に記載の方法。
  18. 少なくとも1つの前記行列は、線形独立の列及び行を有する2つの行列の積から導出される、請求項16又は17に記載の方法。
  19. 前記暗号化は、前記データの少なくとも1つの部分に少なくとも1つの暗号鍵を繰り返し適用することにより実行される、請求項1~18のいずれか一項に記載の方法。
  20. 前記第1参加者において、前記共通シークレットを決定するステップであって、前記第1参加者は、第1秘密鍵と第1公開鍵とを有する暗号システムの第1公開-秘密鍵ペアに関連付けられ、前記第2参加者は、第2秘密鍵と第2公開鍵とを有する前記暗号システムの第2公開-秘密鍵ペアに関連付けられ、前記共通シークレットは、前記第1参加者において前記第1秘密鍵及び前記第2公開鍵に基づき決定され、前記暗号システムの特性は、前記共通シークレットが前記第2参加者において前記第2秘密鍵及び前記第1公開鍵に基づき決定できることである、ステップを更に含む、請求項1~19のいずれか一項に記載の方法。
  21. 前記暗号システムは、楕円曲線暗号システムである、請求項20に記載の方法。
  22. 前記第1参加者は前記共通シークレットのシェアを有し、前記共通シークレットは、閾数の前記シェアによりアクセス可能であり、前記閾数より少ないシェアでアクセス不可能である、請求項1~21のいずれか一項に記載の方法。
  23. データを暗号化するための暗号鍵を生成する方法であって、前記方法は、
    第1参加者により、データの暗号化のための暗号鍵を決定するステップであって、前記暗号鍵は、第1データの少なくとも1つの排他的又はXOR結合に基づき、第2データを有する前記第1参加者及び第2参加者に共通の共通シークレットに基づき、前記共通シークレットに基づきデータに一方向関数を適用することに基づく、ステップ、を含む方法。
  24. 前記共通シークレットに基づきデータに前記一方向関数を繰り返し適用することにより、複数の前記暗号鍵を決定するステップ、を更に含む請求項23に記載の方法。
  25. 前記一方向関数は、ハッシュ関数である、請求項23又は24に記載の方法。
  26. 第3データを暗号化するために使用される第1暗号鍵は、前記第1暗号鍵に基づきデータに前記一方向関数を適用することにより前記第3データを暗号化した後に、第4データを暗号化するために使用される第2暗号鍵に関連する、請求項23~25のいずれか一項に記載の方法。
  27. 前記暗号化は、前記データの部分に少なくとも1つの暗号鍵を適用することにより実行される、請求項23~26のいずれか一項に記載の方法。
  28. 少なくとも1つの前記暗号鍵は行列である、請求項23~27のいずれか一項に記載の方法。
  29. 前記行列の要素は、前記共通シークレットに基づきデータに前記一方向関数を繰り返し適用することにより生成される、請求項28に記載の方法。
  30. 少なくとも1つの前記行列は、線形独立の列及び行を有する2つの行列の積から導出される、請求項28又は29に記載の方法。
  31. 前記暗号化は、前記データの少なくとも1つの部分に少なくとも1つの暗号鍵を繰り返し適用することにより実行される、請求項23~30のいずれか一項に記載の方法。
  32. 前記第1参加者において、前記共通シークレットを決定するステップであって、前記第1参加者は、第1秘密鍵と第1公開鍵とを有する暗号システムの第1公開-秘密鍵ペアに関連付けられ、前記第2参加者は、第2秘密鍵と第2公開鍵とを有する前記暗号システムの第2公開-秘密鍵ペアに関連付けられ、前記共通シークレットは、前記第1参加者において前記第1秘密鍵及び前記第2公開鍵に基づき決定され、前記暗号システムの特性は、前記共通シークレットが前記第2参加者において前記第2秘密鍵及び前記第1公開鍵に基づき決定できることである、ステップを更に含む、請求項23~31のいずれか一項に記載の方法。
  33. 前記暗号システムは、楕円曲線暗号システムである、請求項32に記載の方法。
  34. 前記第1参加者は前記共通シークレットのシェアを有し、前記共通シークレットは、閾数の前記シェアによりアクセス可能であり、前記閾数より少ないシェアでアクセス不可能である、請求項23~33のいずれか一項に記載の方法。
  35. データを暗号化する方法であって、前記方法は、
    請求項23~34のいずれか一項に記載の方法により暗号鍵を生成するステップと、
    暗号化データを提供するために、前記暗号鍵に基づきデータを暗号化するステップであって、前記データを暗号化する前記ステップは、少なくとも1つの排他的又はXOR演算を含む、ステップと、
    を含む方法。
  36. 前記暗号化データをブロックチェーントランザクションに組み込むステップ、を更に含む請求項35に記載の方法。
  37. 前記暗号化データは、前記ブロックチェーントランザクションのアウトプットに含まれる、請求項36に記載の方法。
  38. 前記暗号化データは前記トランザクションの中の公衆アクセス可能なデータに含まれる、請求項36又は37に記載の方法。
  39. 前記共通シークレットを用いて、前記暗号化データからセッション鍵及び/又はパスワードが導出できる、請求項36~38のいずれか一項に記載の方法。
  40. 前記ブロックチェーントランザクションは前記共通シークレットに基づきスクリプトを用いて償還される、請求項36~39のいずれか一項に記載の方法。
  41. 前記トランザクションは、前記共通シークレットに基づくデータに一方向関数を適用することに基づき、データを含むスクリプトを用いて償還される、請求項40に記載の方法。
  42. 前記一方向関数は、ハッシュ関数である、請求項41に記載の方法。
  43. 前記トランザクションの償還は前記データを公開する、請求項36~42のいずれか一項に記載の方法。
  44. 前記トランザクションの償還は、前記トランザクションを償還する参加者を識別させる、請求項36~43のいずれか一項に記載の方法。
  45. メッセージに認証データを適用する方法であって、前記方法は、
    第1参加者により、第2参加者へ通信されるべきメッセージのためのメッセージ認証データを決定するステップであって、前記メッセージ認証データは、前記第1参加者及び前記第2参加者に知られている関数を、前記メッセージに、及び前記第1参加者及び前記第2参加者に共通の共通シークレットに適用することにより決定される、ステップ、を含む方法。
  46. 前記メッセージは、ブロックチェーントランザクションに含まれる、請求項45に記載の方法。
  47. 前記メッセージは前のブロックチェーントランザクションに関するデータを含む、請求項46に記載の方法。
  48. 前記メッセージ認証データは、前記ブロックチェーントランザクションに含まれる、請求項46又は47に記載の方法。
  49. 少なくとも前記第2参加者へ、前記ブロックチェーントランザクションと別個に前記メッセージ認証データを通信するステップ、を更に含む請求項46~48のいずれか一項に記載の方法。
  50. 前記メッセージ認証データは前記共通シークレットに基づく複数のデータアイテムを含む、請求項45~49のいずれか一項に記載の方法。
  51. 複数の前記データアイテムは、前記メッセージのそれぞれの部分に適用される、請求項50に記載の方法。
  52. 前記関数は、少なくとも1つの排他的又はXOR演算を含む、請求項45~51のいずれか一項に記載の方法。
  53. 前記メッセージ認証データは、前記共通シークレットに基づき一方向関数をデータに繰り返し適用することにより決定される複数のデータアイテムを含む、請求項45~52のいずれか一項に記載の方法。
  54. 前記一方向関数は、ハッシュ関数である、請求項53に記載の方法。
  55. 第1メッセージに適用される第1データアイテムは、前記共通シークレットに基づき前記一方向関数をデータに適用することにより前記第1データアイテムを前記第1メッセージに適用した後に、第2メッセージに適用される第2データに関連する、請求項53又は54に記載の方法。
  56. 前記第1参加者において、前記共通シークレットを決定するステップであって、前記第1参加者は、第1秘密鍵と第1公開鍵とを有する暗号システムの第1公開-秘密鍵ペアに関連付けられ、前記第2参加者は、第2秘密鍵と第2公開鍵とを有する前記暗号システムの第2公開-秘密鍵ペアに関連付けられ、前記共通シークレットは、前記第1参加者において前記第1秘密鍵及び前記第2公開鍵に基づき決定され、前記暗号システムの特性は、前記共通シークレットが前記第2参加者において前記第2秘密鍵及び前記第1公開鍵に基づき決定できることである、ステップを更に含む、請求項45~55のいずれか一項に記載の方法。
  57. 前記暗号システムは、楕円曲線暗号システムである、請求項56に記載の方法。
  58. 前記第1参加者は前記共通シークレットのシェアを有し、前記共通シークレットは、閾数の前記シェアによりアクセス可能であり、前記閾数より少ないシェアでアクセス不可能である、請求項45~57のいずれか一項に記載の方法。
  59. コンピュータにより実装されるシステムであって、
    プロセッサと、
    前記プロセッサによる実行の結果として、前記システムに請求項1~58のいずれかに記載のコンピュータにより実施される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、
    を含むシステム。
  60. 実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、請求項1~58のいずれかに記載の方法の実施形態を実行させる、非一時的コンピュータ可読記憶媒体。
JP2021559820A 2019-04-16 2020-04-03 データを暗号化するためのコンピュータにより実施される方法及びシステム Pending JP2022528925A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1905348.7A GB201905348D0 (en) 2019-04-16 2019-04-16 Computer implemented method and system for encrypting data
GB1905348.7 2019-04-16
PCT/IB2020/053218 WO2020212796A1 (en) 2019-04-16 2020-04-03 Computer implemented method and system for encrypting data

Publications (2)

Publication Number Publication Date
JP2022528925A true JP2022528925A (ja) 2022-06-16
JPWO2020212796A5 JPWO2020212796A5 (ja) 2023-03-14

Family

ID=66809863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021559820A Pending JP2022528925A (ja) 2019-04-16 2020-04-03 データを暗号化するためのコンピュータにより実施される方法及びシステム

Country Status (5)

Country Link
EP (1) EP3957044A1 (ja)
JP (1) JP2022528925A (ja)
CN (1) CN113711564A (ja)
GB (1) GB201905348D0 (ja)
WO (1) WO2020212796A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201913144D0 (en) 2019-09-12 2019-10-30 Nchain Holdings Ltd Sharing data via transactions of a blockchain
CN113098691B (zh) * 2021-03-25 2021-11-23 北京百度网讯科技有限公司 数字签名方法、签名信息的验证方法、相关装置及电子设备
AU2022315209A1 (en) * 2021-07-22 2024-02-22 Howard University Hybrid public-key and private-key cryptographic systems based on iso-rsa encryption scheme
GB2616623A (en) * 2022-03-15 2023-09-20 Nchain Licensing Ag Computer implemented methods & systems
CN115296887B (zh) * 2022-08-02 2023-11-17 中国电子科技集团公司信息科学研究院 数据传输方法、装置、电子设备和存储介质
CN117579392B (zh) * 2024-01-16 2024-04-16 北京富通亚讯网络信息技术有限公司 基于加密处理的可靠数据传输方法、装置、设备及介质
CN117592087B (zh) * 2024-01-18 2024-05-07 三一智造(深圳)有限公司 一种基于区块链的数据安全加密保护系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11316671B2 (en) * 2015-06-22 2022-04-26 Viasat, Inc. Accelerated encryption and decryption of files with shared secret and method therefor
AU2017223133B2 (en) 2016-02-23 2022-09-08 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
CA3014727A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
US10129223B1 (en) * 2016-11-23 2018-11-13 Amazon Technologies, Inc. Lightweight encrypted communication protocol
TWI760546B (zh) * 2017-08-23 2022-04-11 安地卡及巴布達商區塊鏈控股有限公司 用於高安全性高速資料加密及傳輸的電腦實施系統與方法

Also Published As

Publication number Publication date
WO2020212796A1 (en) 2020-10-22
GB201905348D0 (en) 2019-05-29
CN113711564A (zh) 2021-11-26
EP3957044A1 (en) 2022-02-23

Similar Documents

Publication Publication Date Title
TWI725124B (zh) 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰
CN108885741B (zh) 一种实现区块链上交换的令牌化方法及系统
JP2022528925A (ja) データを暗号化するためのコンピュータにより実施される方法及びシステム
TWI813616B (zh) 用以獲取數位簽署資料之電腦實行方法及系統
KR20200096784A (ko) 트러스트 레스 또는 무 딜러 방식으로 동작하는 그룹에 걸쳐 계산 작업을 수행하기 위한 컴퓨터 구현 시스템 및 방법
US11979492B2 (en) Computer-implemented system and method for distributing shares of digitally signed data
US20210344500A1 (en) Computer-implemented system and method for transferring access to digital resource
CN112119609A (zh) 用于传达秘密的方法和系统
CN114095181B (zh) 一种基于国密算法的门限环签名方法及系统
KR20210063378A (ko) 공통 비밀을 공유하는 컴퓨터 구현 시스템 및 방법
KR20220074899A (ko) 보안 통신에 사용하기 위한 키 생성
TW202232913A (zh) 共享金鑰產生技術
Sathya et al. A comprehensive study of blockchain services: future of cryptography
Ghaffar et al. A lightweight and efficient remote data authentication protocol over cloud storage environment
US20220200792A1 (en) Selective data disclosure via a block chain
Sarumi A review of encryption methods for secure data communication
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
JP7492508B2 (ja) コンピュータにより実施される、デジタル署名されたデータのシェアを分配するシステム及び方法
Kumar Yadav et al. An Efficient Approach for Security in Cloud Computing
CN115460020A (zh) 数据共享方法、装置、设备及存储介质
CN114189329A (zh) 一种公钥认证可否认加密方法及系统
Kangas et al. Design and implementation of a collaborative secure storage solution

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240423