IP Library › Granted Patent US 12,737,155
Granted Patent B2
US 12,737,155 · App. 17/884,777 · Granted Sep 15, 2026

Hardware-based Galois multiplication

Inventors: Silvia Melitta Mueller (St. Ingbert, DE); Debapriya Chatterjee (Austin, TX); Maarten J. Boersma (Holzgerlingen, DE); Martijn Diede Berkers (Boeblingen, DE)
Assignee: International Business Machines Corporation
G06F7/724G06F7/722
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 12,737,155
App. No.
17/884,777
Granted
Sep 15, 2026
Kind
B2
Abstract

A processor includes an instruction fetch unit that fetches instructions to be executed, an architected register file including a plurality of registers for storing source and destination operands, and an execution unit for executing a Galois multiply instruction. The execution unit includes a carryless multiplier configured to multiply operands of the Galois multiply instruction to generate a product. The execution unit further includes a modular reduction circuit configured to receive the product and determine, based on a logical combination of the product and a fixed polynomial, a reduced product having a fewer number of bits than the product. The execution unit is configured to store the reduced product to the architected register file as a result of the Galois multiply instruction.

Claims (73)

1 . A processor, comprising:

an instruction fetch unit that fetches instructions to be executed;

an architected register file including a plurality of registers for storing source and destination operands; and

an execution unit for executing a Galois multiply instruction, the Galois multiply instruction including a mode field that specifies a data format applicable to a Galois carryless multiplication and modular reduction operation, wherein the execution unit includes:

a carryless multiplier configured to multiply operands of the Galois multiply instruction to generate a product; and

a modular reduction circuit configured to receive the product and determine, based on a logical combination of the product and a fixed polynomial, a reduced product having a fewer number of bits than the product, wherein the execution unit is configured to store the reduced product to the architected register file as a result of the Galois multiply instruction, and wherein the execution unit executes the Galois multiply instruction based on the data format specified by the mode field.

2 . The processor of claim 1 , wherein the fixed polynomial is g (x)=1+X+x{circumflex over ( )}2+x{circumflex over ( )}7+x{circumflex over ( )}128.

3 . The processor of claim 1 , wherein:

the product includes a high part including high-order bits of the product and a low part including low-order bits of the product;

the modular reduction circuit is configured to compute a first result equivalent to a carryless multiplication of the high part and the fixed polynomial, wherein the modular reduction circuit includes:

shift circuitry that applies multiple different bit position shifts to the high part of the product consistent with asserted bits in the fixed polynomial; and

bitwise exclusive OR (XOR) circuitry that logically combines multiple instances of the high part of the product having different respective bit position shifts applied by the shift circuitry.

4 . The processor of claim 3 , wherein:

the shift circuitry is further configured to apply multiple different bit position shifts to the high part of the first result consistent with the asserted bits in the fixed polynomial;

the bitwise exclusive OR (XOR) circuitry is further configured to logically combine multiple instances of the high part of the first result having the different respective bit position shifts applied by the shift circuitry to obtain a second result, wherein the bitwise XOR circuitry generates the reduced product based on the first result, the second result, and the low part of the product.

5 . The processor of claim 3 , wherein the bitwise exclusive OR (XOR) circuitry includes at least two stages of bitwise XOR circuitry.

6 . The processor of claim 1 , further comprising:

a conditional bit reversal circuit configured to, prior to multiplication of the operands, conditionally reverse a bit ordering of bytes in one of the operands based on an endianness mode indicated by the Galois multiply instruction.

7 . The processor of claim 1 , wherein:

the carryless multiplier is a first multiply-multiply engine;

the execution unit includes a second multiply-multiply engine, wherein the first and second multiply-multiply engines have a first data width;

the operands include first and second operands having a second data width that is an integer multiple of the first data width; and

the first and second multiply-multiply engines are configured to multiply subsets of the first and second operands in parallel.

8 . A data processing system, comprising:

multiple processors, including the processor of claim 1 ;

a shared memory; and

a system interconnect communicatively coupling the shared memory and the multiple processors.

9 . A method of data processing in a processor, said method comprising:

fetching, by an instruction fetch unit, instructions to be executed by the processor, wherein the instructions include a Galois multiply instruction including a mode field that specifies a data format applicable to a Galois carryless multiplication and modular reduction operation; and

based on receiving the Galois multiply instruction, an execution unit of the processor executing the Galois multiply instruction based on the data format specified by the mode field, wherein the executing includes:

multiplying, by a carryless multiplier, operands of the Galois multiply instruction to generate a product;

a modular reduction circuit receiving the product and determining, based on a logical combination of the product and a fixed polynomial, a reduced product having a fewer number of bits than the product; and

storing the reduced product to an architected register file of the processor as a result of the Galois multiply instruction.

10 . The method of claim 9 , wherein the fixed polynomial is g (x)=1+X+x{circumflex over ( )}2+x{circumflex over ( )}7+x{circumflex over ( )}128.

11 . The method of claim 9 , wherein:

the product includes a high part including high-order bits of the product and a low part including low-order bits of the product;

determining the reduced product includes computing a first result equivalent to a carryless multiplication of the high part and the fixed polynomial, wherein the computing includes:

applying, by shift circuitry, multiple different bit position shifts to the high part of the product consistent with asserted bits in the fixed polynomial; and

logically combining, by bitwise exclusive OR (XOR) circuitry, multiple instances of the high part of the product having different respective bit position shifts applied by the shift circuitry.

12 . The method of claim 11 , further comprising:

applying, by the shift circuitry, multiple different bit position shifts to the high part of the first result consistent with the asserted bits in the fixed polynomial; and

logically combining, by the bitwise exclusive OR (XOR) circuitry, multiple instances of the high part of the first result having the different respective bit position shifts applied by the shift circuitry to obtain a second result;

wherein determining the reduced product comprises determining the reduced product based on the first result, the second result, and the low part of the product.

13 . The method of claim 9 , further comprising:

prior to multiplication of the operands, conditionally reversing a bit ordering of bytes in one of the operands based on an endianness mode indicated by the Galois multiply instruction.

14 . The method of claim 9 , wherein:

the carryless multiplier is a first multiply-multiply engine;

the execution unit includes a second multiply-multiply engine, wherein the first and second multiply-multiply engines have a first data width;

the operands include first and second operands having a second data width that is an integer multiple of the first data width; and

multiplying the operands includes the first and second multiply-multiply engines multiplying subsets of the first and second operands in parallel.

15 . A design structure tangibly embodied in a machine-readable storage device for designing, manufacturing, or testing an integrated circuit, the design structure comprising:

a processor, including:

an instruction fetch unit that fetches instructions to be executed;

an architected register file including a plurality of registers for storing source and destination operands; and

an execution unit for executing a Galois multiply instruction, the Galois multiply instruction including a mode field that specifies a data format applicable to a Galois carryless multiplication and modular reduction operation, wherein the execution unit includes:

a carryless multiplier configured to multiply operands of the Galois multiply instruction to generate a product; and

a modular reduction circuit configured to receive the product and determine, based on a logical combination of the product and a fixed polynomial, a reduced product having a fewer number of bits than the product, wherein the execution unit is configured to store the reduced product to the architected register file as a result of the Galois multiply instruction, and wherein the execution unit executes the Galois multiply instruction based on the data format specified by the mode field.

16 . The design structure of claim 15 , wherein the fixed polynomial is g (x)=1+X+x{circumflex over ( )}2+x{circumflex over ( )}7+x{circumflex over ( )}128.

17 . The design structure of claim 15 , wherein:

the product includes a high part including high-order bits of the product and a low part including low-order bits of the product;

the modular reduction circuit is configured to compute a first result equivalent to a carryless multiplication of the high part and the fixed polynomial, wherein the modular reduction circuit includes:

shift circuitry that applies multiple different bit position shifts to the high part of the product consistent with asserted bits in the fixed polynomial; and

bitwise exclusive OR (XOR) circuitry that logically combines multiple instances of the high part of the product having different respective bit position shifts applied by the shift circuitry.

18 . The design structure of claim 17 , wherein:

the shift circuitry is further configured to apply multiple different bit position shifts to the high part of the first result consistent with the asserted bits in the fixed polynomial;

the bitwise exclusive OR (XOR) circuitry is further configured to logically combine multiple instances of the high part of the first result having the different respective bit position shifts applied by the shift circuitry to obtain a second result, wherein the bitwise XOR circuitry generates the reduced product based on the first result, the second result, and the low part of the product.

19 . The design structure of claim 15 , further comprising:

a conditional bit reversal circuit configured to, prior to multiplication of the operands, conditionally reverse a bit ordering of bytes in one of the operands based on an endianness mode indicated by the Galois multiply instruction.

20 . The design structure of claim 15 , wherein:

the carryless multiplier is a first multiply-multiply engine;

the execution unit includes a second multiply-multiply engine, wherein the first and second multiply-multiply engines have a first data width;

the operands include first and second operands having a second data width that is an integer multiple of the first data width; and

the first and second multiply-multiply engines are configured to multiply subsets of the first and second operands in parallel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2022
From: MUELLER, SILVIA MELITTA; CHATTERJEE, DEBAPRIYA; BOERSMA, MAARTEN J.; BERKERS, MARTIJN D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 060768/0542 →
Continuity (1)
Related Publication 20240053963A1 · Feb 15, 2024
References Cited (110)
US 7295671B2 · Snell · 2007 [cited by applicant]
US 7702100B2 · Han · 2010 [cited by applicant]
US 7783037B1 · Bong · 2010 [cited by applicant]
US 8042025B2 · Gopal · 2011 [cited by applicant]
US 8194854B2 · Gueron · 2012 [cited by applicant]
US 8340280B2 · Gueron · 2012 [cited by applicant]
US 8913740B2 · Gueron · 2014 [cited by applicant]
US 10129018B2 · Satpathy · 2018 [cited by applicant]
US 10142098B2 · Suresh · 2018 [cited by applicant]
US 10256971B2 · Gueron · 2019 [cited by applicant]
US 10305680B2 · Gomes · 2019 [cited by applicant]
US 10313108B2 · Suresh · 2019 [cited by applicant]
US 10346343B2 · Suresh · 2019 [cited by applicant]
US 10348506B2 · Greiner · 2019 [cited by applicant]
US 10432393B2 · Gueron · 2019 [cited by applicant]
US 10496373B2 · Suresh · 2019 [cited by examiner]
US 10581593B2 · Gomes · 2020 [cited by applicant]
US 10877753B2 · Bradbury · 2020 [cited by applicant]
US 10924282B2 · Brostrom · 2021 [cited by applicant]
US 11121856B2 · Satpathy · 2021 [cited by applicant]
US 11128443B2 · Gueron · 2021 [cited by applicant]
US 20020066014A1 · Dworkin · 2002 [cited by applicant]
US 20040202317A1 · Demjanenko · 2004 [cited by applicant]
US 20040252831A1 · Uehara · 2004 [cited by applicant]
US 20040255130A1 · Henry · 2004 [cited by applicant]
US 20050089160A1 · Crispin · 2005 [cited by applicant]
US 20080240423A1 · Gueron · 2008 [cited by examiner]
US 20080240426A1 · Gueron et al. · 2008 [cited by applicant]
US 20090052659A1 · Gueron · 2009 [cited by applicant]
US 20090141887A1 · Yap · 2009 [cited by applicant]
US 20090310775A1 · Gueron · 2009 [cited by examiner]
US 20100049986A1 · Watanabe · 2010 [cited by applicant]
US 20100070548A1 · Gashkov · 2010 [cited by examiner]
US 20100306293A1 · Li · 2010 [cited by examiner]
US 20110060782A1 · Moharil · 2011 [cited by examiner]
US 20110231636A1 · Olson · 2011 [cited by applicant]
US 20110255689A1 · Bolotov · 2011 [cited by applicant]
US 20140208079A1 · Bradbury · 2014 [cited by examiner]
US 20150043729A1 · Gopal · 2015 [cited by applicant]
US 20150067302A1 · Gueron · 2015 [cited by examiner]
US 20150098563A1 · Gulley · 2015 [cited by applicant]
US 20160119126A1 · Shay · 2016 [cited by applicant]
US 20170134163A1 · Suresh · 2017 [cited by applicant]
US 20170373836A1 · Rarick · 2017 [cited by applicant]
US 20180122271A1 · Ghosh · 2018 [cited by applicant]
US 20180365021A1 · Chen · 2018 [cited by examiner]
US 20190197821A1 · Hutchinson-Kay et al. · 2019 [cited by applicant]
US 20190205093A1 · Suresh · 2019 [cited by examiner]
US 20190286443A1 · Solomatnikov et al. · 2019 [cited by applicant]
US 20190319782A1 · Ghosh · 2019 [cited by applicant]
US 20190386815A1 · Satpathy · 2019 [cited by applicant]
US 20200117811A1 · Ghosh et al. · 2020 [cited by applicant]
US 20200134234A1 · Lemay · 2020 [cited by applicant]
US 20210152330A1 · Satpathy · 2021 [cited by applicant]
US 20210203504A1 · Brandt · 2021 [cited by applicant]
US 20220206958A1 · LeMay · 2022 [cited by applicant]
US 20230269076A1 · Brandt · 2023 [cited by applicant]
US 20240012811A1 · Dai et al. · 2024 [cited by applicant]
US 20240015004A1 · Chatterjee et al. · 2024 [cited by applicant]
US 20240053989A1 · Kumar et al. · 2024 [cited by applicant]
US 20240061961A1 · Kumar et al. · 2024 [cited by applicant]
CN 1658550A · 2005 [cited by applicant]
CN 112152785A · 2020 [cited by applicant]
EP 4569404A1 · 2025 [cited by applicant]
EP 4569724A1 · 2025 [cited by applicant]
EP 4569725A1 · 2025 [cited by applicant]
TW 200536331A · 2005 [cited by applicant]
TW 200845689A · 2008 [cited by applicant]
TW 201203108A · 2012 [cited by applicant]
TW 201332329A · 2013 [cited by applicant]
TW 201519623A · 2015 [cited by applicant]
TW 201636829A · 2016 [cited by applicant]
TW 201717573A · 2017 [cited by applicant]
TW 202201165A · 2022 [cited by applicant]
Adams, A. et al., “Cryptography Acceleration in a Risc-V GPGPU,” CARRV 2021, Jun. 17, 2021, 7 pages. [cited by applicant]
Advanced Encryption Standard (AES), Nov. 26, 2001, pp. 1-51, FIPS Pub 197, National Institute of Standards and Technology (NIST), US. [cited by applicant]
Anonymous, “Method of Early Detection and Halting of Ransomware Attacks,” IPCOM000268682D, IP.com, Feb. 15, 2022, 5 pages. [cited by applicant]
Anonymous, “A Method To Reduce Stick Table Synchronization Storm Among Load Balancer Cluster,” IPCOM000268809D, Mar. 1, 2022, 6 pages, IP.com. [cited by applicant]
Anonymous, “Method and System for Prevention of Anti-Tampering of Media Content,” IPCOM000259235D, Jul. 22, 2019, 4 pages, IP.com. [cited by applicant]
Anonymous, “Method of Flash Acceleration in Replication for Consistent Hash Ring,” Mar. 13, 2016, 9 pages, IPCOM000245503D, Ip.com. [cited by applicant]
Anonymous, “Parallelizable Hashing Algorithm,” IPCOM000254123D, Jun. 4, 2018, 2 pages, IP.com. [cited by applicant]
Bos, J.W. et al., Performance Analysis of the SHA-3 Candidates On Exotic Multi-Core Architectures, CHES 2010 12th International Workshop, Aug. 17-20, 2010, 15 pages, Santa Barbara, CA. [cited by applicant]
Ghosh, Moinak, “Optimizing Rolling Hash Computation Using SIMD Vector Registers,” IPCOM000226555D, Apr. 16, 2013, 4 pages, IP.com. [cited by applicant]
Gulley, S. et al., “Intel Sha Extensions: New Instructions Supporting the Secure Hash Algorithm on Intel Architecture Processors,” Jul. 2013, 22 pages, Intel Corporation. [cited by applicant]
Jang, K. et al., “SSL Shader: Cheap SSL Acceleration With Commodity Processors,” 8th USENIX Symposium on Networked Systems Design and Implementation, Mar. 2011, 14 pages, USENIX Association, Boston, MA. [cited by applicant]
Keller, S. et al., “Secure Hash Algorithm 3 Validation System (SHA3VS),” Jan. 29, 2016, 33 pages, National Institute of Standards and Technology, USA. [cited by applicant]
NIST FIPS 180-4 “Secure Hash Standard,” Aug. 2015, 37 pages, National Institute of Standards and Technology, Gaithersburg, MD. [cited by applicant]
NIST FIPS 202 “SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions,” Aug. 2015, 37 pages, National Institute of Standards and Technology, Gaithersburg, MD. [cited by applicant]
Salehani, Y. et al., “NESHA-256, New 256-BIT Secure Hash Algorithm,” Cryptology ePrint Archive, Paper 2009/033, 2009, 16 pages, https://eprint.iacr.org/2009/033. [cited by applicant]
Appendix P, List of IBM Patents or Patent Applications Treated as Related, 2 pages. [cited by applicant]
International Searching Authority of European Patent Office, International Search Report and Written Opinion, International Application No. PCT/EP2023/068147, Oct. 4, 2023, 14 pages. [cited by applicant]
TW IPO, Notice of Allowance for P202301322TW01, Sep. 26, 2024, 6 pages (English translation). [cited by applicant]
Bertoni, Guido et al., “KangarooTwelve: fast hashing based on Keccak-p.” IACR Cryptology ePrint Archive (2018), 19 pages. [cited by applicant]
Dworkin, M., “SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions NIST FIPS 202,” Aug. 2015, 37 pages, National Institute of Standards and Technology, Gaithersburg, MD. [cited by applicant]
Y. Akiya et al., “SHA-3-LPHP: Hardware Acceleration of SHA-3 for Low-Power High-Performance Systems,” 2021 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), Wuhan, China, 2021, pp. 393… [cited by applicant]
P202201607TW01 Office Action, Jul. 1, 2024, 4 pages, TW Patent Office (English Translation). [cited by applicant]
International Searching Authority, Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, Nov. 11, 2023, 12 pages, International Application No. … [cited by applicant]
International Searching Authority, Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, Nov. 6, 2023, 12 pages, International Application No. P… [cited by applicant]
Pittalia, P. P. (2019), A comparative study of hash algorithms in cryptography, International Journal of Computer Science and Mobile Computing, 8(6), 147-152 (2019). [cited by applicant]
Rachh, Rashmi, et al., “Implementation of AES Key Schedule Using Look-Ahead Technique,” Circuits, Systems, and Signal Processing 33.11(2014): 3663-3670. [cited by applicant]
TW IPO, Office Action for P202201845TW01, Jan. 24, 2024, 9 pages. [cited by applicant]
Taiwan Intellectual Property Bureau, Notice of Allowance in P202201845TW01 (English translation), Aug. 23, 2024, 6 pages. [cited by applicant]
Taiwan IPO, P202201322TW01 Office Action, Jun. 14, 2024, 20 pages (English Translation). [cited by applicant]
Taiwan IPO, P202201845TW01 Office Action, Jun. 12, 2024, 4 pages (English Translation). [cited by applicant]
Dworkin, M., “Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC,” Nist Special Publication SP800-38D, Nov. 2007, 39 pages, National institute for Standards and Technology, Gaithersbu… [cited by applicant]
Gueron, S. et al., “Intel Carry-Less multiplication instruction and its usage for computing GCM Mode,” May 2010, 76 pages, Intel Corporation. [cited by applicant]
IEEE standard: 1619-2018, “IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices,” Oct. 23, 2018, 41 pages, IEEE, New York, NY. [cited by applicant]
McGrew, D. et al., “The Galois/Counter Mode of Operation,” Feb. 2004, 43 pages. [cited by applicant]
International Searching Authority of European Patent Office, International Search Report and Written Opinion, International Application No. PCT/EP2023/071362, Oct. 18, 2023, 13 pages. [cited by applicant]
Y. Chen et al., “A programmable Galois Field processor for the Internet of Things,” 2017 ACM/IEEE 44th Annual International Symposium on Computer Architecture (ISCA), Toronto, ON, Canada, 2017, pp. 55-68, doi: 10.1145/3… [cited by applicant]