-r--r--r-- 5903 libmceliece-20240513/doc/html/people.html raw
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
html{overflow-y:scroll}
body{font-family:"Noto Sans","Droid Sans","DejaVu Sans","Arial",sans-serif;line-height:1.5}
tt,code{background-color:#f0f0f0;font-family:"Noto Sans Mono","Droid Sans Mono","DejaVu Sans Mono","Courier New",monospace,sans-serif;font-size:1em;}
pre{margin-left:3em}
p,ul,ol,blockquote,pre{font-size:1.0em;line-height:1.6}
li p{font-size:1.0em}
blockquote p{font-size:1.0em}
h1{font-size:1.5em}
h2{font-size:1.3em}
h3{font-size:1.0em}
h1 a{text-decoration:none}
table{border-collapse:collapse}
th,td{border:1px solid black}
table a{text-decoration:none}
table tr{font-size:1.0em;line-height:1.6em}
table tr{font-size:1.0em;line-height:1.5}
tbody tr:nth-child(20n+1){background-color:#f0ffff}
tbody tr:nth-child(20n+2){background-color:#f0ffff}
tbody tr:nth-child(20n+3){background-color:#f0ffff}
tbody tr:nth-child(20n+4){background-color:#f0ffff}
tbody tr:nth-child(20n+5){background-color:#f0ffff}
tbody tr:nth-child(20n+6){background-color:#f0ffff}
tbody tr:nth-child(20n+7){background-color:#f0ffff}
tbody tr:nth-child(20n+8){background-color:#f0ffff}
tbody tr:nth-child(20n+9){background-color:#f0ffff}
tbody tr:nth-child(20n+10){background-color:#f0ffff}
tbody tr:nth-child(20n+11){background-color:#fffff0}
tbody tr:nth-child(20n+12){background-color:#fffff0}
tbody tr:nth-child(20n+13){background-color:#fffff0}
tbody tr:nth-child(20n+14){background-color:#fffff0}
tbody tr:nth-child(20n+15){background-color:#fffff0}
tbody tr:nth-child(20n+16){background-color:#fffff0}
tbody tr:nth-child(20n+17){background-color:#fffff0}
tbody tr:nth-child(20n+18){background-color:#fffff0}
tbody tr:nth-child(20n+19){background-color:#fffff0}
tbody tr:nth-child(20n+20){background-color:#fffff0}
.links a:hover{text-decoration:underline}
.links a:active{text-decoration:underline}
.links img{width:200px;padding-left:1em}
.links td{border:0px;padding-top:0.5em;padding-bottom:0.5em}
.headline{padding:0;font-weight:bold;font-size:1.5em;vertical-align:top;padding-bottom:0.5em;color:#196069}
.navt{display:inline-block;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;
min-width:14%;margin:0;padding:0;padding-left:0.5em;padding-right:0.5em;vertical-align:center;
font-weight:bold;font-size:1.1em;text-align:center;border:1px solid black}
.here{border-bottom:0px;background-color:#ffffff}
.away{background-color:#196069;}
.away a{text-decoration:none;display:block;color:#ffffff}
.away a:hover,.away a:active{text-decoration:underline}
.main{margin:0;padding-top:0em;padding-bottom:1%;clear:both}
</style>
<title>
libmceliece: People</title>
</head>
<body>
<div class=headline>
libmceliece</div>
<div class=nav>
<div class="navt away"><a href=index.html>Intro</a>
</div><div class="navt away"><a href=download.html>Download</a>
</div><div class="navt away"><a href=install.html>Install</a>
</div><div class="navt away"><a href=api.html>API</a>
</div><div class="navt away"><a href=cli.html>CLI</a>
</div><div class="navt away"><a href=security.html>Security</a>
</div><div class="navt away"><a href=verification.html>Verification</a>
</div><div class="navt away"><a href=speed.html>Speed</a>
</div><div class="navt away"><a href=internals.html>Internals</a>
</div><div class="navt here">People
</div><div class="navt away"><a href=license.html>License</a>
</div></div>
<div class=main>
<p>libmceliece is based on the official Classic McEliece software, which
was written by Tung Chou. See the following papers for the major
algorithms used for speed inside that software:</p>
<ul>
<li>
<p>Daniel J. Bernstein, Tung Chou, Peter Schwabe. "McBits: fast
constant-time code-based cryptography." CHES 2013.
<a href="https://tungchou.github.io/papers/mcbits.pdf">https://tungchou.github.io/papers/mcbits.pdf</a></p>
</li>
<li>
<p>Tung Chou. "McBits revisited." CHES 2017.
<a href="https://tungchou.github.io/papers/mcbits_revisited.pdf">https://tungchou.github.io/papers/mcbits_revisited.pdf</a></p>
</li>
</ul>
<p>The official Classic McEliece software includes <code>ref</code>, <code>vec</code>, <code>sse</code>, and
<code>avx</code> implementations; libmceliece includes only <code>vec</code> and <code>avx</code>.</p>
<p>The following components of libmceliece are from Daniel J. Bernstein:</p>
<ul>
<li>
<p>Small <a href="download.html#changelog">changes</a>
for namespacing, portability, etc.</p>
</li>
<li>
<p>Software to compute control bits (also used in the official software).
See the following paper: Daniel J. Bernstein. "Verified fast formulas
for control bits for permutation networks." 2020.
<a href="https://cr.yp.to/papers.html#controlbits">https://cr.yp.to/papers.html#controlbits</a></p>
</li>
<li>
<p>Infrastructure to build a library with automatic run-time selection of
implementations based on the run-time CPU and a database of
benchmarks. This infrastructure was introduced in
<a href="https://lib25519.cr.yp.to"><code>lib25519</code></a>, with some extensions and
adaptations in libmceliece.</p>
</li>
<li>
<p>Various software for tests and benchmarks. This is based on
public-domain code in the SUPERCOP benchmarking framework.</p>
</li>
<li>
<p>The underlying subroutines
<code>crypto_sort</code>
(based on <a href="https://sorting.cr.yp.to">https://sorting.cr.yp.to</a>),
<code>crypto_xof/bitwrite16</code>,
and <code>crypto_xof/shake256/unrollround</code>.</p>
</li>
</ul>
<p>A separate SHAKE256 implementation,
<code>crypto_xof/shake256/tweet</code>,
is based on
<a href="https://twitter.com/tweetfips202">https://twitter.com/tweetfips202</a>
by Daniel J. Bernstein, Peter Schwabe, and Gilles Van Assche.</p><hr><font size=1><b>Version:</b>
This is version 2024.05.08 of the "People" web page.
</font>
</div>
</body>
</html>