15-09-2016, 10:28 AM
1454566380-finalyearprojectaspaper.docx (Size: 256.31 KB / Downloads: 5)
INTRODUCTION:
With the development of the Internet, information processing technologies and the rapid development of communication, it is necessary to share information resources. Nevertheless, the Internet is an open environment so information security has becoming increasingly important.Also, Security of wireless networks is main aspect and the process of cryptography plays an important role to provide the security to the wireless networks.The process of encrypting the data alone will not give more security.Hence,we providing the security via hiding those encrypted data into an image and then send it to the receiver.ie Steganography. Steganography is different from cryptography. The main objective of cryptography is to secure communications by using encryption techniques. But steganography techniques are used to hide the messages, which makes difficult for a third party / person to find out the message. Watermarking and fingerprinting related to steganography are basically used for intellectual property protection. Data hiding in images, the data is encrypted using Blowfish algorithm.The encrypted text is divided into 24 bit blocks. Then it converted into binary form. The Random Generator is used to select the pixel positions in which the data is to be hide. Then the Range Technique is used to embed the data into the corresponding pixel positions. The reverse process is done in decryption side.
OBJECTIVE:
The main objective of this project is to increase the hiding or embedding capacity in images without changing the quality of the image and also to improve the security of the algorithm.To enhance the security this project uses the Encryption algorithm called Blowfish Algorithm.Also to increase the hiding capacity this project uses Range Technique and Random number Generator.The Random Number Generator is used for randomly select the pixel positions in which the Data going to be hide.The Range Technique is used for hiding the data in the corresponding pixel positions based on the pixel intensities.By fixing the range based on the intensities we can embed the more data in an image without changing the image quality.
REAL TIME APPLICATIONS:
IP telephony:
IP telephony or Voice over IP (VoIP) for instance, is a real-time service which enables users to make phone calls through IP data networks. It is one of the most important services of IP-based networks and is impacting the entire telecommunications landscape.
An IP telephony connection consists of two phases in which certain types of traffic are exchanged between the calling parties: signalling and conversation phases. During the first phase certain signalling protocol messages, for example SIP (Session Initiation Protocol) messages [9], are exchanged between the caller and callee. These messages are intended to set up and negotiate the connection parameters between the calling parties. During the second phase, two audio streams are sent bi-directionally. RTP (Real-Time Transport Protocol) [1] is most often utilised for voice data transport and thus packets that carry the voice payload are called RTP packets. The consecutive RTP packets form an RTP stream.
LITERATURE REVIEW:
DESATA ENCRYPTION STANDARD
DES is a block cipher that uses shared secret key for encryption and decryption. DES algorithm takes a fixed-length string of plaintext bits and transforms it through a series of complicated operations into cipher text bit string of the same length.In the case of DES, each block size is 64 bits. DES also uses a key of 56 bits to customize the transformation, so that decryption can only be performed by those who know the particular key used to encrypt the message. There are 16 identical stages of processing, termed rounds. The Broad level steps in DES are as follows:
1. In the first step, the 64-bit plain text message is handed over to an Initial permutation (IP) function.
2. The initial permutation is performed on plain text.
3. The IP produces two halves of the permuted message;
Left Plain Text (LPT) and Right Plain Text (RPT).
4. Now, each of LPT and RPT go through 16 rounds of encryption process.
5. In the end, LPT and RPT are rejoined and a final permutation (FP) is performed on the combined block.
6. The result of this process produces 64-bit cipher text.
Rounds: Each of the 16 rounds, in turn, consists of the broad level steps.
AES:ADVANCED ENCRYPTION STANDARD
The AES cipher is almost identical to the block cipher Rijndael cipher developed by two Belgian cryptographers, Joan Daemen and Vincent Rijmen. The algorithm described by AES is a symmetric-key algorithm, meaning the same key is used for both encrypting and decrypting the data. The number of internal rounds of the cipher is a function of the key length. The number of rounds for 128-bit key is 10. Unlike its predecessor DES, AES does not use a Feistel network. Feistel networks do not encrypt an entire block per iteration, e.g., in DES, 64/2 = 32 bits are encrypted in one round. AES, on the other hand, encrypts all 128 bits in one iteration. This is one reason why it has a comparably small number of rounds.
LSB:LEAST SIGNIFICANT BIT
The most basic and important image Steganographic Technique is Least Significant Bit [2, 7] embedding technique. In this technique data can be hidden in the least significant bits of the cover image and the human eye would be unable to notice the hidden image in the cover file. This technique can be used for hiding images in 24-bit, 8-bit or gray scale format. In this technique, least significant bit of each pixel is replaced with secret message bit until message end. When using a 24 bit image one can store 3 bit in each pixel by changing a bit of each if the red, green and blue color components. An 800 x 600 pixel image can store 1,4400,00 bits or 180,000 bytes of embedded data. For example a 24 bit can be as follows: (10110101 01101100 10101101) (10110110 11001101 00111110) (10110101 01100011 10001110) The number 150 which binary representation is 10010110 is embedded into the least significant bits of this part of the image, the resulting grid as follows: (10110101 01101100 10101100) (10110111 11001100 00111111) (10110101 01100010 10001110)
Although the number is embedded into the first 8 bytes of the grid, only the 3 underlined bits need to be changed according to the embedded message. On an average, only half of the bits in an image will need to be modified to hide a secret message using the maximum cover size.
DRAWBACKS:
Disadvantages OF DES AND AES:
1) Its key size is too small by current standards and its entire 56 bit key space can be searched in approximately 22 hours.
2) It was recognized that DES was not secure because of advancement in computer processing power.
3) AES is challenging to implement in software.
Disadvantage of LSB:
1)We can embed only minimum number of data in the image.
PROPOSED SYSTEM:
BLOWFISH ALGORITHM FOR ENCRYPTION:
1) Blowfish is block cipher 64-bit which can also be used as a replacement for the DES algorithm. It takes a variable length key, ranging from 32 bits to 448 bits; default 128 bits.
2) Blowfish is fast as its encryption rate on 32-bit microprocessor is 26 clock cycles per byte.
3) It is compact as it can execute in less than 5 kb memory.
4) It is simple because it uses only primitive operations like addition, XOR and table lookup, making its design and implementation simple.
5) It has a variable key length upto a maximum of 448 bits long making it both flexible and secure.
6) No attack is known to be successful against this. Blowfish is unpatented, license-free, and is available free for all uses. Blowfish has variants of 14 rounds or less.
7) Blowfish is considered to be the best out of all encryption algorithms.
ADVANTAGES OF PROPOSED SYSTEM:
1)The Blowfish Algorithm uses variable key size from 32 bits to 448 bits. Hence it cannot be easily cracked.
2)Also the Blowfish Algorithm consists of 512 iterations,that helps to improve the security.
3)The Range Algorithm helps to improve the embedding capacity in an image without changing the quality of the image. e.g., Image Size 160*160=25600 pixel.In this Image we can hide maximum of 162774 bits through the Range Technique.In Previous LSB Schemes we can hide maximum of 51200 bits.
PROBLEM DEFINITION:
This project resolves the problem of embedding larger amount of data in a single image and it does not change the quality of image throughout the process. The embedding capacity in previous technique is maximum of 2bits per pixel.But this project increase the embedding capacity upto maximum of 5/6 bits per pixel based on the pixel intensities. Also, the data is encrypted using the Blowfish Algorithm,which is a symmetric key block cipher of variable key length of 32bits to 448bits.The previous encryption technique uses the key size of 128bits,256bits which is easily cracked.In case of Blowfish Algorithm it is not easily cracked because it requires 521 iterations. It is a Feistel network, iterating a simple encryption function 16 times.
CRYPTOGRAPHY:
Cryptography is the art and science of achieving security by encoding messages to make them readable.The high growth in the networking technology leads a common culture for interchanging of the data very drastically. Hence it is more vulnerable of duplicating of data and re-distributed by hackers. Therefore the information has to be protected while transmitting it,Sensitive information like credit cards, banking transactions and social security numbers need to be protected.
TYPES OF CRYPTOGRAPHY:
Two types of cryptography is studied:
Symmetric Key Cryptography: When the same key is used for both encryption and decryption, then that mechanism is known as symmetric key cryptography.
Asymmetric Key Cryptography: When two different keys are used, that is one key for encryption and another key for decryption, then that mechanism is known as asymmetric key cryptography.
STEGANOGRAPHY:
Steganography is the art of passing information using original files in a manner that the existence of the message is unknown. The term steganography is arrived from Greek word means, “Covered Writing”. The carrier files can be referred to as cover text, cover image, or cover audio as appropriate. After embedding the secret message it is referred to as stego-medium. No Niether cryptography, or steganography can alone make the data secure efficiently So a better technique is developed by combining these two techniques. A combination of steganography and cryptography is used which will take advantage of both the techniques
DATA ENCRYPTION:
The data encryption process uses the encryption algorithm called Blowfish Algorithm which is a Symmetric key Algorithm of variable key size from 32 bits to 448 bits.
BLOWFISH ALGORITHM:
Blowfish is a symmetric block cipher that can be effectively used for encryption and safeguarding of data. It takes a variable-length key, from 32 bits to 448 bits, making it ideal for securing data. Blowfish was designed in 1993 by Bruce Schneier as a fast, free alternative to existing encryption algorithms. Blowfish is unpatented and license-free, and is available free for all uses.
Blowfish Algorithm is a Feistel Network, iterating a simple encryption function 16 times. The block size is 64 bits, and the key can be any length up to 448 bits. Although there is a complex initialization phase required before any encryption can take place, the actual encryption of data is very efficient on large microprocessors.
Blowfish is a variable-length key block cipher. It is suitable for applications where the key does not change often, like a communications link or an automatic file encryptor. It is significantly faster than most encryption algorithms when implemented on 32-bit microprocessors with large data caches.
FEISTEL NETWORKS:
A Feistel network is a general method of transforming any function (usually called an Ffunction) into a permutation. It was invented by Horst Feistel and has been used in many block cipher designs. The working of a Feistal Network is given below:
• Split each block into halves
• Right half becomes new left half
• New right half is the final result when the left half is XOR’d with the result of
applying F to the right half and the key.
Note that previous rounds can be derived even if the function f is not invertible.
The Blowfish Algorithm:
• Manipulates data in large blocks
• Has a 64-bit block size.
• Has a scalable key, from 32 bits to at least 256 bits.
• Uses simple operations that are efficient on microprocessors.
e.g., exclusive-or, addition, table lookup, modular- multiplication. It does not use variable-length shifts or bit-wise permutations, or conditional jumps.
• Employs precomputable subkeys.
• On large-memory systems, these subkeys can be precomputed for fast operation. Not precomputing the subkeys will result in slower operation, but it should still be possible to encrypt data without any precomputations.
• Consists of a variable number of iterations.
For applications with a small key size, the trade-off between the complexity of a brute-force attack and a differential attack make a large number of iterations superfluous. Hence, it should be possible to reduce the number of iterations with no loss of security (beyond that of the reduced key size).
• Uses subkeys that are a one-way hash of the key.
This allows the use of long passphrases for the key without compromising security.
• Has no linear structures that reduce the complexity of exhaustive search.
• Uses a design that is simple to understand. This facilitates analysis and increase the confidence in the algorithm. In practice, this means that the algorithm will be a Feistel iterated block cipher.
DESCRIPTION OF THE ALGORITHM
Blowfish is a variable-length key, 64-bit block cipher. The algorithm consists of two parts: a key-expansion part and a data- encryption part. Key expansion converts a key of at most 448 bits into several subkey arrays totaling 4168 bytes. Data encryption occurs via a 16-round Feistel network. Each round consists of a keydependent permutation, and a key- and data-dependent substitution. All operations are XORs and additions on 32-bit words. The only additional operations are four indexed array data lookups per round.
Blowfish uses a large number of subkeys. These keys must be precomputed before any data encryption or decryption.
The P-array consists of 18 32-bit subkeys:
P1, P2,..., P18.
There are four 32-bit S-boxes with 256 entries each:
S1,0, S1,1,..., S1,255;
S2,0, S2,1,..,, S2,255;
S3,0, S3,1,..., S3,255;
S4,0, S4,1,..,, S4,255.
Encryption
Blowfish has 16 rounds.
The input is a 64-bit data element, x.
Divide x into two 32-bit halves: xL, xR.
Then, for i = 1 to 16:
xL = xL XOR Pi
xR = F(xL) XOR xR
Swap xL and xR
After the sixteenth round, swap xL and xR again to undo the last swap.
Then, xR = xR XOR P17 and xL = xL XOR P18.
Finally, recombine xL and xR to get the ciphertext.
Decryption is exactly the same as encryption, except that P1, P2,..., P18 are used in the reverse order.Implementations of Blowfish that require the fastest speeds should unroll the loop and ensure that all subkeys are stored in cache.
Generating the Subkeys
The subkeys are calculated using the Blowfish algorithm:
1. Initialize first the P-array and then the four S-boxes, in order, with a fixed string.
This string consists of the hexadecimal digits of pi (less the initial 3): P1 =
0x243f6a88, P2 = 0x85a308d3, P3 = 0x13198a2e, P4 = 0x03707344, etc.
2. XOR P1 with the first 32 bits of the key, XOR P2 with the second 32-bits of the
key, and so on for all bits of the key (possibly up to P14). Repeatedly cycle
through the key bits until the entire P-array has been XORed with key bits. (For
every short key, there is at least one equivalent longer key; for example, if A is a
64-bit key, then AA, AAA, etc., are equivalent keys.)
3. Encrypt the all-zero string with the Blowfish algorithm, using the subkeys
described in steps (1) and (2).
4. Replace P1 and P2 with the output of step (3).
5. Encrypt the output of step (3) using the Blowfish algorithm with the modified
subkeys.
6. Replace P3 and P4 with the output of step (5).
7. Continue the process, replacing all entries of the P array, and then all four S-boxes
in order, with the output of the continuously changing Blowfish algorithm.
In total, 521 iterations are required to generate all required subkeys. Applications can
store the subkeys rather than execute this derivation process multiple times.