You are on page 1of 10

Pondicherry University

Client Server Lab Project

System Requirement Specification For


Implementation of RSA Algorithm
Prepared By:

Md Asif Jalal(12370032) Anirudh Ghosh Dastider(12370021)

System Requirement Specification For Implementation of RSA Algorithm

Page i

Pondicherry University

Client Server Lab Project

Contents
1. Introduction ..............................................................................................................................3
1.1 1.2 1.3 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 4.1 5.1 5.2 Purpose.......................................................................................................................................... 3 Project Scope ................................................................................................................................ 3 Audience ....................................................................................................................................... 4

2. Feasibility Study .......................................................................................................................4


Executive Summary ...................................................................................................................... 4 Software Feasibility ...................................................................................................................... 4 Time Feasibility ............................................................................................................................ 4 The Market .................................................................................................................................... 5 Cost Feasibility ............................................................................................................................. 5 Operating Environment ................................................................................................................. 5 Software Requirement................................................................................................................... 5 Hardware Requirements................................................................................................................ 5 User Documentation ..................................................................................................................... 6 Assumptions and Dependencies .................................................................................................... 6 In Detail ........................................................................................................................................ 6 User Interfaces for File Encryption/Decryption:........................................................................... 8 Communication Interface:............................................................................................................. 8

3. Overall Description ..................................................................................................................5

4. System Functionalities .............................................................................................................6 5. External Interface Requirements ...........................................................................................8 6. Other Nonfunctional Requirements .......................................................................................8
6.1 Security Requirements .................................................................................................................. 8 6.2 Software Quality Attributes .......................................................................................................... 9 6.2.1 Reliability............................................................................................................................... 9 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 Usability................................................................................................................................. 9 Flexibility: .............................................................................................................................. 9 Portability .............................................................................................................................. 9 Security ................................................................................................................................. 9 Maintainability ...................................................................................................................... 9

System Requirement Specification For Implementation of RSA Algorithm

Page ii

Pondicherry University

Client Server Lab Project

1. Introduction
1.1 Purpose
This system specification document will serve to describe RSA encryption program that will be used by any business or military agency which would want to secure its data. Amongst the many requirements that this document will outline regarding the system that is to be designed, one may find detailed functionalities of the program, the needed resources, language that is to be used to develop this application.

RSA has been used in most digital data, information and telephone security applications.
The RSA has it's advantages of being a reliable and safe system but it also has the disadvantage of being very slow in data calculating. For this reason it is used in hybrid cryptographic systems that simultaneously use symmetric algorithms (AES) for the communication and data encryption phase and public key algorithms (RSA) for the safe delivery of the symmetric key (or session key) that is necessary for encrypting and decrypting the message. There are different levels of encryption in telephone cryptography. The purpose of the system is that it will be able to encrypt data input by the user. However, one is to note the following two encryption features which later on will be outlined as functionalities of this system is that

secrecy and privacy: the content of the information and communication must be ONLY accessible to the sender and the recipient of the information integrity: the content must not be altered during the exchange phase, therefor it must stay in its original form authentication: this aspect is very important because RSA guarantees the origin of the sent information, only the sender with his own private key is able to encrypt the message therefor transform the message into an unreadable form consequently the receiver will have confirmation of the origin because he will be able to decrypt the message only through the corresponding public key non repudiation: the sender cannot state that the message has not been encrypted with his private key because the private key used for the encryption is unique and it's the owner's responsibility to make sure that it is not used by non authorized third parties.

1.2 Project Scope


The scope of the system that will be developed is mainly to offer better security measures which the business using this system can take in order to secure better its data. The benefits that one will gain from this system are the following: Greater security of data since the data can be encrypted using the widely used algorithm The process is autonomous users need not invent secret keys (which might later be forgotten) Easy-to-Use

System Requirement Specification For Implementation of RSA Algorithm

Page 3

Pondicherry University The system can be run on any platform (Windows, Linux etc)

Client Server Lab Project

Apart from the benefits mentioned here above, the objectives of the system are the following: The system is to provide the business a way to encrypt and decrypt its data in a secure and controlled way. The system is to provide an easier, friendlier and autonomous way to the users to encrypt its data by randomly generating keys. The system is to provide more portability and flexibility.

1.3 Audience
This document is intended for those business who intend to acquire an encryption system with greater security, that runs on any platform and the security personnel.

2. Feasibility Study
2.1 Executive Summary
Because of the reason that the transmission mediums are unreliable so sharing or transmitting data in normal mode is normally unsafe. So the data needs to be modified in such a way that though it can be read by any unauthorized user, but the information cant be extracted. So we have come up with this idea of sending files and text messages in a encrypted format using RSA encryption algorithm.

2.2 Software Feasibility


The softwares required for the implementation of this software project and also the platforms required for this software to run is ready available in the market at reasonable price. To do this project we at first need to implement RSA algorithm and cope up that with client server methodology. The project software can be done using JAVA language and it is feasible.

2.3 Time Feasibility


RSA algorithm can be implemented and run in real time so the other thing we have to do is establishing client-server method in the software so that the client can send the server, files, message in encrypted format. We can understand that the project can be done in a limited time and could be run in real time system. So that the time can be easily managed for the system.

System Requirement Specification For Implementation of RSA Algorithm

Page 4

Pondicherry University

Client Server Lab Project

2.4 The Market


The market for this type of software is very good because everybody needs security for their information and with encryption technique data can be secured at a certain level.

2.5 Cost Feasibility


It can be implemented in a low cost and the requirements are not so high ,so the software production price would be very low. Thus the clients can afford this software ,as the cost is quite cheap.

3. Overall Description
3.1 Operating Environment
For the system to run properly the buyer must ensure that on the machines there is the Java Runtime Environment installed, preferably the latest version so that all updates are included. Version 7 Update 25 may be downloaded from this website: http://java.com/en/download/index.jsp. The advantage of using java and its runtime environment is that it enables the system to run on any platform, whether it is Windows, Mac OS, Linux or Solaris. Makes it more portable and platform independent.

3.2 Software Requirement


In order for this system to be developed the following software packages will be used: Java Runtime Environment NetBeans IDE 7.3 This will be used for the running platform of the software. This will be used to develop the system. This will enable and help the developers to produce a quality system since it provides help while coding and has an interface which does not hinder the development process.

3.3 Hardware Requirements


Microsoft Windows XP Professional SP3/Vista SP1/Windows 7 Professional: o Processor: 800MHz Intel Pentium III or equivalent o Memory: 512 MB o Disk space: 1GB of free disk space Ubuntu 9.10: o Processor: 800MHz Intel Pentium III or equivalent

System Requirement Specification For Implementation of RSA Algorithm

Page 5

Pondicherry University

Client Server Lab Project

o o

Memory: 512 MB Disk space: 1GBof free disk space

Solaris OS version 10 (x86/x64 Platform Edition): o Processor: AMD Opteron 1200 Series 1.8 GHz o Memory: 512 MB o Disk space: 1 GB of free disk space

3.4 User Documentation


When the system is completed a user manual will be developed in order to help the users of the system manage through this application if any difficulties are encountered. However, the interface will be quite easy to understand but to provide immediate help and reference the user manual can be used. This will also save the business from spending additional money on training to use this software.

3.5 Assumptions and Dependencies


Assumptions: The business environment or military agency will install the necessary software in order for this system to work. This software needs that the machine on which it is working has the Java Runtime Environment (JRE) installed. The users of the system are proficient in using computer software and manage files. The users of the system know about the concept and the u se of encryption and decryption. Private key will be shared in a pre-determined secure way between the two parties if the encrypted file will be transferred and decrypted by someone else. The private key generated will eventually be exported into a file to be remembered afterwards. This should be kept in a safe and secure place, and so it is the responsibility of the business people involved to provide this environment. One of the requirements of the business which wants to acquire this system should be to encrypt or decrypt files of data. This is being assumed since data can be input in other various ways (e.g. by copying text, scanning, etc).

4. System Functionalities
4.1 In Detail
High Importance Functionalities: We assume that all the functionalities are of high priorities because the system is for classified file and message security.

System Requirement Specification For Implementation of RSA Algorithm

Page 6

Pondicherry University

Client Server Lab Project

4.1.1 The system will be able to encrypt files:


4.1.1.1 Description and Priority
One of the main purposes the system is going to be designed for is encryption of data. Data will be passed in files to the program through a custom-built interface, where the data in the file(s) will be encrypted and output into another file which may contain the encrypted keys too. This functionality is a high importance functionality as without it the program does not make sense and will not be useful to any business which might want to make use of it.

4.1.1.2 Functional Requirements


1) The system will be able to open any file and loads the data into a stream of bytes. 2) The system will be able to encrypt the loaded stream of bytes using RSA algorithm. 3) The system will be able to generate a public and a private key using the non-symmetric algorithm RSA 4) The system will be able to export encrypted/wrapped private key (included within the public key) into a file which can be forwarded with the encrypted content file(s).

4.1.2 The system will be able to encrypt messages:


4.1.2.1 Description and Priority
Another Purpose is message passing between two nodes or ends and surely the message will be encrypted in the senders side and will be send to the receiver.

4.1.2.2 Functional Requirements


1) The system will be able to encrypt the loaded stream of bytes using RSA algorithm.

4.1.3 The System Will able to decrypt:


4.1.3.1 Description and Priority
Page 7

System Requirement Specification For Implementation of RSA Algorithm

Pondicherry University

Client Server Lab Project

Any files encrypted using the method described in 3.1, can be decrypted back to the original text using this system. The functionality enables a business to retrieve back data that was made to be secure. This is a highly important functionality as without it the functionality described in 3.1 would not be of much help.

4.1.3.2 Functional Requirements


1) The system will be able to decrypt a stream of encrypted bytes. 2) The system will output a file with the original text after it has been decrypted.

5. External Interface Requirements


5.1 User Interfaces for File Encryption/Decryption:
The user interface will consist of a desktop application which will offer the user to encrypt/ decrypt files chosen. A view the interface, where the user is helped with labels what to expect in the textboxes placed on screen. As one can easily note there are also button controls on the screen which give way to an operation as indicated. Each of the controls will be accompanied with help which can assist the users if the find any difficulty while operating the system. The status label will keep the users informed of the operations statuses which occur according the users command. Menus will be placed on the interface of the system which the user can use if he/she finds it more comfortable that way. The menus will also be accompanied by shortcut keys which makes the application more accessible for the user.

5.2 Communication Interface:


For secure message passing we encrypt the message in the senders side and decrypt in the receivers side. For sending the encrypted bytes stream we have used java socket and client server concept.

6. Other Nonfunctional Requirements


6.1 Security Requirements
Since the system will encrypt the data passed on to by the user, the security is well-handled by the system. However, during this process as also described above, the system will produce a private key which should be kept in a safe place. This should not be shared with anyone whom the user/business does not want to decrypt and thus see the original text in clear form.

System Requirement Specification For Implementation of RSA Algorithm

Page 8

Pondicherry University

Client Server Lab Project

6.2 Software Quality Attributes


6.2.1 Reliability RSA algorithm is used for encryption and decryption so the cypher text is reliable and for client server socket connection exception handling will be given importance too. This will make the
system more robust by trying to handle properly the errors the system might encounter.

6.2.2 Usability
The system will make use of designed classes that will handle encryption and decryption while taking input and producing output from and to a file respectively. These classes are to be developed in a separate jar file so that they can be later reference in other projects thus increasing code re-usability.

6.2.3 Flexibility:
Flexibility in the system should also be noted. As also pointed out the interface is quite flexible and helpful (providing various ways and shortcuts to carry out the operations required), however the system should be made flexible to operate on various operating systems. This is a characteristic of this system and since it is going to be developed in java, it would not be a problem since installing the JRE would solve the problem of different platforms. Flexibility of using the system on different platforms will also lead to portability of the system.

6.2.4 Portability
The system will not be a large-sized one and since java works on Linux, Windows, etc, the system will be more portable.

6.2.5 Security
Secure socket connection is used for authentication. RSA algorithm is used for encryption/decryption which is very hard to break by brute force method.

6.2.6 Maintainability
All the methods and modules will be well documented and the design will be in object oriented for so itll be easy to maintain for future improvements.

System Requirement Specification For Implementation of RSA Algorithm

Page 9

Pondicherry University

Client Server Lab Project

Appendix A: Glossary
RSA: RSA is an algorithm for public-key cryptography that is based on the presumed difficulty of factoring large integers, the factoring problem. Public Key: One key locks or encrypts the plaintext. Private Key: Messages encrypted with the public key can only be decrypted in a reasonable amount of time using the private key. Encryption: In cryptography, encryption is the process of encoding messages (or information) in such a way that eavesdroppers or hackers cannot read it, but that authorized parties can. Decryption: Get the plain text from cypher text using any algorithm. Symmetric-key algorithm: Symmetric-key algorithms are a class of algorithms for cryptography that use the same cryptographic keys for both encryption of plaintext and decryption of cipher text. Asymmetric-key algorithm: Vice versa.

Appendix B: Timeline Chart


Task Planned Start Planned Complete Max Time Completion Assigned Person

SRS Primary Design Detailed Design Coding Unit Testing Alpha and Testing Software Installation Maintenance Beta

Wk1,Day1 Wk2,Day1 Wk3,Day1 Wk5,Day1 Wk7,Day1 Wk8,Day1

WK1,Day5 WK2,Day5 Wk4,Day5 Wk6,Day5 Wk7,Day5 Wk8,Day5

WK2,Day3 WK3,Day2 WK5,Day2 WK7,Day2 WK8,Day2 WK9,Day2

AGD MAJ MAJ AGD MAJ AGD

Wk9,Day1

Wk9,Day5

WK10,Day2

MAJ

Wk10,Day1

-------------

---------------

AGD,MAJ

System Requirement Specification For Implementation of RSA Algorithm

Page 10