  A practical quantum key distribution (QKD) protocol necessarily runs in
finite time and, hence, only a finite amount of communication is exchanged.
This is in contrast to most of the standard results on the security of QKD,
which only hold in the limit where the number of transmitted signals approaches
infinity. Here, we analyze the security of QKD under the realistic assumption
that the amount of communication is finite. At the level of the general
formalism, we present new results that help simplifying the actual
implementation of QKD protocols: in particular, we show that symmetrization
steps, which are required by certain security proofs (e.g., proofs based on de
Finetti's representation theorem), can be omitted in practical implementations.
Also, we demonstrate how two-way reconciliation protocols can be taken into
account in the security analysis. At the level of numerical estimates, we
present the bounds with finite resources for ``device-independent security''
against collective attacks.
