Skip to content

Latest commit

 

History

History
263 lines (251 loc) · 9.23 KB

README.md

File metadata and controls

263 lines (251 loc) · 9.23 KB

Algorithms

Here is a custom implementation of many algorithms. Edits and improvements are welcomed. Below is a list for a quick transition.

Sorting algorithms

Numerical algorithms

Cryptography

(presented in this repository)

  • Asymmetric (public key) encryption
    • DSA
    • RSA
    • ElGamal
  • Cryptographic hash functions
    • HMAC
    • MD5
    • SHA-2
  • Cryptographically secure pseudo-random number generators
    • Fortuna
    • Yarrow algorithm
  • Key exchange
    • Diffie–Hellman key exchange
  • Key derivation function
  • Symmetric (secret key) encryption
    • Advanced Encryption Standard (AES)
    • Data Encryption Standard (DES)

Computer graphics

Number theoretic algorithms

  • Multiplication algorithms
    • Karatsuba algorithm
    • Schönhage–Strassen algorithm
    • Fürer’s algorithm
  • Algorithms of modular arithmetic
    • Montgomery modular multiplication
    • Algorithm for finding the order of an element
  • Exponentiation by squaring
  • Discrete logarithm
    • Baby-step giant-step
  • Algorithms for finding the greatest common divisor (GCD) of two numbers
    • Euclid's algorithm
    • Extended Euclidean algorithm
    • Binary GCD algorithm
  • Prime number
  • Integer factorization
    • Algorithms with exponential complexity
      • Trial division
      • Fermat's factorization method
    • Algorithms with subexponential complexity
      • Quadratic sieve
      • ...
  • Multiplying matrices
    • Strassen algorithm

Structures

Primitive types

  • Boolean
  • Character
  • Floating-point
  • Double
  • Integer
  • String
  • Reference (also called a pointer or handle)
  • Enumerated type


Materials used


COMMENT:

This list can use links to other my projects where these algorithms were used. There may be errors and shortcomings. These algorithms will be divided into separate modules and improved in the last turn due to lack of time.

Legend:

  • ✅ - ОК
  • ⚠️ - problem
  • 🆘 - need help
  • ♻️ - need update
  • 🌀 - in process