ent subgroups of (C, +) and possible cosets of C' in C. Quantum error correction Table 24.7 Elements for Exercise 24.4. Number Element Number Element 0000_000 1000_110 0001_111 1001_001 0010_011 1010_101 0011_100 1011_010 0100_101 1100_011 0101_010 1101_100 0110_110 1110_000 0111_001 1111_111 24.5 (T): Given the 2 x 2 matrix, with coefficients having the bit values Uij=0,1 and a 2-qubit state /x), where x is a two-bit codeword, determine a quantum circuit that achieves the transformation uniquely based on CNOT gates. Show that a more compact circuit can be elabo- rated with CCNOT gates. 24.6 (T): Given a linear block code C with codewords any y such that y E C - (dual of C), we have and otherwise is the binary scalar product. 24.7 (M): Given the parity-check matrix of the C=(7,4) Hamming code, determine the codewords of the corresponding dual code, as gener- ated by the matrix G = = T. Then determine the two codewords [0),(I) of the CSS(C, C1) code. Classical and quantum cryptography This final chapter concerns cryptography, the principle of securing information against access or tampering by third parties. Classical cryptography refers to the manipulation of classical bits for this purpose, while quantum cryptography can be viewed as doing the same with qubits. I describe these two approaches in the same chapter, as in my view the field of cryptography should be understood as a whole and appreciated within such a broader framework, as opposed to focusing on the specific applications offered by the quantum approach. I, thus, begin by introducing the notions of message encryption, message decryption, and code breaking, the action of retrieving the message information contents without knowledge of the code's secret algorithm or secret key. I then consider the basic algorithms to achieve encryption and decryption with binary numbers, which leads to the early IBM concept of the Lucifer cryptosystem, which is the ancestor of the first data encryption standard (DES). The principle of double-key encryption, which allevi