# ASCII: weakness

Suppose I have an encryption function $e$ of a symmetric cipher with plaintext space

$$\mathcal{M}=\{1,2,\ldots,2^{24} \}.$$

Now, consider a list $L$ of integers:

$$67, 114, 121, 112, 116, 111.$$

Decoding $L$ with the ASCII encoding scheme (see http://www.asciitable.com/) gives the word (plaintext) Crypto.

My teacher says that there is a weakness in using the ASCII encoding scheme together with the above mentioned cipher, such that encoding and encrypting the word Crypto results in the six ciphertexts

$$e(67),e(114),e(121),e(112),e(116),e(111).$$

I do not understand the claim: Any hints?

-
Looks like this is basically ECB mode. Look up ECB mode weaknesses. – mikeazo Jan 30 '14 at 12:40
I notice you've just edited your question to clarify it. Was that for any future readers (if so, thanks!) or does my answer not solve your issue? – figlesquidge Jan 30 '14 at 17:25

As per request, some hints. Suppose you are an eavesdropper and you intercept the encryption of 'Crypto'.

• What is the encryption of p?
• What is the encryption of CopytopCrypto?
• If we were able to get the message abc...zAB...Z .," encrypted, what messages could we calculate the encryptions of then?
• $(\dagger)$Suppose you intercepted a later message, which was either Ya or No (yes/no would be even easier to differentiate between since they are different lengths!). How could we use what we've learnt from intercepting Crypto to ascertain which message was sent?

As you will see, just intercepting the encryption of 'Crypto' has allowed us to create certain fake messages.

This mode of operation is known as ECB has many weaknesses.

$(\dagger)$ Note that this assumes the encryption method was deterministic, which it may or may not be (in my area we always assume that $e(\cdot,\cdot)$ would be a deterministic function, where we 'supply' randomness as one of our inputs.

-
Thanks! As I understand it, this method of encryption is susceptible to decryption by frequency analysis (?). – bobbo Jan 30 '14 at 13:03
That is also true, but is not one of the points I was making in my list - my point was that you already know what e('p') is if you knew that Crypto was encrypted... – figlesquidge Jan 30 '14 at 13:04
Hmmm... So the encryption of p is e(112) and the encryption of CopytopCrypto is e applied to each letter. Hence, e applied to the second letter is e('o'); and so, if we know that a message of length two is sent, which is either the word Ya or No, then we can ascertain that it is No if the last sent ciphertext is e('o'); else, it is Ya. (?) – bobbo Jan 30 '14 at 13:14
Correct. Note that the last point assumes that there is only one value of e('o') (but you've given the solution I had in mind). If your question is answered, don't forget to mark it as such [and upvote if you found it helpful ;) ]. If not, you might want to consider updating the question to clarify what a good answer should do – figlesquidge Jan 30 '14 at 13:21