Skip to content

Implementation of long arithmetic and cryptographic algorithms.

Notifications You must be signed in to change notification settings

SChudakov/crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Сrypto

C++ long arithmetic implementation and various numerical algorithms as well as ElGamal cryptosystem.

Long arithmetic

The arithmetic module provides an easy-to-use interface for log arithmetic calculations. The BigInteger has following constructors

BigInteger()            initializes object to represent 0
BigInteger(string)      initializes object to a numeric value represented by string parameter

Once a number object is created, it can be used in arithmetical expressions both with other objects of the type as well as primitive numerical values due to implicit type conversion.

Algorithms

Example of usage:

PollardsRhoFactorization factorization;     create algorithm object
factorization.factorize(BigInteger)         returns vector of prime factors

Currently supported algorithms for the following problems

  • Discrete logarithm problem (baby step gigian step)
  • Chinese remainder problem
  • Discrete square root (Cipolla`s algorithm)
  • Primality test (Soloway-Strassen algorithm)
  • Computing GCD
  • Computing extended GCD
  • Computing Euler function
  • Computing Mobius function
  • Computing Jacobian symbol
  • Computing Legendre symbol
  • Finding sequence loop (Floyd algorithm)

About

Implementation of long arithmetic and cryptographic algorithms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published