CINXE.COM

December 2017 – Cryptography & Payments

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="profile" href="https://gmpg.org/xfn/11" /> <title>December 2017 &#8211; Cryptography &amp; Payments</title> <script type="text/javascript"> WebFontConfig = {"google":{"families":["Source+Sans+Pro:r,i,b,bi:latin,latin-ext"]},"api_url":"https:\/\/fonts-api.wp.com\/css"}; (function() { var wf = document.createElement('script'); wf.src = 'https://s0.wp.com/wp-content/plugins/custom-fonts/js/webfont.js'; wf.type = 'text/javascript'; wf.async = 'true'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s); })(); </script><style id="jetpack-custom-fonts-css"></style> <meta name='robots' content='max-image-preview:large' /> <meta name="google-site-verification" content="Zw5b22p04kGoy8Ch3FcgAxEamB26jLd3FALtlnOF6RA" /> <!-- Async WordPress.com Remote Login --> <script id="wpcom_remote_login_js"> var wpcom_remote_login_extra_auth = ''; function wpcom_remote_login_remove_dom_node_id( element_id ) { var dom_node = document.getElementById( element_id ); if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); } } function wpcom_remote_login_remove_dom_node_classes( class_name ) { var dom_nodes = document.querySelectorAll( '.' + class_name ); for ( var i = 0; i < dom_nodes.length; i++ ) { dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] ); } } function wpcom_remote_login_final_cleanup() { wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" ); wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" ); wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" ); } // Watch for messages back from the remote login window.addEventListener( "message", function( e ) { if ( e.origin === "https://r-login.wordpress.com" ) { var data = {}; try { data = JSON.parse( e.data ); } catch( e ) { wpcom_remote_login_final_cleanup(); return; } if ( data.msg === 'LOGIN' ) { // Clean up the login check iframe wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); var id_regex = new RegExp( /^[0-9]+$/ ); var token_regex = new RegExp( /^.*|.*|.*$/ ); if ( token_regex.test( data.token ) && id_regex.test( data.wpcomid ) ) { // We have everything we need to ask for a login var script = document.createElement( "script" ); script.setAttribute( "id", "wpcom_remote_login_validate" ); script.src = '/remote-login.php?wpcom_remote_login=validate' + '&wpcomid=' + data.wpcomid + '&token=' + encodeURIComponent( data.token ) + '&host=' + window.location.protocol + '//' + window.location.hostname + '&postid=249' + '&is_singular='; document.body.appendChild( script ); } return; } // Safari ITP, not logged in, so redirect if ( data.msg === 'LOGIN-REDIRECT' ) { window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href; return; } // Safari ITP, storage access failed, remove the request if ( data.msg === 'LOGIN-REMOVE' ) { var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }'; var style_zap = document.createElement( 'style' ); style_zap.type = 'text/css'; style_zap.appendChild( document.createTextNode( css_zap ) ); document.body.appendChild( style_zap ); var e = document.getElementById( 'wpcom_request_access_iframe' ); e.parentNode.removeChild( e ); document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000'; return; } // Safari ITP if ( data.msg === 'REQUEST_ACCESS' ) { console.log( 'request access: safari' ); // Check ITP iframe enable/disable knob if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) { return; } // If we are in a "private window" there is no ITP. var private_window = false; try { var opendb = window.openDatabase( null, null, null, null ); } catch( e ) { private_window = true; } if ( private_window ) { console.log( 'private window' ); return; } var iframe = document.createElement( 'iframe' ); iframe.id = 'wpcom_request_access_iframe'; iframe.setAttribute( 'scrolling', 'no' ); iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' ); iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid ); var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } '; var style = document.createElement( 'style' ); style.type = 'text/css'; style.id = 'wpcom_request_access_styles'; style.appendChild( document.createTextNode( css ) ); document.body.appendChild( style ); document.body.appendChild( iframe ); } if ( data.msg === 'DONE' ) { wpcom_remote_login_final_cleanup(); } } }, false ); // Inject the remote login iframe after the page has had a chance to load // more critical resources window.addEventListener( "DOMContentLoaded", function( e ) { var iframe = document.createElement( "iframe" ); iframe.style.display = "none"; iframe.setAttribute( "scrolling", "no" ); iframe.setAttribute( "id", "wpcom_remote_login_key" ); iframe.src = "https://r-login.wordpress.com/remote-login.php" + "?wpcom_remote_login=key" + "&origin=aHR0cHM6Ly9hcnRodXJ2YW5kZXJtZXJ3ZS5jb20%3D" + "&wpcomid=70204527" + "&time=1732382127"; document.body.appendChild( iframe ); }, false ); </script> <link rel='dns-prefetch' href='//s1.wp.com' /> <link rel='dns-prefetch' href='//s2.wp.com' /> <link rel='dns-prefetch' href='//s0.wp.com' /> <link rel='dns-prefetch' href='//fonts-api.wp.com' /> <link rel='dns-prefetch' href='//s.pubmine.com' /> <link rel='dns-prefetch' href='//x.bidswitch.net' /> <link rel='dns-prefetch' href='//static.criteo.net' /> <link rel='dns-prefetch' href='//ib.adnxs.com' /> <link rel='dns-prefetch' href='//aax.amazon-adsystem.com' /> <link rel='dns-prefetch' href='//bidder.criteo.com' /> <link rel='dns-prefetch' href='//cas.criteo.com' /> <link rel='dns-prefetch' href='//gum.criteo.com' /> <link rel='dns-prefetch' href='//ads.pubmatic.com' /> <link rel='dns-prefetch' href='//gads.pubmatic.com' /> <link rel='dns-prefetch' href='//tpc.googlesyndication.com' /> <link rel='dns-prefetch' href='//ad.doubleclick.net' /> <link rel='dns-prefetch' href='//googleads.g.doubleclick.net' /> <link rel='dns-prefetch' href='//www.googletagservices.com' /> <link rel='dns-prefetch' href='//cdn.switchadhub.com' /> <link rel='dns-prefetch' href='//delivery.g.switchadhub.com' /> <link rel='dns-prefetch' href='//delivery.swid.switchadhub.com' /> <link rel='dns-prefetch' href='//a.teads.tv' /> <link rel='dns-prefetch' href='//prebid.media.net' /> <link rel='dns-prefetch' href='//adserver-us.adtech.advertising.com' /> <link rel='dns-prefetch' href='//fastlane.rubiconproject.com' /> <link rel='dns-prefetch' href='//prebid-server.rubiconproject.com' /> <link rel='dns-prefetch' href='//hb-api.omnitagjs.com' /> <link rel='dns-prefetch' href='//mtrx.go.sonobi.com' /> <link rel='dns-prefetch' href='//apex.go.sonobi.com' /> <link rel='dns-prefetch' href='//u.openx.net' /> <link rel="alternate" type="application/rss+xml" title="Cryptography &amp; Payments &raquo; Feed" href="https://arthurvandermerwe.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Cryptography &amp; Payments &raquo; Comments Feed" href="https://arthurvandermerwe.com/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function () { oldonload(); func(); } } } /* ]]> */ </script> <script> window._wpemojiSettings = {"baseUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/72x72\/","ext":".png","svgUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/s2.wp.com\/wp-includes\/js\/wp-emoji-release.min.js?m=1719498190i&ver=6.8-alpha-59438"}}; /*! 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> <link crossorigin='anonymous' rel='stylesheet' id='all-css-0-1' href='https://s2.wp.com/wp-content/blog-plugins/wordads/global.css?m=1561495466i&cssminify=yes' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-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 crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='https://s0.wp.com/_static/??-eJydzMsOwiAQheEXEibEXtKF8VmATggVgcwMNby91U13LlyenHw/vKryJQtmgZpaiJkhtGM6pHA8hLCbRU96ANdiWsGl4h8qRUeWOrD0hNozX+Bn6KsYNpRqP9z20kQFiuu/CbISc+CT3583M1/NMg6zGbc3O1tP4A==&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-library-inline-css'> .has-text-align-justify { text-align:justify; } .has-text-align-justify{text-align:justify;} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-4-1' href='https://s2.wp.com/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpoZmFkYGRuZGmQBAHPvL0Y=&cssminify=yes' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-6-1' href='https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/coblocks-style.css?m=1681832297i&cssminify=yes' type='text/css' media='all' /> <style id='classic-theme-styles-inline-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> <link crossorigin='anonymous' rel='stylesheet' id='all-css-8-1' href='https://s1.wp.com/_static/??/wp-content/mu-plugins/core-compat/wp-mediaelement.css,/wp-content/mu-plugins/wpcom-bbpress-premium-themes.css?m=1432920480j&cssminify=yes' type='text/css' media='all' /> <style id='global-styles-inline-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--color--primary: #000000;--wp--preset--color--secondary: #3C8067;--wp--preset--color--foreground: #333333;--wp--preset--color--tertiary: #FAFBF6;--wp--preset--color--background: #FFFFFF;--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--gradient--hard-diagonal: linear-gradient(to bottom right, #3C8067 49.9%, #FAFBF6 50%);--wp--preset--gradient--hard-diagonal-inverted: linear-gradient(to top left, #3C8067 49.9%, #FAFBF6 50%);--wp--preset--gradient--hard-horizontal: linear-gradient(to bottom, #3C8067 50%, #FAFBF6 50%);--wp--preset--gradient--hard-horizontal-inverted: linear-gradient(to top, #3C8067 50%, #FAFBF6 50%);--wp--preset--gradient--diagonal: linear-gradient(to bottom right, #3C8067, #FAFBF6);--wp--preset--gradient--diagonal-inverted: linear-gradient(to top left, #3C8067, #FAFBF6);--wp--preset--gradient--horizontal: linear-gradient(to bottom, #3C8067, #FAFBF6);--wp--preset--gradient--horizontal-inverted: linear-gradient(to top, #3C8067, #FAFBF6);--wp--preset--gradient--stripe: linear-gradient(to bottom, transparent 20%, #3C8067 20%, #3C8067 80%, transparent 80%);--wp--preset--font-size--small: 16px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--tiny: 14px;--wp--preset--font-size--normal: 18px;--wp--preset--font-size--huge: 28px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', sans-serif;--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;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;} :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;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} </style> <link rel='stylesheet' id='seedlet-fonts-css' href='https://fonts-api.wp.com/css?family=Fira+Sans%3Aital%2Cwght%400%2C400%3B0%2C500%3B1%2C400%7CPlayfair+Display%3Aital%2Cwght%400%2C400%3B0%2C700%3B1%2C400&#038;subset=latin%2Clatin-ext' media='all' /> <link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='https://s0.wp.com/_static/??/wp-content/themes/pub/seedlet/style.css,/wp-content/themes/pub/seedlet/assets/css/style-navigation.css?m=1720456615j&cssminify=yes' type='text/css' media='all' /> <link crossorigin='anonymous' rel='stylesheet' id='print-css-13-1' href='https://s2.wp.com/wp-content/themes/pub/seedlet/assets/css/print.css?m=1603804565i&cssminify=yes' type='text/css' media='print' /> <link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='https://s0.wp.com/_static/??-eJx9y0EOwjAMRNELYQyiBbFAnKU1JgQ5dlQ7qnp7yq5s2M2X5uFcgUyDNTBeXNixthGd+SEcmJVwrmQFPBbhPbnvcENKgyotZXWceBRL60y4vjb5DyU2EKMhsulPwFOGPH3pvdyO/bU7dOdLf3p/AANwQOQ=&cssminify=yes' type='text/css' media='all' /> <style id='jetpack-global-styles-frontend-style-inline-css'> :root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-16-1' href='https://s2.wp.com/wp-content/themes/h4/global.css?m=1420737423i&cssminify=yes' type='text/css' media='all' /> <script id="wpcom-actionbar-placeholder-js-extra"> var actionbardata = {"siteID":"70204527","postID":"0","siteURL":"https:\/\/arthurvandermerwe.com","xhrURL":"https:\/\/arthurvandermerwe.com\/wp-admin\/admin-ajax.php","nonce":"f1f7d771d3","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https:\/\/s0.wp.com\/wp-content\/js\/wpcom-proxy-request.js?ver=20211021","i18n":{"followedText":"New posts from this site will now appear in your <a href=\"https:\/\/wordpress.com\/read\">Reader<\/a>","foldBar":"Collapse this bar","unfoldBar":"Expand this bar"}}; </script> <script id="jetpack-mu-wpcom-settings-js-before"> var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https:\/\/s1.wp.com\/wp-content\/mu-plugins\/jetpack-mu-wpcom-plugin\/sun\/vendor\/automattic\/jetpack-mu-wpcom\/src\/build\/"}; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s1.wp.com/_static/??-eJyVzckOwjAMBNAfwriL2A6Ib0kbtyRyEytOt7+HiAvixmkOozeDq0AfQ6aQ0SsmziApbvvR6wG/uvykiRRl7lCJLFNGo0pZi+pVYTFJQWLYB8fc/MUd1TUMbvtFHccRhOfRBcU1JmusQs8Ffm4nwaUpASEGGK2k98RjuteXpjq11fl68y+6C1Fw'></script> <script id="rlt-proxy-js-after"> rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} ); </script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://arthurvandermerwe.wordpress.com/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress.com" /> <!-- Jetpack Open Graph Tags --> <meta property="og:type" content="website" /> <meta property="og:title" content="December 2017 &#8211; Cryptography &amp; Payments" /> <meta property="og:site_name" content="Cryptography &amp; Payments" /> <meta property="og:image" content="https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=200" /> <meta property="og:image:width" content="200" /> <meta property="og:image:height" content="200" /> <meta property="og:image:alt" content="" /> <meta property="og:locale" content="en_US" /> <!-- End Jetpack Open Graph Tags --> <link rel='openid.server' href='https://arthurvandermerwe.com/?openidserver=1' /> <link rel='openid.delegate' href='https://arthurvandermerwe.com/' /> <link rel="search" type="application/opensearchdescription+xml" href="https://arthurvandermerwe.com/osd.xml" title="Cryptography &#38; Payments" /> <link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" /> <style type="text/css"> .recentcomments a { display: inline !important; padding: 0 !important; margin: 0 !important; } table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar { border: 0px; margin: 0; } table.recentcommentsavatartop a, table.recentcommentsavatarend a { border: 0px !important; background-color: transparent !important; } td.recentcommentsavatarend, td.recentcommentsavatartop { padding: 0px 0px 1px 0px; margin: 0px; } td.recentcommentstextend { border: none !important; padding: 0px 0px 2px 10px; } .rtl td.recentcommentstextend { padding: 0px 10px 2px 0px; } td.recentcommentstexttop { border: none; padding: 0px 0px 0px 10px; } .rtl td.recentcommentstexttop { padding: 0px 10px 0px 0px; } </style> <meta name="application-name" content="Cryptography &amp; Payments" /><meta name="msapplication-window" content="width=device-width;height=device-height" /><meta name="msapplication-tooltip" content="Arthur Van Der Merwe" /><meta name="description" content="1 post published by arthurvdmerwe during December 2017" /> <script> var wa_smart = { 'network_id': 3905, 'site_id': 560111, 'page_id': 1700829, 'blog_id': 70204527, 'post_id': null, 'theme': 'pub/seedlet', 'target': 'wp_blog_id=70204527;language=en', '_': { 'title': 'Advertisement', 'privacy_settings': 'Privacy Settings' }, 'top': { 'enabled': false, 'adflow_enabled': true, 'format_id': 135099 }, 'inline': { 'enabled': false, 'adflow_enabled': true, 'format_id': 110354, 'max_slots': 20, 'max_blaze_slots': 20 }, 'belowpost': { 'enabled': false, 'adflow_enabled': true, 'format_id': 134071 }, 'bottom_sticky': { 'enabled': false, 'adflow_enabled': true, 'format_id': 117571 }, 'sidebar': { 'enabled': false, 'adflow_enabled': true, 'format_id': 134686 }, 'sidebar_sticky_right': { 'enabled': false, 'adflow_enabled': true, 'format_id': 135281 }, 'gutenberg_rectangle': { 'enabled': false, 'adflow_enabled': true, 'format_id': 134788 }, 'gutenberg_leaderboard': { 'enabled': false, 'adflow_enabled': true, 'format_id': 135073 }, 'gutenberg_mobile_leaderboard': { 'enabled': false, 'adflow_enabled': true, 'format_id': 135098 }, 'gutenberg_skyscraper': { 'enabled': false, 'adflow_enabled': true, 'format_id': 135088 } }; wa_smart.cmd = []; </script> <script type="text/javascript"> function __ATA_CC() {var v = document.cookie.match('(^|;) ?personalized-ads-consent=([^;]*)(;|$)');return v ? 1 : 0;} var __ATA_PP = { 'pt': 3, 'ht': 1, 'tn': 'seedlet', 'uloggedin': 0, 'amp': false, 'consent': __ATA_CC(), 'gdpr_applies': false, 'ad': { 'label': { 'text': 'Advertisements' }, 'reportAd': { 'text': 'Report this ad' } }, 'disabled_slot_formats': [], 'siteid': 70204527, 'afp_ad_client': 'pub-6694573643007653' }; var __ATA = __ATA || {}; __ATA.cmd = __ATA.cmd || []; __ATA.criteo = __ATA.criteo || {}; __ATA.criteo.cmd = __ATA.criteo.cmd || []; </script> <script type="text/javascript"> (function(){var g=Date.now||function(){return+new Date};function h(a,b){a:{for(var c=a.length,d="string"==typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:"string"==typeof a?a.charAt(b):a[b]};function k(a,b,c){c=null!=c?"="+encodeURIComponent(String(c)):"";if(b+=c){c=a.indexOf("#");0>c&&(c=a.length);var d=a.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=a.substring(d+1,c);a=[a.substr(0,d),e,a.substr(c)];c=a[1];a[1]=b?c?c+"&"+b:b:c;a=a[0]+(a[1]?"?"+a[1]:"")+a[2]}return a};var l=0;function m(a,b){var c=document.createElement("script");c.src=a;c.onload=function(){b&&b(void 0)};c.onerror=function(){b&&b("error")};a=document.getElementsByTagName("head");var d;a&&0!==a.length?d=a[0]:d=document.documentElement;d.appendChild(c)}function n(a){var b=void 0===b?document.cookie:b;return(b=h(b.split("; "),function(c){return-1!=c.indexOf(a+"=")}))?b.split("=")[1]:""}function p(a){return"string"==typeof a&&0<a.length} function r(a,b,c){b=void 0===b?"":b;c=void 0===c?".":c;var d=[];Object.keys(a).forEach(function(e){var f=a[e],q=typeof f;"object"==q&&null!=f||"function"==q?d.push(r(f,b+e+c)):null!==f&&void 0!==f&&(e=encodeURIComponent(b+e),d.push(e+"="+encodeURIComponent(f)))});return d.filter(p).join("&")}function t(a,b){a||((window.__ATA||{}).config=b.c,m(b.url))}var u=Math.floor(1E13*Math.random()),v=window.__ATA||{};window.__ATA=v;window.__ATA.cmd=v.cmd||[];v.rid=u;v.createdAt=g();var w=window.__ATA||{},x="s.pubmine.com"; w&&w.serverDomain&&(x=w.serverDomain);var y="//"+x+"/conf",z=window.top===window,A=window.__ATA_PP&&window.__ATA_PP.gdpr_applies,B="boolean"===typeof A?Number(A):null,C=window.__ATA_PP||null,D=z?document.referrer?document.referrer:null:null,E=z?window.location.href:document.referrer?document.referrer:null,F,G=n("__ATA_tuuid");F=G?G:null;var H=window.innerWidth+"x"+window.innerHeight,I=n("usprivacy"),J=r({gdpr:B,pp:C,rid:u,src:D,ref:E,tuuid:F,vp:H,us_privacy:I?I:null},"","."); (function(a){var b=void 0===b?"cb":b;l++;var c="callback__"+g().toString(36)+"_"+l.toString(36);a=k(a,b,c);window[c]=function(d){t(void 0,d)};m(a,function(d){d&&t(d)})})(y+"?"+J);}).call(this); </script> <script> var sas_fallback = sas_fallback || []; sas_fallback.push( { tag: "&lt;div id=&quot;atatags-702045271-{{unique_id}}&quot;&gt;&lt;/div&gt;&lt;script&gt;__ATA.cmd.push(function() {__ATA.initDynamicSlot({id: \'atatags-702045271-{{unique_id}}\',location: 120,formFactor: \'001\',label: {text: \'Advertisements\',},creative: {reportAd: {text: \'Report this ad\',},privacySettings: {text: \'Privacy\',}}});});&lt;/script&gt;", type: 'belowpost' }, { tag: "&lt;div id=&quot;atatags-702045271-{{unique_id}}&quot;&gt;&lt;/div&gt;&lt;script&gt;__ATA.cmd.push(function() {__ATA.initDynamicSlot({id: \'atatags-702045271-{{unique_id}}\',location: 310,formFactor: \'001\',label: {text: \'Advertisements\',},creative: {reportAd: {text: \'Report this ad\',},privacySettings: {text: \'Privacy\',}}});});&lt;/script&gt;", type: 'inline' }, { tag: "&lt;div id=&quot;atatags-702045271-{{unique_id}}&quot;&gt;&lt;/div&gt;&lt;script&gt;__ATA.cmd.push(function() {__ATA.initDynamicSlot({id: \'atatags-702045271-{{unique_id}}\',location: 140,formFactor: \'003\',label: {text: \'Advertisements\',},creative: {reportAd: {text: \'Report this ad\',},privacySettings: {text: \'Privacy\',}}});});&lt;/script&gt;", type: 'sidebar' }, { tag: "&lt;div id=&quot;atatags-702045271-{{unique_id}}&quot;&gt;&lt;/div&gt;&lt;script&gt;__ATA.cmd.push(function() {__ATA.initDynamicSlot({id: \'atatags-702045271-{{unique_id}}\',location: 110,formFactor: \'002\',label: {text: \'Advertisements\',},creative: {reportAd: {text: \'Report this ad\',},privacySettings: {text: \'Privacy\',}}});});&lt;/script&gt;", type: 'top' } ); </script><link rel="icon" href="https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=32" sizes="32x32" /> <link rel="icon" href="https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=192" sizes="192x192" /> <link rel="apple-touch-icon" href="https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=180" /> <meta name="msapplication-TileImage" content="https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=270" /> </head> <body class="archive date wp-embed-responsive customizer-styles-applied hfeed has-main-navigation jetpack-reblog-enabled"> <div id="page" class="site"> <a class="skip-link screen-reader-text" href="#content">Skip to content</a> <header id="masthead" class="site-header header_classes has-title-and-tagline has-menu" role="banner"> <div class="site-branding"> <p class="site-title"><a href="https://arthurvandermerwe.com/" rel="home">Cryptography &amp; Payments</a></p> <p class="site-description"> Arthur Van Der Merwe </p> </div><!-- .site-branding --> <nav id="site-navigation" class="primary-navigation" role="navigation" aria-label="Main"> <button id="primary-close-menu" class="button close"> <span class="dropdown-icon close">Close <svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 10.9394L5.53033 4.46973L4.46967 5.53039L10.9393 12.0001L4.46967 18.4697L5.53033 19.5304L12 13.0607L18.4697 19.5304L19.5303 18.4697L13.0607 12.0001L19.5303 5.53039L18.4697 4.46973L12 10.9394Z" fill="currentColor"/></svg></span> <span class="hide-visually collapsed-text">collapsed</span> </button> <div class="primary-menu-container"><ul id="menu-financial-switching-1" class="menu-wrapper"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-239"><a href="https://arthurvandermerwe.com/category/hsm/">HSM</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-240"><a href="https://arthurvandermerwe.com/category/cryptography-2/">Cryptography</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-241"><a href="https://arthurvandermerwe.com/category/financial-switching/">Financial Switching</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-242"><a href="https://arthurvandermerwe.com/category/atm-tracing/">ATM Tracing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27"><a href="https://arthurvandermerwe.com/downloads/">Downloads</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5"><a href="https://arthurvandermerwe.com/about/">About</a></li> </ul></div> </nav><!-- #site-navigation --> <div class="menu-button-container"> <button id="primary-open-menu" class="button open"> <span class="dropdown-icon open">Menu <svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 6H19.5V7.5H4.5V6ZM4.5 12H19.5V13.5H4.5V12ZM19.5 18H4.5V19.5H19.5V18Z" fill="currentColor"/></svg></span> <span class="hide-visually expanded-text">expanded</span> </button> </div> <div class="menu-button-container"> </div> </header><!-- #masthead --> <div id="content" class="site-content"> <section id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <header class="page-header default-max-width"> <h1 class="page-title"><span class="archive-prefix">Monthly Archives: </span><span class="page-description">December 2017</span></h1> </header><!-- .page-header --> <article id="post-249" class="post-249 post type-post status-publish format-standard hentry category-cryptography-2 tag-bi-linear-maps tag-cryptography entry"> <header class="entry-header default-max-width"> <h2 class="entry-title"><a href="https://arthurvandermerwe.com/2017/12/29/from-bi-linear-maps-to-searchable-encryption/" rel="bookmark">From Bi-Linear Maps to Searchable&nbsp;Encryption</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <h2>Pairings-Based Cryptography</h2> <h3>Introduction</h3> <p>Theoretical research into pairings-based cryptography has been a well-researched area over the last few years, this cryptography scheme is based on the mapping of two cryptographical groups which allows for a new cryptographical scheme based on a trapdoor permutation between the groups with some interesting complexity properties.</p> <p>These two groups are called a Gap Groups in many instances, where the Decisional Diffie-Helman problem is easy, but the Computational Diffie-Helman still is hard to solve. Weil and Tate pairings are used in implementations but requires complex mathematics, this is why in this section we will use a slightly more abstract means to explain bilinear maps..</p> <h3>Bilinear Maps</h3> <p>Mostly all constructions of pairings-based cryptosystems use bilinear maps, for this we consider two groups <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> or a prime order <img src="https://s0.wp.com/latex.php?latex=q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="q" class="latex" />. We can denote <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> using additive notation and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> using multiplicative notation, even as the group operations of <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> are very different, <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> can also be written as a multiplicative group operation in some literature.</p> <p>If we consider two generators of group <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> as <img src="https://s0.wp.com/latex.php?latex=%5C+P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5C+P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5C+P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92; P" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Q" class="latex" />, we can write:</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=aP%5C+%3D%5C+P%2BP%2B%5C+..P%5C+%5C%7D%5C+a&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=aP%5C+%3D%5C+P%2BP%2B%5C+..P%5C+%5C%7D%5C+a&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=aP%5C+%3D%5C+P%2BP%2B%5C+..P%5C+%5C%7D%5C+a&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="aP&#92; =&#92; P+P+&#92; ..P&#92; &#92;}&#92; a" class="latex" /> times</p> <p>Using this we can also consider a map <img src="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e" class="latex" /> as follows: <img src="https://s0.wp.com/latex.php?latex=%7Be%3A%5C+G%7D_1%5C+%5Ctimes+G_1%5C+%5Cto+%5C+%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%7Be%3A%5C+G%7D_1%5C+%5Ctimes+G_1%5C+%5Cto+%5C+%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%7Be%3A%5C+G%7D_1%5C+%5Ctimes+G_1%5C+%5Cto+%5C+%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="{e:&#92; G}_1&#92; &#92;times G_1&#92; &#92;to &#92; &#92; G_2" class="latex" /></p> <p>This type of bilinear map has a main group <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> and a shadow group <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> where we map two group elements in the first group to the second group would need have properties between them in order for it to be useful,  Bilinearity, non-degenerate and computable.</p> <p><span style="text-decoration:underline;">Bilinearity:</span></p> <p>For Group <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> using generators <img src="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=%5C+Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5C+Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5C+Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92; Q" class="latex" /> we can define a map to <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" />, where the additive operation in group <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> equals the multiplicative operation in <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" />:</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=%5Cforall+P%2C%5C+Q%5Cin+G_1%2C+%5Cforall+a%2C%5C+b%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q%2C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Cforall+P%2C%5C+Q%5Cin+G_1%2C+%5Cforall+a%2C%5C+b%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q%2C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Cforall+P%2C%5C+Q%5Cin+G_1%2C+%5Cforall+a%2C%5C+b%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q%2C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;forall P,&#92; Q&#92;in G_1, &#92;forall a,&#92; b&#92; &#92;in {&#92;mathbb{Z}}^*_q," class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=Map%3Ae%5Cleft%28aP%2C%5C+bQ%5Cright%29%3De%28P%2C%5C+Q%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Map%3Ae%5Cleft%28aP%2C%5C+bQ%5Cright%29%3De%28P%2C%5C+Q%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Map%3Ae%5Cleft%28aP%2C%5C+bQ%5Cright%29%3De%28P%2C%5C+Q%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Map:e&#92;left(aP,&#92; bQ&#92;right)=e(P,&#92; Q)^{ab}" class="latex" /></p> <p>If G1 and G2 where both multiplicative groups then the Bilinearity property would be the following:</p> <ul> <li><img src="https://s0.wp.com/latex.php?latex=%5Cforall+P%2C%5C+Q%5Cin+G_1%2C%5C+%5Cforall+a%2C%5C+b%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q%2C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Cforall+P%2C%5C+Q%5Cin+G_1%2C%5C+%5Cforall+a%2C%5C+b%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q%2C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Cforall+P%2C%5C+Q%5Cin+G_1%2C%5C+%5Cforall+a%2C%5C+b%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q%2C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;forall P,&#92; Q&#92;in G_1,&#92; &#92;forall a,&#92; b&#92; &#92;in {&#92;mathbb{Z}}^*_q," class="latex" /></li> <li><img src="https://s0.wp.com/latex.php?latex=Map%3Ae%5Cleft%28P%5Ea%2C%5C+Q%5Eb%5Cright%29%3De%28P%2C%5C+Q%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Map%3Ae%5Cleft%28P%5Ea%2C%5C+Q%5Eb%5Cright%29%3De%28P%2C%5C+Q%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Map%3Ae%5Cleft%28P%5Ea%2C%5C+Q%5Eb%5Cright%29%3De%28P%2C%5C+Q%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Map:e&#92;left(P^a,&#92; Q^b&#92;right)=e(P,&#92; Q)^{ab}" class="latex" /></li> </ul> <p>This has an interesting property whereby it beaks the decisional Diffie-Helman problem, but this will be discussed in more details later.</p> <p><span style="text-decoration:underline;">Non-Degeneracy:</span></p> <p>If all the elements map to the identity of the group then if would not have any additional computational aspects to explore. It is therefore important not to create a map with the identity of either of the groups.<br /> <img src="https://s0.wp.com/latex.php?latex=%5Cforall+P%5C+%5Cin+G_1%2C%5C+P%5C+%5Cneq+0%5C+%5C+%5Cleft%5Clangle+e%5Cleft%28P%2C%5C+P%5Cright%29%5Cright%5Crangle+%3DG_2%5C+%28e%5Cleft%28P%2C%5C+P%5Cright%29%5C+generates%5C+G_2%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Cforall+P%5C+%5Cin+G_1%2C%5C+P%5C+%5Cneq+0%5C+%5C+%5Cleft%5Clangle+e%5Cleft%28P%2C%5C+P%5Cright%29%5Cright%5Crangle+%3DG_2%5C+%28e%5Cleft%28P%2C%5C+P%5Cright%29%5C+generates%5C+G_2%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Cforall+P%5C+%5Cin+G_1%2C%5C+P%5C+%5Cneq+0%5C+%5C+%5Cleft%5Clangle+e%5Cleft%28P%2C%5C+P%5Cright%29%5Cright%5Crangle+%3DG_2%5C+%28e%5Cleft%28P%2C%5C+P%5Cright%29%5C+generates%5C+G_2%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;forall P&#92; &#92;in G_1,&#92; P&#92; &#92;neq 0&#92; &#92; &#92;left&#92;langle e&#92;left(P,&#92; P&#92;right)&#92;right&#92;rangle =G_2&#92; (e&#92;left(P,&#92; P&#92;right)&#92; generates&#92; G_2)" class="latex" /><br /> Such that: <img src="https://s0.wp.com/latex.php?latex=P%5C+%5Cneq+0%5C+%5CRightarrow+e%5Cleft%28P%2C%5C+P%5Cright%29%5Cneq+1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P%5C+%5Cneq+0%5C+%5CRightarrow+e%5Cleft%28P%2C%5C+P%5Cright%29%5Cneq+1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P%5C+%5Cneq+0%5C+%5CRightarrow+e%5Cleft%28P%2C%5C+P%5Cright%29%5Cneq+1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P&#92; &#92;neq 0&#92; &#92;Rightarrow e&#92;left(P,&#92; P&#92;right)&#92;neq 1" class="latex" /></p> <p><span style="text-decoration:underline;">Computability:</span> <img src="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e" class="latex" /> should be efficiently computable, there are some constructions of maps that are hard to compute.</p> <p>The construction of these bilinear pairs has been proven by Wei and Tate pairings, where <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> is a typical elliptic curve group, and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> is a finite field. These have proven to provide complex problems across these groups to construct cryptographical schemes.</p> <h3>Complex Problems</h3> <p>For the usage of bilinear maps in cryptographical schemes, we define a one-way function using two problems, the Decisional Diffie-Helman problem and the discrete log problem.</p> <p><strong>Theorem 1: The Discrete Log Problem in <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> is no harder than the Discrete Log Problem in <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" />.</strong></p> <p>Proof 1: If we use our additive notation and consider that <img src="https://s0.wp.com/latex.php?latex=Q%5C+%3D%5C+aP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Q%5C+%3D%5C+aP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Q%5C+%3D%5C+aP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Q&#92; =&#92; aP" class="latex" />, we then need to solve <img src="https://s0.wp.com/latex.php?latex=a&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=a&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=a&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="a" class="latex" />, which is random, for a given <img src="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P" class="latex" /> and a random <img src="https://s0.wp.com/latex.php?latex=Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Q" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=e%5Cleft%28P%2C%5C+Q%5Cright%29%3De%5Cleft%28P%2C%5C+aP%5Cright%29%3De%28P%2C%5C+P%29%5Ea&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%5Cleft%28P%2C%5C+Q%5Cright%29%3De%5Cleft%28P%2C%5C+aP%5Cright%29%3De%28P%2C%5C+P%29%5Ea&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%5Cleft%28P%2C%5C+Q%5Cright%29%3De%5Cleft%28P%2C%5C+aP%5Cright%29%3De%28P%2C%5C+P%29%5Ea&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e&#92;left(P,&#92; Q&#92;right)=e&#92;left(P,&#92; aP&#92;right)=e(P,&#92; P)^a" class="latex" /></p> <p>With this we can effectively reduce the Discrete Log Problem in <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> to the Discrete Log Problem in <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" />, if we are given <img src="https://s0.wp.com/latex.php?latex=P%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P&#92;in G_1" class="latex" /> and a random <img src="https://s0.wp.com/latex.php?latex=Q%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Q%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Q%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Q&#92;in G_1" class="latex" /> then the mapping of <img src="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e" class="latex" /> is easily computable by calculating <img src="https://s0.wp.com/latex.php?latex=%7B%7Blog%7D_P+%28Q%29%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%7B%7Blog%7D_P+%28Q%29%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%7B%7Blog%7D_P+%28Q%29%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="{{log}_P (Q)}" class="latex" /> as:</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=P%5E%60%3De%28P%2C%5C+P%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P%5E%60%3De%28P%2C%5C+P%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P%5E%60%3De%28P%2C%5C+P%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P^`=e(P,&#92; P)" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=Q%5E%60%3De%28P%2C%5C+Q%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Q%5E%60%3De%28P%2C%5C+Q%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Q%5E%60%3De%28P%2C%5C+Q%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Q^`=e(P,&#92; Q)" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=a%3D%5C+%7B%7Blog%7D_%7BP%5E%60%7D+%5Cleft%28Q%5E%60%5Cright%29%5C+in%5C+%5C+G_2%5C+%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=a%3D%5C+%7B%7Blog%7D_%7BP%5E%60%7D+%5Cleft%28Q%5E%60%5Cright%29%5C+in%5C+%5C+G_2%5C+%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=a%3D%5C+%7B%7Blog%7D_%7BP%5E%60%7D+%5Cleft%28Q%5E%60%5Cright%29%5C+in%5C+%5C+G_2%5C+%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="a=&#92; {{log}_{P^`} &#92;left(Q^`&#92;right)&#92; in&#92; &#92; G_2&#92; }" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=a%3D%7B%7Blog%7D_P+%28Q%29%5C+%7D%5C+in%5C+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=a%3D%7B%7Blog%7D_P+%28Q%29%5C+%7D%5C+in%5C+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=a%3D%7B%7Blog%7D_P+%28Q%29%5C+%7D%5C+in%5C+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="a={{log}_P (Q)&#92; }&#92; in&#92; G_1" class="latex" /></p> <p style="text-align:left;">With this we can see that the difficulty of solving the discrete log problem in both groups are the same, since the computation of <img src="https://s0.wp.com/latex.php?latex=%7B%7Blog%7D_P+%28Q%29%5C+%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%7B%7Blog%7D_P+%28Q%29%5C+%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%7B%7Blog%7D_P+%28Q%29%5C+%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="{{log}_P (Q)&#92; }" class="latex" /> have the same complexity in both groups.</p> <p><strong>Theorem 2: The Decisional Diffie-Helman is easy in <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" />.</strong></p> <p>Proof 2: Solving the Decisional Diffie-Helman problem in <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> requires distinguishing between:</p> <p><img src="https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+cP+%5Crangle+%5C+with%5C+a%2C%5C+b%2C%5C+c%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+cP+%5Crangle+%5C+with%5C+a%2C%5C+b%2C%5C+c%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+cP+%5Crangle+%5C+with%5C+a%2C%5C+b%2C%5C+c%5C+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;langle P,&#92; aP,&#92; bP,&#92; cP &#92;rangle &#92; with&#92; a,&#92; b,&#92; c&#92; &#92;in {&#92;mathbb{Z}}^*_q " class="latex" /> and<br /> <img src="https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+abP+%5Crangle+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+abP+%5Crangle+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+abP+%5Crangle+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;langle P,&#92; aP,&#92; bP,&#92; abP &#92;rangle &#92;in {&#92;mathbb{Z}}^*_q " class="latex" /><br /> If we can define <img src="https://s0.wp.com/latex.php?latex=P%2CA%2CB&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P%2CA%2CB&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P%2CA%2CB&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P,A,B" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="C" class="latex" /> as the distinguishers four values, then the distinguisher function is as follows:</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=v_1%3DMap%3Ae%28A%2C%5C+B%29%5C+and%5C+v_2%3DMap%3Ae%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=v_1%3DMap%3Ae%28A%2C%5C+B%29%5C+and%5C+v_2%3DMap%3Ae%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=v_1%3DMap%3Ae%28A%2C%5C+B%29%5C+and%5C+v_2%3DMap%3Ae%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="v_1=Map:e(A,&#92; B)&#92; and&#92; v_2=Map:e(P,&#92; C)" class="latex" /></p> <p>If we have that <img src="https://s0.wp.com/latex.php?latex=v_1%3Dv_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=v_1%3Dv_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=v_1%3Dv_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="v_1=v_2" class="latex" />, then the tuple is of type <img src="https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+abP%5Crangle+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+abP%5Crangle+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Clangle+P%2C%5C+aP%2C%5C+bP%2C%5C+abP%5Crangle+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;langle P,&#92; aP,&#92; bP,&#92; abP&#92;rangle " class="latex" /></p> <p>From this we can take <img src="https://s0.wp.com/latex.php?latex=C%3D%5C+abP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=C%3D%5C+abP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=C%3D%5C+abP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="C=&#92; abP" class="latex" /> from (Theorem 1)</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=e%28A%2C%5C+B%29%3De%28aP%2C%5C+bP%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28A%2C%5C+B%29%3De%28aP%2C%5C+bP%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28A%2C%5C+B%29%3De%28aP%2C%5C+bP%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(A,&#92; B)=e(aP,&#92; bP)" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+P%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+P%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+P%29%5E%7Bab%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="=e(P,&#92; P)^{ab}" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+abP%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+abP%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+abP%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="=e(P,&#92; abP)" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%3De%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="=e(P,&#92; C)" class="latex" /></p> <p>Since the map <img src="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e" class="latex" /> is non-degenerate we can set <img src="https://s0.wp.com/latex.php?latex=e%5Cleft%28A%2C%5C+B%5Cright%29%3De%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%5Cleft%28A%2C%5C+B%5Cright%29%3De%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%5Cleft%28A%2C%5C+B%5Cright%29%3De%28P%2C%5C+C%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e&#92;left(A,&#92; B&#92;right)=e(P,&#92; C)" class="latex" /> equivalent to <img src="https://s0.wp.com/latex.php?latex=c%5C+%3Dab&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=c%5C+%3Dab&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=c%5C+%3Dab&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="c&#92; =ab" class="latex" />. The distinguisher has thus a significant advantage given the mapping <img src="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e" class="latex" /> to decide the Decisional Diffie-Helman problem.</p> <p><strong>Theorem 3 The Bilinear Diffie-Helman Problem is easy in <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> but difficult in <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /></strong></p> <p>Fact: If we are given two groups <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> with a map between them as <img src="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e" class="latex" />, there are no polynomial time algorithm that can compute <img src="https://s0.wp.com/latex.php?latex=%5Cleft%28P%2C%5C+aP%2C%5C+bP%2C%5C+cP%5Cright%29for%5C+%5C+some%5C+a%2C%5C+b%2C%5C+c%5C+%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Cleft%28P%2C%5C+aP%2C%5C+bP%2C%5C+cP%5Cright%29for%5C+%5C+some%5C+a%2C%5C+b%2C%5C+c%5C+%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Cleft%28P%2C%5C+aP%2C%5C+bP%2C%5C+cP%5Cright%29for%5C+%5C+some%5C+a%2C%5C+b%2C%5C+c%5C+%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;left(P,&#92; aP,&#92; bP,&#92; cP&#92;right)for&#92; &#92; some&#92; a,&#92; b,&#92; c&#92; &#92;in &#92; {&#92;mathbb{Z}}^*_q" class="latex" /> in <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> given <img src="https://s0.wp.com/latex.php?latex=e%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(P,&#92; P)^{abc}" class="latex" /> in <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" />. With this we can construct the following properties between the groups as the following hard problems:</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+bP%29%5Ec%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+bP%29%5Ec%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+bP%29%5Ec%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(aP,&#92; bP)^c&#92; in&#92; G_1=e(P,&#92; P)^{abc}&#92; in&#92; G_2" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+cP%29%5Eb%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+cP%29%5Eb%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+cP%29%5Eb%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(aP,&#92; cP)^b&#92; in&#92; G_1=e(P,&#92; P)^{abc}&#92; in&#92; G_2" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=e%28bP%2C%5C+cP%29%5Ea%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28bP%2C%5C+cP%29%5Ea%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28bP%2C%5C+cP%29%5Ea%5C+in%5C+G_1%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+in%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(bP,&#92; cP)^a&#92; in&#92; G_1=e(P,&#92; P)^{abc}&#92; in&#92; G_2" class="latex" /></p> <p>Using these theories, we can now construct cryptosystems based on these hard problems found in these groups.</p> <h3>Cryptography Schemes</h3> <p>Using these complexity problems, there has been an abundance of cryptosystems developed over the years, where the two most notable are the 3-party key agreement scheme, identity based encryption and searchable encryption.</p> <h4>The 3-party Diffie-Helman key agreement scheme</h4> <p>Joux  introduced in 2000 a three-party key agreement scheme using bilinear maps utilizing the Bilinear Diffie-Helman problem for the construction.</p> <p>If we have two groups <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> with <img src="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P" class="latex" /> as a generator of <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" />, and three parties <img src="https://s0.wp.com/latex.php?latex=A%2C%5C+B%2C%5C+C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=A%2C%5C+B%2C%5C+C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=A%2C%5C+B%2C%5C+C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="A,&#92; B,&#92; C" class="latex" /> that have respective secrets <img src="https://s0.wp.com/latex.php?latex=a%2C%5C+b%2C%5C+c%5C+%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=a%2C%5C+b%2C%5C+c%5C+%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=a%2C%5C+b%2C%5C+c%5C+%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="a,&#92; b,&#92; c&#92; &#92;in &#92; {&#92;mathbb{Z}}^*_q" class="latex" /> we can construct a key agreement scheme where each party shares a secret key as follows:<br /> <img src="https://s0.wp.com/latex.php?latex=A%5C+%5Clongrightarrow+B%2C%5C+C%3AaP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=A%5C+%5Clongrightarrow+B%2C%5C+C%3AaP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=A%5C+%5Clongrightarrow+B%2C%5C+C%3AaP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="A&#92; &#92;longrightarrow B,&#92; C:aP" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=B%5C+%5Clongrightarrow+A%2C%5C+C%3AbP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=B%5C+%5Clongrightarrow+A%2C%5C+C%3AbP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=B%5C+%5Clongrightarrow+A%2C%5C+C%3AbP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="B&#92; &#92;longrightarrow A,&#92; C:bP" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=C%5C+%5Clongrightarrow+A%2C%5C+B%3AcP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=C%5C+%5Clongrightarrow+A%2C%5C+B%3AcP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=C%5C+%5Clongrightarrow+A%2C%5C+B%3AcP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="C&#92; &#92;longrightarrow A,&#92; B:cP" class="latex" /></p> <p>Using the Bilinear Diffie-Helman Problem we can define the following:</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=A&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=A&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=A&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="A" class="latex" /> computes <img src="https://s0.wp.com/latex.php?latex=e%28bP%2C%5C+cP%29%5Ea%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28bP%2C%5C+cP%29%5Ea%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28bP%2C%5C+cP%29%5Ea%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(bP,&#92; cP)^a=e(P,&#92; P)^{abc}" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=B&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=B&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=B&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="B" class="latex" /> computes <img src="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+cP%29%5Eb%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+cP%29%5Eb%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+cP%29%5Eb%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(aP,&#92; cP)^b=e(P,&#92; P)^{abc}" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="C" class="latex" /> computes <img src="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+bP%29%5Ec%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+bP%29%5Ec%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28aP%2C%5C+bP%29%5Ec%3De%28P%2C%5C+P%29%5E%7Babc%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(aP,&#92; bP)^c=e(P,&#92; P)^{abc}" class="latex" /></p> <p>All parties now have the same shared key <img src="https://s0.wp.com/latex.php?latex=K%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=K%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=K%3De%28P%2C%5C+P%29%5E%7Babc%7D%5C+%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="K=e(P,&#92; P)^{abc}&#92; &#92;in G_2" class="latex" /> that can be used as an input to a symmetric encryption scheme.</p> <h4>Identity Based Encryption</h4> <p>The idea of using private information, like an email address, as a public key has been long debated and researched, whereby the corresponding private key can be delivered to the rightful owner. The role of the key generator must be to verify the private information before distributing the private key to the owner, although a public key infrastructure would solve this problem, there were substantial research into this area to move away from a trusted third party, and having the identity as part of the encryption.</p> <p>In Dan Boneh&#8217;s and Franklin&#8217;s paper an Identity based encryption scheme was created to remove the public key infrastructure with the use of bilinear maps and the bilinear Diffie-Helman problem, incorporating a random oracle model. This protocol consists out of five phases:</p> <p><strong>Setup</strong></p> <ul> <li>Defining two groups <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> with a bilinear map <img src="https://s0.wp.com/latex.php?latex=e%3AG_%7B1%5C+%7D%5Ctimes+G_1%5C+%5Cto+%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%3AG_%7B1%5C+%7D%5Ctimes+G_1%5C+%5Cto+%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%3AG_%7B1%5C+%7D%5Ctimes+G_1%5C+%5Cto+%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e:G_{1&#92; }&#92;times G_1&#92; &#92;to &#92; G_2" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P" class="latex" /> as a generator</li> <li>A System wide secret key <img src="https://s0.wp.com/latex.php?latex=s%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=s%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=s%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="s&#92;in &#92; {&#92;mathbb{Z}}^*_q" class="latex" /></li> <li>A corresponding system wide public key <img src="https://s0.wp.com/latex.php?latex=P_%7Bpub%7D%3DsP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=P_%7Bpub%7D%3DsP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=P_%7Bpub%7D%3DsP&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="P_{pub}=sP" class="latex" />, which are not distributed</li> <li>Public hash function <img src="https://s0.wp.com/latex.php?latex=H_1%3A%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%2A%5C+%5Cto+G%5E%2A_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=H_1%3A%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%2A%5C+%5Cto+G%5E%2A_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=H_1%3A%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%2A%5C+%5Cto+G%5E%2A_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="H_1:&#92;{0,&#92; 1{&#92;}}^*&#92; &#92;to G^*_1" class="latex" />, a random oracle</li> <li>Public hash function <img src="https://s0.wp.com/latex.php?latex=H_2%3AG_2%5C+%5Cto+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=H_2%3AG_2%5C+%5Cto+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=H_2%3AG_2%5C+%5Cto+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="H_2:G_2&#92; &#92;to &#92;{0,&#92; 1{&#92;}}^n" class="latex" /> for some fixed <img src="https://s0.wp.com/latex.php?latex=n&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=n&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=n&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="n" class="latex" />, the second random oracle.</li> <li>The message space <img src="https://s0.wp.com/latex.php?latex=%5Cmathcal%7BM%7D%3D%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Cmathcal%7BM%7D%3D%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Cmathcal%7BM%7D%3D%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;mathcal{M}=&#92;{0,&#92; 1{&#92;}}^n" class="latex" /></li> <li>The cypher space <img src="https://s0.wp.com/latex.php?latex=C%3DG%5E%2A_1%5C+%5Ctimes+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=C%3DG%5E%2A_1%5C+%5Ctimes+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=C%3DG%5E%2A_1%5C+%5Ctimes+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5En&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="C=G^*_1&#92; &#92;times &#92;{0,&#92; 1{&#92;}}^n" class="latex" /></li> </ul> <p>To create a private key for a corresponding participant for <img src="https://s0.wp.com/latex.php?latex=ID%5Cin+%5C%7B0%2C1%7B%5C%7D%7D%5E%2A&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=ID%5Cin+%5C%7B0%2C1%7B%5C%7D%7D%5E%2A&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=ID%5Cin+%5C%7B0%2C1%7B%5C%7D%7D%5E%2A&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="ID&#92;in &#92;{0,1{&#92;}}^*" class="latex" /> the system computes:</p> <p><img src="https://s0.wp.com/latex.php?latex=Q_%7BID%7D%3DH_1%28ID%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Q_%7BID%7D%3DH_1%28ID%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Q_%7BID%7D%3DH_1%28ID%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Q_{ID}=H_1(ID)" class="latex" /> and<br /> <img src="https://s0.wp.com/latex.php?latex=d_%7BID%7D%3D%5C+%7BsQ%7D_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=d_%7BID%7D%3D%5C+%7BsQ%7D_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=d_%7BID%7D%3D%5C+%7BsQ%7D_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="d_{ID}=&#92; {sQ}_{ID}" class="latex" /> which is the private key that can be distributes to the user.</p> <p><strong>Encryption:</strong><br /> If we are now given a message <img src="https://s0.wp.com/latex.php?latex=m%5C+%5Cin+%5Cmathcal%7BM%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%5C+%5Cin+%5Cmathcal%7BM%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%5C+%5Cin+%5Cmathcal%7BM%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m&#92; &#92;in &#92;mathcal{M}" class="latex" /> we can compute the cyphertext as follows:</p> <ul> <li><img src="https://s0.wp.com/latex.php?latex=Q_%7BID%7D%3DH_1%5Cleft%28ID%5Cright%29%5Cin+G%5E%2A_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Q_%7BID%7D%3DH_1%5Cleft%28ID%5Cright%29%5Cin+G%5E%2A_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Q_%7BID%7D%3DH_1%5Cleft%28ID%5Cright%29%5Cin+G%5E%2A_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Q_{ID}=H_1&#92;left(ID&#92;right)&#92;in G^*_1" class="latex" /></li> <li>We then choose a random <img src="https://s0.wp.com/latex.php?latex=r%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=r%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=r%5Cin+%5C+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_q&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="r&#92;in &#92; {&#92;mathbb{Z}}^*_q" class="latex" /></li> <li>We can now compute <img src="https://s0.wp.com/latex.php?latex=g_%7BID%7D%3De%5Cleft%28Q_%7BID%7D%2C%5C+P_%7Bpub%7D%5Cright%29%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=g_%7BID%7D%3De%5Cleft%28Q_%7BID%7D%2C%5C+P_%7Bpub%7D%5Cright%29%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=g_%7BID%7D%3De%5Cleft%28Q_%7BID%7D%2C%5C+P_%7Bpub%7D%5Cright%29%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="g_{ID}=e&#92;left(Q_{ID},&#92; P_{pub}&#92;right)&#92;in G_2" class="latex" /></li> <li>And create the cyphertext: <img src="https://s0.wp.com/latex.php?latex=c%3D%28rP%2C%5C+m%5Coplus+H_2%28g%5Er_%7BID%7D%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=c%3D%28rP%2C%5C+m%5Coplus+H_2%28g%5Er_%7BID%7D%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=c%3D%28rP%2C%5C+m%5Coplus+H_2%28g%5Er_%7BID%7D%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="c=(rP,&#92; m&#92;oplus H_2(g^r_{ID}))" class="latex" /></li> </ul> <p><strong>Decryption:</strong></p> <p>When the user receives the cyphertext, he has <img src="https://s0.wp.com/latex.php?latex=c%3D%28u%2C%5C+v%29%5Cin+C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=c%3D%28u%2C%5C+v%29%5Cin+C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=c%3D%28u%2C%5C+v%29%5Cin+C&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="c=(u,&#92; v)&#92;in C" class="latex" /> and can decrypt it using his corresponding private key <img src="https://s0.wp.com/latex.php?latex=d_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=d_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=d_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="d_{ID}" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=H_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=H_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=H_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="H_2" class="latex" /></p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28d_%7BID%7D%2C%5C+u%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28d_%7BID%7D%2C%5C+u%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28d_%7BID%7D%2C%5C+u%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=v&#92;oplus H_2(e(d_{ID},&#92; u))" class="latex" /></p> <p>The main reason that both encryption and decryption works are because of the properties of pairings and the mask generated by <img src="https://s0.wp.com/latex.php?latex=H_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=H_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=H_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="H_2" class="latex" /> that is xor&#8217;ed with the plaintext. We can prove the correctness by using simple substitution from the parameters above:</p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28d_%7BID%7D%2C%5C+u%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28d_%7BID%7D%2C%5C+u%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28d_%7BID%7D%2C%5C+u%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=v&#92;oplus H_2(e(d_{ID},&#92; u))" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28sH_1%28ID%29%5C+%2C%5C+rP%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28sH_1%28ID%29%5C+%2C%5C+rP%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28sH_1%28ID%29%5C+%2C%5C+rP%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=v&#92;oplus H_2(e(sH_1(ID)&#92; ,&#92; rP))" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28H_1%28ID%29%5C+%2C%5C+P%29%29%5E%7Brs%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28H_1%28ID%29%5C+%2C%5C+P%29%29%5E%7Brs%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28H_1%28ID%29%5C+%2C%5C+P%29%29%5E%7Brs%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=v&#92;oplus H_2(e(H_1(ID)&#92; ,&#92; P))^{rs}" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28Q_%7BID%7D%5C+%2C%5C+sP%29%29%5Er&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28Q_%7BID%7D%5C+%2C%5C+sP%29%29%5Er&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28Q_%7BID%7D%5C+%2C%5C+sP%29%29%5Er&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=v&#92;oplus H_2(e(Q_{ID}&#92; ,&#92; sP))^r" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28Q_%7BID%7D%5C+%2C%5C+P_%7Bpub%7D%29%29%5Er&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28Q_%7BID%7D%5C+%2C%5C+P_%7Bpub%7D%29%29%5Er&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28e%28Q_%7BID%7D%5C+%2C%5C+P_%7Bpub%7D%29%29%5Er&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=v&#92;oplus H_2(e(Q_{ID}&#92; ,&#92; P_{pub}))^r" class="latex" /><br /> <img src="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28g%5Er_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28g%5Er_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3Dv%5Coplus+H_2%28g%5Er_%7BID%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=v&#92;oplus H_2(g^r_{ID}" class="latex" />)<br /> <img src="https://s0.wp.com/latex.php?latex=m%3D%28m%5Coplus+H_2+%28g%5Er_%7BID%7D%29%29%5Coplus+H_2%28g%5Er_%7BID%7D%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=m%3D%28m%5Coplus+H_2+%28g%5Er_%7BID%7D%29%29%5Coplus+H_2%28g%5Er_%7BID%7D%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=m%3D%28m%5Coplus+H_2+%28g%5Er_%7BID%7D%29%29%5Coplus+H_2%28g%5Er_%7BID%7D%29%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="m=(m&#92;oplus H_2 (g^r_{ID}))&#92;oplus H_2(g^r_{ID}))" class="latex" /></p> <p style="text-align:center;"><img src="https://s0.wp.com/latex.php?latex=%3Dm&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%3Dm&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%3Dm&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="=m" class="latex" /></p> <p>This scheme provides us a way to use the identity as a parameter within the encryption and decryption without the use of a third party. The usage of identity is important, as this can bind the encryption and decryption to a owner of the keys.</p> <h2>Searchable Encryption</h2> <p>Searchable encryption schemes are a well-studied topic, and there have been several constructions using order revealing and order preserving schemes. For the a simplified construction a protocol I have chosen to use an order revealing encryption schemes based on bilinear maps, this construction  is proven to be secure against adaptively chosen keyword attacks assuming the bilinear Diffie-Helman problem is intractable using the random oracle model.</p> <p>To use this construction , we will look at the following scenario:</p> <p>For this scenario, we need to define four entities that will be involved in the scheme:</p> <ul> <li>Users (1..n): responsible for the creation of messages that are sent to a trusted party for routing. These messages are sent and received via a secure channel to the messaging server.</li> <li>Third Party / Message Server: The messaging platform, that routes messages to users, and that can test weather a certain list of keywords are present in the message.</li> <li>Legal Authority (1..n): The party interested in searching the message data.</li> <li>Trusted Third Party: a Party responsible for securing the private key</li> </ul> <p>Suppose a Legal authority needs to be alerted when certain keywords are transmitted to a messaging server. For example, a user sends a message to another user that he is planning a bombing, the &#8220;bombing&#8221; needs to create an alert on the messaging server, and the legal authority needs to be sent a encryption of the message thread.</p> <p>If the messages between the users are encrypted using semantic means, then the messaging server cannot make any alerting decisions as it cannot decrypt the messages. Our goal here is to ensure that the messaging server provide a way to test whether a keyword has been transmitted between the users, without revealing the content of the messages. This can only be achievable by the legal authority providing a list of keywords to the message server that can be used, as well messaging server needs to have access to both the encryption and decryption key of the user&#8217;s messages.</p> <p>To do so, a user encrypts messages between users and messaging server using a standard public key cryptosystem and saves it in his database. The messages are appended with a Public-Key Encryption with keyword Search (PKS) of each keyword. For example, User Steve sends Peter a message <img src="https://s0.wp.com/latex.php?latex=M&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=M&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=M&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="M" class="latex" /> with words <img src="https://s0.wp.com/latex.php?latex=W_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W_1" class="latex" />, <img src="https://s0.wp.com/latex.php?latex=W_2..W_m&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W_2..W_m&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W_2..W_m&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W_2..W_m" class="latex" />, then the trusted messaging server create:<br /> <img src="https://s0.wp.com/latex.php?latex=E_%7BA_%7Bpub%7D%7D%28Message%29%5C+%5Cparallel+PKS%28A_%7Bpub%7D%2C%5C+W_1%29%5Cparallel+%5Cdots+%5Cparallel+PKS%28A_%7Bpub%7D%2C%5C+W_m%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=E_%7BA_%7Bpub%7D%7D%28Message%29%5C+%5Cparallel+PKS%28A_%7Bpub%7D%2C%5C+W_1%29%5Cparallel+%5Cdots+%5Cparallel+PKS%28A_%7Bpub%7D%2C%5C+W_m%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=E_%7BA_%7Bpub%7D%7D%28Message%29%5C+%5Cparallel+PKS%28A_%7Bpub%7D%2C%5C+W_1%29%5Cparallel+%5Cdots+%5Cparallel+PKS%28A_%7Bpub%7D%2C%5C+W_m%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="E_{A_{pub}}(Message)&#92; &#92;parallel PKS(A_{pub},&#92; W_1)&#92;parallel &#92;dots &#92;parallel PKS(A_{pub},&#92; W_m)" class="latex" /><br /> Where <img src="https://s0.wp.com/latex.php?latex=%5Cparallel+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Cparallel+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Cparallel+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;parallel " class="latex" /> denotes concatenation and <img src="https://s0.wp.com/latex.php?latex=E_%7BA_%7Bpub%7D%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=E_%7BA_%7Bpub%7D%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=E_%7BA_%7Bpub%7D%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="E_{A_{pub}}" class="latex" /> is the public key of the legal authority (Alice). The reason for this form of encryption is so that the legal authority can provide a trapdoor <img src="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="T_w" class="latex" /> to the messaging server to test whether a certain keyword has been used. Given a searchable encryption for a keyword <img src="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+%5C+W%5E%60%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+%5C+W%5E%60%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+%5C+W%5E%60%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="PKS(A_{pub},&#92; &#92; W^`)" class="latex" /> and a trapdoor <img src="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="T_w" class="latex" /> the messaging server can determine is <img src="https://s0.wp.com/latex.php?latex=W%3DW%5E%60&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W%3DW%5E%60&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W%3DW%5E%60&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W=W^`" class="latex" /> , if it&#8217;s the case that <img src="https://s0.wp.com/latex.php?latex=W%5Cneq+W%5E%60&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W%5Cneq+W%5E%60&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W%5Cneq+W%5E%60&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W&#92;neq W^`" class="latex" /> then the messaging server does not learn any information about the word. It&#8217;s also quite interesting to note that this is not a very communitive scheme, as the searchable encryption (PKS) is constructed only using the public key of the legal authority.</p> <h3>Definitions</h3> <p>Throughout this section we will refer to a negligible function as <img src="https://s0.wp.com/latex.php?latex=f%5Cmathrm%7B%3A%7D%5Cmathrm%7B%5C+%7D%5Cmathbb%7BR%7D%5Cto+%5Cmathrm%7B%5B%7D0%2C%5C+1%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=f%5Cmathrm%7B%3A%7D%5Cmathrm%7B%5C+%7D%5Cmathbb%7BR%7D%5Cto+%5Cmathrm%7B%5B%7D0%2C%5C+1%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=f%5Cmathrm%7B%3A%7D%5Cmathrm%7B%5C+%7D%5Cmathbb%7BR%7D%5Cto+%5Cmathrm%7B%5B%7D0%2C%5C+1%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="f&#92;mathrm{:}&#92;mathrm{&#92; }&#92;mathbb{R}&#92;to &#92;mathrm{[}0,&#92; 1]" class="latex" /> where <img src="https://s0.wp.com/latex.php?latex=f%5Cleft%28s%5Cright%29%3C1%2Fg%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=f%5Cleft%28s%5Cright%29%3C1%2Fg%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=f%5Cleft%28s%5Cright%29%3C1%2Fg%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="f&#92;left(s&#92;right)&lt;1/g(s)" class="latex" /> for any polynomial <img src="https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="g" class="latex" /> and sufficiently large <img src="https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="s" class="latex" />. I will start by defining a searchable public key encryption scheme (PKS) where the public key refers to the cyphertext created by the messaging server  using the public key of the legal authority , and the searchable encryption scheme (PKS) does not reveal any information about the message.</p> <p>Our goal is to enable the legal authority to send a short secret key (<img src="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="T_w" class="latex" />) for a specific word to the messaging server, so that the messaging server can locate all messages that have this keyword without revealing the word <img src="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W" class="latex" />. The secret key (<img src="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="T_w" class="latex" />) produced by the legal authority is based on the private key, and the messaging server send the message containing the words back to the legal authority, encrypted using the corresponding public key.</p> <p><strong>Definition 1.1: The following polynomial time randomized algorithms are part of a non-interactive searchable encryption scheme (PKS)</strong>.</p> <ul> <li><img src="https://s0.wp.com/latex.php?latex=KeyGen%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=KeyGen%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=KeyGen%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="KeyGen(s)" class="latex" />: For a security parameter <img src="https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="s" class="latex" /> a corresponding public/private key pair is generated (<img src="https://s0.wp.com/latex.php?latex=A_%7Bpriv%7D%2C%5C+A_%7Bpub%7D%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=A_%7Bpriv%7D%2C%5C+A_%7Bpub%7D%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=A_%7Bpriv%7D%2C%5C+A_%7Bpub%7D%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="A_{priv},&#92; A_{pub})" class="latex" /> by the legal authority and the public key is sent to the messaging server.</li> <li><img src="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="PKS(A_{pub},&#92; W)" class="latex" />: For a word <img src="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W" class="latex" /> in the message, a searchable encryption (PKS) is generated using the public key <img src="https://s0.wp.com/latex.php?latex=A_%7Bpub%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=A_%7Bpub%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=A_%7Bpub%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="A_{pub}" class="latex" /> of the legal authority. We will denote the <img src="https://s0.wp.com/latex.php?latex=PKS&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=PKS&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=PKS&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="PKS" class="latex" /> function as <img src="https://s0.wp.com/latex.php?latex=S&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=S&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=S&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="S" class="latex" /></li> <li><img src="https://s0.wp.com/latex.php?latex=Trapdoor%28A_%7Bpriv%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Trapdoor%28A_%7Bpriv%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Trapdoor%28A_%7Bpriv%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Trapdoor(A_{priv},&#92; W)" class="latex" />: Given the private key of the legal authority, a certain word <img src="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W" class="latex" /> produces a trapdoor <img src="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="T_w" class="latex" />.</li> <li><img src="https://s0.wp.com/latex.php?latex=Test%28A_%7Bpub%7D%2C%5C+S%2C%5C+T_W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Test%28A_%7Bpub%7D%2C%5C+S%2C%5C+T_W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Test%28A_%7Bpub%7D%2C%5C+S%2C%5C+T_W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Test(A_{pub},&#92; S,&#92; T_W)" class="latex" />: Given the public key of the legal authority <img src="https://s0.wp.com/latex.php?latex=A_%7Bpub%7D%2C%5C+%5C+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=A_%7Bpub%7D%2C%5C+%5C+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=A_%7Bpub%7D%2C%5C+%5C+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="A_{pub},&#92; &#92; " class="latex" />and a searchable encryption <img src="https://s0.wp.com/latex.php?latex=S&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=S&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=S&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="S" class="latex" /> on the messaging server, a trapdoor <img src="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=T_w&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="T_w" class="latex" /> outputs `yes&#8217; if <img src="https://s0.wp.com/latex.php?latex=W%3DW%27&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W%3DW%27&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W%3DW%27&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W=W&#039;" class="latex" /></li> </ul> <p>The legal authority will run the <img src="https://s0.wp.com/latex.php?latex=KeyGen&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=KeyGen&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=KeyGen&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="KeyGen" class="latex" /> algorithm and generate its public/ private key pairs, and then use the <img src="https://s0.wp.com/latex.php?latex=Trapdoor&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Trapdoor&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Trapdoor&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Trapdoor" class="latex" /> function to generate a series of trapdoors for words <img src="https://s0.wp.com/latex.php?latex=W_1..%5C+W_i&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W_1..%5C+W_i&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W_1..%5C+W_i&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W_1..&#92; W_i" class="latex" /> that it wants to search for. The messaging server will then use the <img src="https://s0.wp.com/latex.php?latex=Test&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Test&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Test&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Test" class="latex" /> function to determine whether a given message has a keyword <img src="https://s0.wp.com/latex.php?latex=W_i&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W_i&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W_i&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W_i" class="latex" />.</p> <h3>Construction</h3> <p>For the definition above I will provide an efficient construction using bilinear maps based on a variant of the Decision Diffie-Hellman assumption with identity based encryption</p> <p>We will use two groups <img src="https://s0.wp.com/latex.php?latex=G_1%2C%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1%2C%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1%2C%5C+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1,&#92; G_2" class="latex" /> of prime order <img src="https://s0.wp.com/latex.php?latex=p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="p" class="latex" /> and a bilinear map <img src="https://s0.wp.com/latex.php?latex=e%3AG_1%5Ctimes+G_1%5Cto+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%3AG_1%5Ctimes+G_1%5Cto+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%3AG_1%5Ctimes+G_1%5Cto+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e:G_1&#92;times G_1&#92;to G_2" class="latex" /> between the two groups. This map satisfies the following three properties where the size of <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /> is determined by a security parameter:</p> <ul> <li><strong>Computable:</strong> If you are given two elements in <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> as <img src="https://s0.wp.com/latex.php?latex=g%2C%5C+h&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=g%2C%5C+h&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=g%2C%5C+h&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="g,&#92; h" class="latex" /> then there exists a polynomial time algorithm to compute the map <img src="https://s0.wp.com/latex.php?latex=e%28g%2C%5C+h%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28g%2C%5C+h%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28g%2C%5C+h%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(g,&#92; h)" class="latex" /> in <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /></li> <li><strong>Bilinear:</strong> for all integers in the prime order, we have a map <img src="https://s0.wp.com/latex.php?latex=e%28g%5Ex%2C%5C+g%5Ey%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28g%5Ex%2C%5C+g%5Ey%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28g%5Ex%2C%5C+g%5Ey%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(g^x,&#92; g^y)" class="latex" /> = <img src="https://s0.wp.com/latex.php?latex=e%28g%2C%5C+g%29%5E%7Bxy%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28g%2C%5C+g%29%5E%7Bxy%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28g%2C%5C+g%29%5E%7Bxy%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(g,&#92; g)^{xy}" class="latex" /></li> <li><strong>Non-degenerate:</strong> if <img src="https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="g" class="latex" /> is a generator of <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" /> then the map <img src="https://s0.wp.com/latex.php?latex=e%28g%2C%5C+g%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=e%28g%2C%5C+g%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=e%28g%2C%5C+g%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="e(g,&#92; g)" class="latex" /> is a generator of <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" /></li> </ul> <p>From this we can build a non-interactive searchable encryption scheme based on bilinear maps. For this we will need two hash function, or random oracles in each group as:</p> <p><img src="https://s0.wp.com/latex.php?latex=H_1%3A%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%2A%5Cto+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=H_1%3A%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%2A%5Cto+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=H_1%3A%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%2A%5Cto+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="H_1:&#92;{0,&#92; 1{&#92;}}^*&#92;to G_1" class="latex" /> and <img src="https://s0.wp.com/latex.php?latex=H_2%3AG_2%5Cto+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%7B%7Blog+p%5C+%7D%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=H_2%3AG_2%5Cto+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%7B%7Blog+p%5C+%7D%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=H_2%3AG_2%5Cto+%5C%7B0%2C%5C+1%7B%5C%7D%7D%5E%7B%7Blog+p%5C+%7D%7D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="H_2:G_2&#92;to &#92;{0,&#92; 1{&#92;}}^{{log p&#92; }}" class="latex" /></p> <p>Based on definition 1.1 we will construct the scheme using the same model based on the Dan Boneh Searchable Encryption Scheme:</p> <ul> <li><img src="https://s0.wp.com/latex.php?latex=KeyGen%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=KeyGen%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=KeyGen%28s%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="KeyGen(s)" class="latex" />: The security parameter <img src="https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=s&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="s" class="latex" /> determines the size of the prime order <img src="https://s0.wp.com/latex.php?latex=p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="p" class="latex" /> of the groups <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" />and <img src="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_2" class="latex" />. The legal authority then also selects a random <img src="https://s0.wp.com/latex.php?latex=%5Calpha+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Calpha+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Calpha+%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;alpha &#92;in {&#92;mathbb{Z}}^*_p" class="latex" /> and a generator <img src="https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=g&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="g" class="latex" /> of <img src="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="G_1" class="latex" />. The Output is a public key <img src="https://s0.wp.com/latex.php?latex=A_%7Bpub%7D%3D%5Bg%2C%5C+h%3Dg%5E%7B%5Calpha+%7D%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=A_%7Bpub%7D%3D%5Bg%2C%5C+h%3Dg%5E%7B%5Calpha+%7D%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=A_%7Bpub%7D%3D%5Bg%2C%5C+h%3Dg%5E%7B%5Calpha+%7D%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="A_{pub}=[g,&#92; h=g^{&#92;alpha }]" class="latex" /> and a private key <img src="https://s0.wp.com/latex.php?latex=%5Calpha+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=%5Calpha+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=%5Calpha+&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="&#92;alpha " class="latex" />. The public key is then distributed to the messaging server.</li> <li><img src="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="PKS(A_{pub},&#92; W)" class="latex" />: Using the public key and a word <img src="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=W&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="W" class="latex" />, the messaging server computes a bilinear map <img src="https://s0.wp.com/latex.php?latex=t%5C+%3De%28H_1%28W%29%2C%5C+h%5Er%29%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=t%5C+%3De%28H_1%28W%29%2C%5C+h%5Er%29%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=t%5C+%3De%28H_1%28W%29%2C%5C+h%5Er%29%5Cin+G_2&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="t&#92; =e(H_1(W),&#92; h^r)&#92;in G_2" class="latex" /> using the random oracle and a random <img src="https://s0.wp.com/latex.php?latex=r%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=r%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=r%5Cin+%7B%5Cmathbb%7BZ%7D%7D%5E%2A_p&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="r&#92;in {&#92;mathbb{Z}}^*_p" class="latex" />. Then outputs a searchable encryption <img src="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29%3D%5Bg%5Er%2C%5C+H_2%28t%29%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29%3D%5Bg%5Er%2C%5C+H_2%28t%29%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=PKS%28A_%7Bpub%7D%2C%5C+W%29%3D%5Bg%5Er%2C%5C+H_2%28t%29%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="PKS(A_{pub},&#92; W)=[g^r,&#92; H_2(t)]" class="latex" />.</li> <li><img src="https://s0.wp.com/latex.php?latex=Trapdoor%28A_%7Bpriv%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Trapdoor%28A_%7Bpriv%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Trapdoor%28A_%7Bpriv%7D%2C%5C+W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Trapdoor(A_{priv},&#92; W)" class="latex" />: The legal authority uses the random oracle and its private key to generate a trapdoor <img src="https://s0.wp.com/latex.php?latex=T_w%3DH_1%28W%29%5E%7B%5Calpha+%7D%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=T_w%3DH_1%28W%29%5E%7B%5Calpha+%7D%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=T_w%3DH_1%28W%29%5E%7B%5Calpha+%7D%5Cin+G_1&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="T_w=H_1(W)^{&#92;alpha }&#92;in G_1" class="latex" /></li> <li><img src="https://s0.wp.com/latex.php?latex=Test%28A_%7Bpub%7D%2C%5C+S%2C%5C+T_W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=Test%28A_%7Bpub%7D%2C%5C+S%2C%5C+T_W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=Test%28A_%7Bpub%7D%2C%5C+S%2C%5C+T_W%29&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="Test(A_{pub},&#92; S,&#92; T_W)" class="latex" />: When the messaging server receives a Test function from the legal authority as <img src="https://s0.wp.com/latex.php?latex=S%3D%5BA%2C%5C+B%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=S%3D%5BA%2C%5C+B%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=S%3D%5BA%2C%5C+B%5D&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="S=[A,&#92; B]" class="latex" /> it can test if <img src="https://s0.wp.com/latex.php?latex=H_2%28e%28T_w%2C%5C+A%29%29%3DB&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002" srcset="https://s0.wp.com/latex.php?latex=H_2%28e%28T_w%2C%5C+A%29%29%3DB&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002 1x, https://s0.wp.com/latex.php?latex=H_2%28e%28T_w%2C%5C+A%29%29%3DB&#038;bg=FFFFFF&#038;fg=000&#038;s=0&#038;c=20201002&#038;zoom=4.5 4x" alt="H_2(e(T_w,&#92; A))=B" class="latex" /></li> </ul> <p>The construction of the scheme can be viewed as a derivative of Identity Based Encryption with a limited number of identities. Using this scheme, the messaging server needs to have the ability to create an index of the words that&#8217;s exchanged between the users of the system that can be tested. Unfortunately, this construction has several issues relating to the sharing of the creation of the trapdoor function. None the less, the use of bi-linear maps and hash functions allows us to identify encrypted words without revealing what they actually are.</p> <p> </p> <div id="atatags-702045271-67420daf8d9c5"></div> <script> __ATA.cmd.push(function() { __ATA.initDynamicSlot({ id: 'atatags-702045271-67420daf8d9c5', location: 120, formFactor: '001', label: { text: 'Advertisements', }, creative: { reportAd: { text: 'Report this ad', }, privacySettings: { text: 'Privacy', } } }); }); </script> </div><!-- .entry-content --> <footer class="entry-footer default-max-width"> <span class="byline"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 7.5C15 9.15685 13.6569 10.5 12 10.5C10.3431 10.5 9 9.15685 9 7.5C9 5.84315 10.3431 4.5 12 4.5C13.6569 4.5 15 5.84315 15 7.5ZM16.5 7.5C16.5 9.98528 14.4853 12 12 12C9.51472 12 7.5 9.98528 7.5 7.5C7.5 5.01472 9.51472 3 12 3C14.4853 3 16.5 5.01472 16.5 7.5ZM19.5 19.5V16.245C19.5 14.729 18.271 13.5 16.755 13.5L7.245 13.5C5.72898 13.5 4.5 14.729 4.5 16.245L4.5 19.5H6L6 16.245C6 15.5574 6.5574 15 7.245 15L16.755 15C17.4426 15 18 15.5574 18 16.245V19.5H19.5Z" fill="currentColor"/></svg><span class="screen-reader-text">Posted by</span><span class="author vcard"><a class="url fn n" href="https://arthurvandermerwe.com/author/arthurvdmerwe/">arthurvdmerwe</a></span></span><span class="posted-on"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.5 7.5H4.5V19.0005C4.5 19.2764 4.72363 19.5 4.9995 19.5H19.0005C19.2764 19.5 19.5 19.2764 19.5 19.0005V7.5ZM3 7.5V4.9995V4.995C3 3.89319 3.89319 3 4.995 3H4.9995H19.0005H19.005C20.1068 3 21 3.89319 21 4.995V4.9995V7.5V19.0005C21 20.1048 20.1048 21 19.0005 21H4.9995C3.89521 21 3 20.1048 3 19.0005V7.5ZM7.5 10.5H9V12H7.5V10.5ZM9 15H7.5V16.5H9V15ZM11.25 10.5H12.75V12H11.25V10.5ZM12.75 15H11.25V16.5H12.75V15ZM15 10.5H16.5V12H15V10.5ZM16.5 15H15V16.5H16.5V15Z" fill="currentColor"/></svg><a href="https://arthurvandermerwe.com/2017/12/29/from-bi-linear-maps-to-searchable-encryption/" rel="bookmark"><time class="entry-date published" datetime="2017-12-29T23:58:48+11:00">December 29, 2017</time><time class="updated" datetime="2018-09-25T22:33:08+10:00">September 25, 2018</time></a></span><span class="cat-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.1979 8.25L11.2098 6.27363C11.1259 6.10593 10.9545 6 10.767 6H4.995C4.72162 6 4.5 6.22162 4.5 6.495V17.505C4.5 17.7784 4.72162 18 4.995 18H19.0005C19.2764 18 19.5 17.7764 19.5 17.5005V8.7495C19.5 8.47363 19.2764 8.25 19.0005 8.25H12.1979ZM13.125 6.75H19.0005C20.1048 6.75 21 7.64521 21 8.7495V17.5005C21 18.6048 20.1048 19.5 19.0005 19.5H4.995C3.89319 19.5 3 18.6068 3 17.505V6.495C3 5.39319 3.89319 4.5 4.995 4.5H10.767C11.5227 4.5 12.2135 4.92693 12.5514 5.60281L13.125 6.75Z" fill="currentColor"/></svg><span class="screen-reader-text">Posted in</span><a href="https://arthurvandermerwe.com/category/cryptography-2/" rel="category tag">Cryptography</a></span><span class="tags-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M3 12.2045C3 12.5941 3.15158 12.9684 3.42267 13.2482L9.71878 19.747C11.0769 21.1489 13.3201 21.1667 14.7003 19.7865L19.7873 14.6995C21.1677 13.319 21.1497 11.0753 19.7471 9.71731L13.2459 3.42238C12.9661 3.15147 12.5919 3 12.2025 3H4.5C3.67157 3 3 3.67157 3 4.5V12.2045ZM12.2025 4.5H4.5V12.2045L10.7961 18.7033C11.5714 19.5035 12.8518 19.5137 13.6396 18.7258L18.7266 13.6388C19.5146 12.8509 19.5043 11.5701 18.7037 10.7949L12.2025 4.5ZM8.4975 9.495C9.0484 9.495 9.495 9.0484 9.495 8.4975C9.495 7.9466 9.0484 7.5 8.4975 7.5C7.9466 7.5 7.5 7.9466 7.5 8.4975C7.5 9.0484 7.9466 9.495 8.4975 9.495Z" fill="currentColor"/></svg><span class="screen-reader-text">Tags:</span><a href="https://arthurvandermerwe.com/tag/bi-linear-maps/" rel="tag">bi linear maps</a>, <a href="https://arthurvandermerwe.com/tag/cryptography/" rel="tag">cryptography</a></span><span class="comments-link"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.0458 15.0001L5.99998 17.697L5.99999 6.49478C5.99999 6.22141 6.2216 5.99979 6.49498 5.99978L17.505 5.99951C17.7784 5.9995 18 6.22113 18 6.49451L18 14.5046C18 14.778 17.7784 14.9996 17.505 14.9996L10.0458 15.0001ZM10.5 16.5L17.5051 16.4996C18.6069 16.4995 19.5 15.6063 19.5 14.5046L19.5 6.49451C19.5 5.39268 18.6068 4.49948 17.5049 4.49951L6.49494 4.49978C5.39315 4.49981 4.49999 5.39299 4.49999 6.49478L4.49998 18.3483C4.49998 18.9842 5.01549 19.4997 5.6514 19.4997C5.8787 19.4997 6.10091 19.4324 6.29004 19.3063L10.5 16.5Z" fill="currentColor"/></svg><a href="https://arthurvandermerwe.com/2017/12/29/from-bi-linear-maps-to-searchable-encryption/#respond">Leave a comment<span class="screen-reader-text"> on From Bi-Linear Maps to Searchable&nbsp;Encryption</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-${ID} --> </main><!-- #main --> </section><!-- #primary --> </div><!-- #content --> <footer id="colophon" class="site-footer default-max-width" role="contentinfo" aria-label="Footer"> <div class="widget-area"> <div class="widget-column footer-widget-1"> <section id="recent-posts-4" class="widget widget_recent_entries"> <h2 class="widget-title">Recent Posts</h2><nav aria-label="Recent Posts"> <ul> <li> <a href="https://arthurvandermerwe.com/2020/02/16/a-brief-comparison-of-as2805-and-key-blocks/">A brief comparison of AS2805 and (TR-31) Key&nbsp;Blocks</a> </li> <li> <a href="https://arthurvandermerwe.com/2020/01/19/what-is-the-random-oracle-model-and-why-should-you-care-part-5-a-few-thoughts-on-cryptographic-engineering/">What is the random oracle model and why should you care? (Part 5) — A Few Thoughts on Cryptographic&nbsp;Engineering</a> </li> <li> <a href="https://arthurvandermerwe.com/2019/02/21/attack-of-the-week-searchable-encryption-and-the-ever-expanding-leakage-function-a-few-thoughts-on-cryptographic-engineering/">Attack of the week: searchable encryption and the ever-expanding leakage function — A Few Thoughts on Cryptographic&nbsp;Engineering</a> </li> <li> <a href="https://arthurvandermerwe.com/2017/12/29/from-bi-linear-maps-to-searchable-encryption/">From Bi-Linear Maps to Searchable&nbsp;Encryption</a> </li> <li> <a href="https://arthurvandermerwe.com/2017/02/10/mutual-authentication-using-certificates/">Mutual Authentication using&nbsp;Certificates</a> </li> <li> <a href="https://arthurvandermerwe.com/2016/09/04/importing-zpk-and-zmk-into-thales-payshield-9000-hsm/">Importing ZPK and ZMK into Thales Payshield 9000&nbsp;HSM</a> </li> <li> <a href="https://arthurvandermerwe.com/2016/07/23/signature-and-certificate-based-key-injection-for-atm/">Signature and Certificate based key injection for&nbsp;ATM</a> </li> <li> <a href="https://arthurvandermerwe.com/2015/07/31/the-refund-vulnerability-of-as2805-and-eftpos/">The Refund vulnerability of AS2805 and&nbsp;EFTPOS</a> </li> <li> <a href="https://arthurvandermerwe.com/2015/05/30/dukpt-explained-with-examples/">DUKPT Explained with&nbsp;examples</a> </li> <li> <a href="https://arthurvandermerwe.com/2015/05/28/eftpos-initialisation-using-rsa-cryptography/">EFTPOS Initialisation using RSA&nbsp;Cryptography</a> </li> <li> <a href="https://arthurvandermerwe.com/2015/05/20/atm-pin-encryption-using-3des/">ATM Pin encryption using&nbsp;3DES</a> </li> <li> <a href="https://arthurvandermerwe.com/2015/03/03/implementing-as2805-part-3-using-a-thales-9000-and-python/">Implementing AS2805 Part 6 Host to Host Encryption using a Thales 9000 and&nbsp;Python</a> </li> <li> <a href="https://arthurvandermerwe.com/2015/01/04/typical-cryptography-in-as2805-explained/">Typical Cryptography in AS2805&nbsp;Explained</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/12/02/thales-9000-and-as2805-interchange-commands/">Thales 9000 with AS2805 Interchange &amp; RSA EFTPOS&nbsp;Commands.</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/08/06/thales-key-exchange-examples-and-troubleshooting/">Thales Key Exchange Examples and&nbsp;Troubleshooting</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/08/06/testing-dukpt/">Testing DUKPT</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/07/06/parsing-as25058583-messages/">Parsing AS2505/8583 Messages</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/06/25/dynamic-key-exchange-models/">Dynamic Key Exchange&nbsp;Models</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/06/25/doing-pin-translation/">Doing PIN Translation with&nbsp;DUKPT</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/06/25/credit-vs-debit/">Credit vs Debit</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/06/22/as2805-standards-for-eft/">AS2805 Standards for&nbsp;EFT</a> </li> <li> <a href="https://arthurvandermerwe.com/2014/06/22/trace-your-atm-transactions/">Trace your ATM&nbsp;Transactions</a> </li> </ul> </nav></section><section id="archives-6" class="widget widget_archive"><h2 class="widget-title">Archives</h2><nav aria-label="Archives"> <ul> <li><a href='https://arthurvandermerwe.com/2020/02/'>February 2020</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2020/01/'>January 2020</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2019/02/'>February 2019</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2017/12/' aria-current="page">December 2017</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2017/02/'>February 2017</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2016/09/'>September 2016</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2016/07/'>July 2016</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2015/07/'>July 2015</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2015/05/'>May 2015</a>&nbsp;(3)</li> <li><a href='https://arthurvandermerwe.com/2015/03/'>March 2015</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2015/01/'>January 2015</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2014/12/'>December 2014</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2014/08/'>August 2014</a>&nbsp;(2)</li> <li><a href='https://arthurvandermerwe.com/2014/07/'>July 2014</a>&nbsp;(1)</li> <li><a href='https://arthurvandermerwe.com/2014/06/'>June 2014</a>&nbsp;(5)</li> </ul> </nav></section><section id="wpcom_social_media_icons_widget-4" class="widget widget_wpcom_social_media_icons_widget"><h2 class="widget-title">Social</h2><ul><li><a href="https://www.linkedin.com/in/arthur-van-der-merwe-a7a96a27" class="genericon genericon-linkedin" target="_blank"><span class="screen-reader-text">LinkedIn</span></a></li><li><a href="https://github.com/Arthurvdmerwe" class="genericon genericon-github" target="_blank"><span class="screen-reader-text">GitHub</span></a></li></ul></section> </div> </div><!-- .widget-area --> <div class="site-info"> <a class="site-name" href="https://arthurvandermerwe.com/" rel="home">Cryptography &amp; Payments</a><span class="comma">,</span> <a href="https://wordpress.com/?ref=footer_website" rel="nofollow">Create a free website or blog at WordPress.com.</a> </div><!-- .site-info --> </footer><!-- #colophon --> </div><!-- #page --> <!-- --> <script src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=2024474048849247f5660a2d05b85c6fc286379897f30a1061ad46e7f037e059ed7fe7" id="grofiles-cards-js"></script> <script id="wpgroho-js-extra"> var WPGroHo = {"my_hash":""}; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s2.wp.com/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script> <script> // Initialize and attach hovercards to all gravatars ( function() { function init() { if ( typeof Gravatar === 'undefined' ) { return; } if ( typeof Gravatar.init !== 'function' ) { return; } Gravatar.profile_cb = function ( hash, id ) { WPGroHo.syncProfileData( hash, id ); }; Gravatar.my_hash = WPGroHo.my_hash; Gravatar.init( 'body', '#wp-admin-bar-my-account', { i18n: { 'Edit your profile': 'Edit your profile', 'View profile': 'View profile', 'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.', 'Profile not found.': 'Profile not found.', 'Too Many Requests.': 'Too Many Requests.', 'Internal Server Error.': 'Internal Server Error.', }, } ); } if ( document.readyState !== 'loading' ) { init(); } else { document.addEventListener( 'DOMContentLoaded', init ); } } )(); </script> <div style="display:none"> </div> <div id="actionbar" style="display: none;" class="actnbr-pub-seedlet actnbr-has-follow"> <ul> <li class="actnbr-btn actnbr-hidden"> <a class="actnbr-action actnbr-actn-follow " href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg> <span>Subscribe</span> </a> <a class="actnbr-action actnbr-actn-following no-display" href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg> <span>Subscribed</span> </a> <div class="actnbr-popover tip tip-top-left actnbr-notice" id="follow-bubble"> <div class="tip-arrow"></div> <div class="tip-inner actnbr-follow-bubble"> <ul> <li class="actnbr-sitename"> <a href="https://arthurvandermerwe.com"> <img loading='lazy' alt='' src='https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=50' srcset='https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=50 1x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=75 1.5x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=100 2x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=150 3x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=200 4x' class='avatar avatar-50' height='50' width='50' /> Cryptography &amp; Payments </a> </li> <div class="actnbr-message no-display"></div> <form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;"> <div class="actnbr-follow-count">Join 30 other subscribers</div> <div> <input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address" /> </div> <input type="hidden" name="action" value="subscribe" /> <input type="hidden" name="blog_id" value="70204527" /> <input type="hidden" name="source" value="https://arthurvandermerwe.com/2017/12/" /> <input type="hidden" name="sub-type" value="actionbar-follow" /> <input type="hidden" id="_wpnonce" name="_wpnonce" value="e65172ef6c" /> <div class="actnbr-button-wrap"> <button type="submit" value="Sign me up"> Sign me up </button> </div> </form> <li class="actnbr-login-nudge"> <div> Already have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Farthurvandermerwe.com%252F2017%252F12%252F29%252Ffrom-bi-linear-maps-to-searchable-encryption%252F">Log in now.</a> </div> </li> </ul> </div> </div> </li> <li class="actnbr-ellipsis actnbr-hidden"> <svg class="gridicon gridicons-ellipsis" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"/></g></svg> <div class="actnbr-popover tip tip-top-left actnbr-more"> <div class="tip-arrow"></div> <div class="tip-inner"> <ul> <li class="actnbr-sitename"> <a href="https://arthurvandermerwe.com"> <img loading='lazy' alt='' src='https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=50' srcset='https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=50 1x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=75 1.5x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=100 2x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=150 3x, https://arthurvandermerwe.com/wp-content/uploads/2018/09/cropped-arthur4.png?w=200 4x' class='avatar avatar-50' height='50' width='50' /> Cryptography &amp; Payments </a> </li> <li class="actnbr-folded-customize"> <a href="https://arthurvandermerwe.wordpress.com/wp-admin/customize.php?url=https%3A%2F%2Farthurvandermerwe.wordpress.com%2F2017%2F12%2F"> <svg class="gridicon gridicons-customize" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M2 6c0-1.505.78-3.08 2-4 0 .845.69 2 2 2 1.657 0 3 1.343 3 3 0 .386-.08.752-.212 1.09.74.594 1.476 1.19 2.19 1.81L8.9 11.98c-.62-.716-1.214-1.454-1.807-2.192C6.753 9.92 6.387 10 6 10c-2.21 0-4-1.79-4-4zm12.152 6.848l1.34-1.34c.607.304 1.283.492 2.008.492 2.485 0 4.5-2.015 4.5-4.5 0-.725-.188-1.4-.493-2.007L18 9l-2-2 3.507-3.507C18.9 3.188 18.225 3 17.5 3 15.015 3 13 5.015 13 7.5c0 .725.188 1.4.493 2.007L3 20l2 2 6.848-6.848c1.885 1.928 3.874 3.753 5.977 5.45l1.425 1.148 1.5-1.5-1.15-1.425c-1.695-2.103-3.52-4.092-5.448-5.977z"/></g></svg> <span>Customize</span> </a> </li> <li class="actnbr-folded-follow"> <a class="actnbr-action actnbr-actn-follow " href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg> <span>Subscribe</span> </a> <a class="actnbr-action actnbr-actn-following no-display" href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg> <span>Subscribed</span> </a> </li> <li class="actnbr-signup"><a href="https://wordpress.com/start/">Sign up</a></li> <li class="actnbr-login"><a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Farthurvandermerwe.com%252F2017%252F12%252F29%252Ffrom-bi-linear-maps-to-searchable-encryption%252F">Log in</a></li> <li class="flb-report"> <a href="https://wordpress.com/abuse/?report_url=https://arthurvandermerwe.com" target="_blank" rel="noopener noreferrer"> Report this content </a> </li> <li class="actnbr-reader"> <a href="https://wordpress.com/read/feeds/22152776"> View site in Reader </a> </li> <li class="actnbr-subs"> <a href="https://subscribe.wordpress.com/">Manage subscriptions</a> </li> <li class="actnbr-fold"><a href="">Collapse this bar</a></li> </ul> </div> </div> </li> </ul> </div> <script> window.addEventListener( "load", function( event ) { var link = document.createElement( "link" ); link.href = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.css?v=20241015"; link.type = "text/css"; link.rel = "stylesheet"; document.head.appendChild( link ); var script = document.createElement( "script" ); script.src = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.js?v=20231122"; script.defer = true; document.body.appendChild( script ); } ); </script> <link crossorigin='anonymous' rel='stylesheet' id='all-css-0-2' href='https://s2.wp.com/_static/??-eJyNzDEOgzAMheELNTUZQF2qHgVFjhWZJk5UO0K9fYtgZGB7//A+WJvDKkZiULpruScWhYWsBXwfDdoFZhaEREIf/h/0fN5R9QaXzVJjz6SwckxkClqRQ3aFIge322rfTBv7Kk8/PUbvx2Ealh973US5&cssminify=yes' type='text/css' media='all' /> <script crossorigin='anonymous' type='text/javascript' src='https://s0.wp.com/_static/??/wp-content/js/mobile-useragent-info.js,/wp-content/blog-plugins/wordads-classes/js/watl.js,/wp-content/themes/pub/seedlet/assets/js/primary-navigation.js?m=1731430359j'></script> <script> /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); </script> <script type="text/javascript"> (function () { var wpcom_reblog = { source: 'toolbar', toggle_reblog_box_flair: function (obj_id, post_id) { // Go to site selector. This will redirect to their blog if they only have one. const postEndpoint = `https://wordpress.com/post`; // Ideally we would use the permalink here, but fortunately this will be replaced with the // post permalink in the editor. const originalURL = `${ document.location.href }?page_id=${ post_id }`; const url = postEndpoint + '?url=' + encodeURIComponent( originalURL ) + '&is_post_share=true' + '&v=5'; const redirect = function () { if ( ! window.open( url, '_blank' ) ) { location.href = url; } }; if ( /Firefox/.test( navigator.userAgent ) ) { setTimeout( redirect, 0 ); } else { redirect(); } }, }; window.wpcom_reblog = wpcom_reblog; })(); </script> <script type="text/javascript"> // <![CDATA[ (function() { try{ if ( window.external &&'msIsSiteMode' in window.external) { if (window.external.msIsSiteMode()) { var jl = document.createElement('script'); jl.type='text/javascript'; jl.async=true; jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(jl, s); } } }catch(e){} })(); // ]]> </script><script src="//stats.wp.com/w.js?67" defer></script> <script type="text/javascript"> _tkq = window._tkq || []; _stq = window._stq || []; _tkq.push(['storeContext', {'blog_id':'70204527','blog_tz':'11','user_lang':'en','blog_lang':'en','user_id':'0'}]); _stq.push(['view', {'blog':'70204527','v':'wpcom','tz':'11','user_id':'0','subd':'arthurvandermerwe'}]); _stq.push(['extra', {'crypt':'UE5VTUIlVktzQVNtcFdrRlVoJUNZcTJRQnxOUXcyQXBGVjdTZVlnSlY3P0dzcjlxYzIrNExdSDFwWT1HLEN1ZUpvZWZWfnIxLnNwSG1MMjB6UkUwTDV0P35fU3ddP0hxbGhPW2NDLHBILVNddXQ/OXRNfmcwZXZPVzk4P2lyZD8/N0IxQmNlMnRMQ2pIbnxLb342VWg1UjRhUVg/N051bi5hW0hOWTBfd1Qyd2wvMCtwdUF+T1l1LS5SUlomS2lDTGUlK2VYX1BlVXhSdVQyckssUCtVRzEmfHFKU2tMU2NJU1JZTVU='}]); _stq.push([ 'clickTrackerInit', '70204527', '0' ]); </script> <noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript> <script> ( function() { function getMobileUserAgentInfo() { if ( typeof wpcom_mobile_user_agent_info === 'object' ) { wpcom_mobile_user_agent_info.init(); var mobileStatsQueryString = ''; if ( wpcom_mobile_user_agent_info.matchedPlatformName !== false ) { mobileStatsQueryString += '&x_' + 'mobile_platforms' + '=' + wpcom_mobile_user_agent_info.matchedPlatformName; } if ( wpcom_mobile_user_agent_info.matchedUserAgentName !== false ) { mobileStatsQueryString += '&x_' + 'mobile_devices' + '=' + wpcom_mobile_user_agent_info.matchedUserAgentName; } if ( wpcom_mobile_user_agent_info.isIPad() ) { mobileStatsQueryString += '&x_' + 'ipad_views' + '=' + 'views'; } if ( mobileStatsQueryString != '' ) { new Image().src = document.location.protocol + '//pixel.wp.com/g.gif?v=wpcom-no-pv' + mobileStatsQueryString + '&baba=' + Math.random(); } } } document.addEventListener( 'DOMContentLoaded', getMobileUserAgentInfo ); } )(); </script> </body> </html>

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