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] .
Bemeneti paraméterek:
A billentyűk sorrendje z 0 , z 1 , z 2 … .
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.
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 .
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:
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:
Határozzuk meg a CLOCK_KG(R, S, MIXING, INPUT_BIT) függvényt a következőképpen:
A regiszterek inicializálása a K és IV kezdeti paraméterekkel történik az alábbiak szerint:
A betöltés és inicializálás után megkezdheti a z 0 , z 1 , … , z L-1 kulcssorozat generálását :
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:
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:
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.
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.
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.
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |