= (x >> n) | (x << 1) ^ (if bit_to_bool(y[3]) then xt2(xt2(xt2(x))) else 0x00) ^ (if bit_to_bool(x[7]) then 0x1b else 0x00) ^ (if bit_to_bool(y[3]) then xt2(xt2(xt2(x))) else 0x00) ^ (if bit_to_bool(y[2]) then xt2(xt2( x)) else 0x00) } val xt3 : bits(8) = 0; let S = sm4_subword(B); x4 = sm4_round(x0, S); B = rk4 ^ rk5 ^ ck(4 * rnd + 1); S = sm4_subword(B); rk5 = ROUND_KEY(rk1, S); B =
strategies