I was thinking. And I was searching the Internet. I want to check if there is more than I found. I considered asking on crypto.se. But the question might involve hardware and out of the box thinking.
If I have a threat model where
the adversary
- wants to corrupt computation or steal information
- does not want to be noticed at all (or at least until I made sensitive computation)
- knows the software I use
- does lie about and modify higher hardware such as CPUs before handing it out
- can not access the hardware directly later
I
- want to compute correctly and secretly (or and at least prevent theft of sensitive information)
- want to exchange information with the outside
- have access to mathematically verified software (and additionally have access to clean hardware for Bootstrapping only)
- can check lower hardware such as wires for manipulation and can repair or rewire
- can not check higher hardware for manipulation
In brackets (...) are some weakened requirements.
Thoughts:
I saw fully homomorphic encryption (FHE). It does arbitrary computation but encrypted. Wikipedia knows two open source projects that do that. They do not seem to be mature and tested. But I think FHE could do correct and secret computation. Authenticated output is also possible. But I can not check it by hand each time. If I want human-readable information the graphic card can manipulate everything.
I think that I could give two computers the same input. Then make them simulate the same program. And compare the output with some simple electronics. They can not talk to each other like this. That could work if they tried to do a wrong thing independently. Like if China and the USA do not share access to corrupted hardware. You buy one from each. They would not give access to half of the national hardware to the enemy. But they are intelligent and could use a key based approach. They could share the single key. Then your corrupted hardware does the wrong thing at the same time. It is not detected.
I think that I could make many computers do different little computations. And check the groups for correctness. But only keep the computation I wanted. They can not know what the others saw. They can not coordinate the moment to do the wrong thing. But there are problems. Real time is a good coordinator. I could compute, scramble and check. Greater patterns with rare events are good coordinators. I could use steganography. But it will not be good if there is no proof. But I think denying coordination and checking could work.
Questions:
An other thing is the verifiable electronics. I asked as a spin-off "How can a IC (or transistors or diodes) design make it difficult for a malicious manufacturer to subvert it undetected?" on Electronics. Unfortunately it was put on hold and will be closed as off-topic. It was not possible for me to make it fit “electronics design within the scope defined in the help center”. I did get a useful hint in this Kafkaesque story from user jbord39.
“It is called designed for trust, or DFT. Typically ring oscillators or heat transducers are used to verify that no malicious hardware has been squeezed into your filler space (since doing so will necessarily either increase power or increase nodal capacitance).”
I will update after I looked at it.
Anyways I do not see a way at the moment. Are there are working systems? I do not find any. Or there might be research? Or you have thought of a different way?