# US 12,120,217 B2 · Strong fully homomorphic white-box and method for using same

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

- Number: US 12,120,217 B2
- Document ID: US12120217B2
- Status: Granted
- Kind: B2
- Application number: 18/213,193
- Filed: 2023-06-22
- Published: 2023-11-02
- Granted: 2024-10-15
- Earliest claimed: 2017-01-09
- Assignees: ARRIS Enterprises LLC
- Applicants: ARRIS Enterprises LLC
- Inventors: Lex Aaron Anderson
- Web page: https://patentgrep.com/patent/US12120217B2

## CPC

- H04L 9/003: {for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]}
- H04L 9/008: {involving homomorphic encryption}
- G06F 21/60: Protecting data
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/606: {by securing the transmission between two devices or processes}
- H04L 9/0631: {Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms}
- H04L 9/0861: {Generation of secret information including derivation or calculation of cryptographic keys or passwords}
- H04L 9/302: {involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes}
- H04L 2209/16: Obfuscation or hiding, e.g. involving white box
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A fully homomorphic white-box implementation of one or more cryptographic operations is presented. This method allows construction of white-box implementations from general-purpose code without necessitating specialized knowledge in cryptography, and with minimal impact to the processing and memory requirements for non-white-box implementations. This method and the techniques that use it are ideally suited for securing “math heavy” implementations, such as codecs, that currently do not benefit from white-box security because of memory or processing concerns. Further, the fully homomorphic white-box construction can produce a white-box implementation from general purpose program code, such as C or C++.

## Claims

### Claim 1

A method of computing an algorithm A(m, S) having i operations with input m and secret S, the method comprising:
defining a white-box fully-homomorphic key generation function with a public key P and a private key p;
defining a white-box fully-homomorphic encoding function Enc(P, m)=mrk+1(mod N) that generates a random integer r∈W, then performs an encoding of the input m∈B;
defining a white-box fully-homomorphic decoding function Dec(p, c):=c(mod p) that decodes c by computing c modulo p;
defining i transform key pairs (Ti, ti), at least on part from P and p, wherein Ti is the ith transform public key and ti is the ith transform private key;
accepting an encoded input c0, where c0=Enc(P, m); and
generating an encoded output c′ by performing, for each of the i operations, the steps of:
accepting an encoded transform public key Ti=Enc(Ti, S);
performing the ith operation on the encoded input ci-1 and the encoded transform public key in modulo Ni to obtain an encoded output ci; and
reencoding ci with transform Ti without any interim decoding operation; decoding the encoded output c′ with the private key p to recover an output m′ according to m′=Dec(p, c′), such that m′=A(m, S).

### Claim 2 (depends on 1)

The method of claim 1 the step of defining i transform key pairs comprises:
selecting prime numbers ti, and qi∈W of similar size to p, with ti>2b;
computing Ni=pip−1q2 such that Ni and N are pairwise co-prime; and
computing ei=pip−1−1 where Ti=(Ni, ei).

### Claim 3 (depends on 1)

The method of claim 1, wherein the algorithm A is a decryption algorithm including at least one of a Rivest-Shamir-Aldeman (RSA) algorithm, an elliptic curve cryptography (ECC) algorithm, an advanced encryption standard (AES) algorithm, and a triple data standard (TDES) algorithm.

### Claim 4 (depends on 3)

The method of claim 3, wherein:
the algorithm A includes an RSA decryption algorithm RSADecrypt;
the accepted encoded input is c=Enc(P, M), wherein M=RSAEncrypt(RSAPLK, m) is an RSA encrypted version of the input message m encoded with the white-box fully-homomorphic public key P, where (RSAPVK, RSAPLK) is a RSA private/public keypair corresponding to the RSADecrypt and RSAEncrypt algorithms;
the accepted encoded transform public key is Ti=Enc(Ti, RSAPVK), wherein RSAPVK is the RSA private key encoded with the white-box fully-homomorphic public key P;
the one or more operations comprise an RSADecrypt implementation, with encoded input ci-1 and the encoded transform public key Ti=Enc(Ti, RSAPVK) used to compute each encoded output ci; and
decoding the encoded output c′ with the private key p to recovers the output message mr according to m′=Dec(p, c′).

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
securely encoding the input message m according to c0=Enc(P, m); and
securely encoding the transform public key according to Ti=Enc(Ti, S).

### Claim 6

A method of computing a decryption algorithm (m, S) having i operations with input m and secret S, wherein the algorithm includes an RSA decryption algorithm RSADecrypt, the method comprising:
accepting encoded input c0=Enc(P, M), wherein M=RSAEncrypt(RSAPLK, m) is an RSA encrypted version of the input message m encoded with the white-box fully-homomorphic public key P, where (RSAPVK, RSAPLK) is an RSA private/public keypair corresponding to the RSADecrypt and RSAEncrypt algorithms; and
obtaining an encoded output ci by performing an operation on the encoded input c0 and an accepted encoded transform public key Ti=Enc(Ti, RSAPVK) in modulo Ni, and wherein RSAPVK is the RSA private key encoded with the white-box fully-homomorphic public key P.

### Claim 7 (depends on 6)

The method of claim 6, including the steps of:
performing one or more operations including an RSADecrypt implementation, with encoded input ci-1 and the encoded transform public key Ti=Enc(Ti, RSAPVK) used to compute each encoded output ci; and
decoding the encoded output with a private key to recover an output message m′ according to m′=Dec(p, c′).

### Claim 8 (depends on 6)

The method of claim 6, further comprising the steps of:
securely encoding the input message m according to c0=Enc(P, m); and
securely encoding the transform public key according to Ti=Enc(Ti, S).
