[#] Как мы на FPGA AES ускоряли: разработка драйвера
habrabot(difrex,1) — All
2017-04-28 20:30:04


![][1] Недавно мы применили плату [Ethond][2] в качестве мини-роутера и запустили на нём OpenVPN.



Но обнаружилось, что процессор часто нагружается на 100%, а скорость не поднимается выше 15-16 Мбит/с. На канале связи 100 мегабит это очень мало, поэтому мы решили ускорить процесс аппаратно.



Ребята из группы FPGA-разработчиков сделали прошивку на базе [открытого IP-core][3] для Altera CycloneV с реализацией шифра AES-128, которая умеет шифровать 8 Гбит/сек и дешифровать 700 Мбит/сек. Для сравнения, программа `openssl` на CPU (ARM Cortex A9) того же CycloneV может обрабатывать лишь около 160 Мбит/сек.



Эта статья посвящена нашему исследованию по применению аппаратного шифрования AES. Мы сжато представим описание криптографической инфраструктуры в Linux и опишем драйвер (исходный код открыт и доступен на [github][4]), который осуществляет обмен между FPGA и ядром. Реализация шифрования на FPGA не является темой статьи — мы описываем лишь интерфейс, с которым происходит взаимодействие c акселератором со стороны процессора.


[Читать дальше →][5]

[1]: https://habrastorage.org/files/38d/8a1/7dd/38d8a17dd0564347af6bb050ffd3c7d0.jpg
[2]: http://metrotek.spb.ru/ethond.html
[3]: http://opencores.org/project,aes_decrypt_fpga,overview
[4]: https://github.com/STC-Metrotek/soc-aes-accel
[5]: https://habrahabr.ru/post/324042/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut