CINXE.COM

How Public Key Cryptography Really Works | Quanta Magazine

<!doctype html> <html lang='en'> <head> <meta charset='utf-8'> <meta name='viewport' content='width=device-width, initial-scale=1, minimum-scale=1'> <link rel='icon' href='https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/images/favicon.png' /> <link rel='apple-touch-icon' href='https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/images/apple-touch-icon.png' /> <title>How Public Key Cryptography Really Works | Quanta Magazine</title> <!-- The SEO Framework by Sybre Waaijer --> <link rel="canonical" href="https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/" /> <meta name="description" content="The security system that underlies the internet makes use of a curious fact: You can broadcast part of your encryption to make your information much more secure." /> <meta property="og:type" content="article" /> <meta property="og:locale" content="en_US" /> <meta property="og:site_name" content="Quanta Magazine" /> <meta property="og:title" content="How Public Key Cryptography Really Works | Quanta Magazine" /> <meta property="og:description" content="The security system that underlies the internet makes use of a curious fact: You can broadcast part of your encryption to make your information much more secure." /> <meta property="og:url" content="https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/" /> <meta property="og:image" content="https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Social.jpg" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="630" /> <meta property="article:published_time" content="2024-11-15T14:51:08+00:00" /> <meta property="article:modified_time" content="2024-11-15T14:51:37+00:00" /> <meta property="article:publisher" content="https://www.facebook.com/QuantaNews" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@QuantaMagazine" /> <meta name="twitter:title" content="How Public Key Cryptography Really Works | Quanta Magazine" /> <meta name="twitter:description" content="The security system that underlies the internet makes use of a curious fact: You can broadcast part of your encryption to make your information much more secure." /> <meta name="twitter:image" content="https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Social.jpg" /> <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://www.quantamagazine.org/#/schema/WebSite","url":"https://www.quantamagazine.org/","name":"Quanta Magazine","description":"Illuminating science","inLanguage":"en-US","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.quantamagazine.org/search/{search_term_string}/"},"query-input":"required name=search_term_string"},"publisher":{"@type":"Organization","@id":"https://www.quantamagazine.org/#/schema/Organization","name":"Quanta Magazine","url":"https://www.quantamagazine.org/"}},{"@type":"WebPage","@id":"https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/","url":"https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/","name":"How Public Key Cryptography Really Works | Quanta Magazine","description":"The security system that underlies the internet makes use of a curious fact: You can broadcast part of your encryption to make your information much more secure.","inLanguage":"en-US","isPartOf":{"@id":"https://www.quantamagazine.org/#/schema/WebSite"},"breadcrumb":{"@type":"BreadcrumbList","@id":"https://www.quantamagazine.org/#/schema/BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":"https://www.quantamagazine.org/","name":"Quanta Magazine"},{"@type":"ListItem","position":2,"item":"https://www.quantamagazine.org/./computer-science/","name":"Computer Science News, Interviews and Columns From Quanta Magazine"},{"@type":"ListItem","position":3,"name":"How Public Key Cryptography Really Works"}]},"potentialAction":{"@type":"ReadAction","target":"https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/"},"datePublished":"2024-11-15T14:51:08+00:00","dateModified":"2024-11-15T14:51:37+00:00","author":{"@type":"Person","@id":"https://www.quantamagazine.org/#/schema/Person/7f5a01bb7ac72c678ae5d5c27ed2201f","name":"John Pavlus","description":"John Pavlus is a writer and filmmaker whose work has appeared in Scientific American, Bloomberg Businessweek, and The Best American Science and Nature Writing series. He lives in Portland, Oregon."}}]}</script> <!-- / The SEO Framework by Sybre Waaijer | 7.49ms meta | 0.07ms boot --> <link rel="alternate" type="application/rss+xml" title="Quanta Magazine &raquo; How Public Key Cryptography Really Works, Using Only Simple Math Comments Feed" href="https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.quantamagazine.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.quantamagazine.org/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' type='text/css' media='all' /> <style id='co-authors-plus-coauthors-style-inline-css' type='text/css'> .wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline} </style> <style id='co-authors-plus-avatar-style-inline-css' type='text/css'> .wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto} </style> <style id='co-authors-plus-image-style-inline-css' type='text/css'> .wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto} </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='privacy-consent-front-css' href='https://www.quantamagazine.org/wp-content/plugins/sf-privacy-consent/css/front.min.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='fonts-css' href='https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/css/fonts.css' type='text/css' media='all' /> <link rel='stylesheet' id='main-css' href='https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/dist/main.min.css?ver=1730911106' type='text/css' media='all' /> <link rel='stylesheet' id='simple-favorites-css' href='https://www.quantamagazine.org/wp-content/plugins/quanta-favorites/assets/css/favorites.css?ver=2.3.4' type='text/css' media='all' /> <link rel="https://api.w.org/" href="https://www.quantamagazine.org/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.quantamagazine.org/wp-json/wp/v2/posts/144155" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.quantamagazine.org/xmlrpc.php?rsd" /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.quantamagazine.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.quantamagazine.org%2Fhow-public-key-cryptography-really-works-20241115%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.quantamagazine.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.quantamagazine.org%2Fhow-public-key-cryptography-really-works-20241115%2F&#038;format=xml" /> <script> // Define dataLayer and the gtag function. window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} // Set default consent to 'denied' gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'granted' }); </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KZGMXJ7');</script> <!-- End Google Tag Manager --> <style> #postBody {--theme-text: #1a1a1a;--theme-accent: #ff8600;--theme-background: #FFFFFF;}.theme__text {color: #1a1a1a;}.theme__text-background,.flickity-page-dots .dot {background-color: #1a1a1a;}.theme__text-hover:hover {color: #1a1a1a;}.theme__background {color: #FFFFFF;}.theme__background-background {background-color: #FFFFFF;}.putz__inner,.theme__accent {color: #ff8600;}.theme__accent-background, .theme__accent-bg-hover:hover,.flickity-page-dots .dot.is-selected {background-color: #ff8600;}.theme__accent-hover:hover, .download-button * {color: #ff8600;}.theme__accent-hover-child:hover * {color: #ff8600;}.theme__anchors--underline a {box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 1px 0 #1a1a1a;}.theme__anchors--underline a:hover {box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 1px 0 #ff8600;}.theme__anchors--solid a {color: #ff8600;}.theme__anchors--solid a:hover {color: #1a1a1a;}.theme__anchors--underline h2.large a {color: #1a1a1a;box-shadow: none;}.theme__anchors--underline h2.large a:hover {color: #ff8600;}.is-hover .card__title {color: #ff8600;}.text-1a1a1a,.text-1a1a1a:hover{color:#1a1a1a;}.text-ffffff,.text-ffffff:hover{color:#ffffff;}.text-999999,.text-999999:hover{color:#999999;}.text-ffac8b,.text-ffac8b:hover{color:#ffac8b;}.text-ff8600,.text-ff8600:hover{color:#ff8600;} </style> </head> <body class="post-template-default single single-post postid-144155 single-format-standard "> <header class='nav fixed fit-t fit-l fit-r z9 '> <div class="relative z0"> <div class="mega fixed fit-x z0 bg-black transition-opacity duration-500 opacity-0 invisible" id="menu" role="menu"> <div class="mega__outer flex flex-items-center"> <div class="mega__inner pv2 transition-transform duration-500 transition-opacity ease-in-out -translate-y-10 opacity-0"> <div class="flex fill-h mha container--m"> <section class="outer flex scale0 fill-h"> <div class="flex flex-wrap flex-items-start align-c pv2 fill-h"> <div class="mega__logo relative mv1 fill-h align-c"> <a href="/"> <svg x="0px" y="0px" viewbox="0 0 353.5 49.5" enable-background="new 0 0 353.5 49.5" class='inline-block'> <title>Quanta Homepage</title> <g id="logo"> <path id="logo__mark" class='transition--color orange' fill="currentColor" d="M28.4,5.9c1,0,1.9-0.8,1.9-1.9c0-1-0.8-1.9-1.9-1.9c-1,0-1.9,0.8-1.9,1.9C26.5,5.1,27.3,5.9,28.4,5.9z M28.4,43.6c-1,0-1.9,0.8-1.9,1.9c0,1,0.8,1.9,1.9,1.9c1,0,1.9-0.8,1.9-1.9C30.3,44.5,29.4,43.6,28.4,43.6z M10.9,33.3 c-0.5-0.1-1-0.1-1.4,0.2c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.5-0.1,1,0.2,1.4c0.4,0.6,1,0.9,1.6,0.9c0.3,0,0.6-0.1,0.9-0.3 c0.4-0.3,0.8-0.7,0.9-1.1c0.1-0.5,0.1-1-0.2-1.4C11.8,33.7,11.4,33.4,10.9,33.3z M46.8,12.6c-0.5-0.1-1-0.1-1.4,0.2 c-0.9,0.5-1.2,1.7-0.7,2.6c0.3,0.4,0.7,0.7,1.1,0.9c0.2,0,0.3,0.1,0.5,0.1c0.3,0,0.6-0.1,0.9-0.3c0.4-0.3,0.8-0.7,0.9-1.1 c0.1-0.5,0.1-1-0.2-1.4C47.7,13,47.3,12.7,46.8,12.6z M47.3,33.5c-0.4-0.3-0.9-0.3-1.4-0.2c-0.3,0.1-0.6,0.3-0.8,0.5l-3.4-2 c0.2-0.5,0.2-1,0.1-1.5c-0.2-0.7-0.6-1.2-1.2-1.6c-1.3-0.7-2.9-0.3-3.6,1c-0.4,0.6-0.4,1.3-0.3,2c0,0.1,0,0.1,0.1,0.2l-6.3,3.6 c-0.5-0.6-1.2-0.9-2-0.9c-0.8,0-1.5,0.4-2,0.9l-6.3-3.6c0-0.1,0-0.1,0.1-0.2c0.2-0.7,0.1-1.4-0.3-2c-0.4-0.6-0.9-1-1.6-1.2 c-0.1,0-0.1,0-0.2,0v-7.3c0.1,0,0.1,0,0.2,0c0.7-0.2,1.2-0.6,1.6-1.2c0.4-0.6,0.4-1.3,0.3-2c0-0.1,0-0.1-0.1-0.2l6.3-3.6 c0.5,0.6,1.2,0.9,2,0.9c1.5,0,2.6-1.2,2.6-2.6s-1.2-2.6-2.6-2.6s-2.6,1.2-2.6,2.6c0,0.3,0.1,0.6,0.2,0.9l-6.3,3.6 c-0.2-0.2-0.4-0.4-0.7-0.6c-0.6-0.4-1.3-0.4-2-0.3c-0.7,0.2-1.2,0.6-1.6,1.2c-0.7,1.3-0.3,2.9,1,3.6l0,0c0.3,0.1,0.5,0.2,0.8,0.3 v7.3c-0.3,0.1-0.6,0.1-0.8,0.3c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2c0.4,0.6,0.9,1,1.6,1.2c0.2,0.1,0.5,0.1,0.7,0.1 c0.5,0,0.9-0.1,1.3-0.4c0.3-0.1,0.5-0.3,0.7-0.6l6.3,3.6c-0.1,0.3-0.2,0.6-0.2,0.9c0,1.5,1.2,2.6,2.6,2.6s2.6-1.2,2.6-2.6 c0-0.3-0.1-0.6-0.2-0.9l6.3-3.6c0.2,0.2,0.4,0.4,0.7,0.6l0,0c0.4,0.2,0.9,0.4,1.3,0.4c0.7,0,1.5-0.3,2-0.9l3.4,2 c-0.1,0.3-0.1,0.6,0,1c0.1,0.5,0.4,0.9,0.9,1.1c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1c0.5-0.1,0.9-0.4,1.1-0.9 c0.3-0.4,0.3-0.9,0.2-1.4C48,34.2,47.7,33.7,47.3,33.5z M9.5,16c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1 c0.5-0.1,0.9-0.4,1.1-0.9c0.5-0.9,0.2-2.1-0.7-2.6c-0.9-0.5-2.1-0.2-2.6,0.7c-0.3,0.4-0.3,0.9-0.2,1.4C8.7,15.4,9,15.8,9.5,16z M15.7,2.8c0.7-0.4,0.9-1.3,0.5-2c-0.4-0.7-1.3-0.9-2-0.5c-0.7,0.4-0.9,1.3-0.5,2C14.1,2.9,15,3.2,15.7,2.8z M41.1,46.8 c-0.7,0.4-0.9,1.3-0.5,2c0.4,0.7,1.3,0.9,2,0.5c0.7-0.4,0.9-1.3,0.5-2C42.7,46.6,41.8,46.4,41.1,46.8z M15.7,46.8 c-0.7-0.4-1.6-0.2-2,0.5c-0.4,0.7-0.2,1.6,0.5,2c0.7,0.4,1.6,0.2,2-0.5C16.6,48.1,16.4,47.2,15.7,46.8z M41.1,2.8 c0.7,0.4,1.6,0.2,2-0.5c0.4-0.7,0.2-1.6-0.5-2c-0.7-0.4-1.6-0.2-2,0.5C40.1,1.4,40.4,2.3,41.1,2.8z M55.3,23.3 c-0.8,0-1.5,0.7-1.5,1.5c0,0.8,0.7,1.5,1.5,1.5c0.8,0,1.5-0.7,1.5-1.5C56.7,24,56.1,23.3,55.3,23.3z M1.5,23.3C0.7,23.3,0,24,0,24.8 c0,0.8,0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5C2.9,24,2.3,23.3,1.5,23.3z M39.1,21.2c0.4,0,0.9-0.1,1.3-0.4c1.3-0.7,1.7-2.3,1-3.6 c-0.7-1.3-2.3-1.7-3.6-1l0,0c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2C37.3,20.7,38.2,21.2,39.1,21.2z"></path> <path id="logo__quanta" class='transition--color orange' fill="currentColor" d="M309.9,14c0,1.1-0.9,1.8-2,1.8c-0.9,0-1.8-0.7-1.8-1.8c0-1.2,0.8-2,1.9-2C309.2,12,309.9,12.8,309.9,14z M85.5,28.7c0.6-1.3,0.8-2.6,0.8-4.2c0-2.9-1-5.2-2.9-7.1c-1.9-1.9-4.2-2.8-7-2.8s-5.1,0.9-7,2.8c-1.9,1.9-2.9,4.2-2.9,7.1 c0,2.9,1,5.2,2.9,7.1c1.9,1.9,4.2,2.8,7,2.8c2.7,0,4.9-0.9,6.8-2.6l2.6,1.7l2.2-3.3L85.5,28.7z M82.1,26.5L79.8,25l-2.2,3.3l2.3,1.5 c-1,0.7-2.1,1.1-3.5,1.1c-1.8,0-3.2-0.6-4.3-1.7c-1.1-1.2-1.6-2.7-1.6-4.6c0-1.9,0.5-3.4,1.6-4.6c1.1-1.2,2.5-1.7,4.3-1.7 c1.8,0,3.2,0.6,4.3,1.7c1.1,1.1,1.6,2.7,1.6,4.6C82.3,25.2,82.2,25.9,82.1,26.5z M103.2,27.3c0,1.2-0.3,2.1-0.9,2.8 c-0.6,0.6-1.5,1-2.5,1s-1.9-0.3-2.5-1c-0.6-0.6-0.9-1.6-0.9-2.8v-8.5h-3.9v9c0,2,0.6,3.7,1.7,4.8c1.1,1.2,2.5,1.7,4.3,1.7 c2.2,0,3.6-0.4,4.8-1.7v1.5h3.9V18.9h-3.9V27.3z M144.3,18.9c-2.2,0-3.6,0.4-4.8,1.7v-1.5h-3.9v15.4h3.9V26c0-1.2,0.3-2.1,0.9-2.8 c0.6-0.6,1.5-1,2.5-1c1.1,0,1.9,0.3,2.5,1c0.6,0.6,0.9,1.6,0.9,2.8v8.5h3.9v-9c0-2-0.6-3.7-1.7-4.8C147.4,19.5,146,18.9,144.3,18.9z M124.8,18.9v1.5c-0.8-0.8-2.7-1.7-4.8-1.7c-2.1,0-3.8,0.7-5.2,2.2c-1.4,1.5-2.1,3.4-2.1,5.7c0,2.3,0.7,4.2,2.1,5.7 c1.4,1.5,3.1,2.2,5.2,2.2c1.3,0,3-0.2,4.8-1.6v1.4h3.9V18.9H124.8z M123.6,29.9c-0.8,0.8-1.8,1.2-2.8,1.2c-1.1,0-2-0.4-2.8-1.2 c-0.8-0.8-1.2-1.9-1.2-3.3c0-1.4,0.4-2.5,1.2-3.3c0.8-0.8,1.8-1.2,2.8-1.2c1.1,0,2,0.4,2.9,1.2c0.8,0.8,1.2,1.9,1.2,3.3 C124.8,28,124.4,29.1,123.6,29.9z M180.1,18.9v1.5c-0.8-0.8-2.7-1.7-4.8-1.7c-2.1,0-3.8,0.7-5.2,2.2c-1.4,1.5-2.1,3.4-2.1,5.7 c0,2.3,0.7,4.2,2.1,5.7c1.4,1.5,3.1,2.2,5.2,2.2c1.3,0,3-0.2,4.8-1.6v1.4h3.9V18.9H180.1z M178.9,29.9c-0.8,0.8-1.8,1.2-2.8,1.2 c-1.1,0-2-0.4-2.8-1.2c-0.8-0.8-1.2-1.9-1.2-3.3c0-1.4,0.4-2.5,1.2-3.3C174,22.4,175,22,176,22c1.1,0,2,0.4,2.9,1.2 c0.8,0.8,1.2,1.9,1.2,3.3C180.1,28,179.7,29.1,178.9,29.9z M161.4,31c-1.1,0-1.9-0.7-1.9-2.1v-6.4h4.1v-3.2h-4.1v-4h-3.7v4v3.2v6.4 c0,3.7,2.1,5.5,5.3,5.4c1.1,0,2-0.2,3-0.6l-1-3.1C162.6,30.9,161.9,31,161.4,31z"></path> <path id="logo__magazine" class='transition--color gray2' fill="currentColor" d="M218.3,33.5l-0.1,1c-1.1,0-2.4-0.1-3.9-0.1c-1.5,0-2.7,0.1-3.6,0.1v-1c1.6-0.1,2-0.3,2-0.9 c0.1-0.8,0.1-2.4,0.1-5.1c0-4.4,0-4.9-0.3-5.4c-0.4-0.9-1.2-1.4-2.4-1.4c-1.6,0-3,1-3.7,2.3c-0.2,0.5-0.4,0.9-0.4,1.5v4.7 c0,1.3,0,2.6,0.1,3.4c0,0.7,0.4,0.9,2.2,0.9l-0.1,1c-0.9,0-2.5-0.1-3.9-0.1c-1.4,0-2.6,0.1-3.5,0.1v-1c1.6-0.1,2-0.2,2-1 c0.1-1.1,0.1-2.2,0.1-4.4v-2.8c0-2.4,0-2.8-0.2-3.3c-0.4-0.9-1.1-1.3-2.3-1.3c-1.5,0-3,0.9-3.8,2.4c-0.3,0.6-0.4,0.9-0.4,1.7v4.6 c0,1.4,0,2.5,0.1,3.3c0.1,0.7,0.4,0.8,2.1,0.9l-0.1,0.9c-0.8,0-2.5-0.1-3.8-0.1c-1.3,0-2.6,0.1-3.7,0.1v-1c1.8,0,2.1-0.2,2.1-1 c0-0.9,0.1-2.3,0.1-4.2v-2.9c0-1.9,0-3.4-0.1-4.3c0-0.5-0.3-0.6-2.2-0.6l0.1-0.9c1.7,0,3.6-0.2,5.2-0.5c0.1,0.6,0.2,2.2,0.2,2.7 c1.3-1.3,3.2-2.9,5.7-2.9c2,0,2.9,0.8,3.4,1.5c0.3,0.4,0.5,0.9,0.6,1.3c1.2-1.2,3-2.8,5.7-2.8c2.1,0,3.3,1.1,3.8,2 c0.4,0.7,0.5,1.5,0.5,2.3v9.4C216,33.3,216.2,33.4,218.3,33.5z M238.4,31l0.9,0.4c-0.5,2.5-1.9,3.4-3.5,3.4c-1.8,0-2.5-1.1-2.7-2.6 c-1.5,1.7-3.4,2.6-5,2.6c-2.7,0-4.3-1.9-4.3-4.3c0-1.4,0.6-2.6,2-3.2c2.4-1,6-2.1,7.4-3.1v-1.4c0-1.5-0.7-3-2.7-3 c-2.1,0-3,1.1-3,2.5c0,0.4,0.1,0.8,0.1,1.1c0.1,0.3-0.1,0.6-0.3,0.7c-0.3,0.2-0.7,0.4-1.2,0.4c-0.8,0-1.5-0.4-1.5-1.6 c0-1.8,2.6-4.1,6.4-4.1c3,0,4.3,1.3,4.7,2c0.3,0.5,0.5,1.2,0.5,1.8v8.9c0,1.3,0.4,1.5,0.8,1.5C237.5,33.1,238,32.4,238.4,31z M233,25.3c-1,0.5-2.8,1.3-4.1,2c-1.1,0.6-1.8,1.1-1.8,2.7c0,1.7,0.9,3,2.5,3c1.7,0,2.7-1,3.3-2.3c0.1-0.4,0.2-1,0.2-1.5V25.3z M255.8,27.1c-1.3,0-2.8-0.1-3.7-0.1l0,0.9l1.5,0.1c1.2,0.1,1.4,0.3,1.4,1.3c0,1,0,2.4-0.1,3.2c-0.1,0.8-1.1,1.3-2.5,1.3 c-1.5,0-2.8-0.5-3.8-1.8c-0.9-1.1-1.3-3.1-1.3-5.1c0-2.2,0.5-3.9,1.4-5.1c0.8-1.2,2-1.8,3.5-1.8c2.6,0,4.1,1.7,4.4,5l0.9,0 c-0.1-2.1,0.2-4.8,0.4-5.7l-0.8-0.3l-0.5,1.3c-0.5-0.5-1.8-1.4-4.3-1.4c-1.6,0-3,0.3-4.2,1c-2.4,1.3-3.8,3.9-3.8,7 c0,2.4,0.6,4.2,1.7,5.5c1.2,1.5,3.2,2.3,6.1,2.3c1.2,0,2.5-0.3,3.6-0.6c1-0.3,1.8-0.6,2.4-0.7c-0.1-0.5-0.2-1.3-0.2-2.5 c0-0.7,0-1.7,0.1-2.3c0-0.5,0.3-0.6,1.5-0.8l0-0.9C258.4,27.1,257.1,27.1,255.8,27.1z M279.4,31l0.9,0.4c-0.5,2.5-1.9,3.4-3.5,3.4 c-1.8,0-2.5-1.1-2.7-2.6c-1.5,1.7-3.4,2.6-5,2.6c-2.7,0-4.3-1.9-4.3-4.3c0-1.4,0.6-2.6,2-3.2c2.4-1,6-2.1,7.4-3.1v-1.4 c0-1.5-0.7-3-2.7-3c-2.1,0-3,1.1-3,2.5c0,0.4,0.1,0.8,0.1,1.1c0.1,0.3-0.1,0.6-0.3,0.7c-0.3,0.2-0.7,0.4-1.2,0.4 c-0.8,0-1.5-0.4-1.5-1.6c0-1.8,2.6-4.1,6.4-4.1c3,0,4.3,1.3,4.7,2c0.3,0.5,0.5,1.2,0.5,1.8v8.9c0,1.3,0.4,1.5,0.8,1.5 C278.5,33.1,279,32.4,279.4,31z M274,25.3c-1,0.5-2.8,1.3-4.1,2c-1.1,0.6-1.8,1.1-1.8,2.7c0,1.7,0.9,3,2.5,3c1.7,0,2.7-1,3.3-2.3 c0.1-0.4,0.2-1,0.2-1.5V25.3z M295.1,33c-1,0.2-2.8,0.3-5.6,0.3c1.8-2.8,7.1-10.8,7.9-12c0.4-0.7,0.8-1.4,0.9-2.1 c-1.4,0-2.6,0.1-5.3,0.1h-3c-2,0-3.2-0.1-3.8-0.4c0,2.1-0.2,4.4-0.4,5.8l0.9-0.2c0.2-0.8,0.4-1.7,0.7-2.6c0.4-1.1,0.9-1.4,2.4-1.5 c1.4-0.1,2.9-0.1,4.4-0.1c-0.9,1.8-5.2,8.8-9,13.4l0.4,0.7c0.6,0,1.7-0.1,3.7-0.1c3.8,0,7.8,0.1,9.1,0.2c0.1-1.6,0.4-4.3,0.6-5.8 l-0.9-0.2C297.3,32,296.5,32.9,295.1,33z M309.9,32.5c0-0.7-0.1-1.9-0.1-4.1v-4.1c0-2.6,0.1-4.6,0.1-5.4c-1.6,0.4-3.9,0.5-5.6,0.6 l0,0.9c1.9-0.1,2.2,0,2.2,0.5c0,0.5,0.1,1.7,0.1,3.6v3.9c0,2-0.1,3.5-0.1,4.1c0,0.6-0.3,0.9-2.4,1l0,1c1.1,0,2.1-0.1,3.8-0.1 c1.7,0,3,0.1,4,0.1l0-1C310.3,33.4,309.9,33.3,309.9,32.5z M332.9,32.5v-9.3c0-0.8-0.1-1.6-0.5-2.2c-0.5-1.1-1.7-2.1-4-2.1 c-2.5,0-4.2,1.5-5.5,2.7c0-0.5-0.1-1.9-0.2-2.6c-1.6,0.3-3.4,0.5-5.1,0.5l-0.1,0.9c1.8,0,2.1,0.1,2.1,0.6c0.1,0.9,0.1,2.4,0.1,4.3 v3.1c0,1.7-0.1,3-0.1,4c0,0.8-0.3,0.9-2.1,1v1c1,0,2.2-0.1,3.7-0.1c1.3,0,3,0.1,3.9,0.1l0.1-1c-1.8-0.1-2.1-0.2-2.1-0.9 c-0.1-0.8-0.1-2.2-0.1-3.7v-4.1c0-0.8,0.1-1.3,0.4-1.8c0.8-1.4,2.1-2.2,3.8-2.2c1.2,0,1.9,0.5,2.4,1.3c0.3,0.6,0.4,1,0.4,5.4 c0,2.8-0.1,4.4-0.1,5.1c-0.1,0.7-0.4,0.8-2,0.9l0,1c0.8,0,2-0.1,3.6-0.1c1.5,0,2.8,0.1,3.9,0.1l0.1-1 C333.1,33.4,332.9,33.3,332.9,32.5z M352.5,29.8l0.9,0.5c-1.1,3.2-3.3,4.5-6.3,4.5c-2.7,0-4.4-0.8-5.6-2.4c-0.9-1.2-1.5-3.2-1.5-5.3 c0-4.4,2.5-8.3,7.4-8.3c5.1,0,6,4,6,6.1c0,0.7-0.2,1.2-0.7,1.4c-0.6,0.2-2.3,0.4-4.6,0.5c-1.2,0-3.1,0-4.6,0 c-0.1,1.9,0.4,3.6,1.1,4.6c0.8,1.2,1.9,1.8,3.5,1.8C350.3,33.2,351.6,32.2,352.5,29.8z M343.6,25.7h2.9c1.7,0,2.6-0.1,3.1-0.2 c0.5-0.1,0.7-0.5,0.7-1.2c0-1.9-0.8-4.4-3.1-4.4C344.8,19.9,343.7,22.8,343.6,25.7z"></path> </g></svg> </a> </div> <nav class="mega__main mega__group h2 orange fill-h"> <ul> <li class="pv05"> <a class="mega__link pangram mbold" role="menuitem" href="https://www.quantamagazine.org/./physics/">Physics</a> </li> <li class="pv05"> <a class="mega__link pangram mbold" role="menuitem" href="https://www.quantamagazine.org/./mathematics/">Mathematics</a> </li> <li class="pv05"> <a class="mega__link pangram mbold" role="menuitem" href="https://www.quantamagazine.org/./biology/">Biology</a> </li> <li class="pv05"> <a class="mega__link pangram mbold" role="menuitem" href="https://www.quantamagazine.org/./computer-science/">Computer Science</a> </li> <li class="pv05"> <a class="mega__link pangram mbold" role="menuitem" href="/topics">Topics</a> </li> <li class="pv05"> <a class="mega__link pangram mbold" role="menuitem" href="https://www.quantamagazine.org/archive/">Archive</a> </li> </ul> </nav> <nav class="mega__secondary mega__group h3 gray3 fill-h"> <ul> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="https://www.quantamagazine.org/./abstractions/">Blog</a> </li> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="/tag/quantized">Columns</a> </li> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="https://www.quantamagazine.org/./qa/">Interviews</a> </li> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="/podcasts/">Podcasts</a> </li> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="https://www.quantamagazine.org/./puzzles/">Puzzles</a> </li> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="https://www.quantamagazine.org/./multimedia/">Multimedia</a> </li> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="/videos">Videos</a> </li> <li class="pv075"> <a class="mega__link merriweather" role="menuitem" href="https://www.quantamagazine.org/about/">About Quanta</a> </li> </ul> </nav> <div class="mega__other mega__group white fill-h grid"> <div class="mega__notice mb2"> <p class="h5 mt025 italic o6"> <em>An editorially independent publication supported by the Simons Foundation.</em> </p> </div> <div class="mega__social"> <div class="mv0 bold h2t"> Follow Quanta </div> <div class='social-links flex flex-justify-between flex-items-center social-links--mega mt1 pt05 flex-justify-center'> <a href='https://www.facebook.com/QuantaNews' target="_blank" class='social-links__link flex flex-items-center relative facebook mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg class="absolute fit-x mxa " viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path fill="currentColor" d="M13 16.5h5.1v-5c-.2-2.7.3-5.4 1.7-7.7 1.8-2.5 4.9-4 8-3.8 3.1-.1 6.2.2 9.2 1l-1.3 7.7C34.4 8.3 33 8 31.6 8c-2 0-3.8.7-3.8 2.7v5.9H36l-.6 7.5h-7.6V50h-9.6V23.9H13v-7.4z"></path></svg></div> </a> <a href='https://twitter.com/QuantaMagazine' target="_blank" class='social-links__link flex flex-items-center relative twitter mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg class="absolute fit-x mxa " viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>X Twitter</title><path fill="currentColor" d="M50 9.9c-1.9.8-3.8 1.3-5.9 1.6 2.1-1.3 3.7-3.2 4.5-5.6-2 1.2-4.2 2-6.5 2.5-3.8-4.1-10.3-4.5-14.5-.8-2.8 2.5-4 6.3-3.1 10-8.2-.5-15.8-4.3-21-10.6-2.7 4.6-1.3 10.5 3.2 13.5C5 20.4 3.4 20 2 19.2c0 4.8 3.4 8.9 8.2 9.9-.9.2-1.8.4-2.7.3-.6 0-1.3-.1-1.9-.2 1.3 4.1 5.2 6.9 9.5 7C10.8 39.5 5.4 41 0 40.4c13.5 8.5 31.5 4.6 40.2-8.7 3-4.6 4.6-10 4.6-15.5v-1.3c2-1.3 3.7-3.1 5.2-5"></path></svg></div> </a> <a href='https://www.youtube.com/c/QuantaScienceChannel' target="_blank" class='social-links__link flex flex-items-center relative youtube mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" class="c-1a1a1a absolute fit-x mxa " viewBox="0 0 50 50" enable-background="new 0 0 50 50" width="50" height="50" > <title>Youtube</title> <path fill="currentColor" d="M18.7 33.7V16.1l15.7 8.8-15.7 8.8zM43.3 8.2c-12.2-.9-24.4-.9-36.6 0-1.8.2-3.4 1.2-4.3 2.8C1.3 12.5.6 14.3.3 16.2c-.5 5.9-.5 11.8 0 17.7.2 1.9.9 3.7 2.1 5.2 1 1.5 2.5 2.6 4.3 2.9 12.2.8 24.4.8 36.6 0 1.8-.4 3.3-1.5 4.3-3 1.1-1.5 1.8-3.3 2.1-5.1.5-6 .5-12.1 0-18.1-.2-1.8-.8-3.6-1.9-5.1-1-1.6-2.7-2.5-4.5-2.5z"></path></svg></div> </a> <a href='https://instagram.com/quantamag' target="_blank" class='social-links__link flex flex-items-center relative instagram mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" class="c-1a1a1a absolute fit-x mxa " viewBox="0 0 50 50" enable-background="new 0 0 50 50" width="50" height="50" > <title>Instagram</title> <path fill="currentColor" d="M33.4 0H16.6C7.5 0 0 7.5 0 16.6v16.8C0 42.5 7.5 50 16.6 50h16.8C42.5 50 50 42.5 50 33.4V16.6C50 7.5 42.5 0 33.4 0zM25 36.6c-6.4 0-11.6-5.2-11.6-11.6S18.6 13.4 25 13.4 36.6 18.6 36.6 25 31.4 36.6 25 36.6zm15.1-23.2c-1.8 0-3.2-1.4-3.2-3.2S38.3 7 40.1 7s3.2 1.4 3.2 3.2c0 1.7-1.5 3.2-3.2 3.2z"></path></svg></div> </a> <a href='https://www.quantamagazine.org/feed/' target="_blank" class='social-links__link flex flex-items-center relative rss mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg class="c-1a1a1a absolute fit-x mxa " viewbox="0 0 50 50" enable-background="new 0 0 50 50"><title>RSS</title><path fill="currentColor" d="M0 0v8.8c22.7 0 41.2 18.5 41.2 41.2H50C50 22.4 27.6 0 0 0z"></path><path fill="currentColor" d="M0 17.2v8.7c13.3 0 24.1 10.8 24.1 24.1h8.7c0-18.1-14.7-32.8-32.8-32.8z"></path><circle fill="currentColor" cx="7.4" cy="42.6" r="7.4"></circle></svg></div> </a> </div> <div class='mega__other__divider mv2 white o2'></div> </div> <section class='outer mega__newsletter ' id='nav-newsletter'> <div class='scale0 mt1 mha container--xs pt05'> <div class='mt0 bold h2t'> Newsletter </div> <p class='h5 mt025 italic o6'> <em>Get the latest news delivered to your inbox.</em> </p> <div class='newsletter__form block mha newsletter--mega mb2' id='mc_embed_signup'> <form action='https://quantamagazine.us1.list-manage.com/subscribe/post?u=0d6ddf7dc1a0b7297c8e06618&id=f0cb61321c' target='_blank' method='post' class='bg-white' id='mc-embedded-subscribe-form' name='mc-embedded-subscribe-form' target='_blank'> <div class='newsletter__form__inner flex flex-items-start mha'> <div class='newsletter__form__field flex flex-auto relative fill-v'> <label class='screen-reader-text' for='mce-EMAIL'>Email</label> <input type='email' class='flex fill-h px1 input--transparent pangram light scale3 placeholder-gray-808' name='EMAIL' id='mce-EMAIL' placeholder='Email address' autocorrect='off' autocapitalize='off' required> </div> <!--notice from mailchimp: real people should not fill this in and expect good things - do not remove this or risk form bot signups--> <div class='absolute left-n-infini' aria-hidden='true'> <input type='text' name='b_0d6ddf7dc1a0b7297c8e06618_f0cb61321c' tabindex='-1' value=''> </div> <button type='submit' class='ph2 pangram scale5 medium fill-v orange hover--black' id='mc-embedded-subscribe'>Subscribe</button> </div> </form> <div id='mce-responses' class='theme__anchors--solid'> <div class='response h5 merriweather italic hidden mt1' id='mce-error-response'></div> <div class='response h5 merriweather italic hidden mt1' id='mce-success-response'></div> </div> </div> <div class='h4t mb0'> <a target='_blank' href='http://us1.campaign-archive2.com/home/?u=0d6ddf7dc1a0b7297c8e06618&id=f0cb61321c' class='mega__newsletter__link pangram bold scale5 relative'> <span class='p'>Recent newsletters</span> <svg class='icon inline orange ml05' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </div> </div> <div class='mega__other__divider mv2 white o2 shop_divider'></div> </section> <div class="mega__store shop"> <div class="mv0 bold h2t"> Gift Store </div> <div class="mt025 h4t"> <a class="mega__newsletter__link pangram bold scale5 relative" href="/gift-store"> <span class="p">Shop Quanta gear</span> <svg class='icon inline orange ml05' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </div> </div> </div> </div> </section> </div> </div> </div> </div> </div> <div> <div class='nav__container z1 fill-v mha absolute fit-x'> <div class='nav__inner fill-v relative z1'> <section class='outer header__inner flex fill-v relative z1'> <nav class='flex fill-h'> <div class='header__group flex relative z1'> <a class='header__logo flex flex-items-center mr1 absolute fit-t fit-b' href='/'> <svg x="0px" y="0px" viewbox="0 0 353.5 49.5" enable-background="new 0 0 353.5 49.5" class=''> <title>Quanta Homepage</title> <g id="logo"> <path id="logo__mark" class='transition--color text-1a1a1a' fill="currentColor" d="M28.4,5.9c1,0,1.9-0.8,1.9-1.9c0-1-0.8-1.9-1.9-1.9c-1,0-1.9,0.8-1.9,1.9C26.5,5.1,27.3,5.9,28.4,5.9z M28.4,43.6c-1,0-1.9,0.8-1.9,1.9c0,1,0.8,1.9,1.9,1.9c1,0,1.9-0.8,1.9-1.9C30.3,44.5,29.4,43.6,28.4,43.6z M10.9,33.3 c-0.5-0.1-1-0.1-1.4,0.2c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.5-0.1,1,0.2,1.4c0.4,0.6,1,0.9,1.6,0.9c0.3,0,0.6-0.1,0.9-0.3 c0.4-0.3,0.8-0.7,0.9-1.1c0.1-0.5,0.1-1-0.2-1.4C11.8,33.7,11.4,33.4,10.9,33.3z M46.8,12.6c-0.5-0.1-1-0.1-1.4,0.2 c-0.9,0.5-1.2,1.7-0.7,2.6c0.3,0.4,0.7,0.7,1.1,0.9c0.2,0,0.3,0.1,0.5,0.1c0.3,0,0.6-0.1,0.9-0.3c0.4-0.3,0.8-0.7,0.9-1.1 c0.1-0.5,0.1-1-0.2-1.4C47.7,13,47.3,12.7,46.8,12.6z M47.3,33.5c-0.4-0.3-0.9-0.3-1.4-0.2c-0.3,0.1-0.6,0.3-0.8,0.5l-3.4-2 c0.2-0.5,0.2-1,0.1-1.5c-0.2-0.7-0.6-1.2-1.2-1.6c-1.3-0.7-2.9-0.3-3.6,1c-0.4,0.6-0.4,1.3-0.3,2c0,0.1,0,0.1,0.1,0.2l-6.3,3.6 c-0.5-0.6-1.2-0.9-2-0.9c-0.8,0-1.5,0.4-2,0.9l-6.3-3.6c0-0.1,0-0.1,0.1-0.2c0.2-0.7,0.1-1.4-0.3-2c-0.4-0.6-0.9-1-1.6-1.2 c-0.1,0-0.1,0-0.2,0v-7.3c0.1,0,0.1,0,0.2,0c0.7-0.2,1.2-0.6,1.6-1.2c0.4-0.6,0.4-1.3,0.3-2c0-0.1,0-0.1-0.1-0.2l6.3-3.6 c0.5,0.6,1.2,0.9,2,0.9c1.5,0,2.6-1.2,2.6-2.6s-1.2-2.6-2.6-2.6s-2.6,1.2-2.6,2.6c0,0.3,0.1,0.6,0.2,0.9l-6.3,3.6 c-0.2-0.2-0.4-0.4-0.7-0.6c-0.6-0.4-1.3-0.4-2-0.3c-0.7,0.2-1.2,0.6-1.6,1.2c-0.7,1.3-0.3,2.9,1,3.6l0,0c0.3,0.1,0.5,0.2,0.8,0.3 v7.3c-0.3,0.1-0.6,0.1-0.8,0.3c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2c0.4,0.6,0.9,1,1.6,1.2c0.2,0.1,0.5,0.1,0.7,0.1 c0.5,0,0.9-0.1,1.3-0.4c0.3-0.1,0.5-0.3,0.7-0.6l6.3,3.6c-0.1,0.3-0.2,0.6-0.2,0.9c0,1.5,1.2,2.6,2.6,2.6s2.6-1.2,2.6-2.6 c0-0.3-0.1-0.6-0.2-0.9l6.3-3.6c0.2,0.2,0.4,0.4,0.7,0.6l0,0c0.4,0.2,0.9,0.4,1.3,0.4c0.7,0,1.5-0.3,2-0.9l3.4,2 c-0.1,0.3-0.1,0.6,0,1c0.1,0.5,0.4,0.9,0.9,1.1c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1c0.5-0.1,0.9-0.4,1.1-0.9 c0.3-0.4,0.3-0.9,0.2-1.4C48,34.2,47.7,33.7,47.3,33.5z M9.5,16c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1 c0.5-0.1,0.9-0.4,1.1-0.9c0.5-0.9,0.2-2.1-0.7-2.6c-0.9-0.5-2.1-0.2-2.6,0.7c-0.3,0.4-0.3,0.9-0.2,1.4C8.7,15.4,9,15.8,9.5,16z M15.7,2.8c0.7-0.4,0.9-1.3,0.5-2c-0.4-0.7-1.3-0.9-2-0.5c-0.7,0.4-0.9,1.3-0.5,2C14.1,2.9,15,3.2,15.7,2.8z M41.1,46.8 c-0.7,0.4-0.9,1.3-0.5,2c0.4,0.7,1.3,0.9,2,0.5c0.7-0.4,0.9-1.3,0.5-2C42.7,46.6,41.8,46.4,41.1,46.8z M15.7,46.8 c-0.7-0.4-1.6-0.2-2,0.5c-0.4,0.7-0.2,1.6,0.5,2c0.7,0.4,1.6,0.2,2-0.5C16.6,48.1,16.4,47.2,15.7,46.8z M41.1,2.8 c0.7,0.4,1.6,0.2,2-0.5c0.4-0.7,0.2-1.6-0.5-2c-0.7-0.4-1.6-0.2-2,0.5C40.1,1.4,40.4,2.3,41.1,2.8z M55.3,23.3 c-0.8,0-1.5,0.7-1.5,1.5c0,0.8,0.7,1.5,1.5,1.5c0.8,0,1.5-0.7,1.5-1.5C56.7,24,56.1,23.3,55.3,23.3z M1.5,23.3C0.7,23.3,0,24,0,24.8 c0,0.8,0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5C2.9,24,2.3,23.3,1.5,23.3z M39.1,21.2c0.4,0,0.9-0.1,1.3-0.4c1.3-0.7,1.7-2.3,1-3.6 c-0.7-1.3-2.3-1.7-3.6-1l0,0c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2C37.3,20.7,38.2,21.2,39.1,21.2z"></path> <path id="logo__quanta" class='transition--color text-1a1a1a' fill="currentColor" d="M309.9,14c0,1.1-0.9,1.8-2,1.8c-0.9,0-1.8-0.7-1.8-1.8c0-1.2,0.8-2,1.9-2C309.2,12,309.9,12.8,309.9,14z M85.5,28.7c0.6-1.3,0.8-2.6,0.8-4.2c0-2.9-1-5.2-2.9-7.1c-1.9-1.9-4.2-2.8-7-2.8s-5.1,0.9-7,2.8c-1.9,1.9-2.9,4.2-2.9,7.1 c0,2.9,1,5.2,2.9,7.1c1.9,1.9,4.2,2.8,7,2.8c2.7,0,4.9-0.9,6.8-2.6l2.6,1.7l2.2-3.3L85.5,28.7z M82.1,26.5L79.8,25l-2.2,3.3l2.3,1.5 c-1,0.7-2.1,1.1-3.5,1.1c-1.8,0-3.2-0.6-4.3-1.7c-1.1-1.2-1.6-2.7-1.6-4.6c0-1.9,0.5-3.4,1.6-4.6c1.1-1.2,2.5-1.7,4.3-1.7 c1.8,0,3.2,0.6,4.3,1.7c1.1,1.1,1.6,2.7,1.6,4.6C82.3,25.2,82.2,25.9,82.1,26.5z M103.2,27.3c0,1.2-0.3,2.1-0.9,2.8 c-0.6,0.6-1.5,1-2.5,1s-1.9-0.3-2.5-1c-0.6-0.6-0.9-1.6-0.9-2.8v-8.5h-3.9v9c0,2,0.6,3.7,1.7,4.8c1.1,1.2,2.5,1.7,4.3,1.7 c2.2,0,3.6-0.4,4.8-1.7v1.5h3.9V18.9h-3.9V27.3z M144.3,18.9c-2.2,0-3.6,0.4-4.8,1.7v-1.5h-3.9v15.4h3.9V26c0-1.2,0.3-2.1,0.9-2.8 c0.6-0.6,1.5-1,2.5-1c1.1,0,1.9,0.3,2.5,1c0.6,0.6,0.9,1.6,0.9,2.8v8.5h3.9v-9c0-2-0.6-3.7-1.7-4.8C147.4,19.5,146,18.9,144.3,18.9z M124.8,18.9v1.5c-0.8-0.8-2.7-1.7-4.8-1.7c-2.1,0-3.8,0.7-5.2,2.2c-1.4,1.5-2.1,3.4-2.1,5.7c0,2.3,0.7,4.2,2.1,5.7 c1.4,1.5,3.1,2.2,5.2,2.2c1.3,0,3-0.2,4.8-1.6v1.4h3.9V18.9H124.8z M123.6,29.9c-0.8,0.8-1.8,1.2-2.8,1.2c-1.1,0-2-0.4-2.8-1.2 c-0.8-0.8-1.2-1.9-1.2-3.3c0-1.4,0.4-2.5,1.2-3.3c0.8-0.8,1.8-1.2,2.8-1.2c1.1,0,2,0.4,2.9,1.2c0.8,0.8,1.2,1.9,1.2,3.3 C124.8,28,124.4,29.1,123.6,29.9z M180.1,18.9v1.5c-0.8-0.8-2.7-1.7-4.8-1.7c-2.1,0-3.8,0.7-5.2,2.2c-1.4,1.5-2.1,3.4-2.1,5.7 c0,2.3,0.7,4.2,2.1,5.7c1.4,1.5,3.1,2.2,5.2,2.2c1.3,0,3-0.2,4.8-1.6v1.4h3.9V18.9H180.1z M178.9,29.9c-0.8,0.8-1.8,1.2-2.8,1.2 c-1.1,0-2-0.4-2.8-1.2c-0.8-0.8-1.2-1.9-1.2-3.3c0-1.4,0.4-2.5,1.2-3.3C174,22.4,175,22,176,22c1.1,0,2,0.4,2.9,1.2 c0.8,0.8,1.2,1.9,1.2,3.3C180.1,28,179.7,29.1,178.9,29.9z M161.4,31c-1.1,0-1.9-0.7-1.9-2.1v-6.4h4.1v-3.2h-4.1v-4h-3.7v4v3.2v6.4 c0,3.7,2.1,5.5,5.3,5.4c1.1,0,2-0.2,3-0.6l-1-3.1C162.6,30.9,161.9,31,161.4,31z"></path> <path id="logo__magazine" class='transition--color text-999999' fill="currentColor" d="M218.3,33.5l-0.1,1c-1.1,0-2.4-0.1-3.9-0.1c-1.5,0-2.7,0.1-3.6,0.1v-1c1.6-0.1,2-0.3,2-0.9 c0.1-0.8,0.1-2.4,0.1-5.1c0-4.4,0-4.9-0.3-5.4c-0.4-0.9-1.2-1.4-2.4-1.4c-1.6,0-3,1-3.7,2.3c-0.2,0.5-0.4,0.9-0.4,1.5v4.7 c0,1.3,0,2.6,0.1,3.4c0,0.7,0.4,0.9,2.2,0.9l-0.1,1c-0.9,0-2.5-0.1-3.9-0.1c-1.4,0-2.6,0.1-3.5,0.1v-1c1.6-0.1,2-0.2,2-1 c0.1-1.1,0.1-2.2,0.1-4.4v-2.8c0-2.4,0-2.8-0.2-3.3c-0.4-0.9-1.1-1.3-2.3-1.3c-1.5,0-3,0.9-3.8,2.4c-0.3,0.6-0.4,0.9-0.4,1.7v4.6 c0,1.4,0,2.5,0.1,3.3c0.1,0.7,0.4,0.8,2.1,0.9l-0.1,0.9c-0.8,0-2.5-0.1-3.8-0.1c-1.3,0-2.6,0.1-3.7,0.1v-1c1.8,0,2.1-0.2,2.1-1 c0-0.9,0.1-2.3,0.1-4.2v-2.9c0-1.9,0-3.4-0.1-4.3c0-0.5-0.3-0.6-2.2-0.6l0.1-0.9c1.7,0,3.6-0.2,5.2-0.5c0.1,0.6,0.2,2.2,0.2,2.7 c1.3-1.3,3.2-2.9,5.7-2.9c2,0,2.9,0.8,3.4,1.5c0.3,0.4,0.5,0.9,0.6,1.3c1.2-1.2,3-2.8,5.7-2.8c2.1,0,3.3,1.1,3.8,2 c0.4,0.7,0.5,1.5,0.5,2.3v9.4C216,33.3,216.2,33.4,218.3,33.5z M238.4,31l0.9,0.4c-0.5,2.5-1.9,3.4-3.5,3.4c-1.8,0-2.5-1.1-2.7-2.6 c-1.5,1.7-3.4,2.6-5,2.6c-2.7,0-4.3-1.9-4.3-4.3c0-1.4,0.6-2.6,2-3.2c2.4-1,6-2.1,7.4-3.1v-1.4c0-1.5-0.7-3-2.7-3 c-2.1,0-3,1.1-3,2.5c0,0.4,0.1,0.8,0.1,1.1c0.1,0.3-0.1,0.6-0.3,0.7c-0.3,0.2-0.7,0.4-1.2,0.4c-0.8,0-1.5-0.4-1.5-1.6 c0-1.8,2.6-4.1,6.4-4.1c3,0,4.3,1.3,4.7,2c0.3,0.5,0.5,1.2,0.5,1.8v8.9c0,1.3,0.4,1.5,0.8,1.5C237.5,33.1,238,32.4,238.4,31z M233,25.3c-1,0.5-2.8,1.3-4.1,2c-1.1,0.6-1.8,1.1-1.8,2.7c0,1.7,0.9,3,2.5,3c1.7,0,2.7-1,3.3-2.3c0.1-0.4,0.2-1,0.2-1.5V25.3z M255.8,27.1c-1.3,0-2.8-0.1-3.7-0.1l0,0.9l1.5,0.1c1.2,0.1,1.4,0.3,1.4,1.3c0,1,0,2.4-0.1,3.2c-0.1,0.8-1.1,1.3-2.5,1.3 c-1.5,0-2.8-0.5-3.8-1.8c-0.9-1.1-1.3-3.1-1.3-5.1c0-2.2,0.5-3.9,1.4-5.1c0.8-1.2,2-1.8,3.5-1.8c2.6,0,4.1,1.7,4.4,5l0.9,0 c-0.1-2.1,0.2-4.8,0.4-5.7l-0.8-0.3l-0.5,1.3c-0.5-0.5-1.8-1.4-4.3-1.4c-1.6,0-3,0.3-4.2,1c-2.4,1.3-3.8,3.9-3.8,7 c0,2.4,0.6,4.2,1.7,5.5c1.2,1.5,3.2,2.3,6.1,2.3c1.2,0,2.5-0.3,3.6-0.6c1-0.3,1.8-0.6,2.4-0.7c-0.1-0.5-0.2-1.3-0.2-2.5 c0-0.7,0-1.7,0.1-2.3c0-0.5,0.3-0.6,1.5-0.8l0-0.9C258.4,27.1,257.1,27.1,255.8,27.1z M279.4,31l0.9,0.4c-0.5,2.5-1.9,3.4-3.5,3.4 c-1.8,0-2.5-1.1-2.7-2.6c-1.5,1.7-3.4,2.6-5,2.6c-2.7,0-4.3-1.9-4.3-4.3c0-1.4,0.6-2.6,2-3.2c2.4-1,6-2.1,7.4-3.1v-1.4 c0-1.5-0.7-3-2.7-3c-2.1,0-3,1.1-3,2.5c0,0.4,0.1,0.8,0.1,1.1c0.1,0.3-0.1,0.6-0.3,0.7c-0.3,0.2-0.7,0.4-1.2,0.4 c-0.8,0-1.5-0.4-1.5-1.6c0-1.8,2.6-4.1,6.4-4.1c3,0,4.3,1.3,4.7,2c0.3,0.5,0.5,1.2,0.5,1.8v8.9c0,1.3,0.4,1.5,0.8,1.5 C278.5,33.1,279,32.4,279.4,31z M274,25.3c-1,0.5-2.8,1.3-4.1,2c-1.1,0.6-1.8,1.1-1.8,2.7c0,1.7,0.9,3,2.5,3c1.7,0,2.7-1,3.3-2.3 c0.1-0.4,0.2-1,0.2-1.5V25.3z M295.1,33c-1,0.2-2.8,0.3-5.6,0.3c1.8-2.8,7.1-10.8,7.9-12c0.4-0.7,0.8-1.4,0.9-2.1 c-1.4,0-2.6,0.1-5.3,0.1h-3c-2,0-3.2-0.1-3.8-0.4c0,2.1-0.2,4.4-0.4,5.8l0.9-0.2c0.2-0.8,0.4-1.7,0.7-2.6c0.4-1.1,0.9-1.4,2.4-1.5 c1.4-0.1,2.9-0.1,4.4-0.1c-0.9,1.8-5.2,8.8-9,13.4l0.4,0.7c0.6,0,1.7-0.1,3.7-0.1c3.8,0,7.8,0.1,9.1,0.2c0.1-1.6,0.4-4.3,0.6-5.8 l-0.9-0.2C297.3,32,296.5,32.9,295.1,33z M309.9,32.5c0-0.7-0.1-1.9-0.1-4.1v-4.1c0-2.6,0.1-4.6,0.1-5.4c-1.6,0.4-3.9,0.5-5.6,0.6 l0,0.9c1.9-0.1,2.2,0,2.2,0.5c0,0.5,0.1,1.7,0.1,3.6v3.9c0,2-0.1,3.5-0.1,4.1c0,0.6-0.3,0.9-2.4,1l0,1c1.1,0,2.1-0.1,3.8-0.1 c1.7,0,3,0.1,4,0.1l0-1C310.3,33.4,309.9,33.3,309.9,32.5z M332.9,32.5v-9.3c0-0.8-0.1-1.6-0.5-2.2c-0.5-1.1-1.7-2.1-4-2.1 c-2.5,0-4.2,1.5-5.5,2.7c0-0.5-0.1-1.9-0.2-2.6c-1.6,0.3-3.4,0.5-5.1,0.5l-0.1,0.9c1.8,0,2.1,0.1,2.1,0.6c0.1,0.9,0.1,2.4,0.1,4.3 v3.1c0,1.7-0.1,3-0.1,4c0,0.8-0.3,0.9-2.1,1v1c1,0,2.2-0.1,3.7-0.1c1.3,0,3,0.1,3.9,0.1l0.1-1c-1.8-0.1-2.1-0.2-2.1-0.9 c-0.1-0.8-0.1-2.2-0.1-3.7v-4.1c0-0.8,0.1-1.3,0.4-1.8c0.8-1.4,2.1-2.2,3.8-2.2c1.2,0,1.9,0.5,2.4,1.3c0.3,0.6,0.4,1,0.4,5.4 c0,2.8-0.1,4.4-0.1,5.1c-0.1,0.7-0.4,0.8-2,0.9l0,1c0.8,0,2-0.1,3.6-0.1c1.5,0,2.8,0.1,3.9,0.1l0.1-1 C333.1,33.4,332.9,33.3,332.9,32.5z M352.5,29.8l0.9,0.5c-1.1,3.2-3.3,4.5-6.3,4.5c-2.7,0-4.4-0.8-5.6-2.4c-0.9-1.2-1.5-3.2-1.5-5.3 c0-4.4,2.5-8.3,7.4-8.3c5.1,0,6,4,6,6.1c0,0.7-0.2,1.2-0.7,1.4c-0.6,0.2-2.3,0.4-4.6,0.5c-1.2,0-3.1,0-4.6,0 c-0.1,1.9,0.4,3.6,1.1,4.6c0.8,1.2,1.9,1.8,3.5,1.8C350.3,33.2,351.6,32.2,352.5,29.8z M343.6,25.7h2.9c1.7,0,2.6-0.1,3.1-0.2 c0.5-0.1,0.7-0.5,0.7-1.2c0-1.9-0.8-4.4-3.1-4.4C344.8,19.9,343.7,22.8,343.6,25.7z"></path> </g></svg> </a> </div> <div class='header__divider flex mh1 relative text-999999'> </div> <div class='header__main header__group flex relative'> <ul class='flex fill-v'> <li class='flex flex-items-center fill-v'> <a class='header__link flex flex-items-center relative mh05 ph025 transition--color text-1a1a1a' href='https://www.quantamagazine.org/./physics/'> <span class='mv0 h4t'>Physics</span> <span class='__underline text-ff8600'></span> </a> </li> <li class='flex flex-items-center fill-v'> <a class='header__link flex flex-items-center relative mh05 ph025 transition--color text-1a1a1a' href='https://www.quantamagazine.org/./mathematics/'> <span class='mv0 h4t'>Mathematics</span> <span class='__underline text-ff8600'></span> </a> </li> <li class='flex flex-items-center fill-v'> <a class='header__link flex flex-items-center relative mh05 ph025 transition--color text-1a1a1a' href='https://www.quantamagazine.org/./biology/'> <span class='mv0 h4t'>Biology</span> <span class='__underline text-ff8600'></span> </a> </li> <li class='flex flex-items-center fill-v'> <a class='header__link flex flex-items-center relative mh05 ph025 transition--color text-1a1a1a' href='https://www.quantamagazine.org/./computer-science/'> <span class='mv0 h4t'>Computer Science</span> <span class='__underline text-ff8600'></span> </a> </li> <li class='flex flex-items-center fill-v'> <a class='header__link flex flex-items-center relative mh05 ph025 transition--color text-1a1a1a' href='/topics'> <span class='mv0 h4t'>Topics</span> <span class='__underline text-ff8600'></span> </a> </li> <li class='flex flex-items-center fill-v'> <a class='header__link flex flex-items-center relative mh05 ph025 transition--color text-1a1a1a' href='https://www.quantamagazine.org/archive/'> <span class='mv0 h4t'>Archive</span> <span class='__underline text-ff8600'></span> </a> </li> </ul> </div> <div class='header__group flex flex-auto relative'> <ul class='header__icons flex flex-auto'> <li class='header__bookmarks header__icon flex flex-items-center mh05 z1 text-1a1a1a' aria-haspopup='dialog' data-icon-color=' text-1a1a1a'> <button class='relative ' data-function='trigger' data-name='nav-bookmarks'> <svg viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Saved articles</title><path fill="currentColor" d="M37.1,5.6v34.7l-8.9-5.1l-2.7-1.6l-2.8,1.5l-9.8,5.4V5.6H37.1 M42.7,0H7.3v50l18.1-9.9L42.7,50V0L42.7,0z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement top-0 w-85'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow '></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='header__bookmarks__tooltip relative pv1 ph1'> <h2 class='mt0 mb05'>Saved Articles</h2> <p class='mt0 gray4 italic'>Create a reading list by clicking the Read Later icon next to the articles you wish to save.</p> <button class='button orange mr1 fill-h flex flex-items-center'> <a href='/saved-articles'> <span>See all saved articles</span> <svg class='icon ml05 icon orange icon-offset' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </button> </div> </div> </div> </div> </li> <li class='header__account header__icon flex flex-items-center mh05 z1 text-1a1a1a' aria-haspopup='dialog' data-icon-color=' text-1a1a1a'> <button class='relative ' data-function='trigger' data-name='nav-account'> <svg viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg" class=""><title>Login</title><path fill="currentColor" d="M35.2 29.9c3.9-3.1 6.4-7.8 6.4-13.2C41.7 7.5 34.2 0 25 0S8.3 7.5 8.3 16.7c0 5.4 2.5 10.1 6.4 13.2C6.1 33.4 0 41.1 0 50h5.6c0-9.1 8.7-16.5 19.4-16.5S44.4 40.9 44.4 50H50c0-8.9-6.1-16.6-14.8-20.1zM25 5.6c6.1 0 11.1 5 11.1 11.2S31.1 28 25 28s-11.1-5-11.1-11.2S18.9 5.6 25 5.6z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement w-28 top-19-5 ml-n14'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow '></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='relative align-c pv05 ph1'> <h4 id='logout' class='pb075 mv0 relative theme__accent z1 link'>Log out</h4> <hr class='o2 mb075'> <h4 id='resetPW' class='mv0 relative theme__accent z1 link' data-function='trigger' data-name='reset-password'>Change password</h4> </div> </div> </div> </div> </li> <li class='header__search header__icon relative flex flex-items-center flex-auto flex-justify-end mh05 z1 text-1a1a1a'> <button class='relative' aria-haspopup='dialog' data-function='trigger' data-name='nav-search'> <svg class="" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Search</title><path fill="currentColor" d="M48.8 46.2l-9.2-9.4c3.5-3.9 5.7-9.1 5.7-14.7C45.3 9.9 35.4 0 23.2 0s-22 9.9-22 22.1 9.9 22.1 22 22.1c4.4 0 8.5-1.3 12-3.6l9.5 9.5 4.1-3.9zM7.1 22.1c0-8.9 7.2-16.2 16.2-16.2 8.9 0 16.2 7.3 16.2 16.2s-7.3 16.2-16.2 16.2c-9-.1-16.2-7.3-16.2-16.2z"></path></svg> </button> </li> <li class='header__hamburger-outer flex flex-items-center mh05 relative'> <div class='header__hamburger'> <button class='hamburger block z10 relative theme__header-primary mha text-999999' aria-haspopup='menu' aria-label='open the menu'> <span class='hamburger__bar absolute fit-x mxa'></span> <span class='hamburger__bar absolute fit-x mxa'></span> <span class='hamburger__bar absolute fit-x mxa'></span> </button> </div> </li> </ul> </div> </nav> </section> </div> </div> <script type='text/javascript'> let headerArray = '{"type":"default","solid_primary_color":" text-1a1a1a","solid_secondary_color":" text-999999","solid_hover_color":" text-ff8600","solid_background_color":null,"solid_border_color":null}'; </script> </div> <div class='relative z0'> <div class='nav-search h-screen fit-x z0 bg-black hidden' role='dialog' data-function='toggle' data-name='nav-search'> <div class='nav-search__outer relative pt-0'> <div class='nav-search__inner pv2 relative flex flex-items-center opacity-100 translate-y-0'> <div class='fill-h mha container--sm'> <div class='scale0 fill-h'> <div class='pv2 fill-h'> <div class='white fill-h scale1 nav-search__form-container'> <p class='white pangram h6 uppercase kern--w bold'>Type search term(s)<span class='nav-search__title-addon'> and press enter</span></p> <form action='/' class='fill-h align-l relative' method='get' data-name='search-form'> <div class='search-input-container h0 '> <input id='nav-search-input' value='' name='s' class='search-input ' type='text' /> <label for='nav-search-input' data-label='What are you looking for?'>What are you looking for?</label> </div> <button class='nav-search__submit ' type='submit' value='Submit' disabled='disabled'> <svg class="nav-search__icon orange hover--white" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Search</title><path fill="currentColor" d="M48.8 46.2l-9.2-9.4c3.5-3.9 5.7-9.1 5.7-14.7C45.3 9.9 35.4 0 23.2 0s-22 9.9-22 22.1 9.9 22.1 22 22.1c4.4 0 8.5-1.3 12-3.6l9.5 9.5 4.1-3.9zM7.1 22.1c0-8.9 7.2-16.2 16.2-16.2 8.9 0 16.2 7.3 16.2 16.2s-7.3 16.2-16.2 16.2c-9-.1-16.2-7.3-16.2-16.2z"></path></svg> </button> </form> </div> <nav class='nav-search__popular scale1 theme fill-h align-l flex flex-wrap'> <p class='nav-search__popular-title gray4 pangram h6 uppercase kern bold mt1'>Popular Searches</p> <ul class='nav-search__popular-list relative flex flex-wrap'> <li class='nav-search__popular-item pv05 scale0'> <a class='nav-search__popular-link pangram white block theme__primary--hover color-transition' href='/?s=math'> Mathematics<svg class='icon icon-s orange float-r icon-offset--lg' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </li> <li class='nav-search__popular-item pv05 scale0'> <a class='nav-search__popular-link pangram white block theme__primary--hover color-transition' href='/?s=physics'> Physics<svg class='icon icon-s orange float-r icon-offset--lg' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </li> <li class='nav-search__popular-item pv05 scale0'> <a class='nav-search__popular-link pangram white block theme__primary--hover color-transition' href='/?s=black+holes'> Black Holes<svg class='icon icon-s orange float-r icon-offset--lg' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </li> <li class='nav-search__popular-item pv05 scale0'> <a class='nav-search__popular-link pangram white block theme__primary--hover color-transition' href='/?s=evolution'> Evolution<svg class='icon icon-s orange float-r icon-offset--lg' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </li> </ul> </nav> </div> </div> </div> </div> </div> </div> </div> </header> <main> <div id='postContent' class='post'> <div class='fixed fit-t fit-l fit-r z10 ' > <div class='nav__local fill-v z1 absolute fit-x is-hidden ' data-role='hidden-on-scroll'> <section class='outer header__inner flex fill-v relative'> <div class='header__group flex relative z1'> <a class='header__logo header__logo--local flex flex-items-center absolute fit-t fit-b theme__accent-hover' href='/'> <svg x="0px" y="0px" viewbox="0 0 56.7 49.5" enable-background="new 0 0 56.7 49.5" class="logo-mark " xmlns="http://www.w3.org/2000/svg"><path id="logo__mark__icon" class="c-1a1a1a" fill="currentColor" d="M28.4,5.9c1,0,1.9-0.8,1.9-1.9c0-1-0.8-1.9-1.9-1.9c-1,0-1.9,0.8-1.9,1.9C26.5,5.1,27.3,5.9,28.4,5.9z M28.4,43.6c-1,0-1.9,0.8-1.9,1.9c0,1,0.8,1.9,1.9,1.9c1,0,1.9-0.8,1.9-1.9C30.3,44.5,29.4,43.6,28.4,43.6z M10.9,33.3 c-0.5-0.1-1-0.1-1.4,0.2c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.5-0.1,1,0.2,1.4c0.4,0.6,1,0.9,1.6,0.9c0.3,0,0.6-0.1,0.9-0.3 c0.4-0.3,0.8-0.7,0.9-1.1c0.1-0.5,0.1-1-0.2-1.4C11.8,33.7,11.4,33.4,10.9,33.3z M46.8,12.6c-0.5-0.1-1-0.1-1.4,0.2 c-0.9,0.5-1.2,1.7-0.7,2.6c0.3,0.4,0.7,0.7,1.1,0.9c0.2,0,0.3,0.1,0.5,0.1c0.3,0,0.6-0.1,0.9-0.3c0.4-0.3,0.8-0.7,0.9-1.1 c0.1-0.5,0.1-1-0.2-1.4C47.7,13,47.3,12.7,46.8,12.6z M47.3,33.5c-0.4-0.3-0.9-0.3-1.4-0.2c-0.3,0.1-0.6,0.3-0.8,0.5l-3.4-2 c0.2-0.5,0.2-1,0.1-1.5c-0.2-0.7-0.6-1.2-1.2-1.6c-1.3-0.7-2.9-0.3-3.6,1c-0.4,0.6-0.4,1.3-0.3,2c0,0.1,0,0.1,0.1,0.2l-6.3,3.6 c-0.5-0.6-1.2-0.9-2-0.9c-0.8,0-1.5,0.4-2,0.9l-6.3-3.6c0-0.1,0-0.1,0.1-0.2c0.2-0.7,0.1-1.4-0.3-2c-0.4-0.6-0.9-1-1.6-1.2 c-0.1,0-0.1,0-0.2,0v-7.3c0.1,0,0.1,0,0.2,0c0.7-0.2,1.2-0.6,1.6-1.2c0.4-0.6,0.4-1.3,0.3-2c0-0.1,0-0.1-0.1-0.2l6.3-3.6 c0.5,0.6,1.2,0.9,2,0.9c1.5,0,2.6-1.2,2.6-2.6s-1.2-2.6-2.6-2.6s-2.6,1.2-2.6,2.6c0,0.3,0.1,0.6,0.2,0.9l-6.3,3.6 c-0.2-0.2-0.4-0.4-0.7-0.6c-0.6-0.4-1.3-0.4-2-0.3c-0.7,0.2-1.2,0.6-1.6,1.2c-0.7,1.3-0.3,2.9,1,3.6l0,0c0.3,0.1,0.5,0.2,0.8,0.3 v7.3c-0.3,0.1-0.6,0.1-0.8,0.3c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2c0.4,0.6,0.9,1,1.6,1.2c0.2,0.1,0.5,0.1,0.7,0.1 c0.5,0,0.9-0.1,1.3-0.4c0.3-0.1,0.5-0.3,0.7-0.6l6.3,3.6c-0.1,0.3-0.2,0.6-0.2,0.9c0,1.5,1.2,2.6,2.6,2.6s2.6-1.2,2.6-2.6 c0-0.3-0.1-0.6-0.2-0.9l6.3-3.6c0.2,0.2,0.4,0.4,0.7,0.6l0,0c0.4,0.2,0.9,0.4,1.3,0.4c0.7,0,1.5-0.3,2-0.9l3.4,2 c-0.1,0.3-0.1,0.6,0,1c0.1,0.5,0.4,0.9,0.9,1.1c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1c0.5-0.1,0.9-0.4,1.1-0.9 c0.3-0.4,0.3-0.9,0.2-1.4C48,34.2,47.7,33.7,47.3,33.5z M9.5,16c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1 c0.5-0.1,0.9-0.4,1.1-0.9c0.5-0.9,0.2-2.1-0.7-2.6c-0.9-0.5-2.1-0.2-2.6,0.7c-0.3,0.4-0.3,0.9-0.2,1.4C8.7,15.4,9,15.8,9.5,16z M15.7,2.8c0.7-0.4,0.9-1.3,0.5-2c-0.4-0.7-1.3-0.9-2-0.5c-0.7,0.4-0.9,1.3-0.5,2C14.1,2.9,15,3.2,15.7,2.8z M41.1,46.8 c-0.7,0.4-0.9,1.3-0.5,2c0.4,0.7,1.3,0.9,2,0.5c0.7-0.4,0.9-1.3,0.5-2C42.7,46.6,41.8,46.4,41.1,46.8z M15.7,46.8 c-0.7-0.4-1.6-0.2-2,0.5c-0.4,0.7-0.2,1.6,0.5,2c0.7,0.4,1.6,0.2,2-0.5C16.6,48.1,16.4,47.2,15.7,46.8z M41.1,2.8 c0.7,0.4,1.6,0.2,2-0.5c0.4-0.7,0.2-1.6-0.5-2c-0.7-0.4-1.6-0.2-2,0.5C40.1,1.4,40.4,2.3,41.1,2.8z M55.3,23.3 c-0.8,0-1.5,0.7-1.5,1.5c0,0.8,0.7,1.5,1.5,1.5c0.8,0,1.5-0.7,1.5-1.5C56.7,24,56.1,23.3,55.3,23.3z M1.5,23.3C0.7,23.3,0,24,0,24.8 c0,0.8,0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5C2.9,24,2.3,23.3,1.5,23.3z M39.1,21.2c0.4,0,0.9-0.1,1.3-0.4c1.3-0.7,1.7-2.3,1-3.6 c-0.7-1.3-2.3-1.7-3.6-1l0,0c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2C37.3,20.7,38.2,21.2,39.1,21.2z"></path></svg> <span class='screen-reader-text'>Home</span> </a> </div> <div class='header__divider flex mh075 relative text-gray-999'> </div> <div class='nav__local__left header__group flex relative flex-items-center'> <div class='ml025 h3 noe mv0' data-role='nav-local-title'> How Public Key Cryptography Really Works, Using Only Simple Math </div> </div> <div class='nav__local__right header__group flex relative flex-items-center flex-auto flex-justify-end h5'> <div class='comments-button mr05 flex flex-items-center theme__accent-hover ' data-name='comment-bubble' > <a href='https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/#comments' class='flex flex-items-center pangram'> <svg viewbox='0 0 50 50' enable-background='new 0 0 50 50' xmlns='http://www.w3.org/2000/svg' class='o2'><title>Comment</title><path fill='currentColor' d='M9.4 4.2h31.2c8.6 0 9.4 7 9.4 15.6s-.7 15.6-9.4 15.6h-2.2l-.9 9.4-18.8-9.4H9.4c-8.6 0-9.4-7-9.4-15.6S.7 4.2 9.4 4.2z'></path></svg> <div> <span class='comments-button__count ml075 small mbold disqus-comment-count' data-disqus-identifier='144155 https://www.quantamagazine.org/?p=144155'></span> </div> </a> </div> <span class='o-divider mh1 relative'></span> <div class='relative'> <button class='bookmark-button mh05 flex flex-items-center theme__accent-hover ' data-toggle-hover='tooltip' data-id='144155' data-active-class='' aria-expanded='false'> <svg class="icon" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Save Article</title><path fill="currentColor" d="M2.1 0h45.8v50L25.5 37.5 2.1 50V0z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement w-32 ml-n16 top-13-75'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow '></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern--w mx025'> <span class='small no-wrap'>Read Later</span> </div> </div> </div> </div> </div> <span class='o-divider mh1 relative'></span> <div class='nav__local__share mr1 ph05 pv2 flex flex-items-center transition--color pointer relative theme__accent-hover'> <span class='__label flex flex-items-center absolute fit-t fit-b fit-r mr05'> <svg class='icon-l o2' x='0px' y='0px' viewbox='0 0 50 50' enable-background='new 0 0 50 50' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'><path fill='currentColor' d='M41.9,34.2c-2.2,0-4.1,0.9-5.5,2.3L15.7,26.2c0.1-0.4,0.1-0.8,0.1-1.2c0-0.4,0-0.8-0.1-1.2l20.7-10.3 c1.4,1.4,3.4,2.3,5.5,2.3c4.2,0,7.7-3.4,7.7-7.7s-3.4-7.7-7.7-7.7c-4.2,0-7.7,3.4-7.7,7.7c0,0.4,0,0.8,0.1,1.2L13.6,19.7 c-1.4-1.4-3.4-2.3-5.5-2.3c-4.2,0-7.7,3.4-7.7,7.7c0,4.2,3.4,7.7,7.7,7.7c2.2,0,4.1-0.9,5.5-2.3l20.7,10.3c-0.1,0.4-0.1,0.8-0.1,1.2 c0,4.2,3.4,7.7,7.7,7.7c4.2,0,7.7-3.4,7.7-7.7C49.6,37.7,46.1,34.2,41.9,34.2L41.9,34.2z M41.9,34.2'></path></svg> <h6 class='uppercase kern mv0 ml1'>Share</h6> </span> <span class='__links flex flex-items-center absolute fit-x mxa'> <div data-id='social-links'> <div class='social-links social-links--share flex flex-justify-between'> <a href='http://www.facebook.com/sharer.php?u=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path fill="currentColor" d="M13 16.5h5.1v-5c-.2-2.7.3-5.4 1.7-7.7 1.8-2.5 4.9-4 8-3.8 3.1-.1 6.2.2 9.2 1l-1.3 7.7C34.4 8.3 33 8 31.6 8c-2 0-3.8.7-3.8 2.7v5.9H36l-.6 7.5h-7.6V50h-9.6V23.9H13v-7.4z"></path></svg></div> </a> <a href='https://twitter.com/share?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&text=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math&via=QuantaMagazine' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>X Twitter</title><path fill="currentColor" d="M50 9.9c-1.9.8-3.8 1.3-5.9 1.6 2.1-1.3 3.7-3.2 4.5-5.6-2 1.2-4.2 2-6.5 2.5-3.8-4.1-10.3-4.5-14.5-.8-2.8 2.5-4 6.3-3.1 10-8.2-.5-15.8-4.3-21-10.6-2.7 4.6-1.3 10.5 3.2 13.5C5 20.4 3.4 20 2 19.2c0 4.8 3.4 8.9 8.2 9.9-.9.2-1.8.4-2.7.3-.6 0-1.3-.1-1.9-.2 1.3 4.1 5.2 6.9 9.5 7C10.8 39.5 5.4 41 0 40.4c13.5 8.5 31.5 4.6 40.2-8.7 3-4.6 4.6-10 4.6-15.5v-1.3c2-1.3 3.7-3.1 5.2-5"></path></svg></div> </a> <a href='' class='social-links__link flex flex-items-center relative' data-function="copy"> <div class='q-tooltip hidden force-mobile-placement w-17-5 top-10-5 ml-n8-75'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow '></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern mv0'>Copied!</div> </div> </div> </div> <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><title>Copy link</title><g><path fill="currentColor" d="M20.6,38.5c-0.8,0-1.6,0.3-2.2,0.8L16,41.9c-1.1,1-2.4,1.6-3.9,1.6c-1.5,0-2.8-0.5-3.9-1.6c-0.5-0.5-0.9-1.1-1.2-1.8 c-0.3-0.7-0.4-1.4-0.4-2.1c0-0.7,0.1-1.4,0.4-2.1c0.3-0.7,0.7-1.2,1.2-1.8l9.1-9c1-0.9,2.2-1.8,3.8-2.7s3-0.7,4.3,0.7 c0.6,0.6,1.3,0.8,2.2,0.8s1.5-0.3,2.1-0.9c0.6-0.6,0.9-1.3,0.9-2.2s-0.3-1.6-0.9-2.2c-2.2-2.2-4.8-3.1-7.8-2.7 c-3,0.4-5.9,2-8.8,4.8l-9.2,9c-1.1,1.1-1.9,2.4-2.5,3.8C0.7,35,0.4,36.5,0.4,38c0,1.6,0.3,3,0.9,4.4c0.6,1.4,1.4,2.7,2.5,3.8 c1.1,1.1,2.4,2,3.8,2.5c1.4,0.6,2.9,0.8,4.4,0.8s2.9-0.3,4.3-0.8c1.4-0.6,2.7-1.4,3.8-2.5l2.5-2.5c0.6-0.6,0.9-1.3,0.9-2.1 s-0.3-1.6-0.9-2.2C22.1,38.8,21.4,38.5,20.6,38.5z"></path><path fill="currentColor" d="M48.7,7.9c-0.6-1.4-1.4-2.7-2.5-3.8c-2.4-2.4-5.1-3.6-8-3.7c-3-0.1-5.5,0.9-7.7,3.1l-3.1,3.1c-0.6,0.6-0.9,1.3-0.9,2.1 s0.3,1.6,0.9,2.2s1.3,0.9,2.2,0.9s1.6-0.3,2.2-0.8l3.1-3.1c1.2-1.1,2.4-1.5,3.7-1.3c1.3,0.3,2.5,0.9,3.4,1.9 c0.5,0.5,0.9,1.1,1.2,1.8c0.3,0.7,0.4,1.4,0.4,2.1c0,0.7-0.1,1.4-0.4,2.1c-0.3,0.7-0.7,1.2-1.2,1.8l-9.7,9.6 c-2.2,2.2-3.9,3.1-5.1,2.7s-2-0.8-2.4-1.3c-0.6-0.6-1.3-0.8-2.2-0.8s-1.5,0.3-2.1,0.9c-0.6,0.6-0.9,1.3-0.9,2.2s0.3,1.5,0.9,2.1 c1,1,2.1,1.8,3.2,2.3s2.4,0.7,3.6,0.7c1.5,0,3-0.4,4.6-1.1c1.6-0.7,3.1-1.9,4.6-3.4l9.8-9.6c1.1-1.1,1.9-2.4,2.5-3.8 c0.6-1.4,0.9-2.9,0.9-4.4C49.6,10.8,49.3,9.3,48.7,7.9z"></path></g></svg></div> </a> <a href="/cdn-cgi/l/email-protection#3e014d4b5c545b5d4a03765149156e4b5c52575d15755b47157d4c474e4a51594c5f4e5647156c5b5f5252471569514c554d1b0c7d156b4d5750591571505247156d57534e525b15735f4a56185c515a47036a565b1e4d5b5d4b4c574a471e4d474d4a5b531e4a565f4a1e4b505a5b4c52575b4d1e4a565b1e57504a5b4c505b4a1e535f555b4d1e4b4d5b1e51581e5f1e5d4b4c57514b4d1e585f5d4a041e67514b1e5d5f501e5c4c515f5a5d5f4d4a1e4e5f4c4a1e51581e47514b4c1e5b505d4c474e4a5751501e4a511e535f555b1e47514b4c1e575058514c535f4a5751501e534b5d561e53514c5b1e4d5b5d4b4c5b1062506250564a4a4e4d041111494949104f4b5f504a5f535f595f4457505b10514c5911565149134e4b5c52575d13555b47135d4c474e4a51594c5f4e5647134c5b5f5252471349514c554d130c0e0c0a0f0f0f0b11" class='social-links__link flex flex-items-center relative'> <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><title>Email</title><path fill="currentColor" d="M25,29.5l-5.2-4.3L1.8,43.8h46L30.1,25.2L25,29.5z M32.6,23.2l17.2,17.9c0-0.2,0.1-0.3,0.1-0.5c0-0.2,0-0.4,0-0.6V9.1 L32.6,23.2z M0,9.1v31c0,0.2,0,0.4,0,0.6s0.1,0.3,0.1,0.5l17.3-17.8L0,9.1z M48.4,6.2H1.6L25,25L48.4,6.2z"></path></svg></div> </a> </div> <div class='social-hide closed' data-function='toggle' data-name='social-show-more'> <div class='social-links social-links--share flex flex-justify-between'> <a href='https://getpocket.com/save?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&title=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Pocket</title><path fill="currentColor" d="M2.6,1.7C1.3,1.6,0.1,2.7,0,4.1c0,0.1,0,0.3,0,0.4v9.9c0,8.1,8,14.4,15,14.4c8-0.1,14.6-6.4,15-14.4v-10 c0.1-1.4-0.9-2.6-2.3-2.8c-0.2,0-0.4,0-0.5,0L2.6,1.7z M9,9.8l6,5.7l6-5.7c2.8-1.1,3.9,2,2.8,2.8L16,20.1c-0.6,0.3-1.3,0.3-1.9,0 l-7.9-7.5C5.2,11.5,6.5,8.4,9,9.8L9,9.8z"></path></svg></div> </a> <a href='https://www.reddit.com/submit?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="4 0 33 33" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Reddit</title><path fill="currentColor" d="M39.58,19.65A4.72,4.72,0,0,0,31.91,16a22.4,22.4,0,0,0-10.42-3.09l2-6.38,5.6,1.31a3.91,3.91,0,1,0,.43-2.08L23.05,4.27A1.08,1.08,0,0,0,21.79,5L19.26,12.9A22.6,22.6,0,0,0,8,16a4.68,4.68,0,1,0-5.56,7.51,8.32,8.32,0,0,0-.08,1.12c0,3.21,1.89,6.2,5.31,8.41a22.69,22.69,0,0,0,12.23,3.3A22.67,22.67,0,0,0,32.15,33c3.43-2.21,5.31-5.2,5.31-8.41a8.77,8.77,0,0,0-.06-1,4.65,4.65,0,0,0,2.18-3.93M33.05,5.8a1.78,1.78,0,1,1-1.8,1.78,1.79,1.79,0,0,1,1.8-1.78M11.52,22.53a2.71,2.71,0,0,1,2.69-2.66,2.65,2.65,0,1,1-2.69,2.66m14.93,7.73c-1.37,1.35-3.47,2-6.43,2h0c-3,0-5.06-.65-6.43-2a1.05,1.05,0,0,1,0-1.5,1.09,1.09,0,0,1,1.52,0c.94.93,2.54,1.38,4.91,1.38h0c2.37,0,4-.45,4.91-1.38a1.08,1.08,0,0,1,1.52,0,1.07,1.07,0,0,1,0,1.5m-.63-5.1a2.65,2.65,0,1,1,2.66-2.63,2.65,2.65,0,0,1-2.66,2.63" transform="translate(-0.42 -3.68)"></path></svg></div> </a> <a href='https://news.ycombinator.com/submitlink?u=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&t=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Ycombinator</title><path fill="currentColor" d="M12.9,18L3.2-0.1h4.4l5.7,11.5l0.3,0.6c0.1,0.2,0.2,0.4,0.3,0.7c0,0.1,0,0.2,0,0.2v0.2l0.4,0.9l0.5,0.7 l0.8-1.6l0.9-1.8l5.8-11.5h4.1l-9.8,18.3v11.7h-3.7V18z"></path></svg></div> </a> <a href=' https://share.flipboard.com/bookmarklet/popout?v=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math&url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Flipboard</title><path fill="currentColor" d="M30,0 0,0 0,30 10,30 10,20 20,20 20,10 30,10 z"></path></svg></div> </a> </div> </div> <div class='flex flex-justify-center social-more' data-function='trigger' data-name='social-show-more'> <svg class="ml05 icon icon-offset closed" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M15,20.7c-0.1,0-0.3,0-0.4-0.1L0.3,10.7l0.9-1.2L15,19l13.8-9.5l0.9,1.2l-14.3,9.8C15.3,20.6,15.1,20.7,15,20.7 z"></path></svg> </div> </div> </span> </div> </div> <div class='nav__local__mobile flex-auto flex-justify-end fill-v'> <div class='nav__local__menu flex flex-items-center flex-justify-end fill-v'> <li class='flex flex-items-center mh05 relative'> <div class='header__hamburger'> <button class='hamburger hamburger--dots block z10 relative theme__accent mha' data-function='trigger' data-name='nav-local-dropdown'> <span class='hamburger__bar absolute fit-x mxa'></span> <span class='hamburger__bar absolute fit-x mxa'></span> <span class='hamburger__bar absolute fit-x mxa'></span> </button> </div> </li> </div> </div> </section> <ul class='nav__local__dropdown absolute fit-b fit-r bg-white' data-function='toggle' data-name='nav-local-dropdown'> <li class='__link flex flex-items-center flex-justify-start'> <div class='comments-button mr05 flex flex-items-center theme__accent-hover h5' data-name='comment-bubble' > <a href='#comments' class='flex flex-items-center pangram'> <svg viewbox='0 0 50 50' enable-background='new 0 0 50 50' xmlns='http://www.w3.org/2000/svg' class='o2'><title>Comment</title><path fill='currentColor' d='M9.4 4.2h31.2c8.6 0 9.4 7 9.4 15.6s-.7 15.6-9.4 15.6h-2.2l-.9 9.4-18.8-9.4H9.4c-8.6 0-9.4-7-9.4-15.6S.7 4.2 9.4 4.2z'></path></svg> <div> <span class='comments-button__count ml075 small mbold disqus-comment-count' data-disqus-identifier='144155 https://www.quantamagazine.org/?p=144155'></span> </div> <div class='uppercase kern ml05 mv0 h6t'>Comments</div> </a> </div> </li> <li class='__link flex flex-items-center flex-justify-start'> <div class='relative'> <button class='bookmark-button mh05 flex flex-items-center theme__accent-hover ' data-toggle-hover='tooltip' data-id='144155' data-active-class='' aria-expanded='false'> <svg class="icon" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Save Article</title><path fill="currentColor" d="M2.1 0h45.8v50L25.5 37.5 2.1 50V0z"></path></svg> <div class='h6t uppercase kern ml1 mv0 theme__text'> Read Later </div> </button> <div class='q-tooltip hidden force-mobile-placement w-32 ml-n16 -top-10'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow -bottom-3'></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern--w mx025'> <span class='small no-wrap'>Read Later</span> </div> </div> </div> </div> </div> </li> </ul> <div class='nav__local__progress absolute fit-b fit-l fit-r z1 theme__accent'> <span class='block' style='transform: translateX(-100%);' data-role='content-progress-bar'></span> </div> </div> </div> <div id='postBody' class='theme__background-background theme__text'> <section class='post__title__wrapper relative '> <section class='outer fill-h relative outer--content '> <div class='mha container--s'> <div class='header-spacer'></div> <div class='post__title pv1 scale1 mha'> <div class='scale0'> <div class='mb1 pb025 mt0 h6t post__title__kicker '> <a class="kicker theme__accent theme__text-hover uppercase" href="/tag/cryptography/">cryptography</a> </div> <h1 class='post__title__title mv025 noe theme__text' >How Public Key Cryptography Really Works, Using Only Simple Math</h1> <div class='post__title__author-date h5 mt1'> <div class='byline relative flex flex-items-start merriweather mv025 mr1 gray3 h6t theme__text-hover'> <em class='byline__by gray4 mr075'>By </em> <a href='https://www.quantamagazine.org/authors/john-pavlus/'> <span class='byline__author uppercase kern light small'>John Pavlus</span> </a> </div> <p class="h6 mv1 pv025 o6"><em>November 15, 2024</em></p> </div> <div class='post__title__meta flex flex-wrap flex-items-start'> <div class='post__title__excerpt wysiwyg p italic mb1 mt025 pr2 o4 theme__text ' > The security system that underlies the internet makes use of a curious fact: You can broadcast part of your encryption to make your information much more secure. </div> <div class='post__title__actions h5 mt025 flex-auto flex flex-items-center'> <div class='comments-button mr05 flex flex-items-center theme__accent-hover h5 theme__accent' data-name='comment-bubble' > <a href='#comments' class='flex flex-items-center pangram'> <svg viewbox='0 0 50 50' enable-background='new 0 0 50 50' xmlns='http://www.w3.org/2000/svg' class=''><title>Comment</title><path fill='currentColor' d='M9.4 4.2h31.2c8.6 0 9.4 7 9.4 15.6s-.7 15.6-9.4 15.6h-2.2l-.9 9.4-18.8-9.4H9.4c-8.6 0-9.4-7-9.4-15.6S.7 4.2 9.4 4.2z'></path></svg> <div> <span class='comments-button__count ml075 small mbold disqus-comment-count' data-disqus-identifier='144155 https://www.quantamagazine.org/?p=144155'></span> </div> </a> </div> <span class='o-divider mh075 relative'></span> <div class='relative'> <button class='bookmark-button mh05 flex flex-items-center theme__accent-hover ' data-toggle-hover='tooltip' data-id='144155' data-active-class='' aria-expanded='false'> <svg class="icon" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Save Article</title><path fill="currentColor" d="M2.1 0h45.8v50L25.5 37.5 2.1 50V0z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement w-32 ml-n16 -top-10'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow -bottom-3'></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern--w mx025'> <span class='small no-wrap'>Read Later</span> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </section> </section> <figure class='leading-0 w-full my-0 mx-auto flex items-center justify-center flex-col max-w-img-large py-0 px-0 l:px-0 l:mb-20'> <div class='w-full flex justify-center max-w-mod-large m:max-w-unset image--module s:flex-col s:m-auto'> <div class='w-auto mr-2 last:mr-0 s:m-0 s:flex s:flex-col flex-1'> <img width="2560" height="1440" src="https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Lede-scaled.webp" class="mb-6 w-full s:mb-4" alt="" decoding="async" fetchpriority="high" srcset="https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Lede-scaled.webp 2560w, https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Lede-1720x968.webp 1720w, https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Lede-520x293.webp 520w, https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Lede-768x432.webp 768w, https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Lede-1536x864.webp 1536w, https://www.quantamagazine.org/wp-content/uploads/2024/11/PublicKeyCryptoExplainer-crKristinaArmitage-Lede-2048x1152.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /> </div> </div> <figcaption class='block my-0 mx-auto w-full'> <section class='py-0 px-12 s:p-0 m:px-16'> <div class='w-full my-0 mx-auto flex flex-col s:mx-5 s:w-full-minus-25 s:max-w-mod-inline m:max-w-mod-inline l:flex-row l:max-w-mod-large justify-end s:mt-4 s:mb-4'> <div class='attribution theme__anchors--solid wysiwyg pangram h6 mb1 fill-h text-left w-auto before:block l:before:hidden l:w-half-minus-17 l:text-right l:pl-24'> <p>Kristina Armitage/<em>Quanta Magazine</em></p> </div> </div> </section> </figcaption> </figure> <div class='acf-content scale1 mt2'> <h2 class='screen-reader-text'>Introduction</h2> <div class='post__wrapper scale0 show-dropcap'> <div class='mha container--m'> <div class='post__content relative flex flex-items-start flex-justify-between'> <aside class='post__sidebar hide flex flex-justify-center '> <div class='post__sidebar__content'> <div class='post__sidebar__content__inner'> <div class='align-c mb075'> <div class='sidebar__author'> <a class='theme__accent-hover transition--color ' href='https://www.quantamagazine.org/authors/john-pavlus/'> <div class='sidebar__author__avatar mha mb1'> <div class='image mx0 relative image--circle '> <div class='image__inner absolute fit-x is-loaded'> <img width="1500" height="1500" src="https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1.jpg" class="absolute fit-x fill-h fill-v mxa" alt="" decoding="async" srcset="https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1.jpg 1500w, https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1-520x520.jpg 520w, https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1-768x768.jpg 768w, https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1-160x160.jpg 160w" sizes="(max-width: 1500px) 100vw, 1500px" /> </div> </div> </div> <div class='h3t mv05'> <span class='screen-reader-text'>By </span>John Pavlus </div> <p class="o8 theme__text h5 mt05 mb1"><em>Contributing Writer</em></p> </a> </div> <hr class='mb075 o1'> <p class="h6 mv1 pv025 o6"><em>November 15, 2024</em></p> </div> <form action='https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115' method='get' class='sidebar__actions'> <hr class='mt075 mb1 o1'> <input type='hidden' id='print' name='print' value='1' /> <button type="submit" class='h6 pangram uppercase mv05 pb1 bold kern flex flex-items-center flex-justify-between sidebar__print transition--color theme__accent-hover'> <small>View PDF/Print Mode</small> <svg class="icon-l theme__accent ml05" viewbox="0 0 50 50" enable-background="new 0 0 50 50"><path fill="currentColor" d="M39.9,27.5h4.9v22.4H0.1V5.1h22.4V10H5v35h35V27.5z M49.8,0.1h-2.4h-1H33.8V5h7.6L20.7,25.8l3.4,3.4L45,8.4v7.7h4.9V2.6L49.8,0.1z"></path></svg> </button> </form> <div class='mt1 pt05 sidebar__tag-wrap'> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/computer-science'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>computer science</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/computer-security'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>computer security</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/cryptography'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>cryptography</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/mathematics'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>mathematics</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/quantum-computers'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>quantum computers</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative theme__accent w-full' href='/topics'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text-hover transition--color relative'>All topics</span> <svg class='icon ml05' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </div> </div> <div class='sidebar__poster'> <a href='https://www.simonsfoundation.org/' title='' target='_blank' class=''> <img width="640" height="1100" src="https://www.quantamagazine.org/wp-content/uploads/2022/08/Article-Design-D@2x.png" class="fill-h" alt="" decoding="async" srcset="https://www.quantamagazine.org/wp-content/uploads/2022/08/Article-Design-D@2x.png 640w, https://www.quantamagazine.org/wp-content/uploads/2022/08/Article-Design-D@2x-303x520.png 303w" sizes="(max-width: 640px) 100vw, 640px" /></a> </div> </div> </aside> <section class='outer mha js-router-anchors outer--content'> <div class='flex-auto mha container--xs '> <div class='post__content__section wysiwyg p theme__anchors--underline' data-role='selectable'> <div class='post__content wysiwyg p theme__anchors--underline '> <p>For thousands of years, if you wanted to send a secret message, there was basically one way to do it. You’d scramble the message using a special rule, known only to you and your intended audience. This rule acted like the key to a lock. If you had the key, you could unscramble the message; otherwise, you’d need to pick the lock. <a href="https://link.springer.com/chapter/10.1007/978-3-031-33386-6_1">Some locks</a> are so effective they can never be picked, even with infinite time and resources. But even those schemes suffer from the same Achilles’ heel that plagues all such encryption systems: How do you get that key into the right hands, while keeping it out of the wrong ones?</p> <p>The counterintuitive solution, known as <a href="https://csrc.nist.gov/glossary/term/public_key_cryptography">public key cryptography</a>, relies not on keeping a key secret, but rather on making it widely available. The trick is to also use a second key that you never share with anyone, even the person you’re communicating with. It’s only by using this combination of two keys — one public, one private — that someone can both scramble and unscramble a message.</p> <p>To understand how this works, it’s easier to think of the “keys” not as objects that fit into a lock, but as two complementary ingredients in an invisible ink. The first ingredient makes messages disappear, and the second makes them reappear. If a spy named Boris wants to send his counterpart Natasha a secret message, he writes a message and then uses the first ingredient to render it invisible on the page. (This is easy for him to do: Natasha has published an easy and well-known formula for disappearing ink.) When Natasha receives the paper in the mail, she applies the second ingredient that makes Boris’ message reappear.</p> <p>In this scheme, anyone can make messages invisible, but only Natasha can make them visible again. And because she never shares the formula for the second ingredient with anyone — not even Boris — she can be sure the message hasn’t been deciphered along the way. When Boris wants to receive secret messages, he simply adopts the same procedure: He publishes an easy recipe for making messages disappear (that Natasha or anyone else can use), while keeping another one just for himself that makes them reappear.</p> <p>In public key cryptography, the “public” and “private” keys work just like the first and second ingredients in this special invisible ink: One encrypts messages, the other decrypts them. But instead of using chemicals, public key cryptography uses mathematical puzzles called <a href="https://www.quantamagazine.org/graduate-student-solves-quantum-verification-problem-20181008/">trapdoor functions</a>. These functions are easy to compute in one direction and extremely difficult to reverse. But they also contain “trapdoors,” pieces of information that, if known, make the functions trivially easy to compute in both directions.</p> <p>One common trapdoor function involves multiplying two large prime numbers, an easy operation to perform. But reversing it — that is, starting with the product and finding each prime factor — is computationally impractical. To make a public key, start with two large prime numbers. These are your trapdoors. Multiply the two numbers together, then perform some additional <a href="https://dl.acm.org/doi/10.1145/359340.359342">mathematical operations</a>. This public key can now encrypt messages. To decrypt them, you’ll need the corresponding private key, which contains the prime factors — the necessary trapdoors. With those numbers, it’s easy to decrypt the message. Keep those two prime factors secret, and the message will stay secret.</p> <figure class='mb2 mt1 image--shortcode s:mt-0'> <div class='relative image mx0'> <img width="1015" height="2560" src="https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Desktop-v1-2-scaled.jpg" class="block fit-x fill-h fill-v is-loaded mxa vertical s:hidden m:hidden" alt="" decoding="async" srcset="https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Desktop-v1-2-scaled.jpg 1015w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Desktop-v1-2-682x1720.jpg 682w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Desktop-v1-2-206x520.jpg 206w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Desktop-v1-2-768x1936.jpg 768w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Desktop-v1-2-609x1536.jpg 609w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Desktop-v1-2-812x2048.jpg 812w" sizes="(max-width: 1015px) 100vw, 1015px" /><img width="806" height="2560" src="https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Mobile-v1-2-scaled.jpg" class="block fit-x fill-h fill-v is-loaded mxa vertical l:hidden" alt="" decoding="async" srcset="https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Mobile-v1-2-scaled.jpg 806w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Mobile-v1-2-907x2880.jpg 907w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Mobile-v1-2-164x520.jpg 164w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Mobile-v1-2-768x2440.jpg 768w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Mobile-v1-2-484x1536.jpg 484w, https://www.quantamagazine.org/wp-content/uploads/2024/11/How_Public_Key_Cryptography_Works-crMarkBelan-Mobile-v1-2-645x2048.jpg 645w" sizes="(max-width: 806px) 100vw, 806px" /> </div> <figcaption class='image__meta mt1'> <div class='attribution theme__anchors--solid wysiwyg pangram h6 mb1 fill-h post__aside__attribution'> <p>Mark Belan/<em>Quanta Magazine</em></p> </div> </figcaption> </figure> <p>The foundations for public key cryptography were first discovered between 1970 and 1974 by British mathematicians working for the U.K. Government Communications Headquarters, the same government agency that cracked the Nazi Enigma code during World War II. Their work (which remained classified until 1997) was shared with the U.S. National Security Agency, but due to limited and expensive computing capacity, neither government implemented the system. In 1976, the American researchers Whitfield Diffie and Martin Hellman discovered the first publicly known <a href="https://ieeexplore.ieee.org/document/1055638">public key cryptography scheme</a>, influenced by the cryptographer Ralph Merkle. Just a year later, the RSA algorithm, named after its inventors Ron Rivest, Adi Shamir and Leonard Adleman, established a practical way to use public key cryptography. It’s still in wide use today, a fundamental building block of the modern internet, enabling everything from shopping to web-based email.</p> <aside class="post__aside mb2 relative post__aside--right post__aside--medium hide-on-print"> <div class='card clearfix mv05 pv1 theme__anchors--none is-grid-variant is-shortcode border-grey-o25'> <div class='card__image mr1 mb1' data-toggle-hover='card'> <a href='https://www.quantamagazine.org/researchers-identify-master-problem-underlying-all-cryptography-20220406/' class='relative'> <span class='screen-reader-text'>Researchers Identify ‘Master Problem’ Underlying All Cryptography</span> <div class='image mx0 relative image--standard'> <div class='image__inner absolute fit-x is-loaded'> <img width="520" height="292" src="https://www.quantamagazine.org/wp-content/uploads/2022/04/OneWay_520x292.jpg" class="absolute fit-x fill-h fill-v mxa" alt="Illustration of a figure standing between broken orange walls and a blue unbreakable wall with a broken sledgehammer beside it" decoding="async" /> </div> </div> </a> </div> <div class='card__content '> <div class='mb1 pb025 mt0 h6t card__kicker'> <a class="kicker theme__accent theme__text-hover uppercase" href="/tag/computational-complexity/">computational complexity</a> </div> <a href='https://www.quantamagazine.org/researchers-identify-master-problem-underlying-all-cryptography-20220406/' data-toggle-hover='card'> <h3 class='card__title noe mv0 theme__accent-hover transition--color h2t'> Researchers Identify ‘Master Problem’ Underlying All Cryptography </h3> </a> <div class='card__meta mb0 mt025 flex flex-items-center flex-wrap'> <div class='card-date h6 flex flex-items-center mv05'> <div class='uppercase mr1 kern small gray3'>April 6, 2022</div> <span class='o-divider o-divider--vertical mr1 relative'></span> </div> <div class='card__actions h6 flex flex-items-center mv05'> <div class='comments-button mr05 flex flex-items-center theme__accent-hover ' data-name='comment-bubble' > <a href='https://www.quantamagazine.org/researchers-identify-master-problem-underlying-all-cryptography-20220406/#comments' class='flex flex-items-center pangram'> <svg viewbox='0 0 50 50' enable-background='new 0 0 50 50' xmlns='http://www.w3.org/2000/svg' class='o2'><title>Comment</title><path fill='currentColor' d='M9.4 4.2h31.2c8.6 0 9.4 7 9.4 15.6s-.7 15.6-9.4 15.6h-2.2l-.9 9.4-18.8-9.4H9.4c-8.6 0-9.4-7-9.4-15.6S.7 4.2 9.4 4.2z'></path></svg> </a> </div> <span class='o-divider mh075 relative'></span> <div class='relative'> <button class='bookmark-button mh05 flex flex-items-center theme__accent-hover ' data-toggle-hover='tooltip' data-id='113874' data-active-class='' aria-expanded='false'> <svg class="icon" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Save Article</title><path fill="currentColor" d="M2.1 0h45.8v50L25.5 37.5 2.1 50V0z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement w-32 ml-n16 -top-10'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow -bottom-3'></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern--w mx025'> <span class='small no-wrap'>Read Later</span> </div> </div> </div> </div> </div> </div> </div> <div class='card__excerpt h5 pangram o6 mb4 mt025'> </div> </div> </div> </aside> <p>This two-key system also makes possible “digital signatures” — mathematical proof that a message was generated by the holder of a private key. This works because private keys can be used to encrypt messages too, not just decrypt them. Of course, this is useless for keeping messages secret: If you used your private key to scramble a message, anyone could just use the corresponding public key to unscramble it. But it does prove that you, and only you, created the message, since as the holder of the private key, only you could have encrypted the message. Cryptocurrencies like bitcoin couldn’t exist without this idea.</p> <p>If two cryptographic keys instead of one is so effective, why did it take millennia to discover? According to <a href="https://www.quantamagazine.org/the-researcher-who-explores-computation-by-conjuring-new-worlds-20240327/">Russell Impagliazzo</a>, a computer scientist and cryptography theorist at the University of California, San Diego, the concept of a trapdoor function just wasn’t useful enough before the invention of computers.</p> <p>“It’s a matter of technology,” he said. “A person in the 19th century thought of encryption as being between individual agents with military intelligence in the field — literally, in a field with guns firing. So if your first step is ‘pick two 100-digit prime numbers to multiply together,’ the battle is going to be over before you do that.” If you reduce the problem to something a human can do quickly, it’s not going to be terribly secure.</p> <div class="related-list"> <aside class="post__aside mb2 relative hide-on-print post__aside--right"> <h2 class="mv0 h5 bold uppercase kern">Related:</h2> <hr class="mt1 o2"> <ol class="post__aside__list theme__anchors--none pt05"> <li class="mv075 flex"> <h3 class="h5t mt0 mb025 medium"> <a class="theme__accent theme__text-hover" href="https://www.quantamagazine.org/mathematicians-seal-back-door-to-breaking-rsa-encryption-20181217/"> <span class="' . $span_class . '">Mathematicians Seal Back Door to Breaking RSA Encryption</span> </a> </h3> </li> <li class="mv075 flex"> <h3 class="h5t mt0 mb025 medium"> <a class="theme__accent theme__text-hover" href="https://www.quantamagazine.org/cryptographys-future-will-be-quantum-safe-heres-how-it-will-work-20221109/"> <span class="' . $span_class . '">Cryptography’s Future Will Be Quantum-Safe. Here’s How It Will Work.</span> </a> </h3> </li> <li class="mv075 flex"> <h3 class="h5t mt0 mb025 medium"> <a class="theme__accent theme__text-hover" href="https://www.quantamagazine.org/thirty-years-later-a-speed-boost-for-quantum-factoring-20231017/"> <span class="' . $span_class . '">Thirty Years Later, a Speed Boost for Quantum Factoring</span> </a> </h3> </li> </ol> </aside> </div> <p>But while computers helped make public key cryptography possible, they’ve also created cracks in its armor. In 1994, the mathematician Peter Shor discovered a way for <a href="https://www.quantamagazine.org/tag/quantum-computing/">quantum computers</a> to efficiently reverse the trapdoor functions that underlie most current public key cryptography systems, including prime factorization. This algorithm, if implemented, would act like an all-purpose “reappearing ink,” capable of making any invisible message reappear. Goodbye, internet security.</p> <p>Luckily, quantum computers themselves are “still in the ENIAC phase,” Impagliazzo said, referring to the room-size machine built for the U.S. Army in 1945. By the time quantum computers become sophisticated enough to pose a real threat to public key cryptography, its original trapdoor functions could be replaced by “quantum-safe” versions called <a href="https://www.quantamagazine.org/cryptographys-future-will-be-quantum-safe-heres-how-it-will-work-20221109/">lattice problems</a>. Of course, this new computational “ink” may also become susceptible to attack in the future. But that’s the great thing about public key cryptography: As long as we can find new functions to use, we can just keep reinventing the wheel. Or in this case, the key.</p> </div> </div> </div> </section> <aside class='post__sidebar hide flex flex-justify-center theme__anchors--solid '> <div class='post__sidebar__content'> <div class='post__sidebar__content__inner'> <div class='h3t mt0'> Share this article </div> <div data-id='social-links'> <div class='social-links social-links--share flex flex-justify-between'> <a href='http://www.facebook.com/sharer.php?u=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path fill="currentColor" d="M13 16.5h5.1v-5c-.2-2.7.3-5.4 1.7-7.7 1.8-2.5 4.9-4 8-3.8 3.1-.1 6.2.2 9.2 1l-1.3 7.7C34.4 8.3 33 8 31.6 8c-2 0-3.8.7-3.8 2.7v5.9H36l-.6 7.5h-7.6V50h-9.6V23.9H13v-7.4z"></path></svg></div> </a> <a href='https://twitter.com/share?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&text=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math&via=QuantaMagazine' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>X Twitter</title><path fill="currentColor" d="M50 9.9c-1.9.8-3.8 1.3-5.9 1.6 2.1-1.3 3.7-3.2 4.5-5.6-2 1.2-4.2 2-6.5 2.5-3.8-4.1-10.3-4.5-14.5-.8-2.8 2.5-4 6.3-3.1 10-8.2-.5-15.8-4.3-21-10.6-2.7 4.6-1.3 10.5 3.2 13.5C5 20.4 3.4 20 2 19.2c0 4.8 3.4 8.9 8.2 9.9-.9.2-1.8.4-2.7.3-.6 0-1.3-.1-1.9-.2 1.3 4.1 5.2 6.9 9.5 7C10.8 39.5 5.4 41 0 40.4c13.5 8.5 31.5 4.6 40.2-8.7 3-4.6 4.6-10 4.6-15.5v-1.3c2-1.3 3.7-3.1 5.2-5"></path></svg></div> </a> <a href='' class='social-links__link flex flex-items-center relative' data-function="copy"> <div class='q-tooltip hidden force-mobile-placement w-17-5 top-10-5 ml-n8-75'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow '></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern mv0'>Copied!</div> </div> </div> </div> <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><title>Copy link</title><g><path fill="currentColor" d="M20.6,38.5c-0.8,0-1.6,0.3-2.2,0.8L16,41.9c-1.1,1-2.4,1.6-3.9,1.6c-1.5,0-2.8-0.5-3.9-1.6c-0.5-0.5-0.9-1.1-1.2-1.8 c-0.3-0.7-0.4-1.4-0.4-2.1c0-0.7,0.1-1.4,0.4-2.1c0.3-0.7,0.7-1.2,1.2-1.8l9.1-9c1-0.9,2.2-1.8,3.8-2.7s3-0.7,4.3,0.7 c0.6,0.6,1.3,0.8,2.2,0.8s1.5-0.3,2.1-0.9c0.6-0.6,0.9-1.3,0.9-2.2s-0.3-1.6-0.9-2.2c-2.2-2.2-4.8-3.1-7.8-2.7 c-3,0.4-5.9,2-8.8,4.8l-9.2,9c-1.1,1.1-1.9,2.4-2.5,3.8C0.7,35,0.4,36.5,0.4,38c0,1.6,0.3,3,0.9,4.4c0.6,1.4,1.4,2.7,2.5,3.8 c1.1,1.1,2.4,2,3.8,2.5c1.4,0.6,2.9,0.8,4.4,0.8s2.9-0.3,4.3-0.8c1.4-0.6,2.7-1.4,3.8-2.5l2.5-2.5c0.6-0.6,0.9-1.3,0.9-2.1 s-0.3-1.6-0.9-2.2C22.1,38.8,21.4,38.5,20.6,38.5z"></path><path fill="currentColor" d="M48.7,7.9c-0.6-1.4-1.4-2.7-2.5-3.8c-2.4-2.4-5.1-3.6-8-3.7c-3-0.1-5.5,0.9-7.7,3.1l-3.1,3.1c-0.6,0.6-0.9,1.3-0.9,2.1 s0.3,1.6,0.9,2.2s1.3,0.9,2.2,0.9s1.6-0.3,2.2-0.8l3.1-3.1c1.2-1.1,2.4-1.5,3.7-1.3c1.3,0.3,2.5,0.9,3.4,1.9 c0.5,0.5,0.9,1.1,1.2,1.8c0.3,0.7,0.4,1.4,0.4,2.1c0,0.7-0.1,1.4-0.4,2.1c-0.3,0.7-0.7,1.2-1.2,1.8l-9.7,9.6 c-2.2,2.2-3.9,3.1-5.1,2.7s-2-0.8-2.4-1.3c-0.6-0.6-1.3-0.8-2.2-0.8s-1.5,0.3-2.1,0.9c-0.6,0.6-0.9,1.3-0.9,2.2s0.3,1.5,0.9,2.1 c1,1,2.1,1.8,3.2,2.3s2.4,0.7,3.6,0.7c1.5,0,3-0.4,4.6-1.1c1.6-0.7,3.1-1.9,4.6-3.4l9.8-9.6c1.1-1.1,1.9-2.4,2.5-3.8 c0.6-1.4,0.9-2.9,0.9-4.4C49.6,10.8,49.3,9.3,48.7,7.9z"></path></g></svg></div> </a> <a href="/cdn-cgi/l/email-protection#82bdf1f7e0e8e7e1f6bfcaedf5a9d2f7e0eeebe1a9c9e7fba9c1f0fbf2f6ede5f0e3f2eafba9d0e7e3eeeefba9d5edf0e9f1a7b0c1a9d7f1ebece5a9cdeceefba9d1ebeff2eee7a9cfe3f6eaa4e0ede6fbbfd6eae7a2f1e7e1f7f0ebf6fba2f1fbf1f6e7efa2f6eae3f6a2f7ece6e7f0eeebe7f1a2f6eae7a2ebecf6e7f0ece7f6a2efe3e9e7f1a2f7f1e7a2ede4a2e3a2e1f7f0ebedf7f1a2e4e3e1f6b8a2dbedf7a2e1e3eca2e0f0ede3e6e1e3f1f6a2f2e3f0f6a2ede4a2fbedf7f0a2e7ece1f0fbf2f6ebedeca2f6eda2efe3e9e7a2fbedf7f0a2ebece4edf0efe3f6ebedeca2eff7e1eaa2efedf0e7a2f1e7e1f7f0e7acdeecdeeceaf6f6f2f1b8adadf5f5f5acf3f7e3ecf6e3efe3e5e3f8ebece7acedf0e5adeaedf5aff2f7e0eeebe1afe9e7fbafe1f0fbf2f6ede5f0e3f2eafbaff0e7e3eeeefbaff5edf0e9f1afb0b2b0b6b3b3b3b7ad" class='social-links__link flex flex-items-center relative'> <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><title>Email</title><path fill="currentColor" d="M25,29.5l-5.2-4.3L1.8,43.8h46L30.1,25.2L25,29.5z M32.6,23.2l17.2,17.9c0-0.2,0.1-0.3,0.1-0.5c0-0.2,0-0.4,0-0.6V9.1 L32.6,23.2z M0,9.1v31c0,0.2,0,0.4,0,0.6s0.1,0.3,0.1,0.5l17.3-17.8L0,9.1z M48.4,6.2H1.6L25,25L48.4,6.2z"></path></svg></div> </a> </div> <div class='social-hide closed' data-function='toggle' data-name='social-show-more'> <div class='social-links social-links--share flex flex-justify-between'> <a href='https://getpocket.com/save?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&title=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Pocket</title><path fill="currentColor" d="M2.6,1.7C1.3,1.6,0.1,2.7,0,4.1c0,0.1,0,0.3,0,0.4v9.9c0,8.1,8,14.4,15,14.4c8-0.1,14.6-6.4,15-14.4v-10 c0.1-1.4-0.9-2.6-2.3-2.8c-0.2,0-0.4,0-0.5,0L2.6,1.7z M9,9.8l6,5.7l6-5.7c2.8-1.1,3.9,2,2.8,2.8L16,20.1c-0.6,0.3-1.3,0.3-1.9,0 l-7.9-7.5C5.2,11.5,6.5,8.4,9,9.8L9,9.8z"></path></svg></div> </a> <a href='https://www.reddit.com/submit?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="4 0 33 33" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Reddit</title><path fill="currentColor" d="M39.58,19.65A4.72,4.72,0,0,0,31.91,16a22.4,22.4,0,0,0-10.42-3.09l2-6.38,5.6,1.31a3.91,3.91,0,1,0,.43-2.08L23.05,4.27A1.08,1.08,0,0,0,21.79,5L19.26,12.9A22.6,22.6,0,0,0,8,16a4.68,4.68,0,1,0-5.56,7.51,8.32,8.32,0,0,0-.08,1.12c0,3.21,1.89,6.2,5.31,8.41a22.69,22.69,0,0,0,12.23,3.3A22.67,22.67,0,0,0,32.15,33c3.43-2.21,5.31-5.2,5.31-8.41a8.77,8.77,0,0,0-.06-1,4.65,4.65,0,0,0,2.18-3.93M33.05,5.8a1.78,1.78,0,1,1-1.8,1.78,1.79,1.79,0,0,1,1.8-1.78M11.52,22.53a2.71,2.71,0,0,1,2.69-2.66,2.65,2.65,0,1,1-2.69,2.66m14.93,7.73c-1.37,1.35-3.47,2-6.43,2h0c-3,0-5.06-.65-6.43-2a1.05,1.05,0,0,1,0-1.5,1.09,1.09,0,0,1,1.52,0c.94.93,2.54,1.38,4.91,1.38h0c2.37,0,4-.45,4.91-1.38a1.08,1.08,0,0,1,1.52,0,1.07,1.07,0,0,1,0,1.5m-.63-5.1a2.65,2.65,0,1,1,2.66-2.63,2.65,2.65,0,0,1-2.66,2.63" transform="translate(-0.42 -3.68)"></path></svg></div> </a> <a href='https://news.ycombinator.com/submitlink?u=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&t=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Ycombinator</title><path fill="currentColor" d="M12.9,18L3.2-0.1h4.4l5.7,11.5l0.3,0.6c0.1,0.2,0.2,0.4,0.3,0.7c0,0.1,0,0.2,0,0.2v0.2l0.4,0.9l0.5,0.7 l0.8-1.6l0.9-1.8l5.8-11.5h4.1l-9.8,18.3v11.7h-3.7V18z"></path></svg></div> </a> <a href=' https://share.flipboard.com/bookmarklet/popout?v=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math&url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Flipboard</title><path fill="currentColor" d="M30,0 0,0 0,30 10,30 10,20 20,20 20,10 30,10 z"></path></svg></div> </a> </div> </div> <div class='flex flex-justify-center social-more' data-function='trigger' data-name='social-show-more'> <svg class="ml05 icon icon-offset closed" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M15,20.7c-0.1,0-0.3,0-0.4-0.1L0.3,10.7l0.9-1.2L15,19l13.8-9.5l0.9,1.2l-14.3,9.8C15.3,20.6,15.1,20.7,15,20.7 z"></path></svg> </div> </div> <div class='sidebar__newsletter'> <div class='pv05'> <hr class='o2 mv1'> </div> <div class='h3t mv0'> Newsletter </div> <p class='scale5 o4 mb1 mt025'> <em>Get Quanta Magazine delivered to your inbox</em> </p> </div> <div class='theme__text theme__accent-hover mb05'> <a href='#newsletter'> <button class='button pangram bold scale5 fill-h'>Subscribe now</button> </a> </div> <a href='http://us1.campaign-archive2.com/home/?u=0d6ddf7dc1a0b7297c8e06618&#038;id=f0cb61321c' class='pangram h5 relative' target='_blank'> <small class='flex flex-items-center'> <span>Recent newsletters</span> <svg class='icon ml05' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </small> </a> </div> </div> </aside> </div> </div> </div> </div> <div class='pv2'></div> <div class='post__footer'> <div class='mha container--m'> <div class='flex flex-wrap flex-items-stretch'> <div class='post__footer__col fill-h pv2 flex flex-items-center flex-justify-center'> <section class='outer'> <aside class='post__sidebar hide flex flex-justify-center post__sidebar--footer'> <div class='post__sidebar__content'> <div class='post__sidebar__content__inner'> <div class='align-c mb075'> <div class='sidebar__author'> <a class='theme__accent-hover transition--color ' href='https://www.quantamagazine.org/authors/john-pavlus/'> <div class='sidebar__author__avatar mha mb1'> <div class='image mx0 relative image--circle '> <div class='image__inner absolute fit-x is-loaded'> <img width="1500" height="1500" src="https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1.jpg" class="absolute fit-x fill-h fill-v mxa" alt="" decoding="async" srcset="https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1.jpg 1500w, https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1-520x520.jpg 520w, https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1-768x768.jpg 768w, https://www.quantamagazine.org/wp-content/uploads/2017/04/John_Pavlus1-160x160.jpg 160w" sizes="(max-width: 1500px) 100vw, 1500px" /> </div> </div> </div> <div class='h3t mv05'> <span class='screen-reader-text'>By </span>John Pavlus </div> <p class="o8 theme__text h5 mt05 mb1"><em>Contributing Writer</em></p> </a> </div> <hr class='mb075 o1'> <p class="h6 mv1 pv025 o6"><em>November 15, 2024</em></p> </div> <form action='https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115' method='get' class='sidebar__actions'> <hr class='mt075 mb1 o1'> <input type='hidden' id='print' name='print' value='1' /> <button type="submit" class='h6 pangram uppercase mv05 pb1 bold kern flex flex-items-center flex-justify-between sidebar__print transition--color theme__accent-hover'> <small>View PDF/Print Mode</small> <svg class="icon-l theme__accent ml05" viewbox="0 0 50 50" enable-background="new 0 0 50 50"><path fill="currentColor" d="M39.9,27.5h4.9v22.4H0.1V5.1h22.4V10H5v35h35V27.5z M49.8,0.1h-2.4h-1H33.8V5h7.6L20.7,25.8l3.4,3.4L45,8.4v7.7h4.9V2.6L49.8,0.1z"></path></svg> </button> </form> <div class='mt1 pt05 sidebar__tag-wrap'> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/computer-science'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>computer science</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/computer-security'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>computer security</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/cryptography'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>cryptography</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/mathematics'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>mathematics</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative float-left' href='/tag/quantum-computers'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text theme__accent-hover transition--color relative'>quantum computers</span></a> <a class='sidebar__tag h6 pangram medium inline-block mb0 relative theme__accent w-full' href='/topics'> <span class='absolute fit-x theme__text-background o1'></span> <span class='theme__text-hover transition--color relative'>All topics</span> <svg class='icon ml05' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </a> </div> </div> <div class='sidebar__poster'> <a href='https://www.simonsfoundation.org/' title='' target='_blank' class=''> <img width="640" height="1100" src="https://www.quantamagazine.org/wp-content/uploads/2022/08/Article-Design-D@2x.png" class="fill-h" alt="" decoding="async" srcset="https://www.quantamagazine.org/wp-content/uploads/2022/08/Article-Design-D@2x.png 640w, https://www.quantamagazine.org/wp-content/uploads/2022/08/Article-Design-D@2x-303x520.png 303w" sizes="(max-width: 640px) 100vw, 640px" /></a> </div> </div> </aside> </section> </div> <div class='post__footer__col fill-h pv2 flex flex-items-center flex-justify-center'> <section class='outer fill-h'> <aside class='post__sidebar hide flex flex-justify-center theme__anchors--solid post__sidebar--footer'> <div class='post__sidebar__content'> <div class='post__sidebar__content__inner'> <div class='h3t mt0'> Share this article </div> <div data-id='social-links'> <div class='social-links social-links--share flex flex-justify-between'> <a href='http://www.facebook.com/sharer.php?u=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path fill="currentColor" d="M13 16.5h5.1v-5c-.2-2.7.3-5.4 1.7-7.7 1.8-2.5 4.9-4 8-3.8 3.1-.1 6.2.2 9.2 1l-1.3 7.7C34.4 8.3 33 8 31.6 8c-2 0-3.8.7-3.8 2.7v5.9H36l-.6 7.5h-7.6V50h-9.6V23.9H13v-7.4z"></path></svg></div> </a> <a href='https://twitter.com/share?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&text=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math&via=QuantaMagazine' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>X Twitter</title><path fill="currentColor" d="M50 9.9c-1.9.8-3.8 1.3-5.9 1.6 2.1-1.3 3.7-3.2 4.5-5.6-2 1.2-4.2 2-6.5 2.5-3.8-4.1-10.3-4.5-14.5-.8-2.8 2.5-4 6.3-3.1 10-8.2-.5-15.8-4.3-21-10.6-2.7 4.6-1.3 10.5 3.2 13.5C5 20.4 3.4 20 2 19.2c0 4.8 3.4 8.9 8.2 9.9-.9.2-1.8.4-2.7.3-.6 0-1.3-.1-1.9-.2 1.3 4.1 5.2 6.9 9.5 7C10.8 39.5 5.4 41 0 40.4c13.5 8.5 31.5 4.6 40.2-8.7 3-4.6 4.6-10 4.6-15.5v-1.3c2-1.3 3.7-3.1 5.2-5"></path></svg></div> </a> <a href='' class='social-links__link flex flex-items-center relative' data-function="copy"> <div class='q-tooltip hidden force-mobile-placement w-17-5 top-10-5 ml-n8-75'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow '></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern mv0'>Copied!</div> </div> </div> </div> <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><title>Copy link</title><g><path fill="currentColor" d="M20.6,38.5c-0.8,0-1.6,0.3-2.2,0.8L16,41.9c-1.1,1-2.4,1.6-3.9,1.6c-1.5,0-2.8-0.5-3.9-1.6c-0.5-0.5-0.9-1.1-1.2-1.8 c-0.3-0.7-0.4-1.4-0.4-2.1c0-0.7,0.1-1.4,0.4-2.1c0.3-0.7,0.7-1.2,1.2-1.8l9.1-9c1-0.9,2.2-1.8,3.8-2.7s3-0.7,4.3,0.7 c0.6,0.6,1.3,0.8,2.2,0.8s1.5-0.3,2.1-0.9c0.6-0.6,0.9-1.3,0.9-2.2s-0.3-1.6-0.9-2.2c-2.2-2.2-4.8-3.1-7.8-2.7 c-3,0.4-5.9,2-8.8,4.8l-9.2,9c-1.1,1.1-1.9,2.4-2.5,3.8C0.7,35,0.4,36.5,0.4,38c0,1.6,0.3,3,0.9,4.4c0.6,1.4,1.4,2.7,2.5,3.8 c1.1,1.1,2.4,2,3.8,2.5c1.4,0.6,2.9,0.8,4.4,0.8s2.9-0.3,4.3-0.8c1.4-0.6,2.7-1.4,3.8-2.5l2.5-2.5c0.6-0.6,0.9-1.3,0.9-2.1 s-0.3-1.6-0.9-2.2C22.1,38.8,21.4,38.5,20.6,38.5z"></path><path fill="currentColor" d="M48.7,7.9c-0.6-1.4-1.4-2.7-2.5-3.8c-2.4-2.4-5.1-3.6-8-3.7c-3-0.1-5.5,0.9-7.7,3.1l-3.1,3.1c-0.6,0.6-0.9,1.3-0.9,2.1 s0.3,1.6,0.9,2.2s1.3,0.9,2.2,0.9s1.6-0.3,2.2-0.8l3.1-3.1c1.2-1.1,2.4-1.5,3.7-1.3c1.3,0.3,2.5,0.9,3.4,1.9 c0.5,0.5,0.9,1.1,1.2,1.8c0.3,0.7,0.4,1.4,0.4,2.1c0,0.7-0.1,1.4-0.4,2.1c-0.3,0.7-0.7,1.2-1.2,1.8l-9.7,9.6 c-2.2,2.2-3.9,3.1-5.1,2.7s-2-0.8-2.4-1.3c-0.6-0.6-1.3-0.8-2.2-0.8s-1.5,0.3-2.1,0.9c-0.6,0.6-0.9,1.3-0.9,2.2s0.3,1.5,0.9,2.1 c1,1,2.1,1.8,3.2,2.3s2.4,0.7,3.6,0.7c1.5,0,3-0.4,4.6-1.1c1.6-0.7,3.1-1.9,4.6-3.4l9.8-9.6c1.1-1.1,1.9-2.4,2.5-3.8 c0.6-1.4,0.9-2.9,0.9-4.4C49.6,10.8,49.3,9.3,48.7,7.9z"></path></g></svg></div> </a> <a href="/cdn-cgi/l/email-protection#407f3335222a2523347d082f376b1035222c29236b0b25396b03323930342f2732213028396b1225212c2c396b172f322b336572036b1533292e276b0f2e2c396b13292d302c256b0d21342866222f24397d1428256033252335322934396033393334252d603428213460352e2425322c2925336034282560292e3425322e2534602d212b253360353325602f26602160233532292f353360262123347a60192f356023212e6022322f2124232133346030213234602f2660392f353260252e2332393034292f2e60342f602d212b2560392f353260292e262f322d2134292f2e602d352328602d2f3225603325233532256e1c2e1c2e28343430337a6f6f3737376e3135212e34212d2127213a292e256e2f32276f282f376d3035222c29236d2b25396d23323930342f2732213028396d3225212c2c396d372f322b336d72707274717171756f" class='social-links__link flex flex-items-center relative'> <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><title>Email</title><path fill="currentColor" d="M25,29.5l-5.2-4.3L1.8,43.8h46L30.1,25.2L25,29.5z M32.6,23.2l17.2,17.9c0-0.2,0.1-0.3,0.1-0.5c0-0.2,0-0.4,0-0.6V9.1 L32.6,23.2z M0,9.1v31c0,0.2,0,0.4,0,0.6s0.1,0.3,0.1,0.5l17.3-17.8L0,9.1z M48.4,6.2H1.6L25,25L48.4,6.2z"></path></svg></div> </a> </div> <div class='social-hide closed' data-function='toggle' data-name='social-show-more'> <div class='social-links social-links--share flex flex-justify-between'> <a href='https://getpocket.com/save?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&title=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Pocket</title><path fill="currentColor" d="M2.6,1.7C1.3,1.6,0.1,2.7,0,4.1c0,0.1,0,0.3,0,0.4v9.9c0,8.1,8,14.4,15,14.4c8-0.1,14.6-6.4,15-14.4v-10 c0.1-1.4-0.9-2.6-2.3-2.8c-0.2,0-0.4,0-0.5,0L2.6,1.7z M9,9.8l6,5.7l6-5.7c2.8-1.1,3.9,2,2.8,2.8L16,20.1c-0.6,0.3-1.3,0.3-1.9,0 l-7.9-7.5C5.2,11.5,6.5,8.4,9,9.8L9,9.8z"></path></svg></div> </a> <a href='https://www.reddit.com/submit?url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="4 0 33 33" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Reddit</title><path fill="currentColor" d="M39.58,19.65A4.72,4.72,0,0,0,31.91,16a22.4,22.4,0,0,0-10.42-3.09l2-6.38,5.6,1.31a3.91,3.91,0,1,0,.43-2.08L23.05,4.27A1.08,1.08,0,0,0,21.79,5L19.26,12.9A22.6,22.6,0,0,0,8,16a4.68,4.68,0,1,0-5.56,7.51,8.32,8.32,0,0,0-.08,1.12c0,3.21,1.89,6.2,5.31,8.41a22.69,22.69,0,0,0,12.23,3.3A22.67,22.67,0,0,0,32.15,33c3.43-2.21,5.31-5.2,5.31-8.41a8.77,8.77,0,0,0-.06-1,4.65,4.65,0,0,0,2.18-3.93M33.05,5.8a1.78,1.78,0,1,1-1.8,1.78,1.79,1.79,0,0,1,1.8-1.78M11.52,22.53a2.71,2.71,0,0,1,2.69-2.66,2.65,2.65,0,1,1-2.69,2.66m14.93,7.73c-1.37,1.35-3.47,2-6.43,2h0c-3,0-5.06-.65-6.43-2a1.05,1.05,0,0,1,0-1.5,1.09,1.09,0,0,1,1.52,0c.94.93,2.54,1.38,4.91,1.38h0c2.37,0,4-.45,4.91-1.38a1.08,1.08,0,0,1,1.52,0,1.07,1.07,0,0,1,0,1.5m-.63-5.1a2.65,2.65,0,1,1,2.66-2.63,2.65,2.65,0,0,1-2.66,2.63" transform="translate(-0.42 -3.68)"></path></svg></div> </a> <a href='https://news.ycombinator.com/submitlink?u=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/&t=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Ycombinator</title><path fill="currentColor" d="M12.9,18L3.2-0.1h4.4l5.7,11.5l0.3,0.6c0.1,0.2,0.2,0.4,0.3,0.7c0,0.1,0,0.2,0,0.2v0.2l0.4,0.9l0.5,0.7 l0.8-1.6l0.9-1.8l5.8-11.5h4.1l-9.8,18.3v11.7h-3.7V18z"></path></svg></div> </a> <a href=' https://share.flipboard.com/bookmarklet/popout?v=How+Public+Key+Cryptography+Really+Works%2C+Using+Only+Simple+Math&url=https://www.quantamagazine.org/how-public-key-cryptography-really-works-20241115/' class='social-links__link flex flex-items-center relative' target="_blank" > <div class='icon-button inline-block relative pointer theme__accent-hover-child'> <div class='absolute fit-x mxa o2 hover--opaque theme__text'> </div> <svg class="absolute fit-x mxa theme__text" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><title>Flipboard</title><path fill="currentColor" d="M30,0 0,0 0,30 10,30 10,20 20,20 20,10 30,10 z"></path></svg></div> </a> </div> </div> <div class='flex flex-justify-center social-more' data-function='trigger' data-name='social-show-more'> <svg class="ml05 icon icon-offset closed" viewbox="0 0 30 30" enable-background="new 0 0 30 30" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M15,20.7c-0.1,0-0.3,0-0.4-0.1L0.3,10.7l0.9-1.2L15,19l13.8-9.5l0.9,1.2l-14.3,9.8C15.3,20.6,15.1,20.7,15,20.7 z"></path></svg> </div> </div> <div class='sidebar__newsletter'> <div class='pv05'> <hr class='o2 mv1'> </div> <div class='h3t mv0'> Newsletter </div> <p class='scale5 o4 mb1 mt025'> <em>Get Quanta Magazine delivered to your inbox</em> </p> </div> <div class='theme__text theme__accent-hover mb05'> <a href='#newsletter'> <button class='button pangram bold scale5 fill-h'>Subscribe now</button> </a> </div> <a href='http://us1.campaign-archive2.com/home/?u=0d6ddf7dc1a0b7297c8e06618&#038;id=f0cb61321c' class='pangram h5 relative' target='_blank'> <small class='flex flex-items-center'> <span>Recent newsletters</span> <svg class='icon ml05' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </small> </a> </div> </div> </aside> </section> </div> </div> </div> </div> </div> <section class='outer newsletter bg-gray1 align-c pv1 scale1 ' id='newsletter'> <div class='scale0 mt1 mha container--xs pv05'> <div class='newsletter__title h1 noe mv0'> The Quanta Newsletter </div> <p class='gray4 mt025 scale5'> <em>Get highlights of the most important news delivered to your email inbox</em> </p> <div class='newsletter__form block mha ' id='mc_embed_signup'> <form action='https://quantamagazine.us1.list-manage.com/subscribe/post?u=0d6ddf7dc1a0b7297c8e06618&id=f0cb61321c' target='_blank' method='post' class='bg-white' id='mc-embedded-subscribe-form' name='mc-embedded-subscribe-form' target='_blank'> <div class='newsletter__form__inner flex flex-items-start mha'> <div class='newsletter__form__field flex flex-auto relative fill-v'> <label class='screen-reader-text' for='mce-EMAIL'>Email</label> <input type='email' class='flex fill-h px1 input--transparent pangram light scale3 placeholder-gray-808' name='EMAIL' id='mce-EMAIL' placeholder='Email address' autocorrect='off' autocapitalize='off' required> </div> <!--notice from mailchimp: real people should not fill this in and expect good things - do not remove this or risk form bot signups--> <div class='absolute left-n-infini' aria-hidden='true'> <input type='text' name='b_0d6ddf7dc1a0b7297c8e06618_f0cb61321c' tabindex='-1' value=''> </div> <button type='submit' class='ph2 pangram scale5 medium fill-v orange hover--black' id='mc-embedded-subscribe'>Subscribe</button> </div> </form> <div id='mce-responses' class='theme__anchors--solid'> <div class='response h5 merriweather italic hidden mt1' id='mce-error-response'></div> <div class='response h5 merriweather italic hidden mt1' id='mce-success-response'></div> </div> </div> <div class='h4t inline-block'> <a target='_blank' href='http://us1.campaign-archive2.com/home/?u=0d6ddf7dc1a0b7297c8e06618&id=f0cb61321c' class='newsletter__link inline-block link--underline orange hover--black transition--color'> <span class=''>Recent newsletters</span> </a> </div> </div> <div class='mega__other__divider mv2 white o2 shop_divider'></div> </section> <section class='outer post__category pv2 outer--content'> <div class='mha container--m'> <h2 class='post__category__title mv0 mb1'>Also in <span class='capitalize'>Computer Science</span></h2> <div class='post__category__inner mhn1 grid-row'> <div class='post__category__card grid-item'> <div class='card clearfix mv05 pv1 is-grid-variant'> <div class='card__image mr1 mb1' data-toggle-hover='card'> <a href='https://www.quantamagazine.org/what-is-distributed-computing-20241125/' class='relative'> <span class='screen-reader-text'>What Is Distributed Computing?</span> <div class='image mx0 relative image--standard'> <div class='image__inner absolute fit-x is-loaded'> <img width="520" height="292" src="https://www.quantamagazine.org/wp-content/uploads/2024/11/Distributed-Computing_crCarlos-Arrojo-Default.webp" class="absolute fit-x fill-h fill-v mxa" alt="A man on a motherboard surrounded by computers" decoding="async" /> </div> </div> </a> </div> <div class='card__content '> <div class='mb1 pb025 mt0 h6t card__kicker'> <a class="kicker theme__accent theme__text-hover uppercase" href="/tag/explainers/">explainers</a> </div> <a href='https://www.quantamagazine.org/what-is-distributed-computing-20241125/' data-toggle-hover='card'> <h3 class='card__title noe mv0 theme__accent-hover transition--color h2t'> What Is Distributed Computing? </h3> </a> <div class='card__meta mb0 mt025 flex flex-items-center flex-wrap'> <div class='byline relative flex flex-items-start merriweather mv025 mr1 gray3 h6t theme__text-hover'> <em class='byline__by gray4 mr075'>By </em> <a href='https://www.quantamagazine.org/authors/levymax/'> <span class='byline__author uppercase kern light small'>Max G. Levy</span> </a> </div> <span class='o-divider o-divider--vertical mr1 relative h6'></span> <div class='card-date h6 flex flex-items-center mv05'> <div class='uppercase mr1 kern small gray3'>November 25, 2024</div> <span class='o-divider o-divider--vertical mr1 relative'></span> </div> <div class='card__actions h6 flex flex-items-center mv05'> <div class='comments-button mr05 flex flex-items-center theme__accent-hover ' data-name='comment-bubble' > <a href='https://www.quantamagazine.org/what-is-distributed-computing-20241125/#comments' class='flex flex-items-center pangram'> <svg viewbox='0 0 50 50' enable-background='new 0 0 50 50' xmlns='http://www.w3.org/2000/svg' class='o2'><title>Comment</title><path fill='currentColor' d='M9.4 4.2h31.2c8.6 0 9.4 7 9.4 15.6s-.7 15.6-9.4 15.6h-2.2l-.9 9.4-18.8-9.4H9.4c-8.6 0-9.4-7-9.4-15.6S.7 4.2 9.4 4.2z'></path></svg> <div> <span class='comments-button__count ml075 small mbold disqus-comment-count' data-disqus-identifier='144406 https://www.quantamagazine.org/?p=144406'></span> </div> </a> </div> <span class='o-divider mh075 relative'></span> <div class='relative'> <button class='bookmark-button mh05 flex flex-items-center theme__accent-hover ' data-toggle-hover='tooltip' data-id='144406' data-active-class='' aria-expanded='false'> <svg class="icon" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Save Article</title><path fill="currentColor" d="M2.1 0h45.8v50L25.5 37.5 2.1 50V0z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement w-32 ml-n16 -top-10'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow -bottom-3'></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern--w mx025'> <span class='small no-wrap'>Read Later</span> </div> </div> </div> </div> </div> </div> </div> <div class='card__excerpt h5 pangram o6 mb4 mt025'> </div> </div> </div> </div> <div class='post__category__card grid-item'> <div class='card clearfix mv05 pv1 is-grid-variant'> <div class='card__image mr1 mb1' data-toggle-hover='card'> <a href='https://www.quantamagazine.org/debate-may-help-ai-models-converge-on-truth-20241108/' class='relative'> <span class='screen-reader-text'>Debate May Help AI Models Converge on Truth</span> <div class='image mx0 relative image--standard'> <div class='image__inner absolute fit-x is-loaded'> <img width="520" height="292" src="https://www.quantamagazine.org/wp-content/uploads/2024/11/Persuasive-LLMs_crNash-Weerasekera-Default.webp" class="absolute fit-x fill-h fill-v mxa" alt="" decoding="async" /> </div> </div> </a> </div> <div class='card__content '> <div class='mb1 pb025 mt0 h6t card__kicker'> <a class="kicker theme__accent theme__text-hover uppercase" href="/tag/natural-language-processing/">natural language processing</a> </div> <a href='https://www.quantamagazine.org/debate-may-help-ai-models-converge-on-truth-20241108/' data-toggle-hover='card'> <h3 class='card__title noe mv0 theme__accent-hover transition--color h2t'> Debate May Help AI Models Converge on Truth </h3> </a> <div class='card__meta mb0 mt025 flex flex-items-center flex-wrap'> <div class='byline relative flex flex-items-start merriweather mv025 mr1 gray3 h6t theme__text-hover'> <em class='byline__by gray4 mr075'>By </em> <a href='https://www.quantamagazine.org/authors/stephen-ornes/'> <span class='byline__author uppercase kern light small'>Stephen Ornes</span> </a> </div> <span class='o-divider o-divider--vertical mr1 relative h6'></span> <div class='card-date h6 flex flex-items-center mv05'> <div class='uppercase mr1 kern small gray3'>November 8, 2024</div> <span class='o-divider o-divider--vertical mr1 relative'></span> </div> <div class='card__actions h6 flex flex-items-center mv05'> <div class='comments-button mr05 flex flex-items-center theme__accent-hover ' data-name='comment-bubble' > <a href='https://www.quantamagazine.org/debate-may-help-ai-models-converge-on-truth-20241108/#comments' class='flex flex-items-center pangram'> <svg viewbox='0 0 50 50' enable-background='new 0 0 50 50' xmlns='http://www.w3.org/2000/svg' class='o2'><title>Comment</title><path fill='currentColor' d='M9.4 4.2h31.2c8.6 0 9.4 7 9.4 15.6s-.7 15.6-9.4 15.6h-2.2l-.9 9.4-18.8-9.4H9.4c-8.6 0-9.4-7-9.4-15.6S.7 4.2 9.4 4.2z'></path></svg> <div> <span class='comments-button__count ml075 small mbold disqus-comment-count' data-disqus-identifier='143883 https://www.quantamagazine.org/?p=143883'></span> </div> </a> </div> <span class='o-divider mh075 relative'></span> <div class='relative'> <button class='bookmark-button mh05 flex flex-items-center theme__accent-hover ' data-toggle-hover='tooltip' data-id='143883' data-active-class='' aria-expanded='false'> <svg class="icon" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Save Article</title><path fill="currentColor" d="M2.1 0h45.8v50L25.5 37.5 2.1 50V0z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement w-32 ml-n16 -top-10'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow -bottom-3'></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern--w mx025'> <span class='small no-wrap'>Read Later</span> </div> </div> </div> </div> </div> </div> </div> <div class='card__excerpt h5 pangram o6 mb4 mt025'> </div> </div> </div> </div> <div class='post__category__card grid-item'> <div class='card clearfix mv05 pv1 is-grid-variant'> <div class='card__image mr1 mb1' data-toggle-hover='card'> <a href='https://www.quantamagazine.org/computer-scientists-establish-the-best-way-to-traverse-a-graph-20241025/' class='relative'> <span class='screen-reader-text'>Computer Scientists Establish the Best Way to Traverse a Graph</span> <div class='image mx0 relative image--standard'> <div class='image__inner absolute fit-x is-loaded'> <img width="520" height="292" src="https://www.quantamagazine.org/wp-content/uploads/2024/10/DijkstraOptimality_crDaveWhyte-Default.webp" class="absolute fit-x fill-h fill-v mxa" alt="A line creating an optimal path through an array of dots" decoding="async" /> </div> </div> </a> </div> <div class='card__content '> <div class='mb1 pb025 mt0 h6t card__kicker'> <a class="kicker theme__accent theme__text-hover uppercase" href="/tag/algorithms/">algorithms</a> </div> <a href='https://www.quantamagazine.org/computer-scientists-establish-the-best-way-to-traverse-a-graph-20241025/' data-toggle-hover='card'> <h3 class='card__title noe mv0 theme__accent-hover transition--color h2t'> Computer Scientists Establish the Best Way to Traverse a Graph </h3> </a> <div class='card__meta mb0 mt025 flex flex-items-center flex-wrap'> <div class='byline relative flex flex-items-start merriweather mv025 mr1 gray3 h6t theme__text-hover'> <em class='byline__by gray4 mr075'>By </em> <a href='https://www.quantamagazine.org/authors/brubaker_ben/'> <span class='byline__author uppercase kern light small'>Ben Brubaker</span> </a> </div> <span class='o-divider o-divider--vertical mr1 relative h6'></span> <div class='card-date h6 flex flex-items-center mv05'> <div class='uppercase mr1 kern small gray3'>October 25, 2024</div> <span class='o-divider o-divider--vertical mr1 relative'></span> </div> <div class='card__actions h6 flex flex-items-center mv05'> <div class='comments-button mr05 flex flex-items-center theme__accent-hover ' data-name='comment-bubble' > <a href='https://www.quantamagazine.org/computer-scientists-establish-the-best-way-to-traverse-a-graph-20241025/#comments' class='flex flex-items-center pangram'> <svg viewbox='0 0 50 50' enable-background='new 0 0 50 50' xmlns='http://www.w3.org/2000/svg' class='o2'><title>Comment</title><path fill='currentColor' d='M9.4 4.2h31.2c8.6 0 9.4 7 9.4 15.6s-.7 15.6-9.4 15.6h-2.2l-.9 9.4-18.8-9.4H9.4c-8.6 0-9.4-7-9.4-15.6S.7 4.2 9.4 4.2z'></path></svg> <div> <span class='comments-button__count ml075 small mbold disqus-comment-count' data-disqus-identifier='142781 https://www.quantamagazine.org/?p=142781'></span> </div> </a> </div> <span class='o-divider mh075 relative'></span> <div class='relative'> <button class='bookmark-button mh05 flex flex-items-center theme__accent-hover ' data-toggle-hover='tooltip' data-id='142781' data-active-class='' aria-expanded='false'> <svg class="icon" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Save Article</title><path fill="currentColor" d="M2.1 0h45.8v50L25.5 37.5 2.1 50V0z"></path></svg> </button> <div class='q-tooltip hidden force-mobile-placement w-32 ml-n16 -top-10'> <div class='q-tooltip-content'> <div class='q-tooltip-arrow -bottom-3'></div> <div class='q-tooltip-inner py-1 pl-1' role='tooltip'> <div class='h6t relative z1 uppercase kern--w mx025'> <span class='small no-wrap'>Read Later</span> </div> </div> </div> </div> </div> </div> </div> <div class='card__excerpt h5 pangram o6 mb4 mt025'> </div> </div> </div> </div> </div> </div> </section> <section class='outer comments relative fill-h bg-gray1 pt2 outer--content' data-function='toggle' data-name='show-comments' id='comments'> <h2 class='h1 noe pb025 align-c mt1'>Comment on this article</h2> <div class='mha container--s'> <div class='comments__inner bg-white mha p ph1 pt2 pb1 mb1'> <div class='mha container--xs'> <div class='comments__disclaimer scale5 o6 italic align-l mv1 pb1'> <p class="byline"><small><em>Quanta Magazine moderates comments to facilitate an informed, substantive, civil conversation. Abusive, profane, self-promotional, misleading, incoherent or off-topic comments will be rejected. Moderators are staffed during regular business hours (New York time) and can only accept comments written in English. </em></small></p> </div> <div> <div id='disqus_thread'> </div> </div> </div> </div> </div> <div class='comments__expand absolute align-c fit-b fit-l fit-r flex flex-items-center flex-justify-center' data-function='trigger' data-name='show-comments'> <button class='link--underline orange hover--black pangram bold inline-block'>Show comments</button> </div> </section> <div class='next-post block relative fill-h pparallax' style='background-image: url(https://www.quantamagazine.org/wp-content/uploads/2024/11/TheComet_crChristianStangl-HP-1-768x325.webp);'> <div class='next-post__image-wrapper absolute z0 fit-r fit-l fit-t' data-name='next-post__image-wrapper'> <div class='image mx0 relative image--wide '> <div class='image__inner absolute fit-x is-loaded'> <img width="1720" height="729" src="https://www.quantamagazine.org/wp-content/uploads/2024/11/TheComet_crChristianStangl-HP-1-1720x729.webp" class="absolute fit-x fill-h fill-v mxa" alt="Black-and-white photo of a comet tumbling through space." decoding="async" srcset="https://www.quantamagazine.org/wp-content/uploads/2024/11/TheComet_crChristianStangl-HP-1-1720x729.webp 1720w, https://www.quantamagazine.org/wp-content/uploads/2024/11/TheComet_crChristianStangl-HP-1-520x220.webp 520w, https://www.quantamagazine.org/wp-content/uploads/2024/11/TheComet_crChristianStangl-HP-1-768x325.webp 768w, https://www.quantamagazine.org/wp-content/uploads/2024/11/TheComet_crChristianStangl-HP-1-1536x651.webp 1536w, https://www.quantamagazine.org/wp-content/uploads/2024/11/TheComet_crChristianStangl-HP-1-2048x868.webp 2048w" sizes="(max-width: 1720px) 100vw, 1720px" /> </div> </div> </div> <div class='overlay bg-black o4 absolute fit-x'></div> <section class='outer outer--content'> <div class='next-post__content relative z1 fit-x align-c pb12 pt10'> <h2 class='h6 uppercase kern mb1 mv0 inline-block white'>Next article</h2> <div class='h1 mt05 mb0 noe mha white container--xss'>The Cosmos Teems with Complex Organic Molecules</div> </div> </section> <a class='absolute fit-x z10' href='/the-cosmos-teems-with-complex-organic-molecules-20241113/'></a> </div> </div> </main> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script type='text/javascript'> let ga4Array = '{"kicker":"cryptography","author":"John Pavlus","category":["Computer Science"]}'; </script> <footer class='footer '> <section class='outer footer__outer'> <div class='relative z0 fill-v mha container--m'> <section class='outer footer__section footer__section--top flex flex-column flex-items-center flex-justify-between outer--content'> <div class='flex flex-justify-center'> <a href='/' class='footer__logo block'> <svg x="0px" y="0px" viewbox="0 0 353.5 49.5" enable-background="new 0 0 353.5 49.5" class='inline-block'> <title>Quanta Homepage</title> <g id="logo"> <path id="logo__mark" class='transition--color text-1a1a1a' fill="currentColor" d="M28.4,5.9c1,0,1.9-0.8,1.9-1.9c0-1-0.8-1.9-1.9-1.9c-1,0-1.9,0.8-1.9,1.9C26.5,5.1,27.3,5.9,28.4,5.9z M28.4,43.6c-1,0-1.9,0.8-1.9,1.9c0,1,0.8,1.9,1.9,1.9c1,0,1.9-0.8,1.9-1.9C30.3,44.5,29.4,43.6,28.4,43.6z M10.9,33.3 c-0.5-0.1-1-0.1-1.4,0.2c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.5-0.1,1,0.2,1.4c0.4,0.6,1,0.9,1.6,0.9c0.3,0,0.6-0.1,0.9-0.3 c0.4-0.3,0.8-0.7,0.9-1.1c0.1-0.5,0.1-1-0.2-1.4C11.8,33.7,11.4,33.4,10.9,33.3z M46.8,12.6c-0.5-0.1-1-0.1-1.4,0.2 c-0.9,0.5-1.2,1.7-0.7,2.6c0.3,0.4,0.7,0.7,1.1,0.9c0.2,0,0.3,0.1,0.5,0.1c0.3,0,0.6-0.1,0.9-0.3c0.4-0.3,0.8-0.7,0.9-1.1 c0.1-0.5,0.1-1-0.2-1.4C47.7,13,47.3,12.7,46.8,12.6z M47.3,33.5c-0.4-0.3-0.9-0.3-1.4-0.2c-0.3,0.1-0.6,0.3-0.8,0.5l-3.4-2 c0.2-0.5,0.2-1,0.1-1.5c-0.2-0.7-0.6-1.2-1.2-1.6c-1.3-0.7-2.9-0.3-3.6,1c-0.4,0.6-0.4,1.3-0.3,2c0,0.1,0,0.1,0.1,0.2l-6.3,3.6 c-0.5-0.6-1.2-0.9-2-0.9c-0.8,0-1.5,0.4-2,0.9l-6.3-3.6c0-0.1,0-0.1,0.1-0.2c0.2-0.7,0.1-1.4-0.3-2c-0.4-0.6-0.9-1-1.6-1.2 c-0.1,0-0.1,0-0.2,0v-7.3c0.1,0,0.1,0,0.2,0c0.7-0.2,1.2-0.6,1.6-1.2c0.4-0.6,0.4-1.3,0.3-2c0-0.1,0-0.1-0.1-0.2l6.3-3.6 c0.5,0.6,1.2,0.9,2,0.9c1.5,0,2.6-1.2,2.6-2.6s-1.2-2.6-2.6-2.6s-2.6,1.2-2.6,2.6c0,0.3,0.1,0.6,0.2,0.9l-6.3,3.6 c-0.2-0.2-0.4-0.4-0.7-0.6c-0.6-0.4-1.3-0.4-2-0.3c-0.7,0.2-1.2,0.6-1.6,1.2c-0.7,1.3-0.3,2.9,1,3.6l0,0c0.3,0.1,0.5,0.2,0.8,0.3 v7.3c-0.3,0.1-0.6,0.1-0.8,0.3c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2c0.4,0.6,0.9,1,1.6,1.2c0.2,0.1,0.5,0.1,0.7,0.1 c0.5,0,0.9-0.1,1.3-0.4c0.3-0.1,0.5-0.3,0.7-0.6l6.3,3.6c-0.1,0.3-0.2,0.6-0.2,0.9c0,1.5,1.2,2.6,2.6,2.6s2.6-1.2,2.6-2.6 c0-0.3-0.1-0.6-0.2-0.9l6.3-3.6c0.2,0.2,0.4,0.4,0.7,0.6l0,0c0.4,0.2,0.9,0.4,1.3,0.4c0.7,0,1.5-0.3,2-0.9l3.4,2 c-0.1,0.3-0.1,0.6,0,1c0.1,0.5,0.4,0.9,0.9,1.1c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1c0.5-0.1,0.9-0.4,1.1-0.9 c0.3-0.4,0.3-0.9,0.2-1.4C48,34.2,47.7,33.7,47.3,33.5z M9.5,16c0.3,0.2,0.6,0.3,0.9,0.3c0.2,0,0.3,0,0.5-0.1 c0.5-0.1,0.9-0.4,1.1-0.9c0.5-0.9,0.2-2.1-0.7-2.6c-0.9-0.5-2.1-0.2-2.6,0.7c-0.3,0.4-0.3,0.9-0.2,1.4C8.7,15.4,9,15.8,9.5,16z M15.7,2.8c0.7-0.4,0.9-1.3,0.5-2c-0.4-0.7-1.3-0.9-2-0.5c-0.7,0.4-0.9,1.3-0.5,2C14.1,2.9,15,3.2,15.7,2.8z M41.1,46.8 c-0.7,0.4-0.9,1.3-0.5,2c0.4,0.7,1.3,0.9,2,0.5c0.7-0.4,0.9-1.3,0.5-2C42.7,46.6,41.8,46.4,41.1,46.8z M15.7,46.8 c-0.7-0.4-1.6-0.2-2,0.5c-0.4,0.7-0.2,1.6,0.5,2c0.7,0.4,1.6,0.2,2-0.5C16.6,48.1,16.4,47.2,15.7,46.8z M41.1,2.8 c0.7,0.4,1.6,0.2,2-0.5c0.4-0.7,0.2-1.6-0.5-2c-0.7-0.4-1.6-0.2-2,0.5C40.1,1.4,40.4,2.3,41.1,2.8z M55.3,23.3 c-0.8,0-1.5,0.7-1.5,1.5c0,0.8,0.7,1.5,1.5,1.5c0.8,0,1.5-0.7,1.5-1.5C56.7,24,56.1,23.3,55.3,23.3z M1.5,23.3C0.7,23.3,0,24,0,24.8 c0,0.8,0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5C2.9,24,2.3,23.3,1.5,23.3z M39.1,21.2c0.4,0,0.9-0.1,1.3-0.4c1.3-0.7,1.7-2.3,1-3.6 c-0.7-1.3-2.3-1.7-3.6-1l0,0c-0.6,0.4-1,0.9-1.2,1.6c-0.2,0.7-0.1,1.4,0.3,2C37.3,20.7,38.2,21.2,39.1,21.2z"></path> <path id="logo__quanta" class='transition--color text-1a1a1a' fill="currentColor" d="M309.9,14c0,1.1-0.9,1.8-2,1.8c-0.9,0-1.8-0.7-1.8-1.8c0-1.2,0.8-2,1.9-2C309.2,12,309.9,12.8,309.9,14z M85.5,28.7c0.6-1.3,0.8-2.6,0.8-4.2c0-2.9-1-5.2-2.9-7.1c-1.9-1.9-4.2-2.8-7-2.8s-5.1,0.9-7,2.8c-1.9,1.9-2.9,4.2-2.9,7.1 c0,2.9,1,5.2,2.9,7.1c1.9,1.9,4.2,2.8,7,2.8c2.7,0,4.9-0.9,6.8-2.6l2.6,1.7l2.2-3.3L85.5,28.7z M82.1,26.5L79.8,25l-2.2,3.3l2.3,1.5 c-1,0.7-2.1,1.1-3.5,1.1c-1.8,0-3.2-0.6-4.3-1.7c-1.1-1.2-1.6-2.7-1.6-4.6c0-1.9,0.5-3.4,1.6-4.6c1.1-1.2,2.5-1.7,4.3-1.7 c1.8,0,3.2,0.6,4.3,1.7c1.1,1.1,1.6,2.7,1.6,4.6C82.3,25.2,82.2,25.9,82.1,26.5z M103.2,27.3c0,1.2-0.3,2.1-0.9,2.8 c-0.6,0.6-1.5,1-2.5,1s-1.9-0.3-2.5-1c-0.6-0.6-0.9-1.6-0.9-2.8v-8.5h-3.9v9c0,2,0.6,3.7,1.7,4.8c1.1,1.2,2.5,1.7,4.3,1.7 c2.2,0,3.6-0.4,4.8-1.7v1.5h3.9V18.9h-3.9V27.3z M144.3,18.9c-2.2,0-3.6,0.4-4.8,1.7v-1.5h-3.9v15.4h3.9V26c0-1.2,0.3-2.1,0.9-2.8 c0.6-0.6,1.5-1,2.5-1c1.1,0,1.9,0.3,2.5,1c0.6,0.6,0.9,1.6,0.9,2.8v8.5h3.9v-9c0-2-0.6-3.7-1.7-4.8C147.4,19.5,146,18.9,144.3,18.9z M124.8,18.9v1.5c-0.8-0.8-2.7-1.7-4.8-1.7c-2.1,0-3.8,0.7-5.2,2.2c-1.4,1.5-2.1,3.4-2.1,5.7c0,2.3,0.7,4.2,2.1,5.7 c1.4,1.5,3.1,2.2,5.2,2.2c1.3,0,3-0.2,4.8-1.6v1.4h3.9V18.9H124.8z M123.6,29.9c-0.8,0.8-1.8,1.2-2.8,1.2c-1.1,0-2-0.4-2.8-1.2 c-0.8-0.8-1.2-1.9-1.2-3.3c0-1.4,0.4-2.5,1.2-3.3c0.8-0.8,1.8-1.2,2.8-1.2c1.1,0,2,0.4,2.9,1.2c0.8,0.8,1.2,1.9,1.2,3.3 C124.8,28,124.4,29.1,123.6,29.9z M180.1,18.9v1.5c-0.8-0.8-2.7-1.7-4.8-1.7c-2.1,0-3.8,0.7-5.2,2.2c-1.4,1.5-2.1,3.4-2.1,5.7 c0,2.3,0.7,4.2,2.1,5.7c1.4,1.5,3.1,2.2,5.2,2.2c1.3,0,3-0.2,4.8-1.6v1.4h3.9V18.9H180.1z M178.9,29.9c-0.8,0.8-1.8,1.2-2.8,1.2 c-1.1,0-2-0.4-2.8-1.2c-0.8-0.8-1.2-1.9-1.2-3.3c0-1.4,0.4-2.5,1.2-3.3C174,22.4,175,22,176,22c1.1,0,2,0.4,2.9,1.2 c0.8,0.8,1.2,1.9,1.2,3.3C180.1,28,179.7,29.1,178.9,29.9z M161.4,31c-1.1,0-1.9-0.7-1.9-2.1v-6.4h4.1v-3.2h-4.1v-4h-3.7v4v3.2v6.4 c0,3.7,2.1,5.5,5.3,5.4c1.1,0,2-0.2,3-0.6l-1-3.1C162.6,30.9,161.9,31,161.4,31z"></path> <path id="logo__magazine" class='transition--color text-999999' fill="currentColor" d="M218.3,33.5l-0.1,1c-1.1,0-2.4-0.1-3.9-0.1c-1.5,0-2.7,0.1-3.6,0.1v-1c1.6-0.1,2-0.3,2-0.9 c0.1-0.8,0.1-2.4,0.1-5.1c0-4.4,0-4.9-0.3-5.4c-0.4-0.9-1.2-1.4-2.4-1.4c-1.6,0-3,1-3.7,2.3c-0.2,0.5-0.4,0.9-0.4,1.5v4.7 c0,1.3,0,2.6,0.1,3.4c0,0.7,0.4,0.9,2.2,0.9l-0.1,1c-0.9,0-2.5-0.1-3.9-0.1c-1.4,0-2.6,0.1-3.5,0.1v-1c1.6-0.1,2-0.2,2-1 c0.1-1.1,0.1-2.2,0.1-4.4v-2.8c0-2.4,0-2.8-0.2-3.3c-0.4-0.9-1.1-1.3-2.3-1.3c-1.5,0-3,0.9-3.8,2.4c-0.3,0.6-0.4,0.9-0.4,1.7v4.6 c0,1.4,0,2.5,0.1,3.3c0.1,0.7,0.4,0.8,2.1,0.9l-0.1,0.9c-0.8,0-2.5-0.1-3.8-0.1c-1.3,0-2.6,0.1-3.7,0.1v-1c1.8,0,2.1-0.2,2.1-1 c0-0.9,0.1-2.3,0.1-4.2v-2.9c0-1.9,0-3.4-0.1-4.3c0-0.5-0.3-0.6-2.2-0.6l0.1-0.9c1.7,0,3.6-0.2,5.2-0.5c0.1,0.6,0.2,2.2,0.2,2.7 c1.3-1.3,3.2-2.9,5.7-2.9c2,0,2.9,0.8,3.4,1.5c0.3,0.4,0.5,0.9,0.6,1.3c1.2-1.2,3-2.8,5.7-2.8c2.1,0,3.3,1.1,3.8,2 c0.4,0.7,0.5,1.5,0.5,2.3v9.4C216,33.3,216.2,33.4,218.3,33.5z M238.4,31l0.9,0.4c-0.5,2.5-1.9,3.4-3.5,3.4c-1.8,0-2.5-1.1-2.7-2.6 c-1.5,1.7-3.4,2.6-5,2.6c-2.7,0-4.3-1.9-4.3-4.3c0-1.4,0.6-2.6,2-3.2c2.4-1,6-2.1,7.4-3.1v-1.4c0-1.5-0.7-3-2.7-3 c-2.1,0-3,1.1-3,2.5c0,0.4,0.1,0.8,0.1,1.1c0.1,0.3-0.1,0.6-0.3,0.7c-0.3,0.2-0.7,0.4-1.2,0.4c-0.8,0-1.5-0.4-1.5-1.6 c0-1.8,2.6-4.1,6.4-4.1c3,0,4.3,1.3,4.7,2c0.3,0.5,0.5,1.2,0.5,1.8v8.9c0,1.3,0.4,1.5,0.8,1.5C237.5,33.1,238,32.4,238.4,31z M233,25.3c-1,0.5-2.8,1.3-4.1,2c-1.1,0.6-1.8,1.1-1.8,2.7c0,1.7,0.9,3,2.5,3c1.7,0,2.7-1,3.3-2.3c0.1-0.4,0.2-1,0.2-1.5V25.3z M255.8,27.1c-1.3,0-2.8-0.1-3.7-0.1l0,0.9l1.5,0.1c1.2,0.1,1.4,0.3,1.4,1.3c0,1,0,2.4-0.1,3.2c-0.1,0.8-1.1,1.3-2.5,1.3 c-1.5,0-2.8-0.5-3.8-1.8c-0.9-1.1-1.3-3.1-1.3-5.1c0-2.2,0.5-3.9,1.4-5.1c0.8-1.2,2-1.8,3.5-1.8c2.6,0,4.1,1.7,4.4,5l0.9,0 c-0.1-2.1,0.2-4.8,0.4-5.7l-0.8-0.3l-0.5,1.3c-0.5-0.5-1.8-1.4-4.3-1.4c-1.6,0-3,0.3-4.2,1c-2.4,1.3-3.8,3.9-3.8,7 c0,2.4,0.6,4.2,1.7,5.5c1.2,1.5,3.2,2.3,6.1,2.3c1.2,0,2.5-0.3,3.6-0.6c1-0.3,1.8-0.6,2.4-0.7c-0.1-0.5-0.2-1.3-0.2-2.5 c0-0.7,0-1.7,0.1-2.3c0-0.5,0.3-0.6,1.5-0.8l0-0.9C258.4,27.1,257.1,27.1,255.8,27.1z M279.4,31l0.9,0.4c-0.5,2.5-1.9,3.4-3.5,3.4 c-1.8,0-2.5-1.1-2.7-2.6c-1.5,1.7-3.4,2.6-5,2.6c-2.7,0-4.3-1.9-4.3-4.3c0-1.4,0.6-2.6,2-3.2c2.4-1,6-2.1,7.4-3.1v-1.4 c0-1.5-0.7-3-2.7-3c-2.1,0-3,1.1-3,2.5c0,0.4,0.1,0.8,0.1,1.1c0.1,0.3-0.1,0.6-0.3,0.7c-0.3,0.2-0.7,0.4-1.2,0.4 c-0.8,0-1.5-0.4-1.5-1.6c0-1.8,2.6-4.1,6.4-4.1c3,0,4.3,1.3,4.7,2c0.3,0.5,0.5,1.2,0.5,1.8v8.9c0,1.3,0.4,1.5,0.8,1.5 C278.5,33.1,279,32.4,279.4,31z M274,25.3c-1,0.5-2.8,1.3-4.1,2c-1.1,0.6-1.8,1.1-1.8,2.7c0,1.7,0.9,3,2.5,3c1.7,0,2.7-1,3.3-2.3 c0.1-0.4,0.2-1,0.2-1.5V25.3z M295.1,33c-1,0.2-2.8,0.3-5.6,0.3c1.8-2.8,7.1-10.8,7.9-12c0.4-0.7,0.8-1.4,0.9-2.1 c-1.4,0-2.6,0.1-5.3,0.1h-3c-2,0-3.2-0.1-3.8-0.4c0,2.1-0.2,4.4-0.4,5.8l0.9-0.2c0.2-0.8,0.4-1.7,0.7-2.6c0.4-1.1,0.9-1.4,2.4-1.5 c1.4-0.1,2.9-0.1,4.4-0.1c-0.9,1.8-5.2,8.8-9,13.4l0.4,0.7c0.6,0,1.7-0.1,3.7-0.1c3.8,0,7.8,0.1,9.1,0.2c0.1-1.6,0.4-4.3,0.6-5.8 l-0.9-0.2C297.3,32,296.5,32.9,295.1,33z M309.9,32.5c0-0.7-0.1-1.9-0.1-4.1v-4.1c0-2.6,0.1-4.6,0.1-5.4c-1.6,0.4-3.9,0.5-5.6,0.6 l0,0.9c1.9-0.1,2.2,0,2.2,0.5c0,0.5,0.1,1.7,0.1,3.6v3.9c0,2-0.1,3.5-0.1,4.1c0,0.6-0.3,0.9-2.4,1l0,1c1.1,0,2.1-0.1,3.8-0.1 c1.7,0,3,0.1,4,0.1l0-1C310.3,33.4,309.9,33.3,309.9,32.5z M332.9,32.5v-9.3c0-0.8-0.1-1.6-0.5-2.2c-0.5-1.1-1.7-2.1-4-2.1 c-2.5,0-4.2,1.5-5.5,2.7c0-0.5-0.1-1.9-0.2-2.6c-1.6,0.3-3.4,0.5-5.1,0.5l-0.1,0.9c1.8,0,2.1,0.1,2.1,0.6c0.1,0.9,0.1,2.4,0.1,4.3 v3.1c0,1.7-0.1,3-0.1,4c0,0.8-0.3,0.9-2.1,1v1c1,0,2.2-0.1,3.7-0.1c1.3,0,3,0.1,3.9,0.1l0.1-1c-1.8-0.1-2.1-0.2-2.1-0.9 c-0.1-0.8-0.1-2.2-0.1-3.7v-4.1c0-0.8,0.1-1.3,0.4-1.8c0.8-1.4,2.1-2.2,3.8-2.2c1.2,0,1.9,0.5,2.4,1.3c0.3,0.6,0.4,1,0.4,5.4 c0,2.8-0.1,4.4-0.1,5.1c-0.1,0.7-0.4,0.8-2,0.9l0,1c0.8,0,2-0.1,3.6-0.1c1.5,0,2.8,0.1,3.9,0.1l0.1-1 C333.1,33.4,332.9,33.3,332.9,32.5z M352.5,29.8l0.9,0.5c-1.1,3.2-3.3,4.5-6.3,4.5c-2.7,0-4.4-0.8-5.6-2.4c-0.9-1.2-1.5-3.2-1.5-5.3 c0-4.4,2.5-8.3,7.4-8.3c5.1,0,6,4,6,6.1c0,0.7-0.2,1.2-0.7,1.4c-0.6,0.2-2.3,0.4-4.6,0.5c-1.2,0-3.1,0-4.6,0 c-0.1,1.9,0.4,3.6,1.1,4.6c0.8,1.2,1.9,1.8,3.5,1.8C350.3,33.2,351.6,32.2,352.5,29.8z M343.6,25.7h2.9c1.7,0,2.6-0.1,3.1-0.2 c0.5-0.1,0.7-0.5,0.7-1.2c0-1.9-0.8-4.4-3.1-4.4C344.8,19.9,343.7,22.8,343.6,25.7z"></path> </g></svg> </a> </div> <div class='footer__social flex flex-justify-center scale0'> <div class='social-links flex flex-justify-between flex-items-center social-links--footer'> <a href='https://www.facebook.com/QuantaNews' target="_blank" class='social-links__link flex flex-items-center relative facebook mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg class="absolute fit-x mxa " viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path fill="currentColor" d="M13 16.5h5.1v-5c-.2-2.7.3-5.4 1.7-7.7 1.8-2.5 4.9-4 8-3.8 3.1-.1 6.2.2 9.2 1l-1.3 7.7C34.4 8.3 33 8 31.6 8c-2 0-3.8.7-3.8 2.7v5.9H36l-.6 7.5h-7.6V50h-9.6V23.9H13v-7.4z"></path></svg></div> </a> <a href='https://twitter.com/QuantaMagazine' target="_blank" class='social-links__link flex flex-items-center relative twitter mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg class="absolute fit-x mxa " viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>X Twitter</title><path fill="currentColor" d="M50 9.9c-1.9.8-3.8 1.3-5.9 1.6 2.1-1.3 3.7-3.2 4.5-5.6-2 1.2-4.2 2-6.5 2.5-3.8-4.1-10.3-4.5-14.5-.8-2.8 2.5-4 6.3-3.1 10-8.2-.5-15.8-4.3-21-10.6-2.7 4.6-1.3 10.5 3.2 13.5C5 20.4 3.4 20 2 19.2c0 4.8 3.4 8.9 8.2 9.9-.9.2-1.8.4-2.7.3-.6 0-1.3-.1-1.9-.2 1.3 4.1 5.2 6.9 9.5 7C10.8 39.5 5.4 41 0 40.4c13.5 8.5 31.5 4.6 40.2-8.7 3-4.6 4.6-10 4.6-15.5v-1.3c2-1.3 3.7-3.1 5.2-5"></path></svg></div> </a> <a href='https://www.youtube.com/c/QuantaScienceChannel' target="_blank" class='social-links__link flex flex-items-center relative youtube mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" class="c-1a1a1a absolute fit-x mxa " viewBox="0 0 50 50" enable-background="new 0 0 50 50" width="50" height="50" > <title>Youtube</title> <path fill="currentColor" d="M18.7 33.7V16.1l15.7 8.8-15.7 8.8zM43.3 8.2c-12.2-.9-24.4-.9-36.6 0-1.8.2-3.4 1.2-4.3 2.8C1.3 12.5.6 14.3.3 16.2c-.5 5.9-.5 11.8 0 17.7.2 1.9.9 3.7 2.1 5.2 1 1.5 2.5 2.6 4.3 2.9 12.2.8 24.4.8 36.6 0 1.8-.4 3.3-1.5 4.3-3 1.1-1.5 1.8-3.3 2.1-5.1.5-6 .5-12.1 0-18.1-.2-1.8-.8-3.6-1.9-5.1-1-1.6-2.7-2.5-4.5-2.5z"></path></svg></div> </a> <a href='https://instagram.com/quantamag' target="_blank" class='social-links__link flex flex-items-center relative instagram mh05 theme__accent theme__text-hover transition--color'> <div class='icon-button inline-block relative pointer '> <div class='absolute fit-x mxa '> </div> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" class="c-1a1a1a absolute fit-x mxa " viewBox="0 0 50 50" enable-background="new 0 0 50 50" width="50" height="50" > <title>Instagram</title> <path fill="currentColor" d="M33.4 0H16.6C7.5 0 0 7.5 0 16.6v16.8C0 42.5 7.5 50 16.6 50h16.8C42.5 50 50 42.5 50 33.4V16.6C50 7.5 42.5 0 33.4 0zM25 36.6c-6.4 0-11.6-5.2-11.6-11.6S18.6 13.4 25 13.4 36.6 18.6 36.6 25 31.4 36.6 25 36.6zm15.1-23.2c-1.8 0-3.2-1.4-3.2-3.2S38.3 7 40.1 7s3.2 1.4 3.2 3.2c0 1.7-1.5 3.2-3.2 3.2z"></path></svg></div> </a> </div> </div> </section> <section class='outer footer__section footer__section--bottom flex flex-wrap flex-justify-center flex-items-center pt2 outer--content'> <nav class='footer__nav fill-h'> <ul class='footer__list flex flex-column flex-items-center flex-justify-center gray3'> <li class='footer__list-item mb1'> <a href='https://www.quantamagazine.org/about/' class='footer__link h5 pangram gray3 flex flex-items-center relative mh05 ph025 light'> <span>About Quanta</span> </a> </li> <li class='footer__list-item mb1'> <a href='/archive' class='footer__link h5 pangram gray3 flex flex-items-center relative mh05 ph025 light'> <span>Archive</span> </a> </li> <li class='footer__list-item mb1'> <a href='https://www.quantamagazine.org/contact-us/' class='footer__link h5 pangram gray3 flex flex-items-center relative mh05 ph025 light'> <span>Contact Us</span> </a> </li> <li class='footer__list-item mb1'> <a href='https://www.quantamagazine.org/terms-conditions/' class='footer__link h5 pangram gray3 flex flex-items-center relative mh05 ph025 light'> <span>Terms &#038; Conditions</span> </a> </li> <li class='footer__list-item mb1'> <a href='https://www.quantamagazine.org/privacy-policy/' class='footer__link h5 pangram gray3 flex flex-items-center relative mh05 ph025 light'> <span>Privacy Policy</span> </a> </li> </ul> </nav> </section> <hr class='footer__section-divider hide gray2'> <section class='outer footer__section outer--content pt125--s pt0875--slmax pb2813 ph25--mmax flex flex-items-center flex-justify-between flex-column--smax outer--content'> <div class='flex flex-justify-center'> <div class='footer__copyright flex-shrink h5 pangram gray3 light'> <small>All Rights Reserved © 2024</small> </div> </div> <div class='footer__support flex g093 flex-justify-center gray3'> <em class='footer__text scale6'>An editorially independent publication supported by the Simons Foundation.</em> <a href='https://www.simonsfoundation.org'> <span class='screen-reader-text'>Simons Foundation</span> <svg width="78" height="22" viewBox="0 0 71 20" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0_53_3732)"> <path d="M1.00378 19.9386V16.7742H3.17876V17.1368H1.43878V18.1867H2.80901V18.546H1.43878V19.9369L1.00378 19.9386Z"/> <path d="M9.38237 19.9999C8.44881 19.9999 7.79297 19.3375 7.79297 18.3573C7.79297 17.377 8.44881 16.7146 9.38237 16.7146C10.3159 16.7146 10.9701 17.377 10.9701 18.3573C10.9701 19.3375 10.3109 19.9999 9.38237 19.9999ZM9.38237 17.0855C8.6914 17.0855 8.24469 17.5823 8.24469 18.3573C8.24469 19.1322 8.6914 19.6273 9.38237 19.6273C10.0733 19.6273 10.5134 19.1306 10.5134 18.3573C10.5134 17.5839 10.0717 17.0855 9.38237 17.0855Z"/> <path d="M15.864 18.7281V16.7742H16.3007V18.7331C16.3007 19.3359 16.6002 19.6323 17.159 19.6323C17.7178 19.6323 18.0256 19.3359 18.0256 18.7381V16.7742H18.4573V18.7281C18.4573 19.6521 17.8784 19.9999 17.159 19.9999C16.4395 19.9999 15.864 19.6521 15.864 18.7281Z" /> <path d="M25.7048 19.1951V16.7742H26.1164V19.9386H25.765L23.9079 17.3968V19.9386H23.498V16.7742H23.9548L25.7048 19.1951Z"/> <path d="M31.2026 16.7742H32.3587C33.3626 16.7742 33.9983 17.367 33.9983 18.3572C33.9983 19.3474 33.3642 19.9386 32.3587 19.9386H31.2026V16.7742ZM32.3336 19.5892C33.1149 19.5892 33.5416 19.1322 33.5416 18.3638C33.5416 17.5955 33.1149 17.1385 32.3336 17.1385H31.6443V19.5892H32.3336Z" /> <path d="M40.3204 16.7742L41.6589 19.9386H41.1921L40.8056 19.0096H39.3484L38.9736 19.9386H38.5303L39.8353 16.7742H40.3204ZM39.4839 18.6636H40.6551L40.0712 17.2577H40.0511L39.4839 18.6636Z" /> <path d="M47.0532 19.9386V17.1368H45.8904V16.7742H48.671V17.1368H47.4881V19.9386H47.0532Z"/> <path d="M53.9964 16.7742V19.9386H53.5547V16.7742H53.9964Z"/> <path d="M60.5228 19.9999C59.5892 19.9999 58.9333 19.3375 58.9333 18.3573C58.9333 17.377 59.5892 16.7146 60.5228 16.7146C61.4563 16.7146 62.1105 17.377 62.1105 18.3573C62.1105 19.3375 61.4513 19.9999 60.5228 19.9999ZM60.5228 17.0855C59.8318 17.0855 59.3851 17.5823 59.3851 18.3573C59.3851 19.1322 59.8318 19.6273 60.5228 19.6273C61.2137 19.6273 61.6537 19.1306 61.6537 18.3573C61.6537 17.5839 61.2121 17.0855 60.5228 17.0855Z"/> <path d="M69.2531 19.1951V16.7742H69.663V19.9386H69.3133L67.4562 17.3968V19.9386H67.0447V16.7742H67.5014L69.2531 19.1951Z"/> <path d="M2.46789 8.77673C2.57497 10.8567 4.09753 11.7906 5.98149 11.7906C7.65463 11.7906 8.72879 11.1282 8.72879 10.0071C8.72879 8.9887 7.9123 8.60617 6.49682 8.32962L3.9252 7.856C1.82373 7.47347 0.364745 6.32753 0.364745 4.11844C0.364745 1.61459 2.35913 0 5.52138 0C9.05338 0 11.0428 1.80503 11.0913 4.77752L8.62506 4.86198C8.53805 3.04039 7.33674 2.08158 5.49293 2.08158C3.90512 2.08158 3.01166 2.78206 3.01166 3.928C3.01166 4.90504 3.7194 5.25279 4.94247 5.47801L7.43211 5.92347C10.0824 6.41198 11.3272 7.66557 11.3272 9.8316C11.3272 12.4646 9.03163 13.8871 5.98484 13.8871C2.50972 13.8871 0 12.1036 0 8.87609L2.46789 8.77673Z"/> <path d="M15.3578 0.254883V13.632H12.6808V0.254883H15.3578Z"/> <path d="M33.7976 13.632C32.7569 12.8475 31.9133 11.8357 31.3326 10.6756C30.7519 9.51539 30.4498 8.23815 30.4498 6.94342C30.4498 5.64869 30.7519 4.37145 31.3326 3.21128C31.9133 2.0511 32.7569 1.03935 33.7976 0.254883H27.2623L24.4531 9.97884H24.3878L21.428 0.254883H17.2017V13.632H19.6896V3.09987H19.775L23.0794 13.632H25.375L28.6108 3.09987H28.6962V13.632H33.7976Z"/> <path d="M61.8117 8.77779C61.9188 10.858 63.4432 11.792 65.3257 11.792C66.9991 11.792 68.0717 11.1296 68.0717 10.0083C68.0717 8.98978 67.2568 8.6072 65.8411 8.33062L63.2658 7.86357C61.1624 7.48099 59.705 6.33491 59.705 4.12556C59.71 1.61478 61.7046 0 64.8589 0C68.3997 0 70.3943 1.80524 70.4428 4.7781L67.9746 4.86256C67.8893 3.04076 66.6878 2.08183 64.8421 2.08183C63.2541 2.08183 62.3539 2.78239 62.3539 3.92847C62.3539 4.90562 63.0617 5.25342 64.2849 5.47866L66.7615 5.92418C69.4221 6.41275 70.667 7.66649 70.667 9.83278C70.667 12.4661 68.3712 13.8888 65.3241 13.8888C61.8485 13.8888 59.3385 12.1051 59.3385 8.87716L61.8117 8.77779Z"/> <path d="M55.7641 0.254883V9.17345L49.3702 0.254883H44.0958C45.1366 1.03944 45.9803 2.05132 46.5611 3.21163C47.1419 4.37194 47.444 5.64933 47.444 6.94422C47.444 8.23911 47.1419 9.5165 46.5611 10.6768C45.9803 11.8371 45.1366 12.849 44.0958 13.6336H49.1912V4.20489L56.1004 13.6336H58.2456V0.254883H55.7641Z" /> </g></svg> </a> </div> </section> </div> </section> </footer> <section class='modal-portal hidden ' data-function='toggle' data-name='nav-account'> <div class='modal flex login flex-items-start'> <div class='modal__overlay fixed inset-0 z-0'> </div> <div class='modal__content bg-white mha is-open is-visible relative size--large'> <div class='modal__close align-r pt1 pr1 absolute fit-r fit-t z10 transition--color theme__accent theme__text-hover'> <button class='px1' data-function='trigger' data-name='nav-account'> <svg class="icon inline-block" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve"><title>Close</title><path fill="currentColor" d="M29.8,25l19.6,19.6l-4.8,4.8L25,29.8L5.4,49.4l-4.8-4.8L20.2,25L0.6,5.4l4.8-4.8L25,20.2L44.6,0.6l4.8,4.8L29.8,25z"></path></svg> </button> </div> <div class='login-modal' role='dialog' aria-labelledby='login-dialog-title'> <div class='noe h0 align-c mt0 mb1' id='login-dialog-title'>Log in to Quanta</div> <div class='login__error fill-h px2 theme__accent bg-gray1 h5 pangram uppercase kern align-c mb3 medium hidden'></div> <div class='login-modal__inner flex flex-wrap'> <div class='login-modal__left'> <h2 class='bold login-modal__social-title mt0'>Use your social network</h2> <div class='facebook-blue'> <a href='/mechanix?loginSocial=facebook' data-provider='facebook'> <button class='button button--border pangram bold scale5 fill-h flex flex-items-center hover--black'> <svg class="icon mr1 icon-offset" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path fill="currentColor" d="M13 16.5h5.1v-5c-.2-2.7.3-5.4 1.7-7.7 1.8-2.5 4.9-4 8-3.8 3.1-.1 6.2.2 9.2 1l-1.3 7.7C34.4 8.3 33 8 31.6 8c-2 0-3.8.7-3.8 2.7v5.9H36l-.6 7.5h-7.6V50h-9.6V23.9H13v-7.4z"></path></svg> <span>Connect with Facebook</span> </button> </a> </div> <div class='google-red mt1'> <a href='/mechanix?loginSocial=google' data-provider='google'> <button class='button button--border pangram bold scale5 fill-h flex flex-items-center hover--black'> <svg class='icon mr1 icon-offset' x='0px' y='0px' viewBox='0 0 50 50' enable-background='new 0 0 50 50' xml:space='preserve'><path fill='currentColor' d='M28.4,22.9c0.1,0.7,0.2,1.5,0.2,2.4c0,8.3-5.6,14.2-14,14.2C6.5,39.6,0,33.1,0,25c0-8.1,6.5-14.6,14.6-14.6 c3.9,0,7.2,1.4,9.8,3.8l-4,3.8c-1.1-1-3-2.2-5.8-2.2c-5,0-9,4.1-9,9.2c0,5.1,4.1,9.2,9,9.2c5.8,0,7.9-4.1,8.3-6.3h-8.3v-5H28.4z M43.8,22.9l0-6.2l-4.2,0l0,6.2l-6.2,0l0,4.2l6.2,0l0,6.2l4.2,0l0-6.2l6.2,0l0-4.2L43.8,22.9z'></path></svg> <span>Connect with Google</span> </button> </a> </div> </div> <div class='login-modal__center'> <span class='login-modal__center__or gray2 italic mbold'>or</span> </div> <div class='login-modal__right'> <form class='login-form'> <div class='input-container'> <input type='email' name='login_email' id='login_email' value='' class='' autocomplete='off' required> <label for='login_email' data-label='email'>email</label> </div> <div class='input-container'> <input type='password' name='login_password' id='login_password' value='' class='' required> <label for='login_password' data-label='password'>password</label> </div> <div class='checkbox-container'> <input type='checkbox' value='login_remember' id='login_remember' name='login_remember' readonly checked> <i class='psuedo-checkbox'></i> <label for='login_remember'>Remember me</label> </div> <div class='login-modal__submit'> <input type='submit' class='button login__submit orange mr1' value='Log in' disabled> <p class='theme__accent link scale5 pangram inline medium color-transition hover--black' data-function='trigger' data-name='forgot-password'> <span class='no-wrap' aria-haspopup='dialog'>Forgot your password ?</span> <svg class='icon ml05 icon icon-offset' viewbox='0 0 50 50' enable-background='new 0 0 50 50'><path fill='currentColor' d='M50 25l-17.4-8.7v6.5H0v4.4h32.6v6.5'></path></svg> </p> </div> </form> </div> </div> <div class='login__signup fill-h align-c h4 pangram bold'>Don't have an account yet? <span class='theme__accent link no-wrap color-transition hover--black' aria-haspopup='dialog' data-function='trigger' data-name='sign-up'> Sign up</span> </div> </div> </div> </div> </section> <section class='modal-portal hidden ' data-function='toggle' data-name='forgot-password'> <div class='modal flex forgot-password flex-items-start'> <div class='modal__overlay fixed inset-0 z-0'> </div> <div class='modal__content bg-white mha is-open is-visible relative size--small'> <div class='modal__close align-r pt1 pr1 absolute fit-r fit-t z10 transition--color theme__accent theme__text-hover'> <button class='px1' data-function='trigger' data-name='forgot-password'> <svg class="icon inline-block" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve"><title>Close</title><path fill="currentColor" d="M29.8,25l19.6,19.6l-4.8,4.8L25,29.8L5.4,49.4l-4.8-4.8L20.2,25L0.6,5.4l4.8-4.8L25,20.2L44.6,0.6l4.8,4.8L29.8,25z"></path></svg> </button> </div> <div class='forgot-password-modal align-l' role='dialog' aria-labelledby='forgot-password-dialog-title'> <div class='forgot-password-modal__inner'> <div class='noe h0 mt0 mb025' id='forgot-password-dialog-title'>Forgot your password?</div> <p class='italic gray4 mt0'>We’ll email you instructions to reset your password</p> </div> <div class='modal__error fill-h px2 mb2 theme__accent bg-gray1 h5 pangram uppercase kern align-c medium hidden'> <div class='forgot-password-modal__inner'></div> </div> <div class='forgot-password-message'></div> <div class='forgot-password-modal__inner'> <form class='forgot-password-form'> <div class='input-container'> <input type='email' name='forgot_password_email' id='forgot_password_email' value='' required> <label for='forgot_password_email' data-label='email'>email</label> </div> <input type='submit' class='login__submit button orange' value='Send' disabled> </form> </div> </div> </div> </div> </section> <section class='modal-portal hidden ' data-function='toggle' data-name='reset-password'> <div class='modal flex reset-password flex-items-start'> <div class='modal__overlay fixed inset-0 z-0'> </div> <div class='modal__content bg-white mha is-open is-visible relative size--small'> <div class='modal__close align-r pt1 pr1 absolute fit-r fit-t z10 transition--color theme__accent theme__text-hover'> <button class='px1' data-function='trigger' data-name='reset-password'> <svg class="icon inline-block" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve"><title>Close</title><path fill="currentColor" d="M29.8,25l19.6,19.6l-4.8,4.8L25,29.8L5.4,49.4l-4.8-4.8L20.2,25L0.6,5.4l4.8-4.8L25,20.2L44.6,0.6l4.8,4.8L29.8,25z"></path></svg> </button> </div> <div class='reset-password-modal align-l'> <div class='reset-password-modal__inner'> <div class='noe h0 mt0 mb025'>Change your password</div> <p class='italic gray4 mt0'>Enter your new password</p> </div> <div class='reset-password-message'></div> <div class='modal__error fill-h px2 mb2 theme__accent bg-gray1 h5 pangram uppercase kern hidden'> <div class='reset-password-modal__inner'></div> </div> <div class='reset-password-modal__inner'> <form class='reset-password-form'> <div class='input-container'> <input type='password' name='new_password' id='new_password' value='' class='password' required> <label for='new_password' data-label='Password'>Password</label> </div> <div class='input-container'> <input type='password' name='new_password_verify' id='new_password_verify' value='' class='password-verify' required> <label for='new_password_verify' data-label='Retype new password'>Retype new password</label> </div> <input type='submit' class='login__submit button orange' value='Send' disabled> </form> </div> </div> </div> </div> </section> <section class='modal-portal hidden ' data-function='toggle' data-name='sign-up'> <div class='modal flex sign-up flex-items-start'> <div class='modal__overlay fixed inset-0 z-0'> </div> <div class='modal__content bg-white mha is-open is-visible relative size--small'> <div class='modal__close align-r pt1 pr1 absolute fit-r fit-t z10 transition--color theme__accent theme__text-hover'> <button class='px1' data-function='trigger' data-name='sign-up'> <svg class="icon inline-block" x="0px" y="0px" viewbox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve"><title>Close</title><path fill="currentColor" d="M29.8,25l19.6,19.6l-4.8,4.8L25,29.8L5.4,49.4l-4.8-4.8L20.2,25L0.6,5.4l4.8-4.8L25,20.2L44.6,0.6l4.8,4.8L29.8,25z"></path></svg> </button> </div> <div class='signup-modal' role='dialog' aria-labelledby='signup-dialog-title'> <div class='signup-modal__inner'> <div class='noe h0 align-c mt0 mb1' id='signup-dialog-title'>Sign Up</div> </div> <div class='modal__error fill-h px2 mb2 theme__accent bg-gray1 h5 pangram uppercase kern align-c medium hidden'> <div class='signup-modal__inner'></div> </div> <div class='signup-modal__inner'> <form class='sign-up-form'> <div class='input-container'> <input type='text' name='sign_up_first_name' id='sign_up_first_name' value='' class='' required> <label for='sign_up_first_name' data-label='First Name'>First Name</label> </div> <div class='input-container'> <input type='text' name='sign_up_last_name' id='sign_up_last_name' value='' class='' required> <label for='sign_up_last_name' data-label='Last Name'>Last Name</label> </div> <div class='input-container'> <input type='email' name='sign_up_email' id='sign_up_email' value='' class='' required> <label for='sign_up_email' data-label='Email'>Email</label> </div> <div class='input-container'> <input type='password' name='sign_up_password' id='sign_up_password' value='' class='password' required> <label for='sign_up_password' data-label='Password'>Password</label> </div> <div class='input-container'> <input type='password' name='sign_up_password_verify' id='sign_up_password_verify' value='' class='password-verify' required> <label for='sign_up_password_verify' data-label='Retype Password'>Retype Password</label> </div> <div class='align-c pv1'> <input type='submit' class='button login__submit orange mr1' value='Create an account' disabled> </div> </form> <div class='px2 gray3 pangram align-c light signup-modal__terms'> Creating an account means you accept Quanta Magazine's <br /> <a class='theme__accent link' href='/terms-conditions'>Terms &amp; Conditions</a> and <a class='theme__accent link' href='/privacy-policy'>Privacy Policy</a> </div> </div> </div> </div> </div> </section> <script type="text/javascript" id="disqus_count-js-extra"> /* <![CDATA[ */ var countVars = {"disqusShortname":"quanta-mag"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/plugins/disqus-comment-system/public/js/comment_count.js?ver=3.1.1" id="disqus_count-js"></script> <script type="text/javascript" id="disqus_embed-js-extra"> /* <![CDATA[ */ var embedVars = {"disqusConfig":{"integration":"wordpress 3.1.1"},"disqusIdentifier":"144155 https:\/\/www.quantamagazine.org\/?p=144155","disqusShortname":"quanta-mag","disqusTitle":"How Public Key Cryptography Really Works, Using Only Simple Math","disqusUrl":"https:\/\/www.quantamagazine.org\/how-public-key-cryptography-really-works-20241115\/","postId":"144155"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/plugins/disqus-comment-system/public/js/comment_embed.js?ver=3.1.1" id="disqus_embed-js"></script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/plugins/quanta-education-interactive/jquery.validate.min.js?ver=6.6.2" id="jquery-validate-js"></script> <script type="text/javascript" id="edin-js-js-extra"> /* <![CDATA[ */ var EDIN = {"ajaxurl":"https:\/\/www.quantamagazine.org\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/plugins/quanta-education-interactive/edin.js?ver=6.6.2" id="edin-js-js"></script> <script type="text/javascript" id="privacy-consent-front-js-extra"> /* <![CDATA[ */ var privacyArgs = {"hideEffect":"fade","cookieTime":"2592000","secure":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/plugins/sf-privacy-consent/js/front.min.js?ver=1.10" id="privacy-consent-front-js"></script> <script type="text/javascript" id="main-js-extra"> /* <![CDATA[ */ var qAjax = {"ajaxurl":"https:\/\/www.quantamagazine.org\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/dist/main.min.js?ver=1730911106" id="main-js"></script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/js/mathjax/MathJax.js" id="mathjax-js"></script> <script type="text/javascript" id="favorites-js-extra"> /* <![CDATA[ */ var favorites_data = {"ajaxurl":"https:\/\/www.quantamagazine.org\/wp-admin\/admin-ajax.php","nonce":"c93bf298c9","favorite":"Favorite","favorited":"Favorited","includecount":"","indicate_loading":"","loading_text":"Loading","loading_image":"","loading_image_active":"","loading_image_preload":"","cache_enabled":"1","button_options":{"button_type":"custom","custom_colors":false,"box_shadow":false,"include_count":false,"default":{"background_default":false,"border_default":false,"text_default":false,"icon_default":false,"count_default":false},"active":{"background_active":false,"border_active":false,"text_active":false,"icon_active":false,"count_active":false}},"authentication_modal_content":"<p>Please login to add favorites.<\/p><p><a href=\"#\" data-favorites-modal-close>Dismiss this notice<\/a><\/p>","authentication_redirect":"","dev_mode":"","logged_in":"","user_id":"0","authentication_redirect_url":"https:\/\/www.quantamagazine.org\/mechanix\/"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.quantamagazine.org/wp-content/plugins/quanta-favorites/assets/js/favorites.min.js?ver=2.3.4" id="favorites-js"></script> <div role="banner" class="sf-top sf-fixed-bar"><div class="sf-fixed-bar-container"><div class="sf-fixed-bar-text-wrapper"><span class="sf-notice-text">We care about your data, and we'd like to use cookies to give you a smooth browsing experience. Please agree and read more about our <a href='/privacy-policy'>privacy policy.</a></span><a href="#" data-cookie-value="true" data-function="sf-set-consent" class="sf-button" >AGREE</a><a href="#" data-cookie-value="revoke" data-function="sf-set-consent" class="sf-button">DISMISS</a></div></div></div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10