Аппаратное ускорение для подписи и шифрования не на основе SSL - PullRequest
2 голосов
/ 12 октября 2008

Я работаю над проектом, который выполняет большое количество хэширования, подписывания, а также асимметричного и симметричного шифрования. Поскольку эти шаги оказывают значительное влияние на нашу производительность и доступную нагрузку, мне было интересно, есть ли аппаратное решение для разгрузки работы.

Я поработал над поиском, и единственные предметы, которые я могу найти, посвящены связи на основе SSL. Мне нужно более общее решение, которое позволит мне ускорить подписывание и шифрование независимо от того, где оно происходит.

Можно ли адаптировать эти решения на основе SSL (может быть, это просто маркетинг, и его было бы легко использовать в другом месте)? Есть ли хороший общий сопроцессор, который может помочь?

Мне это нужно на Windows Server 2008, но мне будут интересны решения на любой платформе.

Ответы [ 5 ]

1 голос
/ 31 декабря 2009

В окнах вы хотите найти устройство с API, поддерживающим MSCAPI, CAPING или PKCS # 11. Первые и последние очень распространены, однако MSCAPI не поддерживает аппаратные AES / 3DES.

nCipher (в настоящее время Thales). Делайте несколько коробок или карт PCI / PCIe, которые поддерживают вышеупомянутое (и поддерживают openssl), а также поддерживают другие платформы, включая Linux и Solaris, Safenet также делает подобное оборудование с поддержкой аналогичной платформы.

Если бы я только начинал, я бы выбрал PKCS # 11, и вы получите хороший выбор языков для написания, включая C или Java.

Если вы хотите писать в C # /. Net, вы можете использовать MSCAPI из .Net или PInvoke в DLL-файл PKCS # 11 для вашего оборудования.

1 голос
/ 12 октября 2008

Самый популярный аппаратный крипто-движок - VIA Padlock , включенный в C3, C7 и более поздние процессоры. Это низкоэффективные, маломощные; но (предположительно) легко превосходит Core2 по криптоалгоритмам.

ядро ​​Linux 2.6.16 и более поздние версии включают поддержку для RNG, MD5, SHA1 / 256, SSL, GPG и других стандартных вещей. Я не уверен насчет ssh.

Вы упомянули не-SSL, поэтому вам может не пригодиться существующий код, но на сайте Via есть документация, необходимая для его использования из пространства пользователя.

1 голос
/ 12 октября 2008

Несколько компаний делают аппаратное обеспечение для криптографии. Например, я недавно закодировал поддержку в приложении для аппаратного устройства nCipher, которое обрабатывало AES на карте (и поддерживало многие другие алгоритмы шифрования). Они недешевы, но поддерживают различные алгоритмы и режимы работы.

1 голос
/ 12 октября 2008

Если алгоритмы, над которыми вы работаете, являются стандартными алгоритмами шифрования, такими как 3DES и AES, то определенно доступно аппаратное обеспечение. Hifn является наиболее известным, но Broadcom также имеет ряд чипов от их приобретения BlueSteel несколько лет назад. nCipher также имеет линейку продуктов для шифрования, хотя, когда я в последний раз смотрел на них (несколько лет назад), они были гораздо больше сфокусированы на своем оборудовании для безопасного управления ключами, чем на ускорении блочных алгоритмов.

Даже карты, разработанные для SSL, могут быть вам полезны, хотя вам необходимо получить доступ к деталям низкого уровня. Самый большой выигрыш для оборудования SSL - это модуль экспоненты и широкий множитель, оба из которых обычно доступны независимо на известном мне оборудовании. Если вы используете алгоритмы асимметричного шифрования, эти два блока, вероятно, будут вам полезны.

Вам также следует проверить, доступна ли более эффективная реализация программного обеспечения. Например, Дэн Бернштейн и Питер Швабе опубликовали статью в сентябре 2008 года, касающуюся оптимизации AES для современных процессоров. Реализация программного обеспечения была передана в общественное достояние (т. Е. Дезавуировать все авторские права, использовать их по своему усмотрению).

Наконец, будущие процессоры AMD (и, вероятно, Intel) будут включать SSE5 , который добавляет инструкции, особенно полезные для AES. Если вы сможете продержаться до этого времени, ваше следующее обновление сервера может предоставить всю необходимую аппаратную поддержку.

1 голос
/ 12 октября 2008

Я не уверен, насколько это будет полезно, однако я видел несколько работ, посвященных использованию графического оборудования для ускорения шифрования

Вот быстрый поиск в Google

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...