CN116192395A - 用于分散式数据存储的可信*** - Google Patents
用于分散式数据存储的可信*** Download PDFInfo
- Publication number
- CN116192395A CN116192395A CN202210535628.6A CN202210535628A CN116192395A CN 116192395 A CN116192395 A CN 116192395A CN 202210535628 A CN202210535628 A CN 202210535628A CN 116192395 A CN116192395 A CN 116192395A
- Authority
- CN
- China
- Prior art keywords
- data
- circuitry
- digital signature
- storage
- storage device
- 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
Links
- 238000013500 data storage Methods 0.000 title abstract description 79
- 238000003860 storage Methods 0.000 claims abstract description 298
- 230000015654 memory Effects 0.000 claims abstract description 142
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000013507 mapping Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 description 51
- 230000006870 function Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 239000000758 substrate Substances 0.000 description 4
- 238000013524 data verification Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 239000011370 conductive nanoparticle Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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 involving time stamps, e.g. generation of time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本公开的某些方面提供了用于证明参与分布式数据存储网络的存储设备中的数据占有的技术。示例性存储设备包括存储电路***和可信电路。该存储电路***被配置成存储多个数据区块。该可信电路通常具有被安全存储在其上的私有签名密钥。该可信电路通常被配置成计算多个数据区块中存储的数据的散列,并且至少部分地基于该私有签名密钥和该计算出的散列来针对该多个数据区块中存储的该数据生成匿名数字签名。该可信电路可***置到该存储电路***的写入路径上,使得被写入到该存储电路***的数据通过该可信电路进行处理。
Description
引言
本公开的各方面涉及分布式、分散式数据存储***,且更具体地,涉及可证明分散式数据存储***中数据占有的可信存储设备。
区块链可用于各种分散式***,以提供在这些分散式***中发生的交易的分类账,该分散式***包括例如加密货币***。通常,区块链可包括区块的链,在区块的链中,最近的区块包括关于发生的交易的一些信息以及对可作为先前区块的散列值的直接前趋区块的引用。因为对直接前趋区块的引用可以是从直接前趋区块导出的值,所以可通过确保区块的散列解析为与被存储为对区块链中后续区块的直接前趋区块的引用的值相同的值来执行区块链中的交易的验证。如果区块的计算散列值与区块链中后续区块中该区块的散列值不匹配,则区块链的验证可能失败。
在一些情况下,区块链可用于分布式存储网络,其中各种计算设备上的各种存储设备可向分布式存储网络贡献存储容量。在这种情况下,区块链可用于跟踪数据存储和/或检索交易。通常,数据存储交易可指定具有特定大小的特定数据片段将被存储在分布式存储网络中的一个或多个存储设备上。然而,区块链自身可能不保证在存储交易中指定的数据片段实际上被存储在给定的设备中,并且存储数据的存储设备因为分布式存储网络中的其他数据的存储而尚未重新分配针对该数据片段分配的空间。
因此,需要在分布式存储网络中证明数据占有的技术。
发明内容
某些实施方案提供了一种存储设备。该存储设备通常包括存储电路***和可信电路。该存储电路***被配置成存储多个数据区块。该可信电路通常具有被安全存储在其上的私有签名密钥。该可信电路通常被配置成计算多个数据区块中存储的数据的散列,并且至少部分地基于该私有签名密钥和该计算出的散列来针对该多个数据区块中存储的该数据生成匿名数字签名。该可信电路可***置到该存储电路***的写入路径上,使得被写入到该存储电路***的数据通过该可信电路进行处理。
某些实施方案提供了一种针对参与分布式数据存储网络的存储设备上存储的数据生成签名的方法。示例性方法通常包括检测将数据写入存储设备的存储电路***中的一个或多个数据区块的请求。对待写入一个或多个数据区块的数据计算散列。至少部分地基于被安全地存储在存储设备的可信电路中的私有签名密钥和所计算出的散列来生成待写入一个或多个块的数据的匿名数字签名。匿名数字签名从存储设备中输出。
某些实施方案提供了一种用于验证参与分布式数据存储网络的存储设备上存储的数据的存在的方法。示例性方法通常包括从存储设备的可信电路***处的请求设备接收对存储设备的存储电路***中的一系列存储器地址中存储的数据的签名的请求,该请求包括质询值(challenge value)。存储器地址范围中存储的数据的散列使用质询值来检索和签名。已签名的散列被输出到请求设备。
其他实施方案提供被配置成执行前述方法以及本文所述的方法的处理***;包括指令的非暂时性计算机可读介质,当由处理***的一个或多个处理器执行指令时,使得处理***执行前述方法以及本文所述的方法;在计算机可读存储介质上实现的计算机程序产品,包括用于执行前述方法以及本文进一步描述的方法的代码;和包括用于执行前述方法以及本文进一步描述的方法的构件的处理***。
下面的说明和相关附图详细阐述了一个或多个实施方案的某些说明性特征。
附图说明
附图描述了一个或多个实施方案的某些方面,因此不应被视为对本公开范围的限制。
图1示出了具有可信电路的存储设备,该可信电路用于针对存储设备上存储的数据生成匿名签名,该可信电路插置到存储设备的存储电路***的写入路径上。
图2示出了基于存储设备上存储的数据的散列和被安全存储在插置到存储设备中的存储电路***的写入路径上的可信电路中的私有签名密钥来针对存储设备中存储的数据生成匿名签名的示例性操作。
图3示出了包括存储器地址范围到该存储器地址范围内存储的数据的所计算出的散列的映射的示例性散列地址映射。
图4示出了基于散列地址映射验证存储设备中存储器地址处的数据存在的示例性操作。
图5示出了可执行本公开的实施方案的示例性***。
为便于理解,在可能的情况,使用相同的附图标记表示附图中共同的相同元件。预期一个实施方案的元件和特征可被有利地结合到其他实施方案中,而无需进一步叙述。
具体实施方式
本公开的各方面提供了用于经由存储设备中的可信电路***证明分散式数据存储***中的数据占有的装置、方法、处理***和计算机可读介质。
在分散式数据存储***中,各种设备可向分散式数据存储***中的参与者写入数据和从中读取数据。通常,在向分散式数据存储***写入数据时,可保持区块链或其他分布式分类帐,包括关于被写入分散式数据存储***的数据的信息(例如,根据位的数量、给定大小的数据区块的数量等的被写入分散式数据存储***的数据的大小;被写入分散式数据存储***的数据的散列,以及其他信息)。如所讨论的,因为区块链通常被结构化为一组区块,其中每个区块基于先前区块的散列来引用先前区块,所以区块链可在分散式存储***中不变地存储识别每个交易的信息的分类帐。该分类帐可以是不可变的,因为如果区块中的任何信息改变,则该区块的散列也会改变;因此,为了改变区块链中的记录,可能需要修改大量不可行的区块。这些特性致使区块链被用于支持各种加密货币的基础设施。
分散式数据存储***中的一个质询是证明分散式数据存储***中的任何给定参与设备如区块链中的记录所示而持有声称将被写入该参与设备的数据,使得将数据写入分散式数据存储***的客户端设备可确保该数据可按需检索。也就是说,作为参与分散式数据存储***的一部分,分散式数据存储***中的任何参与者可被要求持久保存该数据,并且不改变存储该数据的存储区块的用途,直到该数据的所有者从分散式数据存储***中删除该数据。
各种技术可用于确保被写入分散式数据存储***的数据是安全的。在由单个提供者操作的分散式数据存储***中,可基于信任该单个提供者来做出数据存在的假设。然而,在数据存储在所有权未知的存储设备上的分散式数据存储***中,这种假设可能不成立。在数据存储在所有权未知的存储设备上的分散式数据存储***中,一种技术可包括从分散式数据存储***中周期性地检索数据。然而,因为试图验证该数据存在的客户端设备可能周期性地检索大量数据,除了验证该数据仍然存在于分散式数据存储***中之外,没有其他目的,所以这可能浪费大量的网络带宽和处理周期。在另一示例中,可周期性地检索数据的随机片段。然而,对随机数据片段的检索可能无法保证数据实际上是完整存在的。为了最小化数据丢失的概率,则可从分散式数据存储***中检索更大量的数据,这可能仍然涉及使用大量的带宽和处理周期。
确保被写入分散式数据存储***的数据安全的另一技术可能涉及各种密码技术,以证明数据的存在。简洁的非交互式零知识证明不需要提供者与验证者之间的任何交互;相反,可使用各种密码证明来证明数据在分散式数据存储***中的存在,该密码证明诸如在数学上证明存在一定数量的数据副本的复制证明,或者提供连续存储的时空证明。然而,这些证明在计算上可能是代价较高的。密码证明可将计算表示为加法和乘法门的算术电路,并且涉及一个或多个运算,该运算的计算成本类似于电路的每个门的公钥加密的计算成本。因为密码证明涉及基于每个门的公钥密码运算,所以生成证明所需的时间和计算资源量可能很大(例如,对于1000位输入和一百万门运算电路,超过两分钟的计算时间)。
分散式数据存储***可形成加密货币的技术基础,前述确保/验证存储安全的技术问题成为此类***中的重要问题。Filecoin是一种这样的示例性加密货币,其中任何参与者都可向存储网络贡献存储容量,并且任何客户端都可将数据存储在由存储网络中的参与者贡献的存储容量中。Filecoin网络操作存储市场和检索市场。存储市场允许客户端向存储矿商付费以存储数据,而检索市场允许客户端通过向传送数据的检索矿商付费来检索数据。不管请求是数据存储还是检索,客户端提出投标订单,矿商提出要价订单。网络以分散且可验证的方式匹配订单,以允许将数据写入存储网络和从存储网络中检索数据。
存储网络中的任何参与者都能够存储客户端数据。客户端可能想要确保数据可根据需要进行检索,因此,可期望已经存储客户端数据(例如,响应于先前已经将客户端出价订单与提供者的要价订单相匹配的网络进行存储)的提供者以持久的方式存储数据。也就是说,对于存储客户端数据所需的给定量的存储空间,存储客户端数据的参与者可被期望至少将该给定量的存储空间专用于该客户端。此外,在提供商仍根据合同存储客户端数据的情况下,该专用空间不被重新应用于任何其他目的。
为了证明客户端数据存在于存储网络中,并且确保约定的存储空间不被重新应用,可使用可被称为复制证明和时空证明的简洁的非交互式零知识证明来构建证明***。存储网络中的参与者可向客户端出示复制证明,以数学方式向客户端证明提供者存储了客户端数据的一定数量的副本。时空证明可用于证明一定数量的数据已被连续存储了一定的时间段。然而,生成这些简洁的非交互式零知识证明可以是计算开销很大的过程。
本公开的各方面提供了使用存储设备中的可信电路有效地证明分散式存储***中存储的数据的存在的技术。在一些实施方案中,存储设备中的可信电路可***置到存储数据的存储电路***的写入路径上,并且可被配置成当数据被写入存储电路***时,生成被写入到存储电路***中的数据区块的数据的散列和签名。以这种方式,本公开的各方面可生成数据,该数据可用于证明数据在存储设备中的存储,并且提供数据是在写入过程期间而不是按需被存储在存储设备中。当客户端设备请求数据被存储在存储设备上的证明时,可信电路可提供先前所计算出的散列,而不是从存储电路***中读取数据和按需生成数据存在于存储电路***中的证明。通过这样做,因为不需要在每次请求存在证明时都对证明进行计算,所以本公开的各方面可减少证明存储在分散式存储***中的数据的存在所涉及的功率利用和处理时间。
此外,在证明分散式存储***中存储的数据的当前存在时,可周期性地更新以确保签名新鲜性的区块链中的区块的散列与存储设备响应存在证明请求而返回的散列之间的匹配可证明数据当前被存储在分散式存储***中。因此,可使分布式数据存储***在计算上更高效,可降低参与分布式数据存储***的设备的功率利用,可提高参与分布式数据存储***的移动设备的电池寿命等。
此外,如上所述,某些加密货币建立在此类分散式存储***方案的基础上。传统的存储设备通常不具有能够针对所存储的数据生成证明的证明生成能力。因此,本公开的某些实施方案涉及具有这些所述特征及其证明生成效率优势的存储设备,因此它们可成为可信设备。这使得它们能够参与到加密货币建立所基于的整体存储方案中。
具有用于证明存储设备上存储的数据存在的可信电路***的示例性存储设备
图1示出了根据本公开的各方面的示例性存储设备100,该存储设备具有用于针对存储设备上存储的数据生成匿名签名的可信电路110,该可信电路***置到存储设备的存储电路***的写入路径上。存储设备100可表示硬盘驱动器、固态驱动器、非易失性随机存取存储器(NVRAM)设备或其他可永久存储数据的存储设备。如图所示,存储设备100包括可信电路110、存储电路***120和写入路径130,数据在该写入路径上被传输以持久存储到存储电路***120。
可信电路110通常表示可生成被写入存储电路***120中的一个或多个数据区块122A-L(统称为122)的数据的签名和散列的诸如处理器的电路,用于证明存储在存储设备100上的数据的存在。如图所示,可信电路110可***置到存储电路***120的写入路径130上。因为可信电路110可***置到写入路径130上,所以可信电路110可检测对存储电路***120的写入事件,并且当检测到这些写入事件时,生成被写入存储电路***120的数据的签名和散列。如图所示,可信电路110包括密钥存储库112、散列映射存储库114和证明生成器116。
密钥存储库112通常表示其上永久存储与存储设备100相关联的私有签名密钥的数据存储电路***。为了确保存储设备100使用相同的密钥生成匿名数字签名,可在制造时将私有签名密钥永久地存储(例如,“烧录”)在密钥存储库112中。在一些方面,私有签名密钥可以是来自与同一公钥相关联的一组密钥中的密钥,这可允许存储设备100使用将存储设备100识别为来自特定类别的设备的设备的密钥来生成匿名数字签名,而不暴露关于存储设备100自身的信息。例如,密钥存储库112中存储的私有签名密钥可以是使用增强型隐私识别符(EPID)算法或其他算法生成的密钥,在这些算法中,大组私有签名密钥与同一公钥相关联。
散列映射存储库114通常表示其中可保持数据的散列版本与存储该数据的存储器地址范围的映射的数据存储电路***。如下面进一步详细讨论的,当写入事件发生时,可生成散列映射存储库114中的条目,并且当外部设备请求验证数据被存储在存储设备100时,可从散列映射存储库114中检索散列。在一些方面,散列映射存储库114可被构造为查找表(LUT),在该查找表中,散列与起始存储器地址(例如,存储电路***120中的数据区块122的存储器地址,在该存储器地址处,存储了由散列表示的数据的初始部分)和结束存储器地址(例如,存储电路***120中的数据区块122的存储器地址,在该存储器地址处,存储了由散列表示的数据的最后部分)相关联。
证明生成器116通常被配置成生成证明数据被存储至存储电路***120的匿名数字签名,并且根据请求验证被写入存储电路***120的数据的存在。如所讨论的,因为可信电路110***置到存储电路***120的写入路径130上,所以证明生成器116可被配置成检测对存储电路***120的写入事件的发生,并且在这样的数据被写入到存储电路***120时生成被包括在写入事件中的数据的匿名数字签名和散列。然后,所生成的匿名数字签名可从存储设备输出,以被记录在公共区块链中,在存储设备100外部存储,以记录与给定散列相关联的数据已经被存储在存储设备100上。例如,公共区块链可与记录了交易(例如,存储和/或检索)的加密货币相关,或者是加密货币的一部分,并且当在公共区块链中证明这种交易完成时,发行加密货币。
通常,为了生成证明数据被存储至存储电路***120的匿名数字签名,可信电路110可生成被写入存储电路***120的数据的散列。可使用各种技术来生成这些散列。例如,诸如MD5、MD6或SHA的密码散列算法可用于生成被写入存储电路***120的数据的散列。通常,这些散列算法是单向算法,其中可从数据集中生成散列,但是(实际上)不能从散列中恢复数据。此外,这些散列算法针对被输入到算法中的不同数据集生成不同的散列;输入数据集的任何变化都将致使生成不同的散列。然后,可使用密钥存储库112中存储的私有签名密钥为针对被写入存储电路***120的数据所生成的散列进行签名,并且可从存储设备输出匿名数字签名,如上所述。在一些方面,为了进一步确保已签名的散列的鲁棒性,数据被写入的存储区块的数量也可被包括在向存储电路***120证明数据存储的匿名数字签名中。通过在向存储电路***120证明数据存储的匿名数字签名中包括在其上被写入数据的存储区块的总数量,丢弃数据区块可能致使存储设备随后不能在相同数量的区块上生成散列。因此,散列可能与数据被写入时生成的原始散列不匹配,并且这种不匹配可向客户端设备指示存储设备100未能保持写入其中的数据。
在一些方面,在针对被写入存储电路***120的数据生成匿名数字签名时,证明生成器116可使用一个或多个附加数据片段,以确保匿名数字签名的“新鲜度”。也就是说,可不时地重新生成匿名数字签名,使得向区块链或向参与分布式数据存储***的请求客户端设备提供已签名的散列可指示匿名数字签名准确地反映了存储设备100中存储的数据的当前状态,而不是可能反映或可能不反映存储设备100中存储的数据的当前状态的某个先前状态。为了确保匿名数字签名的“新鲜度”,在一个方面,证明生成器116可使用时钟或其他时间参考(例如,来自主机***)来获得当前时间。可使用密钥存储库112中的私钥对与当前时间相对应的时间戳和散列两者进行签名,并且输出到分布式数据存储***中的另一个设备。因为分布式数据存储***中的其他设备可访问密钥存储库112中的私钥的对应公钥,所以其他设备可验证已签名的时间戳和散列的签名,并且基于已验证的签名、时间戳和阈值(这可说明分布式数据存储***中不同设备之间的时钟不准确性、漂移、时钟不同步等),如果时间戳在阈值内,则确定匿名数字签名是“新鲜的”。
在另一方面,其中被写入分布式数据存储***的数据的交易记录的区块链(例如,与加密货币相关的区块链或作为加密货币的一部分的区块链)的当前状态可用于确保匿名数字签名的“新鲜度”。为了使用区块链的当前状态来确保匿名数字签名的“新鲜度”,证明生成器116可从区块链检索持续到区块链的最新区块。例如,证明生成器116可从另一数据存储库请求区块链中的最新区块,该另一数据存储库可位于安装有存储设备100的计算***本地或者远离该计算***,存储设备100连接到该计算***。在接收或检索到区块链的最新区块时,证明生成器116可使用密钥存储库112中存储的私有签名密钥对与区块链的最新区块相关的信息(例如,区块链的最新区块的内容、区块链的最新区块的散列等)和被写入存储电路***120的数据的散列进行签名。与区块链的最新区块相关的已签名的信息和被写入存储电路***120的数据的已签名的散列可被输出到分布式数据存储***中的参与设备,并且这些参与设备可通过验证区块链的已签名的最新区块的签名并识别区块链的已签名的最新区块相对于区块链的实际最新区块的年龄来确认匿名数字签名是“新鲜的”还是“陈旧的”(例如,过时的)。
存储设备100可以不是唯一被写入数据的存储设备。例如,当较大数据对象被写入分布式数据存储***时,分布式数据存储***中的参与者可以能够提供数据区块来存储较大数据对象的一部分。因此,可对多个存储设备执行多个写入操作,以便将较大数据对象写入分散式存储***。然而,因为较大数据对象的这些单独部分不是独立的写入事件,而是单个写入事件的部分,所以针对较大数据对象生成一个匿名数字签名并将其保存到区块链,以证明该较大数据对象已被写入分布式数据存储***中的一个或多个存储设备(包括存储设备100)。
为了生成证明较大数据对象的写入操作完成的单个匿名数字签名,分布式数据存储***中的每个参与存储设备可生成(m,n,σ)的三元组,其中m表示被写入分布式数据存储***的较大数据对象的一部分的散列,n表示被提供给存储设备的较大数据对象的数量,σ表示针对区块链的一部分m和被提供给存储设备的较大数据对象的数量n生成的单独的签名。为了在分布式存储***中的参与存储设备的每一者生成组合的匿名数字签名,来自每个设备的三元组(m,n,σ)可组合成单个表示。例如,假设被写入的较大数据对象被写入存储设备100和另一存储设备,从而生成三元组(m1,n1,σ1)和(m2,n2,σ2)。为了生成待写入区块链的单个匿名数字签名,可生成m1||m2的散列(例如,值m1和m2的级联的散列),并且可生成n1和n2之和的散列(例如,被写入分布式数据存储***的数据区块的总数量的散列)。m1||m2的散列和n1+n2的散列可使用密钥存储库112中存储的私有签名密钥来签名,以生成单个匿名数字签名,并且该单个匿名数字签名可被输出到区块链以证明对该较大数据对象的写入操作的完成。
在一些方面,存储电路***120中存储的不同数据片段(以及不同存储设备)的签名可组合。例如,当与不同签名相关联的时间戳彼此在阈值时间量内时,签名可以是可组合的。在另一示例中,当签名与质询值相关联时,该质询值诸如从其中存储了关于数据写入事件的信息的区块链的当前状态导出的数据,当质询值相同时(例如,引用区块链的相同状态),签名是可组合的。为了从与被写入存储电路***120的第一数据相关联的第一签名和与被写入存储电路***120的第二数据相关联的第二签名中生成组合的匿名数字签名,签名中携带的信息(诸如,区块链或梅克尔树的散列以及与第一签名和第二签名相关联的多个数据区块)可被级联,并且级联后的数据可使用密钥存储库112中存储的私有签名密钥来签名。
当分布式数据存储***中的参与设备请求时,可信电路110通常配置成证明存储电路***120中存在数据。通常,分布式数据存储***中的参与设备可向存储设备100发送质询,该质询包括将在对请求验证的数据的散列进行签名时使用的质询值。该质询还可包括识别数据在存储设备中的位置的信息,诸如存储器地址。可信电路110可使用散列映射存储库114中存储的散列地址映射来确定是否已经针对存储器地址预先计算了散列。在一些方面,散列可与和存储电路***120中的特定存储区块相关联的起始存储器地址和结束存储器地址相关联。如果质询中包括的地址在散列地址映射中的地址范围内,则可信电路可使用与该地址范围相关联的散列来生成对质询的响应。该响应可包括例如与地址范围相关联的散列,该散列使用由分布式数据存储***中的参与设备提供给可信电路110的质询值来签名,该参与设备请求验证存储设备100中存储的数据。
然而,如果存储器地址不与已经存储在散列地址映射中的地址范围相关联,则可能需要针对在质询中指定的存储器地址处存储的数据计算散列。为了生成散列,可信电路110可读取质询中指定的存储器地址处的数据(并且,在一些方面,读取质询中指定的存储器地址附近的数据)。从存储电路***120中的存储器地址读取的数据可被散列和签名(例如,使用密钥存储库112中存储的私有签名密钥和/或验证存储设备100中的数据的存在的请求中包括的质询值),并且已签名的散列可被返回给分布式数据存储***中请求验证存储器地址处的数据的参与设备。在一些方面,可向散列地址映射添加新的条目,以允许在不从存储电路***120中的数据区块122读取数据的情况下完成验证指定存储器地址处数据的存在的后续请求。
为了保持该映射和确保该映射包括与存储电路***120中存储的数据的最新状态相对应的散列,该映射中的条目可能因数据被删除或更新而无效。通常,当写入事件在写入路径130上被拦截时,证明生成器116可检查写入事件中指定的存储器地址,以确定在散列地址映射中是否存在这些存储器地址的映射。如果写入事件中指定的存储器地址在与散列地址映射中的散列相关联的地址范围内,则可删除散列地址映射中与该地址范围相关联的条目。
存储电路***120通常表示可将数据存储在存储设备100中的电路***。如图所示,存储电路***120包括多个数据区块122A至122L(尽管应该理解,存储电路***120可包括任何数量的存储区块,并且数据区块122A至122L的图示仅是说明性的)。每个数据区块122表示存储电路***120的可存储数据的离散部分。例如,数据区块122可表示固态存储器设备中的一个或多个单元,每个单元能够存储任何数量的位(例如,能够在单元中存储一个位的单层单元;能够在单元中存储两个位的双层单元;能够在单元中存储三个位的三层单元等),或者诸如硬盘驱动器中的存储介质轨道中的扇区。每个数据区块122可与存储器地址或存储器地址范围相关联。涉及与数据区块122A至122L相关联的存储器地址的读取操作可致使从适当的数据区块122A至122L检索数据,并且涉及与数据区块122A至122L相关联的存储器地址的写入操作可致使数据被写入到适当的数据区块122A至122L。如上所述,当数据被写入存储电路***120中的数据区块122时,可信电路110可针对被写入数据区块122的数据生成匿名数字签名。
使用可信电路针对被写入存储设备的数据生成匿名数字签名的示例性计算机实
施方法
图2示出了根据本公开的各方面的可由存储设备的可信电路(例如,图1所示的可信电路110)执行以生成被写入存储设备的数据的匿名数字签名的示例性操作200。如所讨论的,这些匿名数字签名可被输出以存储在与分布式数据存储***相关联的区块链中,其中关于数据写入交易的信息被保存,使得分布式数据存储***中的其他参与设备可以看到数据被写入了分布式数据存储***。例如,区块链可与记录了交易(例如,存储和/或检索)的加密货币相关,或者是加密货币的一部分,并且当在区块链中证明这种交易完成时,发行加密货币。分布式数据存储***中的参与设备可使用匿名数字签名中包括的散列来验证存储设备中数据的存在,如上面讨论的和下面参考图4进一步详细描述的。此外,这些匿名数字签名可使用与给定公钥相关联的多个私有签名密钥中的一者来签名,这可防止对分布式数据存储***中存储特定数据的特定设备的其他识别。
如图所示,操作200从框210开始,其中,可信电路检测向存储电路***中的一个或多个数据区块写入数据的请求。如所讨论的,因为可信电路可***置到写入路径上,所以可信电路可检测向存储电路***中的一个或多个数据区块写入数据的请求。因此,可信电路可检测在该写入路径上传输到存储电路***的信令,并且该信令的检测可触发操作200的执行。
在一些方面,向存储电路***中的一个或多个数据区块写入数据的请求可包括待写入的数据、待写入数据的存储器地址、待写入的数据的大小和/或可用于生成签名的其他信息,该签名证明请求中指定的数据的写入操作完成。请求中包括的数据可以是未加密的数据,也可以是加密的数据。例如,当待写入数据的多个副本时,可使用不同的密钥对每个副本进行加密,这可致使存储设备针对待写入的数据的多个副本中的每个副本分配空间,因为每个副本可具有相同的大小,但是看起来具有不同的内容。在另一种情况下,当被写入分布式数据存储***的数据来源于在证明分布式数据存储***中的交易的区块链中共享相同根节点的两个不同参与者时,对来自不同参与者中的每个参与者的加密数据的使用可强制存储数据的单独副本,这可防止对来自根节点的子树中的一个子树的数据存储的数据丢失。为了保护数据的私密性,可信电路可不接收关于用于加密待写入的数据的密钥的任何信息,并且可将该数据视为将从中生成散列的原始位流。
在框220处,可信电路计算待写入存储电路***中的一个或多个数据区块的数据的散列。可使用各种单向散列算法来计算散列,在该单向散列算法中,可生成待写入存储电路***中的一个或多个数据区块的数据的压缩表示,但是不能从散列中恢复数据。此外,单向散列算法可被设计成使得对数据的任何改变(无论多小)都将致使生成不同的散列,从而最小化“散列冲突”问题,在该“散列冲突”问题中,不同的输入数据解析成相同的散列。
在框230处,可信电路针对待写入存储电路***中的一个或多个数据区块的数据生成匿名数字签名。通常,为了生成匿名数字签名,可信电路可使用可信电路***中存储的私有签名密钥(例如,在制造时烧录到可信电路中,或者在固件更新期间保存到可信电路中等)对针对数据所计算出的散列和存储数据的数据区块的数量进行签名。在一些方面,可基于私有签名密钥的密码属性来保证数字签名的匿名性。例如,私有签名密钥可以是共享相同公钥的大组密钥中的密钥,该公钥用于验证使用大组密钥中的任何密钥进行签名的数据的签名,并且公钥可与一大类设备(例如,大容量存储设备)相关联,从该一大类设备中无法识别该一大类设备的个体成员。因为公钥不与被分配给特定设备的任何特定私有签名密钥相关联,所以可确保包括生成匿名数字签名的可信电路的存储设备的匿名性。此外,因为散列可使用私有签名密钥来加密,所以散列自身可在传输中和静止时受到保护,这可防止其他方获知关于数据的信息(例如,通过从散列泄露的辅助信道信息(side channelinformation)获知)。
在一些方面,针对待写入存储电路***中的一个或多个数据区块的数据生成匿名数字签名可包括组合来自多个存储设备的签名。为了跨多个存储设备生成匿名数字签名,可聚集关于在多个存储设备的每一者上写入什么的信息。例如,在整个区块链中,每个存储设备可与其自身的梅克尔子树或散列树相关联。与存储设备相关联的梅克尔子树可表示针对该存储设备执行的全部数据写入操作。因此,跨越较大数据对象的不同部分被写入的存储设备聚集信息可包括在与每个存储设备相关联的梅克尔子树上生成散列。为此,可级联默克尔子树的散列,并且可使用可信电路***中存储的私有签名密钥对这些散列的级联进行签名。用于在多个存储设备的每个存储设备中存储数据对象的数据区块的数量也可被级联,并且对数据区块的数量的级联也可使用可信电路***中存储的私有签名密钥来签名。
在一些方面,生成匿名数字签名可包括组合被存储设备的可信电路确定可组合的签名。这些签名可包括例如针对具有彼此在阈值时间量内的时间戳的交易或针对与相同质询值(例如,在生成交易的时间时的区块链的相同状态)相关联的交易生成的签名。为了组合签名,可信电路可级联每个签名中的散列和区块的数量,并且对级联的散列和级联的区块数量进行签名。可输出已签名的级联散列和已签名的级联区块数量,作为针对被写入存储电路***的数据所生成的匿名数字签名。
在框240处,匿名数字签名被输出至区块链。向区块链输出匿名数字签名可证明向存储设备的存储电路***中的一个或多个区块写入数据的请求的完成。如所讨论的,可至少部分地基于被写入存储设备中的存储电路***的数据的散列来生成匿名数字签名。因为散列可从数字签名中恢复,所以散列可被分布式数据存储***中的任何参与设备用来验证数据在分布式数据存储***中的存在。
例如,生成写入请求的设备可接收识别数据在分布式数据存储***中的位置的指针(例如,存储器地址)(或,如果被分布在分布式数据存储***中的多个设备中,则为识别数据在不同存储设备中的位置的多个指针)。如下面进一步详细讨论的,该指针可用于从存储设备中检索数据的散列。如果检索到的散列和区块链中的数字签名中包括的散列相匹配,则分布式数据存储***中的参与设备可验证声称已被写入分布式数据存储***的数据实际上存在于分布式数据存储***中的指定地址。
存储电路***中存储的数据的示例性散列地址映射和验证
图3示出了根据本公开的各方面的可部分地用于验证存储设备的存储电路***中存储的数据的存在的示例性散列地址映射300。
散列地址映射300可被存储在例如图1所示的散列映射存储库114中,并且可由可信电路的证明生成器(例如,图1所示的可信电路110的证明生成器116)使用,以满足对存储设备中存储的数据的质询或验证请求。如图所示,散列地址映射300包括多个条目。散列地址映射中的每个条目包括与该条目相关联的数据的散列值、存储电路***中存储与该条目相关联的数据的开始地址和结束地址。在该示例中,每个条目可跨256(0x100)个数据区块;然而,应当认识到,散列地址映射300中的条目可包括跨任意数量的数据区块的散列。
如所讨论的,当分布式数据存储***中的参与设备生成质询以验证分布式数据存储***中的数据的存在时,参与设备可将包括数据预计将位于的地址的查询发送到数据预计将位于的存储设备。可信电路可使用质询中包括的存储器地址来搜索散列地址映射300,以寻找与质询中包括的存储器地址所在的存储器地址范围相关联的散列。如果发现匹配,则可信电路可返回散列(可使用质询中包括的一些其他信息对该散列进行签名),而无需对存储设备的存储电路***中的存储区块执行读取操作。例如,假设质询指定数据位于从0x00000701开始到0x00000800结束的存储器地址范围内。因为映射300中存在存储器地址范围0x00000701和0x00000800的条目,所以可信电路可返回散列“6da88215dc51”,而无需读取位于质询中指定的起始存储器地址和结束存储器地址之间的数据。因为可在不读取位于指定存储器地址的数据的情况下检索位于该存储器地址的数据的散列,所以向请求设备输出散列可省略从存储设备处的存储电路***读取数据以及对读取数据生成散列所涉及的处理开销,从而提高在分布式数据存储***中生成和返回存储的证明所涉及的操作的效率。
图4示出了根据本公开的各方面的可由存储设备的可信电路(例如,图1所示的可信电路110)执行以验证分布式数据存储***中的存储设备上存储的数据的存在的示例性操作400。
如图所示,操作400可从框410开始,在框410处,接收对存储设备的存储电路***中的存储器地址范围内存储的数据的签名的请求。该请求可包括质询值,可信电路可使用该质询值来对据称被存储在存储设备的存储电路***中的存储器地址处的数据的散列进行签名。
在框420处,可信电路确定散列地址映射(例如,图3中的映射300)中是否存在该存储器地址范围。如所讨论的,散列地址映射可包括散列地址映射表中的多个条目,其中每个条目将存储器地址的范围与位于该存储器地址的数据的散列相关联。
如果在框420处,可信电路找到散列地址映射中具有请求中识别的存储器地址范围的条目,操作400可进行到框430。在框430处,从散列地址映射中检索散列。所检索到的散列通常与请求中指定的存储器地址范围相关联。
否则,如果在框420处,可信电路未找到散列地址映射中与请求中识别的存储器地址范围相关联的条目,操作400可进行到框440。
在框440处,可信电路生成请求中指定的存储器地址范围内存储的数据的散列。在一些方面,在生成指定范围的存储器地址中存储的数据的散列之后,可信电路可向散列地址映射添加条目,以便于快速满足未来的验证请求,这可减少处理验证请求所需的处理周期和带宽的量。到散列地址映射的条目可包括所生成的散列、在请求中指定的存储器地址范围的最早存储器地址处的起始存储器地址、以及在请求中指定的存储器地址范围的最终存储器地址处的结束存储器地址。
操作400可从框430或框440进行至框450,在框450中,使用请求中包括的质询值对散列进行签名。质询值可包括,例如,从证明在分布式数据存储***中执行的交易的区块链的当前状态导出的值、由请求设备生成的密钥、或者可用于对散列和生成散列的数据区块的数量进行签名的其他信息。例如,区块链可与记录了交易(例如,存储和/或检索)的加密货币相关,或者是加密货币的一部分,并且当在区块链中证明这种交易完成时,发行加密货币。
在框460处,已签名的散列输出到请求设备。请求设备可以是例如膝上型计算机、台式计算机、移动设备或可从其卸载数据以存储在分布式数据存储***中并且可从其发出请求以证明数据存在于分布式数据存储***中的存储设备上的其他计算设备。
示例性处理设备
图5示出了可被配置成执行本文所述的包括关于图2和/或图4所述的方法的各个方面的示例性处理***500。
处理***500或其部件可在服务器计算机、台式计算机、工作站、平板计算机、智能手机、智能可穿戴设备、物联网(IoT)设备、边缘处理设备、个人数字助理、数码相机、数字电话、娱乐设备、医疗设备、自动驾驶车辆控制设备、数据存储设备、控制器设备、主机设备或其他类型的处理数据的设备中实现或实施。
处理***500包括通信接口510、处理电路520(例如,至少一个处理器和/或其他合适的电路***)以及存储介质530(例如,非易失性存储器)。这些部件可通过图5中的连接线大体表示的信令总线540或其他合适部件彼此耦接和/或放置成彼此电连通。根据处理电路520的特定应用和总体设计约束,信令总线540可包括任何数量的互连总线和桥接器。信令总线540将各种元件链接在一起,使得通信接口510、处理电路520和存储介质530中的每一者彼此耦接和/或彼此电通信。信令总线540还可链接各种其他电路(未示出),诸如定时源、***设备、电压调节器和电源管理电路,这些在本领域中是众所周知的并因此将不再进一步描述。
通信接口510提供用于通过传输介质与其他设备或装置进行通信的构件。在一些具体实施中,通信接口510包括适于促进信息相对于***中的一个或多个设备双向传送的电路***和/或编程(例如,程序)。在一些实施方式中,通信接口510可被配置用于基于有线的通信。例如,通信接口510可以是总线接口、发送/接收接口、或某种其他类型的信号接口,包括驱动器、缓冲器、或用于输出和/或获得信号(例如,从集成电路输出信号和/或将信号接收到集成电路中)的其他电路***。通信接口510用作用于接收的构件和/或用于传输的构件的一个示例。
存储介质530可表示用于存储编程的一个或多个计算机可读、机器可读和/或处理器可读的设备,诸如处理器可执行代码或指令(例如,软件、固件)、电子数据、数据库或其他数字信息。存储介质530还可用于存储在执行编程时由处理电路520操纵的数据。存储介质530可以是可由通用或专用处理器访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储,包含或承载编程的各种其他介质。
作为示例而非限制,存储介质530可包括磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)或数字多功能盘(DVD))、智能卡、闪存存储器设备(例如,卡、棒、或键驱动器)、RAM、ROM、PROM、EPROM、EEPROM、ReRAM、寄存器、可移动盘、以及用于存储可由计算机访问和读取的软件和/或指令的任何其他合适介质。存储介质530可在制品(例如,计算机程序产品)中实现。作为示例,计算机程序产品可以包括封装材料中的计算机可读介质。鉴于上面的内容,在一些具体实施中,存储介质530可以是非暂态(例如,有形)存储介质。例如,存储介质530可以是存储计算机可执行代码的非暂态计算机可读介质,该计算机可执行代码包括用于执行本文所描述的操作的代码。
存储介质530可耦接到处理电路520,使得处理电路520可从存储介质530读取信息和可将该信息写入存储介质530。也就是说,存储介质530可耦接到处理电路520,使得存储介质530至少可被处理电路520访问,包括其中至少一个存储介质与处理电路520成一体的示例和/或其中至少一个存储介质与处理电路520(例如,驻留在装置500中,在装置500的外部,跨多个实体分布等)分开的示例。
当由处理电路520执行时,由存储介质530存储的编程致使处理电路520执行本文描述的各种功能和/或过程操作中的一者或多者。例如,存储介质530可包括被配置用于调节处理电路520的一个或多个硬件区块处的操作,以及利用通信接口510以利用其相应的通信协议来进行无线通信的操作。
本文所述的处理电路中的至少一些处理电路通常适于处理,包括诸如存储介质530的存储介质上存储的编程的执行。如本文所用,术语“代码”或“编程”应被广义地解释为包括但不限于指令、指令集、数据、代码、代码段、程序代码、程序、编程、子程序、软件模块、应用程序、软件应用程序、软件包、例程、子例程、对象、可执行文件、执行线程、规程、功能等,无论称为软件、固件、中间件、微代码、硬件描述语言还是其他。
本文描述的处理电路中的至少一些处理电路被布置为获得、处理和/或发送数据,控制数据访问和存储,发布命令,以及控制其他期望的操作。例如,在至少一个示例中,处理电路可包括被配置为实施由适当介质提供的期望编程的电路***。
例如,处理电路可被实现为一个或多个处理器、一个或多个控制器、和/或被配置为执行可执行编程的其他结构。处理电路的示例可包括被设计用于执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、ASIC、现场可编程门阵列(FPGA)、或其他可编程逻辑部件、离散门或晶体管逻辑、分立硬件部件、或其任何组合。通用处理器可以包括微处理器,以及任何常规处理器、控制器、微控制器、或状态机。处理电路也可被实施为计算部件的组合,诸如控制器和微处理器、多个微处理器、与ASIC和微处理器结合的一个或多个微处理器的组合,或任何其他数量的变化配置。处理电路的这些示例是为了说明,也可设想本公开范围内的其他合适的配置。
根据本公开的一个或多个方面,处理电路520可适配于执行本文所述的任何或所有方法的任何或所有特征、过程、功能、操作和/或例程。例如,处理电路520可被配置成执行关于图2和/或图4描述的任何步骤、功能和/或过程。如本文所使用的,与处理电路520相关的术语“适配于”可指代处理电路520成为被配置、采用、实施和/或编程为中的一者或多者来根据本文所述的各种特征执行特定的过程、功能、操作和/或例程。处理电路520可以是专用处理器,诸如用作用于实施结合图2和/或图4描述的任何一个操作的构件(例如,结构)的ASIC。处理电路520用作用于处理的构件的一个示例。
根据装置500的至少一个示例,处理电路520可包括以下中的一者或多者:用于检测写入数据的请求的电路/模块521;用于对数据计算散列的电路/模块522;用于例如使用所计算出的散列从数据中生成匿名数字签名的电路/模块523;用于输出匿名数字签名的电路/模块524;用于接收对签名的请求的电路/模块525;用于检索散列的电路/模块526;用于对散列进行签名的电路/模块527;以及用于输出已签名的散列的电路/模块528。值得注意的是,这些仅是一些示例,基于本文描述的各个方面,其他示例也是可能的。
如上所述,由存储介质530存储的程序,当由处理电路520执行时,使处理电路520执行本文所述的各种功能和/或处理操作中的一者或多者。例如,该程序可使处理电路420执行和/或控制本文关于图2和/或图4描述的各种功能、步骤和/或过程。
如图5所示,存储介质530可包括以下中的一者或多者:用于检测写入数据的请求的代码531;用于对数据计算散列的代码532;用于针对数据生成匿名数字签名的代码533;用于输出匿名数字签名的代码534;用于接收对签名的请求的代码535;用于检索散列的代码536;用于对散列进行签名的代码537;以及用于输出已签名的散列的代码538。值得注意的是,这些仅是一些示例,基于本文描述的各个方面,其他示例也是可能的。
在至少一些示例中,520中的各种电路/模块以及本文所述的其他处理元件可包括用于执行本文所述的各种功能的构件,包括由存储介质530中存储的各种代码实现的功能。
示例性条款
条款1:一种存储设备,该存储设备包括:存储电路***,该存储电路***被配置成存储多个数据区块;和可信电路,该可信电路具有安全地存储在其上的私有签名密钥,该可信电路被配置成:对多个数据区块中存储的数据计算散列,以及至少部分地基于该私有签名密钥、所计算出的散列和存储该数据的该多个数据区块的数量,针对该多个数据区块中存储的该数据生成匿名数字签名;其中可信电路***置到存储电路***的写入路径上,使得被写入到存储电路***的数据通过可信电路进行处理。
条款2:根据条款1所述的存储设备,其中该可信电路被配置成还基于生成该数字签名的时间来生成匿名数字签名。
条款3:根据条款1或2中任一项所述的存储设备,其中该可信电路还被配置成:导出与该多个数据区块中存储的该数据相关联的区块链的最新状态相关的质询值;以及基于该私有签名密钥和该质询值来生成第二匿名签名。
条款4:根据条款3所述的存储设备,其中该区块链与加密货币相关联。
条款5:根据条款1至4中任一项所述的存储设备,其中该可信电路还被配置成保持与多个数据区块相关联的存储器地址范围与所计算出的散列之间的映射。
条款6:根据条款5所述的存储设备,其中该可信电路还被配置成:从请求设备接收验证存储器地址处数据的存在的请求;确定存储器地址在与多个数据区块相关联的存储器地址范围内;以及向该请求设备返所回计算出的散列。
条款7:根据条款5或6中任一项所述的存储设备,其中该可信电路还被配置成:从请求设备接收验证存储器地址处数据的存在的请求;确定存储器地址在与多个数据区块相关联的存储器地址范围外;从存储电路***读取存储器地址处存储的数据;基于存储器地址处存储的数据的散列和签名密钥,针对存储器地址处存储的数据生成第二匿名数字签名;以及向该请求设备返回该第二匿名数字签名。
条款8:根据条款7所述的存储设备,其中该可信电路还被配置成:生成第二映射,该第二映射将该存储器地址和该存储器地址处存储的该数据的该散列相关联。
条款9:根据条款7或8中任一项所述的存储设备,其中该签名密钥包括该私有签名密钥。
条款10:根据条款7至9中任一项所述的存储设备,其中该签名密钥包括质询值,该质询值被包括在验证该存储器地址处数据的存在的请求中。
条款11:根据条款5至10中任一项所述的存储设备,该存储设备还包括:在到该存储电路***的该写入路径上,检测针对与该多个数据区块相关联的该存储器地址范围中的地址的写入请求;以及基于检测到该写入请求,删除与该多个数据区块相关联的该存储器地址范围和所计算出的散列之间的映射。
条款12:根据条款1至11中任一项所述的存储设备,其中该可信电路还被配置成:接收针对待存储在该存储电路***中的第一数据的第一数字签名和针对待存储在该存储电路***中的第二数据的第二数字签名;基于与第一数字签名和第二数字签名相关联的信息,确定第一数字签名和第二数字签名是能够组合的;以及基于对该第一数字签名和该第二数字签名是可组合的确定,针对该第一数字签名和该第二数字签名生成组合签名。
条款13:根据条款12所述的存储设备,其中为了确定该第一数字签名和该第二数字签名是可组合的,该可信电路被配置成:确定与该第一数字签名相关联的时间戳和与该第二数字签名相关联的时间戳的差异量小于第一阈值量,以及确定与该第一数字签名相关联的该时间戳和与该第二数字签名相关联的该时间戳在当前时间戳的第二阈值量内。
条款14:根据条款12或13中任一项所述的存储设备,其中为了确定该第一数字签名和该第二数字签名是可组合的,该可信电路被配置成确定与该第一数字签名相关联的质询值和与该第二数字签名相关联的质询值是相同的质询值。
条款15:根据条款1至14中任一项所述的存储设备,其中该多个数据区块中存储的该数据包括加密数据。
条款16:一种方法,该方法包括:检测向存储设备的存储电路***中的一个或多个数据区块写入数据的请求;计算待写入一个或多个数据区块的数据的散列;至少部分地基于存储设备的可信电路中存储的私有签名密钥和所计算出的散列,针对待写入一个或多个数据区块的数据生成匿名数字签名;以及将该匿名数字签名输出到区块链,以证明对将该数据写入该存储设备的存储电路***中的该一个或多个数据区块的请求的完成。
条款17:根据条款16所述的方法,该方法还包括:导出和与该一个或多个数据区块中存储的该数据相关联的区块链的最新状态相关的质询值;并且基于该私有签名密钥和该质询值生成第二匿名签名。
条款18:根据条款17所述的方法,其中该区块链与加密货币相关联。
条款19:根据条款16至18中任一项所述的方法,该方法还包括:生成所计算出的散列和包括与一个或多个数据区块相关联的存储器地址的存储器地址范围之间的映射;以及将该映射提交给散列映射存储库。
条款20:根据条款19所述的方法,该方法还包括:从请求设备接收验证存储器地址处数据的存在的请求;确定存储器地址在映射中指定的存储器地址范围内;以及向该请求设备返回与包括与该一个或多个数据区块相关联的该存储器地址的该存储器地址范围相关联的所计算出的散列。
条款21:根据条款16至20中任一项所述的方法,该方法还包括:接收针对待存储在该存储电路***中的第一数据的第一数字签名和待存储在该存储电路***中的第二数据的第二数字签名;基于与第一数字签名和第二数字签名相关联的信息,确定第一数字签名和第二数字签名是能够组合的;以及基于该第一数字签名和该第二数字签名是可组合的确定,针对该第一数字签名和该第二数字签名生成组合签名。
条款22:一种方法,该方法包括:从存储设备的可信电路***处的请求设备中接收对针对该存储设备的存储电路***中的存储器地址范围内存储的数据的签名的请求,该请求包括质询值;检索存储器地址范围中存储的数据的散列;使用质询值对散列进行签名;以及向请求设备输出该已签名的散列。
条款23:一种***,该***包括:存储器,该存储器存储有可执行指令;和处理器,该处理器被配置成执行该可执行指令以执行条款16至22中任一项的操作。
条款24:一种***,该***包括:用于执行条款16至22中任一项的操作的构件。
条款25:一种计算机可读介质,该计算机可读介质存储有指令,当处理器执行该指令时,执行条款16至22中任一项的操作。
附加方面
本文所述主题的各方面可在任何合适的诸如3D NAND闪存的NAND闪存以及其他类型的半导体存储器设备中实施。半导体存储器设备包括易失性存储器设备,诸如DRAM或SRAM设备,NVM设备,诸如ReRAM、EEPROM、闪存存储器(其也可视为EEPROM的子集)、铁电随机存取存储器(FRAM)和MRAM,以及能够存储信息的其他半导体元件。每种类型的存储器设备可具有不同的配置。例如,闪存存储器设备可以NAND配置或NOR配置进行配置。该存储器设备可由无源元件和/或有源元件以任何组合形成。举非限制性示例而言,无源半导体存储器元件包括ReRAM设备元件,该无源半导体存储器元件在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及任选地包括导引元件诸如二极管等。进一步举非限制性示例而言,有源半导体存储器元件包括EEPROM和闪存存储器设备元件,该有源半导体存储器元件在一些实施方案中包括具有电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。
多个存储器元件可被配置为使得它们串联连接或者使得每个元件可被单独访问。以非限制性示例的方式,NAND配置中的闪存存储器设备(NAND存储器)通常包含串联连接的存储器元件。NAND存储器阵列可被配置为使得该阵列由存储器的多个串构成,其中串由共享单个位线并作为组被访问的多个存储器元件构成。另选地,可配置存储器元件,使得每个元件可被单独访问,例如NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且存储器元件可以其他方式配置。位于基板内和/或上方的半导体存储器元件可被布置成两个或三个维度,诸如二维存储器结构或三维存储器结构。
通常需要相关联的电路***来操作存储器元件并与存储器元件通信。作为非限制性示例,存储器设备可具有用于控制并驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路***可与存储器元件位于同一基板上和/或位于单独的基板上。例如,用于存储器读取-写入操作的控制器可定位在单独的控制器芯片上和/或定位在与存储器元件相同的基板上。本领域的技术人员将认识到,本文描述的主题不限于所述的二维和三维示例性结构,但涵盖如本文所述的并且如本领域的技术人员所理解的本主题的实质和范围内的所有相关存储器结构。
提供本文阐述的示例以示出本公开的某些概念。上面示出的装置、设备或部件可以被配置为执行本文描述的方法、特征或步骤中的一个或多个。本领域普通技术人员将理解,这些本质上仅是示例性的,并且其他示例可以落入本公开和所附权利要求的范围内。基于本文的教导内容,本领域技术人员应理解,本文公开的方面可以独立于任何其他方面来实现,并且这些方面中的两个或更多个可能以各种方式组合。例如,可以使用本文阐述的任何数量的方面来实现一种装置或可以实践一种方法。此外,除了或替代本文阐述的一个或多个方面,可以使用其他结构、功能、或结构和功能来实现这种装置或可以实践这种方法。
下文已经参考根据本公开实施方案的方法、装置、***和计算机程序产品的示意性流程图和/或示意性框图描述了本公开的各方面。应当理解,示意性流程图和/或示意性框图的每个框,以及示意性流程图和/或示意性框图中的框的组合可由计算机程序指令实现。这些计算机程序指令可被提供给计算机的处理器或其他可编程数据处理装置以生产机器,使得经由该处理器或其他可编程数据处理装置执行的指令创建用于实现在示意性流程图和/或示意性框图的一个或多个框中指定的功能和/或动作的构件。
本文描述的主题可能以硬件、软件、固件、或其任何组合来实现。这样,本文所使用的术语“功能”、“模块”等可指代硬件,其也可包括软件和/或固件部件,以用于实施所描述的特征。在一个示例性实施方式中,本文描述的主题可以使用其上存储有计算机可执行指令的计算机可读介质来实现,这些计算机可执行指令在由计算机(例如,处理器)执行时控制计算机以执行本文描述的功能。适用于实现本文描述的主题的计算机可读介质的示例包括非暂态计算机可读介质,诸如磁盘存储器设备、芯片存储器设备、可编程逻辑设备和专用集成电路。此外,实现本文描述的主题的计算机可读介质可以位于单个设备或计算平台上,或者可以分布在多个设备或计算平台上。
还应当指出,在一些另选的实施方式中,框中示出的功能可以不按图中所示的顺序发生。例如,事实上,连续示出的两个框可基本上同时执行,或者这些框有时可以采用相反的顺序执行,这取决于所涉及的功能。可以设想在功能、逻辑或效果上等同于所示附图的一个或多个框或其部分的其他步骤和方法。尽管在流程图和/或框图中可以采用各种箭头类型和线条类型,但是应当理解这些箭头类型和线条类型不限制相应实施方案的范围。例如,箭头可以指示所描绘的实施方案的枚举的步骤之间的未指定持续时间的等待或监视时段。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合均旨在落入本公开的范围内。另外,在一些具体实施中可以省略某些方法、事件、状态或过程块。本文描述的方法和过程也不限于任何特定序列,并且与其相关的块或状态可以以适当的其他序列执行。例如,所描述的任务或事件可以以不同于具体公开的顺序执行,或者多个可以在单个块或状态中组合。示例性任务或事件可以串行、并行或以某种其他合适的方式执行。可以向所公开的示例性实施方案添加任务或事件或从其中删除任务或事件。本文描述的示例性***和部件可以与所描述的不同地配置。例如,与所公开的示例性实施方案相比,可以添加、移除或重新布置元件。
本领域技术人员将理解,可以使用多种不同技艺和技术中的任何一种来表示信息和信号。例如,在以上整个说明书中可能引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子、或其任何组合来表示。
词语“示例性”在本文中用于表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面并非一定被解释为比其他方面更优选或更具优势。同样,术语“方面”不要求所有方面均包括所讨论的特征、优点或操作模式。
虽然以上描述包含本发明的许多具体实施方案,但这些不应解释为对本发明范围的限制,而是作为其具体实施方案的示例。因此,本发明的范围不应由例示的实施方案确定,而应由所附权利要求及其等同物确定。此外,贯穿本说明书所提到的“一个实施方案”、“实施方案”或相似语言是指结合实施方案所描述的特定特征、结构或特性被包括在本公开的至少一个实施方案中。因此,本说明书通篇出现的短语“在一个实施方案中”、“在实施方案中”和相似语言可以但不一定全部是指同一个实施方案,而是指“一个或多个但不是所有实施方案”,除非另有明确说明。
本文所使用的术语仅出于描述特定方面的目的并且不旨在限制这些方面。如本文所用,单数形式“一”、“一个”和“该”也旨在包括复数形式(即,一个或多个),除非上下文另外明确指出。枚举的项目列表并不意味着项目中的任何或所有项目是互相排斥的和/或相互包容的,除非另有明确说明。还应当理解的是,除非另外明确指明,否则本文中使用的术语“包含”、“包含有”、“包括”、“包括有”、“具有”及其变型意指“包括但不限于”。也就是说,这些术语可以指定所陈述的特征、整数、步骤、操作、元素或部件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、部件、或其组的存在或添加。此外,应当理解,单词“或”具有与布尔运算符“OR”相同的含义,也就是说,它包含“或者”和“两者”的可能性,并且不限于“异或”(“XOR”),除非另有明确说明。还应当理解,两个相邻单词之间的符号“/”具有与“或”相同的含义,除非另有明确说明。此外,诸如“连接到”、“耦接到”或“与之通信”的短语不限于直接连接,除非另有明确说明。
本文中使用诸如“第一”、“第二”等的名称对元件的任何引用通常不限制那些元件的数量或顺序。相反,这些指定在本文中可以用作区分两个或更多个元件或元件实例的便利方法。因此,对第一和第二元件的引用并不意味着在那里仅可以使用两个元件,或者第一元件必须以某种方式在第二元件之前。另外,除非另有说明,否则一组元件可以包括一个或多个元件。此外,说明书或权利要求书中使用的“A、B或C中的至少一者”或“A、B、C或其任何组合”或“A、B和C中的一者或多者”形式的术语是指“A或B或C或这些元件的任何组合”。例如,此术语可以包括A、或B、或C、或A和B、或A和C、或A和B和C、或2A、或2B、或2C、或2A和B等。作为另外的示例,“A、B或C中的一者或多者”旨在涵盖A、B、C、A-B、A-C、B-C和A-B-C、以及相同构件的倍数(例如,包括AA、BB或CC的任何列表)。同样,“A、B和C中的一者或多者”旨在涵盖A、B、C、A-B、A-C、B-C和A-B-C、以及相同构件的倍数。类似地,如本文所用,指代与“和/或”链接的项目列表的短语是指项目的任何组合。作为示例,“A和/或B”旨在涵盖单独的A、单独的B、或A和B一起。作为另一示例,“A、B和/或C”旨在涵盖单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起、或A、B和C一起。
如本文所用,术语“确定”涵盖各种动作。例如,“确定”可包括算数、计算、处理、推导、调查、查找(例如,在表、数据库或另一个数据结构中查找)、探知等。而且,“确定”可包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。而且,“确定”可包括解析、选择、选出、建立等。
因此,所附权利要求书并非旨在限于本文所示出的实施方案,而是旨在被赋予与权利要求书的语言一致的全部范围。在权利要求内,除非特别说明,否则提及单数形式的元件并不旨在意指“一个且仅一个”,而是指“一个或多个”。除非另外特别说明,否则术语“一些”是指一个或多个。依据35U.S.C.§112(f),将不解释任何权利要求要素,除非使用短语“用于……的装置”来明确地叙述该要素,或在方法权利要求的情况下使用短语“用于……的步骤”来叙述该要素。本领域的普通技术人员已经知道或之后知道的贯穿本公开描述的各个方面的要素的所有结构等同物和功能等同物以引用的方式明确地并入本文并旨在被权利要求所涵盖。此外,无论在权利要求中是否明确地叙述此公开内容,本文公开的内容都并非旨在贡献给社会大众。
Claims (22)
1.一种存储设备,所述存储设备包括:
存储电路***,所述存储电路***被配置成存储多个数据区块;和
可信电路,所述可信电路安全地存储有私有签名密钥,所述可信电路被配置成:
计算多个数据区块中存储的数据的散列,以及
至少部分基于所述私有签名密钥、所计算出的散列和存储所述数据的所述多个数据区块的数量,针对所述多个数据区块中存储的所述数据生成匿名数字签名;
其中所述可信电路***置到所述存储电路***的写入路径上,使得被写入到所述存储电路***的数据通过所述可信电路进行处理。
2.根据权利要求1所述的存储设备,其中所述可信电路被配置成还基于生成所述数字签名的时间来生成所述匿名数字签名。
3.根据权利要求1所述的存储设备,其中所述可信电路还被配置成:
导出和与所述多个数据区块中存储的所述数据相关联的区块链的最近状态相关的质询值;以及
基于所述私有签名密钥和所述质询值生成第二匿名签名。
4.根据权利要求3所述的存储设备,其中所述区块链与加密货币相关联。
5.根据权利要求1所述的存储设备,其中所述可信电路还被配置成保持与所述多个数据区块相关联的存储器地址范围和所计算出的散列之间的映射。
6.根据权利要求4所述的存储设备,其中所述可信电路还被配置成:
从请求设备接收验证存储器地址处数据的存在的请求;
确定所述存储器地址在与所述多个数据区块相关联的所述存储器地址范围内;以及
向所述请求设备返回所计算出的散列。
7.根据权利要求4所述的存储设备,其中所述可信电路还被配置成:
从请求设备接收验证存储器地址处数据的存在的请求;
确定所述存储器地址在与所述多个数据区块相关联的所述存储器地址范围外;
从所述存储电路***读取所述存储器地址处存储的数据;
基于所述存储器地址处存储的所述数据的散列和签名密钥,针对所述存储器地址处存储的所述数据生成第二匿名数字签名;以及
向所述请求设备返回所述第二匿名数字签名。
8.根据权利要求6所述的存储设备,其中所述可信电路还被配置成:生成第二映射,所述第二映射将所述存储器地址和所述存储器地址处存储的所述数据的所述散列相关联。
9.根据权利要求6所述的存储设备,其中所述签名密钥包括所述私有签名密钥。
10.根据权利要求6所述的存储设备,其中所述签名密钥包括验证所述存储器地址处数据的存在的所述请求中包括的质询值。
11.根据权利要求4所述的存储设备,所述存储设备还包括:
在到所述存储电路***的所述写入路径上,检测针对与所述多个数据区块相关联的所述存储器地址范围中的地址的写入请求;以及
基于检测到所述写入请求,删除与所述多个数据区块相关联的所述存储器地址范围和所计算出的散列之间的所述映射。
12.根据权利要求1所述的存储设备,其中所述可信电路还被配置成:
接收针对待存储在所述存储电路***中的第一数据的第一数字签名和针对待存储在所述存储电路***中的第二数据的第二数字签名;
基于与所述第一数字签名和所述第二数字签名相关联的信息,确定所述第一数字签名和所述第二数字签名是能够组合的;以及
基于所述第一数字签名和所述第二数字签名是能够组合的确定,生成所述第一数字签名和所述第二数字签名的组合签名。
13.根据权利要求11所述的存储设备,其中为了确定所述第一数字签名和所述第二数字签名是能够组合的,所述可信电路被配置成:
确定与所述第一数字签名相关联的时间戳和与所述第二数字签名相关联的时间戳的差异量小于第一阈值量,以及
确定与所述第一数字签名相关联的所述时间戳和与所述第二数字签名相关联的所述时间戳在当前时间戳的第二阈值量内。
14.根据权利要求11所述的存储设备,其中为了确定所述第一数字签名和所述第二数字签名是能够组合的,所述可信电路被配置成确定与所述第一数字签名相关联的质询值和与所述第二数字签名相关联的质询值是相同的质询值。
15.根据权利要求1所述的存储设备,其中所述多个数据区块中存储的所述数据包括加密数据。
16.一种方法,所述方法包括:
检测将数据写入存储设备的存储电路***中的一个或多个数据区块的请求;
计算待写入所述一个或多个数据区块的所述数据的散列;
至少部分地基于所述存储设备的可信电路中存储的私有签名密钥和所计算出的散列,针对待写入所述一个或多个数据区块的所述数据生成匿名数字签名;以及
将所述匿名数字签名输出到区块链,以证明将所述数据写入所述存储设备的存储电路***中的所述一个或多个数据区块的所述请求的完成。
17.根据权利要求15所述的方法,所述方法还包括:
导出与所述一个或多个数据区块中存储的所述数据相关联的区块链的最近状态相关的质询值;以及
基于所述私有签名密钥和所述质询值生成第二匿名签名。
18.根据权利要求17所述的方法,其中所述区块链与加密货币相关联。
19.根据权利要求15所述的方法,所述方法还包括:
生成所计算出的散列和包括与所述一个或多个数据区块相关联的存储器地址的存储器地址范围之间的映射;以及
将所述映射提交到散列映射存储库。
20.根据权利要求17所述的方法,所述方法还包括:
从请求设备接收验证存储器地址处数据的存在的请求;
确定所述存储器地址在所述映射中指定的所述存储器地址范围内;以及
向所述请求设备返回与包括与所述一个或多个数据区块相关联的所述存储器地址的所述存储器地址范围相关联的所计算出的散列。
21.根据权利要求15所述的方法,所述方法还包括:
接收针对待存储在所述存储电路***中的第一数据的第一数字签名和针对待存储在所述存储电路***中的第二数据的第二数字签名;
基于与所述第一数字签名和所述第二数字签名相关联的信息,确定所述第一数字签名和所述第二数字签名是能够组合的;以及
基于所述第一数字签名和所述第二数字签名是能够组合的确定,生成所述第一数字签名和所述第二数字签名的组合签名。
22.一种方法,所述方法包括:
从存储设备的可信电路***处的请求设备接收对针对所述存储设备的存储电路***中的存储器地址范围中存储的数据的签名的请求,所述请求包括质询值;
检索所述存储器地址范围中存储的所述数据的散列;
使用所述质询值对所述散列进行签名;以及
将所签名的散列输出到所述请求设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/537,302 US20230168825A1 (en) | 2021-11-29 | 2021-11-29 | Trusted systems for decentralized data storage |
US17/537,302 | 2021-11-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116192395A true CN116192395A (zh) | 2023-05-30 |
Family
ID=86317346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210535628.6A Pending CN116192395A (zh) | 2021-11-29 | 2022-05-17 | 用于分散式数据存储的可信*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230168825A1 (zh) |
CN (1) | CN116192395A (zh) |
DE (1) | DE102022112400A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3695562A4 (en) * | 2017-10-15 | 2021-06-23 | Network Perception, Inc. | SYSTEMS AND PROCEDURES FOR PRIVACY PRIVACY PRECISE ANALYSIS OF NETWORK PATHS |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578109B2 (en) * | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
EP2678969A4 (en) * | 2011-02-22 | 2017-07-19 | Hewlett-Packard Enterprise Development LP | Digital signatures |
US10015012B2 (en) * | 2013-07-03 | 2018-07-03 | Red Hat, Inc. | Precalculating hashes to support data distribution |
US9483481B2 (en) * | 2013-12-06 | 2016-11-01 | International Business Machines Corporation | Files having unallocated portions within content addressable storage |
WO2015105479A1 (en) * | 2014-01-07 | 2015-07-16 | Empire Technology Development Llc | Anonymous signature scheme |
US9329799B2 (en) * | 2014-03-04 | 2016-05-03 | Netapp, Inc. | Background checking for lost writes and data corruption |
US10169616B1 (en) * | 2016-02-01 | 2019-01-01 | Xilinx, Inc. | Cryptographic processing of data and instructions stored off-chip |
US10554407B1 (en) * | 2018-07-12 | 2020-02-04 | Protocol Labs, Inc. | Protocols for decentralized networks |
US10698772B2 (en) * | 2018-07-17 | 2020-06-30 | EMC IP Holding Company LLC | Storage system with multiple write journals supporting synchronous replication failure recovery |
US10846372B1 (en) * | 2019-12-31 | 2020-11-24 | Onu Technology Inc. | Systems and methods for trustless proof of possession and transmission of secured data |
US11387984B1 (en) * | 2021-09-25 | 2022-07-12 | Uab 360 It | Sharing grouped data in an organized storage system |
-
2021
- 2021-11-29 US US17/537,302 patent/US20230168825A1/en active Pending
-
2022
- 2022-05-17 CN CN202210535628.6A patent/CN116192395A/zh active Pending
- 2022-05-17 DE DE102022112400.2A patent/DE102022112400A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022112400A1 (de) | 2023-06-01 |
US20230168825A1 (en) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11405219B2 (en) | Shared blockchain data storage | |
EP3673620B1 (en) | Shared blockchain data storage | |
US10402571B2 (en) | Community-based de-duplication for encrypted data | |
US20210014066A1 (en) | Shared blockchain data storage | |
US11171774B2 (en) | System for synchronizing a cryptographic key state through a blockchain | |
EP3769228B1 (en) | Consenus of shared blockchain data storage based on error correction code | |
CN111355705A (zh) | 一种基于区块链的数据审计与安全去重云存储***、方法 | |
EP3794770B1 (en) | Shared blockchain data storage based on error correction code | |
Guo et al. | Dynamic proof of data possession and replication with tree sharing and batch verification in the cloud | |
CN113994324B (zh) | 具有高效世界状态数据结构的区块链*** | |
JP2022528072A (ja) | 安全な電子制御装置更新のためのローカル台帳ブロックチェーン | |
CN114127724A (zh) | 针对多副本存储的完整性审计 | |
US20220247731A1 (en) | Secure communication between an intermediary device and a network | |
CN115659417A (zh) | 审计日志存储方法、验证方法、装置和计算机设备 | |
CN116192395A (zh) | 用于分散式数据存储的可信*** | |
KR102501004B1 (ko) | 블록체인 기반의 데이터 관리 방법 및 장치 | |
Balasubramanian et al. | Cloud data integrity checking using bilinear pairing and network coding | |
Yoosuf et al. | FogDedupe: A Fog‐Centric Deduplication Approach Using Multi‐Key Homomorphic Encryption Technique | |
US20230394152A1 (en) | Establishing a chain of ownership of a device | |
CN111199044B (zh) | 数据存储方法、装置以及存储介质 | |
CN116710916A (zh) | 防止重复加密数据的方法和*** | |
KR20230075548A (ko) | 트러스티드 컴퓨팅 시스템 및 이의 증명 방법 | |
CN117972747A (zh) | 基于区块链具有前向安全的可搜索加密方法、存储介质及计算机设备 | |
Ma et al. | A Hierarchical Provable Massive Data Migration Method under Multicloud Storage | |
Aditya et al. | Employing bloom filters for enforcing integrity of outsourced databases in cloud environments |
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 |