Kryptografický primitiv - Cryptographic primitive

Kryptografické primitivy jsou dobře zavedené, na nízké úrovni kryptografické algoritmy, které se často používají k sestavení kryptografické protokoly pro zabezpečení počítače systémy. Mezi tyto rutiny patří mimo jiné: jednosměrné hashovací funkce a šifrovací funkce.

Odůvodnění

Při tvorbě kryptografické systémy, návrháři používají kryptografická primitiva jako své nejzákladnější stavební kameny. Z tohoto důvodu jsou kryptografické primitivy navrženy tak, aby prováděly jeden velmi konkrétní úkol přesně definovaným a vysoce spolehlivým způsobem.

Vzhledem k tomu, že kryptografické primitivy jsou používány jako stavební bloky, musí být velmi spolehlivé, tj. Musí fungovat podle jejich specifikace. Například pokud šifrovací rutina tvrdí, že je porušitelná pouze s X počet počítačových operací a je rozdělen s podstatně menším než X operace, pak kryptografický primitiv selhal. Pokud se zjistí, že kryptografický primitiv selže, téměř každý protokol, který jej používá, se stane zranitelným. Protože vytváření kryptografických rutin je velmi těžké a testování jejich spolehlivosti trvá dlouho, není v zásadě nikdy rozumné (ani bezpečné) navrhnout nový kryptografický primitiv, který by vyhovoval potřebám nového kryptografického systému. Mezi důvody patří:

  • The návrhář nemusí být kompetentní v matematických a praktických aspektech kryptografických primitiv.
  • Navrhování nového kryptografického primitivu je velmi časově náročné a velmi náchylné k chybám, dokonce i pro odborníky v oboru.
  • Vzhledem k tomu, že algoritmy v této oblasti nemusí být pouze dobře navrženy, ale musí být také dobře otestovány komunitou kryptologů, i když kryptografická rutina vypadá dobře z hlediska designu, může stále obsahovat chyby. Úspěšné odolat takové kontrole dává jistotu (ve skutečnosti zatím jedinou jistotu), že algoritmus je skutečně dostatečně bezpečný k použití; bezpečnostní důkazy pro kryptografické primitivy obecně nejsou k dispozici.

Kryptografické primitivy jsou v některých ohledech podobné programovací jazyky. Počítačový programátor málokdy při psaní nového programu vymyslí nový programovací jazyk; místo toho budou používat jeden z již zavedených programovacích jazyků program v.

Kryptografické primitivy jsou jedním ze stavebních kamenů každého kryptosystému, např. TLS, SSL, SSH atd. Návrháři kryptosystémů, kteří nejsou v pozici, aby mohli definitivně prokázat svou bezpečnost, musí brát primitivy, které používají, jako zabezpečené. Výběr nejlepšího primitivu dostupného pro použití v protokolu obvykle poskytuje nejlepší dostupné zabezpečení. Slabé stránky v kompozici jsou však možné v jakémkoli krypto systému a je odpovědností návrhářů, aby se jim vyhnuli.

Běžně používané primitivy

Kombinace kryptografických primitiv

Kryptografické primitivy jsou samy o sobě poměrně omezené. Nelze je správně považovat za kryptografický systém. Například holý šifrovací algoritmus neposkytne žádný mechanismus ověřování ani žádnou kontrolu integrity explicitní zprávy. Pouze v kombinaci bezpečnostní protokoly, lze řešit více než jeden bezpečnostní požadavek. Například k přenosu zprávy, která je nejen kódovaná, ale také chráněná před vrtáním (tj. Je důvěrné a chráněno integritou ), rutina kódování, například DES a hash-rutina, jako je SHA-1 lze použít v kombinaci. Pokud útočník nezná šifrovací klíč, nemůže zprávu upravit tak, aby byly platné hodnoty souhrnu zprávy.

Kombinace kryptografických primitiv k vytvoření bezpečnostního protokolu je sama o sobě celou specializací. Většina zneužitelných chyb (tj. Nejistoty v krypto systémech) není způsobena chybami návrhu primitiv (za předpokladu, že byly vždy vybrány s opatrností), ale způsobem, jakým jsou použity, tj. Špatný návrh protokolu a chybná nebo nedostatečně pečlivá implementace . Matematická analýza protokolů není v době psaní tohoto článku zralá.[Citace je zapotřebí ] Existuje několik základních vlastností, které lze ověřit automatizovanými metodami, například BAN logika. Existují dokonce metody úplného ověření (např SPI počet ), ale jsou extrémně těžkopádné a nelze je automatizovat. Návrh protokolu je umění vyžadující hluboké znalosti a hodně praxe; i přesto jsou chyby běžné. Ilustrativní příklad skutečného systému lze vidět na OpenSSL zranitelnost stránka s novinkami tady.

Viz také

  • Kategorie: Kryptografické primitivy - seznam kryptografických primitiv
  • Kryptoagility

Reference

  • Levente Buttyán, István Vajda: Kriptográfia és alkalmazásai (kryptografie a její aplikace), Typotex 2004, ISBN  963-9548-13-8
  • Menezes, Alfred J: Příručka aplikované kryptografie, CRC Press, ISBN  0-8493-8523-7, Říjen 1996, 816 stran.
  • Crypto101 je úvodní kurz kryptografie, volně dostupný pro programátory všech věkových skupin a úrovní dovedností.