blob: fe6e21df7c4cdc89b5cbe4d1f688d72748f99b78 [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-milagro-intro">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.2.0">
<title data-rh="true">Milagro Introduction | Apache Milagro</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://milagro.apache.org/docs/milagro-intro"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Milagro Introduction | Apache Milagro"><meta data-rh="true" name="description" content="Apache Milagro is a set of core security infrastructure and crypto libraries purpose-built for decentralized networks and distributed systems, while also providing value to cloud-connected app-centric software and IoT devices that require Internet scale."><meta data-rh="true" property="og:description" content="Apache Milagro is a set of core security infrastructure and crypto libraries purpose-built for decentralized networks and distributed systems, while also providing value to cloud-connected app-centric software and IoT devices that require Internet scale."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://milagro.apache.org/docs/milagro-intro"><link data-rh="true" rel="alternate" href="https://milagro.apache.org/docs/milagro-intro" hreflang="en"><link data-rh="true" rel="alternate" href="https://milagro.apache.org/docs/milagro-intro" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache Milagro RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Milagro Atom Feed">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous">
<script src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" href="/assets/css/styles.27cb1668.css">
<link rel="preload" href="/assets/js/runtime~main.b2dc6e47.js" as="script">
<link rel="preload" href="/assets/js/main.8eab308a.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/milagro.svg" alt="" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/milagro.svg" alt="" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache Milagro</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/milagro-intro">Docs</a><a class="navbar__item navbar__link" href="/docs/support">Support</a><a class="navbar__item navbar__link" href="/docs/contributor-guide">Contributing</a><a class="navbar__item navbar__link" href="/docs/downloads">Downloads</a></div><div class="navbar__items navbar__items--right"><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebar_njMd"><nav class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/docs/milagro-intro">About Milagro</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/milagro-intro">Milagro Introduction</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/milagro-crypto">Milagro Crypto</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/milagro-protocols">Milagro Protocols</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/milagro-design">Milagro Design</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/amcl-overview">AMCL Library</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/d-ta-overview">D-TA</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/mpc-api-0.1">MPC Library</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/zkp-mfa-overview">ZKP-MFA Clients/Servers</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/contributor-guide">Project Info</a></div></li></ul></nav></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_OVgt"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">About Milagro</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Milagro Introduction</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Milagro Introduction</h1></header><p>Apache Milagro is a set of core security infrastructure and crypto libraries purpose-built for decentralized networks and distributed systems, while also providing value to cloud-connected app-centric software and IoT devices that require Internet scale.</p><p>Milagro&#x27;s purpose is to provide a secure and positive open source alternative to centralized and proprietary monolithic trust providers such as commercial certificate authorities and the certificate backed cryptosystems that rely on them.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="pairing-cryptography">Pairing Cryptography<a class="hash-link" href="#pairing-cryptography" title="Direct link to heading"></a></h2><p>Over the last decade, pairings on elliptic curves have been a very active area of research in cryptography, particularly within decentralized networks and distributed systems.</p><p>A pairing is a kind of the bilinear map defined over an elliptic curve. Examples include Weil pairing, Tate pairing, optimal Ate pairing and so on. </p><p>Pairings map pairs of points on an elliptic curve into the multiplicative group of a finite field. Their unique properties have enabled many new cryptographic protocols that had not previously been feasible.</p><p><a href="https://en.wikipedia.org/wiki/Pairing-based_cryptography" target="_blank" rel="noopener noreferrer">Pairing-Based Cryptography (PBC)</a> is emerging as a solution to complex problems that proved intractable to the standard mathematics of Public-Key Cryptography such as Identity-Based Encryption (IBE), whereby the identity of a client can be used as their public key.</p><p>In certain use cases, this removes the need for a PKI infrastructure, since the main reason to issue certificates is to bind a public / private key pair to an identity - a function not required when using IBE.</p><p>Removing the certificate management burden enables the identity management and key lifecycle to take place within the decentralized cryptosystem itself.</p><p>As a result, Milagro&#x27;s decentralized cryptosystem design goals seek to deliver products that are easier to scale and manage than traditional PKI, eliminate root key &#x27;single point of compromise&#x27; weaknesses and are a seamless fit for today&#x27;s decentralized networks and distributed systems.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="pairings-go-mainstream">Pairings Go Mainstream<a class="hash-link" href="#pairings-go-mainstream" title="Direct link to heading"></a></h2><p>Pairings are key building blocks in Apache Milagro&#x27;s crypto libraries and products. As examples, BLS signatures feature prominently in Milagro Decentralized Trust Authorities (D-TA), while the M-Pin protocol used in the Milagro ZKP-MFA clients and servers.</p><p><a href="https://en.wikipedia.org/wiki/Boneh-Lynn-Shacham" target="_blank" rel="noopener noreferrer">BLS signatures</a> are widely recognized within the cryptocurrency space for their signature aggregation abilities. BLS signatures are now going through an IETF submission review<sup id="fnref-first"><a href="#fn-first" class="footnote-ref">first</a></sup> standardization process.</p><p>The <a href="https://eprint.iacr.org/2002/164" target="_blank" rel="noopener noreferrer">M-Pin protocol</a><sup id="fnref-second"><a href="#fn-second" class="footnote-ref">second</a></sup>, which is a multi-factor authentication protocol built upon zero-knowledge proofs, is widely deployed across cloud infrastructures and in public facing deployments by the UK Government<sup id="fnref-third"><a href="#fn-third" class="footnote-ref">third</a></sup>. </p><p>Zcash implements their own zero-knowledge proof algorithm named zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)<sup id="fnref-fourth"><a href="#fn-fourth" class="footnote-ref">fourth</a></sup>. zk-SNARKs is used for protecting privacy of transactions of Zcash. Pairings are a key ingredient for constructing zk-SNARKS.</p><p>Cloudflare introduced Geo Key Manager<sup id="fnref-fifth"><a href="#fn-fifth" class="footnote-ref">fifth</a></sup> to restrict distribution of customers&#x27; private keys to the subset of their data centers. To achieve this functionality, attribute-based encryption is used and pairings again are a key building block.</p><p>The Trusted Computing Group (TCG) specifies ECDAA (Elliptic Curve Direct Anonymous Attestation) in the specification of Trusted Platform Module<sup id="fnref-sixth"><a href="#fn-sixth" class="footnote-ref">sixth</a></sup>. ECDAA is a protocol for proving the attestation held by a Trusted Platform Module (TPM) to a verifier without revealing the attestation held by that TPM. Pairing cryptography is used for constructing ECDAA. FIDO Alliance<sup id="fnref-seventh"><a href="#fn-seventh" class="footnote-ref">seventh</a></sup> and W3C<sup id="fnref-eighth"><a href="#fn-eighth" class="footnote-ref">eighth</a></sup> have also published ECDAA algorithms similar to TCG.</p><p>In 2015, NIST (<a href="http://www.theregister.co.uk/2014/05/26/congress_divorces_nist_from_nsa/" target="_blank" rel="noopener noreferrer">the &#x27;post-NSA&#x27; NIST</a>) goes so far as to recommend standardization of pairing based cryptography in their publication, <a href="http://nvlpubs.nist.gov/nistpubs/jres/120/jres.120.002.pdf" target="_blank" rel="noopener noreferrer">Report on Pairing-Based Cryptography</a>.</p><blockquote><p>&quot;Based on the study, the report suggests an approach for including pairing-based cryptography schemes in the NIST cryptographic toolkit. As we have seen, pairing-based cryptography has much to offer. Pairing-based schemes, such as IBE, provide special properties which cannot be provided through traditional PKI in a straightforward way. Therefore, pairing-based cryptographic schemes would make a nice addition to NIST’s cryptographic toolkit. In particular, we have focused attention on IBE. IBE simplifies key management procedures of certificate-based public key infrastructures. IBE also offers interesting features arising from the possibility of encoding additional information into a user’s identity. It has been a decade since the first IBE schemes were proposed. These schemes have received sufficient attention from the cryptographic community and no weakness has been identified.&quot;</p><p> --- NIST, <em>Report on Pairing-Based Cryptography</em></p></blockquote><h2 class="anchor anchorWithStickyNavbar_LWe7" id="the-move-to-post-quantum">The Move to Post-Quantum<a class="hash-link" href="#the-move-to-post-quantum" title="Direct link to heading"></a></h2><p>The security of almost all public-key cryptosystems in use today rely on computational assumptions such as the Integer Factorization (IF) and Discrete Logarithm (DL) problems as the foundation of their security. These are problems that today&#x27;s classical computers cannot solve. In 1994, Shor<sup id="fnref-ninth"><a href="#fn-ninth" class="footnote-ref">ninth</a></sup> showed that both IF and DL problems are easy to solve on a quantum computer, based on the laws of quantum physics. As a consequence, almost all currently deployed public-key cryptosystems will become completely insecure if quantum computers become a practical reality.</p><p>According to NIST in its Report on Post-Quantum Cryptography<sup id="fnref-tenth"><a href="#fn-tenth" class="footnote-ref">tenth</a></sup>, &quot;It will take significant effort to ensure a smooth and secure migration from the current widely used cryptosystems to their quantum computing resistant counterparts. Therefore, regardless of whether we can estimate the exact time of the arrival of the quantum computing era, we must begin now to prepare our information security systems to be able to resist quantum computing.&quot;</p><p>Most experts have a range of quantum computing being strong enough to crack today&#x27;s cryptosystems being on the horizon anywhere from five to twenty years. It should also be stated that quantum computation only speeds up a brute-force keysearch by a factor of a square root, so any symmetric algorithm can be made secure against a quantum computer by doubling the key length, i.e., take AES from 128 bits to 256.</p><p>Milagro has begun implementing post-quantum algorithms into its code base, beginning with the Supersingular Isogeny Key Encapsulation<sup id="fnref-eleventh"><a href="#fn-eleventh" class="footnote-ref">eleventh</a></sup> protocol. Why? </p><p>Obviously, data that is transient and that does not retain a long term value doesn&#x27;t require a level of protection against a post-quantum adversary. It becomes an issue when data is retained for the long term. If data is harvested and stored, and has retained value even after decades, then it should be protected to a post-quantum degree. In short, you are protecting the data for the day <em>WHEN</em> a working quantum computer comes online.</p><hr><p><strong>It is hoped that Apache Milagro will become a safe, IPR free island of innovation for cryptographers interested in pairing protocols that deliver much needed core security infrastructure for the advancement of decentralized networks and distributed systems.</strong></p><p><strong>We hope you join us and become part of this journey.</strong></p><hr><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>See an error in this documentation? </div><div class="admonitionContent_S0QG"><p>Submit a pull request on the development branch of <a href="https://github.com/apache/incubator-milagro" target="_blank" rel="noopener noreferrer">Milagro Website Repo</a>.</p></div></div><p>Supported admonition types are: caution, note, important, tip, warning.</p><div class="footnotes"><hr><ol><li id="fn-first"><a href="https://datatracker.ietf.org/doc/draft-boneh-bls-signature/" target="_blank" rel="noopener noreferrer">IETF BLS Signature Internet Draft</a><a href="#fnref-first" class="footnote-backref"></a></li><li id="fn-second"><a href="https://tools.ietf.org/html/draft-scott-mpin-00" target="_blank" rel="noopener noreferrer">IETF M-Pin Informational Draft</a><a href="#fnref-second" class="footnote-backref"></a></li><li id="fn-third"><a href="https://www.computerweekly.com/news/4500260479/Experian-chooses-UK-authentication-startup-for-GovUK-Verify" target="_blank" rel="noopener noreferrer">UK Government selects M-Pin protocol based authentication provider</a><a href="#fnref-third" class="footnote-backref"></a></li><li id="fn-fourth"><a href="https://z.cash/technology/zksnarks.html" target="_blank" rel="noopener noreferrer">Lindemann, R., &quot;What are zk-SNARKs?&quot;, July 2018</a><a href="#fnref-fourth" class="footnote-backref"></a></li><li id="fn-fifth"><a href="https://blog.cloudflare.com/geo-key-manager-how-it-works" target="_blank" rel="noopener noreferrer">Geo Key Manager: How It Works</a><a href="#fnref-fifth" class="footnote-backref"></a></li><li id="fn-sixth"><a href="https://trustedcomputinggroup.org/resource/tpm-library-specification/" target="_blank" rel="noopener noreferrer">TPM 2.0 Library Specification&quot;, September 2016</a><a href="#fnref-sixth" class="footnote-backref"></a></li><li id="fn-seventh"><a href="https://fidoalliance.org/specs/fido-v2.0-rd-20180702/fido-ecdaa-algorithm-v2.0-rd-20180702.html" target="_blank" rel="noopener noreferrer">FIDO ECDAA Algorithm - FIDO Alliance Review Draft 02</a><a href="#fnref-seventh" class="footnote-backref"></a></li><li id="fn-eighth"><a href="https://www.w3.org/TR/webauthn" target="_blank" rel="noopener noreferrer">Web Authentication: An API for accessing Public Key Credentials Level 1 - W3C Candidate Recommendation</a><a href="#fnref-eighth" class="footnote-backref"></a></li><li id="fn-ninth"><a href="https://pdfs.semanticscholar.org/6902/cb196ec032852ff31cc178ca822a5f67b2f2.pdf" target="_blank" rel="noopener noreferrer">Algorithms for quantum computation: discrete logarithms and factoring</a><a href="#fnref-ninth" class="footnote-backref"></a></li><li id="fn-tenth"><a href="https://nvlpubs.nist.gov/nistpubs/ir/2016/NIST.IR.8105.pdf" target="_blank" rel="noopener noreferrer">Report on post-quantum cryptography</a><a href="#fnref-tenth" class="footnote-backref"></a></li><li id="fn-eleventh"><a href="https://sike.org/" target="_blank" rel="noopener noreferrer">SIKE</a><a href="#fnref-eleventh" class="footnote-backref"></a></li></ol></div></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--next" href="/docs/milagro-crypto"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Milagro Crypto</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#pairing-cryptography" class="table-of-contents__link toc-highlight">Pairing Cryptography</a></li><li><a href="#pairings-go-mainstream" class="table-of-contents__link toc-highlight">Pairings Go Mainstream</a></li><li><a href="#the-move-to-post-quantum" class="table-of-contents__link toc-highlight">The Move to Post-Quantum</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/milagro.svg" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/img/milagro.svg" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></div><div class="footer__copyright">Copyright © 2022 The Apache Software Foundation. Apache Milagro, Milagro, Apache, the Apache feather, and the Apache Milagro project logo are either registered trademarks or trademarks of the Apache Software Foundation.</div></div></div></footer></div>
<script src="/assets/js/runtime~main.b2dc6e47.js"></script>
<script src="/assets/js/main.8eab308a.js"></script>
</body>
</html>