mirror of
https://github.com/taigrr/arduinolibs
synced 2025-01-18 04:33:12 -08:00
Update docs
This commit is contained in:
85
crypto.html
85
crypto.html
@@ -101,6 +101,8 @@ Examples and other topics</h1>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="crypto_performance"></a>
|
||||
Performance</h1>
|
||||
<h2><a class="anchor" id="crypto_performance_avr"></a>
|
||||
Performance on AVR</h2>
|
||||
<p>All figures are for the Arduino Uno running at 16 MHz. Figures for the Ardunino Mega 2560 running at 16 MHz are similar:</p>
|
||||
<table class="doxtable">
|
||||
<tr>
|
||||
@@ -178,11 +180,90 @@ Performance</h1>
|
||||
<tr>
|
||||
<td><a class="el" href="classEd25519.html#ab62bac52ed07f77f76f3ff0fccd71cb2" title="Derives the public key from a private key. ">Ed25519::derivePublicKey()</a></td><td align="right">5642ms</td><td colspan="3">Derive a public key from a private key </td></tr>
|
||||
</table>
|
||||
<p>Where a cipher supports more than one key size (such as <a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a>), the values are typically almost identical for 128-bit and 256-bit keys so only the maximum is shown above. </p>
|
||||
<p>Where a cipher supports more than one key size (such as <a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a>), the values are typically almost identical for 128-bit and 256-bit keys so only the maximum is shown above.</p>
|
||||
<h2><a class="anchor" id="crypto_performance_arm"></a>
|
||||
Performance on ARM</h2>
|
||||
<p>All figures are for the Arduino Due running at 84 MHz:</p>
|
||||
<table class="doxtable">
|
||||
<tr>
|
||||
<td>Encryption Algorithm</td><td align="right">Encryption (per byte)</td><td align="right">Decryption (per byte)</td><td>Key Setup</td><td>State Size (bytes) </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classAES128.html" title="AES block cipher with 128-bit keys. ">AES128</a> (ECB mode)</td><td align="right">6.65us</td><td align="right">11.00us</td><td align="right">35.15us</td><td align="right">220 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classAES192.html" title="AES block cipher with 192-bit keys. ">AES192</a> (ECB mode)</td><td align="right">8.02us</td><td align="right">13.31us</td><td align="right">36.59us</td><td align="right">252 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classAES256.html" title="AES block cipher with 256-bit keys. ">AES256</a> (ECB mode)</td><td align="right">9.39us</td><td align="right">15.63</td><td align="right">50.19us</td><td align="right">284 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a> (20 rounds)</td><td align="right">0.87us</td><td align="right">0.88us</td><td align="right">4.96us</td><td align="right">136 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a> (12 rounds)</td><td align="right">0.70us</td><td align="right">0.71us</td><td align="right">4.96us</td><td align="right">136 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a> (8 rounds)</td><td align="right">0.62us</td><td align="right">0.62us</td><td align="right">4.96us</td><td align="right">136 </td></tr>
|
||||
<tr>
|
||||
<td colspan="5"></td></tr>
|
||||
<tr>
|
||||
<td>AEAD Algorithm</td><td align="right">Encryption (per byte)</td><td align="right">Decryption (per byte)</td><td>Key Setup</td><td>State Size (bytes) </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classChaChaPoly.html" title="Authenticated cipher based on ChaCha and Poly1305. ">ChaChaPoly</a></td><td align="right">1.66us</td><td align="right">1.66us</td><td align="right">45.02us</td><td align="right">280 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classGCM.html" title="Implementation of the Galois Counter Mode (GCM). ">GCM</a><<a class="el" href="classAES128.html" title="AES block cipher with 128-bit keys. ">AES128</a>></td><td align="right">11.01us</td><td align="right">10.92us</td><td align="right">247.90us</td><td align="right">344 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classGCM.html" title="Implementation of the Galois Counter Mode (GCM). ">GCM</a><<a class="el" href="classAES192.html" title="AES block cipher with 192-bit keys. ">AES192</a>></td><td align="right">12.40us</td><td align="right">12.31us</td><td align="right">294.07us</td><td align="right">376 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classGCM.html" title="Implementation of the Galois Counter Mode (GCM). ">GCM</a><<a class="el" href="classAES256.html" title="AES block cipher with 256-bit keys. ">AES256</a>></td><td align="right">13.73us</td><td align="right">13.64us</td><td align="right">347.40us</td><td align="right">408 </td></tr>
|
||||
<tr>
|
||||
<td colspan="5"></td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classHash.html" title="Abstract base class for cryptographic hash algorithms. ">Hash</a> Algorithm</td><td align="right">Hashing (per byte)</td><td align="right">Finalization</td><td></td><td>State Size (bytes) </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classSHA1.html" title="SHA-1 hash algorithm. ">SHA1</a></td><td align="right">0.94us</td><td align="right">62.55us</td><td align="right"></td><td align="right">112 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classSHA256.html" title="SHA-256 hash algorithm. ">SHA256</a></td><td align="right">1.15us</td><td align="right">76.60us</td><td align="right"></td><td align="right">120 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classSHA512.html" title="SHA-512 hash algorithm. ">SHA512</a></td><td align="right">2.87us</td><td align="right">370.37us</td><td align="right"></td><td align="right">224 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classSHA3__256.html" title="SHA3-256 hash algorithm. ">SHA3_256</a></td><td align="right">5.36us</td><td align="right">697.65us</td><td align="right"></td><td align="right">424 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classSHA3__512.html" title="SHA3-512 hash algorithm. ">SHA3_512</a></td><td align="right">9.89us</td><td align="right">697.81us</td><td align="right"></td><td align="right">424 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classBLAKE2s.html" title="BLAKE2s hash algorithm. ">BLAKE2s</a></td><td align="right">0.76us</td><td align="right">50.88us</td><td align="right"></td><td align="right">184 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classBLAKE2b.html" title="BLAKE2b hash algorithm. ">BLAKE2b</a></td><td align="right">1.33us</td><td align="right">170.93us</td><td align="right"></td><td align="right">352 </td></tr>
|
||||
<tr>
|
||||
<td colspan="5"></td></tr>
|
||||
<tr>
|
||||
<td>Authentication Algorithm</td><td align="right">Hashing (per byte)</td><td align="right">Finalization</td><td>Key Setup</td><td>State Size (bytes) </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classSHA1.html" title="SHA-1 hash algorithm. ">SHA1</a> (HMAC mode)</td><td align="right">0.94us</td><td align="right">193.92us</td><td align="right">65.09us</td><td align="right">112 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classSHA256.html" title="SHA-256 hash algorithm. ">SHA256</a> (HMAC mode)</td><td align="right">1.15us</td><td align="right">238.98us</td><td align="right">80.44us</td><td align="right">120 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classBLAKE2s.html" title="BLAKE2s hash algorithm. ">BLAKE2s</a> (HMAC mode)</td><td align="right">0.76us</td><td align="right">165.64us</td><td align="right">59.92us</td><td align="right">184 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classPoly1305.html" title="Poly1305 message authenticator. ">Poly1305</a></td><td align="right">0.85us</td><td align="right">19.25us</td><td align="right">2.35us</td><td align="right">96 </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classGHASH.html" title="Implementation of the GHASH message authenticator. ">GHASH</a></td><td align="right">4.37us</td><td align="right">1.50us</td><td align="right">4.37us</td><td align="right">36 </td></tr>
|
||||
<tr>
|
||||
<td colspan="5"></td></tr>
|
||||
<tr>
|
||||
<td>Public Key Operation</td><td align="right">Time (per operation)</td><td colspan="3">Comment </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classCurve25519.html#a2e4b7dd83a019b32c76584c99bfda21a" title="Evaluates the raw Curve25519 function. ">Curve25519::eval()</a></td><td align="right">103ms</td><td colspan="3">Raw curve evaluation </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classCurve25519.html#a2b6911583d17ea9a36bbbb40d58b3d89" title="Performs phase 1 of a Diffie-Hellman key exchange using Curve25519. ">Curve25519::dh1()</a></td><td align="right">103ms</td><td colspan="3">First half of Diffie-Hellman key agreement </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classCurve25519.html#a14022d6ac68ec691ffb0247275078ab9" title="Performs phase 2 of a Diffie-Hellman key exchange using Curve25519. ">Curve25519::dh2()</a></td><td align="right">104ms</td><td colspan="3">Second half of Diffie-Hellman key agreement </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classEd25519.html#a36ecf67b4c5d2d39a31888f56af1f8a5" title="Signs a message using a specific Ed25519 private key. ">Ed25519::sign()</a></td><td align="right">195ms</td><td colspan="3">Digital signature generation </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classEd25519.html#ae3e2fc405c9cd8cb1d3ab9b8b452d3e4" title="Verifies a signature using a specific Ed25519 public key. ">Ed25519::verify()</a></td><td align="right">306ms</td><td colspan="3">Digital signature verification </td></tr>
|
||||
<tr>
|
||||
<td><a class="el" href="classEd25519.html#ab62bac52ed07f77f76f3ff0fccd71cb2" title="Derives the public key from a private key. ">Ed25519::derivePublicKey()</a></td><td align="right">194ms</td><td colspan="3">Derive a public key from a private key </td></tr>
|
||||
</table>
|
||||
</div></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Sat Apr 18 2015 08:44:48 for ArduinoLibs by  <a href="http://www.doxygen.org/index.html">
|
||||
Generated on Sat May 2 2015 10:17:20 for ArduinoLibs by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.6
|
||||
</small></address>
|
||||
|
||||
Reference in New Issue
Block a user