Nervová kryptografie - Neural cryptography

Nervová kryptografie je pobočkou kryptografie věnovaný analýze aplikace stochastický zejména algoritmy umělá neuronová síť algoritmy, pro použití v šifrování a dešifrování.

Definice

Umělé neuronové sítě jsou dobře známé pro svou schopnost selektivně prozkoumat prostor řešení daného problému. Tato funkce nachází přirozené místo v oblasti aplikace dešifrování. Neuronové sítě zároveň nabízejí nový přístup k algoritmům šifrování útoků založeným na principu, že jakoukoli funkci lze reprodukovat neuronovou sítí, což je účinný osvědčený výpočetní nástroj, který lze použít k nalezení inverzní funkce jakéhokoli kryptografického algoritmus.

Myšlenky vzájemného učení, sebevzdělávání a stochastického chování neuronových sítí a podobných algoritmů lze použít pro různé aspekty kryptografie, například kryptografie veřejného klíče, řešení klíč distribuční problém pomocí vzájemné synchronizace neuronových sítí, hashování nebo generace pseudonáhodná čísla.

Další myšlenkou je schopnost neurální sítě oddělit prostor v nelineárních částech pomocí „zkreslení“. Poskytuje různé pravděpodobnosti aktivace neuronové sítě. To je velmi užitečné v případě kryptanalýzy.

K návrhu stejné oblasti výzkumu se používají dvě jména: Neuro-kryptografie a neurální kryptografie.

První práce, která je na toto téma známa, lze vysledovat v roce 1995 v diplomové práci v oboru IT.

Aplikace

V roce 1995 použil Sebastien Dourlens neuronové sítě k dešifrování DES umožněním sítím naučit se invertovat S-tabulky DES. Předpětí v DES studovalo pomocí diferenciální kryptoanalýzy od Adi Shamir je zvýrazněno. Experiment ukazuje, že lze najít přibližně 50% klíčových bitů, což umožňuje nalezení celého klíče v krátké době. Hardwarová aplikace s více mikrořadiči byla navržena kvůli snadné implementaci vícevrstvých neuronových sítí v hardwaru.
Jeden příklad protokolu veřejného klíče uvádí Khalil Shihab. Popisuje dešifrovací schéma a vytváření veřejného klíče, které jsou založeny na a zpětná propagace nervová síť. Schéma šifrování a proces vytváření soukromého klíče jsou založeny na booleovské algebře. Tato technika má výhodu malé časové a paměťové složitosti. Nevýhodou je vlastnost algoritmů zpětného šíření: z důvodu velkých tréninkových sad je fáze učení neuronové sítě velmi dlouhá. Proto je použití tohoto protokolu zatím pouze teoretické.

Protokol pro výměnu neurálních klíčů

Nejpoužívanější protokol pro výměnu klíčů mezi dvěma stranami A a B v praxi je Výměna klíčů Diffie – Hellman protokol. Výměna neurálních klíčů, která je založena na synchronizaci dvou stromových paritních strojů, by měla být bezpečnou náhradou za tuto metodu. Synchronizace těchto dvou strojů je podobná synchronizaci dvou chaotických oscilátorů v chaos komunikace.

Paritní stroj na stromy

Stromový paritní stroj

Paritní stroj stromů je speciální typ vícevrstvých dopředná neuronová síť.

Skládá se z jednoho výstupního neuronu, K. skryté neurony a K.×N vstupní neurony. Vstupy do sítě mají tři hodnoty:

Váhy mezi vstupem a skrytými neurony mají hodnoty:

Výstupní hodnota každého skrytého neuronu se vypočítá jako součet všech násobení vstupních neuronů a těchto vah:

Signum je jednoduchá funkce, která vrací −1,0 nebo 1:

Pokud je skalární součin 0, je výstup skrytého neuronu mapován na -1, aby byla zajištěna binární výstupní hodnota. Výstup neuronové sítě se poté vypočítá jako násobení všech hodnot produkovaných skrytými prvky:

Výstup stroje na paritu stromů je binární.

Protokol

Každá strana (A a B) používá svůj vlastní stromový paritní stroj. V těchto krocích je dosaženo synchronizace stromových paritních strojů

  1. Inicializujte náhodné hodnoty hmotnosti
  2. Proveďte tyto kroky, dokud nebude dosaženo úplné synchronizace
    1. Generujte náhodný vstupní vektor X
    2. Vypočítejte hodnoty skrytých neuronů
    3. Vypočítejte hodnotu výstupního neuronu
    4. Porovnejte hodnoty obou stromových paritních strojů
      1. Výstupy jsou stejné: přejděte na 2.1
      2. Výstupy jsou různé: jedno z vhodných pravidel učení se aplikuje na váhy

Po dosažení úplné synchronizace (váhy wij oba stromové paritní stroje jsou stejné), A a B mohou používat své váhy jako klíče.
Tato metoda je známá jako obousměrné učení.
Jedno z následujících pravidel učení[1] lze použít pro synchronizaci:

  • Hebbské pravidlo učení:
  • Protib hebské pravidlo učení:
  • Náhodná procházka:

Kde:

-li v opačném případě

A:

je funkce který udržuje v dosahu

Útoky a bezpečnost tohoto protokolu

Při každém útoku se považuje, že útočník E může odposlouchávat zprávy mezi stranami A a B, ale nemá příležitost je změnit.

Hrubou silou

K zajištění útoku hrubou silou musí útočník vyzkoušet všechny možné klíče (všechny možné hodnoty vah wij). Podle K. skryté neurony, K.×N vstupní neurony a hranice vah L, to dává (2L + 1)KN možnosti. Například konfigurace K. = 3, L = 3 a N = 100 nám dává 3 * 10253 klíčové možnosti, které znemožňují útok současným výkonem počítače.

Učení pomocí vlastního stromového paritního stroje

Jeden ze základních útoků může poskytnout útočník, který vlastní stejný stromový paritní stroj jako strany A a B. Chce synchronizovat svůj stromový paritní stroj s těmito dvěma stranami. V každém kroku jsou možné tři situace:

  1. Výstup (A) ≠ Výstup (B): Žádná ze stran neaktualizuje své váhy.
  2. Výstup (A) = Výstup (B) = Výstup (E): Všechny tři strany aktualizují váhy ve svých stromových paritních strojích.
  3. Výstup (A) = Výstup (B) ≠ Výstup (E): Strany A a B aktualizovat své stromové paritní stroje, ale útočník to nemůže udělat. Kvůli této situaci je jeho učení pomalejší než synchronizace stran A a B.

Bylo prokázáno, že synchronizace dvou stran je rychlejší než učení útočníka. Lze jej zlepšit zvýšením synaptické hloubky L neurální sítě. To dává tomuto protokolu dostatečné zabezpečení a útočník může klíč zjistit jen s malou pravděpodobností.

Další útoky

U konvenčních kryptografických systémů můžeme zlepšit zabezpečení protokolu zvýšením délky klíče. V případě neurální kryptografie ji vylepšujeme zvětšením synaptické hloubky L neuronových sítí. Změna tohoto parametru exponenciálně zvyšuje náklady na úspěšný útok, zatímco úsilí pro uživatele roste polynomiálně. Proto narušení zabezpečení výměny neurálních klíčů patří do třídy složitosti NP.

Alexander Klimov, Anton Mityaguine a Adi Shamir říkají, že původní schéma neurální synchronizace lze prolomit nejméně třemi různými útoky - geometrickou analýzou, pravděpodobnostní analýzou a použitím genetických algoritmů. I když je tato konkrétní implementace nejistá, myšlenky chaotické synchronizace by mohly potenciálně vést k bezpečné implementaci.[2]

Permutační paritní stroj

Parmiční permutační stroj je binární variantou parního stroje se stromy.[3]

Skládá se z jedné vstupní vrstvy, jedné skryté vrstvy a jedné výstupní vrstvy. Počet neuronů ve výstupní vrstvě závisí na počtu skrytých jednotek K. Každý skrytý neuron má N binárních vstupních neuronů:

Váhy mezi vstupem a skrytými neurony jsou také binární:

Výstupní hodnota každého skrytého neuronu se vypočítá jako součet všech výlučných disjunkcí (výlučných nebo) vstupních neuronů a těchto vah:

(⊕ znamená XOR).

Funkce je prahová funkce, která vrací 0 nebo 1:

Výstup neuronové sítě se dvěma nebo více skrytými neurony lze vypočítat jako exkluzivní nebo z hodnot vytvořených skrytými prvky:

Jsou možné i další konfigurace výstupní vrstvy pro K> 2.[3]

Tento stroj se ukázal být dostatečně robustní proti některým útokům[4] mohl by být použit jako kryptografický prostředek, ale ukázalo se, že je zranitelný pravděpodobnostním útokem.[5]

Zabezpečení proti kvantovým počítačům

A kvantový počítač je zařízení, které pro výpočet používá kvantové mechanismy. V tomto zařízení jsou data uložena jako qubits (kvantové binární číslice). To dává kvantovému počítači ve srovnání s běžným počítačem příležitost vyřešit v krátké době složité problémy, např. problém diskrétního logaritmu nebo faktorizace. Kvůli této vlastnosti jsou hledány algoritmy, které nejsou založeny na žádném z těchto problémů s teorií čísel.

Protokol pro výměnu neurálních klíčů není založen na žádné teorii čísel. Je založen na rozdílu mezi jednosměrnou a obousměrnou synchronizací neuronových sítí. Proto by něco jako protokol výměny neurálních klíčů mohlo vést k potenciálně rychlejším schémat výměny klíčů.[2]

Viz také

Reference

  1. ^ Singh, Ajit; Nandal, Aarti (květen 2013). „Neurální kryptografie pro výměnu tajných klíčů a šifrování pomocí AES“ (PDF). International Journal of Advanced Research in Computer Science and Software Engineering. 3 (5): 376–381. ISSN  2277-128X.
  2. ^ A b Klimov, Alexander; Mityagin, Anton; Shamir, Adi (2002). „Analýza neurální kryptografie“ (PDF). Pokroky v kryptologii. ASIACRYPT 2002. LNCS. 2501. 288–298. doi:10.1007/3-540-36178-2_18. ISSN  0302-9743. Citováno 2017-11-15.
  3. ^ A b Reyes, O. M .; Kopitzke, I .; Zimmermann, K.-H. (Duben 2009). "Permutační paritní stroje pro neurální synchronizaci". Journal of Physics A: Mathematical and Theoretical. 42 (19): 195002. Bibcode:2009JPhA ... 42s5002R. doi:10.1088/1751-8113/42/19/195002. ISSN  1751-8113.
  4. ^ Reyes, Oscar Mauricio; Zimmermann, Karl-Heinz (červen 2010). "Permutační paritní stroje pro neurální kryptografii". Fyzický přehled E. 81 (6): 066117. Bibcode:2010PhRvE..81f6117R. doi:10.1103 / PhysRevE.81.066117. ISSN  1539-3755. PMID  20866488.
  5. ^ Seoane, Luís F .; Ruttor, Andreas (únor 2012). "Úspěšný útok na neurální kryptografii založenou na permutaci-paritě-stroji". Fyzický přehled E. 85 (2): 025101. arXiv:1111.5792. Bibcode:2012PhRvE..85b5101S. doi:10.1103 / PhysRevE.85.025101. ISSN  1539-3755. PMID  22463268.