{"id":400,"date":"2018-10-31T09:27:41","date_gmt":"2018-10-31T09:27:41","guid":{"rendered":"http:\/\/nebulablog.wpengine.com\/?p=30"},"modified":"2020-12-28T19:04:46","modified_gmt":"2020-12-29T00:04:46","slug":"re-encryption-by-proxy-and-homomorphic-encryption","status":"publish","type":"post","link":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/","title":{"rendered":"Re-encryption by Proxy and Homomorphic Encryption"},"content":{"rendered":"\n<p>Data use and data privacy are often in conflict. For example, if we all openly shared our health data with researchers, it would speed up work on new health technologies and cures. But we are rightly afraid of what a malicious actor could do with our raw health data. That is where the field of cryptography can come to the rescue.&nbsp;<em>Re-encryption by proxy<\/em>&nbsp;and&nbsp;<em>homomorphic encryption<\/em>&nbsp;are tools that will allow us to keep our cake and eat it too, when it comes to data use and data privacy.<\/p>\n\n\n\n<p>Re-encryption by proxy allows a data owner to encrypt their data once, and subsequently share it securely with buyers, as often as they wish, using the services of a third party. Homomorphic encryption allows a data buyer to run computations on encrypted data stored and computed on by untrusted third parties, and obtain results or insights on that data, while not revealing any individual\u2019s data in unencrypted form.<\/p>\n\n\n\n<p>These techniques serve as the building blocks of more complex crypto systems (for example&nbsp;<a href=\"https:\/\/petsymposium.org\/2017\/papers\/issue4\/paper54-2017-4-source.pdf\" rel=\"noreferrer noopener\" target=\"_blank\">Unlynx<\/a>&nbsp;developed by EPFL, the theoretical inspiration for our current work). Thus our plan is as follows 1) build out simple to use and practical libraries for advanced cryptography primitives 2) these libraries will help developers create and combine advanced primitives to create complex crypto systems that will allow more secure data sharing 3) More secure and useful data sharing will 10x the speed of research on important problems like cancer and diabetes research 4) save the world&nbsp;:-).<\/p>\n\n\n\n<p>To start off we\u2019ve developed an alpha version of a proof-of-concept&nbsp;<a href=\"https:\/\/github.com\/nebula-genomics\/proxy-re-demo\" rel=\"noreferrer noopener\" target=\"_blank\">library<\/a>. The code below uses that library to offer an example of how we apply those technologies to enable a secure and convenient data flow from owners to users.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"d968\">Re-encryption by&nbsp;Proxy<\/h3>\n\n\n\n<p>Re-encryption by proxy is a process in which a third party, called the proxy, alters a ciphertext encrypted by one party in such a way that it may be decrypted by a second party.<\/p>\n\n\n\n<p>On Nebula\u2019s platform, the proxy will act as a custodian for encrypted genomic data and manage access to that data by buyers on behalf of the owner. While the proxy cannot access the underlying raw data, the proxy is able (with the permission of the owner) to modify the encrypted data so that the user can subsequently decrypt it. The data owner is thus able to delegate this task to the proxy while never sharing any plaintext information with the proxy. Another consequence of this delegation is that neither the data owner nor recipient need to be online.<\/p>\n\n\n\n<p>In our example, assume the proxy is a set of servers that acts as a decentralized collective authority. Now, let\u2019s walk through an example of re-encryption by proxy where Alice, a data owner, shares genomic data with Bob, a data user, via the proxy.<\/p>\n\n\n\n<p>First let\u2019s install the library mentioned above.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"717\" height=\"123\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.15-PM.png\" alt=\"\" class=\"wp-image-483\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.15-PM.png 717w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.15-PM-300x51.png 300w\" sizes=\"(max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<p>Now we can import the nebula package.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"708\" height=\"139\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.23-PM.png\" alt=\"\" class=\"wp-image-482\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.23-PM.png 708w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.23-PM-300x59.png 300w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/><\/figure>\n\n\n\n<figure><iframe width=\"700\" height=\"250\" allowfullscreen=\"\" src=\"https:\/\/medium.com\/media\/7b76a2f0cf43f50ebf5a55ecc70bf85a?postId=832055c96142\"><\/iframe><\/figure>\n\n\n\n<p>Now, let\u2019s walk through the sharing process. The first step is for Alice to encrypt her data. We\u2019ll generate a symmetric key for her to be used by&nbsp;<a href=\"https:\/\/cryptography.io\/en\/latest\/hazmat\/primitives\/aead\/#cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305\" rel=\"noreferrer noopener\" target=\"_blank\">ChaCha20+Poly1305<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"709\" height=\"117\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.32-PM.png\" alt=\"\" class=\"wp-image-481\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.32-PM.png 709w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.32-PM-300x50.png 300w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>(&lt;umbral.point.Point at 0x10389fe10&gt;, b'\\x10\\x91Y\\xb1*\\x8c\\xf0\\x7f@=\\xefx\\xe9\\xf6\\x12\\xf3W\\xbd\\xdel\\xc4\\x06{\\xae\\x05%\\x1b\\x89U\\xf9eN\\xe5e\\x1a\\xe71xn\\xac@v\\xf4')<\/code><\/pre>\n\n\n\n<p>The collective authority proxy has its own public key, which is the sum of the public keys of its constituent servers.<\/p>\n\n\n\n<p>Alice now takes the encryption key she used on her data, and encrypts it with the collective authority\u2019s public key. Note that since we\u2019re using&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Elliptic-curve_cryptography\" rel=\"noreferrer noopener\" target=\"_blank\">elliptic-curve cryptography<\/a>&nbsp;the two ciphertexts that&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/ElGamal_encryption\" rel=\"noreferrer noopener\" target=\"_blank\">ElGamal encryption<\/a>&nbsp;produces are points on the chosen elliptic curve. What you see in the output below are the coordinates of the two points in (x, y) form.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"708\" height=\"138\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.46-PM.png\" alt=\"\" class=\"wp-image-480\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.46-PM.png 708w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.46-PM-300x58.png 300w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>((35632791306511153190425382918654119432212363349182003014749353343128802126727, 64242079364444117954338938658093117507689717419524224721788857406414950009581), (97847103734799578346073884785318736156070617710068604497289838935308031857554, 100772267217308028038724925681024365362775942293927562577198462564518506731626))<\/code><\/pre>\n\n\n\n<p>Each server in the collective authority partially decrypts, then re-encrypts Alice\u2019s key for Bob.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>To partially decrypt Alice\u2019s key, each server uses its private key<\/li><li>To partially re-encrypt Alice\u2019s key for Bob, each server uses Bob\u2019s public key<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"710\" height=\"162\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.54-PM.png\" alt=\"\" class=\"wp-image-479\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.54-PM.png 710w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.48.54-PM-300x68.png 300w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>((77420738395268270953686214496801457604160876120513979866307802146750959593560, 54288930850798967899941066319180759019666461705141800680259295043110704970240), (43931260115404950504844368880031328989231014591201216806426924428987149667105, 90907867688890000833998990379245369153741769092073562236593684729778667077837))<\/code><\/pre>\n\n\n\n<p>Bob receives and then decrypts Alice\u2019s key using his private key, then uses Alice\u2019s key to decrypt the original data.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"710\" height=\"98\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.01-PM.png\" alt=\"\" class=\"wp-image-478\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.01-PM.png 710w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.01-PM-300x41.png 300w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>True<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"708\" height=\"75\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.06-PM.png\" alt=\"\" class=\"wp-image-477\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.06-PM.png 708w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.06-PM-300x32.png 300w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>b'My genomic data'<\/code><\/pre>\n\n\n\n<p>Just imagine a full genome here instead of just this string!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"f585\">Homomorphic Encryption<\/h3>\n\n\n\n<p>ElGamal encryption is&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Homomorphic_encryption\" rel=\"noreferrer noopener\" target=\"_blank\">additively homomorphic<\/a>, meaning that the result of summing ciphertexts mirrors the result that would be obtained from summing the corresponding plaintexts. Because of this, if we decrypt an encrypted sum, the result will be the sum of the plaintexts. Homomorphic encryption allows an interested party to issue a query for aggregated information and obtain the relevant answer but without seeing the underlying data points. (This assumes some other constraints are met, as specified&nbsp;<a href=\"https:\/\/petsymposium.org\/2017\/papers\/issue4\/paper54-2017-4-source.pdf\" rel=\"noreferrer noopener\" target=\"_blank\">here<\/a>.)<\/p>\n\n\n\n<p>Below is a three step example showing how our collective authority\/proxy could answer a query from Bob about the number of people with a particular gene variant in our dataset.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The authority performs the necessary computation on the encrypted data in the dataset.<\/li><li>The authority takes this aggregate result (people are marked 1 for having the variant and 0 for not having it)and re-encrypts it with Bob\u2019s public key.<\/li><li>Bob decrypts the aggregate result with his private key, and now has the correct sum but no visibility of the individual data points.<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"c361\">Summing encrypted data<\/h3>\n\n\n\n<p>Below we \u201csimulate\u201d 1000 people providing genomic information to the platform. In total there are 448 people with this particular gene variant. Each person\u2019s data is encrypted and stored securely.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"710\" height=\"251\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.14-PM.png\" alt=\"\" class=\"wp-image-476\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.14-PM.png 710w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.14-PM-300x106.png 300w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Number of people with <\/code>gene variant<code>: 488 ((21226922480075498561329291252368547521899161064631964196023720750821691033728, 22373176000434530074330330136750061845273006440607485558527039957320386973412), (73527396063873421512162165532068395819931745318640280343429662961367630577212, 38439465994848418879243894553165852646308170673055923181635051985961737087067))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"012a\">CA re-encrypts encrypted sum for&nbsp;Bob<\/h3>\n\n\n\n<p>Bob goes ahead and requests information about the gene variant frequency in the population. The CA sums it up and re-encrypts the data to Bob. Notice that the (x, y) coordinates of the re-encrypted cipher are not equal to coordinates of the original cipher above.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"707\" height=\"96\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.22-PM.png\" alt=\"\" class=\"wp-image-475\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.22-PM.png 707w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.22-PM-300x41.png 300w\" sizes=\"(max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>((26066336990521229606715532856762274058860058654632118019680516577894483977430, 111016076743629331281471026942315236039952684121365861080441162051376755931177), (74777752915141648361212288792719003318012040162755253888817602184232651456038, 79121323403285772024091404265686004833455157263244527767410139385386809682035))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2c7a\">Bob decrypts&nbsp;sum<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"708\" height=\"96\" src=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.30-PM.png\" alt=\"\" class=\"wp-image-474\" srcset=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.30-PM.png 708w, https:\/\/nebula.org\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-3.49.30-PM-300x41.png 300w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>(488, 488)<\/code><\/pre>\n\n\n\n<p>Bob is able to gain insight into the data as a whole without gaining insight into any individual owner\u2019s information. This allows data owners who don\u2019t want to reveal their data to still contribute to the platform.<\/p>\n\n\n\n<p>Notice that re-encryption by proxy played a key role in making this convenient for Bob. Because each data owner delegated to the proxy, Bob only needed to issue one query. Without the proxy he would need to issue a query for every data point he wanted.<\/p>\n\n\n\n<p>Re-encryption by proxy and homomorphic encryption help Nebula secure user data, provide convenient access to data for data buyers, and allow data buyers to generate insights without compromising individual privacy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"73e7\">Call to&nbsp;Action<\/h3>\n\n\n\n<p>At Nebula Genomics we believe that privacy concerns are a significant hurdle to biomedical data sharing. This hinders medical research and development of new treatments. We can\u2019t solve this challenge alone.<\/p>\n\n\n\n<p>If you are interested in the code, feel free to play with the library, but be safe: this particular implementation hasn\u2019t undergone a security audit and is currently for educational use only&nbsp;\ud83d\ude42<\/p>\n\n\n\n<p>If you\u2019re interested in exploring more about Nebula Genomics in particular, make sure to&nbsp;<a href=\"https:\/\/twitter.com\/nebulagenomics\" rel=\"noreferrer noopener\" target=\"_blank\">follow us on twitter<\/a>&nbsp;to stay up to date.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data use and data privacy are often in conflict. For example, if we all openly shared our health data with researchers, it would speed up work on new health technologies and cures. But we are rightly afraid of what a &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"ast-button\" href=\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\"> <span class=\"screen-reader-text\">Re-encryption by Proxy and Homomorphic Encryption<\/span> Read More \u00bb<\/a><\/p>\n","protected":false},"author":2,"featured_media":525,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","footnotes":""},"categories":[143],"tags":[],"class_list":["post-400","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Re-encryption by Proxy and Homomorphic Encryption<\/title>\n<meta name=\"description\" content=\"Re-encryption by proxy and homomorphic encryption allow secure data sharing using the services of a third party.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Re-encryption by Proxy and Homomorphic Encryption\" \/>\n<meta property=\"og:description\" content=\"Re-encryption by proxy and homomorphic encryption allow secure data sharing using the services of a third party.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\" \/>\n<meta property=\"og:site_name\" content=\"Nebula Genomics Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/nebulagenomics\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-31T09:27:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-29T00:04:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2018\/10\/1_fxzY01lDOA9yebdep_j3Xw-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"924\" \/>\n\t<meta property=\"og:image:height\" content=\"408\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nebula Genomics\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nebulagenomics\" \/>\n<meta name=\"twitter:site\" content=\"@nebulagenomics\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nebula Genomics\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\"},\"author\":{\"name\":\"Nebula Genomics\",\"@id\":\"https:\/\/nebula.org\/blog\/#\/schema\/person\/36c19290481c6de8bbd64374aa2ec9c4\"},\"headline\":\"Re-encryption by Proxy and Homomorphic Encryption\",\"datePublished\":\"2018-10-31T09:27:41+00:00\",\"dateModified\":\"2020-12-29T00:04:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\"},\"wordCount\":1168,\"publisher\":{\"@id\":\"https:\/\/nebula.org\/blog\/#organization\"},\"articleSection\":[\"News\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\",\"url\":\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\",\"name\":\"Re-encryption by Proxy and Homomorphic Encryption\",\"isPartOf\":{\"@id\":\"https:\/\/nebula.org\/blog\/#website\"},\"datePublished\":\"2018-10-31T09:27:41+00:00\",\"dateModified\":\"2020-12-29T00:04:46+00:00\",\"description\":\"Re-encryption by proxy and homomorphic encryption allow secure data sharing using the services of a third party.\",\"breadcrumb\":{\"@id\":\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nebula.org\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Re-encryption by Proxy and Homomorphic Encryption\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nebula.org\/blog\/#website\",\"url\":\"https:\/\/nebula.org\/blog\/\",\"name\":\"Nebula Genomics Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/nebula.org\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nebula.org\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nebula.org\/blog\/#organization\",\"name\":\"Nebula Genomics\",\"url\":\"https:\/\/nebula.org\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nebula.org\/blog\/#\/schema\/logo\/image\/\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Nebula Genomics\"},\"image\":{\"@id\":\"https:\/\/nebula.org\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/nebulagenomics\",\"https:\/\/twitter.com\/nebulagenomics\",\"https:\/\/www.instagram.com\/nebulagenomics\/\",\"https:\/\/www.linkedin.com\/company\/nebula-genomics\/\",\"https:\/\/en.wikipedia.org\/wiki\/Nebula_Genomics\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nebula.org\/blog\/#\/schema\/person\/36c19290481c6de8bbd64374aa2ec9c4\",\"name\":\"Nebula Genomics\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nebula.org\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec625d884ac6df0f87c480bd2af56c94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec625d884ac6df0f87c480bd2af56c94?s=96&d=mm&r=g\",\"caption\":\"Nebula Genomics\"},\"sameAs\":[\"http:\/\/nebula.org\/blog\"],\"url\":\"https:\/\/nebula.org\/blog\/author\/nebulablog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Re-encryption by Proxy and Homomorphic Encryption","description":"Re-encryption by proxy and homomorphic encryption allow secure data sharing using the services of a third party.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/","og_locale":"en_US","og_type":"article","og_title":"Re-encryption by Proxy and Homomorphic Encryption","og_description":"Re-encryption by proxy and homomorphic encryption allow secure data sharing using the services of a third party.","og_url":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/","og_site_name":"Nebula Genomics Blog","article_publisher":"https:\/\/facebook.com\/nebulagenomics","article_published_time":"2018-10-31T09:27:41+00:00","article_modified_time":"2020-12-29T00:04:46+00:00","og_image":[{"width":924,"height":408,"url":"https:\/\/nebula.org\/blog\/wp-content\/uploads\/2018\/10\/1_fxzY01lDOA9yebdep_j3Xw-1.png","type":"image\/png"}],"author":"Nebula Genomics","twitter_card":"summary_large_image","twitter_creator":"@nebulagenomics","twitter_site":"@nebulagenomics","twitter_misc":{"Written by":"Nebula Genomics","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/#article","isPartOf":{"@id":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/"},"author":{"name":"Nebula Genomics","@id":"https:\/\/nebula.org\/blog\/#\/schema\/person\/36c19290481c6de8bbd64374aa2ec9c4"},"headline":"Re-encryption by Proxy and Homomorphic Encryption","datePublished":"2018-10-31T09:27:41+00:00","dateModified":"2020-12-29T00:04:46+00:00","mainEntityOfPage":{"@id":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/"},"wordCount":1168,"publisher":{"@id":"https:\/\/nebula.org\/blog\/#organization"},"articleSection":["News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/","url":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/","name":"Re-encryption by Proxy and Homomorphic Encryption","isPartOf":{"@id":"https:\/\/nebula.org\/blog\/#website"},"datePublished":"2018-10-31T09:27:41+00:00","dateModified":"2020-12-29T00:04:46+00:00","description":"Re-encryption by proxy and homomorphic encryption allow secure data sharing using the services of a third party.","breadcrumb":{"@id":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nebula.org\/blog\/re-encryption-by-proxy-and-homomorphic-encryption\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nebula.org\/blog\/"},{"@type":"ListItem","position":2,"name":"Re-encryption by Proxy and Homomorphic Encryption"}]},{"@type":"WebSite","@id":"https:\/\/nebula.org\/blog\/#website","url":"https:\/\/nebula.org\/blog\/","name":"Nebula Genomics Blog","description":"","publisher":{"@id":"https:\/\/nebula.org\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nebula.org\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nebula.org\/blog\/#organization","name":"Nebula Genomics","url":"https:\/\/nebula.org\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nebula.org\/blog\/#\/schema\/logo\/image\/","url":"","contentUrl":"","caption":"Nebula Genomics"},"image":{"@id":"https:\/\/nebula.org\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/nebulagenomics","https:\/\/twitter.com\/nebulagenomics","https:\/\/www.instagram.com\/nebulagenomics\/","https:\/\/www.linkedin.com\/company\/nebula-genomics\/","https:\/\/en.wikipedia.org\/wiki\/Nebula_Genomics"]},{"@type":"Person","@id":"https:\/\/nebula.org\/blog\/#\/schema\/person\/36c19290481c6de8bbd64374aa2ec9c4","name":"Nebula Genomics","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nebula.org\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec625d884ac6df0f87c480bd2af56c94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec625d884ac6df0f87c480bd2af56c94?s=96&d=mm&r=g","caption":"Nebula Genomics"},"sameAs":["http:\/\/nebula.org\/blog"],"url":"https:\/\/nebula.org\/blog\/author\/nebulablog\/"}]}},"_links":{"self":[{"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/posts\/400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/comments?post=400"}],"version-history":[{"count":0,"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/posts\/400\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/media\/525"}],"wp:attachment":[{"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/media?parent=400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/categories?post=400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nebula.org\/blog\/wp-json\/wp\/v2\/tags?post=400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}