832000057-Saravanan S

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

TEXT ENCRYPTION AND DECRYPTION WITH EXTENDED

EUCLIDEAN ALGORITHM AND COMBINING THE FEATURES OF


LINEAR CONGRUENCE GENERATOR
CONTENTS
Sl. No Topics Page No
1. Introduction
2. Abstract
3. System Study
4. System Analysis
5. System Requirement
6. System Design
7. System Architecture
8. Input And Output Design
9. Algorithm Details
10. Software Description
11. Source Code
12. Screenshots
13. System Testing
14. Literature Survey
15. Conclusion
16. References
INTRODUCTION:
Encryption and decryption is the part of Cryptography. Cryptography is
the term of Science and Arts, which generate the secret message and protecting
this message from unauthorized access. Cryptography is the word, comes from
Greek Origin, which means of “Secret or Hidden writing”. The purpose and
goals of cryptography are Confidentiality, Authentication, Data Integrity, Non-
Repudiation and Access Control.
Key elements
Plain Text: The original message, known as plain text, which is input by the
sender to the receiver.
Cipher Text: The meaningless message, known as Cipher text, which is the
output of encryption process. This message is difficult to understand by
unauthorized users.
Example - “v4” is the cipher text of plain text “Hi”, which is send by A to the
receiver B.(Fig.1)
Encryption: Encryption is the process of converting message from plain text
into cipher text, using encryption algorithm and secret key.
Decryption: Decryption is the process of converting messages from cipher text
into plain text, using decryption algorithm and inverse key.
Secret Key: Using Extended Euclidean Algorithm, we can design our proposed
secret key which can be used for encrypt the text message. Actually, more than
2000 years ago, this algorithm is developed by Euclid who was a
mathematician. That is gcd (a,b) = gcd (b,r) [where r is the remainder of
dividing a by b. If b is a prime number then remainder is always 1]
Inverse Key: Using Extended Euclidean Algorithm, we can generate the

secret key, if b is prime number then we can get the inverse key by using
Multiplicative Inverse Law. That is a × b = 1(mod n) [where a and b are the
multiplicative inverse of each other and n is the prime number
Message Confidentiality: Message confidentiality preserves the privacy of
message between senders and receiver. Only the authorized receiver to know
the meaning of the message. But except the receivers other recognized it
meaningless message.
Message Integrity: Sender first broken the message into several tokens and
send these tokens in random order. But receiver accepts these random tokens
and arranges these tokens as sender’s original message. The message integrity
defines that without loss of any tokens, receiver rearranges the tokens as sender
send original message. Actually message integrity defines the secure
communication between sender and receiver.
Message Authentication: Message authentications define that sender’s identity
that he or she is the appropriate sender who sends the secure message. The
receiver identifies the appropriate senders using message authentication process.
ABSTRACT:
Security plays a vital role in our communication system through internet.
For this reasons, we protect data from unauthorized users using appropriate
encryptions algorithm. Using encryption we convert plain text to cipher text
using our proposed secret key and similarly using inverse key we can decrypt
the original text. In this algorithm, we read a string, then extract each of the
single characters from the string and convert these characters to ASCII
equivalent value. Apply proposed secret key, along with ASCII value and
appropriate encryption algorithm we encrypt the text. Similarly, using the
inverse key along with appropriate decryption algorithm we can decrypt the
original text.
SYSTEM STUDY

FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and business


proposal is put forth with a very general plan for the project and some cost
estimates. During system analysis the feasibility study of the proposed
system is to be carried out. This is to ensure that the proposed system is not a
burden to the company. For feasibility analysis, some understanding of the
major requirements for the system is essential.

Three key considerations involved in the feasibility analysis are

 ECONOMICAL FEASIBILITY
 TECHNICAL FEASIBILITY
 SOCIAL FEASIBILITY

ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into
the research and development of the system is limited. The expenditures must
be justified. Thus the developed system as well within the budget and this

was achieved because most of the technologies used are freely available.
Only the customized products had to be purchased.
TECHNICAL FEASIBILITY

This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a
high demand on the available technical resources. This will lead to high
demands on the available technical resources. This will lead to high demands
being placed on the client. The developed system must have a modest
requirement, as only minimal or null changes are required for implementing this
system.

SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by


the user. This includes the process of training the user to use the system
efficiently. The user must not feel threatened by the system, instead must accept
it as a necessity. The level of acceptance by the users solely depends on the
methods that are employed to educate the user about the system and to make
him familiar with it. His level of confidence must be raised so that he is also
able to make some constructive criticism, which is welcomed, as he is the final
user of the system.
SYSTEM ANALYSIS:

EXISTING METHOD:
Cryptography divided into two parts:
1. Symmetric Key Encryption
2. Asymmetric Key Encryption
Symmetric Key Encryption
In symmetric key encryption, the secret key is shared between sender and
receiver. The sender uses this key and use encryption algorithm to encrypt the
text. Using the similar keys and a corresponding decryption algorithm, receive
decrypt the original text.
Example: DES, BLOWFISH, AES, etc.

Asymmetric Key Encryption


Asymmetric key encryption is also known as public key cryptography. In
this Encryption, two secret keys are used by sender and receiver, one is public
key and another is private key. Sender used the public key to encrypt the text
and receiver used the private key to decrypt the text.
PROPOSED METHOD:
1. Linear Congruence Generator
The linear congruence generator is an algorithm that generates sequence
of random number using piecewise linear functions. The functions become y =
(ax + b) mod n [where a and b are secret key and n is a prime number] Here, if
b=0 then it is called a multiplicative congruential generator (MCG) and if b not
equal to 0 then it is called a mixed congruential generator. If anyone choose the
values of a, c and n, then it is generated the random number between 0 to n-1.
• Design Secret key for encryption
We can design our secret key using Extended Euclidean Algorithm that is
key1= (x * a) mod 131 [where a is an numerical value that equivalent to ASCII
value form text and x is a random number that can generated by Linear
Congruence Generator] The Extended Euclidean Algorithm determines the
greatest common devisors or gcd between two integers. That is ax + by = gcd
(a, b). This algorithm is useful if a and b are co-primes of each others. Here x
and y is the modular multiplicative inverse between a and b. The Modular
Multiplicative Inverse is used for find out the inverse of our proposed secret
key. The method defines that a-1 ≡ x (mod m) where a-1 is the inverse of x
where m is Integer module. Using this Modular Multiplicative Inverse we can
generate inverse of our secret key.
SYSTEM REQUIREMENTS:

SOFTWARE REQUIREMENTS:

Op e r a t i n g S ys t e m : WI N D O WS

Simulation Tool : OPENCV PYTHON

Do c u me n t a t i o n : Ms-Office

HARDWARE REQUIREMENTS:

CPU type : Intel Pentium 4

Clock speed : 3.0 GHz

Ram size : 512 MB

Hard disk capacity : 80 GB

Monitor type : 15 Inch colour monitor

Keyboard type : Internet keyboard

CD -drive type : 52xmax


SYSTEM DESIGN

SEQUENCE DIAGRAM (ENCRYPTION):

MERGING EMBED TEXT


DATA SETS DWT TEXT

1
2 : COVER TEXT()
3 : LSB AND MSB()
4 : SVD()

5 : SECRET TEXT

6 : WATERMARKING()
SEQUENCE DIAGRAM (DECRYPTION):

STEGANOGRAPHED TEXT REMOVE EMBED TEXT EXTRACTION FROM WATERMARKING IDWT PERFORMANCE ANALYSIS

2 1 : MSE()
3 : SVD()

4 : LSB AND MSB()


5 : SSIM()

6 : REMOVING MERGING()

7 : PSNR()
USE CASE DIAGRAM (ENCRYPTION):

MERGING
DWT

DATA_SETS
EMBED TEXT

ENCRYPTION

STEGO
USE CASE DIAGRAM (DECRYPTION):

REMOVE LSB AND MSB

STEGO TEXT EXTRACTION FROM WATERMARKING

DECRYPTION

IDWT
PERFORMANCE ANALYSIS
SYSTEM ARCHITECTURE:

Encryption and decryption is the part of Cryptography. Cryptography is


the term of Science and Arts, which generate the secret message and protecting
this message from unauthorized access. Cryptography is the word, comes from
Greek Origin, which means of “Secret or Hidden writing”. The purpose and
goals of cryptography are Confidentiality, Authentication, Data Integrity, Non-
Repudiation and Access Control.
INPUT DESIGN AND OUTPUT DESIGN

INPUT DESIGN

The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and
those steps are necessary to put transaction data in to a usable form for
processing can be achieved by inspecting the computer to read data from a
written or printed document or it can occur by having people keying the data
directly into the system. The design of input focuses on controlling the amount
of input required, controlling the errors, avoiding delay, avoiding extra steps
and keeping the process simple. The input is designed in such a way so that it
provides security and ease of use with retaining the privacy. Input Design
considered the following things:

 What data should be given as input?


 How the data should be arranged or coded?
 The dialog to guide the operating personnel in providing input.
 Methods for preparing input validations and steps to follow when error
occur.
OBJECTIVES

1.Input Design is the process of converting a user-oriented description of the


input into a computer-based system. This design is important to avoid errors in
the data input process and show the correct direction to the management for
getting correct information from the computerized system.
2. It is achieved by creating user-friendly screens for the data entry to handle
large volume of data. The goal of designing input is to make data entry easier
and to be free from errors. The data entry screen is designed in such a way that

all the data manipulates can be performed. It also provides record viewing
facilities.

3.When the data is entered it will check for its validity. Data can be entered with
the help of screens. Appropriate messages are provided as when needed so that
the user

will not be in maize of instant. Thus the objective of input design is to create an
input layout that is easy to follow

OUTPUT DESIGN

A quality output is one, which meets the requirements of the end user and
presents the information clearly. In any system results of processing are
communicated to the users and to other system through outputs. In output
design it is determined how the information is to be displaced for immediate
need and also the hard copy output. It is the most important and direct source
information to the user. Efficient and intelligent output design improves the
system’s relationship to help user decision-making.

1. Designing computer output should proceed in an organized, well thought out


manner; the right output must be developed while ensuring that each output
element is designed so that people will find the system can use easily and
effectively. When analysis design computer output, they should Identify the
specific output that is needed to meet the requirements.

2.Select methods for presenting information.


3.Create document, report, or other formats that contain information produced
by the system.

The output form of an information system should accomplish one or more of the
following objectives.

 Convey information about past activities, current status or projections of


the
 Future.
 Signal important events, opportunities, problems, or warnings.
 Trigger an action.
 Confirm an action.
ALGORITHM DETAILS:

1. Read the text message as an input


2. Extract each character from this text message and convert each of the
character in ASCII equivalent numerical value.
3. Using Extended Euclidean Algorithm, generate our proposed secret key.
4. The proposed secret key is used to converting each of these ASCII values
(these ASCII values corresponds to our text message) to new values.
5. These new values are again converting to characters.
6. These sequence of characters are combined to create the string
7. This string is actually the cipher text.
8. The cipher text now generate encrypted text message.
Using Modular Multiplicative Inverse algorithm we can generate inverse
key of our proposed secret key. This inverse key and also appropriate
decryption algorithm we can decrypt the cipher text back to original text
message.
SOFTWARE DESCRIPTION:

OpenCV:

OpenCV is a computer vision library originally developed by Intel and now


supported by Willow Garage. It is free for use under the open source BSD
license. The library is cross-platform. It focuses mainly on real-time image
processing. If the library finds Intel's Integrated Performance Primitives on the
system, it will use these commercial optimized routines to accelerate it.
OpenCV is NOT a piece of software that you run and process images. You need
to write code.

You can download Microsoft’s Visual Studio Express Edition (for free). It is
one superb IDE. You need to download the Visual C++ 2010 Express.

Also, OpenCV is not some executable file that you double click and it’ll start
working. It is pure code, library files and DLL files. When you write your own
code, you “link” to these library files to access the OpenCV functions.

OpenCV

Why OpenCV?
There are a couple of why to prefer OpenCV over Matlab.

Specific

OpenCV was made for image processing. Each function and data structure was
designed with the Image Processing coder in mind. Matlab, on the other hand, is
quite generic. You get almost anything in the world in the form of toolboxes.
All the way from financial tool boxes to highly specialized DNA tool boxes.

Speedy

Matlab is just way too slow. Matlab itself is built upon Java. And Java is built
upon C. So when you run a Matlab program, your computer is busy trying to
interpret all that Matlab code. Then it turns it into Java, and then finally
executes the code.

If you use C/C++ you don’t waste all that time. You directly provide machine
language code to the computer, and it gets executed. So ultimately you get more
image processing, and not more interpreting.

Sure you pay the price for speed – a more cryptic language to deal with, but it’s
definitely worth it. You can do a lot more. You could do some really complex
mathematics on images with C and still get away with good enough speeds for
your application.
Efficient

Matlab uses just way too much system resources. With OpenCV, you can get
away with as little as 10mb RAM for a realtime application. But with today’s
computers, the RAM factor isn’t a big thing to be worried about. You do need
to take care about memory leaks, but it isn’t that difficult. You can read this
article about Memory Management in OpenCV if you want.

Requirements for OpenCV:

Operating System:

 32-bit MS Windows (95/98), 32-bit MS Windows (NT/2000/XP), All


32-bit MS Windows(95/98/NT/2000/XP),All POSIX
(Linux/BSD/UNIX-like OSes),
OS X, Linux, Win2K, WinXP

 Verified on Windows 7 x86_64; should also be compatible with


Windows XP SP3 and newer.
 OpenCV 2.1 is compatible with VC++ 2008 and VC++ 2010.
Programming Language:

 Visual C++

Disk space requirement for OpenCV Package:

 4 Mb

Supported Architecture:

 x86
 x64 (WOW)

Supported Operating Systems:

 Microsoft® Windows® XP (x86) Service Pack 3


All editions except Starter Edition
 Microsoft® Windows® Vista (x86 & x64) with Service Pack 2
All editions except Starter Edition
 Microsoft® Windows® Server 2003 R2 (x86 & x64)
All editions
 Microsof® Windows® Server 2008 (x86 & x64) with Service Pack 2
All editions
 Microsoft® Windows® Server 2008 R2 (x64)
All editions
 Microsoft® Windows® 7
All editions
Source code

# import tkinter module

from tkinter import *

# import other necessery modules

import random

import time

import datetime

# creating root object

root = Tk()

# defining size of window

root.geometry("1200x6000")

# setting up the title of window

root.title("Message Encryption and Decryption")

Tops = Frame(root, width = 1600, relief = SUNKEN)

Tops.pack(side = TOP)

f1 = Frame(root, width = 800, height = 700,


relief = SUNKEN)

f1.pack(side = LEFT)

# ==============================================

# TIME

# ==============================================

localtime = time.asctime(time.localtime(time.time()))

lblInfo = Label(Tops, font = ('helvetica', 50, 'bold'),

text = "SECRET MESSAGING",

fg = "Black", bd = 10, anchor='w')

lblInfo.grid(row = 0, column = 0)

lblInfo = Label(Tops, font=('arial', 20, 'bold'),

text = localtime, fg = "Steel Blue",

bd = 10, anchor = 'w')

lblInfo.grid(row = 1, column = 0)

rand = StringVar()

Msg = StringVar()

key = StringVar()

mode = StringVar()
Result = StringVar()

# exit function

def qExit():

root.destroy()

# Function to reset the window

def Reset():

rand.set("")

Msg.set("")

key.set("")

mode.set("")

Result.set("")

# reference

lblReference = Label(f1, font = ('arial', 16, 'bold'),

text = "Name:", bd = 16, anchor = "w")

lblReference.grid(row = 0, column = 0)

txtReference = Entry(f1, font = ('arial', 16, 'bold'),

textvariable = rand, bd = 10, insertwidth = 4,

bg = "powder blue", justify = 'right')


txtReference.grid(row = 0, column = 1)

# labels

lblMsg = Label(f1, font = ('arial', 16, 'bold'),

text = "MESSAGE", bd = 16, anchor = "w")

lblMsg.grid(row = 1, column = 0)

txtMsg = Entry(f1, font = ('arial', 16, 'bold'),

textvariable = Msg, bd = 10, insertwidth = 4,

bg = "powder blue", justify = 'right')

txtMsg.grid(row = 1, column = 1)

lblkey = Label(f1, font = ('arial', 16, 'bold'),

text = "KEY", bd = 16, anchor = "w")

lblkey.grid(row = 2, column = 0)

txtkey = Entry(f1, font = ('arial', 16, 'bold'),

textvariable = key, bd = 10, insertwidth = 4,

bg = "powder blue", justify = 'right')


txtkey.grid(row = 2, column = 1)

lblmode = Label(f1, font = ('arial', 16, 'bold'),

text = "MODE(e for encrypt, d for decrypt)",

bd = 16, anchor = "w")

lblmode.grid(row = 3, column = 0)

txtmode = Entry(f1, font = ('arial', 16, 'bold'),

textvariable = mode, bd = 10, insertwidth = 4,

bg = "powder blue", justify = 'right')

txtmode.grid(row = 3, column = 1)

lblService = Label(f1, font = ('arial', 16, 'bold'),

text = "The Result-", bd = 16, anchor = "w")

lblService.grid(row = 2, column = 2)

txtService = Entry(f1, font = ('arial', 16, 'bold'),

textvariable = Result, bd = 10, insertwidth = 4,

bg = "powder blue", justify = 'right')

txtService.grid(row = 2, column = 3)
import base64

# Function to encode

def encode(key, clear):

enc = []

for i in range(len(clear)):

key_c = key[i % len(key)]

enc_c = chr((ord(clear[i]) +

ord(key_c)) % 256)

enc.append(enc_c)

return base64.urlsafe_b64encode("".join(enc).encode()).decode()

# Function to decode

def decode(key, enc):

dec = []

enc = base64.urlsafe_b64decode(enc).decode()

for i in range(len(enc)):
key_c = key[i % len(key)]

dec_c = chr((256 + ord(enc[i]) -

ord(key_c)) % 256)

dec.append(dec_c)

return "".join(dec)

def Ref():

print("Message= ", (Msg.get()))

clear = Msg.get()

k = key.get()

m = mode.get()

if (m == 'e'):

Result.set(encode(k, clear))

else:

Result.set(decode(k, clear))

# Show message button

btnTotal = Button(f1, padx = 16, pady = 8, bd = 16, fg = "black",

font = ('arial', 16, 'bold'), width = 10,

text = "Show Message", bg = "powder blue",

command = Ref).grid(row = 7, column =


1)
# Reset button

btnReset = Button(f1, padx = 16, pady = 8, bd = 16,

fg = "black", font = ('arial', 16, 'bold'),

width = 10, text = "Reset", bg = "green",

command = Reset).grid(row = 7, column = 2)

# Exit button

btnExit = Button(f1, padx = 16, pady = 8, bd = 16,

fg = "black", font = ('arial', 16, 'bold'),

width = 10, text = "Exit", bg = "red",

command = qExit).grid(row = 7, column = 3)

# keeps window alive

root.mainloop()
#-------------------------------------------------------------------------------

# Name: Text encoding and decoding

# Purpose: A simple program used for encoded and decoding text

# in various encryption methods.

# Author: travis compton

# Created: 07/18/2015

# Copyright: (c) travis compton 2015

# Licence: The MIT License (MIT)

#-------------------------------------------------------------------------------

import hashlib

def main():

while True:

choice = raw_input("""

Text Encryptor & Decryptor

----------------------

|1) Encryption: |

|2) Decryption: |

| |
|____________________|

|h) Help |

|e) Exit |

|____________________|

:""")

if choice == "1":

encryptionChoice = raw_input("""

----------------------

|1) Base64: |

|2) cp037: |

|3) Ceasar-Cypther: |

|4) MD5: |

|____________________|

|h) Help |

|e) Exit |

|____________________|

:""")

if encryptionChoice == "1":

encode("base64")

elif encryptionChoice == "2":

encode("cp037")
elif encryptionChoice == "3":

encode("rot_13")

elif encryptionChoice == "4":

processChoice = raw_input("1) Hash a message: \n2) Hash a file:\nh)


Help: \ne) Exit:\n")

if processChoice == "1":

encodeHash("1", "MD5")

elif processChoice == "2":

encodeHash("2", "MD5")

elif processChoice == "h":

helpMenu("md5")

elif processChoice == "e":

break

else:

print "Invalid choice, Please try again"

elif encryptionChoice == "h":

helpMenu("general")

elif encryptionChoice == "e":

break

else:

print "Please try again"

elif choice == "2":

encryptionChoice = raw_input("""
----------------------

|1) Base64: |

|2) cp037: |

|3) Ceasar-Cypther: |

|____________________|

|h) Help |

|e) Exit |

|____________________|

:""")

if encryptionChoice == "1":

decode("base64")

elif encryptionChoice == "2":

decode("cp037")

elif encryptionChoice == "3":

decode("rot_13")

elif encryptionChoice == "h":

helpMenu("general")

elif encryptionChoice == "e":

break

else:

print "Please try again"

elif choice == "e":


break

elif choice == "h":

helpMenu("general")

else:

print "Unrecognized choice! Please type 1, 2, or 3."

#Function used to encode the text based on users encryption selection.

def encode(encryption):

while True:

message = raw_input("Type a message to encode:\n")

encodedMessage = message.encode(encryption, "strict")

encodedMessageText = open("EncodedMessage.txt", "w")

encodedMessageText.write(encodedMessage)

encodedMessageText.close()

print "The enoded message is: ", encodedMessage

break

#Function used to decode the text base on users decryption selection.

def decode(encryption):

while True:

encodedMessageText = raw_input("Type the name of the text file to


decode or type 'e' to exit: ")

high = len(encodedMessageText)
if encodedMessageText[high -4:high] == ".txt":

message = open(encodedMessageText, "r")

readMessage = message.read()

decodedMessage = readMessage.decode(encryption, "strict")

decodedMessageText = open("DecodedMessage.txt", "w")

decodedMessageText.write(decodedMessage)

decodedMessageText.close()

print "The decode message is: ", decodedMessage

break

elif encodedMessageText == "e":

break

else:

print "The file name must be a .txt file and the extension must be
typed!!"

print "Example: 'EncodedMessage.txt' "

def helpMenu(helpType):

if helpType == "general":

print """\t Choose either Encryption or Decryption by typing the

corresponding number" and pressing enter.

If doing encryption you will prompted to type a message to

encrypt. Next choose the encryption type. You will be

displayed your encrypted message and a text file will be made

in the folder where this program lives. The text file will be
named EncodedMessage.txt

If doing decryption you will be prompted to choose encryption

type. Next you will be prompted to enter the text file name.

Be sure to type the whole file name and it must end in txt but

can be named whatever.

Example 'EncodedMessage.txt"

You will be displayed the decoded message and a text file will

be made with the decrypted message entitled DecodedMessage.txt

"""

elif helpType == "md5":

print """\t Choose either to hash a message or hash a file.

If hashing a message, input your message and the MD5 hash

will be displayed and a text file will be made created as

'HashedMessageMD5.txt'.

If hashing a file input the name of the file to be hashed,

note the file must be in the same directory as this program.

Exampe 'ThisFile.exe'

The hash for the file will be displayed and a text file will

be created in the same folder as this program named

MD5FileChecksum.txt

"""
def encodeHash(choice, method):

if choice == "1" and method == "MD5":

message = raw_input("Type a message to encode in MD5 :\n")

a = hashlib.md5()

a.update(message.encode('utf-8'))

encodedMessageText = open("HashedMessageMD5.txt", "w")

encodedMessageText.write(a.hexdigest())

encodedMessageText.close()

print a.hexdigest()

elif choice == "2" and method == "MD5":

fileName = raw_input('Enter file name: ')

fileHash = hashlib.md5(open(fileName, 'rb').read()).hexdigest()

fileHashText = open("MD5FileChecksum.txt", "w")

fileHashText.write(fileHash)

fileHashText.close()

print fileHash

main()

raw_input("Press any key to exit.")


Screenshot
SYSTEM TESTING

The purpose of testing is to discover errors. Testing is the process of


trying to discover every conceivable fault or weakness in a work product. It
provides a way to check the functionality of components, sub assemblies,
assemblies and/or a finished product It is the process of exercising software
with the intent of ensuring that the

Software system meets its requirements and user expectations and does not fail
in an unacceptable manner. There are various types of test. Each test type
addresses a specific testing requirement.

TYPES OF TESTS

Unit testing
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid
outputs. All decision branches and internal code flow should be validated. It is
the testing of individual software units of the application .it is done after the
completion of an individual unit before integration. This is a structural testing,
that relies on knowledge of its construction and is invasive. Unit tests perform
basic tests at component level and test a specific business process, application,
and/or system configuration. Unit tests ensure that each unique path of a
business process performs accurately to the documented specifications and
contains clearly defined inputs and expected results.
Integration testing

Integration tests are designed to test integrated software components to


determine if they actually run as one program. Testing is event driven and is
more concerned with the basic outcome of screens or fields. Integration tests
demonstrate that although the components were individually satisfaction, as
shown by successfully unit testing, the combination of components is correct
and consistent. Integration testing is specifically aimed at exposing the
problems that arise from the combination of components.

Functional test

Functional tests provide systematic demonstrations that functions tested are


available as specified by the business and technical requirements, system
documentation, and user manuals.

Functional testing is centered on the following items:

Valid Input : identified classes of valid input must be accepted.

Invalid Input : identified classes of invalid input must be rejected.

Functions : identified functions must be exercised.

Output : identified classes of application outputs must be


exercised.

Systems/Procedures: interfacing systems or procedures must be invoked.


Organization and preparation of functional tests is focused on requirements, key
functions, or special test cases. In addition, systematic coverage pertaining to
identify Business process flows; data fields, predefined processes, and
successive processes must be considered for testing. Before functional testing is
complete, additional tests are identified and the effective value of current tests is
determined.

System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results.
An example of system testing is the configuration oriented system integration
test. System testing is based on process descriptions and flows, emphasizing
pre-driven process links and integration points.

White Box Testing


White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at
least its purpose. It is purpose. It is used to test areas that cannot be reached
from a black box level.

Black Box Testing


Black Box Testing is testing the software without any knowledge of the
inner workings, structure or language of the module being tested. Black box
tests, as most other kinds of tests, must be written from a definitive source
document, such as specification or requirements document, such as
specification or requirements document. It is a testing in which the software
under test is treated, as a black box .you cannot “see” into it. The test provides
inputs and responds to outputs without considering how the software works.

6.1 Unit Testing:

Unit testing is usually conducted as part of a combined code and unit test
phase of the software lifecycle, although it is not uncommon for coding and unit
testing to be conducted as two distinct phases.

Test strategy and approach


Field testing will be performed manually and functional tests will be
written in detail.

Test objectives
 All field entries must work properly.
 Pages must be activated from the identified link.
 The entry screen, messages and responses must not be delayed.

Features to be tested
 Verify that the entries are of the correct format
 No duplicate entries should be allowed
 All links should take the user to the correct page.
6.2 Integration Testing

Software integration testing is the incremental integration testing of two


or more integrated software components on a single platform to produce failures
caused by interface defects.

The task of the integration test is to check that components or software


applications, e.g. components in a software system or – one step up – software
applications at the company level – interact without error.

Test Results: All the test cases mentioned above passed successfully. No
defects encountered.

6.3 Acceptance Testing

User Acceptance Testing is a critical phase of any project and requires


significant participation by the end user. It also ensures that the system meets
the functional requirements.

Test Results: All the test cases mentioned above passed successfully. No
defects encountered.
LITERATURE SURVEY:

TOPIC: ENABLING SEARCH OVER ENCRYPTED MULTIMEDIA DATABASES

YEAR: 2009

Performing information retrieval tasks while preserving data confidentiality is a


desirable capability when a database is stored on a server maintained by a third-
party service provider. This paper addresses the problem of enabling content-
based retrieval over encrypted multimedia databases. Search indexes, along with
multimedia documents, are first encrypted by the content owner and then stored
onto the server. Through jointly applying cryptographic techniques, such as
order preserving encryption and randomized hash functions, with image
processing and information retrieval techniques, secure indexing schemes are
designed to provide both privacy protection and rank-ordered search capability.
Retrieval results on an encrypted color image database and security analysis of
the secure indexing schemes under different attack models show that data
confidentiality can be preserved while retaining very good retrieval
performance. This work has promising applications in secure multimedia
management.
TOPIC: HIGH CAPACITY REVERSIBLE DATA HIDING IN ENCRYPTED
IMAGES BY PATCH-LEVEL SPARSE REPRESENTATION

YEAR: 2016

Reversible data hiding in encrypted images has attracted considerable attention


from the communities of privacy security and protection. The success of the
previous methods in this area has shown that a superior performance can be
achieved by exploiting the redundancy within the image. Specifically, because
the pixels in the local structures (like patches or regions) have a strong
similarity, they can be heavily compressed, thus resulting in a large hiding
room. In this paper, to better explore the correlation between neighbor pixels,
we propose to consider the patch-level sparse representation when hiding the
secret data. The widely used sparse coding technique has demonstrated that a
patch can be linearly represented by some atoms in an over-complete dictionary.
As the sparse coding is an approximation solution, the leading residual errors
are encoded and self-embedded within the cover image. Furthermore, the
learned dictionary is also embedded into the encrypted image. Thanks to the
powerful representation of sparse coding, a large vacated room can be achieved,
and thus the data hider can embed more secret messages in the encrypted image.
Extensive experiments demonstrate that the proposed method significantly
outperforms the state-of-the-art methods in terms of the embedding rate and the
image quality.
TOPIC: USER-FRIENDLY RANDOM-GRID-BASED VISUAL SECRET SHARING

YEAR: 2011

Recently, the visual secret sharing (VSS) technique based on a random-grid


algorithm (RGVSS), proposed by Kafri and Keren in 1987, has drawn attention
in academia again. However, Kafri and Keren's scheme is not participant-
friendly; that is to say, the generated shared images are meaningless, so users
feel that this huge amount of data is hard to manage. The literature has
illustrated the concept of creating meaningful shared images, in which some
shape or information appears for easing management, for VSS technique by
visual cryptography (VCVSS). Those friendly VCVSS schemes are not directly
suitable for RGVSS. Instead, a new friendly RGVSS must be designed. Most
friendly VCVSS schemes worsen the pixel expansion problem, in which the
size of shared images is larger than that of the original secret image, to achieve
the goal of generic meaningful shares. As a result, in this paper we have focused
on proposing a novel RGVSS scheme by skillfully designing a procedure of
distinguishing different light transmissions on shared images based on the pixel
values of the logo image with two primary advantages: no pixel expansion, and
being user-friendly. In order to illustrate the correctness, the formal analysis is
demonstrated while the experimental results show the proposed schemes do
work.
TOPIC: PROTECTION AND RETRIEVAL OF ENCRYPTED MULTIMEDIA
CONTENT

YEAR: 2007

The processing and encryption of multimedia content are generally considered


sequential and independent operations. In certain multimedia content processing
scenarios, it is, however, desirable to carry out processing directly on encrypted
signals. The field of secure signal processing poses significant challenges for
both signal processing and cryptography research; only few ready-togo fully
integrated solutions are available. This study first concisely summarizes
cryptographic primitives used in existing solutions to processing of encrypted
signals, and discusses implications of the security requirements on these
solutions. The study then continues to describe two domains in which secure
signal processing has been taken up as a challenge, namely, analysis and
retrieval of multimedia content, as well as multimedia content protection. In
each domain, state-of-the-art algorithms are described. Finally, the study
discusses the challenges and open issues in the field of secure signal processing.
TOPIC: LOSSLESS DATA EMBEDDING USING GENERALIZED STATISTICAL
QUANTITY HISTOGRAM

YEAR: 2011

Histogram-based lossless data embedding (LDE) has been recognized as an


effective and efficient way for copyright protection of multimedia. Recently, a
LDE method using the statistical quantity histogram has achieved good
performance, which utilizes the similarity of the arithmetic average of
difference histogram (AADH) to reduce the diversity of images and ensure the
stable performance of LDE. However, this method is strongly dependent on
some assumptions, which limits its applications in practice. In addition, the
capacities of the images with the flat AADH, e.g., texture images, are a little bit
low. For this purpose, we develop a novel framework for LDE by incorporating
the merits from the generalized statistical quantity histogram (GSQH) and the
histogram-based embedding. Algorithmically, we design the GSQH driven LDE
framework carefully so that it: (1) utilizes the similarity and sparsity of GSQH
to construct an efficient embedding carrier, leading to a general and stable
framework; (2) is widely adaptable for different kinds of images, due to the
usage of the divide-and-conquer strategy; (3) is scalable for different capacity
requirements and avoids the capacity problems caused by the flat histogram
distribution; (4) is conditionally robust against JPEG compression under a
suitable scale factor; and (5) is secure for copyright protection because of the
safe storage and transmission of side information. Thorough experiments over
three kinds of images demonstrate the effectiveness of the proposed framework.
CONCLUSION:

Our proposed algorithm is encrypting the text which can be used for
further research in cryptography. This method is so easy but third party cannot
hack our algorithms.. No visual defects can be observed from the corresponding
stego images. It can also be referred to devise new algorithms on ways to send
different language secret texts or images in audio as well as video files with
more dynamicity.

FUTURE WORK:

A quantum steganography method is proposed to hide a Quantum secret image


into a Quantum cover image that is Quantum watermarking technique is used
to hide data. The proposed scheme utilizes the Arnold’s cat map to create an
incomprehensible watermark image before embedding it in an carrier image,
then it is embedded by using Least significant qubits.
REFERENCES:

[1] W. Lu, A. Swaminathan, A. L. Varna, and M. Wu, “Enabling search over


encrypted multimedia databases,” in IS&T/SPIE Electronic Imaging.
International Society for Optics and Photonics, 2009, pp. 725 418– 725 418

[2] X. Cao, L. Du, X. Wei, D. Meng, and X. Guo, “High capacity reversible
data hiding in encrypted images by patch-level sparse representation,” IEEE
Transactions on Cybernetics, vol. 46, no. 5, pp. 1132–1143, 2016.

[3] T.-H. Chen and K.-H. Tsao, “User-friendly random-grid-based visual secret
sharing,” IEEE Transactions on Circuits and Systems for Video Technology,
vol. 21, no. 11, pp. 1693–1703, 2011.

[4] Z. Erkin, A. Piva, S. Katzenbeisser, R. L. Lagendijk, J. Shokrollahi, G.


Neven, and M. Barni, “Protection and retrieval of encrypted multimedia
content: When cryptography meets signal processing,” EURASIP Journal on
Information Security, vol. 2007, p. 17, 2007.

[5] X. Gao, L. An, Y. Yuan, D. Tao, and X. Li, “Lossless data embedding using
generalized statistical quantity histogram,” IEEE Transactions on Circuits and
Systems for Video Technology, vol. 21, no. 8, pp. 1061– 1070, 2011.

[6] W. Hong, T.-S. Chen, and H.-Y. Wu, “An improved reversible data hiding
in encrypted images using side match,” IEEE Signal Processing Letters, vol. 19,
no. 4, pp. 199–202, 2012.

[7] C.-Y. Hsu, C.-S. Lu, and S.-C. Pei, “Image feature extraction in encrypted
domain with privacy-preserving SIFT,” IEEE Transactions on Image
Processing, vol. 21, no. 11, pp. 4593–4607, 2012.
[8] V. Itier and W. Puech, “How to recompress a JPEG crypto-compressed
image?” in Electronic Imaging, Media Watermarking, Security, and Forensics
2017, vol. 2017, no. 7, 2017.

[9] P. Korshunov and T. Ebrahimi, “Scrambling-based tool for secure protection


of JPEG images,” in Image Processing (ICIP), 2014 21th IEEE International
Conference on, 2014, pp. 3423–3425.

[10] S. Li, G. Chen, and X. Mou, “On the dynamical degradation of digital
piecewise linear chaotic maps,” International Journal of Bifurcation and Chaos,
vol. 15, no. 10, pp. 3119–3151, 2005.

You might also like