Finding an algorithm for certain license keys

I am trying to take several serial keys for one program and find the encryption algorithm in order to code a keygen. I am a computer science student and am currently learning C and Java. This is for educational purposes and the serial keys that I have are to programs that I do not need. I am at school right now, so I do not have the product numbers with me. However, they are very similar to the windows 98 product keys. They are in this format (IE: ADSKFJ-23JD34-3JFK8D-I3JFSL).

Finding the algorithm may not be possible, but it seems like it is possible to do. I am not disassembling any executables to find the algorithm, just using arithmetical computation. I just finished printing off about 20 pages on common algorithms such as RSA. I read about block ciphers, asymmetric cryptosystems, and such (http://en.wikipedia.org/wiki/Categor...hic_algorithms). I just started this little project last night, but I am kind of unsure where to start or what type of Algorithm is used for keys such my example. Can anyone give me a clue as to what type of algorithm is most likely used, or give me an idea if this is even possible?

Thanks,

Nate

obviously a misunderstanding

I am sorry that my grammer is not web police safe, but a "keygen" is my southern accent for "key generator". I just want to learn the equations(algorithms) to decypher a certain code of a certain length which I mentally generated in my "example". I thank you for offering your help, but that site did me no good whatsoever. I know how to use SoftIce, IDA, Hiew... etc... my point is not to make a "keygen", my point is to educate myself on how to encrypt and decrypt a 24 byte key and I prefer to use my notepad which I do calculus on. Thanks for your help, but please try to understand what I am saying here.