Publius Censorship Resistant Publishing System

[ Publius Home | Use Publius | Download Paper | Code | Volunteer | Thank You ]


Publius is a Web publishing system that is highly resistant to censorship and provides publishers with a high degree of anonymity. Publius was the pen name used by the authors of the Federalist Papers, Alexander Hamilton, John Jay, and James Madison. This collection of 85 articles, published pseudonymously in New York State newspapers form October 1787 through May 1788, was influential in convincing New York voters to ratify the proposed United States constitution.

Why this is important

The publication of written words has long been a tool for spreading new (and sometimes controversial) ideas, often with the goal of bringing about social change. Thus the printing press, and more recently, the World Wide Web, are powerful revolutionary tools. But those who seek to suppress revolutions possess powerful tools of their own. These tools give them the ability to stop publication, destroy published materials, or prevent the distribution of publications. And even if they cannot successfully censor the publication, they may intimidate and physically or financially harm the author or publisher in order to send a message to other would-be-revolutionaries that they would be well advised to consider an alternative occupation. Even without a threat of personal harm, authors may wish to publish their works anonymously or pseudonymously because they believe they will be more readily accepted if not associated with a person of their gender, race, ethnic background, or other characteristics.

How it works

Our system consists of publishers who post Publius content to the web, servers who host random-looking content, and retrievers who browse Publius content on the web. At present the system supports any static content such as HTML pages, images, and other files such as postscript, pdf, etc. Javascript also works. We assume that there is a static, system-wide list of available servers. Publius content is encrypted by the publisher and spread over some of the web servers. In our current system, the set of servers is static. The publisher takes the key, K that is used to encrypt the file and splits it into n shares, such that any k of them can reproduce the original K, but k-1 give no hints as to the key. Each server receives the encrypted Publius content and one of the shares. At this point, the server has no idea what it is hosting -- it simply stores some random looking data. To browse content, a retriever must get the encrypted Publius content from some server and k of the shares. Mechanisms are in place to detect if the content has been tampered with. The publishing process produces a special URL that is used to recover the data and the shares. The published content is cryptographically tied to the URL, so that any modification to the content or the URL results in the retriever being unable to find the information, or a failed verification. In addition to the publishing mechanism, we provide a way for publishers (and nobody else) to update or delete their Publius content. Publius also provides a way to publish several files at once and to publish mutually hyperlinked material.

Project Members

Lorrie Cranor

Avi Rubin

Marc Waldman

User Contributions

John Lewis - Java Servlet version of the Publius server software

Publius In The News

The Industry Standard (9/13/2000)

The Industry Standard (8/21/2000)


Yahoo News

Washington Post

New York Times

CNET News 8/7/2000

CNET News 6/30/2000

Associated Press

Some Related Sites

Anderson's Eternity Service

Usenet Eternity

Charles University Eternity Service

TAZ and Rewebber

Freenet Project


Intermemory Project

Free Haven


Hash Cash

Publius is supported by USENIX