Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-06-09 07:55:58

  drelbrown - Użytkownik

drelbrown
Użytkownik
Zarejestrowany: 2013-01-07

Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

Chciałbym zaszyfrować partycję narzędziem wbudowanym w instalator Debiana algorytmem AES. Przed chciałbym zobaczyć wydajność procesora w szyfrowaniu i deszyfrowaniu AESem. Jest jakieś narzędzie w repozytorium do takich pomiarów?

Offline

 

#2  2013-06-09 08:17:59

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

Masz w systemie:
http://lwn.net/Articles/269327/

Napisz tylko, jaki masz procek, jeśli Core-iX z trybem AES-NI, to nie powinno być problemu.
http://permalink.gmane.org/gmane.comp.encryption.openssl.devel/19942


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2013-06-09 08:53:40

  drelbrown - Użytkownik

drelbrown
Użytkownik
Zarejestrowany: 2013-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

Kod:

$ openssl speed -engine padlock -evp aes-256-cbc
invalid engine "padlock"
140702280033952:error:260B606D:engine routines:DYNAMIC_LOAD:init failed:eng_dyn.c:521:
140702280033952:error:2606A074:engine routines:ENGINE_by_id:no such engine:eng_list.c:417:id=padlock
140702280033952:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libpadlock.so): libpadlock.so: cannot open shared object file: No such file or directory
140702280033952:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
140702280033952:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
Doing aes-256-cbc for 3s on 16 size blocks: 76395070 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 64 size blocks: 20114154 aes-256-cbc's in 2.99s
Doing aes-256-cbc for 3s on 256 size blocks: 5088333 aes-256-cbc's in 2.99s
Doing aes-256-cbc for 3s on 1024 size blocks: 1275318 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 8192 size blocks: 158693 aes-256-cbc's in 2.99s
OpenSSL 1.0.1 14 Mar 2012
built on: Mon Apr 15 15:27:18 UTC 2013
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256-cbc     407440.37k   430537.08k   435656.60k   435308.54k   434786.98k

Mam i5 IB ze wsparciem AES-NI
Wcześniej próbowałem [tt]cryptsetup benchmark[/tt] i nie szło. Doczytałem teraz, że dopiero od wersji 1.6 to polecenie działa, więc doinstalowałem i:

Kod:

$ cryptsetup benchmark
# Testy są przybliżone tylko z użyciem pamięci (bez we/wy na dysk).
PBKDF2-sha1       442810 iterations per second
PBKDF2-sha256     242277 iterations per second
PBKDF2-sha512     154383 iterations per second
PBKDF2-ripemd160  357631 iterations per second
PBKDF2-whirlpool  193607 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   182,0 MiB/s   215,8 MiB/s
 serpent-cbc   128b    75,3 MiB/s    85,9 MiB/s
 twofish-cbc   128b   165,0 MiB/s   225,8 MiB/s
     aes-cbc   256b   143,0 MiB/s   164,2 MiB/s
 serpent-cbc   256b    75,9 MiB/s    86,2 MiB/s
 twofish-cbc   256b   164,3 MiB/s   226,8 MiB/s
     aes-xts   256b   211,0 MiB/s   210,9 MiB/s
 serpent-xts   256b    81,3 MiB/s    84,9 MiB/s
 twofish-xts   256b   152,4 MiB/s   155,2 MiB/s
     aes-xts   512b   161,0 MiB/s   162,8 MiB/s
 serpent-xts   512b    81,9 MiB/s    84,6 MiB/s
 twofish-xts   512b   153,4 MiB/s   155,2 MiB/s

[img]http://obrazki.elektroda.pl/1531695400_1370760494.png[/img]
TC potrafi korzystać z wszystkich rdzeni, a cryptsetup nie (przynajmniej tak pokazuje htop).
Da się zmusić [tt]cryptsetup[/tt] by korzystał ze wszystkich rdzeni procka?

Offline

 

#4  2013-06-09 09:09:22

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

Po co z rdzeni, jak masz w procku AVX i AES-NI a w kernelu  interfejsy do szyfrowania z akceleracja procka?
Cryptsetup powinien korzystać z API kernela, a nie procka bezpośrednio, a kernel już sobie z prockiem sam pogada.

Kod:

invalid engine "padlock"

Argument paddlock w Openssl korzysta z interfejsu VIA-Paddlock, którego nie ma w I5.


Sznurki:
http://dentarg.it64.com/content/luks-and-intel-aes-extension-performance
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/ch03s02s03.html

Ostatnio edytowany przez Jacekalex (2013-06-09 09:27:06)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2013-06-09 09:19:51

  drelbrown - Użytkownik

drelbrown
Użytkownik
Zarejestrowany: 2013-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

Kod:

$ openssl speed aes-128-cbc
Doing aes-128 cbc for 3s on 16 size blocks: 20286087 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 64 size blocks: 5538679 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 256 size blocks: 1407841 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 351660 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 8192 size blocks: 44381 aes-128 cbc's in 3.00s
OpenSSL 1.0.1 14 Mar 2012
built on: Mon Apr 15 15:27:18 UTC 2013
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128 cbc     108554.31k   118553.66k   120135.77k   120434.73k   121189.72k

Ok, powiedz mi jeszcze proszę, czy przy tej wydajności odczuję jakieś spowolnienie w działaniu systemu ?
No i kolejna ważna sprawa:
[img]http://obrazki.elektroda.pl/9008164000_1370761947.png[/img]
Jak w Debianie wykonać kopię tego co trzeba na wypadek padu systemu, aby np z LiveCD dostać się do danych?

Offline

 

#6  2013-06-09 09:33:39

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

Jak w Windows, zobacz w Windows, jak w Linuxie? zobacz w Linuxie.

Truecrytp najwyraźniej załapał AES-NI i masz tam napisaną wydajność, prawda?

Jak puścisz Cryptsetup przez kernel, i załadujesz odpowiedni sterownik, to prawdopodobnie będziesz miał podobny wynik.

Wydajność? zależy od konfiguracji, przez AES-NI nie powinno być kłopotu, bateria na pewno to odczuje.
Tylko radziłbym używać tych modułów:

Kod:

CONFIG_CRYPTO_AES_NI_INTEL=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m

Wyniki testów nie wyglądają źle, ale musisz sam spróbować.

To by było na tyle
;-)

Ostatnio edytowany przez Jacekalex (2013-06-09 09:41:25)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2013-06-09 10:03:26

  drelbrown - Użytkownik

drelbrown
Użytkownik
Zarejestrowany: 2013-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

[quote=Jacekalex]Jak w Windows, zobacz w Windows, jak w Linuxie? zobacz w Linuxie.[/quote]
Jak w Windows to widać na screenshocie, klik i jest ;) A jak w Linuksie? No właśnie tego nie wiem.

Offline

 

#8  2013-06-09 10:12:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

[quote=drelbrown][quote=Jacekalex]Jak w Windows, zobacz w Windows, jak w Linuxie? zobacz w Linuxie.[/quote]
Jak w Windows to widać na screenshocie, klik i jest ;) A jak w Linuksie? No właśnie tego nie wiem.[/quote]
A Truecrypt w Debianie nie ma przypadkiem benchmarka?


Cryptsetup?
Wyładuj standardowy AES, załaduj moduł AES-NI, i zobacz, jakie będą wydajności.

Listę trybów i sterowników szyfrowania masz w wyniku:

Kod:

egrep 'name|driver' /proc/crypto

W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2013-06-09 10:32:20

  drelbrown - Użytkownik

drelbrown
Użytkownik
Zarejestrowany: 2013-01-07

Re: Pomiar wydajności w szyfrowaniu i deszyfrowaniu algorytmem AES

TC w Linuksie ma benchmark, właśnie dałem screenshota. Dzięki Jacekalex za porady.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.009 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00015 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00093 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.58.158' WHERE u.id=1
0.00062 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.58.158', 1732631623)
0.00092 SELECT * FROM punbb_online WHERE logged<1732631323
0.00047 SELECT topic_id FROM punbb_posts WHERE id=234337
0.00007 SELECT id FROM punbb_posts WHERE topic_id=23695 ORDER BY posted
0.00093 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=23695 AND t.moved_to IS NULL
0.00010 SELECT search_for, replace_with FROM punbb_censoring
0.00088 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=23695 ORDER BY p.id LIMIT 0,25
0.00108 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23695
Total query time: 0.0062 s