public static byte[] decryptBloc(byte[] in) {
		byte[] tmp = new byte[in.length];

		byte[][] state = new byte[4][Nb];

		for (int i = 0; i < in.length; i++)
			state[i / 4][i % 4] = in[i%4*4+i/4];

		state = AddRoundKey(state, w, Nr);
		for (int round = Nr-1; round >=1; round--) {
			state = InvSubBytes(state);
			state = InvShiftRows(state);
			state = AddRoundKey(state, w, round);
			state = InvMixColumns(state);
			
		}
		state = InvSubBytes(state);
		state = InvShiftRows(state);
		state = AddRoundKey(state, w, 0);

		for (int i = 0; i < tmp.length; i++)
			tmp[i%4*4+i/4] = state[i / 4][i%4];

		return tmp;
	}