The solution can be designed as follows:
Step 1: Construct the second matrix as 16 \times 16 in size and fill the values from 0 to 255 from left-to-right (each row) top-to-bottom way.
Step 2: Create the key matrix as:
Construct another matrix of size 16 \times 16 and fill it with the key such that the key is repeated multiple times in sequential manner if necessary (keys are repeated if key size is less than 256) in order to fill the entire matrix (last repeated key may be partially used).
Step 3: Create the ciphertext matrix as:
Construct another 16 X 16 matrix. Fill the ciphertext characters one-by-one into the 16×16 matrix from left-to-right (each row) top-to-bottom way.
Step: Do XOR operation between 3 matrices (i.e. second-matrix XOR key-matrix XOR ciphertext matrix) and get the plaintext matrix. Read the plaintext values from it.