Steganography

Steganography conceals the existence of a message, whereas methods of cryptography render the message unintelligible to outsiders by various transformations of the text.

Steganography Techniques

Example techniques include:

  • Arrangement of words or letters within an apparently innocuous text spells out the real message.
  • Invisible ink: substances used for writing that leave no visible trace until heat / chemical is applied to paper
  • Pin punctures: small pin punctures on selected letters are ordinarily not visible unless paper is held up in front of a light
  • Least significant bits of frames of an image (or sound file) For example, for a picture of resolution 2048x3072, each pixel contains 24 bits of RGB colour information, the least significant bit of each 24-bit pixel can be changed without greatly affecting the quality of the image.

Relative Advantages of Steganography

Advantages (w.r.t. encryption)Disadvantages
Can be employed by parties who have something to lose if the fact of their secret communication (not necessarily content) is discovered.Requires a lot of overhead to hide relatively few bits of information.
Encryption flags traffic as important / secret and may identify the sender or receiver with something to hide.Once the system is discovered, it is worthless.

Use-cases of Steganography

Watermarking

Watermarking is hiding digital information in a carrier signal; usually some kind of marker covertly embedded in a noise-tolerant signal such as audio (e.g. mp3) or image data (e.g. mpeg).

Link to original

Digital Rights Management

Digital Rights Management (DRM) is a class of technologies that are used by hardware manufacturers, publishers, copyright holders, and individuals with the intent to control the use of digital content and devices after sale.

Link to original

Composite (product) ciphers

Ciphers just based on substitutions or transpositions are not secure, however we can combine ciphers: a substitution followed by a transposition makes a new harder cipher.

Product Cipher

Product (composite) ciphers chain substitution-transposition combinations, it is the execution of or more simple ciphers in sequence so that the result (product) is cryptographically stronger than any of the component ciphers.

  • The idea is that a cipher with -bit key and -bit blocks allows a total of possible transformations rather than .
Link to original

Abstract

Most common complex ciphers in use before modern ciphers were rotor machines.

Idea of Feistel Cipher

Many symmetric block encryption algorithms in current use are based on a structure called the Feistel block cipher.

Block Cipher

A block cipher is an encryption scheme that breaks up the plaintext message into strings (blocks) of a fixed length and encrypts one block at a time.

  • Encryption: takes in input one block of bits of plaintext and key of bits, producing an output of one block of ciphertext of bits.
  • Decryption: takes in input one block of bits of ciphertext and a key of bits, producing an output of one block of plaintext of bits.

Link to original

With a block cipher that encrypts -bit plaintext to -bit ciphertext, there are possible different plaintext blocks. This means we have different transformations. For encryption to be reversible, each of the plaintext blocks must produce a unique ciphertext block.

Ideal (most general form of) block cipher

Can be used to define any reversible mapping plaintext-ciphertext. The -bit input produces one of possible input states, which is mapped by the substitution cipher into a unique one of possible output states, each of which is represented by ciphertext bits. The encryption / decryption mappings can be defined by a tabulation.

Problems with block ciphers

For a small block size (n = 4): equivalent to a classical substitution cipher and hence easily attackable.

For a large block size: usually not practical implementation and performance.

  • Mapping is the key.
  • Block : key bits
    • Block : key of bits = ( bits x rows)
    • Block : key of bits = ( bits x rows)

Feistel’s suggestion is to use an invertible product cipher, i.e. approximation to ideal block cipher for large , built out of components that are easily realisable.

S-boxes and P-boxes: confusion and diffusion

The Feistel cipher is a practical application of a proposal by Shannon to develop a product cipher that alternates confusion and diffusion functions.

Product ciphers chain combinations of substitutions and transpositions.

  • S-Boxes confuse input bits
  • P-Boxes diffuse bits across S-box inputs

Feistel Cipher

In a nutshell, the encryption / decryption works as such:

  • Partition input block into two halves
  • Process through multiple rounds (usually rounds) which
    • perform substitution on left data half (based on round function of right half and subkey)
    • then have permutation swapping halves

Details of Feistel encryption

The encryption input is a -bit plaintext block and a key .

The plaintext block is divided into halves and which pass through rounds of processing (here we use ) and then combine to produce a ciphertext block.

Feistel encryption round

Each round has the inputs:

  • and which are derived from the previous round.
  • Subkey derived from overall (subkeys are different from and each other).

A substitution is performed on by applying a round function to and then XORing the output with .

has same general structure for each round but parameterised by round subkey :

Then a permutation is performed by an interchange of the two halves of data. (the final round is followed by an interchange to undo the final round’s interchange in order to simplify decryption later)

Decryption

Decryption is the same as encryption but performed in reverse. The decryption input is the ciphertext, and the subkeys in reverse order ( to ).

The intermediate values of the decryption process are equal to the corresponding value of encryption process with two halves of the value swapped.

Parameters and design features of Feistel cipher

  • Block size Larger means greater security but reduced en/de-cryption speed. Greater security achieved by greater diffusion.

    New AES uses a 128-bit block size.

  • Key size Larger increases security but may decrease en/de-cryption speed. Greater security achieved by greater resistance to brute-force attacks and greater confusion. 128-bits is a common size.
  • Number of rounds Single round offers inadequate security. Multiple rounds offer increasing security (typically rounds)
  • Subkey generation algorithm and Round function Greater complexity means greater resistance to cryptanalysis

One of the strengths of the Feistel cipher is that each round of encryption and decryption has the general shape where the only difference is that: at each encryption round , the key is used, and at each decryption round , the key is used.

Math behind Feistel encryption / decryption

Show that the output of decryption round is equal to -bit swap of input to encryption round .

Let us take the ciphertext (equal to the -bit swap of output of round ) and use it as input to the same algorithm.

Let’s assume that and that .

Encryption side:

Decryption side:

Hence as required.

Correspondence holds all the way through the iterations

Inputs to iteration of encryption can be recast as a function of the outputs:

After rearranging terms:

Finally, output of last round of decryption is . A -bit swap recovers the original plaintext.

In general, for , we can prove that the output of decryption round (i.e. ) is equal to the -bit swap of the input to encryption round (i.e. ).

That is, we can prove the equation for .

We carry out the proof by induction, by assuming that we have already proved that the output of the decryption round is equal to the -bit swap of the input to the encryption round , by assuming and then showing that the output of decryption round is equal to the -bit swap of the input to encryption round :

Specific example of Feistel cipher

Consider encryption round corresponding to decryption round .

Supposed that -bit blocks (two -bit halves) with a -bit key. At the end of encryption round , the value of the intermediate block is ( and the value of .

Then and . We prove that and :

1 item under this folder.