Xidie Secure Archives

Content

 

 

Overview

Xidie secure -archives is a files and folders encryption utilities, protecting your files with a key built from a password or a key disk, so that only you have access to the contents. Also Xidie secure-archives implements a public key encryption algorithm that allow you to securely send documents over an un-secure communication. Xidie implements more encryption algorithms some of them well recognised in the security branch like AES or Triple Des and some of them originally developed by author (DX and MDX). Today we are in the information age and encrypting data becomes more and more important for most of us. There are many reasons why data have to be protected from unauthorized access. Business documents, medical data, our work, original paper, there are many documents that must be un-accessible to other people. And to protect these documents we must use solutions that involve strong encryption algorithms (cryptography) like Xidie does. Using just cryptography like in this module or in combination with steganography like in steganography module, using various symmetric or asymmetric encryption algorithms, Xidie assure confidentiality of your data at a high level of security. Xidie allows you to encrypt not only file data, but also other sensitive archive areas: file names, sizes, attributes, comments and other blocks. Without a password it is impossible to view even the list of files in archive encrypted in such mode. Xidie implements and uses some proprietary encryption algorithms and some standard encryption algorithms. And remember that if you lose your password, you will unable to retrieve the encrypted files, not even the Xidie author is able to extract encrypted files.

Top

The process of encrypt-decrypt data

In cryptography, a cipher is an algorithm for performing encryption and decryption - a series of well-defined steps that can be followed as a procedure. In most cases, that procedure is varied depending on a key which changes the detailed operation of the algorithm. In non-technical usage, a "cipher" is the same thing as a "code"; however, the concepts are distinct in cryptography. In classical cryptography, ciphers were distinguished from codes, which operated by substituting according to a large codebook. The original information is known as plaintext, and the encrypted form as cipher-text. The cipher-text message contains all the information of the plaintext message, but is not in a format readable by a human or computer without the proper mechanism to decrypt it; it should resemble random gibberish to those not intended to read it. The operation of a cipher usually depends on a piece of auxiliary information, called a key. The encrypting procedure is varied depending on the key, which changes the detailed operation of the algorithm. A key must be selected before using a cipher to encrypt a message. Without knowledge of the key, it should be difficult, if not impossible, to decrypt the resulting cipher-text into readable plaintext. Symmetric algorithms use the same key for encryption and decryption. The strength of a symmetric algorithm is usually specified by the key length. DES, for example uses 56-bit keys, whereas Blowfish uses 128-bit keys. The greater the number of bits in the key the more secure the encrypted data is. Symmetric algorithms are the most popular encryption algorithms, mainly because they tend to be fast (essentially all symmetric algorithms shuffle and manipulate the bits in your plaintext and the bits in the key through several similar cycles) and hence are very efficient at encrypting large amounts of data. Public key algorithms use a different key for encryption and decryption, and the decryption key cannot (practically) be derived from the encryption key. Public key methods are important because they can be used to transmit encryption keys or other data securely even when the parties have no opportunity to agree on a secret key in private. All known methods are quite slow, and they are usually only used to encrypt session keys (randomly generated "normal" keys), that are then used to encrypt the bulk of the data using a symmetric cipher. The general encryption/decryption process works as follows. The plaintext is encrypted with the encryption algorithm. The algorithm uses a key to perform the encryption. This key is usually a sequence of bits that we choose to be as random as possible, so that it's hard to guess. The length of the key varies according to the algorithm used. After this step, we have the cipher-text, which we can safely store on an un-secure disk or send to someone over an insecure transmission medium. The recipient of the cipher-text then decrypts it with the corresponding decryption algorithm, using the decryption key, to produce the original plaintext message.

Top

Using Xidie secure archives

Create a new secure archive

In order to create a new archiveyou must follow three steps:

  • First at all you must add files and or folders to it. To add files to archive press Select and add files to archive. In the Windows dialog window, keep Ctrl taste pressed to select more than one files. To add an entire folder to archive press Select and add folder to archive.
  • Specify the archive name,
  • Set the password and security options (only for advanced interface)

Unpack an archive

To unpack an archive you must follow these steps:

Select archive. Xidie archives have a ".exc" extension.

Set the password and security options (only for advanced interface)

Top

Set password and security options

Whatever interface select, the processes of encrypt/decrypt data are the same. You must enter a password for symmetric encrypt/decrypt process. This password could be typed or could be random generated. If you type the password yourself you must retype the password. To generate a random password you could change the password length and you could choose between characters used to generate the password (all characters, numeric, uppercase and lowercase characters and base 64 characters). Passwords could be saved as a key disk (on removable disk like floppy or secure disks). Do not use common words, such as the name of your cat, husband, wife, daughter, telephone number, the numbers of your birthday or year, not even in reversed order. You can be sure these passwords will be tried out first. If you don't want to use passwords with extra characters like "&%$*" then use passwords at least 12 letters long. Use random password generator and save password on an removable like floppy, SD cards etc. Use numbers or binary values. Do not forget your password! Use key disks, if you cannot remember passwords but keep the key disk in a secure place (don't forget it on your desk eventually near computer). There are no possibilities to restore files encrypted with Xidie with an unknown password. If the password or the key disk is lost or damaged respectively, you will never be able to decrypt your files. The program does not store the keys, neither in an encrypted file nor anywhere else. The password is even deleted in memory after its usage. Supplementary, advanced interface offer some special features like: Create or run Script files. To automate the daily jobs Xidie offers you script files. A script is nothing more than a description which tells the program what to do and how to do it. So if you want to execute the same job (to encrypt/decrypt same files every day) you will save this info as a script.

Top

Advanced security options

Allow user to set the encryption algorithm and the digest algorithm used in symmetric encryption. There are four classic encryption algorithms implemented in Xidie: Rijndael Triple DES DES RC2 Also Xidie implements four variants of a new encryption algorithm developed by the author of Xidie, generic named DX with variable block length (257, 1023, 8191 and 100000 bytes) from you could choose on advanced interface. By default Xidie use Rijndael encryption algorithm in all the others interface. As hash algorithm (also known as digest algorithm) Xidie use by default SHA512 but also implement other four digest algorithms (SHA384, SHA256, SHA1 and MD5) from you could choose on advanced interface. On advanced interface you will need to set the encryption algorithm and digest algorithm only on creating archive process. On decrypt process, Xidie know encryption and digest algorithm used on encryption process, so you don't need to remember what encryption algorithm you used when you encrypt data. Batch scripts Another new option on Xidie represents

Top

Batch scripts (extension .bat).

With batch files, which are also called batch programs or scripts, you can simplify routine or repetitive tasks. A batch file is an unformatted text file that contains one or more commands and has a .bat or .cmd file name extension. When you type the file name at the command prompt, Cmd.exe runs the commands sequentially as they appear in the file. You can include any command in a batch file. Certain commands, such as for, goto, and if, enable you to do conditional processing of the commands in the batch file. So if you want to execute the same job (decrypt this archive every day in the same folder or to make an archive containing same files every day) Xidie will save this info automatic as a script. Next time you want to do this job you must simply run the saved batch file. Unlike Xidie scripts that need to start Xidie first in order to run the script, batch scripts didn't need to start Xidie to run a script. When you run a batch file created with Xidie, the application Xidie will start automatically, will execute the jobs specified in file (script) and then will close without any user interaction (except secure archives where user will be asked to introduce password). The great advantages of batch files created with Xidie: automatically create archives (secured or not) or unpack archives (secured or not) with no user interaction required. And to create a batch file, all the command line parameters are set-up automatic by Xidie with no user interaction (just specify the batch file name where to save the script). You do not need to specify any arguments, all the hard work of setting up complex commands is done for you by Xidie and you don't need to have any special knowledge. Xidie make all the jobs for you! More advanced users can always run Xidie directly from command prompt (by typing the required parameters on the command line) or could create and save scripts using a text editor or even modify existing scripts. Available scripts on this module: Create encrypted archives (select files and folders to add to archive and set the archive name). When will run the script user will be asked about password (security options). Create folder encrypted archives (select folder to add to archive and set the archive name). When will run the script user will be asked about password (security options). The main purpose for batch scripts is automatically backups of your data but many others could be added. After you create a batch file with Xidie you could use Scheduled Tasks from Microsoft Windows to run it at a time that is most convenient for you.

Top

How Public Key encryption work on Xidie

Also on advanced interface Xidie implements a new and original public key encryption algorithm named MDX. In order to securely communicate with a thirty part first at all you must select the system key (see description bellow). After you select the system key, all public keys belonging this system key will be loaded. Select your public key and the opponent public key and enter the pair of key used to generate your public key. If you enter the correct pair of keys then you could generate the encryption key that will be used to encrypt/decrypt documents. Like in any public key encryption algorithm MDX use a pair of key (the public key and the private key). In plus MDX use a system key. A system key represents an organizational key and is used to generate the public and the private key. In order to use MDX to securely communicate with a thirty part both parts must use the same system key. Xidie implements a system key manager that allow user to generate a new system key or to import a system key generated by a thirty part. In order to generate a new pair of key (public and private) user must select the system key and to complete the fields with supplementary info (name, phone, e-mail, address). To generate a new key you must enter a pair of keys with a length greater then or equal to 8 characters. You must remember this pair of key because every time you use this public key you must enter this pair of key. This pair of keys will be your secret so never reveal them to a thirty part. This pair of key is like PIN code of your credit card or mobile phone so keep them only for you!

Suppose Bob and Alice wants to securely communicate. First Bob will generate a new system key. Then Bob will generate his public key using previous generated system key and a pair of keys. This pair of keys will be the Bob secret and he will never reveal to a thirty part. Bob will send his public key and the system key to Alice. Alice will import Bob system key in she's system. Then Alice will import Bob's public key in her system. After that Alice will generate the public key using a pair of keys. This pair of keys will be the Alice secret and she will never reveal to a thirty part. Alice will send her public key to Bob. Bob will import Alice's public key in his system. Now Bob and Alice are ready to securely communicate.

Suppose Bob want to send a secure message to Alice. He will select the common system key then will select his public key and Alice public key. To generate encryption key Bob must enter the pair of key used when he generate his public key and then to press Generate encryption key button. His message will be encrypted and only Alice will be capable to read his message. Now suppose Alice receive the message from Bob and she wants to read it. She will select the common system key and then she will select her public key and Bob public key. To generate encryption key Alice must enter the pair of key used when Alice generates her public key and then to press Generate encryption key button. Bob's message will be decrypted if the pair of keys is correct.

Even MDX look to be more complicated than other public key systems, its offer more transparency to encryption process. Your public key depends only on this pair of keys used. For example, on RSA encryption algorithm, public key is generated using two random prime numbers but you never know if this numbers are really random (only the software developer known exactly).

Top

Secure archives from Windows Explorer

Overview

Another advantage of using Xidie is shell integration which means that several additional items will be added to the standard file and folder contextual menus which appear when you click the right mouse button on a file icon in Windows Explorer. That is, you don't need to start Xidie in order to create a secure archive or to unpack a Xidie secure archive. For example, simply double-click on the archive icon and you open the Xidie archive or right click on Xidie archive icon and from contextual menu select what do you want to do. Or right click on any file or folder icon from Windows explorer and you could directly archive (secure or not) with a single mouse click!

How to open an archive from Windows Explorer or Desktop

Xidie secured archives have extension .exc. There are two modes to open Double click on archive icon and Xidie will open selected archive and you must supply the password used when archive was created. After this press unpack selected archive and done. The archive will be unpacked in selected folder. From the unpacked archive content list you have more options (right click on an item) like open file, open file with Wordpad, find target and delete file. Another way to open (unpack) an archive from Windows shell is by using contextual menus that appear when you right click on an archive icon. There are two contextual menus: 1. Unpack Xidie secure archive. You must supply the destination folder (where to unpack the archive). Because archive is secured you must supply the password used when archive was created. After this press unpack selected archive and done. The archive will be unpacked in selected folder. 2. Unpack Xidie archive to current folder. Because archive is secured you must supply the password used when archive was created. The archive will be unpacked in the parent folder of archive. Xidie encrypt not only file data, but also other sensitive archive areas: file names, sizes, attributes, comments and other blocks. Without a password it is impossible to view even the list of files in archive encrypted in such mode. Xidie implements and uses some proprietary encryption algorithms and some standard encryption algorithms. And remember that if you lose your password, you will unable to retrieve the encrypted files, not even the Xidie author is able to extract encrypted files.

How to create archives from Windows Explorer or Desktop

For common files and folders Xidie adds this item to contextual menu: "Add file/folder to Xidie secure archive" You could add a single file or a single folder to a new secure archive. If you want to add multiple files and folders to a new archive, you must move or copy all files and/or folders into a new folder by using Windows Explorer interface. Or start Xidie and use Xidie interface to add multiple files and folder to a single archive. The archive will be named with the same name as original file but will replace original extension with a new one (.exc for secured archive) When you run this command, you call Xidie to add selected file or folder to a new archive and you'll be asked to supply a password and some security options in Set security options dialog. After you supply this information Xidie will create the encrypted archive without other information. Steps: Select the file or the folder you are going to archive from Windows Explorer, press the right mouse button on the selected file/folder and choose "Add to Xidie secure archive". Enter the password and done. "Set the password and security options" are described in details in "Secure archives section".

Top

More about cryptography and encryption process

General

In cryptography, encryption is the process of obscuring information to make it unreadable without special knowledge, sometimes referred to as scrambling. Encryption has been used to protect communications for centuries, but only organizations and individuals with an extraordinary need for secrecy had made use of it. In the mid-1970s, strong encryption emerged from the sole preserve of secretive government agencies into the public domain, and is now used in protecting widely-used systems, such as Internet e-commerce, mobile telephone networks and bank automatic teller machines. Encryption can be used to ensure secrecy, but other techniques are still needed to make communications secure, particularly to verify the integrity and authenticity of a message; for example, a message authentication code (MAC) or digital signatures. Another consideration is protection against traffic analysis. The best algorithm are secure not because the algorithm used is secret, but because research has shown that the cipher is unbreakable. The security of encrypted data is not a consequence of keeping the encryption algorithm secret. Cryptographers have researched the standard encryption algorithms over the years since they were proposed, trying to break them through various types of attacks. The best algorithms are secure not because the algorithm used is secret, but because research has shown that the cipher is unbreakable. Be wary of encryption products that don't specify which algorithm is used or that use 'a new secret cipher. Instead, the best encryption algorithms derive their security entirely though the secrecy of the keys used. Keep your keys secret, and your encrypted data will be safe. Encryption can be thought of as locking something valuable into a strong box with a key. Conversely, decryption can be compared to opening the box and retrieving the valuable item. On computers, sensitive data in the form of e-mail messages, files on a disk, and files being transmitted across the network can be encrypted using a key. Encrypted data and the key used to encrypt data are both unintelligible. In cryptography, a cipher is an algorithm for performing encryption and decryption - a series of well-defined steps that can be followed as a procedure. In most cases, that procedure is varied depending on a key which changes the detailed operation of the algorithm. In non-technical usage, a "cipher" is the same thing as a "code"; however, the concepts are distinct in cryptography. In classical cryptography, ciphers were distinguished from codes, which operated by substituting according to a large codebook. The original information is known as plaintext, and the encrypted form as cipher-text. The cipher-text message contains all the information of the plaintext message, but is not in a format readable by a human or computer without the proper mechanism to decrypt it; it should resemble random gibberish to those not intended to read it. The operation of a cipher usually depends on a piece of auxiliary information, called a key. The encrypting procedure is varied depending on the key, which changes the detailed operation of the algorithm. A key must be selected before using a cipher to encrypt a message. Without knowledge of the key, it should be difficult, if not impossible, to decrypt the resulting cipher-text into readable plaintext. Most modern ciphers can be categorized in several ways: By whether they work on blocks of symbols usually of a fixed size (block ciphers), or on a continuous stream of symbols (stream ciphers). By whether the same key is used for both encryption and decryption (symmetric key algorithms), or if a different key is used for each (asymmetric key algorithms). If the algorithm is symmetric, the key must be known to the recipient and to no one else. If the algorithm is an asymmetric one, the encyphering key is different from, but closely related to, the decyphering key. If one key cannot be deduced from the other, the asymmetric key algorithm has the public/private key property and one of the keys may be made public without loss of confidentiality. The Feistel cipher uses a combination of substitution and transposition techniques. Most (block ciphers) algorithms are based on this structure. Typically, public key encryption is not used to encrypt large amounts of data. However, public key cryptography does offer an efficient method to send someone the secret key that is used when a symmetric encryption operation is performed on a large amount of data. As an example, suppose Bob wants to send Alice a large number of encrypted files. For performance reasons, he will use a symmetric encryption key algorithm, such as Data Encryption Standard (DES), to encrypt the data. To send the encrypted data and the DES secret key needed to decrypt the data securely, Bob will encrypt the secret key with Alice's public key obtained from her certificate. Because her public key was used to encrypt the secret key, Alice, using her private key, will be the only one able to decrypt the DES secret key and thus decrypt the DES-encrypted data. Public key encryption is a method of encryption that uses two encryption keys that are mathematically related. One key is called the private key and is kept confidential. The other is called the public key and is freely given out to all potential correspondents. In a typical scenario, a sender uses the receiver's public key to encrypt a message. Only the receiver has the related private key to decrypt the message. The complexity of the relationship between the public key and the private key means that, provided the keys are long enough, it is computationally infeasible to determine one from the other. Public key encryption is also called asymmetric encryption.

Top

Glossary

Public key infrastructure (PKI) The term generally used to describe the laws, policies, standards, and software that regulate or manipulate certificates and public and private keys. In practice, it is a system of digital certificates, certification authorities, and other registration authorities that verify and authenticate the validity of each party involved in an electronic transaction. Standards for PKI are still evolving, even though they are being widely implemented as a necessary element of electronic commerce. Certificate represents a digital document that is commonly used for authentication and secure exchange of information on open networks, such as the Internet, extranets, and intranets. A certificate securely binds a public key to the entity that holds the corresponding private key. Certificates are digitally signed by the issuing certification authority and can be issued for a user, a computer, or a service. The most widely accepted format for certificates is defined by the ITU-T X.509 version 3 international standard. Encryption represents the process of disguising a message or data in such a way as to hide its substance. Symmetric encryption is an encryption algorithm that requires the same secret key to be used for both encryption and decryption. Because of its speed, symmetric encryption is typically used when a message sender needs to encrypt large amounts of data. Symmetric encryption is also called secret key encryption.

Top

Public key cryptography

A method of cryptography in which two different keys are used: a public key for encrypting data and a private key for decrypting data. Public key cryptography is also called asymmetric cryptography. Private Key represents the secret half of a cryptographic key pair that is used with a public key algorithm. Private keys are typically used to decrypt a symmetric session key, digitally sign data, or decrypt data that has been encrypted with the corresponding public key. Public key represents the non-secret half of a cryptographic key pair that is used with a public key algorithm. Public keys are typically used when encrypting a session key, verifying a digital signature, or encrypting data that can be decrypted with the corresponding private key. Public Key Cryptography Standards (PKCS) A family of standards for public key cryptography that includes RSA encryption, Diffie-Hellman key agreement, password-based encryption, extended-syntax, cryptographic message syntax, private key information syntax, and certificate request syntax, as well as selected attributes. Developed, owned, and maintained by RSA Data Security, Inc. Public key encryption is a method of encryption that uses two encryption keys that are mathematically related. One key is called the private key and is kept confidential. The other is called the public key and is freely given out to all potential correspondents. In a typical scenario, a sender uses the receiver's public key to encrypt a message. Only the receiver has the related private key to decrypt the message. The complexity of the relationship between the public key and the private key means that, provided the keys are long enough, it is computationally infeasible to determine one from the other. Public key encryption is also called asymmetric encryption. The term generally used to describe the laws, policies, standards, and software that regulate or manipulate certificates and public and private keys. In practice, it is a system of digital certificates, certification authorities, and other registration authorities that verify and authenticate the validity of each party involved in an electronic transaction. Standards for PKI are still evolving, even though they are being widely implemented as a necessary element of electronic commerce. Software code obfuscation use encryption and is used in software copy protection against reverse engineering, unauthorized application analysis, cracks and software piracy. Key-Generators For each symmetric cipher, there is a Key Generator that can be used to generate random keys for that cipher. Cryptography is by definition the art of writing or deciphering messages in code or the system used in a code or cipher. Cipher represent a system of secret writing based on a key, or set of predetermined rules or symbols and also a message in such writing. Steganography is by definition the art of hiding messages into another support (like bitmap file, wave files etc). Password represent a secret word or group of any characters used for identification or for gaining entrance.

Top

Symmetric Ciphers

Symmetric algorithms use the same key for encryption and decryption. The strength of a symmetric algorithm is usually specified by the key length. DES, for example uses 56-bit keys, whereas Blowfish uses 128-bit keys. The greater the number of bits in the key the more secure the encrypted data is. Symmetric algorithms are the most popular encryption algorithms, mainly because they tend to be fast (essentially all symmetric algorithms shuffle and manipulate the bits in your plaintext and the bits in the key through several similar cycles) and hence are very efficient at encrypting large amounts of data. There are two main types of symmetric ciphers: block ciphers and stream ciphers. Symmetric Stream Ciphers Stream ciphers encrypt data one bit at a time. A stream of plaintext (unencrypted) bits flows in one side, and a stream of ciphertext (encrypted) bits flows out the other. At least, this is the way it works mathematically; in practice, the data is always encrypted in byte units. Ciphertext encrypted with stream ciphers is always the same size as the original plaintext. The essential mathematical process is the XOR operation. A stream of random bits is produced and each bit of plaintext is XORed with a random bit to produce a ciphertext bit. The essence of a stream cipher is then how the random bits are produced. Also, the stream of random bits must be reproducible otherwise decryption wouldn't work. Stream ciphers are not generally considered as secure as block ciphers. They are attacked through analyzing the random bit generator. On the plus side, stream ciphers do tend to be the fastest ciphers. Error propagation is usually minimized when stream ciphers are used. If a bit of cipher-text gets garbled, many stream cipher algorithms will produce only a single bit of garbled plaintext. Notes on Symmetric Block Ciphers Although block ciphers define how to encrypt a single block of plaintext, generally the algorithms do not discuss what to do about encrypting a sequence of blocks, or encrypting a block of data that is smaller than the algorithm's block size. There are two main methods for encrypting a sequence of blocks. Either the blocks are treated independently and the cipher is used on each block without reference to what has gone before, or the results of encrypting previous blocks affect the encryption of the current block. These two methods are formally known as the Electronic Codebook (ECB) mode and Cipher Block Chaining (CBC) mode, respectively. ECB mode encrypts each block independently. Identical blocks of plaintext (either in the same message or in a different message that is encrypted with the same key) are transformed into identical ciphertext blocks. If the plaintext to be encrypted contains substantial repetition, then it is feasible for the ciphertext to be broken one block at a time. It is also possible for someone to replace individual blocks in some kind of attack. With ECB mode, if a single bit of the ciphertext block is garbled, then the entire corresponding plaintext block is also garbled, but the corruption does not spread. CBC mode, on the other hand, adds a feedback mechanism. The results of the encryption of previous blocks are fed back into the encryption of the current block. Each ciphertext block is dependent not only on the plaintext block that generated it, but also on all previous plaintext blocks. This ensures that even if the plaintext contains many identical blocks, they each encrypt to a different ciphertext block. At the expense of some extra work (maintaining the feedback register and the XOR operation), the resulting ciphertext is more secure. As with ECB mode, if a single bit of the ciphertext block is garbled, then the corresponding plaintext block is also garbled. In addition, a bit in the subsequent plaintext block (in the same position as the original garbled bit) is garbled. Synchronization errors are fatal. If there are extra or missing bytes in the ciphertext, the plaintext is garbled from that point on. CBC mode works like this. After a plaintext block is encrypted, the resulting ciphertext is stored in a feedback register (it's a simple buffer). Before the next plaintext block is encrypted, it is XOR'ed with the feedback register. The result is then encrypted with the cipher. The resulting ciphertext is again stored in the feedback register, and the cyclew is repeated with the next plaintext block. Decryption is just as straightforward, if a little more involved. It involves two feedback registers, the output register and the input register. A ciphertext block is stored in the output feedback register and is then decrypted normally. This decrypted block is then XORed with the input register to produce the plaintext block. The output register is then copied to the input register and the cycle is repeated with the next ciphertext block. Although CBC mode forces identical plaintext blocks to encrypt to different ciphertext blocks, messages that start with the same data will encrypt the same way up until the first difference since the initial plaintext blocks are identical. Encrypting random data as the first block can prevent this. This block of random data is called the initialization vector. An initialization vector is random data, usually the same number of bits as the block size, which is used as a starting point when encrypting a set of data. The initialization vector has no meaning; it's just there to make each message unique. When the block containing the initialization vector is decrypted, it is just used to fill the feedback register and is otherwise ignored. A timestamp often makes a good initialization vector, but any random bits can be used.

Top

Public Key Algorithms

Public key algorithms use a different key for encryption and decryption, and the decryption key cannot (practically) be derived from the encryption key. Public key methods are important because they can be used to transmit encryption keys or other data securely even when the parties have no opportunity to agree on a secret key in private. All known methods are quite slow, and they are usually only used to encrypt session keys (randomly generated "normal" keys), that are then used to encrypt the bulk of the data using a symmetric cipher (see below).

RSA (Rivest-Shamir-Adelman) is the most commonly used public key algorithm. Can be used both for encryption and for signing. It is generally considered to be secure when sufficiently long keys are used (512 bits is insecure, 768 bits is moderately secure, and 1024 bits is good). The security of RSA relies on the difficulty of factoring large integers. Dramatic advances in factoring large integers would make RSA vulnerable. RSA is currently the most important public key algorithm. At present, 512 bit keys are considered weak, 1024 bit keys are probably secure enough for most purposes, and 2048 bit keys are likely to remain secure for decades. One should know that RSA is very vulnerable to chosen plaintext attacks. There is also a new timing attack that can be used to break many implementations of RSA. The RSA algorithm is believed to be safe when used properly, but one must be very careful when using it to avoid these attacks.

Diffie-Hellman is a commonly used public-key algorithm for key exchange. It is generally considered to be secure when sufficiently long keys and proper generators are used. The security of Diffie-Hellman relies on the difficulty of the discrete logarithm problem (which is believed to be computationally equivalent to factoring large integers). Diffie-Hellman is claimed to be patented in the United States, but the patent expires April 29, 1997. There are also strong rumors that the patent might in fact be invalid (there is evidence of it having been published over an year before the patent application was wiled). Diffie-Hellman is sensitive to the choice of the strong prime and the generator. One possible prime/generator pair is suggested in the Photuris draft. The size of the secret exponent is also important for its security. Conservative advice is to make the random exponent twice as long as the intended session key. One should note the results presented in Brian A. LaMacchia and Andrew M. Odlyzko, Computation of Discrete Logarithms in Prime Fields, Designs, Codes and Cryptography 1 (1991), 47-62. Basically, they conclude that by doing precomputations, it is possible to compute discrete logarithms relative to a particular prime efficiently. The work needed for the precomputation is approximately equal or slightly higher than the work needed for factoring a composite number of the same size. In practice this means that if the same prime is used for a large number of exchanges, it should be larger than 512 bits in size, preferably 1024 bits. Elliptic curve public key cryptosystems is an emerging field. They have been slow to execute, but have become feasible with modern computers. They are considered to be fairly secure, but haven't yet undergone the same scrutiny as for example RSA. ElGamal public key cryptosystem. Based on the discrete logarithm problem. See e.g. Bruce Schneier: Applied Cryptography, John Wiley and Sons, 1994. LUC is a public key encryption system. It uses Lucas functions instead of exponentiation.

Top

Symmetric Stream Ciphers vs. Block Ciphers

Stream ciphers encrypt data one bit at a time. A stream of plaintext (unencrypted) bits flows in one side, and a stream of ciphertext (encrypted) bits flows out the other. At least, this is the way it works mathematically; in practice, the data is always encrypted in byte units. Ciphertext encrypted with stream ciphers is always the same size as the original plaintext. The essential mathematical process is the XOR operation. A stream of random bits is produced and each bit of plaintext is XORed with a random bit to produce a ciphertext bit. The essence of a stream cipher is then how the random bits are produced. Also, the stream of random bits must be reproducible otherwise decryption wouldn't work. Stream ciphers are not generally considered as secure as block ciphers. They are attacked through analyzing the random bit generator. On the plus side, stream ciphers do tend to be the fastest ciphers. Error propagation is usually minimized when stream ciphers are used. If a bit of ciphertext gets garbled, many stream cipher algorithms will produce only a single bit of garbled plaintext.

Top

wpe2.jpg (3285 bytes)

Xidie Security Suite

Today we are in the information age and securing information becomes more and more important for most of us. By combining cryptography with steganography, by using strong compression algorithms, well recognized and new encryption algorithms, classic and new steganographic techniques, Xidie security suite is one of the top software steganography and encryption tools.

Xidie Security Suite

Copyright (C) 2004-2007 Laic Aurelian All rights reserved.

 

Xidie Security Suite ] Contact ] Sitemap ] VBScriptMania ] [Product home page]