release: restore ZUPT and harden source-only 5.2.2
This commit is contained in:
parent
74e393ba3e
commit
ff99770bd0
205 changed files with 19627 additions and 13215 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue