Giter Site home page Giter Site logo

ghaitharar / cpe-593_finalproject-rsa Goto Github PK

View Code? Open in Web Editor NEW

This project forked from amandal3/cpe-593_finalproject-rsa

0.0 1.0 0.0 31.24 MB

Implement RSA using a biginteger library. It doesn’t have to be production quality, but you would need to implement Diffie-Hellman key exchange and use AES-256 (you don’t have to write that) to exchange secret messages.

C++ 100.00%

cpe-593_finalproject-rsa's Introduction

CPE-593_FinalProject-RSA

By Amanda Ly, Neel Haria, and Ghaith Arar

Implement RSA using a biginteger library. It doesn’t have to be production quality, but you would need to implement Diffie-Hellman key exchange and use AES-256 (you don’t have to write that) to exchange secret messages.

Concerns:

  • RSA is having problems with decrypt (Amanda: I'm sure how to debug - been stuck on it for a week now) - Fixed Dec 5, 2020
  • The algorithm doesn't generate large numbers for q, p.

Tasks To Do:

  • Generate p, q that are large engough to make encryption secure. Right now the algorithem accepts the first two prime numbers it can get.
  • Add padding to the algorithem
  • Use void mpz_powm_sec (mpz t rop, const mpz t base, const mpz t exp( instead of mpz_powm .
  • Generate a very large prime either (p, q) then use mpz_nextprime to generate the other one.

"This function is designed to take the same time and have the same cache access patterns for any two same-size arguments, assuming that function arguments are placed at the same position and that the machine state is identical upon function entry. This function is intended for cryptographic purposes, where resilience to side-channel attacks is desired."

  • Feed text file to the algorithem instead of simple string.

  • Begin writting final paper

  • Put together final presentation

Tasks Completed:

  • Diffie-Hellman Key Exchange (Written by Ghaith)
  • RSA Algorithm using GMP (Written by Amanda and Ghaith)
  • RSA Algorithm using Boost (Written by Neel)
  • Presentation (Made by Amanda)
  • Report (Written by All)

RSA:

The implemented algorithem is a textbook algorithm. The algorithm can be improved by adding padding. Each time the algorithm runs, it generate new two prime numbers and use them to generate the private and publick key. System time was used to seed the random number generator.

Output:

The following is a screenshot for the RSA Algorithem test alt text

cpe-593_finalproject-rsa's People

Contributors

amandal3 avatar ghaitharar avatar neelharia97 avatar

Watchers

James Cloos 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.