Beruflich Dokumente
Kultur Dokumente
ABSTRACT
The software uses a method that is based on the use of an event-related brain signal for data encryption. The idea used is to shuffle the Huffman tree using a random number. A unique key is generated for each individual and hence the encryption is robust to fraudulent attacks as compared to other encryption systems. Further, as Huffman tree is used to encode the data during encryption thereby the method achieves both shrinking and encryption. Here, biometric cryptosystem utilize physiological & behavioural characteristics to generate an encryption key that allows conversion of plain text into cipher text. One of the major hurdles in biometric encryption is the problem of obtaining a biometric encryption key that is secretive enough. Here, a better algorithm is used and data encryption is chosen. Biometric keys are generated for encryption and decryption.
INTRODUCTION
1. INTRODUCTION
A method based on event-related brain signal is used for data encryption. The idea is to shuffle the Huffman tree using an encryption key generated by
electroencephalogram (EEG) signals recorded when the user perceives a common black and white line picture. As different persons have different thought processes, the generated key is unique to each individual and hence the encryption is robust to fraudulent attacks as compared to other encryption systems. Further, as Huffman tree is used to encode the data during encryption, the method achieves both compression and encryption. This pilot study has shown the huge potential of the method as it is impossible to be compromised.
idea is
to
electroencephalogram (EEG) signals recorded when the user perceives a common black and white line picture. As different persons have different thought processes, the generated key is unique to each individual and hence the encryption is robust to fraudulent attacks as compared to other encryption systems. Further, as Huffman tree is used to encode the data during encryption, the method achieves both compression and encryption.
SYSTEM ANALYSIS
2. SYSTEM ANALYSIS
2.1 INTRODUCTION
System Analysis is a detailed study of the various things related to the system Operations and their relationships within and outside the system. The main thing is to find out What is to be done to solve the problems with current system. In this phase the problem or drawbacks of the current system is identified and the necessary actions to solve these problems are recommended. It is the process of gathering and interpreting facts, diagnosing Problems and using the information to recommend improvement to the system. In brief, Analysis specifies what system should do. It is a management technique that heads in designing a new system or improving an existing system. Feasibility analysis and hardware and software requirements will also be analysed in this phase.
5. False acceptance.
characteristics to generate an encryption key that will allow conversion of plaintext (i.e. given data) into cipher text (i.e. encrypted data). The idea is to shuffle the Huffman tree using an encryption key generated by electroencephalogram (EEG) signals recorded when the user perceives a common black and white line picture. Here user gets an EDF file corresponding to the EEG analog signal. This file some field information about the EEG analog signal. As different persons have different thought processes, the generated key is unique to each individual and hence the encryption is robust to fraudulent attacks as compared to other encryption system Further, as Huffman tree is used to encode the data during encryption, the method achieves both compression and encryption. This pilot study has shown the huge potential of the method as it is impossible to be compromised.
DEPARTMENT OF COMPUTER APPLICATION
One of the major hurdles in biometric cryptosystems is the problem of obtaining a biometric encryption key that is secretive enough. For example, fingerprints are left everywhere and iris images can be captured by hidden cameras. Further, most of the Standard biometrics could be easily obtained through force. However, the use of brain signals evoked during the perception of a common black and white line picture as proposed in this study circumvents this hurdle as it is practically impossible to be faked and the user could easily avoid concentrating on the picture during forced situations. But the use of brain signals or electroencephalogram (EEG) in cryptography has not met with huge success simply because of the difficulty in obtaining unique key for each individual. In this study, we show that EEG in gamma band frequencies from specific channels could be utilized to obtain repeatable and unique encryption key. Further, the method introduces data compression as well (though this is not the main objective) as it is based on the use of the encryption key to shuffle leaf nodes of a Huffman tree obtained with Huffman data coding . The Proposed System consists of a Huffman Tree encoding and encryption with EEG signals. The EDF files are taken from EEG Signals images and scanned horizontally and the wave patterns are applied on the Huffman tree and encrypted. So in this way a better secured encryption is achieved.
10
11
12
ANALYSIS MODELING
13
1. Use cases
A use case describes a sequence of actions that provide something of measurable value to an actor and is drawn as a horizontal ellipse. It represents
14
2. Actors
An actor is a person, organization or external system that plays a role in one or more interactions with your system. Actors are drawn as stick figures. It represents
3. Associations
Associations between actors and use case are indicated in use case diagrams by solid lines. An association exists whenever an actor is involved with an interaction described by a usecase.It represent
15
Members
UML provides mechanisms to represent class members, such as attributes and methods, and additional information about them.
Visibility
To specify the visibility of a class member (i.e., any attribute or method) there are the following notations that must be placed before the member's name + Public - Private # Protected
DEPARTMENT OF COMPUTER APPLICATION
16
Scope
The UML specifies two types of scope for members: instance and classifier. Classifier members are commonly recognized as "static" in many programming languages. In the case of instance members, the scope is a specific instance. For attributes, it means that its value can vary between instances. For methods, it means that its invocation affects the instance state, in other words, affects the instance attributes. Otherwise, in the classifier member, the scope is the class. For attributes, it means that its value is equal for all instances. For methods, it means that its invocation does not affect the instance state. To indicate that a member has the classifier scope, its name must be underlined. Otherwise, as default, the instance scope is considered.
Relationships
A relationship is a general term covering the specific types of logical connections found on class and objects diagrams. UML shows the following relationships:
Association
An association represents a family of links. Binary associations (with two ends) are normally represented as a line, with each end connected to a class box. Higher order associations can be drawn with more than two ends. In such cases, the ends are connected to a central diamond. An association can be named, and the ends of an association can be adorned with role names, ownership indicators, multiplicity, visibility, and other properties.
DEPARTMENT OF COMPUTER APPLICATION
17
There are four different types of association: bi-directional, uni-directional, Aggregation (includes Composition aggregation) and Reflexive. Bi-directional and uni-directional associations are the most common one. For instance, a flight class is associated with a plane class bi-directionally. Association represents the static relationship shared among the objects of two classes. Example: "department offers courses", is an association relation.
Aggregation
Aggregation is a variant of the "has a" or association relationship; aggregation is more specific than association. It is an association that represents a part-whole or part-of relationship. As a type of association, an aggregation can be named and have the same adornments that an association can. However, an aggregation may not involve more than two classes. Aggregation can occur when a class is a collection or container of other classes, but where the contained classes do not have a strong life cycle dependency on the container essentially, if the container is destroyed, its contents are not. In UML, it is graphically represented as a hollow diamond shape on the containing class end of the tree with lines that connect contained classes to the containing class.
Composition (Aggregation)
Class diagram showing Composition between two classes at top and Aggregation between two classes at bottom Composition is a stronger variant of the "owns a" or association relationship; composition is more specific than aggregation. Composition usually has a strong life cycle dependency between instances of the container class and instances of the contained classes. If the container is destroyed, normally every instance that it contains is destroyed as well. The UML graphical representation of a composition relationship is a filled diamond shape on the containing class end of the tree of lines that connect contained classes to the containing class.
18
distinguish it from composition's "physical" containment. The whole of a composition must have a multiplicity of 0.1 or 1, indicating that a part must belong to only one whole; the part may have any multiplicity. For example, consider University and Department classes. A department belongs to only one university, so University has multiplicity 1 in the relationship. A university can have multiple departments, so Department has multiplicity
19
data indicated by incoming and outgoing arrows. These are expanded level by level each explain its process in detail. Process is numbered for easy identification and is normally labeled in block letters. Each data flow is labeled for easy understanding.
DESIGN NOTATION
Data flow programming is a means of representing a system at any levels of details with a graphic network of symbols showing the data flow, data stores, data processes and source or destination. 1. Square: -This defines source of destination of data
2. Arrow: 3. Circle:
-Arrow which shows data flow -Which represents a process that transforms Incoming data into Outgoing flow.
4. Open Rectangle: -This shows data store or a temporary repository of data. DFDs can be hierarchically organized, which help in partioning and analysing large systems. As a first step, one DFD can depict an entire system, which gives the system overview. It is called Context Diagram of level 0 DFD. The Context diagram can be further expanded. The successive expansion of a DFD from the context diagram to those giving with an overview and then working out the details. The six rules for constructing data flow diagram: 1. Arrow should not cross each other. 2. Squares, circles and filters must bear names. 3. Decomposed data flow squares and circles can be have same names. 4. Choose meaning full names for data flows. 5. Draw all data flows around the outside of the diagram.
20
Entity Relationship Attribute Entities are distinct things in the enterprise, relationships are meaningful
interactions between the objects and attributes are the properties of the entities and relationship. The building blocks entities relationships and attributes. An entity may be defined as a thing which is recognized as being capable of an independent existence and which can be uniquely identified. An entity is an abstraction from the complexities of some domain. When we speak of an entity we normally speak of some aspect of the real world which can be distinguished from other aspects of the real world. An entity may be a physical object such as house or a car, an event such as a house sale or a car service, or a concept such as a customer transaction or order. Although the term entity is the one most commonly used. Following Chen should really distinguish between an entity and an entity-type. An entity-type is a category. An Entity strictly speaking, is an instance of a given entity-type. There is usually many instance of an entity-type. Because the term entity-type is somewhat cumbersome, most people tend to use the term entity as a synonym for this term. Entities can be thought of as nouns. Examples: a computer, an employee, a song, a mathematical theorem. A relationship captures how two or more entities are related to one another. Relationships can be thought of as verbs, li9nking two or more nouns. Examples relationship between a company and a computer, supervises relationship between an employee and department, performs relationship between an artist and a song, proved relationship between a mathematician and a theorem.
DEPARTMENT OF COMPUTER APPLICATION
21
The models linguistic aspect described above is utilized in the declarative database query language ERROL, which mimics natural language, constructs. Entities and relationships can both have attributes. Example: an employee entity might have a Social Security Number (SSN) attributes the proved relationship may have a date attributes every entity (unless it is a weak entity) must have a minimal set of uniquely identifying attributes, which is called the entity primary key. Entity-relationship diagram dont show sing le entities or single instance of relations. Rather show entity sets and relationship Example a particular song is an entity .The collection of all songs in a database is an entity set. The eaten relationship between a child and her lunch is a single relationship. The sets of all such childlunch relationships in a database are a relationship set. In other words, a relationship set corresponds to a relation in mathematics, while a relationship corresponds to a member of the relation. Certain cardinality constraints on relationship sets may be indicated as well.
Diagramming conventions
Entity sets are drawn as rectangle, relationship sets as diamond. If an entity set participate in a relationship set, they are connected with a line.Attributes are drawn as oval and are connected with a line to exactly one entity or relationship set. Cardinality constraints are expressed as follows: 1. A double line indicates a participation constraint ,totality or subjectivity all entities in the entity set must participate in at least one relationship set; 2. An arrow from entity set to relationship set indicates a key constraints, entity of the entity set can participate in at most one relationship in the relationship set. 3. A thick line indicates both, i.e. objectivity each entity in the entity set is involved in exactly one relationship. 4. An underlined name of an attribute indicates that it is a key two different entities or relationship with this attribute always have different values for this attribute. Attributes are often omitted as they can clutter up a diagram other diagram techniques often list.
22
Symbol Entities
Meaning
Relationship
Attributes
Connections
Graphical Notations
States are shown as round cornered rectangles, with the name enclosed Transitions are shown as links from the source state to the target state Transitions can be labelled as [Event-List] [Guard] [/Action]
STATE
23
An event is an occurrence of a stimulus that can trigger a state transition. If there are multiple events, each is separated by a vertical bar A guard is a Boolean condition that must evaluate to true for the transition to take place The action specifies the action to be carried out when the transition is madeAn initial state is shown as a filled circle.
Each state may also have an entry action (entry/Action) and an exit action (exit/Action)Basically, when an event occurs that matches one of the events specified in the label of the transition and all the guards specified in the label of the transition evaluate to true, the transition is triggered and the action specified in the label of the transition, if any, is performed and the object enters the destination state of the transition States can be nested (the nested state diagram is enclosed in a rectangle) For sequential nesting, a transition enters the initial state of the nested states and, at any point in time, an object can be in one of the nested statesFor concurrent nesting, a transition simultaneously enters the initial states of each concurrent state and, at any point in time, an object can be in one of the nested states in each concurrent path.
24
SYSTEM SPECIFICATION
25
Hard Disk Capacity 80 GB or Above. EEG Device Mother board EEG Waveform Recorder Intel 945
26
SOFTWARE REQUIREMENTS
Tools Back End Operating System Language Web Server Visual Studio 2005 My SQL Server 2008 Windows 7
C#
IIS 5.0
27
.NET Framework 3.5 and by default configures compiled assemblies to run on .NET Framework 3.5. For Visual C++, Visual Studio adds a new version of Microsoft Foundation Classes (MFC 9.0) that adds support for the visual styles and UI controls introduced with Windows 7.
objects from dynamic programming languages, such as Python or Ruby COM objects accessed through I Dispatch ordinary .NET types accessed through reflection objects with changing structure, such as HTML DOM script objects data readers and other user defined dynamic objects
While C# remains a statically typed language, we aim to vastly improve the interaction with such objects. A secondary theme is co-evolution with Visual Basic. Going forward we will aim to maintain the individual character of each language, but at the same time important new features should be introduced in both languages at the same time. They should be differentiated more by style and feel than by feature set. The new features in C# 4.0 are,
Dynamic Support
Visual C# 2010 provides support for late binding to dynamic types by introducing a new type, dynamic. This addition enables many new scenarios, including simplified access to COM APIs such as the Office Automation APIs, to dynamic APIs such as Iron Python libraries, and to the HTML Document Object Model (DOM).
Office Programmability
Access to COM interfaces, including the Office Automation APIs, is greatly enhanced by the addition of named and optional arguments, the dynamic type, indexed properties, and optional ref modifiers.
28
C# LANGUAGE
C# is a new language created by a team of people at Microsoft. C# is a powerful and flexible programming language. Like all programming languages, it can be used to create a variety of applications. C# was created as an object-oriented programming (OOP) language. C# removes much of the complexity and trouble caused by pointers. In C#, automatic garbage collection and type safety are an integral part of the language. C# enables programmers in quickly building solution for Microsoft.net platform. It was announced in July 2000 and is built on the shoulders of not only C++, but also on Java. Perhaps the most important aspect of java that comes over C# is the emphasis on security, particularly on the use of pointers. C# type systems automate memory management thereby freeing developers from time consuming, by prone memory management. The C# type system is unified everything is an object, Microsoft says that C# brings the power of C# with ease of VB. C# is a modern language, features such as exception handling, garbage collection extensible data types, code
29
security are features that are expected in a modern language. C# supports modular programming, helps to develop GUI application and also having the power of .NET platform.
ASP.NET
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .NET language.
ASP.NET ARCHITECTURE
30
ADO.NET
ADO.NET provides consistent access to data sources such as Microsoft SQL Server, as well as data sources exposed via OLE DB and XML. Data-sharing consumer applications can use ADO.NET to connect to these data sources and retrieve, manipulate, and update data.ADO.NET cleanly factors data access from data manipulation into discrete components that can be used separately or in tandem. ADO.NET includes .NET data providers for connecting to a database, executing commands, and retrieving results. Those results are either processed directly, or placed in an ADO.NET Dataset object in order to be exposed to the user in an ad-hoc manner, combined with data from multiple sources, or remote between tiers. The ADO.NET Dataset object can also be used independently of a .NET data provider to
DEPARTMENT OF COMPUTER APPLICATION
31
manage data local to the application or sourced from XML.The ADO.NET components have been designed to factor data access from data manipulation. There are two central components of ADO.NET that accomplish this: the Dataset, and the .NET data provider, which is a set of components including the Connection, Command, Data Reader, and Data Adapter objects. The ADO.NET Dataset is the core component of the disconnected architecture of ADO.NET. The Dataset is explicitly designed for data access independent of any data source. As a result it can be used with multiple and differing data sources, used with XML data, or used to manage data local to the application. The other core element of the ADO.NET architecture is the.NET data provider, whose components are explicitly designed for data manipulation and fast, forward-only, read-only access to data. The Connection object provides connectivity to a data source. The Command objects enables access to database commands to return data, modify data, run stored procedures, and sends or retrieve parameter information. The Data Reader provides a high-performance stream of data from the data source. Finally, the Data Adapter provides the bridge between the Dataset object and the data source.
Database
To develop ASP.NET database applications you need to install SQL Server 2005. Use of SQL Server with ASP.NET is recommended as it's said that SQL Connections are 70% faster than OLEDB Connections. Also, performance improves dramatically when you use SQL Server with ASP.NET.
ASP.NET Features
ASP.NET is not just a simple upgrade or the latest version of ASP. ASP.NET combines unprecedented developer productivity with performance, reliability, and deployment. ASP.NET redesigns the whole process. It's still easy to grasp for new comers but it provides many new ways of managing projects. Below are the features of ASP.NET. 1. 1. 1.Flexible Language Options ASP.NET lets you leverage your current programming language skills. Unlike classic ASP, this supports only interpreted Error. And Script, ASP.NET now supports more than 40 .NET languages (built-in support for VB.NET, C#, and JScript.NET), giving you unprecedented flexibility in your choice of language.
DEPARTMENT OF COMPUTER APPLICATION
32
33
Powerful tools
Simplicity:
ASP.NET makes it easy to perform common tasks, from simple form submission and client authentication to deployment and site configuration. For example, the ASP.NET page framework allows you to build user interfaces that cleanly separate application logic from presentation code and to handle events in a simple, Visual Basic - like forms processing model. Additionally, the common language runtime simplifies development, with managed code services such as automatic reference counting and garbage collection
Manageability:
ASP.NET employs a text-based, hierarchical configuration system, which simplifies applying settings to your server environment and Web applications. Because configuration information is stored as plain text, new settings may be applied without the aid of local administration tools. This "zero local administration" philosophy extends to deploying ASP.NET Framework applications as well. An ASP.NET Framework application is deployed to a server simply by copying the
34
necessary files to the server. No server restart is required, even to deploy or replace running compile code.
Security:
With built in Windows authentication and per-application configuration, you can be assured of security.
Database
SQL Server 2008
The next version of SQL Server, SQL Server 2008, was released (RTM) on August 6, 2008[11]and aims to make data management self-tuning, self organizing, and self maintaining with the development of SQL Server Always On technologies, to provide nearzero downtime. SQL Server 2008 also includes support for structured and semi-structured data, including digital media formats for pictures, audio, video and other multimedia data. In current versions, such multimedia data can be stored as BLOBs (binary large objects), but they are generic bit streams. Intrinsic awareness of multimedia data will allow specialized
DEPARTMENT OF COMPUTER APPLICATION
35
functions to be performed on them. According to Paul Flessner, senior Vice President, Server Applications, Microsoft Corp., SQL Server 2008 can be a data storage backend for different varieties of data: XML, email, time/calendar, file, document, spatial, etc as well as perform search, query, analysis, sharing, and synchronization across all data types. Other new data types include specialized date and time types and a Spatial data type for location-dependent data. Better support for unstructured and semi-structured data is provided using the new data type, which can be used to reference any file stored on the file system. Structured data and metadata about the file is stored in SQL Server database, whereas the unstructured component is stored in the file system. Such files can be accessed both via Win32 file handling APIs as well as via SQL Server using T-SQL; doing the latter accesses the file data as a BLOB. Backing up and restoring the database backs up or restores the referenced files as well. SQL Server 2008 also natively supports hierarchical data, and includes T-SQL constructs to directly deal with them, without using recursive queries. The Full-text search functionality has been integrated with the database engine. According to a Microsoft technical article, this simplifies management and improves performance. Spatial data will be stored in two types. A "Flat Earth" (GEOMETRY or planar) data type represents geospatial data which has been projected from its native, spherical, coordinate system into a plane. A "Round Earth" data type (GEOGRAPHY) uses an ellipsoidal model in which the Earth is defined as a single continuous entity which does not suffer from the singularities such as the international dateline, poles, or map projection zone "edges". Approximately 70 methods are available to represent spatial operations for the Open Geospatial Consortium Simple Features for SQL, Version 1.1.
36
Server 2008 instances and services including relational databases, Reporting Services, Analysis Services & Integration Services. SQL Server 2008 R2 includes a number of new services,[25] including Power Pivot for Excel and Share Point, Master Data Services, Stream Insight, Report Builder 3.0, Reporting Services Add-in for Share Point, a Data-tier function in Visual Studio that enables packaging of tiered databases as part of an application, and a SQL Server Utility named UC (Utility Control Point), part of AMSM (Application and Multi-Server Management) that is used to manage multiple SQL Servers. The first SQL Server 2008 R2 service pack (Service Pack 1) was released on July 11, 2011.
Platform Windows 7
Windows 7 is the latest release of Microsoft Windows, a series of operating systems produced by Microsoft for use on personal computers, including home and business desktops, laptops net books, tablet PCs, and media centre PCs. Windows 7 was released to manufacturing on July 22, 2009, and reached general retail availability on October 22, 2009. Windows 7's server counterpart, Windows Server 2008 R2, was released at the same time. Unlike Windows Vista, which introduced a large number of new features, Windows 7 was intended to be a more focused, incremental upgrade to the Windows line, with the goal of being compatible with applications and hardware with which Windows Vista was already compatible. Presentations given by Microsoft in 2008 focused on multi-touch support, a redesigned Windows shell with a new taskbar, referred to as the Super bar, a home networking system called Home Group, and performance improvements. Some standard applications that have been included with prior releases of Microsoft Windows, including Windows Calendar, Windows Mail, Windows Movie Maker, and Windows Photo Gallery, are not included in Windows 7; most are instead offered separately at no charge as part of the Windows Live Essentials suite. Windows now runs much faster than the other operating system (Such as Vista) while consuming lesser amount of resources. It reduces the background activities just by triggering start of important services when they actually required. So Network Discovery service will only start when you actually connect your computer to a network, rather than
DEPARTMENT OF COMPUTER APPLICATION
37
going this process over and over in background. Thus services will run only when they are required and stopping them will release all the resources that it was utilizing. Windows 7 includes new features and capabilities that you can use in your applications to improve the user experience.
38
39
Status quo Problem definition Technical development Solution integration Status quo represents the current state of affairs. Problem definition identifies
the specific problem to be solved. Technical definition solves the problem though the application of some technology and solution integration delivers to those who requested the result in the first place.
Problem definition
Status quo
Technical development
Solution Integration
40
System/Information Engineering
System engineering and analysis encompass requirements gathering at the system level with a small amount of top level design and analysis.
Analysis
The requirements gathering process intensified and focused specially on software. Requirements for both system and software are documented and viewed with the customer.
Design
Software design is actually multi step process that focuses on four distinct attributes of a program data structure, software architecture, interface representations and procedural detail. The design process translates requirements into representational software that can be assessed for quality before coding begins.
Coding
The design must be translated into machine readable code. The code generation step performs this task.
DEPARTMENT OF COMPUTER APPLICATION
41
Testing
Once code has been generated, program testing begins. The testing process focus on the logical internals of the software, ensuring that all statements have been tested, and on the functional externals, i.e. Conducting tests to uncover errors and ensures that defined input will produce actual; results that agree with required results.
Installation
This step occurs once the product has been tested and certified as a fit for use, and involves preparing the system or product for installation and use at customer site. Delivery may take place via the internet or physical media, and the deliverable is typically tagged with the formal revision number to facilitate updates at a later date.
Maintenance
This step occurs after installation, and involves making modification to the system or an individual component to alter attributes or improve performance. These modifications arise either due to change requests initiated by the customer, or defects uncovered during live use of system. Typically, every change made to the product during the maintenance cycle is recorded and a new product release (called a maintenance release and exhibiting a updated version number) is performed to enable the customer to gain the benefit of the update.
42
SYSTEM DESIGN
43
3.SYSTEM DESIGN
3.1 INTRODUCTION
Design phase is the phase in which the detailed design of the system, selected in the study phase is accomplished. The main activities performed during this phase include allocation of functions between the computer programs, equipped and manual operation, the design of the database used, specification of the requirements for input, processing and output, and the defining of the system and computer program test requirements. The normal procedure is required, from the system based on the user requirements. Once this is defined in details the input is worked back and appropriate codes are designed for easily handling of various types of files. Design goes to logical and physical system of development. Logical design reviews present system prepared input and output specification, makes edit security and control specification and details of the implementation and specified a new hardware and software. SYSTEM DESIGN: As mentioned before system design is the process of identifying the main component of the system without going to the internal details. Each component is considered to be a black box, meaning that for given input, a specific output is produced, but details of the input is being processed is not known. Each component in the phase is called a module. This phase also emphasis the interactions between the modules. In this phase the design selected in the study phase is accomplished. The main activities performed during phase include the following: The allocation of functions between the programs. Selection of equipment and manual operation. The design of the database used.
DEPARTMENT OF COMPUTER APPLICATION
44
Specification of the requirement for input, processing and outputs Defining of system and computer program test requirements
The various activities to be performed for the overall input processors are: Data recording at the source Data transfer to input form Data conversion to computer acceptable mode Data validation Data flow control Data correction if necessary
45
Computer input is most important and directs source of information to the user. Efficient intelligible output design should improve systems relationships with the user and help in decisions making. Printouts should be designed around the output requirements of the user. Outputs also provide a mean of storage by copying the results for later reference in consultation. There is chance that some of the end-users will not actually operate the input data or information system through workstations, but will use the output from the system. Two phases of the output design are: Output definition Output specification Output definition takes into account the type of output contents, its frequency and its volume. The appropriate output media is determined for outputs. Once the output media is chosen, the detail specifications of the output documents are carried out. The nature of output required from the proposed system is determined during the logical design stage itself. The physical design stage takes the outline from the logical design and produces the output as specified during the logical design phase.The types of outputs are
46
47
5. Accuracy and integrity: Data quality and content remain constant. Integrity controls detects the data inaccuracies. 6. Recovery from failure: The system must recover quickly after it is down with no loss of transactions. 7. Privacy and security: security measure must be taken to prevent unauthorized access and destruction from natural calamities. 8. Performance: It depends on the nature of the user database dialog.
1. Login
Primary key: User_ID Field Name User_ID Username Password Address Email Phone Data type int nvarchar(50) nvarchar(50) nvarchar(250) nvarchar(50) numeric(15,0) Constraints Primary Key Not null Not null Not null Not null Not null Description User id Name of user Password Users Address Email Address Phone number
2. EEG Sample
Primary Key: EEGSample_ID ForienKey: User_ID Field Name EEGSample_ID User_ID EEG_Sample_Type Sample_Name Age Description EEG_Sample Analysis_Report Data type Int nvarchar(20) nvarchar(225) nvarchar(225) Int Ntext Image Ntext Constraints Primary Key Forienkey Not null Not null Not null Not null Not null Not null Description Sample id Users id Type of sample Name of sample Age Description of sample Sample Report
48
3. Huffman Tree
PrimaryKey: Tree_ID ForienKey: User_ID Field Name Tree_ID User_ID Sample_ID Tree Name Tree Description Huffman Tree Data type int int int nvarchar(255) ntext image Constraints Primary Key ForienKey Not null Not null Not null Not null Description Tree id Users id Samples id Name of tree Description of tree Image of tree
4.Keys
PrimaryKey: Key_ID ForienKey: User_ID Field Name Key_ID User_ID Sample_ID Key_Name Reference_Key Referenced_Key Data type int int int nvarchar(255) ntext Ntext Constraints Primary Key Forien key Not null Not null Not null Not null Description Key id Users id Samples id Name of key Reference key Referenced Key
49
3.5.1.1 Inputs
Here the input is EEG Signals which helps for secure encoding of data.
3.5.1.2 Processing
Here the EEG which is of EDF extension is converted to text files which is considered as the sample for the system and its information such as name, description age is given along with the sample.
3.5.1.3 Outputs
This module provides the text file of EDF file along with its description as output.
3.5.2.1 Inputs
The input is the sample which is a text file.
3.5.2.2 Processing
Here the nodes are created with its size should less than the total size of the nodes. Then, the Huffman nodes are shuffled. Thus, the nodes are randomly rearranged and the Huffman tree is saved. This information would be stored in the database.
3.5.2.3 Outputs
The module provides a Huffman tree as the final outcome.
50
3.5.3.1 Inputs
Here the input is the data to be encrypted or decrypted, EEG sample and the Huffman tree information.
3.5.3.2 Processing
The sample is given as input and it is hex encoded. Thus, the referenced key is obtained. Then the reference key is generated using key generator. Now, the referenced key is identified using the reference key. Then the referenced key is shuffled using Huffman tree and allowed to shrink using shrinking algorithm and the key is generated. Using this key, the file is encrypted. The reverse process happens in decryption.
3.5.3.3 Outputs
Encrypted or decrypted data as required is given as the output of the system.
51
3.5.4.1 Inputs
The user has to provide his/her login name and password to enter the system as input.
3.5.4.2 Processing
The system checks for the user name and password and if its valid then the user can enter the system or else he/she is not allowed to enter the system .The system also checks for new users to register in to the system.
3.5.4.3 Outputs
The system allows the authorized user to login and an unauthorized user is denied to enter the system .It also allows a new user to register on to the system.
52
DATA ENCRYPTION
USER LOGIN
INPUT SAMPLE
BROWSE FILE
DECRYPTION
DECRYPT
ENCRYPT
53
54
55
White Box Testing White box testing of software is predicted on close examination of procedural details. The status of project may be tested at various points to determine whether the expected or asserted status is corresponding to the actual status. Using this , the following test cases can be arrived: Exercise all logical conditions on there true and false side Execute all loops within there boundaries and their operation bounds Exercise internal data structure to ensure there validity
Testing Methods
System testing is the stage of implementation, which is aimed at ensuring that, these system works efficiently before the real operation commences. The system testing is intended to find out errors in the system .However this is virtually impossible since no programs will be free and clear of errors. Therefore useful and practical approach to tracing the errors should be employed. System testing is the critical aspect of software quality assurance and represents the ultimate review of specification, design and coding. Testing is the process of executing the program with the explicit intention of finding errors that makes the program fails. Testing is vital to the success of the system. During testing the system is used experimentally to ensure that the software does not fail. That is, it will run according to its specifications and in the way user expects too. The system is tested with special test data and the results are examined for their validity. Test cases are devised with these purposes in mind. It is a series of data that the system will process as a normal input. The software units developed in the system are modules and routines that are assembled and integrated to perform the required function of the system.
Types of Testing
Testing represents an interesting anomaly for the software. During earlier definition and development phases, it was attempted to build software from abstract concepts to tangible implementation. The testing is responsible to ensure that the product that has built performs the way that the detailed design documentation specifies.
56
There are different types of system testing methods and some of them are:
UNIT TESTING
In unit testing different modules are tested against the specification produced during the design of modules. Unit testing is essential for verification during the coding phase. The aim is to test the internal logic of the modules. The tests are carried out during the programming stage itself. Manage sample form gives the input sample .Huffman tree form allows to create the Huffman tree using the sample information. Encryption& decryption form shows the encrypted form and decrypted form respectively.
INTEGRATION TESTING
In unit testing different modules are tested against the specification produced during the design of modules. Unit testing is essential for verification during the coding phase. The aim is to test the internal logic of the modules. The tests are carried out during the programming stage itself. Each module like key generation and encoding of data have to be tested under this project to uncover the errors associated with interface of the modules.
VALIDATION TESTING
At the culmination of integration testing, software is completely assembled as a package; interfacing errors have been recovered and corrected and a final series of a software tests-validation tests begin. Validation testing can be defined in many ways but a simple definition is that validation succeeds when the software functions in a manner that can be reasonably expected by the customer. Data encryption using brain signals offers that the encryption is robust to fraudulent attacks as compared to other encryption systems.
OUTPUT TESTING
Output testing is useful to know the valid output of the current application system. Here we gives the input text file to do the encryption process. We have two separate forms for encrypting and decrypting the input data. After performing validation test, the next phase is output test of the system, since no system could be useful if it does not produce desired output in the desired format .Here we gives encrypted file as input to the decrypting form.
57
4.2
System Implementation
Implementation is the stage of the project where the theoretical design is
turned into working system, in this stage the installation of the package in the real environment, to the satisfaction of the intended user and the operation of the system. Implementation includes all those activities that take place to convert from the old system to new one. The new system may be totally new, replacing an existing system manual or automate system or it may be a major modification to an existing system. Proper implementation is essential to provide a reliable system to meet organization requirements. Successful implementation may not guarantee improvement in the organization using the new system, but improper installation will prevent it. The process of putting the developed system in actual use is called system implementation. This include all those activities that take place convert from the old system to new system can be implemented only after through testing is done and if it is found to be working according to the specification. The system personnel check the feasibility of the system. The most crucial stage is achieving a new system for the user that will work efficiently. It involves careful planning, investigation of the current system and its constraints on implementation, design of methods of achieve the changeover. The more complex the system being implemented, the more involved will be the system analysis and the design required effort required just for implementation. The implementation stage involves following tasks: 1. Careful planning. 2. Investigating of system and constraint. 3. Design of methods to achieve the changeover. 4. Training of staff in the change over phase. 5. Evaluation of the changeover method.
Training
After providing the necessary basic training on the computer awareness the users will have to be trained on the new system such as screen such as screen flow, screen design, type of help on the screen, type of errors while entering the data the corresponding validation check at each entry and the ways to correct the data entered.
DEPARTMENT OF COMPUTER APPLICATION
58
It should then cover information needed by the specific user/group to use the system while imparting the training of the program on the application.
Conversion
It is the process of performing all of the operation that result directly in the turnover of the new system to the user. Conversion has two parts: The creation of the conversion plan at the start of the development phase and the implementation of the plan throughout the development phase The creation of a system change over plan at the end of the development phase and the implementation of the plan at the beginning of the operation phase.
4.3 DEBUGGING
Once the software is fully developed and implemented, the company starts to use the software. The company also goes and more division can be attached to the company, or the database of the company can grow in size. So after some time the software, which has been installed, needs some modification. If the software need modification all the steps needed to develop new software has to be executed. The need has to be studied, the design has to be made and coding has to be done. Then the new module has to be connected to the existing software modules. Once the software is working perfect also we have to do routine testing and any new bug is found out, immediately it has to be fixed. No software ever developed will be bug free forever. When a new situation arises, the software cans creat an error, but if it is found out and repaired the software will not be causing more problems. Always
DEPARTMENT OF COMPUTER APPLICATION
59
maintenance has to be done on the software, for to make the software work perfectly without any errors. Maintenance of the software is one of major step in the computer animation. Software which is developed by the engineer, should undergo maintenance process in regular interval of time goes on new problems arise and it must be corrected accordingly. Maintenance and enhancement are a long term process. In this project, the maintenance is carried over by the staff concern. Since they are the key person to develop this project they know clearly about the project and coding structure. So, they will change the coding whenever required. Regarding the project maintenance, the changes will occur then and there according to the conditions. Various types of maintenance that can be made are: Corrective maintenance Adaptive maintenance Prefecture maintenance Reverse engineering Re engineering The staff in the concern are parted each and every level of the project. So they dont need any training of software. During the development process they sit and entered each and every entry to test the project, they themselves used this is an opportunities to take training in the software so extra training is not needed for the user.
4.4
SYSTEM SECURITY
Any system developed should be secured and protected against possible hazards. Security measures are provided to prevent unauthorized access of the database at various levels. Only the authorized user should be allowed to operate the system. To ensure job seekers. They have options to change there password after the successful login. The username and password mechanism is to be provides at the administrator and the user level to ensure security. The software restricts the administrator, recruiter and job seeker to enter the system only through login utility and exit using logout utility in the proposed project. Form level checks can be given to control the data access. An uninterrupted power supply should be provided so that the power failure or voltage
DEPARTMENT OF COMPUTER APPLICATION
60
fluctuation will not erase the data. The login details are kept confidential and cannot be used by others. Input data is also validated before they are posted to the database. This can be achieved by using validation controls available with ASP.Net, which has built in security, features which hides the business logic from end users. User Recognition When a user is entered his identity is recognised by the system using username and password retrieval. Menu Access Menu access is given to each category of employee according to their role in the organization. Each user will get separate menu for he has given access is the system. User Session A user is created when user enters to the system he can access the services of the system till he logged out of the system.
4.5
more reliable and compatible with the other environments. The application proves better extensibility and flexibility for future enhancements. Any further requirement application is possible with the same features guaranteed. The design of this software is in such a way that the addition of any new module if necessary is possible without affecting the integrity of the present system. The existing system can be modified in such a way that it can be used by other firms with similar requirements. This software is more compatible for future. Due to the high growth of the hacking technology almost all security systems are becoming not useful. Here hackers cant do more with it.
61
CONCLUSION
62
CONCLUSION
A novel method of data encryption using event-related EEG has been proposed. EEG from gamma band spectral range from specific channels was used to generate the biometric encryption key. This key was then used to shuffle leaf nodes in the Huffman tree generated from the data with Huffman coding, thereby changing the code words that would be necessary during decoding. The complete key generation process takes slightly more than one second (therefore comparable to any other bio-encryption method) and combined with the simple but effective Huffman tree shuffling/de-shuffling, the whole procedure is fast enough for system implementation. Experimental study with biometric encryption key generated by 10 subjects gave good TP rates over 40 trials conducted at different times. Though the TN rates are somewhat high for system implementation, this is a pilot study and we believe that further work will improve the situation. The possible sources of error are that the subject does not concentrate on looking at the picture and due to noise in recording the EEG data. With this lower error rate, the proposed data encryption using EEG is especially advantageous over other biometrics because of its robustness to withstand fraudulent attacks. Further, data is not only encrypted but compressed as well. The only major disadvantage of the method lies in the cumbersome EEG data recording using wet electrodes but the current significant advances in dry electrode design would allow EEG to be recorded using a simple cap/hat. We hope that this study will stimulate and encourage further exploration on this rather neglected but promising biometric cryptosystem.
63
APPENDICES
A.DIAGRAMS
64
1 USECASE DIAGRAM
Login Process
Sample creation
Data Encryption
Data Decryption
65
2. CLASS DIAGRAM
Manage Sample
Currentsample SampleInfo SampleType Next() Previous() Add() HuffmanTree EEG Sample SampleIndex SampleName Load() Save() Shuffle()
66
1st Level
67
68
69
70
4. ENTITY-RELATIONSHIP DIAGRAM
71
USERID
USERNAME PASSWORD
EEGSampleID
EEGSampleType EEGSamplename
status
sampleID
COMPRESS
HuffmanTree
KeyID
sampleID
Keys
KeyGeneration
72
B .CODE SNIPPET
73
CODING DESCRIPTION
Connection class
In this class we uses c# .net as front end and MS Access as back end. data encryption_db.mdb is the data base used in the system. Here it provides OLEDB connection to connect with MS Access. OleDb connection creates the connection with the tables in the data encryption_db.mdb. Login user method reads the user name and password for login process. Get Sample for User method for reading the browsed samples. It stores in an array object[][], Add New User, Add New Key, Add new EEG sample,Add New Huffman Tree methods are used for specific functions. All these methods are defined in the DBUtils connection.
Key Creation
Encryption Decryption Key Creator Form class contains the methods for creating key.create key button shows the key creator form .it contains one textbox for giving the key name. Create key button creates the key. One message box displays showing key added and 128 key is displayed.
Connection class
public static class DBUtils { private static String ConnectionString = "Provider=SQLOLEDB;Data Source=USER-PC;Persist Security Info=True;OLE DB Services=-1;Integrated Security=SSPI;Initial Catalog=DataEncryption"; private static OleDbConnection connection; private static bool ShowThreadExceptions = false; public static int LoggedInUserId; public static bool Initialize(bool showThreadExceptions) { MessageBox.Show(Application.StartupPath); try { DBUtils.ShowThreadExceptions = showThreadExceptions;
74
DBUtils.connection = new OleDbConnection(DBUtils.ConnectionString); MessageBox.Show(DBUtils.connection.DataSource); DBUtils.connection.Open(); } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return false; } return true; } public static bool UnLoad() { try { DBUtils.connection.Close(); } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return false; } return true; } public static object[] LoginUser(String userName, String password) { try { OleDbCommand command = new OleDbCommand("SELECT * FROM db_Users WHERE USERNAME='" + userName+ "' AND PASSWORD='"+password+"'",DBUtils.connection); OleDbDataReader dataReader = command.ExecuteReader(); if (dataReader.HasRows) { object[] values = new object[dataReader.FieldCount]; dataReader.Read(); dataReader.GetValues(values);
75
DBUtils.LoggedInUserId = Int32.Parse(values[0].ToString()); dataReader.Close(); return values; } else { dataReader.Close(); return null; } } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return null; } //return null; } public static object[][] GetKeysForUser(int userID) { try { OleDbCommand command = new OleDbCommand("SELECT * FROM db_Keys WHERE USERID="+userID,DBUtils.connection); OleDbDataReader dataReader = command.ExecuteReader(); ArrayList rows = new ArrayList(); if (dataReader.HasRows) { while (dataReader.Read()) { object[] values = new object[dataReader.FieldCount]; dataReader.GetValues(values); rows.Add(values); } dataReader.Close(); object[] keyRows = rows.ToArray(); object[][] keys = new object[keyRows.Length][]; int index = 0; foreach (object key in keyRows)
76
{
} catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return null; } } public static object[][] GetSamplesForUser(int userID) { try { OleDbCommand command = new OleDbCommand("SELECT * FROM db_EEGSamples WHERE USERID=" + userID,DBUtils.connection); OleDbDataReader dataReader = command.ExecuteReader(); ArrayList rows = new ArrayList(); if (dataReader.HasRows) { while (dataReader.Read()) { object[] values = new object[dataReader.FieldCount]; dataReader.GetValues(values); rows.Add(values); } dataReader.Close(); object[] sampleRows = rows.ToArray(); object[][] samples = new object[sampleRows.Length][]; int index = 0; foreach (object sample in sampleRows)
77
{
} catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return null; } } public static object[] GetKeyForKeyName(String keyName) { try { OleDbCommand command = new OleDbCommand("SELECT * FROM db_Keys WHERE KEYNAME='" + keyName + "'",DBUtils.connection); OleDbDataReader dataReader = command.ExecuteReader(); if (dataReader.HasRows) { dataReader.Read(); object[] values = new object[dataReader.FieldCount]; dataReader.GetValues(values); dataReader.Close(); return values; } else { dataReader.Close(); return null; } } catch (Exception ee) { if (DBUtils.ShowThreadExceptions) {
78
ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(ee); exceptionDialog.ShowDialog(); } return null; } } public static object[][] GetKeysForSamples(int sampleID) { try { OleDbCommand command = new OleDbCommand("SELECT * FROM db_Keys WHERE SAMPLEID=" + sampleID,DBUtils.connection); OleDbDataReader dataReader = command.ExecuteReader(); ArrayList rows = new ArrayList(); if (dataReader.HasRows) { while (dataReader.Read()) { object[] values = new object[dataReader.FieldCount]; dataReader.GetValues(values); rows.Add(values); } dataReader.Close(); object[] keyRows = rows.ToArray(); object[][] keys = new object[keyRows.Length][]; int index = 0; foreach (object key in keyRows) { object[] keyRow = (object[])key; keys[index++] = keyRow; } return keys; } else { dataReader.Close(); return null; } } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e);
79
} return null; } }
public static object[] GetSamplesForSampleID(int sampleID) { try { OleDbCommand command = new OleDbCommand("SELECT * FROM db_EEGSamples WHERE EEGSAMPLEID=" + sampleID, DBUtils.connection); OleDbDataReader dataReader = command.ExecuteReader(); if (dataReader.HasRows) { dataReader.Read(); object[] values = new object[dataReader.FieldCount]; dataReader.GetValues(values); dataReader.Close(); return values; } else { dataReader.Close(); return null; } } catch (Exception ee) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(ee); exceptionDialog.ShowDialog(); } return null; } } public static object[][] GetHuffmanTreesForSampleID(int userID,int sampleID) { try { String sql = "SELECT * FROM db_HuffmanTrees WHERE SAMPLEID=" + sampleID + " AND USERID="+userID; if(sampleID==-1) sql = "SELECT * FROM db_HuffmanTrees WHERE USERID="+userID;
80
DBUtils.connection);
if (dataReader.HasRows) { while (dataReader.Read()) { object[] values = new object[dataReader.FieldCount]; dataReader.GetValues(values); rows.Add(values); } dataReader.Close(); object[] huffmanTreeRows = rows.ToArray(); object[][] huffmanTrees = new object[huffmanTreeRows.Length][]; int index = 0; foreach (object huffmanTree in huffmanTreeRows) { object[] huffmanTreeRow = (object[])huffmanTree; huffmanTrees[index++] = huffmanTreeRow; } return huffmanTrees; } else { dataReader.Close(); return null; } } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return null; } } public static bool AddNewUser(String userName, String password, String address, String email, String phone) { try
81
{
OleDbCommand command = new OleDbCommand("SELECT * FROM db_Users", DBUtils.connection); OleDbDataAdapter adapter = new OleDbDataAdapter(command.CommandText, DBUtils.connection); DataSet dataSetUsers = new DataSet("db_Users"); OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(adapter); adapter.Fill(dataSetUsers, "db_Users"); DataRow newUser = dataSetUsers.Tables["db_Users"].NewRow(); newUser["USERID"] = (dataSetUsers.Tables["db_Users"].Rows.Count == 0 ? ((int)dataSetUsers.Tables["db_Users"].Rows[dataSetUsers.Tables["db_Users"]. Rows.Count - 1]["USERID"]) + 1 : 1); newUser["USERNAME"] = userName; newUser["PASSWORD"] = password; newUser["ADDRESS"] = address; newUser["EMAIL"] = email; newUser["PHONE"] = phone; dataSetUsers.Tables["db_Users"].Rows.Add(newUser); adapter.Update(dataSetUsers, "db_Users"); adapter.Dispose(); dataSetUsers.Dispose(); command.Dispose(); return true; } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return false; } } public static bool AddNewKey(int userID, int sampleID, String keyname, object reference_key, object referenced_key) { try { OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM db_Keys", DBUtils.connection); adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
82
OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(adapter); adapter.Fill(dataSetKeys, "db_Keys"); DataRow newKey = dataSetKeys.Tables["db_Keys"].NewRow(); newKey["KEYID"] = (dataSetKeys.Tables["db_Keys"].Rows.Count != 0 ? (((int) dataSetKeys.Tables["db_Keys"].Rows[dataSetKeys.Tables["db_Keys"].Rows.Count - 1]["KEYID"])+1) : 1); newKey["USERID"] = userID; newKey["SAMPLEID"] = sampleID; newKey["KEYNAME"] = keyname; newKey["REFERENCE_KEY"] = Hexer.Bytes2Text(Hex.Encode((byte[])reference_key)); newKey["REFERENCED_KEY"] = Hexer.Bytes2Text(Hex.Encode((byte[])referenced_key)); dataSetKeys.Tables["db_Keys"].Rows.Add(newKey); adapter.Update(dataSetKeys, "db_Keys"); adapter.Dispose(); return true; } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return false; } } public static bool AddNewEEGSample(int userID, object eegSample,String eegSampleType,String sampleName,String age,String description) { try { OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM db_EEGSamples", DBUtils.connection); adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey; DataSet dataSetSamples = new DataSet("db_EEGSamples");
83
DataRow newSample = dataSetSamples.Tables["db_EEGSamples"].NewRow(); newSample["EEGSAMPLEID"] = (dataSetSamples.Tables["db_EEGSamples"].Rows.Count != 0 ? ((int)dataSetSamples.Tables["db_EEGSamples"].Rows[dataSetSamples.Tables["db _EEGSamples"].Rows.Count - 1]["EEGSampleID"]) + 1 : 1); newSample["USERID"] = userID; newSample["EEGSAMPLETYPE"] = eegSampleType; newSample["EEGSAMPLENAME"] = sampleName; newSample["AGE"] = age; newSample["DESCRIPTION"] = description; newSample["EEGSAMPLE"] = eegSample; newSample["ANALYSISREPORT"] = ""; dataSetSamples.Tables["db_EEGSamples"].Rows.Add(newSample); adapter.Update(dataSetSamples, "db_EEGSamples"); adapter.Dispose(); return true; } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return false; } } public static bool AddNewHuffmanTree(int userID, int sampleID, String huffmanTreeName, String description, object huffmanTree) { try { OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM db_HuffmanTrees", DBUtils.connection); adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey; DataSet dataSetHuffmanTrees = new DataSet("db_HuffmanTrees"); OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(adapter); adapter.Fill(dataSetHuffmanTrees, "db_HuffmanTrees"); DataRow newHuffmanTree = dataSetHuffmanTrees.Tables["db_HuffmanTrees"].NewRow(); newHuffmanTree["HUFFMANTREEID"] = (dataSetHuffmanTrees.Tables["db_HuffmanTrees"].Rows.Count != 0 ?
84
((int)dataSetHuffmanTrees.Tables["db_HuffmanTrees"].Rows[dataSetHuffmanTree s.Tables["db_HuffmanTrees"].Rows.Count - 1]["HUFFMANTREEID"]) + 1 : 1); newHuffmanTree["USERID"] = userID; newHuffmanTree["SAMPLEID"] = sampleID; newHuffmanTree["HUFFMANTREENAME"] = huffmanTreeName; newHuffmanTree["HUFFMANTREEDESCRIPTION"] = description; newHuffmanTree["HUFFMANTREE"] = (byte[]) huffmanTree; dataSetHuffmanTrees.Tables["db_HuffmanTrees"].Rows.Add(newHuffmanTree); adapter.Update(dataSetHuffmanTrees, "db_HuffmanTrees"); adapter.Dispose(); return true; } catch (Exception e) { if (DBUtils.ShowThreadExceptions) { ThreadExceptionDialog exceptionDialog = new ThreadExceptionDialog(e); exceptionDialog.ShowDialog(); } return false; } } } } }
85
86
FORM DESCRIPTION
The user can login using one username and password. Main form contains many menu strip controls for specific functions such as uploading the EEG .edf file, Huffman tree creation, encryption, decryption; etc.Here the user can browse only the ASCII file of corresponding .edf file. User can brose more than one file and also having an option for giving the details of file to a data base.EEG database contains the fields such as name, age and description. Next is to create the Huffman tree using the size of the signal. Huffman tree form displays the tree details including the size of the signal using a subform.The user can create the tree by using the size of the signal in the determined space in the Huffman tree form. BY shifting the tree value user gets the tree value that is to be used for encryption decryption processes. It displays in a message box. The tree name, description, size, etc are stored in a database. Next is the process for encryption and decryption. It contains as submenu strip controls under the data analysis main menu strip control item.Encryptio form contain browse button control for browsing the input data file to be encrypted. When create key button control loads, key creator form displays. Here we select the specified sample and create a key by giving one name for it. Encrypt button control encrypts the input data file. Decryption process is almost same as it done in encryption form. Here the user decrypts the encrypted file by using another key .The biometric key generated here is 128-bit key. Here we use Rijindale single key algorithm for encryption and decryption process.
87
2. Login page:
The registered users only can have makes the process contained in the main page menu strip controls. The registered user details are stored in a data base. Data accessed from the database using SQL data adapter.
88
89
3.
DEPARTMENT OF COMPUTER APPLICATION
90
MANAGE SAMPLES
In this application we imports the input signal of EEG signal in the form of EDF (European Data Format) corresponding to each signals. Here the submenu strip item EEG sample contains two items, ie, manage samples and analyse wave form. In manage sample item, user adds the sample into directory. The second one gives yhe analysis report for the corresponding signal. The analysis report contains the size and frequencies of that signals.
91
92
93
94
95
6.DECRYPTION
96
BIBLIOGRAPHY
97
BIBLIOGRAPHY
Referred books 1. Applied cryptography. Bruce Schneider. 2. Cryptography engineering. Niles Ferguson. Websites: 1. www.computer.org 2.mitpress.mit.edu