Dr. Sarah's Maple Demo on Applications of Direct Products of Cyclic Groups to Data Security

Based on Gallian's Contemporary Abstract Algebra

**Takes notes on this - your hw will be to post your answers to the questions on the WebCT bulletin board under the Forum - Maple Demos - by Monday at 9:50 am. (I'd be happy to help in Friday office hours, by e-mail or in Monday morning office hours 9:30-10 if you get stuck!)**

Because computers are built from two-state electronic components, it is natural to represent information as

strings of 0's and 1's called binary strings. A binary string of length n can naturally be thought of as an element of Z_2 (+) Z_2 (+) Z_2 (+)...(+) Z_2, where (+) means direct product, and we are taking the direct product of n copies of Z_2, but we delete the parentheses and commas that we normally use with direct product.

So, the binary string 11000110 corresponds to the element (1,1,0,0,0,1,1,0) in

Z_2 (+) Z_2 (+) Z_2 (+) Z_2 (+) Z_2 (+) Z_2 (+) Z_2 (+) Z_2

Also, we can define an operation * on these binary strings that works just like it would with a direct product.

Then,
**binary strings with operation * form a group**
, since direct products of groups (Z_2 in this case) are groups themselves.

For example,11111111 * 11111111 = (1,1,1,1,1,1,1,1) + (1,1,1,1,1,1,1,1)

= (1+1 mod 2, 1+1 mod2 ,1+1 mod 2, 1+1 mod2 ,1+1 mod 2, 1+1 mod2 ,1+1 mod 2, 1+1 mod2)

= (0,0,0,0,0,0,0,0)

=00000000

Also, 11000111 * 01110110 = (1,1,0,0,0,1,1,0) + (0,1,1,1,0,1,1,0) = (1+0,1+1,0+1,0+1,0+0,1+1,1+1,0+0)

where the addition is the addition that makes Z_2 a group - is mod 2 addition

=(1+0 mod 2,1+1 mod 2,0+1 mod 2,0+1 mod 2,0+0 mod 2,1+1 mod 2,1+1 mod 2,0+0 mod 2)

`> `

**Question 1: What is the result of 11000111 * 01110110? You should finish the above computation and then turn the result back into a binary string by getting rid of the parenthesis and the commas. **

`> `

Maple can do this addition for us, but it uses brackets [ ] instead of parenthesis ( ). For example,

we know that 11111111 * 11111111=00000000 from above. Let's see Maple do this.

`> `
**[1,1,1,1,1,1,1,1]+[1,1,1,1,1,1,1,1] mod 2;**

**Question 2: Write down a Maple Command that will calculate **

**10011100 * 10011100.**

`> `

The fact that the * of two binary sequences a_1 a_2 ... a_n * b_1 b_2 ... b_n = 00 ... 0 if and only if the two binary sequences are identical is the basis for a data security system used by HBO to protect its television signals. We'll look at one direction of the iff proof below. The other direction can be proven by similar ideas.

**Proof that a_1 a_2 ... a_n * b_1 b_2 ... b_n = 00 ...0 ---> a_i=b_i for all i. **

We will prove that a_1 a_2 ... a_n * b_1 b_2 ... b_n = 00 ...0 ---> a_i=b_i for all i,

so assume that we have two binary strings of length n which * to 0...0, ie

a_1 a_2 ... a_n * b_1 b_2 ... b_n = 00 ...0, where a_i and b_i are contained in {0,1}.

We must show that a_i=b_i for all i.

We know that 00...0 = a_1 a_2 ... a_n * b_1 b_2 ... b_n

=(a_1,...,a_n) + (b_1,...,b_n) by definition of * on binary strings

=(a_1+b_1,...,a_n+b_n) by definition of direct product of Z_2 n times

=(a_1+b_1 mod 2, ... , a_n +b_n mod 2) by definition of + in Z_2

Hence a_i + b_i mod 2 = 0 for all i.

Let 1 <or equal i <or equal n. We will show that a_i=b_i.

Since a_i and b_i are elements of {0,1}, we know that

there are four possible cases for a_i + b_i mod 2:

Case 1: a_i=0,b_i=0 Case 2: a_i=1,b_i= 0 Case 3: a_i=0,b_i=1

a_i+b_i mod 2=0 a_i+b_i mod 2=1 a_i+b_i mod 2=1

Case 4: a_i=1,b_i=1

a_i+b_i mod 2=1+1 mod 2= 2 mod 2=0

We see that only cases 1 and 2 satisfy a_i+b_i mod 2 = 0. In both of these cases, a_i=b_i.

Hence a_i=b_i for all i, as desired.

**Question 3: Is my above proof correct?**

`> `

Begining in 1984, HBO scrambled its signal. To unscramble the signal, a cable system operator or dish

owner who pays a monthly fee has to have a password that is changed monthly. The password is transmitted along with the scrambled signal and scrambled versions of the password. The technical term for the scrambling process is encryption. Although HBO uses binary sequences of length 56, we will illustrate the method with sequences of length 8 for the sake of brevity.

Let us say that the password for this month is p. Each authorized user of the service is assigned a sequence uniquely associated with him or her. Let us call these the keys and label them k1, k2, .....

HBO transmits the password p, the scrambled signal, and the encryted sequences k1*p,k2*p,...

(that is, one sequence for each authorized user!). A microprocessor in each subscriber's decoding box simply adds its key, say ki to each of the encrypted sequences. That is, it calculates

ki* (k1*p), ki * (k2*p),...

The microprocessor then compares each of these calculated sequences with the correct password p. When one of the sequences matches p, the microprocessor can unscramble the signal. Notice that the correct password p will be produced precisely when it encounters ki*(ki*p) = (ki*ki)*p=00...0*p=p, and

and ki*(kj*p) is not p when ki is not equal to kj

since a_1 a_2 ... a_n * b_1 b_2 ... b_n = 00 ... 0 if and only if the two binary sequences are identical

**Question 4: Which group property (recall from above that binary strings with operation * forms a group) am I using in the step ki*(ki*p) = (ki*ki)*p?**

** **

If a subscriber with key ki fails to pay the monthly bill, HBO can terminate the subscriber's service by not transmitting the sequence ki*p for the next month.

To illustrate, let us say that the password for this month is p=10101100 and your key

is 00111101. One of the sequences transmitted by HBO is key+p which is

`> `
**[1,0,1,0,1,1,0,0]+[0,0,1,1,1,1,0,1] mod 2;**

10010001

Your decoder box adds you key 00111101 to all the sequences received. Eventually it finds the sequence obtained by adding the password to your key (10010001) and calculates

`> `
**[0,0,1,1,1,1,0,1]+[1,0,0,1,0,0,0,1] mod 2;**

to obtain the password p. This password then permits the decoder to unscramble the TV signal and the box allows HBO to be received.

One might suspect that a computer hacker could find the password by simply trying a large number of possible keys until one "unlocks" the password and provides him with HBO. However, with sequences of length 56, which HBO uses, there are 2^(56) possible keys (2 choices for each a_i and i runs up to 56),

though perhaps only a few million are used by HBO to unlock its monthly password.

`> `
**evalf(2^56);**

The number 2^56 is so large (it exceeds 72 quadrillion!) that even if one tries a billion possible keys, the chance of finding one that works is essentially 0.

**Question 5: If your key is 11111111, and the sequence that will unlock the password this month is 01010101, use your key to unlock the password (ie what is the password for this month?).**

`> `

`> `

**Post the answers to these questions on the bulletin board under WebCT (you can access this from any computer with internet connection from anywhere!) under the Forum - Maple Demos - by Monday at 9:50am. (I'd be happy to help in Friday office hours, by e-mail or in Monday morning office hours 9:30-10 if you get stuck!)**