|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||
|
WHY COMMUNICATION AND DATA SECURITY?
PRIVACY SOFTWARE MADE EASY In today’s world there is every day a tremendous amount of confidential information, meant for specific persons or groups of persons, stored in computer systems and transferred over worldwide telecommunication networks. This information is directly accessible to practically anybody willing to spend some time and efforts in tapping and spoofing. The necessary equipment to allow eavesdroppers to listen to telephone conversations, tap fax messages, pick-up computer data or radio transmissions, read E-Mails, etc., is today at the reach of almost everybody. For example, equipment can be purchase in almost any radio shop for less than $30.- that will allow to listen to conversation from car telephone, between walkies-talkies, between civilian and military air to air or between air to ground communications. Radio amateurs are even better equipped. They, very often, have highly sensitive HF-Receivers with TTYs, computers and associated electronics which can pick-up the ARQ-signals transmitted mainly from embassies to headquarters. There are also organisations specialised in eavesdropping such as the ones operated by the governments of practically every country in the world. To mention only one (because it is the best known), the National Security Agency in the US, is spending 5 to 10 billion dollars per year to maintain a world wide network of highly sensitive radio receivers, 35’000 persons at Fort Mead and 100’000 persons abroad whose functions are to listen, evaluate, classify and report. Here more then anywhere else, the quote KNOWLEDGE IS POWER finds its application. No doubts that information transmitted to headquarters from diplomats during their foreign assignments is of great value to the guest government. This is the reason embassies and diplomatic missions are the first target of interceptors and eavesdroppers. Of course not only government agencies are interested in information but also the industry. Industrial spying is a daily activity that brings in billions of dollars to the detriment of the careless companies that let there business executives exchange top information per fax or mobile telephones or worse still per e-mails. The dangers and temptations are not less important where big amounts of money are involved such as in banking or stock-market transactions. The worldwide mobile telephone system offers a limited confidentiality service with big problems if security is your concern:
The danger is so real that in the US lawyers and doctors are prohibited by law to discuss clients and cases over a car phone Security can only be achieved through end-to-end digital high security encryption, as SSL piping can provide, leaving no doubts on the actual ciphering and the key handling procedures. General Considerations on Cryptology (for those who are interested) Introduction Who is going to win the age-old battle between cryptography and cryptanalysis? Great (non-specialist) minds of past centuries disagree. In his "Dictionnaire philosophique" (1769), Voltaire wrote: "Ceux qui se vantent de lire les lettres chiffrées sont de plus grands charlatants que ceux qui se vanteraient d'entendre une langue qu'il n'ont point apprise". Loosely translated, this says: "Cryptanalysts are a bunch of charlatans, even more so than Champollion!" (Champollion, Jean François, 1790-1882. At the age of 16 he read before the academy of Grenoble a paper in which he maintained that Coptic, the native spoken language of Egypt from the early Christian era to the 7th century, was the ancient language of Egypt). The opposite opinion is voiced by Edgar Allan Poe in his famous tale The Gold-Bug (1843): "It may well be doubted whether human ingenuity can construct an enigma of the kind [cryptogram] which human ingenuity may not, by proper application, resolve". It is now clear that Voltaire was wrong: most historical cryptosystems have been badly broken, sometimes with spectacular consequences. On the other hand, there are crypto systems that have been proven to be unbreakable, regardless of the cryptanalyst's "ingenuity". The current opinion is that the increase in computing power, witnessed since 1945 until today, places cryptographers in an unprecedentedly favourable position, to the detriment of cryptanalysts. This is a very ironic turn because the Colossus, which was the first electronic computer in history, was specifically built for the purpose of crypanalysing German ciphers (ENIGMA). Mathematicians have worked at finding objective criteria for the security of cryptosystems, thereby transforming this ancient art into an exact science. In the past decade, computer scientists have worked at basing the security of cryptography on the recent theory of computational complexity instead of Shannon's information theory. The basic difference is that Shannon's theory lives on the hope that the cryptanalyst will not have enough information to decipher a cryptogram, while computational complexity only expects the cryptanalyst not to have enough time to do so. It would help if you were already familiar with the concept of cryptography in general and public key cryptography in particular. Nonetheless, here are a few introductory remarks about public and secret key cryptography. The problem Symmetrical system (or conventional) Asymmetrical system (or public key) Anyone can use a recipient's public key to encrypt a message to that person, and that recipient uses his own corresponding secret key to decrypt that message. No one but the recipient can decrypt it, because no one else has access to that secret key. Not even the person who encrypted the message can decrypt it! In the above described process, the recipient cannot determine the true origin of the message, because anyone can use his public key to encipher a message and pretend to be somebody else. Consequently, authentication is required and is also possible. Sender and recipient have to both produce a key pair (one public and one secret), exchange their public keys and keep their individual secret keys well guarded. Then, the sender's own secret key can be used to encrypt a message, thereby "signing" it. This creates a digital signature of a message, which the recipient (or anyone else) can check by using the sender's public key todecrypt it. This proves that the sender was the true originator of the message, and that the message has not been subsequently altered by anyone else, because the sender alone possesses the secret key that made that signature. Forgery of a signed message is unfeasible, and the sender cannot later disavow his signature. These two ciphering processes can be combined to provide both privacy and authentication by first signing a message with your own secret key, then encrypting the signed message with the recipient's public key. The recipient reverses these steps by firstdecrypting the message with his own secret key, then checking the enclosed signature with your public key. These steps are done automatically by the recipient's software. Because the public key encryption algorithm is very slow compare to conventional single-key encryption and that only short message can be efficiently encrypted, for high security ciphering systems (the higher the security the slower the ciphering process becomes), a "message digests" is used to form the signatures and is encrypted by the secret key. A message digest is a 128-bit cryptographically strong one-way hash function of the message. It is somewhat analogous to a "checksum" or CRC error checking code, in that it compactly "represents" (like a finger print) the message and is used to detect changes in the message. Unlike checksums and CRCs, however, it is computationally unfeasible for an attacker to devise a substitute message that would produce an identical message digest. There is the possibility to use a faster conventional single-key encryption to encrypt the "plaintext" with a randomly produced secret key, encrypt the secret key with a public encryption algorithm, and send the public ciphered secret key along with the normally ciphered text. This method should be as much as possible avoided in high security ciphering systems. Transmitting the key, even ciphered, along with the message is questionable. Despite of this, for convenience, software packages provide oft this possibility. The KEY to be put in the cipher is ciphered and signed with the PUBLIC Key algorithm. As additional precaution, it is ciphered in Cipher Block Chaining mode! When you decide to use this method, always use the highest avaiable security level of your public key system. Besides the use of high quality algorithms, the work of the cryptographer consist of putting as many barriers as possible between himself and the cryptanalyst. Putting the key (ciphered) in the cipher reduces all possible barriers to only one. Shannon defines it this way: a crypto system achieves perfect secrecy if knowledge of the ciphertext yield no information whatsoever on the corresponding plaintext. This is of course a very ideal statement that can only be satisfied with the so called ONE TIME KEY PAD, all other systems will give "some" information about the plaintext, but all efforts in the design of a good crypto system should tend in the direction of Shannon's statement and give as little information as possible. In public key systems, public keys are kept in individual "key certificates" that include the key owner's user ID (which is the name of the station or of the person that distributed the key), a date stamp of when the key pair was distributed, and the actual key material. Public key certificates contain the public key material, while secret key certificates contain the secret key material. Each secret key is encrypted with a private password, in case it gets stolen. A key file (a database), contains one or more of these key certificates. Public key files contain public key certificates, and secret key files contain secret key certificates. The keys are also referenced by a "key ID" or "check", which is an 128 bit message digest (finger print) of the public key. One Time Key Pad On the teletype tape, current-ON is represented by a punched hole, while current-OFF is simply a space through which no electricity would flow when the tape was run through the machine. Vernam's idea was to run a second synchronised key-tape during transmission, which would cause the Baudot value of the character on the message tape to be electronically XORed with the corresponding value of the key-tape (just think of a space as 0 and a punched hole as a 1 and you have a full-fledged binary system). This would produce an encrypted output of the plaintext. At the receiving end, an identical tape would be synchronised to run along with the incoming message, and the teletype would automatically turn out the decrypted message. The encrypting tape consisted of random or pseudo random Baudot characters, but as they were necessarily limited by practical size, repeated use carried the danger that careful cryptanalysis would spot recurring pattern and reveal the key string. A particular solution utilised two eight-foot key-tape in such a way that there output mimicked that of a single 8000-foot key tape before the particular key sequence began to repeat itself. But with large scale use over a major system, even this measure becomes vulnerable to careful and patient cryptanalysis. Ironically, research into the Vernam's system by Major Joseph Mauborgne of the US Army's Signal Corps produced what is the world's only unbreakable cipher. Perfect Secrecy Take a sequence of totally randomly generated numbers and use them as the enciphering key to be XORed with the plaintext message. This random key must be at least as long as the message and the same key must not be use more than once. The result is a unique encipherment of a single message which will, all things being equal, defy any and all attempts at cryptanalysis working from the cipher text alone. But the flaw lies in general security and not in any weakness of the cipher or any theoretical concern of cryptology, because there is a the large amount of key material to transmit over a secure channel, at sometimes. Nonetheless, perfect secrecy crypto system are used in practice for very sensitive applications such as the red Telephone between Washington and Moscow. Some security consideration The purpose of diffusion is to dissipate the source language redundancy found in the cleartext by spreading it out over the whole ciphertext. This can be achieved in two distinct ways. A transposition cipher rearranges the order in which letters (or bits) are written in the message. A simple instance is the permutation (1->3, 2->5, 3->4, 4->1, 5->2) applied to clear text "hello" yields "lolhe". Here the secret key is the permutation and longer cleartexts are enciphered using one of the "modes of operation" explained below. Although this does not affect single letter frequencies, and still being easy to break, it does obscure the frequencies of bigrams (two letter groups), trigrams, and so on. An other approach is to regard each letter as an integer modulo 26 and perform for each cipher letter an averaging operation over a certain range of message letters and reduce modulo 26. The effect of all this is that the cryptanalyst needs to intercept a much longer cryptogram before he can attempt statistical decipherment. The purpose of confusion is to make the relation between the key and the cipher text as complex as possible and ensure that every ciphered character will depend on virtually the entire key. So the cryptanalyst will not gain much useful information on the key from statistical studies of the cipher text. This is usually brought about by the complex substitution techniques on letter blocks. An alternative is to use a different substitution on each position of the cleartext, but this brings us back to the perfect secrecy and the one time key pad! Taken separately, neither diffusion nor confusion is a very good technique, but combined together they become much stronger and yield what is called a "product cipher", mainly used in "block ciphering" such as the Data Encryption Standard. Some of the main quality design criterions of block ciphers are the following:
It is here stressed that the above mentioned criterions are necessary but not sufficient too guarantee quality and security. Some definitions Substitution : Product cipher: Monographic Substitution: Polygraphic Substitution: Homophon Substitution: Polyalphabetic Substitution: Entropy: Pseudo Random Bit Generation Randomness and cryptography are very strongly related. The prime purpose of cryptosystems is to transform non-random meaningful plaintexts into an apparently random jumble. A pseudo-random generator is cryptographically strong if the sequence it produces from a short secret seed is essentially as good as a truly random sequence for the purpose being used as a one-time key pad as is discussed above. By "essentially as good" we mean that no feasible computation can allow the cryptanalyst to learn any information on the plaintext from eavesdropping on the ciphertext (except with a vanishingly small probability). In other words, it behaves as if it offered Shannon's perfect secrecy as long as the cryptanalyst does not spend an inordinate amount of time. Pseudo-random generator unpredictable to the left. The discrete logarithm problem stated above is the same as finding the factorisation of n in a product of primes. It follows that the BBS generator is unpredictable to the left under the assumption that it is hard to factor n. A 200 digit n (about 670 bits) is considered as being "hard" to factor in the full cryptographic sense of it and as being secure. Much more so if n is bigger than 300 digits long and not known Public Key System (Asymmetrical System) The public enciphering key, call it e, is a randomly produced number which is relatively prime to p-1 and q-1. The deciphering key, call it d, must be calculated and is the only integer satisfying the congruence ed = 1 mod m, with m = phi(n) = (p-1)(p+1). Such that: Cipher = Message ^ e MOD n and where ^ indicates the exponent operation. It is seen from above that for both the ciphering and the deciphering process the same module n is needed, but different keys are used. SECRET KEY is => d It is only important to know that to each module n correspond one or several pairs of ciphering/deciphering keys. The Enciphering Key "e" and the Module "n" used to produce it can be made public without any danger, but the deciphering key must be kept secret. In the following, we will talk about user GROUPS or simply GROUPS. A GROUP is nothing else than a group of users using the same MODULE n. Within the same GROUP (same module n) there may be one unique Public Enciphering Key and one unique (group secret) Secret Deciphering Key. This however would deter the purpose of the public key system, since an exchange of secret information (p and q or the secret Deciphering Key itself) must take place. In practice a basic system will be such that each user will produce its own public and secret key pair, based on a common module (can be made public), and make his public key available to everybody in the group. Each one keeps a table of the public key of each Group member and cipher with the public key of that particular member he wants to communicate with. If the Group wishes to have a common Deciphering Key for broadcasting purposes, the SAME public key “e” and SAME module “n” must be used, the secret Deciphering Key (to decipher broadcasted messages) must then be exchanged using a courier. => NEVER use different key pairs to broadcast the same message!. The system could then be broken. => NEVER send the same message to different persons if these persons do not have the same keys. => NEVER cipher the same message with different keys. To one given message must correspond only one given cipher! A public key system does not inherently provides for authentication (the positive identification of the person or station transmitting the message) because everybody could use public keys from somebody. It is however possible to overcome this problem by first ciphering with the secret key of the Sending Station (origin) and ciphering once more with the public key of the receiving Station. At the other end, the Remote Station, will first decipher with its own secret key and second with the public key of the transmitting station. If the message can so be recovered then the transmitter is positively identified. In practice, because ciphering with public key system is slow, only a small part of the message will be doubly ciphered. This small message part must uniquely identify the message itself and is called the Message Digest calculated with a One-Way Hash Function and is appended to the actual message. The Message Digest is ciphered with the secret key of the sending station and is so "signed". It identifies the transmitter and authenticates the message itself. Then the complete message (actual message + ciphered Message Digest) is ciphered with the public key. To produce a set of Public Keys a MODULE, a PUBLIC key and a SECRET key have to be generated. The length of the MODULE (n) determines the block size of the cipher, the length of the keys, the achieved security and the ciphering speed. n bigger than 25 digits => Low Security ( 90 bits ) To break a PUBLIC Key System, n has to be available and factored in a product of primes. This is known as the factoring problem and there is no known algorithm capable of accomplishing this job in a reasonable amount of time. A 200 digit n (about 670 bits) is considered as being "hard" to factor in the full cryptographic sense of it and as being very secure for all practical purpose against a single attacker (as opposed to attackers using computer networks). Commonly used 512-bits modules can be considered as vulnerable to an organisation willing to spend a few million dollars and wait for a few months of computational time. With more than 1024 bits you can sleep tight for the next few years. Electronic Code Book (ECB) Cipher Block Chaining (CBC) Cipher Feedback (CFB)
Remark: The initialisation vector produced in step 1) must be unique i.e. different for each ciphered text produced with the same key but it does not need to be kept secret. The CFB mode is like CBC mode self-synchronising, there is no security improvement over CBC and it is slower. It is good if single characters or bits have to be individually ciphered as is the case in stream cipher or in the ciphering of data bases. Output Feedback (OFB)
|
||||||||||||||||||||||||||||||||||||||||
|
||||||||