September 21st, 2011, 04:56 AM
Hello to everyone,
I need some help with requirements related to an encryption algorithm. I'm new in cryptographic issues, so I'm mostly lost with this.
I need to add encryption to a system. I have to do this according to the following requirements:
The algorithm should be one that, for a synchronous transmission system, a pattern of 100 consecutive bits must not be repeated in the following 10.000.000 bits, Or, for an asynchronous transmission system, the algorithm must be one that, for a pattern o 100 consecutive bytes, it must not be repeated in the following 1.000.000 bytes.
I guess that the pattern repetition period has to do with the algorithm security level, but i have no idea about how to find an algorithm that meets this requirements. The algorithm has to be as tiny as possible, so I would like the simplest algorithm that can meet this requirements.
Any hint or help will be really welcomed.
Thank you in advance for your help.
September 24th, 2011, 10:50 AM
I don't see how to make sense of the stated requirements in cryptographic terms, if there is no constraint on the plaintext.
Ciphertext depends on plaintext. To my knowledge, any standard cipher can produce repeated blocks for certain plaintexts. As far as I can see, this could only be avoided by a cipher specially constructed to avoid repetition, that also has the property of ciphertext expansion (ciphertext is larger than plaintext by some factor, generally considered undesirable!)
For any modern high-strength encryption system, e.g. a strong block cipher used with any of the recommended block chaining modes, there exists for any given key and initialization state some non-repetitive plaintext that will encrypt to repeated bit sequences. The probability of accidentally obtaining such a result is extremely tiny -- but nothing about high-security ciphers guarantees that repeated bit sequences will not occur.
September 26th, 2011, 09:23 AM
Thank you for your answer, mah$us,
Maybe it has to do something with processing the plaintext before the encryption? I mean, adding "something" before the cryptographic algorithm that will make two possible similar plaintexts different (i.e. adding a different random number to each message sent). In other words, randomize the plaintext.