Project Report On E-Polling System Using Python
Project Report On E-Polling System Using Python
ABSTRACT------------------------------------------------------------------------3
INTRODUCTION----------------------------------------------------------------4
PROPOSED SYSTEM----------------------------------------------------------4
REQUIREMENTS FOR ONLINE E-VOTING SYSTEM-------------5
MODULE’S INFORMATION------------------------------------------------6
E-VOTING SYSTEM DESIGN----------------------------------------------7
THE VOTING PROCESS-----------------------------------------------------8
WORKING-------------------------------------------------------------------------9-10
FLOWCHART OF OVERALL VOTING PROCESS--------------------10
SYSTEM REQUIREMENTS--------------------------------------------------11
PROPOSED WORK-------------------------------------------------------------12
INTRODUCTION TO HTML------------------------------------------------12-14
INTRODUCTION TO BOOTSTRAP---------------------------------------15-16
INTRODUCTION TO PYTHON--------------------------------------------17-18
DEMOSTRATIONS AND SCREENSHOT-------------------------------19-25
SOURCE CODES----------------------------------------------------------------26-27
CONCLUSION--------------------------------------------------------------------28
REFERENCES--------------------------------------------------------------------29-30
1
LIST OF FIGURES
2
ABSTRACT
The advancement in the mobile devices, wireless and web technologies given rise to the new
application that will make the voting process very easy and efficient. The E-voting promises
the possibility of convenient, easy and safe way to capture and count the votes in an
election[1]. This research project provides the specification and requirements for E-Voting
using an Android platform. The e-voting means the voting process in election by using
electronic device. The android platform is used to develop an evoting application. At first, an
introduction about the system is presented. Sections II and III describe all the concepts
(survey, design and implementation) that would be used in this work. Finally, the proposed
evoting system will be presented. This technology helps the user to cast the vote without
visiting the polling booth. The application follows proper authentication measures in order to
avoid fraud voters using the system. Once the voting session is completed the results can be
available within a fraction of seconds. All the candidates vote count is encrypted and stored
in the database in order to avoid any attacks and disclosure of results by third person other
than the administrator. Once the session is completed the admin can decrypt the vote count
and publish results and can complete the voting process.
3
INTRODUCTION
The proper execution of democratic rights has become linked to the availability and reliable
functioning of advanced information and communication technology (ICT). While modern
societies fully rely on ICT for business, work and leisure time activities, the use of ICT for
democratic decision making is still in its infancy. In fact, the out date technological concepts
for voting have been blamed in part for lost and uncounted votes and could therefore be
responsible for biased political decisions making . Countries all over the world are examining
e-voting , for it has some striking advantages over traditional paper voting, including security
for casting votes, accuracy of counting and analyzing votes, options to conduct voting in a
centralized and decentralized manner, etc. The reasons why the e-voting technology has not
matured to equivalent levels as known for business and leisure time activities lies mostly in
an inherent lack of trust and fear of electronic threats. While most countries are still
conceptualizing or testing evoting systems, three cantons in Switzerland have pioneered the
development of e-voting to its full technological maturity. The world is always in
improvement and growth in technology, that's why we should go parallel with it, to be able as
much as we can get benefit from these improvements.
PROPOSED SYSTEM
The application can be installed in the android phones and voting will be enabled by the
administrator on the polling day. If there are different stages of polling then application will
enable the user only on the polling day. The user can enter into the application by giving his
voter id/Aadhar number (unique number) and a secret password which is provided to the
user. As soon as the user enters into the application he selects his constituency and his booth
number or place then the user can cast his vote and logout from the application. The vote
should be kept secret and it should be available on the voting day in the counting center. To
keep the vote secret an encryption and a decryption algorithm is used. So as soon as the user
casts his vote the vote is encrypted so that it is secret and the same is encrypted on the polling
day.
4
REQUIREMENTS FOR ONLINE E-VOTING SYSTEM
tolerated. In other words, the system must be able to tolerate to certain faulty
Universal Verifiability – any party can verify the result of the voting
Receipt-freeness – Voters are unable to prove the content of a particular his/her vote
MODULES
5
The proposed project contain following modules:
Administrator
User
Account
ADMINISTRATOR:
• User Information: Consists of all information of the user those who are eligible for voting.
• User Verification: Verify the user during registration and user Login.
• Voting Information: Storage for storing the vote information casted by the user.
USER:
• Encryption: Encrypting the vote after the vote casted by the user
ACCOUNT:
• Login: Logging into the application using user name and password.
6
Like most of the systems in the world, the security consideration is very important. We are
taken into account this part through sending password to users email account. Further
encrypting the vote while sending it to the admin. It is clear that the user information should
be stored in the database, so that the valid users can register themselves to get the password.
It also stores the password once it is sent to the user until the user cast s the vote. It is also
possible to get information of user who doesn't participated in voting process. The application
should be secure because it should not reveal vote information. So the vote should be
encrypted once user confirms the vote. Also the password is sent to users e-mail account in
order to avoid the misuse of password . Since the e-mail account is confidential we used that
feature to avoid the misuse of our applications password.
The registration process is illustrated as in the figure1 shown above. When user chooses
registration option and provides required details those details are compared with the
information maintained by the admin. If user provided data is found to be correct a password
is generated and given to the user through mail service in order to make it safe and secure.
7
Fig no.2- The Voting Process
WORKING
8
This allows the user to vote. Admin can see the voting results according to vote
options[3].System can maintain the data about the voter like Name, ID number and other
relevant data. Even though the system enables voters to poll their vote from anywhere,
initially the voters should register themselves to get a password for voting purpose. This
constraint is imposed to ensure that only the genuine person is allowed to vote in the
elections. The aim of this work is to design and implement an electronic voting website that
will enable people to vote securely from anywhere.
The application is also aimed at being localized [4]. Figure Below shows the overall voting
process. Electronic voting refers to the use of computers or computerized voting equipment to
cast ballots in an election. Electronic systems can be used to register voters, tally ballots, and
record votes [5].The Caltech/MIT Voting Technology Project [6] came into being in order to
9
develop a new voting technology in order to prevent a recurrence of the problems that
threatened the 2000 U. S. Presidential Elections. The report assesses the magnitude of the
problems, their root causes and how technology can reduce them. They address a wide range
of “What is” issues including voting procedures, voting equipment, voter registration, polling
places, absentee and early voting, ballot security, cost and public finance of elections, etc.
SYSTEM REQUIREMENTS
SOFTWARE REQUIREMENTS
10
Software tools:
Text editor:
Notepad, Notepad++
Web Server:
IIS Server
HARDWARE REQUIREMENTS
Operating System: MAC OS x
PROPOSED WORK
FRONT-END
11
HTML
BOOTSTRAP
BACK-END
PYTHON
INTRODUCTION TO HTML
First developed by Tim Berners-Lee in 1990, HTML is short for Hypertext Markup
Language. HTML is used to create electronic documents (called pages) that are displayed on
the World Wide Web. Each page contains a series of connections to other pages called
hyperlinks. Every web page you see on the Internet is written using one version of HTML
code or another.
HTML code ensures the proper formatting of text and images so that your Internet browser
may display them as they are intended to look. Without HTML, a browser would not know
how to display text as elements or load images or other elements. HTML also provides a
basic structure of the page, upon which Cascading Style Sheets are overlaid to change its
appearance. One could think of HTML as the bones (structure) of a web page, and CSS as its
skin (appearance).
Fig no.5
BACKGROUND
12
HTML is the World Wide Web's core markup language. Originally, HTML was primarily
designed as a language for semantically describing scientific documents. Its general design,
however, has enabled it to be adapted, over the subsequent years, to describe a number of
other types of documents and even applications.
AUDIENCE
This specification is intended for authors of documents and scripts that use the features
defined in this specification, implementers of tools that operate on pages that use the features
defined in this specification, and individuals wishing to establish the correctness of
documents or implementations with respect to the requirements of this specification. This
document is probably not suited to readers who do not already have at least a passing
familiarity with Web technologies, as in places it sacrifices clarity for precision, and brevity
for completeness. More approachable tutorials and authoring guides can provide a gentler
introduction to the topic. In particular, familiarity with the basics of DOM is necessary for a
complete understanding of some of the more technical parts of this specification. An
understanding of Web IDL, HTTP, XML, Unicode, character encodings, JavaScript, and CSS
will also be helpful in places but is not essential.
SCOPE
13
When HTML is used to create interactive sites, care needs to be taken to avoid introducing
vulnerabilities through which attackers can compromise the integrity of the site itself or of the
site's users. A comprehensive study of this matter is beyond the scope of this document, and
authors are strongly encouraged to study the matter in more detail. However, this section
attempts to provide a quick introduction to some common pitfalls in HTML application
development. The security model of the Web is based on the concept of "origins", and
correspondingly many of the potential attacks on the Web involve cross-origin actions.
[ORIGIN]p1254 Not validating user input Cross-site scripting (XSS) SQL injection When
accepting untrusted input, e.g. user-generated content such as text comments, values in URL
parameters, messages from third-party sites, etc, it is imperative that the data be validated
before use, and properly escaped when displayed. Failing to do this can allow a hostile user to
perform a variety of attacks, ranging from the potentially benign, such as providing bogus
user information like a negative age, to the serious, such as running scripts every time a user
looks at a page that includes the information, potentially propagating the attack in the
process, to the catastrophic, such as deleting all data in the server. When writing filters to
validate user input, it is imperative that filters always be safelist-based, allowing known-safe
constructs and disallowing all other input. Blocklist-based filters that disallow known-bad
inputs and allow everything else are not secure, as not everything that is bad is yet known (for
example, because it might be invented in the future). There are many constructs that can be
used to try to trick a site into executing code. Here are some that authors are encouraged to
consider when writing safelist filters: • When allowing harmless-seeming elements like
imgp310, it is important to safelist any provided attributes as well. If one allowed all
attributes then an attacker could, for instance, use the onloadp930 attribute to run arbitrary
script. For example, suppose a page looked at its URL's query string to determine what to
display, and the site then redirected the user to that page to display a message, as in:
Say Hello
Say Welcome
Say Kittens
If the message was just displayed to the user without escaping, a hostile attacker could then
craft a URL that contained a script element: https://example.com/message.cgi?say=%3Cscript
%3Ealert%28%27Oh%20no%21%27%29%3C/script%3E If the attacker then convinced a
victim user to visit this page, a script of the attacker's choosing would run on the page. Such a
script could do any number of hostile actions, limited only by what the site offers: if the site
is an e-commerce shop, for instance, such a script could cause the user to unknowingly make
arbitrarily many unwanted purchases. This is called a cross-site scripting attack.
INTRODUCTION TO BOOTSTRAP
14
Bootstrap is a free and open-source framework for creating websites and web applications.
It's the most popular HTML, CSS, and JS framework for developing responsive, mobile first
projects on the web.
Bootstrap is promoted as being One framework, every device. This is because websites built
with Bootstrap will automatically scale between devices — whether the device is a mobile
phone, tablet, laptop, desktop computer, screen reader, etc.
Mobile-First
Not only is Bootstrap responsive, it is mobile-first. This means that it is primarily designed
for mobile devices, then scales up from there (as opposed to being designed for desktop, then
trying to scale it down to mobile devices).
Bootstrap Components
Bootstap includes components such as buttons, navbars, dropdown menus, alert boxes, and
more. In most cases, you can make use of a component simply by using the appropriate class
name.
We'll be looking at these components throughout this tutorial. We've got plenty of interactive
examples that enable you to see exactly how these components work.
Advantages of Bootstrap
15
One of the main benefits of development frameworks like Bootstrap is that they can help
speed up development times, while maintaining quality and consistency across the site. You
no longer need to re-design every element. And you don't need to spend hours trying to get
everything looking and working right across browsers, platforms, and devices. By using
Bootstrap, all (most) of the hard work is done for you.
Given Bootstrap is the most popular frontend development framework on the web, this
skillset could be a useful one to learn. Adding Bootstrap to your bag of tricks could help you
in many ways — from building websites faster, to landing your dream job.
Also, athough Bootstrap comes with its own set of styles, these are easy to override. You're
not locked into the "Bootstrap design". You are free to use whichever Bootstrap components
you choose, while adding your own on top. There are thousands of websites out there that are
built on Bootstrap, but with their own design.
INTRODUCTION TO PYTHON
We have built our project over isolated python virtual environment. This makes it easy to
manage our project’s dependencies and packages. We have used virtualenv package to create
a virtual environment, which can be installed and activated by running these commands
16
- cd lpr/ virtualenv
-p python3 env
source env/bin/activate
We have included a requirements file named as requirements.txt inside our project folder. To
install all the modules and dependencies required for the project run the following command
in terminal as
1. scikit-learn: scikit-learn is a Python module for machine learning built on top of SciPy.
It provides a range of supervised and unsupervised learning algorithms via a consistent
interface in Python.
2. scikit-image: For performing Image Processing, we have used scikit-image. It’s a Python
package for image processing
3. SciPy: SciPy is a free and open-source Python library used for scientific computing and
technicalcomputing. It contains modules for optimization, linear algebra, integration,
interpolation, special functions, FFT, signal and image processing, ODE solvers and
other tasks common in science and engineering
.
4. OpenCV: OpenCV (Open Source Computer Vision Library) is an open source computer
vision and machine learning software library. OpenCV was built to provide a common
infrastructure for computer vision applications and to accelerate the use of machine
perception in the commercial products.
5. Pillow: Python Imaging Library (abbreviated as PIL) is a free library for the Python
programming language that adds support for opening, manipulating, and saving many
different image file formats.
17
6. NumPy: NumPy is a library for the Python programming language, adding support for
large, multidimensional arrays and matrices, along with a large collection of high-level
mathematical functions to operate on these arrays.
7. matplotlib: Matplotlib is a plotting library for the Python programming language and its
numerical mathematics extension NumPy. It provides an object-oriented API for
embedding plots into applications using general-purpose GUI toolkits like Tkinter,
wxPython, Qt, or GTK+.
INDEX PAGE
18
VOTER’S LOGIN PAGE
19
VOTER’S_SIGNUP PAGE
20
VOTER’S_PROFILE PAGE
21
DONATION PAGE
22
23
VOTER’S PAYMENT CONFIRMATION MAIL
24
SOURCE CODE
25
1.VIEWS.PY
2.VOTER_PROFILE.html
26
CONCLUSION
27
Online E-voting system is a prototype developed by using PTC Web services. As the need for
voting system has started to increase and some organizations or countries has started to look
for the solutions, this can be the starting point to improve and deploy in the real world
scenarios.
In this project I have tried to explain the importance of Paillier cryptosystem, , its unique
We need to keep in mind htat voting is not the only process during the whole voting
processes. There might be some other security concerns that need to be considered when such
Lastly, Paillier Cryptosystem efficiency can be improved as suggested in many papers [1],
[8]. Random numbers pre-computation is one of the ways implemented in this project. It has
increased the calculation more than one of the ways. In the next section, I will be listing all
REFERENCES
28
[1] http://cris.joongbu.ac.kr/publication/evoting_implementation-APIEMS2004.pdf
Implementation issues in a secure e-voting schemes, Riza Aditya, Byoungcheon Lee, Colin
[2] http://www.euractiv.com/en/egovernment/estonia-country-world-introduce-internet-
voting/article-145735, Estonia first country in the world to introduce internet voting, October
2005.
[3] http://www.cs.virginia.edu/~pev5b/writing/academic/thesis/thesis.html
Vote Early, Vote Often, and VoteHere: A Security Analysis of VoteHere, Philip E. Varner,
Eurocrypt ‘99
[9] P. Fouque, G. Poupard, J.Stern, Sharing Decryption in the Context of Voting or Lotteries,
29
[2] A.J. Menezes, P. C. van Oorschot, and S.A. Vanstone, Handbook of Applied Cryptography,
[4] M. Wiener, Safe Prime Generation with a Combined Sieve, Cryptographic Clarity.
[5] B. Wilson, C. E. Chow, Paillier Threshold Cryptography Web Service User’s Guide,
[16]http://www.cs.rit.edu:8080/ms/static/spr/2005/4/kar1141/report.pdf , Progress on
[20] http://www.rsa.com/rsalabs/cryptobytes/CryptoBytes_January_2002_final.pdf
30
31