Magnus Warker wrote:
What about Kevin's posting? He noted that encrypting sequential numbers
would reveal the encryption key?
Not with a secure encryption scheme. Knowing the plaintext gives a
'known plaintext attack'. Both DES and AES can resist known plaintext
attacks.
Could you please explain this? I haven't used encryption in Java, but I
would expect that the encryption method should be independend of the
size of the data to encrypt?
DES and AES are block cyphers. DES uses a 64 bit block while AES uses
a 128 bit block. Any plaintext is padded to the next block and the
resulting cyphertext is always an exact number of blocks. If you are
encrypting 64 bit numbers, then use DES with no padding (since you
already have a full block). If you used AES for a 64 bit input then
you would get a 128 bit output. You could truncate it, but then there
is no guarantee of uniqueness. A block cypher is a keyed one-to-one
mapping between blocks, or is can be seen as a keyed permutation of
blocks.
For variable sized cyphertext output you would need a stream cypher.
However, I would not suggest that as you will need a different
key/nonce for every number that you encrypt. Reusing a key/nonce is a
big mistake when using stream cyphers.
Hasty Pudding cypher can be used with different block sizes, though it
is not common in crypto libraries. DES and AES are present in all
crypto libraries.
Magnus, you need to understand how Usenet works.
You are not going to learn all about cryptography by asking here. Best people
here can do for you is point you to research areas.
are missing all the value offered.
Study. Don't expect to be spoon-fed everything you need to know, especially not
here.