Skip to content

The basis of our project is to define a secure authentication mechanism for users to access remotely, through the use of visual cryptography.

Notifications You must be signed in to change notification settings

erwinleonardy/Visual-Cryptography

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vSignIt

Visual-Cryptography (Group SS19/1C) Secure Remote Authentication using Visual Cryptography

PLEASE EXPLAIN WHAT YOU HAVE EDITED IN THE COMMIT STATEMENT WHEN YOU ARE ADDING OR EDITING A FILE.

The basis of our project is to define a secure authentication mechanisms for users to access remotely, through the use of visual cryptography. To achieve this, we have devised a system that operates on the basis of user signatures, where the signatures will be used to authenticate a legal document. Through an online platform, we allow users to provide an image of a signature, from which two shares that appear as random noise emerge. One of the shares is to be kept by the user, while the other is sent to a party that requires authentication. In order to provide the authentication, the party requiring authentication on the legal document sends in their complete document, inclusive of the share, while the recipient will in turn provide their share to complete the authentication.

For our final product, VSignIT, our primary focus will be electronically authenticating signatures on cheques. However, while the focus of the project is in the banking domain, the usage of the application can be generalized to serve as an authentication for any legal document requiring signatures within an organisation.

Visit our Frequently Asked Questions (FAQ) Page for the solutions to errors that user might face when installing/running the vSignIt application.

Pre-Installation

  1. You would have to install Apache, phpMyAdmin, and MySQL to get the database running.
  • For Windows user:

Please click here to install WAMP Server that would handle everything for you. There is a detailed instruction here regarding the installation.

  • For MAC user:

Apache came pre-installed. Do follow the instuctions here to get things up and running.

  1. Open up phpMyAdmin
http://localhost/phpmyadmin/
  1. Create a new database called 'vsignit' on phpMyAdmin.

  2. Go to init.py and change this following line of code to your username and password. In this case, just replace the password with your root password.

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost/vsignit'  
  1. When you managed to get phpMyAdmin running, run the sql script that can be found in the ./helper folder. Click here to view the file.

Note: If the sql script has been modified, you have to DROP or TRUNCATE the existing tables before re-running the sql script to get the latest database.

Installation

  1. Download Pillow
pip install Pillow
  1. Download Flask
pip install Flask
  1. Download Flask-SQLAlchemy
pip install Flask-SQLAlchemy
  1. Download Python MySQL (Windwos)
pip install PyMySQL
  1. Download MySQLClient (Mac)
pip install MySQLClient
  1. Download Flask Login
pip install flask-login

Database Modification

  1. To delete user: Go to this phpMyAdmin UI page and click on 'vsignit', then 'user_table' to access the records you want to delete.
http://localhost/phpmyadmin/
  1. To reset user_id counter:
ALTER TABLE user_table AUTO_INCREMENT = (the latest id, i.e. after John Doe and Jane Doe, which is 3)

note: New user will only be given 'user' privilege.

Execution

  1. To run, type this on your terminal. note: FLASK_ENV would allow you to refresh the website without having to quit (ctrl+c) the application that you are currently running.
  • MAC:
FLASK_APP=vsignit.py FLASK_DEBUG=1 python -m flask run
  • Windows (Doesn't work with PowerShell, you have to use cmd):
set FLASK_APP=vsignit.py
set FLASK_ENV=development
flask run
  1. Open up your browser and type in the localhost address and the port number. The home page has been set to the share generation page.
http://127.0.0.1:5000

Here are the sample screenshots of our current program

share construction page share reconstruction page client page

Programmers

About

The basis of our project is to define a secure authentication mechanism for users to access remotely, through the use of visual cryptography.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •