Skip to content

Chapter 6.1 (Block Ciphers | Description) is confusing #432

@megafinz

Description

@megafinz

First of all, the illustrations seem to be wrong as mentioned in other issues. So probably most of the confusion can be eliminated by looking at correct visual explanations of the concepts.

We illustrate this by looking at a block cipher with an impractical, tiny 4-bit block size. 2^4 = 16 possible blocks.

This doesn't make much sense to me. Why does block size determine number of possible blocks? How do we divide plaintext into blocks in the first place? I had an impression that what we do is choose a size for a block and then just split plaintext sequentially into chunks of that size, i.e. plaintext of size 40 split into blocks of size 16 will contain 40/16 = 2 full blocks and 1 partial block. Probably this is not the case at all so would be nice to have some ELI5 explanation before introducing the example.

In Figure 6.2, note that the permutation is not just one big cycle. It contains a large cycle of 7 elements, and several smaller cycles of 4, 3 and 2 elements each.

Term "cycle" appeared out of nowhere. What is a cycle in this context? I though we are taking plaintext blocks, encrypting them and "mapping" to ciphertext blocks (e.g. encrypted block 1 of plaintext becomes block 5 of ciphertext, and this 1→5 mapping is determined by key). Probably this is not the case either so I have no idea what's going on.

It is also perfectly possible that an element encrypts to itself.

What does that mean? To me this sounds like block of plaintext is identical to a block of ciphertext. That would be silly so I guess it means something else.


At this point I'm ready to throw the towel because it's the very beginning of the book and I'm already having trouble understanding the basic concepts without having to consult other sources of information, which probably defeats the purpose of 101.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions