From: Antonio Quartulli <antonio@mandelbit.com>
To: "Jason A. Donenfeld" <jason@zx2c4.com>, Ard Biesheuvel <ardb@kernel.org>
Cc: Antonio Quartulli <antonio@openvpn.net>,
linux-crypto@vger.kernel.org, Eric Biggers <ebiggers@kernel.org>,
Herbert Xu <herbert@gondor.apana.org.au>,
Ralf Lici <ralf@mandelbit.com>
Subject: Re: [RFC PATCH 0/5] lib/crypto: Add AEGIS-128X4
Date: Thu, 12 Nov 2026 23:54:05 +0100 [thread overview]
Message-ID: <c24fdd26-7e77-4dca-a0fc-94c998ebdff8@mandelbit.com> (raw)
In-Reply-To: <CAHmME9qSPWDhrvoQH=QX2hj+Ei7mcTYFqy-M+kMnJhgzRuJ1dQ@mail.gmail.com>
On 12/11/2026 17:44, Jason A. Donenfeld wrote:
> On Thu, Nov 12, 2026 at 5:20 PM Ard Biesheuvel <ardb@kernel.org> wrote:
>>> This series adds AEGIS-128X4, the 4-way parallel variant of AEGIS-128L
>>> specified in RFC 10032 (Informational, September 2026), as a crypto
>>> library with an x86_64 VAES-AVX512 implementation, a KUnit test suite
>>> and benchmark, and a crypto API wrapper.
>>>
>>> AEGIS-128X4 runs four AEGIS-128L instances, one per 128-bit lane of a
>>> 512-bit vector, so that each state update is eight VAESENC instructions
>>> on zmm registers. On CPUs with VAES and AVX-512 it is very fast even for
>>> short messages, which is what makes it attractive for network protocols.
>>>
>>> The intended user is ovpn, the OpenVPN data channel offload driver. In
>>> single-stream ovpn tests over a 100 Gbit/s link, with both ciphers used
>>> through the crypto API, the sending CPU spent 1266 cycles per packet with
>>> AEGIS-128X4 against 1448 with AES-GCM over TCP, and 1032 against 1122
>>> with UDP GSO input. It is posted as an RFC because ovpn can't use it
>>> yet.
>>>
>>
>> We used to have implementations of aegis128l and aegis256 in the kernel as
>> well (along with morus), but we removed them on the basis that it was
>> aegis128 that won the competition.
>>
>> As far as I know, nobody actually uses any of that code, though, so I am
>> quite to surprised to see now that it was aegis128 that was dropped
>> from the portfolio, and aegis128l and aegis256 have made a miraculous
>> return, along with some other variants that appear to be tied to the
>> register width. What happens when 8-way vector registers become
>> commonplace? Create yet another aegis variant that case use them
>> efficiently?
>>
>> So I'm struggling to see why we should take this RFC seriously, to be
>> honest ...
>
> I'm also not really sure what's going on. CAESAR competition selected
> aegis128 and listed 128l and 256 as "additional finalists". And then
> RFC10032 has written up 128L, 256, 128X, 256X, but not the original
> 128 that was selected. And then none of this has been picked up by
> NIST. Meanwhile, NIST's light weight crypto competition selected
> ASCON, which as the "lightweight" as opposed to "high performance"
> pick in CAESAR. So I dunno! I've been waiting for the dust to settle
> for a little bit.
To be honest I did not try to figure out what was going on, but for sure
there was "some confusion".
By looking at RFC10032 and its references, it seems that various studies
were conducted on AEGIS128 after it won CAESAR and they highlighted some
deficiencies. I am assuming that this is why it was decided to skip it
during the standardization process and focus on its stronger siblings.
This said, our decision to work on AEGIS128X4 came from the fact that it
was expected to be faster than AES-GCM (current default for ovpn),
especially when working on chunks larger than a standard packet (i.e.
TSO/GSO/GRO case).
With RFC10032 standardizing it (and its siblings), we thought this would
be the beginning of the AEGIS era, with more use cases popping up.
RFC10032 was published last September - why wouldn't you take this
seriously at this point?
I am not the one writing ciphers and judging them during competitions,
therefore I think the 8-way question should not be for me :-)
As a side note, our tests on a prototype ovpn using AEGIS128X4 confirmed
higher throughput, therefore we were hoping to have a chance to see it
merged.
Regards,
--
Antonio Quartulli
CEO and Co-Founder
Mandelbit Srl
https://www.mandelbit.com
next prev parent reply other threads:[~2026-11-12 22:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-12 12:54 [RFC PATCH 0/5] lib/crypto: Add AEGIS-128X4 Antonio Quartulli
2026-11-12 12:54 ` [RFC PATCH 1/5] lib/crypto: tests: Make the AEAD dst clearing check effective Antonio Quartulli
2026-11-13 3:07 ` Eric Biggers
2026-11-12 12:54 ` [RFC PATCH 2/5] lib/crypto: aegis128x4: Add AEGIS-128X4 library Antonio Quartulli
2026-11-12 12:54 ` [RFC PATCH 3/5] lib/crypto: tests: Add KUnit test suite for AEGIS-128X4 Antonio Quartulli
2026-11-12 12:54 ` [RFC PATCH 4/5] lib/crypto: x86/aegis128x4: Add VAES-AVX512 optimized code Antonio Quartulli
2026-11-12 12:54 ` [RFC PATCH 5/5] crypto: aegis128x4 - Add AEGIS-128X4 AEAD algorithm Antonio Quartulli
2026-11-12 16:20 ` [RFC PATCH 0/5] lib/crypto: Add AEGIS-128X4 Ard Biesheuvel
2026-11-12 16:44 ` Jason A. Donenfeld
2026-11-12 22:54 ` Antonio Quartulli [this message]
2026-11-13 2:06 ` Eric Biggers
2026-11-12 16:50 ` Jason A. Donenfeld
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c24fdd26-7e77-4dca-a0fc-94c998ebdff8@mandelbit.com \
--to=antonio@mandelbit.com \
--cc=antonio@openvpn.net \
--cc=ardb@kernel.org \
--cc=ebiggers@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=jason@zx2c4.com \
--cc=linux-crypto@vger.kernel.org \
--cc=ralf@mandelbit.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox