Software Requirements Specification

peanutunderwearΛογισμικό & κατασκευή λογ/κού

7 Νοε 2013 (πριν από 4 χρόνια και 1 μήνα)

68 εμφανίσεις




Software Requirements Specification




Proposal And Reference Implementation Of A
New Symmetric Cryptographic Algorithm

http://amberj.devio.us/projects/crypto/





Master of Computer Applications

S
emester VIII

Session Jan


May, 2011






Under the guidance of Submitted By

Mrs. Yasmin Shaikh









Amber Jain

IC
-
2K7
-
05







International
Institute of Professional Studies

Devi Ahilya Vishwavidyalaya, Indore, M.P.


2011







Table of contents


0. REVISIONS










0



1.

INTRODUCTION









1

1.1.

Product Overview









1

1.2.

Purpose











1

1.3.

Scope











1



2.

FUNCTIONAL REQUIREMENTS







2

2.1.

Introduction








2

2.2.

Inputs and Outputs








2

2.3.

Exception Handling









2

2.4.

Database Requirements








2



3.

NON
-
FUNCTIONA
L REQUIREMENTS






2

3.1.

Performance Requirement








2

3.1.1.

Static Requirements








2

3.1.2.

Dynamic Requirements







2

3.1.3.

Capacity Requirements







2

3.2.

External Interface Requirements







3

3.2.1

User Interfaces








3

3.2.2

Hardware Interfaces








3

3.2.3

Software Interfaces








3

3.2.4

Communication Protocols







3

3.3

Design Constraints









3

3.3.1

Software Design Constraints







3

3.3.2

Hardware Design Constraints







3

3.3.3

User Interface Design Constraints






4

3.3.4

Standards Compliance







4

3.4

Software System Attributes








4

3.4.1

Reliability and Fault Tolerance






4

3.4.2

Availability









4

3.4.3

Security









4

3.4.4

Software Qua
lity Attributes







5

3.4.5

Performance









6



APPENDICES:

Appendix
-
A: References









7

Appendix
-
B: Glossary









7


Revisions




S. No.

Description

Revision Number

Changes

1

Software Requirements Specification

1

Initial SRS
document.







The latest revision of SRS document for this project is available at:

http://amberj.devio.us/projects/crypto/files/

.

































1.

Introducti
on


1.1.

Product Overview

This project titled “
Proposal and reference implementation of a new symmetric
cipher algorithm
” (
http://amberj.devio.us/projects/crypto/
) includes the study of
design guidelines a
nd desired properties of symmetric cryptographic algorithms. This
will be followed by proposal of a new symmetric cipher algorithm (based on my
study) as well as a reference implementation of the proposed algorithm in Python 3
[2] programming language and
test vectors for the proposed algorithm.



1.2.

Purpose:

The cryptographic algorithm, that will be proposed, is intended to be a general
purpose symmetric cipher algorithm which will be
suitable for many different
applications

(for e.g. bulk encryption, random
bit generation, packet encryption etc.).
The algorithm will also be implementable on wide

variety of different platforms

(including microprocessors, microcontrollers, custom VLSI chips etc.). This
document is to outline features of algorithm that will be p
roposed as part of this
project. This document will also describe requirements specification for this project in
detail.


1.3.

Scope

In Scope:

1.

Specification of proposed symmetric cipher algorithm.

2.

Reference implementation of proposed algorithm.

3.

Test vectors


Ou
t of Scope:

1.

Efficient and optimal implementation of proposed algorithm.

2.

Cryptographic application library for proposed algorithm for use by third
party applications.



2.

Functional Requirements


2.1.

Introduction

The proposed symmetric cryptographic algorithm wil
l accept the file to be encrypted
and return encrypted data in output file.


2.2.

Inputs and Outputs

The reference implementation will accept input in the form of a file specified as
command line argument. It will output encrypted data on the console (or option
ally to
an output file with filename supplied to binary executable as a command line
argument).


2.3.

Exception Handling

The preferred action in case of any exception or error in reference implementation
(e.g. unable to open file or permission denied when writi
ng to file) will be to print
appropriate error message and exit program.


2.4.

Database Requirements

None.


3.

Non
-
Functional Requirements


3.1.

Performance Requirement

3.1.1.

Static Requirements

None.


3.1.2.

Dynamic Requirements

None.


3.1.3.

Capacity Requirements

None.


3.2.

External Interfa
ce Requirements


3.2.1.

User Interfaces

The reference implementation will include a Command Line Interface (CLI) for
user to interact with program. Various options will be available as combinations
of command line options and/or arguments.


3.2.2.

Hardware Interfaces

Th
e algorithm will be efficiently implementable in custom (special purpose) VLSI
hardware as well as on general purpose large, medium and small sized processors
(for e.g. microprocessors, microcontrollers and smart cards respectively).


3.2.3.

Software Interfaces

T
he reference implementation will be in Python 3 [2] programming language (and
will execute on any system Python 3 interpreter has been ported to). The
portability of other software implementations will depend on portability of chosen
programming language.


3.2.4.

Communication Protocols

None.


3.3.

Design Constraints


3.3.1.

Software Design Constraints

The reference implementation will conform to
Unix Philosophy

[1].


3.3.2.

Hardware Design Constraints

None. For more details, refer to section [3.2.2. Hardware Interfaces] of the same

document.


3.3.3.

User Interface Design Constraints

None.


3.3.4.

Standards Compliance

The proposed algorithm should conform to as large subset as possible of design
guidelines that will be inferenced as part of study of existing symmetric
cryptographic algorithms in
this project. The inferenced design guidelines will in
effect point to established standards used in designing symmetric cipher
algorithms in the cryptographic community.


3.4.

Software System Attributes


3.4.1.

Reliability and Fault Tolerance

The reference implementa
tion source code should be reliable and of enterprise
quality.


3.4.2.

Availability

The proposed algorithm will be placed in public domain and it will be unpatented
in all countries. Anyone would freely be able to use the algorithm. The
specification, source code

and test data for the proposed algorithm would be
available to anyone wishing to implement the algorithm, in accordance with
country specific export laws.


3.4.3.

Security

The reference implementation will contain strong cryptographic algorithm, so
even if it is

created, maintained and distributed from liberal countries (where it is
legal to do this), it falls under certain export/import and/or use restrictions in some
other parts of the world.

Please remember that export/import and/or use of strong cryptography

software,
providing cryptography hooks or even just communicating technical details about
cryptography software is illegal in some parts of the world. So, when you import
the reference implementation to your country, re
-
distribute it from there or even
ju
st email technical suggestions or even source patches to the author or other
people you are strongly advised to pay close attention to any export/import and/or
use laws which apply to you. Anyone associated with this project are not liable
for any violatio
ns you make here.



3.4.4.

Software Quality Attributes



Adaptability:

The algorithm should be efficiently implementable in custom (special
purpose) VLSI hardware as well as on general purpose large, medium and
small sized processors (for e.g. microprocessors, micr
ocontrollers and smart
cards respectively).




Availability:

The algorithm should be efficiently implementable in custom (special
purpose) VLSI hardware as well as on general purpose large, medium and
small sized processors (for e.g. microprocessors, microco
ntrollers and smart
cards respectively).




Correctness and consistency:

The specification of proposed algorithm should be correct. The specification,
reference implementation and test vectors should be consistent.




Portability:

The reference implementation
will be in Python 3 programming language
(and will execute on any system python interpreter has been ported to). The
portability of other software implementations will depend on portability of
choice of programming language.




3.4.5.

Performance


To be able to i
mplement proposed algorithm on special purpose hardware (for e.g.
custom VLSI chips, microcontrollers etc.), with the goal to decreasing memory
requirements and execution time, special consideration should be given to
possible (and alternative) simplificat
ions of proposed algorithm.


























Appendix
-
A: References


[1]: Unix Philosophy: Wikipedia (
http://en.wikipedia.org/wiki/Unix_philosophy
)

[2]: Python 3:
http://www.python.org/download/releases/3.0/



Appendix
-
B: Glossary




CLI: Command Line Interface



SRS: Software Requirements Specification



VLSI: Very Large Scale Integration