{"id":498032,"date":"2018-07-27T14:20:44","date_gmt":"2018-07-27T21:20:44","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-research-item&#038;p=498032"},"modified":"2018-10-16T20:13:29","modified_gmt":"2018-10-17T03:13:29","slug":"homomorphic-lower-digits-removal-and-improved-fhe-bootstrapping-3","status":"publish","type":"msr-research-item","link":"https:\/\/www.microsoft.com\/en-us\/research\/publication\/homomorphic-lower-digits-removal-and-improved-fhe-bootstrapping-3\/","title":{"rendered":"Homomorphic Lower Digits Removal and Improved FHE Bootstrapping"},"content":{"rendered":"<p id=\"Par1\" class=\"Para\">Bootstrapping is a crucial operation in Gentry\u2019s breakthrough work on fully homomorphic encryption (FHE), where a homomorphic encryption scheme evaluates its own decryption algorithm. There has been a couple of implementations of bootstrapping, among which HElib arguably marks the state-of-the-art in terms of throughput, ciphertext\/message size ratio and support for large plaintext moduli.<\/p>\n<p id=\"Par2\" class=\"Para\">In this work, we applied a family of \u201clowest digit removal\u201d polynomials to design an improved homomorphic digit extraction algorithm which is a crucial part in bootstrapping for both FV and BGV schemes. When the secret key has 1-norm\u00a0<span id=\"IEq1\" class=\"InlineEquation\"><span id=\"MathJax-Element-1-Frame\" class=\"MathJax\" style=\"font-style: normal;font-weight: normal;line-height: normal;font-size: 21.25px;text-indent: 0px;text-align: left;letter-spacing: normal;float: none;direction: ltr;max-width: none;max-height: none;min-width: 0px;min-height: 0px;border: 0px;padding: 0px;margin: 0px\" role=\"presentation\"><span id=\"MathJax-Span-1\" class=\"math\"><span id=\"MathJax-Span-2\" class=\"mrow\"><span id=\"MathJax-Span-3\" class=\"mi\">h<\/span><span id=\"MathJax-Span-4\" class=\"mo\">=<\/span><span id=\"MathJax-Span-5\" class=\"texatom\"><span id=\"MathJax-Span-6\" class=\"mrow\"><span id=\"MathJax-Span-7\" class=\"mo\">|<\/span><\/span><\/span><span id=\"MathJax-Span-8\" class=\"texatom\"><span id=\"MathJax-Span-9\" class=\"mrow\"><span id=\"MathJax-Span-10\" class=\"mo\">|<\/span><\/span><\/span><span id=\"MathJax-Span-11\" class=\"mi\">s<\/span><span id=\"MathJax-Span-12\" class=\"texatom\"><span id=\"MathJax-Span-13\" class=\"mrow\"><span id=\"MathJax-Span-14\" class=\"mo\">|<\/span><\/span><\/span><span id=\"MathJax-Span-15\" class=\"msubsup\"><span id=\"MathJax-Span-16\" class=\"texatom\"><span id=\"MathJax-Span-17\" class=\"mrow\"><span id=\"MathJax-Span-18\" class=\"mo\">|<\/span><\/span><\/span><span id=\"MathJax-Span-19\" class=\"mn\">1<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><mi>h<\/mi><mo>=<\/mo><mrow class=\"MJX-TeXAtom-ORD\"><mo stretchy=\"false\">|<\/mo><\/mrow><mrow class=\"MJX-TeXAtom-ORD\"><mo stretchy=\"false\">|<\/mo><\/mrow><mi>s<\/mi><mrow class=\"MJX-TeXAtom-ORD\"><mo stretchy=\"false\">|<\/mo><\/mrow><msub><mrow class=\"MJX-TeXAtom-ORD\"><mo stretchy=\"false\">|<\/mo><\/mrow><mn>1<\/mn><\/msub><\/math><\/p>\n<p>and the plaintext modulus is\u00a0<span id=\"IEq2\" class=\"InlineEquation\"><span id=\"MathJax-Element-2-Frame\" class=\"MathJax\" style=\"font-style: normal;font-weight: normal;line-height: normal;font-size: 21.25px;text-indent: 0px;text-align: left;letter-spacing: normal;float: none;direction: ltr;max-width: none;max-height: none;min-width: 0px;min-height: 0px;border: 0px;padding: 0px;margin: 0px\" role=\"presentation\"><span id=\"MathJax-Span-20\" class=\"math\"><span id=\"MathJax-Span-21\" class=\"mrow\"><span id=\"MathJax-Span-22\" class=\"mi\">t<\/span><span id=\"MathJax-Span-23\" class=\"mo\">=<\/span><span id=\"MathJax-Span-24\" class=\"msubsup\"><span id=\"MathJax-Span-25\" class=\"mi\">p<\/span><span id=\"MathJax-Span-26\" class=\"mi\">r<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><mi>t<\/mi><mo>=<\/mo><msup><mi>p<\/mi><mi>r<\/mi><\/msup><\/math><\/p>\n<p>, we achieved bootstrapping depth\u00a0<span id=\"IEq3\" class=\"InlineEquation\"><span id=\"MathJax-Element-3-Frame\" class=\"MathJax\" style=\"font-style: normal;font-weight: normal;line-height: normal;font-size: 21.25px;text-indent: 0px;text-align: left;letter-spacing: normal;float: none;direction: ltr;max-width: none;max-height: none;min-width: 0px;min-height: 0px;border: 0px;padding: 0px;margin: 0px\" role=\"presentation\"><span id=\"MathJax-Span-27\" class=\"math\"><span id=\"MathJax-Span-28\" class=\"mrow\"><span id=\"MathJax-Span-29\" class=\"mi\">log<\/span><span id=\"MathJax-Span-30\" class=\"mo\"><\/span><span id=\"MathJax-Span-31\" class=\"mi\">h<\/span><span id=\"MathJax-Span-32\" class=\"mo\">+<\/span><span id=\"MathJax-Span-33\" class=\"mi\">log<\/span><span id=\"MathJax-Span-34\" class=\"mo\"><\/span><span id=\"MathJax-Span-35\" class=\"mo\">(<\/span><span id=\"MathJax-Span-36\" class=\"msubsup\"><span id=\"MathJax-Span-37\" class=\"mi\">log<\/span><span id=\"MathJax-Span-38\" class=\"mi\">p<\/span><\/span><span id=\"MathJax-Span-39\" class=\"mo\"><\/span><span id=\"MathJax-Span-40\" class=\"mo\">(<\/span><span id=\"MathJax-Span-41\" class=\"mi\">h<\/span><span id=\"MathJax-Span-42\" class=\"mi\">t<\/span><span id=\"MathJax-Span-43\" class=\"mo\">)<\/span><span id=\"MathJax-Span-44\" class=\"mo\">)<\/span><\/span><\/span><\/span><\/span><\/p>\n<p><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><mi>log<\/mi><mo>\u2061<\/mo><mi>h<\/mi><mo>+<\/mo><mi>log<\/mi><mo>\u2061<\/mo><mo stretchy=\"false\">(<\/mo><msub><mi>log<\/mi><mi>p<\/mi><\/msub><mo>\u2061<\/mo><mo stretchy=\"false\">(<\/mo><mi>h<\/mi><mi>t<\/mi><mo stretchy=\"false\">)<\/mo><mo stretchy=\"false\">)<\/mo><\/math><\/p>\n<p>in FV scheme. In case of the BGV scheme, we brought down the depth from\u00a0<span id=\"IEq4\" class=\"InlineEquation\"><span id=\"MathJax-Element-4-Frame\" class=\"MathJax\" style=\"font-style: normal;font-weight: normal;line-height: normal;font-size: 21.25px;text-indent: 0px;text-align: left;letter-spacing: normal;float: none;direction: ltr;max-width: none;max-height: none;min-width: 0px;min-height: 0px;border: 0px;padding: 0px;margin: 0px\" role=\"presentation\"><span id=\"MathJax-Span-45\" class=\"math\"><span id=\"MathJax-Span-46\" class=\"mrow\"><span id=\"MathJax-Span-47\" class=\"mi\">log<\/span><span id=\"MathJax-Span-48\" class=\"mo\"><\/span><span id=\"MathJax-Span-49\" class=\"mi\">h<\/span><span id=\"MathJax-Span-50\" class=\"mo\">+<\/span><span id=\"MathJax-Span-51\" class=\"mn\">2<\/span><span id=\"MathJax-Span-52\" class=\"mi\">log<\/span><span id=\"MathJax-Span-53\" class=\"mo\"><\/span><span id=\"MathJax-Span-54\" class=\"mi\">t<\/span><\/span><\/span><\/span><\/span><\/p>\n<p><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><mi>log<\/mi><mo>\u2061<\/mo><mi>h<\/mi><mo>+<\/mo><mn>2<\/mn><mi>log<\/mi><mo>\u2061<\/mo><mi>t<\/mi><\/math><\/p>\n<p>to\u00a0<span id=\"IEq5\" class=\"InlineEquation\"><span id=\"MathJax-Element-5-Frame\" class=\"MathJax\" style=\"font-style: normal;font-weight: normal;line-height: normal;font-size: 21.25px;text-indent: 0px;text-align: left;letter-spacing: normal;float: none;direction: ltr;max-width: none;max-height: none;min-width: 0px;min-height: 0px;border: 0px;padding: 0px;margin: 0px\" role=\"presentation\"><span id=\"MathJax-Span-55\" class=\"math\"><span id=\"MathJax-Span-56\" class=\"mrow\"><span id=\"MathJax-Span-57\" class=\"mi\">log<\/span><span id=\"MathJax-Span-58\" class=\"mo\"><\/span><span id=\"MathJax-Span-59\" class=\"mi\">h<\/span><span id=\"MathJax-Span-60\" class=\"mo\">+<\/span><span id=\"MathJax-Span-61\" class=\"mi\">log<\/span><span id=\"MathJax-Span-62\" class=\"mo\"><\/span><span id=\"MathJax-Span-63\" class=\"mi\">t<\/span><\/span><\/span><\/span><\/span><\/p>\n<p><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><mi>log<\/mi><mo>\u2061<\/mo><mi>h<\/mi><mo>+<\/mo><mi>log<\/mi><mo>\u2061<\/mo><mi>t<\/mi><\/math><\/p>\n<p>.<\/p>\n<p id=\"Par3\" class=\"Para\">We implemented bootstrapping for FV in the SEAL library. We also introduced another \u201cslim mode\u201d, which restrict the plaintexts to batched vectors in\u00a0<span id=\"IEq6\" class=\"InlineEquation\"><span id=\"MathJax-Element-6-Frame\" class=\"MathJax\" style=\"font-style: normal;font-weight: normal;line-height: normal;font-size: 21.25px;text-indent: 0px;text-align: left;letter-spacing: normal;float: none;direction: ltr;max-width: none;max-height: none;min-width: 0px;min-height: 0px;border: 0px;padding: 0px;margin: 0px\" role=\"presentation\"><span id=\"MathJax-Span-64\" class=\"math\"><span id=\"MathJax-Span-65\" class=\"mrow\"><span id=\"MathJax-Span-66\" class=\"msubsup\"><span id=\"MathJax-Span-67\" class=\"texatom\"><span id=\"MathJax-Span-68\" class=\"mrow\"><span id=\"MathJax-Span-69\" class=\"mi\">\u2124<\/span><\/span><\/span><span id=\"MathJax-Span-70\" class=\"texatom\"><span id=\"MathJax-Span-71\" class=\"mrow\"><span id=\"MathJax-Span-72\" class=\"msubsup\"><span id=\"MathJax-Span-73\" class=\"mi\">p<\/span><span id=\"MathJax-Span-74\" class=\"mi\">r<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<p><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><msub><mrow class=\"MJX-TeXAtom-ORD\"><mi mathvariant=\"double-struck\">Z<\/mi><\/mrow><mrow class=\"MJX-TeXAtom-ORD\"><msup><mi>p<\/mi><mi>r<\/mi><\/msup><\/mrow><\/msub><\/math><\/p>\n<p>. The slim mode has similar throughput as the full mode, while each individual run is much faster and uses much smaller memory. For example, bootstrapping takes 6.75\u00a0s for vectors over\u00a0<em class=\"EmphasisTypeItalic \">GF<\/em>(127) with 64 slots and 1381\u00a0s for vectors over\u00a0<span id=\"IEq7\" class=\"InlineEquation\"><span id=\"MathJax-Element-7-Frame\" class=\"MathJax\" style=\"font-style: normal;font-weight: normal;line-height: normal;font-size: 21.25px;text-indent: 0px;text-align: left;letter-spacing: normal;float: none;direction: ltr;max-width: none;max-height: none;min-width: 0px;min-height: 0px;border: 0px;padding: 0px;margin: 0px\" role=\"presentation\"><span id=\"MathJax-Span-75\" class=\"math\"><span id=\"MathJax-Span-76\" class=\"mrow\"><span id=\"MathJax-Span-77\" class=\"mi\">G<\/span><span id=\"MathJax-Span-78\" class=\"mi\">F<\/span><span id=\"MathJax-Span-79\" class=\"mo\">(<\/span><span id=\"MathJax-Span-80\" class=\"msubsup\"><span id=\"MathJax-Span-81\" class=\"mn\">257<\/span><span id=\"MathJax-Span-82\" class=\"texatom\"><span id=\"MathJax-Span-83\" class=\"mrow\"><span id=\"MathJax-Span-84\" class=\"mn\">128<\/span><\/span><\/span><\/span><span id=\"MathJax-Span-85\" class=\"mo\">)<\/span><\/span><\/span><\/span><\/span><\/p>\n<p><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><mi>G<\/mi><mi>F<\/mi><mo stretchy=\"false\">(<\/mo><msup><mn>257<\/mn><mrow class=\"MJX-TeXAtom-ORD\"><mn>128<\/mn><\/mrow><\/msup><mo stretchy=\"false\">)<\/mo><\/math><\/p>\n<p>with 128 slots. We also implemented our improved digit extraction procedure for the BGV scheme in HElib.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bootstrapping is a crucial operation in Gentry\u2019s breakthrough work on fully homomorphic encryption (FHE), where a homomorphic encryption scheme evaluates its own decryption algorithm. There has been a couple of implementations of bootstrapping, among which HElib arguably marks the state-of-the-art in terms of throughput, ciphertext\/message size ratio and support for large plaintext moduli. In this [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-author-ordering":null,"msr_publishername":"","msr_publisher_other":"","msr_booktitle":"","msr_chapter":"","msr_edition":"","msr_editors":"","msr_how_published":"","msr_isbn":"","msr_issue":"","msr_journal":"","msr_number":"","msr_organization":"","msr_pages_string":"","msr_page_range_start":"","msr_page_range_end":"","msr_series":"","msr_volume":"","msr_copyright":"","msr_conference_name":"EUROCRYPT 2018","msr_doi":"","msr_arxiv_id":"","msr_s2_paper_id":"","msr_mag_id":"","msr_pubmed_id":"","msr_other_authors":"","msr_other_contributors":"","msr_speaker":"","msr_award":"","msr_affiliation":"","msr_institution":"","msr_host":"","msr_version":"","msr_duration":"","msr_original_fields_of_study":"","msr_release_tracker_id":"","msr_s2_match_type":"","msr_citation_count_updated":"","msr_published_date":"2018-03-31","msr_highlight_text":"","msr_notes":"","msr_longbiography":"","msr_publicationurl":"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-319-78381-9_12","msr_external_url":"","msr_secondary_video_url":"","msr_conference_url":"","msr_journal_url":"","msr_s2_pdf_url":"","msr_year":0,"msr_citation_count":0,"msr_influential_citations":0,"msr_reference_count":0,"msr_s2_match_confidence":0,"msr_microsoftintellectualproperty":true,"msr_s2_open_access":false,"msr_s2_author_ids":[],"msr_pub_ids":[],"msr_hide_image_in_river":0,"footnotes":""},"msr-research-highlight":[],"research-area":[13558],"msr-publication-type":[193716],"msr-publisher":[],"msr-focus-area":[],"msr-locale":[268875],"msr-post-option":[],"msr-field-of-study":[],"msr-conference":[],"msr-journal":[],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-498032","msr-research-item","type-msr-research-item","status-publish","hentry","msr-research-area-security-privacy-cryptography","msr-locale-en_us"],"msr_publishername":"","msr_edition":"","msr_affiliation":"","msr_published_date":"2018-03-31","msr_host":"","msr_duration":"","msr_version":"","msr_speaker":"","msr_other_contributors":"","msr_booktitle":"","msr_pages_string":"","msr_chapter":"","msr_isbn":"","msr_journal":"","msr_volume":"","msr_number":"","msr_editors":"","msr_series":"","msr_issue":"","msr_organization":"","msr_how_published":"","msr_notes":"","msr_highlight_text":"","msr_release_tracker_id":"","msr_original_fields_of_study":"","msr_download_urls":"http:\/\/YToxOntpOjA7YToxOntzOjM6InVybCI7czo2MjoiaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9jaGFwdGVyLzEwLjEwMDcvOTc4LTMtMzE5LTc4MzgxLTlfMTIiO319","msr_external_url":"","msr_secondary_video_url":"","msr_longbiography":"","msr_microsoftintellectualproperty":1,"msr_main_download":"","msr_publicationurl":"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-319-78381-9_12","msr_doi":"","msr_publication_uploader":[{"type":"url","title":"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-319-78381-9_12","viewUrl":false,"id":false,"label_id":0}],"msr_related_uploader":"","msr_citation_count":0,"msr_citation_count_updated":"","msr_s2_paper_id":"","msr_influential_citations":0,"msr_reference_count":0,"msr_arxiv_id":"","msr_s2_author_ids":[],"msr_s2_open_access":false,"msr_s2_pdf_url":null,"msr_attachments":[{"id":0,"url":"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-319-78381-9_12"}],"msr-author-ordering":[{"type":"user_nicename","value":"Hao Chen","user_id":36122,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Hao Chen"},{"type":"text","value":"Kyoohyung Han","user_id":0,"rest_url":false}],"msr_impact_theme":[],"msr_research_lab":[199565],"msr_event":[],"msr_group":[],"msr_project":[438444],"publication":[],"video":[],"msr-tool":[],"msr_publication_type":"inproceedings","related_content":{"projects":[{"ID":438444,"post_title":"Microsoft SEAL","post_name":"microsoft-seal","post_type":"msr-project","post_date":"2017-11-07 10:24:35","post_modified":"2023-01-04 09:36:35","post_status":"publish","permalink":"https:\/\/www.microsoft.com\/en-us\/research\/project\/microsoft-seal\/","post_excerpt":"Microsoft SEAL\u2014powered by open-source homomorphic encryption technology\u2014provides a set of encryption libraries that allow computations to be performed directly on encrypted data.","_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/438444"}]}}]},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/498032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-research-item"}],"version-history":[{"count":3,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/498032\/revisions"}],"predecessor-version":[{"id":555012,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/498032\/revisions\/555012"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=498032"}],"wp:term":[{"taxonomy":"msr-research-highlight","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-highlight?post=498032"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=498032"},{"taxonomy":"msr-publication-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publication-type?post=498032"},{"taxonomy":"msr-publisher","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publisher?post=498032"},{"taxonomy":"msr-focus-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-focus-area?post=498032"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=498032"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=498032"},{"taxonomy":"msr-field-of-study","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-field-of-study?post=498032"},{"taxonomy":"msr-conference","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-conference?post=498032"},{"taxonomy":"msr-journal","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-journal?post=498032"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=498032"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=498032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}