En criptografia el xifratge, de vegades anomenat encriptatge, és el procediment gràcies al qual s'escriu un missatge emprant un codi secret o xifra de forma que la comprensió del missatge sigui impossible o, si més no difícil, a tota persona que no tingui la clau secreta per desxifrar-lo.
Al llarg de la història s'han fet servir diferents tipus de xifratge, que actualment ja no tindrien utilitat a causa de la facilitat de desxifrar els missatges amb les tècniques actuals. Són el que anomenem tècniques de xifratge clàssic. En contrast, anomenem xifratge modern les tècniques actuals, realitzades amb l'ajuda d'ordinadors i algorismes més avançats.
Encara que el xifratge pugui fer secret el contingut d'un document, cal complementar aquesta tècnica criptogràfica amb d'altres per tal de comunicar-lo de manera segura. Per verificar la integritat o per autenticar un document, es fa servir respectivament un Message authentication code (MAC) i una signatura digital. També es poden tenir en compte les tècniques d'anàlisi de trànsit que es poden aplicar a la comunicació, ja que la sola existència de comunicació genera uns patrons que poden ser objecte de tècniques de reconeixement de patrons. Per ocultar la presència de comunicacions i evitar aquest tipus de tècniques es fa servir l'esteganografia. La seguretat d'un sistema de xifratge ha de descansar sobre el secret de la clau de xifratge i no sobre el de l'algorisme. El principi de Kerckhoffs suposa que l'enemic (o la persona que vol conèixer el missatge en qüestió) coneix l'algorisme emprat.
Un sistema de xifratge s'anomena:
Els mètodes més coneguts són el DES, el Triple DES i l'AES per a la criptografia simètrica, i l'RSA per a la criptografia asimètrica, anomenada també criptografia de clau pública.
La utilització d'un sistema simètric o asimètric depèn de les tasques a complir. La criptografia asimètrica presenta dos avantatges principals: suprimeix el problema de transmissió segura de la clau, i permet la signatura electrònica. Tanmateix, no reemplaça als sistemes simètrics, ja que els temps de càlcul són clarament més curts en els sistemes simètrics que en els asimètrics.
Les operacions de xifratge i de codificació formen part de la teoria de la informació. La diferència essencial resideix en la voluntat de protegir les informacions i d'impedir a terceres persones d'accedir a les dades en el cas del xifratge. La codificació consisteix a transformar informació (de les dades) en un conjunt de paraules. Cadascuna d'aquestes paraules està constituïda de símbols. La compressió de dades és una codificació: es transformen les dades en un conjunt de paraules adequades destinades a reduir-ne la mida, però no hi ha voluntat d'amagar el contingut (encara que es faci implícitament més difícil accedir-hi).
El "codi" en el sentit criptogràfic del terme treballa al nivell de la semàntica (les paraules o les frases). Per exemple, un codi podrà substituir la paraula "avió" per un nombre. El xifratge treballa sobre components més elementals del missatge, les lletres o els bits, sense interessar-se pel significat. Un codi necessita una taula de conversió, anomenada també "diccionari" (codebook en anglès). Per això, "codificar" i "xifrar" sovint es fan servir com a sinònims malgrat aquesta diferència.
També es pot considerar que el xifratge ha de resistir un adversari «intel·ligent» que pot atacar de diverses maneres mentre que la codificació està destinada a una transmissió sobre un canal que potencialment pot patir soroll. Aquest soroll és un fenomen aleatori que no té «intel·ligència» intrínseca, però tanmateix, pot ser descrit matemàticament.
Durant el procés de xifratge/desxifratge s'estableixen una sèrie de termes i convenis per facilitar referir-se als diferents elements que hi intervenen:
Amb freqüència els processos de xifratge i desxifratge se'ls denomina encriptació i desencriptació, ambdós anglicismes dels termes anglesos encrypt i decrypt. En català, el TERMCAT els admet tots dos.
En algunes ocasions, abans de xifrar es realitza un preprocès d'adaptació del text net. En aquest procés es poden seguir diverses passes que permetin el xifratge o facin que el xifratge resultant sigui més resistent davant d'atacs per criptoanàlisis. Tots aquests canvis s'hauran de tenir en compte quan es realitzi el desxifrat per poder obtenir el text net original. Per exemple, són freqüents les següents operacions:
48 65 6C 6C 6F 20 57 6F 72 6C 64
0x48656C6C6F20576F726C64=87521618088882533792115812
"FILL
En qualsevol dels casos resultants pot ser massa petit, cosa que podria produir un text xifrat que no sigui segur. Per això, se sol aplicar un esquema de farciment (exemple:PKCS#1v1.5, el qual està ja trencat, o OAEP descrit en PKCS#1v2.0).
El xifratge s'utilitza al segle xxi per protegir les dades digitals i els sistemes d'informació. Amb l'augment de la potència de càlcul, la tecnologia d'encriptació ha esdevingut més avançada i segura. Tot i això, aquest avenç tecnològic també ha posat de manifest una possible limitació dels mètodes d'encriptació actuals.
Avui dia, l'estàndard de les claus de xifratge modernes és de fins a 2048 bits amb el sistema RSA.[2] Desxifrar una clau de xifratge de 2048 bits és gairebé impossible tenint en compte el nombre de combinacions possibles. No obstant això, la computació quàntica amenaça de canviar aquesta naturalesa segura.
La computació quàntica utilitza les propietats de la mecànica quàntica per processar grans quantitats de dades simultàniament. S'ha descobert que la computació quàntica arriba a velocitats de càlcul milers de vegades superiors a les dels superordinadors actuals.[3] Aquesta potència de càlcul suposa un repte per a la tecnologia de xifratge actual. Per exemple, el xifratge RSA utilitza la multiplicació de nombres primers molt grans per crear un número semiprimer per a la vostra clau pública. Per desxifrar aquesta clau sense la vostra clau privada, cal calcular aquest número semiprimer, el que pot portar molt de temps amb els ordinadors moderns. Un superordinador trigaria entre setmanes i mesos a factoritzar aquesta clau. No obstant això, la computació quàntica pot utilitzar algorismes quàntics per factoritzar aquest nombre semiprimer al mateix temps que triguen els ordinadors normals a generar-lo. Això faria que totes les dades protegides per l'actual xifrat de clau pública fossin vulnerables als atacs de la computació quàntica.[4] Altres tècniques de xifrat com la criptografia de corba el·líptica i el xifrat de clau simètrica també són vulnerables a la computació quàntica.
Tot i que la computació quàntica podria ser una amenaça per a la seguretat del xifratge en el futur, la computació quàntica, tal com està plantejada actualment, encara és molt limitada. La computació quàntica actualment no està disponible comercialment, no pot manejar grans quantitats de codi i només existeix com a dispositius de càlcul, no com a ordinadors.[5] A més, els avenços de la computació quàntica també es poden utilitzar a favor del xifratge. L'Agència de Seguretat Nacional (NSA) dels EUA està preparant estàndards d'encriptació postquàntica per al futur.[6] El xifratge quàntic promet un nivell de seguretat que pot contrarestar l'amenaça de la computació quàntica.[5]