CN110471924A - 数据处理方法、装置、计算机设备及存储介质 - Google Patents
数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110471924A CN110471924A CN201910748304.9A CN201910748304A CN110471924A CN 110471924 A CN110471924 A CN 110471924A CN 201910748304 A CN201910748304 A CN 201910748304A CN 110471924 A CN110471924 A CN 110471924A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- successive ignition
- hash
- computer equipment
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、计算机设备及存储介质,所述方法包括获取待处理的数据;根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,所述多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,所述n为大于1的正整数。通过在哈希算法的多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,简化了哈希算法在实现过程中数据缓存的流水级数,提高了数据处理效率,降低了计算机设备的功耗。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
数据处理方法包括计算机设备对待处理的数据采用指定算法进行运算得到哈希值的方法。
相关技术中,以指定算法为哈希运算为例,数据处理方法包括:计算机设备对待处理的数据采用哈希算法,通过多级迭代单元进行迭代循环得到哈希值。
在上述的数据处理过程中,涉及很多个这样的迭代单元,使得迭代循环的流水级数非常多,导致数据处理速度较慢,计算机功耗较大。
发明内容
有鉴于此,本公开提出了一种数据处理方法、装置、计算机设备及存储介质。所述技术方案,如下:
根据本公开的一方面,提供了一种数据处理方法,用于计算机设备中,所述方法包括:
获取待处理的数据;
根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,所述多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,所述n为大于1的正整数。
在一种可能的实现方式中,所述根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,包括:
在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述哈希算法进行多级迭代单元各自对应的n级所述逻辑运算,得到输出数据;
其中,每次所述迭代运算的输出数据为下一次所述迭代运算的输入数据,所述多次迭代运算中的最后一次所述迭代运算的输出数据为所述哈希值。
在另一种可能的实现方式中,每级所述迭代单元包括所述n级逻辑运算单元和一级存储寄存器单元,所述存储寄存器单元用于缓存所述n级逻辑运算单元对应的流水数据。
在另一种可能的实现方式中,所述哈希算法包括安全哈希算法(Secure HashAlgorithm,SHA)256。
在另一种可能的实现方式中,所述在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述哈希算法进行多级迭代单元各自对应的n级所述逻辑运算,得到输出数据,包括:
在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述SHA256算法进行32级所述迭代单元各自对应的两级所述逻辑运算,得到所述输出数据。
在另一种可能的实现方式中,所述待处理的数据为比特币的区块头,所述哈希值为所述比特币的区块头对应的消息摘要。
在另一种可能的实现方式中,所述方法,还包括:
在所述消息摘要小于挖矿难度阈值的情况下,输出所述消息摘要;
在所述消息摘要大于或者等于所述挖矿难度阈值的情况下或者在输出所述消息摘要之后,判断所述比特币的区块头中的随机数是否小于随机数最大值;
若所述比特币的区块头中的随机数小于所述随机数最大值,则将所述随机数加一,继续执行根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值的步骤。
根据本公开的另一方面,提供了一种数据处理装置,用于计算机设备中,所述装置包括:
获取模块,用于获取待处理的数据;
运算模块,用于根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,所述多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,所述n为大于1的正整数。
在一种可能的实现方式中,所述运算模块还用于在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述哈希算法进行多级迭代单元各自对应的n级所述逻辑运算,得到输出数据;
其中,每次所述迭代运算的输出数据为下一次所述迭代运算的输入数据,所述多次迭代运算中的最后一次所述迭代运算的输出数据为所述哈希值。
在另一种可能的实现方式中,每级所述迭代单元包括所述n级逻辑运算单元和一级存储寄存器单元,所述存储寄存器单元用于缓存所述n级逻辑运算单元对应的流水数据。
在另一种可能的实现方式中,所述哈希算法包括SHA256算法。
在另一种可能的实现方式中,所述运算模块还用于在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述SHA256算法进行32级所述迭代单元各自对应的两级所述逻辑运算,得到所述输出数据。
在另一种可能的实现方式中,所述待处理的数据为比特币的区块头,所述哈希值为所述比特币的区块头对应的消息摘要。
在另一种可能的实现方式中,所述装置,还包括:处理模块。所述处理模块,用于:
在所述消息摘要小于挖矿难度阈值的情况下,输出所述消息摘要;
在所述消息摘要大于或者等于所述挖矿难度阈值的情况下或者在输出所述消息摘要之后,判断所述比特币的区块头中的随机数是否小于随机数最大值;
若所述比特币的区块头中的随机数小于所述随机数最大值,则将所述随机数加一,继续执行根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值的步骤。
根据本公开的另一方面,提供了一种计算机设备,所述计算机设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待处理的数据;
根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,所述多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,所述n为大于1的正整数。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述的方法。
本公开实施例通过计算机设备根据待处理的数据采用哈希算法进行多次迭代运算得到哈希值,在多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,简化了哈希算法在实现过程中数据缓存的流水级数,提高了数据处理效率,降低了计算机设备的功耗。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了本公开实施例涉及的计算机设备的结构示意图;
图2示出了本公开一个示例性实施例提供的数据处理方法的流程图;
图3示出了本公开另一个示例性实施例提供的计算机设备的结构示意图
图4示出了本公开另一个示例性实施例提供的数据处理方法的流程图;
图5示出了本公开另一个示例性实施例提供的数据处理方法涉及的原理示意图;
图6示出了本公开另一个示例性实施例提供的每级迭代单元的结构示意图;
图7示出了本公开另一个示例性实施例提供的数据处理方法涉及的原理示意图;
图8示出了本公开另一个示例性实施例提供的数据处理方法涉及的映射关系的示意图;
图9示出了本公开另一个示例性实施例提供的数据处理方法的流程图;
图10示出了本公开另一个示例性实施例提供的数据处理方法涉及的原理示意图;
图11示出了本公开一个实施例提供的数据处理装置的结构示意图;
图12是根据一示例性实施例示出的一种终端的框图;
图13是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
相关技术中,哈希运算过程包括:计算机设备根据待处理的数据采用哈希算法,经过多级迭代单元迭代循环多次得出哈希值。其中,每一级迭代单元包含一个逻辑运算单元和一个存储寄存器单元。在大算力的芯片中,由无数个这样的迭代单元组成,在上述的迭代循环过程中流水级数较多,导致计算机设备的计算速度较慢,数据处理效率较低,计算机设备功耗较大。
本公开实施例提供了一种数据处理方法、装置、计算机设备及存储介质,本公开实施例通过计算机设备根据待处理的数据采用哈希算法进行多次迭代运算得到哈希值,在多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,简化了哈希算法在实现过程中数据缓存的流水级数,提高了数据处理效率,降低了计算机设备的功耗。
在对本公开实施例进行解释说明之前,先对本公开实施例的应用场景进行说明。请参考图1,其示出了本公开实施例涉及的计算机设备的结构示意图。
该计算机设备包括终端或者服务器。比如,终端是手机或者平板电脑或者膝上型便携计算机或者台式计算机。本公开实施例对此不加以限定。
该计算机设备包括:处理器11、接收器12、发送器13、存储器14和总线15。接收器12、发送器13、存储器14分别通过总线与处理器11连接。
处理器11包括一个或者一个以上处理核心,处理器11通过运行软件程序以及模块以执行本公开实施例提供的传输配置方法中接入网设备所执行的方法。
接收器12和发送器13可以实现为一个通信组件,该通信组件可以是一块通信芯片,通信芯片中可以包括接收模块、发射模块和调制解调模块等,用于对信息进行调制和/或解调,并通过无线信号接收或发送该信息。
存储器14可用于存储软件程序以及模块。
存储器14可存储至少一个功能所述的应用程序模块16。
接收器12用于执行本公开实施例中有关接收步骤的功能;处理器11用于执行本公开实施例中有关处理步骤的功能;发送器13用于执行本公开实施例中有关发送步骤的功能。
此外,存储器14可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
下面,仅采用示例性的实施例对本公开提供的数据处理方法进行介绍。
请参考图2,其示出了本公开一个示例性实施例提供的数据处理方法的流程图。本实施例以该数据处理方法应用于图1所示的计算机设备中来举例说明。该数据处理方法包括:
步骤201,获取待处理的数据。
计算机设备获取待处理的数据。其中,待处理的数据为任意长度的数据。
可选的,待处理的数据的类型包括视频数据、音频数据、图片数据、文字数据中的至少一种。
比如,在比特币系统中,待处理的数据为比特币的区块头。本实施例对待处理的数据的类型不加以限定。
步骤202,根据待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,n为大于1的正整数。
可选的,流水数据,包括n级逻辑运算后的输出数据。可选的,流水数据还包括n级逻辑运算过程中采用的n个输入字段。其中,输入字段为待处理的数据对应的一个字,一个字是32bit。
在一个示例中,第一组n级逻辑运算后对应的流水数据缓存在第一级,并用于第二组n级逻辑运算,第二组n级逻辑运算后对应的流水数据被缓存至第二级,以此类推,直至运算完成。
其中,多次迭代运算中的每次迭代运算包括多次加密循环运算,多次加密循环运算中每n级逻辑运算后对应的流水数据缓存一级。比如,n为2,64次加密循环运算中每两级逻辑运算后对应的流水数据缓存一级。本实施例对n的数值不加以限定。
进行多次迭代运算得到的哈希值为固定长度的二进制值,哈希值的长度小于待处理的数据的长度。其中,哈希值也称为消息摘要(英文:MessageDigest)或杂凑字符串。
可选的,哈希算法包括SHA1算法、SHA224算法、SHA256算法、SHA384算法和SHA512算法中的一种。
比如,当哈希算法为SHA256算法时,根据待处理的数据,计算机设备采用SHA256算法进行多次迭代运算得到哈希值,其中多次迭代运算中每两级逻辑运算后对应的流水数据缓存一级。
综上所述,本实施例通过计算机设备根据待处理的数据采用哈希算法进行多次迭代运算得到哈希值,在多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,简化了哈希算法在实现过程中数据缓存的流水级数,提高了数据处理效率,降低了计算机设备的功耗。
请参考图3,其示出了本公开另一个示例性实施例提供的计算机设备的结构示意图。
该计算机设备包括哈希输入单元31、哈希计算单元32、哈希输出单元33、变量输入单元34和常量输入单元35。
哈希输入单元31,用于获取待处理的数据,向哈希计算单元32发送待处理的数据。
哈希计算单元32用于接收哈希输入单元31输入的数据,根据待处理的数据,采用哈希算法进行多次迭代运算得到哈希值。其中,多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级。
哈希计算单元32还用于,根据变量输入单元34输入的变量和常量输入单元35输入的常量,根据待处理的数据,采用哈希算法进行多次迭代运算,得到哈希值。
可选的,哈希计算单元32包括多级迭代单元。哈希计算单元32还用于在多次迭代运算的每次迭代运算中,根据待处理的数据,采用哈希算法进行多级迭代单元各自对应的n级逻辑运算,得到输出数据。其中,每次迭代运算的输出数据为下一次迭代运算的输入数据,多次迭代运算中的最后一次迭代运算的输出数据为哈希值。
可选的,多级迭代单元中的每级迭代单元包括n级逻辑运算单元和一级存储寄存器单元,存储寄存器单元用于缓存n级逻辑运算单元对应的流水数据。
请参考图4,其示出了本公开另一个示例性实施例提供的数据处理方法的流程图。本实施例以该数据处理方法应用于图1或图3所示的计算机设备中来举例说明。该数据处理方法包括:
步骤401,计算机设备获取待处理的数据。
计算机设备通过哈希输入单元获取待处理的数据。
需要说明的是,计算机设备获取待处理的数据的过程可参考上述实施例中的相关细节,在此不再赘述。
步骤402,计算机设备对待处理的数据进行预处理。
可选的,计算机设备通过哈希输入单元对待处理的数据进行预处理,预处理包括二进制转换、补位操作、消息扩展、分组处理中的至少一种处理。
可选的,计算机设备对待处理的数据进行消息扩展后,将该待处理的数据分组为m个固定长度的数据块,m为正整数,以便后续计算机设备采用多个散列值和多个哈希常量采用哈希算法对m个固定长度的数据块进行多次迭代运算。
比如,当哈希算法为SHA256算法时,固定长度为512位(英文:bit)。
步骤403,根据预处理后的数据,在多次迭代运算的每次迭代运算中,采用哈希算法进行多级迭代单元各自对应的n级逻辑运算,得到输出数据。
其中,n为大于1的正整数。每次迭代运算的输出数据为下一次迭代运算的输入数据,多次迭代运算中的最后一次迭代运算的输出数据为哈希值。
其中,多级迭代单元中每n级逻辑运算后对应的流水数据缓存一级。
可选的,本级迭代单元中的存储寄存器单元缓存的流水数据用于下一级迭代单元的逻辑运算中。即本级缓存的流水数据中的输出数据作为下一级迭代单元的输入数据。
可选的,计算机设备通过哈希计算单元接收变量输入单元的多个散列值H和常量输入单元的多个哈希常量K,计算机设备通过哈希计算单元采用多个散列值H和多个哈希常量K对m个固定长度的数据块进行多次迭代运算。
为了方便说明,下面仅以哈希算法包括SHA256算法为例对本实施例提供的数据处理方法进行介绍。
计算机设备将该待处理的数据分组为m个固定长度的数据块,对于每个数据块,计算机设备采用8个32bit的散列值H,64个32bit的哈希常量K对该数据块进行32级迭代单元的运算,即64级逻辑运算和32级数据缓存,即可完成一次迭代运算。
在一个示意性的例子中,如图5所示,计算机设备将数据M切分为m个512bit的数据块,依次为数据块M1、数据块M2、数据块M3……数据块Mm。
散列值H0经过第一个数据块M1进行运算得到散列值H1,即完成第一次迭代运算,散列值H1经过第二个数据块M2进行运算得到散列值H2,即完成第二次迭代运算,依次处理,最后得到散列值Hm+1,将散列值Hm+1的8个32bit连接为256bit的哈希值。
可选的,对于多次迭代运算中的每次迭代运算,计算机设备根据待处理的数据,采用SHA256算法进行32级迭代单元各自对应的两级逻辑运算即64级逻辑运算,得到输出数据。
示意性的,在多次迭代运算中的每次迭代运算过程中,对于多级迭代单元中的每级迭代单元,通过本级迭代单元的一级存储寄存器单元将两级逻辑运算单元后计算得到的输出数据作为流水数据进行缓存。然后,计算机设备将本级迭代单元缓存的流水数据作为下一级迭代单元的输入数据,通过下一级迭代单元的两级逻辑运算单元计算得到输出数据后,通过该下一级迭代单元的存储寄存器单元将该输出数据作为流水数据进行缓存。
示意性的,每次迭代运算经过32级迭代单元,每级迭代单元包括两级逻辑运算单元和一级存储寄存器单元,如图6所示。在图6中,加法器、CH、SIGMA0、SIGMA1、MAJ均为逻辑单元。A、B、C、D、E、F、G、H这8个散列值为8个32bit的字,即为Hi-1(0)至Hi-1(7),i为初始值为1的正整数。这8个散列值按照一定的规则进行更新,比如,这8个散列值的初始值如表一所示。
表一
H0(0) | 6a09e667 |
H0(1) | bb67ae85 |
H0(2) | 3c6ef372 |
H0(3) | a54ff53a |
H0(4) | 510e527f |
H0(5) | 9b05688c |
H0(6) | 1f83d9ab |
H0(7) | 5be0cd19 |
K_i为第i个密钥,i为正整数,为64个32bit的哈希常量K中的第i个。
W_i为待处理的数据对应的第i个字,为64个32bit的字即w[0]至w[63]中的第i个。对于每个512bit的数据块,计算机设备构造该数据块对应的64个字。
可选的,对于每个512bit的数据块,计算机设备构造该数据块对应的64个32bit的字,包括:计算机设备将该数据块分解为16个32bit的字,记为w[0]至w[15]。即64个32bit的字的前16个字由该数据块分解得到,后48个字由预设迭代公式得到,记为w[16]至w[63]。
基于图6提供的结构示意图,每级迭代单元通过映射函数round处理两级逻辑运算,对应的原理示意图如图7所示。
在每级迭代单元中,根据移位映射关系,对于没有逻辑运算的路径直接按照两级移位进行映射并输出,对于只经过一级逻辑运算的在运算后按照两级移位进行映射并输出,在经过两级逻辑运算的在运算后进行映射并输出,该映射关系如图8所示。在图8中,8个散列值依次为A、B、C、D、E、F、G、H。在第一级逻辑运算时,A、B、C、E、F、G没有逻辑运算,按照一级移位进行映射,D、H经过逻辑运算分别得到E_tmp1和A_tmp1,将E_tmp1和A_tmp1按照一级移位进行映射。在第二级逻辑运算时,A_tmp1、A、B、E_tmp1、E、F没有逻辑运算,再按照一级移位进行映射,C、G经过逻辑运算分别得到E_tmp2和A_tmp2,将E_tmp2和A_tmp2再按照一级移位进行映射,此时输出8个散列值依次为A_tmp2、A_tmp1、A、B、E_tmp2、E_tmp1、E、F。
计算机设备采用SHA256算法进行32级上述这样的迭代单元的逻辑运算,最后一次逻辑运算产生的八个字进行组合即为该数据块对应的输出数据。每次迭代运算的输出数据为下一次迭代运算的输入数据,多次迭代运算中的最后一次迭代运算的输出数据为待处理的数据对应的哈希值。
可选的,计算机设备根据待处理的数据,采用SHA256算法进行多次迭代运算得到哈希值。计算机设备将符合预设条件的哈希值通过哈希输出单元进行输出。
预设条件为计算机设备默认设置的,或者用户自定义设置的。比如,预设条件为哈希值的数值大于预设阈值。本实施例对此不加以限定。
综上所述,本实施例还通过合并哈希运算过程中的迭代单元级数,即每级迭代单元包括n级逻辑运算单元和一级存储寄存器单元,存储寄存器单元用于缓存通过n级逻辑运算单元对应的流水数据,优化逻辑运算单元满足时序要求,节省存储寄存器单元开销,进一步降低了计算机设备的功耗和面积,提升计算机设备的算力。
本实施例对待处理的数据、哈希值和哈希算法的类型不加以限定。在一个示意性的例子中,以待处理的数据为比特币的区块头,哈希值为比特币的区块头对应的消息摘要,哈希算法为SHA256算法为例,对本公开实施例提供的数据处理方法进行说明,请参考图9,该数据处理方法包括但不限于以下几个步骤:
步骤901,计算机设备在挖矿过程中获取比特币的区块头。
其中,比特币的区块头(英文:block header),包括如下6个字段:
1、区块版本号(英文:nVersion):4字节,一般固定不变,仅在升级时改变。
2、前一个区块的区块头哈希值(英文:hashPrevBlock):32字节,,由前一个区块决定。
3、Merkle树的根哈希值(英文:hashMerkleRoot):32字节,包含进区块的所有交易构造的Merkle根,调整区块中的交易次序、增删交易、或修改Coinbase交易时改变。
4、时间戳(英文:nTime):4字节,后一个区块时间略早于前一个区块是被允许的,但必须在合理的时间区间,一般会直接使用机器当前时间戳。
5、挖矿难度(英文:nBits):4字节,由全网决定,每2016个区块按算法重新调整。
6、随机数(英文:nNonce):4字节,提供2的32次方的取值。
其中,上述的nVersion、hashPrevBlock、nBits是固定值,上述的hashMerkleRoot、nTime、nNonce为可变值。挖矿原理包括:不断变更区块头中的可变值,使得对区块头采用双重SHA256算法进行运算得到消息摘要,若消息摘要小于挖矿难度阈值则挖矿成功。即:SHA256D(BlockHeader)<F(nBits),其中,SHA256D(BlockHeader)即为对区块头采用双重SHA256进行运算得到的哈希值,F(nBits)即为按照nBits计算的挖矿难度阈值,也称挖矿难度目标值。
步骤902,计算机设备对区块头中的随机数进行初始化。
可选的,计算机设备将区块头中的随机数初始化为1。
示意性的,区块头中的随机数最小值为1,随机数最大值为2的32次方。本实施例对随机数最大值的具体取值不加以限定。
步骤903,计算机设备采用SHA256算法,对区块头进行多次迭代运算得到消息摘要,多次迭代运算中每两级逻辑运算后对应的流水数据缓存一级。
计算机设备对区块头中的随机数进行初始化之后,计算机设备采用SHA256算法,对区块头进行多次迭代运算得到消息摘要。
可选的,对于多次迭代运算中的每次迭代运算,计算机设备根据区块头,采用SHA256算法进行32级迭代单元的运算,即64级逻辑运算和32级数据缓存,得到输出数据。每次迭代运算的输出数据为下一次迭代运算的输入数据,多次迭代运算中的最后一次迭代运算的输出数据为消息摘要。
可选的,对于32级迭代单元中的每级迭代单元,通过本级迭代单元的一级存储寄存器单元将两级逻辑运算单元后计算得到的输出数据作为流水数据进行缓存。然后,计算机设备将本级迭代单元缓存的流水数据作为下一级迭代单元的输入数据,通过下一级迭代单元的两级逻辑运算单元计算得到输出数据后,通过该下一级迭代单元的存储寄存器单元将该输出数据作为流水数据进行缓存。
在一个示意性的例子中,如图10所示,计算机设备将区块头切分为2个512bit的数据块,其中第二个数据块中包括填充的384bit。计算机设备对该区块头进行三次迭代运算得到256bit的消息摘要。三次迭代运算分别为SHA256阶段(英文:stage)_0、SHA256阶段_1和SHA256阶段_2。以SHA256阶段_1为例,采用8个32bit的散列值H(即SHA256阶段_0输出的256bit数据)、64个32bit的哈希常量K对512bit的第二个数据块进行64级逻辑运算,即进行32级迭代单元各自对应的两级逻辑运算,得到第二个数据块的256bit的输出数据,该输出数据作为SHA256阶段_2的8个32bit的散列值H进行输入。SHA256阶段_2的数据处理过程可类比参考上述SHA256阶段_1的数据处理过程,在此不再赘述,SHA256阶段_2的输出数据即为该区块头对应的256bit的消息摘要。
步骤904,计算机设备判断消息摘要是否小于挖矿难度阈值。
挖矿难度阈值是计算机设备默认设置的,或者是用户自定义设置的。本实施例对此不加以限定。
可选的,计算机设备判断消息摘要是否小于挖矿难度阈值,若消息摘要小于挖矿难度阈值,则执行步骤905;若消息摘要大于或者等于挖矿难度阈值,则执行步骤906。
步骤905,计算机设备输出消息摘要。
在消息摘要小于挖矿难度阈值的情况下,计算机设备确定挖矿成功,输出消息摘要,继续执行步骤906。
步骤906,计算机设备判断区块头中的随机数是否小于随机数最大值。
在消息摘要大于或者等于挖矿难度阈值的情况下或者在输出消息摘要之后,计算机设备判断区块头中的随机数是否小于随机数最大值。
其中,随机数最大值为计算机设备默认设置的,或者是用户自定义设置的。本实施例对此不加以限定。
可选地,计算机设备判断区块头中的随机数是否小于随机数最大值,若区块头中的随机数小于随机数最大值,则执行步骤907;若区块头中的随机数大于或者等于随机数最大值,则结束进程。
步骤907,计算机设备将随机数加一,继续执行上述步骤903。
可选的,若比特币的区块头中的随机数小于随机数最大值,则计算机设备将随机数加一,继续执行根据待处理的数据,采用哈希算法进行多次迭代运算得到哈希值的步骤,即继续执行上述步骤903,计算机设备采用SHA256算法,对区块头进行多次迭代运算得到消息摘要的步骤。
综上所述,本实施例还通过根据比特币的区块头,采用SHA算法进行多次迭代运算得到消息摘要,多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,n为大于1的正整数,减少了SHA算法在实现过程中数据缓存的流水级数,简化了挖矿过程中通过SHA算法计算得到消息摘要的计算过程,大大提高了挖矿过程中计算消息摘要的数据处理效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图11,其示出了本公开一个实施例提供的数据处理装置的结构示意图。该数据处理装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1中的计算机设备的全部或一部分,该数据处理装置包括:获取模块1110和运算模块1120。
获取模块1110,用于获取待处理的数据;
运算模块1120,用于根据待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,n为大于1的正整数。
在一种可能的实现方式中,运算模块1120还用于在多次迭代运算的每次迭代运算中,根据待处理的数据,采用哈希算法进行多级迭代单元各自对应的n级逻辑运算,得到输出数据;
其中,每次迭代运算的输出数据为下一次迭代运算的输入数据,多次迭代运算中的最后一次迭代运算的输出数据为哈希值。
在另一种可能的实现方式中,每级迭代单元包括n级逻辑运算单元和一级存储寄存器单元,存储寄存器单元用于缓存n级逻辑运算单元对应的流水数据。
在另一种可能的实现方式中,哈希算法包括SHA256算法。
在另一种可能的实现方式中,运算模块1120还用于在多次迭代运算的每次迭代运算中,根据待处理的数据,采用SHA256算法进行32级迭代单元各自对应的两级逻辑运算,得到输出数据。
在另一种可能的实现方式中,待处理的数据为比特币的区块头,哈希值为比特币的区块头对应的消息摘要。
在另一种可能的实现方式中,装置,还包括:处理模块。处理模块,用于:
在消息摘要小于挖矿难度阈值的情况下,输出消息摘要;
在消息摘要大于或者等于挖矿难度阈值的情况下或者在输出消息摘要之后,判断比特币的区块头中的随机数是否小于随机数最大值;
若比特币的区块头中的随机数小于随机数最大值,则将随机数加一,继续执行根据待处理的数据,采用哈希算法进行多次迭代运算得到哈希值的步骤。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图12是根据一示例性实施例示出的一种终端1200的框图。例如,终端1200可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图12,终端1200可以包括以下一个或多个组件:处理组件1202,存储器1204,电源组件1206,多媒体组件1208,音频组件1210,输入/输出(I/O)的接口1212,传感器组件1214,以及通信组件1216。
处理组件1202通常控制终端1200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1202可以包括一个或多个处理器1220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1202可以包括一个或多个模块,便于处理组件1202和其他组件之间的交互。例如,处理组件1202可以包括多媒体模块,以方便多媒体组件1208和处理组件1202之间的交互。
存储器1204被配置为存储各种类型的数据以支持在终端1200的操作。这些数据的示例包括用于在终端1200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1206为终端1200的各种组件提供电力。电源组件1206可以包括电源管理系统,一个或多个电源,及其他与为终端1200生成、管理和分配电力相关联的组件。
多媒体组件1208包括在所述终端1200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1208包括一个前置摄像头和/或后置摄像头。当终端1200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括一个麦克风(MIC),当终端1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1204或经由通信组件1216发送。在一些实施例中,音频组件1210还包括一个扬声器,用于输出音频信号。
I/O接口1212为处理组件1202和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1214包括一个或多个传感器,用于为终端1200提供各个方面的状态评估。例如,传感器组件1214可以检测到终端1200的打开/关闭状态,组件的相对定位,例如所述组件为终端1200的显示器和小键盘,传感器组件1214还可以检测终端1200或终端1200一个组件的位置改变,用户与终端1200接触的存在或不存在,终端1200方位或加速/减速和终端1200的温度变化。传感器组件1214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1216被配置为便于终端1200和其他设备之间有线或无线方式的通信。终端1200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1216经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1204,上述计算机程序指令可由终端1200的处理器1220执行以完成上述方法。
图13是根据一示例性实施例示出的一种服务器1300的框图。服务器1300包括处理组件1322,其进一步包括一个或多个处理器,以及由存储器1332所代表的存储器资源,用于存储可由处理组件1322的执行的指令,例如应用程序。存储器1332中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1322被配置为执行指令,以执行上述方法。
服务器1300还可以包括一个电源组件1326被配置为执行服务器1300的电源管理,一个有线或无线网络接口1350被配置为将服务器1300连接到网络,和一个输入输出(I/O)接口1358。服务器1300可以操作基于存储在存储器1332的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1332,上述计算机程序指令可由服务器1300的处理组件1322执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种数据处理方法,其特征在于,用于计算机设备中,所述方法包括:
获取待处理的数据;
根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,所述多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,所述n为大于1的正整数。
2.根据权利要求1所述方法,其特征在于,所述根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,包括:
在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述哈希算法进行多级迭代单元各自对应的n级所述逻辑运算,得到输出数据;
其中,每次所述迭代运算的输出数据为下一次所述迭代运算的输入数据,所述多次迭代运算中的最后一次所述迭代运算的输出数据为所述哈希值。
3.根据权利要求2所述方法,其特征在于,每级所述迭代单元包括所述n级逻辑运算单元和一级存储寄存器单元,所述存储寄存器单元用于缓存所述n级逻辑运算单元对应的流水数据。
4.根据权利要求2所述方法,其特征在于,所述哈希算法包括安全哈希算法SHA256。
5.根据权利要求4所述方法,其特征在于,所述在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述哈希算法进行多级迭代单元各自对应的n级所述逻辑运算,得到输出数据,包括:
在所述多次迭代运算的每次迭代运算中,根据所述待处理的数据,采用所述SHA256算法进行32级所述迭代单元各自对应的两级所述逻辑运算,得到所述输出数据。
6.根据权利要求1至5任一所述方法,其特征在于,所述待处理的数据为比特币的区块头,所述哈希值为所述比特币的区块头对应的消息摘要。
7.根据权利要求6所述方法,其特征在于,所述方法,还包括:
在所述消息摘要小于挖矿难度阈值的情况下,输出所述消息摘要;
在所述消息摘要大于或者等于所述挖矿难度阈值的情况下或者在输出所述消息摘要之后,判断所述比特币的区块头中的随机数是否小于随机数最大值;
若所述比特币的区块头中的随机数小于所述随机数最大值,则将所述随机数加一,继续执行根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值的步骤。
8.一种数据处理装置,其特征在于,用于计算机设备中,所述装置包括:
获取模块,用于获取待处理的数据;
运算模块,用于根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,所述多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,所述n为大于1的正整数。
9.一种计算机设备,其特征在于,所述计算机设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待处理的数据;
根据所述待处理的数据,采用哈希算法进行多次迭代运算得到哈希值,所述多次迭代运算中每n级逻辑运算后对应的流水数据缓存一级,所述n为大于1的正整数。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910748304.9A CN110471924A (zh) | 2019-08-14 | 2019-08-14 | 数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910748304.9A CN110471924A (zh) | 2019-08-14 | 2019-08-14 | 数据处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110471924A true CN110471924A (zh) | 2019-11-19 |
Family
ID=68511055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910748304.9A Pending CN110471924A (zh) | 2019-08-14 | 2019-08-14 | 数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110471924A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543481A (zh) * | 2019-08-23 | 2019-12-06 | 紫光展锐(重庆)科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN111143893A (zh) * | 2019-12-17 | 2020-05-12 | 北京宏思电子技术有限责任公司 | 一种哈希分组计算的安全实现方法及设备 |
CN113839772A (zh) * | 2021-09-18 | 2021-12-24 | 哲库科技(北京)有限公司 | 托普利茨哈希算法的处理电路、芯片和终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020191791A1 (en) * | 2001-06-13 | 2002-12-19 | Anand Satish N. | Apparatus and method for a hash processing system using multiple hash storage areas |
CN104834660A (zh) * | 2014-02-12 | 2015-08-12 | Sap欧洲公司 | 基于区间的模糊数据库搜索 |
-
2019
- 2019-08-14 CN CN201910748304.9A patent/CN110471924A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020191791A1 (en) * | 2001-06-13 | 2002-12-19 | Anand Satish N. | Apparatus and method for a hash processing system using multiple hash storage areas |
CN104834660A (zh) * | 2014-02-12 | 2015-08-12 | Sap欧洲公司 | 基于区间的模糊数据库搜索 |
Non-Patent Citations (4)
Title |
---|
ZCC0721: ""比特币挖矿算法"", 《CSDN》 * |
丁冬平: ""基于FPGA的SHA_3五种候选算法设计实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
张成成: ""区块链典型挖矿算法分析"", 《数字技术与应用》 * |
随煜而安: ""SHA256算法原理详解"", 《CSDN》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543481A (zh) * | 2019-08-23 | 2019-12-06 | 紫光展锐(重庆)科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN111143893A (zh) * | 2019-12-17 | 2020-05-12 | 北京宏思电子技术有限责任公司 | 一种哈希分组计算的安全实现方法及设备 |
CN111143893B (zh) * | 2019-12-17 | 2023-04-07 | 北京宏思电子技术有限责任公司 | 一种哈希分组计算的安全实现方法及设备 |
CN113839772A (zh) * | 2021-09-18 | 2021-12-24 | 哲库科技(北京)有限公司 | 托普利茨哈希算法的处理电路、芯片和终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471924A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN110543481B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN109256147B (zh) | 音频节拍检测方法、装置及存储介质 | |
CN111798821B (zh) | 声音转换方法、装置、可读存储介质及电子设备 | |
JP2017532629A (ja) | 多因子の取消可能なバイオメトリックデータに基づく認証 | |
WO2023040335A1 (zh) | 一种人脸识别方法、设备及系统 | |
CN110458102A (zh) | 一种人脸图像识别方法及装置、电子设备和存储介质 | |
CN112634872A (zh) | 语音设备唤醒方法及装置 | |
WO2021180201A1 (zh) | 终端网络模型的数据处理方法、装置、终端以及存储介质 | |
CN109885657A (zh) | 一种文本相似度的计算方法、装置及存储介质 | |
WO2023134549A1 (zh) | 编码器的生成方法、指纹提取方法、介质及电子设备 | |
KR102469664B1 (ko) | 이상 행위 탐지 방법 및 시스템 | |
CN109961141A (zh) | 用于生成量化神经网络的方法和装置 | |
CN108521516A (zh) | 用于终端设备的控制方法和装置 | |
CN111462727A (zh) | 用于生成语音的方法、装置、电子设备和计算机可读介质 | |
TW202036462A (zh) | 圖像生成方法及裝置、電子設備和儲存介質 | |
CN110188871A (zh) | 运算方法、装置及相关产品 | |
CN109509475A (zh) | 语音识别的方法、装置、电子设备及计算机可读存储介质 | |
CN109685041A (zh) | 图像分析方法及装置、电子设备和存储介质 | |
US20240232237A9 (en) | Information generation method, apparatus, electronic device, and computer -readable medium | |
CN114429611A (zh) | 视频合成方法、装置、电子设备及存储介质 | |
CN111899747B (zh) | 用于合成音频的方法和装置 | |
CN110516463A (zh) | 用于生成信息的方法和装置 | |
CN111414343B (zh) | 日志写入方法、装置、电子设备和介质 | |
CN114581091A (zh) | 一种身份验证方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191119 |