DESIGN AND IMPLEMENTATION OF FILE ENCRYPTION AND HASH SYSTEM
It is due to insecurity in files and data that this project is designed using cryptograph method (conversion of plain text into cipher text (encrypted text)) and conversion of cipher text into plain text (decryption) using key that is known to both sender and receiver of such file or data. When a file is encrypted, only the intended user (receiver or sender) can view it by decrypting it using their symmetric key (password) otherwise, it will be displayed as a corrupted file and a message “Access is denied” will be displayed showing that such user is un-authorized. Package like Ms-Word, Ms- Excel, as well as slide are attached to the program for users to use and encrypt such file after saving.
File encryption is the process of translating plain text data into something meaningless (cipher text) while decryption is the reverse. Visual Basic programming language is used in designing this security program to protect file and data in order to achieve its aims and objectives.
There are a number of methods for security measures to be attached to files or documents, these may include file password or file locking, data / file encryption and decryption, installation of antivirus, USB encryption, laptop encryption, firewall, password encryption, database encryption, disk encryption for data etc. Since the use of the computer is so wide and data or file security is very important, an important concept to note is that data or file encryption is one of the best security measures and can be incorporated into systems that participate in data or file transfer and sharing to allow for privacy. This is because it places security measure on the system on the data itself. Applications need to have a way of encrypting data or documents before sending to the recipient(s) at the receiving end, and the recipient should also be able to have a means to decrypt or unlock the encrypted message being sent. This is made possible by using a unique pass code (key or password) for both the encryption and the decryption processes. Encryption is the process of translating plain text data (plaintext) into something that appears to be random and meaningless (cipher text). Decryption is the process of converting cipher text back to plaintext. To encrypt more than a small amount of data, symmetric encryption is used because it renders main security goals which are privacy and authenticity of the communicated data. A symmetric key is used during both the encryption and decryption processes. To decrypt a particular piece of cipher text, the key that was used to encrypt the data must be used.
Fig.1.0 Symmetric key cryptography process description
The goal of every encryption algorithm is to make it as difficult as possible to decrypt the generated cipher text without using the key. If a really good encryption algorithm is used, there is no technique significantly better than methodically trying every possible key. For such an algorithm, the longer the key, the more difficult it is to decrypt a piece of cipher text without possessing the key.
It is difficult to determine the quality of an encryption algorithm. Algorithms that look promising sometimes turn out to be very easy to break, given the proper attack. When selecting an encryption algorithm, it is a good idea to choose one that has been in use for several years and has successfully resisted all attacks.
1.0 Background of the Study
Due to insecurities in files and data, many researchers over the years in the ICT fields have carried out numerous researches in files/data encryption and decryption. They have encrypted and decrypted files using both private and public keys and even other minor methods when sending or receiving files on the internet. Public keys data encryption and decryption method and other minor methods have been found out to be slow and not suitable for large ranges of data/files as a result most researchers have recommended files/data encryption and decryption using the symmetric – key type (private key) of data encryption and decryption.
The method to be used for data encryption and decryption is cryptography. Cryptography is therefore the science of using mathematics to encrypt and decrypt information. Once the information has been encrypted, it can be stored on insecure media or transmitted on an insecure network (like the Internet) so that it cannot be read by anyone except the intended recipient.
Cipher algorithm will be used, which can be defined thus: A cryptographic algorithm, or cipher, is a mathematical function used in the encryption and decryption process. A cryptographic algorithm works in combination with a key (a number, word, or phrase) to encrypt and decrypt data. To encrypt, the algorithm mathematically combines the information to be protected with a supplied key. The result of this combination is the encrypted data. To decrypt, the algorithm performs a calculation combining the encrypted data with a supplied key. The result of this combination is the decrypted data. If either the key or the data is modified, the algorithm produces a different result. The goal of every encryption algorithm is to make it as difficult as possible to decrypt the generated cipher text without using the key. If a really good encryption algorithm is used, then there is no technique significantly better than methodically trying every possible key. Even for a key size of just 40 bits, this works out to 2ˆ40 (just over 1 trillion) possible keys.
1.1 Statement of the Problem
A lot of problems are always being encountered during the process of data or file transfer and sharing and even chatting or sending Email among clients or server-to client on a network. The problem arises as a result of data or file insecurity over a network. Since the data or file can be transferred or shared among clients or users on a network, some protocols are being breached which leads some clients or users to having or gaining access to data or file/document they are not supposed to. Because of these problems, this then calls for a research to address the problems on file insecurities using cryptographic algorithm or cipher. These problems can be tackled by joint efforts of software programmers, analysts and researchers in ICT field.
1.2 Aim and Objectives Of the study
This project is aimed at designing and implementing security software using cryptography method (process in which plain text is converted to cipher text (encrypted text) which uses a key that is known to both sender and receiver and a process in which cipher text is converted to plain text (decrypted text)). It would be developed for individuals or organisations that need to secure their files and other document.
Specifically, the objectives of this project are stated as follows:
⦁ To ensure that data files resident on a system are well secured or protected.
⦁ To ensure data communication a client-to-client or server-to-client relationship on a network.
⦁ Securities and confidentiality of personal document for clients or users on a network involved in data or transfer or sharing.
⦁ To replace the traditional unsecured chatting and file transfer application with a more secured encryption and decryption enabled data communication application
⦁ To ensure that illegal alterations to personal or confidential information is greatly reduced.
1.3 Significance of the Study
Some of the significance of this project research is explained below as data/files encryption and decryption is very essential in the life of an individual, ICT researchers, ICT companies and non – ICT companies. The various significance of this research work is explained below: The importance of the encryption techniques for large and growing sectors of the society is fundamental. The use of encryption is as important for the storage and use of information as it is for data and telecommunication. In order to secure the necessary legal, evidentiary function of digital information as we go away from the use of physical documents, strong cryptographic techniques are required. The importance of encryption in file transfer applications will increase substantially in the coming years in place with the growing traffic on publicly available networks, like the internet as they continue to increase in size; Files or documents are well protected on a network with the existence of Encryption algorithm embedded in the application. Private persons, companies, government agencies and other organisations use cryptography techniques in order to safely communicate with partners, customers, etc, but also in order to increase security in their own internal processes; to protect stored information, and communicate with employees who are geographically distributed or work from a distance. By using encryption for communication over open and publicly accessible networks, information/data can be transferred from the sender to receiver without unauthorized interpretation (data integrity).
1.4 Scope of the study
The scope of this project is essentially centred on incorporating encryption and decryption algorithms into data communication which entails encryption and decryption enabled files transfer applications and generally securing data against illegal access or transfer or file sharing systems. This project is a security application program on a network or popularly referred to as security “socket programming”. It explores data or file encryption, socket programming, cryptography, local area network (LAN), Bluetooth connection, wireless, wireless connection, IP addressing and port numbering.
1.5 Definition of terms
i. Data: Information in raw form or unorganized form such as alphabets, numbers, or symbols that refer to or represent condition, ideas or object.
ii. Database: A systematically organized or repository of indexed information usually a group of linked data files that allows easy retrieval, updating, analysis and output of a data usually stored in a computer.
iii. File: Is a collection of data stored in one unit, identified by a Filename. It can be a document, picture, audio or video stream, data library, application or other collection of data.
iv. Encryption: Encryption is the process of translating plain text data (iv. plaintext) into something that appears to be random and meaningless (cipher text). Decryption is the process of converting cipher text back to plaintext.
v. Decryption: Decryption is the process of converting cipher text back to plaintext.
vi. Plain-text: Plain-text is any text that is still in its readable format or that has been converted from cipher-text back to plain text as a result of Decryption.
vii. Cipher-text: Cipher-text is the text which has been converted to the format that cannot be read as a result of encrypting the text.
viii. Firewall: Set of related networks located at a network gateway server that protects the resources of a private network from users from other networks.
ix. Cryptography: it is the act of writing in code or cipher.
x. Symmetric-key: The method of using a single key for encryption and decryption. It can also be referred to as private-key
xi. Asymmetric-key: The method of using a key for encryption and another key for decryption. It can also be referred to as a public-key.
xii. Algorithm: It is a step by step instruction of solving problem.
xiii. LAN: Local Area Network.
xiv. Kernel: A kernel is the piece or pieces of pieces of software that is responsible for servicing resource request from the application and the management of resources. A kernel grant access to resources such as allocating space for a new file or creating a network collection.
xv. Cryptography API: Contains functions that allows applications to encrypt or digitally signed sign data in a flexible manner, while providing protection for the user’s sensitive private key data.
xvi. Stream Cipher: xvi. Stream ciphers, which encrypt continuous streams of data.
xvii. Block Cipher: xvii. Block ciphers, which encrypt block of data of fixed size..