Git Product home page Git Product logo

pynchon-gate's Introduction

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.

pynchon-gate's People

Contributors

abiggerhammer avatar crooks avatar nmathewson avatar tomrittervg avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.