The Serpent Cipher’s Key Schedule Transform is Injective.

This article is a continuation of the previous, and concludes the series.

Let’s try this somewhat different variant of the program, which represents recurring bits of the expansion symbolically (and in a slightly more readable form) [...]

The Serpent Cipher’s Key Schedule Equation System, in Graphical Form.

This article is a continuation of the dig into the key schedule of the Serpent cipher.

For clarity, we will omit the routines already given in the previous article.

Let’s visualize the Serpent [...]

Serpent Cipher’s Key Schedule in Algebraic Form: with Reduction.

This article is a continuation of the recent mega-puzzler concerning the experiment.

This variant will reduce the equations. We will omit printing the input matrix, for brevity. And so:

;; Register bitness.
(defconstant +bitness+ 32)
 
(defun flatten (l)
[...]

Terms -8…8 of the Serpent Cipher’s Key Schedule in Algebraic Form.

This article is a byproduct of the recent mega-puzzler concerning the Serpent cipher’s key expansion procedure.

Behold:

;; Register bitness.
(defconstant +bitness+ 32)
 
(defun make-reg (reg-name bitness)
"Make algebraic representation of a register (bits in descending majority)"
(loop for i from [...]

Serpent in ICE40, Part 2.

This article is a continuation of “Can the Serpent Cipher fit in the ICE40 FPGA?”.

Below is a revision of the forward S-box of Serpent from the previous article, with all of the S-Box equations rewritten in the same form, [...]

Can the Serpent Cipher fit in the ICE40 FPGA?

The question of whether the Serpent cipher could fit in a ICE40 FPGA was posed recently, and my first thought was: why not bake what appears to be the heaviest moving part, and see how many gates it requires? Then it will be possible to estimate whether the entire thing [...]