HPC (chiffer)

HPC ( Hasty Pudding Cipher ) er en bloksymmetrisk kryptoalgoritme skabt af den berømte amerikanske kryptolog og matematiker Richard Schreppel fra Arizona State University i 1998 . De første to ord i navnet på kryptoalgoritmen kan oversættes til "melet vanillecreme " . HPC modtog et så mærkeligt navn, tilsyneladende, på grund af overfloden af ​​"udspekulerede" numeriske transformationer, hvilket komplicerer analysen betydeligt .

Generel struktur

HPC er baseret på Feistel-cellen og har en interessant funktion - størrelsen af ​​både den krypterede blok og krypteringsnøglen er ikke begrænset af noget. Faktisk består HPC-algoritmen af ​​fem forskellige (men relaterede) underalgoritmer, som hver er designet til at kryptere blokke af forskellig længde:

Navn Blokstørrelse i bits
HPC Lille 0 - 35
HPC kort 36 - 64
HPC medium 65 - 128
HPC lang 129 - 512
HPC Extended 513 og derover

Struktur af HPC-Medium runden [1] [2]

Kryptering udføres i 8 omgange. En krypteret 128 - bit blok skrives ind i to 64 - bit registre og , hvorefter et stort antal forskellige matematiske operationer udføres på dem:

Betegnelse Operation
  modulo 2 tilføjelse
modulo tilføjelse
modulo subtraktion
drej til venstre med n bit
drej til højre med n bit
nulstilling af den lave byte af en 64 - bit blok
bitvis logisk "og"

Derudover deltager nogle konstanter også i runden :

Efter at have gennemført 8 transformationsrunder udføres yderligere 2 operationer:

Dekryptering udføres ved at udføre de omvendte operationer i omvendt rækkefølge.

Nøgleudvidelsesprocedure

Opgaven med nøgleudvidelsesproceduren er at generere en udvidet nøgle , som er en matrix af 256 64 - bit ord. Det er klart, at hver af subalgoritmerne skal have sin egen procedure. At kende et af de udvidede nøglearrays tillader ikke, at man kan beregne hverken de andre arrays eller selve krypteringsnøglen . Men med en fast størrelse af krypterede blokke er det nok at generere en udvidet nøgle én gang for denne subalgoritme.

Trin 1: Initialisering

De resterende 253 ord i nøglen initialiseres som følger:

Fase 2: Tilføjelse

Bitvis modulo 2 tilføjelse af krypteringsnøglen og det initialiserede udvidede nøglearray udføres, men ikke mere end 128 ord.

Trin 3: Omrøring

Funktionen udvidet nøgledatablanding udføres , som sikrer, at hver bit af nøglen påvirker hver bit af den udvidede nøgle :

Trin 1

Registrene initialiseres :

Trin 2

For hvert ord i den udvidede tast udføres handlingen vist på figuren. For at forstærke effekten anbefaler forfatteren af ​​algoritmen 3 blandingsrunder.

  • - bitvis logisk "eller"
  • - nummeret på det beregnede ord for den udvidede nøgle
  • - bland rundt nummer
  • - aktuelle værdier af de udvidede nøgleord :

Trin 4: Tilføjelse af

Hvis nøglestørrelsen overstiger 128 64 - bit ord, gentages trin 2 og 3 for hver blok på 128. Således er proceduren for at blande nøgler i kompleksitetsrækkefølge omtrent lig selve krypteringsproceduren .

Yderligere nøgle

Dens formål er at ændre krypteringsresultatet med de samme inputblokke og nøgler . Den ekstra nøgle kan være hemmelig, hvilket øger den faktiske mængde af nøgleinformation, men i en algoritme med en ubegrænset nøglelængde kan denne mulighed være unødvendig. I sådanne tilfælde kan du blot nulstille den ekstra nøgle .

Fordele og ulemper

  1. En omgang kryptering af HPC-algoritmen består af et meget stort antal elementære operationer. I sammenligning med for eksempel den indenlandske algoritme GOST 28147-89 , som kun består af 4 elementære operationer, ser HPC ud til at være ekstremt kompleks og besværlig. Men på grund af det faktum, at alle operationer udføres på 64 - bit ord, viste HPC overraskende høj hastighed på 64 - bit platforme. Ved AES -krypteringsstandardkonkurrencen, hvad angår krypteringshastigheden for 128 - bit blokke, var HPC kun næst efter DFC - algoritmen , og HPC-krypterede 512- og 1024- bit blokke 2-3 gange hurtigere end alle dets konkurrenter.
  2. De åbenlyse ulemper ved algoritmen omfatter, udover kompleksitet, umuligheden af ​​at parallelisere processerne med kryptering og blanding, samt de enorme krav, som algoritmen stiller til ikke-flygtig og random access memory, hvilket gør det ret vanskeligt at bruge. det i smart cards .
  3. Algoritmen nåede ikke videre til anden fase af AES . I sin artikel [4] slog forfatteren ud mod AES- eksperterne , idet han mente, at prioriteringerne var forkert sat i konkurrencen. Ifølge Richard Schreppel er det nødvendigt at vælge algoritmer tilpasset til 64 - bit platforme som verdensstandard, da fremtiden ligger hos dem. Derudover hævdede forfatteren af ​​HPC, at det er umuligt at udvikle en algoritme, der fungerer lige godt både på kraftfulde multi-core 64- bit servere og på svage og billige 8 - bit smart cards . Denne stilling påvirkede dog ikke resultaterne af konkurrencen.

Krypteringsanalyse

  • For at stimulere interessen for kryptanalysen af ​​hans opfindelse påtog forfatteren sig at belønne hver kryptanalytiker med en flaske af den berømte Dom Pérignon- champagne . Præmier vil blive afholdt indtil koden åbnes, eller indtil kassen (10 flasker) er tom. [5]
  • Ifølge forfatteren af ​​chifferen har HPC et sikkerhedsniveau på 400 bit , det vil sige, at et vellykket angreb på chifferen vil kræve test. En sådan erklæring er baseret på at tælle antallet af mellemtilstande i krypteringsprocessen , samt på størrelsen af ​​den udvidede nøgle [6] .

Sårbarheder

David Wagner sårbarhed i - chifferet [7] og senere publicerede Carl D'Halluin, Gert Bijnens, Bart Presnel og Vincent Rayman et papir [8] der bekræftede dette. Det viste sig, at cirka hver 256. nøgle i algoritmen har 230 tilsvarende nøgler . Denne mangel blev dog prompte rettet af forfatteren, selv før resultaterne af konkurrencens første runde blev opsummeret.

Angreb "Chosen Spice"

Med denne type angreb kan en angriber, der har adgang til par af klartekst og chiffertekst, ved at manipulere rækken af ​​den ekstra nøgle "Spice", se, hvordan klarteksten eller chifferteksten ændrer sig i efterfølgende krypteringer . Men ifølge forfatteren er angreb af denne type endnu ikke blevet observeret, og arbejde på dette område kræver en indsats fra det kryptoanalytiske samfund. [2]

Noter

  1. Panasenko S.P. Krypteringsalgoritmer. Særlig opslagsbog - St. Petersborg. : BHV-SPb , 2009. - 576 s. — ISBN 978-5-9775-0319-8
  2. 1 2 Richard Schroeppel, "Hasty Pudding Cipher Specification", maj 1999 (link utilgængeligt) . Hentet 31. oktober 2010. Arkiveret fra originalen 17. juli 2011. 
  3. og har samme form, men generelt set vil disse være forskellige tal, da de afhænger af den aktuelle værdi af .
  4. Rich Schroeppel, Puddingmeister, "The Hasty Pudding Cipher: One Year Later", 12. juni 1999 (link utilgængeligt) . Hentet 31. oktober 2010. Arkiveret fra originalen 30. november 2021. 
  5. "SIKKERHEDSSYSTEMER FOR KOMMUNIKATION OG TELEKOMMUNIKATION", 1999 . Dato for adgang: 30. oktober 2010. Arkiveret fra originalen den 3. juli 2011.
  6. Rich Schroeppel, Hilarie Orman, "An Overview of the Hasty Pudding Cipher", juli 1998 (link ikke tilgængeligt) . Hentet 31. oktober 2010. Arkiveret fra originalen 30. november 2021. 
  7. Richard Schroeppel, "Tweaking the Hasty Pudding Cipher" 14. maj 1999 (link ikke tilgængeligt) . Hentet 31. oktober 2010. Arkiveret fra originalen 30. november 2021. 
  8. "Equivalent Keys of HPC", 1999