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.


;; 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 [...]


This is a simple library for Ada, to replace the asinine GNATSockets item.

Unixlike OS back-end.
Open/close datagram socket on given local IP and port.
Transmit datagrams of fixed length.
Receive (blocking) datagrams of fixed length, rejecting shorts, saving the originator’s IP/port.
Handle all possible OS error conditions.

Permanently unsupported:

Microshit back-ends.

You will need:





Edit (9/27) : diana_coman graciously baked a Keccak-V regrind [...]

“Finite Field Arithmetic.” Chapter 11: Tuning and Unified API.

This article is part of a series of hands-on tutorials introducing FFA, or the Finite Field Arithmetic library. FFA differs from the typical “Open Sores” abomination, in that — rather than trusting the author blindly with their lives — prospective users are expected to read and fully understand every single line. In exactly the same [...]

Wanted: Write-Once MicroSD Card !

Allegedly these exist! — though I have only been able to find them offered for sale by the railroad car.
For certain applications, nothing else will really suffice.
If any of my readers know of (or wish to become) a vendor offering, in (for starters) mid-three-digit quantities:

a) One Time Programmable MicroSD card
b) MicroSD card with a true [...]

The Return of Phuctor!

I have the pleasure of informing my readers that…
Phuctor is back!

It — exactly as it was, but with a few minor fix-ups for browsing speed — now lives on a very spiffy 32-core Opteron at Pizarro, the ISP.

The WWW UI is already up; the factoring proper will resume later tonight.

// Script to allow anchoring of user-selected content on html pages. // Original idea deployed by // Packaged for WordPress on