CN113711564A - 用于加密数据的计算机实现的方法和系统 - Google Patents

用于加密数据的计算机实现的方法和系统 Download PDF

Info

Publication number
CN113711564A
CN113711564A CN202080029452.6A CN202080029452A CN113711564A CN 113711564 A CN113711564 A CN 113711564A CN 202080029452 A CN202080029452 A CN 202080029452A CN 113711564 A CN113711564 A CN 113711564A
Authority
CN
China
Prior art keywords
data
key
common secret
transaction
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
CN202080029452.6A
Other languages
English (en)
Inventor
C·S·赖特
B·G·多伊伦
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 CN113711564A publication Critical patent/CN113711564A/zh
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)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

公开了一种加密数据的方法。该方法包括在与密码系统的具有第一私钥(VA)和第一公钥(PA)的第一公钥私钥对相关联的第一节点处确定第一节点和第二节点共有的公共秘密(S1),其中,该第二节点与密码系统的具有第二私钥(VB)和第二公钥(PB)的第二公钥私钥对相关联。基于第一私钥和第二公钥确定公共秘密,并且密码系统的特性使得可以基于第二私钥和第一公钥确定公共秘密。确定基于公共秘密的加密密钥以用于数据(M)的加密,并且基于加密密钥对数据进行加密,其中,加密数据的步骤包括异或(XOR)运算。

Description

用于加密数据的计算机实现的方法和系统
技术领域
本公开涉及用于加密数据的计算机实现的方法和系统,并且特别地但不排他地涉及在区块链上使用的此类方法。本公开还涉及一种将认证数据应用于消息的方法。
背景技术
在本文档中,我们使用术语“区块链”来包括所有形式的电子的基于计算机的分布式账本(ledger)。这些包括基于共识的区块链和交易链技术、许可的和未被许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本公开不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本公开的范围内。术语“用户”在本文中可以指人或基于处理器的资源。
区块链是一种点对点的电子分类帐,实现为基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构对区块链系统中参与方之间的数字资产的控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,因此区块被链接在一起来创建所有交易的永久、不可更改的记录,这些交易自其开始就已经写入区块链。交易包含嵌入到其输入和输出中的称为脚本的小程序,这些小程序指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定脚本和解锁脚本来对未花费的交易(unspent transaction,UTXO)执行该验证工作。如果锁定脚本和解锁脚本的执行评估为真(TRUE),则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点验证该交易–如果交易经过验证,则该节点将其中继到网络中的其他节点;ii)将该交易添加到由矿工建造的新区块;以及iii)该交易被挖掘,即,被添加到过去交易的公共账本。
尽管区块链技术因使用加密货币实现方式而被广泛了解,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据这两者以实现新系统。如果区块链可以用于不限于加密货币领域的自动化任务和过程,那将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件的永久性、防篡改记录、分布式处理等),同时在其应用中具有更多用途。
在各方之间的通信发生在不安全的网络上的系统中,一个重要的问题是共享私钥的确立。已经开发了安全密钥分发协议来解决该问题,该安全密钥分发协议包括迪菲-赫尔曼(Diffie-Helman,DH)对称密钥交换[Merkle,Ralph C.(1978年4月),“SecureCommunications Over Insecure Channels(通过不安全信道的安全通信)”,Communications of the ACM.21(4):294–299,和Diffie,Whitfield;Hellman,Martin E.(1976年11月),“New Directions in Cryptography(密码学的新方向)”,IEEETransactions on Information Theory.22(6):644–654]和三次传递协议(three-passprotocol)[Menezes,A.;van Oorschot,P.;Vanstone,S.(1996年),“Handbook of AppliedCryptography(应用密码学手册)”,CRC Press.第500页]。尽管这些方法实现了安全加密,但生成和共享大型密钥集或连续生成密钥在计算方面很昂贵。
国际专利申请WO2017/145016公开了一种仅使用公钥、确定性密钥和椭圆曲线代数特性确立一系列共享秘密密钥的方法。无需通过公共网络传输共享秘密密钥,不受中间人攻击的影响。从该共享秘密密钥,通过椭圆曲线算术或本文的工作中提出的密钥生成扩展推导出任意数量的附加共享私钥几乎是微不足道的。应该注意的是,该该协议与密钥长度无关(agnostic),因为密钥可以被连接(concatenate)或截断以达到期望的长度。
期望为国际专利申请WO2017/145016中公开的协议提供计算效率更高的扩展,但保持相同的安全级别。
发明内容
因此,根据本公开,提供了如所附权利要求书中限定的方法。
可以提供一种加密数据的方法,该方法包括:
由第一参与方基于所述第一参与方和第二参与方共有的公共秘密来确定用于数据的加密的加密密钥;
基于所述加密密钥对所述数据进行加密以提供加密数据,其中,对所述数据进行加密的步骤包括至少一个异或(XOR)运算;以及
将所述加密数据并入区块链交易中。
可以提供一种生成用于加密数据的加密密钥的方法,该方法包括:
由第一参与方确定用于数据的加密的加密密钥,其中,该加密密钥基于第一数据与第二数据的至少一个异或(XOR)组合,该第一数据基于所述第一参与方和第二参与方共有的公共秘密,该第二数据基于对基于公共秘密的数据应用单向函数。
可以提供一种将认证数据应用于消息的方法,该方法包括:
由第一参与方确定用于要传送到第二参与方的消息的消息认证数据,其中,该消息认证数据是通过将所述第一参与方和所述第二参与方已知的函数应用于所述消息以及所述第一参与方和所述第二参与方共有的公共秘密来确定的。
可以提供了一种系统,包括:
处理器;以及
包括可执行指令的存储器,该可执行指令由于被处理器执行而使得该系统执行本文所述的计算机实现的方法的任何实施例。
可以提供非瞬时性计算机可读存储介质,其上存储有可执行指令,该可执行指令由于被计算机系统的处理器执行而使得计算机系统至少执行本文所述的计算机实现的方法的任何实施例。
附图说明
将参考附图描述根据本公开的各种实施例,其中:
图1是加密和解密协议的示意图;
图2示出了用于区块链交易的赎回的区块链脚本的处理;
图3示出了区块数据加密和解密方案;
图4示出了并入了消息认证数据的区块链交易;
图5示出了消息认证码协议;以及
图6是示出其中可以实现各种实施例的计算环境的示意图。
具体实施方式
基于XOR的加密方案
由符号
Figure BDA0003307772890000042
表示的XOR运算是两个二进制位之间的运算,当且仅当输入位中的一个等于1时才返回1。否则,该运算返回值0。这可以由以下真值表进行概括:
Figure BDA0003307772890000041
给定消息M和秘密密钥S,该消息的派生密文由
Figure BDA0003307772890000043
给出。例如,对于消息M=011110和秘密密钥S=101010,使用逐位XOR运算来计算加密消息:
Figure BDA0003307772890000046
解密过程利用XOR运算的关联性质和
Figure BDA0003307772890000044
的特性来检索原始消息。即,
Figure BDA0003307772890000045
因此,要检索原始消息(M),只需要计算共享秘密密钥(S)与密文消息(M′)的逐位XOR:
Figure BDA0003307772890000047
假设任何拦截方都不知道秘密密钥和消息,这提供了完全安全的一次性密码(one-time-pad,OTP)通信方法,条件是每个秘密密钥只使用一次。通过公共网络转移密文的一个风险是在拦截方攻击的情况下二进制字符串的延展性(malleability)。然而,这可以通过利用公共区块链的不变性来规避,如下所示。
安全确立共享私钥
正如国际专利申请WO2017/145016中所确立的那样,可以在两方(例如,爱丽丝(A)和鲍勃(B))之间使用他们的公钥、预先约定的椭圆曲线(例如,scep256k1)和生成器点G来导出共享私钥。以他们各自的私钥(爱丽丝和鲍勃分别为VA和VB)开始。他们各自通过使用椭圆曲线运算计算他们的公钥开始:
PA=VA·G
PB=VB·G
并继续交换他们的公钥。爱丽丝使用她的私钥(VA)和鲍勃的公钥(PB)来计算共享私钥(SAB):
SAB=VA·PB
鲍勃使用他的私钥(VB)和爱丽丝的公钥(PA)来计算共享私钥(SAB):
SAB=VB·PA
使用椭圆曲线点加法的关联性和交换性,已知两个计算值是相同的:
VA·PB=VA·(VB·G)=(VA·VB)·G=(VB·VA)·G=VB·(VA·G)=VB·PA
由于共享私钥的计算结果是椭圆曲线上的点(xAB,yAB),所以他们可以约定例如取S1=xAB。这与国际专利申请WO2017/145016中描述的布置(arrangement)具有相同的层次结构和相同的过程集合,但它不是使用生成的秘密作为对称密钥,而是在基于异或的意义上将其用作一次性密码(OTP)。正如在国际专利申请WO2017/145016中一样,该工作中的每个过程都可以被扩展为使用类似的分层密钥生成方案来并入确定性密钥。
图1示出了体现本公开的密钥生成和XOR消息加密协议,用于通过不安全的公共网络在两方之间进行通信。在爱丽丝和鲍勃之间交换公钥PA和PB之后,他们各自使用椭圆曲线乘法来计算共享私钥S1。爱丽丝使用秘密密钥S1加密消息M,并将所得到的密文M′包括在区块链2上的交易中。鲍勃读取密文M′并使用共享秘密密钥对其进行解密。图1中的实线框表示私有参数,而虚线框表示公开共享的信息。
使用区块链的不可延展的XOR密码系统
公有区块链的不变性可以解决通过不安全网络转移二进制密文的延展性问题。密文可以包括在比特币交易内部,该比特币交易被发送到网络并不可更改地记录在区块链上。如果密文包括在交易的输出中,该交易由发送方签署并由挖矿节点进行验证,那么只有在该密文在签署之后还未被更改时,它才会被记录在区块链上。类似地,从区块链读取密文的人可以通过检查交易的哈希值等于交易ID来确保交易数据的完整性。这确保了密文的端到端不变性。此外,由于签名对于公钥而言是独特的,因此还可以验证发送方的身份。需要注意的是,如果数据包括在输入脚本中,则无法保证真实性,因为交易的该部分没有由发送方进行签署。
存在用于在交易的输出中插入密文的两种选项。
1.不可花费的输出(OP_RETURN)
如果数据包括在OP_RETURN中,则它无法在未来的锁定脚本中使用,但可用作密文的存储。例如,如果接收方鲍勃的地址包括在交易中,则鲍勃的钱包可以扫描区块链以引用其地址(例如,使用智能钱包,诸如令牌化协议中使用的钱包[William H,Brian P,Flannery P,Saul A等人,Numerical recipes in C:The Art of Scientific Computing(1992)Cambridge])并定位密文。然后鲍勃可以利用上面确立的协议计算共享私钥(S1),然后使用
Figure BDA0003307772890000061
本地检索原始消息。该协议在图1中示意性地示出。使用该方法,数据的传输可以抵御中间人攻击。
应该注意的是,由于该过程只需要XOR计算,因此这可以很容易地在低处理能力的装置上执行。
作为用例,假设服务提供商爱丽丝(A)希望向用户鲍勃(B)发送一次性会话密钥。该会话密钥可以被包括作为寻址到鲍勃的消息,并用于验证登录凭证、启动通信信道,或在需要身份验证的任何其他应用程序中使用,取代常规的基于用户名和密码的系统。
在两方确立一次性会话密钥K方面,该过程如下进行。为了能够重用共享秘密密钥,不应直接在模糊消息(obscuring message)中使用它。通过使用共享密钥的哈希值(H(S1))来加密会话密钥,单个暴露的会话密钥不会揭露秘密密钥。
1)A计算S1=xAB
2)A计算
Figure BDA0003307772890000072
3)A创建到B的交易并将
Figure BDA0003307772890000073
作为公共文本包括在脚本中。
4)B接收Tx,在接收到时,B不需要花费tx来查看
Figure BDA0003307772890000074
5)B计算S1=xAB
6)B计算
Figure BDA0003307772890000075
7)B现在具有会话密钥,该会话密钥是私有的,并且可以在其他系统上用于认证或访问(例如,用于控制和证明令牌)。
然后爱丽丝可以要求解哈希谜题解h(K)以便允许访问她的系统。由于这里没有暴露S1的风险,因此继续重用同一共享秘密是安全的。
2.可花费的输出
可以使用与上述类似的方法,使用OP_DROP而不是OP_RETURN将密文插入为可花费的输出。但是,在比特币脚本中,操作码OP_XOR允许通过解密密文来施加花费条件,从而打开对掩模数据(masking data)的兴趣直到花费之后为止。例如,XOR运算可用于模糊输入或交换OTP密钥,爱丽丝和鲍勃可使用该OTP密钥来创建更私有和安全的脚本。在不与鲍勃进行任何交互的情况下,爱丽丝可以使用该秘密值(S1)来隐藏对他的支付同时支付保持未被花费。
为此,爱丽丝使用以下形式的锁定脚本:
OP_DUPOP_HASH<h(S1)>OP_EQUALVERIFY
Figure BDA0003307772890000071
OP_DUPOP_HASHOP_ROTOP_EQUALVERIFYOP_CHECKSIG
这是通过以下输入求解的:
<SigPB><PB><S1>
锁定脚本的第一行是哈希谜题,其确保使用正确的共享秘密。第二行使用秘密来解密<h(PB)>。然后第三行如在标准交易中一样检查签名。赎回过程的评估在图2中详细示出。
需要注意的是,当上述交易被花费时,共享秘密被暴露。这可以通过在上述脚本中用S′=h(S1)替换S1来规避,鲍勃和爱丽丝都可以计算S′=h(S1)。
例如,爱丽丝可以创建由鲍勃或第三方查理可赎回的交易。可以使用爱丽丝和查理之间的共享密钥以相同的方式将查理的赎回条件包括在锁定脚本中。使用上述哈希函数和XOR运算的特性,可以完全隐藏鲍勃和查理的身份,直到交易被赎回为止。当交易被赎回时,仅赎回交易的一方的身份被暴露。
如果两方(或更多方)匿名竞争成为第一个满足条件或等待一方可以赎回的条件(这可以包括体育或其他事件的结果),这可能很有用。如果存在多方(例如,鲍勃和查理),爱丽丝可以在同一脚本中将交易设置为鲍勃或查理可赎回,而另一方不知道。即,爱丽丝使用条件OP_OR构建锁定脚本,其可由鲍勃或查理赎回。这是鲍勃和查理可以计算他们自己的公钥哈希值的XOR值以进行赎回但另一个不能如此的场景。
多方通信
XOR方案的多功能性允许轻松扩展通信网络以包括许多成员,每个成员都具有在他们之间通信的安全手段。使用上述密钥分发协议或主密钥派生方法,使用XOR加密和一次性密码直接确立去中心化的通信网络。即使在低处理能力的装置上,基于XOR的加密也允许安全且快速的解密。对于服务提供商验证身份并向选定方给予访问权限的中心化的系统,必须解决附加问题。
例如,假设由经理爱丽丝(A)组成的公司或组织,爱丽丝(A)可能想要在员工之间提供加密通信,同时还保存这些通信的记录。举个例子,爱丽丝正在向鲍勃(B)发送消息,而鲍勃正在向查理(C)发送消息(A→B,B→C)。爱丽丝可能想要保存所有交易的记录,以具有其网络上的事件的完整记录。爱丽丝和鲍勃可以使用他们的共享密钥(SAB1)进行通信。当鲍勃向查理发送消息时,他们使用他们的共享密钥(SBC1),但该消息也使用派生私钥(SAB2)转发给爱丽丝。
Figure BDA0003307772890000091
然后,这将爱丽丝与向前的所有其他方链接起来,以确保她始终了解网络上的动作。这允许不相互信任的用户之间的私人通信,同时不完全对服务提供商隐藏。
密钥派生方案
使用从上述过程导出的初始共享秘密密钥,可以安全且有效地生成附加密钥,而无需确立新的私钥集。通过利用反转哈希函数的不可行性,可以在不损害安全性的情况下放宽XOR加密方案的一次性密码(OTP)限制。这可以扩展到非常大数量的密钥,以便能够安全地加密大型数据格式(例如,多媒体文件),这将在下面进行描述。
使用如上单个椭圆曲线计算,两方确立私钥S1=xAB。可以从该消息中导出一系列密钥以对预定数量(例如,n)的消息进行编码。密钥集可以被导出为
Figure BDA0003307772890000092
产生:
S1=xAB
Figure BDA0003307772890000093
Figure BDA0003307772890000094
Figure BDA0003307772890000095
Figure BDA0003307772890000096
仅使用初始共享秘密和仅单个初始椭圆曲线点计算来生成该密钥集。然后可以使用这些密钥对n条消息进行编码,以Sn开始。即,
Figure BDA0003307772890000097
Figure BDA0003307772890000098
Figure BDA0003307772890000099
Figure BDA00033077728900000910
初始共享秘密永远不会单独用于加密消息,这样,单个泄露的消息不会破坏所有加密消息的安全性。此外,在密钥计算中使用哈希函数防止计算的逆转。因此,通过在密钥中以相反的顺序(Sn+1→S2)使用,找出Sn+1不会损害Sn。由于确定S1和Si是不可行的,因此即使给定消息M(n-i+1),也可以安全地重用密钥。
使用区块密码的大数据加密
为了有效地加密大数据集(例如,多媒体文件),可以将数据分成固定长度的区块,并对每个区块执行相同的操作。之前已经表明,可以通过利用矩阵乘法的特性来为区块密码方案提供附加的安全性[Sastry,V.U.K.;Anup Kumar,K.(2012年)“A Modified FeistelCypher Involving XOR Operation and Modular Arithmetic Inverse of a Key Matrix(涉及密钥矩阵的XOR运算和模块化算术逆的改进的Feistel密码)”,InternationalJournal 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 ModularArithmetic Inverse of a Key Matrix(涉及密钥矩阵的XOR运算和模块化算术逆的改进的Feistel密码)”,International Journal of Advanced Computer Science andApplications(IJACSA).3(7):35-39]。大数据集被分成8位的块,称为字,并被填充以确保数据恰好适合2m2个字。然后将这些字作为条目插入到2m×m的矩阵P中。选择素数模数N来为期望的应用提供足够的安全性。为了加密存储在P中的数据,构建随机生成的大小为m×m的密钥矩阵K。在此之后,数据矩阵P被分成两个m×m的矩阵P=(P0,Q0)。加密和解密这些数据矩阵的算法如下所示。加密(和对应的解密)算法被迭代n次,从而提供附加的安全参数。随着每次迭代对数据进行置换,数据随着迭代次数的增加变得更加杂乱。该结构在数据加密标准或DES(n=16)和高级加密标准或AES(n=10-14)中使用。
利用加密过程的非线性确保了即使暴露了多个文本密文对,也无法使用高斯消元算法确定密钥。因此,单个密钥矩阵K可用于加密多个数据文件。此外,加密和解密过程的相似性减小了代码的长度,从而减少了计算所需的硬件量。
加密
Input:P=(P0,Q0),n,K,和N
1.对于i=1到n:
进行
Pi=(K·Qi-1·K)mod N
Figure BDA0003307772890000111
结束
2.返回C=(Pn,Qn)
解密
Input:C=(Pn,Qn),n,K,和N
1.使用Gauss-Jordan消元法计算K-1[8]
2.对于i=1到n:
进行
Qi-1=(K-1·Pi·K-1)mod N
Figure BDA0003307772890000112
结束
3.返回P=(P0,Q0)
Feistel密码密钥矩阵的构建
现在提出仅使用密钥S1的改进的Feistel加密方案并在图3中详细示出,该密钥S1是使用上述过程生成的。密钥矩阵K是通过对秘密S1进行重复哈希,然后与S1进行按位异或来构建的。
使用上述密钥生成协议,首先从S1导出m(m+1)个独特的密钥,如上所述:
1)
Figure BDA0003307772890000121
2)
Figure BDA0003307772890000122
Figure BDA0003307772890000123
i)
Figure BDA0003307772890000124
Figure BDA0003307772890000125
Figure BDA0003307772890000126
这些元素用于构建两个具有线性独立的列和行(因此可逆)的矩阵。
Figure BDA0003307772890000127
Figure BDA0003307772890000128
然后将K限定为K=K1K2,这确保了K也是可逆的(对于解密过程是必需的)。
安全多媒体转移
利用更有效的加密大数据集的方法,可以通过端到端加密对多媒体文件进行加密,以安全地跨公用网络(例如,经由互联网和移动电话服务提供商)发送。可以使用Coppersmith-Winograd算法以O(m2.376)的计算复杂度来执行矩阵乘法和高斯-乔丹(Gauss-Jordan)消元矩阵求逆两者。即使在大多数现代移动装置上,这也允许进行亚秒级加密和解密。将数据预先分成统一大小的区块有助于将大文件作为单个流包括在区块链中或在多个交易之间被划分。使用前一部分中的消息发送协议,可以轻松地将其集成到点对点通信中。
使用流式加密的大数据加密
区块密码协议的替代方案是流式加密方案,其中,连续生成密钥,并且一次一位地对数据进行快速编码。使用安全生成的私钥S1和派生密钥S2,可以使用连接(conc())运算生成流密码种子,利用下式开始:
种子=SHA256(conc(S1,S2))
使用种子作为标准PRNG(伪随机数生成器)的输入并使用XOR运算对数据进行编码,流密码可以作为快速加密和解密系统被共享。此类协议对于两方之间的媒体文件或音频/视频通话的安全流传输(streaming)是必要的。关于下面详细描述的基于哈希的消息认证代码(HMAC)讨论了该协议的细节。
消息验证码(MAC)
使用密钥分发协议,可以创建消息验证代码(MAC)。MAC允许消息的接收方验证发送方的身份并确保消息未被篡改。MAC是使用共享秘密密钥的公开已知函数连同正在发送的消息一起生成的,爱丽丝(A)和鲍勃(B)共同知道该共享秘密密钥。
基于区块链的消息认证代码
爱丽丝和鲍勃可以使用上面介绍的协议确立共享密钥(S1)。即:
SA·SB·G=PASB
=PBSA
=(xAB,yAB)
S1=(xAB)
使用已知的公用函数f(例如,包括XOR运算的函数),根据共享密钥(S1或来自S1的某个派生密钥)和消息M计算MAC。爱丽丝计算值y=f(M,S1)并将(M,y)对发送给鲍勃。在区块链的背景下,该信息可以在OP_RETURN中并入从爱丽丝到鲍勃的交易中,或作为交易中的元数据。然后鲍勃可以获取来自爱丽丝的交易中的信息,他可以重新计算y以检查其有效性。如果消息不是来自爱丽丝或消息已被更改,则函数f将产生不同的y值并且可以被忽略。
例如,通过将消息M限定为OP_RETURN之前的所有交易数据,这提供了一种无需矿工验证而离线验证交易数据在传输过程中未被更改的方法。这在图4中示意性地示出,其示出了使用区块链交易数据的消息认证代码(MAC)。通过将交易数据并入在MAC中,它可以用作交易验证方案以提供附加的安全性,而无需连接到网络。这对于极低功率移动装置至关重要。
图5示出了体现本公开的消息认证码(MAC)协议以用于使用公有区块链的在两方之间的通信。在确立共享秘密密钥后(如图1所示),爱丽丝使用约定的函数f,使用消息M计算MAC(y)。爱丽丝在到鲍勃的交易中包括消息和MAC。鲍勃自己使用秘密密钥计算MAC,并将其与从区块链读取的MAC进行比较。如果它们相等,则鲍勃可以确定消息的完整性和发送方的身份。
该验证方法可以在两方之间离线执行,其中,鲍勃可以使用信息M和来自爱丽丝的共享秘密S1来离线接收值,然后接受值y作为认证。也就是说,在计算出密钥S1之后,爱丽丝发送交易tx,其中包括作为元数据的消息(M)。爱丽丝离线向鲍勃发送消息对(y,M)以向远程系统进行认证,该远程系统在区块链上查看交易。
过程如下:
1)A向B发送交易(包括M)。
2)A向B直接发送y或将其包括在交易中发送给B。
3)主人(host)使用共享秘密S1计算y=f(M,S1)。如果消息改变,则y′=f(M′,S1)将不同。
MAC还可以用作CRC(循环冗余校验)来检测编码或传输中的随机错误。通过验证可以在传输后重现相同的MAC,可以确定检索到正确的消息。这也可以用作向远程系统进行认证的离线方法。
机密性
MAC可以被加密以增加交易和认证的机密性(例如,在MAC被发送到服务器时隐藏值y和M)。第二生成的密钥可用于加密MAC并提供附加的隐私。这可以通过使用哈希生成第二MAC密钥来扩展,同时允许认证和机密性两者。为了验证若干项目,新密钥必须用于爱丽丝想要向服务器进行认证的每个项目。
如果需要,可以使用子密钥来增加附加的复杂性。例如,如果TA是使用最后一个有效区块哈希值的时间标记,则可以将其并入以形成密钥层次结构:
PA→PA(1)=PA+TAG.
然后从S1派生的密钥对(S2,S3)可以用作系数并将函数限定为
f(M,K)=S2M+S3
当对于某个约定的合适的整数N,y=(S2M+S3)mod N时,f(M,K)甚至可以变得更强。如果攻击者看到一个(M,y)对,在针对下一条消息N′确定y′时,仍然保留该对。
短MAC
在仍然具有足够安全的MAC的同时,可以牺牲少量的安全性。在比特币中,仅取单个坐标(S1)的密钥长度为256位。对于低功率装置,这可以通过使用模数的低阶值来减少,从而允许在合理的时间内以适度的计算能力执行该过程。如果选择了小N(比如,64位),则y≡S2M+S3mod N现在被限制为64位值。
或者,M可以被分成长度小于或等于N的区块,M=M1,M2,…,Mt,其中,0≤Mi≤N。使用上面提出的协议可以导出对应数量的独特的密钥k=(S2,S3,…,St+1),其中,0≤Si<N。
f(M,K)=∑SiMiS2(mod N)
最后,能够有一种不太安全但非常简单的仅发送以下低阶位的手段:
y=S2M+S3(mod N)。
流式基于哈希的MAC(HMAC)
如果应用需要标准MAC提供的安全性之外的附加的安全性,则可以使用基于哈希的MAC(HMAC)。与MAC不同,HMAC可以通过部分3中提出的流或区块加密方案轻松扩展到大文件(超过SHA256哈希的密钥大小,该大小是国际专利申请WO2017/145016中公开的布置的要求)。这可以通过将文件分成256位的部分来完成:
B0,B1,…,Bn
其中,n=(文件大小)/256。Bn用零填充以确保所有Bi之间的大小均匀。
协议
使用国际专利申请WO2017/145016中公开并在上面解释的方法以派生秘密S1开始,可以使用各种运算(包括模加法(+)、异或
Figure BDA0003307772890000161
哈希(h(x))和连接(conc(a,b)))安全地导出后续密钥。使用伪随机数生成器(PRNG)的五种有效替代方案是使用:
1.Si=Si-1+h(conc(i-1,S1,B0))
2.Si=Si-1+conc(h(B0),h(Si-1))
3.
Figure BDA0003307772890000162
4.
Figure BDA0003307772890000163
5.Si=h(conc(Si-1,Bi-1))
现在利用导出后续密钥的方法,值Si与Bi进行XOR组合以充当OTP(一次性密码)以保证流或信道的安全。明确地,密码块(Ci)可以计算为:
Figure BDA0003307772890000164
所有派生密钥都可以使用S0和初始区块哈希(对于初始256位)来计算并确保数据完整性。
用例
安全的点对点消息发送服务
上面详细描述了具有端到端加密的点对点通信,扩展到并入上面检查的多媒体文件和流数据。在区块链系统上自由集成这些协议的能力为应用开发人员提供了附加的灵活性,以为其用户提供防篡改安全性。通过并入消息认证代码(MAC),可以向用户提供附加的确定性,即消息源自声称的身份,并且没有试图模糊或改变消息。对于传输非常敏感的信息,这是至关重要的特性。
本公开提供了使用XOR运算的高效且安全的密码系统。所需计算的简单性允许使用甚至具有最基本语言的区块链(例如,比特币(BSV))的轻松并入。这些方案允许跨许多不同系统和装置的安全和通用应用的扩增。
现在转向图6,提供了可用于实践本公开的至少一个实施例的计算装置2600的说明性简化框图。在各种实施例中,计算装置2600可以用于实现以上示出和描述的任何系统。例如,计算装置2600可以被配置为用作数据服务器、网络服务器、便携式计算装置、个人计算机或任何电子计算装置。如图6所示,计算装置2600可以包括具有一个或多个级别的高速缓冲存储器和存储器控制器的一个或多个处理器(统称为2602),该处理器可以被配置为与包括主存储器2608和永久存储装置2610的存储子系统2606通信。如图所示,主存储器2608可以包括动态随机存取存储器(DRAM)2618和只读存储器(ROM)2620。存储子系统2606和高速缓存存储器2602可以用于存储信息,例如本公开中所描述的与交易和区块相关联的细节。(一个或多个)处理器2602可用于提供本公开中所描述的任何实施例的步骤或功能。
(一个或多个)处理器2602还可以与一个或多个用户接口输入装置2612、一个或多个用户接口输出装置2614以及网络接口子系统2616通信。
总线子系统2604可以提供用于使得计算装置2600的各个组件和子系统能够按预期彼此通信的机制。尽管总线子系统2604被示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。
网络接口子系统2616可以提供至其他计算装置和网络的接口。网络接口子系统2616可以用作从不同于计算装置2600的其他系统接收数据以及将数据传输到其他系统的接口。例如,网络接口子系统2616可以使数据技术人员能够将装置连接至网络,使得数据技术员可以在位于远程位置(例如,数据中心)的同时,将数据传输到该装置并从该装置接收数据。
用户接口输入装置2612可以包括一个或多个用户输入装置,例如,键盘;诸如集成鼠标、轨迹球、触摸板或图形输入板等定点装置;扫描仪;条形码扫描仪;合并到显示器中的触摸屏;诸如语音识别系统、麦克风等音频输入装置;以及其他类型的输入装置。通常,术语“输入装置”的使用旨在包括用于将信息输入到计算装置2600的所有可能类型的装置和机制。
一个或多个用户接口输出装置2614可以包括显示子系统、打印机或诸如音频输出装置等非可视显示器。显示子系统可以是阴极射线管(CRT)、诸如液晶显示器(LCD)、发光二极管(LED)显示器或投影仪的平板装置或其他显示装置。通常,术语“输出装置”的使用旨在包括用于从计算装置2600输出信息的所有可能类型的装置和机制。一个或多个用户接口输出装置2614可以用于例如呈现用户界面以有助于用户与执行所描述的过程及其中的变型的应用的交互,当这样的交互是适当的时。
存储子系统2606可以提供计算机可读存储介质,该计算机可读存储介质用于存储可以提供本公开的至少一个实施例的功能的基本编程和数据构建。当由一个或多个处理器执行时,应用程序(程序、代码模块、指令)可以提供本公开的一个或多个实施例的功能,并且可以被存储在存储子系统2606中。这些应用程序模块或指令可以由一个或多个处理器2602执行。另外,存储子系统2606可以提供用于存储根据本公开而使用的数据的存储库。例如,主存储器2608和高速缓存存储器2602可以为程序和数据提供易失性存储。永久存储装置2610可以为程序和数据提供永久性(非易失性)存储,并且可以包括闪存、一个或多个固态驱动器、一个或多个磁性硬盘驱动器、一个或多个具有相关的可移动介质的软盘驱动器、一个或多个具有相关的可移动介质的光驱(例如,CD-ROM或DVD或Blue-Ray)驱动器,以及其他类似的存储介质。这样的程序和数据可以包括用于执行如本公开中所描述的一个或多个实施例的步骤的程序以及本公开中所描述的与交易和区块相关联的数据。
计算装置2600可以是各种类型,包括便携式计算机装置、平板计算机、工作站或以下描述的任何其他装置。另外,计算装置2600可以包括可以通过一个或多个端口(例如,USB、耳机插孔、闪电连接器等)连接到计算装置2600的另一装置。可以连接到计算装置2600的装置可以包括被配置为接受光纤连接器的多个端口。因此,该装置可以被配置为将光信号转换为电信号,该电信号可以通过将装置连接至计算装置2600的端口传输以进行处理。由于计算机和网络不断变化的性质,图6中所描绘的计算装置2600的描述仅旨在作为特定示例用于说明该装置的优选实施例的目的。具有比图6中描绘的系统更多或更少的组件的许多其他配置是可能的。
列举的示例实施例
本公开的实施例的示例可以根据以下条款进行描述:
1、一种加密数据的方法,所述方法包括:
由第一参与方基于与所述第一参与方和第二参与方共有的公共秘密来确定用于数据的加密的加密密钥;
基于所述加密密钥对所述数据进行加密以提供加密数据,其中,对所述数据进行加密的步骤包括至少一个异或(XOR)运算;以及
将所述加密数据并入区块链交易中。
通过提供包括至少一个异或(XOR)运算的加密过程,这提供了以下优势:通过使用二进制消息字符串与具有相同长度的秘密密钥的逐位XOR编码,XOR密码可以被派生并在公用网络上自由共享。随后,可以对消息和相同的秘密密钥使用逐位XOR运算来解密密文。该协议的简单性具有的附加的好处在于,它可以并入任何基于密码学的系统中。还提供了以下优势:本发明的计算效率使得在国际专利申请WO2017/145016中提出的会话密钥生成能够在低功率装置(移动装置或智能卡)中使用并且被包括在比特币中的脚本内。还提供了最小化数据更改的风险或使数据更改可检测的优势。
2、根据条款1所述的方法,其中,所述加密数据被包括在所述区块链交易的输出中。
这提供了以下优势:区块链交易的输出中的数据具有可验证的数字签名,以便接收方可以检查数据发送方的身份,并且可以检查数据自从其被签署以来还没有被更改。
3、根据条款1或2所述的方法,其中,所述加密数据被包括在交易中公开可访问的数据中。
这提供了以下优势:无需赎回/花费区块链交易就可以获得对数据的访问权限以进行解密。
4、根据前述条款中任一项所述的方法,其中,会话密钥和/或密码可以借助于所述公共秘密从所述加密数据导出。
5、根据前述条款中任一项所述的方法,其中,所述区块链交易借助于基于所述公共秘密的脚本被赎回。
6、根据条款5所述的方法,其中,所述交易借助于包含数据的脚本被赎回,该数据基于将单向函数应用于基于所述公共秘密的数据。
这提供了以下优势:在交易赎回时不会暴露公共秘密,因此可以重用该公共秘密。
7、根据条款6所述的方法,其中,所述单向函数是哈希函数。
8、根据前述条款中任一项所述的方法,其中,所述交易的赎回暴露数据。
9、根据前述条款中任一项所述的方法,其中,所述交易的赎回使赎回所述交易的参与方被标识。
这提供了以下优势:保持隐私性直到交易被赎回为止,但使得能够在多于一个公钥的情况下标识交易的花费方。
10、根据前述条款中任一项所述的方法,还包括:作为向所述第二参与方发送加密数据的结果,使所述数据借助于基于所述第一参与方和第三参与方共有的第二公共秘密的加密密钥被加密。
这提供了以下优势:使得能够进行具有通信记录的多方加密通信。
11、根据前述条款中任一项所述的方法,还包括:作为数据从第二参与方发送到第三参与方的结果,使数据被发送到第一参与方。
12、根据前述条款中任一项所述的方法,还包括:借助于将单向函数重复应用于基于所述公共秘密的数据来确定多个所述加密密钥。
这提供了以下优势:只需要确立一次公共秘密,然后将其用作生成多个密钥的种子,而无需进一步的在线数据交换。
13、根据条款12所述的方法,其中,所述单向函数是哈希函数。
14、根据条款12或13所述的方法,其中,用于加密第一数据的第一所述加密密钥与在加密所述第一数据之后用于加密第二数据的第二所述加密密钥通过将所述单向函数应用于基于第一加密密钥的数据而相关。
这提供了以下优势:保持共享秘密的秘密性。
15、根据前述条款中任一项所述的方法,其中,通过将至少一个加密密钥应用于所述数据的部分来执行加密。
这提供了以下优势:在大数据集的情况下,提高效率。
16、根据前述条款中任一项所述的方法,其中,至少一个所述加密密钥是矩阵。
这提供了以下优势:由于矩阵乘法的非线性性质,使得能够进行更安全的加密。
17、根据条款16所述的方法,其中,通过将单向函数重复应用于基于所述公共秘密的数据来生成所述矩阵的元素。
18、根据条款16或17所述的方法,其中,至少一个所述矩阵是从具有线性独立的列和行的两个矩阵的乘积导出的。
这提供了以下优势:提供可逆矩阵,从而能够计算解密密钥。
19、根据前述条款中的任一项所述的方法,其中,通过将至少一个所述加密密钥重复应用于所述数据的至少一部分来执行所述加密。
这提供了以下优势:由于此类重复加密的非线性性质,提供进一步的安全性。
20、根据前述条款中任一项所述的方法,还包括:在所述第一参与方处确定所述公共秘密,其中,所述第一参与方与具有第一私钥和第一公钥的密码系统的第一公钥私钥对相关联,其中,第二参与方与具有第二私钥和第二公钥的密码系统的第二公钥私钥对相关联,其中,所述公共秘密在第一参与方处基于第一私钥和第二公钥确定,并且其中,所述密码系统的特性使得所述公共秘密可以在第二参与方处基于第二私钥和第一公钥确定。
21、根据条款21所述的方法,其中,所述密码系统是椭圆曲线密码系统。
22、根据前述条款中的任一项所述的方法,其中,所述第一参与方具有公共秘密的份额(share),并且公共秘密对于阈值数量的所述份额是可访问的并且对于小于所述阈值数量的所述份额是不可访问的。
23、一种生成用于加密数据的加密密钥的方法,所述方法包括:
由第一参与方确定用于数据的加密的加密密钥,其中,所述加密密钥基于第一数据与第二数据的至少一个异或(XOR)组合,该第一数据基于所述第一参与方和第二参与方共有的公共秘密,该第二数据基于将单向函数应用于基于公共秘密的数据。
这提供了计算效率的优势,使该方法能够与低处理能力的装置一起使用。
24、根据条款23所述的方法,还包括:借助于将所述单向函数重复应用于基于所述公共秘密的数据来确定多个所述加密密钥。
25、根据条款23或24所述的方法,其中,所述单向函数是哈希函数。
26、根据条款23至25中任一项所述的方法,其中,用于加密第三数据的第一所述加密密钥与用于在加密所述第三数据之后加密第四数据的第二所述加密密钥通过将所述单向函数应用于基于第一加密密钥的数据而相关。
27、根据条款23至26中任一项的方法,其中,通过将至少一个加密密钥应用于所述数据的部分来执行加密。
28、根据条款23至27中任一项所述的方法,其中,至少一个所述加密密钥是矩阵。
29、根据条款28所述的方法,其中,通过将单向函数重复应用于基于所述公共秘密的数据来生成所述矩阵的元素。
30、根据条款28或29所述的方法,其中,至少一个所述矩阵是从具有线性独立的列和行的两个矩阵的乘积导出的。
31、根据条款23至30中任一项所述的方法,其中,通过将至少一个所述加密密钥重复应用于所述数据的至少一部分来执行所述加密。
32、根据条款23至31中任一项所述的方法,还包括:在所述第一参与方处确定所述公共秘密,其中,所述第一参与方与具有第一私钥和第一公钥的密码系统的第一公钥私钥对相关联,其中,第二参与方与具有第二私钥和第二公钥的密码系统的第二公钥私钥对相关联,其中,所述公共秘密在第一参与方处基于第一私钥和第二公钥确定,并且其中,所述密码系统的特性使得所述公共秘密可以在第二参与方处基于第二私钥和第一公钥确定。
33、根据条款32所述的方法,其中,所述密码系统是椭圆曲线密码系统。
34、根据条款23至33中任一项所述的方法,其中,所述第一参与方具有所述公共秘密的份额,并且所述公共秘密对于阈值数量的所述份额是可访问的,并且对于小于所述阈值数量的所述份额是不可访问的。
35、一种加密数据的方法,所述方法包括:
借助于根据条款23至34中任一项所述的方法生成加密密钥;以及
基于所述加密密钥加密数据以提供加密数据,其中,加密所述数据的步骤包括至少一个异或(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、一种将认证数据应用于消息的方法,所述方法包括:
由第一参与方确定用于要传送到第二参与方的消息的消息认证数据,其中,所述消息认证数据是通过将所述第一参与方和所述第二参与方已知的函数应用于所述消息以及所述第一参与方和所述第二参与方共有的公共秘密来确定的。
这提供了以下优势:使得能够在第二节点处重新计算消息认证数据,以检查自从最初确定消息认证数据以来数据没有被损坏。
46、根据条款45所述的方法,其中,所述消息被包括在区块链交易中。
47、根据条款46所述的方法,其中,所述消息包括与先前的区块链交易有关的数据。
这提供了以下优势:使得能够离线检查交易数据在传输中没有被改变。这在低功率装置的情况下特别有用。
48、根据条款46或47所述的方法,其中,所述消息认证数据被包括在所述区块链交易中。
49、根据条款46至48中任一项所述的方法,还包括:至少将所述消息认证数据与所述区块链交易分开地传送到所述第二参与方的步骤。
50、根据条款45至49中任一项所述的方法,其中,所述消息认证数据包括基于所述公共秘密的多个数据项。
51、根据条款50所述的方法,其中,多个所述数据项被应用于所述消息的相应的部分。
这提供了以下优势:在大数据项的情况下,更有效地处理消息数据。
52、根据条款45至51中任一项所述的方法,其中,所述函数包括至少一个异或(XOR)运算。
53、根据条款45至52中任一项所述的方法,其中,所述消息认证数据包括多个数据项,所述多个数据项是通过将单向函数重复应用于基于所述公共秘密的数据而确定的。
54、根据条款53所述的方法,其中,所述单向函数是哈希函数。
55、根据条款53或54所述的方法,其中,应用于第一消息的第一所述数据项与在将所述第一数据项应用于所述第一消息之后应用于第二消息的第二所述数据项通过将所述单向函数应用于基于公共秘密的数据而相关。
56、根据条款45至55中任一项所述的方法,还包括:在所述第一参与方处确定所述公共秘密,其中,所述第一参与方与具有第一私钥和第一公钥的密码系统的第一公钥私钥对相关联,其中,第二参与方与具有第二私钥和第二公钥的密码系统的第二公钥私钥对相关联,其中,所述公共秘密在第一参与方处基于第一私钥和第二公钥确定,并且其中,所述密码系统的特性使得所述公共秘密可以在第二参与方处基于第二私钥和第一公钥确定。
57、根据条款56所述的方法,其中,所述密码系统是椭圆曲线密码系统。
58、根据条款45至57中任一项所述的方法,其中,所述第一参与方具有公共秘密的份额,并且公共秘密对于阈值数量的所述份额是可访问的并且对于小于所述阈值数量的所述份额是不可访问的。
59、一种计算机实现的系统,包括:
处理器;以及
包括可执行指令的存储器,所述可执行指令由于被所述处理器执行而使得该系统执行根据条款1至58中任一项所述的计算机的实现方法的任何实施例。
60、一种非瞬时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于被计算机系统的处理器执行而使得该计算机系统至少执行根据条款1至58中任一项所述的方法的实施例。
应当注意,上述实施例说明而不是限制本公开,并且本领域技术人员将能够设计许多替代实施例,而不脱离由所附权利要求限定的本公开的范围。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。单词“包括(comprising,comprise)”等不排除任何权利要求或整个说明书中列出的元素或步骤之外的元素或步骤的存在。在本说明书中,“包括(comprise)”是指“包括(include)或由……组成(consist of)”,“包括(comprising)”是指“包括(including)或由……组成(consisting of)”。元素的单数形式并不排除此类元素的复数形式,反之亦然。本公开可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个部件的装置权利要求中,这些部件置中的几个可以由一个且相同的硬件来实施。在互不相同的从属权利要求中记载某些手段的事实并不表示不能有利地使用这些手段的组合。
参考文献
Figure BDA0003307772890000251
Figure BDA0003307772890000261

Claims (60)

1.一种加密数据的方法,所述方法包括:
由第一参与方基于所述第一参与方和第二参与方共有的公共秘密来确定用于数据的加密的加密密钥;
基于所述加密密钥对所述数据进行加密以提供加密数据,其中,对所述数据进行加密的步骤包括至少一个异或XOR运算;以及
将所述加密数据并入区块链交易中。
2.根据权利要求1所述的方法,其中,所述加密数据被包括在所述区块链交易的输出中。
3.根据权利要求1或2所述的方法,其中,所述加密数据被包括在交易中的能够公开访问的数据中。
4.根据前述权利要求中任一项所述的方法,其中,能够借助于所述公共秘密从所述加密数据导出会话密钥和/或密码。
5.根据前述权利要求中任一项所述的方法,其中,所述区块链交易通过基于所述公共秘密的脚本被赎回。
6.根据权利要求5所述的方法,其中,所述交易通过包含数据的脚本被赎回,该数据是基于将单向函数应用于基于所述公共秘密的数据。
7.根据权利要求6所述的方法,其中,所述单向函数是哈希函数。
8.根据前述权利要求中任一项所述的方法,其中,所述交易的赎回使数据暴露。
9.根据前述权利要求中任一项所述的方法,其中,所述交易的赎回使得赎回所述交易的参与方被标识。
10.根据前述权利要求中任一项所述的方法,还包括:由于向所述第二参与方发送加密数据,使得所述数据通过基于所述第一参与方和第三参与方共有的第二公共秘密的加密密钥被加密。
11.根据前述权利要求中任一项所述的方法,还包括:由于数据从第二参与方发送到第三参与方,使得数据被发送到第一参与方。
12.根据前述权利要求中任一项所述的方法,还包括:通过将单向函数重复应用于基于所述公共秘密的数据来确定多个所述加密密钥。
13.根据权利要求12所述的方法,其中,所述单向函数是哈希函数。
14.根据权利要求12或13所述的方法,其中,用于加密第一数据的第一所述加密密钥与用于在加密所述第一数据之后加密第二数据的第二所述加密密钥通过将所述单向函数应用于基于第一加密密钥的数据而相关。
15.根据前述权利要求中任一项所述的方法,其中,通过将至少一个加密密钥应用于所述数据的部分来执行加密。
16.根据前述权利要求中任一项所述的方法,其中,至少一个所述加密密钥是矩阵。
17.根据权利要求16所述的方法,其中,通过将单向函数重复应用于基于所述公共秘密的数据来生成所述矩阵的元素。
18.根据权利要求16或17所述的方法,其中,至少一个所述矩阵是从具有线性独立的列和行的两个矩阵的乘积导出的。
19.根据前述权利要求中任一项所述的方法,其中,通过将至少一个所述加密密钥重复应用于所述数据的至少一部分来执行加密。
20.根据前述权利要求中任一项所述的方法,还包括:在所述第一参与方处确定所述公共秘密,其中,所述第一参与方与具有第一私钥和第一公钥的密码系统的第一公钥私钥对相关联,其中,第二参与方与具有第二私钥和第二公钥的密码系统的第二公钥私钥对相关联,其中,所述公共秘密在第一参与方处基于第一私钥和第二公钥而确定,并且其中,所述密码系统的特性使得所述公共秘密能够在第二参与方处基于第二私钥和第一公钥而确定。
21.根据权利要求20所述的方法,其中,所述密码系统是椭圆曲线密码系统。
22.根据前述权利要求中任一项所述的方法,其中,所述第一参与方具有公共秘密的份额,并且公共秘密对于阈值数量的所述份额是能够访问的,并且对于小于所述阈值数量的所述份额是不能够访问的。
23.一种生成用于对数据加密的加密密钥的方法,所述方法包括:
由第一参与方确定用于数据的加密的加密密钥,其中,所述加密密钥基于第一数据与第二数据的至少一个异或XOR组合,该第一数据基于所述第一参与方和第二参与方共有的公共秘密,该第二数据基于将单向函数应用于基于所述公共秘密的数据。
24.根据权利要求23所述所述的方法,还包括:通过将所述单向函数重复应用于基于所述公共秘密的数据来确定多个所述加密密钥。
25.根据权利要求23或24所述的方法,其中,所述单向函数是哈希函数。
26.根据权利要求23至25中任一项所述的方法,其中,用于加密第三数据的第一所述加密密钥与用于在加密所述第三数据之后加密第四数据的第二所述加密密钥通过将所述单向函数应用于基于第一加密密钥的数据而相关。
27.根据权利要求23至26中任一项所述的方法,其中,通过将至少一个加密密钥应用于所述数据的部分来执行加密。
28.根据权利要求23至27中任一项所述的方法,其中,至少一个所述加密密钥是矩阵。
29.根据权利要求28所述的方法,其中,通过将单向函数重复应用于基于所述公共秘密的数据来生成所述矩阵的元素。
30.根据权利要求28或29所述的方法,其中,至少一个所述矩阵是从具有线性独立的列和行的两个矩阵的乘积导出的。
31.根据权利要求23到30中任一项所述的方法,其中,通过将至少一个所述加密密钥重复应用于所述数据的至少一部分来执行加密。
32.根据权利要求23至31中任一项所述的方法,还包括:在所述第一参与方处确定所述公共秘密,其中,所述第一参与方与具有第一私钥和第一公钥的密码系统的第一公钥私钥对相关联,其中,第二参与方与具有第二私钥和第二公钥的密码系统的第二公钥私钥对相关联,其中,所述公共秘密在第一参与方处基于第一私钥和第二公钥而确定,并且其中,所述密码系统的特性使得所述公共秘密能够在第二参与方处基于第二私钥和第一公钥而确定。
33.根据权利要求32所述的方法,其中,所述密码系统是椭圆曲线密码系统。
34.根据权利要求23至33中任一项所述的方法,其中,所述第一参与方具有所述公共秘密的份额,并且所述公共秘密对于阈值数量的所述份额是能够访问的,并且对于小于所述阈值数量的所述份额是不能够访问的。
35.一种加密数据的方法,所述方法包括:
通过根据权利要求23至34中任一项所述的方法生成加密密钥;以及
基于所述加密密钥对数据进行加密以提供加密数据,其中,对所述数据进行加密的步骤包括至少一个异或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.一种将认证数据应用于消息的方法,所述方法包括:
由第一参与方确定用于要传送到第二参与方的消息的消息认证数据,其中,所述消息认证数据是通过将所述第一参与方和所述第二参与方已知的函数应用于所述消息以及应用于所述第一参与方和所述第二参与方共有的公共秘密而确定的。
46.根据权利要求45所述的方法,其中,所述消息被包括在区块链交易中。
47.根据权利要求46所述的方法,其中,所述消息包括与先前的区块链交易有关的数据。
48.根据权利要求46或47所述的方法,其中,所述消息认证数据被包括在所述区块链交易中。
49.根据权利要求46至48中任一项所述的方法,还包括:至少将所述消息认证数据与所述区块链交易分开地传送到所述第二参与方的步骤。
50.根据权利要求45至49中任一项所述的方法,其中,所述消息认证数据包括基于所述公共秘密的多个数据项。
51.根据权利要求50所述的方法,其中,多个所述数据项被应用于所述消息的相应的部分。
52.根据权利要求45至51中任一项所述的方法,其中,所述函数包括至少一个异或XOR运算。
53.根据权利要求45至52中任一项所述的方法,其中,所述消息认证数据包括通过将单向函数重复应用于基于所述公共秘密的数据而确定的多个数据项。
54.根据权利要求53所述的方法,其中,所述单向函数是哈希函数。
55.根据权利要求53或54所述的方法,其中,应用于第一消息的第一所述数据项与在将所述第一数据项应用于所述第一消息之后应用于第二消息的第二所述数据项通过将所述单向函数应用于基于公共秘密的数据而相关。
56.根据权利要求45至55中任一项所述的方法,还包括:在所述第一参与方处确定所述公共秘密,其中,所述第一参与方与具有第一私钥和第一公钥的密码系统的第一公钥私钥对相关联,其中,第二参与方与具有第二私钥和第二公钥的密码系统的第二公钥私钥对相关联,其中,所述公共秘密在第一参与方处基于第一私钥和第二公钥而确定,并且其中,所述密码系统的特性使得所述公共秘密能够在第二参与方处基于第二私钥和第一公钥而确定。
57.根据权利要求56所述的方法,其中,所述密码系统是椭圆曲线密码系统。
58.根据权利要求45至57中任一项所述的方法,其中,所述第一参与方具有公共秘密的份额,并且公共秘密对于阈值数量的所述份额是能够访问的,并且对于小于所述阈值数量的所述份额是不能够访问的。
59.一种计算机实现的系统,包括:
处理器;和
包括可执行指令的存储器,所述可执行指令由于被所述处理器执行而使得所述系统执行根据权利要求1至58中任一项所述的计算机的实现的方法的任何实施方式。
60.一种非瞬时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于被计算机系统的处理器执行而使得所述计算机系统至少执行根据权利要求1至58中任一项所述的方法的实施方式。
CN202080029452.6A 2019-04-16 2020-04-03 用于加密数据的计算机实现的方法和系统 Pending CN113711564A (zh)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
CN113711564A true CN113711564A (zh) 2021-11-26

Family

ID=66809863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080029452.6A Pending CN113711564A (zh) 2019-04-16 2020-04-03 用于加密数据的计算机实现的方法和系统

Country Status (5)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115296887A (zh) * 2022-08-02 2022-11-04 中国电子科技集团公司信息科学研究院 数据传输方法、装置、电子设备和存储介质

Families Citing this family (6)

* 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 北京百度网讯科技有限公司 数字签名方法、签名信息的验证方法、相关装置及电子设备
WO2023004007A1 (en) * 2021-07-22 2023-01-26 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
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
WO2016209939A1 (en) * 2015-06-22 2016-12-29 Cyphre, Llc Accelerated encryption and decryption of files with shared secret and method therefor
MX2018010058A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Metodo y sistema para la transferencia eficiente de criptomoneda asociada con un pago de nomina en una cadena de bloques que lleva a un metodo y sistema de pago de nomina automatico con base en contratos inteligentes.
EP3364598B1 (en) 2016-02-23 2020-10-14 Nchain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US10129223B1 (en) * 2016-11-23 2018-11-13 Amazon Technologies, Inc. Lightweight encrypted communication protocol
TWI760546B (zh) * 2017-08-23 2022-04-11 安地卡及巴布達商區塊鏈控股有限公司 用於高安全性高速資料加密及傳輸的電腦實施系統與方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115296887A (zh) * 2022-08-02 2022-11-04 中国电子科技集团公司信息科学研究院 数据传输方法、装置、电子设备和存储介质
CN115296887B (zh) * 2022-08-02 2023-11-17 中国电子科技集团公司信息科学研究院 数据传输方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
EP3957044A1 (en) 2022-02-23
WO2020212796A1 (en) 2020-10-22
GB201905348D0 (en) 2019-05-29
JP2022528925A (ja) 2022-06-16

Similar Documents

Publication Publication Date Title
TWI725124B (zh) 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
US8433066B2 (en) Method for generating an encryption/decryption key
US11979492B2 (en) Computer-implemented system and method for distributing shares of digitally signed data
CN112119609A (zh) 用于传达秘密的方法和系统
US11616641B2 (en) Computer implemented system and method for sharing a common secret
Toorani et al. A secure cryptosystem based on affine transformation
KR20230141845A (ko) 임계값 키 교환
CN114095181B (zh) 一种基于国密算法的门限环签名方法及系统
Yang [Retracted] Application of Hybrid Encryption Algorithm in Hardware Encryption Interface Card
Rajasekar et al. Introduction to classical cryptography
CN117795901A (zh) 生成数字签名份额
Murugan An efficient algorithm on quantum computing with quantum key distribution for secure communication
Sarumi A review of encryption methods for secure data communication
Kishore et al. A novel text encryption algorithm using enhanced Diffie Hellman and AES
Bhatia Cryptography-The Hidden Message
Poritz Open Workbook of Cryptology
Jonathan A Open Workbook of Cryptology: A project-based introduction to crypto in Python
Morić et al. SECURING COMMUNICATION IN CHATTER APPLICATION.
Baytalskyy Triple-Protocol–A New Direction of Elliptic-Curve Cryptography
CN118266189A (zh) 生成共享加密密钥
CN114189329A (zh) 一种公钥认证可否认加密方法及系统
ONASHOGA et al. A SECURED EMBEDDED SCHEME BASED ON MULTI-CRYPTOGRAPHIC PROTOCOLS

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination