#OK to post homework #Joseph Koutsoutis, 02-18-2024, Assignment 9 #Note: the version of C9.txt currently on the class page can't be read #since antiPCM takes H as both an argument and local variable. #I just removed this function in my version of the file. read `C9.txt`: #1 #Here are the names and ages mod 26: #AlexVarjabedian - 19 #AuroraHiveley - 23 #GloriaLiu - 21 #HimanshuChandra - 22 #IssacLam - 18 #JosephKoutsoutis - 20 #KayleeWeatherspoon - 22 #LucyMartinez - 25 #NatalyaTer-Saakov - 24 #PabloBlanco - 21 #RameshBalaji - 19 #RyanBadi - 20 #ShauryaBaranwal - 19 #All of the ciphers looked consistent when I checked. #2 antiPCM:=proc(q,H) local k,n,i,j,M: n:=nops(H[1]): k:=n-nops(H): if [seq([op(k+1..n,H[i])],i=1..n-k)]<>[seq([0$(i-1),1,0$(n-k-i)],i=1..n-k)] then RETURN(FAIL): fi: for i from 1 to k do for j from 1 to k do if i=j then M[i,j] := 1: else M[i,j] := 0: fi: od: for j from k+1 to n do M[i,j] := -H[j-k,i] mod q: od: od: [seq([seq(M[i,j],j=1..n)],i=1..k)]: end: #3 DecodeLT := proc(q,M) local v,V,synT,T,S,n,H: n := nops(M[1]): synT,S := SynT(q, SFde(q, M)): H := PCM(q,SFde(q,M)): V := Fqn(q,n): for v in V do: T[v] := v - synT[Syn(q,H,v)] mod q: od: op(T): end: