# US 2021/0243004 A1 · 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 2021/0243004 A1
- Document ID: US20210243004A1
- Status: Published application
- Kind: A1
- Application number: 17/235,794
- Filed: 2021-04-20
- Published: 2021-08-05
- Earliest claimed: 2017-01-09
- Assignees: ARRIS Enterprises LLC
- Applicants: ARRIS Enterprises LLC
- Inventors: Lex Aaron Anderson
- Web page: https://patentgrep.com/patent/US20210243004A1

## 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 (m,S) having i operations with input m and secret S, comprising:
defining a white-box fully-homomorphic key generation function (P,p)←Gen(1w) with public-key P and private-key p that selects random prime numbers p, q, s∈W of similar size, wherein:
B={0,1}b is the domain of order b, of the algorithm , where b>=8;
W={0,1}w is a white-box domain of order w, for w>>b;
p>2b is a white-box fully-homomorphic private key;
N=pq;
k=s(p−1);
P=(N,k) is a white-box fully-homomorphic public key;
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;
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;
computing ei=pip−1−1 where Ti=(Ni, ei);
accepting an encoded input c0, where c0=Enc(P,m);
generate an encoded output c′ by performing, for each of the i operations:
accepting an encoded transform public key Ti=Enc(Tt,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;
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′=(m,S).

### Claim 2 (depends on 1)

The method of claim 1, wherein the algorithm is a decryption algorithm including at 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 (IDES) algorithm.

### Claim 3 (depends on 2)

The method of claim 2, wherein:
the algorithm includes an RSA decryption algorithm RSADecrypt;
the accepted encoded input is 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 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 m′ according to m′=Dec(p, c′).

### Claim 4 (depends on 1)

The method of claim 1, wherein w is selected for semantic security.

### Claim 5 (depends on 1)

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