Download as pdf or txt
Download as pdf or txt
You are on page 1of 72

1

MULTI IMAGE CRYPTOGRAPHIC BASED TWO FACTOR AUTHENTICATION


IN BANKING SYSTEMS AND SERVICES

A PROJECT REPORT

Submitted by
HARIHARAN A (310617104037)
KESHAV N(310617104046)
DEEPAK KUMAAR M (310617104303)

in partial fulfillment for the award of the degree of

BACHELOR OF ENGINEERING
in
COMPUTER SCIENCE AND ENGINEERING

EASWARI ENGINEERING COLLEGE, CHENNAI


(Autonomous Institution)
affiliated to
ANNA UNIVERSITY::CHENNAI - 600025
MAY 2020
2

EASWARI ENGINEERING COLLEGE,CHENNAI


(AUTONOMOUS INSTITUTION)
AFFILIATED TO ANNA UNIVERSITY, CHENNAI 600025

BONAFIDE CERTIFICATE

Certified that this project report “Multi Image Cryptographic based Two
Factor Authentication in Banking Systems and Services” is the bonafide
work of “HARIHARAN A(310617104037), KESHAV N (310617104046),
DEEPAK KUMAAR M (310617104303)” who carried out the project work
under my supervision.

Dr.K.M.ANANDKUMAR Ms.S.BHUVANESWARI

HEAD OFTHEDEPARTMENT SUPERVISOR


Professor Associate Professor
Department of Computer Science and
Department of Computer Science and
Engineering
Engineering

EaswariEngineeringCollege Easwari Engineering College


Ramapuram,Chennai600089 Ramapuram, Chennai600089

Submitted for Semester Examination held on 28.04.2021

INTERNALEXAMINER EXTERNALEXAMINER
3

CERTIFICATE OF EVALUATION

CollegeName : Easwari Engineering College

Branch & Semester : Computer Science and Engineering & VIII

Name of the
Title of the
S. No Name of the Students Supervisor with
Project
Designation

HARIHARAN A
1.
(310617104037)
MULTI IMAGE
2. CRYPTOGRAPHIC
KESHAV N BASED TWO
Ms.S.BHUVANESWARI
(310617104046) FACTOR ASSOCIATE PROFESSOR
AUTHENTICATION
IN BANKING
SECTOR &
SERVICES

DEEPAK KUMAAR M
3.
(310617104303)

The report of the project work submitted by the above students in partial
fulfillment for the award of Bachelor of Engineering Degree in Computer
Science and Engineering of Anna University were evaluated and confirmed
to be a report of the work done by the above students.

The viva voce examination of the project work was held on 28.04.2021

INTERNALEXAMINER EXTERNALEXAMINER
4

ACKNOWLEDGEMENT

We hereby place our deep sense of gratitude to our beloved Founder


Chairman of the institution, Dr.T.R.Pachamuthu, B.Sc., M.I.E., for providing
us with the requisite infrastructure throughout the course. We would also like to
express our gratitude towards our Chairman Dr.R.Shivakumar, M.D., Ph.D. for
giving the necessary facilities.

We convey our sincere thanks to Dr.R.S.Kumar, M.Tech., Ph.D. Principal


Easwari Engineering College, for his encouragement and support. We extend our
hearty thanks to Dr.V.Elango, M.E., Ph.D., Vice Principal (academics) and
Dr.K.M.Anandkumar, M.Tech, Ph.D, Vice Principal (admin), Easwari
Engineering College, for their constant encouragement.

We take the privilege to extend our hearty thanks to


Dr.K.M.AnandKumar, M.Tech, Ph.D., Head of the Department, Computer
Science and Engineering, Easwari Engineering College for his suggestions,
supportandencouragementtowardsthecompletionoftheprojectwithperfection.

We would like to express our gratitude to our Project Coordinator, Dr. S.


Kayalvizhi, M.E., Ph.D., Associate Professor, Department of Computer Science
and Engineering, Easwari Engineering College, for her constant support and
encouragement.

We would also like to express our gratitude to our guide


Ms.S.Bhuvaneswari M.E., Associate Professor, Department of Computer
Science and Engineering, Easwari Engineering College, for her constant support
and encouragement.

Finally, we wholeheartedly thank all the faculty members of the


Department of Computer Science and Engineering for warm cooperation and
encouragement.
5

ABSTRACT

Online Banking Sectors are now one of the major & primary platforms for money
transactions. In this high data driven world where there is a high risk involved in
exploitment user’s resources and data , banking services must be upgraded with high
security. Due to unavoidable hacking of the databases on the Internet, it is always
quite difficult to trust the information on the Internet. To solve this problem of
authentication, we are proposing an algorithm based on image processing and visual
cryptography. This paper proposes a technique of processing the signature of a
customer and then dividing it into shares. Total number of shares to be created is
depending on the scheme chosen by the bank. When two shares are created, one is
stored in the bank database and the other is kept by the customer.There are security
measures like One Time Passwords for Authentication. It is an effective method , but
there is a chance of the bank holder’s mobile phone getting compromised by the
Hacker. In order to secure a Bank Authentication , two factor authentication is
implemented where image processing technique is used along with algorithms and
methods such as Multi Level Encryption Algorithm and Magic Least Significant Bit
Algorithm . So , for the First Factor Authentication Relevance Feedback
Accumulation Algorithm is used for Validating the User’s Credential is TRUE or
FALSE by comparing the Indexed value to the Bank Database registered by the user.
And , for the Second Factor Authentication Multi Level Encryption Algorithm and
Magic Least Significant Bit Method is used . MLEA Algorithm is used to convert a
plaintext to ciphertext and this ciphertext is embedded in an image using the Magic
LSB method .
6

TABLE OF CONTENTS

CHAPTER TITLE PAGE


NO NO
ABSTRACT i
LIST OF TABLES vi
LIST OF FIGURES vii
LIST OF ABBREVIATIONS viii
1. INTRODUCTION 1
1.1 General 1
1.2 Problem Description 2
1.3 Objective 2
1.4 Scope of the Project 2
1.5 Organization of Thesis 3
2. LITERATURE SURVEY 4
2.1 General 4
2.2 Existing Systems 4
2.2.1 Literature Survey on Helping the Visually 5
Impaired to Learn Coding
2.2.2 Literature Survey on Helping the Visually 6
Impaired Code
2.3 Issues in the Existing System 8
2.4 Proposed System 8
2.5 Summary 9
3. SYSTEM DESIGN 10
3.1 General 10
3.2 System Architecture 11
3.3 Functional Architecture 11
7

3.4 Modular Design 13


3.4.1 GUI Input Module 14
3.4.2 Encryption & Decryption Module 15

3.4.3 User Validation 15


3.5 System Requirement 17
3.5.1 Hardware Specification 17
3.5.2 Software Specification 18
3.6 Summary 18
4. SYSTEM IMPLEMENTATION 19
4.1 General 19
4.2 Overview of the Platform 19
4.2.1 Python 19
4.2.1.1 Readable and Maintainable Code 21
4.2.1.2 Multiple Programming Paradigm 21
4.2.1.3 Compatible with Major Platform 22
and Systems
4.2.1.4 Robust Standard Library 22

4.3 XAMPP 22
4.4 Modular Implementation 24
4.4.1 User Registration 24
4.4.2 User Credentials Update 25
4.4.3 User Login 25
4.4.4 Image Choosing Grid 26
4.4.5 First Image Authentication 26
4.4.5.1 Login Successful Webpage 27
4.4.5.2 Authentication Error 28
4.4.6 Second Image Authentication 28
4.4.6.1 Login Successful Webpage 29
4.4.6.2 Authentication Error 29
8

5. SYSTEM TESTING AND


PERFORMANCE
ANALYSIS 30
5.1 General 30
5.2 Test Case 30

5.3 PerformanceAnalysis 32
5.3.1 PSNR Value of Images 33
5.3.2Comparison of Algorithms 33
& Line Graph Analysis
5.4 Source Codes 35
5.5 Summary 34
6. CONCLUSION AND FUTURE WORK 35
6.1 Conclusion 35
6.2 FutureWork 35
APPENDIX 48
REFERENCES 71
9

LIST OF ABBREVIATIONS

MLEA Multi Level Encryption Algorithm


Magic LSB Magic Least Significant Bit
PSNR Peak Signal-to-Noise Ratio
SHA Secure Hash Algorithm
AES Advance Encryption Algorithm
DES Data Encryption Algorithm
ECIES Elliptic Curve Integrated EncryptionScheme
ECDSA Elliptic Curve Digital Signature Algorithm
10

CHAPTER 1 INTRODUCTION

1.1 GENERAL

Nowadays, the banking system has been more accessible than ever to
perform essential duties e.g online transfer, change account information without
having the need to visit nearby banks and perform all of them online. While the
online access to banking functionality for users has given great flexibility but it
requires sufficient security provided by the banking company to help protect
from unauthorized access to user's accounts and also help the user to perform his
activity securely maintaining the privacy. The objective of this project is to
design such banking applications securely with multi image encryption
technique according to design guidelines as image based encryption cannot be
told or shared with any other as it is a visual memory and as well perform
security testing to expose the vulnerabilities. In the following sections, users of
the system and their functionality is presented. Steganography and Cryptography
both techniques are used for data confidentiality.

To improve encryption efficiency and facilitate the secure transmission of


multiple digital images, by defining the pure image element and mixed image
element, this paper presents a new multiple-image encryption (MIE) algorithm
based on the mixed image element and permutation, which can simultaneously
encrypt any number of images. Firstly, segment the original images into pure
image elements; secondly, scramble all the pure image elements with the
permutation generated by the piecewise linear chaotic map (PWLCM) system;
thirdly, combine mixed image elements into scrambled images; finally, diffuse
the content of mixed image elements by performing the exclusive OR (XOR)
operation among scrambled images and the chaotic image generated by another
PWLCM system. The comparison with two similar algorithms is made.
Experimental results and algorithm analyses show that the proposed MIE
11

algorithm is very simple and efficient, which is suitable for practical image
encryption.

1.2 PROBLEM DESCRIPTION

Currently there are many authentication issues in banking sectors and


complaints have been rising day by day . This is a serious issue because by
compromising bank accounts the hacker can do anything with that bank
account

1.3 OBJECTIVES

To Solve existing security issues using a multi image encryption technique.


To make the system as safe and reliable as possible for implementation in a
banking system.

1.4 SCOPE OF THE PROJECT

Banking is generally a very much targeted system by hackers and intruders


as they generally deal with huge amounts of money. So to increase security, we
need different techniques that are secure and also user friendly.

1.5 ORGANIZATION OF THE THESIS

The report consists of 6 chapters, the contents of which are described


below: Chapter 1 is the introduction that explains the basic information of the
system. Chapter 2 is the literature survey that elaborates on the research works
on the existing systems. Chapter 3 describes the system design. Chapter 4 gives
details regarding the system implementation. Chapter 5 describes different test
scenarios for the modules described by the proposed system and the
12

performance analysis of the proposed system. Chapter 6 provides the conclusion,


which summarizes the efforts undertaken in the proposed system and states
findings and shortcomings in the proposed system.

CHAPTER 2
LITERATURE SURVEY
2.1 GENERAL

A literature survey is the documentation of a comprehensive review


of the publishers and unpublished work from the secondary sources data in
the areas of specific interest to the researchers. It provides an overview of
current knowledge, allowing you to identify relevant theories, methods,
and gaps in the existing research. Conducting a literature review involves
collecting, evaluating, and analysing publications (such as books and
journal articles) that relate to the research question.

Many research works are carried out in the banking authentication


system. The recently carried works have been explained in detail below.

2.2 EXISTING SYSTEM

Nabil Ben Slimane, Nahed Aouf,Kais Bouallegue and Mohsen


Machhout [1], discussed the Hash key-based image cryptosystem using
chaotic maps and cellular automata.The ciphered image was obtained,
analyzed and compared to the recent encryption schemes using a series of
statistical tests.The efficient and light weight cryptosystem for image
encryption is proposed using confusion diffusion architecture. The Secure
13

Hash Algorithm SHA-256 is used to generate the initial condition of


chaotic maps.

Aaditya Jain and Sourabh Soni [2], discussed the Visual Cryptography
and Image Processing based Approach for Secure Transactions in Banking
Sector.Two gray images is taken as input and preprocessed and then
concatenated.Further, they are divided into two shares and secret image is
constructed from the generated shares. For secure Banking Transaction in
joint account operation this paper proposed a method that is based on (2,
2)-VCSXOR.

Abdulrahman Alhothaily, Chunqiang Hu, Arwa Alrawais, Tianyi Song,


Xiuzhen Cheng and Dechang Chen [3]. Discussed A Secure and Practical
Authentication Scheme Using Personal Devices.The proposed protocol can
be used in different domains such as online banking,e-government and
e-health. Elliptic Curve Digital Signature Algorithm (ECDSA) and the
Elliptic Curve Integrated Encryption Scheme (ECIES) is adopted. The
ECDSA-256 algorithm with key size of 256-bit and SHA256 hash function
is used to sign the ticket by the registered device, and ECIES-256 with key
size of 256-bit is utilized to encrypt.Finally the server decrypts and verify
the ticket.

Joseph Bonneau, Cormac Herley, Paul C. van Oorschot, Frank Stajano[4],


discussed The Quest to Replace Passwords: A Framework for Comparative
Evaluation of Web Authentication Schemes. Proxy-based schemes place a
man-in-the-middle between the user’s machine and the server. One reason
for doing so, employed by Impostor and URRSA is to enable secure logins
despite malware-infected clients. URRSA has users authenticate to the end
14

server using one-time codes carried on a sheet of paper. OpenID reduces


most attacks to only the password authentication between a user and his or
her identity provider

Afnan Al-Ali, and Turki Abdalla[5],discussed Chaos Based Image


Encryption and Decryption. The basic principle of encryption with chaos is
based on the ability of some dynamic systems to produce sequences of
numbers that are random in nature. The chaos-based encryption algorithm
is as follows: after wavelet transformation, an amount of 25% (in case of
one-level decomposition) or 6.25% (in case of two-level decomposition) of
the original image, which corresponds to the important part, is transformed
into one-dimensional vector with a dimension equal to the important part
size .

Xingyuan Wang and Dapeng Luan [6], discussed A novel image


encryption algorithm using chaos and reversible cellular automata. Logistic
map, which is a simple and classic nonlinear model, is used in many image
encryption algorithms. The proposed algorithm composes of two parts:
confusion and diffusion stage. In the confusion stage, we shuffle image on
unit-level which is a much smaller level than pixels by using chaotic maps.
The reversible cellular automata is performed on higher half pixel bits
many rounds in diffusion stage. After confusion and diffusion, we get the
cipher image.

Adel Khelifi , Maher Aburrous , Manar Abu Talib , P.V.S. Shastry [7],
discussed the Enhancing Protection Techniques of E-Banking Security
Services Using Open Source Cryptographic Algorithms. the most widely
used algorithms appear to be two-key triple DES and RC4 for symmetric
15

ciphers to assure the confidentiality of the transaction data in Internet


banking systems, RSA with a 1024-bit key for an asymmetric cipher and a
digital signature, and SHA-1 for a hash function according to international
standards and guidelines related to the financial transactions. AES-128
makes use of a 128 bit cipher key and 128 bits of data block. It performs K
rounds of encryption before finally giving the cipher text.

Chetana Hegde, Manu S , P Deepa Shenoy, Venugopal K R and L M


Patnaik [8], discussed Secure Authentication using Image Processing and
Visual Cryptography for Banking Applications.The images of format JPEG
or GIF is encrypted and two or three shares based on the scheme is opted.
Four major functions are involved in the proposed technique. The first
function is to pre-process the given image to remove the possible noise and
to get the clarity. The second function is to encrypt the image based on
white and black pixels and to get two transparencies. The third function is
the overlay/stack the available shares to get the image containing the
signature.

Sesha Pallavi Indrakanti and Avadhani [9],discussed Segment based Visual


Cryptography for key distribution. The random seven segment number with
parallel segments is subjected to the encryption process which is based on
the visual cryptography and algorithm. The decryption process is very
simple and easy for a non-technical person to use. The shares are printed
and stacked on each other to view the secret, the segments belonging to the
first subset show transparent areas when the two shares are stacked.

Hyoung Joong Kim, Vasiliy Sachnev, Su-Jeong Choi, Shijun Xiang[10],


discussed An Innocuous Visual Cryptography Scheme. The goal of the
16

innocuous visual cryptography is to keep the share Sk as close as the input


image Pk such as Sk ' Pk and recover the hidden image U by manipulating
n valid shares and applying simple mathematical operations. system. In
order to enhance robustness against malicious attacks, this scheme should
incorporate the robust data hiding schemes

2.1 ISSUES IN THE EXISTING SYSTEM

The existing system uses either pin numbers or OTP based systems which
can be hacked into easily and also is ineffective. The PIN is readable by all and
can easily be lost or taken if the person’s phone is taken. The OTP can easily be
bypassed by even amateur hackers and easily take away the bank accounts. The
fraudulent callers can take away PIN and OTP from innocent customers.

2.2 PROPOSED SYSTEM

The proposed system is a multi image based encryption that cannot be


told or transferred to any other person as it is a visual memory. The system is
secure and can be easily remembered as images remain in memory longer
than words or numbers. Also fraudulent callers have no way of stealing data
here.
2.3 SUMMARY

The literature survey has covered information regarding the existing


systems that help visually impaired in coding. The issues and challenges
have been identified in related work. This chapter has highlighted the
proposed model.
17

CHAPTER 3

SYSTEM DESIGN

3.1 GENERAL

The main purpose of the design phase is to plan solutions to the


problems specifiedby the requirement document.The design phase takes as input
the requirement in the Requirements Analysis stage. This phase is the step in
moving from the problem domain to the solution domain. The design of the
system is perhaps the most critical factor affecting the quality of the software,and
has a major impact in the later phases, particularly in testing and maintenance.
The output of this phase is the functional design Document.The Design
Documents created for the proposed system consists of the system architecture
and the data flow diagram. This is also known to be the top-level design that
identifies the modules in the system, and how the data transfer takes place
between the modules.

This chapter deals with design documents created for the proposed system
whichconsistsoffunctionalarchitectureandactivitydiagrametc.Duringdetailed
design, the internal logic of all the modules specified in the system design is
decided. The system architecture deals with the components to be used in the
proposed system which explains its interaction with one other. The data flow
diagram describes the graphical representation of how the data flows between the
different modules in the system. The data flow diagram gives a very clear picture
of the flowofdataamongtheworkingmodules.The Design Documents Reused as a
continuous reference point for further system development and coding.
18

3.2 SYSTEM ARCHITECTURE

Figure 3.1 System Architecture

3.3 FUNCTIONAL ARCHITECTURE

Figure 3.2 Functional Architecture


19

The diagram above is functional architecture for the multi-image-based


encryption for banking systems. The image of the user is taken as the
input and it is processed.Further,the image is embedded using a secret
key and it is divided into several blocks for processing. Finally, the
image is stored in the database. When the user login, the image of the
user is captured and it is compared with the pixelated image.If it
matches, the user authentication is validated and transaction is done.
Steganography embeds secret data into digital carriers like image, audio,
video etc such that it cannot be easily detected by the Human Visual
System (HVS). There are five types of steganography on the basis of
carrier objects that are used for embedding the secret data .The
percentage of images which are accepted as known face images although
they are unknown is called as False Acceptance Rate (FAR). This value
represents error rate for acceptance of unknown images.The percentage
of images which are rejected as unknown face images although they are
known and exist in training set or database is called as False Rejection
Rate (FRR). This value represents error rate for Rejection of known
images.

3.4 MODULAR DESIGN

The modular structure defines the structure of the overall module.


Modularity is a general concept typically defined as a degree to which a
system’s components may be separated and recombined.

The proposed system contains the following modules:

1. Image GUI input module


2. Image encryption and decryption module
3. User validation module
20

3.4.1 Image GUI input module:

The GUI is used to enable the user to interact with the


application.Here,the end-to-end encrypted image of the user is given as the
input and the validation of user login is the output. The software used is
Anaconda and the programming language used is Python.The encrypted image
after steganography is stored in the database and the compared with the image
of the user during login and allows transaction if the image matches.

3.4.2 Image encryption and decryption module

Fig 3.4.2 Image Encryption & Decryption

3.4.3 User validation & 2Nd Image Authentication module

Validation Rules should be controlled by the application, so that end-users are


unable to enter invalid data. Sometimes, you may need to change the rules
according to your requirements. If you implemented your rules with custom
code, you will need to change your code and re-build the application. At the
21

same time, this approach does not let administrators change Validation Rules.
To avoid these problems, we provide a special Validation module. This module
allows for the easy and effective control of user input. There are certain
validation rules for user validation and based on that rules the data to be
validated is treated. The user input is checked with the stored data and validated
if it matches and the access is granted for transaction.
22

Fig 3.4.3 User Validation

After the successful first factor image authentication , the second factor image
authentication begins and the user will be redirected to the new page in which
the user has only one attempt to click the region click and if the user fails to
click the correct region , the user won't be allowed to access the user dashboard
page . The Authentication is successful only if the user correctly clicks the
region click in one attempt.

3.5 SYSTEM REQUIREMENT

3.5.1 Hardware Specification

Processor: Intel i3 AMD/ Ryzen or above RAM: 6GB or above.

Microphone: Frequency response 50Hz to 80Hz. Speaker/ Headphone

3.5.2 Software Specification

Operating System: Windows 7 or Higher

Language: Python

Server : XAMPP

3.6 SUMMARY

This chapter gives an overview of system design and its importance in the
23

software life cycle. The functional architecture gives the entire functionality of
the proposed system along with its modular structure and its interactions
between the modules.

CHAPTER 4

SYSTEM IMPLEMENTATION

4.1 GENERAL

This describes the implementation of the project. It describes


various modules of the proposed system, tools, and platforms, which
were used. Implementation details are also mentioned and snapshots of
output for each module are displayed. The following presents the input
and output models used while implementing the proposed system.

4.2 OVERVIEW OF THE PLATFORM


4.2.1Python

Python is a general-purpose and high-level programming language.


We can use Python for developing desktop GUI applications, websites,
and web applications. Also, Python, as a high-level programming
language, allows us to focus on the core functionality of the application by
taking care of common programming tasks. The simple syntax rules of
the programming language further make it easier for us to keep the code
base readable and application maintainable. There are also several
reasons why we should prefer Python to other programming languages.
4.2.1.1Readable and Maintainable Code

While writing a software application, we must focus on the quality of


its source code to simplify maintenance and updates. The syntax rules of
24

Python allow us to express concepts without writing additional code. At


the same time, Python, unlike other programming languages,
emphasizes code readability and allows us to use English keywords
instead of punctuations. Hence, we can use Python to build custom
applications without writing additional code. The readable and clean code
base will help us to maintain and update the software without putting
extra time and effort.
4.2.1.2Multiple Programming Paradigms
Like other modern programming languages, Python also supports several
programming paradigms. It supports object-oriented and structured
programming fully. Also, its language features support for various concepts
in functional and Aspect oriented programming. At the same time, Python
also features a dynamic type system and automatic memory management.
The programming paradigms and language features help us to use Python
for developing large and complex software applications.

4.1.1.1Compatible with Major Platforms andSystems

At present, Python supports many operating systems. We can even


use Python interpreters to run the code on specific platforms and tools.
Also, Python is an interpreted programming language. It allows us to run
the same code on multiple platforms without recompilation. Hence, we
are not required to recompile the code after making any alteration. We
can run the modified application code without re-compiling and check the
impact of changes made to the code immediately. The feature makes it
easier for us to make changes to the code without increasing
development time.

4.1.1.2Robust StandardLibrary

Its large and robust standard library makes Python score over other
25

programming languages. The standard library allows us to choose from a


wide range of modules according to our precise needs. Each module
further enables us to add functionality to the Python application without
writing additional code. For instance, while writing a web application in
Python, we can use specific modules to implement web services, perform
string operations, manage operating system interface,or work with
internet protocols.We Can Even Gather Information about various
modules by browsing through the Python Standard Library
documentation

4.3 XAMPP
XAMPP is an abbreviation where X stands for Cross-Platform, A stands for
Apache, M stands for MYSQL, and the Ps stand for PHP and Perl, respectively. It
is an open-source package of web solutions that includes Apache distribution for
many servers and command-line executables along with modules such as
Apache server, MariaDB, PHP, and Perl.

XAMPP helps a local host or server to test its website and clients via computers
and laptops before releasing it to the main server. It is a platform that furnishes a
suitable environment to test and verify the working of projects based on Apache,
Perl, MySQL database, and PHP through the system of the host itself. Among
these technologies, Perl is a programming language used for web development,
PHP is a backend scripting language, and MariaDB is the most vividly used
database developed by MySQL.

Advantages of XAMPP:

It is free and easy to use and easily available for Windows, Linux and Mac OS .
It is a beginners friendly solution package for full stack web development.
It is a open source software package which gives a easy installation experience.
26

It is very simple and lightweight to create set up for development, testing and
deployment.
It is a time-saver and provides several ways for managing configuration changes.
It handles many administrative tasks like checking the status and security.
Software components of XAMPP:

Apache plays the role of processing the HTTP request. It is the actual default
web server application. It is the most popular web servers maintained by Apache
Software Foundation.
MySQL The role of database management system in XAMPP is played by
MySQL. It helps to store and manage collected data very efficiently. It is an
open-source and most popular.
PHP is the server-side scripting language which stand for Hypertext
Preprocessor. It is embedded with HTML code which interacts with the
webserver. It is an open-source and work well with MySQL and has become a
common choice for web developers.
Perl is the high-level programming language designed for text editing which
serves purpose like web development and network programming.

Steps to install XAMPP on Windows:


27

During the installation process, select the required components like MySQL,
FileZilla ftp server, PHP, phpMyAdmin or leave the default options and click the
Next button.
Uncheck the Learn more about bitnami option and click Next button.
Choose the root directory path to set up the htdocs folder for our applications.
For example ‘C:\xampp’.
Click the Allow access button to allow the XAMPP modules from the Windows
firewall.
After the installation process, click the Finish button of the XAMPP Setup wizard.
Now the XAMPP icon is clearly visible on the right side of start menu. Show or
Hide can be set by using the control panel by clicking on the icon.
To start Apache and MySql, just click on the Start button on the control panel.

Note: Suppose Apache is not starting, it means some other service is running at
port 80. In this case, stop the other service temporarily and restart it.
28

Making a server request: Open your web browser and check whether the
XAMPP service has properly installed or not. Type in the URL: http://localhost. If
you are able to see the default page for XAMPP, you have successfully installed
your XAMPP Server.

To Check if PHP is Working: All the website related files are organized in a folder
called htdocs and then run index.php file by using http://localhost/index.php or
http://localhost.

Note: For every new website or application, it's always better to create a different
folder inside htdocs, to keep it organized and avoid confusion.

For example, if we create a folder geeksforgeeks and then create a file named
‘helloWorld.php’. All the contents related to it are put inside the folder
‘geeksforgeeks’. So the root ‘URL’ of the website will be
‘http://localhost/geeksforgeeks/’. So any home page is accessed by typing the
root URL in the browser. To see the output, just type
‘http://localhost/geeksforgeeks/helloWorld.php’.

Now open your browser and go to “http://localhost/test.php” if you see the


page same as below then PHP has successfully installed.
29

In XAMPP, the configuration files of Apache, MySQL, PHP are located in


C:\Program Files\xampp. For any configuration file changes, you need to restart
Apache and MySQL

4.4 MODULE IMPLEMENTATION


4.4.1 User Registration
30

Fig 4.4.2 User credential filling

4.4.3 User Login

Fig 4.4.3 User Login


31

4.4.4 Image Choosing Grid

Fig 4.4.4 Image Choosing Grid

4.4.5 First Image Authentication

Fig 4.4.5 First Image Authentication


32

4.4.5.1 Authentication Successful Webpage

Fig 4.4.5.1 Authentication Successful Webpage

4.4.5.2 Authentication Error

Fig 4.4.5.2 Authentication Error


33

4.4.6 Second Authentication Image

Fig 4.4.6 Second Image Authentication Webpage


34

4.4.6.1 Authentication Successful Webpage

Fig 4.4.6.1 Authentication Successful Webpage

4.4.6.2 Authentication Error

Fig 4.4.6.2 Authentication Error


35

4.5 SUMMARY

This chapter brought out the analysis of each technology used to


develop this project. This chapter also brought out the basic system
implementations such as the platforms, languages, and tools used here. And
the screenshots of different modules implemented using those platforms,
languages, and tools.
36

` CHAPTER 5
SYSTEM TESTING AND PERFORMANCE ANALYSIS

.
5.1 SYSTEM TESTING
Testing is performed to identify errors. It is used for quality assurance.
Testing is an integral part of the entire development and maintenance
process. The goal of the testing during phase is to verify that the
specification has been accurately and completely incorporated into the
design, as well as to ensure the correctness of the design itself. For example
the design must not have any logic faults in the design be detected before
coding commences, otherwise the cost of fixing the faults will be
considerably higher as reflected. Detection of design faults can be achieved
by means of inspection as well as walkthrough.
Testing is one of the important steps in the software development
phase. Testing checks for the errors, as a whole of the project testing
involves the following test cases:
 Static analysis is used to investigate the structural properties of the
Source code.
 Dynamic testing is used to investigate the behavior of the source code
by executing the program on the test data.

5.2 TEST DATA AND OUTPUT


5.2.1 UNIT TESTING
Unit testing is conducted to verify the functional performance of each
modular component of the software. Unit testing focuses on the smallest unit
of the software design (i.e.), the module. The white-box testing techniques
were heavily employed for unit testing.
37

5.2.2 FUNCTIONAL TESTS


Functional test cases involved exercising the code with nominal
input values for which the expected results are known, as well as boundary
values and special values, such as logically related inputs, files of identical
elements, and empty files.
Three types of tests in Functional test:
 Performance Test
 Stress Test
 Structure Test

5.2.3 PERFORMANCE TEST


It determines the amount of execution time spent in various parts of
the unit, program throughput, and response time and device utilization by
the program unit.

5.2.4 STRESS TEST


Stress Test is a test designed to intentionally break the unit. A
Great deal can be learned about the strength and limitations of a program by
examining the manner in which a programmer in which a program unit
breaks.

5.2.5STRUCTURED TEST
Structure Tests are concerned with exercising the internal logic of a
program and traversing particular execution paths. The way in which
White-Box test strategy was employed to ensure that the test cases could
Guarantee that all independent paths within a module have been have been
38

exercised at least once.


 Exercise all logical decisions on their true or false sides.
 Execute all loops at their boundaries and within their operational
bounds.
 Exercise internal data structures to assure their validity.
 Checking attributes for their correctness.
 Handling end of file condition, I/O errors, buffer problems and textual
errors in output information
5.2.6 INTEGRATION TESTING
Integration testing is a systematic technique for constructing
the program structure while at the same time conducting tests to uncover
errors associated with interfacing. i.e., integration testing is the complete
testing of the set of modules which makes up the product. The objective is to
take untested modules and build a program structure tester should identify
critical modules. Critical modules should be tested as early as possible. One
approach is to wait until all the units have passed testing, and then combine
them and then tested. This approach is evolved from unstructured testing of
small programs. Another strategy is to construct the product in increments of
tested units. A small set of modules are integrated together and tested, to
which another module is added and tested in combination. And so on. The
advantages of this approach are that interface dispenses can be easily found
and corrected.
The major error that was faced during the project is linking error.
When all the modules are combined the link is not set properly with all
support files. Then we checked out for interconnection and the links. Errors
are localized to the new module and its intercommunications. The product
development can be staged, and modules integrated in as they complete unit
39

testing. Testing is completed when the last module is integrated and tested.
5.3 TESTING TECHNIQUES / TESTING STRATEGIES
5.3.1 TESTING
Testing is a process of executing a program with the intent of finding
an error. A good test case is one that has a high probability of finding an
as-yet –undiscovered error. A successful test is one that uncovers an as-yet-
undiscovered error. System testing is the stage of implementation, which is
aimed at ensuring that the system works accurately and efficiently as
expected before live operation commences. It verifies that the whole set of
programs hang together. System testing requires a test consisting of several
key activities and steps for running a program, string, system and is
important in adopting a successful new system. This is the last chance to
detect and correct errors before the system is installed for user acceptance
testing.
The software testing process commences once the program is created and
the documentation and related data structures are designed. Software testing
is essential for correcting errors. Otherwise the program or the project is not
said to be complete. Software testing is the critical element of software
quality assurance and represents the ultimate review of specification design
and coding. Testing is the process of executing the program with the intent
of finding the error. A good test case design is one that as a probability of
finding an yet undiscovered error. A successful test is one that uncovers an
yet undiscovered error. Any engineering product can be tested in one of the
two ways:
5.3.1.1 WHITE BOX TESTING
This testing is also called as Glass box testing. In this testing,
by knowing the specific functions that a product has been design to perform
40

test can be conducted that demonstrate each function is fully operational at


the same time searching for errors in each function. It is a test case design
method that uses the control structure of the procedural design to derive test
cases. Basis path testing is a white box testing.
Basis path testing:
 Flow graph notation
 Cyclomatic complexity
 Deriving test cases
 Graph matrices Control

5.3.1.2 BLACK BOX TESTING


In this testing by knowing the internal operation of a product, test can be
conducted to ensure that “all gears mesh”, that is the internal operation
performs according to specification and all internal components have been
adequately exercised. It fundamentally focuses on the functional
requirements of the software.
The steps involved in black box test case design are:
 Graph based testing methods
 Equivalence partitioning
 Boundary value analysis
 Comparison testing
5.3.2 SOFTWARE TESTING STRATEGIES:
A software testing strategy provides a road map for the software developer.
Testing is a set activity that can be planned in advance and conducted
systematically. For this reason a template for software testing a set of steps
into which we can place specific test case design methods should be strategy
should have the following characteristics:
41

 Testing begins at the module level and works “outward” toward the
integration of the entire computer based system.
 Different testing techniques are appropriate at different points in time.
 The developer of the software and an independent test group conducts
testing.
 Testing and Debugging are different activities but debugging must be
accommodated in any testing strategy.
5.3.2.1 INTEGRATION TESTING:
Integration testing is a systematic technique for constructing the program
structure while at the same time conducting tests to uncover errors
associated with. Individual modules, which are highly prone to interface
errors, should not be assumed to work instantly when we put them together.
The problem of course, is “putting them together”- interfacing. There may
be the chances of data lost across on another’s sub functions, when
combined may not produce the desired major function; individually
acceptable impression may be magnified to unacceptable levels; global data
structures can present problems.
5.3.2.2 PROGRAM TESTING:
The logical and syntax errors have been pointed out by program testing. A
syntax error is an error in a program statement that in violates one or more
rules of the language in which it is written. An improperly defined field
dimension or omitted keywords are common syntax error. These errors are
shown through error messages generated by the computer. A logic error on
the other hand deals with the incorrect data fields, out-off-range items and
invalid combinations. Since the compiler s will not deduct logical error, the
programmer must examine the output. Condition testing exercises the logical
conditions contained in a module. The possible types of elements in a
42

condition include a Boolean operator, Boolean variable, a pair of Boolean


parentheses A relational operator or on arithmetic expression. Condition
testing method focuses on testing each condition in the program the purpose
of condition test is to deduct not only errors in the condition of a program
but also other a errors in the program.

5.3.2.3 SECURITY TESTING:


Security testing attempts to verify the protection mechanisms built in to a
system well, in fact, protect it from improper penetration. The system
security must be tested for invulnerability from frontal attack must also be
tested for invulnerability from rear attack. During security, the tester places
the role of individual who desires to penetrate system.

5.3.2.4 VALIDATION TESTING


At the culmination of integration testing, software is completely
assembled as a package. Interfacing errors have been uncovered and
corrected and a final series of software test-validation testing begins.
Validation testing can be defined in many ways, but a simple definition is
that validation succeeds when the software functions in manner that is
reasonably expected by the customer. Software validation is achieved
through a series of black box tests that demonstrate conformity with
requirement. After validation test has been conducted, one of two conditions
exists.
* The function or performance characteristics confirm to specifications and
are accepted.
* A validation from specification is uncovered and a deficiency
created.
43

Deviation or errors discovered at this step in this project is corrected prior to


completion of the project with the help of the user by negotiating to establish
a method for resolving deficiencies. Thus the proposed system under
consideration has been tested by using validation testing and found tobe
working satisfactorily. Though there were deficiencies in the system they
were not catastrophic

5.3.2.5 USER ACCEPTANCE TESTING


User acceptance of the system is key factor for the success of any system.
The system under consideration is tested for user acceptance by constantly
keeping in touch with prospective system and user at the time of developing
and making changes whenever required. This is done in regarding to the
following points.
• Input screen design.
• Output screen design.
44

5.4 PERFORMANCE MEASURES


Performance measurement is the process of collecting, analyzing and/or
reporting information regarding the performance of an individual, group,
organization, system or component.

(a);PSNR:72.14 (b);PSNR:73.81 (c);PSNR:67.13

(d);PSNR:40.23
(e);PSNR:44.67
Above are the images each containing 8KB cipher; (a) Flowers (b) Lanterns (c) Girl
(d) Photo Frame (e)Potter

5.4.1 Peak Signal-to-Noise Ratio (PSNR)

PSNR is a metric method used to find the quality of an image after compressing it
into different bit sizes which are embedded by ciphertexts.

Mean Squared Error (MSE), Monochrome Image (I) and Maximum Possible Pixel (MAX)
45

5.4.2 Comparative Scaling of Proposed method with Magic Least


Significant Bit method on PSNR (db) in Standard selected resolution of
Images

Dimensions of Magic LSB Proposed


Name of the the used images Method Method
Images Used in pixels Value Value
128x128 42.49 58.33
Flower Image 256x256 49.11 52.41
AVERAGE 45.8 55.37
128x128 64.99 100.00
Lantern Image 256x256 55.88 79.24
AVERAGE 60.435 89.62
128x128 62.72 69.30
Girl Image 256x256 56.66 64.85
AVERAGE 59.69 67.075
128x128 76.84 63.67
Painting Image 256x256 49.8 62.4
AVERAGE 63.32 63.035
128x128 50.02 72.47
Potter Image 256x256 67.83 59.30
AVERAGE 58.925 65.885
Table.5.4.2 Comparison between of Algorithmic methods
46

Fig 5.4.2 Line Graph Analysis of Cryptographic Algorithms with respect to


Security
47

CHAPTER 6
CONCLUSION AND FUTURE WORK

6.1 CONCLUSION

Hence the proposed system involves a multi-image based encryption


system using steganography that cannot be shared by any means since it is a
visual memory and transaction can also be done in a more effective way. This
secured system gives no way to the fraudulent callers for stealing the data.This
algorithm solved the current issues in the banking system that uses PIN numbers
and OTP which can be easily hacked even by amateur hackers.

6.2 FUTURE WORK

This algorithm was designed and implemented for checking authenticity


of the customer in core-banking and internet banking application. Secure
authentication using image processing and visual cryptography for Banking
applications involves perfect security, decryption (secret restoration) without the
aid of a computing device and robustness against lossy compression and
distortion due to its binary attribute makes this approach as a way for defining a
secure channel for validation and making transactions.
48

APPENDIX

Index.html

<!DOCTYPE html>
<?php
//starting the session
session_start();
?>
<html lang="en">
<head>
<meta charset="UTF-8" name="viewport" content="width=device-width,
initial-scale=1"/>
<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<a class="navbar-brand" href="" target="_balnk">Multimage
Encryption</a>
</div>
</nav>
<div class="col-md-3"></div>
<div class="col-md-6 well">
<h3 class="text-primary"></h3>
<hr style="border-top:1px dotted #ccc;"/>
<!-- Link for redirecting to Login Page -->
<a href="login.php">Already a member? Log in here...</a>
<br style="clear:both;"/><br />
<div class="col-md-3"></div>
<div class="col-md-6">
<!-- Registration Form start -->
<form method="POST" action="save_member.php">
<div class="alert alert-info">Registration</div>
<div class="form-group">
<label>Username</label>
<input type="text" name="username"
class="form-control" required="required"/>
</div>
<div class="form-group">
<label>Password</label>
49

<input type="password" name="password"


class="form-control" required="required"/>
</div>
<div class="form-group">
<label>Firstname</label>
<input type="text" name="firstname"
class="form-control" required="required"/>
</div>
<div class="form-group">
<label>Lastname</label>
<input type="text" name="lastname"
class="form-control" required="required"/>
</div>
<?php
//checking if the session 'success' is set. Success
session is the message that the credetials are successfully saved.
if(ISSET($_SESSION['success'])){
?>
<!-- Display registration success message -->
<div class="alert alert-success"><?php echo
$_SESSION['success']?></div>
<?php
//Unsetting the 'success' session after displaying
the message.
unset($_SESSION['success']);
}
?>
<button class="btn btn-primary btn-block"
name="register"><span class="glyphicon glyphicon-save"></span>
Register</button>
</form>
<!-- Registration Form end -->
</div>
</div>
</body>
</html>
50

Login_query.php
<?php
session_start();
require_once 'conn.php';

if(ISSET($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];

$query = "SELECT COUNT(*) as count FROM `member` WHERE


`username` = :username AND `password` = :password";
$stmt = $conn->prepare($query);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
$row = $stmt->fetch();

$count = $row['count'];

if($count > 0){


header('location:home.php');
}else{
$_SESSION['error'] = "Invalid username or password";
header('location:login.php');
}
}
?>

Login.php
<!DOCTYPE html>
<?php
//starting the session
session_start();
?>
<html lang="en">
<head>
<meta charset="UTF-8" name="viewport" content="width=device-width,
initial-scale=1"/>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
</head>
<body>
<nav class="navbar navbar-default">
51

</nav>
<div class="col-md-3"></div>
<div class="col-md-6 well">

<hr style="border-top:1px dotted #ccc;"/>


<!-- Link for redirecting page to Registration page -->
<a href="index.php">Not a member yet? Register here...</a>
<br style="clear:both;"/><br />
<div class="col-md-3"></div>
<div class="col-md-6">
<!-- Login Form Starts -->
<form method="POST" action="login_query.php">
<div class="alert alert-info">Login</div>
<div class="form-group">
<label>Username</label>
<input type="text" name="username"
class="form-control" required="required"/>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password"
class="form-control" required="required"/>
</div>
<?php
//checking if the session 'error' is set. Erro session
is the message if the 'Username' and 'Password' is not valid.
if(ISSET($_SESSION['error'])){
?>
<!-- Display Login Error message -->
<div class="alert alert-danger"><?php echo
$_SESSION['error']?></div>
<?php
//Unsetting the 'error' session after displaying the
message.
session_unset($_SESSION['error']);
}
?>
<button class="btn btn-primary btn-block"
name="login"><span class="glyphicon glyphicon-log-in"></span> Login</button>
</form>
<!-- Login Form Ends -->
52

</div>
</div>
</body>
</html>

Rsa.py

from random import randint


import math

#Key setup for encryption


def key_setup():
p = 0;
q = 0;
range_start = 10**(100-1)
range_end = (10**100)-1
found = False

while not found:


num = randint(range_start, range_end)
found = is_prime(num)
p = num

found = False

while not found:


num = randint(range_start, range_end)
found = is_prime(num)
q = num

n=p*q
new_n = (p-1) * (q-1)
e = 65537
d = euclid_extended(e, new_n)
with open("public_key.txt", 'w') as f:
print >> f, n,",", e

with open("private_key.txt", 'w') as f:


print >> f, d

# converting the plain text to cipher text


53

def encrypt():
with open("public_key.txt", 'r') as f:
buf = f.read()

n, e = buf.split(",")
n = int(n)
e = int(e)
with open("message.txt", 'r') as f:
message = f.read()
size = f.tell()
list_message = []

for x in range(0, int(math.ceil(size/81.0))):


list_message.append(message[(81*x):81*(x+1)])

int_message = 0
list_int_message = []
count = 0

for x in range(len(list_message)):

for y in list_message[x]:
y = ord(y) * (256**count )
int_message += y
count += 1
list_int_message.append(int_message)
int_message = 0
count = 0

list_ciphertext = []

for x in range(len(list_int_message)):
ciphertext = mod_expon(list_int_message[x],e,n)
list_ciphertext.append(ciphertext)

str_ciphertext = ''
54

str_ciphertext = ''.join(str(v) for v in list_ciphertext)

with open("ciphertext.txt", 'w') as f:


for x in range(0,len(list_ciphertext)):
if x < len(list_ciphertext) - 1:
print >> f, list_ciphertext[x], ","
else:
print >> f, list_ciphertext[x]

# converting the cipher text to plain text


def decrypt():
with open("ciphertext.txt", 'r') as f:
ciphertext = f.read()
size = f.tell()
with open("private_key.txt", 'r') as f:
d = f.read()
d = int(d)
with open("public_key.txt", 'r') as f:
buf = f.read()
n, e = buf.split(",")
n = int(n)
e = int(e)
list_cipher = []
message = []

list_cipher = ciphertext.split(",")

int_message = []

for x in range(0, len(list_cipher)):


int_message.append(mod_expon(int(list_cipher[x]), d, n))

ascii_values = []

for y in range(0, len(int_message)):


for x in range(0, 81):
55

message.append(int_message[y] % (256**(x + 1)))


if x > 0:
ascii_values.append((message[x + 81*y] -
message[(x+81*y)-1])/(256**x))
else:
ascii_values.append(message[x+ 81*y])

def main():
key_setup()
encrypt()
decrypt()

main();

Save.member.php

if(ISSET($_POST['register'])){
// Setting variables
$username = $_POST['username'];
$password = $_POST['password'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];

// Insertion Query
$query = "INSERT INTO `member` (username, password, firstname,
lastname) VALUES(:username, :password, :firstname, :lastname)";
$stmt = $conn->prepare($query);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);

// Check if the execution of query is success


if($stmt->execute()){
//setting a 'success' session to save our insertion success
message.
$_SESSION['success'] = "Successfully created an account";

//redirecting to the index.php


56

header('location: index.php');
}

}
?>

Conn.php

<?php
//check if the database file exists and create a new if not
if(!is_file('db/db_member.sqlite3')){
file_put_contents('db/db_member.sqlite3', null);
}
// connecting the database
$conn = new PDO('sqlite:db/db_member.sqlite3');
//Setting connection attributes
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
//Query for creating the member table in the database if not exist yet.
$query = "CREATE TABLE IF NOT EXISTS member(mem_id INTEGER
PRIMARY KEY AUTOINCREMENT NOT NULL, username TEXT, password TEXT,
firstname TEXT, lastname TEXT)";
//Executing the query
$conn->exec($query);
?>

Bootstrap.js
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0,
.075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0,
.075);
}
.btn-default:active,
.btn-primary:active,
57

.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default.disabled,
.btn-primary.disabled,
.btn-success.disabled,
.btn-info.disabled,
.btn-warning.disabled,
.btn-danger.disabled,
.btn-default[disabled],
.btn-primary[disabled],
.btn-success[disabled],
.btn-info[disabled],
.btn-warning[disabled],
.btn-danger[disabled],
fieldset[disabled] .btn-default,
fieldset[disabled] .btn-primary,
fieldset[disabled] .btn-success,
fieldset[disabled] .btn-info,
fieldset[disabled] .btn-warning,
fieldset[disabled] .btn-danger {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
58

.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff),
to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',
endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
59

fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#265a88));
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #265a88;
border-color: #245580;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
60

.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #265a88;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c),
to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',
endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
61

.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de),
to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',
endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
62

fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e),
to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',
endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
63

.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f),
to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',
endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
64

.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5),
to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',
endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #2e6da4;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
65

.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff),
to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',
endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0,
.075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0,
.075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb),
to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb',
endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c),
to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',
endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
66

background-repeat: repeat-x;
border-radius: 4px;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808),
to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808',
endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
@media (max-width: 767px) {
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
67

-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0,
.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0,
.05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8),
to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',
endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7),
to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',
endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3),
to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',
endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
68

background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede),


to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',
endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb),
to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',
endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#286090));
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff286090', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c),
to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',
endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
69

background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de),


to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',
endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e),
to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',
endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f),
to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',
endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%,
transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255,
255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%,
transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255,
255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%,
transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255,
255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
70

}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #286090;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#2b669a));
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff2b669a', GradientType=0);
background-repeat: repeat-x;
+function ($) {
'use strict';
71

REFERENCES

[1] “Hash key-based image cryptosystem using chaotic maps and cellular
automata”, published in International Multi-Conference on Systems, Signals &
Devices, 2018
[2] “Visual Cryptography and Image Processing Based Approach for Secure
Transactions in Banking Sector”, published in International Conference on
Telecommunication and Networks, 2017
[3] “A Secure and Practical Authentication Scheme Using Personal Devices”,
published in IEEE Access, volume 5, 2017
[4] “The Quest to Replace Passwords: A Framework for Comparative
Evaluation of Web Authentication Schemes”, published in IEEE Symposium on
Security and Privacy, 2012
[5] “Chaos Based Image Encryption and Decryption”, published in International
Journal of Advanced Research in Computer and Communication Engineering,
2016
[6] “A novel image encryption algorithm using chaos and reversible cellular
automata”, published in Communication in Nonlinear science and numerical
simulation ,Vol .8 , Issue ,11,2013.
[7] “Enhancing Protection Techniques of E-Banking Security Services Using
Open Source Cryptographic Algorithms ”, published in International
Conference on Software Engineering, Artificial Intelligence, Networking and
Parallel/Distributed Computing,2013
[8] “Secure Authentication using Image Processing and Visual Cryptography for
Banking Applications”, published in International Conference on Advanced
Computing and Communications, 2008
[9] “Segment based Visual Cryptography for key distribution”, published in
International Journal of Computer Science & Engineering Survey (IJCSES)
Vol.3, No.1, February 2012
[10] “An Innocuous Visual Cryptography Scheme”, published in International
Workshop on Image Analysis for Multimedia Interactive Services, 2007
72

You might also like