powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Пятничная криптостойкость
25 сообщений из 137, страница 5 из 6
Пятничная криптостойкость
    #39794070
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докину в топик картинку. Для себя. И для всех.

...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794094
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТипа такого. AES против DES. Насколько я понимаю каждый тест ограничен в 3 секунды. И
меряется количество блоков которые удалось успеть отработать с учотом вариативной длины
блока. При этом насколько я понял это не блок шифрования а блок одной операции OpenSSL.
Например внизу указана скорость DES для 16к блока.
Код: sql
1.
2.
3.
4.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128 cbc      73774.35k    80790.53k    82564.69k    83182.59k    83331.75k    83460.10k
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
des cbc          41345.14k    42614.04k    42894.17k    43123.76k    42999.81k    42866.01k


80 Мб/сек как-то совсем грустно. Глянь выше 21847664 , твой ноут выдал 531 Мб/сек. на аппаратном AES с cbc
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794101
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну прекрасно. Значит тот дистрибутив OpenSSL который шел в репозитариях убунты не поддержал AES-NI.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794102
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогони у себя аналогичный тест.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794108
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПрогони у себя аналогичный тест.
А смысл? Если есть поддержка AES-NI, то и у меня все отлично, а если нет то и так ясно что все плохо.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794117
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Придумал как ускорить тормоз шифрования AES+CBC 21847716 . Сначала сделать CBC потом кодирование. Я понимаю что это совсем не CBC, но у меня цели шире шифрования 21844612 . Думаю криптостойкость остается достаточная.
Назвал это xor_crypt()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	// Шифрование данных XOR с предыдущим (оно же дешифрование)
	void xor_crypt(void* buf, size_t size) {
		__m128i *end = ((__m128i *)buf) + size/16;
		for (__m128i *p = ((__m128i *)buf) + 1; p < end; p++) {
			*p = _mm_xor_si128(*p, *(p - 1));
		}
	}


Само шифрование идет в два шага
Код: plaintext
1.
2.
		aes.xor_crypt(buf, block_size);
		aes.encrypt(buf, block_size);


Производительность повысилась
ОперацияСкоростьAES.encrypt()6009 Mb/sAES.decrypt()5847 Mb/sAES.cbc_encrypt()1380 Mb/sAES.cbc_decrypt()5991 Mb/sAES.xor_encrypt()3792 Mb/sAES.xor_decrypt()3919 Mb/s
Правда несильно, если сложить encrypt+decrypt, то имеем 7371 для CBC и 7711 для xor. Чуть менее 5%. Но с другой стороны равномерная нагрузка у отправителя и получателя.

PS Я еще могу это запараллелить, т.е. один поток выполняет aes.xor_crypt(), другой aes.encrypt()
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794123
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты можешь усложнить прикладной протокол и считать файл набором независимых кусков. Чанков.
И тогда - параллелить шифрование чанков по ядру процессора на каждый чанк.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794128
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы можешь усложнить прикладной протокол и считать файл набором независимых кусков. Чанков.
И тогда - параллелить шифрование чанков по ядру процессора на каждый чанк.
Хорошая мысль, и менять особо ничего не надо. У меня уже набор независимых чанков (UDP-пакетов), можно их шифровать параллельно и отправлять по мере готовности, т.к. UDP не гарантирует порядок доставки пакетов.

Но в итоге всего-лишь увеличим скорость в N раз, где N это количество доступных ядер, поэтому скорость шифрования все-равно важна. Но мысль замечательная, обязательно использую.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794133
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надеюсь скорость диска и сети достаточная.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794138
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНадеюсь скорость диска и сети достаточная.
Одна из целей выжать гигабит из гигабитной сети, 128 Мб/сек. Я уже пробовал, но TCP победил с большим перевесом, надеюсь наверстать, но думаю для рекорда придется шифрование отключить, т.к. TCP тоже не шифруется. Но если я победю с шифрованием - это будет круто.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794142
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНадеюсь скорость диска и сети достаточная.
Про скорость диска - купи уже SSD, на современных SSD (NMVE) скорость чтения 2-3 Гб/сек. Ты вроде мамку новую покупаешь, посмотри чтобы NMVE поддерживала. Но скорость чтения из кэша ОС, т.е. из памяти 5 Гб/сек., поэтому не покупаю сверхскоростные SSD, т.к. иметь много оперативки лучше для чтения.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794149
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня сейчас ASUS prime B450. На борту есть слот M.2 который я пока еще не использую но как только прикуплю
хороший SSD - поставлю. Пока у меня - основные задачи перенос архивов.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794151
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот скриншотик с топа. Всего 6 ядер. Видятся как 12 логических CPU.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794193
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот скриншотик с топа. Всего 6 ядер. Видятся как 12 логических CPU.
Надо как-нибудь затестить насколько логическое ядро AMD отличается от Intel. У последнего два логических как 1.4 реальных.
Можно кардтрейсером параллельным померить.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794194
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас мультипоточка адаптирована только
В dotNet и Java реализациях
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794195
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794201
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлично.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794202
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты мог-бы пушнуть это в мой репозитарий?
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794302
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще статистика по твоей крипте. На процессоре AMD Ryzen-5

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
mayton@mayton-ryzen:/sql.ru/dima/crypt_speed$ ./make.sh 
compile Mar 31 2019 19:32:24
test speed fill 300000 blocks of 4096 bytes each ... 
filled 1171 Mb in 1394 ms 840 Mb/s   
test speed CBC XOR encrypt 300000 blocks of 4096 bytes each ... 
1211 ms 966 Mb/s
test speed RC4 encrypt 300000 blocks of 4096 bytes each ... 
3666 ms 319 Mb/s
test speed AES-128 encrypt 300000 blocks of 4096 bytes each ... 
131 ms 8943 Mb/s
test speed AES-128 decrypt 300000 blocks of 4096 bytes each ... 
126 ms 9243 Mb/s
test speed AES-128 + CBC encrypt 300000 blocks of 4096 bytes each ... 
873 ms 1342 Mb/s
test speed AES-128 + CBC decrypt 300000 blocks of 4096 bytes each ... 
148 ms 7878 Mb/s
test speed AES-128 + XOR encrypt 300000 blocks of 4096 bytes each ... 
316 ms 3700 Mb/s
test speed AES-128 + XOR decrypt 300000 blocks of 4096 bytes each ... 
313 ms 3741 Mb/s
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794303
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И чтобы быть последовательным. Я еще раз перегенерирую статистику встроенного шифровальщика на новом железе.
Условия те-же. Сравниваем АЕС и Дес в режиме сцепления блоков.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
mayton@mayton-ryzen:/sql.ru/dima/crypt_speed$ openssl speed aes-128-cbc
Doing aes-128 cbc for 3s on 16 size blocks: 27863103 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 7423093 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 1939084 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 972469 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 122911 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 16384 size blocks: 61556 aes-128 cbc's in 3.00s
OpenSSL 1.1.0g  2 Nov 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(8x,int) des(int) aes(partial) blowfish(ptr) 
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/x86_64-linux-gnu/engines-1.1\"" 
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128 cbc     148603.22k   158359.32k   165468.50k   331936.09k   335628.97k   336177.83k
mayton@mayton-ryzen:/sql.ru/dima/crypt_speed$ openssl speed des-cbc
Doing des cbc for 3s on 16 size blocks: 14539255 des cbc's in 2.99s
Doing des cbc for 3s on 64 size blocks: 3800282 des cbc's in 3.00s
Doing des cbc for 3s on 256 size blocks: 953938 des cbc's in 3.00s
Doing des cbc for 3s on 1024 size blocks: 240635 des cbc's in 3.00s
Doing des cbc for 3s on 8192 size blocks: 29992 des cbc's in 3.00s
Doing des cbc for 3s on 16384 size blocks: 15037 des cbc's in 3.00s
OpenSSL 1.1.0g  2 Nov 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(8x,int) des(int) aes(partial) blowfish(ptr) 
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/x86_64-linux-gnu/engines-1.1\"" 
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
des cbc          77802.03k    81072.68k    81402.71k    82136.75k    81898.15k    82122.07k
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794305
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы мог-бы пушнуть это в мой репозитарий?
Закину, надо чуть поправить вывод.

maytonЕще статистика по твоей крипте. На процессоре AMD Ryzen-5
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
mayton@mayton-ryzen:/sql.ru/dima/crypt_speed$ ./make.sh 
compile Mar 31 2019 19:32:24
test speed fill 300000 blocks of 4096 bytes each ... 
filled 1171 Mb in 1394 ms 840 Mb/s   
test speed CBC XOR encrypt 300000 blocks of 4096 bytes each ... 
1211 ms 966 Mb/s
test speed RC4 encrypt 300000 blocks of 4096 bytes each ... 
3666 ms 319 Mb/s


Тут проигрывает интелу 21847357
mayton
Код: sql
1.
2.
3.
4.
test speed AES-128 encrypt 300000 blocks of 4096 bytes each ... 
131 ms 8943 Mb/s
test speed AES-128 decrypt 300000 blocks of 4096 bytes each ... 
126 ms 9243 Mb/s


А тут интел порван, там было 6000, т.е. тут в полтора раза быстрее.
mayton
Код: sql
1.
2.
test speed AES-128 + CBC encrypt 300000 blocks of 4096 bytes each ... 
873 ms 1342 Mb/s


Тут также как на интеле. Это не параллелится.

Похоже AMD в полтора раза глубже параллелит чем интел.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794307
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я соберусь с силами и перетещу все бенчмарки Рей-Трейсера. Но это не главная задача.

У меня щас идея - перетащить всю конфигурацию Рей-Тресера в Docker. Хороший
challenge. +Сравним есть ли разница между native-call наших компилляторов
и сред исполнения и para-virtualization.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794309
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ соберусь с силами и перетещу все бенчмарки Рей-Трейсера. Но это не главная задача.

У меня щас идея - перетащить всю конфигурацию Рей-Тресера в Docker. Хороший
challenge. +Сравним есть ли разница между native-call наших компилляторов
и сред исполнения и para-virtualization.
Разницы не будет. Там нагрузка только на проц.
Я все тесты запускал в виртуалках на одном хосте и на самом хосте. Виртуализация проца идет аппаратно, производительность не проседает. В виртуалках проседает IO диска и сети.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39794313
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда тем более. Сам бог велел нам собирать Docker c полным комплектом компилляторов.

Процедура инсталляции среды упрощается до двух действий. Установить докер. И установить
образ всего проекта.
...
Рейтинг: 0 / 0
Пятничная криптостойкость
    #39795416
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут фигню намерил 21847923 , алгоритм xor кривой оказался. Поправил исходники
ОперацияСкоростьAES.encrypt()6009 Mb/sAES.decrypt()5847 Mb/sAES.cbc_encrypt()1380 Mb/sAES.cbc_decrypt()5991 Mb/sAES.xor_encrypt()4942 Mb/sAES.xor_decrypt()6103 Mb/s
mayton, если не трудно, запусти код на своем AMD и результат сюда запости.

PS _mm_xor_si128() очень быстро работает. Как узнать что эта функция поддерживается процом и компилятором?
...
Рейтинг: 0 / 0
25 сообщений из 137, страница 5 из 6
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Пятничная криптостойкость
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]