release: restore ZUPT and harden source-only 5.2.2

This commit is contained in:
Cristian Cezar Moisés 2026-08-31 14:14:36 -03:00
commit ff99770bd0
205 changed files with 19627 additions and 13215 deletions

View file

@ -1,8 +1,9 @@
/* Zupt — AES-256 Single Block Encrypt via AES-NI (Jasmin)
/* ZUPT — AES-256 Single Block Encrypt via AES-NI (Jasmin)
* Copyright (c) 2026 Cristian Cezar Moisés
* SPDX-License-Identifier: AGPL-3.0-or-later
*
* CT-REQUIRED: AES-NI has no data-dependent timing.
* CT-REQUIRED: designed without intended secret-dependent branches or memory
* access. Compiled and microarchitectural timing is not proven here.
*
* FIX v2.0.0: replaced `stack u128[15] rk` with 15 individual
* `stack u128` variables. The array form uses byte-offset indexing

View file

@ -1,15 +1,14 @@
/* Zupt — AES-256-CTR 4-Block Pipeline via AES-NI (Jasmin)
/* ZUPT — AES-256-CTR 4-Block Pipeline via AES-NI (Jasmin)
* Copyright (c) 2026 Cristian Cezar Moisés
* SPDX-License-Identifier: AGPL-3.0-or-later
*
* CT-REQUIRED: AES-NI has no data-dependent timing.
* CT-REQUIRED: designed without intended secret-dependent branches or memory
* access. Compiled and microarchitectural timing is not proven here.
*
* Interleaves 4 independent counter blocks through the AES round
* pipeline. AES-NI has 4-cycle latency, 1-cycle throughput — so
* 4 independent blocks saturate the pipeline for ~4× throughput.
*
* Expected: ~3.5 GB/s AES-256-CTR on modern x86-64 (Zen3/Alder Lake).
*
* Interface:
* zupt_aes256_ctr4(out, in, key, ctr, nblocks)
* Encrypts nblocks×16 bytes. Counter is incremented in the last 8 bytes

View file

@ -1,6 +1,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (c) 2026 Cristian Cezar Moisés
# Generated from jasmin/zupt_aes_ctr4.jazz by jasminc.
# Hand-written production assembly matching the algorithm documented in
# jasmin/zupt_aes_ctr4.jazz; this file is not jasminc output.
.intel_syntax noprefix
.text
.p2align 5

View file

@ -1,4 +1,4 @@
/* Zupt — Constant-Time MAC Comparison (Jasmin)
/* ZUPT — Constant-Time MAC Comparison (Jasmin)
* Copyright (c) 2026 Cristian Cezar Moisés
* SPDX-License-Identifier: AGPL-3.0-or-later
*

View file

@ -1,4 +1,4 @@
/* Zupt — ML-KEM Constant-Time Select (Jasmin)
/* ZUPT — ML-KEM Constant-Time Select (Jasmin)
* Copyright (c) 2026 Cristian Cezar Moisés
* SPDX-License-Identifier: AGPL-3.0-or-later
*

View file

@ -1,11 +1,11 @@
/* Zupt — X25519 Constant-Time Conditional Swap (Jasmin)
/* ZUPT — X25519 Constant-Time Conditional Swap (Jasmin)
* Copyright (c) 2026 Cristian Cezar Moisés
* SPDX-License-Identifier: AGPL-3.0-or-later
*
* CT-REQUIRED: fe_cswap must not leak cond via timing.
* This is the only CT-critical field operation in X25519.
* fe_add/fe_sub/fe_mul use C fallback (data-independent timing
* on x86-64 — ADD/MUL have fixed latency).
* fe_add/fe_sub/fe_mul use the C fallback. No fixed-latency claim is made for
* every compiler, x86-64 CPU, or resulting binary.
*
* 4 × u64 limbs, pure register operations, no intrinsics needed.
*/