Documente Academic
Documente Profesional
Documente Cultură
ENCRYPTION AND
DECRYPTION
PROGRAM
SUBMITTED TO
< >
Submitted by:
Name (s): Shivam Mahajan, Shivam Kalia
University Roll no (s):1410991552,1410991551
Semester:7th
Session: Aug’17-Dec’17
CHITKARA UNIVERSITY
CHANDIGARH-PATIALA NATIONAL
HIGHWAY
RAJPURA, DISTT PATIALA
PUNJAB, INDIA
Acknowledgement
It is our pleasure to be indebted to various people, who directly or indirectly contributed
in the development of this work and who influenced my thinking, behavior and acts
during the course of study.
We express our sincere gratitude to all for providing me an opportunity to undergo Integrated
Project as the part of the curriculum.
We are thankful to “Ms. Sheenam” for her support, cooperation, and motivation provided to us
during the training for constant inspiration, presence and blessings.
We also extend our sincere appreciation to Ms.Chisty who provided his valuable suggestions
and precious time in accomplishing our integrated project report.
Lastly, we would like to thank the almighty and our parents for their moral support and friends
with whom we shared our day-to day experience and received lots of suggestions that improve
our quality of work.
SHIVAM MAHAJAN SHIVAM
KALIA
1410991552 1410991551
Declaration
I hereby declare that the project work titled “ENCRYPTION AND DECRYPTION”
submitted as part of Bachelor’s degree in Computer science engineering, at Chitkara University,
Punjab, is an authentic record of my own work carried out under the supervision of
<Supervisor’s Name>
----------1
2. OVERALL
DESCRIPTION---------------------------------------------------------------2-3
3. EXTERNAL INTERFACE
REQUIREMENTS----------------------------------------4
4. SYSTEM
FEATURESs--------------------------------------------------------------------5-7
5. NONFUNCTIONAL
REQUIREMENTS-----------------------------------------------8
6. SOFTWARE
SPECIFICATIONS--------------------------------------------------------9
SCOPE-----------------------------------------------10
8. REFERENCES---------------------------------------------------------------------
--------11
Encryption is used to transform a data into some un-readable form so that authenticated person
only can read/access the data. It requires some secret information to transform the plain text to
cipher text; it is usually referred as key.
There are many modern cryptographic methods used for encryption and decryption and it is
classified in to two classes of key based algorithms.
I. Symmetric Algorithm
I.1. Same key is used for both Encryption and Decryption. The key will be kept as
secret.
I.2. Symmetric Ciphers is divided into Stream and Block Ciphers.
I.2.1. Stream Ciphers – It encrypts a single bit of plain text at a time.
I.2.3 Block Ciphers – It takes number of bits and encrypts them as a single unit
.II. Asymmetric Algorithm
II.1. Different key is used for Encryption and Decryption. It is also called as public
Key algorithm.
II.2. Encryption key is public and the Decryption key will be kept as secret.
II.3. By using this asymmetric algorithm, anyone can encrypt the message by using
encryption key but the message can be decrypted only by using decryption key.
III. Hybrid Encryption – Symmetric and Asymmetric algorithm are used together and it is
called as Hybrid Encryption.
Algorithm Requirements:
I. The Key will be kept secret and should be Random.
II. It should not be possible to find the key even if the plain text and Cipher text are
known.
Types of Symmetric Encryption Algorithm:
I. Data Encryption Standard (DES)
II. Blow Fish
III. Triple DES (3DES)
IV. Advanced Encryption Standard (AES)
1
Overall Description
I. Product Perspective
This is a generic cryptographic application that is usable by all classes of users (who need to
secure their data) with any level of technical expertise, education and experience. This suite
is usable both for novice or non-technical users as well as expert technical users.
V.1. SQLite DB is used for password safe function because it is self-contained and server
less and also because it is zero-configuration SQL DB engine. That matches our
requirement of small, quick, single file based, zero configuration password DB.
I. User interfaces
Special effort is put into this project to create an intuitive, simple and streamlined
graphical interface for non-technical users.All cryptographic functions, hashing and
password safe functionalities are accessible from GUI.
II. Hardware interfaces
Project is intended to be platform independent. Therefore no specific hardware is
excluded. But it will at least work on x86 systems without any additional porting efforts.
Moreover, no special hardware is needed for software operation.
III. Software Interfaces
III.1. Project will use cryptographic functions and cryptographic hashing functions from
OpenSSL library.
III.2. Project will use SQLite to store user's login info for his/her many accounts securely
in a table in a DB.
System Features
IV Stimulus/Response Sequences
IV.1. User inputs login info (i.e. username/password + additional useful info) into table
using program GUI.
V. Functional requirements
V.1.User selects the radio button corresponding to cipher he wants to be used to encrypt data.
V.2.User inputs the data to be stored in table that is to be encrypted.
V.3.User inputs master key to lock table in 'Master password' text field.
V.4.User clicks on 'Apply' button on 'Operations bar' to apply changes.
V.5.Output encrypted password (safe) DB is automatically created in current file directory.
Screenshots of the application:
Nonfunctional Requirements
I. Performance Requirements
Most public key ciphers rely on high computational cost operations. Therefore, keeping
performance considerations in mind, in most cases symmetric key ciphers are recommended for
data encryption/decryption (unless the user is willing to spend very large amount of
computational effort to encryption/decryption using public key cipher). Public key ciphers are
recommended to be used only in situations such as authentication or to confidentially distribute
symmetric keys.
II. Safety Requirements
This application suite is provided under ISC license. So, there are chances of possible
loss/damage to data or harm that could result from the use of this suite.
User is required to remember his password that he/she used to encrypt data (or lock password
safe) because most of secure cryptographic algorithms implemented in this suite are secure
enough so that no algorithms better than brute-force can be used to recover lost password.
III Security Requirements
This software package uses strong cryptography, so even if it is created, maintained and
distributed from liberal countries (where it is legal to do this), it falls under certain export/import
and/or use restrictions in some other parts of the world..
III.1Reliability: Serious attempts are made to make sure code is reliable and of enterprise quality.
Still, the code is provided under ISC license and authors of Cryptic (and other code/libraries that
Cryptic uses) are not responsible for any damage or data loss. More details in section 4.2 and 4.3
of this document.
III.2Usability: The project is still in planning stage as of SRS version-1, but when the
development starts, the code is not expected to be usable atleast until it's first official ALPHA
release is tagged in repository.
SOFTWARE SPECIFICATIONS
I. NetBean.
Is a software development platform written in Java. The NetBeans Platform allows applications
to be developed from a set of modular software components called modules. Applications based
on the NetBeans Platform, including the NetBeans integrated development environment (IDE),
can be extended by third party developers.
The NetBeans IDE is primarily intended for development in Java, but also supports other
languages, in particular PHP, C/C++and HTML5.
NetBeans is cross-platform and runs on Microsoft Windows, macOS, Linux, Solaris and other
platforms supporting a compatible JVM.
The editor supports many languages from Java, C/C++, XML and HTML, to PHP, Groovy,
Javadoc, JavaScript and JSP. Because the editor is extensible, you can plug in support for many
other languages.
The sole purpose of our project is to maintain the integrity and confidentiality of the data. The
term integrity means that data must not be changed by others and confidentiality means that it
should not be visible to others. In the present world, securing the data is very important as
Internet has grown very vast, and it has become difficult for people to maintain privacy with an
increase in the number of hackers. Protection of sensitive data is one of the most critical
concerns for organizations and their customers. This, coupled with growing regulatory pressures,
is forcing businesses to protect the integrity, privacy and security of critical information. It is
clear that the protection of personal or private data is critical to the wellbeing of any company
that stores or processes this information.
While quantum computer algorithms threaten the future of classical cryptography, One-time pads
can still offer security even in the presence of key cracking quantum computers, but the key
distribution problem would have to be overcome. In a beautiful irony, quantum computers may
break current cryptography but quantum mechanics also offer hope to cryptography in quantum
key distribution.
New forms of cryptography have evolved to build this new world of; confidentiality,
authentication, non - repudiation, and integrity, but while this work well in the here now, with
the advent of the quantum computer on the horizon classical cryptography is threatened.
REFERENCES
1. https://www.uniassignment.com/essay-samples/information-technology/introduction-to-e
ncryption-and-decryption-information-technology-essay.php
2. https://www.scribd.com/document/260981248/SRS-Cryptography
3. http://macr.cs.ksu.edu/software/agentMom_2.0/Phase_I/software_requirements_specifica
tion.pdf
4. Douglas Stinson: Cryptography - theory and practice