Скорость различных алгоритмов PHP mcrypt
Привет, ребята. Сегодня я тестировал алгоритмы php mcrypt.
Я запускаю тест, чтобы проверить скорость различных алгоритмов mcrypt.
Проверенные алгоритмы: Литой-128, Гост, Рейндаэль-128, Двужильный, Литой-256, Локи97, Рейндаэль-192, Saferplus, Иглобрюх-компат, Des, Рейндаэль-256, Змея, Xtea, Иглобрюх, Rc2, Тройня.
Тест был запущен в режиме ECB (вы также можете использовать: CBC, CFB, CTR, ECB, NCFB, NOFB, OFB).
Я зашифровал простую строку: "Это испытание". Следующие результаты относятся к 1000 итерациям (результаты приведены в секунде).
ИГЛОБРЮХ 0.5217170715332
СРАВНЕНИЕ С ИГЛОБРЮХОМ 0.46304702758789
БРОСОК 128 0.19502091407776
ПРИВЕДЕНИЕ 256 0.28649806976318
DES 0.45267295837402
ГОСТ 0.19383502006531
ЛОКИ97 0.27537798881531
RC2 0.44201898574829
РЕЙНДАЭЛЬ 128 0.2560601234436
РЕЙНДАЭЛЬ 192 0.33414602279663
РЕЙНДАЭЛЬ 256 0.42553782463074
SAFERPLUS 0.32848501205444
ЗМЕЯ 0.391037940979
ТРОЙНЯШКИ 0.65123796463013
ДВУСТВОРЧАТАЯ РЫБА 0.27349305152893
XTEA 0.37829685211182
Конечно, этот процесс время - не самое главное, когда мы говорим о безопасности. Я просто хочу поделиться своими результатами.
Какой алгоритм и режим mcrypt вы используете и почему? Я знаю, что это зависит от ситуации, уровня безопасности и т.д. Но, пожалуйста, приведите несколько примеров.
2 answers
Я использую AES 256 (MCRYPT_RIJNDAEL_256
), почему? Из-за известности алгоритма и его широкого использования. Я также шифрую с помощью режима CBC
, я не совсем понимаю причину, но из того, что я читал из разных источников, это намного надежнее (как в безопасном режиме), чем ЕЦБ.
Кроме того, имейте в виду, что когда вы имеете дело с хэшированием и/или скоростью шифрования, это не ваш друг (причина этого проста: если это быстро, то быстрее взломать).
Вот полный тестовый тест для сравнения скорости для MCRYPT по сравнению с OpenSSL в PHP (симметричные шифры):
Mcrypt - более старая, но лучше документированная и значительно более медленная библиотека, но очень последовательный вывод. OpenSSL новее, быстрее и менее документирован.
Если вы заботитесь о производительности в первую очередь, тогда используйте OpenSSL CFB/ECB 256-битный алгоритм.
Обратите внимание, что Intel Core i3/i5/i7 поддерживает Набор инструкций AES, который может значительно увеличить пропускную способность ввода-вывода с 11 МБ/с до 700 МБ/с на поток - см. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard.