VISVESVARAYA TECHNOLOGICAL UNIVERSITY
“JnanaSangama”, Belagavi-590018
An Internship Report on
“Software Development”
Submitted in partial fulfillment of the requirement for the award of the
Degree of
BACHELOR OF ENGINEERING
In
COMPUTER SCIENCE & ENGINEERING
Submitted By
SANJAY KUMAR SR
(1TJ16CS086)
Under the Guidance of
Prof. Anju Abraham
Assistant Professor
Dept. of CSE
Department of Computer Science and Engineering
T. JOHN INSTITUTE OF TECHNOLOGY
(Affiliated to Visvesvaraya Technological University)
#86/1,Gottigere,Bannerghatta Road, Bengaluru-560083
2019-2020
(Affiliated to Visvesvaraya Technological University)
Approved by AICTE, Govt.of India, New Delhi
#86/1, Gottigere, Bannerghatta Road, Bengaluru-560083
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
CERTIFICATE
Certified that the Internship/Professional training entitled "Software Development”
submitted by Sanjay Kumar S R (1TJ16CS086), bonafide students of T. John Institute of
Technology is approved by the project guide in partial fulfillment for the award of degree of
Bachelor of Engineering in Computer Science and Engineering of Visvesvaraya
Technological University, Belagavi during the year 2019-2020. It is certified that all
corrections/suggestions indicated for Internal Assessment have been incorporated in the Report
deposited in the departmental library. The internship report has been approved as it satisfies
the academic requirements in respect of project work prescribed for the said Degree.
Signature of Guide Signature of HOD Signature of Principal
Prof. Anju Abraham Dr. D Ramya Dorai Dr. ArunVikas Singh
Assistant Professor Associate Professor & Head Principal
Dept. of CSE,TJIT Dept. of CSE,TJIT TJIT
External Viva
Name of the Examiners Signature with Date
1. ....………………………..………..
2. ....…………………………………
INTERNSHIP CERTIFICATE
DECLARATION
I “Sanjay Kumar S R (1TJ16CS086)” student of T. John Institute of Technology,
Bangalore, hereby declare that the internship project on “Encryption-Decryption” has
been carried out by me under the guidance of Prof. Anju Abraham, Dept. of CSE, TJIT,
Bangalore in partial fulfillment of the course requirement for 8 th semester B.E, Computer
Science and Engineering of Visvesvaraya Technological University, Belagavi during
the academic year 2019-20.
I also declare that to the best of my knowledge and belief the work reported here is
accepted and satisfied.
Sanjay Kumar S R
(1TJ16CS086)
ACKNOWLEDGEMENT
The satisfaction ad euphoria that accompany the successful completion of any task would
be incomplete without the mention of a number of individuals whose professional
guidance and encouragement helped me in the successful completion of this report work.
I have a great pleasure in expressing my deep sense of gratitude to founder Chairman Dr.
Thomas P John for having provided us with a great infrastructure and well-furnished
laboratories.
I take this immense opportunity to express my profound gratitude to our respected
Principal, Dr. Arun Vikas Singh, for his constant support and encouragement.
I am also grateful to the Head of Computer Science Department, Dr. D Ramya Dorai
for her unfailing encouragement and suggestion given.
I would like to thank Prof. Anju Abraham, Seminar Coordinator Department of
Computer Science and Engineering for her valuable advice, guidance and prolonged
encouragement given to complete work.
I am grateful to TCI Tech FOUNDATION for giving me the opportunity to learn and
develop skills needed to grow in the industry, so as to excel in the future.
I am also indebted to all the staff members of the Department of Computer Science and
Engineering for their support and encouragement.
Last, but not the least, I would like to thank our family and friends for their encouragement,
help and co-operation.
Sanjay Kumar SR
(1TJ16CS086)
I
ABSTRACT
This report discusses my experience as a Software Development documentation intern at
TCI Tech Foundation from July 2019 to August 2019. This report describes the work
developed during a 1-month internship at the TCI Tech Foundation, under the
supervision of professor Pankaj P Mutha. The goal of our work is to develop a project
that Encrypts & Decrypts the text as well as a File. Database management systems have
also been an integral part of the modern OS. During our internship, we worked with
SQLite, a database management system built on top of the file system abstraction, rather
than beside it. The goal of our work was to create a workload for a real-world application
which uses SQLite transactions. In this document, we describe the development processes
and results achieved during the internship.
About the Project:
To protect the privacy of sensitive data, an encrypted and decrypted file system is
designed and implemented in the internship as a project. Security of data in a computer
is needed to protect critical data and information from other parties. One way to protect
data is to apply the science of cryptography. This system uses and hardware code to
authenticate a user. Experiment results show that large files can be encrypted and
decrypted in a very short time. The system which is developed in my internship has high
efficiency and ensures the security of documents.
II
LIST OF FIGURES
FIGURE NO TITLE PAGE NO
1.1 Encryption and Decryption 2
1.2 Cryptography 2
1.3 Encryption Process 3
1.4 Decryption Process 3
3.1 Encryption and Decryption Cycle 5
3.2 Private Key Encryption 6
3.3 Public Key Encryption 6
3.4 Decryption Process 7
5.1 Encrypting Data Code 11
5.2 Decrypting Data Code 13
6.1 Index/About Page 14
6.2 Registration Page 15
6.3 Login Page 16
6.4 Code For Encryption 16
6.5 Code For Decryption 17
6.6 Output for the Text 17
III
CONTENTS
SL No. CHAPTER PAGE NO
ACKNOWLEDGEMENT I
ABSTRACT II
LIST OF FIGURES III
Chapter 1 INTRODUCTION 1
Chapter 2 ABOUT THE INDUSTRY 4
Chapter 3 CONCEPTS AND METHODOLOGY 5
3.1 Encryption 5
3.2 Decryption 7
Chapter 4 RELATED WORKS 8
4.1 Statement of Problem 8
4.2 Objective 8
4.3 Literature Survey 8
Chapter 5 DESIGN
DESIGNAND
ANDIMPLEMENTATION
IMPLEMENTATION 10
17
Chapter 6 RESULTS
RESULTS 14
26
Chapter 7 CONCLUSION
CONCLUSION 18
30
REFERENCES
REFERENCES 19
Software Development Encryption-Decryption
CHAPTER 1
INTRODUCTION
The internship is a program that enhances the capability of the graduates and the scope to do
practical works in an organization related to the student’s major to gain the work experience.
According to the Oxford Dictionary, A student or trainee who works, sometimes without pay,
to gain work experience or satisfy requirements for a qualification. As the outside world is very
competitive for anyone after graduation, an internship gives the student a great opportunity to
have a head start.
Internship opportunity provides the students with a great chance to relate their theoretical
knowledge with the competitive and tough real job market environment. Moreover, if the
internship period is within the bachelor program and the students have to return to the academic
after completing it, the skills that they have developed during the internship help them to gain
a more academic result.
I was lucky to get the opportunity to complete our industrial attachment at TCI Tech
FOUNDATION. The journey wasn’t that simple. There were many obstacles, new
technologies that I have to handle with, yet after overcoming each challenge I had discovered
a new potential within myself. The skills that I have gathered are priceless to me. In addition
to that, some of the non-technical skills that I have procured, combined with those technical
skills will certainly prove handy in my future jobs.
Encryption and Decryption:
Data that can be read and understood without any special measures is called plaintext or clear
text. The method of disguising plaintext in such a way as to hide its substance is
called encryption. Encrypting plaintext results in unreadable gibberish called cipher text. You
use encryption to ensure that information is hidden from anyone for whom it is not intended,
even those who can see the encrypted data. The process of reverting cipher text to its original
plaintext is called decryption.
Dept. Of CSE 2019-20 Page 1
Software Development Encryption-Decryption
Figure 1.1 Encryption and Decryption
Cryptography:
Cryptography is the science of using mathematics to encrypt and decrypt data. Cryptography
enables you to store sensitive information or transmit it across insecure networks (like the
Internet) so that it cannot be read by anyone except the intended recipient.
While cryptography is the science of securing data, cryptanalysis is the science of analyzing
and breaking secure communication.
Classical cryptanalysis involves an interesting combination of analytical reasoning, application
of mathematical tools, pattern finding, patience, determination, and luck. Cryptanalysts are also
called attackers.
Figure 1.2 Cryptography
Dept. Of CSE 2019-20 Page 2
Software Development Encryption-Decryption
Encryption:
Encryption is a process which transforms the original information into an unrecognizable
form. This new form of the message is entirely different from the original message.
Figure 1.3 Encryption Process
Decryption:
Decryption is a process of converting encoded/encrypted data in a form that is readable and
understood by a human or a computer. This method is performed by un-encrypting the text
manually or by using keys used to encrypt the original data.
Figure 1.4 Decryption Process
KEY DIFFERENCE:
Encryption is a process of converting normal data into an unreadable form whereas
Decryption is a method of converting the unreadable/coded data into its original form.
Encryption is done by the person who is sending the data to the destination, but the
decryption is done at the person who is receiving the data.
The same algorithm with the same key is used for both the encryption-decryption
processes.
Dept. Of CSE 2019-20 Page 3
Software Development Encryption-Decryption
CHAPTER 2
ABOUT THE INDUSTRY
TCI Tech FOUNDATION
TCI Tech FOUNDATION offers internship and give the best training to Students and
created a revolution in the IT market by its QUALITY Training and supported a large number
of Students by eradicating Unemployment with highest efforts. They focus on enhancing
employability of fresh graduates through intrinsic transformation, led by people from the
industry. TCI Tech FOUNDATION has a link with some of the IT/Core Companies like Wipro
TCS, LG, etc. with rich and varied global experiences.
Their mission is to train the students on different courses. And the courses provided in
TCI Tech Foundation are Manual Testing, SQL, Agile, Software Development, Software
Testing, Selenium and Full Stack Developer Course. They aim to transform the lives of the
youths of the nation and equip them with the entire necessary arsenal to get better job
opportunities which students are interested, excel at their jobs and ultimately compete with the
global workforce.
They tackle the hardest area of skill development – bringing a significant behavioural
change in learners resulting in the learners getting transformed – mature, holistic and always
learning. The world is changing, the jobs are changing, and consequently, the skill set
requirements are also changing. India, today, requires all-round skilled professional’s
proficient with technical as well as interpersonal, leadership, teamwork skills, etc. as well.
Dept. Of CSE 2019-20 Page 4
Software Development Encryption-Decryption
CHAPTER 3
CONCEPTS AND METHODOLOGY
Figure 3.1 Encryption and Decryption Cycle
3.1 Encryption
Encryption is a security method in which information is encoded in such a way that only
authorized user can read it. It uses encryption algorithm to generate cipher text that can only
be read if decrypted.
Encryption Process
— The encryption process starts with a mathematical formula that converts the plaintext into a pre-
hash code.
— The sender uses his private key to encrypt the pre-hash code.
— The algorithm used by the software generates the private key.
— The encrypted pre-hash code and the file will undergo another encryption process using the
sender’s private key.
— After that, the sender has to retrieve the public key of the file’s recipient.
— The sender uses the recipient’s public key to encrypt the message.
Types of Encryption
There are two types of encryptions schemes as listed below:
Private Key encryption
Public Key encryption
Dept. Of CSE 2019-20 Page 5
Software Development Encryption-Decryption
3.1.1 Private Key encryption
Private key encryption algorithm uses same cryptographic keys for both encryption and
decryption of cipher text.
Figure 3.2 Private Key Encryption
3.1.2 Public Key encryption
Public key encryption algorithm uses pair of keys, one of which is a secret key and one of
which is public. These two keys are mathematically linked with each other.
Figure 3.3 Public Key Encryption
Dept. Of CSE 2019-20 Page 6
Software Development Encryption-Decryption
3.2 Decryption:
The conversion of encrypted data into its original form is called Decryption. It is generally a
reverse process of encryption. It decodes the encrypted information so that an authorized user
can only decrypt the data because decryption requires a secret key or password.
Figure 3.4 Decryption Process
Decryption Process
— When the recipient receives the file, he has to decrypt the message so he can read it.
— First, the receiver uses his private key to decode the message.
— After that, the receiver uses his private key to decrypt the encrypted pre-hash code and file.
— The receiver gets the sender’s public key to verify the identity of the sender and to decipher
the pre-hash code.
— The receiver creates a post-hash code from the file. If this post-hash code is the same as the
pre-hash code, the authenticity of the data has been validated.
Dept. Of CSE 2019-20 Page 7
Software Development Encryption-Decryption
CHAPTER 4
RELATED WORKS
4.1 Statement of Problem
The underlying respective architecture of most IT systems, including the desktop computer and
internet, does not guarantee security. Users with malicious intents have always found a way of
exploiting one vulnerability or the other. An attack that affects the confidentiality of
information often presents the platform for the integrity of such information to be
compromised. Intercepted information on transit would make little or no sense to an interceptor
if he is not able to decipher the content of the information. This explains why it is very
necessary to ensure that even when an intruder or unauthorised user successfully obtains
access to some information the confidentiality and integrity of the information remain
uncompromised.
4.2 Objective
The objective of this paper is to design and implement an application that encrypts and decrypts
plain text and also the file. The process encryption-decryption is done on the website which is
developed in java with a database give to it.
4.3 Literature Survey
Designing an encryption-decryption system, amongst other things, requires a decision on the
basic functionality of the software, and the choice of cryptographic algorithm to be used.
While the functionality supports the attractiveness of the system, the type of cryptographic
algorithm actually determines how much security the system would actually provide. Hence,
this forms the major component in the system design[1].
Currently, there are many available open-source and commercial for encryption-decryption
systems[1].
In the year 2019, The encryption method provides a higher level of security to data through
strong encryption and decryption technique used employed for encrypting the data files, log
files and backup files without dissolving transparency property for its user [2].
Dept. Of CSE 2019-20 Page 8
Software Development Encryption-Decryption
This method performs real time I/O or transmission over links through encryption and
decryption of the data and log files. It has distribution and encryption offers complete
protection from accidental loss of data. There are several possibilities to raise the security
level by using stronger encryption algorithms based method employed with one way hashing
techniques and implementing up to its cell level of the transparent database [2].
In the same year 2019 another paper, there were two tests conducted. The first test was to
encrypt the message “Hello World!!” using the public key of another window of the software.
And decrypt it using the other window. The second test consisted of picking the RSA class
and adding a main, where it created to RSA objects and then randomly generates a random
message. And then encrypt the message using the public key. After this encryption, the
decrypts was done. if the message decrypted is equal to the message originated then it prints
“yes”, if not it prints “not”. It repeats this process 100 times [3].
The society is turning into a digital society, with the growing influence of technology in our
daily lives. It is present in so many places, sometimes without people realizing it, that is
already frequent is considered natural. This society increasingly directs its attention to new
technologies, fostering their development and reaching a closer approximation of knowledge,
making it increasingly accessible to all. There are numerous advantages of using technologies
in healthcare institutions, nevertheless, it is necessary to reflect that there are vulnerabilities.
There is no system totally safe, however, attacks can be prevented and damage is reduced [4].
The growing danger of computer crime poses a set of new topical issues. At the same time,
the development of hardware encryption complexes can be effective on the way to overcome
some of them. So some of the complexes were introduced. The complex which was used has
been successfully implemented in the following areas: banking, military and medical
industries, telephony. The main advantages of this paper were it includes the reliability of
transmission, the simplicity of implementation, the flexibility of the functionality and the
possibilities of application and modernization [5].
Dept. Of CSE 2019-20 Page 9
Software Development Encryption-Decryption
CHAPTER 5
DESIGN AND IMPLEMENTATION
In the implementation of the encryption and decryption system : -
Java was used for the front-end programming
MySQL was utilized for database management.
Encrypting Data
You can encrypt given data using the Cipher class of the javax.crypto package. By Following
the steps given below we can encrypt given data using Java.
Step 1: Create a KeyPairGenerator object
The KeyPairGenerator class provides getInstance() method which accepts a String variable
representing the required key-generating algorithm and returns a KeyPairGenerator object that
generates keys.
Step 2: Initialize the KeyPairGenerator object
The KeyPairGenerator class provides a method named initialize() this method is used to
initialize the key pair generator. This method accepts an integer value representing the key
size.
Step 3: Generate the KeyPairGenerator
You can generate the KeyPair using the generateKeyPair() method of the KeyPairGenerator
class.
Step 4: Get the public key
You can get the public key from the generated KeyPair object using the getPublic() method.
Step 5: Create a Cipher object
The getInstance() method of Cipher class accepts a String variable representing the required
transformation and returns a Cipher object that implements the given transformation.
Dept. Of CSE 2019-20 Page 10
Software Development Encryption-Decryption
Step 6: Initialize the Cipher object
The init() method of the Cipher class accepts two parameters an integer parameter
representing the operation mode (encrypt/decrypt) and, a Key object representing the public
key.
Step 7: Add data to the Cipher object
The update() method of the Cipher class accepts a byte array representing the data to be
encrypted and updates the current object with the data given.
Step 8: Encrypt the data
The doFinal() method of the Cipher class completes the encryption operation.
Figure 5.1 Encrypting Data Code
Dept. Of CSE 2019-20 Page 11
Software Development Encryption-Decryption
Decrypting Data
You can decrypt the encrypted data using the Cipher class of the javax.crypto package. By
Following the steps given below we can encrypt given data using Java.
Step 1: Create a KeyPairGenerator object
The KeyPairGenerator class provides getInstance() method which accepts a String variable
representing the required key-generating algorithm and returns a KeyPairGenerator object that
generates keys.
Step 2: Initialize the KeyPairGenerator object
The KeyPairGenerator class provides a method named initialize() this method is used to
initialize the key pair generator. This method accepts an integer value representing the key
size.
Step 3: Generate the KeyPairGenerator
You can generate the KeyPair using the generateKeyPair() method of the KeyPairGenerator
class.
Step 4: Get the public key
You can get the public key from the generated KeyPair object using the getPublic() method.
Step 5: Create a Cipher object
The getInstance() method of Cipher class accepts a String variable representing the required
transformation and returns a Cipher object that implements the given transformation.
Step 6: Initialize the Cipher object
The init() method of the Cipher class accepts two parameters
An integer parameter representing the operation mode (encrypt/decrypt)
Key object representing the public key
Step 7: Add data to the Cipher object
The update() method of the Cipher class accepts a byte array representing the data to be
encrypted and updates the current object with the data given.
Dept. Of CSE 2019-20 Page 12
Software Development Encryption-Decryption
Step 8: Encrypt the data
The doFinal() method of the Cipher class completes the encryption operation.
Step 9: Initialize the Cipher object for decryption
To decrypt the cypher encrypted in the previous steps you need to initialize it for decryption.
Step 10: Decrypt the data
Finally, Decrypt the encrypted text using the doFinal() method.
Figure 5.2 Decrypting Data Code
Dept. Of CSE 2019-20 Page 13
Software Development Encryption-Decryption
CHAPTER 6
RESULTS
As the user wants to encrypt or decrypt the data or the file first the user needs to open the
application. As the application is open the first thing which is displayed is the index page which
will be telling the user about the operations which can be done in this application.
Figure 6.1 Index/About Page
Dept. Of CSE 2019-20 Page 14
Software Development Encryption-Decryption
Next, after viewing the about page the user should log in to the application. Only the user can
have access to login who has been registered before, while new users must register first to use
the application.
Figure 6.2 Registration Page
Dept. Of CSE 2019-20 Page 15
Software Development Encryption-Decryption
Figure 6.3 Login Page
Figure 6.4 Code For Encryption
Dept. Of CSE 2019-20 Page 16
Software Development Encryption-Decryption
Figure 6.5 Code For Decryption
The Sample text is T. John Institute of Technology so the output which means
encrypt ion output and decrypt ion output looks like the below figures:
Figure 6.6 Output for the Text
Dept. Of CSE 2019-20 Page 17
Software Development Encryption-Decryption
CHAPTER 7
CONCLUSION
As we toward a society where automated information resources are increased and cryptography
will continue to increase in importance as a security mechanism. Electronic networks for
banking, shopping, inventory control, benefit and service delivery, information storage and
retrieval, distributed processing, and government applications will need improved methods for
access control and data security. The information security can be easily achieved by using
Cryptography technique. This application which is developed in this internship project is best
for both encrypting the data as well as decrypting the data. This application can be used by
anyone across the world. The only thing to be done is to create the account/signup for the
application. In this application the security is good. In this application, the main advantage is
the user can view the history of the files or text which has been encrypted or decrypted by the
user.
Dept. Of CSE 2019-20 Page 18
Software Development Encryption-Decryption
REFERENCES
1. A Simple Encryption and Decryption System.
2. Protection of Data Stored in Transparent Database System using Encryption.
3. A data encryption application: Development Proposal.
4. The Benefits and Risks of Privacy and Security in the Era of Digital Health: Health
National Service (SNS) of Portugal.
5. Hardware Data Encryption Complex Based on Programmable Microcontrollers.
6. https://thesai.org
7. https://gpgtools.tenderapp.com
8. https://cheapsslsecurity.com/p
9. https://www.guru99.com
10. https://medium.com/@monetha
11. https://www.researchgate.net/publication/282027337 [1].
12. https://www.tutorialspoint.com/java_cryptography/java_cryptography_encrypting_data.
htm
13. https://www.tutorialspoint.com/java_cryptography/java_cryptography_decrypting_data.
htm
Dept. Of CSE 2019-20 Page 19