CN112136134A - 具有组合的函数的加密asic - Google Patents
具有组合的函数的加密asic Download PDFInfo
- Publication number
- CN112136134A CN112136134A CN201980033363.6A CN201980033363A CN112136134A CN 112136134 A CN112136134 A CN 112136134A CN 201980033363 A CN201980033363 A CN 201980033363A CN 112136134 A CN112136134 A CN 112136134A
- Authority
- CN
- China
- Prior art keywords
- hash
- cryptographic
- integrated circuit
- transform
- block
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- 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/76—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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Abstract
启用变换的集成电路被提供有组合的变换/散列块,例如用于加密工作证明系统。启用变换的集成电路将用于变换函数的部件嵌入在启用变换的集成电路的加密数据路径内的散列函数部件中。可以在集成电路的制造之后配置组合的变换/散列块,以将多个数学变换函数中的任一个体现为电路,因此使得用户能够系统地修改由集成电路执行的加密操作,同时保持专用集成电路的高性能和效率特性。实施例修改散列函数的内部中间状态变量以对输入信息进行变换和散列化。还提供了方法和计算机程序产品实施例。该技术能够灵活地在区块链系统、数字版权管理、安全令牌、以及其他与加密相关的领域内部署专用集成电路(ASIC)。
Description
相关应用
本申请要求于2018年9月24日提交的并且题为“具有组合的变换和单向函数的加密ASIC(CRYPTOGRAPHIC ASIC WITH COMBINED TRANSFORMATION AND ONE-WAYFUNCTIONS)”的美国专利登记No.16/139,332的优先权权益,其要求于2018年3月20日提交的并且题为“具有组合的变换和单向函数的加密ASIC(CRYPTOGRAPHIC ASIC WITHCOMBINED TRANSFORMATION AND ONE-WAY FUNCTIONS)”的美国临时申请专利登记No.62/645,609的优先权权益,其全部内容通过引用并入。该申请根据主题与于2016年1月15日提交并于2017年7月20日发表为美国专利申请公开2017/0206382A1并且题为“包括电路编码变换函数的加密ASIC”的美国专利登记No.14/997,113相关,其全部内容通过引用并入。
技术领域
所公开的技术总体上涉及集成电子电路的设计,并且更具体地,一些实施例涉及加密集成电路的设计。
背景技术
专用集成电路(ASIC)是被设计和构建成服务与特定的目的或应用的集成电路。与较慢、更一般化的解决方案(例如,在通用处理器或现场可编程门阵列(FPGA)上运行的软件解决方案)相比,ASIC提供了快速的计算速度。如名称所暗示的,ASIC通常被设计成仅执行一个特定的应用,从而导致在灵活性和计算速度之间的折衷。ASIC在与加密相关的领域中的重要性增加,所述领域例如工作证明系统、数字版权管理系统、以及通常具有严格的速度和效率要求的其他应用。
附图说明
根据一个或多个各种实施例,参考以下附图详细描述本文公开的技术。附图仅为了说明的目的被提供,并且仅描绘所公开的技术的一般或示例性实施例。提供这些附图以便于读者对所公开的技术的理解,并且不应被视为是对其广度、范围或适用性的限制。应当注意,为了说明的清楚和容易,这些附图不一定按比例绘制。
图1示出了在其中可以实施本文公开的技术的实施例的示例性加密处理系统。
图2示出了根据本文公开的技术的实施例的并包含位于沿着集成电路数据路径的点之一处的可编程变换块的示例性启用变换的集成电路,集成电路数据路径被构想为本文公开的技术的部分。
图3示出了根据本文公开的技术的实施例的并包含位于沿着集成电路数据路径的不同点处的可编程变换块的示例性启用变换的集成电路,集成电路数据路径被构想为本文公开的技术的部分。
图4示出了根据本文公开的技术的实施例的并包含均位于沿着集成电路数据路径的点处的两个可编程变换块的示例性启用变换的集成电路,集成电路数据路径被构想为本文公开的技术的部分。
图5A示出了根据本文公开的技术的实施例的在对变换函数进行编码之前的示例性可编程变换块配置。
图5B示出了根据本文公开的技术的实施例的根据二进制密钥进行编码的示例性可编程变换块。
图6示出了根据本文公开的技术的实施例的示例性函数编码过程。
图8示出了根据本文公开的技术的实施例的示例性组合的变换/散列块。
图9示出了根据本文公开的技术的实施例的具有组合的变换/散列块的示例性启用变换的集成电路方法。
图10示出了可以用于实施公开技术的实施例的各种特征的示例性计算部件。
附图并非旨在是穷举的或将本发明限制为所公开的精确形式。应当理解,可以在有修改和变更的情况下实践本发明,并且所公开的技术仅由权利要求及其等同物限制。
具体实施方式
根据所公开的技术的各种实施例,提供了用于在基于工作证明的加密验证过程中使用的集成电路,包括但不限于经常在区块链技术的新兴领域中使用的加密网络交易验证系统。集成电路包括实施加密函数的电路的一个或多个块,所述加密函数通常是难以反转的加密单向函数(OWF),例如安全散列算法。由一个或多个用户选择并且实现为数据路径电路块的一个或多个变换函数被放置在集成电路数据路径上在实施上述加密函数的电路的至少一个块之前的一点处。实施变换函数的电路的每个块可以被配置为由用户通过提供配置密钥(例如,由一串二进制数字组成的密钥)来编程。然后,将这样的密钥实现为变换块内的数据路径电路。
在这样的编程之后,变换块内的电路将实现特定的编程变换,将特定的编程变换反映沿着集成电路数据路径由用户对它从在其之前的电路接收的数据编程的密钥,并且将变换后的数据沿着数据路径传递到另一电路上。因此,并且不考虑由变换块接收的数据的内容,其应用的变换将直接且一致地影响由电路进一步沿着数据路径计算的最终值,包括实施上述加密函数的电路的一个或多个块。
由于变换与所涉及的加密算法的数学特性的交互作用,特别是他们的作为难以恢复的OWF的性质(在此,以及在本文档中的其他点处,诸如“难”和“易”的术语可以在计算复杂性理论、特别是多项式时间理论的意义上被理解),组合的效果是产生包含在由电路计算的最终值中的位的系统化变换,该系统化变换不易被译解,不易与噪声区分开,并且不易由缺乏用户的一个或多个密钥的完全先验知识的一方复制,但然而是完全一致的且能够由具有密钥的先验知识或甚至在缺乏他们的知识时对在计算中利用他们的手段的访问的一方(例如,拥有被编程为将密钥体现在其数据路径电路内的ASIC的一方)容易复制且因而可验证。
通常,候选交易块首部(header)将经受一个或几个散列操作,并且得到的散列值将为了有效性而与某些预先存在的标准进行比较。在比特币的情况下,所使用的特定散列操作恰好是安全散列算法(SHA)的第2版本的256位版本的两个后续的应用,如由国家技术标准研究院(NIST)所定义的。有时将其称为SHA-256,并且它的两个连续应用有时被称为双SHA-256。为了简单起见,有时也将其称为双SHA。然而,毫无疑问,这仅仅是碰巧在比特币的情况下使用的特定算法;其他区块链可以并且确实使用其他算法。类似地,本文描述的技术的各种实施例可以使用区块链技术领域内的各种不同算法,而其他实施例适用于除了区块链技术以外的领域。
如在工作证明验证系统的其他用途中常见的,候选结果与有效性标准的比较确定了进一步的处理。如果候选交易块首部未能通过有效性标准,则将其丢弃,并且系统继续移动到处理下一候选交易块首部。如果候选交易块首部通过有效性标准,则将其视为有效的交易块首部。
当找到有效的交易块首部时,执行一系列其他操作。在区块链技术的领域内,这样的操作通常在有效交易块首部附加到区块链的末端时连同其引用的交易块一起达到极点。也可能出现其他操作,例如将报酬分配给首先报告有效交易块首部的发现的一方。随后,对新的有效交易块首部的搜索重新开始并重复该过程。
通常,近年来,用于解决区块链系统中涉及的计算密集型工作证明计算的技术已快速发展。例如,在比特币交易的情况下,最初利用在通用处理器上运行的软件应用来进行在发现有效交易块首部时所涉及的工作证明过程。然而,速度和效率在工作证明系统(包括在区块链系统的上下文内使用的那些系统)中是至关重要的。因此,比特币挖掘操作移向专用硬件解决方案,包括ASIC。ASIC提供从线级(line-level)速度产生的速度和效率的极大增加,计算可以以该线级速度来进行。如名称所暗示的,ASIC被设计和制造成执行一个特定的应用,在这种情况下是在实施特定的加密协议时涉及的数学运算。
比特币网络的成功证明了区块链技术的安全性质。因此,随着时间的推移,在其他相关领域中使用区块链引起了人们的兴趣。然而,ASIC被设计为狭窄地匹配将在其中实施它们的协议的特定元件,特别是描述由协议限定的工作证明系统的细节的协议的元件。对于比特币网络,每个ASIC被设计为在极大速度下组装块首部,如由比特币协议所描述的,使他们经受安全散列算法(SHA-256)协议的256位版本的两个连续实例,并且最后通过比较他与预先确定的有效性测试来检查得到的256位二进制散列值的有效性。
本文所公开的技术的实施例针对与加密相关的应用的专用集成电路的设计、制造和利用。更特别地,本文所公开的技术的各种实施例涉及具有被实现为并入到集成电路的高速数据路径中的电路的一个或几个可编程变换函数的ASIC。通过将变换函数编码为数据路径电路,本文所公开的技术的实施例使ASIC能够实施如由用户选择的各种工作证明系统中的任一个。
在一个实施例中,提供了包括组合的变换/散列块和编程电路的加密集成电路。组合的变换/散列块包括一组电子电路,在集成电路的制造之后该电子电路是可编程的,以对输入数据执行变换操作和散列操作从而产生并储存输出数据。编程电路通信地耦合组合的变换/散列块和配置接口。组合的变换/散列块被配置为基于配置密钥通过配置接口来编程,并且根据变换操作来变更散列操作的内部状态变量值。
在实施例中,加密方法包括:从用户接收配置密钥;基于配置密钥对变换函数进行编程;对输入数据执行散列操作,其包括基于编程的变换函数来变更散列操作的内部状态变量值;以及输出启用变换的散列操作的结果。
在另一个实施例中,非暂态计算机可读储存介质具有嵌入在其中的一组指令,所述一组指令在由计算机的一个或多个处理器执行时使计算机执行加密操作。所述操作可以包括:从用户接收配置密钥;基于配置密钥对变换函数进行编程;对输入数据执行散列操作,其包括基于编程的变换函数来变更散列操作的内部状态变量值;以及输出启用变换的散列操作的结果。
图1示出了通常用于区块链应用和并入为该应用设计的集成电路103的一般类型的加密网络交易验证系统100的示例,本文公开的技术的实施例可以在该应用内实施。
为了便于讨论,将关于比特币协议、和支持比特币区块链的网络来描述示例性加密处理系统100的元件和整体操作。虽然以这种方式进行了描述,但是阅读本公开的普通技术人员将理解,示例性加密网络交易验证系统100适用于除了比特币网络以外的用途。
示例性加密网络交易验证系统100包括集成电路103。在各种实施例中,集成电路103可以包括一个或多个处理部件,包括配置接口104、交易块首部成帧器105、缓冲器106、机密散列核心107、评估器111、和决策引擎112。在一些实施例中,一个或多个部件可以组合到单个集成电路中,如图1中所示,其中集成电路103内表示的所有部件在物理上都是同一集成电路的部分(也就是说,都被精巧地制作在同一片硅内)。在其他实施例中,它们中的一些可以由硅的不同片精巧地制作,并借助于连接电路组合在一起。关于示例性加密处理系统100详细讨论了每个部件。
用户101可以通过配置接口104来配置一个或多个集成电路参数。可以由用户101配置的集成电路参数的非限制性示例包括:初始化;内部时钟速度;或与其他联网系统的通信的模式等。在一些实施例中,用户101可以是经由终端与集成电路103通信的人。在其他实施例中,用户101可以是在系统或网络上运行的自动过程。在各种实施例中,用户101还可以使用配置接口104来监测集成电路103的操作特性。可以被监测并提供给用户101的操作特性的非限制性示例可以包括:电流活动;操作温度;操作电压;或故障状态等。
由交易块首部成帧器105使用由成帧器本身产生的数据、和从交易和系统数据102b获得的数据的组合来组装随后由集成电路103处理的每个候选交易块首部。在各种实施例中,交易和系统数据102b由现有过程、挖掘软件102a编译。在许多情况下,挖掘软件102a是在通用处理器上运行并经由到公共互联网的连接与区块链网络的其余部分通信的一件软件,它利用该软件来编译交易和系统数据102b。
区块链系统的整体架构的某些品质,特别是在系统的不同方面之间的良好设计的区分提供了在集成电路103的操作与关于挖掘软件102a的操作的细节之间的有效隔离。结果,关于挖掘软件的操作的大多数细节(包括其在物理上存在于哪里、其使用什么过程来与网络的其余部分进行通信、其使用什么过程来将网络数据编译为交易和系统数据102b、以及其他)对于集成电路103的操作是透明的。类似地,挖掘软件102a连接到的网络是否正好是比特币网络或负责维护不同区块链的不同网络对于集成电路103和本文所述的技术的各种实施例也是透明的。
交易和系统数据102b可以包括例如:系统日期和时间;协议版本;表示包括在交易块中的这组单独交易的Merkle-结构;附加到区块链的最近块的唯一标识符等。在接收到交易和系统数据102b时,交易块首部成帧器105对其进行进一步精心制作,以便产生一个或多个候选交易块首部。
在各种实施例中,交易块首部成帧器105可以解析交易和系统数据102b,并向其添加某些其他元件(例如,顺序计数器),以便产生一系列交易块首部,所述一些列交易块首部都有效地被形成,并且都适当地表示同一集合的交易,但彼此之间都略有不同。
在各种实施例中,在每秒数十亿或数千亿个单独候选交易块首部的范围内,交易块首部成帧器105可以产生全部准确地表示如从交易和系统数据102b接收到的但彼此之间都略有不同的交易块的交易块首部的速率可以是很快的。取决于实施方式,缓冲器106可以储存等待由散列核心107处理的所创建的候选交易块首部。
每个集成电路103可以包含一个或多个散列核心或其他加密处理核心。为了简单起见,示出了包括单个散列核心107的示例性加密处理系统100。在各种实施例中,可以实施多个并行的散列或其他加密处理核心。散列核心107包括一个或多个散列块。在图1中所示的示例中,散列核心107包括两个散列块108、110。散列块可以被配置为执行由可应用的散列标准定义的数学运算的一组电路。在各种实施例中,散列核心107可以体现公共散列标准,例如安全散列算法(SHA)。在一些实施例中,可以使用SHA的256位版本(SHA-256)。在其他实施例中,散列核心107可以包括单个散列块。各种实施例可以包括多于两个的散列块。
在图1的所示实施例中,每个散列块108、110被设计为根据SHA-256标准来执行一系列数学运算。散列核心107根据所实施的加密标准来处理每个候选交易块首部。在一些实施例中,第一散列块108可以接受由交易块首部成帧器105产生的候选交易块首部作为输入,并使它们经受由标准散列算法定义的数学运算。第一散列块108为其从交易块首部成帧器105接收的每个候选交易块首部输出第一散列值109。每个第一散列值109与充当一种类型的“数字签名”的给定的候选交易块首部相关联。在各种实施例中,第一散列值109可以由第二散列块110进一步处理。这是(例如,在比特币网络内利用的)双重散列操作的表示。在一些实施例中,第二散列块110可以实施与第一散列块108相同的加密操作。在各种实施例中,第二散列块110可以实施与第一加密散列块108不同的加密操作。
将散列核心107的输出与预先存在的标准进行比较以用于识别有效块。在各种实施例中,散列核心107的输出可以是来自第二散列块110的输出。集成电路103的评估器111为每个候选交易块首部采用由散列核心107输出的最终散列值,并检查以查看所处理的输出是否满足预先确定的有效性标准。在比特币网络的特定情况下,有效性标准由某个数值(通常称为难度水平)表示,如果最终散列输出产生的256位数字的数值被认为是有效的,其可能不会超过所述某个数值。因此,如果数值或最终散列超过难度水平任何数量,则候选交易块首部未通过有效性测试,并且如果它不超过难度水平,则其通过有效性测试。在除了与比特币网络相关联的区块链系统以外的区块链系统中,一些实施例可以采用用于确定有效性的相同标准,而其他实施例可以采用用于确定有效性的不同标准。
如果评估器111确定最终散列值不满足有效性标准,则决策引擎112可以丢弃与由评估器111评估的处理后的输出相关联的候选交易块首部。如果评估器111确定最终散列值不满足有效性标准,则决策引擎112将在外部经由传输到成功报告接收方113a的成功报告113b来报告该事实。成功报告113b连同与之相关联的其他信息(例如,与其和其他项目相关联的交易块首部一起)是系统作为整体被设计为产生的加密工作证明。
在各种实施例中,成功报告接收方113b可以与挖掘软件102a相同。在其他实施例中,成功报告接收方113b可以是与挖掘软件102a不同的过程。在接收到成功报告113b时,成功报告接收方113a可以采取许多随后的动作。在各种实施例中,这样的动作通常涉及将有效交易块首部的发现到网络的其余部分的通信,并且通常在新交易块附加到区块链的末端和交易的下一有效块的搜索开始的情况下达到极点。在比特币网络的特定情况下,这样的动作可以另外包括其他方面,例如向第一方分配报酬以报告新的有效交易块首部的发现等。
然而,并且如对关于挖掘软件102a的操作的先前描述的情况,值得注意的是,成功报告接收方113b的确切性质和关于其在成功报告113a的接收之后可以或可以不采取什么行动的细节对本文所述的技术的各种实施例是透明的。类似地,无论成功报告接收方113b与和作为比特币的基础的区块链的维护相关联的网络还是与不同区块链的维护相关联的网络通信对本文所述的技术的一些实施例是透明的。
针对关于示例性实施方式描述的区块链技术的基本工作流,将参考图1的示例性加密处理系统100来讨论本文所公开的技术的实施例。为了便于讨论,将关于比特币及其相关的区块链实施方式来讨论实施例。然而,如上所讨论的,阅读该说明书的本领域中的普通技术人员将认识到,本文描述的实施例可应用于许多其他相关领域。
图2示出了根据本文所公开的技术的实施例的示例性启用变换的集成电路203。与关于图1描述的系统100类似,示例性启用变换的集成电路203在加密处理系统200内实施。类似于以上关于图1的集成电路103所讨论的部件,启用变换的集成电路203可以包括配置接口204、交易块首部成帧器205、缓冲器206、加密处理核心207、评估器211、和决策引擎212。
如先前所讨论的,本文所公开的技术的实施例布置实现为在集成电路203的加密数据路径内的电路的变换函数。在图2中所示的示例中,启用变换的集成电路203的加密处理核心207包括两个散列块208、210和可编程变换块215。散列块208、210可以被实施为包括散列或其他加密函数,例如根据SHA-256标准执行散列过程的电路。
在所示的示例中,可编程变换块215是电子电路的块,所述电子电路专门被设计为适用于直接集成到高性能加密集成电路的线速度数据路径中,但仍然保持被编程为在集成电路数据路径上在它之前从电路接收的输入数据执行大范围的可能的数学变换操作中的任一个,并在集成电路数据路径上以全线速度将得到的变换后的数据输出到在它之后的电路。
在诸如图2中所示的一些实施例中,可编程变换块215集成到加密处理核心207的数据路径中。该示例中的ASIC被配置为使得在加密处理核心207内的所有部件沿着单个高速数据路径布置,在数据路径的任一端处有单个输入点和单个输出点,并且没有对在包括加密处理核心207的部件之间移动的信号的外部访问。
将可编程变换块215集成到加密处理核心207内的高速数据路径中允许加密处理核心207在线速度下操作,并且因此当与不包括可编程信息块215的加密处理核心相比时,电路作为整体的性能的非常小的降级。这通过将变换函数体现为数据路径电路(即,可编程变换块215)以将在下面更详细公开的方式来实现。
类似地,将加密处理核心207内的电路布置到统一的数据路径中保护配置密钥214不被检测。加密处理核心207在任一端处包含单个输入点和单个输出点,并且没有对在包括加密处理核心207的部件之间移动的信号的外部访问。因此,通过比较由沿着数据路径布置的不同部件所产生的输入和输出来保护加密处理核心207内的电路(例如,可编程变换块215)不受实现在可编程变换块215中的配置密钥214的公开或发现。
在图2中所示的示例性实施例的特定情况下,加密处理核心207内的数据路径被布置成使得由加密处理核心207处理的所有数据的单个输入点为第一散列块208。从那里,诸如交易块首部的数据沿着它采用的数据路径前进,通过可编程变换块215并且然后通过第二散列块210。第二散列块210是单个输出点,并且随后数据离开加密处理核心207并且前进到评估器211。将可编程变换块215放置在至少一个散列块之前(在此示例中,在散列块210之前)经由分析技术来保护实现在可编程变换块215中的配置密钥214的发现。例如,这样的放置通过被已知在经受特定组的加密过程(例如,双SHA-256散列)时产生某个结果的数据的插入,并且然后比较由启用变换的加密处理核心207产生的结果来推断配置密钥214以保护配置密钥214的发现。
在如将在下面参考图3更详细讨论的其他实施例中,可编程变换块215可以放置在第一散列块208之前,使得加密处理核心207的单个输入点是可编程变换块215。
在各种实施例中,可编程变换块215可以在启用变换的集成电路203的制造之后的时间被编程以由于其在集成电路203的数据路径上的位置而对以线速度流经其的数据一致地执行各种可能的数学变换中的任一个。
在一些实施例中,机制(可编程变换块215能够通过该机制接受并保持这样的编程)可以是经由非易失性只读存储器(NVRAM)类型,包括但不限于闪存存储器或其他类型的非易失性存储器。在各种实施例中,配置可编程变换块215的手段可以是经由一次性可编程(OTP)电路部件,包括但不限于微熔丝或其他类型的OTP电路部件。微熔丝通常用于集成电路制作的简单方面,例如在制造期间将制造信息写入到集成电路上、或补救在测试期间识别的故障存储器组。为了便于讨论,将参考包括微熔丝的可编程变换块215来讨论本公开的技术。
启用变换的集成电路203的各种实施例可以借助于配置密钥214来实现配置可编程变换块215。在各种实施例中,配置密钥214可以由通过配置接口204动作的用户201编码到可编程变换块215中。在这样的实施例中,本文所公开的技术设想了为了将配置密钥214编码到可编程变换块215中的目的而潜在地承担用户201的作用的几个不同方。这样的方可以包括例如:在工厂处由IC制造商;由一个或几个终端用户;或由以上的一些组合。
在用户201是单个方的一些实施例中,用户201可以提供配置密钥104,其定义什么变换将被应用于包括由可编程变换块215接收的数据的每个位。例如,在为256位系统设计可编程变换块215的情况下,用户201可以输入定义可编程变换块215将什么变换(如果有的话)应用于所接收的数据的所有256位的配置密钥214。因此,该方将具有对可编程变换块215能够被配置为使用256位密钥来执行的2^256个数学运算中的任一个进行编程的自由。
类似地,并且继续上面的256位示例,在用户201包括一方或多方的实施例中,可编程变换块215的配置可以由一个或多个用户201中的每个执行,每个用户贡献配置密钥214的一部分。这样的方案有时可以称为多密钥方案,并且得到的密钥有时可以被称为多部分密钥。在一些实施例中,一个或多个用户201中的每个可以配置可编程变换块215将什么变换(如果有的话)应用于它接收的数据的位的子集,而在其他实施例中,一个或多个用户中的每个可以贡献部分密钥,该部分密钥随后以不允许任何用户确定可编程变换块215将什么变换(如果有的话)应用于它接收的数据的任一个或多个特定位的方式被处理成密钥。
在本文所述的技术的各种实施例中,其中可编程变换块215放置在实施加密OWF(例如,在图示中实施标准加密算法的第二散列块210)的电路的至少一个块前面,可编程变换函数215和所涉及的加密算法的某些数学特性的交互作用的组合效果、特别是它们作为难以恢复(在这里术语“难”和“易”可以在计算复杂度理论特别是多项式时间理论的意义上被理解)的OWF的性质产生某些特定的结果。具体地,组合效果是,即使由可编程变换块215引入的轻微变化(例如,单一位变化)也将导致在由散列核心207计算的最终值中包含的位的大规模变换,其不容易被译解,不容易与噪声区分开,并且不容易由缺乏配置密钥214的完全的先验知识和可编程变换函数215的设计的特定方面的一方复制,但然而是完全一致的且易于由具有这样的知识、或者即使在缺乏他们的知识的同时对在计算中利用他们的手段的访问的一方(例如,拥有同一ASIC或并入本文所述的技术并被编程为其数据路径电路内的同一配置密钥214的另一ASIC的一方)复制并且因此可验证。
在一些实施例中,可编程变换块215可以被配置为使最终用户能够对各种变换方案进行编程,所述变换方案例如调换在某些特定位的输入和输出内的位置同时保持其他位不变的调换方案。在各种实施例中,可编程变换块215可以被配置为执行直接位反转变换方案,其中一些位被反转而其他位保持不变。
为了便于讨论,将参考直接位反转变换方案来讨论本公开的技术,其中256位配置密钥204借助于以下代码来确定什么变换将应用于由可编程变换块215接收的256位中的每个:在包含“0”值的256位配置密钥将以一种方式(例如,保持不变)被处理的位置处接收的位,而在256位配置密钥包含“1”值的位置处接收到的那些位将以不同的方式(例如,反转)被处理。
在由第二散列块210产生最终散列值之后,由图2中的评估器211和决策引擎212执行的评估过程类似于关于图1所述的过程。该过程中的第一步骤是,评估器211将确定由特定交易块首部产生的最终散列值是否满足有效性标准。
如果最终散列值不满足有效性标准(如在大多数情况下通常会是这种情况),则最终散列值和产生该最终散列值的交易块首部均将被丢弃。如果最终散列值确实满足有效性标准,则最终散列值和产生该最终散列值的交易块首部将被传递到决策引擎212。在接收到成功指示之后,决策引擎212可以随后将成功报告213b发给成功报告接收方213a。另外,并且也针对图1进行讨论,成功报告接收方213a可以或可以不与挖掘软件202a相同。
不同之处在于,可编程变换块215的包含物、其由用户随后使用某个配置密钥214随后编程的、以及得到的变换后的数据与第二散列核心210的交互作用可以引起最终散列值的变化,其由散列核心203针对由交易块首部成帧器205生成并传递到评估器211的一个或多于一个交易块首部计算。此外,并且如前所述,这样的变化具有某些独特和有用的数学特性。假设评估器211的任务是将从散列核心203接收的散列值与某些预定的有效性标准进行比较,并在此基础上评估散列值是通过还是未通过有效性测试,由此得出由评估器211接收到的散列值的变化可以导致评估器对接收到的散列值的有效性或非有效性做出的变化。
在各种实施例中,可能存在一个或几个空配置密钥214的值,如果将其编程到可编程变换块215中,则将使可编程变换块215不影响在穿过它的信息中的变化,并且因此使可编程变换块215的存在不会影响最终散列值的变化,该最终散列值是由加密处理核心207针对从交易块首部成帧器205接收的每个交易首部块计算并传递到评估器211。在一些实施例中,可以用与配置密钥的长度相同的长度的一串零表示空配置密钥,在某些实施例中,配置密钥在长度上可以为256位。
在并入一个或几个空密钥的各种实施例中,使用空密钥对可编程变换函数进行编程的整体效果使得不会改变被评估器认为有效的一组交易块首部散列,从而使来自加密处理核心207的输出变得与针对图1讨论的来自散列核心107的输出在功能上相同。也就是说,并入本文所述的技术并用空密钥编程的启用变换的集成电路将表现在产生与未并入本文所述的技术的集成电路相同的结果,并且因此适于在相同的工作证明系统的上下文内执行工作证明计算,包括但不限于比特币交易的加密网络交易验证(也称为比特币挖掘)。本文描述的技术的该方面具有商业意义,因为它使并入本公开中描述的技术的实施例的集成电路的使用能够对挖掘比特币的目的是有用的,以及对各种其他应用是有用的。
在这样的实施例中,以及在未并入空配置密钥的附图的其他实施例中,具有不同于空配置密钥的配置密钥214的可编程变换块215的编程将引起最终散列值的变化,所述最终散列值由加密散列核心207针对由交易块首部成帧器205产生的候选交易块首部中的每个计算并传递到评估器211。反过来,这将引起所有候选交易块首部的哪些子集被评估器211认为是有效的并因此进一步传送到决策引擎212的变化,决策引擎212然后以成功报告213b的形式在集成电路203的外部被传送。
此外,并且如上所述,由于可编程变换函数215与OWF的某些数学函数(例如,大多数标准现代加密散列函数)的交互作用,在加密散列函数的输入中的任何变化(包括单个数字)引起不容易与噪声区分开的、得到的散列值的大规模变化。
如上所述,在一些实施例中,可编程变换块215可以放置在第一散列块之前,使得加密处理核心的单个输入点是可编程变换块。这样的一个示例在图3中示出。现在参考图3,在该示例性布置中,在由散列块308、310应用任何散列操作之前,由可编程变换块315实现的变换函数应用于交易块首部。虽然位于图3的示例性实施例中的不同位置上,但是在数据路径内的可编程变换块315的位置仍然满足它放置在至少一个散列块之前(在这种情况下,它放置在第一散列块308和第二散列块310前面)的条件。因此,由图3所示的实施例在功能上与图2所示的实施例类似,并且经由分析技术提供相同的基本性质,所述的基本性质关于它产生的结果的特性以及关于它提供的保护以不被实现在可编程变换块315内的配置密钥314发现两者,例如如上所述。
在一些实施例中,单个集成电路可以并入多于一个的可编程变换块215。图4示出了这种示例性启用变换的集成电路400。在这种情况下,实施例被实施为向多于一个的用户提供对整个配置密钥编程的能力。
这样的实施例实施与级联密码和多签名方案共享一些特性但与这两者不同的过程。具体地,级联密码涉及密码的使用顺序应用,即以这样的方式对数据加密的过程:在以后的时间可以对该数据进行译解,也就是再次使该数据变得易读。如图4中所示,本文描述的技术的各种实施例并入级联的类似概念,即顺序地应用加密操作但是不涉及使用任何类型的密码。相反,它们涉及顺序应用变换和OWF(例如,加密散列过程)。OWF不同于密码以及其他方面,因为它们的定义特性是他们是不可译的而不是可译的。类似地,如图4中所示,本文描述的技术的各种实施例在它们的最终结果中是表示什么可以被认为是应用于数字文档的多个数字签名的一串字符。然而,任何类型的数字签名的定义特性是它们可以由不同于签名者的一方或持有签名者密钥的一方生效。这不是本文描述的技术的各种实施例的情况,在该上下文中实施例可以被认为是仅可以由签名者验证的签名。此外,多签名方案常常被设计成每个签名彼此不同,并且可以被单独地验证。再次,本文描述的技术的各种实施例不是这种情况,实施例被特别设计成使得没有一个原始签名者能够在其他签名者不存在的情况下使签名生效。
因此,本文描述的技术的各种实施例不同于级联密码、数字多签名方案和其他存在的加密技术。尽管由于其新颖性而缺乏公共名称,但是这样的系统可以被描述为多密钥级联变换的单向函数系统。
在一些实施例中,其中实现为在至少第二散列块410中的电路的加密散列算法可以是已证明的标准加密散列算法,包括但不限于:以其各种实施方式的SHA-2;以其各种实施方式的Keccak/SHA-3;以其各种实施方式的Skein;以其各种实施方式的以其各种实施方式的JH;等,或是非标准散列算法,尽管它们是非标准的,但仍然是难以反转的OWF(其中术语“难”在多项式时间理论的意义上被理解)。在这样的实施例中,如图4中所示,本文描述的技术使安全多密钥级联变换的单向函数系统的实施方式成为可能,如前所述。
在一些实施例中,第一和第二可编程变换块418、415可以由长度为256位的第一和第二配置密钥417、414来编程,而在其他实施例中,取决于实施方式的细节,一个或两个配置密钥可以具有不同的长度。
在也由图4示出的本文描述的技术的各种实施例中,可以被称为主要权威(primary authority)的第一方可以使用配置接口404来将可以被称为主要密钥的第一配置密钥417编程到第一变换块418中,这可以被称为主要变换。单独地,可以被称为次要权威的第二方可以使用配置接口404将可以被称为次要密钥的第二配置密钥414编程到第二可编程变换块415中,这可以被称为次要变换。
在也由图4示出的本文描述的技术的某些实施例中,主要权威和次要权威中的一个或两个可以由几个不同的方组成。在一些这样的实施例中,主要方作为整体可以将主要密钥编程为多部分密钥,而次要方作为整体可以将次要密钥编程为多部分密钥。在其他实施例中,主要方和次要方均可以将任一或两个密钥联合地配置为多部分密钥。在某些实施例中,由主要方、次要方、或两者编程的密钥可以是空密钥。在其他实施例中,第一和第二可编程变换块418、415可以由用户401通过配置接口404输入的单个配置密钥来编程。
在图4中未示出的本文描述的技术的其他实施例中,过程可以大体上类似,除了由主要权威使用的配置接口可以与由次要权威使用的配置接口不同以外。在一些这样的实施例中,可以以在集成电路的制造过程期间可访问但在得到的最终部分中不可访问的方式来创建由主要权威使用的配置接口,而可以以在制造过程器件以及在得到的最终部分中均可访问的方式构造由次要权威使用的配置接口。在本文描述的技术的其他实施例中,每个配置接口的相对可访问性或不可访问性可以被不同地构造。
在图4中也未示出的本文描述的技术的一些实施例中,该过程可以与图4中示出的过程大体上类似,除了设计可以并入多于两个的散列循环(hashing round)、或多于两个的可编程变换函数、或两者以外。
图5A示出了根据本文所公开的技术的实施例的在被编码之前的示例性可编程变换块515的配置。可编程变换块515包括定义由配置密钥514(在图5B中示出)表示的变换函数的几组可编程电路。在各种实施例中,可编程变换块515可以被配置为实现多个调换操作之一,由此输入数据的一个或多个位(例如1a1、1b1等)用输入数据的另一位调换以产生修改的输出数据(例如5a1、5b1等)。在其他实施例中,可编程变换块515可以被配置为实现多个直接位反转或位翻转操作之一,由此输入数据的一个或多个位翻转以产生修改的输出数据。
利用本文描述的直接位反转变换方案的各种实施例可以被实施以利用以下事实:256位二进制配置密钥提供简洁的手段使得能够访问由可编程变换函数215提供的完整密钥空间。也就是说,256位是使用户能够指定在256个不同的变换中的哪个将由可编程变换函数215对第一散列值209执行所须的最小长度。使用直接位反转变换方案也可以使最小数量的新电路元件的使用能够将变换函数体现为数据路径电路。这是重要的,因为变换函数被实现为数据路径电路的事实意味着放置在数据路径上的任何额外电路将在线速度下操作,并且导致启用变换的集成电路203作为整体的性能的整体下降。
直接位反转变换方案还可以通过简单地将256位配置密钥中的所有值设置为零来提供禁用可编程变换215的所有效果的直接手段。这样的密钥可以被称为空密钥。这样的一个结果是它简化了配置启用变换的集成电路203的过程,使得以与不并入可编程变换函数215的可比较的集成电路的方式不可区分的方式操作。其实际的结果是并入本文描述的技术的集成电路可以容易配置为以与标准比特币挖掘ASIC相同的方式进行操作,并且可以毫无困难地用于挖掘比特币(除了并且另外于能够以由不并入本文所述的技术的比特币挖掘ASIC无法复制的方式操作以外)。
为了便于讨论,将参考直接位反转配置来讨论图5B和图6。
在图5B中示出了可编程变换块的编码。示例性可编程变换块520被示为根据配置密钥514来编码。为了指示被实现在可编程变换块520内的配置密钥514,阴影框用于指示微熔丝被禁用(即,阻止数据流经禁用的微熔丝)。例如,在所示的示例中,当微熔丝3a2被禁用时,输入位1a2流经未改变的可编程变换块520。当微熔丝2b2被禁用时,输入位1b2在它流经可编程变换块520时由位翻转器4b2反转。
图6示出了根据本文所公开的技术的实施例的示例性函数编码过程。阶段1表示在未编码状态中的可编程变换块15,类似于图5A的可编程变换块515。如图所示,为六位消息配置可编程变换块15。在其他实施例中,可以为任何长度(例如,256位的长度)的输入串配置可编程变换块15。
在阶段2处,对可编程变换块15进行编码,以体现由用户提供的配置密钥14。如图所示,配置密钥14包括串“011000”。如可编程变换电路15内的阴影框所示,根据配置密钥14禁用相应的微熔丝。在阶段3处,可以在对可编程变换块15进行编码之后禁用锁定熔丝16,从而保护配置密钥14不被发现。锁定熔丝16可以设置在编程电路上,编程变换块15可以由用户通过该编程电路来编程。通过禁用锁定熔丝16,包括编程变换块15的加密处理核心返回到具有单个输入点和单个输出点,由此提供了上面关于图2详细讨论的保护的类型。
本发明人已经意识到,除其他之外,将上述单独的变换块和散列块合并为组合的变换/散列块可以提供若干优点。与单独的变换块和散列块所需要的功耗相比,用于这样的实施方式的集成电路可以需要更少的功耗。通过优先使用采用特定组合的变换/散列块实施方式的配置密钥314,也可以增加给定的散列算法实施方式的效率和速度。
广义上讲,单向函数将任意长度的输入消息压缩为具有固定长度的结果(通常称为“散列”或“消息摘要”)。对于加密散列函数,在计算上容易找到消息的散列,但是在仅给定散列的情况下在计算上难以找到消息。此外,给定一个消息,应该难以找到生成与第一消息的散列相同甚至类似的散列的另一个消息。也就是说,消息内容中的任何变化应该在散列中产生急剧变化。最后,散列长度应该足够大以防止攻击找到均生成相同的散列的两个不同的消息,因此避免了冲突时可能的恶意资本化。
存在许多实施散列函数的方式,其中最典型地涉及预处理阶段、压缩阶段、和输出变换阶段。大多数散列函数被设计为迭代过程,该迭代过程通过处理该输入的固定大小的块来对任意长度的输入进行散列化。然后,每个块可以用作内部固定大小的压缩函数F的输入,所述压缩函数F根据先前的中间结果和下一个输入块来计算新的中间结果。在一些情况下,使用相同的压缩函数使得硬件或软件实施方式可以利用其通用性。在其他情况下,可以在不同的处理迭代或循环中使用不同的压缩函数。
图7示出了Merkle-散列函数模型700的示例,其后是最普及的散列函数并且被设想为本文所公开的技术的部分。在此模型中,在必要时通过附加额外的位通过将输入消息填充为一定大小来对其进行预处理,并且然后将该输入消息分为整数个块或长度均匀的部分。然后,在此示例中,所述部分均使用压缩函数F被顺序地处理。
因此,从初始散列开始,F从先前的中间散列值和新的消息部分重复地生成新的中间散列值。最终压缩函数的输出是输入消息的散列。此方案的安全性取决于压缩函数F的安全性。通常使用诸如AND、OR、和XOR(异-OR)的逻辑运算来实施压缩函数。在给定的处理循环内,也可以对位进行多次旋转或移位(例如在寄存器中)以帮助进一步混杂中间计算的结果。
不管所使用的特定散列函数,可以根据先前描述的变换函数来修改散列函数中的中间状态变量。换句话说,不是使用变换函数来产生将被传递到散列函数中的输入数据的变换修改的版本,变换函数可以替代地直接变更散列函数内部状态变量。从这个意义上讲,在这样的实施例中,由于有效地合并了它们的交互作用,所以不存在产生输出的单独的变换块和对该输出进行操作的散列块。
图8示出了根据本文所公开的技术的实施例的组合的变换/散列块800的示例。对于常规散列块所使用以处理消息的一部分的给定示例性的一组逻辑函数,变换函数的位可以变更散列块的内部状态变量。因此,先前描述的配置密钥定义了自定义散列函数本身的操作而不是馈入到散列函数中的输入的变换函数。
在此示例中,包括散列块的部分的逻辑门至少处理消息的进入部分802(六位宽,并且此处等于“110101”),以产生散列804(也为六位宽,并且此处等于“111010”)。所示的示例不表示用于任何特定已知的散列函数的电路,并且为清楚起见比典型散列函数简单得多。虽然此处未示出,但是许多散列函数还执行位移位并也利用异-OR运算。
消息的进入部分802的每个位可以通过各种逻辑门来处理,使得散列804的每个位是进入部分802的所有位的完全混合的、混杂的、和重新组合的函数。进入部分802的任何位的任何变化可能引起散列804的重大变化。可以非常容易地计算散列804,但是如果仅给出散列804,则对进入部分802的计算可能会很难。
此外,可以根据已经基于配置密钥编程的变换函数的单独位来修改组合的变换/散列块800中的中间状态变量。在此示例中,来自变换函数T0到T5的六位均应用于各种中间状态。电路设计者可以选择修改的特定中间状态变量,以用于最大的效率和安全性。为了简单起见,这里使用的变换函数可以引起特定中间状态变量的位反转,虽然在其他实施例中,变换函数可以替代地引起两个特定中间状态变量之间的位调换或交换。在给定的实施方式中使用两种类型的变换函数可以证明是有利的。
图8中所示的十三个示例性中间状态变量值是那些在没有应用变换函数的情况下出现的值,或者是那些在变换函数的特定位操作碰巧没有净影响时出现的值。普通技术人员将认识到,当变换函数位引起给定的中间状态变量变化时,该变化将通过组合的变换/散列块802传播以变更得到的散列804。而且,虽然变换函数的特定位的影响被示为单独地和在外部应用,但是实际上,变换函数操作(例如,位反转或位调换)可以在数据路径电路中直接实施,如先前所述。
图9示出了根据本文所公开的技术的实施例的具有组合的变换/散列块的示例性启用变换的集成电路方法900。该方法可以以软件的形式实施,例如作为储存在计算机可读介质中的程序指令来实施,并且可以基本上按照先前所述的加密电路操作来操作。在902处,该方法可以通过配置接口从用户接收配置密钥。在904处,该方法可以对变换函数进行编程以基于配置密钥来生成一串变换位。在906处,该方法可以对组合的变换/散列块至少应用该串变换位的子集以配置散列函数的操作。换句话说,配置密钥间接地控制散列函数本身,而不是仅由散列函数接收的输入数据。在908处,该方法可以将输入消息的至少一部分提供给将进行变换和散列化的组合的变换/散列块。在910处,该方法可以针对输入消息的其它部分重复描述用于输入消息的一部分的处理。在912处,该方法可以输出并储存输入消息的变换后的散列。
该方法(以及电路)可以并行实施,使得实质上可以同时处理若干消息。可以串联使用多个组合的变换/散列块,使得可以生成消息的变换后的散列中的变换后的散列。在这样的实施例中可以使用不同的变换函数,并且每个变换函数可以由不同的配置密钥来确定。在这样的实施例中也可以使用不同的散列函数。
在本文档中,明确的参考仅由某些加密散列算法、特别是安全散列算法系列(SHA-2)的第二迭代和特别在256位版本内构成。然而,本文描述的技术完全适用于其他加密散列算法,包括但不限于:以其各种实施方式的SHA-2;以其各种实施方式的Keccak/SHA-3;以其各种实施方式的Skein;以其各种实施方式的以其各种实施方式的JH等。
如本文所使用的,术语“集合”可以指元件的任何集合,无论是有限的还是无限的。术语“子集”可以指元件的任何集合,其中元件取自父集合;子集可以是整个父集合。术语“真子集”指包含比父集合少的元件的子集。术语“序列”可以指有序集合或子集。术语“小于”、“小于或等于”、“大于”、和“大于或等于”在本文中可以用于描述有序的集合或序列的各种物体或成员之间的关系;这些术语将被理解为指适用于被排序的物体的任何适当的排序关系。
术语“工具”可用于指被配置为执行所列举的功能的任何装置。例如,工具可以包括一个或多个部件的集合,并且还可以由硬件、软件或其组合组成。因此,例如,工具可以是一个或多个软件部件、硬件部件、软件/硬件部件、或其任何组合或置换的集合。作为另一个示例,工具可以是在其上运行软件或在其中实施硬件的计算设备或其他器具。
如本文中所使用的,术语“部件”可以描述可以根据本文中所公开的技术的一个或多个实施例执行的给定的功能单元。如本文所使用的,部件可以利用任何形式的硬件、软件、或其组合来实施。例如,可以实施一个或多个处理器、控制器、ASIC、PLA、PAL、CPLD、FPGA、逻辑部件、软件例程或其他机构来构成部件。在实施方式中,本文描述的各种部件可以被实施为分立的部件,或所描述的功能或特征可以在一个或多个部件之中部分地或全部地被共享。换句话说,对于本领域的普通技术人员来说,在阅读本说明书之后将显而易见的是,本文描述的各种特征和功能可以在任何给定的应用中实施,并且可以以各种组合和置换的形式在一个或多个单独的或共享的部件中实施。即使功能的各种特征或元件可以被单独地描述或要求保护为单独的部件,本领域中的普通技术人员将理解,这些特征和功能可以在一个或多个通用软件和硬件元件之中被共享,并且这种描述不应要求或暗示使用单独的硬件或软件部件来实施这样的特征或功能。
在使用软件全部地或部分地实施本技术的一个或多个部件的情况下,在一个实施例中,可以将这些软件元件实施以与能够执行关于其描述的功能的计算或处理部件一起操作。在图10中示出一个这样的示例性计算部件。依照示例性计算部件1000描述了各种实施例。在阅读了该描述之后,对于相关领域的技术人员来说,如何使用其他计算部件或架构来实施该技术将变得显而易见。
现在参考图10,计算部件1000可以表示例如,存在于下列各项内的计算或处理能力:台式、膝上型和笔记本计算机;手持式计算设备(PDA、智能电话、手机、掌上电脑等);大型机、超级计算机、工作站或服务器;或对于给定的应用或环境可能是理想的或适当的任何其他类型的专用或通用计算设备。计算部件1000还可以表示嵌入在给定设备内或以其他方式可用于给定设备的计算能力。例如,计算部件可以存在于其他电子设备中,所述设备例如,数码相机、导航系统、蜂窝电话、便携式计算设备、调制解调器、路由器、WAP、终端和可能包括某种形式的处理能力的其他电子设备。
计算部件1000可以包括例如一个或多个处理器、控制器、控制部件、或其他处理设备,例如处理器1004。处理器1004可以使用通用或专用处理引擎来实施,所述处理引擎例如,微处理器、控制器、或其他控制逻辑。在所示的示例中,处理器1004连接到总线1002,虽然任何通信介质可以用于促进与计算部件1000的其他部件的交互作用或与在外部进行通信。
计算部件1000还可以包括一个或多个存储器部件,其在本文中简称为主存储器1008。例如,优选地,随机存取存储器(RAM)或其他动态存储器可以用于储存将由处理器1004执行的信息和指令。在执行将由处理器1004执行的指令期间,主存储器1008还可以用于储存临时变量或其他中间信息。计算部件1000可以同样包括耦合到总线1002的只读存储器(“ROM”)或其他静态储存设备以用于储存用于处理器1004的静态信息和指令。
计算部件1000还可以包括一个或多个各种形式的信息储存机构1010,信息储存机构1010可以包括例如介质驱动器1012和储存单元接口1020。介质驱动器1012可以包括驱动器或其他机构以支持固定或可移动储存介质1014。例如,可以提供硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、CD或DVD驱动器(R或RW)或其他可移动或固定介质驱动器。因此,储存介质1014可以包括例如硬盘、软盘、磁带、磁带盒、光盘、CD或DVD、或由介质驱动器1012读取、写入或访问的其他固定或可移动介质。如这些示例所示,储存介质1014可以包括其中储存有计算机软件或数据的计算机可用储存介质。
在替代性实施例中,信息储存机构1010可以包括用于允许将计算机程序或其他指令或数据加载到计算部件1000中的其他类似的工具。这些工具可以包括例如固定或可移动储存单元1022和接口1020。这样的储存单元1022和接口1020的示例可以包括程序盒和盒接口、可移动存储器(例如,闪存存储器或其他可移动存储器部件)和存储器插槽、PCMCIA插槽和卡、以及允许软件和数据从储存单元1022传输到计算部件1000的其他固定或可移动储存单元1022和接口1020。
计算部件1000还可以包括通信接口1024。通信接口1024可以用于允许软件和数据在计算部件1000和外部设备之间传输。通信接口1024的示例可以包括调制解调器或软调制解调器、网络接口(例如以太网、网络接口卡、WiMedia、IEEE 802.XX或其他接口)、通信端口(例如USB端口、IR端口、RS232端口接口、或其他端口)、或其他通信接口。经由通信接口1024传输的软件和数据通常可以承载在可以是电子的、电磁的(包括光学的)信号上、或能够由给定的通信接口1024交换的其他信号上。这些信号可以经由信道1028被提供到通信接口1024。信道1028可以承载信号,并且可以使用有线或无线通信介质来实施。信道的一些示例可以包括电话线、蜂窝链路、RF链路、光学链路、网络接口、局域网或广域网、以及其他有线或无线通信信道。
在本文档中,术语“计算机程序介质”和“计算机可用介质”通常用于指诸如存储器1008、储存单元1020、介质1014、和信道1028的介质。这些和其他各种形式的计算机程序介质或计算机可用介质可以涉及将一个或多个指令的一个或多个序列传送到处理设备以用于执行。被实现在介质上的这样的指令通常被称为“计算机程序代码”或“计算机程序产品”(可以以计算机程序或其他分组的形式被分组)。当被执行时,这样的指令可以使计算部件1000能够执行入如本文所讨论的所公开的技术的特征或功能。
尽管上面已经描述了所公开的技术的各种实施例,但是应当理解,它们仅以示例而不是限制性的方式呈现。同样,各种图可以描绘用于所公开的技术的示例性架构或其他配置,其被完成以帮助理解可以包括在所公开的技术中的特征和功能。所公开的技术不限于所示出的示例性架构或配置,而是可以使用各种替代性架构和配置来实施期望的特征。实际上,可以如何实施替代性功能、逻辑或物理划分和配置以实施本文所公开的技术的期望的特征对于本领域中的技术人员将是显而易见的。另外,可以将除了本文中所描绘的名称以外的许多不同的构成部件名称应用于各种分区。另外,关于流程图、操作描述和方法权利要求,除非上下文另外指出,否则在本文所呈现的步骤的顺序不应要求实施各种实施例以相同的顺序执行所列举的功能。
虽然上面依照各种示例性实施例和实施方式描述了所公开的技术,但是应当理解,在一个或多个单独的实施例中描述的各种特征、方面和功能的适用性不限于被用来描述的特定的实施例,但是替代地可以将它们单独地或以各种组合的方式应用于所公开的技术的一个或多个其他实施例,不管是否描述了这些实施例或者这样的特征是否作为所描述的实施例的一部分呈现。因此,本文所公开的技术的广度和范围不应该受到任何上述的示例性实施例的限制。
除非另有明确说明,否则本文档中使用的术语和短语及其变形应该被解释为开放式的,而不是限制性的。作为前述内容的示例:术语“包括”应该被理解为意指“包括但不限于”等;术语“示例”用于提供所讨论的项目的示例性实例,而不是其详尽的或限制性的列表;术语“一”应该被理解为意指“至少一个”、“一个或多个”等;诸如“常规”、“传统”、“正常”、“标准”、“已知”的形容词和类似含义的术语,不应该解释为将所描述的项目限制到给定的时间段或给定时间可用的项目,但是替代地应被理解为包括可以在现在或未来任何时间可用或已知的常规、传统、正常、或标准技术。同样地,在本文档涉及对本领域中的普通技术人员显而易见或已知的技术的情况下,这样的技术涵盖现在或在未来的任何时间对于技术人员显而易见或已知的技术。
在一些实例中,诸如“一个或多个”、“至少”、“但不限于”或其他相似短语的扩展单词和短语的存在不应被理解为意味着在可能没有这种扩展短语的实例中意指或要求更窄的情况。术语“部件”的使用并不暗示描述或要求保护为部件的部分的部件或功能都在通用封装中被配置。实际上,部件的任何或所有各种部件(无论是控制逻辑还是其他部件)可以组合在单个封装中或被单独地维持,并且可以进一步分布在多个组或封装中或跨多个位置。
另外,根据示例性块图、流程图和其他图示,描述了本文阐述的各种实施例。在阅读本文档之后,对于本领域中的普通技术人员将变得显而易见的是,可以在不限于所示出的示例的情况下实施所示出的实施例及其各种替代物。例如,块图及其随附的描述不应该被解释为要求特定的架构或配置。
提供本公开的摘要以允许读者快速地确定技术公开的性质。提交本文档时应理解为摘要不会用于解释或限制权利要求的范围或含义。另外,在前述的具体实施方式中,可以看出,出于简化本公开的目的,在单个实施例中将各种特征分组在一起。本公开的方法不应被解释为反映了以下意图:所要求保护的实施例要求比每个权利要求中明确列举的更多的特征。相反,如所附权利要求所反映的,发明主题在于少于单个公开的实施例的所有特征。因此,下面的权利要求由此被并入具体实施方式中,其中每个权利要求独立地作为单独的实施例。
Claims (20)
1.一种加密集成电路,包括:
组合的变换/散列块,所述组合的变换/散列块包括一组电子电路,所述一组电子电路在所述集成电路的制造之后是可编程的以对输入数据执行变换操作和散列操作,从而产生并且储存输出数据;以及
编程电路,所述编程电路将所述组合的变换/散列块和配置接口通信地耦合;
其中,所述组合的变换/散列块被配置为基于从用户接收的配置密钥来通过所述配置接口进行编程,
并且其中,所述组合的变换/散列块根据所述变换操作变更所述散列操作的内部状态变量值。
2.根据权利要求1所述的加密集成电路,其中,所述变换操作包括位反转和位调换中的至少一个。
4.根据权利要求1所述的加密集成电路,其中,所述组合的变换/散列块被配置作为能够以与其他数据路径电路相同的速度进行操作的数据路径电路。
5.根据权利要求1所述的加密集成电路,其中,在包括区块链系统的加密工作证明系统中实施所述加密集成电路。
6.根据权利要求1所述的加密集成电路,还包括串联连接的多个组合的变换/散列块。
7.根据权利要求1所述的加密集成电路,其中,所述配置密钥被实现为所述加密集成电路的至少一个独立的加密电路中的电路。
8.一种加密方法,包括:
从用户接收配置密钥;
基于所述配置密钥对变换函数进行编程;
对输入数据执行散列操作,所述散列操作包括基于所编程的变换函数变更所述散列操作的内部状态变量值;以及
输出启用变换的散列操作的结果。
9.根据权利要求8所述的加密方法,其中,所述变更包括位反转和位调换中的至少一个。
11.根据权利要求8所述的加密方法,其中,所述方法是包括区块链方法的加密工作证明方法。
12.根据权利要求8所述的加密方法,还包括按序列多次执行所述方法。
13.根据权利要求8所述的加密方法,还包括针对若干输入数据集合并行执行所述方法。
14.根据权利要求8所述的加密方法,还包括针对所述方法的每次执行使用单独的配置密钥。
15.一种非暂态计算机可读储存介质,具有嵌入在其中的指令的集合,所述指令的集合在由计算机的一个或多个处理器执行时使所述计算机执行加密操作,所述加密操作包括:
从用户接收配置密钥;
基于所述配置密钥对变换函数进行编程;
对输入数据执行散列操作,所述散列操作包括基于所编程的变换函数变更所述散列操作的内部状态变量值;以及
输出启用变换的散列操作的结果。
16.根据权利要求15所述的介质,其中,所述变更包括位反转和位调换中的至少一个。
17.根据权利要求15所述的介质,其中,所述加密操作实施包括区块链方法的加密工作证明方法。
18.根据权利要求15所述的介质,还包括用于按序列多次执行所述加密操作的指令。
19.根据权利要求15所述的介质,还包括用于针对若干输入数据集合并行执行所述加密操作的指令。
20.根据权利要求15所述的介质,还包括用于针对所述加密操作的每次执行使用单独的配置密钥的指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862645609P | 2018-03-20 | 2018-03-20 | |
US62/645,609 | 2018-03-20 | ||
US16/139,332 | 2018-09-24 | ||
US16/139,332 US10372943B1 (en) | 2018-03-20 | 2018-09-24 | Cryptographic ASIC with combined transformation and one-way functions |
PCT/US2019/022735 WO2019182965A2 (en) | 2018-03-20 | 2019-03-18 | Cryptographic asic with combined functions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112136134A true CN112136134A (zh) | 2020-12-25 |
CN112136134B CN112136134B (zh) | 2022-07-22 |
Family
ID=67477469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980033363.6A Active CN112136134B (zh) | 2018-03-20 | 2019-03-18 | 具有组合的函数的加密asic |
Country Status (5)
Country | Link |
---|---|
US (2) | US10372943B1 (zh) |
KR (1) | KR102416893B1 (zh) |
CN (1) | CN112136134B (zh) |
DE (1) | DE112019001438T5 (zh) |
WO (1) | WO2019182965A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11093654B2 (en) | 2018-04-25 | 2021-08-17 | Blockchain ASICs Inc. | Cryptographic ASIC with self-verifying unique internal identifier |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10262164B2 (en) | 2016-01-15 | 2019-04-16 | Blockchain Asics Llc | Cryptographic ASIC including circuitry-encoded transformation function |
US10372943B1 (en) | 2018-03-20 | 2019-08-06 | Blockchain Asics Llc | Cryptographic ASIC with combined transformation and one-way functions |
US20200153605A1 (en) * | 2018-11-13 | 2020-05-14 | Accelor Ltd. | Systems and methods for pre-executing transaction validation for blockchain applications |
JP2022016089A (ja) * | 2020-07-10 | 2022-01-21 | 富士通株式会社 | 生成プログラム、生成方法、および生成装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106415530A (zh) * | 2013-11-19 | 2017-02-15 | 日出科技集团有限责任公司 | 区块挖掘方法和装置 |
US20170206382A1 (en) * | 2016-01-15 | 2017-07-20 | Blockchain Asics Llc | Cryptographic asic including circuitry-encoded transformation function |
Family Cites Families (185)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0812537B2 (ja) | 1993-03-11 | 1996-02-07 | 日本電気株式会社 | 暗号化装置 |
US5774552A (en) | 1995-12-13 | 1998-06-30 | Ncr Corporation | Method and apparatus for retrieving X.509 certificates from an X.500 directory |
US6581162B1 (en) | 1996-12-31 | 2003-06-17 | Compaq Information Technologies Group, L.P. | Method for securely creating, storing and using encryption keys in a computer system |
JP3988172B2 (ja) | 1997-04-23 | 2007-10-10 | ソニー株式会社 | 情報処理装置および方法、並びに記録媒体 |
US6708273B1 (en) | 1997-09-16 | 2004-03-16 | Safenet, Inc. | Apparatus and method for implementing IPSEC transforms within an integrated circuit |
US6307936B1 (en) | 1997-09-16 | 2001-10-23 | Safenet, Inc. | Cryptographic key management scheme |
US6704871B1 (en) | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US7373517B1 (en) | 1999-08-19 | 2008-05-13 | Visto Corporation | System and method for encrypting and decrypting files |
US6763465B1 (en) | 1999-11-23 | 2004-07-13 | International Business Machines Corporation | Method of ensuring that the PC is not used to make unauthorized and surreptitious telephone calls |
SE522531C2 (sv) | 1999-11-24 | 2004-02-17 | Micronic Laser Systems Ab | Metod och anordning för märkning av halvledare |
EP1132873A1 (en) | 2000-03-07 | 2001-09-12 | THOMSON multimedia | Electronic wallet system |
US7177421B2 (en) | 2000-04-13 | 2007-02-13 | Broadcom Corporation | Authentication engine architecture and method |
US7003107B2 (en) | 2000-05-23 | 2006-02-21 | Mainstream Encryption | Hybrid stream cipher |
US7558965B2 (en) | 2000-08-04 | 2009-07-07 | First Data Corporation | Entity authentication in electronic communications by providing verification status of device |
US20020147918A1 (en) | 2001-04-05 | 2002-10-10 | Osthoff Harro R. | System and method for securing information in memory |
US20060291650A1 (en) | 2001-05-22 | 2006-12-28 | Viswanath Ananth | State-varying hybrid stream cipher |
US20020184512A1 (en) | 2001-05-31 | 2002-12-05 | Cardoso Augusto C. | Method and apparatus for supporting remote configuration to facilitate subscriber management |
GB0114317D0 (en) | 2001-06-13 | 2001-08-01 | Kean Thomas A | Method of protecting intellectual property cores on field programmable gate array |
US7134041B2 (en) | 2001-09-20 | 2006-11-07 | Evault, Inc. | Systems and methods for data backup over a network |
US7234021B1 (en) | 2001-10-05 | 2007-06-19 | Emc Corporation | Methods and apparatus for accessing data elements using improved hashing techniques |
US7840803B2 (en) | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
US7483945B2 (en) | 2002-04-19 | 2009-01-27 | Akamai Technologies, Inc. | Method of, and system for, webcasting with just-in-time resource provisioning, automated telephone signal acquisition and streaming, and fully-automated event archival |
JP4326189B2 (ja) | 2002-06-10 | 2009-09-02 | 健 坂村 | 自律型icカード及び通信システム |
SG105005A1 (en) | 2002-06-12 | 2004-07-30 | Contraves Ag | Device for firearms and firearm |
US7469338B2 (en) | 2002-07-29 | 2008-12-23 | Broadcom Corporation | System and method for cryptographic control of system configurations |
KR100723399B1 (ko) | 2002-08-06 | 2007-05-30 | 삼성전자주식회사 | 비스무트 티타늄 실리콘 산화물, 비스무트 티타늄 실리콘산화물 박막 및 그 제조방법 |
US6912435B2 (en) | 2002-08-28 | 2005-06-28 | Inficon Lt Inc. | Methods and systems for controlling reticle-induced errors |
US7724907B2 (en) | 2002-11-05 | 2010-05-25 | Sony Corporation | Mechanism for protecting the transfer of digital content |
US7191341B2 (en) | 2002-12-18 | 2007-03-13 | Broadcom Corporation | Methods and apparatus for ordering data in a cryptography accelerator |
KR100720602B1 (ko) * | 2003-09-26 | 2007-05-21 | 니뽄 덴신 덴와 가부시키가이샤 | 태그 프라이버시 보호 방법, 태그 장치, 백엔드 장치, 갱신 장치, 갱신 의뢰 장치, 그들 프로그램 및 이들 프로그램을 격납한 기록 매체 |
US7398399B2 (en) | 2003-12-12 | 2008-07-08 | International Business Machines Corporation | Apparatus, methods and computer programs for controlling performance of operations within a data processing system or network |
US7644278B2 (en) | 2003-12-31 | 2010-01-05 | International Business Machines Corporation | Method for securely creating an endorsement certificate in an insecure environment |
US7472369B1 (en) | 2004-06-03 | 2008-12-30 | Altera Corporation | Embedding identification information on programmable devices |
US20060041510A1 (en) | 2004-08-19 | 2006-02-23 | Securemedia International | Method for a secure system of content distribution for DVD applications |
US20070093234A1 (en) | 2004-08-20 | 2007-04-26 | Willis John A | Identify theft protection and notification system |
US20060059368A1 (en) | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | System and method for processing by distinct entities securely configurable circuit chips |
US20060072748A1 (en) | 2004-10-01 | 2006-04-06 | Mark Buer | CMOS-based stateless hardware security module |
US8667580B2 (en) | 2004-11-15 | 2014-03-04 | Intel Corporation | Secure boot scheme from external memory using internal memory |
US20060182283A1 (en) | 2005-02-14 | 2006-08-17 | Tricipher, Inc. | Architecture for asymmetric crypto-key storage |
US7725738B1 (en) | 2005-01-25 | 2010-05-25 | Altera Corporation | FPGA configuration bitstream protection using multiple keys |
US7818584B1 (en) | 2005-01-25 | 2010-10-19 | Altera Corporation | One-time programmable memories for key storage |
US7606362B1 (en) | 2005-01-25 | 2009-10-20 | Altera Corporation | FPGA configuration bitstream encryption using modified key |
KR100666328B1 (ko) | 2005-02-11 | 2007-01-09 | 삼성전자주식회사 | 온 칩 메모리를 이용한 기밀 정보 보안 장치 및 보안 방법 |
JP2006260614A (ja) | 2005-03-15 | 2006-09-28 | Sony Corp | ディスク製造方法、データ記録装置、情報記録媒体、情報処理装置および方法、並びにコンピュータ・プログラム |
JP2006295872A (ja) | 2005-03-18 | 2006-10-26 | Matsushita Electric Ind Co Ltd | 機器固有鍵の生成方法、これを用いた機密情報処理機能を備えた機密情報lsi、これを搭載したホスト機器、これに用いられる認証機能付き記録媒体、および認証機能を備えた記録媒体付き携帯端末 |
US9171187B2 (en) | 2005-05-13 | 2015-10-27 | Nokia Technologies Oy | Implementation of an integrity-protected secure storage |
US7533905B2 (en) | 2005-06-02 | 2009-05-19 | Hewlett-Packard Development Company, L.P. | Anti-counterfeiting system and method |
US20070005963A1 (en) | 2005-06-29 | 2007-01-04 | Intel Corporation | Secured one time access code |
US8132005B2 (en) | 2005-07-07 | 2012-03-06 | Nokia Corporation | Establishment of a trusted relationship between unknown communication parties |
EP1748343A1 (en) | 2005-07-29 | 2007-01-31 | STMicroelectronics Limited | Circuit personalisation |
US20070090920A1 (en) | 2005-10-22 | 2007-04-26 | Canter James M | Apparatus and Method for Controlling Access to Remotely Located Equipment |
US20070101156A1 (en) | 2005-10-31 | 2007-05-03 | Manuel Novoa | Methods and systems for associating an embedded security chip with a computer |
US7389426B2 (en) | 2005-11-29 | 2008-06-17 | Research In Motion Limited | Mobile software terminal identifier |
US20070208918A1 (en) | 2006-03-01 | 2007-09-06 | Kenneth Harbin | Method and apparatus for providing virtual machine backup |
DE602006005220D1 (de) | 2006-03-06 | 2009-04-02 | St Microelectronics Res & Dev | Schaltungssicherheit |
US7894602B2 (en) | 2006-03-31 | 2011-02-22 | Sap Ag | System and method for generating pseudo-random numbers |
US8989387B2 (en) | 2006-03-31 | 2015-03-24 | International Business Machines Corporation | Using identifier tags and authenticity certificates for detecting counterfeited or stolen brand objects |
CN101416246B (zh) | 2006-03-31 | 2011-04-20 | 国际商业机器公司 | 用于检测伪造的或者盗用的品牌物品的方法和装置 |
US20070245159A1 (en) | 2006-04-18 | 2007-10-18 | Oracle International Corporation | Hash function strengthening |
US20070255966A1 (en) | 2006-05-01 | 2007-11-01 | Vincenzo Condorelli | Cryptographic circuit with voltage-based tamper detection and response circuitry |
US9489318B2 (en) | 2006-06-19 | 2016-11-08 | Broadcom Corporation | Method and system for accessing protected memory |
US7675313B1 (en) | 2006-08-03 | 2010-03-09 | Lattice Semiconductor Corporation | Methods and systems for storing a security key using programmable fuses |
US7971017B1 (en) | 2006-08-21 | 2011-06-28 | Rockwell Automation Technologies, Inc. | Memory card with embedded identifier |
JP5001123B2 (ja) | 2006-12-07 | 2012-08-15 | パナソニック株式会社 | 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体 |
US20080148001A1 (en) | 2006-12-14 | 2008-06-19 | Telefonaktiebolaget L M Ericsson (Publ) | Virtual Secure On-Chip One Time Programming |
US8046571B1 (en) | 2006-12-18 | 2011-10-25 | Marvell International Ltd. | System-on-a-chip (SoC) security using one-time programmable memories |
JP5073312B2 (ja) | 2007-02-16 | 2012-11-14 | 株式会社日立製作所 | Icタグシステム |
US8769637B2 (en) | 2007-03-23 | 2014-07-01 | Sap Ag | Iterated password hash systems and methods for preserving password entropy |
US8065515B2 (en) | 2007-04-23 | 2011-11-22 | Cisco Technology, Inc. | Autoconfigured prefix delegation based on distributed hash |
US20090024784A1 (en) | 2007-07-20 | 2009-01-22 | Wang Liang-Yun | Method for writing data into storage on chip and system thereof |
US9158957B2 (en) | 2007-09-07 | 2015-10-13 | Apple Inc. | Finger sensing apparatus using hybrid matching and associated methods |
US8782396B2 (en) | 2007-09-19 | 2014-07-15 | Verayo, Inc. | Authentication with physical unclonable functions |
US8402241B2 (en) | 2007-10-02 | 2013-03-19 | Advanced Micro Devices, Inc. | Method and apparatus to control access to device enable features |
WO2009057641A1 (ja) | 2007-10-30 | 2009-05-07 | Kyocera Corporation | 情報処理装置 |
US9866370B2 (en) | 2007-12-05 | 2018-01-09 | Itt Manufacturing Enterprises, Llc | Configurable ASIC-embedded cryptographic processing engine |
US7890917B1 (en) | 2008-01-14 | 2011-02-15 | Xilinx, Inc. | Method and apparatus for providing secure intellectual property cores for a programmable logic device |
US20090202068A1 (en) | 2008-02-07 | 2009-08-13 | Amjad Qureshi | Media security through hardware-resident proprietary key generation |
US8150039B2 (en) | 2008-04-15 | 2012-04-03 | Apple Inc. | Single security model in booting a computing device |
US20090259855A1 (en) | 2008-04-15 | 2009-10-15 | Apple Inc. | Code Image Personalization For A Computing Device |
US8209762B2 (en) | 2008-06-24 | 2012-06-26 | Ricoh Company, Ltd. | Approach for printing locked print data using user and print data authentication |
US8726364B2 (en) | 2008-06-30 | 2014-05-13 | Intel Corporation | Authentication and access protection of computer boot modules in run-time environments |
US8332931B1 (en) | 2008-09-04 | 2012-12-11 | Marvell International Ltd. | Processing commands according to authorization |
US7715247B2 (en) | 2008-09-06 | 2010-05-11 | Juhan Kim | One-time programmable read-only memory with a time-domain sensing scheme |
EP2350911B1 (en) | 2008-09-30 | 2014-08-27 | Stepover GmbH | Method and device for electronically capturing a handwritten signature and safeguarding biometric data |
US20100088752A1 (en) | 2008-10-03 | 2010-04-08 | Vikram Nagulakonda | Identifier Binding for Automated Web Processing |
TWI498827B (zh) | 2008-11-21 | 2015-09-01 | Verayo Inc | 非連網射頻辨識裝置物理不可複製功能之鑑認技術 |
US8442218B2 (en) | 2009-02-27 | 2013-05-14 | Red Hat, Inc. | Method and apparatus for compound hashing via iteration |
JP2010252305A (ja) | 2009-03-25 | 2010-11-04 | Renesas Electronics Corp | 半導体集積回路及びその制御方法 |
US8347096B2 (en) | 2009-07-10 | 2013-01-01 | Vasco Data Security, Inc. | Authentication token with incremental key establishment capacity |
US8448009B2 (en) | 2009-08-17 | 2013-05-21 | Sandisk Il Ltd. | Method and memory device for generating a time estimate |
US8644499B2 (en) | 2009-09-14 | 2014-02-04 | Broadcom Corporation | Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities |
US20110119293A1 (en) | 2009-10-21 | 2011-05-19 | Randy Gilbert Taylor | Method And System For Reverse Pattern Recognition Matching |
US8719587B2 (en) | 2009-12-18 | 2014-05-06 | CompuGroup Medical AG | Computer implemented method for generating a pseudonym, computer readable storage medium and computer system |
US20120060039A1 (en) | 2010-03-05 | 2012-03-08 | Maxlinear, Inc. | Code Download and Firewall for Embedded Secure Application |
US8612398B2 (en) | 2010-03-11 | 2013-12-17 | Microsoft Corporation | Clean store for operating system and software recovery |
US9177152B2 (en) | 2010-03-26 | 2015-11-03 | Maxlinear, Inc. | Firmware authentication and deciphering for secure TV receiver |
US9231768B2 (en) | 2010-06-22 | 2016-01-05 | International Business Machines Corporation | Utilizing a deterministic all or nothing transformation in a dispersed storage network |
US8949616B2 (en) | 2010-09-13 | 2015-02-03 | Ca, Inc. | Methods, apparatus and systems for securing user-associated passwords used for identity authentication |
US20120151223A1 (en) | 2010-09-20 | 2012-06-14 | Conde Marques Ricardo Nuno De Pinho Coelho | Method for securing a computing device with a trusted platform module-tpm |
US20120069995A1 (en) | 2010-09-22 | 2012-03-22 | Seagate Technology Llc | Controller chip with zeroizable root key |
US10360561B2 (en) | 2010-12-14 | 2019-07-23 | Lime Light RM, Inc. | System and method for secured communications between a mobile device and a server |
US20140156531A1 (en) | 2010-12-14 | 2014-06-05 | Salt Technology Inc. | System and Method for Authenticating Transactions Through a Mobile Device |
EP2506176A1 (en) | 2011-03-30 | 2012-10-03 | Irdeto Corporate B.V. | Establishing unique key during chip manufacturing |
US20170109668A1 (en) | 2011-05-08 | 2017-04-20 | Panaya Ltd. | Model for Linking Between Nonconsecutively Performed Steps in a Business Process |
US20170109676A1 (en) | 2011-05-08 | 2017-04-20 | Panaya Ltd. | Generation of Candidate Sequences Using Links Between Nonconsecutively Performed Steps of a Business Process |
US8725112B2 (en) | 2011-06-05 | 2014-05-13 | Apple Inc. | Activation solution |
US8523657B2 (en) | 2011-09-13 | 2013-09-03 | Igt | Gaming system, gaming device and method for utilizing bitcoins |
US9054874B2 (en) | 2011-12-01 | 2015-06-09 | Htc Corporation | System and method for data authentication among processors |
US9800405B2 (en) | 2012-03-02 | 2017-10-24 | Syphermedia International, Inc. | Blackbox security provider programming system permitting multiple customer use and in field conditional access switching |
US10778659B2 (en) | 2012-05-24 | 2020-09-15 | Smart Security Systems Llc | System and method for protecting communications |
US9100189B2 (en) | 2012-08-31 | 2015-08-04 | Freescale Semiconductor, Inc. | Secure provisioning in an untrusted environment |
US9100174B2 (en) | 2012-08-31 | 2015-08-04 | Freescale Semiconductor, Inc. | Secure provisioning in an untrusted environment |
GB201219521D0 (en) | 2012-10-30 | 2012-12-12 | Rex Edmund | Generative scheduling method |
CA2930752A1 (en) | 2012-11-15 | 2014-05-22 | Behzad Malek | System and method for location-based financial transaction authentication |
TWI622969B (zh) | 2012-12-17 | 2018-05-01 | 印奈克斯托股份有限公司 | 用以使用物理特性來標記製造物品的方法及設備 |
KR20140099757A (ko) | 2013-02-04 | 2014-08-13 | 삼성전자주식회사 | 전자장치 및 전자장치의 펌웨어 업그레이드 방법 |
US9117179B2 (en) | 2013-03-11 | 2015-08-25 | International Business Machines Corporation | Predicting user activity in social media applications |
US9495668B1 (en) | 2013-05-10 | 2016-11-15 | EMC IP Holding Company LLC | Computing solutions to a problem involving inversion of a one-way function |
US10181124B2 (en) | 2013-05-30 | 2019-01-15 | Dell Products, L.P. | Verifying OEM components within an information handling system using original equipment manufacturer (OEM) identifier |
US9230137B2 (en) | 2013-05-30 | 2016-01-05 | Dell Products, L.P. | Secure original equipment manufacturer (OEM) identifier for OEM devices |
GB2514771B (en) | 2013-06-03 | 2015-10-21 | Broadcom Corp | Methods of securely changing the root key of a chip, and related electronic devices and chips |
US9479328B1 (en) | 2013-06-11 | 2016-10-25 | Amazon Technologies, Inc. | Secure key provisioning |
US20150003607A1 (en) | 2013-06-26 | 2015-01-01 | Samsung Electronics Co., Ltd. | Secure connection method and apparatus of electronic device |
KR20150008546A (ko) | 2013-07-15 | 2015-01-23 | 삼성전자주식회사 | 보안 다운로드 및 기능 실행방법 및 장치 |
US9386008B2 (en) | 2013-08-19 | 2016-07-05 | Smartguard, Llc | Secure installation of encryption enabling software onto electronic devices |
JP2015065495A (ja) | 2013-09-24 | 2015-04-09 | ルネサスエレクトロニクス株式会社 | 暗号鍵供給方法、半導体集積回路および暗号鍵管理装置 |
US9672385B2 (en) | 2013-10-07 | 2017-06-06 | Microsemi SoC Corporation | Method of improving FPGA security using authorization codes |
US20150134555A1 (en) | 2013-11-08 | 2015-05-14 | Tracker Corp | Document error resolution |
US9798880B2 (en) | 2013-11-13 | 2017-10-24 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism with override feature |
US9779243B2 (en) | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Fuse-enabled secure BIOS mechanism in a trusted computing system |
US9219722B2 (en) | 2013-12-11 | 2015-12-22 | Globalfoundries Inc. | Unclonable ID based chip-to-chip communication |
US20150213253A1 (en) | 2014-01-28 | 2015-07-30 | Qualcomm Incorporated | Authorizing an application for use by a computing device |
US11270298B2 (en) * | 2014-04-14 | 2022-03-08 | 21, Inc. | Digital currency mining circuitry |
US10340038B2 (en) | 2014-05-13 | 2019-07-02 | Nant Holdings Ip, Llc | Healthcare transaction validation via blockchain, systems and methods |
US9582262B2 (en) | 2014-06-16 | 2017-02-28 | Wipro Limited | Systems and methods for installing upgraded software on electronic devices |
US9928080B2 (en) | 2014-09-30 | 2018-03-27 | International Business Machines Corporation | Hardware security module access management in a cloud computing environment |
US9331989B2 (en) | 2014-10-06 | 2016-05-03 | Micron Technology, Inc. | Secure shared key sharing systems and methods |
US20160148232A1 (en) | 2014-11-21 | 2016-05-26 | The Nielsen Company (Us), Llc | Using hashed media identifiers to determine audience measurement data including demographic data from third party providers |
US9870487B2 (en) | 2014-12-30 | 2018-01-16 | Data I/O Corporation | Automated manufacturing system with adapter security mechanism and method of manufacture thereof |
US11627639B2 (en) | 2015-01-26 | 2023-04-11 | Ievgen Verzun | Methods and apparatus for HyperSecure last mile communication |
WO2016120826A2 (fr) | 2015-01-30 | 2016-08-04 | Enrico Maim | Systèmes et procédés pour la gestion d'engagements en réseau d'entités sécurisées |
EP3259928B1 (en) | 2015-02-18 | 2023-07-26 | Telefonaktiebolaget LM Ericsson (publ) | Establishing and managing identities for constrained devices |
US11023968B2 (en) | 2015-03-05 | 2021-06-01 | Goldman Sachs & Co. LLC | Systems and methods for updating a distributed ledger based on partial validations of transactions |
US9813392B2 (en) | 2015-03-06 | 2017-11-07 | Qualcomm Incorporated | Apparatus and method for providing a public key for authenticating an integrated circuit |
US9893885B1 (en) | 2015-03-13 | 2018-02-13 | Amazon Technologies, Inc. | Updating cryptographic key pair |
US10735200B2 (en) | 2015-03-27 | 2020-08-04 | Comcast Cable Communications, Llc | Methods and systems for key generation |
US20160283920A1 (en) | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
US9667600B2 (en) | 2015-04-06 | 2017-05-30 | At&T Intellectual Property I, L.P. | Decentralized and distributed secure home subscriber server device |
US10812274B2 (en) | 2015-05-07 | 2020-10-20 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
CA2988318A1 (en) | 2015-06-04 | 2016-12-08 | Chronicled, Inc. | Open registry for identity of things |
US20170228731A1 (en) | 2016-02-09 | 2017-08-10 | Fmr Llc | Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems |
US11120436B2 (en) | 2015-07-17 | 2021-09-14 | Mastercard International Incorporated | Authentication system and method for server-based payments |
US20170126414A1 (en) | 2015-10-28 | 2017-05-04 | Texas Instruments Incorporated | Database-less authentication with physically unclonable functions |
US20180331832A1 (en) | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
EP3405862B1 (en) | 2016-01-19 | 2020-11-18 | Priv8Pay, Inc. | Network node authentication |
US11107071B2 (en) | 2016-02-01 | 2021-08-31 | Apple Inc. | Validating online access to secure device functionality |
US11354658B2 (en) | 2016-02-11 | 2022-06-07 | Mastercard International Incorporated | Method and system for offline blockchain exchanges |
US20170250796A1 (en) * | 2016-02-18 | 2017-08-31 | Gideon Samid | Trans Vernam Cryptography: Round One |
CN107306183B (zh) | 2016-04-22 | 2021-12-21 | 索尼公司 | 客户端、服务端、方法和身份验证系统 |
US10594480B2 (en) * | 2016-05-13 | 2020-03-17 | Gideon Samid | Efficient proof of knowledge of arbitrarily large data which remains unexposed |
SG11201810306XA (en) | 2016-05-20 | 2018-12-28 | Moog Inc | Secure and traceable manufactured parts |
US11204597B2 (en) | 2016-05-20 | 2021-12-21 | Moog Inc. | Outer space digital logistics system |
US9967088B2 (en) | 2016-05-23 | 2018-05-08 | Accenture Global Solutions Limited | Rewritable blockchain |
US11107088B2 (en) | 2016-05-27 | 2021-08-31 | Chronicled, Inc. | Open registry for internet of things |
US20180108024A1 (en) | 2016-06-03 | 2018-04-19 | Chronicled, Inc | Open registry for provenance and tracking of goods in the supply chain |
US10411905B2 (en) | 2016-07-01 | 2019-09-10 | Intel Corporation | Public key infrastructure using blockchains |
US20180046956A1 (en) | 2016-08-11 | 2018-02-15 | Panaya Ltd. | Warning About Steps That Lead to an Unsuccessful Execution of a Business Process |
US10250694B2 (en) | 2016-08-19 | 2019-04-02 | Ca, Inc. | Maintaining distributed state among stateless service clients |
US11074584B2 (en) | 2016-09-23 | 2021-07-27 | Raise Marketplace, Llc | Authorizing exchange item redemption in an exchange item marketplace network |
US10516538B2 (en) | 2016-11-01 | 2019-12-24 | Netcomm Inc. | System and method for digitally signing documents using biometric data in a blockchain or PKI |
MY181840A (en) | 2016-11-04 | 2021-01-08 | Thomson Licensing | Devices and methods for client device authentication |
US20180184290A1 (en) | 2016-12-22 | 2018-06-28 | Cypress Semiconductor Corporation | Embedded Certificate Method for Strong Authentication and Ease of Use for Wireless IoT Systems |
US10382485B2 (en) | 2016-12-23 | 2019-08-13 | Vmware, Inc. | Blockchain-assisted public key infrastructure for internet of things applications |
US10484346B2 (en) | 2017-02-07 | 2019-11-19 | Microsoft Technology Licensing, Llc | Establishment of consortium blockchain network |
JP2018133744A (ja) | 2017-02-16 | 2018-08-23 | パナソニックIpマネジメント株式会社 | 通信システム、車両、および監視方法 |
US20190102558A1 (en) | 2017-06-02 | 2019-04-04 | Apple Inc. | Method and Apparatus for Secure System Boot |
US11263326B2 (en) | 2017-06-02 | 2022-03-01 | Apple Inc. | Method and apparatus for secure system boot |
US10397230B2 (en) | 2017-06-15 | 2019-08-27 | International Business Machines Corporation | Service processor and system with secure booting and monitoring of service processor integrity |
US10528740B2 (en) | 2017-06-15 | 2020-01-07 | International Business Machines Corporation | Securely booting a service processor and monitoring service processor integrity |
JP6882678B2 (ja) | 2017-06-30 | 2021-06-02 | 富士通株式会社 | 衝突検出システムおよび衝突検出方法 |
US20190080093A1 (en) | 2017-09-12 | 2019-03-14 | Qualcomm Incorporated | Secure selective load of dynamic paged segments in memory constrained systems |
KR102434444B1 (ko) | 2017-11-29 | 2022-08-19 | 한국전자통신연구원 | 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치 |
US10372943B1 (en) | 2018-03-20 | 2019-08-06 | Blockchain Asics Llc | Cryptographic ASIC with combined transformation and one-way functions |
US10256974B1 (en) | 2018-04-25 | 2019-04-09 | Blockchain Asics Llc | Cryptographic ASIC for key hierarchy enforcement |
-
2018
- 2018-09-24 US US16/139,332 patent/US10372943B1/en active Active
-
2019
- 2019-03-18 CN CN201980033363.6A patent/CN112136134B/zh active Active
- 2019-03-18 WO PCT/US2019/022735 patent/WO2019182965A2/en active Application Filing
- 2019-03-18 KR KR1020207030136A patent/KR102416893B1/ko active IP Right Grant
- 2019-03-18 DE DE112019001438.2T patent/DE112019001438T5/de active Pending
- 2019-06-26 US US16/452,890 patent/US10885228B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106415530A (zh) * | 2013-11-19 | 2017-02-15 | 日出科技集团有限责任公司 | 区块挖掘方法和装置 |
US20170206382A1 (en) * | 2016-01-15 | 2017-07-20 | Blockchain Asics Llc | Cryptographic asic including circuitry-encoded transformation function |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11093654B2 (en) | 2018-04-25 | 2021-08-17 | Blockchain ASICs Inc. | Cryptographic ASIC with self-verifying unique internal identifier |
US11093655B2 (en) | 2018-04-25 | 2021-08-17 | Blockchain ASICs Inc. | Cryptographic ASIC with onboard permanent context storage and exchange |
Also Published As
Publication number | Publication date |
---|---|
US10885228B2 (en) | 2021-01-05 |
KR102416893B1 (ko) | 2022-07-05 |
DE112019001438T5 (de) | 2020-12-10 |
US10372943B1 (en) | 2019-08-06 |
KR20200135440A (ko) | 2020-12-02 |
WO2019182965A3 (en) | 2020-04-30 |
US20190325165A1 (en) | 2019-10-24 |
CN112136134B (zh) | 2022-07-22 |
WO2019182965A2 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885675B (zh) | 包括电路编码变换函数的加密asic | |
CN112136134B (zh) | 具有组合的函数的加密asic | |
Hell et al. | Grain-128AEADv2-A lightweight AEAD stream cipher | |
US10944568B2 (en) | Methods for constructing secure hash functions from bit-mixers | |
Aumasson et al. | The hash function BLAKE | |
Bellare et al. | Format-preserving encryption | |
CN112187461A (zh) | 一种基于加密算法的武器装备数据混合加密方法 | |
Prasanna et al. | Performance analysis of md5 and sha-256 algorithms to maintain data integrity | |
Damgård et al. | Gate-scrambling revisited-or: The TinyTable protocol for 2-party secure computation | |
Diedrich et al. | Comparison of Lightweight Stream Ciphers: MICKEY 2.0, WG-8, Grain and Trivium | |
Li et al. | Automatic preimage attack framework on Ascon using a linearize-and-guess approach | |
Rawal et al. | Comparative Study of Sha-256 Optimization Techniques | |
Liang et al. | Efficient format-preserving encryption mode for integer | |
Polese | STRENGTH EVALUATION OF CRYPTOGRAPHIC PRIMITIVES TO LINEAR, DIFFERENTIAL AND ALGEBRAIC ATTACKS. | |
Lukács et al. | BITMIX: A hardware accelerated randomized symmetric encryption method | |
Morales-Sandoval | Hardware architecture for elliptic curve cryptography and lossless data compression | |
Swayamprakash et al. | Design of Advanced Encryption Standard using Verilog HDL | |
Khazaei | Neutrality-based symmetric cryptanalysis | |
Iwata et al. | Impact of ANSI X9. 24-1: 2009 key check value on ISO/IEC 9797-1: 2011 MACs | |
Zhang et al. | Improved Fast Correlation Attacks on the Sosemanuk Stream Cipher | |
Duan et al. | Enhancing RUP security for the OCB mode | |
Khairallah et al. | Introduction and Background | |
Saarinen | Cryptanalysis of Dedicated Cryptographic Hash Functions | |
Shah et al. | Hybrid HMAC using improved SHA-512 | |
Dubrova et al. | Lightweight CRC-based Authentication |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |