Tillägg (kryptering)

Addition ( eng.  padding ) i kryptografi  - tillägg av meningslös data till den krypterade informationen, som syftar till att öka kryptografisk styrka . Olika utfyllnadstekniker användes i klassisk kryptografi , utfyllnadstekniker användes i stor utsträckning i datorkrypteringssystem.

Klassisk kryptografi

Formella meddelanden börjar och slutar ofta på förutsägbara sätt, som " Respektfullt... ". Huvudsyftet med att tillämpa tillägget på klassiska chiffer är att beröva kryptoanalytikern möjligheten att använda sådan förutsägbarhet vid kryptoanalys av en känd text [1] . Den slumpmässiga utfyllnadslängden hindrar också kryptoanalytikern från att veta den exakta längden på meddelandet.

Många klassiska chiffer använder specifika mönster (till exempel kvadrater, rektanglar och så vidare) som klartext. Om meddelandet som skickas inte passar mallen behöver det ofta vadderas för att fylla i mallen. Användningen av meningslösa tecken som komplement i detta fall komplicerar också kryptanalytikerns arbete.

Symmetrisk kryptografi

Hash-funktioner

De flesta moderna kryptografiska hashfunktioner bearbetar meddelanden i block med fast längd, och nästan alla använder utfyllnad till viss del.

Många utfyllnadsscheman är baserade på att lägga till viss data till det sista blocket. Till exempel kan utfyllnaden härledas från meddelandets totala längd. Denna typ av utfyllnad används vanligtvis på hashalgoritmer baserade på Merkle-Damgor-strukturen .

Krypteringsläge

Elektronisk kodbok (ECB) och cipher-block-chaining (CBC) är exempel på krypteringslägen . Krypteringslägena för symmetriska nyckelalgoritmer kräver att meddelandelängden är en multipel av blockstorleken, så meddelandet kan behöva utfyllas för att göra det till en lämplig längd.

Nackdelen med utfyllnaden är att den gör texten sårbar för attacker från Oracle . Denna attack tillåter en angripare att få kunskap om meddelandet som sänds utan att angripa blockchifferet primitivt; denna attack kan undvikas genom att se till att angriparen inte kan få någon kunskap om borttagning av tillagda bytes. Detta kan uppnås genom att verifiera en meddelandeautentiseringskod (MAC) eller digital signatur innan utfyllnadsbyte tas bort.

Bitstoppning

Bitstoppning kan appliceras på ett meddelande av valfri längd. Meddelandet är utfyllt med en 1 bit ('1') och ett visst antal nollbitar ('0'). Antalet nollbitar som läggs till beror på blockgränsen till vilken meddelandet behöver utfyllas. I bittermer är detta "1000...0000". Denna metod kan användas för att fylla meddelanden med valfritt antal bitar, det är absolut inte nödvändigt att de är ett heltal av byte. Till exempel är ett 23-bitars meddelande utfyllt med 9 bitar för att fylla ett 32-bitars block:

… | 1011 1001 1101 0100 0010 011 1 0000 0000 |

Denna utfyllnad är det första steget i ett tvåstegs utfyllnadsschema som används i många hashfunktioner, inklusive MD5 och SHA .

Byte utfyllnad

Byte-utfyllnad kan tillämpas på meddelanden som kan kodas som ett heltal av byte.

ANSI X.923

I ANSI X.923 är bytes utfyllda med nollor, och den sista byten anger utfyllnadsgränsen eller antalet byte som lagts till.

Exempel: I följande exempel har blocket en storlek på 8 byte och en utfyllnad på 4 byte krävs.

... | DD DD DD DD DD DD DD DD | DD DD DD DD 00 00 00 04 | ISO 10126

I ISO 10126 [2] [3] måste utfyllnaden fyllas med slumpmässiga byte och den sista byten måste ange antalet adderade byte.

Exempel: I följande exempel har blocket en storlek på 8 byte och en utfyllnad på 4 byte krävs.

... | DD DD DD DD DD DD DD DD | DD DD DD DD 81 A6 23 04 | PKCS7

PKCS#7 beskrivs i RFC 5652 .

Utfyllnad i hela bytes. Värdet för varje byte är lika med antalet adderade byte, det vill säga N byte läggs till med värdet N . Antalet byte som läggs till beror på blockgränsen som meddelandet behöver utökas till. Tillägget kommer att vara ett av:

01 02 02 03 03 03 04 04 04 04 05 05 05 05 05 etc.

Denna utfyllnadsmetod (liksom de två föregående) är bara väldefinierad om N är mindre än 256.

Exempel: I följande exempel har blocket en storlek på 8 byte och en utfyllnad på 4 byte krävs

... | DD DD DD DD DD DD DD DD | DD DD DD DD 04 04 04 04 | ISO/IEC 7816-4

ISO/IEC 7816 -4:2005 [4] är identisk med bitutfyllnadsschemat som tillämpas på N byte-text. I praktiken betyder detta att den första extra byten nödvändigtvis är '80', följt av 0 till N-1 byte '00' om nödvändigt, tills en blockgräns nås. ISO/IEC 7816-4 är en kommunikationsstandard för smartkort och innehåller inte i sig några kryptografiska specifikationer.

Exempel: I följande exempel har blocket en storlek på 8 byte och en utfyllnad på 4 byte krävs

... | DD DD DD DD DD DD DD DD | DD DD DD DD 80 00 00 00 |

Följande exempel visar utfyllnad med endast en byte:

... | DD DD DD DD DD DD DD DD | DD DD DD DD DD DD DD 80 |

Noll utfyllnad

Alla bytes som behöver utfyllas är fyllda med nollor. Nollutfyllnadsschemat erkänns inte av standarden, även om det beskrivs som en 1:or-utfyllnadsmetod för hashfunktioner och MAC i ISO/IEC 10118-1 [5] och ISO/IEC 9797-1 . [6]

Exempel: I följande exempel har blocket en storlek på 8 byte och en utfyllnad på 4 byte krävs

... | DD DD DD DD DD DD DD DD | DD DD DD DD 00 00 00 00 |

Nollutfyllnad kan vara oåterkallelig om det ursprungliga meddelandet slutade med en eller flera nollbytes, vilket gör det omöjligt att skilja klartextbytes från utfyllnadsbytes.

Offentlig nyckelkryptering

I kryptografi med publik nyckel är utfyllnad det sätt på vilket ett meddelande förbereds för kryptering eller signering med följande scheman: PKCS#1 , OAEP , PSS , PSSR, IEEE P1363 EMSA2 och EMSA5. Den moderna utfyllnadsformen för asymmetriska primitiver tillämpas på RSA- algoritmen när den används för att kryptera ett begränsat antal byte.

Operationen kallas "Addition" eftersom slumpmässigt material från början helt enkelt läggs till i meddelandet. Denna form av tillsats är inte säker och används därför inte längre.

Trafikanalys

Även om perfekta kryptografiska procedurer används kan en angripare få kunskap om mängden trafik som har genererats. Angriparen kan inte specifikt veta vad Alice och Bob sände, men kanske vet att meddelandet överfördes och hur lång tid det tog. I vissa situationer kan detta vara mycket illa. Till exempel när länder organiserar en hemlig attack mot ett annat land: detta kan räcka för att varna det landet och låta det veta att det pågår en hel del hemlig aktivitet.

Som ett annat exempel, vid chiffrering av Voice Over IP- strömmar som använder kodning med variabel bithastighet, döljs inte antalet bitar per tidsenhet, och detta kan tjäna till att gissa röstfrasen. [7]

Att lägga till ett meddelande hjälper till att göra trafikanalys svårare. Vanligtvis läggs slumpmässiga bitar till i slutet av meddelandet, vilket indikerar hur många sådana bitar det är totalt.

Se även

Anteckningar

  1. ^ Gordon Welchman , The Hut Six Story: Breaking the Enigma Codes , s. 78.
  2. ISO-katalog, ISO 10126-1:1991 . Datum för åtkomst: 8 december 2015. Arkiverad från originalet den 9 april 2016.
  3. ISO-katalog, ISO 10126-2:1991 . Datum för åtkomst: 8 december 2015. Arkiverad från originalet den 9 april 2016.
  4. ISO-katalog, ISO/IEC 7816-4:2005 . Tillträdesdatum: 8 december 2015. Arkiverad från originalet 4 mars 2016.
  5. ISO/IEC 10118-1:2000 Informationsteknik — Säkerhetsteknik — Hash-funktioner — Del 1: Allmänt . Tillträdesdatum: 8 december 2015. Arkiverad från originalet 18 april 2016.
  6. ISO/IEC 9797-1:1999 Informationsteknologi — Säkerhetstekniker — Meddelandeautentiseringskoder (MAC) — Del 1: Mekanismer som använder ett blockchiffer . Datum för åtkomst: 8 december 2015. Arkiverad från originalet den 9 april 2016.
  7. Avslöja talade fraser i krypterade röst över IP-konversationer