<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
That's seems like a good idea. Let me know when you have the framework available. I can follow that.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
-Danny</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> NIIBE Yutaka <gniibe@fsij.org><br>
<b>Sent:</b> Friday, March 27, 2026 1:21 AM<br>
<b>To:</b> Danny Tsen <dtsen@us.ibm.com>; gcrypt-devel@gnupg.org <gcrypt-devel@gnupg.org><br>
<b>Subject:</b> [EXTERNAL] Re: [PATCH 0/5] dilithium-kyber: Optimized (i)NTT support for</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hello,<br>
<br>
Sorry for late reply.<br>
<br>
Danny Tsen wrote:<br>
> Added optimized (i)NTT algorithm support for ppc64le (Power 8 and<br>
> above). Defined ENABLE_PPC_DILITHIUM and ENABLE_PPC_KYBER for<br>
> dilithium (ML-DSA) and kyber (ML-KEM) NTT and inverse NTT.<br>
<br>
Thank you for your work.<br>
<br>
The approach of optimizing NTT functions looks good.<br>
<br>
Let me start a discussion about Kyber. Then, we can apply the<br>
result to Dilithium.<br>
<br>
<br>
I wonder if we can do a bit more, so that we can avoid the duplication<br>
of the ZETA constant among NTT implementation and kyber-common.c.<br>
<br>
I'm considering about factoring following five functions from<br>
kyber-common.c:<br>
<br>
void _gcry_poly_ntt(poly *r);<br>
void _gcry_poly_invntt_tomont(poly *r);<br>
void _gcry_poly_reduce(poly *r)<br>
void _gcry_poly_tomont(poly *r);<br>
void _gcry_poly_basemul_montgomery(poly *r, const poly *a, const poly *b);<br>
<br>
into, say, kyber-common-generic.c. And provide archtecture specific<br>
kyber-common-<ARCH>-<HWACC>.S for optimized version(s).<br>
<br>
This way, NTT functions are covered and ZETA is placed inside<br>
kyber-common-*.<br>
<br>
How do you think?<br>
<br>
I'll try with the optimized implementation of AVX2 in the reference code.<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.pq-2Dcrystals.org_kyber_&d=DwIBAg&c=BSDicqBQBDjDI9RkVyTcHQ&r=zspFcGYEyUrRywX_TdjlLwwrCx0eBFnzcs6XZVVVMh0&m=cyhP1gGDXWh9JCIn4z5NrebvLkC7bN89aMGL_HFl26R2f9h7kqRDsaD6W5C2Q8tQ&s=guKkLMabJUVbm4bjm61GKleAAubKCEyFJJobD1MSghQ&e=">https://urldefense.proofpoint.com/v2/url?u=https-3A__www.pq-2Dcrystals.org_kyber_&d=DwIBAg&c=BSDicqBQBDjDI9RkVyTcHQ&r=zspFcGYEyUrRywX_TdjlLwwrCx0eBFnzcs6XZVVVMh0&m=cyhP1gGDXWh9JCIn4z5NrebvLkC7bN89aMGL_HFl26R2f9h7kqRDsaD6W5C2Q8tQ&s=guKkLMabJUVbm4bjm61GKleAAubKCEyFJJobD1MSghQ&e=</a>
<br>
-- <br>
</div>
</span></font></div>
</body>
</html>