The Nupster Story
back
Well, it was the week that Napster was supposed to, any minute now, start filtering
songs by filename. So I started talking to my friends and saying, "You know, there's an
easy way to circumvent this."
So I started hacking, talked to Jeremy
about crypto, had Lorna start testing
on a wild variety of OSes (and she made a super-cool icon too), while
Shawn was (of course) egging me on the whole time.

And, well, four hours later we had this cute little program that would encrypt all your filenames.
And, really, I have to say, we were done two days before the Aimster Pig Encoder was posted, and our stuff
was much much cooler than theirs.
But actually, I'm such a wimp about getting sued for billions of dollars, so I didn't post it. (No, I'm still not posting it.)
[screenshot - 5K]
At heart, though, I guess I like talking about cool tech more than anything, and this thing was cool.
I'll just excerpt from our tongue-in-cheek page describing the program:
|
Nupster is a program for personal cryptography, to help you protect your filenames from the
eyes of others.
We believe that filenames you put on your filesystem are
in fact your property (not the files' contents, of course, but the filenames themselves.)
Therefore, if you claim copyright on these, you're welcome to encrypt them,
and other people are prevented from decrypting, per the DMCA.
In this preview release, we've integrated Nupster with "Napster" to encrypt
the names of all your .mp3 files. As the program starts, it encrypts all your filenames, and
then when you quit (or tell it to), it restores them.
Inspired by some ideas about computing at the edge of the network
we've decided to use the huge amount of CPU power on boxes to do something useful: run a
very complex cryptographic algorithm.
We have designed our encryption so that it takes about one second per filename to encrypt.
We think that you could improve this speed a little bit, but probably not too much.
The system also supports changeable keys. You can think of keys as "channels" --
you can look at other files in your channel but not ones on a different channel.
Right now, there are about 2147483648 different channels on Nupster.
Along with the long encryption times, this makes mounting a centralized
dictionary attack against the system rather expensive. We expect that the computer cost
to effectively filter Nupster exceeds the record industry's annual revenue by several
orders of magnitude.
Nupster uses a one-way hash, which we have designed to limit "second-generation" copies.
This means, you can search for a song from the original licensee, but you can't easily
pass the song on without manually renaming it.
This is actually a very good feature, as it's been considered legal to pass first-generation
material to friends and to make various copies of this kind. Our system improves the legal
status of Napster by quite a large degree.
Anyway, on the tech side, we did something very simple: we ran SHA-1 a whole lot of times recursively
on a tokenized version of the filename. We mixed in random deterministic junk at each stage just
in case someone figured out how to invert SHA-1 (not really likely.)
I think the implementation ran SHA-1 about 100,000 times per word, and then spit out each word
as a new ASCII token that looked something like a word. You can see this in the screenshot above.
In addition to that, we had a seed value (a long integer) that would effectively make "channels" for
different sorts of content or groups of people in the namespace. We considered broadcasting a key for each
day, by various scalable schemes (one of the cooler ones including dropping the information in a DNS record
with a fast expiration.) In the end, this seed became user-settable.
I guess the nice thing is that with Relatable's technology, none of
these attacks or ideas really have teeth anymore, and that way I can post the story.
So, I guess for this week, at least, you can breathe easy that copyright is being protected online.

|