<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://certfhewiki.certsign.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=GSW</id>
	<title>GSW - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://certfhewiki.certsign.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=GSW"/>
	<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;action=history"/>
	<updated>2026-05-14T13:01:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=251&amp;oldid=prev</id>
		<title>Gturcas at 10:10, 30 December 2020</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=251&amp;oldid=prev"/>
		<updated>2020-12-30T10:10:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 10:10, 30 December 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;. The authors provide a reduction to the [https://en.wikipedia.org/wiki/Learning_with_errors LWE] problem (see Section 1.3.4) of GSW &amp;lt;ref name = &amp;quot;GSW&amp;quot;/&amp;gt;, basic the security of their scheme only on the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;LWE&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/del&gt;problem.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;. The authors provide a reduction to the [https://en.wikipedia.org/wiki/Learning_with_errors LWE] problem (see Section 1.3.4) of GSW &amp;lt;ref name = &amp;quot;GSW&amp;quot;/&amp;gt;, basic the security of their scheme only on the LWE problem.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-250:rev-251 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=250&amp;oldid=prev</id>
		<title>Gturcas at 10:10, 30 December 2020</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=250&amp;oldid=prev"/>
		<updated>2020-12-30T10:10:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 10:10, 30 December 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;. The authors provide a reduction to the [&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;LWE&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;] problem (see Section 1.3.4) of GSW &amp;lt;ref name = &amp;quot;GSW&amp;quot;/&amp;gt;, basic the security of their scheme only on the [[LWE]] problem.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;. The authors provide a reduction to the [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;https://en.wikipedia.org/wiki/Learning_with_errors &lt;/ins&gt;LWE] problem (see Section 1.3.4) of GSW &amp;lt;ref name = &amp;quot;GSW&amp;quot;/&amp;gt;, basic the security of their scheme only on the [[LWE]] problem.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot; &gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Conceptually-Simpler, Asymptotically-Faster, Attribute-Based&amp;quot; &amp;lt;ref name = &amp;quot;GSW&amp;quot; /&amp;gt; by Gentry, Sahai and Waters.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Conceptually-Simpler, Asymptotically-Faster, Attribute-Based&amp;quot; &amp;lt;ref name = &amp;quot;GSW&amp;quot; /&amp;gt; by Gentry, Sahai and Waters.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The description of this scheme is strikingly simple. In GSW, homomorphic encryption based on [&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;LWE&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;] is achieved while the homomorphic addition and multiplications correspond to matrix addition and multiplication, respectively.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The description of this scheme is strikingly simple. In GSW, homomorphic encryption based on [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;https://en.wikipedia.org/wiki/Learning_with_errors &lt;/ins&gt;LWE] is achieved while the homomorphic addition and multiplications correspond to matrix addition and multiplication, respectively.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let &amp;lt;math&amp;gt; q &amp;lt;/math&amp;gt; be a natural number, representing some modulus and &amp;lt;math&amp;gt; N &amp;lt;/math&amp;gt; a dimension parameter. A ciphertext is a matrix &amp;lt;math&amp;gt;  C &amp;lt;/math&amp;gt; of dimension &amp;lt;math&amp;gt; N \times N &amp;lt;/math&amp;gt; with &amp;quot;small&amp;quot; entries from &amp;lt;math&amp;gt; \mathbb Z_q &amp;lt;/math&amp;gt;. A secret key &amp;lt;math&amp;gt; \vec{v} &amp;lt;/math&amp;gt; is a &amp;lt;math&amp;gt; N&amp;lt;/math&amp;gt;-dimensional vector over &amp;lt;math&amp;gt;\mathbb Z_q &amp;lt;/math&amp;gt; with one big coefficient &amp;lt;math&amp;gt; v_i&amp;lt;/math&amp;gt;. We can intuitively think of &amp;quot;small&amp;quot; as meaning much smaller (in order of magnitude) than &amp;lt;math&amp;gt; q&amp;lt;/math&amp;gt; and &amp;quot;big&amp;quot; meaning the same order of magnitude as &amp;lt;math&amp;gt;q &amp;lt;/math&amp;gt;. In fact, we will make use of the case when the entries of &amp;lt;math&amp;gt;C &amp;lt;/math&amp;gt; belong to &amp;lt;math&amp;gt;\{0,1 \} &amp;lt;/math&amp;gt;. We also restrict the message &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt; to be a &amp;quot;small&amp;quot; integer.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let &amp;lt;math&amp;gt; q &amp;lt;/math&amp;gt; be a natural number, representing some modulus and &amp;lt;math&amp;gt; N &amp;lt;/math&amp;gt; a dimension parameter. A ciphertext is a matrix &amp;lt;math&amp;gt;  C &amp;lt;/math&amp;gt; of dimension &amp;lt;math&amp;gt; N \times N &amp;lt;/math&amp;gt; with &amp;quot;small&amp;quot; entries from &amp;lt;math&amp;gt; \mathbb Z_q &amp;lt;/math&amp;gt;. A secret key &amp;lt;math&amp;gt; \vec{v} &amp;lt;/math&amp;gt; is a &amp;lt;math&amp;gt; N&amp;lt;/math&amp;gt;-dimensional vector over &amp;lt;math&amp;gt;\mathbb Z_q &amp;lt;/math&amp;gt; with one big coefficient &amp;lt;math&amp;gt; v_i&amp;lt;/math&amp;gt;. We can intuitively think of &amp;quot;small&amp;quot; as meaning much smaller (in order of magnitude) than &amp;lt;math&amp;gt; q&amp;lt;/math&amp;gt; and &amp;quot;big&amp;quot; meaning the same order of magnitude as &amp;lt;math&amp;gt;q &amp;lt;/math&amp;gt;. In fact, we will make use of the case when the entries of &amp;lt;math&amp;gt;C &amp;lt;/math&amp;gt; belong to &amp;lt;math&amp;gt;\{0,1 \} &amp;lt;/math&amp;gt;. We also restrict the message &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt; to be a &amp;quot;small&amp;quot; integer.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-171:rev-250 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=171&amp;oldid=prev</id>
		<title>Gturcas: /* Homomorphic operations */</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=171&amp;oldid=prev"/>
		<updated>2020-06-09T15:57:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Homomorphic operations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 15:57, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l112&quot; &gt;Line 112:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 112:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Mult(&amp;lt;math&amp;gt;C_1, C_2 &amp;lt;/math&amp;gt;): To multiply ciphertexts &amp;lt;math&amp;gt;C_1, C_2 \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;Flatten(C_1\cdot C_2) &amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Mult(&amp;lt;math&amp;gt;C_1, C_2 &amp;lt;/math&amp;gt;): To multiply ciphertexts &amp;lt;math&amp;gt;C_1, C_2 \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;Flatten(C_1\cdot C_2) &amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* MultConst(C, &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt;): To multiply a ciphertext &amp;lt;math&amp;gt;C \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt; by a known constant &amp;lt;math&amp;gt; \alpha \in \mathbb Z_q&amp;lt;/math&amp;gt;, given in the clear, we set &amp;lt;math&amp;gt;M_{\alpha} \leftarrow \alpha \cdot I_N &amp;lt;/math&amp;gt; and output &amp;lt;math&amp;gt;M_{\alpha} \cdot C &amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* MultConst(C, &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt;): To multiply a ciphertext &amp;lt;math&amp;gt;C \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt; by a known constant &amp;lt;math&amp;gt; \alpha \in \mathbb Z_q&amp;lt;/math&amp;gt;, given in the clear, we set &amp;lt;math&amp;gt;M_{\alpha} \leftarrow \alpha \cdot I_N &amp;lt;/math&amp;gt; and output &amp;lt;math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Flatten(&lt;/ins&gt;M_{\alpha} \cdot C&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;) &lt;/ins&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One could compute multiplication by &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; by repeating additions. However, by repeating additions, the error of the resulting ciphertext will be linear in &amp;lt;math&amp;gt; \alpha &amp;lt;/math&amp;gt;. On the other hand, if one uses MultConst(), the error term depends only on the dimension &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; and not on &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt;. This turns out to be extremely convenient for when &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; is very large (possible applications of this includes homomorphic fast Fourier transforms).&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One could compute multiplication by &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; by repeating additions. However, by repeating additions, the error of the resulting ciphertext will be linear in &amp;lt;math&amp;gt; \alpha &amp;lt;/math&amp;gt;. On the other hand, if one uses MultConst(), the error term depends only on the dimension &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; and not on &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt;. This turns out to be extremely convenient for when &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; is very large (possible applications of this includes homomorphic fast Fourier transforms).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-170:rev-171 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=170&amp;oldid=prev</id>
		<title>Gturcas: /* Homomorphic operations */</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=170&amp;oldid=prev"/>
		<updated>2020-06-09T15:56:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Homomorphic operations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 15:56, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l112&quot; &gt;Line 112:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 112:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Mult(&amp;lt;math&amp;gt;C_1, C_2 &amp;lt;/math&amp;gt;): To multiply ciphertexts &amp;lt;math&amp;gt;C_1, C_2 \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;Flatten(C_1\cdot C_2) &amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Mult(&amp;lt;math&amp;gt;C_1, C_2 &amp;lt;/math&amp;gt;): To multiply ciphertexts &amp;lt;math&amp;gt;C_1, C_2 \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;Flatten(C_1\cdot C_2) &amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* MultConst(C, \alpha): To multiply a ciphertext &amp;lt;math&amp;gt;C \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt; by a known constant &amp;lt;math&amp;gt; \alpha \in \mathbb Z_q&amp;lt;/math&amp;gt;, given in the clear, we set &amp;lt;math&amp;gt;M_{\alpha} \leftarrow \alpha \cdot I_N &amp;lt;/math&amp;gt; and output &amp;lt;math&amp;gt;M_{\alpha} \cdot C &amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* MultConst(C, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;\alpha&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/math&amp;gt;&lt;/ins&gt;): To multiply a ciphertext &amp;lt;math&amp;gt;C \in \mathbb Z_q^{N \times N} &amp;lt;/math&amp;gt; by a known constant &amp;lt;math&amp;gt; \alpha \in \mathbb Z_q&amp;lt;/math&amp;gt;, given in the clear, we set &amp;lt;math&amp;gt;M_{\alpha} \leftarrow \alpha \cdot I_N &amp;lt;/math&amp;gt; and output &amp;lt;math&amp;gt;M_{\alpha} \cdot C &amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One could compute multiplication by &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; by repeating additions. However, by repeating additions, the error of the resulting ciphertext will be linear in &amp;lt;math&amp;gt; \alpha &amp;lt;/math&amp;gt;. On the other hand, if one uses MultConst(), the error term depends only on the dimension &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; and not on &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt;. This turns out to be extremely convenient for when &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; is very large (possible applications of this includes homomorphic fast Fourier transforms).&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One could compute multiplication by &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; by repeating additions. However, by repeating additions, the error of the resulting ciphertext will be linear in &amp;lt;math&amp;gt; \alpha &amp;lt;/math&amp;gt;. On the other hand, if one uses MultConst(), the error term depends only on the dimension &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; and not on &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt;. This turns out to be extremely convenient for when &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; is very large (possible applications of this includes homomorphic fast Fourier transforms).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-169:rev-170 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=169&amp;oldid=prev</id>
		<title>Gturcas at 08:53, 9 June 2020</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=169&amp;oldid=prev"/>
		<updated>2020-06-09T08:53:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 08:53, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. Their security is based on the so-called [[approximate eigenvector problem]]&lt;/del&gt;. The authors &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;also &lt;/del&gt;provide a reduction &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;from the approximate eigenvector problem &lt;/del&gt;to the [[LWE]] problem (see Section 1.3.4) of GSW &amp;lt;ref name = &amp;quot;GSW&amp;quot;/&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;. The authors provide a reduction to the [[LWE]] problem (see Section 1.3.4) of GSW &amp;lt;ref name = &amp;quot;GSW&amp;quot;/&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, basic the security of their scheme only on the [[LWE]] problem&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-168:rev-169 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=168&amp;oldid=prev</id>
		<title>Gturcas: /* The basic algorithms of the encryption scheme */</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=168&amp;oldid=prev"/>
		<updated>2020-06-09T08:45:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The basic algorithms of the encryption scheme&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 08:45, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l88&quot; &gt;Line 88:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SecretKeyGen(&amp;lt;math&amp;gt;params&amp;lt;/math&amp;gt;): Sample &amp;lt;math&amp;gt;\vec{t} \leftarrow \mathbb Z_{q}^n &amp;lt;/math&amp;gt; uniformly. Output &amp;lt;math&amp;gt; sk = \vec{s} \leftarrow (1, -t_1, \dots, -t_n) \in \mathbb \Z_q^{n+1}&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;\vec{v} = Powersof2(\vec{s}) &amp;lt;/math&amp;gt;.    &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SecretKeyGen(&amp;lt;math&amp;gt;params&amp;lt;/math&amp;gt;): Sample &amp;lt;math&amp;gt;\vec{t} \leftarrow \mathbb Z_{q}^n &amp;lt;/math&amp;gt; uniformly. Output &amp;lt;math&amp;gt; sk = \vec{s} \leftarrow (1, -t_1, \dots, -t_n) \in \mathbb \Z_q^{n+1}&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;\vec{v} = Powersof2(\vec{s}) &amp;lt;/math&amp;gt;.    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PublicKeyGen(&amp;lt;math&amp;gt;params&amp;lt;/math&amp;gt;): Generate a matrix &amp;lt;math&amp;gt; B = \mathbb Z_q^{m \times n} &amp;lt;/math&amp;gt; and a vector with small entries (noise) &amp;lt;math&amp;gt;\vec{e} \leftarrow \chi^m &amp;lt;/math&amp;gt;. Set &amp;lt;math&amp;gt;\vec{b} = B \cdot \vec{t} + \vec{e}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;A &amp;lt;/math&amp;gt; to be the &amp;lt;math&amp;gt;(n+1) &amp;lt;/math&amp;gt; column matrix which is obtained by the placing &amp;lt;math&amp;gt; \vec b &amp;lt;/math&amp;gt; on the first column, fllowed by the &amp;lt;math&amp;gt; n&amp;lt;/math&amp;gt; columns of &amp;lt;math&amp;gt; B &amp;lt;/math&amp;gt;. Set the public key &amp;lt;math&amp;gt; pk = &amp;lt;/math&amp;gt;. We observe that &amp;lt;math&amp;gt;A \cdot \vec{s} = \vec{e}.&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PublicKeyGen(&amp;lt;math&amp;gt;params&amp;lt;/math&amp;gt;): Generate a matrix &amp;lt;math&amp;gt; B = \mathbb Z_q^{m \times n} &amp;lt;/math&amp;gt; and a vector with small entries (noise) &amp;lt;math&amp;gt;\vec{e} \leftarrow \chi^m &amp;lt;/math&amp;gt;. Set &amp;lt;math&amp;gt;\vec{b} = B \cdot \vec{t} + \vec{e}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;A &amp;lt;/math&amp;gt; to be the &amp;lt;math&amp;gt;(n+1) &amp;lt;/math&amp;gt; column matrix which is obtained by the placing &amp;lt;math&amp;gt; \vec b &amp;lt;/math&amp;gt; on the first column, fllowed by the &amp;lt;math&amp;gt; n&amp;lt;/math&amp;gt; columns of &amp;lt;math&amp;gt; B &amp;lt;/math&amp;gt;. Set the public key &amp;lt;math&amp;gt; pk = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;A &lt;/ins&gt;&amp;lt;/math&amp;gt;. We observe that &amp;lt;math&amp;gt;A \cdot \vec{s} = \vec{e}.&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Enc(&amp;lt;math&amp;gt;params,pk,\mu &amp;lt;/math&amp;gt;): To encrypt a message &amp;lt;math&amp;gt;\mu \in \mathbb Z_q &amp;lt;/math&amp;gt;, sample a uniform matrix &amp;lt;math&amp;gt;R \in \{0,1 \}^{N \times m} &amp;lt;/math&amp;gt; and output the ciphertext&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Enc(&amp;lt;math&amp;gt;params,pk,\mu &amp;lt;/math&amp;gt;): To encrypt a message &amp;lt;math&amp;gt;\mu \in \mathbb Z_q &amp;lt;/math&amp;gt;, sample a uniform matrix &amp;lt;math&amp;gt;R \in \{0,1 \}^{N \times m} &amp;lt;/math&amp;gt; and output the ciphertext&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=167&amp;oldid=prev</id>
		<title>Gturcas: /* The basic algorithms of the encryption scheme */</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=167&amp;oldid=prev"/>
		<updated>2020-06-09T08:37:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The basic algorithms of the encryption scheme&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 08:37, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l84&quot; &gt;Line 84:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 84:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let &amp;lt;math&amp;gt; \lambda &amp;lt;/math&amp;gt; be the security parameter and &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; a natural number representing the multiplicative level of homomorphic operations this scheme can achieve. If we know the maximal level &amp;lt;math&amp;gt; L &amp;lt;/math&amp;gt;  that we want to evaluate, we can choose parameters such that the scheme can handle circuits of depth &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;.  Thus, the scheme described here is a priori a Somewhat Homomorphic Encryption scheme and can be made fully homomorphic after applying Gentry&amp;#039;s bootstrapping theorem.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let &amp;lt;math&amp;gt; \lambda &amp;lt;/math&amp;gt; be the security parameter and &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; a natural number representing the multiplicative level of homomorphic operations this scheme can achieve. If we know the maximal level &amp;lt;math&amp;gt; L &amp;lt;/math&amp;gt;  that we want to evaluate, we can choose parameters such that the scheme can handle circuits of depth &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;.  Thus, the scheme described here is a priori a Somewhat Homomorphic Encryption scheme and can be made fully homomorphic after applying Gentry&amp;#039;s bootstrapping theorem.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Setup(&amp;lt;math&amp;gt;1^{\lambda}, 1^L &amp;lt;/math&amp;gt;): We choose a modulus &amp;lt;math&amp;gt; q=q(\lambda, L)&amp;lt;/math&amp;gt;, depending of &amp;lt;math&amp;gt;\lambda, L &amp;lt;/math&amp;gt;, a lattice dimension parameter &amp;lt;math&amp;gt;n=n(\lambda, L)&amp;lt;/math&amp;gt; and an error distribution &amp;lt;math&amp;gt;\chi = \chi(\lambda, L) &amp;lt;/math&amp;gt; such that the scheme achieves at least &amp;lt;math&amp;gt;2^{\lambda}&amp;lt;/math&amp;gt; security against known attacks. We also choose a parameter &amp;lt;math&amp;gt; m= (\lambda, L) = O(n \log_{q}) &amp;lt;/math&amp;gt;. We set the paramaters of the scheme &amp;lt;math&amp;gt;params = (n , q, \chi,m) &amp;lt;/math&amp;gt; and let &amp;lt;math&amp;gt; l = \lfloor \log_{2}q  \rfloor +1 &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;N = (n+1)\cdot l&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Setup(&amp;lt;math&amp;gt;1^{\lambda}, 1^L &amp;lt;/math&amp;gt;): We choose a modulus &amp;lt;math&amp;gt; q=q(\lambda, L)&amp;lt;/math&amp;gt;, depending of &amp;lt;math&amp;gt;\lambda, L &amp;lt;/math&amp;gt;, a lattice dimension parameter &amp;lt;math&amp;gt;n=n(\lambda, L)&amp;lt;/math&amp;gt; and an error distribution &amp;lt;math&amp;gt;\chi = \chi(\lambda, L) &amp;lt;/math&amp;gt; such that the scheme achieves at least &amp;lt;math&amp;gt;2^{\lambda}&amp;lt;/math&amp;gt; security against known attacks. We also choose a parameter &amp;lt;math&amp;gt; m= &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;m&lt;/ins&gt;(\lambda, L) = O(n \log_{q}) &amp;lt;/math&amp;gt;. We set the paramaters of the scheme &amp;lt;math&amp;gt;params = (n , q, \chi,m) &amp;lt;/math&amp;gt; and let &amp;lt;math&amp;gt; l = \lfloor \log_{2}q  \rfloor +1 &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;N = (n+1)\cdot l&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SecretKeyGen(&amp;lt;math&amp;gt;params&amp;lt;/math&amp;gt;): Sample &amp;lt;math&amp;gt;\vec{t} \leftarrow \mathbb Z_{q}^n &amp;lt;/math&amp;gt; uniformly. Output &amp;lt;math&amp;gt; sk = \vec{s} \leftarrow (1, -t_1, \dots, -t_n) \in \mathbb \Z_q^{n+1}&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;\vec{v} = Powersof2(\vec{s}) &amp;lt;/math&amp;gt;.    &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SecretKeyGen(&amp;lt;math&amp;gt;params&amp;lt;/math&amp;gt;): Sample &amp;lt;math&amp;gt;\vec{t} \leftarrow \mathbb Z_{q}^n &amp;lt;/math&amp;gt; uniformly. Output &amp;lt;math&amp;gt; sk = \vec{s} \leftarrow (1, -t_1, \dots, -t_n) \in \mathbb \Z_q^{n+1}&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;\vec{v} = Powersof2(\vec{s}) &amp;lt;/math&amp;gt;.    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-166:rev-167 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=166&amp;oldid=prev</id>
		<title>Gturcas: /* Flattening ciphertexts and keeping the noise small */</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=166&amp;oldid=prev"/>
		<updated>2020-06-09T08:30:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Flattening ciphertexts and keeping the noise small&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 08:30, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l63&quot; &gt;Line 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 63:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some obvious properties of these definitions are&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some obvious properties of these definitions are&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;math&amp;gt; \langle BitDecomp(\vec{a}), Powersof2(\vec{b}) \rangle = \langle a,b &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;\rangle &lt;/del&gt;\rangle &amp;lt;/math&amp;gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;math&amp;gt; \langle BitDecomp(\vec{a}), Powersof2(\vec{b}) \rangle = \langle a,b \rangle &amp;lt;/math&amp;gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* For any &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-dimensional &amp;lt;math&amp;gt;\vec{a&amp;#039;} &amp;lt;/math&amp;gt;, we have that&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* For any &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-dimensional &amp;lt;math&amp;gt;\vec{a&amp;#039;} &amp;lt;/math&amp;gt;, we have that&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-165:rev-166 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=165&amp;oldid=prev</id>
		<title>Gturcas: /* Flattening ciphertexts and keeping the noise small */</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=165&amp;oldid=prev"/>
		<updated>2020-06-09T07:55:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Flattening ciphertexts and keeping the noise small&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 07:55, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l44&quot; &gt;Line 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 44:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Notice that if &amp;lt;math&amp;gt;C_1, C_2&amp;lt;/math&amp;gt; are two &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;-strongly bounded ciphertexts, the ciphertext &amp;lt;math&amp;gt;C_3 \leftarrow I_N - C_1 C_2 &amp;lt;/math&amp;gt; obtained by evaluating a NAND gate has underlying message in &amp;lt;math&amp;gt; \{0,1 \} &amp;lt;/math&amp;gt;, but the coefficients of &amp;lt;math&amp;gt; C_3&amp;lt;/math&amp;gt;&amp;#039;s error vector have magnitude at most &amp;lt;math&amp;gt;(N+1)B&amp;lt;/math&amp;gt;. If one could ensure that the coefficients of &amp;lt;math&amp;gt;C_3&amp;lt;/math&amp;gt; have magnitude at most &amp;lt;math&amp;gt; 1&amp;lt;/math&amp;gt;, then the noise after evaluating a NAND gate will remain quite small, allowing us to evaluate deeper circuits.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Notice that if &amp;lt;math&amp;gt;C_1, C_2&amp;lt;/math&amp;gt; are two &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;-strongly bounded ciphertexts, the ciphertext &amp;lt;math&amp;gt;C_3 \leftarrow I_N - C_1 C_2 &amp;lt;/math&amp;gt; obtained by evaluating a NAND gate has underlying message in &amp;lt;math&amp;gt; \{0,1 \} &amp;lt;/math&amp;gt;, but the coefficients of &amp;lt;math&amp;gt; C_3&amp;lt;/math&amp;gt;&amp;#039;s error vector have magnitude at most &amp;lt;math&amp;gt;(N+1)B&amp;lt;/math&amp;gt;. If one could ensure that the coefficients of &amp;lt;math&amp;gt;C_3&amp;lt;/math&amp;gt; have magnitude at most &amp;lt;math&amp;gt; 1&amp;lt;/math&amp;gt;, then the noise after evaluating a NAND gate will remain quite small, allowing us to evaluate deeper circuits.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The authors introduce an operation on ciphertexts called &amp;lt;b&amp;gt; flattening&amp;lt;/b&amp;gt;, inspired by ideas in second generation FHE schemes such as &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[BFV]] and &lt;/del&gt;[[BGV]]. Flattening is basically an operation that modify vectors without affecting their dot product.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The authors introduce an operation on ciphertexts called &amp;lt;b&amp;gt; flattening&amp;lt;/b&amp;gt;, inspired by ideas in second generation FHE schemes such as [[BGV]]. Flattening is basically an operation that modify vectors without affecting their dot product.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let &amp;lt;math&amp;gt; N = k \cdot l&amp;lt;/math&amp;gt; , where &amp;lt;math&amp;gt; l = \lfloor \log_2{q}+1 \rfloor &amp;lt;/math&amp;gt;  and &amp;lt;math&amp;gt; k&amp;lt;/math&amp;gt; is a positive integer. We will consider &amp;lt;math&amp;gt;\vec{a}, \vec{b} \in \mathbb Z_q^k &amp;lt;/math&amp;gt;, two &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-dimensional vector spaces.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let &amp;lt;math&amp;gt; N = k \cdot l&amp;lt;/math&amp;gt; , where &amp;lt;math&amp;gt; l = \lfloor \log_2{q}+1 \rfloor &amp;lt;/math&amp;gt;  and &amp;lt;math&amp;gt; k&amp;lt;/math&amp;gt; is a positive integer. We will consider &amp;lt;math&amp;gt;\vec{a}, \vec{b} \in \mathbb Z_q^k &amp;lt;/math&amp;gt;, two &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-dimensional vector spaces.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-164:rev-165 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
	<entry>
		<id>https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=164&amp;oldid=prev</id>
		<title>Gturcas at 12:34, 5 June 2020</title>
		<link rel="alternate" type="text/html" href="https://certfhewiki.certsign.ro/wiki/index.php?title=GSW&amp;diff=164&amp;oldid=prev"/>
		<updated>2020-06-05T12:34:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:34, 5 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Around 2013, Gentry, Sahai and Waters &amp;lt;ref name = &amp;quot;GSW&amp;quot;&amp;gt; C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO 2013 (Springer). https://eprint.iacr.org/2013/340&amp;lt;/ref&amp;gt; proposed a new way of building FHE schemes whose homomorphic multiplication algorithms are more natural than those presented in [[BFV]] or [[BGV]]. A distinguished feature of the scheme we are about to present is an asymmetric formula for the &amp;lt;b&amp;gt;growth of the noise&amp;lt;/b&amp;gt; when multiplying two ciphertexts. Due to this feature, certain types of circuits have a very slow noise growth rate. Based on this asymmetry, Alperin-Sheriff and Peikert &amp;lt;ref&amp;gt; J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error. In CRYPTO 2014 (Springer). https://eprint.iacr.org/2014/094&amp;lt;/ref&amp;gt; found a very efficient bootstrapping technique for the [[GSW]] scheme.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;. Their security is based on the so-called [[approximate eigenvector problem]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More efficient FHE schemes based on ring variants of [[GSW]] have been proposed since then. These achieve very fast bootstrapping via various optimisation techniques, such as &amp;quot;refreshing the ciphertexts&amp;quot; after every single homomorphic operation. To our knowledge, among the schemes based on [[GSW]] (and not only), TFHE &amp;lt;ref&amp;gt; I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33, pages 34–91 (2020). https://eprint.iacr.org/2018/421 &amp;lt;/ref&amp;gt; holds the record for fastest bootstrapping. In the literature, the schemes based on the aformentioned work of Gentry, Sahai and Waters are commonly referred to as &amp;quot;third generation FHE&amp;quot;. Their security is based on the so-called [[approximate eigenvector problem]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. The authors also provide a reduction from the approximate eigenvector problem to the [[LWE]] problem (see Section 1.3.4) of GSW &amp;lt;ref name = &amp;quot;GSW&amp;quot;/&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Overview of the GSW scheme ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key certfhewiki:diff::1.12:old-163:rev-164 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gturcas</name></author>
		
	</entry>
</feed>