Akcelerace podepisovani pomocí RSA

Petr Klima tosuja na tosuja.info
Pátek Prosinec 3 13:13:17 CET 2010


Dobrý den,
řeším takový zapeklitý problém - potřebuju něco pomocí RSA podepsat a 
poslat přes síť. Jsou to krátké zprávičky a je jich samozřejmě strašně 
moc, jsou to tisíce zpráv za vteřinu.

Platforma je 64bit Centos 5.5 virtualizovaný ve Vmware ESX a serverů 
samozřejmě víc. Softwarově je to Perlovský skript běžící v mod_perlu. 
Podle našich testů je mod_perl natolik rychlý, že neuvažujeme o přepisu 
do ničeho jiného.

Profilerem jsem přišel na to, že skript tráví 35% času svého běhu 
podepisováním (Crypt::OpenSSL::RSA::sign) několikasetbytové zprávy.

Jak to urychlit? Já vidím několik cest:

1. HW urychlení, tzn. nějaká karta. Netuším ale, jak se to snese s 
virtualizací na Vmware ESX. OpenSSL ale IMHO nepodporuje PKCS11 engine 
pro offload na HW akcelerátor (lze dodat externě, příp. použít něco 
jiného než OpenSSL).

2. Náhrada RSA šifry DSA. DSA je při podepisování skoro přesně 2x 
rychlejší, ale vyžaduje to změnu na straně klientů, což bude hodně 
problematické nejen proto, že klientů je kolem 100 miliónů a i když to 
projde v rámci updatu, určitě neupdatují všichni.

3. Překompilovat co je třeba jiným kompilerem (icc). Od toho si ale moc 
neslibuju.

Budu vděčný za každé postrčení.

Díky,
Petr




Další informace o konferenci Linux