# US 9,519,797 B2 · Secure database searching

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,797 B2
- Document ID: US9519797B2
- Status: Granted
- Kind: B2
- Application number: 14/360,445
- Filed: 2012-11-23
- Published: 2014-09-18
- Granted: 2016-12-13
- Earliest claimed: 2011-11-24
- Assignees: Business Partners Limited
- Applicants: Business Partners Limited
- Inventors: Simon Ian Bain
- Web page: https://patentgrep.com/patent/US9519797B2

## CPC

- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/24554: {Unary operations; Data partitioning operations}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and systems for securely storing data in a database are described herein. According to an aspect, a technique may include receiving data to be stored, dividing the data into a plurality of elements, encrypting each element of the plurality of elements with an encryption function, combining the encrypted elements to form a data attribute, and storing the data attribute in the database. According to another aspect, a technique for searching a database having encrypted data attributes may include receiving a search term, encrypting the search term with an encryption function, and searching a database for records having data attributes matching the encrypted search term.

## Claims

### Claim 1

A method of searching a database having encrypted data attributes comprising the steps of:
receiving a search term;
dividing the search term into a plurality of elements;
encrypting each element of the plurality of elements with an encryption function;
combining all of the encrypted elements to form an encrypted search term;
modifying the encrypted search term by removing from the encrypted search term all non-alphanumeric characters and replacing the removed characters with alphanumeric characters;
searching a database for records having data attributes matching the modified encrypted search term;
retrieving the records having data attributes matching the encrypted search term; and
decrypting the retrieved records.

### Claim 2 (depends on 1)

The method of claim 1 further comprising applying a second encryption function to the search term before searching the database.

### Claim 3 (depends on 1)

The method of claim 1, wherein the search is performed by a SQL query.

### Claim 4

A system for searching a database having encrypted data attributes comprising:
a processor controlling one or more operations of the system;
a database; and
memory storing computer readable instructions that, when executed by the processor, configure the system to:
receive a search term;
divide the search term into a plurality of elements;
encrypt each element of the plurality of elements with an encryption function;
combine all of the encrypted elements to form an encrypted search term;
modifying the encrypted search term by removing from the encrypted search term all non-alphanumeric characters and replacing the removed characters with alphanumeric characters;
search the database for records having data attributes matching the modified encrypted search term;
retrieve the records having data attributes matching the encrypted search term; and
decrypt the retrieved records.

### Claim 5 (depends on 4)

The system of claim 4 wherein the instructions, when executed, further configure the system to perform applying a second encryption function to the search term before searching the database.

### Claim 6 (depends on 4)

The system of claim 4, wherein the search is performed by a SQL query of the database.

### Claim 7

One or more non-transitory computer readable media comprising computer readable instructions which, when executed, cause a system to search a database having encrypted data attributes by:
receiving a search term;
dividing the search term into a plurality of elements;
encrypting each element of the plurality of elements with an encryption function;
combining all of the encrypted elements to form an encrypted search term;
modifying the encrypted search term by removing from the encrypted search term all non-alphanumeric characters and replacing the removed characters with alphanumeric characters;
searching a database for records having data attributes matching the modified encrypted search term;
retrieving the records having data attributes matching the encrypted search term; and
decrypting the retrieved records.

### Claim 8 (depends on 7)

The computer readable media of claim 7 wherein the instructions, when executed, further configure the system to perform applying a second encryption function to the search term before searching the database.

### Claim 9 (depends on 7)

The computer readable media of claim 7, wherein the search is performed by a SQL query of the database.
