In this particular case, no. Not with the page table attack. What would help would be encrypting the mapping from virtual memory to physical memory—but that would GREATLY slow down execution speed.
I don’t think the “homomorphic encryption” idea works as advertised in that post—being able to execute arithmetic operations on encrypted data doesn’t enable you to execute the operations that are encoded within that encrypted data.
I don’t think the “homomorphic encryption” idea works as advertised in that post—being able to execute arithmetic operations on encrypted data doesn’t enable you to execute the operations that are encoded within that encrypted data.
A fully homomorphic encryption scheme for single-bit plaintexts (as in Gentry’s scheme) gives us:
For each public key K a field F with efficient arithmetic operations +F and *F.
Encryption function E(K, p) = c: p∈{0,1}, c∈F
Decryption function D(S, c) = p: p∈{0,1}, c∈F where S is the secret key for K.
Homomorphisms E(K, a) +F E(K, b) = E(K, a ⊕ b) and E(K, a) F E(K, b) = E(K, a b)
a ⊕ b equivalent to XOR over {0,1} and a * b equivalent to AND over {0,1}
Boolean logic circuits of arbitrary depth can be built from the XOR and AND equivalents allowing computation of arbitrary binary functions. Let M∈{0,1}^N be a sequence of bits representing the state of a bounded UTM with an arbitrary program on its tape. Let binary function U(M): {0,1}^N → {0,1}^N compute the next state of M. Let E(K, B) and D(S, E) also operate element-wise over sequences of bits and elements of F, respectively. Let UF be the set of logic circuits equivalent to U (UFi calculates the ith bit of U’s result) but with XOR and AND replaced by +F and *F. Now D(S, UF^t(E(K, M)) = U^t(M) shows that an arbitrary number of UTM steps can be calculated homomorphically by evaluating equivalent logic circuits over the homomorphically encrypted bits of the state.
Would this help?
In this particular case, no. Not with the page table attack. What would help would be encrypting the mapping from virtual memory to physical memory—but that would GREATLY slow down execution speed.
I don’t think the “homomorphic encryption” idea works as advertised in that post—being able to execute arithmetic operations on encrypted data doesn’t enable you to execute the operations that are encoded within that encrypted data.
A fully homomorphic encryption scheme for single-bit plaintexts (as in Gentry’s scheme) gives us:
For each public key K a field F with efficient arithmetic operations +F and *F.
Encryption function E(K, p) = c: p∈{0,1}, c∈F
Decryption function D(S, c) = p: p∈{0,1}, c∈F where S is the secret key for K.
Homomorphisms E(K, a) +F E(K, b) = E(K, a ⊕ b) and E(K, a) F E(K, b) = E(K, a b)
a ⊕ b equivalent to XOR over {0,1} and a * b equivalent to AND over {0,1}
Boolean logic circuits of arbitrary depth can be built from the XOR and AND equivalents allowing computation of arbitrary binary functions. Let M∈{0,1}^N be a sequence of bits representing the state of a bounded UTM with an arbitrary program on its tape. Let binary function U(M): {0,1}^N → {0,1}^N compute the next state of M. Let E(K, B) and D(S, E) also operate element-wise over sequences of bits and elements of F, respectively. Let UF be the set of logic circuits equivalent to U (UFi calculates the ith bit of U’s result) but with XOR and AND replaced by +F and *F. Now D(S, UF^t(E(K, M)) = U^t(M) shows that an arbitrary number of UTM steps can be calculated homomorphically by evaluating equivalent logic circuits over the homomorphically encrypted bits of the state.