8.2 Principles of Cryptography Flashcards
Qué es plaintext y ciphertext?
El mensaje original se conoce como plaintext, al encriptarlo con un algoritmo de encriptación pasa a ser un ciphertext.
Qué hace que un intruso no pueda descifrar el mensaje si las técnicas son conocidas?
El mensaje original se conoce como plaintext, al encriptarlo con un algoritmo de encriptación pasa a ser un ciphertext. En general, las técnicas de encriptación son conocidas, lo que hace que un intruso no pueda decifrar el mensaje aún conociendo el método de encriptación son las keys.
Qué tipos de sistema de encriptación hay?
Hay dos tipos de sistemas: symmetric key systems y public key systems.
Block Cipher
Block Ciphers: se usa en varios protocolos de Internet tipo SSL (for secure TCP), PGP (for secure email) y IPsec. El mensaje a encriptar se procesa en bloques de k bits y cada bloque se encripta independientemente. El número de posibles mapeos es 2^k!
Block Cipher Chaining
Cipher-Block Chaining: Un problema de los block ciphers es que puede que dos o más bloques sean idénticos, o sea que habría idénticos ciphertext y a partir de ahi, el intruso podría adivinar o desencriptar el resto. Para solucionarlo lo que se hace es que el sender cree un número de k-bits random r(i) para cada bloque i y calcule c(i)=KS(m(i)⊕r(i)) [m(i) es el bloque del plaintext, c(i) es el bloque del ciphertext], a partir de ahi por más que sea el mismo texto el ciphertext va a ser distinto.
Ahora por cada cipher bit, se tiene que mandar un random bit ⇒ se duplica el bandwidth necesario; por lo que usualmente lo que se utiliza es la técnica Cipher Block Chaining (CBC) → se envía un único número random con el primer mensaje y luego el sender y el receiver arman los bloques con el número subsecuente:
- Before encrypting the message (or the stream of data), the sender generates a random k-bit
string, called the Initialization Vector (IV) . Denote this initialization vector by c(0). The sender
sends the IV to the receiver in cleartext. - For the first block, the sender calculates m(1)⊕c(0), that is, calculates the exclusive-or of the first block of cleartext with the IV. It then runs the result through the block-cipher algorithm to get the corresponding ciphertext block; that is, c(1)=KS(m(1)⊕c(0)) . The sender sends the encrypted block c(1) to the receiver.
- For the ith block, the sender generates the ith ciphertext block from c(i)=KS(m(i)⊕c(i−1)) .