Any additively homomorphic encryption works,
Paillier or not, provided it fits, etc., and no key is re-
quired. But Paillier needs a ‘table of signs’, discussed
below, that effectively limits its applicability to 32-
bit computing at present, no matter what block or key
size is used. An additive homomorphic encryption in
which the sign were also obtained homomorphically
would remove that limit, and we hope for one in the
near future. However, known homomorphic encryp-
tions are very ‘wide’ for the same level of security
as symmetric encryptions and that will always give a
performance hit in comparison.
Vulnerabilities. If an attacker has a scanning
electron microscope or similar advanced physical
probes, then a Rijndael encryption is vulnerable to it
because there is a codec (encryption/decryption de-
vice) forming part of the processor pipeline, as de-
scribed in Section 4. However, vulnerable areas will
normally be buried deep inside the chip in a produc-
tion model, as in the ubiquitous modern smartcard
technology (K
¨
ommerling and Kuhn, 1999). The ar-
rangement here is not less secure. Keys for the codec
may be built in at manufacture, as in a smartcard, or
managed via an established key management technol-
ogy. But key management for symmetric encryptions
is emphatically not relevant for this paper’s aims.
That is partly an issue for a business model and partly
for future research directions and we do not want to
gainsay the eventual answer here. The CIA (US Cen-
tral Intelligence Agency) is not going to want to share
their computers, for example, so one key per proces-
sor might be fine for them. If a key is to be lodged
in the codec just before use, that may be handled by
a Diffie-Hellman circuit, such as (Buer, 2006), that
can secretly transfer the key while never exposing it
in registers or memory or on buses. It does not matter
in principle if the wrong user runs when that key is
installed, as the user cannot read the results or enter
data that makes sense, nor compile a nontrivial pro-
gram that will run. Whether that user can somehow
devise programmed experiments that reveal the key is
the same question as whether the operator can, so key
management is in that sense an orthogonal issue.
Notably, there are no codecs or keys involved with
the Paillier encryption in the processor. In principle
our simulations might be run in full public view. The
parts of the processor taken up by the codec for Ri-
jndael are occupied instead by the Paillier ‘addition’
on encrypted data. That is 72-bit multiplication mod-
ulo m, with no encryption or decryption. That can
be done in hardware in one or two stages, but we en-
visage a production machine using 512- to 1024-bit
Paillier, which would require many more stages, so
our simulation pretends 10 of 15 pipeline stages are
required even for lowly 72-bit Paillier addition.
Exceptional Stresses with Paillier. In using
the Paillier encryption we follow (Tsoutsos and Ma-
niatakos, 2013; Tsoutsos and Maniatakos, 2015),
where a ‘one instruction’ stack machine architec-
ture (‘HEROIC’) for encrypted computing embed-
ding a 16-bit Paillier encryption is prototyped. In
conjunction with a lookup table for the signs (posi-
tive/negative) of encrypted data, the Paillier addition
is computationally complete (any computable func-
tion can be implemented using addition, the table, an
encrypted 1, and recursion), and addition, subtrac-
tion, and comparison machine code instructions suf-
fice to write software routines for the rest. The 72
bits is the most that is convenient without alterations
to our compile strategy to place encrypted constants
in memory rather than inline in the machine code,
and is not a hard limit. The problem is that 72 bits
does not fit in 32-bit instructions, and the sequence
is already ‘prefix; prefix; instruction’ for each inline
constant used, so increasing the number of bits would
further reduce the proportion of ‘real’ instructions in
code, affecting performance.
However, we believe the table of signs is a vul-
nerability in practice (see Section 5). It is also
very large, consisting of 2
31
× x rows of 72 bits,
where x is the number of different encryptions of
each (negative) number. That is hundreds of GBytes,
perhaps TBytes, and it is a concern with present
technology. Still, motherboards are available now
with TBytes of RAM (see for example the Super-
micro Xeon 7000 range at supermicro.com/products/
motherboard/Xeon7000/), so we expect that concern
to diminish in the future. We have ‘cheated’ in our
simulation by computing rows of the table externally
on demand and caching them locally to the processor.
Software Engineering. OpenRISC’s ‘or1ksim’
simulator project has been modified to run the pro-
cessor prototype. It is now a cycle-accurate simu-
lator, 800,000 lines of finished C code having been
added through a sequence of seven successive mod-
els. The code archive and history is available at
sf.net/p/or1ksim64kpu.
Historical use of Encryption in Computing. At-
tempts at creating a processor that works with greater
security against observation and tampering have reg-
ularly been made in the past. One of the earliest land-
marks is a US Patent “Tamper Resistant Microproces-
sor” (Hashimoto et al., 2001) which states “it should
be apparent to those skilled in the art that it is possi-
ble to add [a] data encryption function to the micro-
processor . . . ”, meaning that codecs could be placed
between processor and encrypted content in memory.
However, a codec on the memory path, adding la-
SECRYPT 2016 - International Conference on Security and Cryptography
242