HPC (chiffer)

HPC ( Hasty Pudding Cipher ) är en blocksymmetrisk kryptoalgoritm skapad av den berömde amerikanske kryptologen och matematikern Richard Schreppel från Arizona State University 1998 . De två första orden i namnet på kryptoalgoritmen kan översättas som "mjölig vaniljsås " . HPC fick ett så konstigt namn, tydligen, på grund av överflöd av "slug" numeriska transformationer, vilket avsevärt komplicerar analysen .

Allmän struktur

HPC är baserat på Feistel-cellen och har en intressant funktion - storleken på både det krypterade blocket och krypteringsnyckeln begränsas inte av någonting. Faktum är att HPC-algoritmen består av fem olika (men relaterade) underalgoritmer, som var och en är designad för att kryptera block av olika längder:

namn Blockstorlek i bitar
HPC Tiny 0 - 35
HPC kort 36 - 64
HPC-medium 65 - 128
HPC lång 129 - 512
HPC Extended 513 och uppåt

Struktur för HPC-Medium-omgången [1] [2]

Kryptering utförs i 8 omgångar. Ett krypterat 128 -bitars block skrivs in i två 64 -bitars register och , varefter ett stort antal olika matematiska operationer utförs på dem:

Beteckning Drift
  modulo 2 tillägg
modulo tillägg
modulo subtraktion
rotera vänster med n bitar
rotera höger med n bitar
nollställer den låga byten för ett 64 -bitars block
bitvis logiskt "och"

Dessutom deltar några konstanter i omgången :

Efter att ha slutfört 8 omgångar av transformation utförs ytterligare 2 operationer:

Dekryptering utförs genom att utföra de omvända operationerna i omvänd ordning.

Nyckelexpansionsprocedur

Uppgiften med nyckelexpansionsproceduren är att generera en utökad nyckel , som är en uppsättning av 256 64- bitars ord. Det är tydligt att var och en av subalgoritmerna måste ha sin egen procedur. Att känna till en av de utökade nyckelmatriserna tillåter inte en att beräkna vare sig de andra matriserna eller själva krypteringsnyckeln . Men med en fast storlek på krypterade block räcker det att generera en utökad nyckel en gång för denna subalgoritm.

Steg 1: Initiering

De återstående 253 orden i nyckeln initieras enligt följande:

Steg 2: Tillägg

Bitvis modulo 2-tillägg av krypteringsnyckeln och den initierade utökade nyckeluppsättningen utförs, men inte mer än 128 ord.

Steg 3: Omrörning

Funktionen för utökad nyckeldatablandning utförs , vilket säkerställer att varje bit av nyckeln påverkar varje bit av den utökade nyckeln :

Steg 1

Registren initieras :

Steg 2

För varje ord i den utökade tangenten utförs operationen som visas i figuren. För att förstärka effekten rekommenderar författaren av algoritmen 3 omgångar av blandning.

Steg 4: Lägga till

Om nyckelstorleken överstiger 128 64 -bitars ord, upprepas steg 2 och 3 för varje block med 128 ord. Proceduren för att blanda nycklar i komplexitetsordning liknar således själva krypteringsproceduren .

Ytterligare nyckel

Dess syfte är att modifiera krypteringsresultatet med samma inmatningsblock och nycklar . Tilläggsnyckeln kan vara hemlig, vilket ökar den faktiska mängden nyckelinformation, men i en algoritm med en obegränsad nyckellängd kan denna möjlighet vara onödig. I sådana fall kan du helt enkelt återställa tilläggsnyckeln .

Fördelar och nackdelar

  1. En omgång av kryptering av HPC-algoritmen består av ett mycket stort antal elementära operationer. I jämförelse, till exempel, med den inhemska algoritmen GOST 28147-89 , som består av endast 4 elementära operationer, verkar HPC vara extremt komplex och besvärlig. Men på grund av det faktum att alla operationer utförs på 64- bitars ord, visade HPC förvånansvärt hög hastighet på 64 -bitars plattformar. På AES- krypteringsstandardtävlingen, när det gäller krypteringshastigheten för 128 -bitars block, var HPC näst efter DFC- algoritmen , och HPC-krypterade 512- och 1024- bitars block 2-3 gånger snabbare än alla dess konkurrenter.
  2. De uppenbara nackdelarna med algoritmen inkluderar, förutom komplexiteten, omöjligheten att parallellisera processerna för kryptering och blandning, såväl som de enorma krav som algoritmen ställer på icke-flyktigt och random access-minne, vilket gör det ganska svårt att använda. det i smarta kort .
  3. Algoritmen kom inte till det andra steget av AES . I sin artikel [4] slog författaren ut mot AES- experterna och trodde att prioriteringarna var felaktiga i tävlingen. Enligt Richard Schreppel är det nödvändigt att välja algoritmer anpassade för 64 -bitars plattformar som världsstandard, eftersom framtiden ligger hos dem. Dessutom hävdade författaren till HPC att det är omöjligt att utveckla en algoritm som fungerar lika bra både på kraftfulla flerkärniga 64-bitarsservrar och på svaga och billiga 8 -bitars smarta kort . Denna position påverkade dock inte resultatet av tävlingen.

Kryptanalys

  • För att stimulera intresset för kryptoanalysen av sin uppfinning, åtog sig författaren att belöna varje kryptoanalytiker med en flaska av den berömda Dom Pérignon- champagnen . Utmärkelser kommer att hållas tills koden öppnas, eller tills lådan (10 flaskor) är tom. [5]
  • Enligt författaren till chifferet har HPC en säkerhetsnivå på 400 bitar , det vill säga en framgångsrik attack på chifferet kommer att kräva testning. Ett sådant uttalande är baserat på att räkna antalet mellanliggande tillstånd i krypteringsprocessen , samt på storleken på den utökade nyckeln [6] .

Sårbarheter

David Wagner sårbarhet i - chifferet [7] Carl D'Halluin, Gert Bijnens, Bart Presnel och Vincent Rayman ett dokument [8] som bekräftade detta. Det visade sig att ungefär var 256 :e nyckel i algoritmen har 230 ekvivalenta nycklar . Denna brist rättades dock omedelbart av författaren redan innan man summerade resultaten av den första omgången av tävlingen.

Attackera "Chosen Spice"

Med denna typ av attack kan en angripare, som har tillgång till par av klartext och chiffertext, genom att manipulera arrayen med den extra nyckeln "Spice", se hur klartexten eller chiffertexten ändras i efterföljande krypteringar . Men enligt författaren har attacker av denna typ ännu inte observerats, och arbete inom detta område kräver ansträngningar från det kryptoanalytiska samhället. [2]

Anteckningar

  1. Panasenko S.P. Krypteringsalgoritmer. Särskild uppslagsbok - St Petersburg. : BHV-SPb , 2009. - 576 sid. — ISBN 978-5-9775-0319-8
  2. 1 2 Richard Schroeppel, "Hasty Pudding Cipher Specification", maj 1999 (länk inte tillgänglig) . Hämtad 31 oktober 2010. Arkiverad från originalet 17 juli 2011. 
  3. och har samma form, men generellt sett kommer dessa att vara olika tal, eftersom de beror på det aktuella värdet på .
  4. Rich Schroeppel, Puddingmeister, "The Hasty Pudding Chipher: One Year Later", 12 juni 1999 (länk ej tillgänglig) . Hämtad 31 oktober 2010. Arkiverad från originalet 30 november 2021. 
  5. "SÄKERHETSSYSTEM FÖR KOMMUNIKATION OCH TELEKOMMUNIKATION", 1999 . Datum för åtkomst: 30 oktober 2010. Arkiverad från originalet den 3 juli 2011.
  6. Rich Schroeppel, Hilarie Orman, "An Overview of the Hasty Pudding Chipher", juli 1998 (länk inte tillgänglig) . Hämtad 31 oktober 2010. Arkiverad från originalet 30 november 2021. 
  7. Richard Schroeppel, "Tweaking the Hasty Pudding Chipher" 14 maj 1999 (länk ej tillgänglig) . Hämtad 31 oktober 2010. Arkiverad från originalet 30 november 2021. 
  8. "Equivalent Keys of HPC", 1999