IP Library › Patent Application 14704083
Patent Application
App. No. 14/704,083

Obscuring Software Code With Split Variables

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 None
App. No.
14/704,083
Abstract

A method of obscuring software code including a plurality of operations, including: identifying, by a processor, an operation to be obscured; determining an equivalent split variable expression for the operation to be obscured using split variables; and replacing the operation to be obscured with the determined equivalent split variable expression.

Claims (47)

1 . A method of obscuring software code including a plurality of operations, comprising:

identifying, by a processor, an operation to be obscured;

determining an equivalent split variable expression for the operation to be obscured using split variables; and

replacing the operation to be obscured with the determined equivalent split variable expression.

2 . The method of claim 1 , wherein the split variables are split into two portions.

3 . The method of claim 2 , wherein the split variables are determined using first and second secret multiplicative values and a modulus value.

4 . The method of claim 3 , wherein the split variables are further determined using a secret additive value.

5 . The method of claim 4 , wherein the equivalent split variable expression is arranged so that none of the first and second secret multiplicative values and the secret additive value are not observable to an attacker.

6 . The method of claim 2 , wherein the split variable x may be split as follows:

x=X α X 1 +X β X 1 +X γ mod m

where X α , X β , and X γ are secret values and m is a modulus value.

7 . The method of claim 1 , wherein the split variables are split into N portions using secret values, wherein N>2.

8 . The method of claim 1 , further comprising:

converting a split output of the determined equivalent split variable expression to a single output corresponding to the output of the operation to be obscured.

9 . The method of claim 1 , wherein the method of obscuring software code is carried out by a compiler.

10 . A non-transitory machine-readable storage medium encoded with instructions for execution by a processor for obscuring software code including a plurality of operations, comprising:

instructions for identifying, by a processor, an operation to be obscured;

instructions for determining an equivalent split variable expression for the operation to be obscured using split variables; and

instructions for replacing the operation to be obscured with the determined equivalent split variable expression.

11 . The non-transitory machine-readable storage medium of claim 10 , wherein the split variables are split into two portions.

12 . The non-transitory machine-readable storage medium of claim 11 , wherein the split variables are determined using first and second secret multiplicative values and a modulus value.

13 . The non-transitory machine-readable storage medium of claim 12 , wherein the split variables are further determined using a secret additive value.

14 . The non-transitory machine-readable storage medium of claim 13 , wherein the equivalent split variable expression is arranged so that none of the first and second secret multiplicative values and the secret additive value are not observable to an attacker.

15 . The non-transitory machine-readable storage medium of claim 11 , wherein the split variable x may be split as follows:

x=X α X 1 +X β X 1 +X γ mod m

where X α , X β , and X γ are secret values and m is a modulus value.

16 . The non-transitory machine-readable storage medium of claim 10 , wherein the split variables are split into N portions using secret values, wherein N>2.

17 . The non-transitory machine-readable storage medium of claim 10 , further comprising:

instructions for converting a split output of the determined equivalent split variable expression to a single output corresponding to the output of the operation to be obscured.

18 . The non-transitory machine-readable storage medium of claim 10 , wherein the instructions stored on the machine-readable storage medium are a compiler.

19 . A processing system for obscuring software code including a plurality of operations, comprising:

a memory; and

a processor in communication with the memory, the processor being configured to:

identify an operation to be obscured;

determine an equivalent split variable expression for the operation to be obscured using split variables; and

replace the operation to be obscured with the determined equivalent split variable expression.

20 . The processing system of claim 19 , wherein the split variables are split into two portions.

21 . The processing system of claim 20 , wherein the split variables are determined using first and second secret multiplicative values and a modulus value.

22 . The processing system of claim 21 , wherein the split variables are further determined using a secret additive value.

23 . The processing system of claim 22 , wherein the equivalent split variable expression is arranged so that none of the first and second secret multiplicative values and the secret additive value are not observable to an attacker.

24 . The processing system of claim 20 , wherein the split variable x may be split as follows:

X=X α X 1 +X β X 1 +X γ mod m

where X α , X β , and X γ are secret values and m is a modulus value.

25 . The processing system of claim 19 , wherein the split variables are split into N portions using secret values, wherein N>2.

26 . The processing system of claim 19 , wherein the processor is further configured to:

convert a split output of the determined equivalent split variable expression to a single output corresponding to the output of the operation to be obscured.

27 . The processing system of claim 19 , wherein the processing system implements a compiler.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2015
From: HOOGERBRUGGE, JAN; MICHIELS, WIL
To: NXP, B.V.
Reel/Frame 035564/0601 →