Vous êtes sur la page 1sur 7

Senior Project: USA-Stegno Software Requirement Specifications Document (1/7)

Software Requirement Specifications Document

USA-Stegano Senior Project

Drafted By:

Wes Lund
Eldon C. Blancher, III
Robert J. Velaski, Jr.
Nicholas E. Myers

Supervision By:
Mr. Jim Allen

Approved By:

Name Title Signature Date


Mr. Jim Allen Team Supervisor
Wes Lund Team Leader
Eldon C. Blancher, III Team Member
Robert J. Velaski, Jr. Team Member
Nicholas E. Myers Team Member
Senior Project: USA-Stegno Software Requirement Specifications Document (2/7)

Table of Contents

1 Introduction
1.1 Background
1.2 Purpose
1.3 Scope
1.4 Definitions, Acronyms, and Abbreviations
1.5 References
1.6 Overview

2 Overall Description
2.1 Product Perspective
2.2 Product Functions
2.3 User Characteristic
2.4 Constraint

3. Specific Requirements
3.1 External interface requirements
3.2 Function Requirements
3.3 Design Constraints
3.4 Software System Attributes

4 Supporting Information
4.1 Appendices
Senior Project: USA-Stegno Software Requirement Specifications Document (3/7)

1. Introduction

This SRS is a blueprint that represents the development life cycle of this product. It will
serve as a guideline for developers who are concerned with the functions performed and
problems this system solves.

1.1 Background

Project Title: USA-Stegano STEGANOGRAPHY SOFTWARE

Brief overview of the subject*:


Steganography includes a vast array of techniques for hiding messages in a variety of
media. Among these methods are invisible inks, microdots, digital signatures, covert
channels and spread-spectrum communications. Today, thanks to modern technology,
steganography is used on text, images, sound, signals, and more.

The advantage of steganography is that it can be used to secretly transmit messages


without the fact of the transmission being discovered. Often, using encryption might identify
the sender or receiver as somebody with something to hide. For example, that picture of
your cat could conceal the plans for your company's latest technical innovation.

However, steganography has a number of disadvantages as well. Unlike encryption, it


generally requires a lot of overhead to hide a relatively few bits of information. However,
there are ways around this. Also, once a steganographic system is discovered, it is rendered
useless. This problem, too, can be overcome if the hidden data depends on some sort of key
for its insertion and extraction.

In fact, it is common practice to encrypt the hidden message before placing it in the cover
message. However, it should be noted that the hidden message does not need to be
encrypted to qualify as steganography. The message itself can be in plain English and still
be a hidden message. However, most steganographers like the extra layer of protection that
encryption provides. If your hidden message is found, then at least make it as protected as
possible.

*©2004 Duncan Sellers

1.2 Purpose

Our Senior Project is to develop a system that “hides” data inside of JPEG-encoded images.
This is known as steganography. This is a proof of concept software project. The intended
users are the authors listed on the coversheet, their mentors, and the Senior Project
instructor.

1.3 Scope

The software product that will be produced is named USA-Stegano. At the core of the
software product are two modules: one that encodes data into a given JPEG file, and one
that decodes this data and produces an output file. There are many applications of this
software. One is the cryptographic nature of transmitting data without casual onlookers
detecting it. Another application is to encode a digital watermark in the file, so tampering
Senior Project: USA-Stegno Software Requirement Specifications Document (4/7)

with the file will become evident. A third possible application of this is to provide a way of
digitally signing the JPEG image, so its authenticity can be guaranteed.

1.4 Definitions, Acronyms, and Abbreviations*

JPEG: Short for Joint Photographic Experts Group, and pronounced jay-peg. JPEG is a lossy
compression technique for color images. Although it can reduce files sizes to about 5% of
their normal size, some detail is lost in the compression.

Function: A defined objective or characteristic action of a system or component. A


software module that performs a specific action, is invoked by the appearance of its
name in an expression, may receive input values and returns a single value.

Interface: A connection between two devices or systems.

Lossy Compression: Refers to data compression techniques in which some amount of


data is lost. Lossy compression technologies attempt to eliminate redundant or unnecessary
information. Most video compression technologies, such as MPEG, use a lossy technique.

Project: The combined resources (people, machines, materials), processes, and


activities that are dedicated to building and delivering a product to a customer.

Requirements: The statement of needs by a user that triggers the development of a


program, system, or project. May be called business functional requirements or
requirement specifications.

Steganography: The art and science of hiding information by embedding messages within
other, seemingly harmless messages. Steganography works by replacing bits of useless or
unused data in regular computer files (such as graphics, sound, text, HTML, or even floppy
disks ) with bits of different, invisible information. This hidden information can be plain text,
cipher text, or even images. Unlike encryption, steganography cannot be detected.
Therefore, it is used when encryption is not permitted. Or, more commonly, steganography
is used to supplement encryption.

GUI: Acronym for graphical user interface. A program interface that takes advantage of
the computer's graphics capabilities to make the program easier to use. Well-designed
graphical user interfaces can free the user from learning complex command languages. On
the other hand, many users find that they work more effectively with a command-driven
interface, especially if they already know the command language.

Encryption: The translation of data into a secret code. Encryption is the most effective
way to achieve data security. To read an encrypted file, you must have access to a secret
key or password that enables you to decrypt it. Unencrypted data is called plain text ;
encrypted data is referred to as cipher text.

*Definitions provided by Webopedia.

1.5 References

Definitions, Acronyms, and Abbreviations. Webopeia. [www.pcwebopedia.com]


The DICT Development Group. [www.dict.org]
JPEG image compression FAQ. [www.faqs.org/faqs/jpeg-faq/part1/preamble.html]
Senior Project: USA-Stegno Software Requirement Specifications Document (5/7)

Software Requirements Specification (SRS) Template.


[irmc.state.nc.us/documents/approvals/reporting/SRSPLAN.doc]
Hiding in Plain Sight: Steganography in Today's Digital Environment.
http://www.cas.mcmaster.ca/~wmfarmer/SE-4C03-02/projects/student_work/kassimjj.html

1.6 Overview

This document is organized following the IEEE Standard 830-1998.


Senior Project: USA-Stegno Software Requirement Specifications Document (6/7)

2 Overall Description

2.1 Product Perspective

There are several existing products which perform a superset of the functions of USA-
Stegano. These products provide steganographic capabilities for not only JPEG images, but
various other media formats including BMP, WAV, and MP3. Our USA-Stegano software will
use these packages as a model, but it will not depend on or directly execute them. As it
stands, our software project will not make direct use of any external libraries, so it will be
totally independent and self-contained.

2.11 Interfaces

The system will have one primary user interface, and will also interface with the operating
system and any storage media, such as a hard drive. The user interface will consist of a
GUI which will provide to the user methods of selecting target image files, and data files to
insert into the target image files. Interfaces to the operating system and associated storage
media will include file input/output functions for both reading and writing the target image
files.

2.12 Operations

There are a few different operations that the user of USA-Stegano can perform. One
operation is selecting a source image file. Another operation is selecting a source data file
to store in the target image file. A third operation selecting an target image file for the
encoding operation. Related to this, there is an operation to initiate the encoding function
of USA-Stegano. There will also be an operation for selecting a target data file, and
associated source image, for the decoding operation. Following this, there will be an
operation for initiating the decode function of the software product.

2.2 Product Functions

There are two primary functions of the USA-Stegano software. One of these is the encode
function. It will take the source data file, an unencoded image file, and target image file
and encode the data into the target image file. The other primary function of the software
is the decode function. It will take an encoded image file and decode the data, storing it in
the target data file.

2.3 Assumptions and Dependencies

This project is assumed to be completed by August 2004. This depends on whether the
group can decipher the mathematics involved in storing information into these image files.
Once the mathematics and particulars of the encode and decode operations have been
solved, the rest of the project should be fairly simple to implement.
Senior Project: USA-Stegno Software Requirement Specifications Document (7/7)

3 Specific Requirements

3.1 Interface Requirements

There are no external interface requirements with any other systems. There are several
user interface requirements, and some operating system interface requirements.

For the encoding operation, the user must be able to select a data source file and image
source JPEG file for input, and a target image filename for output. For the decoding
operation, the user must be able to select an encoded image input file, and a target file
directory for the output data file. All of these will be through standard file dialog windows.
Also, the user must be able to initiate encoding or decoding operations. For all of these
user interface operations, the program must prompt the user before any files are
overwritten.

For the operating system interface, the program must be able to open and verify the file
type of source image files (for both encoding and decoding operations), and it must also be
able to open the source data file. The target output file must also be created or overwritten
for each operation.

3.2 Functional Requirements

There are two main functions that the software must be able to perform. One is the encode
operation, whereby the data from the source data file is inserted into the source image file,
and the output is saved in the target image file. The source image file must be of a valid
JPEG file type, and the source data file must be a valid, existing file of any data type.

The other main function that the software must perform is the decode operation, whereby
the data encoded in the given encoded JPEG image is extracted and saved to the output
directory, using the original name of the data file stored in the encoded image. The
encoded image file must be of a valid JPEG image.

3.3 Design Constraints

One possible constraint on the program is how much data a given source image can
hide without it becoming evident that data is being hidden. Another constraint is one
imposed by the underlying operating system. The files that the program
manipulates cannot be larger than the largest possible file on the file system.

Vous aimerez peut-être aussi