Abstract: |
This paper explores a new approach to encrypted microprocessing, potentiating new trade-offs in security
versus performance engineering. The coprocessor prototype described runs standard machine code (32-bit
OpenRISC v1.1) with encrypted data in registers, on buses, and in memory. The architecture is ‘superscalar’,
executing multiple instructions simultaneously, and is sophisticated enough that it achieves speeds approaching
that of contemporary off-the-shelf processor cores.
The aim of the design is to protect user data against the operator or owner of the processor, and so-called
‘Iago’ attacks in general, for those paradigms that require trust in data-heavy computations in remote locations
and/or overseen by untrusted operators. A single idea underlies the architecture, its performance and security
properties: it is that a modified arithmetic is enough to cause all program execution to be encrypted. The
privileged operator, running unencrypted with the standard arithmetic, can see and try their luck at modifying
encrypted data, but has no special access to the information in it, as proven here. We test the issues, reporting
performance in particular for 64-bit Rijndael and 72-bit Paillier encryptions, the latter running keylessly. |