CN112231708A - 用于区块链网络的基于现场可编程门阵列的可信执行环境 - Google Patents

用于区块链网络的基于现场可编程门阵列的可信执行环境 Download PDF

Info

Publication number
CN112231708A
CN112231708A CN202011097794.XA CN202011097794A CN112231708A CN 112231708 A CN112231708 A CN 112231708A CN 202011097794 A CN202011097794 A CN 202011097794A CN 112231708 A CN112231708 A CN 112231708A
Authority
CN
China
Prior art keywords
fpga
key
encrypted
random number
blockchain
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
CN202011097794.XA
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN202011097794.XA priority Critical patent/CN112231708A/zh
Publication of CN112231708A publication Critical patent/CN112231708A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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

Abstract

本申请提供用于区块链网络的基于现场可编程门阵列(FPGA)的可信执行环境(TEE)的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括将设备标识符(ID)、第一随机数和第一密钥存储在现场可编程门阵列(FPGA)设备中;将加密比特流发送到FPGA设备,其中,加密比特流可以通过第一密钥解密成包括第二随机数的解密比特流;从FPGA设备接收加密消息;使用第三密钥对来自FPGA设备的加密消息进行解密以产生解密消息;响应于对所述加密消息进行了解密:确定所述解密消息中的第三随机数;使用所述第三随机数对密钥进行加密;以及将所述密钥发送到FPGA设备。

Description

用于区块链网络的基于现场可编程门阵列的可信执行环境
技术领域
本文涉及配置基于现场可编程门阵列(FPGA)的可信执行环境(TEE)以执行区块链合约虚拟机。
背景技术
分布式账本(DLS),也可称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并包括访问控制层。
区块链网络中的节点运行一个或多个程序,例如区块链虚拟机,用于执行与区块链相关的任务。与区块链相关的任务的示例包括查询账户余额、部署智能合约、验证新区块链交易等。
现场可编程门阵列(FPGA)是能够配置为执行不同逻辑功能的集成电路。FPGA包含可编程逻辑块阵列和可用于线连接不同配置中的逻辑块的互连。FPGA比特流是包含用于FPGA的编程信息的文件。
一些现代处理器包括可信执行环境(Trusted Execution Environment,TEE)功能。TEE是一种安全的硬件环境,其可保护处理器上执行的软件代码免受未经授权的修改。TEE提供隔离的飞地(enclave)以防止外部处理(例如,操作系统、外部参与者等)改变在飞地内执行的任何数据或软件代码。TEE通常还包括用于验证处理器上执行的软件代码,或者在某些情况下,与执行软件相关联的数据未被修改的机制。TEE实施方式的一个示例是英特尔的基于CPU的
Figure BDA0002724315110000021
技术,所述技术依赖于由英特尔运营的集中式信任机构。
期望允许开发人员在不涉及外部实体的情况下实现他们自己的信任机制。
发明内容
本文描述了用于增强区块链节点上的数据和代码安全性的技术。这些技术总体上涉及配置基于FPGA的TEE,以在区块链节点上运行与区块链相关的程序。
本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施方式执行操作。
本文还提供了用于实施本文提供的所述方法的系统。所述系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将导致所述一个或多个处理器按照本文提供的方法的实施方式执行操作。
应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,而还包括所提供的方面和特征的任意组合。
以下在附图和描述中阐述了本文的一个或多个实施方式的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显而易见。
附图说明
图1是示出了可用于执行本文的实施方式的环境的示例的示图。
图2是示出根据本文的实施方式的架构的示例的示图。
图3描绘了根据本文的实施方式的具有基于FPGA的TEE的区块链节点的示例。
图4描绘了根据本文的实施方式的基于FPGA的TEE的设置的示例。
图5是用于实现基于FPGA的TEE的处理500的示例的流程图。
图6是根据本文的实施例的装置600的模块的示例的示图。
各附图中的相同附图标记表示相同元件。
具体实施方式
本文描述了用于增强区块链节点上的数据和代码安全性的技术。这些技术通常涉及配置基于FPGA的TEE,以在区块链节点上运行与区块链相关的程序。
为本文的实施例提供进一步的上下文,并且如上所述,分布式账本系统(DLS),其也可以称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体安全地、不可篡改地交易和存储数据。尽管术语“区块链”通常与特定网络和/或用例相关联,但是在不参考任何特定用例情况下,本文使用“区块链”来一般地指代DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据经哈希处理,并且在该树的每个分支中的所有哈希值在该分支的根处级联。沿着该树持续该处理一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。这里参考联盟区块链网络进一步详细描述了本文的实施例。然而,预期本文的实施例可以在任何适当类型的区块链网络中实现。
通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识处理由可以被称为共识节点的授权的节点集控制,一个或多个共识节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络内,提供全局区块链作为跨所有节点复制的区块链。也就是说,所有共识节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实施实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识,下面将进一步详细描述。
图1是示出了可用于执行本文实施例的环境100的示例的图。在一些示例中,环境100使得实体能够参与联盟区块链网络102。环境100包括计算系统106、108和网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得能够与联盟区块链网络102通信或在联盟区块链网络102内部通信成为可能。通常,网络110表示一个或多个通信网络。在一些情况下,计算系统106、108可以是云计算系统(未示出)的节点,或者每个计算系统106、108可以是单独的云计算系统,其包括通过网络互连并且用作分布式处理系统的多个计算机。
在所描绘的示例中,计算系统106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算设备120。计算设备的示例包括(但不限于)服务器、台式计算机、笔记本电脑、平板电脑和智能手机。在一些示例中,计算系统106、108承载用于与联盟区块链网络102交互的一个或多个由计算机实施的服务。例如,计算系统106可以承载第一实体(例如,用户A)的由计算机实施的、例如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算系统108可以承载第二实体(例如,用户B)的由计算机实施的、例如交易管理系统的服务,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),并且计算系统106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2描绘了根据本文的实施例的架构200的示例。所述架构200包括实体层202、承载服务层204和区块链网络层206。在所描绘的示例中,实体层202包括三个参与者,参与者A、参与者B和参与者C,每个参与者具有各自的交易管理系统208。
在所描绘的示例中,承载服务层204包括用于每个交易管理系统208的接口210。在一些示例中,各个的交易管理系统208通过网络(例如,图1的网络110)使用协议(例如,超文本传输安全协议(HTTPS))与各自的接口210通信。在一些示例中,每个接口210提供各自的交易管理系统208与区块链网络层206之间的通信连接。更具体地,接口210与区块链网络层206的区块链网络212通信。在一些示例中,使用远程过程调用(RPC)进行接口210与区块链网络层206之间的通信。在一些示例中,接口210通承载”用于各自的交易管理系统208的区块链网络节点。例如,接口210提供用于访问区块链网络212的应用程序接口(API)。
如本文所述,提供作为对等网络的区块链网络212,所述区块链网络212包括在区块链216中不可篡改地记录信息的多个节点214。尽管示意性地描绘了单个区块链216,但是提供了区块链216的多个副本,并且跨区块链网络212维护区块链216的多个副本。例如,每个节点214存储区块链的副本。在一些实施例中,区块链216存储与在参与联盟区块链网络的两个或更多个实体之间执行的交易相关联的信息。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。虽然本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括(但不限于)有价物(例如,资产、产品、服务、货币)的交换。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储至区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的处理。无法对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括(但不限于)输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供了两个交易的哈希值,并对它们自身进行哈希处理以提供另一个哈希值。重复该处理,直到对于所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并竞相将区块添加到区块链中。这种节点称为共识节点。上面介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
更详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。共识节点还确定区块链中最新区块(即,添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数(nonce)和时间戳。
通常,PBFT提供容忍拜占庭故障(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过在PBFT中假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的操纵消息)而实现。在PBFT中,以包括主共识节点和备共识节点的顺序提供共识节点。主共识节点被周期性地改变,通过由区块链网络内的所有共识节点对区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点(peer node)接收的,并验证在传输期间消息未被篡改。
在PBFT中,共识协议是在所有共识节点以相同的状态开始的情况下分多个阶段提供的。首先,客户端向主共识节点发送调用服务操作(例如,在区块链网络内执行交易)的请求。响应于接收到请求,主共识节点将请求组播到备共识节点。备共识节点执行请求,并且各自向客户端发送回复。客户端等待直到接收到阈值数量的回复。在一些示例中,客户端等待直到接收到f+1个回复,其中f是区块链网络内可以容忍的错误共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序达成一致,并且该记录或被接受或被拒绝。
在一些区块链网络中,用加密处理来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密处理。在对称加密中,同一密钥可以用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密数据发送给参与者B。参与者B可以使用其私钥来解密该加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名还可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值以提供作为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,则参与者B可以确认该消息确实来自参与者A,并且未被篡改。
图3描绘了根据本文的实施方式的具有基于FPGA的可信执行环境(TEE)的区块链节点300的示例。区块链节点300是例如图2的区块链网络212的区块链网络的多个节点之一。在一些情况下,区块链节点300能够存储区块链信息并执行与区块链相关的任务,例如智能合约。
在一些实施方式中,区块链节点300包括可通信地耦接到外围组件互连快速(Peripheral Component Interconnect Express,PCI-e)设备303的平台301。平台301能够执行通用计算任务,并且包括计算机硬件,诸如DRAM 301a、CPU 301b和硬盘驱动器301c。在一个示例中,平台301可以是服务器、个人计算机、平板计算机等。
在一些实施方式中,为了增强数据和代码的安全性,区块链节点300在TEE中执行与区块链相关的任务。结果,禁止未授权的程序和设备(例如平台301的操作系统)访问和更改区块链节点300上的与区块链相关的信息以及在TEE中执行的软件代码。
在一些实施方式中,为了在区块链节点300上实现基于FPGA的TEE,平台301可通信地耦接到PCI-e设备303。PCI-e设备303包括FPGA 304和用于实现TEE所需的附加硬件资源306。FPGA 304是能够配置为执行特定逻辑功能的可编程集成电路。FPGA 304包括可编程区域319、eFUSE 320和ASIC区域322。可编程区域319包括可以被线连接在一起以执行复杂的组合功能的可编程块阵列。可以通过将FPGA比特流加载到可编程区域319中来编程FPGA304。例如,FPGA比特流可以包括用于在可编程区域319中创建TEE的指令。eFUSE320是包括一系列熔断链(fuse link)的一次性可编程区域,其中每个熔断链可以被烧录以存储比特。结果,与可编程区域319不同,eFUSE 320一旦被写入就不能被重新编程。例如,eFUSE 320可以存储FPGA 304特有的信息,例如唯一设备ID。ASIC区域322是不能由FPGA比特流重新编程的固定逻辑区域。ASIC区域322可以存储支持FPGA 304的功能的程序。在一个示例中,ASIC区域322可以存储认证新加载的FPGA比特流的比特流认证模块324。
在一些实施方式中,FPGA 304耦接到PCI-e设备上的附加硬件资源306。例如,FPGA304可以与可信平台模块(Trusted Platform Module,TPM)332、闪存334和DRAM 336进行接口连接。
在一些实施方式中,为了提供TEE的“执行”方面,FPGA 304被编程为至少运行K-V(键值对)表319a、查询服务319b和区块链虚拟机319c。K-V表319a是在FPGA 304上本地存储区块链信息的高速缓存。查询服务319b是负责答复提交给区块链的查询的程序。区块链查询的示例包括查询过去的交易、账户余额等。区块链虚拟机319c是负责在区块链节点300上执行与区块链相关的任务的程序。例如,区块链虚拟机319c可以执行部署在区块链网络上的智能合约。
在一些实施方式中,为了提供TEE的“可信”方面,FPGA 304被编程为至少运行存储器加密服务319d、密钥服务319e和认证服务319f。存储器加密服务319d对FPGA 304上的关键信息进行编码。密钥服务319e负责管理密钥并使用密钥与区块链进行通信。认证服务319f允许FPGA 304,例如通过提供比特流测量报告,向远程设备或用户证明FPGA 304可以被信任。针对图4和下面的相关描述对将FPGA 304编程为TEE的步骤和方法进行描述。
图4描绘了根据本文的实施方式的基于FPGA的TEE设置400的示例。在TEE设置400期间,设置服务器402与FPGA 304交换信息以创建基于FPGA的TEE。TEE设置400的目标有两个:(1)FPGA 304被编程为对来自设置服务器402的加密比特流408a进行解码、认证和安装;(2)设置服务器402被编程为利用FPGA 304进行认证,并将要部署的私钥(404a)发送到FPGA304。一旦接收到所部署的私钥404b,FPGA 304的密钥服务319e(图3)管理这些密钥并使用它们与外部处理和设备进行通信。阻止未经授权的处理和设备(例如,没有正确密钥信息的处理和设备)与FPGA 304交换信息。可编程区域319还包括用于执行与区块链相关的任务的一个或多个程序,例如图3的程序319a-319c。这些程序构成了TEE的“执行”方面。
在一些实施方式中,在TEE设置400的开始,设置服务器402存储用于将FPGA 304编程为TEE的所有必要信息。例如,设置服务器402可以存储用于FPGA 304的设备信息,包括设备ID 410a、设备私钥熵412a和比特流认证密钥414a。设备ID 410a是唯一标识FPGA 304的字符串,设备私钥熵412a是随机生成的或伪随机生成的用于FPGA 304的字符串,以及比特流认证密钥414a是用于认证加密比特流408a的字符串。区块链网络中的不同FPGA设备将具有不同的设备信息设置。设置服务器402可以将设备信息的集合存储在任何合适的数据结构例如键值表中。
设置服务器402将设备信息编程到eFUSE 320中(401)。例如,可以使用JTAG标准将设备信息写入eFUSE 320。结果,eFUSE 320存储相应的设备ID 410b、设备私钥熵412b和比特流认证密钥414b。由于eFUSE 320仅是一次性可编程的,因此设备信息在FPGA 304中不能被改变。
接下来,设置服务器402使加密比特流408a被发送到FPGA 304。加密比特流408a是旨在配置可编程区域319以实现TEE功能的文件。可以使用任何合适的加密方案诸如高级加密标准(AES)对加密比特流408a进行编码。加密比特流408a可以被部署到区块链网络中的不同FPGA设备。
在接收到加密比特流408a时,FPGA 304使用存储在eFUSE 320中的比特流认证密钥414b来认证加密比特流408a(403)。例如,FPGA 304可以被编程为使用存储在ASIC区域322中的专用比特流认证模块324来执行认证。如果加密比特流408a是用于FPGA 304的正确比特流,则认证将成功。结果,FPGA 304对加密比特流408a进行解码,并将解码的比特流加载到可编程区域319(405)。
在一些实施方式中,解码的比特流包括密钥生成模块418和根私钥熵416。根私钥熵416是随机生成的或伪随机生成的加密比特流408特有的字符串,并且密钥生成模块418是被设计为生成根私钥的程序。
密钥生成模块418将根私钥熵416、设备ID 410b和设备私钥熵412b作为输入,并将生成的根私钥406b作为输出。尽管不同的FPGA设备具有相同的根私钥熵,但是所生成的根私钥406b是FPGA 304特有的,这是因为设备ID 410b和设备私钥熵412b是FPGA 304特有的。以这种方式,FPGA比特流可以由社区开源并审计,但仍然可以用于在FPGA 304上创建TEE。
接下来,FPGA 304用生成的根私钥406b对消息进行加密,并将所述消息发送到设置服务器402(407)。例如,所述消息可以是唯一设备ID 410b和随机数的级联。FPGA 304可以使用任何合适的加密方案例如AES或GCM对消息进行编码。
在从FPGA 304接收到加密消息时,设置服务器402对所述消息进行解密并确定所生成的根私钥406b与根私钥406a是否相同(407)。如果相同,则设置服务器402利用随机数对要部署的私钥404a进行加密并将加密密钥发送到FPGA 304(409)。FPGA 304接收并存储所部署的私钥404b。所部署的私钥404b是负责在基于FPGA的TEE和外部环境之间交换信息的密钥。例如,所部署的私钥404b可以包括解封私钥、签名私钥等。
在一些实施方式中,远程用户发起验证TEE环境的认证请求。作为响应,FPGA 304准备比特流认证报告,并用所部署的私钥404b对比特流认证报告进行加密后将其发送给远程用户。例如,FPGA 304可以使用认证服务319f(图3)来响应所述请求。
图5是用于实现基于FPGA的TEE的处理500的示例的流程图。为方便起见,处理500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行,并根据本文被适当地编程。例如,被适当地编程的区块链节点(例如,图1的计算系统106)可以执行处理500。
作为第一步,服务器将设备标识符(ID)、第一随机数和第一密钥存储在现场可编程门阵列(FPGA)设备中(502)。例如,服务器可以将信息存储在FPGA设备的一次性可编程区域例如eFUSE中。FPGA设备可通信地耦接到服务器,并且设备ID是FPGA设备特有的。
接下来,服务器将加密比特流发送到FPGA设备(504)。如果被正确解密,加密比特流将FPGA设备编程为执行预定义的功能。服务器可以通过一个或多个通信信道诸如外围组件互连快速(PCI-E)通道将加密比特流发送到FPGA设备。
作为响应,FPGA设备使用比特流认证模块和先前接收的第一密钥对加密比特流进行解密。在成功解密后,FPGA设备加载解密的比特流。比特流中的密钥生成模块被编程为使用(1)设备ID、(2)第一随机数以及(3)比特流中包括的第二随机数生成第二密钥。
然后,FPGA设备使用第二密钥加密消息。例如,所述消息可以是使用高级加密标准-伽罗瓦/计数器模式(AES-GCM)的设备ID和第三随机数的级联(设备ID||第三随机数)。
服务器从FPGA设备接收加密消息(506)。
服务器使用第三密钥对来自FPGA设备的加密消息进行解密以产生解密的消息(508)。第三密钥先前被存储在服务器中,并且应该与FPGA设备生成的第二密钥相同。
响应于成功解密,服务器确定解密的消息中包含的第三随机数(510)。服务器可以确定第三随机数,因为服务器已经存储了设备ID。
接下来,服务器使用第三随机数对一个或多个密钥进行加密(512)。例如,FPGA设备可以使用密钥来执行各种功能,例如认证服务。然后,服务器将加密密钥发送到FPGA设备(514)。
图6是根据本文的实施例的装置600的模块的示例的示图。
装置600可以是被配置为同步区块链网络中的数据的区块链节点的实施例的示例,其中所述区块链网络是联盟区块链网络。装置600可以对应于上述实施例,并且装置600包括以下:存储模块610,将设备标识符(ID)、第一随机数和第一密钥存储在现场可编程门阵列(FPGA)设备中;第一发送模块620,将加密比特流发送到FPGA设备,其中,可以通过第一密钥将所述加密比特流解密成包括第二随机数的解密的比特流;接收模块630,从FPGA设备接收加密消息,其中所述加密消息是由FPGA设备使用第二密钥进行加密的,并且其中由FPGA设备使用设备ID、第一随机数和第二随机数生成第二密钥;解密模块640,使用第三密钥对来自FPGA设备的加密消息进行解密,以产生解密的消息,其中所述第三密钥被存储在服务器中;确定模块650,确定嵌入在解密的消息中的第三随机数;加密模块660,使用第三随机数对一个或多个密钥进行加密;第二发送模块670,将一个或多个密钥发送给FPGA设备。
本文中描述的技术产生一个或多个技术效果。例如,在一些实施例中,所述技术使计算设备能够与FPGA建立信任关系,以使其能够用作可信执行环境(TEE)。在一些实施例中,所述技术使得能够在不涉及FPGA的制造商的认证的情况下建立该信任关系。这可以提高安全性,因为它可以消除在验证期间与外部实体的交互,而与外部实体的交互可能会受到攻击者的拦截或篡改。
所描述的主题的实施例可以包括单独或组合的一个或多个特征。例如,在第一实施例中,计算机实现的用于配置用于区块链网络的可信执行环境的方法,包括:由区块链节点将设备标识符(ID)、第一随机数和第一密钥存储在与所述区块链节点相关联的现场可编程门阵列(FPGA)设备中;由所述区块链节点将加密比特流发送到FPGA设备,其中,所述加密比特流可以通过所述第一密钥被解密为包括第二随机数的解密的比特流;由所述区块链节点从FPGA设备接收加密消息,其中所述加密消息是由所述FPGA设备使用第二密钥进行加密的,并且由FPGA设备使用设备ID、第一随机数和第二随机数生成所述第二密钥;由所述区块链节点使用第三密钥对来自FPGA设备的加密消息进行解密以产生解密的消息,其中所述第三密钥被存储在服务器中;响应于使用第三密钥对所述加密消息进行解密:由所述区块链节点确定嵌入在所述解密消息中的第三随机数;由所述区块链节点使用第三随机数对一个或多个密钥进行加密;以及由所述区块链节点将所述一个或多个密钥发送到所述FPGA设备。
前述和其他描述的实施例可以各自可选地包括以下特征中的一个或多个:
第一特征,可与以下任何特征组合,指定所述设备ID、所述第一随机数和所述第一密钥被存储在所述FPGA设备的一次性可编程区域中。
第二特征,可与先前或以下特征中的任何特征组合,指定所述解密的比特流和所述第二随机数被存储在所述FPGA设备的可重新编程区域中。
第三特征,可与先前或以下特征中的任何特征组合,指定所述设备ID和所述第一随机数是所述FPGA设备特有的。
第四特征,可与先前或以下特征中的任何特征组合,指定所述解密的消息包括设备ID。
第五特征,可与先前或以下特征中的任何特征组合,指定所述第三密钥与所述第二密钥是相同的。
第六特征,可与先前或以下特征中的任何特征组合,指定所述FPGA设备使用比特流认证模块和第一密钥对加密比特流进行解密和认证。
本文中描述的主题、动作和操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以实现为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令模块,用于由数据处理执行或控制数据处理装置的操作。例如,计算机程序载体可以包括一个或多个计算机可读存储介质,其具有编码或存储在其上的指令。载体可以是有形的非暂态计算机可读介质,例如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他介质类型。替代地或另外地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由通信数据网络互联的在一个或多个位置上的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:文件保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
举例来说,用于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从耦接到处理器的非暂态计算机可读介质接收用于执行的计算机程序的指令以及数据。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个计算机或处理器执行,以通过对输入数据进行运算并生成输出来执行操作。处理和逻辑流程也可以由例如FPGA、ASIC或GPU的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个大容量存储设备,以从一个或多个存储设备接收数据或将数据传输到一个或多个大容量存储设备。存储设备可以是,例如,磁盘、磁光或光盘,固态驱动器或任何其他类型的非暂态计算机可读介质。但是,计算机不需要具有这样的设备。因此,计算机可以耦接到例如本地和/或远程的一个或多个存储器的一个或多个存储器设备。例如,计算机可以包括作为计算机的整体部件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以嵌入到另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
组件可以通过例如直接地或经由一个或多个中间组件彼此电连接或光连接而可交换地彼此“耦接”。如果其中一个组件集成到另一个组件中,则组件也可以彼此“耦接”。例如,集成到处理器中的存储组件(例如,L2高速缓存组件)被“耦接到”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备(例如,LCD(液晶显示器)监视器),用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从用户设备上的web浏览器接收的请求将网页发送到用户设备上的web浏览器,或者通过与在例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息来并接收来自用户的响应消息来与用户交互。
本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
尽管本文包含许多具体实施细节,但这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的效果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理无需要求所示的特定顺序或次序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。

Claims (10)

1.一种计算机实现的用于配置用于区块链网络的基于现场可编程门阵列FPGA的可信执行环境TEE的方法,应用于区块链网络中的区块链节点,所述方法包括:
将设备标识符ID、第一随机数和第一密钥存储在与所述区块链节点相关联的FPGA设备中;
将加密比特流发送到所述FPGA设备,其中,所述加密比特流能够由所述FPGA设备使用所述第一密钥解密为包括第二随机数的解密比特流;
从所述FPGA设备接收加密消息,其中,所述加密消息是由所述FPGA设备使用第二密钥进行加密的,所述第二密钥是由所述FPGA设备使用所述ID、所述第一随机数和所述第二随机数生成的;
使用第三密钥对所述加密消息进行解密以产生解密消息,其中,所述第三密钥被预先存储在所述区块链节点中;
使用嵌入在所述解密消息中的第三随机数对一个或多个密钥进行加密,以及将加密后的一个或多个密钥发送到所述FPGA设备。
2.如权利要求1所述的方法,其中,所述ID、所述第一随机数和所述第一密钥被存储在所述FPGA设备的一次性可编程区域中。
3.如权利要求1所述的方法,其中,所述解密比特流和所述第二随机数被存储在所述FPGA设备的可重新编程区域中。
4.如权利要求1所述的方法,其中,所述ID和所述第一随机数是所述FPGA设备特有的。
5.如权利要求1所述的方法,其中,所述解密消息包括所述ID。
6.如权利要求1所述的方法,其中,所述第三密钥与所述第二密钥是相同的。
7.如权利要求1所述的方法,其中,所述FPGA设备使用比特流认证模块和所述第一密钥对所述加密比特流进行解密和认证。
8.如权利要求1所述的方法,还包括:
在将加密后的所述一个或多个密钥发送到所述FPGA设备之后,对由所述FPGA设备执行的智能合约虚拟机进行初始化。
9.一种用于配置用于区块链网络的基于现场可编程门阵列FPGA的可信执行环境TEE的系统,所述系统包括:
一个或多个处理器;和
耦接到所述一个或多个处理器并在其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行权利要求1至8中任一项所述的方法。
10.一种用于配置用于区块链网络的基于现场可编程门阵列FPGA的可信执行环境TEE的装置,所述装置包括用于执行权利要求1至8中任一项所述的方法的多个模块。
CN202011097794.XA 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境 Pending CN112231708A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011097794.XA CN112231708A (zh) 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202011097794.XA CN112231708A (zh) 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境
CN201980001321.4A CN110392889B (zh) 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境
PCT/CN2019/079705 WO2019120315A2 (en) 2019-03-26 2019-03-26 Field-programmable gate array based trusted execution environment for use in a blockchain network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980001321.4A Division CN110392889B (zh) 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境

Publications (1)

Publication Number Publication Date
CN112231708A true CN112231708A (zh) 2021-01-15

Family

ID=66994225

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980001321.4A Active CN110392889B (zh) 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境
CN202011097794.XA Pending CN112231708A (zh) 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201980001321.4A Active CN110392889B (zh) 2019-03-26 2019-03-26 用于区块链网络的基于现场可编程门阵列的可信执行环境

Country Status (10)

Country Link
US (1) US10657293B1 (zh)
EP (1) EP3628087B1 (zh)
JP (1) JP6840264B2 (zh)
KR (1) KR102151904B1 (zh)
CN (2) CN110392889B (zh)
AU (1) AU2019204735B2 (zh)
CA (1) CA3058239C (zh)
SG (1) SG11201909112PA (zh)
TW (1) TWI715338B (zh)
WO (1) WO2019120315A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750488B (zh) * 2019-09-25 2021-02-19 支付宝(杭州)信息技术有限公司 在fpga中实现外部调用的方法及装置
CN113285802B (zh) * 2019-09-25 2022-08-19 支付宝(杭州)信息技术有限公司 基于fpga的密钥协商方法及装置
CN110716724B (zh) * 2019-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 基于fpga实现隐私区块链的方法及装置
CN113157635B (zh) * 2019-09-25 2024-01-05 支付宝(杭州)信息技术有限公司 在fpga上实现合约调用的方法及装置
CN110716728B (zh) * 2019-09-25 2020-11-10 支付宝(杭州)信息技术有限公司 Fpga逻辑的可信更新方法及装置
CN110751555B (zh) * 2019-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 基于fpga实现合约调用的方法及装置
CN110717203B (zh) * 2019-09-25 2021-04-27 支付宝(杭州)信息技术有限公司 基于fpga实现隐私区块链的方法及装置
CN110738567B (zh) * 2019-09-25 2021-02-09 支付宝(杭州)信息技术有限公司 基于fpga的安全智能合约处理器的交易处理方法及装置
CN111538782B (zh) * 2020-04-14 2023-08-08 浙江浙燃能源有限公司 基于区块链的能源大数据管理系统
CN111541788B (zh) 2020-07-08 2020-10-16 支付宝(杭州)信息技术有限公司 区块链一体机的哈希更新方法及装置
CN111541553B (zh) 2020-07-08 2021-08-24 支付宝(杭州)信息技术有限公司 区块链一体机的可信启动方法及装置
CN111738859B (zh) * 2020-07-08 2021-07-13 支付宝(杭州)信息技术有限公司 区块链一体机及区块链网络
CN112714117B (zh) * 2020-08-24 2022-11-01 支付宝(杭州)信息技术有限公司 业务处理方法、装置、设备及系统
US11681832B2 (en) * 2020-10-14 2023-06-20 Infineon Technologies Ag Electronic circuit identification (ID) techniques using both a client-side ID and a supplier-side ID
CN112765270B (zh) * 2020-12-31 2022-06-17 杭州趣链科技有限公司 区块链数据处理方法、装置、计算机设备及介质
US11379125B1 (en) 2021-03-31 2022-07-05 International Business Machines Corporation Trusted field programmable gate array
US20220417045A1 (en) * 2021-06-28 2022-12-29 Medellin Applied Research Concepts, LLC Device for implementing gated array blockchain protection codes for iot devices
CN114978626B (zh) * 2022-05-10 2023-03-10 北京百度网讯科技有限公司 基于区块链的可信计算方法、装置、设备及介质
CN116614317B (zh) * 2023-07-20 2023-09-12 中国标准化研究院 一种基于区块链的贸易数据处理方法及系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120047371A1 (en) * 2010-08-23 2012-02-23 Raytheon Company Secure field-programmable gate array (fpga) architecture
US20130346759A1 (en) * 2012-06-20 2013-12-26 Microsoft Corporation Managing use of a field programmable gate array with reprogammable cryptographic operations
WO2014142858A1 (en) * 2013-03-14 2014-09-18 Intel Corporation Trusted data processing in the public cloud
US20140344581A1 (en) * 2013-05-16 2014-11-20 Cisco Technology, Inc. Secure Upgrades for Field Programmable Devices
WO2016209569A1 (en) * 2015-06-26 2016-12-29 Intel Corporation System, apparatus and method for performing cryptographic operations in a trusted execution environment
CN107046542A (zh) * 2017-04-24 2017-08-15 杭州云象网络技术有限公司 一种在网络级采用硬件实现共识验证的方法
CN107294709A (zh) * 2017-06-27 2017-10-24 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置及系统
WO2018058441A1 (en) * 2016-09-29 2018-04-05 Nokia Technologies Oy Method and apparatus for trusted computing
CN108055125A (zh) * 2017-11-23 2018-05-18 阿里巴巴集团控股有限公司 一种产品信息的加密、解密方法及装置
US20180183606A1 (en) * 2016-12-23 2018-06-28 Wal-Mart Stores, Inc. Verifying authenticity of computer readable information using the blockchain
WO2018140169A1 (en) * 2017-01-26 2018-08-02 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key
US20190036932A1 (en) * 2017-07-26 2019-01-31 International Business Machines Corporation Blockchain authentication via hard/soft token verification
CN109492419A (zh) * 2018-11-27 2019-03-19 众安信息技术服务有限公司 用于获取区块链中的数据的方法、装置及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288765A1 (en) * 1999-12-22 2007-12-13 Kean Thomas A Method and Apparatus for Secure Configuration of a Field Programmable Gate Array
US6904527B1 (en) 2000-03-14 2005-06-07 Xilinx, Inc. Intellectual property protection in a programmable logic device
US11941588B2 (en) * 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
US10984081B2 (en) * 2016-09-30 2021-04-20 Cable Television Laboratories, Inc. Systems and methods for secure person to device association
US10382485B2 (en) * 2016-12-23 2019-08-13 Vmware, Inc. Blockchain-assisted public key infrastructure for internet of things applications
CN110050474A (zh) * 2016-12-30 2019-07-23 英特尔公司 用于物联网网络中的复合对象的子对象的类型命名和区块链

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120047371A1 (en) * 2010-08-23 2012-02-23 Raytheon Company Secure field-programmable gate array (fpga) architecture
US20130346759A1 (en) * 2012-06-20 2013-12-26 Microsoft Corporation Managing use of a field programmable gate array with reprogammable cryptographic operations
WO2014142858A1 (en) * 2013-03-14 2014-09-18 Intel Corporation Trusted data processing in the public cloud
US20140344581A1 (en) * 2013-05-16 2014-11-20 Cisco Technology, Inc. Secure Upgrades for Field Programmable Devices
WO2016209569A1 (en) * 2015-06-26 2016-12-29 Intel Corporation System, apparatus and method for performing cryptographic operations in a trusted execution environment
WO2018058441A1 (en) * 2016-09-29 2018-04-05 Nokia Technologies Oy Method and apparatus for trusted computing
US20180183606A1 (en) * 2016-12-23 2018-06-28 Wal-Mart Stores, Inc. Verifying authenticity of computer readable information using the blockchain
WO2018140169A1 (en) * 2017-01-26 2018-08-02 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key
CN107046542A (zh) * 2017-04-24 2017-08-15 杭州云象网络技术有限公司 一种在网络级采用硬件实现共识验证的方法
CN107294709A (zh) * 2017-06-27 2017-10-24 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置及系统
US20190036932A1 (en) * 2017-07-26 2019-01-31 International Business Machines Corporation Blockchain authentication via hard/soft token verification
CN108055125A (zh) * 2017-11-23 2018-05-18 阿里巴巴集团控股有限公司 一种产品信息的加密、解密方法及装置
CN109492419A (zh) * 2018-11-27 2019-03-19 众安信息技术服务有限公司 用于获取区块链中的数据的方法、装置及存储介质

Also Published As

Publication number Publication date
TWI715338B (zh) 2021-01-01
CN110392889B (zh) 2020-09-01
JP6840264B2 (ja) 2021-03-10
CA3058239C (en) 2021-01-05
TW202036351A (zh) 2020-10-01
EP3628087A4 (en) 2020-06-24
CA3058239A1 (en) 2019-06-27
AU2019204735A1 (en) 2019-06-27
AU2019204735B2 (en) 2020-08-27
WO2019120315A2 (en) 2019-06-27
US10657293B1 (en) 2020-05-19
SG11201909112PA (en) 2019-10-30
KR102151904B1 (ko) 2020-09-03
WO2019120315A3 (en) 2020-02-20
JP2020521343A (ja) 2020-07-16
CN110392889A (zh) 2019-10-29
EP3628087B1 (en) 2021-09-08
EP3628087A2 (en) 2020-04-01

Similar Documents

Publication Publication Date Title
CN110392889B (zh) 用于区块链网络的基于现场可编程门阵列的可信执行环境
CN111066287B (zh) 使用可信执行环境检索区块链网络的公开数据
TWI725655B (zh) 用於在可信執行環境中執行子邏輯代碼的程式執行和資料證明的方法、設備和系統
CN110998556B (zh) 区块链网络中的数据隔离
CN111095899B (zh) 针对可信执行环境的分布式密钥管理
JP6811339B2 (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
CN111095256B (zh) 在可信执行环境中安全地执行智能合约操作
TW202040398A (zh) 使用高可用性的可信執行環境檢索區塊鏈網路的存取資料
CN111066019A (zh) 处理存储在区块链网络中的数据元素

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40044751

Country of ref document: HK