MICKEY

A kriptográfiában a MICKEY ( angol  Mutual Irregular Clocking KEYstream generator ) egy adatfolyam-titkosítási algoritmus . Ennek az algoritmusnak két változata létezik – 80 bites kulcshosszúsággal (MICKEY) és 128 bites kulcshosszal (MICKEY-128). Steve Babbage és Matthew Dodd fejlesztette ki 2005-ben korlátozott erőforrásokkal rendelkező rendszerekben való használatra. Ennek az algoritmusnak egyszerű hardveres megvalósítása van, magas fokú biztonsággal. Az eltolási regiszterek szabálytalan időzítését, valamint olyan új módszereket alkalmaz, amelyek kellően nagy periódusú és pszeudo-véletlenszerűséget biztosítanak a kulcsszekvenciában, valamint a támadásokkal szembeni ellenállást [1] . A MICKEY algoritmus részt vett az eCRYPT közösség által szervezett eSTREAM versenyen . Az algoritmus jelenlegi verziója a 2.0. Bekerült az eCRYPT portfóliójába, mint a hardveres implementációhoz szükséges adatfolyam titkosítás [2] .

Terminológia

Bemeneti paraméterek:

A billentyűk sorrendje z 0 , z 1 , z 2 … .

Használati korlátozások

Az egy pár (K, IV) használatával kapott kulcssorozat maximális hossza 2 40 bit. Azonban 240 ilyen szekvencia nyerhető egy K használatával , feltéve, hogy a IV -et minden új szekvenciához másként választjuk.

Kulcssorozat generátor eszköz

Regisztrálok

A generátor két R és S regiszterből áll , amelyek mindegyike 100 bit hosszú.

Ezeknek a regisztereknek a bitjei rendre r 0 , r 1 , ..., r 99 és s 0 , s 1 , ..., s 99 .

Regisztráljon shift R

Az R regiszter visszacsatoló bemeneteinek halmazát RTAPS-nek nevezzük.

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}


A CLOCK_R eltolási műveletet (R, INPUT_BIT_R, CONTROL_BIT_R) a következő műveletsor határozza meg:

Regisztráljon műszakot S

Határozzuk meg négy szekvenciát COMP0 1 … COMP0 98 , COMP1 1 … COMP1 98 , FB0 0 … FB0 99 , FB1 0 … FB 99 a táblázat szerint:

én 0 egy 2 3 négy 5 6 7 nyolc 9 tíz tizenegy 12 13 tizennégy tizenöt 16 17 tizennyolc 19 húsz 21 22 23 24
COMP0 i 0 0 0 egy egy 0 0 0 egy 0 egy egy egy egy 0 egy 0 0 egy 0 egy 0 egy 0
COMP1 i egy 0 egy egy 0 0 egy 0 egy egy egy egy 0 0 egy 0 egy 0 0 0 egy egy 0 egy
FB0 i egy egy egy egy 0 egy 0 egy egy egy egy egy egy egy egy 0 0 egy 0 egy egy egy egy egy egy
FB1 i egy egy egy 0 egy egy egy 0 0 0 0 egy egy egy 0 egy 0 0 egy egy 0 0 0 egy 0
én 25 26 27 28 29 harminc 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
COMP0 i egy 0 egy 0 egy egy 0 egy 0 0 egy 0 0 0 0 0 0 0 egy 0 egy 0 egy 0 egy
COMP1 i 0 egy egy egy 0 egy egy egy egy 0 0 0 egy egy 0 egy 0 egy egy egy 0 0 0 0 egy
FB0 i egy egy egy egy 0 0 egy egy 0 0 0 0 0 0 egy egy egy 0 0 egy 0 0 egy 0 egy
FB1 i 0 egy egy 0 0 egy 0 egy egy 0 0 0 egy egy 0 0 0 0 0 egy egy 0 egy egy 0
én ötven 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 egy 0 egy 0 0 egy egy egy egy 0 0 egy 0 egy 0 egy egy egy egy egy egy
COMP1 i 0 0 0 egy 0 egy egy egy 0 0 0 egy egy egy egy egy egy 0 egy 0 egy egy egy 0 egy
FB0 i 0 egy 0 0 egy 0 egy egy egy egy 0 egy 0 egy 0 egy 0 0 0 0 0 0 0 0 0
FB1 i 0 0 egy 0 0 0 egy 0 0 egy 0 0 egy 0 egy egy 0 egy 0 egy 0 0 egy 0 egy
én 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 egy egy egy 0 egy 0 egy egy egy egy egy egy 0 egy 0 egy 0 0 0 0 0 0 egy egy
COMP1 i egy egy egy 0 0 0 egy 0 0 0 0 egy egy egy 0 0 0 egy 0 0 egy egy 0 0
FB0 i egy egy 0 egy 0 0 0 egy egy 0 egy egy egy 0 0 egy egy egy 0 0 egy egy 0 0 0
FB1 i 0 0 0 egy egy egy egy 0 egy egy egy egy egy 0 0 0 0 0 0 egy 0 0 0 0 egy

Az S CLOCK_S regisztereltoló függvény műveletek sorozataként van definiálva:

A teljes oszcillátor időzítése

Határozzuk meg a CLOCK_KG(R, S, MIXING, INPUT_BIT) függvényt a következőképpen:

Kulcsbetöltés és inicializálás

A regiszterek inicializálása a K és IV kezdeti paraméterekkel történik az alábbiak szerint:

Kulcssorozat generálása

A betöltés és inicializálás után megkezdheti a z 0 , z 1 , … , z L-1 kulcssorozat generálását :

Jellemzők

Az R regiszter szabálytalan időzítése

A szabálytalan órajel használatának okai

A szabálytalan órajelet használó adatfolyam titkosítások gyakran statisztikai támadásoknak vannak kitéve. Feltételezést használnak arra vonatkozóan, hogy a regiszter hányszor lett eltolva. A titkosítás bizonyos jellemzői felelősek egy ilyen támadás lehetőségéért:

  1. a regisztereltolódás először m-szer, majd n-szer ugyanazt az eredményt adja, mint a regisztereltolódás először n-szer, majd m-szer, azaz különböző órajel-lehetőségek ingáznak. Ez előnyt jelent a kriptoanalitikusnak, mivel nincs szükség az ilyen műveletek sorrendjének meghatározására;
  2. továbbá, ha sok regiszter-órajelezési lehetőség van, akkor például öt regisztereltolást ad egy- és négyszeres órajelművelet, vagy kétszeres és háromszoros, ami tovább csökkenti a felsoroláshoz szükséges kombinációk számát, leegyszerűsítve a statisztikai támadás;
  3. N-szeres eltolódás bármely eltolódás után bekövetkezhet.

A fejlesztés során a következő ötletek képezték a MICKEY titkosítás alapját:

A titkosítási erősséget rontó megadott 1-3 tulajdonságok tekintetében a MICKEY a következőképpen viselkedik:

  1. igaz az R regiszterre , mivel J óra • óra 1 = óra 1 • óra J , de nem igaz az S regiszterre , amelynek óraműveletei nem ingáznak.
  2. nem igaz mindkét regiszterre. R esetén bármely t ≤ 2 40 és u esetén legfeljebb egy n 1 és n J pár van úgy, hogy 0 ≤ n 1 , n J ≤ t , n 1 + n J = t és n 1 + n J J = u , ahol n 1 és n J egyetlen és J-szeres eltolódásnak felel meg.
  3. nem igaz mindkét regiszterre. R esetén bármely adott u értékre legfeljebb egy t , n 1 és n J hármas létezik úgy , hogy t ≤ 2 40 , 0 ≤ n 1 , n J ≤ t , n 1 + n J = t és n 1 + n J J =u .

Az R regiszter biztosítja a generátor állapotának megismételhetetlenségét és jó helyi statisztikai tulajdonságokat. Az R regiszter S -re gyakorolt ​​hatása azt is megakadályozza , hogy S kis periódussal hurkoljon. Ha J ≤ 2 60 , akkor az R regiszter állapota nem ismétlődik meg legfeljebb 2 40 bites kulcssorozat generálásakor. És ha J ≥ 2 40 , akkor a (2) tulajdonság nem igaz.

Időzítésvezérlő bit kiválasztása

Az egyes regiszterekhez tartozó vezérlőbiteket úgy választjuk meg, hogy azok mindkét regisztertől függjenek. Ezért nem elegendő az egyik regiszter állapotának ismerete a generátor következő állapotainak meghatározásához.

Az entrópia mennyisége

Mivel a szabálytalan időzítést magából a generátorból származó bitek vezérlik, ez csökkentheti a generátor entrópia mennyiségét. Az XOR művelet és a két regiszter bitjeinek használata egy vezérlőbit beszerzéséhez biztosítja, hogy ne legyen korreláció a vezérlőbit és a vezérelt regiszter között. Ennek köszönhetően a generátor működése során az entrópia nem csökken.

Jegyzetek

  1. Steve Babbage, Matthew Dodd. A MICKEY 2.0 adatfolyam titkosítása archiválva : 2011. május 27. a Wayback Machine -nél  
  2. T. Good és M. Benaissa. Hardvereredmények a kiválasztott adatfolyam-rejtjelezőkhöz Archiválva : 2011. március 2. a Wayback Machine -nél  

Linkek