<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>in   theory</title>
	<atom:link href="http://lucatrevisan.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lucatrevisan.wordpress.com</link>
	<description>"Marge, I agree with you - in theory. In theory, communism works. In theory." -- Homer Simpson</description>
	<lastBuildDate>Mon, 29 Jun 2009 22:42:43 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/ac34e0fe40cb09c540b1a1c57ceb343b?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>in   theory</title>
		<link>http://lucatrevisan.wordpress.com</link>
	</image>
			<item>
		<title>Sadness</title>
		<link>http://lucatrevisan.wordpress.com/2009/06/25/sadness/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/06/25/sadness/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 00:08:58 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[King of pop]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1439</guid>
		<description><![CDATA[
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1439&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="text-align:center; display: block;"><a href="http://lucatrevisan.wordpress.com/2009/06/25/sadness/"><img src="http://img.youtube.com/vi/C-blEgMyJwU/2.jpg" alt="" /></a></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1439/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1439&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/06/25/sadness/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/C-blEgMyJwU/2.jpg" medium="image" />
	</item>
		<item>
		<title>The end of UC Berkeley as we know it</title>
		<link>http://lucatrevisan.wordpress.com/2009/06/18/the-end-of-uc-berkeley-as-we-know-it/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/06/18/the-end-of-uc-berkeley-as-we-know-it/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 21:21:19 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[Berkeley]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[taxes]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1427</guid>
		<description><![CDATA[There are two qualities that together make UC Berkeley unique among worldwide institutions of higher education. 
One is that our several academic departments cover nearly all fields of scholarship, and that nearly every department is at the very top of its field. Very few places have this phenomenal combination of breadth and depth, although, admittedly, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1427&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>There are two qualities that together make UC Berkeley unique among worldwide institutions of higher education. </p>
<p>One is that our several academic departments cover nearly all fields of scholarship, and that nearly every department is at the very top of its field. Very few places have this phenomenal combination of breadth and depth, although, admittedly, there are some. </p>
<p>The other is the diversity of the student body. Not <i>ethnic</i> diversity, because the passage of <a href="http://en.wikipedia.org/wiki/Proposition_209">Proposition 209</a> made black and (to a lesser extent) Latino students almost disappear from campus. But, at least, UC Berkeley has been an engine of upward social mobility for a lot (and, being a big campus, it is really <i>a lot</i>) of white and Asian Californians from middle and working class families. To be sure, the top East Coast private universities do admit several students who are not from privileged families, and they do provide generous financial aid, but one has to be off-the-charts brilliant to get in based on raw talent alone. The merely very smart students can get in only if they have the kind of expensive resume-padding extracurricular activities that are out of reach for most students. At Berkeley, the merely very smart student has a good chance to get in by simply doing well in high school. And then, tuition is low for <i>everybody</i> who is from California, and the state used to give additional grants (80% of tuition) to everybody with a 3.0 GPA; plus the UC system has its own financial aid program.</p>
<p>Two days ago, the Chancellor <a href="http://www.berkeley.edu/news/media/releases/2009/06/16_bsa.shtml">announced</a> that because of the cuts expected as a consequence of the state-wide budget crisis, UC Berkeley needs to cut about $100 millions. Next year, we should expect a complete freeze on hiring, layoffs of administrative staff, strong cuts to student aid, increased tuition, and salary cuts of 8%. For 2010-2011, rumors are that the sun will go dark, it will rain blood from the sky, and then the locusts will come and eat us alive. Unfortunately, 2011-2012 will be much worse.<span id="more-1427"></span></p>
<p>It is unclear how this will affect breadth and depth of research at Berkeley. The idea of closing academic departments seems to be completely off-limits. (It is not even mentioned for the sake of ruling it out.) The hiring freeze, however, will inevitably affect changing areas and new interdisciplinary activities.</p>
<p>I am, however, very pessimistic on how the cuts will affect the diversity of the student body, and the Harvard/Princeton/Yale quality of their education. The tuition increase and reduced financial aid, together with the state cutting its own student grants, will make it harder for many students to come to Berkeley. And for those who come, fewer TAs, larger classes, and overworked administrative staff will make for a much less rewarding experience. </p>
<p>Of course, deep cuts are being made to all state activities, and the Berkeley students won&#8217;t have it as badly as the 930,000 children who are <a href="http://www.latimes.com/news/local/la-me-cap8-2009jun08,0,3806647.column">going to lose health coverage</a> or the 35,000 AIDS patients who are going to <a href="http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2009/06/11/BANS184IE9.DTL">lose access to their life-saving medications</a>. There are also plans to close prisons, cut costs in law enforcement, close firefighter stations, reduce road maintenance work, and so on.</p>
<p>To external observers, it may seem incomprehensible that California, which remains a very rich state, cannot afford to take care of its students, its sick, its roads, its burning homes, and so on. The culprit is <a href="http://en.wikipedia.org/wiki/California_Proposition_13_(1978)">Proposition 13</a>, which I see as a reduction ad absurdum showing that direct democracy does not work. Proposition 13 made property taxes work like TCP/IP: they can be reduced arbitrarily when property values go down, but can only go up very slowly when property values go up; in addition, it makes it all but impossible to raise income taxes. To be sure, nobody likes to pay taxes, but the only way to not pay taxes is to not have a state, and, as Somalis can tell you, not having a state is a bad thing. Perhaps, when we&#8217;ll have pirates off the coast of California, there will be a movement to overturn Prop 13.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1427/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1427&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/06/18/the-end-of-uc-berkeley-as-we-know-it/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>
	</item>
		<item>
		<title>So this is what &#8220;FOCS&#8221; stands for</title>
		<link>http://lucatrevisan.wordpress.com/2009/06/09/so-this-is-what-focs-stands-for/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/06/09/so-this-is-what-focs-stands-for/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 23:22:09 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[philosophy]]></category>
		<category><![CDATA[theory]]></category>
		<category><![CDATA[Conceptual contributions]]></category>
		<category><![CDATA[ICS]]></category>
		<category><![CDATA[Oded Goldreich]]></category>
		<category><![CDATA[STOC and FOCS]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1422</guid>
		<description><![CDATA[At the STOC 2009 business meeting, Silvio Micali announced a new conference, Innovations in Computer Science (ICS), whose first edition will be in Beijing in January, 2010.
This is a conference that aims to be the venue for the first papers in new areas. This prompted people to ask me afterward if we shouldn&#8217;t start a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1422&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>At the <a href="http://www.umiacs.umd.edu/conferences/stoc2009/">STOC 2009</a> business meeting, Silvio Micali announced a new conference, <a href="http://itcs.tsinghua.edu.cn/ICS2010/">Innovations in Computer Science</a> (ICS), whose first edition will be in Beijing in January, 2010.</p>
<p>This is a conference that aims to be the venue for the <i>first papers</i> in new areas. This prompted people to ask me afterward if we shouldn&#8217;t start a new conference devoted to <a href="http://lucatrevisan.wordpress.com/2006/11/07/on-being-second/">second papers</a>. I thought this was an appealing ideas, and perhaps the conference could be called <i>Follows-up in Computer Science</i>; a snarky colleague, however, suggested that we already have two such conferences and they are called STOC and FOCS.</p>
<p>ICS has a steering committee entirely composed of past and future Turing Award winners, so surely they know what they are doing. A common complaint I heard, however, was that it isn&#8217;t clear exactly what the motivations and the goals of this conference are, what papers are being sought (surely you cannot fill up a 30-paper conference with first papers, each opening up a new area), and so on.</p>
<p>Helpfully, Oded Goldreich, one of the promoters of ICS, has written a <a href="http://www.wisdom.weizmann.ac.il/~oded/ics.html">statement</a> about the goals ICS, as well as a longer essay on <a href="http://www.wisdom.weizmann.ac.il/~oded/on-stocfocs.html">What is wrong with STOC and FOCS</a>. The arguments made in the essay are Oded&#8217;s motivations for the new conference.</p>
<p>As I have said before, I agree with the importance of conceptual innovations, and of simplicity, but I disagree with the claim that our current review system undervalues such points. Hence, I think that initiatives such as the <a href="http://scottaaronson.com/blog/?p=315">&#8220;letter on conceptual contributions&#8221;</a> and now ICS will not <i>correct</i> an imbalance, but rather will <i>create</i> an imbalance, penalizing the necessary, hard, and unglamorous technical work <a href="http://lucatrevisan.wordpress.com/2009/02/01/a-peoples-history-of-mathematics/">by which</a> we understand new ideas, exploit and simplify their applications, and create the conditions such that the next new ideas are &#8220;in the air&#8221; and the right person at the right time can get them, and so on.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1422/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1422&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/06/09/so-this-is-what-focs-stands-for/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>
	</item>
		<item>
		<title>LaTeX2WP minor update</title>
		<link>http://lucatrevisan.wordpress.com/2009/05/20/latex2wp-minor-update/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/05/20/latex2wp-minor-update/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:48:20 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[LaTeX2WP]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[LaTeX in WordPress]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1417</guid>
		<description><![CDATA[LaTeX2WP is a program that converts a LaTeX file into something that is ready to be cut and pasted into the WordPress online editor. It makes it easier to write mathematical posts, to post lecture notes on WordPress, and so on.
A new version is now available, which fixes a couple of bugs: 

 WordPress has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1417&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://lucatrevisan.wordpress.com/latex-to-wordpress/">LaTeX2WP</a> is a program that converts a LaTeX file into something that is ready to be cut and pasted into the WordPress online editor. It makes it easier to write mathematical posts, to post lecture notes on WordPress, and so on.</p>
<p>A <a href="http://sourceforge.net/projects/latex2wp">new version</a> is now available, which fixes a couple of bugs: </p>
<ul>
<li> WordPress has trouble if a mathematical expression containing <img src='http://s1.wordpress.com/latex.php?latex=%3C&#038;bg=ffffff&#038;fg=545454&#038;s=0' alt='&lt;' title='&lt;' class='latex' /> is followed by a mathematical expression containing <img src='http://s2.wordpress.com/latex.php?latex=%3E&#038;bg=ffffff&#038;fg=545454&#038;s=0' alt='&gt;' title='&gt;' class='latex' />. This is prevented by converting the inequality symbols to their HTML &#8220;character codes.&#8221;
<li> The previous version of LaTeX2WP had trouble with long sentences in square brackets; this is fixed.
</ul>
<p>In addition, \S for &sect; and \v{C} for &#268; (as &#8220;in Stone–Čech compactification&#8221;) now work.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1417/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1417&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/05/20/latex2wp-minor-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>
	</item>
		<item>
		<title>CS276 Lecture 27: Computational Zero Knowledge</title>
		<link>http://lucatrevisan.wordpress.com/2009/05/16/cs276-lecture-27/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/05/16/cs276-lecture-27/#comments</comments>
		<pubDate>Sun, 17 May 2009 01:45:40 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[CS276]]></category>
		<category><![CDATA[3-coloring]]></category>
		<category><![CDATA[commitment scheme]]></category>
		<category><![CDATA[Zero Knowledge]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1408</guid>
		<description><![CDATA[
Scribed by Madhur Tulsiani

 Summary 

In this lecture we begin the construction and analysis of a zero-knowledge protocol for the 3-coloring problem. Via reductions, this extends to a protocol for any problem in NP. We will only be able to establish a weak form of zero knowledge, called &#8220;computational zero knowledge&#8221; in which the output [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1408&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><p>
<em>Scribed by Madhur Tulsiani</em></p>
<p>
<p><b> Summary </b></p>
<p><p>
In this lecture we begin the construction and analysis of a zero-knowledge protocol for the 3-coloring problem. Via reductions, this extends to a protocol for any problem in NP. We will only be able to establish a weak form of zero knowledge, called &#8220;computational zero knowledge&#8221; in which the output of the simulator and the interaction in the protocol are computationally indistinguishable (instead of identical). It is considered unlikely that NP-complete problem can have zero-knowledge protocols of the strong type we defined in the previous lectures.</p>
<p>
As a first step, we will introduce the notion of a <em>commitment scheme</em> and provide a construction based on any one-way permutation.</p>
<p>
<span id="more-1408"></span></p>
<p>
<p><b>1. Commitment Scheme </b></p>
<p><p>
A commitment scheme is a two-phase protocol between a <em>Sender</em> and a <em>Receiver</em>. The Sender holds a message <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' /> and, in the first phase, it picks a random key <img src='http://s2.wordpress.com/latex.php?latex=%7BK%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K}' title='{K}' class='latex' /> and then &#8220;encodes&#8221; the message using the key and sends the encoding (a <em>commitment</em> to <img src='http://s3.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' />) to the Receiver. In the second phase, the Sender sends the key <img src='http://s1.wordpress.com/latex.php?latex=%7BK%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K}' title='{K}' class='latex' /> to the Receiver can <em>open</em> the commitment and find out the content of the message <img src='http://s2.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' />.</p>
<p>
A commitment scheme should satisfy two security properties:</p>
<p><ul>
<li> <b>Hiding.</b> Receiving a commitment to a message <img src='http://s3.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' /> should give no information to the Receiver about <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' />;
<li> <b>Binding.</b> The Sender cannot &#8220;cheat&#8221; in the second phase and send a different key <img src='http://s2.wordpress.com/latex.php?latex=%7BK%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K&#039;}' title='{K&#039;}' class='latex' /> that causes the commitment to open to a different message <img src='http://s3.wordpress.com/latex.php?latex=%7Bm%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m&#039;}' title='{m&#039;}' class='latex' />.
</ul>
<p>
It is impossible to satisfy both properties against computationally unbounded adversaries. It is possible, however, to have schemes in which the Hiding property holds against computationally unbounded Receivers and the Binding property holds (under appropriate assumptions on the primitive used in the construction) for bounded-complexity Senders; and it is possible to have schemes in which the Hiding property holds (under assumptions) for bounded-complexity Receivers while the Binding property holds against any Sender. We shall describe a protocol of the second type, based on one-way permutations. The following definition applies to one-round implementations of each phase, although a more general definition could be given in which each phase is allowed to involve multiple interactions.</p>
<blockquote><p><b>Definition 1 (Computationally Hiding, Perfectly Binding, Commitment Scheme)</b> <em> A Perfectly Binding and <img src='http://s1.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' />-Hiding Commitment Scheme for messages of length <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cell%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\ell}' title='{\ell}' class='latex' /> is a pair of algorithms <img src='http://s3.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> such that</p>
<ul>
<li> <b>Correctness.</b> For every message <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' /> and key <img src='http://s2.wordpress.com/latex.php?latex=%7BK%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K}' title='{K}' class='latex' />,
<p><p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++O%28K%2CC%28K%2Cm%29%29+%3D+m+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  O(K,C(K,m)) = m ' title='\displaystyle  O(K,C(K,m)) = m ' class='latex' /></p>
<li> <b><img src='http://s1.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' />-Hiding.</b> For every two messages <img src='http://s2.wordpress.com/latex.php?latex=%7Bm%2Cm%27+%5Cin+%5C%7B+0%2C1+%5C%7D%5E%5Cell%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m,m&#039; \in \{ 0,1 \}^\ell}' title='{m,m&#039; \in \{ 0,1 \}^\ell}' class='latex' />, the distributions <img src='http://s3.wordpress.com/latex.php?latex=%7BC%28K%2Cm%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(K,m)}' title='{C(K,m)}' class='latex' /> and <img src='http://s1.wordpress.com/latex.php?latex=%7BC%28K%2Cm%27%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(K,m&#039;)}' title='{C(K,m&#039;)}' class='latex' /> are <img src='http://s2.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' />-indistinguishable, where <img src='http://s3.wordpress.com/latex.php?latex=%7BK%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K}' title='{K}' class='latex' /> is a random key, that is, for every algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> of complexity <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cleq+t%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t}' title='{\leq t}' class='latex' />,
<p><p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+A%28C%28K%2Cm%29%29%3D1%5D+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+A%28C%28K%2Cm%27%29%29%3D1%5D+%7C+%5Cleq+%5Cepsilon+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  | \mathop{\mathbb P} [ A(C(K,m))=1] - \mathop{\mathbb P} [ A(C(K,m&#039;))=1] | \leq \epsilon ' title='\displaystyle  | \mathop{\mathbb P} [ A(C(K,m))=1] - \mathop{\mathbb P} [ A(C(K,m&#039;))=1] | \leq \epsilon ' class='latex' /></p>
<li> <b>Perfectly Binding.</b> For every message <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' /> and every two keys <img src='http://s2.wordpress.com/latex.php?latex=%7BK%2CK%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K,K&#039;}' title='{K,K&#039;}' class='latex' />,
<p><p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++O%28K%27%2CC%28K%2Cm%29%29+%5Cin+%5C%7B+m%2C+FAIL+%5C%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  O(K&#039;,C(K,m)) \in \{ m, FAIL \} ' title='\displaystyle  O(K&#039;,C(K,m)) \in \{ m, FAIL \} ' class='latex' /></p>
</ul>
<p> In the following we shall refer to such a scheme <img src='http://s1.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> as simply a <img src='http://s2.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' />-secure commitment scheme. </em></p></blockquote>
<p><p>
Given a one-way permutation <img src='http://s3.wordpress.com/latex.php?latex=%7Bf%3A+%5C%7B+0%2C1+%5C%7D%5En+%5Crightarrow+%5C%7B+0%2C1+%5C%7D%5En%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f: \{ 0,1 \}^n \rightarrow \{ 0,1 \}^n}' title='{f: \{ 0,1 \}^n \rightarrow \{ 0,1 \}^n}' class='latex' /> and a hard-core predicate <img src='http://s1.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' />, we consider the following construction of a one-bit commitment scheme:</p>
<ul>
<p><li> <img src='http://s2.wordpress.com/latex.php?latex=%7BC%28K%2Cm%29%3A%3D+f%28K%29+%2C+m+%5Coplus+P%28K%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(K,m):= f(K) , m \oplus P(K)}' title='{C(K,m):= f(K) , m \oplus P(K)}' class='latex' />
<li> <img src='http://s3.wordpress.com/latex.php?latex=%7BO%28K%2C%28c_1%2Cc_2%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(K,(c_1,c_2))}' title='{O(K,(c_1,c_2))}' class='latex' /> equals <img src='http://s1.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' /> if <img src='http://s2.wordpress.com/latex.php?latex=%7Bf%28K%29+%5Cneq+c_1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f(K) \neq c_1}' title='{f(K) \neq c_1}' class='latex' />, and <img src='http://s3.wordpress.com/latex.php?latex=%7BP%28K%29+%5Coplus+c_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(K) \oplus c_2}' title='{P(K) \oplus c_2}' class='latex' /> otherwise.
</ul>
<blockquote><p><b>Theorem 2</b> <em> If <img src='http://s1.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> is a <img src='http://s2.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' />-secure hard core predicate for <img src='http://s3.wordpress.com/latex.php?latex=%7Bf%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f}' title='{f}' class='latex' />, then the above construction is a <img src='http://s1.wordpress.com/latex.php?latex=%7B%28t-O%281%29%2C2%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t-O(1),2\epsilon)}' title='{(t-O(1),2\epsilon)}' class='latex' />-secure commitment scheme. </em></p></blockquote>
<p> <em>Proof:</em>  The binding property of the commitment scheme is easy to argue as the commitment is a permutation of the key and the message. In particular, given <img src='http://s2.wordpress.com/latex.php?latex=%7BC%28K%2Cm%29+%3D+%28x%2Cy%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(K,m) = (x,y)}' title='{C(K,m) = (x,y)}' class='latex' />, we can find the unique <img src='http://s3.wordpress.com/latex.php?latex=%7BK%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K}' title='{K}' class='latex' /> and <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' /> that generate it as
<p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++K+%3D+f%5E%7B-1%7D%28x%29+%7E%7E%7E%7E%5Cmbox%7Band%7D%7E%7E%7E%7E+m+%3D+y+%5Coplus+P%28K%29+%3D+y%5Coplus+P%28f%5E%7B-1%7D%28x%29%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  K = f^{-1}(x) ~~~~\mbox{and}~~~~ m = y \oplus P(K) = y\oplus P(f^{-1}(x))' title='\displaystyle  K = f^{-1}(x) ~~~~\mbox{and}~~~~ m = y \oplus P(K) = y\oplus P(f^{-1}(x))' class='latex' /></p>
<p>
To prove the hiding property in the contrapositive, we want to take an algorithm which distinguishes the commitments of two messages and convert it to an algorithm which computes the predicate <img src='http://s3.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> with probability better than <img src='http://s1.wordpress.com/latex.php?latex=%7B1%2F2+%2B+%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/2 + \epsilon}' title='{1/2 + \epsilon}' class='latex' />. Let <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> be such an algorithm which distinguishes two different messages (one of which must be 0 and the other must be 1). Then, we have that for <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /></p>
<p><p align="center"><img src='http://s1.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cbegin%7Barray%7D%7Brcl%7D++%26%26%5Cleft%5Clvert+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28C%28K%2Cm%29%29+%3D+1%5D+-+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28C%28K%2Cm%29+%3D+1%5D%5Cright%5Crvert+%3E+2%5Cepsilon+%5C%5C+%5Cimplies+%26%26+%5Cleft%5Clvert+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2C+P%28K%29%5Coplus+0%29+%3D+1%5D+-+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2C+P%28K%29%5Coplus+1%29+%3D+1%5D%5Cright%5Crvert+%3E+2%5Cepsilon+%5Cend%7Barray%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \begin{array}{rcl}  &amp;&amp;\left\lvert \mathop{\mathbb P}[A(C(K,m)) = 1] - \mathop{\mathbb P}[A(C(K,m) = 1]\right\rvert &gt; 2\epsilon \\ \implies &amp;&amp; \left\lvert \mathop{\mathbb P}[A(f(K), P(K)\oplus 0) = 1] - \mathop{\mathbb P}[A(f(K), P(K)\oplus 1) = 1]\right\rvert &gt; 2\epsilon \end{array} ' title='\displaystyle  \begin{array}{rcl}  &amp;&amp;\left\lvert \mathop{\mathbb P}[A(C(K,m)) = 1] - \mathop{\mathbb P}[A(C(K,m) = 1]\right\rvert &gt; 2\epsilon \\ \implies &amp;&amp; \left\lvert \mathop{\mathbb P}[A(f(K), P(K)\oplus 0) = 1] - \mathop{\mathbb P}[A(f(K), P(K)\oplus 1) = 1]\right\rvert &gt; 2\epsilon \end{array} ' class='latex' /></p>
<p>
Assume without loss of generality that the quantity in the absolute value is positive i.e.
<p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2C+P%28K%29%29+%3D+1%5D+-+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2C+P%28K%29%5Coplus+1%29+%3D+1%5D+%3E+2%5Cepsilon+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \mathop{\mathbb P}[A(f(K), P(K)) = 1] - \mathop{\mathbb P}[A(f(K), P(K)\oplus 1) = 1] &gt; 2\epsilon ' title='\displaystyle  \mathop{\mathbb P}[A(f(K), P(K)) = 1] - \mathop{\mathbb P}[A(f(K), P(K)\oplus 1) = 1] &gt; 2\epsilon ' class='latex' /></p>
<p>
Hence, <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> outputs 1 significantly more often when given the correct value of <img src='http://s1.wordpress.com/latex.php?latex=%7BP%28K%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(K)}' title='{P(K)}' class='latex' />. As seen in previous lectures, we can convert this into an algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> that predicts the value of <img src='http://s3.wordpress.com/latex.php?latex=%7BP%28K%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(K)}' title='{P(K)}' class='latex' />. Algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> takes <img src='http://s2.wordpress.com/latex.php?latex=%7Bf%28K%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f(K)}' title='{f(K)}' class='latex' /> as input and generates a random bit <img src='http://s3.wordpress.com/latex.php?latex=%7Bb%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b}' title='{b}' class='latex' /> as a guess for <img src='http://s1.wordpress.com/latex.php?latex=%7BP%28K%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(K)}' title='{P(K)}' class='latex' />. It then runs <img src='http://s2.wordpress.com/latex.php?latex=%7BA%28f%28K%29%2Cb%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A(f(K),b)}' title='{A(f(K),b)}' class='latex' />. Since <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is correct more often on the correct value of <img src='http://s1.wordpress.com/latex.php?latex=%7BP%28K%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(K)}' title='{P(K)}' class='latex' />, <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> outputs <img src='http://s3.wordpress.com/latex.php?latex=%7Bb%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b}' title='{b}' class='latex' /> if <img src='http://s1.wordpress.com/latex.php?latex=%7BA%28f%28K%29%2Cb%29+%3D+1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A(f(K),b) = 1}' title='{A(f(K),b) = 1}' class='latex' /> and outputs <img src='http://s2.wordpress.com/latex.php?latex=%7Bb+%5Coplus+1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b \oplus 1}' title='{b \oplus 1}' class='latex' /> otherwise. We can analyze its success probability as below
<p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cbegin%7Barray%7D%7Brcl%7D++%26%26+%5Cmathop%7B%5Cmathbb+P%7D%5BA%27%28f%28K%29%29+%3D+P%28K%29%5D+%3D+%5Cmathop%7B%5Cmathbb+P%7D%5Bb+%3D+P%28K%29%5D+%5Ccdot+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2CP%28K%29%29+%3D+1%5D+%5C%5C+%26%26%2B+%5Cmathop%7B%5Cmathbb+P%7D%5Bb+%5Cneq+P%28K%29%5D+%5Ccdot+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2CP%28K%29%5Coplus1%29+%3D+0%5D+%5C%5C+%26%3D%26+%5Cfrac12+%5Ccdot+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2CP%28K%29%29+%3D+1%5D+%5C%5C+%26%26%2B+%5Cfrac12+%5Ccdot+%5Cleft%28+1-+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2CP%28K%29%5Coplus1%29+%3D+1%5D%5Cright%29+%5C%5C+%26%3D%26+%5Cfrac12+%2B+%5Cfrac12+%5Ccdot+%5Cleft%28%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2CP%28K%29%29+%3D+1%5D+-+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28f%28K%29%2CP%28K%29%5Coplus1%29+%3D+1%5D%5Cright%29%5C%5C+%26%5Cgeq%26+%5Cfrac12+%2B+%5Cepsilon+%5Cend%7Barray%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \begin{array}{rcl}  &amp;&amp; \mathop{\mathbb P}[A&#039;(f(K)) = P(K)] = \mathop{\mathbb P}[b = P(K)] \cdot \mathop{\mathbb P}[A(f(K),P(K)) = 1] \\ &amp;&amp;+ \mathop{\mathbb P}[b \neq P(K)] \cdot \mathop{\mathbb P}[A(f(K),P(K)\oplus1) = 0] \\ &amp;=&amp; \frac12 \cdot \mathop{\mathbb P}[A(f(K),P(K)) = 1] \\ &amp;&amp;+ \frac12 \cdot \left( 1- \mathop{\mathbb P}[A(f(K),P(K)\oplus1) = 1]\right) \\ &amp;=&amp; \frac12 + \frac12 \cdot \left(\mathop{\mathbb P}[A(f(K),P(K)) = 1] - \mathop{\mathbb P}[A(f(K),P(K)\oplus1) = 1]\right)\\ &amp;\geq&amp; \frac12 + \epsilon \end{array} ' title='\displaystyle  \begin{array}{rcl}  &amp;&amp; \mathop{\mathbb P}[A&#039;(f(K)) = P(K)] = \mathop{\mathbb P}[b = P(K)] \cdot \mathop{\mathbb P}[A(f(K),P(K)) = 1] \\ &amp;&amp;+ \mathop{\mathbb P}[b \neq P(K)] \cdot \mathop{\mathbb P}[A(f(K),P(K)\oplus1) = 0] \\ &amp;=&amp; \frac12 \cdot \mathop{\mathbb P}[A(f(K),P(K)) = 1] \\ &amp;&amp;+ \frac12 \cdot \left( 1- \mathop{\mathbb P}[A(f(K),P(K)\oplus1) = 1]\right) \\ &amp;=&amp; \frac12 + \frac12 \cdot \left(\mathop{\mathbb P}[A(f(K),P(K)) = 1] - \mathop{\mathbb P}[A(f(K),P(K)\oplus1) = 1]\right)\\ &amp;\geq&amp; \frac12 + \epsilon \end{array} ' class='latex' /></p>
<p> Thus, <img src='http://s1.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> predicts <img src='http://s2.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> with probability <img src='http://s3.wordpress.com/latex.php?latex=%7B1%2F2+%2B+%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/2 + \epsilon}' title='{1/2 + \epsilon}' class='latex' /> and has complexity only <img src='http://s1.wordpress.com/latex.php?latex=%7BO%281%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(1)}' title='{O(1)}' class='latex' /> more than <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> (for generating the random bit) which contradicts the fact that <img src='http://s3.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> is <img src='http://s1.wordpress.com/latex.php?latex=%7B%28t%2C+%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t, \epsilon)}' title='{(t, \epsilon)}' class='latex' />-secure. <img src='http://s2.wordpress.com/latex.php?latex=%5CBox&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>
There is a generic way to turn a one-bit commitment scheme into a commitment scheme for messages of length <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cell%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\ell}' title='{\ell}' class='latex' /> (just concatenate the commitments of each bit of the message, using independent keys).</p>
<blockquote><p><b>Theorem 3</b> <em> <a name="thmconcatenation"></a> Let <img src='http://s1.wordpress.com/latex.php?latex=%7B%28O%2CC%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(O,C)}' title='{(O,C)}' class='latex' /> be a <img src='http://s2.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' />-secure commitment scheme for messages of length <img src='http://s3.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> such that <img src='http://s1.wordpress.com/latex.php?latex=%7BO%28%5Ccdot%2C%5Ccdot%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(\cdot,\cdot)}' title='{O(\cdot,\cdot)}' class='latex' /> is computable in time <img src='http://s2.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. Then the following scheme <img src='http://s3.wordpress.com/latex.php?latex=%7B%28%5Coverline+C%2C+%5Coverline+O%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(\overline C, \overline O)}' title='{(\overline C, \overline O)}' class='latex' /> is a <img src='http://s1.wordpress.com/latex.php?latex=%7Bt-O%28r%5Ccdot+%5Cell%29%2C+%5Cepsilon+%5Ccdot+l%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t-O(r\cdot \ell), \epsilon \cdot l)}' title='{t-O(r\cdot \ell), \epsilon \cdot l)}' class='latex' />-secure commitment scheme for message of length <img src='http://s2.wordpress.com/latex.php?latex=%7Bk%5Ccdot+%5Cell%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k\cdot \ell}' title='{k\cdot \ell}' class='latex' />:</p>
<p><ul>
<li> <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Coverline+C+%28K_1%2C%5Cldots%2CK_%5Cell%2Cm%29%3A%3D+C%28K_1%2Cm_1%29%2C%5Cldots%2C+C%28K_%5Cell%2Cm_%5Cell%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\overline C (K_1,\ldots,K_\ell,m):= C(K_1,m_1),\ldots, C(K_\ell,m_\ell)}' title='{\overline C (K_1,\ldots,K_\ell,m):= C(K_1,m_1),\ldots, C(K_\ell,m_\ell)}' class='latex' />
<li> <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Coverline+O+%28K_1%2C%5Cldots%2CK_%5Cell%2Cc_1%2C%5Cldots%2Cc_%5Cell%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\overline O (K_1,\ldots,K_\ell,c_1,\ldots,c_\ell)}' title='{\overline O (K_1,\ldots,K_\ell,c_1,\ldots,c_\ell)}' class='latex' /> equals <img src='http://s2.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' /> if at least one of <img src='http://s3.wordpress.com/latex.php?latex=%7BO%28K_i%2Cc_i%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(K_i,c_i)}' title='{O(K_i,c_i)}' class='latex' /> outputs <img src='http://s1.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' />; otherwise it equals <img src='http://s2.wordpress.com/latex.php?latex=%7BO%28K_1%2Cc_1%29%2C%5Cldots%2CO%28K_%5Cell%2Cc_%5Cell%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(K_1,c_1),\ldots,O(K_\ell,c_\ell)}' title='{O(K_1,c_1),\ldots,O(K_\ell,c_\ell)}' class='latex' />.
</ul>
<p> </em></p></blockquote>
<p> <em>Proof:</em>  The commitment to <img src='http://s3.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' /> is easily seen to be binding since the commitments to each bit of <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m}' title='{m}' class='latex' /> are binding. The soundness can be proven by a hybrid argument.</p>
<p>
Suppose there is an <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> algorithm distinguishing <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Coverline+C%28K_1%2C+%5Cldots%2C+K_%5Cell%2Cm%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\overline C(K_1, \ldots, K_\ell,m)}' title='{\overline C(K_1, \ldots, K_\ell,m)}' class='latex' /> and <img src='http://s1.wordpress.com/latex.php?latex=%7BC%28K_1%2C+%5Cldots%2C+K_%5Cell%2C+m%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(K_1, \ldots, K_\ell, m)}' title='{C(K_1, \ldots, K_\ell, m)}' class='latex' /> with probability more than <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cepsilon+%5Ccdot+%5Cell%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\epsilon \cdot \ell}' title='{\epsilon \cdot \ell}' class='latex' />. We then consider &#8220;hybrid messages&#8221; <img src='http://s3.wordpress.com/latex.php?latex=%7Bm%5E%7B%280%29%7D%2C+%5Cldots%2C+m%5E%7B%28%5Cell%29%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m^{(0)}, \ldots, m^{(\ell)}}' title='{m^{(0)}, \ldots, m^{(\ell)}}' class='latex' />, where <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%5E%7B%28i%29%7D+%3D+m_1%27+%5Cldots+m_i%27+m_%7Bi%2B1%7D%2C+%5Cldots%2C+m_%7B%5Cell%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m^{(i)} = m_1&#039; \ldots m_i&#039; m_{i+1}, \ldots, m_{\ell}}' title='{m^{(i)} = m_1&#039; \ldots m_i&#039; m_{i+1}, \ldots, m_{\ell}}' class='latex' />. By a hybrid argument, there is some <img src='http://s2.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> such that
<p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cleft%5Clvert%5Cmathop%7B%5Cmathbb+P%7D%5BA%28K_1%2C+%5Cldots%2C+K_%5Cell%2C+m%5E%7B%28i%29%7D%29+%3D+1%5D+-+%5Cmathop%7B%5Cmathbb+P%7D%5BA%28K_1%2C+%5Cldots%2C+K_%5Cell%2C+m%5E%7B%28i%2B1%29%7D%29+%3D+1%5D+%5Cright%5Crvert+%3E+%5Cepsilon&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \left\lvert\mathop{\mathbb P}[A(K_1, \ldots, K_\ell, m^{(i)}) = 1] - \mathop{\mathbb P}[A(K_1, \ldots, K_\ell, m^{(i+1)}) = 1] \right\rvert &gt; \epsilon' title='\displaystyle  \left\lvert\mathop{\mathbb P}[A(K_1, \ldots, K_\ell, m^{(i)}) = 1] - \mathop{\mathbb P}[A(K_1, \ldots, K_\ell, m^{(i+1)}) = 1] \right\rvert &gt; \epsilon' class='latex' /></p>
<p>
But since <img src='http://s1.wordpress.com/latex.php?latex=%7Bm%5E%7B%28i%29%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m^{(i)}}' title='{m^{(i)}}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7Bm%5E%7B%28i%2B1%29%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m^{(i+1)}}' title='{m^{(i+1)}}' class='latex' /> differ in only one bit, we can get an algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> that breaks the hiding property of the one bit commitment scheme <img src='http://s1.wordpress.com/latex.php?latex=%7BC%28%5Ccdot%2C%5Ccdot%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(\cdot,\cdot)}' title='{C(\cdot,\cdot)}' class='latex' />. <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' />, given a commitment <img src='http://s3.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' />, outputs
<p align="center"><img src='http://s1.wordpress.com/latex.php?latex=%5Cdisplaystyle+A%27%28c%29+%7E%3D%7E+A%28C%28K_1%2Cm_1%29%2C+%5Cldots%2C+C%28K_i%2Cm_i%29%2C+c%2C+C%28K_%7Bi%2B2%7D%2C+m_%7Bi%2B2%7D%27%29%2C+%5Cldots%2C+C%28K_%5Cell%2C+m_%5Cell%27%29%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle A&#039;(c) ~=~ A(C(K_1,m_1), \ldots, C(K_i,m_i), c, C(K_{i+2}, m_{i+2}&#039;), \ldots, C(K_\ell, m_\ell&#039;))' title='\displaystyle A&#039;(c) ~=~ A(C(K_1,m_1), \ldots, C(K_i,m_i), c, C(K_{i+2}, m_{i+2}&#039;), \ldots, C(K_\ell, m_\ell&#039;))' class='latex' /></p>
<p> Hence, <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> has complexity at most <img src='http://s3.wordpress.com/latex.php?latex=%7Bt+%2B+O%28r%5Ccdot+l%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t + O(r\cdot l)}' title='{t + O(r\cdot l)}' class='latex' /> and distinguishes <img src='http://s1.wordpress.com/latex.php?latex=%7BC%28K_%7Bi%2B1%7D%2C+m_%7Bi%2B1%7D%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(K_{i+1}, m_{i+1})}' title='{C(K_{i+1}, m_{i+1})}' class='latex' /> from <img src='http://s2.wordpress.com/latex.php?latex=%7BC%28K_%7Bi%2B1%7D%2C+m_%7Bi%2B1%7D%27%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C(K_{i+1}, m_{i+1}&#039;)}' title='{C(K_{i+1}, m_{i+1}&#039;)}' class='latex' />. <img src='http://s3.wordpress.com/latex.php?latex=%5CBox&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>
There is also a construction based on one-way permutations that is better in terms of key length.</p>
<p>
<p><b>2. A Protocol for 3-Coloring </b></p>
<p><p>
We assume we have a <img src='http://s1.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' />-secure commitment scheme <img src='http://s2.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> for messages in the set <img src='http://s3.wordpress.com/latex.php?latex=%7B%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\{1,2,3\}}' title='{\{1,2,3\}}' class='latex' />.</p>
<p>
The prover <img src='http://s1.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> takes in input a 3-coloring graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%3D%28%5Bn%5D%2CE%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=([n],E)}' title='{G=([n],E)}' class='latex' /> (we assume that the set of vertices is the set <img src='http://s3.wordpress.com/latex.php?latex=%7B%5C%7B1%2C%5Cldots%2Cn%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\{1,\ldots,n\}}' title='{\{1,\ldots,n\}}' class='latex' /> and use the notation <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Bn%5D+%3A%3D+%5C%7B1%2C%5Cldots%2Cn%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{[n] := \{1,\ldots,n\}}' title='{[n] := \{1,\ldots,n\}}' class='latex' />) and a proper 3-coloring <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Calpha+%3A+%5Bn%5D+%5Crightarrow+%5C%7B+1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha : [n] \rightarrow \{ 1,2,3\}}' title='{\alpha : [n] \rightarrow \{ 1,2,3\}}' class='latex' /> of <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> (that is, <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' /> is such that for every edge <img src='http://s2.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%5Cin+E%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)\in E}' title='{(u,v)\in E}' class='latex' /> we have <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Calpha+%28u%29+%5Cneq+%5Calpha%28v%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha (u) \neq \alpha(v)}' title='{\alpha (u) \neq \alpha(v)}' class='latex' />). The verifier <img src='http://s1.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> takes in input <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />. The protocol, in which the prover attempts to convince the verifier that the graph is 3-colorable, proceeds as follows:</p>
<p><ul>
<li> The prover picks a random permutation <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi%3A+%5C%7B1%2C2%2C3%5C%7D+%5Crightarrow+%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi: \{1,2,3\} \rightarrow \{1,2,3\}}' title='{\pi: \{1,2,3\} \rightarrow \{1,2,3\}}' class='latex' /> of the set of colors, and defines the 3-coloring <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cbeta%28v%29+%3A%3D+%5Cpi%28%5Calpha%28v%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\beta(v) := \pi(\alpha(v))}' title='{\beta(v) := \pi(\alpha(v))}' class='latex' />. The prover picks <img src='http://s2.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> keys <img src='http://s3.wordpress.com/latex.php?latex=%7BK_1%2C%5Cldots%2CK_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_1,\ldots,K_n}' title='{K_1,\ldots,K_n}' class='latex' /> for <img src='http://s1.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' />, constructs the commitments <img src='http://s2.wordpress.com/latex.php?latex=%7Bc_v+%3A%3D+C%28K_v%2C%5Cbeta%28v%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_v := C(K_v,\beta(v))}' title='{c_v := C(K_v,\beta(v))}' class='latex' /> and sends <img src='http://s3.wordpress.com/latex.php?latex=%7B%28c_1%2C%5Cldots%2Cc_n%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(c_1,\ldots,c_n)}' title='{(c_1,\ldots,c_n)}' class='latex' /> to the verifier;
<li> The verifier picks an edge <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%2Cv%29+%5Cin+E%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v) \in E}' title='{(u,v) \in E}' class='latex' /> uniformly at random, and sends <img src='http://s2.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> to the prover;
<li> The prover sends back the keys <img src='http://s3.wordpress.com/latex.php?latex=%7BK_u%2CK_v%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_u,K_v}' title='{K_u,K_v}' class='latex' />;
<li> If <img src='http://s1.wordpress.com/latex.php?latex=%7BO%28K_u%2Cc_u%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(K_u,c_u)}' title='{O(K_u,c_u)}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BO%28K_v%2Cc_v%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(K_v,c_v)}' title='{O(K_v,c_v)}' class='latex' /> are the same color, or if at least one of them is equal to <img src='http://s3.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' />, then the verifier rejects, otherwise it accepts
</ul>
<blockquote><p><b>Theorem 4</b> <em> The protocol is complete and it has soundness error at most <img src='http://s1.wordpress.com/latex.php?latex=%7B%281-1%2F%7CE%7C%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(1-1/|E|)}' title='{(1-1/|E|)}' class='latex' />. </em></p></blockquote>
<p> <em>Proof:</em>  The protocol is easily seen to be complete, since if the prover sends a valid 3-coloring, the colors on endpoints of every edge will be different.</p>
<p>
To prove the soundness, we first note that if any commitment sent by the prover opens to an invalid color, then the protocol will fail with probability at least <img src='http://s2.wordpress.com/latex.php?latex=%7B1%2F%7CE%7C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/|E|}' title='{1/|E|}' class='latex' /> when querying an edge adjacent to the corresponding vertex (assuming the graph has no isolated vertices &#8211; which can be rivially removed). If all commitments open to valid colos, then the commitments define a 3-coloring of the graph. If the graph is not 3-colorable, then there must be at least one edge <img src='http://s3.wordpress.com/latex.php?latex=%7Be%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{e}' title='{e}' class='latex' /> both of whose end points receive the same color. Then the probability of the verifier rejecting is at least the probability of choosing <img src='http://s1.wordpress.com/latex.php?latex=%7Be%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{e}' title='{e}' class='latex' />, which is <img src='http://s2.wordpress.com/latex.php?latex=%7B1%2F%7CE%7C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/|E|}' title='{1/|E|}' class='latex' />. <img src='http://s3.wordpress.com/latex.php?latex=%5CBox&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>
Repeating the protocol <img src='http://s1.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> times sequentially reduces the soundness error to <img src='http://s2.wordpress.com/latex.php?latex=%7B%281-1%2F%7CE%7C%29%5Ek%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(1-1/|E|)^k}' title='{(1-1/|E|)^k}' class='latex' />; after about <img src='http://s3.wordpress.com/latex.php?latex=%7B27%5Ccdot+%7CE%7C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{27\cdot |E|}' title='{27\cdot |E|}' class='latex' /> repetitions the error is at most about <img src='http://s1.wordpress.com/latex.php?latex=%7B2%5E%7B-40%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{2^{-40}}' title='{2^{-40}}' class='latex' />.</p>
<p>
<p><b>3. Simulability </b></p>
<p><p>
We now describe, for every verifier algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' />, a simulator <img src='http://s3.wordpress.com/latex.php?latex=%7BS%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*}' title='{S^*}' class='latex' /> of the interaction between <img src='http://s1.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> and the prover algorithm.</p>
<p>
The basic simulator is as follows:</p>
<p>
<b>Algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BS_%7B1round%7D%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S_{1round}^*}' title='{S_{1round}^*}' class='latex' /></b></p>
<ul>
<li> Input: graph <img src='http://s3.wordpress.com/latex.php?latex=%7BG%3D%28%5Bn%5D%2CE%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=([n],E)}' title='{G=([n],E)}' class='latex' />
<li> Pick random coloring <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cgamma+%3A+%5Bn%5D+%5Crightarrow+%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma : [n] \rightarrow \{1,2,3\}}' title='{\gamma : [n] \rightarrow \{1,2,3\}}' class='latex' />.
<li> Pick <img src='http://s2.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> random keys <img src='http://s3.wordpress.com/latex.php?latex=%7BK_1%2C%5Cldots%2CK_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_1,\ldots,K_n}' title='{K_1,\ldots,K_n}' class='latex' />
<li> Define the commitments <img src='http://s1.wordpress.com/latex.php?latex=%7Bc_i+%3A%3D+C%28K_i%2C+%5Cgamma%28i%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_i := C(K_i, \gamma(i))}' title='{c_i := C(K_i, \gamma(i))}' class='latex' />
<li> Let <img src='http://s2.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> be the 2nd-round output of <img src='http://s3.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> given <img src='http://s1.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> as input and <img src='http://s2.wordpress.com/latex.php?latex=%7Bc_1%2C%5Cldots%2Cc_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_1,\ldots,c_n}' title='{c_1,\ldots,c_n}' class='latex' /> as first-round message
<li> If <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cgamma%28u%29+%3D+%5Cgamma%28v%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma(u) = \gamma(v)}' title='{\gamma(u) = \gamma(v)}' class='latex' />, then output FAIL
<li> Else output <img src='http://s1.wordpress.com/latex.php?latex=%7B%28%28c_1%2C%5Cldots%2Cc_n%29%2C%28u%2Cv%29%2C%28K_u%2CK_v%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{((c_1,\ldots,c_n),(u,v),(K_u,K_v))}' title='{((c_1,\ldots,c_n),(u,v),(K_u,K_v))}' class='latex' />
</ul>
<p>
And the procedure <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5E%2A%28G%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*(G)}' title='{S^*(G)}' class='latex' /> simply repeats <img src='http://s3.wordpress.com/latex.php?latex=%7BS%5E%2A_%7B1round%7D+%28G%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*_{1round} (G)}' title='{S^*_{1round} (G)}' class='latex' /> until it provides an output different from <img src='http://s1.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' />.</p>
<p>
It is easy to see that the output distribution of <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5E%2A%28G%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*(G)}' title='{S^*(G)}' class='latex' /> is always <em>different</em> from the actual distribution of interactions between <img src='http://s3.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> and <img src='http://s1.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' />: in the former, the first round is almost always a commitment to an invalid 3-coloring, in the latter, the first round is always a valid 3-coloring.</p>
<p>
We shall prove, however, that the output of <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5E%2A%28G%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*(G)}' title='{S^*(G)}' class='latex' /> and the actual interaction of <img src='http://s3.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> and <img src='http://s1.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> have <em>computationally indistinguishable</em> distributions provided that the running time of <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> is bounded and that the security of <img src='http://s3.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is strong enough.</p>
<p>
For now, we prove that <img src='http://s1.wordpress.com/latex.php?latex=%7BS%5E%2A%28G%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*(G)}' title='{S^*(G)}' class='latex' /> has efficiency comparable to <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> provided that security of <img src='http://s3.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is strong enough.</p>
<blockquote><p><b>Theorem 5</b> <em> <a name="thsimfail"></a> Suppose that <img src='http://s1.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is <img src='http://s2.wordpress.com/latex.php?latex=%7B%28t%2BO%28nr%29%2C%5Cepsilon%2F%28n%5Ccdot+%7CE%7C%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t+O(nr),\epsilon/(n\cdot |E|))}' title='{(t+O(nr),\epsilon/(n\cdot |E|))}' class='latex' />-secure and <img src='http://s3.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> is computable in time <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cleq+r%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq r}' title='{\leq r}' class='latex' /> and that <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> is a verifier algorithm of complexity <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cleq+t%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t}' title='{\leq t}' class='latex' />.</p>
<p>
Then the algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BS%5E%2A_%7B1round%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*_{1round}}' title='{S^*_{1round}}' class='latex' /> as defined above has probability at most <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cfrac+13+%2B+%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\frac 13 + \epsilon}' title='{\frac 13 + \epsilon}' class='latex' /> of outputting <img src='http://s3.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' />. </em></p></blockquote>
<p><p>
The proof of Theorem <a href="#thsimfail">5</a> relies on the following result.</p>
<blockquote><p><b>Lemma 6</b> <em> <a name="lmsecondround"></a> Fix a graph <img src='http://s1.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and a verifier algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> of complexity <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cleq+t%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t}' title='{\leq t}' class='latex' />.</p>
<p>
Define <img src='http://s1.wordpress.com/latex.php?latex=%7Bp%28u%2Cv%2C%5Calpha%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{p(u,v,\alpha)}' title='{p(u,v,\alpha)}' class='latex' /> to be the probability that <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> asks the edge <img src='http://s3.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> at the second round in an interaction in which the input graph is <img src='http://s1.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and the first round is a commitment to the coloring <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' />.</p>
<p>
Suppose that <img src='http://s3.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is <img src='http://s1.wordpress.com/latex.php?latex=%7B%28t+%2B+O%28nr%29+%2C%5Cepsilon%2Fn%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t + O(nr) ,\epsilon/n)}' title='{(t + O(nr) ,\epsilon/n)}' class='latex' />-secure, and <img src='http://s2.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> is computable in time <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cleq+r%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq r}' title='{\leq r}' class='latex' />.</p>
<p>
Then for every two colorings <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Calpha%2C%5Cbeta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha,\beta}' title='{\alpha,\beta}' class='latex' /> and every edge <img src='http://s2.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> we have</p>
<p><p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%7C+p%28u%2Cv%2C%5Calpha%29+-+p%28u%2Cv%2C%5Cbeta%29+%7C+%5Cleq+%5Cepsilon+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  | p(u,v,\alpha) - p(u,v,\beta) | \leq \epsilon ' title='\displaystyle  | p(u,v,\alpha) - p(u,v,\beta) | \leq \epsilon ' class='latex' /></p>
<p> </em></p></blockquote>
<p> <em>Proof:</em>  If <img src='http://s1.wordpress.com/latex.php?latex=%7Bp%28u%2Cv%2C%5Calpha%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{p(u,v,\alpha)}' title='{p(u,v,\alpha)}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7Bp%28u%2Cv%2C%5Cbeta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{p(u,v,\beta)}' title='{p(u,v,\beta)}' class='latex' /> differ by more than <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\epsilon}' title='{\epsilon}' class='latex' /> for any edge <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' />, then we can define an algorithm which distinguishes the <img src='http://s2.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> commitments corresponding to <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' /> from the <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> commitments corresponding to <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cbeta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\beta}' title='{\beta}' class='latex' />. <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> simply runs the verifier given commitments for <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> colors and outputs 1 if the verifier selects the edge <img src='http://s2.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> in the second round.</p>
<p>
Then, by assumption, <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\epsilon}' title='{\epsilon}' class='latex' />-distinguishes the <img src='http://s2.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> commitments corresponding to <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' /> from the <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> commitments corresponding to <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cbeta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\beta}' title='{\beta}' class='latex' /> in time <img src='http://s3.wordpress.com/latex.php?latex=%7Bt+%2B+O%28nr%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t + O(nr)}' title='{t + O(nr)}' class='latex' />. However, by Theorem <a href="#thmconcatenation">3</a>, this means that <img src='http://s1.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is not <img src='http://s2.wordpress.com/latex.php?latex=%7B%28t+%2B+O%28nr%29%2C+%5Cepsilon%2Fn%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t + O(nr), \epsilon/n)}' title='{(t + O(nr), \epsilon/n)}' class='latex' />-secure which is a contradiction. <img src='http://s3.wordpress.com/latex.php?latex=%5CBox&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>
Given the lemma, we can now easily prove the theorem.</p>
<p>
<em>Proof:</em>  (of Theorem <a href="#thsimfail">5</a>) The probability that <img src='http://s1.wordpress.com/latex.php?latex=%7BS%5E%2A_%7B1round%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*_{1round}}' title='{S^*_{1round}}' class='latex' /> outputs <img src='http://s2.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' /> is given by
<p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cmathop%7B%5Cmathbb+P%7D%5Cleft%5B+S%5E%2A_%7B1round%7D+%7E%3D%7E+FAIL%5Cright%5D+%7E%3D%7E+%5Cfrac%7B1%7D%7B3%5En%7D+%5Ccdot+%5Csum_%7Bc+%5Cin+%5C%7B1%2C2%2C3%5C%7D%5En%7D+%5Csum_%7B%28u%2Cv%29+%5Cin+E+%5Catop+c%28u%29+%5Cneq+c%28v%29%7D+p%28u%2Cv%2Cc%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \mathop{\mathbb P}\left[ S^*_{1round} ~=~ FAIL\right] ~=~ \frac{1}{3^n} \cdot \sum_{c \in \{1,2,3\}^n} \sum_{(u,v) \in E \atop c(u) \neq c(v)} p(u,v,c)' title='\displaystyle  \mathop{\mathbb P}\left[ S^*_{1round} ~=~ FAIL\right] ~=~ \frac{1}{3^n} \cdot \sum_{c \in \{1,2,3\}^n} \sum_{(u,v) \in E \atop c(u) \neq c(v)} p(u,v,c)' class='latex' /></p>
<p>
Let <img src='http://s1.wordpress.com/latex.php?latex=%7B%7B%5Cbf+1%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{{\bf 1}}' title='{{\bf 1}}' class='latex' /> denote the coloring which assigns the color 1 to every vertex. Then using Lemma <a href="#lmsecondround">6</a> we bound the above as
<p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cbegin%7Barray%7D%7Brcl%7D++%5Cmathop%7B%5Cmathbb+P%7D%5Cleft%5B+S%5E%2A_%7B1round%7D+%3D+FAIL%5Cright%5D+%26%5Cleq%26+%5Cfrac%7B1%7D%7B3%5En%7D+%5Ccdot+%5Csum_%7Bc+%5Cin+%5C%7B1%2C2%2C3%5C%7D%5En%7D+%5Csum_%7B%28u%2Cv%29+%5Cin+E+%5Catop+c%28u%29+%5Cneq+c%28v%29%7D+%28p%28u%2Cv%2C%7B%5Cbf+1%7D%29+%2B+%5Cepsilon%29%5C%5C+%26%3D%26+%5Csum_%7B%28u%2Cv%29+%5Cin+E%7D+p%28u%2Cv%2C%7B%5Cbf+1%7D%29+%5Cleft%28%5Csum_%7Bc%3Ac%28u%29+%5Cneq+c%28v%29%7D+%5Cfrac%7B1%7D%7B3%5En%7D%5Cright%29+%7E%2B%7E+%5Cepsilon%5C%5C+%26%3D%26+%5Cfrac%7B1%7D%7B3%7D+%5Csum_%7B%28u%2Cv%29+%5Cin+E%7D+p%28u%2Cv%2C%7B%5Cbf+1%7D%29+%2B+%7E%5Cepsilon%7E%5C%5C+%26%3D%26+%5Cfrac%7B1%7D%7B3%7D+%2B+%5Cepsilon+%5Cend%7Barray%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \begin{array}{rcl}  \mathop{\mathbb P}\left[ S^*_{1round} = FAIL\right] &amp;\leq&amp; \frac{1}{3^n} \cdot \sum_{c \in \{1,2,3\}^n} \sum_{(u,v) \in E \atop c(u) \neq c(v)} (p(u,v,{\bf 1}) + \epsilon)\\ &amp;=&amp; \sum_{(u,v) \in E} p(u,v,{\bf 1}) \left(\sum_{c:c(u) \neq c(v)} \frac{1}{3^n}\right) ~+~ \epsilon\\ &amp;=&amp; \frac{1}{3} \sum_{(u,v) \in E} p(u,v,{\bf 1}) + ~\epsilon~\\ &amp;=&amp; \frac{1}{3} + \epsilon \end{array} ' title='\displaystyle  \begin{array}{rcl}  \mathop{\mathbb P}\left[ S^*_{1round} = FAIL\right] &amp;\leq&amp; \frac{1}{3^n} \cdot \sum_{c \in \{1,2,3\}^n} \sum_{(u,v) \in E \atop c(u) \neq c(v)} (p(u,v,{\bf 1}) + \epsilon)\\ &amp;=&amp; \sum_{(u,v) \in E} p(u,v,{\bf 1}) \left(\sum_{c:c(u) \neq c(v)} \frac{1}{3^n}\right) ~+~ \epsilon\\ &amp;=&amp; \frac{1}{3} \sum_{(u,v) \in E} p(u,v,{\bf 1}) + ~\epsilon~\\ &amp;=&amp; \frac{1}{3} + \epsilon \end{array} ' class='latex' /></p>
<p> where in the second step we used the fact that <img src='http://s3.wordpress.com/latex.php?latex=%7Bc%28u%29+%5Cneq+c%28v%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c(u) \neq c(v)}' title='{c(u) \neq c(v)}' class='latex' /> for a <img src='http://s1.wordpress.com/latex.php?latex=%7B1%2F3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/3}' title='{1/3}' class='latex' /> fraction of all the colorings and the last step used that the probability of <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> selecting some edge given the coloring <img src='http://s3.wordpress.com/latex.php?latex=%7B%7B%5Cbf+1%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{{\bf 1}}' title='{{\bf 1}}' class='latex' /> is 1. <img src='http://s1.wordpress.com/latex.php?latex=%5CBox&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1408/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1408&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/05/16/cs276-lecture-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>
	</item>
		<item>
		<title>The Loser Gets Pregnant First</title>
		<link>http://lucatrevisan.wordpress.com/2009/05/14/the-loser-gets-pregnant-first/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/05/14/the-loser-gets-pregnant-first/#comments</comments>
		<pubDate>Thu, 14 May 2009 20:48:43 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[science]]></category>
		<category><![CDATA[Pseudobiceros hancockanus]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1402</guid>
		<description><![CDATA[After reading the mouseover text of today&#8217;s dinosaur comic:

I couldn&#8217;t help looking up the Pseudobiceros hancockanus flatworm, and here is a PBS video of two of them engaged in penis fencing. (direct link)
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1402&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After reading the mouseover text of <a href="http://qwantz.com/archive/001467.html">today&#8217;s dinosaur comic</a>:</p>
<p><a href="http://www.qwantz.com/comics/comic2-1495.png"><img alt="" src="http://www.qwantz.com/comics/comic2-1495.png" class="aligncenter" width="500" /></a></p>
<p>I couldn&#8217;t help looking up the <i>Pseudobiceros hancockanus</i> flatworm, and <a href="http://www.pbs.org/kcet/shapeoflife/episodes/hunt_explo2.html">here is a PBS video</a> of two of them engaged in penis fencing. (<a href="http://www.pbs.org/kcet/shapeoflife/video/tv_high.html?ep_hunt_explo2_mov_hi">direct link</a>)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1402/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1402&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/05/14/the-loser-gets-pregnant-first/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>

		<media:content url="http://www.qwantz.com/comics/comic2-1495.png" medium="image" />
	</item>
		<item>
		<title>The Triangle Removal Lemma</title>
		<link>http://lucatrevisan.wordpress.com/2009/05/13/the-triangle-removal-lemma/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/05/13/the-triangle-removal-lemma/#comments</comments>
		<pubDate>Thu, 14 May 2009 02:02:52 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[math]]></category>
		<category><![CDATA[theory]]></category>
		<category><![CDATA[Additive Combinatorics]]></category>
		<category><![CDATA[open problems]]></category>
		<category><![CDATA[Regularity Lemma]]></category>
		<category><![CDATA[Szemeredi Theorem]]></category>
		<category><![CDATA[Triangle Removal Lemma]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1394</guid>
		<description><![CDATA[
[At the end of a survey paper on additive combinatorics and computational complexity which is to appear in SIGACT News, I list three major open questions in additive combinatorics which might be amenable to a "computer science proof." They are all extremely well studied questions, by very smart people, for the past several years, so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1394&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>
<em>[At the end of a <a href="http://www.cs.berkeley.edu/~luca/pubs/addcomb-sigact.pdf">survey paper</a> on additive combinatorics and computational complexity which is to appear in <a href="http://sigact.acm.org/sigactnews/online.html">SIGACT News</a>, I list three major open questions in additive combinatorics which might be amenable to a "computer science proof." They are all extremely well studied questions, by very smart people, for the past several years, so they are all very long shots. I don't recommend anybody to start working on them, but I think it is good that as many people as possible know about these questions, because when the right technique comes along its applicability can be more quickly realized.]</em></p>
<p>
The first question is to improve the <em>Triangle Removal Lemma</em>. I have talked <a href="http://lucatrevisan.wordpress.com/2006/06/27/property-testing-and-szemeredis-theorem/">here</a> about what the triangle removal lemma is, how one can prove it from the Szemer&eacute;di Regularity Lemma, and how it implies the length-3 case of Szemer&eacute;di&#8217;s Theorem.</p>
<p>
As a short recap, the Triangle Removal Lemma states that if <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> is an <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' />-vertex graph with <img src='http://s2.wordpress.com/latex.php?latex=%7Bo%28n%5E3%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{o(n^3)}' title='{o(n^3)}' class='latex' /> triangles, then there is a set of <img src='http://s3.wordpress.com/latex.php?latex=%7Bo%28n%5E2%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{o(n^2)}' title='{o(n^2)}' class='latex' /> edges such that the removal of those edges eliminates all the triangles. Equivalently, it says that if a graph has <img src='http://s1.wordpress.com/latex.php?latex=%7B%5COmega%28n%5E2%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\Omega(n^2)}' title='{\Omega(n^2)}' class='latex' /> triangles which are all pair-wise edge-disjoint, then there must be <img src='http://s2.wordpress.com/latex.php?latex=%7B%5COmega%28n%5E3%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\Omega(n^3)}' title='{\Omega(n^3)}' class='latex' /> triangles overall.</p>
<p>
The connection with Szemer&eacute;di&#8217;s Theorem is that if <img src='http://s3.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' /> is an abelian group with <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> elements, and <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is a subset of <img src='http://s3.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' /> with no length-3 arithmetic progressions (i.e., <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is such that there are no three distinct elements <img src='http://s2.wordpress.com/latex.php?latex=%7Ba%2Cb%2Cc%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{a,b,c}' title='{a,b,c}' class='latex' /> in <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> such that <img src='http://s1.wordpress.com/latex.php?latex=%7Bb-a+%3D+c-b%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b-a = c-b}' title='{b-a = c-b}' class='latex' />), then we can construct a graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%3D%28V%2CE%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=(V,E)}' title='{G=(V,E)}' class='latex' /> that has <img src='http://s3.wordpress.com/latex.php?latex=%7B3n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{3n}' title='{3n}' class='latex' /> vertices, <img src='http://s1.wordpress.com/latex.php?latex=%7B%7CA%7C+%5Ccdot+n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{|A| \cdot n}' title='{|A| \cdot n}' class='latex' /> pair-wise edge-disjoint triangles, and <em>no other triangles</em>. This contradicts the triangle removal lemma if <img src='http://s2.wordpress.com/latex.php?latex=%7B%7CA%7C+%3D+%5COmega%28n%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{|A| = \Omega(n)}' title='{|A| = \Omega(n)}' class='latex' />, and so we must have <img src='http://s3.wordpress.com/latex.php?latex=%7B%7CA%7C+%3D+o%28n%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{|A| = o(n)}' title='{|A| = o(n)}' class='latex' />.</p>
<p>
This is great, until we start looking at the relationships between the constants hidden by the <img src='http://s1.wordpress.com/latex.php?latex=%7Bo%28%5Ccdot+%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{o(\cdot )}' title='{o(\cdot )}' class='latex' /> notation. Quantitatively, the Triangle Removal Lemma states that for every <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\epsilon}' title='{\epsilon}' class='latex' /> there is a <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cdelta+%3D+%5Cdelta%28%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta = \delta(\epsilon)}' title='{\delta = \delta(\epsilon)}' class='latex' /> such that if a graph has at least <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cepsilon+%5Ccdot+n%5E2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\epsilon \cdot n^2}' title='{\epsilon \cdot n^2}' class='latex' /> pair-wise edge-disjoint triangles, then it has at least <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cdelta+%5Ccdot+n%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta \cdot n^3}' title='{\delta \cdot n^3}' class='latex' /> triangles. The only known proof, however, has <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cdelta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta}' title='{\delta}' class='latex' /> incredibly small: <img src='http://s1.wordpress.com/latex.php?latex=%7B1%2F%5Cdelta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\delta}' title='{1/\delta}' class='latex' /> grows like a tower of exponentials of height polynomial in <img src='http://s2.wordpress.com/latex.php?latex=%7B1%2F%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\epsilon}' title='{1/\epsilon}' class='latex' />. The proof uses the Szemer&eacute;di Regularity Lemma, and the Regularity Lemma is known to require such very bad dependencies.</p>
<p>
63 years ago, Behrend showed that <img src='http://s3.wordpress.com/latex.php?latex=%7B%7B%5Cmathbb+Z%7D%2FN%7B%5Cmathbb+Z%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{{\mathbb Z}/N{\mathbb Z}}' title='{{\mathbb Z}/N{\mathbb Z}}' class='latex' />, <img src='http://s1.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' /> prime, has a subset <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> that contains no length-3 arithmetic progression and whose size is <img src='http://s3.wordpress.com/latex.php?latex=%7BN%2F2%5E%7BO%28%5Csqrt+%7B%5Clog+N%7D%29%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N/2^{O(\sqrt {\log N})}}' title='{N/2^{O(\sqrt {\log N})}}' class='latex' />. (Last year, Elkin <a href="http://arxiv.org/abs/0801.4310">gave the first improvement</a> in 62 years to Behrend&#8217;s bound, but the improvement is only a multiplicative polylog <img src='http://s1.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' /> factor.) Combined with the graph construction mentioned above, this gives a graph with <img src='http://s2.wordpress.com/latex.php?latex=%7B3N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{3N}' title='{3N}' class='latex' /> vertices, <img src='http://s3.wordpress.com/latex.php?latex=%7BN%5E2%2F%5E%7BO%28%5Csqrt+%7B%5Clog+N%7D%29%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N^2/^{O(\sqrt {\log N})}}' title='{N^2/^{O(\sqrt {\log N})}}' class='latex' /> edge-disjoint triangles, and no other triangle. Thus, the graph has <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cleq+%5Cdelta+N%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq \delta N^3}' title='{\leq \delta N^3}' class='latex' /> triangles where <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cdelta+%3C+1%2FN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta &lt; 1/N}' title='{\delta &lt; 1/N}' class='latex' />, but one needs to remove <img src='http://s3.wordpress.com/latex.php?latex=%7B%3E+%5Cepsilon+N%5E2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{&gt; \epsilon N^2}' title='{&gt; \epsilon N^2}' class='latex' /> edges to make it triangle-free, where <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cepsilon+%3E+2%5E%7B-O%28%5Csqrt%7B%5Clog+N%7D%29%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\epsilon &gt; 2^{-O(\sqrt{\log N})}}' title='{\epsilon &gt; 2^{-O(\sqrt{\log N})}}' class='latex' />. This shows that, in the Triangle Removal Lemma, <img src='http://s2.wordpress.com/latex.php?latex=%7B1%2F%5Cdelta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\delta}' title='{1/\delta}' class='latex' /> must grow super-polynomially in <img src='http://s3.wordpress.com/latex.php?latex=%7B1%2F%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\epsilon}' title='{1/\epsilon}' class='latex' />, and be at least <img src='http://s1.wordpress.com/latex.php?latex=%7B1%2F%5Cepsilon%5E%7B%5Clog+1%2F%5Cepsilon%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\epsilon^{\log 1/\epsilon}}' title='{1/\epsilon^{\log 1/\epsilon}}' class='latex' />.</p>
<p>
The question is to shorten the gap between the tower-of-exponential relationship between <img src='http://s2.wordpress.com/latex.php?latex=%7B1%2F%5Cdelta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\delta}' title='{1/\delta}' class='latex' /> and <img src='http://s3.wordpress.com/latex.php?latex=%7B1%2F%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\epsilon}' title='{1/\epsilon}' class='latex' /> coming from the proof via the Szemer&eacute;di Regularity Lemma and the mildly super-polynomial lower bound coming from the above argument.</p>
<p>
<span id="more-1394"></span></p>
<p>
Gowers has constructed graphs showing that the tower-of-exponentials bounds in the Szemer&eacute;di Regularity are necessary. One idea on improving the lower bound could be to look at Gowers&#8217;s examples and show that with similar techniques one can construct stronger lower bound examples for the Triangle Removal Lemma. Gowers, however, has given a lot of thought to the Triangle Removal Lemma, and it is safe to assume that he knows his own construction well, so I think that this direction is completely hopeless.</p>
<p>
In terms of improving the upper bound, one could first consider a direct proof of the Triangle Removal Lemma via iterative partitioning, instead of proving the Regularity Lemma from iterative partitioning and proving the Triangle Removal Lemma by reduction. When one considers the direct proof (which is straightforward), one sees that at every step there are many choices of sets to use to refine the partition. One may hope that, among those choices, one could find one that makes the partition grow polynomially or sub-exponentially instead of exponentially. For example, if one could show that the energy can be increased while only increasing the number of atoms in the partition by a polynomial, in the end we would get a double-exponential relationship between <img src='http://s1.wordpress.com/latex.php?latex=%7B1%2F%5Cdelta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\delta}' title='{1/\delta}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7B1%2F%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\epsilon}' title='{1/\epsilon}' class='latex' />, which would be quite amazing. (It would recover the bounds of Roth&#8217;s original proof for arithmetic progressions of length 3.) Again, people with a lot of experience on iterative partitioning methods have thought about this problem, so this approach is also likely to be hopeless.</p>
<p>
So maybe one needs to think of something completely different, and put the problem in a context in which fresh techniques can be applied. Here are some observations I made about two years ago. Unfortunately, they circle back to problems that people have thought about for 40+ years. An equivalent way of stating the Triangle Removal Lemma is to say that there is a function <img src='http://s3.wordpress.com/latex.php?latex=%7Bc%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c(\delta)}' title='{c(\delta)}' class='latex' /> which tends to infinity when <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cdelta%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta}' title='{\delta}' class='latex' /> tends to zero such that if a graph has <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cleq+%5Cdelta+n%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq \delta n^3}' title='{\leq \delta n^3}' class='latex' /> triangles then they can all be removed by removing <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cleq+n%5E2%2Fc%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq n^2/c(\delta)}' title='{\leq n^2/c(\delta)}' class='latex' /> edges. This means, in particular, that if the graph contains exactly <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n^3}' title='{\delta n^3}' class='latex' /> triangles, then there is an edge that belongs to at least <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5Ccdot+c%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n\cdot c(\delta)}' title='{\delta n\cdot c(\delta)}' class='latex' /> triangles.</p>
<blockquote><p><b>Theorem 1</b> <em> <a name="trlb"></a> There is a function <img src='http://s3.wordpress.com/latex.php?latex=%7Bc%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c(\delta)}' title='{c(\delta)}' class='latex' /> such that <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Clim_%7B%5Cdelta+%5Crightarrow+0%7D+c%28%5Cdelta%29+%3D+%5Cinfty%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\lim_{\delta \rightarrow 0} c(\delta) = \infty}' title='{\lim_{\delta \rightarrow 0} c(\delta) = \infty}' class='latex' /> and such that in any <img src='http://s2.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' />-vertex graph with exactly <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n^3}' title='{\delta n^3}' class='latex' /> triangles there is an edge that belongs to at least <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5Ccdot+c%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n\cdot c(\delta)}' title='{\delta n\cdot c(\delta)}' class='latex' /> triangles. </em></p></blockquote>
<p><p>
Can we find a different proof of this fact?</p>
<p>
Note that Theorem <a href="#trlb">1</a> is enough to establish Szemer&eacute;di&#8217;s Theorem for progressions of length 3: take a graph with <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Calpha+n%5E2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha n^2}' title='{\alpha n^2}' class='latex' /> edge-disjoing triangles and no other triangle; we need to reach a contradiction if <img src='http://s3.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> is large enough compared with <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' />. Applying Theorem <a href="#trlb">1</a>, we find that there is an edge that belongs to at least <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Calpha+%5Ccdot+c%28%5Calpha%2Fn%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha \cdot c(\alpha/n)}' title='{\alpha \cdot c(\alpha/n)}' class='latex' /> triangles, and this is more than <img src='http://s3.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> if <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> is large enough, contradicting the assumption that all the triangles in the graph are edge-disjoint.</p>
<p>
Now, label each edge (indeed, every pair of vertices) in a graph by the number of triangles it belongs to, and ignore multiplicative constant factors (so we don&#8217;t need to worry whether we are counting triangles as ordered 3-tuples or unordered ones and so on). To prove Theorem <a href="#trlb">1</a> we need to argue that the labels are &#8220;irregularly distributed,&#8221; so it is natural to look at their <em>variance</em>. Consider then the average, for a random &#8220;edge&#8221; (or, rather, for a random pair of vertices, which may or may not be an edge), of the square of the number of triangles it belongs to.</p>
<p>
If the graph has exactly <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n^3}' title='{\delta n^3}' class='latex' /> triangles, then by Cauchy-Schwarz it is easy to see that the above quantity is at least <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cdelta%5E2+n%5E2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta^2 n^2}' title='{\delta^2 n^2}' class='latex' />. If all triangles can be removed by removing <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%5E2%2Fc%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n^2/c(\delta)}' title='{n^2/c(\delta)}' class='latex' /> edges, then a more careful Cauchy-Schwarz argument shows that the average square label is at least <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cdelta%5E2+n%5E2+c%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta^2 n^2 c(\delta)}' title='{\delta^2 n^2 c(\delta)}' class='latex' />. If one can show that this average square is at least <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cdelta%5E2+n%5E2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta^2 n^2}' title='{\delta^2 n^2}' class='latex' /> times a term that goes to infinity, then in particular some label must be at least <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cdelta+n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n}' title='{\delta n}' class='latex' /> times a term that goes to infinity, which proves Theorem <a href="#trlb">1</a>. The following statement, then, is &#8220;intermediate&#8221; between the full Triangle Removal Lemma and Theorem <a href="#trlb">1</a>, and it might be the right question to think about:</p>
<blockquote><p><b>Theorem 2</b> <em> <a name="trlc"></a> There is a function <img src='http://s2.wordpress.com/latex.php?latex=%7Bc%27%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c&#039;(\delta)}' title='{c&#039;(\delta)}' class='latex' /> such that <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Clim_%7B%5Cdelta+%5Crightarrow+0%7D+c%27%28%5Cdelta%29+%3D+%5Cinfty%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\lim_{\delta \rightarrow 0} c&#039;(\delta) = \infty}' title='{\lim_{\delta \rightarrow 0} c&#039;(\delta) = \infty}' class='latex' /> and such that in any <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' />-vertex graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%3D%28V%2CE%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=(V,E)}' title='{G=(V,E)}' class='latex' /> with exactly <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n^3}' title='{\delta n^3}' class='latex' /> triangles, if we label each vertex pair <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> by the number <img src='http://s2.wordpress.com/latex.php?latex=%7Bt%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t(u,v)}' title='{t(u,v)}' class='latex' /> of triangles involving <img src='http://s3.wordpress.com/latex.php?latex=%7Bu%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{u}' title='{u}' class='latex' /> and <img src='http://s1.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' />, then
<p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cmathop%7B%5Cmathbb+E%7D_%7B%28u%2Cv%29+%5Cin+V%5E2%7D+t%5E2%28u%2Cv%29+%5Cgeq+%5Cdelta%5E2+%5Ccdot+n%5E2+%5Ccdot+c%27%28%5Cdelta%29+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \mathop{\mathbb E}_{(u,v) \in V^2} t^2(u,v) \geq \delta^2 \cdot n^2 \cdot c&#039;(\delta) ' title='\displaystyle  \mathop{\mathbb E}_{(u,v) \in V^2} t^2(u,v) \geq \delta^2 \cdot n^2 \cdot c&#039;(\delta) ' class='latex' /></p>
<p> </em></p></blockquote>
<p><p>
Terry Tao observed that, up to normalization, the average of <img src='http://s3.wordpress.com/latex.php?latex=%7B%28t%28u%2Cv%29%29%5E2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t(u,v))^2}' title='{(t(u,v))^2}' class='latex' /> counts the number of <em>diamonds</em> of the graph, that is, the number of patterns made of four vertices, and looking like two triangles with an edge in common. So Theorem <a href="#trlc">2</a> can be stated equivalently as</p>
<blockquote><p><b>Theorem 3</b> <em> <a name="trld"></a> There is a function <img src='http://s1.wordpress.com/latex.php?latex=%7Bc%27%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c&#039;(\delta)}' title='{c&#039;(\delta)}' class='latex' /> such that <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Clim_%7B%5Cdelta+%5Crightarrow+0%7D+c%27%28%5Cdelta%29+%3D+%5Cinfty%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\lim_{\delta \rightarrow 0} c&#039;(\delta) = \infty}' title='{\lim_{\delta \rightarrow 0} c&#039;(\delta) = \infty}' class='latex' /> and such that any <img src='http://s3.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' />-vertex graph <img src='http://s1.wordpress.com/latex.php?latex=%7BG%3D%28V%2CE%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=(V,E)}' title='{G=(V,E)}' class='latex' /> with exactly <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5E3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n^3}' title='{\delta n^3}' class='latex' /> triangles has at least <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cdelta+n%5E4+c%27%28%5Cdelta%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta n^4 c&#039;(\delta)}' title='{\delta n^4 c&#039;(\delta)}' class='latex' /> diamonds. </em></p></blockquote>
<p><p>
Terry wrote a <a href="http://terrytao.wordpress.com/2007/04/01/open-question-triangle-and-diamond-densities-in-large-dense-graphs/">fascinating post</a> putting this question in the broad context of extremal questions about &#8220;local patterns&#8221; in graphs. In the comments to that post, Vlado Nikiforov points out the notion of &#8220;book with <img src='http://s1.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> pages&#8221; (a pattern consisting of <img src='http://s2.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> triangles sharing a common edge &#8212; a diamond is a &#8220;book with 2 pages&#8221;) about which Erd&ouml;s and others considered many questions since the 1960s. (Although I am not sure whether a statement exactly equivalent to Theorem <a href="#trld">3</a> has been formulated before, related conjectures have been around for more than 40 years. Note that Theorem <a href="#trld">3</a> is <em>true</em>; the question is how good a function <img src='http://s3.wordpress.com/latex.php?latex=%7Bc%27%28%5Ccdot%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c&#039;(\cdot)}' title='{c&#039;(\cdot)}' class='latex' /> we can get, and whether we can find a proof that does not go through the Szemer&eacute;di Regularity Lemma.) </p>
<p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1394/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1394&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/05/13/the-triangle-removal-lemma/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>
	</item>
		<item>
		<title>CS276 Lecture 24: Zero Knowledge Protocols</title>
		<link>http://lucatrevisan.wordpress.com/2009/05/11/cs276-lecture-24/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/05/11/cs276-lecture-24/#comments</comments>
		<pubDate>Tue, 12 May 2009 02:49:54 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[CS276]]></category>
		<category><![CDATA[Graph Isomorphism]]></category>
		<category><![CDATA[Zero Knowledge]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1389</guid>
		<description><![CDATA[
Scribed by Milosh Drezgich

 Summary 

Today we introduce the notion of zero knowledge proof and design a zero knowledge protocol for the graph isomorphism problem.



1. Intuition 

A zero knowledge proof is an interactive protocol between two parties, a prover and a verifier. Both parties have in input a statement that may or may not be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1389&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><p>
<em>Scribed by Milosh Drezgich</em></p>
<p>
<p><b> Summary </b></p>
<p><p>
Today we introduce the notion of <em>zero knowledge proof</em> and design a zero knowledge protocol for the <em>graph isomorphism</em> problem.</p>
<p>
<span id="more-1389"></span></p>
<p>
<p><b>1. Intuition </b></p>
<p><p>
A <em>zero knowledge proof</em> is an interactive protocol between two parties, a <em>prover</em> and a <em>verifier</em>. Both parties have in input a <em>statement</em> that may or may not be true, for example, the description of a graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and the statement that <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> is 3-colorable, or integers <img src='http://s1.wordpress.com/latex.php?latex=%7BN%2Cr%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N,r}' title='{N,r}' class='latex' /> and the statement that there is an integer <img src='http://s2.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> such that <img src='http://s3.wordpress.com/latex.php?latex=%7Bx%5E%7B2%7D%5Cbmod+N%3Dr%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x^{2}\bmod N=r}' title='{x^{2}\bmod N=r}' class='latex' />. The goal of the prover is to <em>convince</em> the verifier that the statement is true, and, at the same time, make sure that <em>no information other than the truth of the statement</em> is leaked through the protocol.</p>
<p>
A related concept, from the computational viewpoint, is that of a <em>zero knowledge proof of knowledge</em>, in which the two parties share an input to an <img src='http://s1.wordpress.com/latex.php?latex=%7BNP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{NP}' title='{NP}' class='latex' />-type problem, and the prover wants to convince the verifier that he, the prover, <em>knows a valid solution for the problem on that input</em>, while again making sure that no information leaks. For example, the common input may be a graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />, and the prover may want to prove that he knows a valid <img src='http://s3.wordpress.com/latex.php?latex=%7B3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{3}' title='{3}' class='latex' />-coloring of <img src='http://s1.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />, or the common input may be <img src='http://s2.wordpress.com/latex.php?latex=%7BN%2Cr%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N,r}' title='{N,r}' class='latex' /> and the prover may want to prove that he knows an <img src='http://s3.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> such that <img src='http://s1.wordpress.com/latex.php?latex=%7Bx%5E%7B2%7D%5Cbmod+N%3Dr%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x^{2}\bmod N=r}' title='{x^{2}\bmod N=r}' class='latex' />. </p>
<p>
If a prover &#8220;proves knowledge&#8221; of a 3-coloring of a graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />, then he also proves the statement that <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> is 3-coloring; in general, a proof of knowledge is also a proof of the statement that the given instance admits a witness. In some cases, however, proving that an NP statement is true, and hence proving <em>existence</em> of a witness, does not imply a proof of <em>knowledge</em> of the witness. Consider, for example, the case in which common input is an integer <img src='http://s1.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' />, and the prover wants to prove that he knows a non-trivial factor <img src='http://s2.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' />. (Here the corresponding \textquotedblleft statement\textquotedblright would be that <img src='http://s3.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' /> is composite, but this can easily be checked by the verifier offline, without the need for an interaction.)</p>
<p><p>
<em>Identification schemes</em> are a natural application of zero knowledge. Suppose that a user wants to log in into a server. In a typical Unix setup, the user has a password <img src='http://s1.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' />, and the server keeps a hash <img src='http://s2.wordpress.com/latex.php?latex=%7Bf%28x%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f(x)}' title='{f(x)}' class='latex' /> of the user&#8217;s password. In order to log in, the user sends the password <img src='http://s3.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> to the server, which is insecure because an eavesdropper can learn <img src='http://s1.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> and later impersonate the user. </p>
<p>
In a secure identification scheme, instead, the user generates a public-key/ secret key pair <img src='http://s2.wordpress.com/latex.php?latex=%7B%28pk%2Csk%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(pk,sk)}' title='{(pk,sk)}' class='latex' />, the server knows only the public key <img src='http://s3.wordpress.com/latex.php?latex=%7Bpk%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{pk}' title='{pk}' class='latex' />, and the user &#8220;convinces&#8221; the server of his identity without revealing the secret key. (In SSH, for example, <img src='http://s1.wordpress.com/latex.php?latex=%7B%28pk%2Csk%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(pk,sk)}' title='{(pk,sk)}' class='latex' /> are the public key/ secret key pair of a signature scheme, and the user signs a message containing a random session identifier in order to &#8220;convince&#8221; the server.)</p>
<p>
If <img src='http://s2.wordpress.com/latex.php?latex=%7Bf%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f}' title='{f}' class='latex' /> is a one-way function, then a secure identification scheme could work as follows: the user picks a random secret key <img src='http://s3.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> and lets its public key be <img src='http://s1.wordpress.com/latex.php?latex=%7Bf%5Cleft%28+x%5Cright%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f\left( x\right)}' title='{f\left( x\right)}' class='latex' />. To prove its identity, the user engages in a <em>zero knowledge proof of knowledge</em> with the server, in which the user plays the prover, the server plays the verifier, and the protocol establishes that the user knows an inverse of <img src='http://s2.wordpress.com/latex.php?latex=%7Bf%28x%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{f(x)}' title='{f(x)}' class='latex' />. Hence, the server would be convinced that only the actual person would be able to log in, and moreover from the point of view of the user he/she will not be giving away any information the server might maliciously utilize after the authentication.</p>
<p>
This example is important to keep in mind as every feature in the definition of the protocol has something desirable in the protocol of this model.</p>
<p>
The main application of zero knowledge proofs is in the theory of multi party protocols in which multiple parties want to compute a function that satisfies certain security and privacy property. One such example would be a protocol that allow several players to play online poker with no trusted server. By such a protocol, players exchange messages to get the local view of the game and also at the end of the game to be able to know what is the final view of the game. We would like that this protocol stays secure even in the presence of malicious players. One approach to construct such a secure protocol is to first come up with a protocol that is secure against &#8220;honest but curious&#8221; players. According to this relaxed notion of security, nobody gains extra information provided that everybody follows the protocol. Then one provides a generic transformation from security against &#8220;honest but curious&#8221; to security against malicious user. This is achieved by each user providing a <img src='http://s3.wordpress.com/latex.php?latex=%7BZKP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{ZKP}' title='{ZKP}' class='latex' /> at each round that in the previous round he/she followed the protocol. This would on one side convince the other players that no one is cheating and on the other side the player presenting the protocol would provide no information about his own cards. This forces apparent malicious players to act honestly, as only they can do is to analyze their own data. At at the same time this is also not a problem for the honest players.</p>
<p>
<p><b>2. The Graph Non-Isomorphism Protocol </b></p>
<p><p>
We say that two graphs <img src='http://s1.wordpress.com/latex.php?latex=%7BG_1+%3D+%28V%2CE_1%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1 = (V,E_1)}' title='{G_1 = (V,E_1)}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BG_2+%3D+%28V%2CE_2%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_2 = (V,E_2)}' title='{G_2 = (V,E_2)}' class='latex' /> are <em> isomorphic</em> if there is a bijective relabeling <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi+%3A+V+%5Crightarrow+V%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi : V \rightarrow V}' title='{\pi : V \rightarrow V}' class='latex' /> of the vertices such that the relabeling of <img src='http://s1.wordpress.com/latex.php?latex=%7BG_1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1}' title='{G_1}' class='latex' /> is the same graph as <img src='http://s2.wordpress.com/latex.php?latex=%7BG_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_2}' title='{G_2}' class='latex' />, that is, if</p>
<p><p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%28u%2Cv%29+%5Cin+E_1+%5CLeftrightarrow+%28%5Cpi%28u%29%2C%5Cpi%28v%29%29+%5Cin+E_2+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  (u,v) \in E_1 \Leftrightarrow (\pi(u),\pi(v)) \in E_2 ' title='\displaystyle  (u,v) \in E_1 \Leftrightarrow (\pi(u),\pi(v)) \in E_2 ' class='latex' /></p>
<p>
We call <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cpi+%28G_1%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi (G_1)}' title='{\pi (G_1)}' class='latex' /> the graph that as an edge <img src='http://s2.wordpress.com/latex.php?latex=%7B%28%5Cpi%28u%29%2C%5Cpi%28v%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(\pi(u),\pi(v))}' title='{(\pi(u),\pi(v))}' class='latex' /> for every edge <img src='http://s3.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> of <img src='http://s1.wordpress.com/latex.php?latex=%7BE_1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{E_1}' title='{E_1}' class='latex' />.</p>
<p>
The graph isomorphism problem is, given two graphs, to check if they are isomorphic.</p>
<p>
It is believed that this problem is not <img src='http://s2.wordpress.com/latex.php?latex=%7BNP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{NP}' title='{NP}' class='latex' />-complete however algorithm that would run faster than <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BO%7D%5Cleft%28+2%5E%7B%5Csqrt%7BN%7D%7D%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\mathcal{O}\left( 2^{\sqrt{N}}\right) }' title='{\mathcal{O}\left( 2^{\sqrt{N}}\right) }' class='latex' /> is not known.</p>
<p>
Here we describe an interactive protocol in which a prover can \textquotedblleft convince\textquotedblright a verifier that two given graphs are not isomorphic, and in which the verifier only makes questions for which he already knows an answer, so that, intuitively, he gains no new knowledge from the interaction. (We will give a precise definition later, but we will not prove anything formal about this protocol, which is presented only for intuition.) For the prover, unfortunately, we only know how to provide an exponential time implementation. However the verifier algorithm, is very efficient.</p>
<p><p align="center"><img width="400" src="http://www.cs.berkeley.edu/~luca/cs276-08/lecture24-fig1.png"></p>
<p><ul>
<li> Common input: two graphs <img src='http://s1.wordpress.com/latex.php?latex=%7BG_1%3D%28V%2CE_1%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1=(V,E_1)}' title='{G_1=(V,E_1)}' class='latex' />, <img src='http://s2.wordpress.com/latex.php?latex=%7BG_2%3D+%28V%2CE_2%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_2= (V,E_2)}' title='{G_2= (V,E_2)}' class='latex' />; the prover wants to convince the verifier that they are <em>not</em> isomorphic</p>
<li> The verifier picks a random <img src='http://s3.wordpress.com/latex.php?latex=%7Bb%5Cin+%5C%7B1%2C2%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b\in \{1,2\}}' title='{b\in \{1,2\}}' class='latex' /> and a permutation <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cpi+%3AV%5Crightarrow+V%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi :V\rightarrow V}' title='{\pi :V\rightarrow V}' class='latex' /> and sends <img src='http://s2.wordpress.com/latex.php?latex=%7BG%3D%5Cpi+%28G_%7Bb%7D%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=\pi (G_{b})}' title='{G=\pi (G_{b})}' class='latex' /> to the prover
<li> The prover finds the bit <img src='http://s3.wordpress.com/latex.php?latex=%7Ba%5Cin+%5C%7B1%2C2%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{a\in \{1,2\}}' title='{a\in \{1,2\}}' class='latex' /> such that <img src='http://s1.wordpress.com/latex.php?latex=%7BG_%7Ba%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{a}}' title='{G_{a}}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> are isomorphic sends <img src='http://s3.wordpress.com/latex.php?latex=%7Ba%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{a}' title='{a}' class='latex' /> to the verifier
<p><li> The verifier checks that <img src='http://s1.wordpress.com/latex.php?latex=%7Ba%3Db%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{a=b}' title='{a=b}' class='latex' />, and, if so, accepts
</ul>
<blockquote><p><b>Theorem 1</b> <em> Let <img src='http://s2.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> be the prover algorithm and <img src='http://s3.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> be the verifier algorithm in the above protocol. Then</p>
<p><ol>
<li> If <img src='http://s1.wordpress.com/latex.php?latex=%7BG_1%2CG_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1,G_2}' title='{G_1,G_2}' class='latex' /> are not isomorphic, then the interaction <img src='http://s2.wordpress.com/latex.php?latex=%7BP%28x%29+%5Cleftrightarrow+V%28x%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(x) \leftrightarrow V(x)}' title='{P(x) \leftrightarrow V(x)}' class='latex' /> ends with the verifier accepting with probability 1</p>
<p><li> If <img src='http://s3.wordpress.com/latex.php?latex=%7BG_1%2CG_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1,G_2}' title='{G_1,G_2}' class='latex' /> are isomorphic, then for every alternative prover strategy <img src='http://s1.wordpress.com/latex.php?latex=%7BP%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P^*}' title='{P^*}' class='latex' />, of arbitrary complexity, the interaction <img src='http://s2.wordpress.com/latex.php?latex=%7BP%5E%2A%28x%29+%5Cleftrightarrow+V%28x%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P^*(x) \leftrightarrow V(x)}' title='{P^*(x) \leftrightarrow V(x)}' class='latex' /> ends with the verifier accepting with probability <img src='http://s3.wordpress.com/latex.php?latex=%7B1%2F2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/2}' title='{1/2}' class='latex' />
</ol>
<p> </em></p></blockquote>
<p><p>
The first part of the theorem is true as for every permutation <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cpi+%28G_%7B1%7D%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi (G_{1})}' title='{\pi (G_{1})}' class='latex' /> is not isomorphic to <img src='http://s2.wordpress.com/latex.php?latex=%7BG_%7B2%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{2}}' title='{G_{2}}' class='latex' /> and similarly for every permutation <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi+%28G_%7B2%7D%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi (G_{2}) }' title='{\pi (G_{2}) }' class='latex' /> is not isomorphic to <img src='http://s1.wordpress.com/latex.php?latex=%7BG_%7B2%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{2}}' title='{G_{2}}' class='latex' />, therefore if <img src='http://s2.wordpress.com/latex.php?latex=%7BG_%7B1%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{1}}' title='{G_{1}}' class='latex' /> and <img src='http://s3.wordpress.com/latex.php?latex=%7BG_%7B2%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{2}}' title='{G_{2}}' class='latex' /> are not isomorphic no relabeling of <img src='http://s1.wordpress.com/latex.php?latex=%7BG_%7B1%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{1}}' title='{G_{1}}' class='latex' /> can make it isomorphic to <img src='http://s2.wordpress.com/latex.php?latex=%7BG_%7B2%7D.%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{2}.}' title='{G_{2}.}' class='latex' /> Since the prover runs in exponential time he can always find out which graph the verifier has started from and therefore the prover always gives the right answer.</p>
<p>
The second part of the theorem is true as there exist permutation <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi+%5E%7B%5Cast+%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi ^{\ast }}' title='{\pi ^{\ast }}' class='latex' /> such that <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cpi+%5E%7B%5Cast+%7D%28G_%7B2%7D%29%3DG_%7B1%7D.%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi ^{\ast }(G_{2})=G_{1}.}' title='{\pi ^{\ast }(G_{2})=G_{1}.}' class='latex' /> Then if verifier picks a random permutation <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cpi+_%7BR%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi _{R}}' title='{\pi _{R}}' class='latex' /> then the distribution we obtain by <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi+_%7BR%7D%5Cleft%28+%5Cpi+%5E%7B%5Cast+%7D%5Cleft%28+G_%7B2%7D%5Cright%29+%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi _{R}\left( \pi ^{\ast }\left( G_{2}\right) \right) }' title='{\pi _{R}\left( \pi ^{\ast }\left( G_{2}\right) \right) }' class='latex' /> and the distribution <img src='http://s1.wordpress.com/latex.php?latex=%7B+%5Cpi+_%7BR%7D%5Cleft%28+G_%7B1%7D%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{ \pi _{R}\left( G_{1}\right) }' title='{ \pi _{R}\left( G_{1}\right) }' class='latex' /> are exactly the same as both are just random relabelling of, say, <img src='http://s2.wordpress.com/latex.php?latex=%7BG_%7B1%7D.%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{1}.}' title='{G_{1}.}' class='latex' /> This fact is analogous to the fact that if we add a random element from the group to some other group element we get again the random element of the group. Therefore here the answer of the prover is independent on <img src='http://s3.wordpress.com/latex.php?latex=%7Bb%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b}' title='{b}' class='latex' /> and the prover succeeds with probability half. This probability of <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> can be reduced to <img src='http://s2.wordpress.com/latex.php?latex=%7B2%5E%7B-k%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{2^{-k}}' title='{2^{-k}}' class='latex' /> by repeating the protocol <img src='http://s3.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> times. It is important to notice that this protocol is <img src='http://s1.wordpress.com/latex.php?latex=%7BZK%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{ZK}' title='{ZK}' class='latex' /> since the verifier already knows the answer so he learns nothing at the end of interaction. The reason why the verifier is convinced is because the prover would need to do something that is information theoretically impossible if the graphs are isomorphic. Therefore, it is not the answers themselves that convince the prover but the fact that prover can give those answers without knowing the isomorphism.</p>
<p>
<p><b>3. The Graph Isomorphism Protocol </b></p>
<p><p>
Suppose now that the prover wants to prove that two given graphs <img src='http://s2.wordpress.com/latex.php?latex=%7B+G_%7B1%7D%2CG_%7B2%7D+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{ G_{1},G_{2} }' title='{ G_{1},G_{2} }' class='latex' /> are isomorphic, and that he, in fact, knows an isomorphism. We shall present a protocol for this problem in which both the prover and the verifier are efficient.</p>
<p><p align="center"><img width="400" src="http://www.cs.berkeley.edu/~luca/cs276-08/lecture24-fig2.png"></p>
<p><ul>
<li> Verifier&#8217;s input: two graphs <img src='http://s3.wordpress.com/latex.php?latex=%7BG_1%3D%28V%2CE_1%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1=(V,E_1)}' title='{G_1=(V,E_1)}' class='latex' />, <img src='http://s1.wordpress.com/latex.php?latex=%7BG_2%3D+%28V%2CE_2%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_2= (V,E_2)}' title='{G_2= (V,E_2)}' class='latex' />;</p>
<li> Prover&#8217;s input: <img src='http://s2.wordpress.com/latex.php?latex=%7BG_1%2CG_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1,G_2}' title='{G_1,G_2}' class='latex' /> and permutation <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi^*}' title='{\pi^*}' class='latex' /> such that <img src='http://s1.wordpress.com/latex.php?latex=%7B+%5Cpi%5E%2A%28G_1%29+%3D+G_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{ \pi^*(G_1) = G_2}' title='{ \pi^*(G_1) = G_2}' class='latex' />; the prover wants to convince the verifier that the graphs are isomorphic
<li> The prover picks a random permutation <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cpi_R%3AV%5Crightarrow+V%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi_R:V\rightarrow V}' title='{\pi_R:V\rightarrow V}' class='latex' /> and sends the graph <img src='http://s3.wordpress.com/latex.php?latex=%7BG%3A%3D+%5Cpi_R%28G_2%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G:= \pi_R(G_2)}' title='{G:= \pi_R(G_2)}' class='latex' />
<li> The verifier picks at random <img src='http://s1.wordpress.com/latex.php?latex=%7Bb%5Cin+%5C%7B1%2C2%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b\in \{1,2\}}' title='{b\in \{1,2\}}' class='latex' /> and sends <img src='http://s2.wordpress.com/latex.php?latex=%7Bb%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b}' title='{b}' class='latex' /> to the prover
<li> The prover sends back <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi+_%7BR%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi _{R}}' title='{\pi _{R}}' class='latex' /> if <img src='http://s1.wordpress.com/latex.php?latex=%7Bb%3D1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{b=1}' title='{b=1}' class='latex' />, and <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cpi+_%7BR%7D%28%5Cpi+%5E%7B%5Cast+%7D%28%5Ccdot+%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi _{R}(\pi ^{\ast }(\cdot ))}' title='{\pi _{R}(\pi ^{\ast }(\cdot ))}' class='latex' /> otherwise
<p><li> The verifier checks that the permutation <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi }' title='{\pi }' class='latex' /> received at the previous round is such that <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cpi+%28G_%7Bb%7D%29%3DG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi (G_{b})=G}' title='{\pi (G_{b})=G}' class='latex' />, and accepts if so
</ul>
<blockquote><p><b>Theorem 2</b> <em> Let <img src='http://s2.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> be the prover algorithm and <img src='http://s3.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> be the verifier algorithm in the above protocol. Then</p>
<p><ol>
<li> If <img src='http://s1.wordpress.com/latex.php?latex=%7BG_1%2CG_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1,G_2}' title='{G_1,G_2}' class='latex' /> are isomorphic, then the interaction <img src='http://s2.wordpress.com/latex.php?latex=%7BP%28x%29+%5Cleftrightarrow+V%28x%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(x) \leftrightarrow V(x)}' title='{P(x) \leftrightarrow V(x)}' class='latex' /> ends with the verifier accepting with probability 1</p>
<p><li> If <img src='http://s3.wordpress.com/latex.php?latex=%7BG_1%2CG_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_1,G_2}' title='{G_1,G_2}' class='latex' /> are not isomorphic, then for every alternative prover strategy <img src='http://s1.wordpress.com/latex.php?latex=%7BP%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P^*}' title='{P^*}' class='latex' />, of arbitrary complexity, the interaction <img src='http://s2.wordpress.com/latex.php?latex=%7BP%5E%2A%28x%29+%5Cleftrightarrow+V%28x%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P^*(x) \leftrightarrow V(x)}' title='{P^*(x) \leftrightarrow V(x)}' class='latex' /> ends with the verifier accepting with probability <img src='http://s3.wordpress.com/latex.php?latex=%7B1%2F2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/2}' title='{1/2}' class='latex' />
</ol>
<p> </em></p></blockquote>
<p><p>
The first part is clear from the construction.</p>
<p>
What happens if <img src='http://s1.wordpress.com/latex.php?latex=%7BG_%7B1%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{1}}' title='{G_{1}}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BG_%7B2%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{2}}' title='{G_{2}}' class='latex' /> are not isomorphic and the prover is not following the protocol and is trying to cheat a verifier? Since in the first round the prover sends a graph <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />, and <img src='http://s1.wordpress.com/latex.php?latex=%7BG_%7B1%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{1}}' title='{G_{1}}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BG_%7B2%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{2}}' title='{G_{2}}' class='latex' /> are not isomorphic, then <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> can not be isomorphic to both <img src='http://s1.wordpress.com/latex.php?latex=%7BG_%7B1%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{1}}' title='{G_{1}}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BG_%7B2%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{2}}' title='{G_{2}}' class='latex' />. So in second round with probability at least half the verifier is going to pick <img src='http://s3.wordpress.com/latex.php?latex=%7BG_%7Bb%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{b}}' title='{G_{b}}' class='latex' /> that is not isomorphic to <img src='http://s1.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />. When this happens there is nothing that the prover can send in the third round to make the verifier accept, since the verifier accepts only if what prover sends in the third round is the isomorphism between <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and <img src='http://s3.wordpress.com/latex.php?latex=%7BG_%7Bb%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G_{b}}' title='{G_{b}}' class='latex' />. Hence the prover will fail with probability a half at each round and if we do the same protocol for several rounds the prover will be able to cheat only with exponentially small probability.</p>
<blockquote><p><b>Definition 3</b> <em> A protocol defined by two algorithms <img src='http://s1.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> is an interactive proof with efficient prover, for a decision problem if:</p>
<p><ul>
<li> <b>(Completeness) </b> for every input <img src='http://s3.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> for which the correct answer is YES, there is a witness <img src='http://s1.wordpress.com/latex.php?latex=%7Bw%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{w}' title='{w}' class='latex' /> such that <img src='http://s2.wordpress.com/latex.php?latex=%7BP%28x%2Cw%29%5Cleftrightarrows+V%5Cleft%28+x%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(x,w)\leftrightarrows V\left( x\right) }' title='{P(x,w)\leftrightarrows V\left( x\right) }' class='latex' /> interaction ends with <img src='http://s3.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> accepting with probability one.</p>
<p><li> <b>(Soundness)</b> for every input <img src='http://s1.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> for which answer is NO, for algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BP%5E%7B%5Cast+%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P^{\ast }}' title='{P^{\ast }}' class='latex' /> of arbitrary complexity <img src='http://s3.wordpress.com/latex.php?latex=%7BP%5E%7B%5Cast+%7D%28x%2Cw%29%5Cleftrightarrows+V%5Cleft%28+x%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P^{\ast }(x,w)\leftrightarrows V\left( x\right) }' title='{P^{\ast }(x,w)\leftrightarrows V\left( x\right) }' class='latex' /> interaction ends with <img src='http://s1.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> rejecting with probability at least half (or at least <img src='http://s2.wordpress.com/latex.php?latex=%7B1-%5Cfrac%7B1%7D%7B2%5E%7Bk%7D%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1-\frac{1}{2^{k}}}' title='{1-\frac{1}{2^{k}}}' class='latex' /> if protocol repeated <img src='http://s3.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> times)
</ul>
<p> </em></p></blockquote>
<p><p>
So the graph isomorphism protocol described above is an <em>interactive proof with efficient prover</em> for the graph isomorphism protocol.</p>
<p>
We now formalize what we mean by the verifier <em>gaining zero knowledge</em> by participating in the protocol. The interaction is ZK if the verifier could simulate the whole interaction by himself without talking to the prover.</p>
<blockquote><p><b>Definition 4 (Honest Verifier Perfect Zero Knowledge)</b> <em> A protocol <img src='http://s1.wordpress.com/latex.php?latex=%7B%28P%2CV%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(P,V)}' title='{(P,V)}' class='latex' /> is Honest Verifier Perfect Zero Knowledge with simulation complexity <img src='http://s2.wordpress.com/latex.php?latex=%7Bs%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{s}' title='{s}' class='latex' /> for a decision problem if there is an algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BS%28%5Ccdot+%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S(\cdot )}' title='{S(\cdot )}' class='latex' /> that has complexity at most <img src='http://s1.wordpress.com/latex.php?latex=%7Bs%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{s}' title='{s}' class='latex' />, such that <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cforall+x%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\forall x}' title='{\forall x}' class='latex' /> for which the answer is YES, <img src='http://s3.wordpress.com/latex.php?latex=%7BS%5Cleft%28+x%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S\left( x\right) }' title='{S\left( x\right) }' class='latex' /> samples the distribution of <img src='http://s1.wordpress.com/latex.php?latex=%7BP%28x%2Cw%29%5Cleftrightarrows+V%5Cleft%28+x%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(x,w)\leftrightarrows V\left( x\right) }' title='{P(x,w)\leftrightarrows V\left( x\right) }' class='latex' /> interactions for every valid <img src='http://s2.wordpress.com/latex.php?latex=%7Bw%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{w}' title='{w}' class='latex' />. </em></p></blockquote>
<p><p>
Therefore the simulator does not know the witness but it is able to replicate the interaction between the prover and the verifier. One consequence of this is, the protocol is able to simulate all possible interactions regardless of what particular witness the prover is using. Hence the protocol does the same regardless of witness. This <em>witness indistinguishability</em> property is useful on its own.</p>
<p><p>
Now consider an application in which the user is the prover and the server is the verifier. For this application of <img src='http://s3.wordpress.com/latex.php?latex=%7BZKP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{ZKP}' title='{ZKP}' class='latex' /> it is not sufficient that honest <img src='http://s1.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> does not learn anything following the protocol but also that if the verifier is not honest and does not follow the protocol he will still not be able learn anything from the prover.</p>
<p>
Therefore the full definition of zero knowledge is the following.</p>
<blockquote><p><b>Definition 5 (Perfect Zero Knowledge)</b> <em> A prover algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BP%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P}' title='{P}' class='latex' /> is (general) Perfect Zero Knowledge with simulation overhead <img src='http://s3.wordpress.com/latex.php?latex=%7Bso%28%5Ccdot%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{so(\cdot)}' title='{so(\cdot)}' class='latex' /> for a decision problem if</p>
<p><ul>
<li> for every algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BV%5E%7B%5Cprime+%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^{\prime }}' title='{V^{\prime }}' class='latex' /> of complexity at most <img src='http://s2.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' /> there is a simulator algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BS%5E%7B%5Cprime+%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^{\prime }}' title='{S^{\prime }}' class='latex' /> of complexity at most <img src='http://s1.wordpress.com/latex.php?latex=%7Bso%5Cleft%28+t%5Cright%29+%2C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{so\left( t\right) ,}' title='{so\left( t\right) ,}' class='latex' /></p>
<p><li> such that for every <img src='http://s2.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> for which the answer is YES, and every valid witness <img src='http://s3.wordpress.com/latex.php?latex=%7Bw%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{w}' title='{w}' class='latex' />, <img src='http://s1.wordpress.com/latex.php?latex=%7BS%5E%7B%5Cprime+%7D%28x%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^{\prime }(x)}' title='{S^{\prime }(x)}' class='latex' /> samples <img src='http://s2.wordpress.com/latex.php?latex=%7BP%28x%2Cw%29%5Cleftrightarrows+V%5E%7B%5Cprime+%7D%5Cleft%28x%5Cright%29+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{P(x,w)\leftrightarrows V^{\prime }\left(x\right) }' title='{P(x,w)\leftrightarrows V^{\prime }\left(x\right) }' class='latex' />.
</ul>
<p> </em></p></blockquote>
<p><p>
(In an asymptotic setting, we would want <img src='http://s3.wordpress.com/latex.php?latex=%7Bso%28t%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{so(t)}' title='{so(t)}' class='latex' /> to be polynomial in <img src='http://s1.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' />. Typically, we have <img src='http://s2.wordpress.com/latex.php?latex=%7Bso%28t%29+%5Cleq+O%28t%29+%2B+n%5E%7BO%281%29%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{so(t) \leq O(t) + n^{O(1)}}' title='{so(t) \leq O(t) + n^{O(1)}}' class='latex' />.)</p>
<p>
So from the prover&#8217;s viewpoint the protocol is always safe, since even if the verifier does not follow the protocol he would be able to gain only the information that he (the verifier) would gain otherwise anyway, by running the simulator himself.</p>
<p>
The zero knowledge property is purely the property of the prover algorithm since it is quantified of over all witnesses, all inputs, and all verifier algorithms. Symmetrically the soundness property was the property of the verifier algorithm since the verifier would get convinced with high probability only if the property is really true, regardless whether the prover is malicious or not.</p>
<p>
In the next class we will establish the fact that the prover algorithm in the graph isomorphism protocol described above is (general) perfect zero knowledge.</p>
<p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1389/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1389&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/05/11/cs276-lecture-24/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>

		<media:content url="http://www.cs.berkeley.edu/~luca/cs276-08/lecture24-fig1.png" medium="image" />

		<media:content url="http://www.cs.berkeley.edu/~luca/cs276-08/lecture24-fig2.png" medium="image" />
	</item>
		<item>
		<title>CS276 Lecture 28: the CZK 3-Coloring Protocol</title>
		<link>http://lucatrevisan.wordpress.com/2009/05/06/cs276-lecture-28/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/05/06/cs276-lecture-28/#comments</comments>
		<pubDate>Thu, 07 May 2009 00:54:44 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[CS276]]></category>
		<category><![CDATA[Zero Knowledge]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1380</guid>
		<description><![CDATA[

 Summary 

Today we define the notion of computational zero knowledge and show that the simulator we described in the last lecture establishes the computational zero knowledge property of the 3-coloring protocol.



1. The Protocol and the Simulator 

Recall that we use a commitment scheme  for messages in , and that the common input to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1380&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>
<p>
<p><b> Summary </b></p>
<p><p>
Today we define the notion of computational zero knowledge and show that the simulator we described in the last lecture establishes the computational zero knowledge property of the 3-coloring protocol.</p>
<p>
<span id="more-1380"></span></p>
<p>
<p><b>1. The Protocol and the Simulator </b></p>
<p><p>
Recall that we use a commitment scheme <img src='http://s3.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> for messages in <img src='http://s1.wordpress.com/latex.php?latex=%7B%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\{1,2,3\}}' title='{\{1,2,3\}}' class='latex' />, and that the common input to the prover and the verifier is a graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%3D%28%5Bn%5D%2CE%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=([n],E)}' title='{G=([n],E)}' class='latex' />, where <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Bn%5D%3A%3D+%5C%7B1%2C2%2C%5Cldots%2Cn%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{[n]:= \{1,2,\ldots,n\}}' title='{[n]:= \{1,2,\ldots,n\}}' class='latex' />. The prover, in addition, is given a valid 3-coloring <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Calpha+%3A+%5Bn%5D+%5Crightarrow+%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha : [n] \rightarrow \{1,2,3\}}' title='{\alpha : [n] \rightarrow \{1,2,3\}}' class='latex' /> of <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />.</p>
<p>
The protocol is defined as follows:</p>
<p><ul>
<li> The prover picks a random permutation <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cpi%3A+%5C%7B1%2C2%2C3%5C%7D+%5Crightarrow+%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi: \{1,2,3\} \rightarrow \{1,2,3\}}' title='{\pi: \{1,2,3\} \rightarrow \{1,2,3\}}' class='latex' /> of the set of colors, and defines the 3-coloring <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cbeta%28v%29+%3A%3D+%5Cpi%28%5Calpha%28v%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\beta(v) := \pi(\alpha(v))}' title='{\beta(v) := \pi(\alpha(v))}' class='latex' />. The prover picks <img src='http://s2.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> keys <img src='http://s3.wordpress.com/latex.php?latex=%7BK_1%2C%5Cldots%2CK_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_1,\ldots,K_n}' title='{K_1,\ldots,K_n}' class='latex' /> for <img src='http://s1.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' />, constructs the commitments <img src='http://s2.wordpress.com/latex.php?latex=%7Bc_v+%3A%3D+C%28K_v%2C%5Cbeta%28v%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_v := C(K_v,\beta(v))}' title='{c_v := C(K_v,\beta(v))}' class='latex' /> and sends <img src='http://s3.wordpress.com/latex.php?latex=%7B%28c_1%2C%5Cldots%2Cc_n%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(c_1,\ldots,c_n)}' title='{(c_1,\ldots,c_n)}' class='latex' /> to the verifier;
<li> The verifier picks an edge <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%2Cv%29+%5Cin+E%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v) \in E}' title='{(u,v) \in E}' class='latex' /> uniformly at random, and sends <img src='http://s2.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> to the prover;
<li> The prover sends back the keys <img src='http://s3.wordpress.com/latex.php?latex=%7BK_u%2CK_v%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_u,K_v}' title='{K_u,K_v}' class='latex' />;
<li> If <img src='http://s1.wordpress.com/latex.php?latex=%7BO%28K_u%2Cc_u%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(K_u,c_u)}' title='{O(K_u,c_u)}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7BO%28K_v%2Cc_v%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(K_v,c_v)}' title='{O(K_v,c_v)}' class='latex' /> are the same color, or if at least one of them is equal to <img src='http://s3.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' />, then the verifier rejects, otherwise it accepts
</ul>
<p>
For every verifier algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' />, we defined a simulator algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*}' title='{S^*}' class='latex' /> which repeats the following procedure until the output is different from <img src='http://s3.wordpress.com/latex.php?latex=%7BFAIL%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{FAIL}' title='{FAIL}' class='latex' />:</p>
<p>
<b>Algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BS_%7B1round%7D%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S_{1round}^*}' title='{S_{1round}^*}' class='latex' /></b></p>
<ul>
<li> Input: graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%3D%28%5Bn%5D%2CE%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G=([n],E)}' title='{G=([n],E)}' class='latex' />
<li> Pick random coloring <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cgamma+%3A+%5Bn%5D+%5Crightarrow+%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma : [n] \rightarrow \{1,2,3\}}' title='{\gamma : [n] \rightarrow \{1,2,3\}}' class='latex' />.
<li> Pick <img src='http://s1.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> random keys <img src='http://s2.wordpress.com/latex.php?latex=%7BK_1%2C%5Cldots%2CK_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_1,\ldots,K_n}' title='{K_1,\ldots,K_n}' class='latex' />
<li> Define the commitments <img src='http://s3.wordpress.com/latex.php?latex=%7Bc_i+%3A%3D+C%28K_i%2C+%5Cgamma%28i%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_i := C(K_i, \gamma(i))}' title='{c_i := C(K_i, \gamma(i))}' class='latex' />
<li> Let <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> be the 2nd-round output of <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> given <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> as input and <img src='http://s1.wordpress.com/latex.php?latex=%7Bc_1%2C%5Cldots%2Cc_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_1,\ldots,c_n}' title='{c_1,\ldots,c_n}' class='latex' /> as first-round message
<li> If <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cgamma%28u%29+%3D+%5Cgamma%28v%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma(u) = \gamma(v)}' title='{\gamma(u) = \gamma(v)}' class='latex' />, then output FAIL
<li> Else output <img src='http://s3.wordpress.com/latex.php?latex=%7B%28%28c_1%2C%5Cldots%2Cc_n%29%2C%28u%2Cv%29%2C%28K_u%2CK_v%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{((c_1,\ldots,c_n),(u,v),(K_u,K_v))}' title='{((c_1,\ldots,c_n),(u,v),(K_u,K_v))}' class='latex' />
</ul>
<p>
We want to show that this simulator construction establishes the <em>computational zero knowledge</em> property of the protocol, assuming that <img src='http://s1.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is secure. We give the definition of computational zero knowledge below.</p>
<blockquote><p><b>Definition 1 (Computational Zero Knowledge)</b> <em> We say that a protocol <img src='http://s2.wordpress.com/latex.php?latex=%7B%28P%2CV%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(P,V)}' title='{(P,V)}' class='latex' /> for 3-coloring is <img src='http://s3.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' /> computational zero knowledge with simulator overhead <img src='http://s1.wordpress.com/latex.php?latex=%7Bso%28%5Ccdot%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{so(\cdot)}' title='{so(\cdot)}' class='latex' /> if for every verifier algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> of complexity <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cleq+t%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t}' title='{\leq t}' class='latex' /> there is a simulator <img src='http://s1.wordpress.com/latex.php?latex=%7BS%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*}' title='{S^*}' class='latex' /> of complexity <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cleq+so%28t%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq so(t)}' title='{\leq so(t)}' class='latex' /> on average such that for every algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BD%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D}' title='{D}' class='latex' /> of complexity <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cleq+t%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t}' title='{\leq t}' class='latex' />, every graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and every valid 3-coloring <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' /> we have</p>
<p><p align="center"><img src='http://s1.wordpress.com/latex.php?latex=%5Cdisplaystyle++%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28P%28G%2C%5Calpha%29+%5Cleftrightarrow+V%5E%2A%28G%29%29+%3D1%5D+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%28G%29%29+%3D1%5D+%7C+%5Cleq+%5Cepsilon+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1] - \mathop{\mathbb P} [ D(S^*(G)) =1] | \leq \epsilon ' title='\displaystyle  | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1] - \mathop{\mathbb P} [ D(S^*(G)) =1] | \leq \epsilon ' class='latex' /></p>
<p> </em></p></blockquote>
<p>
<blockquote><p><b>Theorem 2</b> <em><a name="thGMWmain"></a> Suppose that <img src='http://s2.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is <img src='http://s3.wordpress.com/latex.php?latex=%7B%282t%2BO%28nr%29%2C%5Cepsilon%2F%284%5Ccdot+%7CE%7C%5Ccdot+n%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(2t+O(nr),\epsilon/(4\cdot |E|\cdot n))}' title='{(2t+O(nr),\epsilon/(4\cdot |E|\cdot n))}' class='latex' />-secure and that <img src='http://s1.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> is computable in time <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cleq+r%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq r}' title='{\leq r}' class='latex' />.</p>
<p>
Then the protocol defined above is <img src='http://s3.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' /> computational zero knowledge with simulator overhead at most <img src='http://s1.wordpress.com/latex.php?latex=%7B1.6+%5Ccdot+t%2BO%28nr%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1.6 \cdot t+O(nr)}' title='{1.6 \cdot t+O(nr)}' class='latex' />. </em></p></blockquote>
<p>
<p><b>2. Proving that the Simulation is Indistinguishable </b></p>
<p><p>
In this section we prove Theorem <a href="#thGMWmain">2</a>.</p>
<p>
Suppose that the Theorem is false. Then there is a graph <img src='http://s2.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />, a 3-coloring <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' />, a verifier algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> of complexity <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cleq+t%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t}' title='{\leq t}' class='latex' />, and a distinguishing algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BD%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D}' title='{D}' class='latex' /> also of complexity <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cleq+t%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t}' title='{\leq t}' class='latex' /> such that</p>
<p><p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28P%28G%2C%5Calpha%29+%5Cleftrightarrow+V%5E%2A%28G%29%29+%3D1+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%28G%29%29%3D1%5D+%7C+%5Cgeq+%5Cepsilon+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 - \mathop{\mathbb P} [ D(S^*(G))=1] | \geq \epsilon ' title='\displaystyle  | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 - \mathop{\mathbb P} [ D(S^*(G))=1] | \geq \epsilon ' class='latex' /></p>
<p>
Let <img src='http://s3.wordpress.com/latex.php?latex=%7B2R_%7Bu%2Cv%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{2R_{u,v}}' title='{2R_{u,v}}' class='latex' /> be the event that the edge <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> is selected in the second round; then</p>
<p><p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cbegin%7Barray%7D%7Brcl%7D++%5Cepsilon+%26%5Cleq+%26+%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28P%28G%2C%5Calpha%29+%5Cleftrightarrow+V%5E%2A%28G%29%29+%3D1+%5D+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%28G%29%29%3D1%5D+%7C+%5C%5C+%26+%3D+%26+%5Cleft%7C+%5Csum_%7B%28u%2Cv%29+%5Cin+E%7D+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28P%28G%2C%5Calpha%29+%5Cleftrightarrow+V%5E%2A%28G%29%29+%3D1+%5Cwedge+2R_%7Bu%2Cv%7D+%5D%5Cright.+%5C%5C+%26%26+-+%5Cleft.+%5Csum_%7B%28u%2Cv%29+%5Cin+E%7D+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%28G%29%29%3D1+%5Cwedge+2R_%7Bu%2Cv%7D+%5D+%5Cright%7C+%5C%5C+%26+%5Cleq+%26+%5Csum_%7B%28u%2Cv%29+%5Cin+E%7D+%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28P%28G%2C%5Calpha%29+%5Cleftrightarrow+V%5E%2A%28G%29%29+%3D1+%5Cwedge+2R_%7Bu%2Cv%7D+%5D%5C%5C+%26%26+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%28G%29%29%3D1+%5Cwedge+2R_%7Bu%2Cv%7D+%5D+%7C+%5Cend%7Barray%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \begin{array}{rcl}  \epsilon &amp;\leq &amp; | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 ] - \mathop{\mathbb P} [ D(S^*(G))=1] | \\ &amp; = &amp; \left| \sum_{(u,v) \in E} \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 \wedge 2R_{u,v} ]\right. \\ &amp;&amp; - \left. \sum_{(u,v) \in E} \mathop{\mathbb P} [ D(S^*(G))=1 \wedge 2R_{u,v} ] \right| \\ &amp; \leq &amp; \sum_{(u,v) \in E} | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 \wedge 2R_{u,v} ]\\ &amp;&amp; - \mathop{\mathbb P} [ D(S^*(G))=1 \wedge 2R_{u,v} ] | \end{array} ' title='\displaystyle  \begin{array}{rcl}  \epsilon &amp;\leq &amp; | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 ] - \mathop{\mathbb P} [ D(S^*(G))=1] | \\ &amp; = &amp; \left| \sum_{(u,v) \in E} \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 \wedge 2R_{u,v} ]\right. \\ &amp;&amp; - \left. \sum_{(u,v) \in E} \mathop{\mathbb P} [ D(S^*(G))=1 \wedge 2R_{u,v} ] \right| \\ &amp; \leq &amp; \sum_{(u,v) \in E} | \mathop{\mathbb P} [ D(P(G,\alpha) \leftrightarrow V^*(G)) =1 \wedge 2R_{u,v} ]\\ &amp;&amp; - \mathop{\mathbb P} [ D(S^*(G))=1 \wedge 2R_{u,v} ] | \end{array} ' class='latex' /></p>
<p>
So there must exist an edge <img src='http://s3.wordpress.com/latex.php?latex=%7B%28u%5E%2A%2Cv%5E%2A%29%5Cin+E%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u^*,v^*)\in E}' title='{(u^*,v^*)\in E}' class='latex' /> such that</p>
<p><p align="center"><img src='http://s1.wordpress.com/latex.php?latex=%5Cdisplaystyle++%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28P+%5Cleftrightarrow+V%5E%2A%29+%3D1+%5Cwedge+2R_%7Bu%5E%2A%2Cv%5E%2A%7D+%5D+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%29%3D1+%5Cwedge+2R_%7Bu%5E%2A%2Cv%5E%2A%7D+%5D+%7C+%5Cgeq+%5Cfrac+%5Cepsilon+%7B%7CE%7C%7D+%5C+%5C+%5C+%5C+%5C+%281%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  | \mathop{\mathbb P} [ D(P \leftrightarrow V^*) =1 \wedge 2R_{u^*,v^*} ] - \mathop{\mathbb P} [ D(S^*)=1 \wedge 2R_{u^*,v^*} ] | \geq \frac \epsilon {|E|} \ \ \ \ \ (1)' title='\displaystyle  | \mathop{\mathbb P} [ D(P \leftrightarrow V^*) =1 \wedge 2R_{u^*,v^*} ] - \mathop{\mathbb P} [ D(S^*)=1 \wedge 2R_{u^*,v^*} ] | \geq \frac \epsilon {|E|} \ \ \ \ \ (1)' class='latex' /></p>
<p>
(We have omitted references to <img src='http://s2.wordpress.com/latex.php?latex=%7BG%2C%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G,\alpha}' title='{G,\alpha}' class='latex' />, which are fixed for the rest of this section.)</p>
<p>
Now we show that there is an algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> of complexity <img src='http://s1.wordpress.com/latex.php?latex=%7B2t+%2B+O%28nr%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{2t + O(nr)}' title='{2t + O(nr)}' class='latex' /> that is able to distinguish between the following two distributions over commitments to <img src='http://s2.wordpress.com/latex.php?latex=%7B3n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{3n}' title='{3n}' class='latex' /> colors:</p>
<p><ul>
<li> <b>Distribution (1)</b> commitments to the <img src='http://s3.wordpress.com/latex.php?latex=%7B3n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{3n}' title='{3n}' class='latex' /> colors <img src='http://s1.wordpress.com/latex.php?latex=%7B1%2C2%2C3%2C1%2C2%2C3%2C%5Cldots%2C1%2C2%2C3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1,2,3,1,2,3,\ldots,1,2,3}' title='{1,2,3,1,2,3,\ldots,1,2,3}' class='latex' />;
<li> <b>Distribution (2)</b> commitments to <img src='http://s2.wordpress.com/latex.php?latex=%7B3n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{3n}' title='{3n}' class='latex' /> random colors
</ul>
<p>
<b>Algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />:</b></p>
<p><ul>
<li> Input: 3n commitments <img src='http://s1.wordpress.com/latex.php?latex=%7Bd_%7Ba%2Ci%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{d_{a,i}}' title='{d_{a,i}}' class='latex' /> where <img src='http://s2.wordpress.com/latex.php?latex=%7Ba%5Cin+%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{a\in \{1,2,3\}}' title='{a\in \{1,2,3\}}' class='latex' /> and <img src='http://s3.wordpress.com/latex.php?latex=%7Bi%5Cin+%5C%7B1%2C%5Cldots%2Cn%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{i\in \{1,\ldots,n\}}' title='{i\in \{1,\ldots,n\}}' class='latex' />;
<li> Pick a random permutation <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cpi%3A+%5C%7B1%2C2%2C3%5C%7D+%5Crightarrow+%5C%7B1%2C2%2C3%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\pi: \{1,2,3\} \rightarrow \{1,2,3\}}' title='{\pi: \{1,2,3\} \rightarrow \{1,2,3\}}' class='latex' />
<li> Pick random keys <img src='http://s2.wordpress.com/latex.php?latex=%7BK_%7Bu%5E%2A%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_{u^*}}' title='{K_{u^*}}' class='latex' />, <img src='http://s3.wordpress.com/latex.php?latex=%7BK_%7Bv%5E%2A%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_{v^*}}' title='{K_{v^*}}' class='latex' />
<li> Construct the sequence of commitments <img src='http://s1.wordpress.com/latex.php?latex=%7Bc_1%2C%5Cldots%2Cc_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_1,\ldots,c_n}' title='{c_1,\ldots,c_n}' class='latex' /> by setting: </p>
<ul>
<li> <img src='http://s2.wordpress.com/latex.php?latex=%7Bc_%7Bu%5E%2A%7D+%3A%3D+C%28K_%7Bu%5E%2A%7D+%2C+%5Cpi%28%5Calpha%28u%5E%2A%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_{u^*} := C(K_{u^*} , \pi(\alpha(u^*))}' title='{c_{u^*} := C(K_{u^*} , \pi(\alpha(u^*))}' class='latex' />
<li> <img src='http://s3.wordpress.com/latex.php?latex=%7Bc_%7Bv%5E%2A%7D+%3A%3D+C%28K_%7Bv%5E%2A%7D+%2C+%5Cpi%28%5Calpha%28v%5E%2A%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_{v^*} := C(K_{v^*} , \pi(\alpha(v^*))}' title='{c_{v^*} := C(K_{v^*} , \pi(\alpha(v^*))}' class='latex' />
<li> for every <img src='http://s1.wordpress.com/latex.php?latex=%7Bw%5Cin+%5Bn%5D+-+%5C%7Bu%5E%2A%2Cv%5E%2A%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{w\in [n] - \{u^*,v^*\}}' title='{w\in [n] - \{u^*,v^*\}}' class='latex' />, <img src='http://s2.wordpress.com/latex.php?latex=%7Bc_w+%3A%3D+d_%7B%5Cpi%28%5Calpha%28w%29%29%2Cw%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_w := d_{\pi(\alpha(w)),w}}' title='{c_w := d_{\pi(\alpha(w)),w}}' class='latex' />
</ul>
<li> If the 2nd round output of <img src='http://s3.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> given <img src='http://s1.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and <img src='http://s2.wordpress.com/latex.php?latex=%7Bc_1%2C%5Cldots%2Cc_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_1,\ldots,c_n}' title='{c_1,\ldots,c_n}' class='latex' /> is different from <img src='http://s3.wordpress.com/latex.php?latex=%7B%28u%5E%2A%2Cv%5E%2A%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u^*,v^*)}' title='{(u^*,v^*)}' class='latex' /> output 0
<li> Else output <img src='http://s1.wordpress.com/latex.php?latex=%7BD%28%28c_1%2C%5Cldots%2Cc_n%29%2C%28u%5E%2A%2Cv%5E%2A%29%2C%28K_%7Bu%5E%2A%7D%2CK_%7Bv%5E%2A%7D%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D((c_1,\ldots,c_n),(u^*,v^*),(K_{u^*},K_{v^*}))}' title='{D((c_1,\ldots,c_n),(u^*,v^*),(K_{u^*},K_{v^*}))}' class='latex' />
</ul>
<p>
First, we claim that</p>
<p><p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cmathop%7B%5Cmathbb+P%7D+%5B+A%28+%5Cmbox%7BDistribution+1%7D+%29+%3D+1+%5D+%3D+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28P+%5Cleftrightarrow+V%5E%2A%29+%3D1+%5Cwedge+2R_%7Bu%5E%2A%2Cv%5E%2A%7D+%5D+%5C+%5C+%5C+%5C+%5C+%282%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \mathop{\mathbb P} [ A( \mbox{Distribution 1} ) = 1 ] = \mathop{\mathbb P} [ D(P \leftrightarrow V^*) =1 \wedge 2R_{u^*,v^*} ] \ \ \ \ \ (2)' title='\displaystyle  \mathop{\mathbb P} [ A( \mbox{Distribution 1} ) = 1 ] = \mathop{\mathbb P} [ D(P \leftrightarrow V^*) =1 \wedge 2R_{u^*,v^*} ] \ \ \ \ \ (2)' class='latex' /></p>
<p>
This follows by observing that <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> on input Distribution (1) behaves exactly like the prover given the coloring <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Calpha%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\alpha}' title='{\alpha}' class='latex' />, and that <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> accepts if and only if the event <img src='http://s3.wordpress.com/latex.php?latex=%7B2R_%7Bu%5E%2A%2Cv%5E%2A%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{2R_{u^*,v^*}}' title='{2R_{u^*,v^*}}' class='latex' /> happens and <img src='http://s1.wordpress.com/latex.php?latex=%7BD%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D}' title='{D}' class='latex' /> accepts the resulting transcript.</p>
<p>
Next, we claim that</p>
<p>
<a name="eqmainclaim">
<p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle+++%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+A%28+%5Cmbox%7BDistribution+2%7D+%29+%3D+1+%5D+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%29%3D1+%5Cwedge+2R_%7Bu%5E%2A%2Cv%5E%2A%7D+%5D+%7C+%5Cleq+%5Cfrac+%5Cepsilon+%7B2%7CE%7C%7D+%5C+%5C+%5C+%5C+%5C+%283%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle   | \mathop{\mathbb P} [ A( \mbox{Distribution 2} ) = 1 ] - \mathop{\mathbb P} [ D(S^*)=1 \wedge 2R_{u^*,v^*} ] | \leq \frac \epsilon {2|E|} \ \ \ \ \ (3)' title='\displaystyle   | \mathop{\mathbb P} [ A( \mbox{Distribution 2} ) = 1 ] - \mathop{\mathbb P} [ D(S^*)=1 \wedge 2R_{u^*,v^*} ] | \leq \frac \epsilon {2|E|} \ \ \ \ \ (3)' class='latex' /></p>
<p></a></p>
<p>
To prove this second claim, we introduce, for a coloring <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cgamma%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma}' title='{\gamma}' class='latex' />, the quantity <img src='http://s1.wordpress.com/latex.php?latex=%7BDA%28%5Cgamma%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{DA(\gamma)}' title='{DA(\gamma)}' class='latex' />, defined as the probability that the following probabilistic process outputs 1:</p>
<p><ul>
<li> Pick random keys <img src='http://s2.wordpress.com/latex.php?latex=%7BK_1%2C%5Cldots%2CK_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{K_1,\ldots,K_n}' title='{K_1,\ldots,K_n}' class='latex' />
<li> Define commitments <img src='http://s3.wordpress.com/latex.php?latex=%7Bc_u%3A%3D+C%28K_u%2C%5Cgamma%28u%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_u:= C(K_u,\gamma(u))}' title='{c_u:= C(K_u,\gamma(u))}' class='latex' />
<li> Let <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> be the 2nd round output of <img src='http://s2.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> given the input graph <img src='http://s3.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and first round message <img src='http://s1.wordpress.com/latex.php?latex=%7Bc_1%2C%5Cldots%2Cc_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c_1,\ldots,c_n}' title='{c_1,\ldots,c_n}' class='latex' />
<li> Output 1 iff <img src='http://s2.wordpress.com/latex.php?latex=%7B%28u%2Cv%29+%3D+%28u%5E%2A%2Cv%5E%2A%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u,v) = (u^*,v^*)}' title='{(u,v) = (u^*,v^*)}' class='latex' />, <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cgamma%28u%5E%2A%29+%5Cneq+%5Cgamma%28v%5E%2A%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma(u^*) \neq \gamma(v^*)}' title='{\gamma(u^*) \neq \gamma(v^*)}' class='latex' />, and
<p align="center"><img src='http://s1.wordpress.com/latex.php?latex=%5Cdisplaystyle++D%28%28c_1%2C%5Cldots%2Cc_n%29%2C%28u%5E%2A%2Cv%5E%2A%29%2C%28K_%7Bu%5E%2A%7D%2C+K_%7Bv%5E%2A%7D%29%29+%3D+1+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  D((c_1,\ldots,c_n),(u^*,v^*),(K_{u^*}, K_{v^*})) = 1 ' title='\displaystyle  D((c_1,\ldots,c_n),(u^*,v^*),(K_{u^*}, K_{v^*})) = 1 ' class='latex' /></p>
</ul>
<p>
Then we have</p>
<p>
<a name="eqclaimA">
<p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cmathop%7B%5Cmathbb+P%7D+%5B+A%28+%5Cmbox%7BDistribution+2%7D+%29+%3D+1+%5D+%3D+%5Csum_%7B%5Cgamma%3A+%5Cgamma%28u%5E%2A%29+%5Cneq+%5Cgamma%28v%5E%2A%29%7D+%5Cfrac+32+%5Ccdot+%5Cfrac+1+%7B3%5En%7D+%5Ccdot+DA%28%5Cgamma%29+%5C+%5C+%5C+%5C+%5C+%284%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \mathop{\mathbb P} [ A( \mbox{Distribution 2} ) = 1 ] = \sum_{\gamma: \gamma(u^*) \neq \gamma(v^*)} \frac 32 \cdot \frac 1 {3^n} \cdot DA(\gamma) \ \ \ \ \ (4)' title='\displaystyle  \mathop{\mathbb P} [ A( \mbox{Distribution 2} ) = 1 ] = \sum_{\gamma: \gamma(u^*) \neq \gamma(v^*)} \frac 32 \cdot \frac 1 {3^n} \cdot DA(\gamma) \ \ \ \ \ (4)' class='latex' /></p>
<p></a></p>
<p>
Because <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />, on input Distribution 2, first prepares commitments to a coloring chosen uniformly at random among all <img src='http://s1.wordpress.com/latex.php?latex=%7B1%2F%286+%5Ccdot+3%5E%7Bn-2%7D%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/(6 \cdot 3^{n-2})}' title='{1/(6 \cdot 3^{n-2})}' class='latex' /> colorings such that <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cgamma%28u%5E%2A%29+%5Cneq+%5Cgamma%28v%5E%2A%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma(u^*) \neq \gamma(v^*)}' title='{\gamma(u^*) \neq \gamma(v^*)}' class='latex' /> and then outputs 1 if and only if, given such commitments as first message, <img src='http://s3.wordpress.com/latex.php?latex=%7BV%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{V^*}' title='{V^*}' class='latex' /> replies with <img src='http://s1.wordpress.com/latex.php?latex=%7B%28u%5E%2A%2Cv%5E%2A%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u^*,v^*)}' title='{(u^*,v^*)}' class='latex' /> and the resulting transcript is accepted by <img src='http://s2.wordpress.com/latex.php?latex=%7BD%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D}' title='{D}' class='latex' />.</p>
<p>
We also have</p>
<p>
<p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cmathop%7B%5Cmathbb+P%7D+%5B+D%28S%5E%2A%29%3D1+%5Cwedge+2R_%7Bu%5E%2A%2Cv%5E%2A%7D+%5D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \mathop{\mathbb P} [ D(S^*)=1 \wedge 2R_{u^*,v^*} ] ' title='\displaystyle  \mathop{\mathbb P} [ D(S^*)=1 \wedge 2R_{u^*,v^*} ] ' class='latex' /></p>
<p> <a name="eqsimulator">
<p align="center"><img src='http://s1.wordpress.com/latex.php?latex=%5Cdisplaystyle+++%3D+%5Cfrac+%7B1%7D%7B%5Cmathop%7B%5Cmathbb+P%7D+%5B+S%5E%2A_%7B1Round%7D+%5Cneq+FAIL%5D%7D+%5Ccdot+%5Csum_%7B%5Cgamma%3A+%5Cgamma%28u%5E%2A%29+%5Cneq+%5Cgamma%28v%5E%2A%29%7D+%5Cfrac+1+%7B3%5En%7D+%5Ccdot+DA%28%5Cgamma%29+%5C+%5C+%5C+%5C+%5C+%285%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle   = \frac {1}{\mathop{\mathbb P} [ S^*_{1Round} \neq FAIL]} \cdot \sum_{\gamma: \gamma(u^*) \neq \gamma(v^*)} \frac 1 {3^n} \cdot DA(\gamma) \ \ \ \ \ (5)' title='\displaystyle   = \frac {1}{\mathop{\mathbb P} [ S^*_{1Round} \neq FAIL]} \cdot \sum_{\gamma: \gamma(u^*) \neq \gamma(v^*)} \frac 1 {3^n} \cdot DA(\gamma) \ \ \ \ \ (5)' class='latex' /></p>
<p></a>  To see why Equation <a href="#eqsimulator">(5)</a> is true, consider that the probability that <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5E%2A%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*}' title='{S^*}' class='latex' /> outputs a particular transcript is exactly <img src='http://s3.wordpress.com/latex.php?latex=%7B1%2F%5Cmathop%7B%5Cmathbb+P%7D+%5B+S%5E%2A_%7B1Round%7D+%5Cneq+FAIL%5D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/\mathop{\mathbb P} [ S^*_{1Round} \neq FAIL]}' title='{1/\mathop{\mathbb P} [ S^*_{1Round} \neq FAIL]}' class='latex' /> times the probability that <img src='http://s1.wordpress.com/latex.php?latex=%7BS%5E%2A_%7B1Round%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*_{1Round}}' title='{S^*_{1Round}}' class='latex' /> outputs that transcript. Also, the probability that <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5E%2A_%7B1Round%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*_{1Round}}' title='{S^*_{1Round}}' class='latex' /> outputs a transcript which involves <img src='http://s3.wordpress.com/latex.php?latex=%7B%28u%5E%2A%2Cv%5E%2A%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(u^*,v^*)}' title='{(u^*,v^*)}' class='latex' /> at the second round and which is accepted by <img src='http://s1.wordpress.com/latex.php?latex=%7BD%28%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D()}' title='{D()}' class='latex' /> conditioned on <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cgamma%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma}' title='{\gamma}' class='latex' /> being the coloring selected at the beginning is <img src='http://s3.wordpress.com/latex.php?latex=%7BDA%28%5Cgamma%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{DA(\gamma)}' title='{DA(\gamma)}' class='latex' /> if <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cgamma%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma}' title='{\gamma}' class='latex' /> is a coloring such that <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cgamma%28u%5E%2A%29+%5Cneq+%5Cgamma%28v%5E%2A%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\gamma(u^*) \neq \gamma(v^*)}' title='{\gamma(u^*) \neq \gamma(v^*)}' class='latex' />, and it is zero otherwise. Finally, <img src='http://s3.wordpress.com/latex.php?latex=%7BS%5E%2A_%7B1Round%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^*_{1Round}}' title='{S^*_{1Round}}' class='latex' /> selects the initial coloring uniformly at random among all possible <img src='http://s1.wordpress.com/latex.php?latex=%7B3%5En%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{3^n}' title='{3^n}' class='latex' /> coloring.</p>
<p>
From our security assumption on <img src='http://s2.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> and from Lemma 6 in Lecture 27 we have</p>
<p>
<a name="eqfailbound">
<p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle+++%5Cleft%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+S%5E%2A_%7B1Round%7D+%5Cneq+FAIL%5D+-+%5Cfrac+23+%5Cright%7C+%5Cleq+%5Cfrac%7B%5Cepsilon%7D%7B4%7CE%7C%7D+%5C+%5C+%5C+%5C+%5C+%286%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle   \left| \mathop{\mathbb P} [ S^*_{1Round} \neq FAIL] - \frac 23 \right| \leq \frac{\epsilon}{4|E|} \ \ \ \ \ (6)' title='\displaystyle   \left| \mathop{\mathbb P} [ S^*_{1Round} \neq FAIL] - \frac 23 \right| \leq \frac{\epsilon}{4|E|} \ \ \ \ \ (6)' class='latex' /></p>
<p></a></p>
<p>
and so the claim we made in Equation <a href="#eqmainclaim">(3)</a> follows from Equation <a href="#eqclaimA">(4)</a>, Equation <a href="#eqsimulator">(5)</a>, Equation <a href="#eqfailbound">(6)</a> and the fact that if <img src='http://s1.wordpress.com/latex.php?latex=%7Bp%2Cq%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{p,q}' title='{p,q}' class='latex' /> are quantities such that <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cfrac+32+p+%5Cleq+1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\frac 32 p \leq 1}' title='{\frac 32 p \leq 1}' class='latex' />, <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cfrac+1q+%5Ccdot+p+%5Cleq+1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\frac 1q \cdot p \leq 1}' title='{\frac 1q \cdot p \leq 1}' class='latex' />, and <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cleft%7Cq+-+%5Cfrac+23+%5Cright%7C+%5Cleq+%5Cdelta+%5Cleq+%5Cfrac+16%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\left|q - \frac 23 \right| \leq \delta \leq \frac 16}' title='{\left|q - \frac 23 \right| \leq \delta \leq \frac 16}' class='latex' /> (so that <img src='http://s2.wordpress.com/latex.php?latex=%7Bq+%5Cgeq+1%2F2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{q \geq 1/2}' title='{q \geq 1/2}' class='latex' />), then</p>
<p><p align="center"><img src='http://s3.wordpress.com/latex.php?latex=%5Cdisplaystyle++%5Cleft%7C+%5Cfrac+32+p+-+%5Cfrac+1q+p+%5Cright%7C+%3D+%5Cfrac+32+%5Ccdot+p+%5Ccdot+%5Cfrac+1q+%5Ccdot+%5Cleft%7C+q-+%5Cfrac+23+%5Cright%7C+%5Cleq+2+%5Cdelta+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  \left| \frac 32 p - \frac 1q p \right| = \frac 32 \cdot p \cdot \frac 1q \cdot \left| q- \frac 23 \right| \leq 2 \delta ' title='\displaystyle  \left| \frac 32 p - \frac 1q p \right| = \frac 32 \cdot p \cdot \frac 1q \cdot \left| q- \frac 23 \right| \leq 2 \delta ' class='latex' /></p>
<p>
(We use the above inequality with <img src='http://s1.wordpress.com/latex.php?latex=%7Bq+%3D+%5Cmathop%7B%5Cmathbb+P%7D+%5B+S%5E%2A_%7B1Round%7D+%5Cneq+FAIL%5D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{q = \mathop{\mathbb P} [ S^*_{1Round} \neq FAIL]}' title='{q = \mathop{\mathbb P} [ S^*_{1Round} \neq FAIL]}' class='latex' />, <img src='http://s2.wordpress.com/latex.php?latex=%7B%5Cdelta+%3D+%5Cepsilon%2F4%7CE%7C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\delta = \epsilon/4|E|}' title='{\delta = \epsilon/4|E|}' class='latex' />, and <img src='http://s3.wordpress.com/latex.php?latex=%7Bp+%3D+%5Csum_%7B%5Cgamma%3A+%5Cgamma%28u%5E%2A%29+%5Cneq%5Cgamma%28v%5E%2A%29%7D%5Cfrac+1+%7B3%5En%7D+DA%28%5Cgamma%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{p = \sum_{\gamma: \gamma(u^*) \neq\gamma(v^*)}\frac 1 {3^n} DA(\gamma)}' title='{p = \sum_{\gamma: \gamma(u^*) \neq\gamma(v^*)}\frac 1 {3^n} DA(\gamma)}' class='latex' />.)</p>
<p>
Having proved that Equation <a href="#eqmainclaim">(3)</a> holds, we get</p>
<p><p align="center"><img src='http://s1.wordpress.com/latex.php?latex=%5Cdisplaystyle++%7C+%5Cmathop%7B%5Cmathbb+P%7D+%5B+A%28+%5Cmbox%7BDistribution+1%7D+%29+%3D+1+%5D+-+%5Cmathop%7B%5Cmathbb+P%7D+%5B+A%28+%5Cmbox%7BDistribution+2%7D+%29+%3D+1+%5D+%7C+%5Cgeq+%5Cfrac+%5Cepsilon+%7B2%7CE%7C%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle  | \mathop{\mathbb P} [ A( \mbox{Distribution 1} ) = 1 ] - \mathop{\mathbb P} [ A( \mbox{Distribution 2} ) = 1 ] | \geq \frac \epsilon {2|E|} ' title='\displaystyle  | \mathop{\mathbb P} [ A( \mbox{Distribution 1} ) = 1 ] - \mathop{\mathbb P} [ A( \mbox{Distribution 2} ) = 1 ] | \geq \frac \epsilon {2|E|} ' class='latex' /></p>
<p>
where <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is an algorithm of complexity at most <img src='http://s3.wordpress.com/latex.php?latex=%7B2t+%2B+O%28nr%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{2t + O(nr)}' title='{2t + O(nr)}' class='latex' />. Now by a proof similar to that of Theorem 3 in Lecture 27, we have that <img src='http://s1.wordpress.com/latex.php?latex=%7B%28C%2CO%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(C,O)}' title='{(C,O)}' class='latex' /> is not <img src='http://s2.wordpress.com/latex.php?latex=%7B%282t+%2BO%28nr%29%2C+%5Cepsilon%2F%282%7CE%7Cn%29%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(2t +O(nr), \epsilon/(2|E|n))}' title='{(2t +O(nr), \epsilon/(2|E|n))}' class='latex' /> secure.</p>
<p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1380/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1380&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/05/06/cs276-lecture-28/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>
	</item>
		<item>
		<title>CS276 Lecture 22: Signatures in the Random Oracle Model</title>
		<link>http://lucatrevisan.wordpress.com/2009/05/06/cs276-lecture-22/</link>
		<comments>http://lucatrevisan.wordpress.com/2009/05/06/cs276-lecture-22/#comments</comments>
		<pubDate>Thu, 07 May 2009 00:03:10 +0000</pubDate>
		<dc:creator>luca</dc:creator>
				<category><![CDATA[CS276]]></category>
		<category><![CDATA[Random Oracle Model]]></category>
		<category><![CDATA[signature schemes]]></category>

		<guid isPermaLink="false">http://lucatrevisan.wordpress.com/?p=1374</guid>
		<description><![CDATA[
 Summary 

In the last lecture we described a very complex signature scheme based on one-time signatures and pseudorandom functions. Unfortunately there is no known simple and efficient signature scheme which is existentially unforgeable under a chosen message attack under general assumptions.

Today we shall see a very simple scheme based on RSA which is secure [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1374&subd=lucatrevisan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>
<p><b> Summary </b></p>
<p><p>
In the last lecture we described a very complex signature scheme based on one-time signatures and pseudorandom functions. Unfortunately there is no known simple and efficient signature scheme which is existentially unforgeable under a chosen message attack under general assumptions.</p>
<p>
Today we shall see a very simple scheme based on RSA which is secure in the <em>random oracle model</em>. In this model, all parties have oracle access to a random function <img src='http://s1.wordpress.com/latex.php?latex=%7BH+%3A+%5C%7B+0%2C1+%5C%7D%5En+%5Crightarrow+%5C%7B+0%2C1+%5C%7D%5Em%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H : \{ 0,1 \}^n \rightarrow \{ 0,1 \}^m}' title='{H : \{ 0,1 \}^n \rightarrow \{ 0,1 \}^m}' class='latex' />. In implementations, this random function is replaced by a cryptographic hash function. Unfortunately, the proof of security we shall see today breaks down when the random oracle is replaced by hash function, but at least the security in the random oracle model gives some heuristic confidence in the design soundness of the construction.</p>
<p>
<span id="more-1374"></span></p>
<p>
<p><b>1. The Hash-and-Sign Scheme </b></p>
<p><p>
Our starting point is the &#8220;textbook RSA&#8221; signature scheme, in which a message <img src='http://s2.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> is signed as <img src='http://s3.wordpress.com/latex.php?latex=%7BM%5Ed+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M^d \bmod N}' title='{M^d \bmod N}' class='latex' /> and an alleged signature <img src='http://s1.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> for a message <img src='http://s2.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> is verified by checking that <img src='http://s3.wordpress.com/latex.php?latex=%7BS%5Ee+%5Cbmod+N+%3D+M%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^e \bmod N = M}' title='{S^e \bmod N = M}' class='latex' />.</p>
<p>
We discussed various ways in which this scheme is insecure, including the fact that </p>
<ol>
<li> It is easy to generate random message/ signature pairs <img src='http://s1.wordpress.com/latex.php?latex=%7BM%2CS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M,S}' title='{M,S}' class='latex' /> by first picking a random <img src='http://s2.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> and then setting <img src='http://s3.wordpress.com/latex.php?latex=%7BM%3A%3D+S%5Ee+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M:= S^e \bmod N}' title='{M:= S^e \bmod N}' class='latex' />;
<li> If <img src='http://s1.wordpress.com/latex.php?latex=%7BS_1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S_1}' title='{S_1}' class='latex' /> is the signature of message <img src='http://s2.wordpress.com/latex.php?latex=%7BM_1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M_1}' title='{M_1}' class='latex' /> and <img src='http://s3.wordpress.com/latex.php?latex=%7BS_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S_2}' title='{S_2}' class='latex' /> is the signature of <img src='http://s1.wordpress.com/latex.php?latex=%7BM_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M_2}' title='{M_2}' class='latex' />, then <img src='http://s2.wordpress.com/latex.php?latex=%7BS_1%5Ccdot+S_2+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S_1\cdot S_2 \bmod N}' title='{S_1\cdot S_2 \bmod N}' class='latex' /> is the signature of <img src='http://s3.wordpress.com/latex.php?latex=%7BM_1+%5Ccdot+M_2+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M_1 \cdot M_2 \bmod N}' title='{M_1 \cdot M_2 \bmod N}' class='latex' />.
</ol>
<p>
Suppose now that all parties have access to a good cryptographic hash function, which we will model as a completely random function <img src='http://s1.wordpress.com/latex.php?latex=%7BH+%3A+%5C%7B+0%2C1+%5C%7D%5Em+%5Crightarrow+%7B%5Cmathbb+Z%7D_N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H : \{ 0,1 \}^m \rightarrow {\mathbb Z}_N}' title='{H : \{ 0,1 \}^m \rightarrow {\mathbb Z}_N}' class='latex' />, mapping every possible message <img src='http://s2.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> to an random integer <img src='http://s3.wordpress.com/latex.php?latex=%7BH%28M%29+%5Cin+%7B%5Cmathbb+Z%7D_N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M) \in {\mathbb Z}_N}' title='{H(M) \in {\mathbb Z}_N}' class='latex' />, and define a signature scheme <img src='http://s1.wordpress.com/latex.php?latex=%7B%28Gen%2CSign%2CVerify%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(Gen,Sign,Verify)}' title='{(Gen,Sign,Verify)}' class='latex' /> as follows:</p>
<ul>
<p><li> Key generation: as in RSA
<li> Signature: the signature of a message <img src='http://s2.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> with secret key <img src='http://s3.wordpress.com/latex.php?latex=%7BN%2Cd%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N,d}' title='{N,d}' class='latex' /> is <img src='http://s1.wordpress.com/latex.php?latex=%7BH%28M%29%5Ed+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M)^d \bmod N}' title='{H(M)^d \bmod N}' class='latex' />
<li> Verification: given an alleged signature <img src='http://s2.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' />, a message <img src='http://s3.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' />, and a public key <img src='http://s1.wordpress.com/latex.php?latex=%7BN%2Ce%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N,e}' title='{N,e}' class='latex' />, check that <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5Ee+%5Cbmod+N+%3D+H%28M%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^e \bmod N = H(M)}' title='{S^e \bmod N = H(M)}' class='latex' />.</p>
</ul>
<p>
That is, we use the textbook RSA method to sign <img src='http://s3.wordpress.com/latex.php?latex=%7BH%28M%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M)}' title='{H(M)}' class='latex' />.</p>
<p>
Now it is not clear any more how to employ the previously mentioned attacks. If we first select a random <img src='http://s1.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' />, for example, then to find a message of which <img src='http://s2.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> is a signature we need to compute <img src='http://s3.wordpress.com/latex.php?latex=%7Bh+%3A%3D+S%5Ee+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{h := S^e \bmod N}' title='{h := S^e \bmod N}' class='latex' /> and then find a message <img src='http://s1.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> such that <img src='http://s2.wordpress.com/latex.php?latex=%7BH%28M%29%3Dh%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M)=h}' title='{H(M)=h}' class='latex' />. This, however, requires exponential time if <img src='http://s3.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' /> is a random functions. Similarly, if we have two messages <img src='http://s1.wordpress.com/latex.php?latex=%7BM_1%2CM_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M_1,M_2}' title='{M_1,M_2}' class='latex' /> and know their signatures <img src='http://s2.wordpress.com/latex.php?latex=%7BS_1%2CS_2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S_1,S_2}' title='{S_1,S_2}' class='latex' />, the number <img src='http://s3.wordpress.com/latex.php?latex=%7BS_1+%5Ccdot+S_2+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S_1 \cdot S_2 \bmod N}' title='{S_1 \cdot S_2 \bmod N}' class='latex' /> is a signature for any document <img src='http://s1.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> such that <img src='http://s2.wordpress.com/latex.php?latex=%7BH%28M%29+%3D+H%28M_1%29+%5Ccdot+H%28M_2%29+%5Cbmod+N%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M) = H(M_1) \cdot H(M_2) \bmod N}' title='{H(M) = H(M_1) \cdot H(M_2) \bmod N}' class='latex' />. Finding such an <img src='http://s3.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> is, however, again very hard.</p>
<p>
<p><b>2. Analysis </b></p>
<p><p>
We provide a formal analysis of the signature scheme defined in the previous section, in the random oracle model.</p>
<blockquote><p><b>Theorem 1</b> <em> Suppose that <img src='http://s1.wordpress.com/latex.php?latex=%7B%28Gen%2CSign%2CVerify%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(Gen,Sign,Verify)}' title='{(Gen,Sign,Verify)}' class='latex' />, as defined in the previous section, is not <img src='http://s2.wordpress.com/latex.php?latex=%7B%28t%2C%5Cepsilon%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t,\epsilon)}' title='{(t,\epsilon)}' class='latex' /> existentially unforgeable under a chosen message attack in the random oracle model.</p>
<p>
Then RSA, with the key size used in the construction, is not a <img src='http://s3.wordpress.com/latex.php?latex=%7B%28t%5Ccdot+O%28r%29%2C+%5Cepsilon%5Ccdot+%5Cfrac%7B1%7D%7Bt%7D%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(t\cdot O(r), \epsilon\cdot \frac{1}{t})}' title='{(t\cdot O(r), \epsilon\cdot \frac{1}{t})}' class='latex' />-secure family of trapdoor permutations, where <img src='http://s1.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> is the time taken by RSA computation with the selected key size. </em></p></blockquote>
<p><p>
<em>Proof:</em>  We will prove that, if <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is an algorithm of complexity at most <img src='http://s3.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' /> that breaks existential unforgeability under chosen message attack with probability <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cgeq+%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\geq \epsilon}' title='{\geq \epsilon}' class='latex' />, then there is an algorithm <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> that breaks RSA (finds <img src='http://s3.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> given <img src='http://s1.wordpress.com/latex.php?latex=%7BX%5Ee%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{X^e}' title='{X^e}' class='latex' /> mod <img src='http://s2.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' />) with probability <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cgeq+%5Cfrac%7B%5Cepsilon%7D%7Bt%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\geq \frac{\epsilon}{t}}' title='{\geq \frac{\epsilon}{t}}' class='latex' /> and complexity <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cleq+t%5Ccdot+O%28r%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\leq t\cdot O(r)}' title='{\leq t\cdot O(r)}' class='latex' />.
<p align="center"><img src='http://s2.wordpress.com/latex.php?latex=%5Cdisplaystyle+Pr%5BA%5E%7BH%2CSign%28N%2Cd%2C%5Ccdot%29%7D%28N%2Ce%29%3D%28M%2CS%29+%3A+%28H%28M%29%29+%3D+S%5Ee%5D+%5Cgeq+%5Cepsilon&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\displaystyle Pr[A^{H,Sign(N,d,\cdot)}(N,e)=(M,S) : (H(M)) = S^e] \geq \epsilon' title='\displaystyle Pr[A^{H,Sign(N,d,\cdot)}(N,e)=(M,S) : (H(M)) = S^e] \geq \epsilon' class='latex' /></p>
<p>
Without the loss of generality we assume that: </p>
<ul>
<li> <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> never makes the same random oracle query twice.
<li> <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> queries <img src='http://s2.wordpress.com/latex.php?latex=%7BH%28M%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M)}' title='{H(M)}' class='latex' /> before it requests a signature on a message <img src='http://s3.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' />.
<li> If <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> outputs <img src='http://s2.wordpress.com/latex.php?latex=%7B%28M%2CS%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(M,S)}' title='{(M,S)}' class='latex' /> then it had previously queried <img src='http://s3.wordpress.com/latex.php?latex=%7BH%28M%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M)}' title='{H(M)}' class='latex' />
</ul>
<p> We construct an algorithm <img src='http://s1.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> which on input <img src='http://s2.wordpress.com/latex.php?latex=%7B%28N%2Ce%2Cy%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(N,e,y)}' title='{(N,e,y)}' class='latex' /> where <img src='http://s3.wordpress.com/latex.php?latex=%7By%3DX%5Ee%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{y=X^e}' title='{y=X^e}' class='latex' /> mod <img src='http://s1.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' />, finds <img src='http://s2.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' />.</p>
<p>
Algorithm <img src='http://s3.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> is defined as: </p>
<ul>
<li> Pick <img src='http://s1.wordpress.com/latex.php?latex=%7Bi+%5Cleftarrow+%5C%7B1%2C...%2Ct%5C%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{i \leftarrow \{1,...,t\}}' title='{i \leftarrow \{1,...,t\}}' class='latex' /> randomly.
<li> Initialise datastructure that stores triples, initially empty.
<li> Simulate <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />: </p>
<ul>
<li> When <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> makes its <img src='http://s1.wordpress.com/latex.php?latex=%7Bj%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{j}' title='{j}' class='latex' />th random oracle query <img src='http://s2.wordpress.com/latex.php?latex=%7BH%28M_j%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M_j)}' title='{H(M_j)}' class='latex' /> </p>
<ul>
<li> If <img src='http://s3.wordpress.com/latex.php?latex=%7Bj%3Di%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{j=i}' title='{j=i}' class='latex' />, answer the oracle query with <img src='http://s1.wordpress.com/latex.php?latex=%7By%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{y}' title='{y}' class='latex' />.
<li> Otherwise, randomly pick <img src='http://s2.wordpress.com/latex.php?latex=%7BX_j%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{X_j}' title='{X_j}' class='latex' />, compute <img src='http://s3.wordpress.com/latex.php?latex=%7B%7BX_j%7D%5Ee%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{{X_j}^e}' title='{{X_j}^e}' class='latex' /> mod <img src='http://s1.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' />, store <img src='http://s2.wordpress.com/latex.php?latex=%7B%28M_j%2CX_j%2C%7BX_j%7D%5Ee%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(M_j,X_j,{X_j}^e}' title='{(M_j,X_j,{X_j}^e}' class='latex' /> mod <img src='http://s3.wordpress.com/latex.php?latex=%7BN%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N)}' title='{N)}' class='latex' /> in the datastructure and answer the oracle query with <img src='http://s1.wordpress.com/latex.php?latex=%7By_j%3D%7BX_j%7D%5Ee%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{y_j={X_j}^e}' title='{y_j={X_j}^e}' class='latex' /> mod <img src='http://s2.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' />
</ul>
<li> When <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> requests <img src='http://s1.wordpress.com/latex.php?latex=%7BSign%28M_k%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{Sign(M_k)}' title='{Sign(M_k)}' class='latex' />
<ul>
<li> If <img src='http://s2.wordpress.com/latex.php?latex=%7Bk+%3D+i%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k = i}' title='{k = i}' class='latex' /> abort.
<li> If <img src='http://s3.wordpress.com/latex.php?latex=%7Bk+%5Cneq+i%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k \neq i}' title='{k \neq i}' class='latex' /> look for <img src='http://s1.wordpress.com/latex.php?latex=%7B%28M_k%2CX_k%2C%7BX_k%7D%5Ee%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(M_k,X_k,{X_k}^e}' title='{(M_k,X_k,{X_k}^e}' class='latex' /> mod <img src='http://s2.wordpress.com/latex.php?latex=%7BN%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N)}' title='{N)}' class='latex' /> in the datastructure and answer the oracle query with <img src='http://s3.wordpress.com/latex.php?latex=%7BX_k%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{X_k}' title='{X_k}' class='latex' />.</p>
<p>
(Note that we had made the assumption that <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> queries <img src='http://s2.wordpress.com/latex.php?latex=%7BH%28M%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{H(M)}' title='{H(M)}' class='latex' /> before it requests a signature on a message <img src='http://s3.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' />.)
</ul>
</ul>
<li> After <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> finishes, it outputs <img src='http://s2.wordpress.com/latex.php?latex=%7B%28M%2CS%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{(M,S)}' title='{(M,S)}' class='latex' />. If <img src='http://s3.wordpress.com/latex.php?latex=%7BM%3DM_i%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M=M_i}' title='{M=M_i}' class='latex' /> and <img src='http://s1.wordpress.com/latex.php?latex=%7BS%5Ee+%3D+y%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^e = y}' title='{S^e = y}' class='latex' /> mod <img src='http://s2.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' />, then output <img src='http://s3.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> as the required output <img src='http://s1.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' />.
</ul>
<p>
For each random oracle query, we are doing a RSA exponentiation operation of complexity <img src='http://s2.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. So the complexity of <img src='http://s3.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> would be at most complexity of <img src='http://s1.wordpress.com/latex.php?latex=%7BA+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A }' title='{A }' class='latex' /> multiplied by <img src='http://s2.wordpress.com/latex.php?latex=%7BO%28r%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{O(r)}' title='{O(r)}' class='latex' /> i.e. <img src='http://s3.wordpress.com/latex.php?latex=%7Bt%5Ccdot+O%28r%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{t\cdot O(r)}' title='{t\cdot O(r)}' class='latex' />. </p>
<p>
The index <img src='http://s1.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> chosen by <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> in the first step represents a guess as to which oracle query of <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> will correspond to the eventual forgery output by <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />. When the guess is correct, view of <img src='http://s2.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> as part of <img src='http://s3.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> is distributed identically to the view of <img src='http://s1.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> alone. When <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> guesses correctly and <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> outputs a forgery, then <img src='http://s1.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> solves the given instance of RSA problem (because <img src='http://s2.wordpress.com/latex.php?latex=%7BS%5Ee+%3D+y%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S^e = y}' title='{S^e = y}' class='latex' /> mod <img src='http://s3.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' /> and thus <img src='http://s1.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> is <img src='http://s2.wordpress.com/latex.php?latex=%7Binverse%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{inverse}' title='{inverse}' class='latex' /> of <img src='http://s3.wordpress.com/latex.php?latex=%7By%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{y}' title='{y}' class='latex' />). Since <img src='http://s1.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> guesses correctly with probability <img src='http://s2.wordpress.com/latex.php?latex=%7B1%2Ft%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{1/t}' title='{1/t}' class='latex' /> and <img src='http://s3.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> outputs a forgery with probability <img src='http://s1.wordpress.com/latex.php?latex=%7B%5Cgeq+%5Cepsilon%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\geq \epsilon}' title='{\geq \epsilon}' class='latex' />. So, Probability with which <img src='http://s2.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> breaks RSA <img src='http://s3.wordpress.com/latex.php?latex=%7B%5Cgeq+%5Cepsilon+%5Ccdot+%5Cfrac%7B1%7D%7Bt%7D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\geq \epsilon \cdot \frac{1}{t}}' title='{\geq \epsilon \cdot \frac{1}{t}}' class='latex' />, which is what we intended to prove. <img src='http://s1.wordpress.com/latex.php?latex=%5CBox&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucatrevisan.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucatrevisan.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucatrevisan.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucatrevisan.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucatrevisan.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucatrevisan.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucatrevisan.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucatrevisan.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucatrevisan.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucatrevisan.wordpress.com/1374/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucatrevisan.wordpress.com&blog=821887&post=1374&subd=lucatrevisan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lucatrevisan.wordpress.com/2009/05/06/cs276-lecture-22/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">luca</media:title>
		</media:content>
	</item>
	</channel>
</rss>