#infosec #linerate Really fast crypto in software on commodity hardware is possible after all.

Anyone who has been involved with security knows there is a balance to providing both security and privacy and performance at the same time. Security is often blamed for performance woes, particularly when cryptography is involved.

SSL and TLS have long addressed this balance by leveraging custom-built hardware to enhance the performance of the most taxing components of these protocols: session setup. The "easy" part of securing communications (if one can use easy with respect to cryptography) is bulk encryption. While certainly more taxing on performance than clear text, relative to the more complex and compute intensive process of the handshaking required to set up such sessions, easy is an appropriate term.

Moore's Law is often cited as providing the increases in computer power necessary to offset the performance tax imposed by secure protocols. Unfortunately while this would be true if all other factors remained constant, the reality is that other factors are also changing and impose additional burdens on the protocol that often negate the gains made by Moore's Law. Key lengths, for example, continue to grow to combat the increase in compute power that makes it easier to brute-force crack a cryptographic key and new challenges with respect to privacy are changing the frequency with which those keys are generated.. There are also occasionally leaps in the mathematic realm that find ways to more quickly compute the “hard problem” that the cryptographic algorithm uses, but those are rare and don’t march at the steady pace that compute power increases do. 

PFS (Perfect Forward Secrecy), for example, has been offered as a way to combat potential snooping by third-parties (read: governments) by requiring the generation of ephemeral (short lived) keys for each new session. This has the effect of imposing an extra cryptography tax" on communications over and above the already expensive handshaking process required by secure protocols like SSL. 

Accompanying the introduction of PFS has been a move to take advantage of ECC (Elliptical Curve Cryptography). One of the primary benefits of ECC is that it can provide comparable security with shorter key lengths to RSA with longer key lengths. When you're generating ephemeral keys on a per-session or per-message basis, the shorter key length helps reduce the burden imposed by the additional cryptographic functions.

Now, the problem is that cryptography is still compute intense and even leveraging ECC for PFS you're still going to incur performance penalties in setting up the session. Certainly custom cryptographic hardware acceleration would be a boon, but in cases where software-only solutions are desired, this is problematic. So the question is, how do you support enhanced security with PFS and ECC while still achieving blazing fast performance and extreme capacity?

Obviously I'm about to tell you, so read on...

Next-Generation Cryptography

LineRate achieves what sounds like the impossible: really fast, really scalable secure communications in a software solution deployed on commodity hardware.

By combining a highly optimized network stack with the ability to reach down into some of the lesser known capabilities in commoditized hardware, LineRate is able to achieve up to 25,000 new SSL sessions per second on the same commodity Intel CPU on which only 6,000-8,000 new SSL sessions per second were achieved using RSA-based cryptography.

This remarkable feat is achievable through both focused engineering of the network stack and the use of a set of specialized instructions in the processor that are advantageous for the type of operations involved in ECC. These are not the same instructions as used in AES-NI, which is applicable to the easy part of SSL (bulk encryption) and aren't actually cryptography-specific instructions; they're just instructions that turn out to be really useful in speeding up the execution of certain computations associated with ECC.

What this means is organizations can now take advantage of stronger security and longer (ostensibly also stronger) keys without incurring significant lags in establishing sessions. That's critical, as the longer it takes to establish a session, the more likely it is that the end-user will abandon the entire interaction. The appearance of not loading or that the site (or app) has "hung up" due to the time incurred by establishing a secure session can be devastating to the customer quality of experience. Quality of experience is rapidly outpacing other key performance indicators as a measure of success as businesses move toward an application-based economy in which engagement is key to driving revenue and customer satisfaction. A 2012 survey conducted by LSI Corporation highlighted not only the critical nature of performance (90% of respondents acknowledge this), but the disturbing reality that a majority of them (75%) do not feel they are achieving required performance.

As we strengthen security to combat rising application and network attacks against protocols and applications themselves while simultaneously adopting emerging technologies and architectures designed to enable the next generation of data center networks, we must pay attention to the impact on application performance and capacity.

Software-based solutions can provide the agility and service velocity demanded and necessary to enabling the app economy, but without careful consideration for the impact on performance a move toward such architectures can result in much more costly, complex networks. LineRate's attention to both performance and security offer organizations a flexible, software-defined and software-deployable solution that scales with simplicity.