Adaptiv attack med vald chiffertext

En adaptiv vald chiffertextattack (förkortat CCA2 ) är en interaktiv form av vald chiffertextattack där en angripare först skickar ett antal chiffertexter som ska dekrypteras utvalda adaptivt, och sedan använder resultaten för att särskilja en målchiffertext utan att konsultera oraklet på utmaningens chiffertext. I en adaptiv attack tillåts angriparen dessutom att ställa adaptiva frågor efter att målet avslöjats (men målfrågan är inte tillåten). Den utökar den likgiltiga (icke-adaptiva) attacken med vald chiffertext (CCA1) där det andra steget av adaptiva frågor inte är tillåtet. Charles Rackoff och Dan Simon definierade CCA2 och föreslog ett system som bygger på den icke-adaptiva CCA1-definitionen och systemet av Moni Naor och Moti Yung (vilket var den första behandlingen av immunitet för vald chiffertextattack för system med offentliga nyckel).

I vissa praktiska sammanhang är målet med denna attack att gradvis avslöja information om ett krypterat meddelande eller om själva dekrypteringsnyckeln. För system med offentliga nyckel är adaptiva-valda chiffertexter i allmänhet endast tillämpliga när de har egenskapen att chiffertexten är formbarhet - det vill säga en chiffertext kan modifieras på specifika sätt som kommer att ha en förutsägbar effekt på dekrypteringen av det meddelandet.

Praktiska attacker

Adaptiv-vald-chiffertext-attacker ansågs kanske vara ett teoretiskt problem, men inte ha manifesterats i praktiken, förrän 1998, när Daniel Bleichenbacher (då av Bell Laboratories ) demonstrerade en praktisk attack mot system som använder RSA-kryptering i samverkan med PKCS#1 v1- kodningsfunktion, inklusive en version av Secure Sockets Layer -protokollet (SSL) som används av tusentals webbservrar vid den tiden.

Bleichenbacher-attackerna, även känd som miljonmeddelandeattacken, utnyttjade brister i PKCS #1-funktionen för att gradvis avslöja innehållet i ett RSA-krypterat meddelande. För att göra detta krävs att flera miljoner testchiffertexter skickas till dekrypteringsenheten (t.ex. SSL-utrustad webbserver). Rent praktiskt betyder det att en SSL-sessionsnyckel kan exponeras inom en rimlig tid, kanske en dag eller mindre.

Med små variationer finns denna sårbarhet fortfarande i många moderna servrar, under det nya namnet "Return Of Bleichenbacher's Oracle Threat" (ROBOT).

Förhindra attacker

För att förhindra adaptiv-vald-chiffertext-attacker är det nödvändigt att använda ett krypterings- eller kodningsschema som begränsar chiffertextens formbarhet och ett bevis på systemets säkerhet. Efter den teoretiska och grundläggande utvecklingen av CCA-säkra system har ett antal system föreslagits i Random Oracle-modellen: den vanligaste standarden för RSA-kryptering är Optimal Asymmetric Encryption Padding (OAEP). Till skillnad från improviserade scheman som stoppningen som användes i de tidiga versionerna av PKCS#1, har OAEP visat sig vara säkert i den slumpmässiga orakelmodellen , OAEP inkorporerades i PKCS#1 från och med version 2.0 publicerad 1998 som det nu rekommenderade kodningsschemat, med det äldre systemet som fortfarande stöds men rekommenderas inte för nya applikationer. Den gyllene standarden för säkerhet är dock att visa systemet säkert utan att förlita sig på Random Oracle-idealiseringen.

Matematisk modell

Inom komplexitetsteoretisk kryptografi modelleras säkerheten mot adaptiva attacker med vald chiffertext vanligen med användning av chiffertext omöjlig att särskilja (IND-CCA2).