HPC (šifra)

HPC ( Hasty Pudding Cipher ) je blokově symetrický kryptoalgoritmus vytvořený slavným americkým kryptologem a matematikem Richardem Schreppelem z Arizona State University v roce 1998 . První dvě slova názvu kryptoalgoritmu lze přeložit jako "moučný pudink " . HPC získalo takové zvláštní jméno, zjevně kvůli množství „mazaných“ numerických transformací, což výrazně komplikuje jeho analýzu .

Obecná struktura

HPC je založeno na Feistelově buňce a má zajímavou vlastnost – velikost jak šifrovaného bloku, tak šifrovacího klíče není ničím omezena. Ve skutečnosti se algoritmus HPC skládá z pěti různých (ale souvisejících) dílčích algoritmů, z nichž každý je navržen pro šifrování bloků různých délek:

název Velikost bloku v bitech
HPC Tiny 0-35
HPC Short 36-64
HPC střední 65-128
HPC Long 129-512
Rozšířené HPC 513 a více

Struktura kola HPC-Medium [1] [2]

Šifrování probíhá v 8 kolech. Zašifrovaný 128bitový blok je zapsán do dvou 64bitových registrů a , načež se na nich provádí velké množství různých matematických operací:

Označení Úkon
  modulo 2 přidání
modulo přidání
modulo odečítání
otočit doleva o n bitů
otočit doprava o n bitů
vynulování dolního bajtu 64bitového bloku
bitově logické "a"

Kromě toho se kola účastní i některé konstanty :

Po dokončení 8 kol transformace se provedou další 2 operace:

Dešifrování se provádí provedením inverzních operací v opačném pořadí.

Postup rozšíření klíče

Úkolem procedury rozšíření klíče je vygenerovat rozšířený klíč , což je pole 256 64bitových slov. Je jasné, že každý z podalgoritmů musí mít svůj vlastní postup. Znalost jednoho z polí rozšířených klíčů neumožňuje vypočítat další pole ani samotný šifrovací klíč . Při pevné velikosti zašifrovaných bloků však stačí pro tento podalgoritmus vygenerovat rozšířený klíč jednou.

Fáze 1: Inicializace

Zbývajících 253 slov klíče je inicializováno následovně:

Fáze 2: Přidání

Provede se bitové modulo 2 přidání šifrovacího klíče a inicializovaného pole rozšířených klíčů , ale ne více než 128 slov.

Fáze 3: Míchání

Provede se funkce promíchání dat rozšířeného klíče , která zajistí, že každý bit klíče ovlivní každý bit rozšířeného klíče :

Krok 1

Registry se inicializují :

Krok 2

Pro každé slovo rozšířeného klíče se provede operace znázorněná na obrázku. Pro posílení efektu autor algoritmu doporučuje 3 kola míchání.

Fáze 4: Přidání

Pokud velikost klíče přesáhne 128 64bitových slov, pak se pro každý blok 128 slov opakují kroky 2 a 3. Postup pro míchání klíčů v pořadí podle složitosti je tedy přibližně podobný samotnému šifrování .

Další klíč

Jeho účelem je upravit výsledek šifrování se stejnými vstupními bloky a klíči . Dodatečný klíč může být tajný, což zvyšuje skutečné množství klíčových informací, ale v algoritmu s neomezenou délkou klíče může být tato možnost zbytečná. V takových případech můžete jednoduše resetovat přídavný klíč .

Výhody a nevýhody

  1. Jedno kolo šifrování algoritmu HPC sestává z velkého počtu základních operací. Ve srovnání například s domácím algoritmem GOST 28147-89 , který se skládá pouze ze 4 základních operací, se HPC zdá být extrémně složité a těžkopádné. Vzhledem k tomu, že všechny operace jsou prováděny na 64bitových slovech, vykazovalo HPC překvapivě vysokou rychlost na 64bitových platformách. V soutěži šifrovacích standardů AES bylo HPC z hlediska rychlosti šifrování 128bitových bloků na druhém místě za algoritmem DFC a HPC šifrovalo 512bitové a 1024bitové bloky 2-3krát rychleji než všichni jeho konkurenti.
  2. Zjevné nevýhody algoritmu zahrnují kromě složitosti nemožnost paralelizace procesů šifrování a míchání a také obrovské požadavky kladené algoritmem na energeticky nezávislou paměť a paměť s náhodným přístupem, což značně ztěžuje použití. to v čipových kartách .
  3. Algoritmus se nedostal do druhé fáze AES . Autor se ve svém článku [4] ohradil na experty AES v domnění, že priority byly v soutěži nastaveny špatně. Podle Richarda Schreppela je nutné volit algoritmy přizpůsobené pro 64bitové platformy jako světový standard, protože na nich je budoucnost. Autor HPC navíc tvrdil, že je nemožné vyvinout algoritmus, který by fungoval stejně dobře jak na výkonných vícejádrových 64bitových serverech, tak na slabých a levných 8bitových čipových kartách . Toto umístění však neovlivnilo výsledky soutěže.

Kryptoanalýza

  • Aby podnítil zájem o kryptoanalýzu svého vynálezu, zavázal se autor odměnit každého kryptoanalytika lahví slavného šampaňského Dom Pérignon . Ceny budou udělovány do otevření kódu nebo do prázdné krabice (10 lahví). [5]
  • Podle autora šifry má HPC úroveň zabezpečení 400 bitů , to znamená, že úspěšný útok na šifru bude vyžadovat testování. Takové prohlášení je založeno na počítání počtu přechodných stavů v procesu šifrování a také na velikosti rozšířeného klíče [6] .

Zranitelnosti

David Wagner zranitelnost v šifře [ 7] později Carl D'Halluin, Gert Bijnens, Bart Presnel a Vincent Rayman publikovali článek [8] , který to potvrdil. Ukázalo se, že přibližně každý 256. klíč algoritmu má 230 ekvivalentních klíčů . Tento nedostatek však autor ještě před sečtením výsledků prvního kola soutěže promptně napravil.

Attack "Chosen Spice"

S tímto typem útoku může útočník, který má přístup k párům holého textu a šifrovaného textu, pomocí manipulace s polem dodatečného klíče „Spice“ sledovat, jak se holý text nebo šifrovaný text mění v následujících šifrováních . Útoky tohoto typu však podle autora dosud nebyly pozorovány a práce v této oblasti vyžaduje úsilí kryptoanalytické komunity. [2]

Poznámky

  1. Šifrovací algoritmy Panasenko S.P. Speciální referenční kniha - Petrohrad. : BHV-SPb , 2009. - 576 s. — ISBN 978-5-9775-0319-8
  2. 1 2 Richard Schroeppel, "Hasty Pudding Cipher Specification", květen 1999 (odkaz není k dispozici) . Získáno 31. října 2010. Archivováno z originálu 17. července 2011. 
  3. a mají stejný tvar, ale obecně řečeno se bude jednat o různá čísla, protože závisí na aktuální hodnotě .
  4. Rich Schroeppel, Puddingmeister, "The Hasty Pudding Cipher: One Year Later", 12. června 1999 (odkaz není k dispozici) . Získáno 31. října 2010. Archivováno z originálu dne 30. listopadu 2021. 
  5. "BEZPEČNOSTNÍ SYSTÉMY KOMUNIKACÍ A TELEKOMUNIKACE", 1999 . Datum přístupu: 30. října 2010. Archivováno z originálu 3. července 2011.
  6. Rich Schroeppel, Hilarie Orman, „An Overview of the Hasty Pudding Cipher“, červenec 1998 (odkaz není dostupný) . Získáno 31. října 2010. Archivováno z originálu dne 30. listopadu 2021. 
  7. Richard Schroeppel, „Tweaking the Hasty Pudding Cipher“ 14. května 1999 (odkaz není dostupný) . Získáno 31. října 2010. Archivováno z originálu dne 30. listopadu 2021. 
  8. "Ekvivalentní klíče HPC", 1999