|Previous||Table of Contents||Next|
Assume that a one-way hash function is secure and the best way to attack it is by using brute force. It produces an m-bit output. Finding a message that hashes to a given hash value would require hashing 2m random messages. Finding two messages that hash to the same value would only require hashing 2m/2 random messages. A machine that hashes a million messages per second would take 600,000 years to find a second message that matched a given 64-bit hash. The same machine could find a pair of messages that hashed to the same value in about an hour.
This means that if you are worried about a birthday attack, you should choose a hash-value twice as long as you otherwise might think you need. For example, if you want to drop the odds of someone breaking your system to less than 1 in 280, use a 160-bit one-way hash function.
Theres no single answer to this question; it depends on the situation. To determine how much security you need, you must ask yourself some questions. How much is your data worth? How long does it need to be secure? What are your adversaries resources?
A customer list might be worth $1000. Financial data for an acrimonious divorce case might be worth $10,000. Advertising and marketing data for a large corporation might be worth $1 million. The master keys for a digital cash system might be worth billions.
In the world of commodities trading, secrets only need to be kept for minutes. In the newspaper business, todays secrets are tomorrows headlines. Product development information might need to remain secret for a year or two. U.S. Census data are required by law to remain secret for 100 years.
The guest list for your sisters surprise birthday party is only interesting to your nosy relatives. Corporate trade secrets are interesting to rival companies. Military secrets are interesting to rival militaries.
You can even specify security requirements in these terms. For example:
The key length must be such that there is a probability of no more than 1 in 232 that an attacker with $100 million to spend could break the system within one year, even assuming technology advances at a rate of 30 percent per annum over the period.
Table 7.10, taken partially from , estimates the secrecy requirements for several kinds of information:
Future computing power is harder to estimate, but here is a reasonable rule of thumb: The efficiency of computing equipment divided by price doubles every 18 months and increases by a factor of 10 every five years. Thus, in 50 years the fastest computers will be 10 billion times faster than todays! Remember, too, that these numbers only relate to general-purpose computers; who knows what kind of specialized cryptosystem-breaking equipment will be developed in the next 50 years?
Assuming that a cryptographic algorithm will be in use for 30 years, you can get some idea how secure it must be. An algorithm designed today probably will not see general use until 2000, and will still be used in 2025 to encrypt messages that must remain secret until 2075 or later.
Security Requirements for Different Information
|Type of Traffic||Lifetime||Minimum|
|Tactical military information||minutes/hours||5664 bits|
|Product announcements, mergers, interest rates||days/weeks||64 bits|
|Long-term business plans||years||64 bits|
|Trade secrets (e.g., recipe for Coca-Cola)||decades||112 bits|
|H-bomb secrets||>40 years||128 bits|
|Identities of spies||>50 years||128 bits|
|Personal affairs||>50 years||128 bits|
|Diplomatic embarrassments||>65 years||at least 128 bits|
|U.S. census data||100 years||at least 128 bits|
This entire chapter is a whole lot of nonsense. The very notion of predicting computing power 10 years in the future, let alone 50 years is absolutely ridiculous. These calculations are meant to be a guide, nothing more. If the past is any guide, the future will be vastly different from anything we can predict.
Be conservative. If your keys are longer than you imagine necessary, then fewer technological surprises can harm you.
|Previous||Table of Contents||Next|