Answered step by step
Verified Expert Solution
Question
1 Approved Answer
1 . Fix the python code for aes / s - aes s _ box = [ [ 0 x 0 9 , 0 x
Fix the python code for aessaes sbox xxxAxD xDxxxA xAxDxx xxAxDx # Fixed bit key for SAES key xxxx def shiftrowsstate: # Swap second and third rows state state state state # Swap third and fourth rows state state state state return state def mixcolumnsstate: # Multiply each column by for i in range: stateistateistatei & x and xB & xFF # XOR each column with the previous column state state state state state state return state def saesencryptplaintext: # Convert plaintext characters to ASCII values plaintextascii ordchar for char in plaintext # Pad the plaintext if its length is not a multiple of while lenplaintextascii: plaintextascii.append encryptedblocks for i in range lenplaintextascii: block plaintextasciii:i if lenblock: block.extend lenblock # Initial round key addition state byte keyidx for idx, byte in enumerateblock # SAES rounds for in range: # Substitute each byte with its corresponding value in the sbox state sboxbyte byte & xF for byte in state state shiftrowsstate state mixcolumnsstate # Add the round key state byte keyidx for idx, byte in enumeratestate # Final round without MixColumns state sboxbyte byte & xF for byte in state state shiftrowsstate # Add the final round key state byte keyidx for idx, byte in enumeratestate encryptedblocks.extendstate return encryptedblocks def saesdecryptciphertext: # Decryption in SAES is similar to encryption for this simplified version return saesencryptciphertext # Input plaintext as a string plaintext inputEnter plaintext: # Encrypt plaintext encrypted saesencryptplaintext printEncrypted:joinfbyte:X for byte in encrypted # Decrypt ciphertext decrypted saesdecryptencrypted # Remove padded zeros and convert ASCII values to characters for the decrypted result decryptedtext joinchrbyte for byte in decrypted if byte printDecrypted: decryptedtext Apply this for aessaes python code for encrypting and decrypting appalgorithmsalgoname.py # imports # the function should get the parameters and return the result def algofunctionparam param: # Your algorithm implementation here result param param # the return should be a dict retname':value, e: return result # please document your codea small note on important parts # you can use whatever you want in this file just make sure # that there is a function that i can pass params and get back a dict of results
Fix the python code for aessaes
sbox
xxxAxD
xDxxxA
xAxDxx
xxAxDx
# Fixed bit key for SAES
key xxxx
def shiftrowsstate:
# Swap second and third rows
state state state state
# Swap third and fourth rows
state state state state
return state
def mixcolumnsstate:
# Multiply each column by
for i in range:
stateistateistatei & x and xB & xFF
# XOR each column with the previous column
state state
state state
state state
return state
def saesencryptplaintext:
# Convert plaintext characters to ASCII values
plaintextascii ordchar for char in plaintext
# Pad the plaintext if its length is not a multiple of
while lenplaintextascii:
plaintextascii.append
encryptedblocks
for i in range lenplaintextascii:
block plaintextasciii:i
if lenblock:
block.extend lenblock
# Initial round key addition
state byte keyidx for idx, byte in enumerateblock
# SAES rounds
for in range:
# Substitute each byte with its corresponding value in the sbox
state sboxbyte byte & xF for byte in state
state shiftrowsstate
state mixcolumnsstate
# Add the round key
state byte keyidx for idx, byte in enumeratestate
# Final round without MixColumns
state sboxbyte byte & xF for byte in state
state shiftrowsstate
# Add the final round key
state byte keyidx for idx, byte in enumeratestate
encryptedblocks.extendstate
return encryptedblocks
def saesdecryptciphertext:
# Decryption in SAES is similar to encryption for this simplified version
return saesencryptciphertext
# Input plaintext as a string
plaintext inputEnter plaintext:
# Encrypt plaintext
encrypted saesencryptplaintext
printEncrypted:joinfbyte:X for byte in encrypted
# Decrypt ciphertext
decrypted saesdecryptencrypted
# Remove padded zeros and convert ASCII values to characters for the decrypted result
decryptedtext joinchrbyte for byte in decrypted if byte
printDecrypted: decryptedtext
Apply this for aessaes python code for encrypting and decrypting
appalgorithmsalgoname.py
# imports
# the function should get the parameters and return the result
def algofunctionparam param:
# Your algorithm implementation here
result param param
# the return should be a dict retname':value, e:
return result
# please document your codea small note on important parts
# you can use whatever you want in this file just make sure
# that there is a function that i can pass params and get back a dict of results
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access with AI-Powered Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started