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