Re: Creating unique, non-reproducible serial ID
Date: Thu, 08 Mar 2001 11:51:21 -0800
Message-ID: <3AA7E2B9.19627FD8_at_uci.edu>
> >I'm looking for an algorithm to create a serial ID that I can give to users,
> >encrypted in a away that they will not be able to recreate other serial IDs.
>
> You can make it hard, but never impossible, cuz they can always guess
> and guess and guess and just get lucky.
That's for sure. But it depends on what application the ID is to be used for.
In fact, just about anything that doesn't use encryption or server-hosted code (ie. parts of the code can only be accessed online on your servers and can't be downloaded), has been bypassed, easily (we're talking a few minutes here). Children can easily bypass most protection schemes with the common online tools available.
Encryption will work, but then requires more work on your end - you'll have to wrap the parts of the program/data you are protecting with the unique ID (or add the user ID to the allowed decrytion keys). However, this tends to be very, very difficult to bypass even with brute-force, distributed cracking - ala Adobe Font discs - and works extremely well. However, once the program/data has been decrypted, it can be reverse engineered and extracted - however, most people tend to be too lazy to do this even if they know how. PGP comes to mind as one method.
--
If the problem is to generate a unique serial ID only, then simply make it a very
long , random looking string. The longer the better, and guessing the correct,
let's say, 100 value ID is far harder even by brute force than a 10 value ID
string.
Even a few basic operations starting out with a random number and a few
operations on a long ID string can produce difficult to guess IDs.
Even converting a person's unique name into numbers with a lookup table will suffice here.
The basic book " Codes, Ciphers and Other Cryptic and Clandestine
Communication: 400 Ways to Send Secret Messages from Hieroglyphs to the Internet" by Wrixton is a decentlyeasily to understand book covering the numerous ways that have been attempted to hide information, and there's ideas there as to what works and doesn't.
One idea is to use an elliptic curve algorithm to generate such serial IDs. They can be very difficult to reverse engineer (ie. if you don't know the generating function, it's hard to guess the valid IDs). http://www.cryptix.org/resources.html#ECC
--
You don't want to use the credit card number idea because that's already been reverse engineered.
-- Received on Thu Mar 08 2001 - 20:51:21 CET