Chaotic Compilation A (Statistical) Cloak for a Secret Computer Peter T. Breuer ptb@hecusys.com
Hecusys LLC, Atlanta, GA, USA
Jonathan P. Bowen
London South Bank University, UK
Chaotic Compilation A (Statistical) Cloak for a Secret Computer - - PowerPoint PPT Presentation
Chaotic Compilation A (Statistical) Cloak for a Secret Computer Peter T. Breuer ptb@hecusys.com Hecusys LLC, Atlanta, GA, USA Jonathan P. Bowen London South Bank University, UK Background Encrypted Computing Data remains
Chaotic Compilation A (Statistical) Cloak for a Secret Computer Peter T. Breuer ptb@hecusys.com
Hecusys LLC, Atlanta, GA, USA
Jonathan P. Bowen
London South Bank University, UK
Background
Data remains in encrypted form
➊One plaintext, many encryptions
One address, many memory locations
data compromise the encryption ?
Crash course: Encrypted Computing
encrypted inputs encrypted outputs encrypted internals
To answer an unasked question
Modified arithmetic unit
➊Within standard processor logic
encrypted (1-to-many) computing
A Security Problem ...
goto hooray
➊… know x means 0, 2
➊… no matter the encryption
Human Bias
Introduce small numbers 0,1, 2, …
Success with higher than chance rate
Makes Known-Plaintext-Attack possible
Help from ISA Design
Malleability
➊∀ ins1 : x
✁y . ∃ ins2 : A[+]x
✁B[+]y
➊ins1, ins2 are indistinguishable to an
add t0 t1 E[1-A+B]
[+1] [+1-A+B]
Malleability and Chaotic Compilation
─ offset from nominal everywhere, different ...
Stochastic compilation
Chaotic compilation
statistically no relation between data at different points in runtime trace
Example – Ackermann(3,1)
Result = 13 Random trace entries Random program constants
The prime sieve (array/memory ex.)
Result = 7 (a prime) Random memory address Memory addresses are random, uniformly distributed
H-Max principle
code for e1 to go in t1 with offset E[k1] code for e2 to go in t2 with offset E[k2] add t0 t1 t2 E[k0-k1-k2]
⇒ The whole code has the property
⇒Traces vary to the maximal extent possible
H-min Condition
where two control paths join (h)
➊trailer instructions in each path synchronize deltas
bne t0 E[k0] else code for s1 leaves t1 with offset k1a add t1 t1 E[k1-k1a] ... b end else: code for s2 leaves t1 with offset k1b
... end: Two instructions share 32 bits of entropy (k1)
Remove H-min code ...
Unroll loops and inline function calls
⇒ Every piece of code is traversed just once ⇒ Only one instruction of group governed by H-Min executes ⇒ It gets all the entropy introduced by compiler for that group ⇒ Every instruction in the trace varies maximally ⇒ Data in the trace beneath the encryption is unrelated
(Shannon)
Security Proof
1.Unroll source code to exponential length in word-size n 2.Apply chaotic compilation 3.An attack of polynomial complexity in n falls in the
trace of the unrolled part
4.H-min does not apply there, so H-max does 5.Every data point beneath encryption is independent 6.Attack is an attack against encrypted random data
Encrypted computing does not compromise encryption
introducing maximum entropy
nominal values (beneath the encryption)
construction compiles with H-max principle