  This paper considers the problem of reliable broadcast in asynchronous
authenticated systems, in which n processes communicate using signed messages
and up to t processes may behave arbitrarily (Byzantine processes). In
addition, for each message m broadcast by a correct (i.e., non-Byzantine)
process, a message adversary may prevent up to d correct processes from
receiving m. (This message adversary captures network failures such as
transient disconnections, silent churn, or message losses.) Considering such a
"double" adversarial context and assuming n > 3t + 2d, a reliable broadcast
algorithm is presented. Interestingly, when there is no message adversary
(i.e., d = 0), the algorithm terminates in two communication steps (so, in this
case, this algorithm is optimal in terms of both Byzantine tolerance and time
efficiency). It is then shown that the condition n > 3t + 2d is necessary for
implementing reliable broadcast in the presence of both Byzantine processes and
a message adversary (whether the underlying system is enriched with signatures
or not).
