You are on page 1of 10

Software Requirements Specification

Proposal And Reference Implementation Of A
New Symmetric Cryptographic Algorithm
http://amberj.devio.us/projects/crypto/

Master of Computer Applications
Semester 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

2 Hardware Design Constraints 3 3.4 Communication Protocols 3 3. Database Requirements 2 3.4 Standards Compliance 4 3. Capacity Requirements 2 3. External Interface Requirements 3 3.3. NON-FUNCTIONAL REQUIREMENTS 2 3.1.2. REVISIONS 0 1.3.1.4.1 User Interfaces 3 3.1 Software Design Constraints 3 3.3.3 Design Constraints 3 3. Inputs and Outputs 2 2.4.1.2.4.1. Exception Handling 2 2. Performance Requirement 2 3. INTRODUCTION 1 1.2. Introduction 2 2.1 Reliability and Fault Tolerance 4 3.4.2.4 Software System Attributes 4 3. Scope 1 2.3.4.3 Software Interfaces 3 3.1.2 Availability 4 3. Product Overview 1 1.2. Table of contents 0.3 Security 4 3.4 Software Quality Attributes 5 3.3.3 User Interface Design Constraints 4 3.2.3.4.2 Hardware Interfaces 3 3.5 Performance 6 APPENDICES: Appendix-A: References 7 Appendix-B: Glossary 7 .1. Static Requirements 2 3. Purpose 1 1.3. Dynamic Requirements 2 3. FUNCTIONAL REQUIREMENTS 2 2.1.2.2.

devio. Revisions S.us/projects/crypto/files/ . . 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.

Reference implementation of proposed algorithm.devio. random bit generation.). Introduction 1. 2.g.3. custom VLSI chips etc. The algorithm will also be implementable on wide variety of different platforms (including microprocessors.us/projects/crypto/) includes the study of design guidelines and desired properties of symmetric cryptographic algorithms.2. 2. . that will be proposed. 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. microcontrollers. Scope In Scope: 1. 1.1. 3. Cryptographic application library for proposed algorithm for use by third party applications. Test vectors Out of Scope: 1. 1. Specification of proposed symmetric cipher algorithm. This document will also describe requirements specification for this project in detail. Product Overview This project titled “Proposal and reference implementation of a new symmetric cipher algorithm” (http://amberj. is intended to be a general purpose symmetric cipher algorithm which will be suitable for many different applications (for e. This document is to outline features of algorithm that will be proposed as part of this project. Purpose: The cryptographic algorithm. Efficient and optimal implementation of proposed algorithm.). packet encryption etc.1. bulk encryption.

3. 2.2.1.1.g. Static Requirements None.3. Database Requirements None. It will output encrypted data on the console (or optionally to an output file with filename supplied to binary executable as a command line argument).1. 3. Inputs and Outputs The reference implementation will accept input in the form of a file specified as command line argument.2. Performance Requirement 3.4. 2. . Introduction The proposed symmetric cryptographic algorithm will accept the file to be encrypted and return encrypted data in output file. Capacity Requirements None. unable to open file or permission denied when writing to file) will be to print appropriate error message and exit program.1.1. 3. Dynamic Requirements None.3. Functional Requirements 2. Non-Functional Requirements 3.2. Exception Handling The preferred action in case of any exception or error in reference implementation (e.1. 2.

External Interface Requirements 3.g. .3.2.2. 3.2.3. 3.3. Software Interfaces The reference implementation will be in Python 3 [2] programming language (and will execute on any system Python 3 interpreter has been ported to). refer to section [3.2. 3.1. Software Design Constraints The reference implementation will conform to Unix Philosophy [1]. Communication Protocols None. Design Constraints 3. Hardware Design Constraints None. microcontrollers and smart cards respectively).2.2. For more details.4.1.2. Various options will be available as combinations of command line options and/or arguments. User Interfaces The reference implementation will include a Command Line Interface (CLI) for user to interact with program. 3. microprocessors. medium and small sized processors (for e.3.2.3. 3.2. Hardware Interfaces The algorithm will be efficiently implementable in custom (special purpose) VLSI hardware as well as on general purpose large. The portability of other software implementations will depend on portability of chosen programming language. Hardware Interfaces] of the same document.

1.4.3. source code and test data for the proposed algorithm would be available to anyone wishing to implement the algorithm.2.4. The inferenced design guidelines will in effect point to established standards used in designing symmetric cipher algorithms in the cryptographic community. Security The reference implementation will contain strong cryptographic algorithm. 3. 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.4. providing cryptography hooks or even just communicating technical details about cryptography software is illegal in some parts of the world. Availability The proposed algorithm will be placed in public domain and it will be unpatented in all countries. maintained and distributed from liberal countries (where it is legal to do this). 3. 3. Anyone would freely be able to use the algorithm. The specification. Software System Attributes 3. User Interface Design Constraints None.4.4. Reliability and Fault Tolerance The reference implementation source code should be reliable and of enterprise quality. when you import .3. in accordance with country specific export laws. it falls under certain export/import and/or use restrictions in some other parts of the world. So. so even if it is created. 3.3. Please remember that export/import and/or use of strong cryptography software. 3.3.

microcontrollers and smart cards respectively). 3.  Correctness and consistency: The specification of proposed algorithm should be correct.g. reference implementation and test vectors should be consistent.the reference implementation to your country. The specification. re-distribute it from there or even just 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.  Availability: The algorithm should be efficiently implementable in custom (special purpose) VLSI hardware as well as on general purpose large. microprocessors. medium and small sized processors (for e.g. microcontrollers and smart cards respectively).  Portability: The reference implementation will be in Python 3 programming language (and will execute on any system python interpreter has been ported to). 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. . Anyone associated with this project are not liable for any violations you make here.4. The portability of other software implementations will depend on portability of choice of programming language.4. microprocessors.

4.5.). special consideration should be given to possible (and alternative) simplifications of proposed algorithm. microcontrollers etc. .g.3. with the goal to decreasing memory requirements and execution time. custom VLSI chips. Performance To be able to implement proposed algorithm on special purpose hardware (for e.

0/ Appendix-B: Glossary  CLI: Command Line Interface  SRS: Software Requirements Specification  VLSI: Very Large Scale Integration .org/wiki/Unix_philosophy) [2]: Python 3: http://www.python.org/download/releases/3.wikipedia.Appendix-A: References [1]: Unix Philosophy: Wikipedia (http://en.