# Xifratge per blocs

En criptografia, un xifratge per blocs és un sistema de xifratge de clau simètrica que opera sobre grups de bits de llargada fixa, anomenats blocs, amb una transformació invariable. En encriptar, un xifratge per blocs podria prendre (per exemple) un bloc de 128 bits de text clar com a entrada, i produir el bloc corresponent de 128 bits de text xifrat. La transformació exacta es controla fent servir una segona entrada - la clau secreta. El desxifratge és similar: l'algorisme de desxifratge pren, en aquest exemple, un bloc de 128 bits de text xifrat juntament amb la clau secreta, i retorna el bloc original de 128 bits de text clar.
Per xifrar missatges més llargs que la longitud del bloc (128 bits en l'exemple citat), es fan servir diferents modes d'operació (s'utilitza un mode d'operació.
Els xifratges per blocs es poden comparar amb els xifratges de flux; un xifratge de flux opera sobre els dígits individuals un cada vegada, i la transformació varia durant el xifratge. La distinció entre els dos tipus no queda sempre clarament definida: un xifratge per blocs, quan es fa servir en certs modes d'operació, serveix de fet com a xifratge de flux.
Un dels primers dissenys de xifratge per blocs altament influent va ser el DES (Data Encryption Standard), desenvolupat a IBM i publicat com a standard el 1977. Un successor a DES, el AES (Advanced Encryption Standard), fou adoptat com a nou estàndard el 2001.

## Generalitats

Un sistema de xifratge per blocs consta de dos algorismes aparellats, un pel xifratge, E, i un altre pel desxifratge, E$^{-1}$. Els dos algorismes accepten dues entrades: un bloc d'entrada de mida n bits i una clau de k bits de mida, produint un bloc de sortida de n-bits. Per una clau donada, el desxifratge és la funció inversa del xifratge, de manera que
    $E_{K}^{-1}(E_{K}(M))=M$
per a qualsevol bloc M i qualsevol clau K.
Per a cada clau K, E$_K$ és una permutació (una aplicació bijectiva) sobre del conjunt de blocs d'entrada. Cada clau selecciona una permutació del conjunt de $2^{n}!$ permutacions possibles.
La longitud del bloc, n, és típicament 64 o 128 bits, encara que alguns sistemes de xifratge tenen una longitud de bloc variable. 64 bits era la llargada més comuna fins a mitjans de la dècada del 1990, quan es començaren a canviar els dissenys nous a la llargada més llarga de 128 bits. Generalment es fa servir un mode d'operació d'entre uns quants per permetre xifrar texts clars de llargades arbitràries. Cada mode té característiques diferents pel que fa a propagació d'error, facilitat d'accés aleatori i vulnerabilitat de certs tipus d'atac. Les mides de clau típiques (k) inclouen 40, 56, 64, 80, 128, 192 i 256 bits. A partir del 2006, 80 bits és la llargada de clau mínima necessària que es pren normalment per evitar atacs per la força bruta.

### Xifratge per blocs iterat

La majoria dels sistemes de xifratge per blocs es construeixen aplicant repetidament una funció més simple. Aquest enfocament es coneix com a xifratge per blocs iterat (vegeu també xifratge producte). Cada iteració s'anomena una ronda, i la funció que es repeteix s'anomena la funció de la rodona; són típics diversos nombres de rondes entre 4 i 32.
Molts sistemes de xifratge per blocs es poden classificar com a xarxes de Feistel, o, de forma més general com a xarxes de permutació-substitució. Amb freqüència es fan servir com a components les operacions aritmètiques, les operacions lògiques (de forma específica els XOR), caixes S i diverses permutacions.

## Història

Generalment es considera que el sistema de xifratge Lucifer és el primer sistema civil de xifratge per blocs, desenvolupat a IBM durant els anys 1970 sobre la base del treball fet per Horst Feistel. Una versió revisada de l'algorisme es va adoptar com un estàndard per la Federal Information Processing Standard (FIPS) del govern dels Estats Units d'Amèrica, el DES ([Data Encryption Standard). Fou escollit per l'oficina nacional d'estàndards dels Estatus Units (NBS National Bureau of Standards) després d'un concurs públic i alguns canvis interns proposats pel NBS (i, potencialment la National Security Agency (NSA)). DES fou lliurat públicament el 1976 i s'ha utilitzat àmpliament.
El DES va ser dissenyat, entre altres coses, per resistir a un tipus d'atac criptoanalitic conegut a la NSA i redescobert per IBM, encara que desconegut públicament fins que fou redescobert una altra vegada i publicat per Eli Biham i Adi Shamir durant els últims anys 1980. La tècnica s'anomena criptoanàlisi diferencial i continua sent un dels pocs atacs generals en contra dels sistemes de xifratge per blocs; la criptoanàlisi lineal n'és un altre, però pot ser que hagués estat desconegut fins i tot per a la NSA, abans de la seva publicació per Mitsuru Matsui. El DES va promoure una gran quantitat d'altres treballs i publicacions en criptografia i criptoanàlisi en la comunitat oberta i va inspirar molts dissenys nous de sistemes de xifratge.
DES té una longitud de bloc de 64 bits i una mida de clau de 56 bits. Els blocs de 64 bits esdevingueren comuns en dissenys de xifratge per blocs després del DES. La llargada de la clau depenia d'uns quants factors, incloent-hi les regulacions governamentals. Molts observadors durant els anys 1970 comentaven que la llargada clau de 56 bits utilitzada per a DES era massa curta. En passar el temps, aquest inconvenient esdevingué evident, especialment després que una màquina de propòsit especial dissenyada per trencar el DES fou presentada el 1998 per la Electronic Frontier Foundation. Una variant de DES, el Triple DES, xifra per triplicat blocs amb (normalment) dues claus diferents (2TDES), otinguent un sistema amb una clau de 112 bits i una seguretat de 80 bits. S'adoptà àmpliament com a substitució del DEC i encara el 2004 és considerat segur.
El DES ha estat substituït com a Estàndard Federal dels Estats Units per l'Advanced Encryption Standard (AES), adoptat pel NIST (National Institute of Standards and Technology) (Institut Nacional d'Estàndards i Tecnologia) el 2001 després d'un concurs públic que va durar 5 anys. El sistema de xifratge fou desenvolupat per dos criptògrafs belgues, Joan Daemen i Vincent Rijmen, i es va presentar amb el nom Rijndael. L'AES té una longitud de bloc de 128 bits i tres mides de clau possibles, 128, 192 i 256 bits. El Govern dels EUA permet a l'ús d'AES per a protegir informació classificada en sistemes aprovats per la NSA.

## Criptoanàlisi

A més a més de la criptoanàlisi lineal i la diferencial, hi ha un catàleg creixent d'atacs: criptoanàlisi diferencial truncat, criptoanàlisi diferencial parcial, criptoanàlisi integral, que inclou atacs contra el xifratge square, atac per lliscament, atac bumerang, l'atac XSL, atac per criptoanàlisi de diferencial impossible i atacs algebraics. Perquè un nou disseny de sistema de xifratge per blocs tingui alguna credibilitat, ha de presentar proves de seguretat contra els atacs coneguts.

## Els sistemes de xifratge per blocs i altres sistemes de xifratge primaris

Els sistemes de xifratge per blocs es poden fer servir per a construir altres sistemes primaris de xifratge. Perquè aquests altres sistemes siguin criptogràficament segurs cal anar amb compte de construir-los de la forma correcta.
Els xifratges de flux es poden construir utilitzant xifratges per blocs. El mode d'OFB i el mode CTR són modes del xifratge per blocs que converteixen un xifratge per blocs en un xifratge de flux.
Les funcions resum criptogràfiques es poden construir utilitzant xifratges de bloc. Vegeu funció de compressió uni ireccional per a descripcions d'uns quants d'aquests mètodes. Els mètodes s'assemblen als modes d'operació dels sistemes de xifratge per blocs normalment utilitzats per a l'encriptació.
Igual com els sistemes de xifratge per blocs es poden fer servir per a construir funcions de resum, les funcions de resum es poden fer servir per a construir sistemes de xifratge per blocs. Exemples de tals xifratges de bloc són SHACAL, BEAR i LION.
Els generadors de nombres pseudoaleatoris criptogràficament segurs (CSPRNGs) es poden construir utilitzant sistemes de xifratge per blocs.
Els codis d'autenticació de missatges (Message authentication codes MACs) es construeixen sovint a partir dels sistemes de xifratge per blocs. CBC-MAC, OMAC i PMAC són MACs d'aquest tipus.
L'encriptació autenticada també es construeix a partir de xifratges per blocs. Això vol dir fer el xifratge i el MAC alhora. És a dir proporcionar tant confidencialitat com autenticació. Els modes CCM, EAX, GCM i OCB són modes d'encriptació i autenticació d'aquest tipus.

## Vegeu també

* Criptografia
* Modes d'operació dels sistemes de xifratge per blocs
* Permutació Pseudoaleatòria
* Advanced Encryption Standard
* DES

## Referències

* M. Liskov, R. Rivest, and D. Wagner, "Tweakable Block Ciphers", Crypto 2002 PDF.

## Enllaços externs

* A list of many symmetric algorithms, the majority of which are block ciphers.
* The block cipher lounge
* What is a block cipher? Arxivat 2007-03-06 a Wayback Machine. from RSA FAQ
* Block Ciphers and Cryptanalysis (PDF). Technical Report: an introduction to mathematics of block ciphers and methods for cryptanalysis.