The Dining Sternlight Net ========================= Objective: ---------- To create a system of communication among N parties that features sender and recipient untraceability, while frivolously expending Usenet bandwidth. Protocol (Net formation): ------------------------- N participants (up to 25) post the following to alt.fan.david-sternlight: Subject: Join DS Net BEGIN DS NET <128-bit hexadecimal random number> END DS NET Net moderator (initially mccoy@binky.cc.utexas.edu) posts a close of entries message containing a full list of net participants, along with their random numbers and PGP keys. Moderator will also chose a Net Name, which will be employed by participants to indicate what net they are participating in. Hereafter Subject lines will read: A MD5 digest hash of the postings to cypherpunks dated by toad.com between midnight and noon of the day following close of entries is generated. Random numbers are encrypted using DES with the lower 56 bits of the hash as key, thus creating the "Ordering Value" of each participant. The "Ordering Values" of the participants will be posted by the moderator with Post Type "Net Order", but the values can be checked by all. Protocol (Message passing): --------------------------- Participants all generate and save Int(N + (N * .2)) * 1024 random bits, which are encrypted using the PGP public key of the person whose Ordering Value places them immediately before theirs, except for the participant with the lowest Ordering Value, who encrypts with the PGP key of the participant with the highest Ordering Value. The encrypted block is posted to alt.fan.david-sternlight with Post Type: "Pass Left" Participants now build the "Difference Block" from their saved random bits and the random bits they retrieve from the newsgroup encrypted with their public key. The block is initially constructed by XOR of the saved bits with the bits retrieved in the "Pass Left" posting. The Difference Block is to be viewed as a collection of 1K sub-blocks. Participants will randomly choose one of the blocks to attempt to transmit their message, by XOR of their message with the bits of the selected sub-block. The resulting block is posted to the newsgroup with Post Type: "Difference". After retrieving all of the posted Difference Blocks, anyone can XOR the blocks together and view the "Result Block". Moderator will post official results with Post Type "Results", which will be conveniently separated into separate messages. If the 1k sub-block selected by a participant does not yield their original message in the Result Block they have suffered a collision. All participants who collide should not overlay a message in the following round. After observing the following round, participants who have collided select randomly from the empty blocks of that round, and attempt to send again. Wash, Rinse, Repeat. Additional Aspects: ------------------- To send a private message, participants should encrypt with the public key of the indended recipient. All participants who have not collided in the previous round must post a message (even if it is just random gibberish). If the net must be re-formed for any reason, the remaining participant with the Ordering Value closest to the MD5 digest of the last complete round of Result Blocks following the announcement by the previous moderator that the net must be reformed, or following three days of no postings by the moderator to alt.fan.david-sternlight. Although it was initially decided to announce this on both cypherpunks and the newsgroup, to maintain the proper degree of rude shock and befuddlement on alt.fan.d-s, we recommend that the protocol simply commence. Brought to you by: ------------------ The letter K, the number 2^644 - 1, and the Austin Cryptographer's Workshop. Acknowledgements: ----------------- The ACW wishes to thank Katz's Deli for providing the caffeine and bagels which made this project possible. From: cman@IO.COM (Douglas Barnes)