用于划分组合逻辑的方法和电路技术

技术编号:27615823 阅读:16 留言:0更新日期:2021-03-10 10:46
本公开涉及用于划分组合逻辑的方法和电路。提供了一种用于划分组合逻辑的方法。该方法包括接收算法的输入参数。该方法还包括基于所述输入参数,循环地并且顺序地执行所述算法包括的第一运算、第二运算和第三运算。这里,第N次循环中的第一运算与第N

【技术实现步骤摘要】
用于划分组合逻辑的方法和电路


[0001]本公开总体而言涉及电路领域,更具体而言,涉及用于划分组合逻辑的方法和电路。

技术介绍

[0002]哈希(Hash)算法,也称为散列算法,是信息
非常基础也非常重要的技术。它能将任意长度的二进制值(明文)映射为较短的固定长度的二进制值(Hash值),并且不同的明文很难映射为相同的Hash值。
[0003]由于比特币将哈希算法作为工作量证明(POW)的重要手段,后续的各种采用POW的数字货币也延续了这种设计,以SHA256、MD5为代表的算法在设计之初都属于算力敏感型的算法。这意味着计算资源是瓶颈,主频越高的CPU进行哈希的速度也越快。这个设计直接导致后来的矿机出现,采用ASIC芯片的矿机更是将这种运算能力成倍提升,更多矿场的出现使得当时的比特币面临算力中心化的威胁。
[0004]为了限制计算能力的依赖,人们开始寻求新的算法,将目光投向了存储依赖,也就是内存依赖。莱特币率先使用内存依赖型的Scrypt算法作为POW核心。Scrypt算法是程序员兼密码学家Colin Percival在其2009年的论文《STRONGER KEY DERIVATION VIA SEQUENTIAL MEMORY-HARD FUNCTIONS》中提出的。
[0005]Scrypt是一种密钥导出功能(Key Derivation Function)算法,即KDF算法,主要适用于生成密钥,目的是为了避免黑客低成本地大量产生密钥去试探密码。Scrypt算法的这个效果正好被用在莱特币的nonce碰撞中,避免了矿厂矿池低成本地挖矿。
[0006]由于Scrypt算法运行中会占用大量内存,而内存的硬件成本较高,从而使得矿厂矿池不可能低成本地大量挖矿。
[0007]因此,为了降低挖矿的成本,存在对于提高诸如Scrypt算法的KDF算法的运算效率的电路和方法的需求。

技术实现思路

[0008]根据本公开的第一方面,提供了一种用于划分组合逻辑的方法。该方法包括接收算法的输入参数。该方法还包括基于所述输入参数,循环地并且顺序地执行所述算法包括的第一运算、第二运算和第三运算。这里,第N次循环中的第一运算与第N-1次循环中的第三运算被划分为一个第一组合逻辑并且N为大于1的整数,并且第二运算被划分为至少一个第二组合逻辑。
[0009]根据本公开的第二方面,提供了一种用于划分组合逻辑的电路。该电路包括输入模块,所述输入模块被配置为接收算法的输入参数。该电路还包括运算模块,所述运算模块被配置为基于所述输入参数,循环地并且顺序地执行所述算法包括的第一运算、第二运算和第三运算。该电路还包括控制模块,所述控制模块被配置为将第N次循环中的第一运算与第N-1次循环中的第三运算划分为一个第一组合逻辑并且将第二运算划分为至少一个第二
组合逻辑,其中N为大于1的整数。
[0010]根据本公开的第三方面,提供了一种计算芯片。所述计算芯片包括一个或多个如上所述的电路。
[0011]根据本公开的第四方面,提供了一种加密货币挖矿机。所述加密货币挖矿机包括一个或多个如上所述的计算芯片。
[0012]通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
[0013]构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
[0014]参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
[0015]图1示出了Scrypt算法的步骤的说明图;
[0016]图2示出了图1中的Scrypt算法中使用的scryptROMix算法的步骤的说明图;
[0017]图3示出了图2中的scryptROMix算法中使用的scryptBlockMix算法的步骤的说明图;
[0018]图4示出了图3中的scryptBlockMix算法中使用的Salsa算法的详细说明图;
[0019]图5示出了根据本专利技术的实施例的用于划分组合逻辑的方法的流程图;
[0020]图6示出了根据本专利技术的一个实施例的用于划分组合逻辑的电路600的功能框图。
[0021]注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0022]为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的专利技术并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
[0023]现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0024]以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的用于实现散列算法的电路和方法是以示例性的方式示出,来说明本公开中的电路或方法的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本专利技术的示例性方式,而不是穷尽的方式。
[0025]对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
[0026]Scrypt算法包括以下的输入参数:P,S,N,r,p和dkLen。这里,P是密码短语,是一个字节串;S是盐,是一个字节串;N是CPU/内存消耗参数,必须大于1,是2的n次幂并且小于2^
(128*r/8);r是块大小参数;p是并行化参数,是一个小于等于((2^32-1)*hLen)/MFLen的正整数,其中hLen为32,MFlen是128*r;dkLen是期望输出的导出密钥的字节长度,是一个小于等于(2^32-1)*hLen的正整数,其中hLen为32。
[0027]Scrypt算法包括输出DK。DK是导出密钥,其长度为dkLen个字节。
[0028]在本公开的上下文中,所述的字节只是8比特的字节,其含义与八位组(octet)相同。
[0029]图1示出了Scrypt算法的步骤的说明图。
[0030]在图1的步骤1中,初始化一个阵列B,该阵列B由p个块构成,每个块的大小为128*r个字节。例如,B[0]表示第一个块,B[1]表示第二个块,B[p-1]表示第p个块。在步骤1中调用了PBKDF2-HMAC-SHA256算法。该算法是一个已知的算法,例如可参见“Password-Based Cryptography Specification Version 2.0”(B.Kaliski,Networ本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于划分组合逻辑的方法,该方法包括:接收算法的输入参数;以及基于所述输入参数,循环地并且顺序地执行所述算法包括的第一运算、第二运算和第三运算,其中第N次循环中的第一运算与第N-1次循环中的第三运算被划分为一个第一组合逻辑并且N为大于1的整数,并且其中第二运算被划分为至少一个第二组合逻辑。2.根据权利要求1所述的方法,其中,所述算法包括Scrypt算法的一部分。3.根据权利要求1所述的方法,其中,所述第一组合逻辑中的第一运算和第三运算被配置为在一个时钟周期中执行。4.根据权利要求1所述的方法,其中,所述第二组合逻辑的执行时间大于或等于所述第一组合逻辑的执行时间。5.根据权利要求3所述的方法,其中,所述时钟周期取决于所述第二组合逻辑的执行时间。6.根据权利要求5所述的方法,其中,所述至少一个第二组合逻辑中的每一个被配置为在一个所述时钟周期中执行。7.根据权利要求1所述的方法,其中,所述算法还包括第四运算,所述第四运算在第一运算之后并且在第三运算之前执行。8.一种用于划分组合逻辑的电路,该电路包括:输入模块,被配置为接收算法的输入参数;运算模块,被配置为基于所述输入参数,循环地并且...

【专利技术属性】
技术研发人员:薛可范志军郭海丰杨作兴李楠
申请(专利权)人:深圳比特微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1