<div dir="ltr"><div><div><div><div>The "sidh" branch in Noise-C now contains a back-end for SIDHp751, for testing and evaluation, using Microsoft's MIT-licensed reference code [1], paper [2].<br><br></div><div>SIDHp751 is a full Diffie-Hellman scheme, supporting both ephemeral and static public keys, so all Noise handshake patterns are possible.  I've added a page to the wiki [3] providing the details.  There are some suggestions there as to how to modify the Noise specification to better accommodate post-quantum algorithms.<br><br></div><div>This is a "pure" Noise integration with a fully post-quantum handshake.  As we have discussed earlier, mixing classical and post-quantum is much better.  I did this experiment mostly to confirm that an SIDH-style algorithm is capable of anything that 25519/448 can do.<br></div><div><br>The main catch is the speed, or lack thereof.  On my machine, I get around 65 keypair generations per second with the x86-64 assembly back-end (20 per second with the plain C version).  This is compared to around 9000 per second for the plain C New Hope reference code [/proc/cpuinfo sez: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz].<br><br></div><div>If we are looking to only add post-quantum forward secrecy to Noise at the moment, New Hope looks like the better bet.<br></div></div></div><br></div>Cheers,<br><div><br></div><div>Rhys.<br><br>[1] <a href="https://www.microsoft.com/en-us/download/details.aspx?id=52438" target="_blank">https://www.microsoft.com/en-us/download/details.aspx?id=52438</a><br>[2] <a href="https://eprint.iacr.org/2016/413.pdf">https://eprint.iacr.org/2016/413.pdf</a><br>[3] <a href="https://github.com/noiseprotocol/noise_wiki/wiki/Post-Quantum-Noise-with-SIDHp751">https://github.com/noiseprotocol/noise_wiki/wiki/Post-Quantum-Noise-with-SIDHp751</a><br><br></div></div>