IP Library Granted Patent US 12,423,459
Granted Patent B2
US 12,423,459 · App. 18/508,857 · Granted Sep 23, 2025

Structured encryption rules engine

Inventors: Edoardo Vacchi (Milan, IT); Paolo Antinori (Milan, IT)
Assignee: Red Hat, Inc.
G06F21/6227G06F21/602
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,423,459
App. No.
18/508,857
Granted
Sep 23, 2025
Kind
B2
Abstract

A rules engine that is running a rules-based application executing on a computing device comprising a processor device receives a first transaction that includes a plurality of data fields, at least some of the data fields including data to be evaluated by a plurality of rules identified in the rules-based application, the first transaction including encrypted data in a first encrypted data field of the plurality of data fields that has been encrypted with a symmetric key in accordance with a structured encrypted algorithm. The rules engine queries the encrypted data using a first query token generated using the symmetric key to determine if the encrypted data includes a value used in a first condition identified in the plurality of rules. The rules engine takes an action based at least in part on querying the encrypted data.

Claims (59)

1. A method, comprising:

receiving, by a rules engine that is running a rules-based application executing on a computing device comprising a processor device, a first transaction comprising a plurality of data fields, at least some of the data fields comprising data to be evaluated by a plurality of rules identified in the rules-based application, the first transaction comprising encrypted data in a first encrypted data field of the plurality of data fields that has been encrypted with a symmetric key in accordance with a structured encrypted algorithm;

querying, by the rules engine, the encrypted data using a first query token generated using the symmetric key to determine if the encrypted data includes a value used in a first condition identified in the plurality of rules; and

taking, by the rules engine, an action based at least in part on querying the encrypted data.

2. The method of claim 1 , further comprising:

accessing, by the rules engine, a schema that identifies the plurality of data fields of the first transaction including the first encrypted data field; and

determining, based on the schema, that the first encrypted data field is an encrypted data field.

3. The method of claim 2 , further comprising:

prior to querying the encrypted data, obtaining, by the rules engine, the first query token from the schema.

4. The method of claim 1 , wherein the rules engine does not have access to the symmetric key.

5. The method of claim 1 , wherein the rules engine is a Rete-based rules engine.

6. The method of claim 5 , further comprising generating, by the rules engine, a Rete decision tree from the rules-based application, the Rete decision tree identifying a plurality of nodes that correspond to a plurality of conditions identified in the plurality of rules and identifying a plurality of paths through subsets of the nodes in accordance with logic of the rules-based application.

7. The method of claim 1 , further comprising:

accessing, by the rules engine, a second query token generated using the symmetric key, the second query token differing from the first query token;

querying, by the rules engine, encrypted data in a second encrypted data field of the plurality of data fields using the second query token to determine if the encrypted data in the second encrypted data field includes a value used in a second condition identified in the plurality of rules; and

taking, by the rules engine, the action based at least in part on querying the encrypted data in the first encrypted data field and the encrypted data in the second encrypted data field.

8. The method of claim 1 wherein a second data field of the plurality of data fields comprises unencrypted data.

9. The method of claim 1 further comprising:

receiving, by the rules engine, a second transaction comprising the plurality of data fields;

accessing, by the rules engine, the first query token generated using the symmetric key;

querying, by the rules engine, encrypted data in the first encrypted data field of the second transaction using the first query token to determine if the encrypted data in the first encrypted data field of the second transaction includes a value used in the first condition identified in the plurality of rules, the encrypted data in the first encrypted data field of the second transaction being different from the encrypted data in the first encrypted data field of the first transaction; and

taking, by the rules engine, an action based at least in part on querying the encrypted data in the first encrypted data field of the second transaction.

10. A computing device, comprising:

a memory; and

a processor device coupled to the memory to:

receive, by a rules engine that is running a rules-based application, a first transaction comprising a plurality of data fields, at least some of the data fields comprising data to be evaluated by a plurality of rules identified in the rules-based application, the first transaction comprising encrypted data in a first encrypted data field of the plurality of data fields that has been encrypted with a symmetric key in accordance with a structured encrypted algorithm;

query, by the rules engine, the encrypted data using a first query token generated using the symmetric key to determine if the encrypted data includes a value used in a first condition identified in the plurality of rules; and

take, by the rules engine, an action based at least in part on querying the encrypted data.

11. The computing device of claim 10 , wherein the processor device is further to:

access, by the rules engine, a schema that identifies the plurality of data fields of the first transaction including the first encrypted data field; and

determine, based on the schema, that the first encrypted data field is an encrypted data field.

12. The computing device of claim 10 , wherein the rules engine does not have access to the symmetric key.

13. The computing device of claim 10 , wherein the processor device is further to:

access, by the rules engine, a second query token generated using the symmetric key, the second query token differing from the first query token;

query, by the rules engine, encrypted data in a second encrypted data field of the plurality of data fields using the second query token to determine if the encrypted data in the second encrypted data field includes a value used in a second condition identified in the plurality of rules; and

take, by the rules engine, the action based at least in part on querying the encrypted data in the first encrypted data field and the encrypted data in the second encrypted data field.

14. The computing device of claim 10 , wherein a second data field of the plurality of data fields comprises unencrypted data.

15. The computing device of claim 10 , wherein the processor device is further to:

receive, by the rules engine, a second transaction comprising the plurality of data fields;

access, by the rules engine, the first query token generated using the symmetric key;

query, by the rules engine, encrypted data in the first encrypted data field of the second transaction using the first query token to determine if the encrypted data in the first encrypted data field of the second transaction includes a value used in the first condition identified in the plurality of rules, the encrypted data in the first encrypted data field of the second transaction being different from the encrypted data in the first encrypted data field of the first transaction; and

take, by the rules engine, an action based at least in part on querying the encrypted data in the first encrypted data field of the second transaction.

16. A non-transitory computer-readable storage medium that includes executable instructions to cause a processor device to:

receive, by a rules engine that is running a rules-based application, a first transaction comprising a plurality of data fields, at least some of the data fields comprising data to be evaluated by a plurality of rules identified in the rules-based application, the first transaction comprising encrypted data in a first encrypted data field of the plurality of data fields that has been encrypted with a symmetric key in accordance with a structured encrypted algorithm;

query, by the rules engine, the encrypted data using a first query token generated using the symmetric key to determine if the encrypted data includes a value used in a first condition identified in the plurality of rules; and

take, by the rules engine, an action based at least in part on querying the encrypted data.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions further cause the processor device to:

access, by the rules engine, a schema that identifies the plurality of data fields of the first transaction including the first encrypted data field; and

determine, based on the schema, that the first encrypted data field is an encrypted data field.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions further cause the processor device to:

access, by the rules engine, a second query token generated using the symmetric key, the second query token differing from the first query token;

query, by the rules engine, encrypted data in a second encrypted data field of the plurality of data fields using the second query token to determine if the encrypted data in the second encrypted data field includes a value used in a second condition identified in the plurality of rules; and

take, by the rules engine, the action based at least in part on querying the encrypted data in the first encrypted data field and the encrypted data in the second encrypted data field.

19. The non-transitory computer-readable storage medium of claim 16 , wherein a second data field of the plurality of data fields comprises unencrypted data.

20. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions further cause the processor device to:

receive, by the rules engine, a second transaction comprising the plurality of data fields;

access, by the rules engine, the first query token generated using the symmetric key;

query, by the rules engine, encrypted data in the first encrypted data field of the second transaction using the first query token to determine if the encrypted data in the first encrypted data field of the second transaction includes a value used in the first condition identified in the plurality of rules, the encrypted data in the first encrypted data field of the second transaction being different from the encrypted data in the first encrypted data field of the first transaction; and

take, by the rules engine, an action based at least in part on querying the encrypted data in the first encrypted data field of the second transaction.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2023
From: VACCHI, EDOARDO; ANTINORI, PAOLO
To: RED HAT, INC.
Reel/Frame 065559/0778 →