Välkomna
Prestandautvärdering av ett antal utvalda strömchiffer Lina Pålsson Christian Rose
Syfte Undersöka och jämföra prestanda (snabbhet och minneskrav) hos ett antal utvalda strömchiffer på utvalda plattformar Fokus på snabbhet
Avgränsningar Avser endast implementeringar i programmeringsspråket C Endast ett fåtal utvalda processorplattformar
Vernamsystemet C i =m i k i för i=1,2,3…,
Användning av 20 pipelinesteg istället för 10 Möjlighet till högre frekvens Större risk för databeroende och större förlust vid pipelinetömningar Tiden för att transportera data genom kretsen blir signifikant Ökningen i prestanda blir inte alltid lika hög som ökningen i frekvens
De undersökta strömchiffren MUGI SNOW Scream RC4
Steg för att använda ett strömchiffer Nyckelinitiering (Initialvektorinitiering) Ett antal nyckelströmsgenereringar
Resultat för MUGI Tid/initiering ( s) Antal cykler/ initiering Tid/genere- rad byte ( s) Antal cykler/ genererad byte Pentium III 7,135000,03718 Pentium 4 2,240000,01528 ARM ,273 AVR
Resultat för RC4 Tid/initiering ( s) Antal cykler/ initiering Tid/genere- rad byte ( s) Antal cykler/ genererad byte Pentium III ,09246 Pentium 4 2,850000,01527 ARM ,858 AVR
Resultat för SNOW Tid/ini- tiering i standard- läge ( s) Antal cykler/ initiering i standard- läge Tid/ini- tiering i IV-läge ( s) Antal cykler/ initiering i IV-läge Tid/ge- nererad byte ( s) Antal cykler/ genere- rad byte Pentium III 2,613001,36700,00954,7 Pentium 4 1,018000, ,00386,8 ARM ,6822 AVR
Resultat för Scream Tid/ny- ckelini- tiering ( s) Antal cykler/ nyckel- initiering Tid/IV- initie- ring ( s) Antal cykler/ IV- initiering Tid/ge- nererad byte ( s) Antal cykler/ genere- rad byte Pentium III ,015000,0178,2 Pentium , ,00397,1 ARM ,6220 AVR
Använda processorer Pentium III – 500 MHz Pentium 4 – 1800 MHz AVR – 4 MHz ARM – 33 MHz
Processorernas ordlängd Pentium III – 32 bitar Pentium 4 – 32 bitar AVR – 8 bitar ARM – 32 bitar
Allmänna optimeringar Få funktioner och inline Få mellanlagringar Få slingor Globala/lokala variabler Optimeringskommandon
Plattformar som använts Ordlängd (bitar) Klock- frekvens (MHz) KompilatorOperativ- system / Simulator Pentium III32500egcs Red Hat Linux 6.2 Pentium gcc 3.0.4Red Hat Linux 7.2 AVR84avr-gcc 3.0.2AVR Studio 3.53 / 3.54 ARM3233ARM Developer Suite 1.2
Resultat för nyckelinitiering (cykler/initiering) för processorerna MUGISNOW (IV-läge) ScreamRC4 1. Pentium III (3500) 1. Pentium III (670) 1. Pentium 4 (23000) 1. Pentium 4 (5000) 2. Pentium 4 (4000) 2. Pentium 4 (1000) 2. Pentium III (38000) 2. Pentium III (7700) 3. ARM (15000) 3. ARM (2900) 3. ARM (55000) 3. ARM (15000) 4. AVR (35000) 4. AVR (18000) 4. AVR (130000) 4. AVR (22000)
Resultat för nyckelströmsgenerering (cykler/byte) för processorerna MUGISNOWScreamRC4 1. Pentium III (18) 1. Pentium III (4,7) 1. Pentium 4 (7,1) 1. Pentium 4 (27) 2. Pentium 4 (28) 2. Pentium 4 (6,8) 2. Pentium III (8,2) 2. Pentium III (46) 3. ARM (73) 3. ARM (22) 3. ARM (20) 3. ARM (58) 4. AVR (180) 4. AVR (160) 4. AVR (74) 4. AVR (86)
Resultat för nyckelinitiering (cykler/initiering) för chiffren Pentium IIIPentium 4ARMAVR 1. SNOW IV- läge (670) 1. SNOW IV- läge (1000) 1. SNOW IV- läge (2900) 1. SNOW IV- läge (18000) 2. MUGI (3500) 2. MUGI (4000) 2. MUGI (15000) 2. RC4 (22000) 3. RC4 (7700) 3. RC4 (5000) 2. RC4 (15000) 3. MUGI (35000) 4. Scream (38000) 4. Scream (23000) 4. Scream (55000) 4. Scream (130000)
Resultat för nyckelströmsgenerering (cykler/byte) för chiffren Pentium IIIPentium 4ARMAVR 1. SNOW (4,7) 1. SNOW (6,8) 1. Scream (20) 1. Scream (74) 2. Scream (8,2) 2. Scream (7,1) 2. SNOW (22) 2. RC4 (86) 3. MUGI (18) 3. RC4 (27) 3. RC4 (58) 3. SNOW (160) 4. RC4 (46) 4. MUGI (28) 4. MUGI (73) 4. MUGI (180)
Tänkbara vidare studier Resultat med samma kompilator på alla processorplattformar Undersökning av chiffren på 64- bitarsprocessorer (ex. Itanium 2 eller UltraSparc III) Jämförelse av chiffren handoptimerade på assemblernivå