Sunteți pe pagina 1din 8

PANAMA

Panama este o criptografie primitiv care poate fi folosit att ca o funcie hash i un
cifru flux. Pe baza StepRightUp, a fost proiectat de Joan Daemen i Craig Clapp i
prezentate n hrtie Rapid hash i Stream Criptare cu PANAMA pe Encryption
Software Fast (FSE) conferinta 1998. Cifrul a influenat o serie de alte modele, de
exemplu Mugi.

Primitiva poate fi folosit att ca o funcie hash i un cifru flux.Cifrul curent utilizeaz
o cheie de 256 de bii i performana cifrului este foarte bun ajunge la 2 cicluri pe
octet.
Panama este un modul criptografic, care poate fi folosit att ca o funcie hash
criptografic i cifru flux. Acesta este conceput pentru a fi foarte eficient n
implementri de software pe arhitecturi pe 32 de bii. Operaiunile sale de baz sunt
pe cuvinte de 32 de bii.

Panama are un mic workfactor pe-byte n acelai timp acordarea de nalt


securitate. Preul pltit pentru aceasta este o regie relativ mare de calcul stabilit
pentru fiecare execuie a funciei hash. Acest lucru face ca funcia de distribuire
Panama mai puin potrivite pentru hash de mesaje scurte dect echivalentul unei
pagini dactilografiate. Pentru cifrul flux, rezult ntr-o procedur de iniializare relativ
lung. Prin urmare, n aplicaii n care viteza este critic, ar trebui evitate de
resincronizare prea frecvente.

O aplicaie tipic pentru Panama ar putea fi criptare sau decriptare a datelor videorata n aplicaii de acces condiionat (Pay TV, de exemplu). Set-top box i televizoare
digitale includ din ce n ce procesoare media pentru decodare video comprimat i
pentru efectuarea altor sarcini de calcul intensiv-procesare a imaginii. Acesta este
un spaiu n care aplicaie rate de date sunt mari, procesoare de nalt performan
sunt din ce n ce susceptibile de a fi prezent, i decriptare trebuie s se fac (fr a
mpovra n mod nejustificat un procesor deja puternic ncrcate).
Principii de proiectare de baz
Panama este bazat pe o main de stat finit cu o stare 544-bit i tampon 8192-bit.
Statul i buffer poate fi actualizat prin efectuarea o repetare. Exist dou moduri
pentru funcia de repetare:

O repetare Push injecteaza o intrare i genereaz nici o ieire.


O repetare Tragei nu ia nici o intrare i genereaz o ieire. (A Tragei gol repetare
este o repetare Tragei n care producia este eliminat.)
Statul hash este actualizat cu o transformare neliniar paralel, tamponul
funcioneaz ca un registru de deplasare de feedback liniar, similar cu cel aplicat n
funcia de comprimare a hash Secure Algoritmul (SHA) (a se vedea "SHA: hash
Secure algoritm", de William Stallings, DDJ, aprilie 1994, i Hash Secure standard,
Informaii Federal standard procesare, publicaie 180, NIST, Departamentul de
Comert, Washington, DC, mai 1993). Transformarea actualizarea statul are mare
difuzie i distribuite neliniar. Designul su este menit s ofere neliniaritate mare i
difuzie rapid pentru mai multe iteraii. Acest lucru este realizat prin combinarea a
patru transformri distincte, fiecare cu contribuia sa specific - una pentru
neliniaritate, una pentru bit dispersie, una pentru difuzie, i una pentru injectare de
tampon i de intrare bii.

Tamponul se comport ca un feedback registru de deplasare liniar care asigur c


biii de intrare sunt injectate n statul pe un interval larg de iteraii. In modul Push,
intrarea registrului de deplasare este format prin intrarea extern; n modul Pull, de
o parte a statului. Funcia hash Panama este definit ca efectuarea iteraii Push cu
blocuri de mesaj ca intrare. Dac toate blocurile de mesaje au fost injectate, o serie
de iteraii Pull goale permite in ultimele blocuri de mesaje care urmeaz s fie
difuzat n tampon i de stat. Aceasta este urmat de o Pull iteraie final la preluarea
rezultatului hash.

Sistem de criptare curent Panama este iniializat de a face dou iteraii mpingei
pentru a injecta parametrul cheie i diversificarea, urmat de un numr de iteraii Pull
goale pentru a permite cheia i parametrul fi difuzat n tampon i de stat. Dup
aceast iniializare, sistemul este gata de a genera biti de chei de la petrecere a
timpului liber prin efectuarea de iteraii tragere.
specificaie
Statul este notat cu un [17] i este format din 17 (32-bit) adugai o [0] ntr-o
[16].Tampon b [32] [8] este un registru de deplasare de feedback liniar cu 32 de
etape, fiecare constnd din opt cuvinte de 32 de bii. Cele trei moduri posibile
pentru modulul Panama sunt:

Mod de Reset, n care statul i tamponul sunt setate la 0.

Mod de Push, n care se aplic o intrare de intrare opt cuvnt [8] i nu exist nici o
ieire.
Modul Tragei, n care nu exist nici o intrare i o ieire z opt cuvnt [8] este livrat.
Operaia de actualizare tampon este definit dup cum urmeaz: S b [32] [8] fie
coninutul buffer nainte de operaie de actualizare i B [32] [8] dup ea. n modul
mpingei n exemplul 1 (a), q [8] este INP bloc de intrare [8]; n mod Tragei, aceasta
este parte a statului n a [17], cu opt cuvinte care l compun date de Exemplul 1 (b).

Transformarea actualizare de stat este definit astfel: Fie a [17] este starea nainte de
aplicarea de transformare i A [17], dup el. In exemplul 2 (a), <<< denot
schimbare ciclic la stnga. n modul Push, p [8] valabil pentru intrarea INP [8], n
timp ce n modul Tragei face parte din tampon B [32] [8], cu opt cuvinte care l
compun date de Exemplul 2 (b). In modul de extragere, z ieire [8] este format din
opt cuvinte de stat, nainte de aplicarea operaiunii de actualizare; a se vedea
Exemplul 2 (c).

Figura 1 ilustreaz transformarea actualizarea stat, i Figura 2 prezint Push i Pull


moduri ale modulului Panama.
Panama Hash funciei
Funcia hash Panama harti un mesaj de lungime arbitrar M la un rezultat hash de
256 bii. Funcia hash Panama este executata in doua faze:

Garniture. M este convertit ntr-un ir M "cu o lungime care este un multiplu de 256
prin adugarea unui singur 1, urmat de un numr de 0 d-bii cu 0 <= d <256.
Repetare.Secven de intrare M '= m1 m2 ... mV este ncrcat n modulul Panama
conform tabelului 1.
Dup ce toate blocurile de intrare au fost ncrcate, se efectueaz nc 32 de iteraii
Pull goale. Apoi, rezultatul Hash este returnat. Numrul de mpinge i trage iteraii a
hash-o secven de intrare V-bloc este V + 33.

Panama poate fi transformat ntr-un MAC securizat prin simpla inclusiv o cheie
secret n intrare de mesaje.
Schema de criptare Stream Panama

Cifrul curent este iniializat de ctre nti ncrcarea 256-bit cheie K, 256-bit
parametru diversificarea Q, i efectuarea 32 suplimentare iteraii Pull goale. n
timpul de generare a cheii-curent, un bloc de opt cuvnt z este livrat la ieirea
pentru fiecare repetare. n practic, parametrul diversificare permite resincronizare
frecvent fr a fi nevoie de a schimba tasta. Tabelul 2 prezint schema de secven
a sistemului de criptare curent Panama.
Aspecte de implementare
Dependena grele Panama pe operaii logice de bii nelept face bine-potrivite
pentru punerea n aplicare pe 8-, 16- procesoare, 32, sau 64 de bii, cu excepia
utilizarea sa de rotaii pe 32 de bii este n favoarea oarecum arhitecturi pe 32 de
bii.

Pentru a determina performana maxim teoretic de Panama n hash i flux


modurile de cifrare pe o arhitectura de procesor corespunztor paralel, vom
identifica drumul critic prin algoritmul. Aceasta este calea nchis prin flowgraph
calcul algoritmului care are cea mai mare numrul de instruciuni ponderat,
ponderarea fiind numrul de cicluri de laten asociate cu fiecare tip de instruire.

De exemplu, pe cele mai multe procesoare rezultatul unei operaii simple, cum ar fi
adunarea sau XOR, poate fi utilizat n ciclul urmtor; aceste instruciuni se spune c
au o laten-un ciclu. La procesoarele moderne de nalt performan, este de
asemenea comun pentru schimburi i se rotete pentru a fi instruciuni singur ciclu.
Cu toate acestea, citind din memorie dureaz cteva cicluri. Chiar i atunci cnd
datele sunt n cache local CPU-l sufer de obicei o cu dou sau trei cicluri laten
pe procesoare moderne, profund conductor.

Calea de software critic Panama este prin transformarea actualizarea public, a crui
intrare este de ieire de iteraie precedente. Fiecare cuvnt a statului n asum
apte instruciuni ciclu de single-: patru XORs, unul sau, nu, iar o schimbare ciclic
(cu excepia cuvntului unrotated). Prin fuziunea operaiunile XOR ale straturilor de
difuzie i tampon de injecie, acestea pot fi implementate cu o adncime logic a
dou (nu trei). Prin urmare, drumul critic este de doar ase cicluri.

n plus fa de aceste 17 7-1 operaii logice, statul actualizarea transformare


implic un total de 16 citete (de la etapele tampon 4 i 16 pentru Tragei, sau de
intrare p i tampon scen 16 de Push). Actualizarea tamponul nu este pe drumul
critic software i este implementat cel mai eficient ca un tampon circular n memorie

cu indicii utilizate pentru a crea aparena unui registru schimbare n micare.


Executarea acestuia implic 16 citete, 16 operaiuni XOR, i 16 scrie (tampon
etapele 0 i 25), plus trei sau patru instruciuni pentru a actualiza fiecare dintre
indicii la etapele accesate pentru simularea registrul de deplasare, trei indicii fiind
necesar pentru Push i patru pentru Tragei.

n modul Pull, o suplimentare de opt citete, opt XORs, iar opt scrierile sunt necesare
pentru criptarea buffer de date. Astfel, ignornd pentru moment cteva instruciuni
suplimentare necesare pentru punerea n aplicare a bucla i meninerea indicii n
tampoane de date, avem un volum de munc de 191 de instruciuni pentru fiecare
repetare a Push i 218 pentru fiecare tragere. Acest lucru este echivalent cu
aproximativ ase instruciuni pe octet distribuit, sau 6,8 instructiuni pe cifrate octet.

O estimare a ct mai multe uniti de execuie pe deplin conductor algoritmul ar


putea exploata util poate fi obinut prin mprirea numrului total de operaiuni pe
o repetare de numrul de cicluri n drumul critic. Pentru Panama acest functioneaza
la 191 de ori 218 de instruciuni pe repetare mprit de ase cicluri pe repetare, din
care estimeaz c modurile hash i criptare s-ar putea exploata n mod rezonabil
procesoare cu 30 sau mai multe datapaths pe 32 de bii opereaz n paralel att
timp ct suficient de ei pot accesa memoria concomitent. Cu toate acestea, pe
procesoare practice n cazul n care (cache) memorie accese tind s fie limitate la
dou pe ciclu, Panama va dura cel puin 24 de cicluri pe repetare pentru hash, i 32
de cicluri de cifrare pentru cauza de acces gtuire memorie, astfel nct performana
ar putea ajunge punctul de saturaie memorie cu ct mai puine apte sau opt
uniti de execuie concurente.
Benchmarking Performan
Panama exceleaz pe procesoare cu substaniale la nivel de instruire paralelism. Cu
ultim generaie procesor Intel Merced de ateptat s aib mult mai mare paralelism
la nivel de instruire dect predecesorii si, eficien pe aceste procesoare va deveni
n curnd o preocupare de mas. ntre timp, unele dintre cele mai bune exemple de
procesoare extrem de paralele sunt n procesoare mass-media i unele DSP
avansate.

Pentru a demonstra debite realizabile de Panama, am scris o punere n aplicare


optimizat C (disponibil n format electronic, a se vedea "Centrul de Resurse", pagina
3) pentru Philips Trimedia procesorul TM-1000 - o Word CPU (VLIW) Instruciunea
foarte lung care conine cinci 32- bit de asamblare uniti de execuie care mpart un
set comun de 128 de registre de 32 de bii. Toate cele cinci uniti de execuie poate

efectua operaii aritmetice i logice, dar loturile, magazine, i schimburi sunt


susinute de fiecare doar dou dintre ele. Unitile dou de execuie care sprijin
schimbrile sunt distincte de cele dou care s sprijine loturile i magazine (a se
vedea http://www.trimedia.philips.com/). Avnd n vedere un mix de instruciuni
corespunztoare, procesorul poate emite pn la cinci instruciuni pe ciclu de ceas.

Pentru punerea n aplicare evaluate, Push i Pull rutine s-au exprimat ca fiecare
complet derulate cod inline C, lsnd compilatorul C Trimedia s recunoasc i s
exploateze suprapunerea admisibil ntre diferitele etape, care alctuiesc
transformarea actualizare de stat.

n C, utilizarea de indicii pentru a accesa memoria poate duce de multe ori la situaii
n care compilatorul nu poate fi sigur c memoria accesate printr-un singur indicator
nu este ceea ce este, de asemenea, accesat printr-un alt pointer. O astfel de aliasing
poate limita sever cantitatea de paralelism disponibil pentru compilator a exploata i
este de multe ori neintenionat din partea programatorului, deoarece standard de C
este limitat n capacitatea sa de a-i exprima adevratele constrngerile aliasing.
Adresele compilator Trimedia aceast problem prin adoptarea sintaxa indicatorul
restricionat propus de numeric C Extensii Grupul ANSI X3J11 (a se vedea
http://www.lysator.liu.se/c/restrict.html). Dac este cazul, codul de referin Panama
folosit indicii restrnse.

Bucla de iterarea mod Tragei compilate n 234 Trimedia instruciuni de asamblare.


Codul programat a fost bine ambalate de ctre compilator n mai puin de 50 de
instruciuni emite cicluri; c este, o rat de instruciuni cauz susinut foarte
aproape de maximul teoretic de cinci instruciuni pe ciclu. Codul compilat pentru
Push artat eficien comparabil. Codul optimizat C a fost evaluate pe un procesor
de 100 MHz Trimedia prin criptarea sau hashing un tampon de date 128 KB. Aceast
dimensiune tampon este ales ca de mai multe ori mai mare dect memoria cache de
date on-chip, astfel nct s fac referin s fie reprezentativ pentru criptare
durabile sau de performan hashing pentru memorie externa, n acest caz cuprins
de DRAM sincron. La nivelul de performan realizat de Panama, lime de band de
memorie extern poate deveni un factor important n performana general. Pentru
referin criptare bufferul de date a fost criptat pe loc, astfel nct s reduc la
minimum pierderea de performan care rezult din acceseaz memorie. Nu cache
off-chip a fost prezent (chip Trimedia nu accept de fapt off-chip cache).
O tranziteaz criptare de 4,5 bii pe ciclu a fost msurat, echivalentul a 1,8 cicluri pe
octet, sau 450 Mbii / s pe un procesor de 100 MHz. Aceasta include toate aeriene de
bucl i cicluri de pierdut la limit cache, memorie acces, i aa mai departe. Acest

lucru este mai puin frecvent rapid printre cifrurilor flux. Pentru comparaie, alte
dou cifrurilor software rapid recunoscute - RC4 (a se vedea criptografice aplicate,
ediia a doua, de Bruce Schneier, John Wiley & Sons, 1996) i SEAL (a se vedea "Un
software optimizat de criptare algoritm", de P. Rogaway i D . cldrarul n criptare
software Rapid, LNC 809, editat de R. Anderson, Springer Verlag-, 1994) sunt
raportate ca fiind capabil s 10,6 cicluri pe byte si 3,5 cicluri pe octet, sau 75 Mbii /
s i 230 de Mbii / sec, respectiv, cnd evaluate n aceleai condiii (a se vedea CSK
Clapp lui "Optimizarea unui Stream Cipher rapid pentru VLIW, SIMD, i superscalar
Procesoare," n criptare software Rapid, LNC 1267, editat de E. Biham, Springer
Verlag-, 1997). Panama este, de asemenea, uor mai rapid pe acest procesor dect
variantele Wake (de asemenea descrise n hrtie Clapp lui).

n special, Panama atinge avantajul vitez nu de a avea cel mai mic factorul de lucru
ntre aceste cifruri. Mai degrab, avantajul vitezei Panama vine din gradul
substanial de paralelism prezente n algoritmul, un atribut care poate fi bine
exploatat de ctre un procesor VLIW, cum ar fi Trimedia, i ar trebui s fac s
strluceasc pe Merced Intel.

Pe procesorul Trimedia, Panama realizeaz un debit hashing de 5.1 bii pe ciclu,


echivalentul a 1,6 cicluri pe octet, sau 510 Mbii / s pe un dispozitiv de 100 MHz. O
simpl comparaie arat c volumul de lucru pe-octet din Panama este similar cu
cea a MD4 (a se vedea "MD4 mesaj-Digest Algorithm, de RL Rivest, RFC 1320,
Internet Activitati Board, Internet confidenialitate Task Force aprilie 1992), cel mai
rapid membru al familiei de funcii hash la care MD5, SHA-1, i RIPEMD-160 toate
aparin. Repere pentru aceste hash-uri populare au fost publicate pentru procesor
Intel Pentium la "hashing pe Pentium," de A. Bosselaers, R. Govaerts, i J.
Vandewalle n Advances in Cryptology: Proceedings Crypto'96, LNC 1109, editat de
N. Koblitz, (Springer Verlag-, 1996) din care putem face comparaii la Panama.

Performan de o punere n aplicare optimizate C-cod Panama pe un 200 MHz


Pentium Pro (folosind o funcie de bibliotec pentru rotire) a fost msurat la 244
Mbii / s pentru cifrarea i 267 de Mbii / s pentru hash; c este, o capacitate de 1,2
bii pe ciclu de cifrare i 1,3 bii pe ciclu de hashing. In comparatie cu hashing viteze
raportate de Bosselaers et al. pentru SHA-1 i RIPEMD-160 din 0,24 bii pe ciclu si
0.21 bii pe ciclu, respectiv, pentru optimizarea C-cod. .. (Bosselaers et al
performanei raport pe un Pentium 90 MHz, n timp ce aici ne-am raporta
performanta pe un Pentium 200 MHz Pro Prin convertirea toate rezultatele n msura
normalizat de bii pe ciclu vom ncerca s furnizeze o baz uniform pentru
comparaie, cu toate acestea , s fie contieni de faptul c nici un alocaie a fost
fcut pentru diferenele arhitecturale ntre Pentium i Pentium Pro.) Bosselaers et

al. raporteaz, de asemenea, optimizate versiuni de asamblare cod de SHA-1 i


RIPEMD-160 ca realizarea 0.54 bii pe ciclu i 0.44 bii pe ciclu, respectiv. Acesta
este n prezent necunoscut ce mai mult mbuntire vitez ar putea fi realizat n
Panama prin aceasta codificare de asamblare, dar chiar i fr o astfel de
mbuntire arat cam un avantaj de 2 vitez pe versiunile de asamblare
codificate ale acestor alte hash-uri.

RIPEMD-160
RIPEMD (RACE Integritate Primitives Evaluare mesaj Digest) este o familie de funcii
hash criptografice dezvoltate n Leuven, Belgia, de Hans Dobbertin, Antoon
Bosselaers i Bart Preneel la grupul de cercetare osi la Katholieke Universiteit
Leuven, i publicat pentru prima dat n 1996. RIPEMD a fost bazeaz pe principiile
de proiectare utilizate n MD4, i este similar n performan a mai popular SHA-1.

RIPEMD-160 este un mbuntit, versiune 160-bit original RIPEMD, iar cel mai
frecvent versiunea n familie. RIPEMD-160 a fost proiectat n comunitatea academic
deschis, n contrast cu ANS proiectat SHA-1 i SHA-2 algoritmi. Pe de alt parte,
RIPEMD-160 pare a fi utilizate oarecum mai puin frecvent dect SHA-1, care poate fi
fcut s fie mai mic controlate SHA. RIPEMD-160 nu este cunoscut a fi constrns
prin orice patente.

La fel ca 160-bit, exist, de asemenea, 128, 256 i 320 de bii versiuni ale acestui
algoritm, numit RIPEMD-128, RIPEMD-256, i RIPEMD-320, respectiv. Versiunea pe
128 de bii a fost destinat doar ca un nlocuitor drop-in pentru original RIPEMD, care
a fost, de asemenea, pe 128 de bii, i care a fost dovedit a avea securitate
discutabil. Versiunile 256 i 320 de bii diminua doar sansa de coliziune accidentale,
i nu au niveluri mai ridicate de securitate (mpotriva atacurilor preimage) fa de,
respectiv, RIPEMD-128 i RIPEMD-160.

n august 2004, o coliziune a fost raportat pentru RIPEMD iniial. [1] Aceasta nu se
aplic la RIPEMD-160. [2]

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