{VERSION 3 0 "APPLE_68K_MAC" "3.0" }
{USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0
1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0
0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 }
{CSTYLE "" -1 256 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1
257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0
0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0
0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1
261 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0
0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0
0 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1
265 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 266 "" 0 1 0 0 0
0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0
0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11
1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0
0 0 0 0 0 -1 0 }{PSTYLE "" 0 256 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }}
{SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT 256 91 "Dr. Sarah's Maple Demo on
Applications of Direct Products of Cyclic Groups to Data Security" }}
}{EXCHG {PARA 0 "" 0 "" {TEXT -1 48 "Based on Gallian's Contemporary A
bstract Algebra" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 258
274 "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, b
y e-mail or in Monday morning office hours 9:30-10 if you get stuck!)
" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 107 "Because computers are built \+
from two-state electronic components, it is natural to represent infor
mation as" }}{PARA 0 "" 0 "" {TEXT -1 332 "strings of 0's and 1's call
ed binary strings. A binary string of length n can naturally be thoug
ht 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 co
pies of Z_2, but we delete the parentheses and commas that we normally
use with direct product." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "
" 0 "" {TEXT -1 79 "So, the binary string 11000110 corresponds to the \+
element (1,1,0,0,0,1,1,0) in " }}{PARA 0 "" 0 "" {TEXT -1 71 "Z_2 (+)
Z_2 (+) Z_2 (+) Z_2 (+) Z_2 (+) Z_2 (+) Z_2 (+) Z_2" }}
{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 111 "Also, we
can define an operation * on these binary strings that works just lik
e it would with a direct product." }}{PARA 0 "" 0 "" {TEXT -1 6 "Then,
" }{TEXT 265 44 "binary strings with operation * form a group" }
{TEXT -1 76 ", since direct products of groups (Z_2 in this case) are \+
groups themselves. " }}{PARA 0 "" 0 "" {TEXT -1 71 "For example,111111
11 * 11111111 = (1,1,1,1,1,1,1,1) + (1,1,1,1,1,1,1,1)" }}{PARA 0 "" 0
"" {TEXT -1 109 " = (1+1 mod 2, 1+1 mod2 ,1+1 mo
d 2, 1+1 mod2 ,1+1 mod 2, 1+1 mod2 ,1+1 mod 2, 1+1 mod2)" }{TEXT 261
0 "" }}{PARA 0 "" 0 "" {TEXT -1 42 " = (0,0,0,0,
0,0,0,0)" }}{PARA 0 "" 0 "" {TEXT -1 32 " =00000
000" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }
}{PARA 0 "" 0 "" {TEXT -1 101 "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)" }}
{PARA 0 "" 0 "" {TEXT -1 77 "where the addition is the addition that m
akes Z_2 a group - is mod 2 addition" }}{PARA 0 "" 0 "" {TEXT -1 103 "
=(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)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 ""
{TEXT -1 0 "" }{TEXT 257 200 "Question 1: What is the result of 11000
111 * 01110110? You should finish the above computation and then turn
the result back into a binary string by getting rid of the parenthesi
s and the commas. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}
}{EXCHG {PARA 0 "" 0 "" {TEXT -1 102 "Maple can do this addition for u
s, but it uses brackets [ ] instead of parenthesis ( ). For example,
" }}{PARA 0 "" 0 "" {TEXT -1 80 "we know that 11111111 * 11111111=0000
0000 from above. Let's see Maple do this. " }}}{EXCHG {PARA 0 "> " 0
"" {MPLTEXT 1 0 42 "[1,1,1,1,1,1,1,1]+[1,1,1,1,1,1,1,1] mod 2;" }}
{PARA 11 "" 1 "" {XPPMATH 20 "6#7*\"\"!F$F$F$F$F$F$F$" }}}{EXCHG
{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 259 60 "Question 2: Write down a
Maple Command that will calculate " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }
{TEXT 260 20 "10011100 * 10011100." }}}{EXCHG {PARA 0 "> " 0 ""
{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG
{PARA 0 "" 0 "" {TEXT -1 337 "The fact that the * of two binary sequen
ces a_1 a_2 ... a_n * b_1 b_2 ... b_n = 00 ... 0 if and only if the tw
o binary sequences are identical is the basis for a data security syst
em used by HBO to protect its television signals. We'll look at one d
irection of the iff proof below. The other direction can be proven by
similar ideas. " }}}{EXCHG {PARA 256 "" 0 "" {TEXT -1 80 "Proof that
a_1 a_2 ... a_n * b_1 b_2 ... b_n = 00 ...0 ---> a_i=b_i for all i. \+
" }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 93 " \+
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," }}{PARA 0 "" 0 "" {TEXT -1 75 "so assume that we \+
have two binary strings of length n which * to 0...0, ie " }}{PARA 0 "
" 0 "" {TEXT -1 88 "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\}. " }}{PARA 0 "" 0 "" {TEXT -1
37 "We must show that a_i=b_i for all i." }}{PARA 0 "" 0 "" {TEXT -1
55 "We know that 00...0 = a_1 a_2 ... a_n * b_1 b_2 ... b_n" }}{PARA
0 "" 0 "" {TEXT -1 76 " =(a_1,...,a_n) + (b_1,...,b_n) by defi
nition of * on binary strings" }}{PARA 0 "" 0 "" {TEXT -1 78 " \+
=(a_1+b_1,...,a_n+b_n) by definition of direct product of Z_2 n times
" }}{PARA 0 "" 0 "" {TEXT -1 73 " =(a_1+b_1 mod 2, ... , a_n +
b_n mod 2) by definition of + in Z_2" }}{PARA 0 "" 0 "" {TEXT -1 37 "H
ence a_i + b_i mod 2 = 0 for all i. " }}{PARA 0 "" 0 "" {TEXT -1 0 ""
}}{PARA 0 "" 0 "" {TEXT -1 58 "Let 1 " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT
-1 102 "Begining in 1984, HBO scrambled its signal. To unscramble the
signal, a cable system operator or dish" }}{PARA 0 "" 0 "" {TEXT -1
373 "owner who pays a monthly fee has to have a password that is chang
ed monthly. The password is transmitted along with the scrambled sign
al 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. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA
0 "" 0 "" {TEXT -1 203 "Let us say that the password for this month is
p. Each authorized user of the service is assigned a sequence unique
ly associated with him or her. Let us call these the keys and label t
hem k1, k2, ....." }}{PARA 0 "" 0 "" {TEXT -1 92 "HBO transmits the pa
ssword p, the scrambled signal, and the encryted sequences k1*p,k2*p,.
.." }}{PARA 0 "" 0 "" {TEXT -1 190 "(that is, one sequence for each au
thorized user!). A microprocessor in each subscriber's decoding box s
imply adds its key, say ki to each of the encrypted sequences. That i
s, it calculates" }}{PARA 0 "" 0 "" {TEXT -1 27 "ki* (k1*p), ki * (k2*
p),..." }}{PARA 0 "" 0 "" {TEXT -1 301 "The microprocessor then compar
es each of these calculated sequences with the correct password p. Wh
en one of the sequences matches p, the microprocessor can unscramble t
he signal. Notice that the correct password p will be produced precis
ely when it encounters ki*(ki*p) = (ki*ki)*p=00...0*p=p, and " }}
{PARA 0 "" 0 "" {TEXT -1 49 "and ki*(kj*p) is not p when ki is not equ
al to kj" }}{PARA 0 "" 0 "" {TEXT -1 104 "since a_1 a_2 ... a_n * b_1 \+
b_2 ... b_n = 00 ... 0 if and only if the two binary sequences are ide
ntical" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "
" }{TEXT 263 150 "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?" }}{PARA 0 "" 0 "" {TEXT 264 1 " " }}
{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 159 "If a sub
scriber with key ki fails to pay the monthly bill, HBO can terminate t
he subscriber's service by not transmitting the sequence ki*p for the \+
next month." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT
-1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "
" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 87 "To illustrate, let us say tha
t the password for this month is p=10101100 and your key " }}{PARA 0
"" 0 "" {TEXT -1 71 "is 00111101. One of the sequences transmitted by
HBO is key+p which is" }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}}{EXCHG
{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "[1,0,1,0,1,1,0,0]+[0,0,1,1,1,1,0,1]
mod 2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7*\"\"\"\"\"!F%F$F%F%F%F$"
}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "10010001" }}}{EXCHG {PARA 0 ""
0 "" {TEXT -1 173 "Your decoder box adds you key 00111101 to all the s
equences received. Eventually it finds the sequence obtained by addin
g the password to your key (10010001) and calculates" }}}{EXCHG {PARA
0 "> " 0 "" {MPLTEXT 1 0 42 "[0,0,1,1,1,1,0,1]+[1,0,0,1,0,0,0,1] mod 2
;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7*\"\"\"\"\"!F$F%F$F$F%F%" }}}
{EXCHG {PARA 0 "" 0 "" {TEXT -1 132 "to obtain the password p. This p
assword then permits the decoder to unscramble the TV signal and the b
ox allows HBO to be received." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "
" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}
{PARA 0 "" 0 "" {TEXT -1 305 "One might suspect that a computer hacker
could find the password by simply trying a large number of possible k
eys until one \"unlocks\" the password and provides him with HBO. How
ever, with sequences of length 56, which HBO uses, there are 2^(56) po
ssible keys (2 choices for each a_i and i runs up to 56)," }}{PARA 0 "
" 0 "" {TEXT -1 81 "though perhaps only a few million are used by HBO \+
to unlock its monthly password." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}
{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA
0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "e
valf(2^56);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+/%fd?(\"\"(" }}}
{EXCHG {PARA 0 "" 0 "" {TEXT -1 159 "The number 2^56 is so large (it e
xceeds 72 quadrillion!) that even if one tries a billion possible keys
, the chance of finding one that works is essentially 0." }}}{EXCHG
{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 266 187 "Question 5: If your key
is 11111111, and the sequence that will unlock the password this mont
h is 01010101, use your key to unlock the password (ie what is the pas
sword for this month?)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "
" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 ""
0 "" {TEXT -1 0 "" }{TEXT 267 319 "Post the answers to these questions
on the bulletin board under WebCT (you can access this from any compu
ter with internet connection from anywhere!) under the Forum - Maple D
emos - by Monday at 9:50am. (I'd be happy to help in Friday office hou
rs, by e-mail or in Monday morning office hours 9:30-10 if you get stu
ck!)" }}}}{MARK "0 0 0" 13 }{VIEWOPTS 1 1 0 1 1 1803 }