<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Arm Neon | David Shu-Yu Wu</title><link>https://aurivelle.github.io/tags/arm-neon/</link><atom:link href="https://aurivelle.github.io/tags/arm-neon/index.xml" rel="self" type="application/rss+xml"/><description>Arm Neon</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sat, 04 Jul 2026 00:00:00 +0000</lastBuildDate><image><url>https://aurivelle.github.io/media/icon_hu_982c5d63a71b2961.png</url><title>Arm Neon</title><link>https://aurivelle.github.io/tags/arm-neon/</link></image><item><title>Multiplying Not-So-Big Integers with FFTs</title><link>https://aurivelle.github.io/projects/nttbignummul/</link><pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate><guid>https://aurivelle.github.io/projects/nttbignummul/</guid><description>&lt;p&gt;This first-author research project, &lt;strong&gt;Finding and Pushing the Crossover on Large Modern OoO ARM CPUs&lt;/strong&gt;, studies where NTT-based multiplication becomes practical for not-so-big integer sizes. The paper is available as &lt;strong&gt;
&lt;/strong&gt; and was accepted for presentation at the &lt;strong&gt;CHES 2026 Poster Session&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The project develops two generations of constant-time NTT-based multiplication for Cortex-A76. The second generation targets smaller operand sizes through tighter range bounds, redesigned 256/512-point NTT organization, fused reconstruction, and shorter carry and instruction-dependency chains.&lt;/p&gt;
&lt;h3 id="key-features"&gt;Key Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;NEON-optimized NTT kernels:&lt;/strong&gt; Developed constant-time fused NTT kernels in AArch64 assembly using ARM NEON instructions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiplication pipeline:&lt;/strong&gt; Combined Barrett and Montgomery arithmetic, Good&amp;rsquo;s trick, CRT reconstruction, and chunking and dechunking.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Crossover result:&lt;/strong&gt; The second-generation two-unknown-input multiplier outperforms target-tuned variable-time GMP by &lt;strong&gt;6.25% at 5,632 bits&lt;/strong&gt; and &lt;strong&gt;16.66% at 8,448 bits&lt;/strong&gt;, placing the observed crossover at or below 5,632 bits.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Montgomery multiplication:&lt;/strong&gt; The one-known-input implementation improves over OpenSSL&amp;rsquo;s Neon path by &lt;strong&gt;5.19%-44.40%&lt;/strong&gt; across the evaluated 5,120-10,240-bit sizes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenSSL integration:&lt;/strong&gt; End-to-end RSA verification and encryption improve by &lt;strong&gt;15.98%-51.58%&lt;/strong&gt; across RSA-5120, RSA-6144, RSA-8192, and RSA-10240.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Formal verification:&lt;/strong&gt; Verified optimized assembly kernels with CryptoLine for algebraic correctness, range safety, and equivalence after Slothy scheduling, then used HOL Light to compose higher-level multiplication specifications.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>