Coder Social home page Coder Social logo

dsa-rsa's Introduction

Digital Signature Algorithm with RSA

About

The Digital Signature Algorithm (DSA) is a Federal Information Processing Standard for digital signatures, based on the mathematical concept of modular exponentiation and the discrete logarithm problem. DSA is a variant of the Schnorr and ElGamal signature schemes. The National Institute of Standards and Technology (NIST) proposed DSA for use in their Digital Signature Standard (DSS) in 1991, and adopted it as FIPS 186 in 1994. Four revisions to the initial specification have been released. The newest specification is FIPS 186-4 from July 2013. DSA is patented but NIST has made this patent available worldwide royalty-free. A draft version of the specification FIPS 186-5 indicates DSA will no longer be approved for digital signature generation, but may be used to verify signatures generated prior to the implementation date of that standard.

  • Project status: prototype

Table of contents

Code

GitHub language count GitHub code size in bytes Lines of code PyPI - License Conda Conda

Content

Description

This project seeks to implement a Digital Signature Algorithm (DSA) scheme, for this, it uses the following steps:

  1. Input: Receive a text file
  2. Hash function: A function is chosen from the following functions to calculate the diget of the previous file:
  - sha224
  - sha256
  - sha384
  - sha512
  - keccak
  1. Algorithm: Initialize the key pair with the RSA algorithm
  2. Signature: Encrypt the digest with the private key
  3. Validation: Decrypt the signature with the public key and validate that the digest matches that of the file
  4. Certificate: Print a certificate with the following information
  - Certificate name
  - Name of signatory
  - Password (digest)
  - Salt
  - Hash function
  - Algorithm
  - Public and private key
  - Signature
  - Message

Modules

  • GUI: It is the module that implements the algorithms and allows the reading of the text file through a graphical interface with text boxes, buttons and labels.
  • Algorithm: This module contains the classes to create the RSA (2048) key pair, the hash functions and compute the expanded key.
  • Utils: It contains the class to read the file and the necessary methods to convert the file from text to bytes.

License

Apache License, Version 2.0

New BSD License

dsa-rsa's People

Contributors

christophermontero avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.