As usual, Microsoft released its pre-announcement for the upcoming patch tuesday. The summary looks pretty much like an average patch tuesday with 7 bulletins total:

Only one of the bulletin rates as critical, and it affects Office as well as Microsoft Sharepoint and Microsoft Office Web Apps. Given the rating of critical, and the fact that it does affect desktop as well as server components, this is likely the patch to watch out for.

Yesterday's announcement of a SHA-3 "winner" gives me a great intro to talk about yet another important security related standard as part of our cyber security awareness month theme. Crypto standards have been critical to develop secure systems for a couple of reasons:

Doing cryptography right is hard. Bit buckets are filled daily with bad crypto algorithms and implementations. Standards provide well vetted algorithms and implementations, as well as guidance on how to use these algorithms

Over the live time of a complex project, it is very likely that large parts of the code have to be transformed to a new platform or a different language. Using a standard encryption algorithm will make this easier because it is more likely that the algorithm is available in the new platform

One characteristic that affects the selection of a standard is performance. But beyond the plain computational "cost" of the algorithm, you may also see standards implemented in hardware (for example the AES opcode in some Intel CPUs). Even if other algorithms are in theory faster, these hardware implementations will likely make up for that difference, and it is unlikely that CPU designers will implement a non-standard algorithm.

So what are these standards? Lets break it down into 3 groups:

1 - Symmetric Ciphers

In 2001, NIST established the "Advanced Encryption Standard" (AES) [1] . It superseded the DES cipher that was used up to then. AES is also known as "Rijndael" , the name used for this cypher before it became known as AES. The cipher can be used with different length keys depending on the classification of the information.

2 - Asymmetric Ciphers

Again referring to NIST [2], there are three standard asymmetric ciphers:

Asymmetric Ciphers are much more "expensive" then symmetric ciphers, and require longer keys. As a result, they are usually used to setup symmetric ciphers (like in SSL) or used to encrypt digital signatures. Currently, RSA and DSA are the most commonly used algorithm, but elliptic curve algorithms are getting a lot of attention as they do provide some significant performance advantages.

3 - Hashing

Cryptographic hashes are usually used to prevent tampering with documents. Currently, SHA-2 (Secure Hash Algorithm) is the one that is the recommended standard, but as we learned yesterday, SHA-3 has just been announced. At this point of course, you may have a hard time implementing SHA-3. We will have to wait for it to be included in various libraries. A good cryptographic hash makes it very hard to intentionally create two different messages with the same hash value. These collisions are of course unavoidable is the message is larger then the hash, but it should be hard to find these collisions.

The big difference between SHA-1 and SHA-2 is that SHA-2 is a set of different hash function s (SHA-224, 256, 384, 512) which can be used depending on the scenario. FIPS-180 suggests the use of SHA-256 for messages smaller then 264 bits [3].

4- Where to find the standards

We probably need a diary about standard bodies as part of this series (maybe tomorrow ;-) ). But just as a quick list of pointers:

NIST is probably the best place to look for guidance and details on algorithms. NIST also publishes the "Federal Information Processing Standard" (FIPS) that includes a lot of details on what algorithms to use. Even if you are not US based, or not subject to any of the federal guidance (most private industry is not), you may find that your industry and national standards are closely aligned to the NIST standards. On an international level, ISO (International Organization of Standardization) is coordinating these efforts. The ISO is a member organization with representatives from various national standard bodies (e.g. ANSI in the US). IETF, the Internet Engineering Task Force, covers how these crypto algorithms are used in internet protocols.

In response to a number of attacks on SHA , NIST started to look for the successor to SHA-2, figuring that it was likely that it to may fall. To date that hasn't occurred and SHA-512 still looks strong. The competition proceeded and was whittled down from 64 candidates over a number of rounds. Yesterday NIST annouced the winner of the SHA-3 competition Keccak http://csrc.nist.gov/groups/ST/hash/sha-3/winner_sha-3.html

Keccak (pronounced catch-ack) was developed by: Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. More details on the actual algorithm can be found here http://keccak.noekeon.org/.

What does it mean for us? Well you will start seeing SHA-3 folded into FIPS 180-4. You'll start to see the algorithm becoming available within the various security products that require hashing functions. Until then and possible still even then you can use SHA-512.