Wednesday, August 21, 2019

Implementation Of Steganography For Audio File Format Computer Science Essay

Implementation Of Steganography For Audio File Format Computer Science Essay Abstract The project entitled Audio Steganography is the application developed to embed an audio file in another audio signal. It is concerned with embedding information in an innocuous cover Speech in a secure and robust manner. This system makes the Files more secure by using the concepts Steganography and Cryptography. Steganography, poor cousin of Cryptography is the art of hiding messages inside other messages such that the very existence of the message is unknown to third party. The goal of cryptography is to make data unreadable by a third party, the goal of Steganography is to hide the data from a third party Through the use of advanced computer software, authors of images and software can place a hidden trademark in their product, allowing them to keep a check on piracy. This is commonly known as watermarking. Hiding serial numbers or a set of characters that distinguishes an object from a similar object is known as finger printing. Together, these two are intended to fight piracy. The latter is used to detect copyright violators and the former is used to prosecute them. But these are only examples of the much wider field of Steganography. The cover data should not be significantly degraded by the embedded data, and the embedded data should be as imperceptible as possible. The embedded data should be as immune as possible to modifications from intelligent attacks or anticipated manipulations. Thus it is necessary that the hidden message should be encrypted. 1. Introduction 1.1Synopsis 2 .System configuration 2.1 Software requirements 2.2 Hardware requirements 3. System Analysis 3.1 Feasibility study 3.2 Existing system 3.3 Proposed system 3.4 Analysis report 4. System design 4.1 System description 4.2 Functional requirements 5. UML Diagrams 6. Implementation 7. Testing and Debugging 8. Output Screens 9. Conclusion 10. Bibliography Introduction 1. Introduction Synopsis Encryption of data plays a vital role in the real time environment to keep the data out of reach of unauthorized people, such that it is not altered and tampered and sending the in audio format is most secured way to transfer the data through the network. The Audio Steganography is software, which tries to alter the originality of the file into some encrypted form and embed the file into an audio file. Then the users can easily and securely carry the compressed data wherever he wants. The major task of the Audio Steganography is to provide the user the flexibility of passing the information implementing the encryption standards as per the specification and algorithms proposed and store the information in a form that is unreadable. The Application should have a reversal process as of which should be in a position to de embed the data file from audio file and decrypt the data to its original format upon the proper request by the user. While the Encryption and Decryption is done the app lication should confirm the standards of authentication and authorization of the user. The Entire application should strive to achieve a user friendly Graphical User Interface, which need to be in a self-learning mode for the end user. The System Should provide all the functional standards of proper navigation with in the environment, which makes it possible for the users to have a smooth flow while working under the environment. The Overall system should provide proper menu based navigation for easier navigation and operation. The Application should be designed in such a way that, as soon as it starts create a Buffer and associate this buffer to some homogeneous data environment, the application should ask the user for the Encryption Key details and should start its functionality upon the logistics that are provided with in this key. The key should be designed in such a way that it prevents the unauthorized persons from stealing the information at any point of time. This is some part of securing the data from third party people. And the other way of securing the data is using Steganography in which embedding the encrypted file in to a audio file. If any one track that file they only see the audio file not the data. The application of De-embedding, Decryption and de compress should be a reverse process at the other end and should be translated only when the receiver of the data applies the proper reversal key. The Decryption process should have a log-based methodology that will take care of any errors that may be encountered while the system is under utilization and should record all those events, which are above the general standards of security. This system basically uses the Blowfish encryption algorithm to encrypt the passwords. This algorithm is a 64-bit block cipher with a variable length key. This algorithm has been used because it requires less memory. It uses only simple operations, therefore it is easy to implement. 1) Blowfish Algorithm Implementation Module 2) Steganography Module 3) Compression Module 4) GUI Module System Configuration 2. System Configuration 2.1 Software Requirements: Operating System Windows NT/2000 (Client/Server). 2.2 Hardware Requirements: Software requirements Front-end: Java J2SDK 1.5, Swings. System Configuration Pentium III Processor with 700 MHz Clock Speed 256 MB RAM, 20 GB HDD, 32 Bit PCI Ethernet Card. System Analysis Feasibility Study Fact Finding Techniques In this system we are going to develop a facility to a user that he will not face any difficulty at the time of usage like data missing, one way contacts, one view contacts. As we are developing this system with an encoding technique of images the user will not be bothered on which camera support is using, as well in sound. As we are maintaining one technique of speed controlling the frame relay will not be a problem for the user like over speed display, hanged display. 3.1 Feasibility Study A feasibility study is a high-level capsule version of the entire System analysis and Design Process. The study begins by classifying the problem definition. Feasibility is to determine if its worth doing. Once an acceptance problem definition has been generated, the analyst develops a logical model of the system. A search for alternatives is analyzed carefully. There are 3 parts in feasibility study. 3.1.1 Operational Feasibility: Question that going to be asked are Will the system be used if it developed and implemented. If there was sufficient support for the project from the management and from the users. Have the users been involved in planning and development of the Project. Will the system produce poorer result in any respect or area? This system can be implemented in the organization because there is adequate support from management and users. Being developed in Java so that the necessary operations are carried out automatically. 3.1.2 Technical feasibility Does the necessary technology exist to do what is been suggested Does the proposed equipment have the technical capacity for using the new system? Are there technical guarantees of accuracy, reliability and data security? The project is developed on Pentium IV with 256 MB RAM. The environment required in the development of system is any windows platform The observer pattern along with factory pattern will update the results eventually The language used in the development is JAVA 1.5 Windows Environment 3.1.3 Financial and Economical Feasibility The system developed and installed will be good benefit to the organization. The system will be developed and operated in the existing hardware and software infrastructure. So there is no need of additional hardware and software for the system. Existing and Proposed System 3.2 Existing System In the traditional architecture there existed only the server and the client. In most cases the server was only a data base server that can only offer data. Therefore majority of the business logic i.e., validations etc. had to be placed on the clients system. This makes maintenance expensive. Such clients are called as fat clients. This also means that every client has to be trained as to how to use the application and even the security in the communication is also the factor to be considered. Since the actual processing of the data takes place on the remote client the data has to be transported over the network, which requires a secured format of the transfer method. How to conduct transactions is to be controlled by the client and advanced techniques implementing the cryptographic standards in the executing the data transfer transactions. Present day transactions are considered to be un-trusted in terms of security, i.e. they are relatively easy to be hacked. And also we have to consider the transfer the large amount of data through the network will give errors while transferring. Nevertheless, sensitive data transfer is to be carried out even if there is lack of an alternative. Network security in the existing system is the motivation factor for a new system with higher-level security standards for the information exchange. 3.3 Proposed System The proposed system should have the following features. The transactions should take place in a secured format between various clients in the network. It provides flexibility to the user to transfer the data through the network very easily by compressing the large amount of file. It should also identify the user and provide the communication according to the prescribed level of security with transfer of the file requested and run the required process at the server if necessary. In this system the data will be send through the network as a audio file. The user who received the file will do the operations like de embedding, decryption, and decompress in their level of hierarchy etc. Analysis Report 3.4 System Analysis People for long time have tried to sort out the problems faced in the general digital communication system but as these problems exist even now, a secured and easy transfer system evolved and came to be known as the Encryption and Decryption of the data and converting the file to audio format to be transferred using the cryptographic standards and Steganography. The advantages of this Audio Steganography are: High level Security Cost effective transfer In this fast growing world where every individual free to access the information on the network and even the people are technically sound enough in hacking the information from the network for various reasons. The organizations have the process of information transfer in and out of their network at various levels, which need the process to be in a secured format for the organizational benefits. If the organizations have the Audio Steganography System, then each employee can send the information to any other registered employee and thus can establish communication. The audio file that the employee sends reaches the destinations within no time in an audio file format where the end user need to de embed the file, decrypt it and de compress and use for the purpose. The various branches of the organization can be connected to a single host server and then an employee of one branch can send files to the employee of another branch through the server but in a secured format. System Design 4. System Design The System Design includes the maintenance of the secure file transfer service with a prescribed encryption format and split at the interested level of encryption, and embed process and the receiving service at the other end with de-embed and decryption process. The design also includes the provision of facility to the user to manipulate the concerned information according to his personal use and communication process. The design also needs to provide the communication channel to the user to communicate with other registered users through the mailing services in a reliable and secured format. Authorization and authentication services are preferred most for this purpose. The System Design includes the maintenance authorization services, File and directory services with a prescribed encryption format at the interested level of encryption and the receiving service at the other end with decryption process. The design also includes the provision of facility to the user to manipulate the concerned information according to his personal use. The design of Audio Steganography system, basically involve the interface architecture, Security services, and communication system. In the interface design we involve with the design of the user interface with GUI standards and a proper navigation system where the user need to enter into the flow of transactions authorization services are check and further access is provided into the system. Then the user needs to select into the operations provided through the GUI where compression, encryption, embedding, de-embedding, Decryption, Decompressing and sending of the file, General information and exit are provided. Here the Encryption and decryption and services are provided connecting to the security services module where the encryption and decryption are carried out using the cryptographic standards implementing the Blowfish algorithm. After the compression process is completed the user is selecting the file for encryption. After encryption of the file is completed the user is to select the file for embedding it to the audio file and sending through the network to the desired user by specifying the targeted users system IP address in the panel designed. Then the system gets connected to the targeted user and delivers the file in audio format after which the user working with the Audio Steganography software should go for the option De-Embed Files and decrypt the file by selecting the file path by which the file gets decrypted and decompress the file and is viewed on the system. 4.1 System Description The Audio Steganography system is designed basically in four different modules they are GUI module, Compression Module, Security System module, Steganography Module, Connection Manager Module. GUI Module basically deals with the design of the interface which include the service of providing the user with the flexibility of accessing the file system and selecting the required file for the transfer. It should also provide the system to collect the information from the user to check the authorization in providing the access to the file system. The interface is also to consider the design, which include the services of sending and receiving of the files with encryption and decryption standards. The Compression module basically deals with the compress and decompresses the file, which is used to send the file very easily which reduces the uploading time. Security implementation module considers the implementation of the encryptions and decryption standards in transfer the files from one system to another in a distributed environment. The system design, even need to support the user to select the level of encryption he/she needs to perform depending upon the file to be transferred. The basic algorithm used in this purpose is the Blowfish where the user can enter the key depending upon level encryption he is interested. The Connection Manager deals with the architecture, which supports the system to identify the end users for the communication and establish the communication. Connection and disconnection of the communication channel between the users for the access of file system and file transfer services. The Connection Manager receives the IP address to be connected and the file to be sent then establishes the connection and transfers the file. Functional Requirements: The Modules of the system are: 1) Blowfish Algorithm Implementation Module 2) Steganography Module 3) Compression Module 4) GUI Module Blowfish Algorithm: Blowfish is a block cipher that encrypts data in 8-byte blocks. The algorithm consists of two parts: a key-expansion part and a data-encryption part. Key expansion converts a variable-length key of at most 56 bytes (448 bits) into several sub key arrays totaling 4168 bytes. Blowfish has 16 rounds. Each round consists of a key-dependent 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. Sub keys: Blowfish uses a large number of sub keys. These keys must be precomputed before any data encryption or decryption. The P-array consists of 18 32-bit sub keys: P1, P2,, P18. There are also 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 and Decryption: 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 cipher text. Function F looks like this: Divide XL into four eight-bit quarters: a, b, c, and d. Then, F (xL) = ((S1, a + S2, b mod 232) XOR S3, c) + S4, d mod 232. Decryption is exactly the same as encryption, except that P1, P2, P18 are used in the reverse order. Generating the Sub keys: The sub keys 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 sub keys 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 sub keys. 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 sub keys. Applications can store the sub keys rather than execute this derivation process multiple times. Steganography: Steganography is art of hiding information in ways that prevent the detection of hidden messages. Steganography derived from Greek, literally means Covered Writing. It includes a vast array of secret communications methods that conceal the messages very existence. Theses methods are including invisible inks, microdots, character arrangement, digital signature, and covert channels and spread spectrum communications. In this technology, the end user identifies an audio file, which is going to act as the carrier of data. The data file is also selected and then to achieve greater speed of transmission the data file and audio file are sent. Prior to this the data is embedded into the audio and then sent. The image if hacked or interpreted by a third party user will open up in any audio player but not displaying the data. This protects the data from being invisible and hence is secure during transmission. The user in the receiving end uses another piece of code to retrieve the data from the audio file. The module deals with identifying the hidden data in the audio file. The module receives the audio file that is then browsed to remove the associated data. The data is then removed from the audio file. Compression and Decompression: Compression reduces the average code length used to represent the symbols of an alphabet. Symbols of the source alphabet, which occur frequently, are assigned with short length codes. The general strategy is to allow the code length to vary from character to character and to ensure that the frequently occurring character has shorter codes. We use utility package for compression. This technique maps arbitrary input into printable character output. The form of encoding has the following relevant characteristics. The range of the function is a character set that is universally re-presentable at all sites, not a specific binary encoding of that character set. Thus, the characters themselves can be encoded into whatever form is needed by a specific system. For instance, the character E is represented in ASCII system as a hexadecimal 45 and in EDCDIC- based system as hexadecimal- c5. The character set consists of 65 printable characters, one of which is used for padding. With 2^6 = 64 available characters, each character can be used to represent 6 bits of input. No control characters are included in the set. Thus, the message encoded in Radix-64 can traverse mail-handling system. That scans the data stream for control characters. The hyphen character - is not included. Graphical User Interface: This project is developed using graphics in java swings. The options available are displayed in a menu format, like in an online editor. Clicking on any particular menu item through mouse or through keyboard a dropdown menu is displayed, listing all the options available under that menu item and the user can select the needed actions according to their wish. UML Diagrams Use case Diagram Sender: Receiver: Use case Description: Use case name Compress Participating actors Sender Flow of events The user selected file will be compressed Entry Condition User must select the file. Exit condition Successful or Un Successful Compression of file. Quality Requirements Display proper error messages while compression. Use case name De Compress Participating actors Receiver Flow of events The user selected file will be de compressed Entry Condition User must select the file. Exit condition Successful or Un Successful De-Compression of file. Quality Requirements Display proper error messages while de-compression. Use case name Encrypt Participating actors Sender Flow of events The user-selected file will be encrypted with a given key. Entry Condition User must select the file and must give the key for encryption. Exit condition Successful or Un Successful Encryption of file. Quality Requirements Display proper error messages while Encryption. Use case name Decrypt Participating actors Receiver Flow of events The user-selected file will be decrypted with a proper key. Entry Condition User must select the file and must give the key for decryption. Exit condition Successful or Un Successful Decryption of file. QualityRequirements Display proper error messages while Decryption. Use case name Embed Participating actors Sender Flow of events The user-selected encrypted file will be embedding with selected audio file. Entry Condition User must select the one encrypted file and one audio file for embedding. Exit condition Successful or Un Successful Embedding process. Quality Requirements Display proper error messages while Embedding two files. Use case name De-Embed Participating actors Receiver Flow of events The user-selected audio file will be de-embedding to encrypted file. Entry Condition User must select the audio file for de-embedding. Exit condition Successful or Un Successful De-embedding of file. Quality Requirements Display proper error messages while De-embedding. Use case name Send File Participating actors Sender Flow of events The user-selected file will be send to the given host. Entry Condition User must select the file to send and must know the IP address of the destination host. Exit condition Successful or Un Successful sending of file to the destination host. Quality Requirements Display proper error messages while Sending the file. Class Diagram: Sequence Diagrams Sender: Receiver: Activity Diagram for Compression, Encryption, Embedding Sending Encryption System Sender Activity Diagram for De-Embed, Decrypt Decompress Receiver Decryption System Software Overview FEATURES OF THE LANGUAGE USED About Java Initially the language was called as oak but it was renamed as Java in 1995. The primary motivation of this language was the need for a platform-independent (i.e., architecture neutral) language that could be used to create software to be embedded in various consumer electronic devices. Java is a programmers language. Java is cohesive and consistent. Except for those constraints imposed by the Internet environment, Java gives the programmer, full control. Finally, Java is to Internet programming where C was to system programming. Applications and Applets An application is a program that runs on our Computer under the operating system of that computer. It is more or less like one creating using C or C++. Javas ability to create Applets makes it important. An Applet is an application designed, to be transmitted over the Internet and executed by a Java -compatible web browser. An applet is actually a tiny Java program, dynamically downloaded across the network, just like an image. But the difference is, it is an intelligent program, not just a media file. It can react to the user input and dynamically change. FEATURES OF JAVA Security Every time you that you download a normal program, you are risking a viral infection. Prior to Java, most users did not download executable programs frequently, and those who did scanned them for viruses prior to execution. Most users still worried about the possibility of infecting their systems with a virus. In addition, another type of malicious program exists that must be guarded against. This type of program can gather private information, such as credit card numbers, bank account balances, and passwords. Java answers both of these concerns by providing a firewall between a networked application and your computer. When you use a Java-compatible Web browser, you can safely download Java applets without fear of virus infection or malicious intent. Portability For programs to be dynamically downloaded to all the various types of platforms connected to the Internet, some means of generating portable executable code is needed .As you will see, the same mechanism that helps ensure security also helps create portability. Indeed, Javas solution to these two problems is both elegant and efficient. The Byte code The key that allows the Java to solve the security and portability problem is that the output of Java compiler is Byte code. Byte code is a highly optimized set of instructions designed to execute by the Java run-time system, which is called the Java Virtual Machine (JVM). That is, in its standard form, the JVM is an interpreter for byte code. Translating a Java program into byte code helps makes it much easier to run a program in a wide variety of environments. The reason is, Once the run-time package exists for a given system, any Java program can run on it. Although Java was designed for interpretation, there is technically nothing about Java that prevents on-the-fly compilation of byte code into native code. Sun has just completed its Just In Time (JIT) compiler for byte code. When the JIT compiler is a part of JVM, it compiles byte code into executable code in real time, on a piece-by-piece, demand basis. It is not possible to compile an entire Java program into executable code all at once, because Java performs various run-time checks that can be done only at run time. The JIT compiles code, as it is needed, during execution. Java Virtual Machine (JVM) Beyond the language, there is the Java virtual machine. The Java virtual machine is an important element of the Java technology. The virtual machine can be embedded within a web browser or an operating system. Once a piece of Java code is loaded onto a machine, it is verified. As part of the loading process, a class loader is invoked and does byte code verification makes sure that the code thats has been generated by the compiler will not corrupt the machine that its loaded on. Byte code verification takes place at the end of the compilation process to make sure that is all accurate and correct. So byte code verification is integral to the compiling and executing of Java code. Javac Java Virtual Machine Java byte code Java Source .Java .Class The above picture shows the development process a typical Java programming uses to produce byte codes and executes them. The first box indicates that the Java source code is located in a. Java file that is processed with a Java compiler called JAVA. The Java compiler produces a file called a. class file, which contains the byte code. The class file is then loaded across the network or loaded locally on your machine into the execution environment is the Java virtual machine, which interprets and executes the byte code. Java Architecture Java architecture provides a portable, robust, high performing environment for development. Java provides portability by compiling the byte codes for the Java Virtual Machine, which is then interpreted on each platform by the run-time environment. Java is a dynamic system, able to load code when needed from a machine in the same room or across the planet. Compilation of Code When you compile the code, the Java compiler creates machine code (called byte code) for a hypothetical machine called Java Virtual Machi

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.