MARS (kriptográfia)

MARS
Teremtő Carolyn Barwick, Don Coppersmith
Létrehozva 1998_ _
közzétett 1998_ _
Kulcsméret 128-448 bit
Blokkméret 128 bites
A körök száma 32
Típusú Feistel hálózat

A MARS egy AES  jelölt titkosítás , amelyet az IBM fejlesztett ki , amely egy időben létrehozta a DES -t . Az IBM szerint a MARS algoritmus a cég 25 éves kriptoanalitikai szakértelmére támaszkodik, és magas kriptográfiai erőssége mellett a titkosítás lehetővé teszi a hatékony megvalósítást még az intelligens kártyák korlátai között is .

Don Coppersmith , a számos kriptológiával foglalkozó cikkéről ismert Lucifer -rejtjel ( DES ) egyik szerzője részt vett a rejtjel kifejlesztésében : az S-boxok szerkezetének javítása a differenciális kriptoanalízis ellen , a gyors mátrixszorzó módszer ( Coppersmith-Winograd algoritmus ), RSA kriptoanalízis . Rajta kívül Carolyn Barwick , Edward D'Evignon , Rosario Genaro , Shai Halevi , Charanjit Jutla , Steven M. Matyas Jr. vett részt az algoritmus kidolgozásában . , Luke O'Connor , Mohamed Perevyan , David Safford , Nevenko Zunich .

Az AES verseny szabályai szerint a résztvevők kisebb változtatásokat hajthatnak végre az algoritmusaikon. Ezt a szabályt kihasználva a MARSa szerzői megváltoztatták a kulcsbővítési eljárást, ami lehetővé tette a nem felejtő és a RAM követelményeinek csökkentését . Az alábbiakban az algoritmus módosított változatát közöljük.

Az AES verseny eredményei alapján a MARS bejutott a döntőbe, de kikapott Rijndaeltől . Az eredményhirdetés (2000. május 19.) után a fejlesztőcsapat saját véleményt alkotott az AES versenyről [1] , ahol véleményt nyilvánítottak ötletgazdájuknak az állításokról.

A MARS-t mostantól jogdíjmentes licenc alatt terjesztik világszerte .

Az algoritmus rövid leírása

A MARS egy blokkszimmetrikus titkosítás titkos kulccsal. A titkosítás blokkmérete 128 bit, a kulcs mérete 128 és 448 bit között változhat (32 bites többszörösek). Az alkotók arra törekedtek, hogy algoritmusukban ötvözzék a kódolás sebességét és a rejtjel erősségét. Az eredmény az egyik legerősebb algoritmus az AES versenyben .

Az algoritmus egyedülálló abban, hogy szinte az összes létező kriptoalgoritmusban használt technológiát felhasználta, nevezetesen:

A kettős keverés használata nehézséget okoz a kriptográfiai elemzésben , amit egyesek az algoritmus hátrányainak tulajdonítanak. Ugyanakkor jelenleg nincs hatékony támadás az algoritmus ellen, bár egyes kulcsok gyenge alkulcsokat generálhatnak.

Algoritmus szerkezete

A rejtjel szerzői a következő feltevésekből indultak ki:

  1. A műveletek megválasztása . A MARS-t az akkori legfejlettebb számítógépeken való használatra tervezték. A legjobb védekezési teljesítmény elérése érdekében a bennük támogatott legtöbb "erős hadművelet" került bele. Ez nagyobb biztonsági-utasítás arányt tett lehetővé a különböző titkosítási implementációkhoz.
  2. A rejtjel szerkezete . A kriptográfia területén szerzett húsz év tapasztalata vezette az algoritmus megalkotóit arra a gondolatra, hogy a titkosítás minden köre szerepet játszik a rejtjel biztonságának biztosításában. Különösen azt láthatjuk, hogy az első és az utolsó kör általában nagyon eltér az algoritmus közbenső ("központi") körétől a kriptoanalitikus támadások elleni védelem szempontjából. Így a MARSa létrehozásakor vegyes struktúrát alkalmaztunk, ahol az első és az utolsó titkosítási kör jelentősen eltér a köztestől.
  3. Elemzés . Valószínűleg egy heterogén szerkezetű algoritmus jobban bírja a jövő kriptoanalitikai módszereit, mint egy minden körben azonos algoritmus. A MARS algoritmus fejlesztői rendkívül heterogén szerkezetet adtak neki - az algoritmus körei nagyon különböznek egymástól.

A MARS-rejtjel a következő titkosítási módszereket használta:

  1. Munkavégzés 32 bites szavakkal . Minden művelet 32 ​​bites szavakra vonatkozik. vagyis az összes eredeti információ 32 bites blokkokra van osztva. (ha a blokk rövidebbnek bizonyult, akkor 32 bitesre párnázott)
  2. Feistel hálózat . A titkosítás készítői úgy vélték, hogy ez a titkosítási sebesség és a kriptográfiai erősség legjobb kombinációja. A MARS 3-as típusú Feistel hálózatot használ.
  3. Az algoritmus szimmetriája . A rejtjel különböző támadásokkal szembeni ellenálló képessége érdekében minden körét teljesen szimmetrikussá tették , vagyis a kör második része az első részének tükörismétlése.

A MARS algoritmus felépítése a következőképpen írható le:

  1. Előkulcsolás: A 32 bites A, B, C, D alblokkokat a modulo 2 32 kiterjesztett k 0 ...k 3 kulcs 4 töredékével fedik le ;
  2. 8 közvetlen keverési kört hajtanak végre (a titkosítási kulcs részvétele nélkül);
  3. 8 közvetlen kriptokonverziós kört hajtanak végre;
  4. 8 fordulós fordított kriptotranszformáció kerül végrehajtásra; [2]
  5. 8 kör visszakeverése történik, szintén a titkosítási kulcs részvétele nélkül;
  6. A k 36 ...k 39 kiterjesztett kulcs töredékeinek végső átfedése a modulo 2 32 kivonás műveletével .

Közvetlen keverés

Az első fázisban minden adatszót átfednek egy kulcsszóval, majd nyolc keverési kör következik a harmadik típusú Feistel hálózat szerint, némi további keveréssel együtt. Minden körben egy adatszót (úgynevezett forrásszó) használunk három másik szó módosítására (ezeket célszavaknak nevezzük). Az eredeti szó négy bájtját indexként kezeljük két S-boxba, S 0 -ba és S 1 -be , amelyek mindegyike 256 32 bites szóból áll, majd XOR vagy hozzáfűzzük a megfelelő S-box adatot három másik szóhoz.

Ha az eredeti szó négy bájtja b 0 , b 1 , b 2 , b 3 (ahol b 0 az első bájt és b 3 a magas bájt), akkor b 0 , b 2 -t használunk indexként az S blokkba. 0 és b 1 , b 3 bájtok , mint indexek az S 1 S-boxban . Először XOR S 0 az első célszóhoz, majd adjunk hozzá S 1 -et ugyanahhoz a szóhoz. Ezenkívül hozzáadjuk az S 0 -t a második célszóhoz, és blokkoljuk az XOR-S 1 - et a harmadik célszóhoz. Végül az eredeti szót 24 bittel jobbra forgatjuk.

A következő körben megforgatjuk a rendelkezésünkre álló négy szót: így az aktuális első célszó lesz a következő forrásszó, az aktuális második célszó az új első célszó, a harmadik célszó a következő második célszó, és a az aktuális forrásszó lesz a harmadik célszó.

Sőt, mind a négy kör után egy-egy célszót visszaadunk az eredeti szóhoz. Konkrétan az első és az ötödik kör után a harmadik célszót adjuk vissza az eredeti szóhoz, majd a második és hatodik kör után az első célszót adjuk vissza az eredeti szóhoz. Ezeknek a további keverési műveleteknek az az oka, hogy a keverési fázisban ki kell küszöbölni néhány egyszerű differenciális kriptotámadást , hogy a keverési fázisban megtörjék a szimmetriát, és gyors áramlást érjenek el.

Pszeudokód 1. // Kulcs első átfedése az adatokon 2. 3. 4. // Ezután 8 kör előre keverés 5. // használja a D[0]-t a D[1] módosításához; D[2]; D[3] 6. // 4 S-box elérése 7.8.9.10 . _ _ 11. // és az eredeti szót jobbra forgatjuk 12. 13. // további keverési műveleteket is végezhet 14. 15. // D[3] hozzáadása az eredeti szóhoz 16. 17. // D[1] hozzáadása az eredeti szóhoz 18. // D tömb elforgatása[ ] 19.20 .

Kriptográfiai mag

A MARS kriptográfiai magja egy 3-as típusú Feistel hálózat , amely 16 lövést tartalmaz. Minden körben a billentyű E-függvényt használjuk, amely szorzások, forgatások és S-box hívások kombinációja. A függvény egy adatszót vesz be bemenetként, és három szót ad vissza, amelyekkel a további három adat szóhoz az összeadás vagy XOR művelet végrehajtásra kerül. Ezenkívül a forrásszó 13 bittel balra van elforgatva.

A kriptotámadásokkal szembeni komoly ellenállás érdekében az E-függvény három kimeneti értékét (O 1 , O 2 , O 3 ) az első nyolc, az utolsó nyolc körben pedig különböző sorrendben használjuk. Az első nyolc körben az első, illetve a második célszóhoz az O 1 -et és az O 2 -t, a harmadik célszóhoz pedig az XOR O 3 -at adjuk . Az utolsó nyolc körben a harmadik, illetve a második célszóhoz adjuk az O 1 -et és az O 2 -t, az első célszóhoz pedig az XOR O 3 -at.

Pszeudokód 1. // Végezzen 16 titkosítási kört a kulccsal 2. 3. 4. 5. 6. // előre váltás első 8 köre 7. 8. 9. // majd 8 forduló inverz transzformáció 10. 11. 12. 13. // D tömb elforgatása[ ] 14. 15. E-funkció

Az E-függvény egy szó adatot vesz fel bemenetként, és további két kulcsszót használ, így három szót ad ki kimenetként. Ebben a függvényben három ideiglenes változót használunk, melyeket L, M és R jelölünk (balra, középre és jobbra).

Kezdetben R-t állítottunk be az eredeti szó értékére, 13 bittel balra tolva, M-et pedig az eredeti szavak és az első kulcsszó összegére. Ezután M első kilenc bitjét használjuk az 512 S-box egyikének indexeként (amit S 0 és S 1 fáziskeveréssel kombinálva kapunk ), és L-ben tároljuk a megfelelő S-box értékét.

Ezután a második kulcsszót megszorozzuk R-vel, az értéket R-ben tárolva. Ezután R 5 pozíciót elforgatunk balra (így az 5 magas bit az elforgatás után R 5 alacsony bitjévé válik). Ezután XOR R-t L-be írjuk, és az R alsó öt bitjét is megnézzük, hogy meghatározzuk az eltolás mértékét (0-ról 31-re), és elforgatjuk M-et balra ennyivel. Ezután elforgatjuk az R-t további 5 pozícióval balra, és XOR L-t L-be. Végül ismét az R 5 legkisebb jelentőségű bitjét tekintjük az elforgatás mértékének, és forgatjuk el L-t ennyivel balra. Így az E-függvény eredménye 3 szó (sorrendben): L, M, R.

Pszeudokód 1. // használjunk 3 ideiglenes változót L; M; R 2. //adja hozzá az első kulcsszót 3. // szorozzuk meg a második kulcsszóval, amelynek párosnak kell lennie 4. 5. // vegye S-box 6. 7. // ezek a bitek a következő forgatás mértékét írják le 8. // első forgatás változóval 9. 10. 11. 12. // ezek a bitek a későbbi forgatás mértékét írják le 13. // második változó forgatás tizennégy.

Fordított keverés

A vissza keverés szinte ugyanaz, mint az előre keverés, kivéve azt a tényt, hogy az adatok feldolgozása fordított sorrendben történik. Vagyis ha az előre és hátra keverést úgy kombináltuk, hogy a kimeneteik és bemeneteik fordított sorrendben kapcsolódjanak (D[0] előre és D[3] hátra, D[1] előre és D[2] hátra), akkor nem látná a keverés eredményét. A közvetlen keveréshez hasonlóan itt is egy forrásszót és három célszót használunk. Tekintsük az eredeti szó első négy bájtját: b 0 , b 1 , b 2 , b 3 . Az S-box indexeként b 0 , b 2 -t fogunk használni - S 1 és b 1 b 3 -t S 0 esetén . Az első célszóba XOR S 1 [b 0 ]-t, a második szóból vonjunk ki S 0 [b 3 ]-t, a harmadik célszóból vonjuk ki S 1 [b 2 ]-t, majd XOR S 0 [b 1 ]-t szintén a harmadik célszó . Végül az eredeti szót 24 hellyel balra forgatjuk. A következő körben a rendelkezésre álló szavakat úgy forgatjuk, hogy az aktuális első célszó legyen a következő forrásszó, az aktuális második célszó az első célszó, az aktuális harmadik célszó a második célszó, és az aktuális forrásszó. lesz a harmadik célszó. Ezenkívül a négy „speciális” kör valamelyike ​​előtt kivonjuk az egyik célszót a forrásszóból: a negyedik és a nyolcadik kör előtt az első célszót, a harmadik és a hetedik kör előtt a harmadikat. célszó a forrásszóból.

Pszeudokód 1. // Végezzen 8 kör visszakeverést 2. 3. // további keverési műveletek 4. 5. // D[3] kivonása az eredeti szóból 6. 7. // D[1] kivonása az eredeti szóból 8. // az S-dobozok négy elemére hivatkozunk 9. 10. 11. 12. 13. // és az eredeti szót balra forgatjuk tizennégy. 15. // D tömb elforgatása[] 16. 17. 18. // Kulcsszó kivonása 19.20 .

Dekódolás

A dekódolási folyamat a kódolási folyamat fordítottja. A visszafejtő kód hasonló (de nem azonos) a titkosító kóddal.

Közvetlen keverés 1. // Kezdeti kulcsfedés 2. 3. 4. // Ezután végezzen 8 kör előrekeverést 5. 6. // D[] tömb elforgatása 7. 8. // és az eredeti szót jobbra forgatva 9. 10. // S-box 4 elemének elérése 11. 12. 13. 14. 15. // további keverés 16. 17. // D[3] hozzáadása az eredeti szóhoz 18. 29. // D[1] hozzáadása az eredeti szóhoz húsz. Kriptográfiai mag 1. // Futtasson 16 kört az overlay gomb használatával 2. 3. // D[] tömb elforgatása 4. 5. 6. 7. 8. // utolsó 8 kör közvetlen sorrendben 9. 10. 11. // első 8 kör fordított sorrendben 12. 13. 14. 15.


Fordított keverés 1. // Végezzen 8 kör visszakeverést 2. 3. // D[] tömb elforgatása négy. 5. // további keverési műveletek 6. 7. // D[3] kivonása az eredeti szóból 8. 9. // D[1] kivonása az eredeti szóból 10. // Az eredeti szó elforgatása balra tizenegy. 12. // az S-dobozok négy elemére hivatkozunk 13. 14. 15. 16. 17. 18. // kivonunk egy alkulcsot az adatokból 19.20 .

Az algoritmus jellemzői

S-blokkok

Az S-box S létrehozásakor az elemeit egy pszeudo-véletlen generátor generálta, majd különböző lineáris és differenciális tulajdonságokra teszteltük őket. Pszeudo-véletlen S-boxokat hoztak létre a következő paraméterekkel:

(hol  van a j-edik szó az SHA-1 kimenetben ) Itt az i egy 32 bites előjel nélküli egész szám, és c1, c2, c3 néhány állandó. Az IBM megvalósításban: c1 = 0xb7e15162; c2 = 0x243f6a88 (amelyek a és a tört részének bináris jelölése ). A c3-at addig változtattuk, amíg megfelelő tulajdonságokkal rendelkező S-boxokat nem találtunk. Az SHA-1 adatfolyamokon működik, és kis endian-t használ.

S-box tulajdonságai

Differenciáltulajdonságok .

  1. Az S-box nem tartalmazhat csak 0-ból vagy 1-ből álló szavakat
  2. Minden két S 0 , S 1 S-boxnak 4-ből legalább 3-ban el kell térnie egymástól. (Mivel ez a feltétel rendkívül valószínűtlen pszeudo-véletlen S-boxok esetén, a két S-box közül az egyik módosul)
  3. Egy S-box nem tartalmaz két olyan elemet , hogy ill
  4. Az S-doboz nem tartalmaz két olyan elempárt, amelyek xor-különbsége egyenlő, és két olyan elempárt, amelyek rendezett különbsége egyenlő
  5. Az S-box minden két elemének legalább 4 bittel kell különböznie
A 4. követelmény nem teljesült az AES IBM implementációjában, de közvetlenül a végső után javították. Megfigyelték, hogy az S-dobozokban a következő elemek vannak jelen, ellentétben ezzel a követelménnyel [3] :
XOR Kivonás

Lineáris tulajdonságok

  1. Eltolási arány: . Szükséges, hogy ez a kifejezés legalább nagyobb legyen
  2. Egybites eltolás: Ennek a kifejezésnek legalább nagyobbnak kell lennie
  3. Kétbites eltolás: . Szükséges, hogy ez a kifejezés legalább nagyobb legyen
  4. Egy kis korreláció : . Ezt a kifejezést minimalizálni kell az összes lehetséges S-doboz között, amelyek kielégítik az előző pontokat

Kulcskiterjesztés

a kulcsbővítési eljárás a k[] kulcsok adott tömbjét, amely n darab 32 bites szóból áll (ahol n egy 4-től 14-ig terjedő egész szám), 40 elemű K[] tömbbé bővíti. Az eredeti kulcsnak nem kell semmilyen struktúrát követnie. Ezenkívül a kulcsbővítési eljárás garantálja az algoritmus kriptográfiai magjában a szorzáshoz használt kulcsszó alábbi tulajdonságait:

  1. a kulcsszó két legkisebb jelentőségű bitje mindig egy lesz
  2. egyik kulcsszó sem tartalmaz majd tíz egymást követő 0-t vagy 1-est

Leírjuk a kulcsbővítési algoritmust.

  1. Először a tömböt teljesen átírják egy 15 elemből álló köztes tömbbe .
  2. Ezt a folyamatot ezután 4-szer megismételjük. Minden iterációnál 10 kiterjesztett kulcsszó generálódik. változó, amely az aktuális iteráció számát mutatja. (0 az első iterációhoz, 1 a másodikhoz stb.)
    1. A T[] tömb átalakítása a következő szabály szerint történik:
    2. Ezután megkeverjük a tömböt az 1-es típusú Feistel hálózat 4 körével. A következő műveletet négyszer megismételjük:
    3. Ezután kiveszünk tíz szót a T[] tömbből, és a következő tíz szóként beillesztjük őket a K[] tömbbe, újra megkeverve:
  3. Végül végigmegyünk a szorzáshoz használt tizenhat szón (K[5],K[7]…K[35]), és módosítjuk őket, hogy megfeleljenek a fent leírt két tulajdonságnak.
    1. Felírjuk a K[i] két legkisebb jelentőségű bitjét a képlet szerint , majd e két bit helyett egyet írunk, .
    2. Egy M maszkot gyűjtünk a tíz vagy több nullából vagy egyesből álló sorozatokhoz tartozó w bitekhez. Például akkor és csak akkor , ha 10 vagy több azonos elemből álló sorozathoz tartozik. Ezután visszaállítjuk (0-ra állítjuk) azoknak az M-eknek az értékeit, amelyek nulla vagy egyes sorozatok végén vannak, valamint azokat, amelyek a magas és alacsony bitekben vannak. Például nézzen ki így a szavunk: (a vagy kifejezés azt jelenti, hogy 0 vagy 1 ismétlődik az i szóban). Ekkor az M maszk így fog kinézni: . Tehát visszaállítjuk a biteket 4, 15, 16, 28 pozícióba, azaz
    3. Továbbá a javításhoz egy négy szóból álló táblázatot használunk B[]. A B tábla összes eleme úgy van kiválasztva, hogy rájuk és minden ciklikus eltolódásukra teljesüljön az a tulajdonság, hogy nincs hét egymást követő 0-ja vagy 1-je.Az IBM implementációban a táblát használtuk . Ezután a két írott bitet j használjuk egy szó kiválasztására a B táblázatból, és a K[i-1] szó legkisebb jelentőségű öt bitjét az elemeinek elforgatására használjuk,
    4. Végül a p mintát az M: maszk figyelembevételével az eredeti szóra XOR-adjuk . Érdemes megjegyezni, hogy M 2 legkevésbé jelentős bitje 0, akkor a végszó két legkevésbé jelentős bitje egy lesz, és a B táblázat segítségével garantálható, hogy ne legyen 10 egymást követő 0 vagy 1 a szóban. szó

Az algoritmus előnyei és hátrányai

A rejtjel az AES jelöltje volt , a verseny első fordulójában a kulcsbővítési eljárás megváltoztatásával kapcsolatos kisebb változtatások után a MARS sikeresen bejutott a döntőbe.

A verseny döntőjében a MARS-nak számos hiányossága volt:

  1. Összetett szerkezet . Az algoritmus összetett heterogén felépítése nem csak elemzését, de megvalósítását is megnehezítette.
  2. Megvalósítás . Problémák adódtak a rejtjelezés olyan platformokon való implementálásakor, amelyek nem támogatták a 32 bites szorzást és tetszőleges számú bittel való elforgatást.
  3. Korlátozott erőforrások . Az algoritmus nem valósítható meg olyan hardveren, amely kevés működési vagy nem felejtő memóriával rendelkezik .
  4. Védelem . A MARS gyengén védett a futásidejű és energiafogyasztási támadásokkal szemben .
  5. Kulcskiterjesztés . A MARS a többi AES-döntősnél rosszabbul támogatta a kulcsfontosságú bővítést menet közben.
  6. Párhuzamosíthatóság . Az algoritmusnak csak egy kis részét lehet párhuzamosítani.

Mindezen hiányosságok mellett a szakértői bizottság kiemelte ennek az algoritmusnak az egyik fő előnyét - szimmetriáját. A feltárt hiányosságok alapján a MARS a várakozásoknak megfelelően nem lett az AES győztese.

Válasz az AES elemzőinek

Az AES verseny eredményhirdetése után a MARS csapata közzétette a teljes versenyről szóló beszámolóját. Megkérdőjelezte a verseny értékelésének szempontjait. Úgy vélték, hogy a titkosítás fő jellemzője éppen a megbízhatóság és az ellenállás (például a brute force támadásokkal szembeni) legyen, emellett az esküdtszék minden igényét megválaszolták az algoritmusuknak.

1. A MARS nem alkalmas hardveres implementációra A rejtjellel kapcsolatos panaszok között szerepelt a nehéz hardveres implementáció, ami az Internet megterheléséhez vezethet, valamint nagy méretű sémák bevezetése.

A fejlesztők azt állítják, hogy implementációjuk 1,28 Gbps sebességgel képes működni, ami az internet számára is elfogadható, és a chipjeik költsége is magas lehet (13 dollár egy 12 Gbps-os chip vagy 1 dollár egy 1 Gbps-os chip), de az ár a jövőben jelentősen csökkenni fog.

2. A MARS nem alkalmas kevés memóriával rendelkező eszközökön való megvalósításra A SMART kártyákon való megvalósításhoz az algoritmusok csak 128 bájt memóriával rendelkeznek. A kulcsbővítési eljáráshoz a MARS 512 bájtot igényel.

A fejlesztők úgy vélik, hogy nincs ok az AES bevezetésére egy ilyen sérülékeny, alacsony memóriájú erőforráson, mint az intelligens kártyák, mivel ezek az erőforrások egyszerűen és gyorsan konvertálhatók nyilvános kulcsú rendszerekké.

3. A MARS nem alkalmas FPGA -n való megvalósításra A MARS nem alkalmas olyan platformokon való megvalósításra, ahol a forgatás nem megengedett (külső tényezőktől függően).

A fejlesztők megjegyzik, hogy ez a probléma nem végzetes, de egy kis időbe telik, amíg az algoritmust hozzáigazítják ehhez a platformhoz.

4. A MARS kulcs kiterjesztése nagyon nehéz művelet

A fejlesztők azt állítják, hogy ez nevetséges kijelentés. Azt állítják, hogy megvan az "ideális" arány a kulcsonkénti többletmemória és az átviteli sebesség között (25 bájt kulcsonként).

Végezetül, a fejlesztők az AES résztvevőinek algoritmusairól adnak elemzést, melynek eredménye szerint a MARS és a Serpent volt a legjobb jelölt az AES címre. [egy]

Algoritmus biztonsági elemzés

Jelenleg nincs hatékony támadás ez ellen az algoritmus ellen. Bár számos gyenge pontja van [1] :

  1. A nagy számú ismétlődő nullát vagy egyest tartalmazó alkulcsok hatékony támadásokhoz vezethetnek a MARS ellen, mivel ezek alapján gyenge alkulcsok jönnek létre.
  2. A szorzásnál használt két legkisebb jelentőségű bit mindig 1. Így mindig van két olyan bemeneti bit, amely változatlan a kulcsszorzási folyamat során, valamint két kimeneti bit, amelyek függetlenek a kulcstól.

Irodalom

  • Panasenko S. P. Titkosítási algoritmusok. Különleges kézikönyv - Szentpétervár. : BHV-SPb , 2009. - S. 65-68, 219-228. — 576 p. — ISBN 978-5-9775-0319-8

Jegyzetek

  1. 1 2 3 Kriptográfiai kutatás . Letöltve: 2011. november 13. Az eredetiből archiválva : 2006. május 16..
  2. A 3. és 4. szakaszt a MARS algoritmus "kriptográfiai magjának" nevezik
  3. Kriptográfiai kutatás . Letöltve: 2011. november 14. Az eredetiből archiválva : 2009. május 23..

Linkek