> We need to break this down like any traditional problem and remove irrationality. What, exactly, is the problem we want to solve? What prevents existing technology from solving that problem?
1) We want Ann and Bob to be able to communicate. Both Ann and Bob must know that they are actually talking to each other, and not to Eve pretending to be Ann or Bob. Eve must not be able to understand what Ann or Bob are saying to each other.
2) We want Anonymous_Person to be able to send a document to Bob. We don't want Eve to be able to work out who anonymous_person is. We don't care if Eve can read the document.
These two are already possible, but hard. Subtle flaws can mean totally broken. Huge amounts of money and research and effort goes into making computer OSs and interfaces easier to use, but there is very little happening around making cryptography and anonymity easier to use. Thus, good quality, short, readable, documentation would be very useful. And much better interfaces and workflow for existing software would also be helpful.
3) We want Anonymous_Person to be able to send a message to Bob. We want Anonymous_Person and Bob to be able to know they are talking to each other, and not to Eve pretending to be one of them. We want to make sure that Eve cannot read the message. And we want to make sure that Even cannot tell who anonymous person is.
This is very hard. It requires advanced knowledge, and strict discipline, and very careful use of complicated tools.
Then there are a bunch of expectations. "We cooperate only when given a validly formed legal document; and we resist those if we think they're too broad" is one. Perhaps some kind of Privacy Charter? A bit like the GNKSA[1] (Good Net Keeping Seal of Approval) - and companies can have a checklist of things they do to meet the charter.
[1] (http://www.gnksa.org/)