# xkcd #936, Aug. 10, 2011

**URL:** <https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273>\
**Category:** Cafe Society\
**Created:** [August 11, 2011, 12:22am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273 "2011-08-11T00:22:17Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![Miller](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/miller/32/481_2.png) [@Miller](https://boards.straightdope.com/u/Miller)\
**Post date:** [August 11, 2011, 5:29am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/41 "2011-08-11T05:29:44Z")

</div>

> [@Chronos](#):
>
> A very popular tactic, which accomplishes nothing at all for security. If an attacker breaks in, he’s going to change the password immediately, not wait until 90 days later. Meanwhile, you’re guaranteeing the presence of post-it notes stuck to monitors which a student could glance at during office hours.

It seems that might still be useful if you’re worried about spies - such as, for example, a student monitoring his professor’s email, hoping he emails himself a copy of the next quiz. In that case, the intruder isn’t going to change the password: that would give away that he’s listening in.

---

<div class="post-metadata">

**Author:** ![obfusciatrist](https://avatars.discourse-cdn.com/v4/letter/o/4af34b/32.png) [@obfusciatrist](https://boards.straightdope.com/u/obfusciatrist)\
**Post date:** [August 11, 2011, 5:33am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/42 "2011-08-11T05:33:07Z")

</div>

> [@gazpacho](#):
>
> In this day and age you really need the password app. You need to have different passwords for every thing.

I have two tiers of passwords. I have a standard reasonably strong 9-character password and a standard long passphrase for sights where I consider hacking annoying but not necessarily damaging. I use it across sites but if my “Message Board A” account got hacked I’m not too bothered if that means they also get into “Food Diary Tool B”.

For more important sites I use a long passphrase as possible where it is three words long (uncommon words such as something like Boeinggobsmackedshiitake) then for each site I create a fourth part of the phrase using a non-obvious formula that uses the Website’s domain name (or application name) as an input. Then I put that new word (which is essentially random letters but not something I actually have to memorize) in either the 2nd, 3rd, or 4th spot in the sequence. So my SDMB password might end up being BoeinggobsmackedORSOPODshiitake but all I have to memorize is “3” for 3rd spot.

And if somehow I forget that, the relatively few possibilities means I can get it in few enough attempts that I don’t get locked out.

Obviously if such a password is acquired from two different sites anybody comparing will see the commonality and significantly reduce the guesses necessary for a third site, but if that happens I figure I have bigger problems.

Beyond that, any other obvious issues I might be missing?

---

<div class="post-metadata">

**Author:** ![Dr.Strangelove](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/dr.strangelove/32/6613_2.png) [@Dr.Strangelove](https://boards.straightdope.com/u/Dr.Strangelove)\
**Post date:** [August 11, 2011, 5:57am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/43 "2011-08-11T05:57:48Z")

</div>

> [@Kobal2](#):
>
> So you use h4x0r transpositions on made-up words that are not in common dictionaries, or even the Wikipedia index. Easy to remember, hard to crack. Problem solved.

The point is that this is _not_ easy to remember.

I barely glanced at the comic yesterday, and today I still remember the passphrase (though upon looking, I got the word order wrong–no matter, I could brute-force _that_ problem in minutes). The only thing I remember about the h4x0r password is that it wasn’t based on the word trombone.

The passphrase is better. And if you’re thinking about using a longer word list, don’t: just use 6 words from the short list if you really need more entropy. Does anyone really think they can spell every word in that list of 98,000?

---

<div class="post-metadata">

**Author:** ![JoelUpchurch](https://avatars.discourse-cdn.com/v4/letter/j/f05b48/32.png) [@JoelUpchurch](https://boards.straightdope.com/u/JoelUpchurch)\
**Post date:** [August 11, 2011, 6:46am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/44 "2011-08-11T06:46:48Z")

</div>

> [@dzeiger](#):
>
> A somewhat related question–why has 8 characters been decided on as the standard minimum length?

I think that goes back to the early days of computers which used 4 bytes for a word size. You end up with a lot of things that are multiples of 4. As someone mentioned above, 8 characters are the **maximum** length for a password on some systems.

A lot of things are still implemented as fixed length fields within a fixed length record. I can still remember when records were designed to fit on an eighty character or 96 character punch card.

Even today, A lot of fields have arbitrary limits so you can get the fields to fit on a printed report.

---

<div class="post-metadata">

**Author:** ![EvilTOJ](https://avatars.discourse-cdn.com/v4/letter/e/ee59a6/32.png) [@EvilTOJ](https://boards.straightdope.com/u/EvilTOJ)\
**Post date:** [August 11, 2011, 7:23am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/45 "2011-08-11T07:23:22Z")

</div>

Can I use [Shoehorn Butterhorse](http://boards.straightdope.com/sdmb/showpost.php?p=740411&postcount=14)?

---

<div class="post-metadata">

**Author:** ![psychonaut](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/psychonaut/32/4655_2.png) [@psychonaut](https://boards.straightdope.com/u/psychonaut)\
**Post date:** [August 11, 2011, 7:43am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/46 "2011-08-11T07:43:57Z")

</div>

Yes, the xkcd comic is correct; the leet-speak password is easier to crack than the one composed of English words. The comic already explains why, but for further details, check out [Diceware](http://world.std.com/~reinhold/diceware.html) and [How Big is Your Haystack?](https://www.grc.com/haystack.htm). The former site presents an easy to use but very good method for generating passphrases from random combinations of English words; it includes extensive information (including a FAQ) on why this method works better than a seemingly random password. The latter site allows you to actually enter a password or passphrase in an input box and it will print out some statistics on how long it would take to crack with a brute-force algorithm. (It’s all done in JavaScript so whatever you type in is not being transmitted over the Internet.) Yes, dictionary-based attacks can cut down the search space, but for long passphrases the savings is not significant; see the Diceware page for details.

Here is the output of the Haystack page for the password and passphrase given in the xkcd article:

> [@](#):
>
> **Tr0ub4dor&3**
> 
> **Brute Force Search Space Analysis:**  
> Search Space Depth (Alphabet): 26+26+10+33 = 95  
> Search Space Length (Characters): 11 characters  
> Exact Search Space Size (Count):  
> (count of all possible passwords  
> with this alphabet size and up  
> to this password’s length) 5,748,  
> 511,570,879,116,626,495  
> Search Space Size (as a power of 10): 5.75 x 1021
> 
> **Time Required to Exhaustively Search this Password’s Space:**  
> Online Attack Scenario:  
> (Assuming one thousand guesses per second) 1.83 billion centuries  
> Offline Fast Attack Scenario:  
> (Assuming one hundred billion guesses per second) 18.28 centuries  
> Massive Cracking Array Scenario:  
> (Assuming one hundred trillion guesses per second) 1.83 years

> [@](#):
>
> **correct horse battery staple**
> 
> **Brute Force Search Space Analysis:**  
> Search Space Depth (Alphabet): 26+33 = 59  
> Search Space Length (Characters): 28 characters  
> Exact Search Space Size (Count):  
> (count of all possible passwords  
> with this alphabet size and up  
> to this password’s length) 39,019,378,174,832,  
> 163,909,972,622,372,170,  
> 131,931,859,526,600,760  
> Search Space Size (as a power of 10): 3.90 x 1049
> 
> **Time Required to Exhaustively Search this Password’s Space:**  
> Online Attack Scenario:  
> (Assuming one thousand guesses per second) 12.41 trillion trillion trillion centuries  
> Offline Fast Attack Scenario:  
> (Assuming one hundred billion guesses per second) 1.24 hundred thousand trillion trillion centuries  
> Massive Cracking Array Scenario:  
> (Assuming one hundred trillion guesses per second) 1.24 hundred trillion trillion centuries

---

<div class="post-metadata">

**Author:** ![Sage\_Rat](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/sage_rat/32/399_2.png) [@Sage\_Rat](https://boards.straightdope.com/u/Sage_Rat)\
**Post date:** [August 11, 2011, 8:11am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/47 "2011-08-11T08:11:50Z")

</div>

> [@gazpacho](#):
>
> Lets follow the math in the comic. There are two methods of generating passwords presented. Lets calculate how many possible passwords we can generate with the two methods.  
> Method 1
> 
> 1. Choose an uncommon word. In the comic he assumes a space of 65536 words or 16 bits entropy
> 2. choose to capitalize it or not. 2 choices
> 3. make a leet speek substitution for 3 of the letters. 2 choices for each letter 8 total choices. You could argue that there are a lot more than 8 choices but it won’t make much different in the end.
> 4. add some punctuation at the end 16 choices
> 5. add a number at the end 8 choices
> 6. choose to flip the number and punctuation 2 choices.  
> 65536_2_8_16_8=1.3 \*10[sup]8[/sup] possible passwords
> 
> Method 2
> 
> 1. Choose 4 common English words assume 2048 words to choose from do not repeat words. 2048_2047_2046\*2045=1.75[sup]13[/sup] possible pass phrases.
> 
> Method 2 has vastly more possible choices. The ease of memorization is more subjective but I think Method 2 is easier to remember.

Your calculation for method 2 assumes that the cracker knows what method of password creation you are using. As demonstrated by this thread, there are a multitude of methods to create good and reasonably recallable passwords. If we all used the same method, the ability to crack passwords would become trivial, but if we all choose a different one of all good methods, the brute force search by character may be the most efficient.

Personally, I like to use two+ words with a symbol between, and optional symbols on either end, and capitalization of whole words or the first letters:

\>\>KICK&PUNCH\<\<  
HulkH8radioactiveGOO  
PIGS/wWINGS!

---

<div class="post-metadata">

**Author:** ![II\_Gyan\_II](https://avatars.discourse-cdn.com/v4/letter/i/bbe5ce/32.png) [@II\_Gyan\_II](https://boards.straightdope.com/u/II_Gyan_II)\
**Post date:** [August 11, 2011, 8:31am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/48 "2011-08-11T08:31:20Z")

</div>

This topic was brought up at Ask Metafilter as well, and in it xkcd [explains](http://ask.metafilter.com/193052/Oh-Randall-you-do-confound-me-so#2779020) his reasoning.

---

<div class="post-metadata">

**Author:** ![straight\_man](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/straight_man/32/3027_2.png) [@straight\_man](https://boards.straightdope.com/u/straight_man)\
**Post date:** [August 11, 2011, 9:27am UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/49 "2011-08-11T09:27:09Z")

</div>

> [@Left\_Hand\_of\_Dorkness](#):
>
> I talked with a university IT guy about that awhile ago. He said that as soon as you implemented that, disgruntled students would keep their professors permanently locked out of their accounts with a simple script. They allow infinite login attempts, but require profs to switch passwords all the time.

Surely you could just lock out the IP address? I mean, obviously the computer can switch IP addresses by whatever means, but it’s not like they can get unlimited or instantaneous switches. Or am I missing something obvious?

---

<div class="post-metadata">

**Author:** ![Evil\_Captor](https://avatars.discourse-cdn.com/v4/letter/e/f17d59/32.png) [@Evil\_Captor](https://boards.straightdope.com/u/Evil_Captor)\
**Post date:** [August 11, 2011, 12:09pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/50 "2011-08-11T12:09:14Z")

</div>

> [@Simplicio](#):
>
> I think he’s overestimating how many people use the formula he gives to generate a password though. If a lot of people use a common word with l337 speak substitutions and a random two character punctuation-number string on the end, he’s right. But I don’t think that formula, vs many other variations is really that dominant.
> 
> (plus he assumes that the first letter is the only one that may or may not be capitalized that only three letters in any word will be substitutable, and that for each such letter, there’s only one possible substitution).

Are you kidding? I’ll bet there are a lot of eight string passwords out there like this:

12345678  
or  
abcdefgh

Really, there is no underestimating human stupidity. Those Nigerian princes are still finding fish out there I’m sure. Porn sites are still getting customers by using every fricking keyword imaginable and then doing that little trick with the hash mark that kindasorta disables the “Back” button.

---

<div class="post-metadata">

**Author:** ![Alka\_Seltzer](https://avatars.discourse-cdn.com/v4/letter/a/c89c15/32.png) [@Alka\_Seltzer](https://boards.straightdope.com/u/Alka_Seltzer)\
**Post date:** [August 11, 2011, 12:43pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/51 "2011-08-11T12:43:26Z")

</div>

I really, really hate letter substitution passwords, because they are so hard to remember. In practise, this degrades security, as people often have to resort to writing them down. Pass phrases are a much better solution in the real world.

---

<div class="post-metadata">

**Author:** ![Steve\_MB](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/steve_mb/32/5339_2.png) [@Steve\_MB](https://boards.straightdope.com/u/Steve_MB)\
**Post date:** [August 11, 2011, 1:35pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/52 "2011-08-11T13:35:52Z")

</div>

> [@Kobal2](#):
>
> So you use h4x0r transpositions on made-up words that are not in common dictionaries, or even the Wikipedia index. Easy to remember, hard to crack. Problem solved.

h4x0r transpositions are trivial to crack – it’s just a dictionary attack that tries each word both straight and with the standard h4x0r transpositions. Nonexistent made-up words are a bit better (assuming you don’t forget how to spell them).

Something along the lines of the technique in [**Larry Mudd** ’s post](http://boards.straightdope.com/sdmb/showpost.php?p=14125137&postcount=15) (first letters of a phrase, retaining capitalizations\* and punctuation and converting number words to numerics) is a lot stronger and fits in a limited-length password space.

\*My usual system is to treat all nouns as capitalized, a la German usage, which avoids the need to select a phrase that includes an already-capitalized word.

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [August 11, 2011, 3:21pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/53 "2011-08-11T15:21:22Z")

</div>

Possibly of interest here, or at least amusement: an [xkcd password generator](http://preshing.com/20110811/xkcd-password-generator), inspired by the recent strip.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [August 11, 2011, 6:21pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/54 "2011-08-11T18:21:21Z")

</div>

Quoth **Jragon** :

> [@](#):
>
> Another issue is that the password guessing difficulty is actually affected by requirements. A (sufficiently random) password that is purely alphanumeric is more or less equally as safe as a password with symbols in an environment that allows symbols in passwords. Similarly, allowing capitals actually increases security for those who don’t use capitals.
> 
> In other words, given an identical environment (let’s say alphabetic characters, capital or lower case), these expressions are relatively equally secure:  
> aqrzttghy  
> BnQrTTUvP  
> GHBVVJUIO
> 
> because in that environment you have to test for capitals, since they’re allowed. So a password environment that allows a larger range is inherently more secure than an environment that doesn’t allow a large variance, it can even slow down dictionary attacks since in more complex environments they’re required to take into account k00l l3tter substitoosh()nz, in addition to the usual “clever” letter swaps.

Not true. The cracker doesn’t need to try every possible password; it only needs to keep trying until it succeeds. And since many people do restrict themselves to lower-case letters, even if they don’t need to, any well-designed password cracker will try those first (or at least, before the more complicated ones-- It probably tries the standard lists like “password”, the username, the name of the site, etc. first).

It’s sort of like how Feynman was able to speed up his brute-force safe-cracking techniques, on average, by arranging his method so he tried numbers which could be dates first.

---

<div class="post-metadata">

**Author:** ![CaveMike](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/cavemike/32/16379_2.png) [@CaveMike](https://boards.straightdope.com/u/CaveMike)\
**Post date:** [August 11, 2011, 7:07pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/55 "2011-08-11T19:07:06Z")

</div>

I’m not sure if it is clear to everyone, but the math in the comic assumes that the password convention is known. The hacker knows (a) is a word followed by two numbers/punctuation marks with some minor variations and that (b) is four common words all lowercase, without variations.

---

<div class="post-metadata">

**Author:** ![Lemur866](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/lemur866/32/434_2.png) [@Lemur866](https://boards.straightdope.com/u/Lemur866)\
**Post date:** [August 11, 2011, 7:33pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/56 "2011-08-11T19:33:55Z")

</div>

But if you use a string of dictionary words, then aren’t we really looking at each dictionary word as a character? So if your dictionary is (say) 2000 words long, and you use four dictionary words, then your complexity is really only 2000^4.

---

<div class="post-metadata">

**Author:** ![Gary\_T](https://avatars.discourse-cdn.com/v4/letter/g/3ec8ea/32.png) [@Gary\_T](https://boards.straightdope.com/u/Gary_T)\
**Post date:** [August 11, 2011, 7:48pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/57 "2011-08-11T19:48:41Z")

</div>

> [@guizot](#):
>
> For me, the real myth is that supposedly something like the example in the comic (Tr0ub4dor) is easier to remember, but it’s not.

It appears you misread the comic strip. It states that the “troubador” example is HARDER to remember.

---

<div class="post-metadata">

**Author:** ![CaveMike](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/cavemike/32/16379_2.png) [@CaveMike](https://boards.straightdope.com/u/CaveMike)\
**Post date:** [August 11, 2011, 7:49pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/58 "2011-08-11T19:49:37Z")

</div>

> [@Lemur866](#):
>
> But if you use a string of dictionary words, then aren’t we really looking at each dictionary word as a character? So if your dictionary is (say) 2000 words long, and you use four dictionary words, then your complexity is really only 2000^4.

Exactly, but 2000^4 is roughly 2^44 (16T vs. 17.5T). In the comic he doesn’t calculate the exact number of combinations, he ‘estimates’ them by determining how much storage space they require and then calculating the number of combinations from that.

I don’t think I have the terms exactly right, but it is the idea behind his math.

In **II Gyan II** ’s link, the author describes how he estimates the number of bits of entropy for each component. I think he is using this to estimate non-linear distributions of combinations.

---

<div class="post-metadata">

**Author:** ![obfusciatrist](https://avatars.discourse-cdn.com/v4/letter/o/4af34b/32.png) [@obfusciatrist](https://boards.straightdope.com/u/obfusciatrist)\
**Post date:** [August 11, 2011, 7:52pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/59 "2011-08-11T19:52:47Z")

</div>

Yes, and 2000^4 is a big number (16 trillion) (or 17.59 trillion since the dictionary used is 2,048 words).

Four words selected out of 2,048 is 2^11_2^11_2^11\*2^11 = 2^44 = 2,048^4 = 17.59 trillion.

In the other pattern he shows (the complex one) he has the uncommon word coming from a list of 65,536 words (2^16), another 2^1 options from initial capitalization, 2^3 from character subsitutions, 2^4 from possible punctuation at the end, 2^3 from a number at the end and 2^1 from what order the punctuation and number are in.

Which is 2^16_2^1_2^3_2^4_2^3\*2^1 = 2^28 = “only” 268 million.

---

<div class="post-metadata">

**Author:** ![Bosstone](https://avatars.discourse-cdn.com/v4/letter/b/22d042/32.png) [@Bosstone](https://boards.straightdope.com/u/Bosstone)\
**Post date:** [August 11, 2011, 7:56pm UTC](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273/60 "2011-08-11T19:56:37Z")

</div>

> [@Gary\_T](#):
>
> It appears you misread the comic strip. It states that the “troubador” example is HARDER to remember.

I don’t think he’s claiming that the strip is saying that, but that it’s what the xkcd strip is really trying to debunk rather than the relative strength of the two passwords.

The strip was saying “It’s okay to use correcthorsebatterystaple, because it’s not only stronger but easier to remember despite being longer.” That’s two myths in one.

[Previous page](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273.md?page=2)

[Next page](https://boards.straightdope.com/t/xkcd-936-aug-10-2011/592273.md?page=4)
