-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathREADME
105 lines (68 loc) · 3.51 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
PROJECT OVERVIEW:
This is an in-progress attempt to implement the Pynchon Gate, a
pseudonymous email system designed by Len Sassaman and Bram Cohen,
tweaked by Nick Mathewson.
If you are not interested in software that breaks a lot, or if you
insist upon it actually doing something useful to you when it doesn't
break, then this is probably not for you yet.
For more information about the Pynchon Gate, have a look at the papers
at
http://freehaven.net/anonbib/#sassaman:wpes2005
and
http://freehaven.net/anonbib/#cosic-2007-001
and the spec at
http://freehaven.net/pynchon/doc/pynchon-spec.txt
Please take that version of the spec with a grain of salt; it hasn't
been updated in a while, and it probably has some crazy over-
engineering and some big missing points.
Nick Mathewson is writing the code; it is released under the "MIT"
license. Nick might release it under a different license later; if
you would not be okay with that, please talk with Nick before sending
him any code or patches.
A fully complete Pynchon Gate implementation will have these pieces:
* Nymservers that receives incoming mail for keyholders, encrypts
it to their keys, and preferentially decides what pieces of the
mail to ship first, while not shipping more than any user's quota
at a time.
* A remailer interface to the nymserver that allows keyholders to
send pseudonymous mail from their accounts, change their
account settings, open new accounts, and so on.
* A collator (one per nymserver) that takes all of the mail that
ought to go to each user, packages it in a hash-tree-like bucket
structure, and publishes it to a set of distributors.
* A set of distributors that run a PIR protocol so that users can
download their mail without leaking their identity to any
participant.
* A utility that runs on the distributors to fetch mail from the
collator.
* A user client that decides which buckets to fetch and fetches
them, and handles communications with the nymserver on behalf of
the user.
* A high-latency anonymous channel (like Mixminion) for sending
messages to the nymserver.
Right now, the only parts that are implemented are the distributor
code and the collator code.
The distributor is called "Inverarity". It aims to be really fast, since the
distributors are likely to be the performance bottleneck of the whole
system.
See src/inverarity/README for more information about its status and
how to try it out.
The collator is called "Maas". It's written in python and totally
untested at the moment.
See src/maas/README for more information about its status and
how to try it out.
The next parts I'd like to work on are the stub of a client,
tentatively to be called "Prentice" or "Pointsman" or something; and
the more crypto-heavy part of a nymserver, possibly to be named
"Stencil" or "V." or "Cherdlu".
I'm aiming for the server parts to be clean and fast first; portable
second. I want them to run on recent versions of the free unixes; osx
is okay too since it's close enough. I do not plan to port them to
Windows. The client-side parts, on the other hand, should run
everywhere.
More help is welcome. Please don't assume I'll have time to do very
much very fast--I'm spending most of my time on another privacy
project. Also, please no naming stuff after characters in Thomas
Pynchon that I don't want to have to explain to my nieces.
This work is dedicated to the memory of Len Sassaman, who would have
wanted to know what took us so long.