Basically, when one has a compromised computer or network, it is difficult to begin negotions with an online entity. Once two 'people' know each other and share public keys, private or at least unaltered communication becomes much more likely.
Compromised Computer: A Solution
Can you ever trust your computer to be completely safe? Windows loves to update and so do computer manufacturers and everyone else, it seems. Even your printer software wants to update. It would be nice, especial for PCs, to be able to focus trust on only one group, known as honest and reviewed by others.
My idea is mostly for desktops, and might be a little far fetched but useful in concept. Lets take a pc motherboard. You give it the ability to divert keystrokes and control a portion of monitor output. These special functions could also turn on a check light on the board, when running.
So a special program allows one to send small data to the motherboard. It first acts to bypass all other parts of the computer, turns on the light and takes over part of the screen. Thus it bypasses all viruses, OS and other software.
Example Case
For example, you open mbss (motherboard safe software) and check that the light is on. A certain looking window comes up, triggered by the program. In this bypass window you can create a random private key and alter the key yourself. It sends the resulting public key to mbss, if wanted.
Also in the bypass window, you can encrypt a message. To begin a relationship with some entity, you may type personal information in a message that then acts as an unique introduction, along with your public key. The bypass system encrypts the text and sends it to the mbss program, which you can then send out somehow.
Even on a compromised computer, this is just a bunch of random characters. At most, the message is stopped. Otherwise, a message encrypted for you may come back, readable only in the bypass window using the private key.
To compromise this computer, one must physically examine the board in person, and replace it with a duplicate.
Compromised Network
I have spoken elsewhere about one-way hash-based communication. By encrypting ongoing messages through time and later releasing the keys for each message a few steps down, you can guarantee unaltered messages, even by those in the middle with your decryption key and the sender's encryption key, as long as you know that the first message is athentic.
To interact with a bank, government or large system one may need to download the public key. This key can be a 'vanity' address, such that it is very expensive to make a similar looking duplicate. For example, 1JPMorganBankemKRaPmRDMpe6bJrB5EoM. Once you check online and reconfirm by phone, you can be confident in this key.
Then you can introduce yourself with your public key (sent encrypted), so the two of you can communicate. This part, to be safe, could be done using the above special motherboard.
If there are any flaws in my thinking, let me know.