Hw1 - p. 55 # 9, 17, 20, 21 p. 60 # 6, 10, 11 p. 104 # 1,...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: p. 55 # 9, 17, 20, 21 p. 60 # 6, 10, 11 p. 104 # 1, 3, 4, 6 p. 55 #9 . p. 55 # 17 . Remark: The determinant of the encryption matrix is congruent to 24 mod 26. Since gcd( 24 , 26 ) = 2, we note that quotient of the adjoint matrix by 24 is not defined. The encryption matrix has no inverse. We wish to determine multiple values [x , y] that encrypt to fixed [s, t]. Hence, we need to solve the simultaneous equations Multiplying the first congruence by 2 and subtracting from the second, we get Since gcd( 24 , 26 ) = 2, then the second linear congruence has a solution iff 2 | (t-2s). If 2 | (t - 2s), then a second solution to the congruence differs from the first solution by a multiple of = 13, as in #9, above. Hence, taking s = 0, t = 0, so that 2 | (t - 2s), we get two solutions to Hence, [0, 0] and [13, 13] both encrypt to [0, 0]. p. 55 #20 . Use the recurrence relation to produce a fourth element, 0, in the sequence. The matrix equation at the bottom of p. 46 with m = 2, then shows that and since the 2 by 2 matrix is the identity. p. 55 #21 . From the matrix equation at the bottom of p. 46, we can solve for the values of the c's by inverting the matrix mod 3, just as we did for Hill ciphers. with(LinearAlgebra): (2) (2) (1) (1) M:=Matrix(<<1,1>|<1,0>>); C:=Matrix(<0|2>).(1/M) mod 3; p. 60, #6. Cribbing from crypto.mw, we get # Clear memory of any assigned variables restart: # create a numerical correspondence with adenosine = 1, cytosine = 2, # guanosine = 3, and thymine = 4 # The second table is the inverse of the relation defined in numb numb:=table(["a"=1,"c"=2,"g"=3,"t"=4]); alph:=table([1="a",2="c",3="g",4="t"]); affinecrypt:=proc(txt,m,n) #option trace; # these variables have scope local to the subroutine local i,crypttext,codeletter; # start with a NULL string, to which we append letters in the loop crypttext:=NULL; for i from 1 while i<=length(txt) do # find the number associated to the i-th letter in txt # shift it down since the first letter corresponds to numb[substring(txt,i)]-1; # apply the affine map mod 4 to that number %*m+n mod 4; # shift it back up again then # find the letter corresponding to the result of the affine map codeletter:=alph[%+1]; # concatenate that codeletter to what has already been encoded crypttext:=cat(crypttext,codeletter); od; # return the ciphertext (3)...
View Full Document

Page1 / 8

Hw1 - p. 55 # 9, 17, 20, 21 p. 60 # 6, 10, 11 p. 104 # 1,...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online