Cipher Suite Strength and Choosing Proper Key Sizes

Cipher suites come in a variety of strengths.  Because they are made up of several different types of algorithms (authentication, encryption, and message authentication code (MAC)), the strength of each varies with the chosen key sizes.  There can be many methods of grading the strength of a cipher suite – the specific method used seems to vary between different projects and companies an can include things such as symmetric and public key algorithm key sizes, type of algorithm, performance, and known weaknesses.

NIST (National Institute of Standards and Technology) makes recommendations on choosing an acceptable cipher suite by providing comparable algorithm strengths for varying key sizes of each.  The strength of a cryptographic algorithm depends on the algorithm and the key size used.  The NIST Special Publication, SP800-57, states that two algorithms are considered to be of comparable strength as follows:

“… two algorithms are considered  to be of comparable strength for the given key sizes (X and Y) if the amount of work needed to “break the algorithms” or determine the keys (with the given key sizes) is approximately the same using a given resource. The security strength of an algorithm for a given key size is traditionally described in terms of the amount of work it takes to try all keys for a symmetric algorithm with a key size of “X” that has no short cut attacks (i.e., the most efficient attack is to try all possible keys).”

The two tables in section 4.3 of the wolfSSL Manual (Table 2, Table 3). are based off of both Table 2 (pg. 64) and Table 4 (pg. 66) from NIST SP800-57, and show comparable security strength between algorithms as well as a strength measurement (based off of NIST’s suggested algorithm security lifetimes using bits of security).

Using these tables as guides to begin to classify a cipher suite, we categorize it based on the strength of the symmetric encryption algorithm.  In doing this, a rough grade classification can be devised to classify each cipher suite based on bits of security (only taking into account symmetric key size):

LOW = bits of security smaller than 128 bits
MEDIUM = bits of security equal to 128 bits
HIGH = bits of security larger than 128 bits

Outside of the symmetric encryption algorithm strength, the strength of a cipher suite will depend greatly on the key sizes of the key exchange and authentication algorithm keys.  The strength is only as good as the cipher suite’s weakest link.

Following the above grading methodology (and only basing it on symmetric encryption algorithm strength), wolfSSL 2.0.0 currently supports a total of 0 LOW strength cipher suites, 12 MEDIUM strength cipher suites, and 8 HIGH strength cipher suites – as listed in section 4.3.2 of the wolfSSL Manual.  The following strength classification could change depending on the chosen key sizes of the other algorithms involved. For a reference on hash function security strength, see Table 3 (pg. 64) of NIST SP800-57.

In some cases, you will see ciphers referenced as “EXPORT” ciphers.  These ciphers originated from the time period in US history (as late as 1992) when it was illegal to export software with strong encryption from the United States.  Strong encryption was classified as “Munitions” by the US Government (under the same category as Nuclear Weapons, Tanks, and Ballistic Missiles). Because of this restriction, software being exported included “weakened” ciphers (mostly in smaller key sizes).  In the current day, this restriction has been lifted, and as such, EXPORT ciphers are no longer a mandated necessity.

New Site and Documentation Modifications

As you may have noticed we have made a few changes to our website – mainly in color schemes, layouts, and enhanced documentation. One of the largest additions to our site is the HTML version of the updated wolfSSL embedded SSL library Manual, which can be found at the following link. It can also be downloaded in PDF form if you prefer that.

wolfSSL Manual (HTML)

Our RSS feed link has changed due to our terminology change from “News” to “Blog”. Our new RSS feed link is as follows:

If you have any website feature requests, or think that there’s something that we need to add, please contact us at

Team yaSSL

Our News Feed RSS is Changing


We`ve been making several changes to our website lately which we plan to roll out in the near future. One of the things we`re doing is changing the name of our “News” feed to a “Blog” feed. We thought that we better keep up with the times and start using the correct terminology.

As a result of this change, our RSS feed link will be changing. If you are following our RSS feed, please use the following link from now on:

Stay tuned for site and documentation updates soon!

Team yaSSL

wolfSSL 2.0 New Features – Part 4

Here`s the fourth part in a four part series giving a more detailed report on some of the new features present in the recent wolfSSL release.

• Shared build only by default.  wolfSSL used to build in shared mode and static mode by default, somewhat handy, but twice as time consuming.  Now, wolfSSL will only build in shared mode by default, seemingly speeding up the build by a factor of two.  Of course either mode can still be explicitly disabled or enabled.

• Compiler visibility additions.  wolfSSL now uses compiler visibility, if the compiler supports it, to explicitly expose or hide non static functions.  This decreases wolfSSL`s pollution of the global namespace and also decreases the chance of collisions.

• Single Makefile.  wolfSSL used to use Makefiles recursively, one for each directory.  While initially easy to setup, there are several drawbacks to this configuration including slow build times and increasingly complex interactions between the files.  The new single makefile is simpler and faster.  Thanks to Brian Aker for suggesting the last two items.

• Kitchen sink warnings.  wolfSSL now has a configure option (–enable-gcc-lots-o-warnings) that turns on many additional warnings that shouldn`t fire in a release.  wolfSSL has removed the ones that do, though not all systems, versions, compiler versions have been tested so we`re still fine-tuning these.

Please email us at or with any questions regarding the above feature additions, or wolfSSL / embedded SSL in general.

World IPv6 Day

June 8, 2011 (this Wednesday) is World IPv6 Day, a day that several major organizations will offer content over IPv6 during a 24-hour time period. As stated on the ISOC website, “the goal of the test flight day is to motivate organizations across the industry – Internet service providers, hardware makers, operating system vendors and web companies – to prepare their services for IPv6 to ensure a successful transition as IPv4 addresses run out.”

Organizations who are taking part in World IPv6 Day include Google, Facebook, Yahoo, Akamai, Limelight Networks, CISCO, Comcast, and many more. You can find the entire list of stated participants here,

wolfSSL has support for IPv6 as well! wolfSSL was designed as IP neutral, and will work with both IPv4 and IPv6. The test applications included in the wolfSSL download currently default to using IPv4 (to apply to a broader number of systems). In order to change the test applications to use IPv6, use the –enable-ipv6 option while building the wolfSSL embedded SSL library.

Are you prepared for IPv6 Day? To test your current browser setup for World IPv6 Day, you can visit the following pages (which will run a test on your browser setup):

Google`s IPv6 Test Page:
ISOC IPv6 Test Page:

To learn more about IPv6 in general, visit the Wikipedia page, here: As always, if you have questions or comments about the wolfSSL embedded SSL library or the yaSSL Embedded Web Server, please let us know at

wolfSSL 2.0 rc2 Release

The 2nd and possible final release candidate for wolfSSL 2.0 is now available.  This release contains bug fixes for Alert processing and DTLS with DHE.  New features include:

– FreeRTOS support
– lwIP support
– Wshadow warnings removed
– ctc_ prefix for CTaoCrypt headers (manual still being updated for this)
– asn public header for better collision avoidance

Stay tuned for more detailed explanations of the new features that haven`t been covered in our blog series yet.  For questions or comments about this release or embedded SSL in general please contact the yaSSL team at

The State of SSL on the Internet with Ivan Risti?

Ivan Risti?, Director of Engineering at Qualys, Inc., will be presenting the results of the first publicly-available survey aimed at assessing the state of SSL on the Internet. His results will be presented through a free webcast on June 22, 2011 at 2:00 PM EDT. The presentation will also provide documentation and free tools to test and improve the configuration on SSL servers. If you are interested in listening to SSL Labs` results, you can register for the free webcast using the following link.

Qualys SSL Labs: