You are on page 1of 58

Software Design Specification

UCCS Computer Science Department CS701 - PROJECT Online E-voting System Submitted By: Hakan Evecek Version 1.0
Description of Project
DOCUMENT NO: VERSION: CONTACT: EMAIL: DATE: 2 1.0 UCCS hevecek@uccs.edu 12/20/2011

Distribution is subject to copyright.

Hakan Evecek

Software Design Specification

Disclaimers
The information contained in this document is the proprietary and exclusive property of UCCS except as otherwise indicated. No part of this document, in whole or in part, may be reproduced, stored, transmitted, or used for design purposes without the prior written permission of UCCS. The information contained in this document is subject to change without notice. The information in this document is provided for informational purposes only. UCCS Computer Science Department specifically disclaims all warranties, express or limited, including, but not limited, to the implied warranties of merchantability and fitness for a particular purpose, except as provided for in a separate software license agreement.

Privacy Information
This document may contain information of a sensitive nature. This information should not be given to persons other than those who are involved in the EVoting Online Prototype Tool project or who will become involved during the lifecycle

Version History
REVISION CHART Version
1.0 1.1

Author(s)
Hakan Evecek Hakan Evecek

Description of Version
Online E-voting System Software Design Specification version 1.0 White-Box Design documents, database design documents, use cases are updated

Date Completed
03/27/2007 05/20/2007

Confidential - 05/25/07

Page 2

Hakan Evecek

Software Design Specification

Document Owner
The primary contact for questions regarding this document is: Author: Hakan Evecek Project Name: Online E-Voting System Phone: +612-5454-5454 Email: hevecek@uccs.edu

Document Approval
Document Name: Software Design Specification for Online E-Voting System Publication Date: 05/11/2007 Contract Number: N/A Project Number: 1.0.0 Prepared by: Hakan Evecek

Approval:

__________________________

Name and Organization

Concurrence:

_________________________

Name and Organization

Confidential - 05/25/07

Page 3

Hakan Evecek

Software Design Specification

Table of Contents:
SOFTWARE DESIGN SPECIFICATION ..................................................................................1 TABLE OF CONTENTS:...................................................................................................... 4 DETAILED DOCUMENT DESCRIPTION................................................................................5 INTRODUCTION...............................................................................................................5
Revision History ............................................................................................................................................................5 Methodology, Tools and Techniques................................................................................................6 Key Stakeholders...............................................................................................................................6 Points of Contact...............................................................................................................................6

1.1 OVERVIEW OF DOCUMENT .........................................................................................7 SYSTEM OVERVIEW......................................................................................................... 8 1.DESIGN CONSIDERATIONS..............................................................................................8


Assumptions and Dependencies........................................................................................................8 Related software or hardware ..........................................................................................................8 End-user characteristics ...................................................................................................................9 General Constraints..........................................................................................................................9 Goals and Guidelines......................................................................................................................10

ARCHITECTURAL STRATEGIES:.........................................................................................13 SYSTEM ARCHITECTURE.................................................................................................16


Use cases from the SRS Document ..............................................................................................17 State Design Pattern:......................................................................................................................34 Visitor Design Pattern: ..................................................................................................................35 Strategy Design Pattern:.................................................................................................................36 Black Box Design for E-Voting System DFD ............................................................................37 Classification ...........................................................................................................................37 Definition .................................................................................................................................37 Responsibilities ........................................................................................................................37 Constraints ...............................................................................................................................37 Resources .................................................................................................................................39 Processing ................................................................................................................................39 White Box Design for E-Voting System UML: Class Diagrams :...............................................40 E-Voting System Classes.........................................................................................................41 8. Database Interface Requirements Specification for the E-Voting System.................................51 Database Design and Tables Relations Diagram :........................................................................51

Confidential - 05/25/07

Page 4

Hakan Evecek

Software Design Specification

Detailed Document Description This section describes the contents of each section of the Software Design Specification. Introduction Purpose: This Software Design Specification (SDS) provides an overview of the proposed Online E-Voting system project design. It will encompass in detail the basic outline of our project and represent a basis for the development process. This will also allow critical analysis of the logical and functional aspects of the design before any commitment is made to actual code. Online E-voting system tool is a tool designed as a prototype to demonstrate the functionality of Pailler Threshold Crytptosystem (PTC). We will also consider some additional security concerns during the design process. Document Overview Below is the outline of the each section described in this document.

Chapter 1 Document Description Chapter 2 - System Overview Chapter 3 Design Considerations Chapter 4 Architectural Strategies Chapter 5 System Architecture (Use Cases from SRS) Chapter 6 Policies and Tactics Chapter 7 - Design Documents o Black Box Design o White Box Design o Database Design

Scope: The scope of the design document is to illustrate the functionality of Pailler Threshold Cryptosystem. This prototype e-voting tool is an online tool. It will use the Paillier Threshold Cryptography Web Service and Paillier Threshold CryptoServiceProvider in such an online voting system scenario. The design document will also show interactions between the web services, between different forms used by both voters and administrators who are the main actors in the design. SDS will be used by the project manager and the development team.

Revision History Date Revision Description Author


Page 5

Confidential - 05/25/07

Hakan Evecek

Software Design Specification

04/06/2007 05/22/2007

1.0.0 1.0.1

Initial version SDS for E-Voting System

Hakan Evecek Hakan Evecek

References: Online Reference and Printed Materials Classical and Object-Oriented Software Engineering with UML and Java, 4th edition, Stephen R. Schach, McGraw-Hill, 1999. Paillier Threshold Cryptosystem web services, Mr. Brett Wilson, http://cs.uccs.edu/~chow/ Additional References: Dr Edward Chow, UCCS (Client), Colorado Springs, CO. Methodology, Tools and Techniques Word document, Visio diagrams and Enterprise Architecture 6.5.8 are the tools used to create this design document. Use cases and UML diagrams are created to describe the scenarios. Key Stakeholders Project stakeholders are below:

Prof. Dr. Edward Chow, UCCS (client) Mr. Brett Wilson, Graduated Masters Student and also designer and creator of PTC web services. Mr. Hakan Evecek, creator of online PTC Web Services prototype tool.

Points of Contact Prof. Dr. Edward Chow, UCCS (client)

Definitions, important terms, acronyms, or abbreviations:

GUI

Graphical User Interface - a visually based application that serves to provide an interactive medium between the user and the application.
Page 6

Confidential - 05/25/07

Hakan Evecek

Software Design Specification

SRS Web site DFD

Software Requirements Specification - the explicit requirements definition used to maintain product consistency during the development process A hierarchy of linked HTML-encoded text files that display on a web browser as a series of related text pages with embedded graphics and controls Data Flow Diagram

1.1 Overview of Document Section 1.0 introduces the project. Section 2.0 provides an abstract view of the system architecture, including the components, structure and relationships, and user interfaces. Section 3.0 describes each of these components in more detail, including design and architectural decisions. Section 4.0 explores the relationships to other products. Section 5.0 discusses design decisions, tradeoffs, and the reasoning behind these decisions. Section 6.0 is reserved for policies and tactics. It also discusses design patterns that can be applied. Section 7.0 has detailed diagrams. It has both black box model and white box model.

Confidential - 05/25/07

Page 7

Hakan Evecek

Software Design Specification

System Overview Module User Login Form Election Form Help Page Tally Form Description The starting page which asks for login credentials. Also user is expected to type the text shown in the image to make sure that human interaction is in place. In other words, there is not automatic software or script trying to access to the page. Administrator creates the elections and ballots for the voters. This is also the form where the users are added. The pages that provide the information to the Administrator and voters for the functionalities of the pages. Contains the details of the vote results. This form also decrypts the encrypted votes.

Submitted Vote This form displays the summary of the voters successful Form submission. 1. Design Considerations This section describes many of the issues which need to be addressed or resolved before attempting to devise a complete design solution. Assumptions and Dependencies The diagrams in this document were created through Visio Diagram or by the Enterprise Architect version 6.5.8. Enterprise Architect is a great tool for creating UML diagrams especially for school project. Trial version can be downloaded from http://www.sparxsystems.com/ Related software or hardware This program will be coded in Visual Studio 2005. We will be using Visual basic and SQL Server 2005 for databases. Preferred operating system is Windows 2003 server. Windows 2000 server creates some exception errors that need to be researched and fixed if this is the preferred environment.

Confidential - 05/25/07

Page 8

Hakan Evecek

Software Design Specification

End-user characteristics 1- Voter - The users for the e-voting system. 2- Network the LAN that exists between the two machines that will be involved in this system. 3- Administrator One of the users of the e-voting system. This user creates elections. 4- Internet the internet connection of the users machine to be able to use the evoting online tool. General Constraints 1) Hardware or software environment There is a web server requirement. Windows 2003 is the preferred operating system due to the security requirements. ASP .Net 2.0 Framework needs to be installed. 2) End-user environment Administrator and voter should have network and internet connectivity. They will need to login with their user credentials to be able to use the e-voting system. 3) Availability or volatility of resources This depends on the network and internet connection. Election process will be done via online. Stability and availability can be measured with the number of failures on the internet connection. 4) Standards compliance None 5) Interoperability requirements None 6) Interface/protocol requirements Network connectivity and TPC/IP support are required. 7) Data repository and distribution requirements Data will be stored in the database and Web services will be used to store the encrypted data. Stored procs will be used in some functions. By doing all the connections via stored procs can limt the access to the databases to the stored proc level. 8) Security requirements (or other such regulations) Paillier Cryptograhy will be used. It is important to have a secure web site, user credentials and secure web servers hosting PTC Web services and online forms. 9) Memory and other capacity limitations 5MB/10MB HDD space is required. 10) Performance requirements
Confidential - 05/25/07 Page 9

Hakan Evecek

Software Design Specification

No internal failures are acceptable. The only known and accepted failures are from the network or Internet connection that is providing the communication between the two machines. 11) Network communications Network should be up all the time as part of the functionality is to be able to use the e-voting tool on the network or internet. 12) Verification and validation requirements (testing) Two machines on the same network are required to be able to test and verify the network and internet functionality. 13) Other means of addressing quality goals None 14) Other requirements described in the requirements specification a) Online User Documentation and Help System Requirements The instructions for PTC Web services can be found online at: http://cs.uccs.edu/~gsc/pub/master/hevecek/docs b) Design Constraints None. c) Purchased Components Enterprise Architecture 6.5.8 version tool is purchased for both SRS and SDS. d) Interfaces i) User Interfaces Online application and user interface will be designed with APS .Net tools availbale. ii) Hardware Interfaces Web Server needs to be installed and configured. iii) Software Interfaces SQL Server 2005 is required for the databases. iv) Communications Interfaces Paillier Threshold Cryptosystem web services, databases will be communicated via online. e) Licensing Requirements Licensing requirements are the same as the licensing requirements for a Visual Studio 2005 and SQL Server 2005. f) Legal, Copyright, and Other Notices None. g) Applicable Standards None. Goals and Guidelines
15)

Apply The KISS principle ("Keep it simple and straightforward!").


Page 10

Confidential - 05/25/07

Hakan Evecek

Software Design Specification

The eight requirements that identify for a good design which are well structured, simple, efficient, adequate, flexible, practical, implementable and standardized are the guidelines to create this design.
16) 17)

Emphasis on speed versus memory use. Working, looking, or "feeling" like an existing online application.

The goal of this project is to deliver the product completed on time. Use all the recommended models in the design document during coding. At the end we will demonstrate a prototype tool that uses PTC Web services. Call-return Development style: The concept of an ordered and hierarchical transfer of control from one processing element to another underpins this style. The call-and-return style places much greater emphasis upon control aspects rather than upon data transfer issues. A call return style therefore closely linked to the traditional program structuring form of main program and subprograms. This is heavily used in PTC Web services and will be used on the online prototype application. Feature Components Connectors Control of Execution Data Communication Control/Data interaction Design reasoning Instantiation in call and return Subprogram units, objects. Subprogram invocation (calling), procedure calling. Sequencing is controlled through the calling hierarchy and (in detail) the algorithms in the components. Data is passed via parameters and can also be accessed directly. This is relatively limited, beyond the linking of parameters and return inform within the calling stack. Encourages use of a top-down strategy, based upon function. A design method such as the traditional Structured Analysis / Structured Design will produce solutions that employ this style.

The design method of the system is an important start. The used design method should help the designer to produce a system that is structured in a consistent way. The use of a design method both helps with defining the chosen architectural form and also establishes a set of common standards, criteria and goals for use by the team. Black Box and white box diagrams of the models will be drawn for the design in the following sections. The Data-Flow diagram can be one of the design diagrams used in our project. The DFD is mainly used for describing a very problem-oriented view of the workings of a system. It provides a description based on modelling the flow of information around a network of operational elements, with each element making use of or modifying the information flowing into that element. We would like to apply more view points to be able to define the system better for the developers. However we will concentrate on the constructional and the behavioral view points. For the white box model, we will define each black box model with class diagrams which is a core concept of the object model that is centered upon the
Confidential - 05/25/07 Page 11

Hakan Evecek

Software Design Specification

relationships that involve classes and any objects that are created from these. Identification of candidates for classes is one of the primary activities in object oriented practices.

Confidential - 05/25/07

Page 12

Hakan Evecek

Software Design Specification

Architectural Strategies: Architecture is the set of decisions that must be made at the enterprise level before specific applications are designed and built in order to provide conceptual integrity and sanity across the systems. Architecture includes a decomposition of the systems into separate orthogonal viewpoints along with the enforced rules that enable this clean decomposition and isolation of design viewpoints. This is done so functional (application requirements) and non-functional (system qualities) and other aspects of the application system may be defined and built by independent specialists in their specific field. An architecture not only divides the system, it also divides the roles and responsibilities of those who work with the system into separate organizational concerns and disciplines that are conceptually tractable and can be effectively managed. There are four architectural viewpoints: Behavioral, Constructional, Data Modeling, and Functional. In our project behavioral and functional viewpoints will be used to desing it. Additionally, constructional view point strategy can also be used. Behavioral forms are essentially concerned with causal issues, connecting an event to a response via any necessary conditions. These forms tend to be far more abstract than the constructional class, which are usually concerned with compliable entities that have definite syntax and semantics. Sequencing aspects can be described fairly well. Fixedinternal descriptions are also fairly tractable, although their use is mainly restricted to particular features of real-time systems. Constraint effects are very difficult to capture and describe using existing forms of description. Behavioral description can be used for both black box modeling roles (considering how the system as a whole will respond to specific events) and white box modeling (describing how the system elements will interact in terms of chains of events and actions). Overall, their importance and use has probably become much more pervasive as systems have become larger and also as constructional forms such as classes and objects have come into more widespread use. Behavioral notations are dynamic properties where events, states, actions and conditions can be defined. Their relationships are modeled with cause & effect and sequencing & parallelism. Notation examples are state transition diagrams, statechart, UML: Use case diagram or UML: Activity Diagram. Use cases for the project are provided in this document. They are in the next section where system architecture is defined. Functional viewpoint shows the main functions of a system and their relations in terms of the flows of information, value or goods between them. The Function viewpoint provides high-level insight in the general operations of the system, and can be used to identify necessary competencies, or to structure according to its main activities. For the black box design we can use Dataflow diagram (DFD) as mentioned above. DFD has design characteristics of information flow, dependency of operations on other operations and relation with data stores. It is mainly used for describing a very problem oriented view of workings of a system. It provides a description based on modeling the flow of information around a network of professional elements, with each element making use of modifying the information flowing into the element. It depicts processes (as bubbles) and the flow of data between them (as directed arcs). DFDs are usually organized into a hierarchy of nested diagrams, where a bubble on one diagram maps to
Confidential - 05/25/07 Page 13

Hakan Evecek

Software Design Specification

an entire diagram at the next lower level of detail. DFDs do not depict conditional logic or flow of control between modules. Constructional viewpoint is mainly concerned about describing how the various software-structuring forms provided in programming languages, markup languages in the systems. Constructional forms described by this viewpoint include: data specifications, threads of execution, packaging constructs, invocation and uses hierarchy which describes the dependencies that exist between classes. For the white box model, additional to the use cases class diagrams will be drawn for the main classes used in this project. Design Patterns Description: The concept of the design pattern is very much associated with the object-oriented architectural style, although in principle there are no reasons why patterns could not be employed with other styles. The goal of patterns within the software community is to create a body of literature to help software developers resolve recurring problems encountered throughout all of software development. Forming a common pattern language for conveying the structures and mechanisms of our architectures allows us to intelligibly reason about them. Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution over without ever doing it the same way twice. In this project state, strategy and visitor desing patterns can be applied. The details of these desing patterns will explained in the following sections. Documentation: Documented set of procedures used in the system: Documentation of a system is important for both system development and its maintenance. The new team needs to understand the procedures used during the development so that they can implement the changes in the same way. This will keep the changes in the same structure. Also documenting the feature sets and how the game works needs to be done for users. Domain knowledge This needs to be defined. This information is needed to find out the type of the problem involved during the design and any implementation features. Experienced designers may often work in an opportunistic manner, but that this practice may be less well-formed and reliable when the designer is less familiar with a problem or its domain. So for the inexperienced designer, or the designer who is working in an unfamiliar domain, the use of a design method may assist with the formulation and exploration of mental methods used to capture the essential features of the design. This way method knowledge may provide a substitute for domain knowledge, where the latter is inadequate or lacking. Additionally, classifying the problem domain will also help to understand the environment more. In our case network and internet connections are involved in our domain. We need to consider all possibilites about the connection of machines to the network and internet. Voters should be able to access easily from the browser and complete the process.
Confidential - 05/25/07 Page 14

Hakan Evecek

Software Design Specification

Environmental constraints: They need to be considered in our design: Most software designers believe that effective development of software relies on understanding unique constraints of each problem, and so universal notations are doomed because each provides a notational bias that necessarily makes the notation useless or dangerous for some set of tasks. There can always be constraints that effect the overall implementation and new changes that developer needs to be aware of. So knowing this information and keeping this in mind during the new changes will definitely help the developer to deliver a better product. Especially setting up the permissions, giving access to the certifcates for the users in the voting system will be some of the constraints to be able to setup the environment. Voting system should be able to validate the users certifcates according to the design that will be provided. Web services should be easiy accessed to be able to complete the e-voting process. In our system one of the major constraints is the network and internet connectivity. With the recommended design patterns and the TCP/IP network protocol checks this conneciton needs to be monitor during the voting process.Additonal security checks can also be part of the process to make sure that there are not any outsite attackers trying to use the systems. Secure connections needs to be built. If the users are using their home PCs, secure connections might be established to do the voting. Secure ports and connections must be the requirement for the web servers setup. 18) Use of a particular type of product (programming language, database, library, etc. ...) There will be database involved in this system. SQL Server 2005 will be required. Visual studio 2005 Visual Basic ASP .Net environment wil be used for building the system. 19) Reuse of existing software components to implement various parts/features of the system For additional features re-use of the forms is possible. 20) Future plans for extending or enhancing the software This e-voting sstem is a basic prototype. More additional features can ve added if needed. 21) User interface paradigms (or system input and output models) Administrators will be able to create elections, ballots etc. for voters to be able to login and vote. Creating these forms for the voters will create output XML files and voters will use them as input files. 22) Hardware and/or software interface paradigms None 23) Error detection and recovery Error detection and recovery will be done. To be able to separate error-handling code from the regular code, we will add exception errors in the code. For example,

Confidential - 05/25/07

Page 15

Hakan Evecek

Software Design Specification

Try // Code Catch ex As Exception lblInfo.Text = "Error XXX. Exception Msg: " + ex.Message End Try

24) Memory management policies Not required. However Sessions will be used to be able to pass the data from one form to another. This is for transferring data in ASP .Net environment. 25) External databases and/or data storage management and persistence External databases are involved in the code and will be used to store election results. 26) Distributed data or control over a network None 27) Generalized approaches to control None 28) Concurrency and synchronization None 29) Communication mechanisms TCP/IP network communication is required as this application involves network and internet connectivity to connect to the e-voting online tool. 30) Management of other resources The only additional resource that needs to be managed is the internet and network resources. The connecitity of the network and internet need to be checked frequently and throw error messages if there is any connection problem. System Architecture In this section high-level overview of how the functionality and responsibilities of the system were partitioned and then assigned to subsystems or components are provided. Detail about the individual components themselves will be discussed in the detailed design part of this document. E-Voting system will be an online tool using PTC Web services. It will have the ability to demonstrate the web services functionality. Customers will be able to create new election pages, ballots, save them and use them during our voting processes. Users will be added with encryption if this option is enabled. In other words, users voting can have the encryption setup. This will add an additional security during the voting process.

Confidential - 05/25/07

Page 16

Hakan Evecek

Software Design Specification

Use cases from the SRS Document 5.2.1 Use Case 1 Specification:
Use Case ID: Use Case Name: Created By: Date Created: 1 Access to Admin Page Hakan Evecek 03/14/2007 Last Updated By: Date Last Updated: Hakan Evecek 04/15/2007

Primary Actors: Secondary Actors: Description: Trigger: Preconditions: Postconditions: Normal Flow:

Administrator N/A This use case describes how to access to the Admin page. Administrator requires managing the Election pages. Actor Network is idle. Actor internet is idle. Actor Database is idle. Administrator will have an admin page to be able to connect and manage. Administrator logs in and connects to the Administrator page where he will have access to create a new election, modify an election, voting, tally and/or decrypt the votes. Connect to the network via actor network. Connect to the database via actor database. None. When there is a network problem create an error and report it . When there is a database connectivity problem report the problem via Error Messaging Technique.

Alternative Flows: Exceptions:

Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions: Notes and Issues:

None High High None Only certain users can have access to this page. It will require administrator privileges to open it. None Server or desktop using online e-voting has a network and internet connection. Any internet connection or network connection issue will cause access problems.

Confidential - 05/25/07

Page 17

Hakan Evecek

Software Design Specification

Use Case #1 Diagram:


uc Admin Page Use Cases E-Voting System Admin Page 1a. Links for the Admin Pages

1. Access to Admin Page Administrator 1b. Link for the Help Menu

Confidential - 05/25/07

Page 18

Hakan Evecek

Software Design Specification

5.2.2 Use Case 2 Specification:

Use Case ID: Use Case Name: Created By: Date Created:

2 Login Page access Hakan Evecek 04/24/2006 Last Updated By: Date Last Updated: Hakan Evecek 04/24/2006

Primary Actors: Secondary Actors: Description: Trigger: Preconditions: Postconditions: Normal Flow:

Users Network, Database, Error Messages. This use case describes how to access to the e-voting system. Login credentials will be required to login to the e-voting system. Actor Network is Idle. Machine running the online e-voting tool. The database connection is idle. Internet connection is idle. Internet connection is idle. User enters username and the password. The username and password are assigned and given to the users earlier. According to the username, system will connect the user to the Administrator page or directly to the voting page. If user is the administrator, he will be connected to the admin page and will have access to the admin links. None Invalid data entry needs to be reported in the error logs with the Error Messages. None High High None Login credentials are valid and confirmed before the entry. None Username and password are given to the users earlier. Invalid usernames and passwords will not be logged in and will have error pages displayed.

Alternative Flows: Exceptions: Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions: Notes and Issues:

Confidential - 05/25/07

Page 19

Hakan Evecek

Software Design Specification

Use Case #2 Diagram:


uc Login to the E-Voting System Login Page

2a. Admin Credentials 2. Login Page Access Administrator 2b. Voter Credentials

Confidential - 05/25/07

Page 20

Hakan Evecek

Software Design Specification

5.2.3 Use Case 3 Specification:


Use Case ID: Use Case Name: Created By: Date Created: 3 Add User Hakan Evecek 03/14/2007 Last Updated By: Date Last Updated: Hakan Evecek 04/15/2007

Primary Actors: Secondary Actors: Description: Trigger: Preconditions: Postconditions: Normal Flow:

Administrator N/A This use case describes how add a user from the Admin page for voters. Administrator requires managing the users for security reasons. Actor Network is idle. Actor internet is idle. Actor Database is idle. Administrator will have an admin page to be able to connect and manage users. Administrator logs in and connects to the Administrator page where he will have access to create a new election. In the new election page he will have the option to add the users. Connect to the network via actor network. Connect to the database via actor database. None. When there is a network problem create an error and report it . When there is a permissions issue or other issues to assign the certificates for the users, report the issue with an error message.

Alternative Flows: Exceptions:

Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions:

None High High None Only certain users can have access to this page. It will require administrator privileges to open it. None Server or desktop using online e-voting has a network and internet connection. User encryption keys are created prior and installed on the server by the Administrator. Any internet connection or network connection issue will cause access problems. Any missing public keys for the users will cause issues to upload the certificates.

Notes and Issues:

Confidential - 05/25/07

Page 21

Hakan Evecek

Software Design Specification

Use Case #3 Diagram:


uc Create a New User Create a New User

3a. Get Decryption Threshold Value

3. Add Users

3b. Key Size for Encryption

Administrator

3c. Check Encryption

Confidential - 05/25/07

Page 22

Hakan Evecek

Software Design Specification

5.2.4 Use Case 4 Specification:


Use Case ID: Use Case Name: Created By: Date Created: 4 Display Submitted Vote Details and Thank you message Hakan Evecek 03/14/2007 Last Updated By: Date Last Updated: Hakan Evecek 04/15/2007

Primary Actors: Secondary Actors: Description: Trigger: Preconditions: Postconditions: Normal Flow:

Voter Web Server This use case defines accessing to the summary page after voting. User would like to get the summary of the voting on the results page. Actor Network is idle. Actor internet is idle. Actor user has access to the voting pages. None. Actor user uses the login page to access voting form. Voter does the voting, finishes and clicks submit button. A message shows up the successful submission. Then there will be a button provided to check the voting details sent. None. When there is a network problem create an error. If the voting didnt go successfully, display a message on the check status page for the user. None High High None Users using the voting form will have access to this page after submitting the vote. Prior to submission this button will be disabled. None Server or desktop using online e-voting has a network and internet connection. User submitted the vote to view the vote summary page. Any internet connection or network connection issue will cause access problems.

Alternative Flows: Exceptions: Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions: Notes and Issues:

Confidential - 05/25/07

Page 23

Hakan Evecek

Software Design Specification

Use Case #4 Diagram:


uc Display the Submitted Vote

4a. Display Submited Vote Details Admin Page Use Cases : Vote for the Election

Voter

4b. Display a Thank you message

Confidential - 05/25/07

Page 24

Hakan Evecek

Software Design Specification

5.2.5 Use Case 5 Specification:


Use Case ID: Use Case Name: Created By: Date Created: 5 Create a new ballot Hakan Evecek 03/14/2007 Last Updated By: Date Last Updated: Hakan Evecek 04/15/2007

Primary Actors: Secondary Actors: Description: Trigger: Preconditions: Postconditions: Normal Flow:

Administrator Ballot XML File This use case describes how to create a new ballot. Administrator requires managing the ballot creation pages. Actor Network is idle. Actor internet is idle. Actor Database is idle. Actor Ballot XML File can be saved to the default folder. None. Administrator logs in and connects to the Administrator page where he will have access to create a new ballot. Ballot creation pages will be accessible from the election creation pages as well. After filling out the necessary fields in the form, Administrator will be able to save the ballot on the default folder where you will have access to add the ballots for the elections. None. Creating the ballots will require both DB access and directory access to be able to write the data into XML. DB will be used just to store the ballots information. None High High None Only administrators can have access to this page. It will require administrator privileges to open it. None Default XML folder is setup and accessible. Database credentials were setup by the Admin on the web server. Any internet connection or network connection issue will cause access problems to be able to create new ballots.

Alternative Flows: Exceptions:

Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions: Notes and Issues:

Confidential - 05/25/07

Page 25

Hakan Evecek

Software Design Specification

Use Case #5 Diagram:


uc Create a New Ballot Create a new Ballot

5a. Add Issue

5b. Add Choices 5. Create a New Ballot Administrator 5c. Delete Choices

5d. Sav e Ballot Ballot XML File

Confidential - 05/25/07

Page 26

Hakan Evecek

Software Design Specification

5.2.6 Use Case 6 Specification:

Use Case ID: Use Case Name: Created By: Date Created:

6 Create a new Election Hakan Evecek 03/14/2007 Last Updated By: Date Last Updated: Hakan Evecek 04/15/2007

Primary Actors: Secondary Actors: Description: Trigger: Preconditions: Postconditions: Normal Flow:

Administrator, PTC Web Services Election XML File, Database This use case describes the process for creating an election page. Administrator will need to have a page to be able to create, modify and post the elections. Actor internet is idle. Default directory for saving the elections are accessible. PTC web Services are active on the web server. Elections created are posted to be able to use for voting. Administrator will have access to the admin page where he will have a link for creating a new election page. Election pages can be a newly created one or an existing one. Ballots will be added from this page. Voters list needs to be entered by using this page as well. If the voters encryption is enabled, necessary certificate will be loaded for the username entered. None. When there is a network or internet connectivity problem create an error. Ballots folder, elections folder and the database connection errors will be displayed. None High High None Only Administrators can create the new elections. None Server or desktop using online e-voting has a network and internet connection. Any internet connection or network connection issue will cause access problems. Accessing problems to the default folder will cause issues to save the elections.

Alternative Flows: Exceptions:

Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions: Notes and Issues:

Confidential - 05/25/07

Page 27

Hakan Evecek

Software Design Specification

Use Case #6 Diagram:


uc Create a New Election Create a new Election

6a. Enter Election Details

6. Create a New Election Administrator

Admin Page Use Cases : Create a New User

6b. Send Request

Admin Page Use Cases : Create a New Ballot

6c. Sav e Election Election XML File

PTC Web Serv ices

6d. Post Election

Database

Confidential - 05/25/07

Page 28

Hakan Evecek

Software Design Specification

5.2.7 Use Case 7 Specification:


Use Case ID: Use Case Name: Created By: Date Created: 7 Tally / Decrypt Votes Hakan Evecek 03/14/2007 Last Updated By: Date Last Updated: Hakan Evecek 04/15/2007

Primary Actors: Secondary Actors: Description: Trigger:

Administrator Election XML File, Database This use case defines accessing to the Tally / decrypt votes pages. Administrator requires managing the Tally / Decrypt Votes pages. Administration group will be the only group who would access to this data. Actor Network is idle. Actor internet is idle. Admin credentials are setup. None. Administrator logs in and connects to the Administrator page where he will have access to tally and/or decrypt the votes. Database connection will be required to be able to pull the data from the database. Database settings will be done from the settings files. The certificate detail for users will be pulled from the certificates list to be able to decrypt the vote details. Each users certificate will be pulled according to the username used to login. It is important to keep it the same when connected to the voting page. This can be transferred from the login to the voting page. Tally will be accurate if the voting is done successfully. None. When there is a network problem create an error and report it. Database access errors will be reported. None High High None Only certain users can have access to this page. This data is the most crucial data and it is important to have a limited access. None Server or desktop using online e-voting has a network and internet connection. Any internet connection or network connection issue will cause access problems.

Preconditions: Postconditions: Normal Flow:

Alternative Flows: Exceptions: Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions: Notes and Issues:

Confidential - 05/25/07

Page 29

Hakan Evecek

Software Design Specification

Use Case #7 Diagram:


uc Tally / Decrypt Votes Tally / Decrypt Votes

7a. Open an Election

Election XML File 7b. Display Election Details 7. Tally / Decrypt Votes Administrator 7c. Display Votes Count for the Selected Ballot

Database 7d. Decrypt Votes

Confidential - 05/25/07

Page 30

Hakan Evecek

Software Design Specification

5.2.8 Use Case 8 Specification:


Use Case ID: Use Case Name: Created By: Date Created: 8 Vote for the Election Hakan Evecek 03/14/2007 Last Updated By: Date Last Updated: Hakan Evecek 04/15/2007

Primary Actors: Secondary Actors: Description: Trigger: Preconditions: Postconditions: Normal Flow:

Voter PTC web Services, database, Election XML File This use case describes how to access to the Admin page. Voter will need to login to the Voter form for voting process. Actor Network is idle. Actor internet is idle. Actor Database is idle. Voter has username and password assigned. Submitted votes button is available for the voter to view the submitted vote summary. Voter logs in and connects to the Administrator page where he will have access to vote. Connect to this via actor internet. Connect to the database via actor database. User will choose the election from the list and open the election. After the election is chosen, user will highlight the ballot and choices to submit his/her votes. None. Network and database connectivity issues. None High High None Any user that has login credentials setup by the admin will have access to the voting page. None Voter has internet connection and user credentials setup. Any internet connection or network connection issue will cause access problems to the e-voting system.

Alternative Flows: Exceptions: Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Open Issues Assumptions: Notes and Issues:

Confidential - 05/25/07

Page 31

Hakan Evecek

Software Design Specification

Use Case #8 Diagram:


uc Vote for the Election Online Voting

8a. Open an Election

8b. Vote for Each Question

Election XML File

8. Vote For the Election Voter

8c. Display Your Vote

8d. Submit Vote

Admin Page Use Cases : Display the Submitted Vote

PTC Web Serv ices

Confidential - 05/25/07

Page 32

Hakan Evecek

Software Design Specification

6. Policies and Tactics:


1.

Choice of which specific product to use (compiler, interpreter, database, library, etc. ...) It will be coded in ASP .Net Framework 2.0 with Visual Basic. Visual Studio 2005 will be required to compile.

2. Engineering trade-offs None. 3. Coding guidelines and conventions Design Patterns will be used in the development. Visitor and State Desing patterns will be applied on some of the modules. 4. The protocol of one or more subsystems, modules, or subroutines TCP/IP network communication needs to be established for network module design. It will be an online application where internet connection will be required. 5. The choice of a particular algorithm or programming idiom (design pattern) to implement portions of the system's functionality Visitor and State Desing patterns will be applied on some of the modules. Strategy desing pattern can also be used. 6. Plans for ensuring requirements traceability SRS document was provided and all the requirements specified in the document have been applied in the design. Also use cases are created to make sure that all the functionality will be defined in the functions according to the requirements. 7. Plans for testing the software Al the feature set and needed requirements need to be tested with the scenarios created. An additional test document will be provided. 8. Plans for maintaining the software Every Quarter bugs will be reviewed. Any reported problems will be fixed. This document will need to be updated if there are any new additional requirements involved. 9. Interfaces for end-users, software, hardware, and communications E-Voting system will require end-users to have internet access, usr login credentials, PC and a browser. 10. Hierarchical organization of the source code into its physical components (files and directories). Web server will be installed under c:\InetPub\wwwroot\EVoting folder. Web Services will be also in the same folder unser ThresholdService and VotingService folders. They all need to be setup as a virtual web server. More details need to be provided in the setup documents for the users.

Confidential - 05/25/07

Page 33

Hakan Evecek

Software Design Specification

11. How to build and/or generate the system's deliverables (how to compile, link, load, etc. ...) Program will be compiled from the development machine and placed into the web server. Visual Studio 2005, SQL Server 2005 are the two main server application required to be able to run this web site. Below are the Desing Patterns that can be considered to use in this projects design: State Design Pattern: Allow an object to alter its behavior when its internal state changes. The object will appear to change its class. Each pieces or tiles state will be changing when the players does their moves. Suppose an object is always in one of several known states. The state an object is in determines the behavior of several methods. We could use if/case statements in each method. However it will be better solution to use state pattern.

We will need to have a reference to a state object. Normally, state object doesnt contain any fields. Change state object will be created. Methods delegate to state object. Below is the instance of the state pattern where it can be used. Network communication is another place where state pattern will be helpful to monitor the states.

State pattern can use singletons for instances of each state class. State objects dont encapsulate state, so can be shared. It is easy to add new states. New states can extend other states. It overrides only selected functions.
Confidential - 05/25/07 Page 34

Hakan Evecek

Software Design Specification

Visitor Design Pattern: It represents an operation to be performed on the elements of an object structure. The visitor design pattern is a way of separating an algorithm from an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates. In other words, a practical result of this separation is the ability to add new operations to existing object structures without modifying those structures.

The classes and/or objects participating in this pattern are: Visitor (Visitor): declares a Visit operation for each class of ConcreteElement in the object structure. The operation's name and signature identifies the class that sends the Visit request to the visitor. That lets the visitor determine the concrete class of the element being visited. Then the visitor can access the elements directly through its particular interface. ConcreteVisitor (IncomeVisitor, VacationVisitor): implements each operation declared by Visitor. Each operation implements a fragment of the algorithm defined for the corresponding class or object in the structure. ConcreteVisitor provides the context for the algorithm and stores its local state. This state often accumulates results during the traversal of the structure.
Confidential - 05/25/07 Page 35

Hakan Evecek

Software Design Specification

Element (Element): defines an Accept operation that takes a visitor as an argument. ConcreteElement (Employee): implements an Accept operation that takes a visitor as an argument. ObjectStructure (Employees) can enumerate its elements. It may provide a highlevel interface to allow the visitor to visit its elements. It may either be a Composite (pattern) or a collection such as a list or a set. Strategy Design Pattern: It defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. This can be also used in our project.

The classes and/or objects participating in this pattern are: Strategy (SortStrategy): declares an interface common to all supported algorithms. Context uses this interface to call the algorithm defined by a ConcreteStrategy. ConcreteStrategy (QuickSort, ShellSort, MergeSort): implements the algorithm using the Strategy interface. Context (SortedList): is configured with a ConcreteStrategy object, maintains a reference to a Strategy object, may define an interface that lets Strategy access its data.

Confidential - 05/25/07

Page 36

Hakan Evecek

Software Design Specification

7. Design Documents Black Box Design for E-Voting System DFD Black box design of the e-voting system is done with Data Flow diagram below. This DFD is created from the SRS document provided. If you click on the image below, link will open the visio diagram of the system or if you can not open the visio diagram with the link, visio diagram will be provided. Classification Class diagrams are drawn for the classes used in this project. Operations and attributes are defined for each class. Definition The specific purpose and semantic meaning of the component are below. This black box model is drawn by referring to the the requirements specification document. All the requirements are drawn in this diagram to make it clear for the developer. For additionals fucntionalities main level is divided into sub levels. Responsibilities The primary responsibilities and/or behavior of the forms are: User Login Form: This is the login form. Login credentials will be provided by the Administrator. According to the login credentials users will be connected either to the Administrator pages or voting pages. Election Form: This form will be accessible only by the Administrators. They will be able to create the Elections through this form. Ballots Form: This form also can be accessed only by the Administrators. Administrator can create new ballots for the election. Tally / Decrypt Form: This form will decrypt the vote results and tally the votes. Summary of the votes will be displayed on this form. Submitted Votes Form: After submitting the votes, users will have the option to diplay the summary. Voting Form: Voting Form is the Form where user can do the voting. This form can be accessed both by the voters and the Administrators. Constraints There wont be any constraints on completing this project. It will be completed on time.

Confidential - 05/25/07

Page 37

Hakan Evecek

Software Design Specification

E-VOTING SYSTEM Data Flow Diagram (DFD)


7.2.1 Vote for Questions / Issues
Results

Results

7.2 Display Questions / Issues

Vote

7.3.1 Update Vote Results


PTC Web Services

7.3 Display Your Vote Results

7.4 Submit Vote 6.3.1 Retreive Vote Results

Vote

7.1 Open Election Page


Election XML File

Election

7.1.1 Display Election Details

User

7.1.2 Enter Username

6.3 Display Votes Count

Vote

Vote

User

7.0 E-Voting Voting Form

6.1 Open an Election


Election XML File

Election

6.2 Display Election Details


Ballot

Ballot

6.4 Decrypt Vote

user

Voter

6.0 Tally/Decrypt Votes


Votes Links

6.2.1 Display Ballots

Vote

6.2.2 Display Encrypted Votes 2.2 Help Menu

Vote

6.4.1 Decrypt Encrypted Vote

2.1 Links for the Admin Pages

Links

1.0 Login to E Voting System

Administrator

3.3.1 Create Election XML File

2.0 Access to the Admin Pages

4.1.1 Assign a ballot ID 4.0.1 new ballot button


Ballot Web Services

Issue

4.1.2 Define the Issue

4.3.1 Delete Chosen Ballot Options


Ballot XML File

Election

4.1 Add Issue


issue

choices choices

3.3 Save Election

Election XML File Election Election

3.0 Create a new Election


Election

Ballot

4.0 Create a new ballot

4.3 Delete Choices

User

5.3.1 Enable Encryption

4.2 Add Choices


Ballot XML File Web Services

3.1 Enter Election Details 3.4 Post Election


PTC web Services

Election

3.2 Send Request

User

5.3 Check Encryption


Key size

4.2.2 Display ballot

Ballot

4.2.1 New Choices

Election

4.4 Save Ballot

PTC web Services

3.1.1 Open an Election


PTC Web Services

5.0 Add a User 3.2.1 Connect to the Web Services

User List User List

5.5 Send Users List 5.5.1 Connect to Web Services

3.4.1 Connect to the Web Services


Database

Web Services Threshold value Key size

3.1.2 Create the Election ID

Database

3.4.2 Connect to the Database


Election Election

3.2.2 Connect to Database

5.1 Get Decryption Threshold Value


Threshold value

5.2 Key Size for Encryption

5.4 Display User List

Database

5.5.2 Connect to Database

User

3.1.3 Enter Election Title

3.4.3 Process Election

5.1.1 Define Threshold Value

5.2.1 Define Key size

Uses/Interactions
Confidential - 05/25/07 Page 38

3.4.4 Link Back to the Main Menu Page

Link

Hakan Evecek

Software Design Specification

The interactions between the classes are defined in the class diagrams drawn below. Resources This is a server, client tool. Most of the functions will be running from the server and managed through the server. Election files and ballot files will be saved in XML format on the server. Below will be the directory structure for the web server.

According to the directory structure abovenewly created ballots will be saved in the ballots folder. Elections will be palced in the elections folder. Additionally, Pre-computed Prime numbers will be saved in the PreComputation folder. Lastly, OnlineEVotingPrototypeHelpMenu folder will have the entire help menu files hosted. Admin help files in this folder will be available to the Administrators only. Processing Handling of exceptional conditions should be done in each module. All the scenarios that can cause errors need to be handled and not cause applications to crash. Error detection and recovery will be done. To be able to separate error-handling code from the regular code, we will add exception errors in the code. For example, use the following to print the stack trace. catch (Exception e) { //A (too) general exception handler. Output goes to lblInfoexceptions to display. Additional messages can be added by the developer if needed. ... }

Confidential - 05/25/07

Page 39

Hakan Evecek

Software Design Specification

White Box Design for E-Voting System UML: Class Diagrams : For the white Box Model, class diagrams are used to define the modules mentioned in the DFD. Additionally Web services and 3rd party components used classes are also defined. Below are class diagrams for the grid where we define all the pieces of the E-Voting system from the back box DFD. Data Flow Diagram for the black box model is chosen for this porject. One of the reasons why this was chosen is, it is easier to transfer to white box representation and also it is easier to define the levels. DFD provides a description based on modeling the flow of information around the elements. An important characteristic of DFD is that it can be expanded in a hierarchical fashion, with the operation of any bubble being described by means of a further DFD. I have chosen Class diagram for the whitebox: The class diagram defines a detailed design of the system. The class diagram classifies the actors defined in the use case diagram into a set of interrelated classes. The relationship or association between the classes can be either an "is-a" or "has-a" relationship. Each class in the class diagram may be capable of providing certain functionalities. Class diagram is one of the forms that can be used to view the white box model which is detailed diagrams for each module in the program.

Confidential - 05/25/07

Page 40

Hakan Evecek

Software Design Specification

E-Voting System Classes E-voting system classes are created from the DFD diagram drawn above. Election Builder Form:

Confidential - 05/25/07

Page 41

Hakan Evecek

Software Design Specification

Encryption Builder Form

Confidential - 05/25/07

Page 42

Hakan Evecek

Software Design Specification

Voter Form:

Confidential - 05/25/07

Page 43

Hakan Evecek

Software Design Specification

Submmitted Vote Form:

Confidential - 05/25/07

Page 44

Hakan Evecek

Software Design Specification

Tally / Decrypt Form:

Confidential - 05/25/07

Page 45

Hakan Evecek

Software Design Specification

Ballot Builder Form:


class EVoting System Ballot Builder System.Windows.Forms.Form BallotBuilder ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ btnAddCandidate: System.Windows.Forms.Button btnDeleteChoices: String btnOpenElection: System.Windows.Forms.OpenFileDialog btnSaveBallot: System.Windows.Forms.SaveFileDialog lblBallot: System.Windows.Forms.Label lblBallotID: System.Windows.Forms.Label lblChoices: System.Windows.Forms.Label lblExceptiontxtIssue: System.Windows.Forms.TextBox lblIssue: System.Windows.Forms.Label lstBoxElections: System.Windows.Forms.ListBox SaveBallotDetailsIntoDB: Ballots txtBoxBallotID: System.Windows.Forms.TextBox txtBoxIssues: System.Windows.Forms.TextBox txtBoxNewCandidate: System.Windows.Forms.TextBox txtBoxxChoices: System.Windows.Forms.TextBox InitializeComponent()

Confidential - 05/25/07

Page 46

Hakan Evecek

Software Design Specification

Threshold Crypto Library Classes Threshold Crypto Library classes are also created from the original source code created for PTC Web services.
class Paillier Threshold Crypto Library Classes struct ShamirShare + + + Encrypted: Boolean SecretShare: Byte (()) ShareIndex: Integer

+SecretKeyShare

Ow nerInfo + + OwnerName: String OwnerX509: Byte (()) +OwnerInfos

+OwnerInfo + +

PaillierThresholdKeyShare OwnerInfo: OwnerInfo SecretKeyShare: ShamirShare

+ThresholdKeyShares

struct ThresholdParameterRequest + + + + DecryptionThreshold: Integer KeySize: Integer NumShares: Integer OwnerInfos: OwnerInfo (())

struct PaillierThresholdParameters Delta: Double PublicKey: PaillierPublicKey SecretKey: Byte (()) T: Integer ThresholdKeyShares: PaillierThresholdKeyShare (()) VerificationKeys: PaillierThresholdVerificationKey (()) -_Parameters +PublicKey

struct PaillierThresholdVerificationKey +VerificationKeys + + + + VerificationKey: Byte (()) + + VerificationKeyBase: Byte (()) + +

struct PaillierPublicKey + + + G: Byte (()) N: Byte (()) Theta: Byte (())

Barleydog.ThresholdCryptography.PaillierThreshold ICspAsymmetricAlgorithm PaillierThresholdCryptoServ iceProv ider {leaf} + + + + + + + + + + + + + + + _DecryptionShares: List(Of ThresholdDecryptionShare) _Parameters: PaillierThresholdParameters CombineDecryptionShares(Byte()) : Byte[] DecryptValue(Byte) : Byte[] DecryptValue(Byte, PaillierThresholdKeyShare, PaillierThresholdVerificationKey) : ThresholdDecryptionShare EncryptValue(Byte, Byte) : Byte[] EncryptValue(Byte, PaillierPublicKey, Byte) : Byte[] ExportCspBlob(Boolean) : Byte[] ExportParameters(Boolean) : PaillierThresholdParameters GenerateShamirSecretShares(Byte(), Integer, Integer, Byte()) : ShamirShare[] GenerateVerificationKeys(IntMP, ShamirShare()) : PaillierThresholdVerificationKey[] GetOwnerX509(String) : X509Certificate2 ImportCspBlob(Byte) ImportParameters(PaillierThresholdParameters) New() New(Integer) New(PaillierThresholdParameters) New(Integer, Integer, Integer)

property + CspKeyContainerInfo() : CspKeyContainerInfo + DecryptionShares() : List(Of ThresholdDecryptionShare)

Confidential - 05/25/07

Page 47

Hakan Evecek

Software Design Specification

class Paillier Threshold Crypto Library Classes System.Security.Cryptography.AsymmetricAlgorithm PaillierThreshold + + + # + + + + + + create() : Pail li erT hresholdCryptoServiceProvider create(String) : Pail lierT hresholdCryptoServiceProvider DecryptVal ue(Byte()) : Byte[] Dispose(Boolean) EncryptVal ue(Byte(), Byte()) : Byte[] ExportParameters(Bool ean) : Pail li erThresholdParameters FromXml Stri ng(String) ImportParameters(Pail li erThresholdParameters) New() T oXm lString(Boolean) : String + + + + + + e: Byte (()) z: Byte (())

DiscreteLogEqualityProof

GenerateProof(Byte(), Byte(), Byte(), Byte(), Byte(), Byte(), Integer) : DiscreteLogEquali tyPro New() New(Byte(), Byte()) ProofIsVal id(Di screteLogEqual ityProof, Byte(), Byte(), Byte(), Byte(), Byte()) : Bool ean -_proof

property + KeyExchangeAlgorithm () : String + SignatureAl gori thm () : String + +

ThresholdDecryptionShare _c: Byte (()) _decryptionShare: Byte (()) _proof: DiscreteLogEqualityProof _shareIndex: Integer New() New(Byte(), Byte, Integer, DiscreteLogEqual ityProof)

property + C() : Byte[] + DecryptionShare() : Byte[] + Proof() : DiscreteLogEqual ityProof + ShareIndex() : Integer

Utilities + + + + + + + + + + + ByteArrayToBitString(Byte) : String ByteArrayToHexString(Byte) : String ConvertByteArrayToIntMP(Byte) : IntMP ConvertIntMPToByteArray(IntMP) : Byte[] Factorial( Double) : Double GetSafePrime(UInteger) : IntMP GetSquareThatGeneratesMultiplicativeGroup (IntMP) : IntMP HexStringToByteArray (String) : Byte[] L (IntMP, IntMP) : IntMP RandomIntegerGroup (IntMP) : IntMP RandomIntegerMultiplicativeGroup (IntMP) : IntMP

Confidential - 05/25/07

Page 48

Hakan Evecek

Software Design Specification

Voting Services Library Classes Voting Services Library classes are extracted from the original source code where the web services were created.

Confidential - 05/25/07

Page 49

Hakan Evecek

Software Design Specification

7.1.1 GMP Classes GMP classes are also extracted from the source code created. As there are too many properties involved and image can not fit in an A4 size document, use the link below to access the class diagrams folders for GMP classes and all the other diagrams in this SDS document. http://cs.uccs.edu/~gsc/pub/master/hevecek/doc/diagrams

Confidential - 05/25/07

Page 50

Hakan Evecek

Software Design Specification

8. Database Interface Requirements Specification for the E-Voting System Database Design and Tables Relations Diagram :
Candidate
CID BID Nam e VoteValueExp

Ballots BID
EID BallotID Issue

Elections EID
ElectionID ElectionTitle Adm inistrator

Votes
BID Voter Vote

VID

Below are the design diagram for the user login and SafePrimeNumbers tables. UserLogin table will be used for the users validation process. SafePrimeNumbers table will be used to get the prime numbers stored. These prime numbers will be calculated prior to the voting to minimize the load of the system and improve the efficiency.

Confidential - 05/25/07

Page 51

Hakan Evecek

Software Design Specification

E-Voting System Tables UserLogin Table This table is used to store the users login information for the election forms access and privilidges. Attributes: Integer, nvarchar(50) CID (Candidate ID) , This is the primary key for the table. UserName

nvarchar(50), Password. nvarchar(50) UserType. Either Admin or voter type. nvarchar(50), SecurityNumber. To store a security key to validate the user. Candidate Table This table is used to store candidates information for the ballot choices. Attributes: Integer, Integer, Integer, Elections Table This table is used to store Election details. Election Title, Election ID and Election Administrator are the data collected during the election creation process. Attributes: Integer,
Confidential - 05/25/07

CID (Candidate ID) , This is the primary key for the table. BID ( Ballot ID) VateValurExp

varchar(150) Name, Candidate Name/Description

EID This is the primary key for the table


Page 52

Hakan Evecek

Software Design Specification

varchar(255), ElectionID, Election ID is one of the data created during the new election creation process and this ID is stored in the database. varchar(255) ElectionTitle, is the field stored for the election details. varchar(255), Administrator, is the field where Administrator name will be stored. Ballots Table This table is used to store ballots information for the ballot choices. Attributes: Integer, Integer, BID ( Ballot ID), This is the primary key for the table. EID (Election ID)

varchar(255) BallotID varchar(500), Issue is the field where Administrator can store ballot issue description. Votes Table This table is used to store votes information. Administrators will be able to access and count the votes from this table. Attributes: Integer, Integer, VID (Vote ID), This is the primary key for the table. BID ( Ballot ID)

varchar(255) Voter, Voter description / Name varbinary(256) Vote, will be stored in binary as this can be in encrypted format. SafePrimeNumbers Table This table is used to store P or Q Prime Numbers to be able to calculate prior to the process and increase the efficiency of the calculation. Attributes: Integer, table. Integer, KeySize, Key Size used to create the prime Number value nvarchar(255) PrimeNumberValue, Calculated Prime Number Value will be saved in this field. bit, SafePrimeNumberUsed, To find out if this prime number is used previously or not. nvarchar(2), BallotList Table SafePrimeNumberType. Either P or Q value field. SafePrimeNumberID , This is the primary key for the

Confidential - 05/25/07

Page 53

Hakan Evecek

Software Design Specification

This table is used to store the ballots list to be able to save in a database with the ballot choices. Attributes: Integer, BallotID is the primary key for the table. nvarchar(255) BallotIssue, Description of the issue for the ballot nvarchar(255), ChoiceList, Choice List separated by commas.

Confidential - 05/25/07

Page 54

Hakan Evecek

Software Design Specification

Stored Procedures: EVotingLogin


USE [Voting] GO /****** Object: StoredProcedure [dbo].[EVotingLogin] ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[EVotingLogin] @paramUserName nvarchar(50), @paramPassword nvarchar(50) AS /* SET NOCOUNT ON */ select * from UserLogin where UserName = @paramUserName and Password = @paramPassword RETURN

GetVotersList
USE [Voting] GO /****** Object: StoredProcedure [dbo].[GetVotersList] ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[GetVotersList] /* ( @parameter1 int = 5, @parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ select distinct Voter from Votes RETURN

sp_AddBallotsIntoTheDatabase
USE [Voting] GO /****** Object: StoredProcedure [dbo].[sp_AddBallotsIntoTheDatabase]*/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[sp_AddBallotsIntoTheDatabase]
Confidential - 05/25/07 Page 55

Hakan Evecek

Software Design Specification

@paramBallotIssue nvarchar(255), @paramChoicesList nvarchar(255) AS -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; insert into BallotsList (BallotIssue, ChoicesList) values (@paramBallotIssue, @paramChoicesList) RETURN

sp_getBallotsToUse
USE [Voting] GO /****** Object: StoredProcedure [dbo].[sp_getBallotsToUse] ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[sp_getBallotsToUse] AS /* SET NOCOUNT ON */ RETURN

sp_GetPrimeNumbersAccordingToKeySize
USE [Voting] GO /*** Object: StoredProcedure [dbo]. [sp_GetPrimeNumbersAccordingToKeySize] **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[sp_GetPrimeNumbersAccordingToKeySize] @paramKeySize int AS /* SET NOCOUNT ON */ select * from SafePrimeNumbers where KeySize = @paramKeySize RETURN

sp_NewRandomPrimeNumbers
USE [Voting] GO /****** Object: StoredProcedure [dbo].[sp_NewRandomPrimeNumbers]*/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
Confidential - 05/25/07 Page 56

Hakan Evecek

Software Design Specification

ALTER PROCEDURE [dbo].[sp_NewRandomPrimeNumbers] @paramKeySize int, @paramSafePrimeNumberValue nvarchar(255), @paramGetSafePrimeUsed bit, @paramPrimeNumberType nvarchar(2) AS -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; insert into SafePrimeNumbers (KeySize,PrimeNumberValue,SafePrimeNumberUsed,SafePrimeNumberType) values (@paramKeySize,@paramSafePrimeNumberValue,@paramGetSafePrimeUsed,@param PrimeNumberType ) RETURN

sp_TruncatePrimeNumbersTable
USE [Voting] GO /** Object: StoredProcedure [dbo].[sp_TruncatePrimeNumbersTable] SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[sp_TruncatePrimeNumbersTable] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; Truncate table SafePrimeNumbers END */

Confidential - 05/25/07

Page 57

Hakan Evecek

Software Design Specification

Glossary SRS: Software Requirements Specification SDS: Software Design Specification DFD: Data Flow Diagram GUI: Graphical User Interface

Confidential - 05/25/07

Page 58

You might also like