It would take significantly longer than the age of the universe to crack a 128-bit key!
Servers and browsers do encryption ranging from a 40-bit secret key to a 128-bit secret key, that is to say '2 to the 40th power' or '2 to the 128th power'. Many people have heard that 40-bit is insecure and that you need 128-bit to keep your credit card info safe. They feel that using a 40-bit key is insecure because it's vulnerable to a "brute force" attack (basically trying each of the 2^40 possible keys until you find the one that decrypts the message).
This was in fact demonstrated when a French researcher used a network of fast workstations to crack a 40-bit encrypted message in a little over a week. Of course, even this 'vulnerability' is not really applicable to applications like an online credit card transaction, since the transaction is completed in a few moments. If a network of fast computers takes a week to crack a 40-bit key, you'd be completed your transaction and long gone before the hacker even got started.
It would be significantly easier to tap your phone, or to intercept your mail to acquire your credit card number than to somehow intercept and decode Internet Data.
Of course, using a 128-bit key eliminates any problem at all because there are 2^128 instead of 2^40 possible keys. Using the same method (a networked of fast workstations) to crack a message encrypted with such a key would take significantly longer than the age of the universe using conventional technology. Remember that 128-bit is not just 'three times' as powerful as 40-bit encryption. 2^128 is 'two times two, times two, times two...' with 128 two's. That is two, doubled on itself 128 times. 2^40 is already a HUGE number, about a trillion (that's a million, million!). Therefor 2^128 is that number (a trillion), doubled over and over on itself another 88 times. Again, it would take significantly longer than the age of the universe to crack a 128-bit key.
Key Size | Possible Key Combinations | ||
| 2-bit | 2^2 | 2x2 | = 4 |
| 3-bit | 2^3 | 2x2x2 | = 8 |
| 4-bit | 2^4 | 2x2x2x2 | = 16 |
| 5-bit | 2^5 | 2x2x2x2x2 | = 32 |
| 6-bit | 2^6 | 2x2x2x2x2x2 | = 64 |
| 7-bit | 2^7 | 2x2x2x2x2x2x2 | = 128 |
| 8-bit | 2^8 | 2x2x2x2x2x2x2x2 | = 256 |
| 9-bit | 2^9 | 2x2x2x2x2x2x2x2x2 | = 512 |
| 10-bit | 2^10 | 2x2x2x2x2x2x2x2x2x2 | = 1024 |
| 11-bit | 2^11 | 2x2x2x2x2x2x2x2x2x2... | = 2048 |
| 12-bit | 2^12 | 2x2x2x2x2x2x2x2x2x2... | = 4096 |
| 16-bit | 2^16 | 2x2x2x2x2x2x2x2x2x2... | = 65536 |
| 24-bit | 2^24 | 2x2x2x2x2x2x2x2x2x2... | = 16.7 million |
| 30-bit | 2^30 | 2x2x2x2x2x2x2x2x2x2... | = 1 billion (1,073,741,800) |
| 40-bit | 2^40 | 2x2x2x2x2x2x2x2x2x2... | = 1 trillion (1,097,728,000,000) |
| 56-bit | 2^56 | 2x2x2x2x2x2x2x2x2x2.... | = 72 thousand quadrillion (71,892,000,000,000,000) |
| 128-bit | 2^128 | 2 multiplied by 2 128 times over. | = 339,000,000,000,000,000,000,000,000,000,000,000 (give or take a couple trillion...) |
source:inet200.com

