FAQ 16: Security in General
FAQ: version 1.01

========================================
Intro
========================================
Why is security important? Generally speaking, everyone wants to protect their privacy. When some people go to the bathroom, they close the door. Other people even lock the door. It doesn't mean going to the bathroom is wrong, just that it's nobody else's business.

Likewise, it's always important to keep credit card and other personal information private. Although it's not likely you have to worry about this too much, some of you have asked me to write this nonetheless.

The reason I did not write this FAQ earlier is that I am not qualified to answer most questions, and much of the information presented here I learned by researching it. However, here I do provide general information which may be useful to you.

One other reason I did not write this FAQ earlier was that there were already pages with such information. I will list them in "Resources".

========================================
Resources
========================================

Dr. Who's Cryptology FAQ
Hope you like it. ;)

Fresh Petals Security Page
This site contains a good amount of information. I will try to repeat only the important points from that page. However, if you don't visit Fresh Petals, you will still be missing out on many details.

Privacy Tools
This site has several other tools for your use.

Mixmaster Remailer
This is a reasonably secure remailer. It's extremely easy to use - it's even easier than using normal e-mail (you'll see why when you get there). Practice by e-mailing yourself with this remailer. As a matter of principle, I advise you to use e-mail for legitimate reasons, even if it is 100% secure. Not only is it a good habit, but there is little you can't do without e-mail. Besides, remailers are made to protect privacy, not to facilitate questionable activity or spamming.

========================================
How do I know if a program or service is secure?
========================================

The answer to this question is often theoretical. Practically speaking, you can probably do just fine without worrying about security at all, but you shouldn't take chances that you don't have to. Since many of you have asked me about this, I will discuss the theoretical issues. Here are some good signs:

A) the maker of the program should publishe the source code and explain exactly how the program works
--this allows the public to better scrutinize and test the program
--this also proves that the program correctly uses the encryption method that it claims

B) the program should use well-established technology
--well established technologies at least pass the test of time
--beware of tools that claim to use "cutting edge"
--cutting edge technology may have many unforeseen flaws, as history has demonstrated

As a case study for example, PGP makes its source code public. Anyone can see just exactly how PGP works, down to every set of computer instructions. Let me summarize why this is a good thing:
a) The programmers are completely confident that their program is secure. This doesn't mean it is secure, but it is a good sign.
b) To this date, no one has found a security flaw with PGP. A large number of people have tried.
c) Furthermore, releasing the source code proves that PGP uses reliable encryption techniques. In other words, you can easily see that PGP does not simply flip a message backwards and call it encryption (for example, it doesn't take "message" and turn it into "egassem").

How PGP works
I'm not going to go into a mathematical proof of why PGP is secure, but I will summarize the most fundamental concept behind it for you. Using one method to generate a key, PGP generates two large prime numbers (let's call them A and B). PGP then multiplies them to get an even larger number (let's call that number C... so A x B = C). C is used to generate the public key. C can be revealed to everyone without revealing A or B, because it is extremely difficult to factor the product of two large primes (and since A and B are primes, there is only one possible factorization of C). With PGP, C is used to encrypt, and A and B are used to decrypt. Mathemetitians have tried to find a shortcut for thousands of years but to date have not made any significant progress.

Some people claim to have developed so-called crackers for PGP, but they really aren't anything more than password guessors (that don't work very well anyways, often using a dictionary guess). They also typically require you have the private key (which you are unlikely to have in the first place unless you are the actual owner of the key). Not only would these crackers fail at any realistic or practical application, they are usually more for fun than anything else. In other words, the only reason people make such programs is to brag about being the first. ;)

Note that the technology to implement PGP has been in existance for a long time (I've even read about the algorithm in old books), despite the fact that PGP is relatively new. This is a good sign, because PGP is based on encryption techniques that have been thoroughly studied.

Important: The number of bits used in encryption alone do not determine how difficult it is to crack the encryption, because another important detail is the algorithm used. However, this number is usually the number given, for various reasons.

128 bit encryption
It would appear that 128 bit encryption is sufficient for most purposes. Keep in mind that it is 309,485,009,821,341,068,724,781,056 times harder to crack 128 bit encryption than 40 bit encryption. This is an excerpt of what I wrote in FAQ 10:
Even assuming that the current rate of computer growth will continue (for the past 40 years it has consistently doubled every 18 months), you would have to wait until the 22nd century to find a single computer that can crack a PGP password within a year. By that time, you'd either be dead or people wouldn't care about what you encrypted as a kid. ;)

Might I also add that even this hypothetical situation assumes that someone would be dumb enough to waste the resources to keep such a powerful computer running 24 hours a day for an entire year, possibly to find out that the message was, "This is a test." =)

Although 56 bit encryption can be cracked using current technology, it's actually rather impractical at the moment since it requires a significant amount of effort and money. International versions of Netscape, for example, use 64 bit encryption, and the computing power needed to crack 64 bit is exponentially larger than that required to crack 56 bit encryption (assuming all other factors are equal, which they usually aren't). Theory is nice to know, but often practicality is far more important.

One other bit of theory involves the underlying principle of PGP encryption. I mentioned that in order to crack the key itself, a computer must be able to factor C into the two primes A and B. Since this is an extremely difficult process (even for a computer), existing crackers generally avoid trying to crack using this method (most are password crackers, which even then don't work very well anyways). However, although current computers have difficulty factoring a number into its two prime factors, there are at least two significant possibilities which might change this.

The first possibility is to actually design hardware that is optimized towards factoring. In other words, a general purpose computer might factor just as well as a specialized chip designed to factor numbers that might cost only 1/10 as much as the computer. The reason why should be obvious, sort of like how a 3D graphics accelerator can render 3D graphics better than a Pentium and still cost roughly 1/10 as much. It's also sort of like how a Swiss Army knife might cost a lot more than a simple knife (and that simple knife might cut just as well as a given knife on the Swiss Army knife).

The second possibility is highly theoretical, and that is that in the near future they might develop a completely new type of computer. While computing power has consistently doubled every 18 months, physical limitations (more specifically, the speed of light and the typical size of an atom), will eventually limit the classical designs of computers. The main reason why manufacturers choose to stick with the classical digital computers is that it's profitable (if it isn't broke, why fix it?) and well established. However, it's inevitable that designers will eventually be forced to look in other directions, such as analog and quantum computers. Analog computers were some of the first electronic computers (capable of incredible levels of artificial intelligence at the time), and it is suggested that since they are not limited in the same way as digital computers (which must store data as 1's and 0's), they may become popular again once such physical limitations are reached. Quantum computers are still under experimentation, but if they are fully exploited, they pose the greatest threat to encryption. Theoretically (but certainly far from practically), they have the potential to perform large-scale parallel processing (performing countless tasks simultaneously).

========================================
Questions I have been asked
========================================

Someone asked about Magic Folders and put forth a concern they had. This was a portion of my response...

I do not trust Magic Folders...they do not release their source code...I never thought what they claimed was secure in the first place...I don't want to pay for it. ;)

More importantly, some people I know have reported certain problems with Magic Folders that confirm my concerns. In any case, for security measures I strongly suggest the Fresh Petal's Security FAQ. http://www.duende.demon.co.uk/456.html (This is main page but it does have a link to the security FAQ)

-Ramses

I write these FAQs in hopes it will benefit and educate you, so as always, feel free to correct me and add your own suggestions. You may remain anonymous or allow me to credit you with the suggestion (I will assume the former but definitely feel free to volunteer the use of your nick in the credits of the FAQ) 1