logo好方法网

用于实现散列算法的电路和方法


技术摘要:
本公开涉及用于实现散列算法的电路和方法。提供有一种用于执行散列算法的电路,包括:输入模块,用于接收数据;以及运算模块,用于基于接收到的数据计算散列值,所述运算模块包括:多个寄存器,用于存储运算模块的数据;多个组合逻辑运算部,所述多个组合逻辑运算部中  全部
背景技术:
自2009年初开始比特币的出现吸引了人们广泛的关注,与此同时分布式虚拟货币 的受欢迎程度迅速增加。比特币是一种P2P(Peer-to-Peer)形式的虚拟加密数字货币,其独 特之处在于,它不依靠特定货币机构发行,而是依据特定算法通过大量运算来产生。比特币 交易使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并 使用密码学设计来确保安全性。 从密码学的角度而言,比特币是基于SHA-256散列算法的工作量证明POW(proof  of  work),其交易完整性取决于SHA-256的碰撞性和前映像阻力。散列算法是一种将可变长 度的数据作为输入并产生固定长度的散列值作为输出的算法,其本质是对信息的提炼。自 1993年以来,美国标准与技术研究所先后设计并发布了多个版本的安全散列算法SHA (Secure  Hash  Algorithm),SHA-256正是其中一种散列长度为256位的安全散列算法。 比特币挖矿机常年开机运行。使用矿机来进行比特币挖矿的核心是根据矿机计算 SHA-256的运算能力来获得奖励。对于矿机而言,芯片尺寸、芯片运行速度和芯片功耗是决 定矿机性能的至关重要的三个因素,其中,芯片尺寸决定芯片成本,芯片运行的速度决定矿 机运行速度,即算力,芯片功耗决定耗电程度,即挖矿成本。比特币矿机对芯片成本(如面 积)、功耗比(每T算力的功率)特别敏感、重视。矿机厂商的技术实力即体现在功耗比这个参 数上。在实际应用中,衡量矿机最为重要的性能指标是单位算力所消耗的功率,即功耗算力 比。 因此,存在对于具有更低功耗算力比的用于实现散列算法的电路和方法的需求, 更具体而言,存在对于具有更低功耗算力比的用于实现比特币矿机芯片的电路和方法的需 求。
技术实现要素:
根据本公开的第一方面,提供了一种用于执行散列算法的电路,包括:输入模块, 用于接收数据;以及运算模块,用于基于接收到的数据计算散列值,所述运算模块包括:多 个寄存器,用于存储运算模块的数据,多个组合逻辑运算部,所述多个组合逻辑运算部中的 每个组合逻辑运算部用于对来自所述多个寄存器中的一个或多个寄存器的数据执行组合 逻辑运算,其中,所述多个寄存器包括接收从所述多个组合逻辑运算部中的一个或多个组 合逻辑运算部输出的组合逻辑运算数据的第一组寄存器和接收从所述多个寄存器中的一 个或多个寄存器输出的移位数据的第二组寄存器,其中,所述第一组寄存器由锁存器构成, 并且所述第二组寄存器由触发器构成。 根据本公开的第二方面,提供了一种用于执行散列算法的电路,包括:输入模块, 4 CN 111600699 A 说 明 书 2/12 页 用于接收数据;以及运算模块,用于基于接收到的数据计算散列值,所述运算模块包括以流 水线结构布置的多个运算级,所述多个运算级包括第0运算级、第1运算级、直到第P运算级, P为大于1且小于流水线结构中运算级的数量的固定的正整数,其中,从第1运算级到第P运 算级中的每个运算级包括:多个寄存器,用于存储当前运算级的数据,多个组合逻辑运算 部,所述多个组合逻辑运算部中的每个组合逻辑运算部用于对来自当前运算级中的多个寄 存器中的一个或多个寄存器的数据执行组合逻辑运算,其中,所述多个寄存器包括接收从 前一运算级中的多个组合逻辑运算部中的一个或多个组合逻辑运算部输出的组合逻辑运 算数据的第一组寄存器和接收从前一运算级中的多个寄存器中的一个或多个寄存器输出 的移位数据的第二组寄存器,其中,所述第一组寄存器由锁存器构成,并且所述第二组寄存 器由触发器构成。 根据本公开的第三方面,提供了一种用于执行比特币挖矿算法的装置,包括如上 所述的用于执行散列算法的电路。 根据本公开的第四方面,提供了一种采用前文中所述的电路来执行散列算法的方 法。 通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其 优点将会变得清楚。 附图说明 构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解 释本公开的原理。 参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中: 图1示意性地示出了散列算法的运算过程; 图2示意性地示出了SHA-256进行数据处理并输出数据摘要的总体过程; 图3示意性地示出了SHA-256的消息压缩功能和消息扩展功能; 图4示意性地示出了用于实现SHA-256的电路中进行轮运算的具体示例的示意图; 图5示意性地示出了用于实现SHA-256的电路中进行轮运算的流水线结构的示意 图;和 图6示意性地示出了根据本公开的实施例的用于执行散列算法的电路。 注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记 来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标 号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对 其进行进一步讨论。 为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际 的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。 此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
下载此资料需消耗2积分,
分享到:
收藏