# US 12,182,276 B1 · Systems and methods for securely identifying content

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

- Number: US 12,182,276 B1
- Document ID: US12182276B1
- Status: Granted
- Kind: B1
- Application number: 17/552,302
- Filed: 2021-12-15
- Granted: 2024-12-31
- Earliest claimed: 2021-01-14
- Assignees: Stealthbits Technologies LLC
- Applicants: Stealthbits Technologies LLC
- Inventors: Robert Edward Minichino; Michael James Longo; Michael McLean Rubacky
- Web page: https://patentgrep.com/patent/US12182276B1

## CPC

- 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}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method is described. The method includes streaming subject data from a subject repository. The method also includes storing a subject length of the subject data. The method further includes executing a hash function on the subject data to produce a subject hash value. The method additionally includes executing the hash function on content data from a content stream based on the subject length to produce a content hash value. The method also includes detecting whether the content data matches the subject data based on the subject hash value and the content hash value. The method further includes reporting a match detection in response to detecting that the content data matches the subject data.

## Claims

### Claim 1

A method, comprising:
streaming subject data from a subject repository;
storing a subject length of the subject data;
executing a hash function on the subject data to produce a subject hash value;
streaming content data from a content repository to provide a content stream, wherein the content repository is separate from the subject repository;
executing the hash function on the content data from the content stream based on the subject length to produce a content hash value;
detecting whether the content data matches the subject data based on the subject hash value and the content hash value; and
reporting a match detection in response to detecting that the content data matches the subject data.

### Claim 2 (depends on 1)

The method of claim 1, further comprising storing a location of the content data in response to detecting that the content data matches the subject data.

### Claim 3 (depends on 1)

The method of claim 1, further comprising executing a second hash function on the subject data to produce a second subject hash value, wherein the second hash function has a lower collision probability than the hash function.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
determining whether the subject hash value matches the content hash value; and
executing the second hash function on the content data to produce a second content hash value in response to determining that the subject hash value matches the content hash value.

### Claim 5 (depends on 4)

The method of claim 4, wherein detecting whether the content data matches the subject data comprises:
determining whether the second subject hash value matches the second content hash value in response to determining that the subject hash value matches the content hash value; and
detecting that the content data matches the subject data in response to determining that the second subject hash value matches the second content hash value.

### Claim 6 (depends on 3)

The method of claim 3, wherein the hash function is a polynomial hash function and the second hash function is a secure hash algorithm (SHA) hash function.

### Claim 7 (depends on 1)

The method of claim 1, wherein the content data is within a character range having a size of the subject length, the method further comprising shifting the character range to next content data in the content stream and executing the hash function on the next content data in response to detecting that the content data does not match the subject data.

### Claim 8 (depends on 7)

The method of claim 7, wherein executing the hash function on the next content data comprises subtracting a first factor from the content hash value and adding a second factor to the content hash value to produce an updated content hash value, wherein the first factor is associated with a first character dropped from the character range, and wherein the second factor is associated with a second character added to the character range.

### Claim 9 (depends on 1)

The method of claim 1, wherein:
storing the subject length of the subject data comprises storing a set of subject string lengths corresponding to a set of subject strings, and
executing the hash function on the subject data comprises executing the hash function on the set of subject strings to produce a set of subject hash values,
and wherein the method further comprises categorizing the subject hash values according to corresponding subject string lengths.

### Claim 10

A computing device, comprising:
a processor;
a memory in electronic communication with the processor; and
instructions stored in the memory, the instructions being executable to:
stream subject data from a subject repository;
store a subject length of the subject data;
execute a hash function on the subject data to produce a subject hash value;
stream content data from a content repository to provide a content stream, wherein the content repository is separate from the subject repository;
execute the hash function on the content data from the content stream based on the subject length to produce a content hash value;
detect whether the content data matches the subject data based on the subject hash value and the content hash value; and
report a match detection in response to detecting that the content data matches the subject data.

### Claim 11 (depends on 10)

The computing device of claim 10, wherein the instructions are executable to store a location of the content data in response to detecting that the content data matches the subject data.

### Claim 12 (depends on 10)

The computing device of claim 10, wherein the instructions are executable to execute a second hash function on the subject data to produce a second subject hash value, wherein the second hash function has a lower collision probability than the first hash function.

### Claim 13 (depends on 12)

The computing device of claim 12, wherein the instructions are executable to:
determine whether the subject hash value matches the content hash value; and
execute the second hash function on the content data to produce a second content hash value in response to determining that the subject hash value matches the content hash value.

### Claim 14 (depends on 13)

The computing device of claim 13, wherein the instructions are executable to detect whether the content data matches the subject data by:
determining whether the second subject hash value matches the second content hash value in response to determining that the subject hash value matches the content hash value; and
detecting that the content data matches the subject data in response to determining that the second subject hash value matches the second content hash value.

### Claim 15 (depends on 12)

The computing device of claim 12, wherein the first hash function is a polynomial hash function and the second hash function is a secure hash algorithm (SHA) hash function.

### Claim 16 (depends on 10)

The computing device of claim 10, wherein the content data is within a character range having a size of the subject length, and wherein the instructions are executable to shift the character range to second content data in the content stream and execute the hash function on the second content data in response to detecting that the content data does not match the subject data.

### Claim 17 (depends on 16)

The computing device of claim 16, wherein the instructions are executable to execute the hash function on the second content data by subtracting a first factor from the subject hash value and adding a second factor to the subject hash value to produce a second subject hash value, wherein the first factor is associated with a first character dropped from the character range, and wherein the second factor is associated with a second character added to the character range.

### Claim 18 (depends on 10)

The computing device of claim 10, wherein:
the instructions executable to store the subject length of the subject data comprise instructions executable to store a set of subject string lengths corresponding to a set of subject strings, and
the instructions executable to execute the hash function on the subject data comprise instructions executable to execute the hash function on the set of subject strings to produce a set of subject hash values,
and wherein the instructions are executable to categorize the subject hash values according to corresponding subject string lengths.

### Claim 19

A non-transitory, tangible computer-readable medium, comprising executable instructions for:
streaming subject data from a subject repository;
storing a subject length of the subject data;
executing a hash function on the subject data to produce a subject hash value;
streaming content data from a content repository to provide a content stream, wherein the content repository is separate from the subject repository;
executing the hash function on the content data from the content stream based on the subject length to produce a content hash value;
detecting whether the content data matches the subject data based on the subject hash value and the content hash value; and
reporting a match detection in response to detecting that the content data matches the subject data.

### Claim 20 (depends on 19)

The computer-readable medium of claim 19, further comprising instructions for executing a second hash function on the subject data to produce a second subject hash value, wherein the second hash function has a lower collision probability than the first hash function.
