13.03.2013 Views

Hacking the Xbox

Hacking the Xbox

Hacking the Xbox

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 7 - A Brief Primer on Security 105<br />

This section will briefly describe <strong>the</strong> kinds of cryptographic algorithms<br />

used in <strong>the</strong> <strong>Xbox</strong>. We will focus on <strong>the</strong> practical implications and<br />

implementation issues of <strong>the</strong>se algorithms. You will need to understand<br />

<strong>the</strong>se algorithms in order to appreciate <strong>the</strong> available attacks on <strong>the</strong> <strong>Xbox</strong><br />

security system.<br />

Note<br />

I make no pretense of addressing <strong>the</strong> <strong>the</strong>oretical aspects<br />

of cryptography; those are beyond me and beyond <strong>the</strong><br />

scope of <strong>the</strong> book. Instead, I refer interested readers to<br />

Bruce Schneier’s excellent book, Applied Cryptography<br />

(John Wiley & Sons); most of my knowledge in cryptography<br />

comes from that book. Readers who are already familiar<br />

with cryptography should be able to skim or skip <strong>the</strong><br />

remainder of this chapter.<br />

Classes of Cryptographic Algorithms<br />

There are a few important classes of cryptographic algorithms used in <strong>the</strong><br />

<strong>Xbox</strong>. These are:<br />

• Hashes<br />

• Symmetric ciphers<br />

• Public key ciphers<br />

Hashes come in several varieties. Hashes of <strong>the</strong> cryptographic variety are<br />

used to summarize or “digest” a large amount of data. The summary is a<br />

number of fixed length, typically around 100 to 200 bits long, while <strong>the</strong><br />

source data can be of almost any size. The most important property of a<br />

hash is that it is a one-way computation. In o<strong>the</strong>r words, it is easy to<br />

compute <strong>the</strong> hash, but it is very difficult (see <strong>the</strong> sidebar “Very Difficult<br />

Problems” to understand exactly what this means) to derive sequences of<br />

data whose hash digest are identical or to determine anything about <strong>the</strong><br />

original data from <strong>the</strong> hash.<br />

The strength of a hash against finding two sequences of data that hash to<br />

<strong>the</strong> same value is referred to as its collision resistance, and in general, a good<br />

n-bit hash requires about 2n/2 random data sequences to be hashed and<br />

compared in order to cause a collision. Since hashes are designed to be<br />

very easy to compute and very collision-resistant, <strong>the</strong>y are often used to<br />

detect whe<strong>the</strong>r a bit has been changed in large regions of secure data. For<br />

many applications, it is sufficient to include just an encrypted hash of a<br />

message in lieu of expending <strong>the</strong> computational effort to encrypt <strong>the</strong><br />

whole message.<br />

Symmetric ciphers are algorithms that have encryption and decryption keys<br />

that can be easily derived from one ano<strong>the</strong>r. Most of <strong>the</strong> time, <strong>the</strong><br />

encryption and decryption keys are <strong>the</strong> same. Symmetric ciphers use a<br />

mixing function to combine a key schedule with data that has been processed<br />

by some cryptographic function. This mixing may be repeated several times

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!