def __ciphertext_fission(ciphertext):
    """
        Input: ciphertext - String

        Output: ciphertexts - List of lists of lists (List of 4x4 Matrices)

        Splits ciphertext into 128 bits (16 characters) chunks and each of these
        chunks is then transformed into matrix with decimal values. These matrices
        are stored into list, creating a list of matrices.
    """
    assert len(ciphertext) % 2 == 0
    ciphertexts = []
    hexadecimal = ''
    for _ in range(int(len(ciphertext) / 32)):
        matrix = [[], [], [], []]
        for i in range(32):
            hexadecimal += ciphertext[i]
            if len(hexadecimal) == 2:
                matrix[int(i / 8)].append(int(hexadecimal, 16))
                hexadecimal = ''
        ciphertexts.append(matrix)
        ciphertext = ciphertext[32:]
    return ciphertexts
