// Numbas version: finer_feedback_settings
{"name": "Rijndael Round - Partial MixColumns", "extensions": ["numbertheory"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "Rijndael Round - Partial MixColumns", "tags": [], "metadata": {"description": "
The purpose of this question is to ask the students to go through one Rijndael round from the AES algorithm.
", "licence": "Creative Commons Attribution-ShareAlike 4.0 International"}, "statement": "We want to encrypt a message using AES.
\nThe output of the Rijndael round $\\var{round-1}$ is $\\var{AH}$.
\nRun the next Rijndael round. All your answers must be given in hexadecimal.
", "advice": "Before we can apply a Rijndael Round, we need to find the key applicable to that round according to the AES key schedule. Then we will apply the steps in order:
\n\n- \n
The SubBytes step
\n\n \n- \n
The ShiftRows step
\n\n \n- \n
The MixColumns step
\n\n \n- \n
The AddRoundKey
\n \n
\nApplying AES key schedule to find the key
\nIn order to find the key for this round, we start from the key from the previous round: $\\var{Kiprev}$.
\nComputing $W(\\var{4*(round)})$
\nThe formula is $W(\\var{4*(round)}) = W(\\var{4*(round-1)})\\oplus T(W(\\var{4*(round)-1}))$. From the previous key we know that $W(\\var{4*(round-1)}) = \\var{wim4}$ and $W(\\var{4*(round)-1}) = \\var{wim1}$.
\nThen we apply the following steps:
\n\n- Shift to the left
\n- $\\var{tohexvector(wis1)}$
\n- S-Box Substitution
\n- $\\var{tohexvector(wis2)}$
\n- Find the round constant: $00000010^{\\var{round-1}} = \\var{rib}$.
\n- x-or this round constant with the first coordinate:
\n- $\\var{tohexvector(wis3)}$
\n
\nThus $T(W(\\var{4*(round)-1}))=\\var{tohexvector(wis3)}$
\nFinally $W(\\var{4*(round)})$ is obtained by $\\oplus$ this vector $\\var{tohexvector(wis3)}$ with $W(\\var{4*(round-1)})$: $ W(\\var{4*(round)}) = \\var{wim4}\\oplus \\var{tohexvector(wis3)} = \\var{tohexvector(vector(wi))}$.
\nComputing $W(\\var{4*round+1})$ to $W(\\var{4*(round)+3})$.
\nWe just x-or iteratively:
\n\n- $W(\\var{4*(round)+1}) = W(\\var{4*(round)}) \\oplus W(\\var{4*(round-1)+1}) = \\var{tohexvector(vector(wi))}\\oplus\\var{wim3} = \\var{tohexvector(vector(wip1))}$.
\n- $W(\\var{4*(round)+2}) = W(\\var{4*(round)+1}) \\oplus W(\\var{4*(round-1)+2}) = \\var{tohexvector(vector(wip1))}\\oplus\\var{wim2} = \\var{tohexvector(vector(wip2))}$.
\n- $W(\\var{4*(round)+3}) = W(\\var{4*(round)+2}) \\oplus W(\\var{4*(round-1)+3}) = \\var{tohexvector(vector(wip2))}\\oplus\\var{wim1} = \\var{tohexvector(vector(wip3))}$.
\n
\nThe new Key
\nthe new key is $[W(\\var{4*(round)}), W(\\var{4*(round)+1}), W(\\var{4*(round)+2}), W(\\var{4*(round)+3})]=\\var{latex(hexmatrixdisplay(KiH))}$
\nThe SubBytes step
\nThis step is a substitution step: we take every element of the matrix $\\var{AH}$ and we convert it using the substitution table. Let us do it with the first element:
\nThe element, {Elmt1}, is split in two parts. The left part, {Lhs} gives the row and the right part {Rhs} the column of the cell to look up in the S-box. Converted to decimals, we look up the S-Box in the Row {floor(A[0][0]/16)} and the column {mod(A[0][0],16)}. This gives us {BH[0][0]}.
\nSimilarly, we replace the second element, {tohexa2(floor(A[0][1]))}, with the element on Row {tohexadecimal(floor(A[0][1]/16))} and Column {tohexadecimal(floor(mod(A[0][1],16)))} of the S-Box, which is {BH[0][1]}.
\nAfter applying this procedure to each element in the matrix $\\var{AH}$ we get the matrix $\\var{latex(hexmatrixdisplay(BH))}$.
\nThe ShiftRows step
\nIn this step the rows of the matrix are shifted to the left.
\n\n- The first row remains untouched: $\\var{latex(hexmatrixdisplay([CH[0]]))}$.
\n- The second row is shifted by 1 byte to the left: $\\var{latex(hexmatrixdisplay([CH[1]]))}$.
\n- The third row is shifted by 2 bytes to the left: $\\var{latex(hexmatrixdisplay([CH[2]]))}$.
\n- The fourth row is shifted by 3 bytes to the left: $\\var{latex(hexmatrixdisplay([CH[3]]))}$.
\n
\nThe resulting matrix is {hexmatrixdisplay(CH)}
\nThe MixColumns step
\nIn the MixColumn step, we multiply the matrices $\\var{MMc}$ with $\\var{latex(hexmatrixdisplay(CH))}$. Let us find the entries $A_{1,1}$ and $A_{3,2}$.
\n$A_{1,1}$ is obtained by multiplying the first row of the first matrix, $\\var{transpose(MMC[0..3][0])}$, with the first column of the second matrix, $\\var{latex(hexmatrixdisplay([CH[0..3][0]]))}$.
\nWe apply the operation in GF(16), and so we have to first write each element as a polynomial. Polynomial multiplication is done $\\pmod{x^8+x^4+x^3+x+1}$. Addition is XOR, and so the first element is given by:
{mmcop}
\nThe result of this operation is $\\var{mmcopres}$, which translated back to hexadecimal gives {DH[0][0]}.
\n$A_{3,2}$ is obtained by multiplying the third row of the first matrix, $\\var{transpose(MMC[0..3][2])}$ with the second column of the second matrix, $\\var{latex(hexmatrixdisplay([CH[0..3][2]]))}$. Like before we rewrite every element as a polynomial, and then proceed with the calculations: {mmcop2}.
\nThe result of the operation is $\\var{mmcopres2}$, which translated back to hexadecimal gives {DH[2][1]}.
\nThe AddRoundKey
\nThis step consists in combining the message and the key with a XOR operation. Let's do that with the first elements of the matrices, {DH[0][0]} and the key {KiH[0][0]}.
\nFirst we write both numbers in binary form, and apply the XOR operation on each index;
\n{roundkeyop}
\nApplying this operation for every elements of the matrices $\\var{latex(hexmatrixdisplay(DH))}$ and $\\var{latex(hexmatrixdisplay(KiH))}$ give the output $\\var{latex(hexmatrixdisplay(FH))}$.
", "rulesets": {}, "extensions": ["numbertheory"], "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"PH": {"name": "PH", "group": "Hexadecimals", "definition": "latex(hexmatrixdisplay(tohex(P)))", "description": "The message to encrypt, in hexadecimal form.
", "templateType": "anything", "can_override": false}, "A0": {"name": "A0", "group": "Encryption", "definition": "matrix(addroundkey(P,K))", "description": "The matrix obtained after the first step, before the first Rijndael round.
", "templateType": "anything", "can_override": false}, "KH": {"name": "KH", "group": "Hexadecimals", "definition": "latex(hexmatrixdisplay(tohex(K)))", "description": "The starting key for AES, in hexadecimal form.
", "templateType": "anything", "can_override": false}, "K": {"name": "K", "group": "Encryption", "definition": "matrix(repeat(repeat(random(0..255),4),4))", "description": "Initial Key
", "templateType": "anything", "can_override": false}, "Ki": {"name": "Ki", "group": "Key Schedule", "definition": "iterate([matrix(keyschedule(M,i+1)),i+1],[M,i],[K,0],10)", "description": "The list of keys in the key schedule, paired with their index in the schedule.
", "templateType": "anything", "can_override": false}, "P": {"name": "P", "group": "Encryption", "definition": "matrix(repeat(repeat(random(0..255),4),4))", "description": "Unencrypted message
", "templateType": "anything", "can_override": false}, "AH": {"name": "AH", "group": "Hexadecimals", "definition": "latex(hexmatrixdisplay(tohex(A)))", "description": "The matrix $A$ in hexadecimal form.
", "templateType": "anything", "can_override": false}, "B": {"name": "B", "group": "Encryption", "definition": "map(bytesub(x),x,A)", "description": "$B$ is obtained from $A$ by applying the subbyte operation (first step of the Rijndael round).
", "templateType": "anything", "can_override": false}, "BH": {"name": "BH", "group": "Hexadecimals", "definition": "tohex(B)", "description": "The matrix $B$ in hexadecimal form.
", "templateType": "anything", "can_override": false}, "C": {"name": "C", "group": "Encryption", "definition": "matrix(shiftrow(B))", "description": "$C$ is obtained from $B$ by applying a shiftrows operation (second step of the Rijndael round).
", "templateType": "anything", "can_override": false}, "CH": {"name": "CH", "group": "Hexadecimals", "definition": "tohex(C)", "description": "The matrix $C$ in hexadecimal form.
", "templateType": "anything", "can_override": false}, "D": {"name": "D", "group": "Encryption", "definition": "matrix(mixcolumns(C))", "description": "$D$ is obtained from $C$ after the mixcolumn operation (third step of Rijndael round).
", "templateType": "anything", "can_override": false}, "DH": {"name": "DH", "group": "Hexadecimals", "definition": "tohex(D)", "description": "The matrix $D$ in hexadecimal form.
", "templateType": "anything", "can_override": false}, "F": {"name": "F", "group": "Encryption", "definition": "matrix(addroundkey(D,Ki[round][0]))", "description": "$F$ is obtained from $D$ by adding it to the current key (fourth step of the Rijndael operation).
", "templateType": "anything", "can_override": false}, "FH": {"name": "FH", "group": "Hexadecimals", "definition": "tohex(F)", "description": "The matrix $F$ in hexadecimal form.
", "templateType": "anything", "can_override": false}, "Ai": {"name": "Ai", "group": "Encryption", "definition": "iterate([matrix(rijndael(M,Ki[i][0])),i],[M,i],[A0,1],9)", "description": "The iterates of all Rijndael rounds of the AES algorithm.
", "templateType": "anything", "can_override": false}, "A": {"name": "A", "group": "Encryption", "definition": "Ai[round][0]", "description": "The matrix obtained after {round} Rijndael rounds.
", "templateType": "anything", "can_override": false}, "round": {"name": "round", "group": "Encryption", "definition": "random(3..8)", "description": "The Rijndael round we ask the students to implement.
", "templateType": "anything", "can_override": false}, "Kiprev": {"name": "Kiprev", "group": "Hexadecimals", "definition": "latex(hexmatrixdisplay(tohex(Ki[round-1][0])))", "description": "The key obtained from the key schedule after {round-1} rounds of Rijndael, in hexadecimal form.
", "templateType": "anything", "can_override": false}, "KiH": {"name": "KiH", "group": "Hexadecimals", "definition": "tohex(Ki[round][0])", "description": "The key obtained from the key schedule after {round} rounds of Rijndael, in hexadecimal form.
", "templateType": "anything", "can_override": false}, "Elmt1": {"name": "Elmt1", "group": "Advice", "definition": "Lhs+Rhs", "description": "First element of $A$, in hexadecimal form.
", "templateType": "anything", "can_override": false}, "Lhs": {"name": "Lhs", "group": "Advice", "definition": "tohexadecimal(floor(A[0][0]/16))", "description": "Left part of the first element of the matrix $A$/
", "templateType": "anything", "can_override": false}, "Rhs": {"name": "Rhs", "group": "Advice", "definition": "tohexadecimal(floor(mod(A[0][0],16)))", "description": "Right part of the first element of the matrix $A$/
", "templateType": "anything", "can_override": false}, "key": {"name": "key", "group": "Advice", "definition": "floor(Ki[round][0][0][0])", "description": "Key to apply on the first element in the addroundkey step.
", "templateType": "anything", "can_override": false}, "el": {"name": "el", "group": "Advice", "definition": "floor(D[0][0])", "description": "The first element to apply the key in the addroundkey step.
", "templateType": "anything", "can_override": false}, "elk": {"name": "elk", "group": "Advice", "definition": "floor(F[0][0])", "description": "The first element after the key is applied in the addroundkey step.
", "templateType": "anything", "can_override": false}, "keybin": {"name": "keybin", "group": "Advice", "definition": "createrow(key,'')", "description": "", "templateType": "anything", "can_override": false}, "elkbin": {"name": "elkbin", "group": "Advice", "definition": "createrow(elk,'=')", "description": "", "templateType": "anything", "can_override": false}, "roundkeyop": {"name": "roundkeyop", "group": "Advice", "definition": "html('\")", "description": "", "templateType": "anything", "can_override": false}, "elbin": {"name": "elbin", "group": "Advice", "definition": "createrow(el,'\u2295')", "description": "", "templateType": "anything", "can_override": false}, "MMc": {"name": "MMc", "group": "Advice", "definition": "matrix([[2,3,1,1],[1,2,3,1],[1,1,2,3],[3,1,1,2],])", "description": "", "templateType": "anything", "can_override": false}, "mmcopres": {"name": "mmcopres", "group": "Advice", "definition": "togf16(floor(D[0][0]))", "description": "The results of the MixColumn iteration (first element).
", "templateType": "anything", "can_override": false}, "mmcop": {"name": "mmcop", "group": "Advice", "definition": "mixColumnOperation(MMc[0],transpose(C)[0])", "description": "A Latex representation of the mix columns operation used to calculate the element in the first row, first column.
", "templateType": "anything", "can_override": false}, "mmcop2": {"name": "mmcop2", "group": "Advice", "definition": "mixColumnOperation(MMc[2],transpose(C)[1])", "description": "A Latex representation of the mix columns operation used to calculate the element in the third row, second column.
", "templateType": "anything", "can_override": false}, "mmcopres2": {"name": "mmcopres2", "group": "Advice", "definition": "togf16(floor(D[2][1]))", "description": "", "templateType": "anything", "can_override": false}, "Kiprevt": {"name": "Kiprevt", "group": "Key schedule advice", "definition": "transpose(Ki[round-1][0])", "description": "", "templateType": "anything", "can_override": false}, "wim4": {"name": "wim4", "group": "Key schedule advice", "definition": "tohexvector(Kiprevt[0])", "description": "", "templateType": "anything", "can_override": false}, "wim3": {"name": "wim3", "group": "Key schedule advice", "definition": "tohexvector(Kiprevt[1])", "description": "", "templateType": "anything", "can_override": false}, "wim2": {"name": "wim2", "group": "Key schedule advice", "definition": "tohexvector(Kiprevt[2])", "description": "", "templateType": "anything", "can_override": false}, "wim1": {"name": "wim1", "group": "Key schedule advice", "definition": "tohexvector(Kiprevt[3])", "description": "", "templateType": "anything", "can_override": false}, "wis1": {"name": "wis1", "group": "Key schedule advice", "definition": "vector(map(Kiprevt[3][mod(x+4+1,4)],x,0..3))", "description": "", "templateType": "anything", "can_override": false}, "wis2": {"name": "wis2", "group": "Key schedule advice", "definition": "map(bytesub(x),x,wis1)", "description": "", "templateType": "anything", "can_override": false}, "ri": {"name": "ri", "group": "Key schedule advice", "definition": "rconv(round)", "description": "", "templateType": "anything", "can_override": false}, "wis3": {"name": "wis3", "group": "Key schedule advice", "definition": "vector([binaryxor(wis2[0],ri),wis2[1],wis2[2],wis2[3]])", "description": "", "templateType": "anything", "can_override": false}, "wi": {"name": "wi", "group": "Key schedule advice", "definition": "map(binaryxor(x,y),[x,y],zip(wis3,Kiprevt[0]))", "description": "", "templateType": "anything", "can_override": false}, "wip1": {"name": "wip1", "group": "Key schedule advice", "definition": "map(binaryxor(x,y),[x,y],zip(wi,Kiprevt[1]))", "description": "", "templateType": "anything", "can_override": false}, "wip2": {"name": "wip2", "group": "Key schedule advice", "definition": "map(binaryxor(x,y),[x,y],zip(wip1,Kiprevt[2]))", "description": "", "templateType": "anything", "can_override": false}, "wip3": {"name": "wip3", "group": "Key schedule advice", "definition": "map(binaryxor(x,y),[x,y],zip(wip2,Kiprevt[3]))", "description": "", "templateType": "anything", "can_override": false}, "rib": {"name": "rib", "group": "Key schedule advice", "definition": "join(repeat('0',8-len(tobinary(floor(ri)))),'')+tobinary(floor(ri))", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "Hexadecimals", "variables": ["KH", "Kiprev", "KiH", "PH", "AH", "BH", "CH", "DH", "FH"]}, {"name": "Encryption", "variables": ["K", "P", "round", "A0", "A", "B", "C", "D", "F", "Ai"]}, {"name": "Key Schedule", "variables": ["Ki"]}, {"name": "Advice", "variables": ["Elmt1", "Lhs", "Rhs", "key", "el", "elk", "elbin", "keybin", "elkbin", "roundkeyop", "MMc", "mmcop", "mmcopres", "mmcop2", "mmcopres2"]}, {"name": "Key schedule advice", "variables": ["Kiprevt", "wim4", "wim3", "wim2", "wim1", "wis1", "wis2", "ri", "wis3", "wi", "wip1", "wip2", "wip3", "rib"]}], "functions": {"tohex": {"parameters": [["M", "matrix"]], "type": "list", "language": "jme", "definition": "map(map(tohexa2(floor(x)),x,y),y,list(M))"}, "fromhex": {"parameters": [["M", "list"]], "type": "matrix", "language": "jme", "definition": "matrix(map(map(fromhexadecimal(x),x,y),y,M))"}, "tohexa2": {"parameters": [["n", "integer"]], "type": "string", "language": "jme", "definition": "latex(if(length(tohexadecimal(n))<2,'0'+tohexadecimal(n),tohexadecimal(n)))"}, "createrow": {"parameters": [["v", "integer"], ["s", "string"]], "type": "html", "language": "jme", "definition": "\"{s} | \"+join(map(\"{c} | \",c,repeat('0',8-len(tobinary(v)))+split(tobinary(v),'')),\"\")+'({tohexa2(v)}) |
'"}, "togf16": {"parameters": [["n", "integer"]], "type": "anything", "language": "jme", "definition": "simplify(expression(join(map(v+'x^{i}',[i,v],enumerate(reverse(split(tobinary(n),'')))),'+')),['all'])"}, "mixColumnOperation": {"parameters": [["M", "vector"], ["A", "vector"]], "type": "anything", "language": "jme", "definition": "let(\n row, map(togf16(floor(x)),x,list(M)),\n col, map(togf16(floor(x)),x,list(A)),\n latex('\\\\begin\\{align} & '+join(map(mixcolumnrow(r,c),[r,c],zip(row,col)),'\\\\\\\\ \\\\oplus & ')+\"\\\\end\\{align}\")\n )"}, "mixcolumnrow": {"parameters": [["r", "expression"], ["c", "expression"]], "type": "string", "language": "jme", "definition": "let(\n ropen,if('+' in string(r),'(',''),\n rclose,if('+' in string(r),')\u22c5','\u22c5'),\n copen,if('+' in string(c),'(',''),\n cclose,if('+' in string(c),')',''),\n ropen+latex(r)+rclose+copen+latex(c)+cclose\n )"}, "tohexvector": {"parameters": [["V", "vector"]], "type": "string", "language": "jme", "definition": "latex(\"(\"+join(map(tohexa2(floor(x)),x,list(V)),\", \")+\")\")"}}, "preamble": {"js": "", "css": "/* see here: https://stackoverflow.com/questions/11561137/html-css-for-brackets-around-mathematical-matrix-prefer-lightweight */\n\n.hexmatrix {\n position: relative;\n }\n .hexmatrix:before, .hexmatrix:after {\n content: \"\";\n position: absolute;\n top: 0;\n border: 1px solid #000;\n width: 6px;\n height: 100%;\n }\n .hexmatrix:before {\n left: -0px;\n border-right: 0;\n }\n .hexmatrix:after {\n right: 0px;\n border-left: 0;\n }\n\ntd.hexvalue {\n font-weight: bold;\n}"}, "parts": [{"type": "gapfill", "useCustomName": true, "customName": "RoundKey", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Finding the next key
\nIn Rijndael round $\\var{round-1}$ we used the subkey $\\var{Kiprev}$.
\nFind the next key in the key schedule; that is, the key for round $\\var{round}$. Recall that for Round $\\var{round}$, the key consists of the columns $W(\\var{4round}), W(\\var{4round+1}), W(\\var{4round+2}), W(\\var{4round+3})$.
\n\n\n\n[[0]] | \n[[1]] | \n[[2]] | \n[[3]] | \n
\n\n[[4]] | \n[[5]] | \n[[6]] | \n[[7]] | \n
\n\n[[8]] | \n[[9]] | \n[[10]] | \n[[11]] | \n
\n\n[[12]] | \n[[13]] | \n[[14]] | \n[[15]] | \n
\n\n
", "gaps": [{"type": "patternmatch", "useCustomName": true, "customName": "A11", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[0][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A12", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[0][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A13", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[0][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A14", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[0][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A21", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[1][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A22", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[1][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A23", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[1][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A24", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[1][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A31", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[2][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A32", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[2][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A33", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[2][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A34", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[2][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A41", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[3][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A42", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[3][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A43", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[3][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A44", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{KiH[3][3]}", "displayAnswer": "", "matchMode": "exact"}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "Subbytes", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Running the next Rijndael Round
\nYou should now use the key that you obtained to run the next round.
\nApply the SubByte Step.
\n\n\n\n[[0]] | \n[[1]] | \n[[2]] | \n[[3]] | \n
\n\n[[4]] | \n[[5]] | \n[[6]] | \n[[7]] | \n
\n\n[[8]] | \n[[9]] | \n[[10]] | \n[[11]] | \n
\n\n[[12]] | \n[[13]] | \n[[14]] | \n[[15]] | \n
\n\n
", "gaps": [{"type": "patternmatch", "useCustomName": true, "customName": "A11", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[0][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A12", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[0][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A13", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[0][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A14", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[0][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A21", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[1][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A22", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[1][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A23", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[1][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A24", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[1][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A31", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[2][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A32", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[2][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A33", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[2][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A34", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[2][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A41", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[3][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A42", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[3][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A43", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[3][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A44", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{BH[3][3]}", "displayAnswer": "", "matchMode": "exact"}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "ShiftRows", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Apply the ShiftRows Step.
\n\n\n\n[[0]] | \n[[1]] | \n[[2]] | \n[[3]] | \n
\n\n[[4]] | \n[[5]] | \n[[6]] | \n[[7]] | \n
\n\n[[8]] | \n[[9]] | \n[[10]] | \n[[11]] | \n
\n\n[[12]] | \n[[13]] | \n[[14]] | \n[[15]] | \n
\n\n
", "gaps": [{"type": "patternmatch", "useCustomName": true, "customName": "A11", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[0][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A12", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[0][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A13", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[0][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A14", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[0][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A21", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[1][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A22", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[1][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A23", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[1][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A24", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[1][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A31", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[2][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A32", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[2][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A33", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[2][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A34", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[2][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A41", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[3][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A42", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[3][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A43", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[3][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A44", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{CH[3][3]}", "displayAnswer": "", "matchMode": "exact"}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "MixColumns", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Apply the MixColumns Step.
\n\n\n\n[[0]] | \n$\\var{DH[0][1]}$ | \n$\\var{DH[0][2]}$ | \n$\\var{DH[0][3]}$ | \n
\n\n$\\var{DH[1][0]}$ | \n$\\var{DH[1][1]}$ | \n$\\var{DH[1][2]}$ | \n$\\var{DH[1][3]}$ | \n
\n\n$\\var{DH[2][0]}$ | \n[[1]] | \n$\\var{DH[2][2]}$ | \n$\\var{DH[2][3]}$ | \n
\n\n$\\var{DH[3][0]}$ | \n$\\var{DH[3][1]}$ | \n$\\var{DH[3][2]}$ | \n$\\var{DH[3][3]}$ | \n
\n\n
", "gaps": [{"type": "patternmatch", "useCustomName": true, "customName": "A11", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{DH[0][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A32", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{DH[2][1]}", "displayAnswer": "", "matchMode": "exact"}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "AddRoundKey", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Apply the AddRoundKey Step.
\n\n\n\n[[0]] | \n[[1]] | \n[[2]] | \n[[3]] | \n
\n\n[[4]] | \n[[5]] | \n[[6]] | \n[[7]] | \n
\n\n[[8]] | \n[[9]] | \n[[10]] | \n[[11]] | \n
\n\n[[12]] | \n[[13]] | \n[[14]] | \n[[15]] | \n
\n\n
", "gaps": [{"type": "patternmatch", "useCustomName": true, "customName": "A11", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[0][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A12", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[0][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A13", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[0][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A14", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[0][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A21", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[1][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A22", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[1][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A23", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[1][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A24", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[1][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A31", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[2][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A32", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[2][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A33", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[2][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A34", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[2][3]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A41", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[3][0]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A42", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[3][1]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A43", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[3][2]}", "displayAnswer": "", "matchMode": "exact"}, {"type": "patternmatch", "useCustomName": true, "customName": "A44", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "answer": "{FH[3][3]}", "displayAnswer": "", "matchMode": "exact"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question", "contributors": [{"name": "Julien Ugon", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/3575/"}, {"name": "Guillermo Pineda", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/20075/"}]}]}], "contributors": [{"name": "Julien Ugon", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/3575/"}, {"name": "Guillermo Pineda", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/20075/"}]}