391 else: |
391 else: |
392 mult = [2, 1, 1, 3] |
392 mult = [2, 1, 1, 3] |
393 cpy = column[:] |
393 cpy = column[:] |
394 g = self.__galois_multiplication |
394 g = self.__galois_multiplication |
395 |
395 |
396 column[0] = g(cpy[0], mult[0]) ^ g(cpy[3], mult[1]) ^ \ |
396 column[0] = ( |
|
397 g(cpy[0], mult[0]) ^ g(cpy[3], mult[1]) ^ |
397 g(cpy[2], mult[2]) ^ g(cpy[1], mult[3]) |
398 g(cpy[2], mult[2]) ^ g(cpy[1], mult[3]) |
398 column[1] = g(cpy[1], mult[0]) ^ g(cpy[0], mult[1]) ^ \ |
399 ) |
|
400 column[1] = ( |
|
401 g(cpy[1], mult[0]) ^ g(cpy[0], mult[1]) ^ |
399 g(cpy[3], mult[2]) ^ g(cpy[2], mult[3]) |
402 g(cpy[3], mult[2]) ^ g(cpy[2], mult[3]) |
400 column[2] = g(cpy[2], mult[0]) ^ g(cpy[1], mult[1]) ^ \ |
403 ) |
|
404 column[2] = ( |
|
405 g(cpy[2], mult[0]) ^ g(cpy[1], mult[1]) ^ |
401 g(cpy[0], mult[2]) ^ g(cpy[3], mult[3]) |
406 g(cpy[0], mult[2]) ^ g(cpy[3], mult[3]) |
402 column[3] = g(cpy[3], mult[0]) ^ g(cpy[2], mult[1]) ^ \ |
407 ) |
|
408 column[3] = ( |
|
409 g(cpy[3], mult[0]) ^ g(cpy[2], mult[1]) ^ |
403 g(cpy[1], mult[2]) ^ g(cpy[0], mult[3]) |
410 g(cpy[1], mult[2]) ^ g(cpy[0], mult[3]) |
|
411 ) |
404 return column |
412 return column |
405 |
413 |
406 def __aes_round(self, state, roundKey): |
414 def __aes_round(self, state, roundKey): |
407 """ |
415 """ |
408 Private method to apply the 4 operations of the forward round in |
416 Private method to apply the 4 operations of the forward round in |