Professional Documents
Culture Documents
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-FUNCTIONAL 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 Quality Attributes 5
3.4.5 Performance 6
APPENDICES:
Appendix-A: References 7
Appendix-B: Glossary 7
Revisions
The latest revision of SRS document for this project is available at:
http://amberj.devio.us/projects/crypto/files/ .
1. Introduction
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 proposed 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
Out 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 will accept the file to be encrypted
and return encrypted data in output file.
3. Non-Functional Requirements
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
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. Anyone associated with this project are not liable for
any violations you make here.
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, 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). The
portability of other software implementations will depend on portability of
choice of programming language.
3.4.5. Performance
Appendix-B: Glossary