PIN-ul de rupere de vize
02 iulie 2008 în bancar şi EFTPoS
Mai jos este un articol recent am găsit. Acest una dintre cele mai complete Descrierile de PIN-ul de verificare Valoare (PVV) tocat.
Am crezut că am să-l reproduc aici pentru meu locale de referinţă.
Ca s-au făcut comentarii cu privire la gramatica utilizate în textul original, am corectat unele dintre erorile evidente în acelaşi timp menţinând în contextul materialul original.
http://69.46.26.132/ ~ biggold1/fastget2you/tutorial.php
--- Original Text ----
Cuvânt înainte
Ai mai întreb ce s-ar întâmpla dacă ai pierdut carte de credit sau debit şi găseşte-l pe cineva. Ar fi această persoană să aibă posibilitatea de a retrage numerar de la un bancomat ghicitul, cumva, PIN-ul? Mai mult decât atât, dacă ai fi fost cineva care constată lui carte te-ar încerca să ghicesc PIN-ul şi să ia şansa de a obţine unele uşor de bani? Desigur, răspunsul la ambele întrebări ar trebui să fie "nu". Acest lucru nu se face cu cea de-a doua întrebare, este o chestiune de etică personale. Am alăturat încercaţi să răspundeţi la prima întrebare.
Toate informaţiile utilizate pentru acest lucru este public şi poate fi găsit în mod liber la Internet. Restul este o chestiune de matematică şi de programare, astfel, să putem afla ceva şi au de distractie. Eu nu au evidenţiat nici secretele. Mai mult, scopul (şi definitivă) de acest lucru este de a demonstra că codul PIN de algoritmi sunt încă suficient de puternici pentru a furniza suficient de securitate. Ştim cu toţii tehnologie nu este punctul slab.
Acest lucru analize, una din cele mai comune codul PIN de algoritmi, VISA PVV, folosite de multe cărţi de ATM-uri (de credit şi carduri de debit) şi încearcă să afle cum este rezistent la codul PIN de atacurile ghicitul. Prin "ghicită" Eu nu zic aleatoare a alege un cod PIN şi Incerc-o într-un bancomat. Este bine cunoscut faptul că în general, ne sunt prezentate trei studii clinice pentru a intra în dreptul PIN, ATM-uri, dacă nu am ţine de carte. Ca VISA PIN-ul este de patru cifre de mult timp este uşor de a deduce că şansa de aleatoare pentru un PIN de ghicitul este de 3 / 10000 = 0.0003, se pare suficient de scăzut pentru a fi în siguranţă; ai nevoie de ea înseamnă să-ţi pierzi carte de mai mult de trei mii de ori ( sau de a pierde mai mult de trei mii de carduri în acelaşi timp:) până când există o şansă rezonabilă de a pierde bani.
Ce nu-mi înţelege prin "ghicită" a fost rupere de codul PIN de algoritm dat, astfel încât orice carte, puteţi imediat să ştiu asociate codul PIN. Prin urmare, acest document de studii în care această posibilitate, analiza de algoritm şi de a propune o metodă de atac. În final ne da un instrument care pune în aplicare de atac şi prezenta rezultatele estimate despre sansa de a sparge sistemul. Reţineţi că, atâta timp cât alte bancare de securitate legate de algoritmi (alte codul PIN de formate, cum ar fi IBM, PIN sau carte de validare de semnături, cum ar fi CVV sau CVC) sunt similare cu VISA PIN-ul, aceeaşi analiză se poate face obţinerii de aproape aceleaşi rezultate şi concluzii.
Unul dintre cele mai comune codul PIN de algoritmi este VISA PIN-ul de verificare Valoare (PVV). Clientul este dat de un cod PIN şi o dungă magnetic carte. Codificat în dungă magnetic este o perioada de patru cifre numărul, numit PVV. Acest număr este o semnătura criptografică a PIN-ul şi alte date legate de carte. Când un utilizator intra lui / ei codul PIN de la ATM-uri citeşte magnetic dungă, encrypts şi trimite toate aceste informaţii la o centrală de computer. Există un proces PVV se calculeaza de client introdus PIN-ul şi informaţiile despre cartea de criptografice cu un algoritm. Procesul PVV este, comparativ cu PVV stocate în carte, dacă acestea se potrivesc cu centrale de calculator revine la ATM-uri de autorizare pentru tranzacţie. Vezi mai în detaliu.
De descriere a PVV algoritm poate fi găsit în două documente legate de la pagina anterioară. În rezumat, în aceasta constă de criptare de 8 octeţi (64 biţi) şir de date, numit Transformată de Securitate Parametru (TSP), cu DES algoritm (DEA) în electronica Cod Rezerva Mod (BCE) folosind o cheie secretă pe 64 biţi. De PVV este derivat de la iesire din procesul de criptare, care este un şir de octeţi 8. Cele patru cifre ale PVV (de la stânga la dreapta) să corespundă cu primele patru cifre zecimale (de la stânga la dreapta) din datele de ieşire de la DES, atunci când consideră ca fiind o hexazecimal 16 de caractere (16 x 4 biţi = 64 biţi) şir de caractere. Dacă nu există patru cifre zecimale între hexazecimal de 16 caractere atunci PVV este completat luate (de la stânga la dreapta) şi caractere non zecimal decimalizing-le prin utilizarea de conversie A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Iată un exemplu:
De iesire de la DES: 0FAB9CDEFFE7DCBA
PVV: 0975
Strategia de a evita decimalization sar de caractere până la ora patru cifre zecimale sunt găsite (care se întâmplă să fie aproape de toate de ori aşa cum vom vedea mai jos) este foarte inteligent, pentru că evită orice subiectivism un important în distribuţia de cifre care s-a dovedit a fi fatale pentru alte sisteme, cu toate că impactul pe acest sistem ar fi mult mai mici. Vezi de asemenea, o problemă legată nu se aplică la VISA PVV.
De TSP, vazut ca o hexazecimal 16 de caractere (64 biţi) şir de caractere, este format (de la stânga la dreapta), cu 11 cifre de la dreapta PAN (numărul de card) exclude ultimele cifre (verifica cifre), o cifră de la 1 la 6 care selecteaza cheie de criptare secretă şi, în final, cele patru cifre din codul PIN. Iată un exemplu:
PAN: 1234 5678 9012 3445
Selector cheie: 1
PIN: 2468
TSP: 5678901234412468
Evident, problema de rupere VISA PIN-ul constă în găsirea de secrete pentru cheie criptare DES. Metoda pentru că este de a face un "brute force" cheie de căutare de spaţiu. Reţine că aceasta nu este singura metodă, unul ar putea încerca să găsească o slăbiciune în DEA, mulţi au încercat, dar acest standard de vechi este încă în largă utilizare (fost înlocuit acum de AES şi RSA, totuşi). Acest lucru demonstrează, este suficient de robustă, astfel încât "brute force" este singura metodă viabilă din punct de vedere (există unele atacuri mai bine, dar nu practică în cazul nostru, pentru un rezumat vezi LASEC memoria de murdare şi pentru detalii, a se vedea Biham & Shamir 1990, Biham & Shamir 1991, Matsui 1993, Biham & Biryukov 1994 şi Heys 2001).
Cheia selectorul de cifre, foarte probabil a fost introdusă pentru a acoperi posibilitatea de a o cheie de compromis. În acest caz, ele au doar de a emite carduri de noi, folosind un alt selector cheie. Mai vechi carduri pot fi înlocuite cu altele noi, sau pur şi simplu de ATM-uri pot scrie un nou mod transparent PVV (corespunzător la noua cheie şi păstrarea acelaşi cod PIN) data viitoare clientul utilizează lui / ei carte. Pentru a agita de securitate toţi utilizatorii ar trebui să fie întrebat PINS lor de a schimba, cu toate acestea, ar fi jenant pentru banca de a explica motivul, deci foarte probabil ca nu le-ar face o astfel de cerere.
Pregătirea de atac
Brute force "Un atac de criptare constă în a cunoaşte un TSP cu PVV posibil, folosind toate cheile de criptare şi compara obţinute de fiecare PVV cunoscut cu PVV. Atunci când un meci este de ne-am găsit un candidat cheie. Dar cât de multe avem cheile pentru a încerca? După cum am spus mai sus de cheie este de 64 de biţi lung, aceasta ar însemna că trebuie să încercaţi 2 ^ 64 chei. Cu toate acestea acest lucru nu este adevărat. De fapt numai 56 de biţi sunt eficiente în DES, pentru că una chei de biţi (de cel mai puţin semnificativ) din fiecare octet rezervat a fost ca un istoric de control pentru alţii; în practică cele 8 biţi (câte unul pentru fiecare din cele 8 octeţi) sunt ignorate.
Prin urmare, DES cheie spaţiu constă din 2 ^ 56 chei. Dacă am încerca toate aceste chei va vom găsi una şi doar un singur meci, corespunzătoare la banca secrete cheie? Sigur nu. Noi va obţine mai multe chei de potrivire. Aceasta este din cauză că PVV este doar o mică parte (un sfert) din DES iesire. Mai mult de PVV este degenerated pentru că unele din cifre (cele între 0 şi 5 după ultima, vazut de la stânga la dreapta, cifre între 6 şi 9) pot veni de la un sir de zecimal sau hexazecimal decimalized de la o cifră de DES iesire. Astfel de multe chei va produce un DES ieşire care randamentele la acelaşi potrivire PVV.
Atunci de ce putem face pentru a găsi adevărata cheie printre cei alte fals pozitive cheile? Pur şi simplu ne-am pentru a cripta un al doilea diferite TSP, de asemenea, cunoscut cu PVV, dar numai folosind chei de candidatul care a dat un rezultat pozitiv de potrivire cu primul TSP-PVV pereche. Cu toate acestea nu există nici o garanţie nu vom ajunge din nou multe "pozitive false", împreună cu adevărat cheie. Dacă este aşa, vom avea nevoie de a treia TSP-PVV pereche, repetaţi procesul şi aşa mai departe.
Înainte de a începe să nostru de atac ne-am să ştiu cât de multe TSP-PVV vom avea nevoie de perechi. Pentru că avem de a calcula probabilitatea pentru o aleatoare DES iesire la un randament de potrivire a PVV doar de sansa. Există mai multe modalităţi de a calcula acest număr şi eu aici va utiliza o abordare simplă uşor de înţeles, dar care necesită unele de fond în matematică de probabilitate.
O probabilitate poate fi întotdeauna considerată ca raport favorabil de cazuri de posibile cazuri. În problema noastră numărul de cazuri posibile este dat de schimbare totală de 16 elemente (de la 0 la F hexazecimal cifre) într-un grup de 16 dintre ei (hexazecimal de 16 cifre ale DES iesire). Aceasta este data de 16 ^ 16 ~ 1.8 * 10 ^ 19 de curs care coincide cu 2 ^ 64 (diferite numere de 64 de biţi). Acest set de numere pot fi separate în cinci categorii:
Cei cu cel puţin patru cifre zecimale (0 la 9) printre hexazecimal de 16 cifre (0 la F) din DES iesire.
Cei exact cu doar trei cifre zecimale.
Numai cele cu exact două cifre zecimale.
Cei cu exact o singură cifră zecimală.
Aceste cifre zecimale, fără (toate între A şi F).
Să calcula cât de multe numere se încadrează în fiecare categorie. Dacă vom eticheta hexazecimal de 16 cifre ale DES X1 de ieşire ca să x16 atunci ne putem etichetare în primele patru cifre zecimale din orice număr dat de prima categorie ca Xi, Xj, şi XK XL. Numărul de combinaţii diferite cu acest profil este dat de produs 6 i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 6 LK-1 * 10 * 1616 în cazul în care l-6 ' S venit de la numărul de posibilităţi pentru un sir de la A la F, de 10 de venit de la posibilităţile de la 0 la 9 cifre, şi la 16 vine de la posibilităţile de la 0 la F cifre. Acum, cu numărul total din prima categorie este pur şi simplu dat de acest produs summation de peste I, J, K, L de la 1 la 16, dar cu i <j <k <l. Dacă veţi face unele matematica de lucru se va vedea asta este egal cu produsul dintre 104 / 6 cu peste summation i de la 4 la 16 de (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1.8 * 1019.
Analogously numărul de cazuri în cea de-a doua categorie este data de peste summation i, j, k de la 1 la 16, cu i <j <k a produsului 6i-1 * 10 * 6j-i-1 * 10 * 6k-j -1 * 10 * 616-k pe care puteţi să-l lucreze pentru a fi 16! / (3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14 / (3 * 2) * 103 * 613 = 56 * 104 * 613 * 1015 ~ 7.3. În mod similar, pentru a treia categorie, avem peste summation i, j de la 1 la 16, cu i <j din 6 i-1 * 10 * 6j-i-1 * 10 * 616-j, care este egal cu 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 * 1014 ~ 9.4. Din nou, pentru a patra categorie avem de peste summation i de la 1 la 16 din 6i-1 * 10 * 616-i = 160 * 615 * 1013 ~ 7.5. Şi, în final, suma de cazuri, în cea de-a cincea categorie este dat de schimbare totală de şase elemente (de la A la F cifre) într-un grup de 16, care este, 616 ~ 2.8 * 1012.
Sper că ai urmat în calculele de până la acest punct, de o parte este greu de facut. Acum, ca o dovadă că totul este în regulă, puteţi suma de numărul de cazuri în 5 categorii si-l vezi este egal cu numărul total de cazuri posibile am calculat înainte. Nu a operaţiunilor utilizând 64 de biţi sau de numere de rotunjire (pentru flotantă) sau prea plin (de intregi) erori nu va lasa sa ajung exact la rezultat.
Pana acum ne-am calculat numărul de cazuri posibile în fiecare din cele cinci categorii, dar noi suntem interesaţi în a obţine numărul de cazuri favorabile, în loc. Este foarte uşor să obţină de la acesta din urmă a fost ca asta este doar de stabilire a combinaţie a celor patru cifre zecimale (sau de cifre necesare hexazecimal dacă nu există patru cifre zecimale) din PVV lăsându-le în loc de liberă. În practică, aceasta înseamnă de 10 de cotitură în formula de mai sus în 1 şi de volumul necesar de 6 în 1 a lui, dacă nu există patru cifre zecimale. Asta este, avem de a împărţi primul rezultat de 104, cea de-a doua de 103 * 6, al treilea de 102 * 62, cel de-al patrulea unul de 10 * 63 şi cea de-a cincea unul de 64. Apoi, numărul de cazuri favorabile, în cinci categorii sunt de aproximativ 1.8 * 1015, 1012 * 1.2, 2.6 * 1011, 1010 * 3.5, 2.2 *, respectiv, 109.
Acum avem posibilitatea de a obţine ceea ce este probabilitatea pentru o DES iesire la un meci de PVV de sansa. Trebuie să adăugaţi cele cinci numere de cazuri favorabile şi împărţi la numărul total de cazuri posibile. Făcând aceasta vom obţine că probabilitatea este foarte aproximativ 0.0001 sau de una din zece mii. E ciudat de bine rotunjite acest rezultat? Nu la toate, au doar o privire la numerele de mai sus am calculat. Prima categorie domină de mai multe ordine de magnitudine de numărul de cazuri favorabile şi posibil. Acest lucru este destul de intuitiv ca se pare clar că este foarte puţin probabil nu au patru cifre zecimale (10 şansele de pe 16 cifre) între 16 hexazecimal cifre. Am văzut anterior că relaţia dintre numărul de cazuri favorabil posibil şi, în prima categorie a fost de o divizie de 10 ^ 4, ca rezultat al nostru în cazul în care p = 0,0001 vine de la.
Scopul nostru pentru toate aceste calcule, a fost de a afla cât de multe TSP-PVV perechi avem nevoie pentru a transporta o de succes "brute force atac. Acum avem posibilitatea de a calcula numărul de aşteptat "pozitive false", într-o primă căutare: ea va fi a numărului de studii clinice de ori de probabilitate pentru un singur aleatoare fals pozitive, şi anume, nu * p unde t = 2 ^ 56, de dimensiunea cheie spaţiu. Aceasta se ridică la aproximativ 7.2 * 10 ^ 12, un număr destul de mare. De aşteptat număr de "pozitive false" în cea de-a doua de căutare (limitată la pozitiv găsit cheile de la prima căutare) va fi (t * p) * p, pentru o treime va fi de căutare ((t * p) * p) * p şi aşa mai departe. Astfel, pentru n căutări de aşteptat număr de "pozitive false" va fi t * p ^ n.
Putem obţine numărul de căutări necesară pentru a aştepta doar un fals pozitive prin care exprimă ecuaţia t * p ^ n = 1 şi pentru rezolvarea n. Deci n este egal cu logaritmul în baza de p de 1 / T, care prin proprietăţi de logaritm-l randamentelor n = log (1 / t) / log (p) ~ 4.2. Deoarece nu ne putem face o căutare pe fragmente, este convenabil de a ridica acest număr. Prin urmare, ceea ce este de aşteptat număr de "pozitive false", dacă am efectua căutări ora cinci? Este t * p ^ 5 ~ 0.0007 sau aproximativ 1 din 1400. Astfel, utilizând ora cinci TSP-PVV perechi este sigură de a obţine cu adevărat nici o cheie secretă "pozitive false".
După ce vom şti avem nevoie de cinci TSP-PVV perechi, cum ajungem ei? Desigur, avem nevoie de cel puţin o carte de cunoscut cu PIN-ul, şi datorită naturii de PVV algoritm, asta e singurul lucru care ne trebuie. Cu alte codul PIN de sisteme, cum ar fi IBM, ne-ar nevoie de carduri de ora cinci, cu toate acestea acest lucru nu este necesar cu VISA PVV algoritm. Trebuie să citiţi cu dungă magnetică şi apoi schimba codul PIN de patru ori, dar de lectură de carte de după fiecare schimbare.
Este necesar pentru a citi magnetică fâşie de carte pentru a obţine PVV şi selectorul de cheie de criptare. Puteţi cumpăra o comerciale dungă magnetice cititor sau te face să-urmând instrucţiunile puteţi găsi în pagina anterioară şi link-uri în aceasta. Odată ce aveţi un cititor de descriere a vedea acest standard de piste magnetice pentru a afla cum să obţineţi de PVV de la date de citire. În acest document, PVV în domeniul pistele 1 şi 2 este de spus la timp de cinci caractere, dar, de fapt, adevărata PVV constă din ultimele patru cifre. Primul dintre cele cinci cifre selectorul este cheia. Am vazut numai cărţi de credit cu o valoare de 1 în această cifră, care este în concordanţă cu standardele şi cu cheia secretă a fi compromisă niciodată (şi, prin urmare, acestea nu au nevoie pentru a trece la o altă cheie de a schimba selectorul).
Am făcut un simplu program C, getpvvkey.c, pentru a efectua de atac. El constă dintr-o buclă de a încerca toate cheile pentru a cripta prima TSP, în cazul în care derivate PVV meciurile de adevărat PVV un nou TSP este încercat, şi aşa mai departe până când nu există o neconcordanţă, caz în care cheia este aruncată, iar o nouă este încercat, de cinci sau derivate PVVs se potrivesc cu adevărat PVVs corespunzător, caz în care putem presupune că avem de banca cheie secretă, cu toate acestea de pe bucla merge până când se epuizează cheie de spaţiu. Aceasta se face pentru a ne asigura găsi adevărata cheie pentru că există o şansă (deşi foarte mici), primul găsit-cheie este un fals pozitiv.
Este de aşteptat programul ar lua foarte mult timp pentru a se termina şi pentru a minimiza riscurile de o putere tăiat, de computer stea, etc n-are de control în fişierul getpvvkey.dat din timp în timp (exact la timp, depinde de viteza de la computer, este aproximativ o oră pentru cele mai rapide computere acum în utilizare). Pentru acelaşi motiv, în cazul în care o cheie este pozitiv găsit-o este scrisă în fişierul getpvvkey.key. Programul afişează numai un mesaj de la începutul, incepand de poziţia adoptată de control de la orice fişier dacă, după care nimic nu mai este afişat.
De DES algoritm este un punct cheie în program, este, prin urmare, foarte important pentru a optimiza viteza sale. Am testat de mai multe implementări: libdes, SSLeay, OpenSSL, cryptlib, nss, libgcrypt, catacombă, libtomcrypt, cryptopp, ufc-crypt. De DES funcţii de la primele patru se bazează pe acelaşi cod de Eric Young, şi este cel care a funcţionat cel mai bine (include optimizat C şi codul de asamblare x86). Astfel am ales libdes care a fost original punerea în aplicare şi condensat toate cod în fişierele de encrypt.c (versiune C) şi x86encrypt.s (versiune x86 de asamblare). Codul este uşor modificate pentru a realiza unele îmbunătăţiri într-un "brute force atac: iniţiale de schimbare totală este un fix, în fiecare comună abrupt TSP criptare şi, prin urmare, poate fi făcută doar o dată, la începutul. O altă îmbunătăţire este că am scris un complet nou setkey funcţie (am sunat-o nextkey), care este optim pentru un brute force "bucla.
Pentru a obţine programul de lucru trebuie doar sa de tip corespunzător în locul cinci TSPs şi PVVs lor şi apoi să compilaţi-l. Am testat-o numai în platforme UNIX, folosind Makefile Makegetpvvkey pentru a compila (folosi comanda "make-f Makegetpvvkey"). Se poate compila pe alte sisteme, dar este posibil să aveţi nevoie pentru a stabili unele lucruri. Asiguraţi-vă că definiţia de tip long64 corespunde unui întreg pe 64 biţi. În principiu, nu există nici o dependenţă pe Endianness de procesor. Am compilat cu succes şi rulaţi-l pe Pentium-Linux, Alpha-Tru64, Mips-Irix-şi Sparc Solaris. Dacă nu aveţi şi nu doriţi să instalaţi Linux (nu ştiţi ce vă lipsesc ;-), tot mai aveţi posibilitatea de a alege pentru a rula Linux de pe CD-ul meu şi de a folosi programul, vezi pagina mea de Linux să ruleze fără a instala-o.
După ce aţi găsit secretul bancar cheie, dacă doriţi, pentru a găsi codul PIN de arbitrare a unui card trebuie doar sa scrie un program similar (scuze nu am scris-o, sunt prea lenesa:), care ar încerca toate 10 ^ 4 PINS prin generarea corespunzătoare TSP, criptare cu ea (nu mai) cheie secretă, care derivă de PVV şi a comparat-o cu PVV în magnetică fâşie de carte. Veţi obţine o potrivire pentru adevărat codul PIN. Doar un singur meci? Amintiţi-vă ce le-am văzut mai sus, avem o şansă de 0.0001 că o aleatoare de criptare se potriveşte de PVV. Incercam 10000 PINS (şi, prin urmare, TSPs), astfel, ne aşteptăm 10000 * 0.0001 = 1 fals pozitive, în medie.
Acesta este un rezultat foarte interesant, înseamnă că, în medie, fiecare carte are două valabil PINS: clientul PIN-ul şi de aşteptat fals pozitive. Eu îi spun "false", dar reţineţi că, atâta timp cât generate de adevărat PVV este de un cod PIN ca valabil al clientului ca unul. Mai mult, nu există nici o modalitate de a şti care este, care, chiar şi pentru ATM-uri; ştie doar de client. Chiar dacă fals pozitive nu au fost valabile ca PIN-ul, tot mai au trei studii clinice la ATM-uri, oricum, în medie, de ajuns. Prin urmare, probabilitatea am calculat de la începutul acestui document despre ghicitul la întâmplare de PIN-ul trebuie să fie corectate. De fapt, este faptul că valoarea de două ori, de exemplu, este de 0.0006 sau una din mai mult de 1600, încă scăzute în condiţii de siguranţă.
Rezultate
Este important de a optimiza de compilare a programului şi să-l rulaţi în cel mai rapid posibil din cauza procesor de mult timp de aşteptat pentru a rula timp. Am constatat că compilator de optimizare pavilion-O devine de o performanţă mai bună, unele crezut că adăugarea de îmbunătăţire este atins de-fomit-frame-pointer pavilion pe Pentium-Linux, de-spike pavilion de pe Alpha-Tru64, de-IPA pavilion pe arhitectura MIPS-Irix a-şi repede de pe pavilion-Solaris Sparc. Speciale de steaguri (-DDES_PTR-DDES_RISC1-DDES_RISC2-DDES_UNROLL-DASM) pentru DES cod au în general, beneficiile, de asemenea. Toate aceste steaguri au fost deja testate şi am ales cea mai bună combinaţie pentru fiecare procesor (a se vedea Makefile), dar puteţi să încercaţi să bine melodie a altor indicatori.
Conform meu de teste de cea mai bună performanţă este realizată cu AMD Athlon 1600 MHz procesor, de peste 3.4 milioane de chei pe secundă. Este interesant sa se rezultate mai bune decât Intel Pentium IV 1800 MHz şi 2000 MHz (vezi cifrele de mai jos, faceţi clic pe ele pentru a mari). Cred ca este din cauza unor I / O saturaţie, cu siguranţă, sau de memorie cache de acces, ca de procesor AMD (care a jumătate din cache-ul de la Pentium) sau placa de bază în care se execută, reuşeşte să le evite. În prima figura de mai jos puteţi vedea că DES viteza de rupere a tuturor procesoare mai mult sau mai puţin o relaţie liniară cu procesor de viteză, cu excepţia celor două Intel Pentium-am menţionat mai înainte. Acest lucru este logic, înseamnă că pentru un dublu procesor de viteză veţi obţine viteza de rupere dublu, dar ai grija de saturaţie efecte, în acest caz este mai bine de la AMD Athlon 1600 MHz, care va fi chiar mai ieftin decât Intel Pentium 1800 MHz sau 2000 MHz.
În cea de-a doua cifră ne putem vedea mai în detaliu ceea ce ne-ar suna intrinsecă DES pauză de putere de procesor. Am luat-o valoare pur şi simplu împărţirea pauză de viteză de procesor de viteză, care este, ne numărul de DES încercat chei pe secundă şi pe MHz. Aceasta este o măsură a performanţei de procesor de tip sale, independent de viteza. Rezultatele arată că cel mai bun procesor pentru această sarcină este de la AMD Athlon, apoi vine Alpha şi de foarte aproape, după ce este Intel Pentium (cu excepţia celor pentru cea mai mare viteza de cele care funcţionează foarte săraci din cauza efectului de saturaţie). Următorul este Mips procesor şi în ultimul loc este Sparc. Unele Alpha şi Mips procesoare sunt amplasate la partea inferioară a scalei, pentru că ele sunt versiuni mai devreme nu, inclusiv accesoriile de târziu versiuni. Reţineţi că, am inclus de performanţă de procesoare x86 pentru C şi codul de asamblare ca acolo este o mare diferenta. Se pare că gcc nu este un bun generator de cod optimizat maşină, dar, desigur, nu ştim dacă un manual de optimizare de cod de asamblare pentru alte procesoare (Alpha, Mips, Sparc) să stimuleze în comparaţie cu rezultatele lor nativ de compilatoare C (N-am făcut uz gcc pentru aceste alte platforme), după cum se întâmplă cu x86, procesor.
Actualiza
Aici este un articol în cazul în care aceste tehnici ar putea să fi fost folosit.




























