Stegnography
Stegnography
1
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
CERTIFICATE
2
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
INDEX
3
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
PRACTICAL 1
Aim: Project Definition and objective of the specified module and Perform Requirement Engineering
Process.
Definition:
The Steganography Tool for Image Method is a software application designed to hide confidential
information within digital images using steganographic techniques. The tool will allow users to
embed data into selected images and extract hidden data from encoded images without arousing
suspicion.
Objective:
1. Develop a user-friendly steganography tool that enables users to securely embed and extract
data within digital images.
2. Implement a reliable embedding algorithm to efficiently hide data within the image pixels
without compromising the visual quality of the cover image.
3. Design and implement additional features, such as encryption of hidden data and password
protection, to enhance the security of the steganographic process.
4. Implement an extraction algorithm that accurately retrieves hidden data from encoded images
without loss or corruption.
5. Build an intuitive and visually appealing user interface that facilitates easy interaction and
control over the embedding and extraction processes.
6. Test and evaluate the tool's performance, including its efficiency, data capacity, security, and
overall user experience.
Users:
1. General Users: Individuals who want to hide sensitive or confidential information within
digital images for various purposes, such as privacy protection or secure communication.
2. Security Professionals: Researchers, analysts, or forensic experts who require a reliable
steganography tool to analyse and investigate hidden data within digital images.
Key Features:
1. Image Embedding: Enable users to select a cover image and securely embed data into its
pixels using advanced steganographic techniques.
2. Data Extraction: Provide the capability to extract hidden data from encoded images without
loss or corruption, preserving the integrity of the embedded information.
3. Encryption and Password Protection: Implement additional security features to encrypt
hidden data and protect it with a user-defined password.
4. Image Preview: Allow users to preview the cover image and the resulting encoded image to
ensure the visual quality and integrity of the steganographic process.
5. Metadata Preservation: Ensure that important metadata and image properties are preserved
during the embedding and extraction processes.
4
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
6. Robust Algorithm: Implement an efficient and reliable embedding algorithm that maximizes
data capacity while minimizing visual distortion.
7. User-Friendly Interface: Design an intuitive and visually appealing interface that simplifies
the embedding and extraction processes for users of all skill levels.
8. Performance Evaluation: Conduct comprehensive testing and evaluation to assess the tool's
performance, including data capacity, security, and user experience.
5
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
PRACTICAL 2
Aim: Identify Suitable Design and Implementation model from the different software engineering
models.
2. System Design:
Design the architecture of the steganography tool, including the overall structure,
modules, and interfaces.
Define the embedding algorithm and extraction algorithm, considering factors such as
data capacity, security, and image quality.
Determine the additional features, such as encryption and password protection, and their
integration into the tool.
3. Implementation:
Develop the steganography tool according to the defined system design.
Implement the embedding algorithm to hide data within digital images, ensuring efficient
and secure embedding without compromising image quality.
Implement additional features, such as encryption and password protection, to enhance
the security of the hidden data.
Develop the extraction algorithm to accurately retrieve hidden data from encoded images,
ensuring data integrity and maintaining image quality.
4. Testing:
Conduct unit testing to verify the functionality and correctness of each module of the
steganography tool.
Perform integration testing to ensure the seamless interaction and compatibility of
different modules.
Conduct system testing to evaluate the tool's overall performance, including data hiding
accuracy, extraction reliability, and user interface functionality.
Perform security testing to identify and address potential vulnerabilities and ensure the
tool's resilience against attacks.
5. Deployment:
Prepare the steganography tool for deployment, including packaging and documentation.
Create user manuals and guidelines to assist users in understanding and utilizing the tool
effectively.
Install and configure the tool on the intended platform or distribute it to users according
to the deployment plan.
6
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
Provide ongoing maintenance and support for the steganography tool, addressing any
reported issues or bugs.
Update the tool as needed to incorporate new features, enhancements, or security patches
based on user feedback and evolving requirements.
7
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
PRACTICAL 3
Aim: Prepare Software Requirement Specification (SRS) for the selected module.
1. Introduction:
1.1 Purpose- The purpose of this document is to define the requirements for the
development of the Steganography Tool for Image Method. It outlines the functional and
non-functional requirements, system constraints, and user expectations for the tool.
1.2 Scope-The steganography tool aims to provide a user-friendly interface for hiding
confidential data within digital images using the image method. The tool will include
features such as embedding algorithms, extraction algorithms, encryption, password
protection, image preview, metadata preservation, and a robust user interface.
2. Overall Description:
2.2 Operating Environment- The steganography tool will be developed to run on Windows,
macOS, and Linux operating systems. It will require sufficient system resources to
handle image processing and encryption operations.
3. Functional Requirements:
8
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
4. Non-Functional Requirements:
4.1 Performance-
The tool should provide fast and responsive performance during image embedding
and extraction operations.
The embedding and extraction algorithms should be efficient and handle large image
files without significant delays.
4.2 Security-
The tool should ensure the confidentiality and integrity of the hidden data.
Encryption algorithms used should be secure and robust.
Passwords should be securely stored and verified during extraction.
5. Constraints:
The tool should be developed using programming languages and frameworks compatible
with the targeted operating systems.
System resources such as memory and processing power should be considered to ensure
optimal performance.
The tool should comply with legal and ethical standards regarding the use of
steganography techniques.
6. Documentation Requirements:
User manuals and guides explaining the functionalities and usage of the tool should be
provided.
Technical documentation describing the system architecture, algorithms, and
implementation details should be prepared.
9
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
PRACTICAL 4
Aim: Preparing Documentation of software project management planning (SPMP) for the specified
module.
10
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
development.
Create a website and promotional material to raise awareness and facilitate
dissemination.
Create a website and promotional materials to raise awareness and facilitate
dissemination.
11
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
12
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
PRACTICAL 5
AIM: Do cost and Effort Estimation using Software Cost Estimation Model
External Input= 12
External Output= 8
External Query= 6
Internal Logical Files= 10
External interface Files= 4
EI = 12*4=48
EO = 8*5=40
EQ = 6*3=18
ILF = 10*4=40
EIF = 4*4=16
4) Is performance critical?
4
13
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
∑Fi= 5+5+4+4+5+5+4+4+4+4+3+3
=50
PRACTICAL 6
14
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
AIM: Prepare System Analysis and System Design of identified Requirements specification
using structure design as DFD with data dictionary and structure chart for the specific module.
LEVEL 1.1
15
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
LEVEL 1.1.1
LEVEL 1.1.1.1
16
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
LEVEL 1.2
PRACTICAL 7
17
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
AIM: Designing the module using Object Oriented approach including Use case Diagram with
scenarios, Class Diagram and State Diagram, Sequence Diagram and Activity Diagram.
CLASS DIAGRAM
18
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
SEQUENCE DIAGRAM
19
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
ACTIVITY DIAGRAM
PRACTICAL 8
20
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
Coding Standards:
1. Naming Conventions:
Use meaningful and descriptive names for variables, classes, and methods.
Follow camelCase for variable and method names (e.g., embedData, extractedMessage).
2. Comments:
Add comments to explain complex or non-obvious parts of the code.
Use comments to clarify the purpose of methods, classes, and important logic.
4. Error Handling:
Implement robust error handling to manage exceptions gracefully.
5. Modularity:
Break down the code into functions/methods with specific purposes.
Avoid writing all the code in a single block.
6. Code Reusability:
If there are parts of the code that can be reused, consider encapsulating them in functions
or classes.
7. Variable Declarations:
Declare variables in the smallest scope possible.
Initialize variables when they are declared.
8. Input Validation:
Validate user input to ensure it's of the expected format and within valid ranges.
9. File Handling:
Add error handling for file operations (e.g., reading/writing images).
10. Constants:
Use constants for values that do not change during the execution of the program (e.g., file
extensions, encryption keys).
Walkthrough:
1. Embedding Data:
21
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
2. Extracting Data:
The extractData function takes the path of the modified image (imagePath) and returns
the extracted message.
It reads the modified image, processes it, extracts the embedded data, and returns it as a
string.
3. Main Function:
In the main function, an example of how to use the tool is provided:
Embeds the message "This is a secret message." into the image carrier_image.png and
saves the output as output_image.png.
Extracts the message from the modified image and prints it.
4. Error Handling:
The methods contain a try-catch block to handle potential exceptions (e.g., IOException).
PRACTICAL 9
22
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
Encoding Capacity:
Input: Large data exceeding the image's capacity.
Expected Result: Confirm that the tool either truncates the data correctly or handles it
gracefully with a warning.
Password Protection:
Input: Data with password protection enabled.
Expected Result: Ensure that the tool allows for password-protected encoding and that the
encoded image cannot be decoded without the correct password.
Encoding Algorithm Variants:
Input: Different encoding algorithms (e.g., LSB, DCT).
Expected Result: Test the tool with various encoding algorithms to ensure compatibility and
effectiveness.
Password Protection:
Input: An encoded image with password protection.
Expected Result: Verify that the tool prompts for the correct password and successfully
extracts data when the correct password is provided.
23
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
Data Integrity:
Input: Encoded image with data corruption or tampering.
Expected Result: Confirm that the tool can detect tampering or corruption and does not
display or extract corrupted data.
Batch Processing:
Input: Multiple images to encode or decode in a batch.
Expected Result: Ensure that the tool can handle batch processing and maintains accuracy.
User Interface:
Input: Evaluate the tool's user interface for user-friendliness.
Expected Result: Assess the tool's overall usability, including ease of use and clarity of
instructions.
Documentation:
Input: Review the tool's documentation and help resources.
Expected Result: Ensure that the documentation is comprehensive, clear, and helpful for
users.
Error Handling:
Input: Introduce invalid inputs or actions.
Expected Result: Confirm that the tool provides informative error messages and handles
unexpected user actions gracefully.
Cross-Platform Compatibility:
Input: Test the tool on different operating systems (Windows, macOS, Linux).
Expected Result: Ensure that the tool works consistently across various platforms.
Integration Testing:
Input: Integrate the tool into a larger application or system.
Expected Result: Confirm that the tool integrates seamlessly and functions correctly within
the larger system.
24
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
Security Testing:
Input: Attempt to use the tool to hide malicious or dangerous content.
Expected Result: Verify that the tool has security measures in place to prevent the hiding of harmful
information
25
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
PRACTICAL 10
26
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
PRACTICAL 11
Some of the major attributes to identify the level of software quality aspects are:
Some of the major attributes to identify the level of software security aspects are:
Data Abstraction: In data abstraction, the idea is to hide the information about data and how it
is represented in the program. The analogous notion for compound data is called is called data
abstraction. Data abstraction may be a methodology that permits us to isolate how a
compound data object is employed from the small print of how it’s constructed from the more
primitive data objects.
Functional Abstraction: In functional abstraction, details of the algorithms to accomplish the
module are not visible to the user of the function. The users of the module need to know only
the correct calling convention. The user can call a module without necessarily understanding
how it is implemented.
Correctness: Software is correct if completely different needs as laid out in the SRS document
are properly enforced.
Maintainability: A software is reparable, if errors may be simply corrected as and once, they
show up, new functions may be simply added to the merchandise, and therefore the
functionalities of the merchandise may be simply changed, etc.
Reliability: Software is more reliable if it has fewer failures. Since software engineers do not
deliberately plan for their software to fail, reliability depends on the number and type of
mistakes they make. Designers can improve reliability by ensuring the software is easy to
implement and change, by testing it thoroughly, and also by ensuring that if failures occur, the
system can handle them or can recover easily.
27
PIET
SOFTWARE ENGINEERING (203105304) B. Tech. 3rd Year
ERP NO.- 210303126056
Efficiency: The more efficient software is, the less it uses of CPU-time, memory, disk space,
network bandwidth, and other resources. This is important to customers in order to reduce
their costs of running the software, although with today’s powerful computers, CPU time,
memory and disk usage are less of a concern than in years gone by.
Complete: The given specifications should specify the entire behaviour of the module so that
only correct implementations satisfy the specifications. The specifications must provide to the
intended user all the information that he will need to use the program correctly. The
specification must provide to the implementer, all the information about the intended use that
he needs to complete the program.
Unambiguous: The given specifications should be unambiguous. Specifications should have
more than one interpretation.
Understandable: The given specifications should be understandable. Specific language should
be such that specifications can be easily written.
Implementation-independent: It is an important property of specifications. Specifications
should be given in an abstract manner independent of the implementation of the module and
should not specify any method for implementation of the module. The specification should
only give the external behaviour; the interior details of the module should be decided later by
the programme.
28