## Palimpsest Encryption

Palimpsest Encryption is a one-to-one encrypted network communications
tool. It is currently in beta testing.
Palimpsest was developed in the Java programming language, for ease of use
on any available platform. The goal of this project is to create a perfectly secure method to communicate
over insecure channels (such as the open Internet).

Current goals/specifications include:

- Palimpsest must never reveal plaintext
*P*_{n} without key
*K*_{n}

- Similarly,
*K*_{n} should __never__ be distinguishable
without *K*_{(n - 1)}. Assuming our initialization vector is
secure (using a fairly small (4kb or so) key sent via a secure courier
or transferred across a network using a TLS packet with AES-128 as the
algorithm, this is a safe assumption), the IV will __never__ be
vulnerable, ergo the stream is secure.

- Due to a mutating key, captured data should
__never__ be vulnerable
without the IV.

After many, many hours of coding, Palimpsest is finally being released in
open beta. We currently do __not__ have a GUI, but if you're a good Java
GUI programmer, please don't hesitate to email me (palimpse *(at)* darkc0de.org)
to let me know- it wouldn't be too hard of a graphics project, but it would be
a huge help!

**We are currently having issues with the SourceForge.net SVN
(Subversion) Repository, which means our code is **__not__ hosted at SF.net!
While we figure out this problem, we're hosting all of our code over at Google-
check out our releases at **
http://palimpsest.googlecode.com/svn/branches/**, and our nightly builds at **http://palimpsest.googlecode.com/svn/trunk**. I hope you enjoy Palimpsest!

For those new to cryptography, a mathematical representation of our one-time pad algorithm can be seen here:

Given Plaintext P

Given Key K

Length of P = Length of K

C_{n}(P_{n}, K_{n}) = (P_{n} XOR K_{n})

Message Sent:

C_{n}

+ K_{(n + 1)} XOR K_{n}