首页 / 专利库 / 银行与财务事项 / 加密货币 / 比特币 / 用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法

用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法

阅读:730发布:2020-05-12

专利汇可以提供用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及适用于诸如 媒体流 、流式虚拟专用网络(VPN)服务、大文件传输等应用的高度安全、高速的加密方法。例如,本文描述的加密方法可以提供用于将数据从例如媒体服务提供商 流式传输 到多个用户的流密码。某些配置提供线速一次性使用加密。本文所述的方法适合与 区 块 链 (例如 比特币 )技术一起使用。,下面是用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法专利的具体信息内容。

1.一种对数据进行加密,并通过网络将数据从第一节点传输到第二节点的计算机实现的方法,所述方法包括:
在所述第一节点处,从所述第一节点和所述第二节点已知的共同秘密中导出秘密密钥;
利用所述秘密密钥作为伪随机数生成器的种子
将所述伪随机数生成器的输出与待发送的数据相结合以产生加密数据;和将所述加密数据发送到所述第二节点。
2.根据权利要求1所述的方法,
其中,所述第一节点与第一非对称加密密钥对相关联,所述第二节点与第二非对称加密密钥对相关联,并且所述共同秘密在所述第一节点和第二节点上分别从各自的所述第一非对称加密密钥对和所述第二非对称加密密钥对导出,而不在所述第一节点和所述第二节点之间传输所述共同秘密。
3.根据权利要求1或2所述的方法,
其中,所述秘密密钥的导出包括将所述共同秘密转换为对称密钥。
4.根据任一前述权利要求所述的方法,
其中,所述秘密密钥的导出包括将所述共同秘密,或权利要求3的所述对称密钥,与用于加密数据传输的附加数据相结合。
5.根据权利要求4所述的方法,
其中,所述附加数据在所述第一节点和所述第二节点处导出,而不在所述第一节点和所述第二节点之间传输所述附加数据。
6.根据权利要求4或5所述的方法,
其中,所述附加数据包括时间变量或时间变量的加密函数。
7.根据权利要求4至6中任一项所述的方法,
其中,所述附加数据包括一次性使用值或一次性使用值的加密函数。
8.根据权利要求4至7中的任一项所述的方法,
其中,使用异或(XOR)运算将所述附加数据与所述共同秘密或所述对称密钥组合,以生成用于所述伪随机数生成器的种子。
9.根据任一前述权利要求所述的方法,
其中,伪随机数生成器基于Zeta函数或Wolfram Rule 30函数。
10.根据任一前述权利要求所述的方法,
其中,使用异或(XOR)运算将所述伪随机数生成器的输出与所述待发送的数据组合以产生所述加密数据。
11.根据任一前述权利要求所述的方法,
其中,所述伪随机数生成器的输出用作一次一密。
12.根据任一前述权利要求所述的方法,
其中,所述加密数据的发送包括伪随机比特流的发送。
13.根据任一前述权利要求所述的方法,
其中,所述伪随机比特流是一种或多种虚拟专用网(VPN)服务或流数据服务。
14.根据任一前述权利要求所述的方法,
其中,所述第一节点是服务提供商,所述服务提供商为每个用户使用不同的共享对称密钥向多个用户传输加密数据。
15.根据任一前述权利要求所述的方法,
其中,所述第二节点接收所述加密数据,并使用所述共同秘密对数据进行解密。
16.根据任一前述权利要求所述的方法,
其中,所述第二节点通过对接收到的所述加密数据进行异或(XOR)运算来对接收到的所述加密数据进行解密。
17.根据任一前述权利要求所述的方法,
其中,所述第二节点独立于所述第一节点,为自己的伪随机数生成器播种,以便解密所述加密数据。
18.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在被执行时使一个或多个处理器执行权利要求1至17中任一项所述的方法。
19.一种电子设备,包括:
接口装置;
连接到所述接口装置的一个或多个处理器;
与所述一个或多个处理器连接的存储器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令在被执行时使所述一个或多个处理器执行权利要求1至17中任一项所述的方法。
20.链网络的节点,所述节点用于执行权利要求1至17中的任一项所述的方法。

说明书全文

用于对数据进行高度安全、高速加密和传输的计算机实现的

系统和方法

技术领域

[0001] 本发明涉及适用于诸如媒体流、流式虚拟专用网络(VPN)服务、大文件传输等应用的高度安全、高速加密方法。例如,本文描述的加密方法可以提供用于从(例如)媒体服务提供商向多个用户传输数据的流密码。某些实施例涉及线速一次性使用加密。本文描述的方法适合与链(例如比特币)技术一起使用。

背景技术

[0002] 密码学涉及用于两个或更多节点之间的安全通信技术。节点可以包括移动通信设备、平板电脑笔记本电脑、台式电脑、其他形式的计算设备和通信设备、网络中的服务器设备、网络中的客户端设备、分布式网络中的一个或多个节点、路由器等。节点可以与自然人、一群人(例如公司雇员)、服务提供商(例如媒体流提供商)、系统(例如行系统)等相关联。
[0003] 在某些情况下,两个或更多节点可能通过不安全的通信网络链接。例如,两个节点可能通过第三方能够窃听这两个节点之间的通信的通信网络链接。因此,在节点之间发送的消息可以以加密形式发送,并且在收到后,预期的接收者可以使用相应的解密密钥(或其他解密方法)对消息进行解密。因此,这种通信的安全性取决于防止第三方确定相应的解密密钥。
[0004] 加密的一种方法包括使用对称密钥算法。相同的密钥既用于纯文本消息的加密又用于密文的解密,在这种意义上,密钥是对称的。使用对称密钥算法需要考虑的一个问题是如何以安全的方式将对称密钥传输到两个节点,以防止窃听者获取对称密钥。例如,这可能包括将对称密钥物理地传递到(授权)节点,使对称密钥从不在不安全的通信网络上传输。但是,并非总是可以选择物理交付。因此,此类加密系统中的问题是,在不安全的网络中的节点之间建立对称密钥(其可能基于共同秘密)。近年来,通过诸如互联网之类的通信系统以电子方式进行密钥传输很受欢迎。因此,提供共享秘密(例如,对称密钥)的步骤是潜在的灾难性漏洞。由于对称密钥算法(和协议)简单且被广泛使用,因此两个节点需要具有在不安全的网络上安全地确定共同秘密的能
[0005] 加密的另一种方法是流算法,其中将对称密钥用作伪随机数生成器的种子,并使用例如异或(XOR)运算将伪随机数生成器的输出与数据流相结合,以生成流密码。接收者使用对称密钥来解密流密码。EP1063811描述了这种方法的示例,该方法利用对称密钥方法来为伪随机数生成器播种。然而,这种系统的安全性同样取决于以安全的方式向两个节点传输对称密钥,以防止窃听者获取对称密钥。
[0006] 其他现有的加密方法包括使用非对称密钥。非对称密钥可以用于公钥加密中,其中非对称密钥包括私钥和对应的公钥。公钥可以公开可用,而顾名思义,私钥则保持私有状态。除其他方面之外,这些非对称密钥可用于公钥加密和数字签名等。现有协议包括迪菲-赫尔曼(Diffie-Hellman)密钥交换和三次传递协议,它们支持通过不安全的网络安全共享秘密。《应用密码学手册》(梅内塞斯˙A(A.Menezes)、奥尔斯霍特˙P˙万(P.vanOorschot)、和范斯顿˙S(S.Vanstone),1996年CRC出版社)第12章讨论了几种已知的密钥建立协议,以及使用非对称密钥的秘密共享。但是,在某些情况下,例如要不断生成和共享新秘密的情况下,这些方法的计算量很大。此外,这些方法不适用于诸如数据流应用中所需的高速加密、数据传输和解密。此外,管理非对称密钥层次结构(如《比特币开发者指南》中所述)的方法(例如依靠随机种子和索引结构)效率低下,并且不适合生成可能与具体数据相关联的确定性层次共享秘密。
[0007] 鉴于以上内容,可以理解,用于实现加密数据传输的现有技术配置具有的一个技术问题是其安全性,安全性通常也是最重要的考虑因素。对于某些应用来说(例如流传输和较大数据传输),用于实现加密数据传输的现有技术配置的另一个技术问题是其速度问题。用于实现加密数据传输的现有技术配置还有一个技术问题是其在设置/订阅、密钥管理方面的易用性问题和系统的一般可用性问题。
[0008] 前述技术问题可能相互关联,并且通常需要在系统的所需特性之间进行取舍。例如,某些系统可能是高度安全的,但速度较慢,不适合流数据或大数据传输。其他系统可能很快,但容易受到黑客攻击。还有一些系统可能相对安全、快速,但在实际应用中难以设置、使用和/或管理。
[0009] 本发明的实施例的目的是提供这些问题的技术解决方案。

发明内容

[0010] 本文描述了通过网络将数据从第一节点加密并传输到第二节点的计算机实现的方法,该方法包括:
[0011] 在第一节点处,从第一节点和第二节点已知的共同秘密中导出秘密密钥;
[0012] 利用秘密密钥作为伪随机数生成器的种子;
[0013] 将伪随机数生成器的输出与待发送的数据相结合以产生加密数据;并[0014] 将加密数据发送到第二节点。
[0015] 根据一种配置,第一节点与第一非对称加密密钥对相关联,第二节点与第二非对称加密密钥对相关联,并且共同秘密可在第一节点和第二节点处从各自的第一和第二非对称加密密钥对推导得到,而无需在第一节点和第二节点之间传输共同秘密。加密数据可以作为伪随机比特流传输。
[0016] 本文描述的方法将共享共同秘密的改进方法与流算法相结合,以提供适用于诸如媒体流、流式虚拟专用网(VPN)服务、大文件传输等应用的高度安全、高速的加密方法。
[0017] 本文描述的方法还将为多个用户生成一组不同的对称密钥的改进方法,与服务提供者使用的流式算法相结合,以将数据传输给多个用户。
[0018] 本文描述的方法还提供用于加密方法(例如应用于流式算法)中的伪随机数生成器的改进的播种方法。
[0019] 本文描述的方法还提供高度安全、高速、一次性使用的加密系统。
[0020] 实施例可以以多种形式提供。例如,可以提供一种计算机可读存储介质,其包括计算机可执行指令,计算机可执行指令在被执行时使一个或多个处理器执行本文描述的方法。还可以提供一种电子设备,其包括:接口装置;连接到接口装置的一个或多个处理器;连接到一个或多个处理器的存储器,该存储器具有存储在其上的计算机可执行指令,计算机可执行指令在被执行时使一个或多个处理器执行本文描述的方法。更进一步,可以提供区块链网络的节点,该节点可执行本文描述的方法。
[0021] 应当注意,本发明的实施例采用两种类型非常不同的密码技术的某些特征。使用非对称密钥在不安全的网络上安全共享秘密是已知的。此外,已知使用对称密钥作为伪随机数生成器的种子,并将伪随机数生成器的输出与数据流组合以生成流密码。在背景技术部分中讨论的现有技术中既没有公开也没有推荐的是,利用从网络上两个不同节点所知道的共同秘密(例如,共同秘密可由节点使用非对称密钥导出)中导出的秘钥,作为伪随机数生成器的种子,并将该伪随机数生成器的输出与待发送的数据相结合,以产生加密数据,然后通过网络将加密数据从第一节点发送到第二节点。流处理数据的现有技术方法使用对称密钥协议。与这种传统的对称密钥流协议相比,将非对称密钥协议用于流处理数据是新颖的。此外,本文描述的方法是有利的,因为它可以提供一种更安全的方法,同时还保留了适用于流传输和大数据传输的高速加密。另外,本文描述的实施例易于在实际应用中设置、使用和管理。例如,本文描述的方法可以用于从区块链流处理/传输数据,以提供区块链媒体流系统,其中电影和电视节目等媒体文件保存在区块链上,并可根据要求安全地流式传输给最终用户。利用这样的系统,还能够通过加密货币转账(例如,比特币)对所请求的服务进行安全自动支付。在背景技术部分中讨论的现有技术既未公开也未推荐这些有利特征。附图说明
[0022] 参考本文描述的实施例,本发明的这些和其他方面将变得显而易见。现在将仅通过举例的方式并参考附图来描述本发明的实施例,其中:
[0023] 图1是用于确定第一节点和第二节点的共同秘密的示例系统的示意图;
[0024] 图2是用于确定共同秘密的计算机实现的方法的流程图
[0025] 图3是用于在第一节点和第二节点之间进行安全通信的计算机实现的方法的流程图;和
[0026] 图4是利用伪随机数生成器在第一节点和第二节点之间进行安全通信的计算机实现的方法的流程图。

具体实施方式

[0027] 现在将描述在第一节点处确定与第二节点处相同的共同秘密(CS)的方法、设备和系统。
[0028] 图1示出了系统1,系统1包括通过通信网络5与第二节点7通信的第一节点3。第一节点3具有相关联的第一处理设备23,第二节点7具有相关联的第二处理设备27。第一节点3和第二节点7可以包括电子设备,例如计算机、平板电脑、移动通信设备、计算机服务器等。在一个示例中,第一节点3可以是客户端设备,第二节点7可以是服务器,反之亦然。上述第一和第二节点可以具有相关联的数据存储装置13、17,以及可选地,具有用户接口15。如图1所示的系统还包括具有相关联的数据存储装置19的第三节点9,以及窃听者11。系统1可能构成区块链网络的一部分。
[0029] 第一节点3与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称加密密钥对相关。根据以下公式,基于第一节点主私钥(V1C)与公共生成器(G)的椭圆曲线点乘法,确定第一节点主公钥(P1C):
[0030] P1C=V1C x G  (公式1)
[0031] 可以选择,也可以随机生成或分配公共生成器G。第一非对称加密密钥对包括:
[0032] V1C:第一节点将其保持私有的第一节点主私钥。
[0033] P1C:公开的第一个节点主公钥。
[0034] 类似于第一节点3,第二节点7与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联。第二节点主公钥(P1S)通过以下公式确定:
[0035] P1S=V1S x G  (公式2)
[0036] 因此,第二非对称密码对包括:
[0037] V1S:第二节点将其保持私有的第二节点主私钥。
[0038] P1S:公开的第二节点主公钥。
[0039] 为了在第一节点3和第二节点7处确定共同秘密(CS),节点3和节点7执行如下所述的步骤,而不通过通信网络5传递私钥。
[0040] 发起和确定共同秘密
[0041] 现在将参考图2描述确定共同秘密(CS)的示例。共同秘密(CS)可以用于第一节点3和第二节点7之间的特定会话、时间、交易、数据传输或其他目的,并且重复使用相同的共同秘密(CS)可能不可取或不安全。因此,在不同的会话、时间、交易、数据流应用程序等之间可以更改共同秘密(CS)。
[0042] 在该示例中,由第一节点3执行的方法300包括步骤310,生成消息(M)。消息(M)可以是随机的、伪随机的或用户定义的。在一个示例中,消息(M)基于Unix时间和随机数(任意值)生成。例如,消息(M)可以提供为:
[0043] 消息(M)=UnixTime+随机数  (公式3)
[0044] 在某些示例中,消息(M)是任意的。然而,应当理解,消息(M)可能具有在某些应用中有用的选择值(例如Unix时间等)。
[0045] 方法300包括步骤315,通过通信网络5发送消息(M)至第二节点7。由于消息(M)不包括关于私钥的信息,因此消息(M)可以通过不安全的网络发送。
[0046] 方法300还包括步骤320,基于消息(M)确定确定性密钥(DK)。在该示例中,这包括确定该消息的加密散列。加密散列算法的示例包括SHA-256,以创建256位确定性密钥(DK)。即:
[0047] DK=SHA-256(M)  (公式4)
[0048] 应当理解,还可以使用其他散列算法。
[0049] 然后,方法300包括步骤330,基于第二节点主私钥(V1C)和确定性密钥(DK)确定第一节点第二私钥(V2C)。这可以根据以下公式基于第一节点主私钥(V1C)和确定性密钥(DK)的标量相加:
[0050] V2C=V1C+DK(公式5)
[0051] 因此,第一节点第二私钥(V2C)不是随机值,而是确定性地从第一节点主私钥导出。密钥对中的对应公钥,即第一节点第二公钥(P2C)具有以下关系:
[0052] P2C=V2C x G  (公式6)
[0053] 将V2C从公式5代入公式6可得出:
[0054] P2C=(V1C+DK)x G  (公式7)
[0055] 其中“+”运算符表示标量加法,而“x”运算符表示椭圆曲线上的点乘法。注意,由于椭圆曲线密码代数是分布式的,因此公式7可以表示为:
[0056] P2C=V1C x G+DK x G  (公式8)
[0057] 最后,可以将公式1代入公式8,得出:
[0058] P2C=P1C+DK x G  (公式9.1)
[0059] P2C=P1C+SHA-256(M)x G  (公式9.2)
[0060] 在公式8至9.2中,“+”运算符表示椭圆曲线上点的加法。因此,在已知第一节点主公钥(P1C)和消息(M)的情况下,可以得出对应的第一节点第二公钥(P2C)。第二节点7可能具有独立确定第一节点第二公钥(P2C)的知识,下面将对方法400进行详细讨论。
[0061] 方法300还包括步骤350,基于消息(M)和确定的第一节点第二私钥(V2C)生成第一签名消息(SM1)。生成签名消息包括应用数字签名算法对消息(M)进行数字签名。在一个示例中,这包括在椭圆曲线数字签名算法(ECDSA)中将第一节点第二私钥(V2C)应用于该消息以获得第一签名消息(SM1)。
[0062] 可以在第二节点7处使用相应的第一节点第二公钥(P2C)来验证第一签名消息(SM1)。第二节点7可以使用对第一签名消息(SM1)的验证来认证第一节点3,这将在下面的方法400中讨论。
[0063] 然后,第一节点3可以确定370第二节点第二公钥(P2S)。正如上面所讨论的,第二节点第二公钥(P2S)可以至少基于第二节点主公钥(P1S)和确定性密钥(DK)得出。在此示例中,由于将公钥确定370’为私有密钥与生成器(G)进行椭圆曲线点乘法的结果,因此可以以类似于公式6的方式将第二节点第二公钥(P2S)表示为:
[0064] P2S=V2S x G  (公式10.1)
[0065] P2S=P1S+DK x G  (公式10.2)
[0066] 应当理解,第一节点3可以独立于第二节点7确定370’第二节点第二公钥。
[0067] 然后,第一节点3可以基于已确定的第一节点第二私钥(V2C)和已确定的第二节点第二公钥(P2S)确定380共同秘密(CS)。第一节点3可以通过以下公式确定共同秘密(CS):
[0068] CS=V2C x P2S  (公式11)
[0069] 现在将描述在第二节点7执行的相应方法400。应当理解,这些步骤中的一些步骤类似于上述第一节点3执行的步骤。
[0070] 方法400包括步骤410,通过通信网络5从第一节点3接收消息(M)。这可以包括在步骤315由第一节点3发送的消息(M)。然后在步骤420,第二节点7基于消息(M)确定确定性密钥(DK)。第二节点7确定确定性密钥(DK)的步骤420与上述第一节点执行的步骤320相似。在该示例中,第二节点7独立于第一节点3执行此确定步骤420。
[0071] 下一步包括基于第一节点主公钥(P1C)和确定性密钥(DK)确定430’第一节点第二公钥(P2C)。在此示例中,由于将公钥确定430’为私钥与生成器(G)进行椭圆曲线点乘法的结果,因此可以以类似于公式9的方式将第一节点第二公钥(P2C)表示为:
[0072] P2C=V2C x G  (公式12.1)
[0073] P2C=P1C+DK x G  (公式12.2)
[0074] 方法400包括第二节点7执行的步骤以认证声称是第一节点3的节点是上述第一节点3。如先前所讨论的,这包括步骤440,从第一节点3接收第一签名消息(SM1)。然后,第二节点7可以使用在步骤430确定的第一节点第二公钥(P2C)验证450第一签名消息(SM1)上的签名。
[0075] 可以根据如上讨论的椭圆曲线数字签名算法(ECDSA)完成对数字签名的验证。重要的是,使用第一节点第二私钥(V2C)签名的第一签名消息(SM1)仅应使用相应的第一节点第二公钥(P2C)正确地验证,因为V2C和P2C形成了密码对。由于这些密钥是基于第一节点3注册时生成的第一节点主私钥(V1C)和第一节点主公钥(P1C)确定的,因此验证第一签名消息(SM1)可用于验证发送第一签名消息(SM1)的第一节点是否与注册期间的第一节点3相同。因此,第二节点7可以基于验证(450)第一签名消息的结果,进一步执行认证第一节点3的步骤(460)。
[0076] 上述身份验证可能适用于以下情况:两个节点之一是受信任节点,并且仅其中一个节点需要进行身份验证。例如,第一节点3可以是客户端,第二节点7可以是客户端信任的服务器。因此,服务器(第二节点7)可能需要认证客户端(第一节点3)的凭据,以允许客户端访问服务器系统。服务器可能没有必要向客户端验证服务器的凭据。然而,在某些情况下,可能希望两个节点相互认证,例如在下面的另一个示例中描述的点对点(peer-to-peer)情况下。
[0077] 方法400进一步包括第二节点7基于第二节点主私钥(V1S)和确定性密钥(DK)确定470第二节点第二私钥(V2S)。与第一节点3执行的步骤330类似,第二节点第二私钥(V2S)可以根据以下公式基于第二节点主私钥(V1S)和确定性密钥(DK)的标量相加得出:
[0078] V2S=V1S+DK  (公式13.1)
[0079] V2S=V1S+SHA-256(M)  (公式13.2)
[0080] 然后,第二节点7可以独立于第一节点3,根据以下公式,基于第二节点第二私钥(V2S)和第一节点第二公钥(P2C)确定480共同秘密(CS):
[0081] CS=V2S x P2C  (公式14)
[0082] 重要的是,共同秘密是独立得出的,不需要在节点之间进行传输。此外,节点不需要存储共同秘密(CS),因为可以基于消息(M)重新确定它。在一些示例中,所使用的消息(M)可以存储在数据存储装置13、17、19(或其他数据存储装置)中,而不具有与主私钥所要求的相同级别的安全性。在一些示例中,消息(M)是公开可用的。对于某些应用,共同秘密(CS)可以存储在与第一节点关联的第一数据存储装置(13)中,前提是共同秘密(CS)需与第一节点主私钥(V1C)一样保持安全。
[0083] 公开的系统还允许基于单个主密钥密码对确定可以对应于多个安全秘密密钥的多个共同秘密。下面的示例可以说明其优势。
[0084] 在存在多个会话的情况下,每个会话都与多个相应的共同秘密(CS)相关联,这可能需要保留与那些多个会话相关联的记录,以便将来可以重新确定相应的共同秘密(CS)。在已知系统中,这可能需要将多个秘密密钥存储在安全数据存储中,这种做法可能昂贵或难以维护的。相反,本系统具有在各自的第一和第二节点上保持安全的主私钥,而其他确定性密钥或消息(M)可以安全地或不安全地存储。尽管确定性密钥(DK)或消息(M)的存储不安全,但是由于确定共同秘密所需的主私钥仍然是安全的,多个共同秘密(CS)仍然保持安全。
[0085] 在对称密钥算法中使用共同秘密
[0086] 共同秘密(CS)可以用作秘密密钥,或者用作对称密钥算法中秘密密钥的基础,以实现第一节点3和第二节点7之间的安全通信。
[0087] 共同秘密(CS)可以是椭圆曲线点(xs,ys)的形式。可以使用节点3、7同意的标准公开已知操作将其转换为标准密钥格式。例如,xs值可以是256位整数,可以用作AES256加密的密钥。对于需要此长度密钥的任何应用,也可以使用RIPEMD160将其转换为160位整数。
[0088] 现在将参照图3描述在第一节点3和第二节点7之间的安全通信方法500、600。第一节点3基于在上述方法中确定的共同秘密(CS)确定510对称密钥。这包括将共同秘密(CS)转换为标准密钥格式。类似地,第二节点7也可以基于共同秘密(CS)确定610对称密钥。
[0089] 为了通过通信网络从第一节点3安全地向第二节点发送第一通信消息,需要对第一通信消息进行加密。因此,第一节点使用对称密钥加密520第一通信消息,得到加密的第一通信消息,然后通过通信网络5将加密的第一通信消息发送530到第二节点7。反过来,第二节点7接收620加密的第一通信消息,并使用对称密钥将加密的第一通信消息解密630为第一通信消息。
[0090] 类似地,第二节点7可以使用对称密钥将第二通信消息加密640为加密的第二通信消息,然后将其发送650到第一节点3。然后,第一节点3可以接收540加密的第二通信消息,并将其解密550为第二通信消息。
[0091] 使用共同秘密为伪随机数生成器播种(例如在流式算法中)
[0092] 接上所述,共同秘密(CS)可以用作秘密密钥或秘密密钥的基础,用于为可以在流式算法中使用的伪随机数生成器播种。这种方法700在图4中示出,并且包括:
[0093] 710,在第一节点,从第一和第二节点已知的共同秘密中导出秘密密钥;
[0094] 720,利用秘密密钥作为伪随机数生成器的种子;
[0095] 730,将伪随机数生成器的输出与待发送的数据相结合以产生加密数据;和[0096] 740,将加密数据传输到第二节点。
[0097] 第二节点还从共同秘密确定810对应的秘密密钥。在接收820到加密数据之后,第二节点可以使用秘密密钥解密该数据。
[0098] 通过将共同秘密的格式转换成期望的非对称密钥格式,例如高级加密标准(AES),可以从共同秘密得出秘密密钥。这一非对称密钥可以进一步与其他数据结合,例如通过异或(XOR)运算。其他数据包括时间变量或时间变量的加密函数(例如,散列)。时间变量可以是与区块链的区块高度相关联的时间变量。例如,在比特币中,CheckLockTimeVerify(CLTV)可用于生成时间变量。在这种情况下,CLTV将被写入区块链,并且可以从该点进行访问。以这种方式,例如,视频流可以在区块公开后(当时是共享的)可用。
[0099] 可以计算时间变量的散列并与非对称密钥结合(例如通过XOR运算)以定义秘密密钥。秘密密钥可以附加地或替代地与一次性使用值组合,一次性使用值被散列并与秘密密钥组合(例如,通过XOR运算)。在这种情况下,一次性使用值需要在数据传输的两个节点之间进行交换,或由这两个节点导出。
[0100] 伪随机数生成器可以是已知的伪随机数生成器,例如基于Zeta函数(http://keisan.casio.com/exec/system/1180573439)或Wolfram Rule30函数(http://mathworld.wolfram.com/Rule30.html)。伪随机数生成器的输出可以使用异或(XOR)运算与待发送的数据组合。伪随机数生成器的输出可以用作一次性使用密码,例如一次一密。
[0101] 加密数据的传输包括伪随机比特流的传输。伪随机比特流可以提供VPN服务或流媒体服务。例如,发送者可以是服务提供商,服务提供商使用针对每个用户的不同的共享对称密钥向多个用户发送组合数据。
[0102] 可以将以这种方式发送的数据或待发送的数据的位置信息存储在区块链上。例如,在比特币中,OP_Return功能可用于存储此类数据。
[0103] 发送和接收节点可以独立地为自己的伪随机数生成器播种。由于该方法使用基于XOR的随机数据的有效的一次一密(OTP),因此这是一种有效的隐藏方法。每个节点都基于种子运行自己的伪随机数生成器,从而允许从伪随机数据开始启动就可以按顺序跟踪伪随机数据流。由于数据以流的形式传输,因此XOR中的错误可以稍后进行纠正(编码)或跳过/略过(实时视频)。
[0104] 示例
[0105] 下面介绍了使用比特币协议实现上述方法的一个示例:
[0106] (i)如上所描述的消息交换、密钥生成、共同秘密的计算以及对称密钥(AES)的推导。
[0107] (ii)比特币CheckLockTimeVerify(CLTV)操作码用于生成与区块高度(第二个区块)的时间相关联的时间变量。
[0108] (iii)由此,我们可以采用AES(对称密钥)和时间变量,计算出秘密密钥,如下所示:
[0109] 1.H1=Hash-SHA256(Time)//得出256位#
[0110] 2.SK=XOR(AES|H1)
[0111] 3.(可选)对一次性使用值进行散列,然后与SK进行XOR运算
[0112] (iv)使用SK作为输入变量,以为伪RND(例如Wolfram规则30)播种。
[0113] (v)伪RND返回的输出通过XOR运算与待加密的文件组合。
[0114] (vi)加密文件被发送,例如作为数据流。
[0115] (vii)当接收方下载数据时,使用从共同秘密得出的相应SK通过
[0116] XOR运算对其进行解密。
[0117] 上述方法可以为每个用户提供非常快速的一次性加密,有效地提高线速。这可用于使用单独的密钥为每个用户加密媒体流服务。该方法可以很容易在硬件上实现。XOR和伪RND部分很简单,并且作为入口的XOR有效地提高了线速(即使在100GB网络中)。这使诸如路由器之类的设备能够运行此方法,甚至可以将其用作流式VPN服务(而不仅仅是媒体或文件)。在这样的VPN应用中,每个VPN电路都可以有一个单独的一次一密。更进一步,也是最重要的是,上述方法会使加密过程无法破解。
[0118] 在上述数据传输方法中,数据加密算法中使用的伪随机数生成器的种子是从共同秘密中获取的,而共同秘密本身是使用前面一节“发起和确定共同秘密”中描述的方法计算得出的。这种方法特别安全,因为共同秘密不会在网络上的节点之间传输,因此无法被第三方拦截。由于伪随机数生成器是确定性的,因此如果种子被盗用,则系统可能会遭到攻击。相比之下,由于本方法提供了一种方式,通过该方式可以在系统的节点上独立地导出共同秘密/秘密密钥,因此该方式为加密过程中使用(例如,在流密码中使用)的伪随机数生成器提供了一种改进的播种方式。此外,该方式提供了为多个用户生成一组不同的对称密钥的有效手段,然后可以将其用于服务提供商的流算法中以将数据发送给多个用户。因此,本文描述的方法将导出共同秘密的改进方法与流算法相结合,以提供适用于诸如媒体流、流虚拟专用网(VPN)服务、大文件传输等应用的高度安全、高速的加密方法。
[0119] 除上述内容外,还可以设想,用于流算法或其他加密文件传输的播种方法可以使用秘密密钥,该秘密密钥并非由通过上一节“发起和确定共同秘密”中描述的方法计算出的共同秘密生成。在这方面,通过使用附加数据、优选一次性使用数据,并与对称密钥相结合以得出秘密密钥,可以使数据传输更加安全。这样,即使先前已经拦截了秘密密钥,它本身也不能用于解密数据传输。例如,用于加密数据并将加密的数据从第一节点传输到第二节点的方法包括:
[0120] 在第一节点处,通过将对称密钥与附加数据组合来导出秘密密钥,以进行加密的数据传输;
[0121] 利用秘密密钥作为伪随机数生成器的种子;
[0122] 将伪随机数生成器的输出与待发送的数据相结合以产生加密数据;
[0123] 和
[0124] 将加密数据发送到第二节点。
[0125] 第二节点还从公共对称密钥和附加数据确定对应的秘密密钥。在接收到加密数据之后,第二节点可以利用秘密密钥来解密数据。
[0126] 如先前所讨论的,附加数据可以是时间变量,例如区块链时间变量或其加密函数(例如,散列),还可以使用XOR运算与秘密密钥结合。附加地或可替代地,附加数据包括一次性使用值或一次性使用值的密码函数。一次性使用值可以与对称密钥组合(例如,通过XOR运算),以导出用作伪RND的种子的秘密密钥。附加数据可以在第一和第二节点之间进行交换,以使得能够解密数据信号。可选地,附加数据可以由第一节点和第二节点导出,而不需要在节点之间传输附加数据。例如,可以使用先前描述的用于生成共同秘密的方案来导出附加数据。
[0127] 本领域技术人员可以理解,在不脱离由所附权利要求限定的本发明的范围的情况下,可以对上述实施例进行多种变化和/或修改
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈