Allt-eller-inget förvandlas
Inom kryptografi är en allt-eller-inget-transform ( AONT ), även känd som ett allt-eller-inget-protokoll , ett krypteringsläge som gör att data endast kan förstås om allt är känt. AONT är inte kryptering, men använder ofta symmetriska chiffer och kan tillämpas före kryptering. I exakta termer, "en AONT är en okodad, inverterbar, randomiserad transformation, med egenskapen att det är svårt att invertera om inte all utdata är känd."
Algoritmer
Den ursprungliga AONT, pakettransformeringen , beskrevs av Ronald L. Rivest i hans 1997 papper "All-Or-Nothing Encryption and The Package Transform" . Transformationen som Rivest föreslog innebar förbearbetning av klartexten genom att XORing varje klartextblock med blockets index krypterat med en slumpmässigt vald nyckel, och sedan lägga till ett extra block beräknat genom att XORing av den slumpmässiga nyckeln och hasharna för alla förbehandlade block. Resultatet av denna förbearbetning kallas pseudommeddelandet och det fungerar som indata till krypteringsalgoritmen. För att ångra pakettransformeringen krävs hashning av varje block i pseudommeddelandet utom det sista, XORing av alla hashs med det sista blocket för att återställa den slumpmässiga nyckeln, och sedan använda den slumpmässiga nyckeln för att konvertera tillbaka varje förbehandlat block till dess ursprungliga klartextblock. På så sätt är det omöjligt att återställa den ursprungliga klartexten utan att först ha tillgång till varje enskilt block av pseudomeskedet.
Även om Rivests papper bara gav en detaljerad beskrivning av pakettransformeringen som den gäller för CBC- läge, kan den implementeras med ett chiffer i alla lägen . Därför finns det flera varianter: paketet ECB transform, paket CBC transform, etc.
1999 föreslog Victor Boyko en annan AONT, bevisligen säker under den slumpmässiga orakelmodellen .
Tydligen vid ungefär samma tidpunkt föreslog DR Stinson en annan implementering av AONT, utan några kryptografiska antaganden. Den här implementeringen är en linjär transformation, som kanske belyser vissa säkerhetssvagheter i den ursprungliga definitionen.
Ansökningar
AONTs kan användas för att öka styrkan på krypteringen utan att öka nyckelstorleken. Detta kan vara användbart för att t.ex. säkra hemligheter samtidigt som det överensstämmer med myndigheternas regler för export av kryptografi . AONTs hjälper till att förhindra flera attacker.
Ett av sätten som AONT förbättrar krypteringens styrka är att förhindra attacker som avslöjar bara en del av informationen från att avslöja någonting, eftersom den partiella informationen inte räcker för att återställa något av det ursprungliga meddelandet.
En annan applikation som föreslås i originaldokumenten är att minska kostnaderna för säkerhet: till exempel kan en fil bearbetas av AONT, och då kan bara en liten del av den krypteras (t.ex. på ett smartkort). AONT kommer att försäkra att som ett resultat hela filen är skyddad. Det är viktigt att använda den starkare versionen av transformationen (som den av Boyko ovan).
AONT kan kombineras med framåtriktad felkorrigering för att ge ett beräkningssäkert hemligt delningsschema .
Andra användningsområden för AONT kan hittas i optimal asymmetrisk krypteringsutfyllnad ( OAEP).
- ^ a b Boyko, Victor (1999). Om säkerhetsegenskaperna för OAEP som en allt-eller-inget-transform . CRYPTO Proceedings . Föreläsningsanteckningar i datavetenskap. Vol. 1666. s. 503–518. doi : 10.1007/3-540-48405-1_32 . ISBN 978-3-540-66347-8 .
- ^ Rivest, Ronald (1997). Allt-eller-inget-kryptering och pakettransformeringen . SNABB PROGRAMVARAKRYPTERING Proceedings . Föreläsningsanteckningar i datavetenskap. Vol. 1267. s. 210–218. doi : 10.1007/BFb0052348 . ISBN 978-3-540-63247-4 .
- ^ Stinson, DR (1 januari 2001). "Något om allt eller ingenting (förvandlingar)". Design, koder och kryptografi . 22 (2): 133–138. doi : 10.1023/A:1008304703074 .
- ^ Resch, Jason; Plank, James (15 februari 2011). AONT-RS: Blandning av säkerhet och prestanda i disperserade lagringssystem (PDF) . Usenix FAST'11 .
externa länkar
- Staple , en öppen källkods-prototyp Transformeringsimplementering för Allt-eller-inget.