Sunteți pe pagina 1din 4

Algoritmul de criptare MARS

Algoritmul Mars este un cifru de criptare cu cheie publica, care lucreaza


pe 128 biti si cu o cheie de marime variabila. Datele de intrare ale algoritmului sunt
patru cuvinte pe 32 de biti A, B, C, D luate dintr-un text cu format normal si
rezultatele sunt tot 4 cuvinte pe 32 de biti A,B,C,D criptate. Algoritmul este de
tipul 3 Fiestel network impartit in trei etape:cryptographic core,16 circulare de
transmisie, prinsa intre celelalte doua etape de 8 circulare forword si backwords
mixing. Circuitele partii centrale criptografice furnizeaza o rezistenta puternica la
toate atacurile criptografice cunoscute, in timp ce circuitele celorlalte doua etape
ofera o securitate foarte larga impotriva noilor si necunoscutelor atacuri.
Mars accepta o marime variabila a cheilor, de la 4 la 14 cuvinte (adica de la 128
la 448 biti). Se foloseste o procedura de marire a cheilor pentru a mari cheia oferita
de user (care consta in n*32 de biti, unde n poate fi un numar intre 4 si 14) intr-o
cheie de tip vector de 40 de cuvinte pentru operatia de criptare/decriptare. Mars
foloseste o larga varietate de operatii pentru a oferi o combinatie de securitate,
viteza, si flexibilitate la implementare.
Acestea sunt:

adunari, scaderi si xor (sau exclusiv). Aceste operatii sunt folosite pentru a
combina datele si valorile cheilor. Pentru ca xor-ul este folosit impreuna cu
scaderea si adunarea, aceste operatii nu sunt comutative.
un tabel (table look-up) de 512 32 - cuvinte, numite S-box. O problema a acestui
tabel este implementarea software mai inceata (ceL putin 3 instructiuni per lookup).De acea look-upul pt S-box este folosit rar in Mars
rotatii fixe
rotatii dependente de date care pot duce la diferite slabiciuni. Aceasta problema
poate fi rezolvata in Mars combinand aceste rotatii cu inmultirea.
inmultiri sunt de forma modulo 232 care se potrivesc noilor arhitecturi de
calculatoare. Acestea erau de obicei o problema in algoritmii de criptare pentru ca
incetineau procesul. Astazi problema aceasta nu mai exista.
Mars poate obtine mari performante in software de cand se poate folosi de puternicele
operatii disponibile in computerele performante ale zilelelor noastre. Momentan o
implementatie C merge cu 85 Mbit/sec la un PowerPC cu 200Mhz. La un IBM
-compatibil PC cu un procesor de 200MHz Pentium-Pro, merge cu viteza de 65 Mbit/sec.
Algoritmul este cu mult mai rapid decat alte astfel de programe cum ar fi DES si TripleDES. Mars poate fi implementat cu succes si in hardware. El ocupa aproximativ 70,000
de celule.

Orientarea pe cuvinte ar trebui sa aduca o performanta pentru implementarile soft la


majoritatea arhitecturilor de calculatoare disponibile momentan.O optimizare totala a
implementarii se asteapta sa ruleze cu 100Mbit/sec.
WRAPPER LAYERS
Prima faza (forword mixing) incepe prin adaugarea cuvintelor cheie la cuvintele data,
urmata de 8 tururi ale S-box-ului. A doua faza (backword mixing) are 8 tururi ale
circuitelor inversate, urmata de sustragerea cheilor.
In ambele faze un cuvant data (numit cuvantul sursa) este folosit pentru a modifica
celelalte trei cuvinte (numite cuvinte tinta). Cei patru biti ai cuvantului sursa sunt vazuti
ca si indici int doua S-boxes, fiecare consistand in cuvinte de 256*32-bit. In ambele faze
cele patru cuvinte sunt rotate dupa fiecare etapa, astfel incat fiecare cuvant tinta care a
fost primul devine urmatorul cuvant sursa, al doilea cuvant tinta devine urmatorul cuvant
tinta, s.a.m.d.
Cateodata adaugam/sustragem unul dintre cuvintele tinta inapoi devenind cuvantul sursa
curent. In special in etapa urmatoare adaugam al treilea cuvant tinta la cuvantul sursa,
dupa primul si al cincilea circuit, si adaugam primul cuvant tinta inapoi la cuvantul sursa,
dupa al doilea si al saselea circuit. In faza backword sustragem primul cuvant tinta din
cuvantul sursa, inaite de al patrulea si al optulea circuit, si sustrag al treilea cuvant tinta
din cuvantul sursa, inainte de al treile si al saptelea circuit. Motivul pentru aceste operatii
de extragere este pentru a elimina unele dintre atacurile diferentiale mai usoare impotriva
celor doua faze.
CRIPTOGRAPHIC CORE
Este de tipul type-3 Feistel network, dar aici algoritmul foloseste o cheie E-function
spre deosebire de etapa forward mixing. Datele de iesire ale E-function-ului sunt de
asemenea adunate sau li se aplica un sau exclusiv cu celelalte cuvinte. Contine in total 16
pasi (8 forward si 8 backward). E-function-ul este o combinatie de diferite operatii
care combina doua cuvinte cheie cu cuvantul de intrare. Aceasta este de asemenea etapa
in care apare inmultirea. De asemenea contine un S-box lookup.E-function este unul
dintre cele mai mari parti de design din algoritmul Mars, diferitele functii fiind combinate
intr-un mod care maximizeaza avantajele fiecaruia.

cand multiplici partea mai putin semnificativa a bitilor datelor de intrare, efectul
este mai mare decat in cazul multiplicarii partii mai demnificative. Bitii care nu
incap in S-box sunt cei mai putin semnificativi din inmultire.
multimea de rotatii (13 biti) a fost setata sa maximizeze rezistenta la diferite
atacuri.
cea mai semnificativa parte din inmultirea datelor de iesire este afectata de mai
multi biti ale datelor de intrare decat partea cea mai putin semnificativa. De aceea

bitii ce mai semnificativi sunt folositi pentru a determina multimea rotatiilor


dependente de date.
cele trei linii din functie sunt atat de independente una de alta, pe cat e posibil
pentru a evita anularea si pentru a ingreuna obtinerea unei aproximari liniare.
cat timp M e cea mai slaba data de intrare a functiei, ea este pusa in mijlocul
datelor de iesire, astfel incat nu este folosit niciodata pentru a modifica cuvantul
sursa folosit pentru modificarea din urmatorul pas.

KEY EXPANSION
Algoritmul Mars are o lungime de chei variabila. Intervalul lungimii acestora este sau
intre 128-448 biti sau inrte 128-1248 biti (cu anumite restrictii). Din punct de vedere
intern algoritmul lucreaza cu 40 de cuvinte cheie, ceea ce este egal cu 1280 de biti. Dar
32 dintre acestia au valoarea constanta 1 (ultimii cei mai putin semnificativi 2 biti ai
cuvintelor cheie 5,7,9,,35), rezulta ca lungimea cheilor interne este de 1248 de biti.
Exista cateva restrictii pentru chei. Acelasi cuvant cheie care contine cei doi biti cu
valoare constanta 1 nu ar trebui sa contina 10 valori consecutive de 0 sau 1. Motivul
acestui criteriu este ca aceste cuvinte cheie sunt folosite pentru inmultiri in E-function
si cuvintele cheie fara aceste proprietati vor duce la slabirea cheilor la diferite atacuri.
Rutina de expansiune a cheilor foloseste aceleasi operatii (xor,shift,table look-up) ca si
criptarea/decriptarea. Pseudocodul pentru rutina key expansion (care foloseste intre 4 si
14 cuvinte cheie si produce o cheie valida Mars pe 1284 de biti) poate fi vazuta in Keyexpansion. Procedura de expansiune a cheilor consta in trei etape :

primul pas este expansiunea liniara care extinde, cheia originala oferita de user,
la 40 32 biti folosindu-se de o transformare liniara simpla.
al doilea pas este S-box care starneste cheia extinsa folosindu-se de sapte
circuite de tipul-1 Feistel network pentru a distruge relatiile liniare din cheie.
ultimul pas este cuvant cheie care modifica prin inmultire examinand cuvintele
cheie care sunt folosite in operatia de criptare/decriptare a algoritmului Mars
pentru a le multiplica si modifica in caz ca este nevoie.

SECURITATE
Nivelul de securitate al algoritmului cu chei de n-biti, pentru chei de lungime pana la cel
putin 256 de biti este de 2 la puterea n. Nivelul securitatii nu va creste mai repede sau asa
de repede pentru mai mult de 2 la puterea 256. Folosirea cheilor mai mari de 256 de biti
se face nu pentru siguranta, ci din comoditate.
Se estimeaza ca orice atac liniar sau diferential impotriva algoritmului, trebuie sa aiba o
complexitate a datelor mai mare decat 2 la puterea 128, ceea ce inseamna ca pentru
blocurile de lungime de 128 biti, aceste atacuri sunt imposibile. Pentru atacurile liniare,
nici o aproximatie liniara a transformarilor de chei nu are o inclinare mai mare de 2 la
puterea 69, ceea ce ar fi implicat o complexitate a datelor mai mare de 2 la puterea 128.

Pentru atacurile diferentiale unul dintre argumente ar fi cel care explica de ce este putin
probabil ca cineva sa construiasca o transformare a cheilor cu probabil mai mare decat 2
la puterea -240.
CONCLUZII
Sistemul criptografic hibrid propus permite crearea unor canale de comunicatii
criptografiate pe reteaua Internet si implementeaza o infrastructura locala de certificate
digitale. Acest tip de solutie poate fi creat efectiv pe platforme de programare ca Java in
SDK si Microsoft .Net Framework.
Mars este un cifru de blocare a cheilor rapid si sigur. Ofera securitate/performanta mai
mare in comparatie cu celelalte cifruri existente, profitand de avantajele oferite de
calculatoarele mai performante din ziua de azi. Ambele implementari, si cea software si
cea hardware, ale algoritmului sunt remarcabil de compacte. Combinatia de securitate
inalta, viteza mare, si flexibilitate face ca algoritmul Mars sa fie o alegere excelenta
pentru nevoile de criptare.

S-ar putea să vă placă și