The present thesis deals with various methods of quantum error correction. It is divided into two parts. In the first part, dynamical decoupling methods are considered which have the task of suppressing the influence of residual imperfections in a quantum memory. Such imperfections might be given by couplings between the finite dimensional quantum systems (qudits) constituting the quantum memory, for instance. The suppression is achieved by altering the dynamics of an imperfect quantum memory with the help of a sequence of local unitary operations applied to the qudits. Whereas up to now the operations of such decoupling sequences have been constructed in a deterministic fashion, strategies are developed in this thesis which construct the operations by random selection from a suitable set. Formulas are derived which estimate the average performance of such strategies. As it turns out, randomized decoupling strategies offer advantages and disadvantages over deterministic ones. It is possible to benefit from the advantages of both kind of strategies by designing combined strategies. Furthermore, it is investigated if and how the discussed decoupling strategies can be employed to protect a quantum computation running on the quantum memory. It is shown that a purely randomized decoupling strategy may be used by applying the decoupling operations and adjusted gates of the quantum algorithm in an alternating fashion. Again this method can be enhanced by the means of deterministic methods in order to obtain a combined decoupling method for quantum computations analogously to the combining strategies for quantum memories. The second part of the thesis deals with quantum error-correcting codes and protocols for quantum key distribution. The focus is on the BB84 and the 6-state protocol making use of only one-way communication during the error correction and privacy amplification steps. It is shown that by adding additional errors to the preliminary key (a process called noisy preprocessing) followed by the use of a structured block code, higher secure key rates may be obtained. For the BB84 protocol it is shown that iterating the combined preprocessing leads to an even higher gain. In order to speed up the numerical evaluation of the key rates, results of representation theory come into play. If a coherent version of the protocol is considered, the block code used in the preprocessing stage becomes a concatenated stabilizer code which is obtained by concatenating an outer random code with an inner deterministic one. This concatenated stabilizer code is used to compute an improved lower bound on the quantum capacity of a certain quantum channel (the so-called qubit depolarizing channel).