<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: J-PAKE: From Dining Cryptographers to Jugglers</title>
	<atom:link href="http://www.lightbluetouchpaper.org/2008/05/29/j-pake/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/</link>
	<description>Security Research, Computer Laboratory, University of Cambridge</description>
	<pubDate>Fri, 05 Dec 2008 08:18:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Feng Hao</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29444</link>
		<dc:creator>Feng Hao</dc:creator>
		<pubDate>Mon, 30 Jun 2008 21:26:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29444</guid>
		<description>The Java code for the J-PAKE demo is available (see the article). It would be helpful if someone could write a Javascript program for demonstrating the protocol execution more interactively. I'm not a Javascript guru.</description>
		<content:encoded><![CDATA[<p>The Java code for the J-PAKE demo is available (see the article). It would be helpful if someone could write a Javascript program for demonstrating the protocol execution more interactively. I&#8217;m not a Javascript guru.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Feng Hao</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29407</link>
		<dc:creator>Feng Hao</dc:creator>
		<pubDate>Thu, 26 Jun 2008 08:29:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29407</guid>
		<description>kme,

Thanks for the good comments. I agree with you. In the paper, we didn't go down to the exact implementation detail as how to encode a password (normally 20-30 bits) to a number s (160 bits). As you correctly point out, some care needs to be taken if a hash is used. Still, I would prefer the simple concatenation for encoding (under the reasonable assumption that passwords are short strings).</description>
		<content:encoded><![CDATA[<p>kme,</p>
<p>Thanks for the good comments. I agree with you. In the paper, we didn&#8217;t go down to the exact implementation detail as how to encode a password (normally 20-30 bits) to a number s (160 bits). As you correctly point out, some care needs to be taken if a hash is used. Still, I would prefer the simple concatenation for encoding (under the reasonable assumption that passwords are short strings).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kme</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29404</link>
		<dc:creator>kme</dc:creator>
		<pubDate>Thu, 26 Jun 2008 00:39:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29404</guid>
		<description>Well you would add the comment that iff the allowable passwords can be mapped onto the possible values of s such that at most one password maps to one value of s, only one password can be guessed per attempt.

Using a hash-derived value for s has the implication that the hash of the password becomes a valuable secret itself, which doesn't matter within the context of J-PAKE only but may affect interactions with other systems that assume hashes can be public.  An implementation would want to be careful in the way it salts the hash to avoid this.  (Just thinking out loud here).</description>
		<content:encoded><![CDATA[<p>Well you would add the comment that iff the allowable passwords can be mapped onto the possible values of s such that at most one password maps to one value of s, only one password can be guessed per attempt.</p>
<p>Using a hash-derived value for s has the implication that the hash of the password becomes a valuable secret itself, which doesn&#8217;t matter within the context of J-PAKE only but may affect interactions with other systems that assume hashes can be public.  An implementation would want to be careful in the way it salts the hash to avoid this.  (Just thinking out loud here).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: synp</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29400</link>
		<dc:creator>synp</dc:creator>
		<pubDate>Wed, 25 Jun 2008 12:16:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29400</guid>
		<description>Feng Hao,

EAP is used in wireless environments, but also in other things: it's used to carry passwords in IKE (RFC 4306) as well as things like L2TP clients.

A good password method would be very useful for these things.</description>
		<content:encoded><![CDATA[<p>Feng Hao,</p>
<p>EAP is used in wireless environments, but also in other things: it&#8217;s used to carry passwords in IKE (RFC 4306) as well as things like L2TP clients.</p>
<p>A good password method would be very useful for these things.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Feng Hao</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29390</link>
		<dc:creator>Feng Hao</dc:creator>
		<pubDate>Tue, 24 Jun 2008 13:07:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29390</guid>
		<description>synp,

&#62; Are you interested in defining an EAP method based on J_PAKE ?

Thanks for the suggestion. I looked through the &lt;a href="http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol" rel="nofollow"&gt;EAP wiki&lt;/a&gt;, it occurs to me that it can be something very relevant. The J-PAKE protocol is based on public key juggling, and as the name "public key" suggests, all communication within the protocol is public. This makes it particularly suitable for key exchange in a wireless environment. We'll see if there's sufficient interest from the community.</description>
		<content:encoded><![CDATA[<p>synp,</p>
<p>&gt; Are you interested in defining an EAP method based on J_PAKE ?</p>
<p>Thanks for the suggestion. I looked through the <a href="http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol" rel="nofollow">EAP wiki</a>, it occurs to me that it can be something very relevant. The J-PAKE protocol is based on public key juggling, and as the name &#8220;public key&#8221; suggests, all communication within the protocol is public. This makes it particularly suitable for key exchange in a wireless environment. We&#8217;ll see if there&#8217;s sufficient interest from the community.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Feng Hao</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29389</link>
		<dc:creator>Feng Hao</dc:creator>
		<pubDate>Tue, 24 Jun 2008 12:54:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29389</guid>
		<description>kme,

&#62; Choosing a good encoding method is not entirely trivial. 

I think it can be fairly straightforward. Note that a password typically has 8-10 chars. Some applications even limit users not to choose more than 14 chars as a password. Assume a password is limited under 22 char, concatenating the ASCII values looks a good method to me.

&#62; The obvious candidate is 160 bits of hash of the low-entropy input

Yeah, using a hash is another way. You could use some function that looks like SHA1(password)%q to encode a password to a number s, but you may need to take some care that by definition s!=0 for non-empty passwords.

&#62; Perhaps it is better to simply restrict the claim to exactly one guess of s per attempt.

That would be less meaningful in practical terms.</description>
		<content:encoded><![CDATA[<p>kme,</p>
<p>&gt; Choosing a good encoding method is not entirely trivial. </p>
<p>I think it can be fairly straightforward. Note that a password typically has 8-10 chars. Some applications even limit users not to choose more than 14 chars as a password. Assume a password is limited under 22 char, concatenating the ASCII values looks a good method to me.</p>
<p>&gt; The obvious candidate is 160 bits of hash of the low-entropy input</p>
<p>Yeah, using a hash is another way. You could use some function that looks like SHA1(password)%q to encode a password to a number s, but you may need to take some care that by definition s!=0 for non-empty passwords.</p>
<p>&gt; Perhaps it is better to simply restrict the claim to exactly one guess of s per attempt.</p>
<p>That would be less meaningful in practical terms.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kme</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29382</link>
		<dc:creator>kme</dc:creator>
		<pubDate>Tue, 24 Jun 2008 10:18:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29382</guid>
		<description>Sure, but I think you need to be precise with this kind of thing :)

Choosing a good encoding method is not entirely trivial.  English phrases significantly longer than 22 characters can still have less than 160 bits of entropy.  A naive implementation that simply took the first (or last) 22 characters would clearly allow testing many plausible low entropy passwords in one trial key exchange.

The obvious candidate is 160 bits of hash of the low-entropy input (at least in this case the relationships between passwords with equivalent s is non-trivial).  What method do you recommend?

Perhaps it is better to simply restrict the claim to exactly one guess of s per attempt.</description>
		<content:encoded><![CDATA[<p>Sure, but I think you need to be precise with this kind of thing <img src='http://www.lightbluetouchpaper.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Choosing a good encoding method is not entirely trivial.  English phrases significantly longer than 22 characters can still have less than 160 bits of entropy.  A naive implementation that simply took the first (or last) 22 characters would clearly allow testing many plausible low entropy passwords in one trial key exchange.</p>
<p>The obvious candidate is 160 bits of hash of the low-entropy input (at least in this case the relationships between passwords with equivalent s is non-trivial).  What method do you recommend?</p>
<p>Perhaps it is better to simply restrict the claim to exactly one guess of s per attempt.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: synp</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29381</link>
		<dc:creator>synp</dc:creator>
		<pubDate>Tue, 24 Jun 2008 07:51:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29381</guid>
		<description>Are you interested in defining an EAP method based on J_PAKE ?</description>
		<content:encoded><![CDATA[<p>Are you interested in defining an EAP method based on J_PAKE ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Feng Hao</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29373</link>
		<dc:creator>Feng Hao</dc:creator>
		<pubDate>Mon, 23 Jun 2008 15:35:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29373</guid>
		<description>Hi kme,

&#62; I find the setence “Since s has low entropy, we assume the value of s falls within [1, q-1]” troubling

Password is a string of characters. It needs to be encoded into a numeric value before being used in the modular operation. This sentence is to say that since the password has low entropy, so it is possible to encode the string into a numeric value within [1, q-1] for 160-bit q. e.g., if the password has less than 160/7=22 chars, you could simply concatenate the 7-bit ASCII values to form a numeric value (Java has a ready API to construct a BigInteger from byte[]). Alternatively, for any-length passwords, you could  just take a hash value.

We specify this range mainly to be mathematically precise, because s, s+q, s+2q, ..., are equivalent values on the exponent. Otherwise, the claim of restricting exactly one guess of password per attempt would be incorrect (in the mathematical sense).</description>
		<content:encoded><![CDATA[<p>Hi kme,</p>
<p>&gt; I find the setence “Since s has low entropy, we assume the value of s falls within [1, q-1]” troubling</p>
<p>Password is a string of characters. It needs to be encoded into a numeric value before being used in the modular operation. This sentence is to say that since the password has low entropy, so it is possible to encode the string into a numeric value within [1, q-1] for 160-bit q. e.g., if the password has less than 160/7=22 chars, you could simply concatenate the 7-bit ASCII values to form a numeric value (Java has a ready API to construct a BigInteger from byte[]). Alternatively, for any-length passwords, you could  just take a hash value.</p>
<p>We specify this range mainly to be mathematically precise, because s, s+q, s+2q, &#8230;, are equivalent values on the exponent. Otherwise, the claim of restricting exactly one guess of password per attempt would be incorrect (in the mathematical sense).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kme</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/29/j-pake/#comment-29367</link>
		<dc:creator>kme</dc:creator>
		<pubDate>Mon, 23 Jun 2008 03:57:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=333#comment-29367</guid>
		<description>(Well, except inasmuch as the range obviously puts an upper bound on the entropy).</description>
		<content:encoded><![CDATA[<p>(Well, except inasmuch as the range obviously puts an upper bound on the entropy).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
