IP Library Granted Patent US 9,164,725
Granted Patent B2
US 9,164,725 · App. 13/181,678 · Granted Oct 20, 2015

Apparatus and method for calculating an SHA-2 hash function in a general purpose processor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,164,725
App. No.
13/181,678
Granted
Oct 20, 2015
Kind
B2
Abstract

Various systems, apparatuses, processes, and/or products may be used to calculate an SHA-2 hash function in a general-purpose processor. In some implementations, a system, apparatus, process, and/or product may include the ability to calculate at least one SHA-2 sigma function by using an execution unit adapted for performing a processor instruction, the execution unit including an integrated circuit primarily designed for calculating the SHA-2 sigma function(s), and calculating the SHA-2 hash function with general-purpose hardware processing components of the processor based on the sigma function(s). In certain implementations, the calculation of the SHA-2 sigma function(s) can be performed by the integrated circuit within a single instruction, allowing for a faster calculation of the SHA-2 hash function.

Claims (46)

1. A processor comprising:

an execution unit comprising general-purpose hardware processing components and adapted for performing a processor instruction; and

an integrated circuit coupled to the execution unit and adapted primarily for calculating an SHA-2 sigma function in a single processor instruction cycle, the sigma function comprising calculating three different rotate and/or shift state operations and combining results of the calculations in an exclusive-or operation.

2. The processor according to claim 1 , wherein the execution unit comprises a vector processing unit.

3. The processor according to claim 1 , wherein the execution unit supports a 32-bit dataflow, and to calculate a sigma function, the execution unit is adapted to calculate the results for a set of operations of a sigma function and combine the results via an exclusive-or operation.

4. The processor according to claim 3 , wherein the execution unit is further adapted to:

calculate results of each RR2, RR13 and RR22 and combine the results via an exclusive-or operation;

calculate results of each RR6, RR1, and RR25 and combine the results via an exclusive-or operation;

calculate results of each RR7, RR18, and SR3 and combine the results via an exclusive-or operation; and

calculate results of each RR17, RR19, and SR10 and combine the results via an exclusive-or operation.

5. The processor according to claim 4 , wherein the execution unit is adapted to perform the calculations and combinations in parallel.

6. The processor according to claim 1 , wherein the execution unit supports a 64-bit dataflow, and to calculate a sigma function, the execution unit is adapted to calculate the results of a set of operations for a sigma function and combine the results via an exclusive-or operation.

7. The processor according to claim 6 , wherein the execution unit is further adapted to:

calculate results of each RR28, RR34 and RR39 and combine the results via an exclusive-or operation;

calculate results of each RR14, RR18 and RR41 and combine the results via an exclusive-or operation;

calculate results of each RR1, RR8 and SR7 and combine the results via an exclusive-or operation; and

calculate results of each RR19, RR61 and SR6 and combine the results via an exclusive-or operation.

8. The processor according to claim 7 , wherein the execution unit is adapted to perform at least two of the calculations and combinations in parallel.

9. The processor according to claim 7 , wherein the execution unit is adapted to perform at least one calculation and combination within a single processor instruction cycle.

10. The processor according to claim 1 , wherein the processor is adapted to calculate an SHA-2 hash function by using the integrated circuit for calculating an SHA-2 sigma function.

11. The processor according to claim 1 , wherein the processor comprises an out-of-order processor core, and the execution unit is arranged in the out-of-order processor core.

12. A method for calculating an SHA-2 hash function by a processor, the method comprising:

calculating at least one SHA-2 sigma function in a single processor instruction cycle by using an execution unit adapted for performing a processor instruction, the execution unit comprising an integrated circuit primarily designed for calculating the SHA-2 sigma function, the sigma function comprising calculating three different rotate and/or shift state operations and combining results of the calculations in an exclusive-or operation; and

calculating the SHA-2 hash function with general-purpose hardware processing components of the processor based on the sigma function.

13. The method according to claim 12 , wherein the sigma calculation is performed as a vector operation.

14. The method according to claim 12 , wherein for a 32-bit dataflow, the sigma calculation comprises:

calculating results of a set of operations for a sigma function; and

combining the results via an exclusive-or operation.

15. The method according to claim 14 , wherein the sigma calculation further comprises:

calculating results of each RR2, RR13 and RR22 and combining the results via an exclusive-or operation;

calculating results of each RR6, RR1 and RR25 combining the results via an exclusive-or operation;

calculating results of each RR7, RR18 and SR3 and combining the results via an exclusive-or operation; and

calculating results of each RR17, RR19 and SR10 and combining the results via an exclusive-or operation.

16. The method according to claim 15 , wherein the sigma calculations and combinations occur in parallel within a processor cycle.

17. The method according to claim 12 , wherein for a 64-bit dataflow, the sigma calculation comprises:

calculating results of a set operations for a sigma function; and

combining the results via an exclusive-or operation.

18. The method according to claim 17 , wherein the sigma calculation further comprises:

calculating results of each RR28, RR34 and RR39 and combining the results via an exclusive-or operation;

calculating results of each RR14, RR18 and RR41 and combining the results via an exclusive-or operation;

calculating results of each RR1, RR8 and SR7 and combining the results via an exclusive-or operation; and

calculating results of each RR19, RR61 and SR6 and combining the results via an exclusive-or operation.

19. The method according to claim 18 , wherein at least two sets of the sigma calculations and combinations occur in parallel within a processor cycle.

20. A processor comprising:

an execution unit comprising general-purpose hardware processing components and adapted for performing a processor instruction; and

an integrated circuit coupled to the execution unit and adapted exclusively for calculating an SHA-2 sigma function in a single processor instruction cycle, the sigma function comprising calculating three different rotate and/or shift state operations and combining results of the calculations in an exclusive-or operation.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2024
From: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
To: BEIJING ZITIAO NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 066565/0952 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2023
From: AWEMANE LTD.
To: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
Reel/Frame 064501/0498 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AWEMANE LTD.
Reel/Frame 057991/0960 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2011
From: BOERSMA, MAARTEN J.; KALTENBACH, MARKUS; LEENSTRA, JENS; NIGGEMEIER, TIM; OEHLER, PHILIPP; PANITZ, PHILIPP
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026583/0349 →