Skip to content

Digital Signature Verification is a project that built using Django and elliptic curve cryptography (ECC) to ensure the authenticity and integrity of digital communications. The system allows users to generate keys, sign messages, and verify signatures through a secure, user-friendly interface.

Notifications You must be signed in to change notification settings

Pratham-verma/Digital_Signature_Verification

Repository files navigation

Digital Signature Verification System

This project is a Digital Signature Verification System developed using Elliptic Curve Digital Signature Algorithm (ECDSA). It provides robust authentication for messages by allowing users to securely sign and verify the authenticity of data. The application is built with Django and uses PostgreSQL as its database for reliable data storage.

Features

  • Generate Key Pair: Allows users to generate a secure ECDSA key pair (Private Key, Public Key X, Public Key Y).
  • Message Signing and Verification: Users can input messages, sign them with their private key, and verify authenticity using the generated signature.
  • User-Friendly Interface: A clean and responsive UI for an enhanced user experience.
  • Enhanced Security: Utilizes ECDSA to provide a high level of cryptographic security.
  • PostgreSQL Database: Stores user data and keys securely in a robust, SQL-compliant database.

Screenshots

Generate Key Pair Sign Message Verify Signature
Generate Key Pair Sign Message Verify Signature

Technical Overview

  • Backend: Django for handling request processing, key generation, signing, and verification.
  • Database: PostgreSQL for secure, structured data storage.
  • Frontend: HTML, CSS, and JavaScript for a responsive user interface.
  • Cryptography: ECDSA, using private-public key pairs to ensure data integrity and non-repudiation.

Usage

  1. Generate Key Pair: Click on "Generate Key Pair" to create a private-public key pair. The generated keys are displayed on the screen.
  2. Sign Message: Enter a message, use the private key to generate a unique signature, and obtain signature values (R, S).
  3. Verify Signature: Input the original message, public key, and the signature values to validate the authenticity of the message.

Future Improvements

  1. Document Authentication: Extend functionality to include document signing and verification, ensuring integrity and authenticity of larger files.
  2. Timestamping Feature: Integrate a timestamp to provide a verified time for each signature, improving non-repudiation.
  3. User Authentication and Access Control: Add user registration, authentication, and role-based access control for secure multi-user operations.

How to Run

  1. Clone the repository.
    git clone https://github.com/Pratham-verma/Digital_Signature_Verification.git
    cd Digital_Signature_Verification
  2. Install dependencies.
    pip install -r requirements.txt
  3. Open the browser and go to http://127.0.0.1:8000 to access the application.

About

Digital Signature Verification is a project that built using Django and elliptic curve cryptography (ECC) to ensure the authenticity and integrity of digital communications. The system allows users to generate keys, sign messages, and verify signatures through a secure, user-friendly interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published