If R(x) is a random function, is R(x) || R(x’) also a random function ?
R(x) is random in the true sense.
x is a bit string over 0s and 1s.
x’ is complement of x.
|| is the simple concatenation
Edit :
This R(x) is selected randomly from the family of functions {0,1}^k -> {0,1)^k. Once R(x) has been chosen, it gets fixed. Thus Same input will generate same output. Length of R(x) is fixed (k, say 32)
G(x) = R(x) || R(x’)
There is a fundamental flaw in the definition that i have given for a random function.
It should be defined as :
A random function {0,1} ^ k1 -> {0,1}^k2 is a randomly selected function from the family of all possible functions over {0,1} ^k1 -> {0,1} ^k2
Now by this definition, to prove that any function is random, we have to in turn prove that it randomly selects from the family of all such functions.
In our case assuming R(x) : {0,1}^k -> {0,1}^k to be a random function, R(x) randomly selects from the family of functions.
To prove that G(x) = R(x) || R(x’) : {0,1}^k -> {0,1}^2k is a random function we need to establish that G(x) indeed selects randomly from the family of functions over {0,1}^k -> {0,1}^2k, given that R(x) is a random function. However, it is not true as a small counter example will show that G(x) selects from a smaller subset of the family of functions.
Hence G(x) is not random, even though R(x) is