Sunteți pe pagina 1din 53

Internal Web Application

CHAPTER 1

INTRODUCTION

1.1 INTRODUCTION
Internship opportunity provides the students a great chance to relate their theoretical
knowledge with the competitive and tough real job market environment. Moreover, if
the internship period is within the bachelor program and the students have to return to
the academia after completing it, the skills that they have developed during the
internship help them to gain a more sound academic result. After returning from
internship the students get six months for preparing himself/herself for the company
and their future career. New Horizon College of Engineering provides that glorious
opportunity to their students of having an internship within their bachelor program. I
being one of the lucky ones to study in NHCE that was send me to Fitlark to complete my
internship. With having a jab count of zero, I joined fitlark.com as an intern on 8 th
January 2019. The expectations were high and now almost nearing the end of my
internship I must admit that it was really a wonderful experience. I was lucky to get the
opportunity to complete our industrial attachment at fitlark.com. Since fitlark.com is a
leading company in Sports Materials and developing Sports Accessories from a long ago
in India, I consider myself timely to get chance to take a deep look to their development
methodology, working models, deals and industrial behavior. I intended to look into the
software industry and how it looks like, what are their rules, responsibility and
environment. Obviously they work with almost every platform and technologies. I
worked with the part of Web Development team and generated ideas based on their
development technology. The journey wasn’t that simple. There were many obstacles,
new technologies that I have to handle with, yet after overcoming each challenge I had
discovered a new potential within myself. The skills that I have gathered are priceless to
me and I cannot wait to apply those in the upcoming semesters. In addition to that,
some of the non-technical skills that I have procured, combined with those technical
skills will certainly prove handy in my future jobs.

Dept of CSE, NHCE 1


Internal Web Application

Internship is a job training offered by an organization to give students exposure to the


working environment and technologies. It is the most effective way for students to gain
work experience before graduation. It presents a direct and practical experience to the
students outside of the normal classroom setting. Here students sharpen their skills and
gain practical proficiency.

Internship program is not only necessary but also a complementary part of the
Computer Science and Engineering course of New Horizon College of Engineering. The
main purpose of internship program is to get the students exposed to the job market. It
offers a chance to the students to relate their theoretical knowledge to the real world.

NHCE always emphasizes on industry orientation in the academic learning. For this
purpose, very often, people from industries are invited to NHCE to talk about their
companies and practices. NHCE also includes some technical courses conducted entirely
by them.

I feel really proud for being a student of NHCE, and grateful for this internship. I entered
into Fitlark with a heart full of hope. And now, standing near the end of internship, I
must admit that- the experience there is so amazing that it exceeds my expectation.

1.2 OBJECTIVES
This report has been prepared as a requirement of the internship program of the degree
Bachelor of Engineering (BE). The report will definitely enrich the knowledge of the
students from upcoming batches regarding the workplace environment. Using that
knowledge they may prepare themselves appropriately for their future internships. In
addition to that, the report is intended to reflect my achievements, project works and
professional growth during the intern period. Besides, anybody looking for a short detail
about fitlark.com may find this report useful.

The report is designed to meet specific goals. Its goal is to -

The introduction of the organization, including the standard following here


 Leading products of the organization
 Description about the team where I work

Dept of CSE, NHCE 2


Internal Web Application

 A detailed description of responsibilities


 As an intern achievement, focusing on non-academic achievements.
 To know about the problems faced in the IT industry
 To know how these problems are solved
 To know the coding style and conventions of the industry
 To go through the development cycle and models
 Working with documentation and customization
 Understanding software maintenance
This report is the product of two months short internship program conducted at Fitlark,
and is prepared as a requirement for the completion of CSE course.

More specifically, the report aims to present an overall description of my internship


experience at Fitlark. It will describe the jobs performed in the organization, as well as
the findings, and professional and personal skills developed working in Ecommerce
Industry.

1.3 SCOPE
This report is made only for academic purpose and to fulfill the requirement for
industrial attachment. This report has covered the direct and indirect aspects of IT
industry and their challenges. This report gives an insight of the experience that I
achieved from my workplace. A brief description of fitlark.com is included so that other
students can get to know about the company and may decide whether it is suitable for
them or not. If internships are about gathering skills then projects are the main way of
gathering them. Till writing this report I have completed one project and helped in
developing the web applications for fitlark.com. The tasks, timeline and results of those
specific projects are included for a better visualization of industry standard projects.
1.4 LIMITATIONS
While gathering information, analyzing and representing them I have faced some
limitations. However, despite the limitations I have tried hard to prepare a
comprehensive and rather interesting report. The overall limitations of the report are
mentioned below-

 There were some restrictions in disclosing some information as it was assumed


to be confidential. Therefore I could not include those in my report.

Dept of CSE, NHCE 3


Internal Web Application

 Some of the information that I got from secondary sources were not arranged
consistently.
 AS I was not permanent employee at fitlark.com, I could not see the
disadvantages of the old system.

Because of organizational confidentiality, I could not put or disclose some information in


the report.

1.5 SOURCES OF DATA COLLECTION


In order to make the report as perfect as possible I here used data collection
procedures which articulate the way that I have followed in my report. For this
report, information has been gathered from both primary and secondary
sources.

1.5.1 PRIMARY SOURCE

For primary data, several face-to-face interviews have been conducted with officials
from different departments of fitlark.com, Information provided by them has been very
important for this report.

I conducted with the following professionals:

 Collect information from different employee asking them


 Different documents available from the portal of fitlark.com
 Content provided from fitlark.com website
 Different employees of fitlark.com
 From the company’s Handbook

1.5.2 SECONDARY SOURCE

To understand different software methodology, software quality assurance, Agile Model,


Scrum Process and many other data have been gathered from the internet and different
articles and the sources have been given in the references part.

Dept of CSE, NHCE 4


Internal Web Application

The secondary sources of data collection for the report includes-

 Different websites which defines globally accepted standards


 Different websites which keeps track of achievements of national/international
companies
 Reference Documents
 Follow some other internship report to prepare standard one.

CHAPTER 2

COMPANY OVERVIEW
2.1 INTRODUCTION
India is making quick progress in IT industry. There are many mentionable IT
organizations in India who has contributed significantly to the rise of IT sector in India
and fitlark.com is one of them. In principal, fitlark.com is one of the largest shopping
site. Fitlark are one of the largest outsourcing companies in India. Their business is in the
whole country’s market all over the world. Fitlark is an offshore production facility
providing sports items and sports item development services.

Dept of CSE, NHCE 5


Internal Web Application

2.2 HISTORY
Fitlark is an Indian e-commerce company headquartered in Meerut, Uttar Pradesh, India.
The company was founded in 2002 to sell sports products and later started selling fitness
products and nutritional section also.

2.3 VISION MISSION AND VALUES

Vision

Our vision is to be one of the worlds most advanced offshore facility in fitness and sports
services & marketing arena. Our goal is to achieve supreme quality in our techniques of
work because we believe it is the key to earn our clients’ enthusiasm through continuous
improvement driven by the honor, goodwill, teamwork and innovation of our people.

Mission
 Simplify: Simple ideas, simple executions, and simple reporting, - We believe
“Less is more”.
 Inspire: Take initiatives! Bring in new ideas! Do things differently! Take action!
 Respect: Your culture, colleagues, customers, families and your selves.

Values

 Customer Satisfaction is permanent to business success so they strive to exceed


customer expectations.
 Fitlark is result oriented so they seek continuous improvement through
aggressive, attainable goals.
 They are committed to innovation because innovations can transform the way
our customers do business.
 Great teams build great companies so they seek to attract, develop and retain
leading talent.
 Fitlark aspire to lead by setting the standards that others emulate.
 They are honest and fair in their dealings with customer, partners, shareholders
and each other.

2.4 SOFTWARE DESCRIPTION

Dept of CSE, NHCE 6


Internal Web Application

2.4.1 C#

C# (pronounced see sharp) is a multi-paradigm programming language


encompassing strong typing, imperative, declarative, functional, generic, object-oriented
(class-based), and component-oriented programming disciplines. It was developed by
Microsoft within its .NET initiative and later approved as a standard by Ecma (ECMA-
334) and ISO (ISO/IEC 23270:2006). C# is one of the programming languages designed
for the Common Language Infrastructure. Support for internationalization is very
important.

The ECMA standard lists the design goals for C# as:

 C# language is intended to be a simple, modern, general-purpose, object-oriented


programming language.
 The language, and implementations thereof, should provide support for software
engineering principles such as strong type checking, array bounds checking,
detection of attempts to use uninitialized variables, and automatic garbage
collection. Software robustness, durability, and programmer productivity are
important.

 The language is intended for use in developing software components suitable for
deployment in distributed environments.

 Source code portability is very important, as is programmer portability, especially


for those programmers already familiar with C and C++.

 C# is intended to be suitable for writing applications for both hosted and


embedded systems, ranging from the very large that use sophisticated operating
systems, down to the very small having dedicated functions.

 Although C# applications are intended to be economical with regard to memory


and processing power requirements, the language was not intended to compete
directly on performance and size with C or assembly language.

Dept of CSE, NHCE 7


Internal Web Application

2.4.2 .NET FRAMWORK PLATFORM ARCHITECTURE

Microsoft .NET is a set of Microsoft software technologies for rapidly building


and integrating XML Web services, Microsoft Windows-based applications, and Web
solutions. The .NET Framework is a language-neutral platform for writing programs that
can easily and securely interoperate. The .NET framework provides the foundation for
components to interact seamlessly, whether locally or remotely on different platforms. It
standardizes common data types and communications protocols so that components
created in different languages can easily interoperate.

ASP.NET Windows Forms

XML WEB SERVICES


Base Class Libraries
Common Language Runtime
Operating System

Fig 2.1 NET Framework Architecture

The .NET Framework has two main parts:

1. The Common Language Runtime (CLR).

2. A hierarchical set of class libraries.

The CLR is described as the “execution engine” of .NET. It provides the


environment within which programs run. The most important features are:

 Conversion from a low-level assembler-style language, called Intermediate


Language (IL), into code native to the platform being executed on.
 Memory management, notably including garbage collection.
 Checking and enforcing security restrictions on the running code.
 Loading and executing programs, with version control and other such features.

Common Type System


Dept of CSE, NHCE 8
Internal Web Application

The CLR uses something called the Common Type System (CTS) to strictly
enforce type-safety. This ensures that all classes are compatible with each other, by
describing types in a common way. CTS define how types work within the runtime,
which enables types in one language to interoperate with types in another language,
including cross-language exception handling.

As well as ensuring that types are only used in appropriate ways, the runtime also
ensures that code doesn’t attempt to access memory that hasn’t been allocated to it.

Common Language Specification

The CLR provides built-in support for language interoperability. To ensure that
you can develop managed code that can be fully used by developers using any
programming language, a set of language features and rules for using them called the
Common Language Specification (CLS) has been defined. Components that follow these
rules and expose only CLS features are considered CLS-compliant.

THE CLASS LIBRARY

.NET provides a single-rooted hierarchy of classes, containing over 7000 types.


The root of the namespace is called System; this contains basic types like Byte, Double,
Boolean, and String, as well as Object. All objects derive from System. Object.

As well as objects, there are value types. Value types can be allocated on the stack,
which can provide useful flexibility. There are also efficient means of converting value
types to object types if and when necessary.

2.4.3 SQL-SERVER

The OLAP Services feature available in SQL Server version 7.0 is now called
SQL Server 2000 Analysis Services. The term OLAP Services has been replaced with the
term Analysis Services. Analysis Services also includes a new data mining component.
The Repository component available in SQL Server version 7.0 is now called Microsoft

Dept of CSE, NHCE 9


Internal Web Application

SQL Server 2000 Meta Data Services. References to the component now use the term
Meta Data Services. The term repository is used only in reference to the repository engine
within Meta Data Services SQL-SERVER database consist of following type of objects:

1. TABLE

2. QUERY

3. FORM

4. REPORT

5. MACRO

TABLE:

A database is a collection of data about a specific topic.

VIEWS OF TABLE:

We can work with a table in two types,

1. Design View

2. Datasheet View

Design View

To build or modify the structure of a table we work in the table design view. We can
specify what kind of data will be hold.

Datasheet View

To add, edit or analyses the data itself we work in tables datasheet view mode.

QUERY:

A query is a question that has to be asked the data. Access gathers data that
answers the question from one or more table. The data that make up the answer is either
dynaset (if you edit it) or a snapshot (it cannot be edited).

2.4.4 Jscript

Dept of CSE, NHCE 10


Internal Web Application

JScript is Microsoft 's extended implementation of ECMAScript (ECMA262), an


international standard based on Netscape's JavaScript and Microsoft's JScript languages.
JScript is implemented as a Windows Script engine. This means that it can be "plugged
in" to any application that supports Windows Script, such as Internet Explorer, Active
Server Pages, and Windows Script Host. It also means that any application supporting
Windows Script can use multiple languages - JScript, VBScript, Perl, and others.

JScript (and the other languages) can be used for both simple tasks (such as
mouseovers on Web pages) and for more complex tasks (such as updating a database with
ASP or running logon scripts for Windows NT ).

Windows Script relies on external "object models" to carry out much of its work.
For example, Internet Explorer's DOM provides objects such as 'document' and methods
such as 'write()' to enable the scripting of Web pages.

JScript supports conditional compilation, which allows a programmer to


selectively execute code within block comments. This is an extension to the ECMAScript
standard that is not supported in other JavaScript implementations.

2.4.5 ASP or ACTIVE SERVER PAGES


Active Server Pages (ASP), also known as Classic ASP, was introduced in 1998 as
Microsoft's first server side scripting engine. ASP is a technology that enables scripts in
web pages to be executed by an Internet server. ASP pages have the file extension .asp,
and are normally written in VBScript. ASP.NET is a development framework for building
web pages and web sites with HTML, CSS, JavaScript and server scripting.
When a browser requests an ASP file, the ASP.NET engine reads the file, compiles
and executes the scripts in the file, and returns the result to the browser as plain HTML.
ASP.NET supports three different development models:
Web Pages, MVC (Model View Controller), and Web Forms:

Web Pages MVC Web Forms


Single Pages Model Model View Controller Event Driven Model

Dept of CSE, NHCE 11


Internal Web Application

1. Simplest ASP.NET 1. MVC separates web 1.Traditional ASP.NET


model. applications into 3 event driven development
2. Similar to PHP and different components. model.
classic ASP. 2. Models for data 2. Web pages with added
3. Built-in templates and Views for display server controls, server
helpers for database, Controllers for input events, and server code.
video, graphics, social
media and more.

Fig 2.2 Development Models for ASP.NET

ASP.NET
ASP.NET is a new ASP generation. It is not compatible with Classic ASP, but
ASP.NET may include Classic ASP. ASP.NET pages are compiled, which makes them
faster than Classic ASP. ASP.NET has better language support, a large set of user controls,
XML-based components, and integrated user authentication.
ASP.NET pages have the extension .aspx, and are normally written in VB (Visual
Basic) or C# (C sharp). User controls in ASP.NET can be written in different languages,
including C++ and Java.
Here are highlights of some of the new features:
Navigation: ASP.NET has a new higher-level model for creating site maps that describe
your website. Once you create a site map, you can use it with new navigation controls
to let users move comfortably around your website.
Master pages: With master pages, you can define a template and reuse it effortlessly. On
a similar note, ASP.NET themes let you define a standardized set of appearance
characteristics for controls, which you can apply across your website for a consistent
look.
Data providers: With the new data provider model, you can extract information from a
database and control how it’s displayed without writing a single line of code. ASP.NET
2.0 also adds new data controls that are designed to show information with much less
hassle (either in a grid or in a browser view that shows a single record at a time).

Dept of CSE, NHCE 12


Internal Web Application

Portals: One common type of web application is the portal, which centralizes different
information using separate panes on a single web page.
Administration: To configure an application in ASP.NET 1.x, you needed to edit a
configuration file by hand. Although this process wasn’t too difficult, ASP.NET 2.0
streamlines it with the WAT (Website Administration Tool), which works through a
web page interface.

CHAPTER 3

REQUIREMENT ANALYSIS
3.1 FUNCTIONAL REQUIREMENTS
In software engineering, a functional requirement defines a function of a software
system or its component. A function is described as a set of inputs, the behavior, and
outputs. Functional requirements may be calculations, technical details, data manipulation
and processing and other specific functionality that define what a system is supposed to
accomplish. Behavioral requirements describing all the cases where the system uses the
functional requirements are captured in use cases.

Here, the system has to perform the following tasks:

 Take userid and password along with secret key, match it with corresponding
database entries. If a match is found then continue else raise an error message.
 Encrypt the file to form a new encrypted file by using an encryption algorithm.
 Must be able to retrieve the original file from the encrypted file using the
corresponding decryption algorithm.
 If any modification is performed on encrypted file, owner of the file should be
notified.

Dept of CSE, NHCE 13


Internal Web Application

3.2 NON-FUNCTIONAL REQUIREMENTS


In systems engineering and requirements engineering, a non-functional
requirement is a requirement that specifies criteria that can be used to judge the operation
of a system, rather than specific behaviors. This should be contrasted with functional
requirements that define specific behavior or functions. The plan for implementing
functional requirements is detailed in the system design. The plan for implementing non-
functional requirements is detailed in the system architecture.

Other terms for non-functional requirements are "constraints", "quality


attributes", "quality goals", "quality of service requirements" and "non-behavioral
requirements".

Some of the quality attributes are as follows:

3.2.1 ACCESSIBILITY:

Accessibility is a general term used to describe the degree to which a product,


device, service, or environment is accessible by as many people as possible.

In our project people who have registered with the cloud can access the cloud to
store and retrieve their data with the help of a secret key sent to their email ids.
User interface is simple and efficient and easy to use.

3.2.2 MAINTAINABILITY:

In software engineering, maintainability is the ease with which a software product


can be modified in order to:

 Correct defects

 Meet new requirements

Dept of CSE, NHCE 14


Internal Web Application

New functionalities can be added in the project based on the user requirements
just by adding the appropriate files to existing project using ASP.net and C#
programming languages.
Since the programming is very simple, it is easier to find and correct the defects
and to make the changes in the project.

3.2.3 SCALABILITY:

System is capable of handling increase total throughput under an increased load


when resources (typically hardware) are added.

System can work normally under situations such as low bandwidth and large
number of users.

3.2.4 PORTABILITY:

Portability is one of the key concepts of high-level programming. Portability is the


software code base feature to be able to reuse the existing code instead of creating new
code when moving software from an environment to another.

Project can be executed under different operation conditions provided it meet its
minimum configurations. Only system files and dependant assemblies would have to be
configured in such case.

3.3 HARDWARE REQUIREMENTS

Processor : Any Processor above 500 MHz


RAM : 512Mb
Hard Disk : 10 GB
Input device : Standard Keyboard and Mouse

Dept of CSE, NHCE 15


Internal Web Application

Output device : VGA and High Resolution Monitor

3.4 SOFTWARE REQUIREMENTS

• Operating system : Windows XP


• Front End : ASP.Net 2.0
• IDE : Visual Studio 2008
• Data Base : SQL Server Management Studio 2005
• Server : Internet Information Services

• Database Connectivity : ODBC Sources (with SQL Server)

CHAPTER 4

DESIGN
4.1 DESIGN GOALS
To enable secure outsourcing of file under the aforementioned model, our
mechanism design should achieve the following security and performance guarantees:

4.1.1 INPUT/OUTPUT PRIVACY

No sensitive information from the customer’s private data can be derived by the
cloud server during performing the encryption and transfer.
4.1.2 EFFICIENCY

Dept of CSE, NHCE 16


Internal Web Application

The local computations done by customer should be substantially less than. The
computation burden on the cloud server should be within the comparable time complexity
of existing practical algorithms for encryption and decryption of files.

4.2 SYSTEM ARCHITECTURE


A data integrity proof in cloud based on selecting random bits in data
blocks. The client before storing its data file F at the client should process it and create
suitable Meta data which is used in the later stage of verification the data integrity at the
cloud storage. When checking for data integrity the client queries the cloud storage for
suitable replies based on which it concludes the integrity of its data stored in the client.
Let the verifier V wishes to the store the file F with the archive. A typical data
file F w h i c h the client wishes to store in the cloud is shown in Figure 4.1.

The file F along with the appended Meta data Fe is archived with the cloud.

Let the verifier V w a n t s to verify the integrity of the file F. It throws a


challenge to the archive and asks it to respond. The challenge and the response are
compared and the verifier accepts or rejects the integrity proof.

The Meta data sent by the cloud is decrypted and the corresponding bit in this decrypted
Meta data is compared with the bit that is sent by the cloud. Any mismatch between the
two would mean a loss of the integrity of the client’s data at the cloud storage.

Dept of CSE, NHCE 17


Internal Web Application

Fig 4.1 System Architecture

4.3 DATA FLOW DIAGRAM

Dept of CSE, NHCE 18


Internal Web Application

4.4 SEQUENCE DIAGRAM


Dept of CSE, NHCE 19
Internal Web Application

4.5 USE CASE DIAGRAM

Dept of CSE, NHCE 20


Internal Web Application

CHAPTER 5
Dept of CSE, NHCE 21
Internal Web Application

IMPLEMENTATION
5.1 META-DATA GENERATION
Let the verifier V wishes to the store the file F with the archive. Let this
file F consist of n file blocks. We initially preprocess the file and create metadata
to be appended to the file. Let each of the n data blocks have m bits in them. A
typical data file F which the client wishes to store in the cloud.

Fig 5.1 File F with n Blocks

The C# code for splitting files is as follows:

Dept of CSE, NHCE 22


Internal Web Application

Each of the Meta data from the data blocks mi is encrypted by using a
suitable algorithm to give a new modified Meta data Mi. Without loss of generality
we show this process by using a simple XOR operation... All the Meta data bit
blocks that are generated using the above procedure are to be concatenated
together. This concatenated Meta data should be appended to the file F before
storing it at the cloud server.
The file F along with the appended Meta data e F is archived with the
cloud.

Fig 5.2 File with Appended Metadata

5.2 AES or ADVANCED ENCRYPTION STANDARD

AES Is a block cipher with a block length of 128 bits. Originally called Rijndael,
the cipher was developed by two Belgian cryptographers, Joan Daemen and Vincent
Rijmen... The algorithm described by AES is a symmetric-key algorithm, meaning the
same key is used for both encrypting and decrypting the data. AES is based on a design
principle known as a substitution-permutation network.

Dept of CSE, NHCE 23


Internal Web Application

The Rijndael algorithm is a new generation symmetric block cipher that supports
key sizes of 128, 192 and 256 bits, with data handled in 128-bit blocks - however, in
excess of AES design criteria, the block sizes can mirror those of the keys. Rijndael uses a
variable number of rounds, depending on key/block sizes, as follows:

9 rounds if the key/block size is 128 bits

11 rounds if the key/block size is 192 bits

13 rounds if the key/block size is 256 bits

5.2.1 THE ENCRYPTION KEY AND ITS EXPANSION

Assuming a 128 bit key, the key is also arranged in the form of a matrix of 4 x 4
bytes. As with the input block, the first word from the key fills the first column of the
matrix, and so on. The four column words of the key matrix are expanded into a schedule
of 44 words. Each round consumes four words from the key schedule. The figure below
depicts the arrangement of the encryption key in the form of 4-byte words and the
expansion of the key into a key schedule of 44 4-byte words.

Fig 5.3 Arrangement of Encryption key to 4-byte words

5.2.2 THE OVERALL STRUCTURE OF AES

Dept of CSE, NHCE 24


Internal Web Application

Fig 5.4 Structure of AES

For encryption, each round consists of the following steps:

Dept of CSE, NHCE 25


Internal Web Application

1) Substitute bytes,

2) Shift rows.

3) Mix columns.

4) Add round key.

The last step consists of XORing the output of the previous three steps with four words
from the key schedule.

For decryption, each round consists of the following four steps:

1) Inverse shift rows.

2) Inverse substitute bytes.

3) Add round key.

4) Inverse mix columns.

5.2.3 WORKING OF AES

Dept of CSE, NHCE 26


Internal Web Application

The Sub Bytes step

Fig 5.5 Sub Bytes

In the SubBytes step, each byte in the state is replaced with its entry in a fixed 8-
bit lookup table, S; bij = S(aij).

In the SubBytes step, each byte in the matrix is updated using an 8-bit substitution
box, the Rijndael S-box. This operation provides the non-linearity in the cipher. The S-
box used is derived from the multiplicative inverse over GF(28), known to have good non-
linearity properties.

To avoid attacks based on simple algebraic properties, the S-box is constructed by


combining the inverse function with an invertible affine transformation. The S-box is also
chosen to avoid any fixed points (and so is a derangement), and also any opposite fixed
points.

The ShiftRows Step

Dept of CSE, NHCE 27


Internal Web Application

Fig 5.6 Shift Rows

In the ShiftRows step, bytes in each row of the state are shifted cyclically to the
left. The number of places each byte is shifted differs for each row.

The ShiftRows step operates on the rows of the state; it cyclically shifts the bytes
in each row by a certain offset. For AES, the first row is left unchanged. Each byte of the
second row is shifted one to the left. Similarly, the third and fourth rows are shifted by
offsets of two and three respectively. For blocks of sizes 128 bits and 192 bits, the shifting
pattern is the same.

Row n is shifted left circular by n-1 bytes. In this way, each column of the output
state of the ShiftRows step is composed of bytes from each column of the input state.
(Rijndael variants with a larger block size have slightly different offsets).

For a 256-bit block, the first row is unchanged and the shifting for the second,
third and fourth row is 1 byte, 3 bytes and 4 bytes respectively—this change only applies
for the Rijndael cipher when used with a 256-bit block which is not used for AES.

The MixColumns step

Dept of CSE, NHCE 28


Internal Web Application

Fig 5.7 Mix Columns

In the MixColumns step, each column of the state is multiplied with a fixed
polynomial c(x).

In the MixColumns step, the four bytes of each column of the state are combined
using an invertible linear transformation. The MixColumns function takes four bytes as
input and outputs four bytes, where each input byte affects all four output bytes. Together
with ShiftRows, MixColumns provides diffusion in the cipher.

Each column is treated as a polynomial over GF(28) and is then multiplied modulo
x4+1 with a fixed polynomial c(x) = 3 x3 + x2 + x +2. The MixColumns step can also be
viewed as a multiplication by a particular MDS matrix in a finite field. This process is
described further in the article Rijndael mix columns.

Dept of CSE, NHCE 29


Internal Web Application

The AddRoundKey step

Fig 5.8 Add Round Key

In the AddRoundKey step, each byte of the state is combined with a byte of the
round subkey using the XOR operation (⊕).

In the AddRoundKey step, the subkey is combined with the state. For each round,
a subkey is derived from the main key using Rijndael's key schedule; each subkey is the
same size as the state.

The subkey is added by combining each byte of the state with the corresponding
byte of the subkey using bitwise XOR.

Dept of CSE, NHCE 30


Internal Web Application

5.3 THE FUNCTIONS USED ARE AS FOLLOWS

Encrypt(cryptographykey): This function is used to generate cryptographic key from a


random number.

EncryptString(string InputText, string Password): Function is used to encrypt the


input text using secret key.

PasswordDeriveBytes(Password, Salt): It derives a key from a password

RijndaelCipher.CreateEncryptor(): Create an encryptor from the existing Secret Key


bytes.

CryptoStream(memoryStream, Encryptor, CryptoStreamMode.Write): Create a


CryptoStream through which we are going to be processing our data.

The flowcharts for the entire process have been provided in the design section.

Dept of CSE, NHCE 31


Internal Web Application

CHAPTER 6

TESTING
The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and/or a finished
product it is the process of exercising software with the intent of ensuring that the
Software system meets its requirements and user expectations and does not fail in an
unacceptable manner. There are various types of test. Each test type addresses a specific
testing requirement.

TYPES OF TESTS
6.1 UNIT TESTING
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual
software units of the application .it is done after the completion of an individual unit
before integration. This is a structural testing, that relies on knowledge of its construction
and is invasive. Unit tests perform basic tests at component level and test a specific
business process, application, and/or system configuration. Unit tests ensure that each
unique path of a business process performs accurately to the documented specifications
and contains clearly defined inputs and expected results.

6.2 INTEGRATION TESTING


Integration tests are designed to test integrated software components to determine
if they actually run as one program. Testing is event driven and is more concerned with
the basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the

Dept of CSE, NHCE 32


Internal Web Application

combination of components is correct and consistent. Integration testing is specifically


aimed at exposing the problems that arise from the combination of components.

6.3 VALIDATION TESTING


An engineering validation test (EVT) is performed on first engineering prototypes,
to ensure that the basic unit performs to design goals and specifications. It is important in
identifying design problems, and solving them as early in the design cycle as possible, is
the key to keeping projects on time and within budget. Too often, product design and
performance problems are not detected until late in the product development cycle —
when the product is ready to be shipped. The old adage holds true: It costs a penny to
make a change in engineering, a dime in production and a dollar after a product is in the
field.

Verification is a Quality control process that is used to evaluate whether or not a


product, service, or system complies with regulations, specifications, or conditions
imposed at the start of a development phase. Verification can be in development, scale-up,
or production. This is often an internal process.

Validation is a Quality assurance process of establishing evidence that provides a


high degree of assurance that a product, service, or system accomplishes its intended
requirements. This often involves acceptance of fitness for purpose with end users and
other product stakeholders.

The testing process overview is as follows:

Dept of CSE, NHCE 33


Internal Web Application

Figure 6.1: The testing process

6.4 SYSTEM TESTING


System testing of software or hardware is testing conducted on a complete,
integrated system to evaluate the system's compliance with its specified requirements.
System testing falls within the scope of black box testing, and as such, should require no
knowledge of the inner design of the code or logic.

As a rule, system testing takes, as its input, all of the "integrated" software
components that have successfully passed integration testing and also the software system
itself integrated with any applicable hardware system(s).

System testing is a more limited type of testing; it seeks to detect defects both
within the "inter-assemblages" and also within the system as a whole.

System testing is performed on the entire system in the context of a Functional


Requirement Specification(s) (FRS) and/or a System Requirement Specification (SRS).

System testing tests not only the design, but also the behavior and even the
believed expectations of the customer. It is also intended to test up to and beyond the
bounds defined in the software/hardware requirements specification(s).

Dept of CSE, NHCE 34


Internal Web Application

6.5 TESTING OF INITIALIZATION AND UI COMPONENTS

Serial Number of Test Case TC 01

Module Under Test DATABASE Connection

Description When the client program is executed, it


tries to connect to DATABASE (SQL
server) using the data source and
catalogue.
Output If the connection details are correct, the
DATABASE is connected. If the
connection details are incorrect, an
exception is thrown.
Remarks Test Successful.

Table 6.1: Test case for connection setup

Dept of CSE, NHCE 35


Internal Web Application

Serial Number of Test Case TC 02

Module Under Test User Registration

Description A page where users enter their details for


registering themselves to the DATABASE
server.

Input Details of Users such as first name, last


name, age, mail id, etc…

Output If the user’s details are correct and


matches the correct format, user is
registered. If the user is already
registered, an Exception is thrown.

Remarks Test Successful.

Table 6.2: Test Case for User Registration

Dept of CSE, NHCE 36


Internal Web Application

Serial Number of Test Case TC 03

Module Under Test User Login

Description When the user tries to log in, details of


user
Are verified with the DATABASE.

Input UserId and Password and secret key.

Output If the login details are correct, the user is


logged in and user page is displayed. If the
login details are incorrect.

Remarks Test Successful.

Table 6.3: Test Case for User Login

Dept of CSE, NHCE 37


Internal Web Application

Serial Number of Test Case TC 04

Module Under Test File Upload

Description When the user submits the problem,


problem is stored in the DATABASE
after encryption.

Input User selects the file to be submitted.

Output If the file details are correct, the file is


encrypted and stored in DATABASE. A
security key is sent to owner’s mail for
verification.

Remarks Test Successful.

Table 6.4: Test Case for File Upload

Dept of CSE, NHCE 38


Internal Web Application

Serial Number of Test Case TC 05

Module Under Test Secret Key Verification

Description When the user enters the Secret Key for


login or his submitted file, it is verified
with the server.

Input Secret key

Output If the secret Key value matches with that


stored in the DATABASE, User can
verifies the content and can grant
permission for download. If the secret
Key value doesn’t match, a message is
displayed.

Remarks Test Successful.

Table 6.5: Test Case for Verifying Secret Key

Dept of CSE, NHCE 39


Internal Web Application

Serial Number of Test Case TC 06

Module Under Test File modification

Description When unauthorised user changes the


content of file

Output Message from the Admin

Remarks Test Successful.

Table 6.6: Test Case for Modification performed

Dept of CSE, NHCE 40


Internal Web Application

CHAPTER 7

Dept of CSE, NHCE 41


Internal Web Application

SNAPSHOT

Dept of CSE, NHCE 42


Internal Web Application

Fig 7.1 Screen Layout of Main Page

Fig 7.2 Screen Layout of User Login

Dept of CSE, NHCE 43


Internal Web Application

Fig 7.3 Screen Layout of Mail Box

Fig 7.3 Screen Layout of Database Entries

Dept of CSE, NHCE 44


Internal Web Application

Fig 7.4 Snapshot of Admin Main screen

Fig 7.5 Screen Layout for All Files

Dept of CSE, NHCE 45


Internal Web Application

Fig 7.6 Screen Layout of Owner Details

Fig 7.7 Snapshot for Warning to Owner

Dept of CSE, NHCE 46


Internal Web Application

Fig 7.8 Snapshot of Owner Main Screen

Fig 7.9 Screen Layout of File Upload

Dept of CSE, NHCE 47


Internal Web Application

Fig 7.10 Snapshot of Auditor Main Screen

Fig 7.11 Screen Layout for Verification Files

Dept of CSE, NHCE 48


Internal Web Application

Fig 7.12 Screen Layout for Cryptographic key Request

Dept of CSE, NHCE 49


Internal Web Application

Fig 7.13 Screen Layout for File Verification

CHAPTER 8

CONCLUSION AND FUTURE ENHANCEMENT


8.1 CONCLUSION
In this paper we have worked to facilitate the client in getting a proof of integrity
of the data which he wishes to store in the cloud storage servers with bare minimum costs
and efforts. Our scheme was developed to reduce the computational and storage overhead
of the client as well as to minimize the computational overhead of the cloud storage
server. We also minimized the size of the proof of data integrity so as to reduce the
network bandwidth consumption. Many of the schemes proposed earlier require the
archive to perform tasks that need a lot of computational power to generate the proof of
information consistency. But in our scheme the archive just need to fetch and send few
bits of data to the client.

Dept of CSE, NHCE 50


Internal Web Application

Apart from reduction in storage costs data outsourcing to the cloud also helps in
reducing the maintenance.

8.2 FUTURE ENHANCEMENT


 Facility for modifying user detail.
 Access of data through Mobile devices.
 Use of 256 bit AES encryption scheme.
 More interactive user interface.
 Facilities for Backup creation.

REFERENCES
[1] A. Gersho and R. M. Gray, Vector quantization and signal compression.
Massachusetts, USA: Springer Science & Business Media, 1992.
[2] R. M. Gray, “Vector quantization,” IEEE ASSP Magazine, pp. 4–29, April 1984.
[3] S. Alkhalaf, O. Alfarraj, and A. M. Hemeida, “Fuzzy-VQ image compression based
hybrid PSOGSA optimization algorithm,” in IEEE International Conference on Fuzzy
Systems (FUZZ-IEEE). IEEE, 2015, pp. 1–6.
[4] C.-C. Chang, T. S. Nguyen, and C.-C. Lin, “A reversible compression code hiding
using SOC and SMVQ indices,” Information Sciences, vol. 300, pp. 85–99, 2015.
[5] H.-T. Hu, L.-Y. Hsu, and H.-H. Chou, “Variable-dimensional vector modulation for
perceptual-based DWT blind audio watermarking with adjustable payload capacity,”
Digital Signal Processing, vol. 31, pp. 115–123, 2014.
[6] N. Farvardin, “A study of vector quantization for noisy channels,” IEEE Transactions
on Information Theory, vol. 36, no. 4, pp. 799–809, 1990.

Dept of CSE, NHCE 51


Internal Web Application

[7] H. A. S. Leitao, W. T. A. Lopes, and F. Madeiro, “PSO algorithm applied to codebook


design for channel-optimized vector quantization,” IEEE Latin America Transactions, vol.
13, no. 4, pp. 961–967, 2015.
[8] N. Farvardin and V. Vaishampayan, “On the performance and complexity of channel-
optimized vector quantizers,” IEEE Transactions on Information Theory, vol. 37, no. 1,
pp. 155–160, 1991.
[9] Y. Linde, A. Buzo, and R. M. Gray, “An algorithm for vector quantizer design,” IEEE
Transactions on Communications, vol. 28, no. 1, pp. 84–95, 1980.
[10] R. Eberhart and J. Kennedy, “A new optimizer using particle swarm theory,”
MHS’95. Proceedings of the Sixth International Symposium on Micro Machine and
Human Science, pp. 39–43, 1995.
[11] “Particle swarm optimization,” in Proceedings of the IEEE International Conference
on Neural Network, vol. 4, pp. 1942–1948, 1995.
[12] X.-S. Yang, Firefly algorithm, Nature-Inspired Metaheuristic Algorithms. Luniver
Press, 2008.
[13] Nageswara Rao Thota, Srinivasa Kumar Devireddy, “Image Compression Using
Discrete Cosine Transform”, Georgian Electronic Scientific Journal: Computer Science
and Telecommunications 2008|No.3 (17)
[14] Mr. Avinash B. Lambat & Mrs. Richa R. Khandelwal, “A modified algorithm for
codebook design using vector quantization for image compression”, International Journal
of Information Technology and Knowledge Management July-December 2009, Volume 2,
No. 2, pp. 383-386
[15] Carmelo J. A. Bastos-Filho, Augusto C. S. Guimarães, “Multi Objective Fish School
Search”, July 2015.

Dept of CSE, NHCE 52

S-ar putea să vă placă și