10

How does a small block size reduce the key space? Let $b$ be the block bit size of a block cipher. There are $2^b$ possible block values, for a plaintext, and for a ciphertext. For a fixed key, there is a single ciphertext corresponding to any given plaintext, and vice-versa. A key and the block cipher thus implement a bijection on the set of $n=2^b$ ...


7

Why are block ciphers mostly used as stream ciphers? CTR mode doesn't need padding like the CBC mode that caused many attacks over the years knowns as the padding oracle attack [1] [2]. Finally, CBC is removed from the TLS, TLS 1.3 has only CTR mode ciphers (rfc 8446). +------------------------------+-------------+ | Description ...


2

ECB and CBC require padding or a scheme called ciphertext stealing if the size of the messages is not a multiple of the block size. Commonly a scheme such as PKCS#7 padding is applied, quite often by default (i.e. without you explicitly specifying it, e.g. OpenSSL defaults to PKCS#7 compatible padding). Such padding schemes are created to apply for messages ...


1

This will depend on the language that you implement in. Java and other C-like languages have a built-in data type to represent unsigned 32-bit integers (this is why RC6 chose to use this form of arithmetic, so that its implementation in these languages is relatively straightforward). In such cases +, -, and * all automatically work mod $2^{32}$. If you're ...


1

You should not use XXTEA, especially in its large-block variant. It's reported as broken, and that seems very credible. Some of the problem is with the overly aggressive $6+52/n$ rounds, but beside this, the cipher has not attracted wide review. This question discuss other variants of TEA. Except in the specific cases that you need an all-or-nothing ...


Only top voted, non community-wiki answers of a minimum length are eligible