CS701 Master’s Project Proposal Title: Applying Software Engineering Processes for Creating an E-Voting system. Hakan Evecek Last Update: 15Feb2007 CS701 Project Proposal– Spring 2007 – Hakan Evecek Page 1 of 6 TABLE OF CONTENTS CS701 Master’s Project Proposal .................................................................................... 1 1. Committee ................................................................................................................. 3 2. Project Description.................................................................................................... 3 3. Background Information ........................................................................................... 3 4. Project Goals ............................................................................................................. 4 5. Research .................................................................................................................... 5 6. Project Deliverables .................................................................................................. 5 7. Future Work .............................................................................................................. 5 8. Proposed Schedule .................................................................................................... 6 CS701 Project Proposal– Spring 2007 – Hakan Evecek Page 2 of 6 1. Committee Project Advisor: Dr. Edward Chow Member: Dr. Xiaobo Zhou Member: Dr. Richard Wiener 2. Project Description The Paillier Threshold Cryptography (PTC) Web Service has been implemented. I will apply Software Engineering processes and make the recommended changes in the code with intent of improving the code. Below are the recommended improvements for the code: The data handling of the voting application was thrown together. Right now, some of the data is stored in a SQL Server Express database (votes, etc), and the remainder is stored in an XML file (election parameters). I will combine all into an SQL Server where possible. The voting application demonstrates the use of the Paillier Threshold Cryptography (PTC) Provider, but really isn’t a very usable application. Starting over and building a complete, secure, user-friendly application. All of the basic ideas are demonstrated in the demo voting application created, but not intending for it to be a usable application, just a demo. Change this application to a more usable application. “Clean up” the Paillier Threshold Cryptography (PTC) Provider code, making efficiency improvements where they can be identified. 3. Background Information The Paillier cryptosystem is a probabilistic asymmetric algorithm for public key cryptography. It is believed that n-th residue classes are computationally difficult to compute. This is known as the Composite Residuosity (CR) assumption upon which this cryptosystem is based. The Paillier cryptosystem based on the composite Residuosity class problem has received much of the research interest due to possessing some important properties useful in the e-voting application. This paper presents an implementation of that scheme as a web service. In this implementation, the web service serves as the “trusted dealer” and thus removes the requirement for picking the “trusted dealer” from among the users of the cryptosystem. It is envisioned that such a web service could be commercially operated by a universally trusted organization similar to modern public key certificate authorities. CS701 Project Proposal– Spring 2007 – Hakan Evecek Page 3 of 6 4. Project Goals 1) Create a prototype Online E-Voting system by using the PTC Web Service and develop Software Engineering processes as defined by the MESE program at UCCS. 2) The project should include elements that are new to the designer. 3) All the enhancements mentioned above will be applied to the project. 4) User Manual for the PTC Web Services will be revised. CS701 Project Proposal– Spring 2007 – Hakan Evecek Page 4 of 6 5. Research Comparison of E-voting systems and implementation issues in secure e-voting schemes. What is the difference of Paillier Cryptosystem? 6. Project Deliverables Web Site – For project status: http://www.cs.uccs.edu/~gsc/pub/master/hevecek/ Proposal - Description of the project, how it will be developed. Requirements Specification - A description of the feature set of the project. Design Document - A description of the internal and external design of the project. Test Plan - A description of the tests and test environment of the project. This should be written at the same time as the SRS. Test Procedures – Based on the design document in a format that can be handed to the tester to use. Software - The source files and executable software product. These files will be placed in the folder below: http://www.cs.uccs.edu/~gsc/pub/master/hevecek/src/ Manual - This will be the revised version of the PTC Web Services Manual with the software product. Presentation - Power Point slides with a presentation, followed by question/answer period. 7. Future Work The voting application has numerous security issues. Right now there is no way that a user can verify the authenticity of either the generated Paillier parameters or the election parameters. These can be cryptographically signed by the Web Service and the Election Administrator respectively. It may also be of value to think about how the class hierarchy of Paillier Threshold Cryptography Provider. Originally Microsoft’s ICSPAsymmetric Algorithm, which isn’t a good fit since threshold cryptosystems have some unique requirements, was worked on to implement in the code. It might make more sense to extend a lower level interface to make an ICSPAsymmetric Threshold Algorithm interface, and then implement this interface in Paillier Threshold Cryptography Provider. CS701 Project Proposal– Spring 2007 – Hakan Evecek Page 5 of 6 8. Proposed Schedule Project Proposal 01Feb07 Requirements Specification 15Feb07 Design Documents and changes 23Feb07 Test Plan 15Feb07 Test Procedures 07Mar07 Manual 10Apr07 Software Development for the Enhancements 01Feb07 – 30Mar07 Software Test 30Mar07 – 10Apr07 Software Complete 10Apr07 Presentation 15May07 CS701 Project Proposal– Spring 2007 – Hakan Evecek Page 6 of 6