MICKEY

V kryptografii je MICKEY ( anglicky  Mutual Irregular Clocking KEY generátor ) proudový šifrovací algoritmus . Existují dvě verze tohoto algoritmu - s délkou klíče 80 bitů (MICKEY) a 128 bitů (MICKEY-128). Byl vyvinut Stevem Babbagem a Matthewem Doddem v roce 2005 pro použití v systémech s omezenými zdroji. Tento algoritmus má jednoduchou hardwarovou implementaci s vysokým stupněm zabezpečení. Využívá nepravidelné časování posuvných registrů a také nové metody, které poskytují dostatečně velkou periodu a pseudonáhodnost sekvence kláves a odolnost proti útokům [1] . Algoritmus MICKEY se zúčastnil soutěže eSTREAM pořádané komunitou eCRYPT . Aktuální verze algoritmu je 2.0. Do portfolia eCRYPT vstoupila jako proudová šifra pro hardwarovou implementaci [2] .

Terminologie

Vstupní parametry:

Posloupnost kláves je označena z 0 , z 1 , z 2 … .

Omezení použití

Maximální délka klíčové sekvence získané pomocí jednoho páru (K, IV) je 2 40 bitů. Je však umožněno získat 240 takových sekvencí s použitím jedné K , za předpokladu, že IV je zvolena odlišně pro každou novou sekvenci.

Zařízení generátoru sekvence kláves

Registry

Generátor se skládá ze dvou registrů R a S , z nichž každý je dlouhý 100 bitů.

Bity těchto registrů jsou označeny ro , r1 , ..., r99 a so , si , ... , s99 v tomto pořadí.

Registrovat posun R

Sada zpětnovazebních vstupů registru R je označena RTAPS.

RTAPS = { 0, 1, 3, 4, 5, 6, 9, 12, 13, 16, 19, 20, 21, 22, 25, 28, 37, 38, 41, 42, 45, 46, 50, 52 , 54, 56,

58, 60, 61, 63, 64, 65, 66, 67, 71, 72, 79, 80, 81, 82, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97}


Operace směny CLOCK_R (R, INPUT_BIT_R, CONTROL_BIT_R) je definována následující posloupností akcí:

Registrovat posun S

Definujme čtyři sekvence COMP0 1 … COMP0 98 , COMP1 1 … COMP1 98 , FB0 0 … FB0 99 , FB1 0 … FB 99 podle tabulky:

i 0 jeden 2 3 čtyři 5 6 7 osm 9 deset jedenáct 12 13 čtrnáct patnáct 16 17 osmnáct 19 dvacet 21 22 23 24
COMP0 i 0 0 0 jeden jeden 0 0 0 jeden 0 jeden jeden jeden jeden 0 jeden 0 0 jeden 0 jeden 0 jeden 0
COMP1 i jeden 0 jeden jeden 0 0 jeden 0 jeden jeden jeden jeden 0 0 jeden 0 jeden 0 0 0 jeden jeden 0 jeden
FB0 i jeden jeden jeden jeden 0 jeden 0 jeden jeden jeden jeden jeden jeden jeden jeden 0 0 jeden 0 jeden jeden jeden jeden jeden jeden
FB1 i jeden jeden jeden 0 jeden jeden jeden 0 0 0 0 jeden jeden jeden 0 jeden 0 0 jeden jeden 0 0 0 jeden 0
i 25 26 27 28 29 třicet 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
COMP0 i jeden 0 jeden 0 jeden jeden 0 jeden 0 0 jeden 0 0 0 0 0 0 0 jeden 0 jeden 0 jeden 0 jeden
COMP1 i 0 jeden jeden jeden 0 jeden jeden jeden jeden 0 0 0 jeden jeden 0 jeden 0 jeden jeden jeden 0 0 0 0 jeden
FB0 i jeden jeden jeden jeden 0 0 jeden jeden 0 0 0 0 0 0 jeden jeden jeden 0 0 jeden 0 0 jeden 0 jeden
FB1 i 0 jeden jeden 0 0 jeden 0 jeden jeden 0 0 0 jeden jeden 0 0 0 0 0 jeden jeden 0 jeden jeden 0
i padesáti 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
COMP0 i 0 0 0 0 jeden 0 jeden 0 0 jeden jeden jeden jeden 0 0 jeden 0 jeden 0 jeden jeden jeden jeden jeden jeden
COMP1 i 0 0 0 jeden 0 jeden jeden jeden 0 0 0 jeden jeden jeden jeden jeden jeden 0 jeden 0 jeden jeden jeden 0 jeden
FB0 i 0 jeden 0 0 jeden 0 jeden jeden jeden jeden 0 jeden 0 jeden 0 jeden 0 0 0 0 0 0 0 0 0
FB1 i 0 0 jeden 0 0 0 jeden 0 0 jeden 0 0 jeden 0 jeden jeden 0 jeden 0 jeden 0 0 jeden 0 jeden
i 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
COMP0 i jeden jeden jeden 0 jeden 0 jeden jeden jeden jeden jeden jeden 0 jeden 0 jeden 0 0 0 0 0 0 jeden jeden
COMP1 i jeden jeden jeden 0 0 0 jeden 0 0 0 0 jeden jeden jeden 0 0 0 jeden 0 0 jeden jeden 0 0
FB0 i jeden jeden 0 jeden 0 0 0 jeden jeden 0 jeden jeden jeden 0 0 jeden jeden jeden 0 0 jeden jeden 0 0 0
FB1 i 0 0 0 jeden jeden jeden jeden 0 jeden jeden jeden jeden jeden 0 0 0 0 0 0 jeden 0 0 0 0 jeden

Funkce posunu registru S CLOCK_S je definována jako sekvence akcí:

Řízení časování celého oscilátoru

Definujme funkci CLOCK_KG(R, S, MIXING, INPUT_BIT) následovně:

Načtení a inicializace klíče

Registry se inicializují pomocí počátečních parametrů K a IV takto:

Generování posloupnosti kláves

Po načtení a inicializaci můžete začít generovat sekvenci kláves z 0 , z 1 , … , z L-1 :

Funkce

Nepravidelné taktování registru R

Důvody pro použití nepravidelného taktování

Streamové šifry, které používají nepravidelné taktování, jsou často vystaveny statistickým útokům. Používají předpoklad o tom, kolikrát byl registr posunut. Určité vlastnosti šifry jsou zodpovědné za možnost takového útoku:

  1. posun registru nejprve mkrát a poté nkrát dává stejný výsledek jako posun registru nejprve nkrát a poté mkrát, to znamená, že různé možnosti taktování dojíždět. To dává kryptoanalytovi výhodu, protože není potřeba určovat pořadí takových operací;
  2. také, pokud existuje mnoho možností taktování registru, pak je například pět posuvů registru dáno jednonásobným a čtyřnásobným taktováním nebo dvounásobným a trojnásobným, což dále snižuje počet kombinací pro výčet, což zjednodušuje statistický útok;
  3. Po libovolném posunu může nastat n-násobný posun.

Během vývoje tvořily základ MICKEY šifry následující myšlenky:

S ohledem na specifikované vlastnosti 1-3, které zhoršují kryptografickou sílu, se MICKEY chová následovně:

  1. platí pro registr R , protože hodiny J • hodiny 1 = hodiny 1 • hodiny J , ale neplatí pro registr S , jehož hodiny se nemění.
  2. neplatí pro oba registry. Pro R pro libovolné t ≤ 2 40 a u existuje nejvýše jeden pár n 1 a n J takový, že 0 ≤ n 1 , n J ≤ t , n 1 + n J = ta n 1 + n J J = u , kde n1 a nJ odpovídají jednoduchému a J-násobnému posunu .
  3. neplatí pro oba registry. Pro R pro jakékoli dané u existuje nejvýše jedna trojice t , n 1 a n J taková, že t ≤ 2 40 , 0 ≤ n 1 , n J ≤ t , n 1 + n J = ta n 1 + n J J =u .

Registr R poskytuje neopakovatelnost stavu generátoru a dobré lokální statistické vlastnosti. Vliv registru R na S také zabraňuje S smyčkování s malou periodou. Pokud J ≤ 2 60 , pak se stav registru R nebude opakovat při generování sekvence klíčů o délce až 2 40 bitů. A pokud J ≥ 2 40 , pak vlastnost (2) není pravdivá.

Výběr bitu řízení časování

Řídicí bity pro každý registr jsou voleny tak, aby závisely na obou registrech. Pro určení následných stavů generátoru tedy nestačí znát stav jednoho z registrů.

Množství entropie

Protože nepravidelné časování je řízeno bity ze samotného generátoru, může to snížit množství entropie v generátoru. Použití operace XOR a bitů ze dvou registrů k získání řídicího bitu zajišťuje, že neexistuje žádná korelace mezi tímto řídicím bitem a řízeným registrem. Díky tomu se entropie během provozu generátoru nesnižuje.

Poznámky

  1. Steve Babbage, Matthew Dodd. Streamová šifra MICKEY 2.0 Archivována 27. května 2011 na Wayback Machine  
  2. T. Good a M. Benaissa. Hardwarové výsledky pro vybrané kandidáty na streamovací šifry Archivováno 2. března 2011 na Wayback Machine  

Odkazy