def _key_derivation(k_1, round_):
    """Subkey derivation function f_i

    >>> _key_derivation([0] * 8, 0)
    [0, 0, 0, 0, 0, 0, 0, 0]
    >>> _key_derivation([0] * 8, 1)
    [0, 193, 0, 165, 0, 81, 0, 197]
    >>> _key_derivation([0] * 8, 2)
    [0, 130, 0, 74, 0, 162, 0, 138]
    >>> _key_derivation([1] * 8, 2)
    [1, 131, 1, 75, 1, 163, 1, 139]
    """
    def g_0(x):
        return (x + 193 * round_) % 256

    def g_1(x):
        return (x + 165 * round_) % 256

    def g_2(x):
        return (x + 81 * round_) % 256

    def g_3(x):
        return (x + 197 * round_) % 256

    k_1 = bytearray(k_1)

    key = [k_1[0], g_0(k_1[1]), k_1[2], g_1(k_1[3]),
           k_1[4], g_2(k_1[5]), k_1[6], g_3(k_1[7])]
    return key