IMAGE ENCRYPTION AND DECRYPTION
USING A* ALGORITHM
S.NO TITLE No OF PAGES
1 Abstract and Objective
2 Introduction
3 Existing system
4 Disadvantages
5 Proposed system
6 Advantages
7 System Architecture
8 Flow Diagram
9 Use case Diagram
10 Class Diagram
11 Sequential Diagram
12 Testing Of Product
13 Modules
14 Modules Description
15 Literature Survey
16 H/W&S/W Description
17 Software Requirements
18 Hardware Requirements
19 Conclusion
20 References
21 Screenshots
TABLE OF CONTENT
ABSTRACT
• Initially, the image is taken as input and pre-processing is performed by
using the Pixel Repetition Method
• LSB information hiding algorithm of image using secret key is be
proposed combining information hiding and cryptography, increasing the
human eye visual features, and the identity authentication based on digital
signature and encryption technology to improve the security of
information hiding.
• It is based on hidden data is extracted by the receiver through the reverse
process of System Using A* Algorithm
• Finally through the experiment and the comparison of the peak signal-to-
noise ratio (PSNR) and safety. the improved LSB image steganography
algorithm using the encryption technology is better than general LSB
image steganography method with better security and higher PSNR.
INTRODUCTION
Image steganography comprises of transform domain, model relied
steganography, spatial domain and spread spectrum. The spatial
domain and transform domain contrasts with one another. Pixel value
is directly used to embed a secret message in spatial domain. On the
other hand, transform domain techniques accomplish embedding by
initially transforming the particular image from STF (Spatial to
Frequency) domain via the use of any of the mentioned transforms.
They are DWT (Discrete Wavelet Transform), DCT (Discrete Cosine
Transform), Ridgelet Transform, Hadamard Transform, DD DT DWT
(Double Density Dual Tree DWT), Dual Tree, Curvelet Transform
and so on. Then, embedding is performed in specific transform-
coefficients. The recent progress in the communication and
information technology generates easy and simple accessible data. In
addition, establishing secure communication is the most important
requirement. Various methodologies are generated to accomplish safe
communication. One such methodology is steganography [1].
The steganography is used for data transfer over multi-media transfers
such as image, video, audio and so on [2]. Thus, steganography means
“hidden-data”. This is derived from Greek word “steganographia”.
This word integrates the two words “steganos” and “graphia”. This
reveals that this particular methodology has been used from ancient
period. Through this technique, the data is sent from sender to the
receiver without any malicious activity and third party interruption.
Additionally, the data is trustworthy and consistent during the transfer
by the use of this data hiding methodology. Presently, various issues
has been occurring with the progressive steganography technologies.
Additionally, this study [3] proposed a RDH (reversible Data Hiding)
strategy for VQ (Vector Quantization) compressed images. This study
reviewed few IT (Information Theory) concepts to outline an effective
IM (Index Mapping) scheme from the embedding view-point. The
empirical outcomes reveal that the recommended technique performs
better than the traditional methods in accordance with the
compression embedding capacity and efficiency.
Steganography consists of four modules. They are listed below.
CO (Cover Object) – Data hiding is performed in this CO.
SD (Secret Data) – Within the CO, the hidden-data is
positioned.
SO (Stego Object) – state of CO after the data is hidden inside.
SK (Stego Key) – Hide function is used for the hidden data
within the CO.
Steganography is categorized into several kinds on the basis of the
medium utilized as CO. For example, when an original image is used
as a CI (Cover Image), then it is termed as image steganography.
Likewise, there are various types of steganography such as video
steganography, sound steganography and text steganography. In this
study [4], medical-images have been utilized as CO. Two main
groups have been observed in the image steganography. The spatial
and frequency domain techniques have been taken as the two main
groups [5-7]. Various steganography methodologies takes both the
domains into account. For instance, this research introduced an AIO
(Artificial Immune Optimization) and image segmentation. This
technique determines the efficient template to embed in a rapid way.
Hence, there exists no requirement to examine the entire image to find
a particular template for embedding. Moreover, DES (Data
Encryption Standard) has been introduced by IBM and later adopted
by US as standard. It completes the encryption process in sixteen
rounds. Yet, brute-force attack can break the DES. Here the
communication is made secure by embedding the secret data with the
use of LSB (Least Significant Bit) methodology in the cover medium.
The time for computation must also be minimized. Various data
hiding methodologies exists. But, the hardware implementation is
complicated. data hiding of images among all the traditional
methodologies [10]. Hence, the present study introduces novel
techniques for encryption and decryption to accomplish image
steganography. The study recommended a novel Least Significant
Bit-embedded Advanced to achieve image steganography through a
series of steps. The below figure.1. Shows the fundamental
steganography architecture.
Figure.1. Fundamental steganography architecture
In the above figure.1, the cover image, secret message and key is used
for embedding the data to attain the stego image. This is done is the
encryption phase. In contrast, the secret message is retrieved by using
the key in the decryption phase.
EXISTING SYSTEM
LSB embedding position, and encrypt the message which control
embedded position, so the hidden information cannot be extracted
without the corresponding private key.
In order to prevent the forgery of the hidden information, A text
segmentation method is performed which attempts to extract the text.
The proposed pre-processing method improves crop image performance.
RC4 algorithm using Encryption key Generation
DISADVANTAGE
High Encryption and Decryption Time.
The key Generation is poor.
It doesn’t hidden data is extracted by the receiver through the reverse
process.
It is doesn’t validate its performance efficiency.
PROPOSED SYSTEM
In proposed several techniques to accomplish image steganography
Initially, the image is taken as input and pre-processing is performed by
using the Pixel Repetition Method.
In the pre-processing technique, various unwilling distortions are
suppressed and the significant image features are used for further
processing.
Then, recommended AES cryptosystem is used for data encryption. This
process helps in achieving communication security.
Proposed new LSB embedding is utilized to hide the secret data inside an
image.
Finally, the hidden data is extracted by the receiver through the reverse
process of the A* Algorithm proposed system. The proposed system in
analyzed to validate its performance efficiency.
ADVANTAGE:
Low Encryption and Decryption Time.
It will Key Generation easy for AES algorithm.
It hidden data is extracted by the receiver through the reverse process
using A* algorithm
It is based on analyzed to validate its performance efficiency.
SYSTEM ARCHITECTURE
Hardware requirement
PC Desktop Pc Speaker MIC
Software requirement
Python spyder Microsoft speech SDK
Working
Input Image Pixel Repetition AES Cryptosystem
Method
Extract the Hidden
Modules
Input Image AES LSB Embedding
Hidden Data Stego Image Decryption
FLOW DIAGRAM
Input Image
Preprocessing
Encryption
AES Cryptosystem
Decryption
LSB Embedding
Performance Analysis
USE CASE DIAGRAM
Python script
Input Image
AES Cryptosystem
User
LSB Embedding
Performance Analysis
SEQUENCE DIAGRAM
Input Image Text
Start Reterival
Python Script Encryption LSB
Performance Decryption
Analysis
TESTING OF PRODUCT
Testing of Product
System testing is the stage of implementation, which aimed at ensuring
that system works accurately and efficiently before the live operation
commence. Testing is the 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 error. A successful test is one that answers a yet undiscovered error.
Testing is vital to the success of the system. System testing makes a
logical assumption that if all parts of the system are correct, the goal will be
successfully achieved. The candidate system is subject to variety of tests-on-
line response, Volume Street, recovery and security and usability test. A series
of tests are performed before the system is ready for the user acceptance
testing. Any engineered product can be tested in one of the following ways.
Knowing the specified function that a product has been designed to from, test
can be conducted to demonstrate each function is fully operational. Knowing
the internal working of a product, tests can be conducted to ensure that “al
gears mesh”, that is the internal operation of the product performs according to
the specification and all internal components have been adequately exercised.
UNIT TESTING
Unit testing is the testing of each module and the integration of the overall
system is done. Unit testing becomes verification efforts on the smallest unit of
software design in the module. This is also known as ‘module testing’. The
modules of the system are tested separately. This testing is carried out during
the programming itself. In this testing step, each model is found to be working
satisfactorily as regard to the expected output from the module. There are some
validation checks for the fields. For example, the validation check is done for
verifying the data given by the user where both format and validity
INTEGRATION TESTING
Data can be lost across an interface, one module can have an adverse
effect on the other sub function, when combined, may not produce the desired
major function. Integrated testing is systematic testing that can be done with
sample data. The need for the integrated test is to find the overall system
performance. There are two types of integration testing. They are:
i) Top-down integration testing.
ii) Bottom-up integration testing.
WHITE BOX TESTING
White Box testing is a test case design method that uses the control
structure of the procedural design to drive cases. Using the white box testing
methods, we derived test cases that guarantee that all independent paths within
a module have been exercised at least once.
BLACK BOX TESTING
Black box testing is done to find incorrect or missing function
Interface error
Errors in external database access
Performance errors
Initialization and termination errors
In ‘functional testing’, is performed to validate an application conforms to its
specifications of correctly performs all its required functions. So this testing is
also called ‘black box testing’. It tests the external behaviour of the system.
Herethe engineered product can be tested knowing the specified function that a
product has been designed to perform, tests can be conducted to demonstrate
that each function is fully operational.
VALIDATION TESTING
After the culmination of black box testing, software is completed
assembly as a package, interfacing errors have been uncovered and corrected
and final series of software validation tests begin validation testing can be
defined as many, but a single definition is that validation succeeds when the
software functions in a manner that can be reasonably expected by the
customer.
USER ACCEPTANCE TESTING
User acceptance of the system is the key factor for the success of the
system. The system under consideration is tested for user acceptance by
constantly keeping in touch with prospective system at the time of developing
changes whenever required.
OUTPUT TESTING
After performing the validation testing, the next step is output asking the
user about the format required testing of the proposed system, since no system
could be useful if it does not produce the required output in the specific
format. The output displayed or generated by the system under consideration.
Here the output format is considered in two ways. One is screen and the other
is printed format. The output format on the screen is found to be correct as the
format was designed in the system phase according to the user needs. For the
hard copy also output comes out as the specified requirements by the user.
Hence the output testing does not result in any connection in the system.
System Implementation
Implementation of software refers to the final installation of the
package in its real environment, to the satisfaction of the intended users and
the operation of the system. The people are not sure that the software is meant
to make their job easier.
The active user must be aware of the benefits of using the system
Their confidence in the software built up
Proper guidance is impaired to the user so that he is comfortable in using
the application
Before going ahead and viewing the system, the user must know that for
viewing the result, the server program should be running in the server. If the
server object is not running on the server, the actual processes will not take
place.
User Training
To achieve the objectives and benefits expected from the proposed
system it is essential for the people who will be involved to be confident of
their role in the new system. As system becomes more complex, the need for
education and training is more and more important. Education is
complementary to training. It brings life to formal training by explaining the
background to the resources for them. Education involves creating the right
atmosphere and motivating user staff. Education information can make training
more interesting and more understandable.
System Implementation
Implementation of software refers to the final installation of the
package in its real environment, to the satisfaction of the intended users and
the operation of the system. The people are not sure that the software is meant
to make their job easier.
The active user must be aware of the benefits of using the system
Their confidence in the software built up
Proper guidance is impaired to the user so that he is comfortable in using
the application
Before going ahead and viewing the system, the user must know that for
viewing the result, the server program should be running in the server. If the
server object is not running on the server, the actual processes will not take
place.
User Training
To achieve the objectives and benefits expected from the proposed
system it is essential for the people who will be involved to be confident of
their role in the new system. As system becomes more complex, the need for
education and training is more and more important. Education is
complementary to training. It brings life to formal training by explaining the
background to the resources for them. Education involves creating the right
atmosphere and motivating user staff. Education information can make training
more interesting and more understandable. Changes. Software maintenance is
of course, far more than “finding mistakes”.
Corrective Maintenance
The first maintenance activity occurs because it is unreasonable to
assume that software testing will uncover all latent errors in a large software
system. During the use of any large program, errors will occur and be
reported to the developer. The process that includes the diagnosis and
correction of one or more errors is called Corrective Maintenance.
Adaptive Maintenance
The second activity that contributes to a definition of maintenance occurs
because of the rapid change that is encountered in every aspect of computing.
Therefore Adaptive maintenance termed as an activity that modifies software
properly with a changing environment is both necessary & common place.
Perceptive Maintenance
The third activity that may be applied to a definition of maintenance
occurs when a software package is successful. As the software is used,
recommendations for new capabilities, modifications to existing functions, and
general enhancement are received from users. To satisfy requests in this
category, Perceptive maintenance is performed. This activity accounts for the
majority of all efforts expended on software maintenance.
Preventive Maintenance
The fourth maintenance activity occurs when software is changed to
improve future maintainability or reliability, or to provide a better basis for
future enhancements. Often called preventive maintenance, this activity is
characterized by reverse engineering and re-engineering techniques.
Types of Software Testing
Ad-hoc testing
This type of software testing is very informal and unstructured and can be
performed by any stakeholder with no reference to any test case or test design
documents. The person performing Ad-hoc testing has a good understanding of
the domain and workflows of the application to try to find defects and break the
software. Ad-hoc testing is intended to find defects that were not found by
existing test cases.
Acceptance Testing
Acceptance testing is a formal type of software testing that is performed
by end user when the features have been delivered by developers. The aim of
this testing is to check if the software confirms to their business needs and to the
requirements provided earlier. Acceptance tests are normally documented at the
beginning of the sprint (in agile) and is a means for testers and developers to
work towards a common understanding and shared business domain knowledge.
Accessibility Testing
In accessibility testing, the aim of the testing is to determine if the
contents of the website can be easily accessed by disable people. Various
checks such as colour and contrast (for colour blind people), font size for
visually impaired, clear and concise text that is easy to read and understand.
Agile Testing
Agile Testing is a type of software testing that accommodates agile software
development approach and practices. In an Agile developmentenvironment,
testing is an integral part of software development and is done along with
coding. Agile testing allows incremental and iterative coding and testing.
API Testing
API testing is a type of testing that is similar to unit testing. Each of the
Software APIs are tested as per API specification. API testing is mostly done by
testing team unless APIs to be tested or complex and needs extensive coding.
API testing requires understanding both API functionality and possessing good
coding skills.
Automated testing
This is a testing approach that makes use of testing tools and/or
programming to run the test cases using software or custom developed test
utilities. Most of the automated tools provided capture and playback facility,
however there are tools that require writing extensive scripting or programming
to automate test cases.
All Pairs testing
Also known as Pair wise testing, is a black box testing approach and a
testing method where in for each input is tested in pairs of inputs, which helps
to test software works as expected with all possible input combinations.
Beta Testing
This is a formal type of software testing that is carried out by end
customers before releasing or handing over software to end users. Successful
completion of Beta testing means customer acceptance of the software.
Black Box testing
Black box testing is a software testing method where in testers are not required
to know coding or internal structure of the software. Black box testing method
relies on testing software with various inputs and validating results against
expected output.
Backward Compatibility Testing
Type of software testing performed to check newer version of the
software can work successfully installed over previous version of the software
and newer version of the software works as fine with table structure, data
structures, files that were created by previous version of the software.
Boundary Value Testing (BVT)
Boundary Value Testing is a testing technique that is based on concept
“error aggregates at boundaries”. In this testing technique, testing is done
extensively to check for defects at boundary conditions. If a field accepts value
1 to 100 then testing is done for values 0, 1, 2, 99, 100 and 101.
Big Bang Integration testing
This is one of the integration testing approaches, in Big Bang integration
testing all or all most all of the modules are developed and then coupled
together.
Bottom up Integration testing
Bottom up integration testing is an integration testing approach where in
testing starts with smaller pieces or sub systems of the software till all the way
up covering entire software system. Bottom up integration testing begins with
smaller portion of the software and eventually scale up in terms of size,
complexity and completeness.
Branch Testing
Is a white box testing method for designing test cases to test code for
every branching condition? Branch testing method is applied during unit testing.
Browser compatibility Testing
It is one of the sub types of testing of compatibility testing performed by
testing team. Browser compatibility testing is performed for web applications
with combination of different browsers and operating systems.
Compatibility testing
Compatibility testing is one of the test types performed by testing team.
Compatibility testing checks if the software can be run on different hardware,
operating system, bandwidth, databases, web servers, application servers,
hardware peripherals, emulators, different configuration, processor, different
browsers and different versions of the browsers etc.
Component Testing
This type of software testing is performed by developers. Component
testing is carried out after completing unit testing. Component testing involves
testing a group of units as code together as a whole rather than testing individual
functions, methods.
Condition Coverage Testing
Condition coverage testing is a testing technique used during unit testing,
where in developer tests for all the condition statements like if, if else, case etc.,
in the code being unit tested.
Dynamic Testing
Testing can be performed as Static Testing and Dynamic testing,
Dynamic testing is a testing approach where-in testing can be done only by
executing code or software are classified as Dynamic Testing. Unit testing,
Functional testing, regression testing, performance testing etc.
Decision Coverage Testing
Is a testing technique that is used in Unit testing, objective of decision
coverage testing is to expertise and validate each and every decisions made in
the code e.g. if, if else, case statements.
End-to-end Testing
End to end testing is performed by testing team, focus of end to end
testing is to test end to end flows e.g. right from order creation till reporting or
order creation till item return etc. and checking. End to end testing is usually
focused mimicking real life scenarios and usage. End to end testing involves
testing information flow across applications.
Exploratory Testing
Exploratory testing is an informal type of testing conducted to learn the
software at the same time looking for errors or application behaviour that seems
non-obvious. Exploratory testing is usually done by testers but can be done by
other stake holders as well like Business Analysts, developers, end users etc.
who are interested in learning functions of the software and at the same time
looking for errors or behaviour is seems non-obvious.
Equivalence Partitioning
Equivalence partitioning is also known as Equivalence Class Partitioning
is a software testing technique and not a type of testing by itself. Equivalence
partitioning technique is used in black box and grey box testing types.
Equivalence partitioning classifies test data into Equivalence classes as positive
Equivalence classes and negative Equivalence classes, such classification
ensures both positive and negative conditions are tested.
Functional Testing
Functional testing is a formal type of testing performed by testers.
Functional testing focuses on testing software against design document, Use
cases and requirements document. Functional testing is a black box type of
testing and does not require internal working of the software unlike white box
testing.
Fuzz Testing
Fuzz testing or fuzzing is a software testing technique that involves
testing with unexpected or random inputs. Software is monitored for failures or
error messages that are presented due to the input errors.
GUI (Graphical User Interface) testing
This type of software testing is aimed at testing the software GUI
(Graphical User Interface) of the software meets the requirements as mentioned
in the GUI mock-ups and Detailed designed documents. For e.g. checking the
length and capacity of the input fields provided on the form, type of input field
provided, e.g. some of the form fields can be displayed as dropdown box or a
set of radio buttons. So GUI testing ensures GUI elements of the software are as
per approved GUI mock-ups, detailed design documents and functional
requirements. Most of the functional test automation tools work on GUI capture
and playback capabilities. This makes script recording faster at the same time
increases the effort on script maintenance.
Glass box Testing
Glass box testing is another name for White box testing. Glass box testing
is a testing method that involves testing individual statements, functions etc.,
Unit testing is one of the Glass box testing methods.
Gorilla Testing
This type of software testing is done by software testing team, has a scary
name though? Objective of Gorilla Testing is to exercise one or few
functionality thoroughly or exhaustively by having multiple people test the
same functionality.
Happy Path Testing
Also known as Golden path testing, this type of testing focuses on
selective execution of tests that do not exercise the software for negative or
error conditions.
Integration Testing
Integration testing also known as met in short, in one of the important
types of software testing. Once the individual units or components are tested by
developers as working then testing team will run tests that will test the
connectivity among these units/component or multiple units/components. There
are different approaches for Integration testing namely, Top-down integration
testing, Bottom-up integration testing and a combination of these two known as
Sand witch testing.
Interface Testing
Software provides support for one or more interfaces like “Graphical user
interface”, “Command Line Interface” or “Application programming interface”
to interact with its users or other software. Interfaces serves as medium for
software to accept input from user and provide result. Approach for interface
testing depends on the type of the interface being testing like GUI or API or
CLI.
Internationalization Testing
Internationalization testing is a type of testing that is performed by
software testing team to check the extent to which software can support
Internationalization i.e., usage of different languages, different character sets,
double byte characters etc., For e.g.: Gmail, is a web application that is used by
people all over work with different languages, single by or multi byte character
sets.
Keyword-driven Testing
Keyword driver testing is more of an automated software testing
approach than a type of testing itself. Keyword driven testing is known as action
driven testing or table driven testing.
Load Testing
Load testing is a type of non-functional testing; load testing is done to
check the behaviour of the software under normal and over peak load
conditions. Load testing is usually performed using automated testing tools.
Load testing intends to find bottlenecks or issues that prevent software from
performing as intended at its peak workloads.
Localization Testing
Localization testing a type of software testing performed by software
testers, in this type of testing, software is expected to adapt to a particular
locale, it should support a particular locale/language in terms of display,
accepting input in that particular locale, display, font, date time, currency etc.,
related to a particular locale. For e.g. many web applications allow choice of
locale like English, French, German or Japanese. So once locale is defined or
set in the configuration of software, software is expected to work as expected
with a set language/locale.
Negative Testing
This type of software testing approach, which calls out the “attitude to
break”, these are functional and non-functional tests that are intended to break
the software by entering incorrect data like incorrect date, time or string or
upload binary file when text files supposed to be upload or enter huge text string
for input fields etc. It is also a positive test for an error condition.
Non-functional testing
Software are built to fulfil functional and non-functional requirements,
non-functional requirements like performance, usability, localization etc., There
are many types of testing like compatibility testing, compliance testing,
localization testing, usability testing, volume testing etc., that are carried out for
checking non-functional requirements.
Pair Testing
Itis a software testing technique that can be done by software testers,
developers or Business analysts (BA). As the name suggests, two people are
paired together, one to test and other to monitor and record test results. Pair
testing can also be performed in combination of tester-developer, tester-business
analyst or developer-business analyst combination. Combining testers and
developers in pair testing helps to detect defects faster, identify root cause, fix
and test the fix.
Performance Testing
Itis a type of software testing and part of performance engineering that is
performed to check some of the quality attributes of software like Stability,
reliability, availability. Performance testing is carried out by performance
engineering team. Unlike Functional testing, Performance testing is done to
check non-functional requirements. Performance testing checks how well
software works in anticipated and peak workloads. There are different
variations or sub types of performance like load testing, stress testing, volume
testing, soak testing and configuration testing.
Penetration Testing
Itis a type of security testing, also known as pen test in short. Penetration
testing is done to tests how secure software and its environments (Hardware,
Operating system and network) are when subject to attack by an external or
internal intruder. Intruder can be a human/hacker or malicious programs. Pen
test uses methods to forcibly intrude (by brute force attack) or by using a
weakness (vulnerability) to gain access to a software or data or hardware with
an intent to expose ways to steal, manipulate or corrupt data, software files or
configuration. Penetration Testing is a way of ethical hacking, an experienced
Penetration tester will use the same methods and tools that a hacker would use
but the intention of Penetration tester is to identify vulnerability and get them
fixed before a real hacker or malicious program exploits it.
Regression Testing
Itis a type of software testing that is carried out by software testers as
functional regression tests and developers as Unit regression tests. Objective of
regression tests are to find defects that got introduced to defect fix (is) or
introduction of new feature(s). Regression tests are ideal candidate for
automation.
Retesting
Itis a type of retesting that is carried out by software testers as a part of
defect fix verification. For e.g. a tester is verifying a defect fix and let us say
that there are 3 test cases failed due to this defect. Once tester verifies defect fix
as resolved, test will retest or test the same functionality again by executing the
test cases that were failed earlier.
Risk based Testing
It is a type of software testing and a different approach towards testing a
software. In Risk based testing, requirements and functionality of software to be
tested are prioritized as Critical, High, Medium and low. In this approach, all
critical and high priority tests are tested and them followed by Medium. Low
priority or low risk functionality are tested at the end or may not base on the
time available for testing.
Smoke testing
Itis a type of testing that is carried out by software testers to check if the
new build provided by development team is stable enough i.e., major
functionality is working as expected in order to carry out further or detailed
testing. Smoke testing is intended to find “show stopper” defects that can
prevent testers from testing the application in detail. Smoke testing carried out
for a build is also known as build verification test.
Security Testing
It is a type of software testing carried out by specialized team of software
testers. Objective of security testing is to secure the software is to external or
internal threats from humans and malicious programs. Security testing basically
checks, how good is software’s authorization mechanism, how strong is
authentication, how software maintains confidentiality of the data, how does the
software maintain integrity of the data, what is the availability of the software in
an event of an attack on the software by hackers and malicious programs is for
Security testing requires good knowledge of application, technology,
networking, security testing tools. With increasing number of web applications
necessarily of security testing has increased to a greater extent.
Sanity Testing
It is a type of testing that is carried out mostly by testers and in some
projects by developers as well. Sanity testing is a quick evaluation of the
software, environment, network, external systems are up & running, software
environment as a whole is stable enough to proceed with extensive testing.
Sanity tests are narrow and most of the time sanity tests are not documented.
Scalability Testing
Itis a non-functional test intended to test one of the software quality
attributes i.e. “Scalability”. Scalability test is not focused on just one or few
functionality of the software instead performance of software as a whole.
Scalability testing is usually done by performance engineering team. Objective
of scalability testing is to test the ability of the software to scale up with
increased users, increased transactions, increase in database size etc., It is not
necessary that software’s performance increases with increase in hardware
configuration, scalability tests helps to find out how much more workload the
software can support with expanding user base, transactions, data storage etc.,
Stability Testing
Itis a non-functional test intended to test one of the software quality
attributes i.e. “Stability”. Stability testing focuses on testing how stable software
is when it is subject to loads at acceptable levels, peak loads, loads generated in
spikes, with more volumes of data to be processed. Scalability testing will
involve performing different types of performance tests like load testing, stress
testing, spike testing, soak testing, spike testing etc…
Static Testing is a form of testing where in approaches like reviews,
walkthroughs are employed to evaluate the correctness of the deliverable. In
static testing software code is not executed instead it is reviewed for syntax,
commenting, naming convention, size of the functions and methods etc. Static
testing usually has check lists against which deliverables are evaluated. Static
testing can be applied for requirements, designs, and test cases by using
approaches like reviews or walkthroughs.
Stress Testing is a type of performance testing, in which software is
subjected to peak loads and even to a break point to observe how the software
would behave at breakpoint. Stress testing also tests the behaviour of the
software with insufficient resources like CPU, Memory, Network bandwidth,
Disk space etc. Stress testing enables to check some of the quality attributes like
robustness and reliability.
MODULES
Input Image
Pre-processing
AES Cryptosystem
Extract the Hidden Data
Performance Analysis
Input Data
The data selection is the process of selecting and loading the input
images from dataset.
The dataset is used to Secret text from the input text.
To read the image with the help of imread() function.
Pixel Repetition Method
The image taken as input is scaled-up by the use of PRM (Pixel
Repetition Method). The (X*Y) input image is scaled-up by converting
the individual pivot or seed pixel into a block (2*2) by reiterating the
pixel. Thus, a cover is generated with twice the input image dimensions
given by (2X*2Y). The C (2X*2Y) is the CI (Cover Image) acquired
from the input image.
A (2*2) original image block is considered. Then, the scaled-up image is
retrieved as shown in the below figure.3.
Every pivot or seed pixel is reiterated to attain 2*2 blocks. Thus, it is
termed as PRM (Pixel Repetition Method). The use of PRM to perform
pre-processing minimizes the computational-complexity.
AES Cryptosystem
The AES (Advanced Encryption Standard) is a cryptographic-
algorithm utilized for textual data encryption in an
unconceivable way. It is also called as symmetric-key algorithm.
This indicates that similar key is utilized for encryption as well
as for decryption. It also utilizes block cipher that are of varied
sizes. In recent days, AES is supported in software and hardware
and hence it is a robust security algorithm. In addition, AES has
various merits. They are listed below:
The built in key length flexibility permits an extent of future
proofing in contrast to the advancement in the capability for
performing EK (Exhaustive Key) searches.
This algorithm is robust against attacks as it utilizes high key
size length of 128, 192 as well as 256 bits for the encryption
process. Till now, there exists no real world cryptanalytic-
attacks are discovered when using AES.
LSB EMBEDDING
In this technique, the LSB (Least Significant Bits) of few or all
the bytes within an image is substituted with a bits
corresponding to the secret message. This method can be
employed to various types and formats of data. Thus, this
technique is the significant steganography method now-a-days.
This technique is susceptible to steganalysis. Hence, the raw
data is encrypted prior to embedding process to achieve more
security. This approach has turned out to be the basis of various
methods that hide the messages within the MCD (Multimedia
Carrier Data). This can also be employed in specific data
domains. For instance, a hidden data is embedded into the RGB
bitmap data colour values or into the JPEG image frequency
coefficients. The fundamental steganography method is LSB.
Here data is presented into the pixels of the cover image
directly. This methodology has efficient recognizable value.
Thus, normal people are unable to identify the alteration in an
image. By modifying the LSB bit-plane, the insertion process is
undertaken for individual pixel. This methodology has various
merits. They are listed below.
It is simple to comprehend.
It provides easy implementation.
It affords stego images which consists of hidden data, yet seems
to have more visual fidelity.
Least Significant Bit Steganography or LSB Steganography is
the method of hiding secret data inside any form of digital
media, here, Image. Images are made up of pixels which usually
refer to the color of that particular pixel. In a grayscale image,
these pixel values range from 0-255, 0 being black and 255
being white. In LSB Image Steganography, changing the last bit
value of a pixel, won’t have much of a visible change in the
color. A cover image is used to embed the data in. The otput of
the process is called a Stego Image
To embed a message in an image using LSB Steganography the
following steps are involved: The Cover Image is converted to
greyscale. The message is converted into binary. Each pixel of
the image is traversed through, and for each pixel, initiate a
temporary variable, temp.
If the LSB of the Pixel Value and the message bit are the same,
set temp as 0 and set temp as 1 otherwise. Update the output
image pixel as image pixel value added with the temporary
variable value, temp. This is done until the message is
completely embedded. Once the whole message is embedded,
the output image us written to the disk.
Extract the Hidden Data
In Cover Image hidden text Retrieval
It affords stego images which consists of hidden data, yet
seems to have more visual fidelity.
A*Algorithm
Informally speaking, A* Search algorithms, unlike other
traversal techniques, it has “brains”. What it means is that it is
really a smart algorithm which separates it from the other
conventional algorithms.
This fact is cleared in detail in below sections.
And it is also worth mentioning that many games and web-based
maps use this algorithm to find the shortest path very efficiently
(approximation).
LITERATURESURVEY
Title :Image Steganography with Artificial Immune System
Year : 2017
Author :Saleh Delbarpour Ahmadi, Hedieh Sajedi
Methodology:
Selects a block of the host image and then employs AIS for finding
the best template for embedding message bits in the host imagepixels.
Consequently, our method finds the best template for embedding
rapidly and there is no need to investigate whole the image for finding
a template of embedding. Algorithm has more efficiency in term of
embedding capacity and the time of the embedding process compared
to other methods
Advantage:
It has more efficiency in term of embedding capacity
Disadvantage:
It requires High Cost
It is Low Encryption and Decryption Time
LITERATURESURVEY
Title :Hybrid method using 3-DES, DWT and LSB for secure image
steganography algorithm
Year :2018
Author :De Rosal Ignatius Moses Setiadi, Eko Hari Rachmawanto
Methodology:
Steganography domains coupled with Cryptography which aimed
to make confidential information more secure and inaccessible to
unauthorized persons. Messages are encrypted using the 3-DES side
of the cover image is decomposed into using LSB method. The last
step, done Inverse DWT (IDWT) to get the stego image.
Advantage:
Image is decomposed into using LSB is Fastly Hidden
Disadvantage:
Encryption and Decryption Time is High.
LITERATURESURVEY
Title:“Achieving Data Integrity and Confidentiality Using Image
Steganography and Hashing Techniques”
Year:2018
Author:Ahmed Hambouz, Yousef Shaheen, Abdelrahman Manna,
Dr. Mustafa Al-Fayoumi, and Dr. Sara Tedmori
Methodology:
This research paper introduced a new steganography technique that
achieves both data confidentiality and integrity. Data confidentiality is
achieved by embedding the data bits in a secret manner into stego
image. Integrity is achieved using SHA 256 hashing algorithm to hash
the decoding and encoding variables..
Advantage:
SHA 256 hashing algorithm to hash the decoding and encoding .
Disadvantage:
DrawbackOf Time and Cost
LITERATURESURVEY
Title:“A new image steganography method with optimum pixel
similarity for data hiding in medical images”.
Year:2020
Author:Songul Karakus, Engin Avci
Methodology:
Data hiding capacity and image quality of the cover object are
important factors in image steganography. Because the deterioration
of image quality can be noticed by the human vision system, it attracts
the attention of attackers. Therefore, the purpose of this study is
increasing the amount of data to be hidden and stego image is to
ensure high image quality. .
Advantage:
It is based on High Resolution Image
Disadvantage:
Drawback Of Time and Cost
Performance Analysis is a varying.
SOFTWARE DESCRIPTION
Python
Python is one of those rare languages which can claim to be both simple
and powerful. You will find yourself pleasantly surprised to see how easy it is
to concentrate on the solution to the problem rather than the syntax and
structure of the language you are programming in. The official introduction to
Python is Python is an easy to learn, powerful programming language. It has
efficient high-level data structures and a simple but effective approach to
object-oriented programming. Python's elegant syntax and dynamic typing,
together with its interpreted nature, make it an ideal language for scripting and
rapid application development in many areas on most platforms.I will discuss
most of these features in more detail in the next section.
Features of Python
Simple
Python is a simple and minimalistic language. Reading a good Python
program feels almost like reading English, although very strict English! This
pseudo-code nature of Python is one of its greatest strengths. It allows you to
concentrate on the solution to the problem rather than the language itself.
Easy to Learn
As you will see, Python is extremely easy to get started with. Python has
an extraordinarily simple syntax, as already mentioned.
Free and Open Source
Python is an example of a FLOSS (Free/Libré and Open Source
Software). In simple terms, you can freely distribute copies of this software,
read its source code, make changes to it, and use pieces of it in new free
programs. FLOSS is based on the concept of a community which shares
knowledge. This is one of the reasons why Python is so good - it has been
created and is constantly improved by a community who just want to see a
better Python.
High-level Language
When you write programs in Python, you never need to bother about the
low-level details such as managing the memory used by your program, etc.
Portable
Due to its open-source nature, Python has been ported to (i.e. changed to
make it work on) many platforms. All your Python programs can work on any
of these platforms without requiring any changes at all if you are careful enough
to avoid any system-dependent features.
You can use Python on GNU/Linux, Windows, FreeBSD, Macintosh,
Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, and # -*- coding: utf-8
-*-
z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks,
PlayStation, Sharp Zaurus, Windows CE and PocketPC!
You can even use a platform like Kivyto create games for your computer
and for iPhone, iPad, and Android.
Interpreted
This requires a bit of explanation.
A program written in a compiled language like C or C++ is converted from the
source language i.e. C or C++ into a language that is spoken by your computer
(Binary code i.e. 0s and 1s) using a compiler with various flags and
options. When you run the program, the linker/loader software copies the
program from hard disk to memory and starts running it.
Python, on the other hand, does not need compilation to binary. You just
run the program directly from the source code. Internally, Python converts the
source code into an intermediate form called byte codes and then translates this
into the native language of your computer and then runs it. All this, actually,
makes using Python much easier since you don't have to worry about compiling
the program, making sure that the proper libraries are linked and loaded, etc.
This also makes your Python programs much more portable, since you can just
copy your Python program onto another computer and it just works!
Object Oriented
Python supports procedure-oriented programming as well as object-
oriented programming. In procedure-oriented languages, the program is built
around procedures or functions which are nothing but reusable pieces of
programs. In object-oriented languages, the program is built around objects
which combine data and functionality. Python has a very powerful but
simplistic way of doing OOP, especially when compared to big languages like
C++ or Java.
Extensible
If you need a critical piece of code to run very fast or want to have some
piece of algorithm not to be open, you can code that part of your program in C
or C++ and then use it from your Python program.
Embeddable
You can embed Python within your C/C++ programs to give scripting
capabilities for your program's users.
Extensive Libraries
The Python Standard Library is huge indeed. It can help you do various
things involving regular expressions,documentation generation, unit testing,
threading, databases, web browsers, CGI, FTP, email, XML, XML-RPC,
HTML, WAV files, cryptography, GUI (graphical user interfaces), and other
system-dependent stuff. Remember, all this is always available wherever
Python is installed. This is called the Batteries Included philosophy of Python.
Besides the standard library, there are various other high-quality libraries
which you can find at the Python Package Index.
FEASIBILITY STUDY
The feasibility study is carried out to test whether the proposed system is
worth being implemented. The proposed system will be selected if it is best
enough in meeting the performance requirements.
The feasibility carried out mainly in three sections namely.
• Economic Feasibility
• Technical Feasibility
• Behavioural Feasibility
Economic Feasibility
Economic analysis is the most frequently used method for evaluating
effectiveness of the proposed system. More commonly known as cost benefit
analysis. This procedure determines the benefits and saving that are expected
from the system of the proposed system. The hardware in system department if
sufficient for system development.
Technical Feasibility
This study centre around the system’s department hardware, software and
to what extend it can support the proposed system department is having the
required hardware and software there is no question of increasing the cost of
implementing the proposed system. The criteria, the proposed system is
technically feasible and the proposed system can be developed with the
existing facility.
Behavioural Feasibility
People are inherently resistant to change and need sufficient amount of
training, which would result in lot of expenditure for the organization. The
proposed system can generate reports with day-to-day information immediately
at the user’s request, instead of getting a report, which doesn’t contain much
detail.
SYSTEM REQUIREMENTS
Software Requirements
O/S : Windows 7.
Language : Python
Front End : Anaconda Navigator - Spyder
Hardware Requirements
System : Pentium IV 2.4 GHz
Hard Disk : 200 GB
Mouse : Logitech.
Keyboard : 110 keys enhanced
Ram : 4GB
CONCLUSION
In this paper, Image Encryption and Decryption Process.
Image is taken as input and pre-processing is performed by
using the Pixel Repetition Method.
Various techniques are used to achieve image steganography
through encryption and decryption. Pixel Repetition Method is
used to perform pre-processing.
Later, proposed AES system is used to encrypt the data and LSB
embedding is utilized for embedding the data thereby
performing image enhancement through the so as to extract the
hidden data.
To perform on analyzed to validate its performance efficiency
FUTURE WORK
Various techniques are used to achieve image steganography through
encryption and decryption. Pixel Repetition Method is used to
perform pre-processing. Later, proposed AES system is used to
encrypt the data and LSB embedding is utilized for embedding the
data thereby performing image enhancement and pixel adjustment
through the proposed novel OPAP based CNN so as to extract the
hidden data.Many Algorithm using Society wise uses on Application.
REFERENCES
[1] S. Karakus and E. Avci, "A new image steganography method
with optimum pixel similarity for data hiding in medical images,"
Medical Hypotheses, vol. 139, pp. 109691-109691, 2020.
[2] C. Y. Roy and M. K. Goel, "Visual Cryptographic
Steganography with Data Integrity," Lovely Professional University,
2017.
[3] P. Rahmani and G. Dastghaibyfard, "An efficient histogram-
based index mapping mechanism for reversible data hiding in VQ-
compressed images," Information Sciences, vol. 435, pp. 224-239,
2018.
[4] M. Hussain, A. W. A. Wahab, Y. I. B. Idris, A. T. Ho, and K.-H.
Jung, "Image steganography in spatial domain: A survey," Signal
Processing: Image Communication, vol. 65, pp. 46-66, 2018.
[5] S. D. Ahmadi and H. Sajedi, "Image steganography with
artificial immune system," in 2017 Artificial Intelligence and
Robotics (IRANOPEN), 2017, pp. 45-50.
[6] S. Karakus and E. Avcı, "A New Image Steganography Method
wıth Optımum Pıxel Sımılarıty for Data Hıdıng ın Medıcal Images,"
Medical Hypotheses, p. 109691, 2020.
[7] A. Miri and K. Faez, "Adaptive image steganography based on
transform domain via genetic algorithm," Optik, vol. 145, pp. 158-
168, 2017.
[8] M. Umair, "Comparison of Symmetric Block Encryption
Algorithms," ResearchGate, 2017.
[9] A. K. Sahu and G. Swain, "A review on LSB substitution and
PVD based image steganography techniques," Indonesian Journal of
Electrical Engineering and Computer Science, vol. 2, pp. 712-719,
2016.
[10] L. Laimeche, A. Meraoumia, and H. Bendjenna, "Enhancing
LSB embedding schemes using chaotic maps systems," Neural
Computing and Applications, pp. 1-19, 2019.
[11] N. A. Loan, S. A. Parah, J. A. Sheikh, J. A. Akhoon, and G. M.
Bhat, "Hiding electronic patient record (epr) in medical images: A
high capacity and computationally efficient technique for e-healthcare
applications," Journal of biomedical informatics, vol. 73, pp. 125-136,
2017.
[12] K. Sakthidasan and N. V. Nagappan, "Noise free image
restoration using hybrid filter with adaptive genetic algorithm,"
Computers & Electrical Engineering, vol. 54, pp. 382-392, 2016.
[13] J. Kim, H. Park, and J.-I. Park, "CNN-based image steganalysis
using additional data embedding," Multimedia Tools and
Applications, vol. 79, pp. 1355-1372, 2020.
[14] S. Nipanikar, V. H. Deepthi, and N. Kulkarni, "A sparse
representation based image steganography using particle swarm
optimization and wavelet transform," Alexandria engineering journal,
vol. 57, pp. 2343-2356, 2018.
[15] A. Miri and K. Faez, "An image steganography method based
on integer wavelet transform," Multimedia Tools and Applications,
vol. 77, pp. 13133-13144, 2018.
[16] M. Kaur and M. Juneja, "A new LSB embedding for 24-bit pixel
using multi-layered bitwise XOR," in 2016 International Conference
on Inventive Computation Technologies (ICICT), 2016, pp. 1-5.
[17] K. Sreehari and R. Bhakthavatchalu, "Implementation of hybrid
cryptosystem using DES and MD5," in 2018 3rd International
Conference on Communication and Electronics Systems (ICCES),
2018, pp. 52-55.
[18] S. A. Parah, J. A. Sheikh, J. A. Akhoon, and N. A. Loan,
"Electronic Health Record hiding in Images for smart city
applications: A computationally efficient and reversible information
hiding technique for secure communication," Future Generation
Computer Systems, vol. 108, pp. 935-949, 2020.
[19] G. Ardiansyah, C. A. Sari, and E. H. Rachmawanto, "Hybrid
method using 3-DES, DWT and LSB for secure image steganography
algorithm," in 2017 2nd International conferences on Information
Technology, Information Systems and Electrical Engineering
(ICITISEE), 2017, pp. 249-254.
[20] D. K. Sarmah and A. J. Kulkarni, "Improved cohort intelligence
—a high capacity, swift and secure approach on JPEG image
steganography," Journal of information security and applications, vol.
45, pp. 90-106, 2019.
[21] A. Hambouz, Y. Shaheen, A. Manna, M. Al-Fayoumi, and S.
Tedmori, "Achieving Data Integrity and Confidentiality Using Image
Steganography and Hashing Techniques," in 2019 2nd International
Conference on new Trends in Computing Sciences (I)