IP Library › Granted Patent US 12,476,788
Granted Patent B2
US 12,476,788 · App. 18/629,394 · Granted Nov 18, 2025

Tournament-league mechanisms for comparison based computer operations

Inventors: Ramy Masalha (Kafr Qari, IL); Allon Adir (Kiryat Tivon, IL); Ehud Aharoni (Kfar Saba, IL); Eyal Kushnir (Kfar Vradim, IL)
Assignee: International Business Machines Corporation
H04L9/008
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,476,788
App. No.
18/629,394
Granted
Nov 18, 2025
Kind
B2
Abstract

Mechanisms are provided for performing a tournament-league comparison process of a computer function. A request is received to execute the computer function on a vector data structure, where a result of the computer function is provided by executing the tournament-league comparison process. The vector data structure comprises a plurality of values where each value corresponds to a vector slot. At least one iteration of a tournament comparison operation is executed to generate a first intermediate ciphertext and indicator matrix, where the first intermediate ciphertext comprises fewer vector slots than the at least one input vector data structure. A plurality of iterations of a league comparison operation are executed based on the first intermediate ciphertext and one or more second intermediate ciphertexts generated at each iteration of the league comparison operation. A final iteration of the league comparison operation is executed that outputs a final result of the tournament-league comparison process.

Claims (38)

1 . A method, in a data processing system, for performing a tournament-league comparison process of a computer function, the method comprising:

receiving a request to execute the computer function on at least one input vector data structure, wherein a result of the computer function is provided by executing a tournament-league comparison process, and wherein the at least one input vector data structure comprises a plurality of values, each value corresponding to a vector slot of the at least one input vector data structure;

executing at least one iteration of a tournament comparison operation to generate a first intermediate ciphertext and indicator matrix, wherein the first intermediate ciphertext comprises fewer vector slots than the at least one input vector data structure;

executing a plurality of iterations of a league comparison operation based on the first intermediate ciphertext and one or more second intermediate ciphertexts generated at each iteration of the league comparison operation;

executing a final iteration of the league comparison operation that outputs a final result of the tournament-league comparison process; and

performing the requested computer function based on the result of the tournament-league comparison process,

wherein the plurality of iterations of the league comparison process comprises generating a combined matrix from a first matrix of a first input vector data structure of the at least one input vector data structure, and a second matrix of a second input vector data structure of the at least one input vector data structure, wherein the combined matrix comprises an upper triangle of the first matrix and a lower triangle of the second matrix.

2 . The method of claim 1 , wherein the input vector data structure is a single ciphertext data structure, and wherein executing the at least one iteration of the tournament comparison process comprises performing local selection operations between pairs of slots within the single ciphertext data structure based on the requested computer function.

3 . The method of claim 1 , wherein the computer function is one of a max function, an argmax function, a min function, an argmin function, or a candidate selection operation in which criteria for selection is specified in the computer function.

4 . The method of claim 1 , wherein the at least one iteration of the tournament comparison process comprises two iterations of the tournament comparison process, and wherein the plurality of iterations of the league comparison process comprises three iterations of the league comparison process and the final iteration of the league comparison process.

5 . The method of claim 1 , wherein the at least one iteration of the tournament comparison process comprises a single iteration of the tournament comparison process, and wherein the plurality of iterations of the league comparison process comprises three iterations of the league comparison process and the final iteration of the league comparison process.

6 . The method of claim 1 , wherein each iteration of the league comparison process is executed using a different league size than other iterations of the league comparison in the plurality of iterations of the league comparison process.

7 . The method of claim 6 , wherein a first league size for a first iteration of the league comparison is 4, a second league size for a second iteration of the league comparison is 16, and a third league size for a third iteration of the league comparison is 256.

8 . The method of claim 1 , wherein executing the plurality of iterations of the league comparison process comprises executing two iterations of the league comparison process as a single operation based on the combined matrix.

9 . The method of claim 1 , wherein the computer function implements a computer function in a homomorphic encrypted operation.

10 . A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to:

receive a request to execute the computer function on at least one input vector data structure, wherein a result of the computer function is provided by executing a tournament-league comparison process, and wherein the at least one input vector data structure comprises a plurality of values, each value corresponding to a vector slot of the at least one input vector data structure;

execute at least one iteration of a tournament comparison operation to generate a first intermediate ciphertext and indicator matrix, wherein the first intermediate ciphertext comprises fewer vector slots than the at least one input vector data structure;

execute a plurality of iterations of a league comparison operation based on the first intermediate ciphertext and one or more second intermediate ciphertexts generated at each iteration of the league comparison operation;

execute a final iteration of the league comparison operation that outputs a final result of the tournament-league comparison process; and

perform the requested computer function based on the result of the tournament-league comparison process,

wherein the plurality of iterations of the league comparison process comprises generating a combined matrix from a first matrix of a first input vector data structure of the at least one input vector data structure, and a second matrix of a second input vector data structure of the at least one input vector data structure, wherein the combined matrix comprises an upper triangle of the first matrix and a lower triangle of the second matrix.

11 . The computer program product of claim 10 , wherein the input vector data structure is a single ciphertext data structure, and wherein executing the at least one iteration of the tournament comparison process comprises performing local selection operations between pairs of slots within the single ciphertext data structure based on the requested computer function.

12 . The computer program product of claim 10 , wherein the computer function is one of a max function, an argmax function, a min function, an argmin function, or a candidate selection operation in which criteria for selection is specified in the computer function.

13 . The computer program product of claim 10 , wherein the at least one iteration of the tournament comparison process comprises two iterations of the tournament comparison process, and wherein the plurality of iterations of the league comparison process comprises three iterations of the league comparison process and the final iteration of the league comparison process.

14 . The computer program product of claim 10 , wherein the at least one iteration of the tournament comparison process comprises a single iteration of the tournament comparison process, and wherein the plurality of iterations of the league comparison process comprises three iterations of the league comparison process and the final iteration of the league comparison process.

15 . The computer program product of claim 10 , wherein each iteration of the league comparison process is executed using a different league size than other iterations of the league comparison in the plurality of iterations of the league comparison process.

16 . The computer program product of claim 15 , wherein a first league size for a first iteration of the league comparison is 4, a second league size for a second iteration of the league comparison is 16, and a third league size for a third iteration of the league comparison is 256.

17 . The computer program product of claim 10 , wherein executing the plurality of iterations of the league comparison process comprises executing two iterations of the league comparison process as a single operation based on the combined matrix.

18 . An apparatus comprising:

at least one processor; and

at least one memory coupled to the at least one processor, wherein the at least one memory comprises instructions which, when executed by the at least one processor, cause the at least one processor to:

receive a request to execute the computer function on at least one input vector data structure, wherein a result of the computer function is provided by executing a tournament-league comparison process, and wherein the at least one input vector data structure comprises a plurality of values, each value corresponding to a vector slot of the at least one input vector data structure;

execute at least one iteration of a tournament comparison operation to generate a first intermediate ciphertext and indicator matrix, wherein the first intermediate ciphertext comprises fewer vector slots than the at least one input vector data structure;

execute a plurality of iterations of a league comparison operation based on the first intermediate ciphertext and one or more second intermediate ciphertexts generated at each iteration of the league comparison operation;

execute a final iteration of the league comparison operation that outputs a final result of the tournament-league comparison process; and

perform the requested computer function based on the result of the tournament-league comparison process,

wherein the plurality of iterations of the league comparison process comprises generating a combined matrix from a first matrix of a first input vector data structure of the at least one input vector data structure, and a second matrix of a second input vector data structure of the at least one input vector data structure, wherein the combined matrix comprises an upper triangle of the first matrix and a lower triangle of the second matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2024
From: MASALHA, RAMY; ADIR, ALLON; AHARONI, EHUD; KUSHNIR, EYAL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 067035/0862 →
Continuity (1)
Related Publication 20250317273A1 · Oct 9, 2025
References Cited (30)
US 7941649B2 · Selvaggi et al. · 2011 [cited by applicant]
US 10790960B2 · Williams · 2020 [cited by examiner]
US 11050720B2 · Soon-Shiong · 2021 [cited by examiner]
US 11277256B2 · Kim · 2022 [cited by examiner]
US 11277257B2 · Kim · 2022 [cited by examiner]
US 12113889B2 · Moshkowich · 2024 [cited by examiner]
US 12170718B2 · Micciancio · 2024 [cited by examiner]
US 12395516B1 · Dalke · 2025 [cited by examiner]
US 20210376995A1 · Ratha · 2021 [cited by examiner]
US 20210399874A1 · Polyakov · 2021 [cited by examiner]
US 20220085972A1 · Jackson, II et al. · 2022 [cited by applicant]
US 20240195618A1 · Paul · 2024 [cited by examiner]
US 20240313944A1 · Choi · 2024 [cited by examiner]
US 20240364496A1 · Chevallier-Mames · 2024 [cited by examiner]
US 20250086437A1 · Liu · 2025 [cited by examiner]
US 20250150258A1 · Pradhan · 2025 [cited by examiner]
US 20250165967A1 · Ku · 2025 [cited by examiner]
US 20250192983A1 · Boehler · 2025 [cited by examiner]
JP 2020095437A · 2020 [cited by applicant]
KR 101769134B1 · 2017 [cited by applicant]
Cheon, Jung H. et al., “Numerical Method for Comparison on Homomorphically Encrypted Numbers”, IACR, Asiacrypt 2019 Conference Paper, Nov. 22, 2019, 31 Pages. [cited by applicant]
Crawford, Jack L. et al., “Doing Real Work with FHE: The Case of Logistic Regression”, Cryptology ePrint Archive, Paper 2018/202, Feb. 19, 2018, 29 Pages. [cited by applicant]
Garcelon, Evrard et al., “Encrypted Linear Contextual Bandit”, Proceedings of the 25th International Conference on Artificial Intelligence and Statistics (AISTATS), Valencia, Spain. PMLR: vol. 151, Mar. 28-30, 2022, 33 … [cited by applicant]
Iliashenko, Illia et al., “Faster homomorphic comparison operations for BGV and BFV”, IACR Cryptology, Apr. 27, 2021, 33 Pages. [cited by applicant]
Lee, Hyunjun et al., “Approximating Max Function in Fully Homomorphic Encryption”, Electronics 2023, 12, 1724. Apr. 4, 2023, 8 Pages. [cited by applicant]
Masalha, Ramy, “Tournament Type Selection Operations on Encrypted Data”, US Pending U.S. Appl. No. 17/992,597, filed Nov. 22, 2022, 54 Pages. [cited by applicant]
Sebert, Arnaud G. et al., “SPEED: Secure, Private and Efficient Deep Learning” Machine Learning, vol. 110, Mar. 2021, pp. 675-694, arXiv:2006.09475v2 [cs.CR], Mar. 26, 2021, 32 Pages. [cited by applicant]
Sèbert, Arnaud G. et al., “When approximate design for fast homomorphic computation provides differential privacy guarantees”, Cryptology and Security, arXiv:2304.02959v1 [cs.CR], Apr. 6, 2023, 28 Pages. [cited by applicant]
Slotin, Sergey, “Argmin with SIMD”, Algorithmica, Jul. 2022, 9 Pages. [cited by applicant]
Zuber, Martin et al., “Efficient and Accurate homomorphic comparisons”, CEA-List, 91190 Gif-sur-Yvette, May 20, 2022, 24 Pages. [cited by applicant]