“Finite Field Arithmetic” Regrind into Keccak-V Format.

The long-promised Keccak-V regrind of the current FFA codebase appears below:

Title
VPatch
Seal

“Chapter 1: Genesis.”
ffa_ch1_genesis.kv.vpatch
ffa_ch1_genesis.kv.vpatch.asciilifeform.sig

“Chapter 2: Logical and Bitwise Operations.”
ffa_ch2_logicals.kv.vpatch
ffa_ch2_logicals.kv.vpatch.asciilifeform.sig

“Chapter 3: Shifts.”
ffa_ch3_shifts.kv.vpatch
ffa_ch3_shifts.kv.vpatch.asciilifeform.sig

“Chapter 4: Interlude: FFACalc.”
ffa_ch4_ffacalc.kv.vpatch
ffa_ch4_ffacalc.kv.vpatch.asciilifeform.sig

“Chapter 5: “Egyptological” Multiplication and Division.”
ffa_ch5_egypt.kv.vpatch
ffa_ch5_egypt.kv.vpatch.asciilifeform.sig

Chapter 6: “Geological” RSA.
ffa_ch6_simplest_rsa.kv.vpatch
ffa_ch6_simplest_rsa.kv.vpatch.asciilifeform.sig

Chapter 7: “Turbo Egyptians.”
ffa_ch7_turbo_egyptians.kv.vpatch
ffa_ch7_turbo_egyptians.kv.vpatch.asciilifeform.sig

Chapter 8: Interlude: Randomism.
ffa_ch8_randomism.kv.vpatch
ffa_ch8_randomism.kv.vpatch.asciilifeform.sig

Chapter 9: “Exodus from Egypt” with Comba’s Algorithm.
ffa_ch9_exodus.kv.vpatch
ffa_ch9_exodus.kv.vpatch.asciilifeform.sig

Chapter 10: Introducing Karatsuba’s Multiplication.
ffa_ch10_karatsuba.kv.vpatch
ffa_ch10_karatsuba.kv.vpatch.asciilifeform.sig

Chapter 11: Tuning and Unified API.
ffa_ch11_tuning_and_api.kv.vpatch
ffa_ch11_tuning_and_api.kv.vpatch.asciilifeform.sig

These, and all [...]

Hypertext Concordance for “Finite Field Arithmetic.”

In addition to phf’s excellent vpatch viewer, there will now be a page, generated via gnathtml, to help the interested reader to explore the moving parts of FFA.

Click here to view Ch.11, with ffa_calc.adb as the root node.

All subsequent chapters will also be offered in this reader-friendly format, in addition to the usual raw vpatch [...]

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

UDP.

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

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.
TCP.
IPv6.
DNS.

You will need:

GNAT.
udp_genesis.vpatch

udp_genesis.vpatch.asciilifeform.sig

udp_errata.asciilifeform.vpatch

udp_errata.asciilifeform.vpatch.asciilifeform.sig

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

// Script to allow anchoring of user-selected content on html pages. // Original idea deployed by http://archive.today // Packaged for WordPress on http://trilema.com/2015/that-spiffy-selection-thing/