Multipel kryptering

Multipelkryptering är processen att kryptera ett redan krypterat meddelande en eller flera gånger, antingen med samma eller en annan algoritm. Det är också känt som kaskadkryptering , kaskadkryptering , multipelkryptering och superkryptering . Superkryptering avser kryptering på yttre nivå av en multipelkryptering.

Vissa kryptografer, som Matthew Green från Johns Hopkins University, säger att flera krypteringar löser ett problem som för det mesta inte existerar: Moderna chiffer går sällan sönder... Du är mycket mer benägen att drabbas av skadlig programvara eller en implementeringsbugg än du är att drabbas av en katastrofal attack mot AES . .... och i det citatet ligger anledningen till multipelkryptering, nämligen dålig implementering. Att använda två olika kryptomoduler och nyckelprocesser från två olika leverantörer kräver att båda leverantörernas varor äventyras för att säkerheten ska misslyckas helt.

Oberoende nycklar

Om du väljer vilka två chiffer som helst , om nyckeln som används är densamma för båda, kan det andra chiffret möjligen ångra det första chiffret, helt eller delvis. Detta gäller för chiffer där dekrypteringsprocessen är exakt densamma som krypteringsprocessen – det andra chiffret skulle helt ångra det första. Om en angripare skulle återställa nyckeln genom kryptoanalys av det första krypteringsskiktet, kan angriparen möjligen dekryptera alla återstående skikt, förutsatt att samma nyckel används för alla skikt.

För att förhindra den risken kan man använda nycklar som är statistiskt oberoende för varje lager (t.ex. oberoende RNGs ).

Helst bör varje nyckel ha separata och olika genererings-, delnings- och hanteringsprocesser.

Oberoende initieringsvektorer

För en/dekrypteringsprocesser som kräver delning av en initieringsvektor (IV) / nonce delas dessa vanligtvis öppet eller görs kända för mottagaren (och alla andra). Dess goda säkerhetspolicy att aldrig tillhandahålla samma data i både klartext och chiffertext när man använder samma nyckel och IV. Därför rekommenderas det (även om det för närvarande inte finns några specifika bevis) att använda separata IV för varje lager av kryptering.

Betydelsen av det första lagret

Med undantag för engångsblocket har inget chiffer teoretiskt bevisats vara okrossbart. Dessutom kan vissa återkommande egenskaper finnas i de chiffertexter som genereras av det första chiffret. Eftersom dessa chiffertexter är klartexter som används av det andra chiffret, kan det andra chiffret göras sårbart för attacker baserat på kända klartextegenskaper (se referenser nedan).

Detta är fallet när det första lagret är ett program P som alltid lägger till samma sträng S av tecken i början (eller slutet) av alla chiffertexter (allmänt känt som ett magiskt nummer ). När den hittas i en fil tillåter strängen S ett operativsystem att veta att programmet P måste startas för att dekryptera filen. Denna sträng bör tas bort innan du lägger till ett andra lager.

För att förhindra denna typ av attack kan man använda metoden som tillhandahålls av Bruce Schneier :

  • Skapa en slumpmässig block R av samma storlek som klartexten.
  • Kryptera R med det första chiffret och nyckeln.
  • XELLER klartexten med blocket, kryptera sedan resultatet med det andra chiffret och en annan (!) nyckel.
  • Sammanfoga båda chiffertexterna för att bygga den slutliga chiffertexten.

En kryptoanalytiker måste bryta båda chiffren för att få information. Detta kommer dock att ha nackdelen att chiffertexten blir dubbelt så lång som den ursprungliga klartexten.

Observera dock att ett svagt första chiffer bara kan göra ett andra chiffer som är sårbart för en vald klartextattack också sårbart för en känd klartextattack . Ett blockchiffer får dock inte vara sårbart för en vald klartextattack för att anses vara säker. Därför är det andra chiffer som beskrivs ovan inte heller säkert enligt den definitionen. Följaktligen måste båda chiffren fortfarande brytas. Attacken illustrerar varför starka antaganden görs om säkra blockchiffer och chiffer som till och med delvis är trasiga bör aldrig användas.

Regeln om två

Rule of Two är en datasäkerhetsprincip från NSA:s Commercial Solutions for Classified Program (CSfC). Den specificerar två helt oberoende lager av kryptografi för att skydda data. Data kan till exempel skyddas av både hårdvarukryptering på sin lägsta nivå och mjukvarukryptering i applikationslagret. Det kan innebära att man använder två FIPS -validerade kryptomoduler för programvara från olika leverantörer för att koda/dekryptera data.

Vikten av leverantörs- och/eller modellmångfald mellan skikten av komponenter kretsar kring att ta bort möjligheten att tillverkarna eller modellerna delar en sårbarhet. På detta sätt, om en komponent äventyras, finns det fortfarande ett helt lager av kryptering som skyddar informationen i vila eller under överföring. CSfC-programmet erbjuder lösningar för att uppnå mångfald på två sätt. "Den första är att implementera varje lager med hjälp av komponenter tillverkade av olika tillverkare. Det andra är att använda komponenter från samma tillverkare, där den tillverkaren har försett NSA med tillräckliga bevis för att implementeringarna av de två komponenterna är oberoende av varandra."

Principen praktiseras i NSA:s säkra mobiltelefon som heter Fishbowl. Telefonerna använder två lager av krypteringsprotokoll, IPsec och Secure Real-time Transport Protocol (SRTP), för att skydda röstkommunikation. Samsung Galaxy S9 Tactical Edition är också en godkänd CSfC-komponent.

Exempel

Bilden visar från insidan till utsidan hur den krypterade kapseln bildas i samband med Echo Protocol, som används av programvaran GoldBug Messenger. GoldBug har implementerat ett hybridsystem för autenticitet och konfidentialitet.

Första lagret av krypteringen: Chiffertexten för det ursprungliga läsbara meddelandet hashas, ​​och därefter krypteras de symmetriska nycklarna via den asymmetriska nyckeln - t.ex. genom att distribuera algoritmen RSA. I ett mellansteg kombineras chiffertexten och hashsammandraget av chiffertexten till en kapsel och packas ihop. Det följer tillvägagångssättet: Kryptera-sedan-MAC . För att mottagaren ska kunna verifiera att chiffertexten inte har manipulerats, beräknas sammandraget innan chiffertexten dekrypteras.

Andra lager av kryptering: Valfritt är det fortfarande möjligt, därför att kryptera kapseln i det första lagret dessutom med en AES-256 , - jämförbar med ett gemensamt delat, 32 tecken långt symmetriskt lösenord. Hybridkryptering läggs sedan till i multipelkryptering. [ citat behövs ]

Tredje lagret av krypteringen: Därefter överförs denna kapsel via en säker SSL/TLS -anslutning till kommunikationspartnern

Vidare läsning

  • "Multiple encryption" i "Ritter's Crypto Glossary and Dictionary of Technical Cryptography"
  • Sekretess genom multikryptering, i: Adams, David / Maier, Ann-Kathrin (2016): BIG SEVEN-studie, krypto-budbärare med öppen källkod som ska jämföras - eller: Omfattande konfidentialitetsgranskning och granskning av GoldBug, kryptering av e-postklient & Secure Instant Messenger, beskrivningar, tester och analysgranskningar av 20 funktioner i applikationen GoldBug baserat på de väsentliga områdena och metoderna för utvärdering av de 8 stora internationella revisionsmanualerna för IT-säkerhetsutredningar inklusive 38 siffror och 87 tabeller., URL: https : //sf.net/projects/goldbug/files/bigseven-crypto-audit.pdf - Engelska / tyska språket, version 1.1, 305 sidor, juni 2016 (ISBN: DNB 110368003X - 2016B14779).
  • Ett "sätt att kombinera multipla blockalgoritmer" så att "en kryptoanalytiker måste bryta båda algoritmerna" i §15.8 av Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C av Bruce Schneier. Wiley Computer Publishing, John Wiley & Sons, Inc.
  • S. Even och O. Goldreich, On the power of cascade ciphers, ACM Transactions on Computer Systems, vol. 3, s. 108–116, 1985.
  • M. Maurer och JL Massey, Cascade ciphers: Vikten av att vara först, Journal of Cryptology, vol. 6, nr. 1, s. 55–61, 1993.