All Projects → zademn → EverythingCrypto

zademn / EverythingCrypto

Licence: other
(Still exploring) My cryptography journey: A collection of notebooks covering different algorithms and concepts from cryptography

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to EverythingCrypto

codex
A repository of mathematical knowledge written in the MathLingua language.
Stars: ✭ 17 (-86.18%)
Mutual labels:  knowledge, mathematics
Mathematics for Machine Learning
Learn mathematics behind machine learning and explore different mathematics in machine learning.
Stars: ✭ 28 (-77.24%)
Mutual labels:  mathematics
Fourier-and-Images
Fourier and Images
Stars: ✭ 81 (-34.15%)
Mutual labels:  mathematics
jubjub
Supporting evidence for security of the Jubjub curve to be used in Zcash
Stars: ✭ 13 (-89.43%)
Mutual labels:  mathematics
Linear-Algebra-and-Its-Applications-notes
《线性代数及其应用》笔记
Stars: ✭ 196 (+59.35%)
Mutual labels:  mathematics
engineering-portal
A collection of valuable resources by developers -- for developers -- to share practical learnings, development challenges, and open-source initiatives in dev, QA, Infra, and implementation.
Stars: ✭ 98 (-20.33%)
Mutual labels:  knowledge
computer-vision-notebooks
👁️ An authorial set of fundamental Python recipes on Computer Vision and Digital Image Processing.
Stars: ✭ 89 (-27.64%)
Mutual labels:  mathematics
3D interactive graphics rendering engine
Develop a 3D interactive graphics rendering engine
Stars: ✭ 31 (-74.8%)
Mutual labels:  mathematics
quantlib
The idiomatic rust implementation of the QuantLib C++ quantitative finance library
Stars: ✭ 89 (-27.64%)
Mutual labels:  mathematics
Oscar.jl
A comprehensive open source computer algebra system for computations in algebra, geometry, and number theory.
Stars: ✭ 182 (+47.97%)
Mutual labels:  mathematics
ml-formulas
機械学習・統計学・理論計算科学などに出てくる等式・不等式を集めていきます
Stars: ✭ 55 (-55.28%)
Mutual labels:  mathematics
factorization-diagrams
Interactive factorization diagrams
Stars: ✭ 27 (-78.05%)
Mutual labels:  mathematics
EquationKit
Equations in Swift
Stars: ✭ 39 (-68.29%)
Mutual labels:  mathematics
Mathematics for Machine Learning
Notes and step-by-step exercises resolution to aid students learning the base math for machine learning. Content summed up from the the course from the Imperial London College in Coursera.
Stars: ✭ 44 (-64.23%)
Mutual labels:  mathematics
Mathos-Project
The Mathos Core Library
Stars: ✭ 22 (-82.11%)
Mutual labels:  mathematics
Accounting-Succinctly
This is the companion repo for Accounting Succinctly by Joe Booth. Published by Syncfusion.
Stars: ✭ 16 (-86.99%)
Mutual labels:  mathematics
Tau.jl
A Julia module providing the definition of the circle constant Tau (2π)
Stars: ✭ 33 (-73.17%)
Mutual labels:  mathematics
podcasts
Awesome Podcasts
Stars: ✭ 64 (-47.97%)
Mutual labels:  knowledge
nmu
neg4n's mathematics utilities
Stars: ✭ 17 (-86.18%)
Mutual labels:  mathematics
nuggets
This is where I record the tips, tricks and tools I've accumulated over the years.
Stars: ✭ 18 (-85.37%)
Mutual labels:  knowledge

Hello there!

In this repository I collect my adventures in the Cryptography world. What to expect?

  • Medium-Highly detailed explanations of algorithms / concepts
  • Implementations in Python / Sage (Every notebook is self contained up to prerequisites which you'll still find here)
  • Common libraries for solving the problems
  • Everything is full of resources (from Youtube videos with intuitive explanations to detailed papers on the subject)

IMPORTANT NOTE

I HIGHLY recommend using nbviewer if you're reading these online: https://nbviewer.jupyter.org/github/zademn/EverythingCrypto/tree/master/

  • Github doesn't render the all mathematics inside the notebooks
  • Github doesn't render images properly inside the notebooks

If nbviewer is down for some reason download them locally and run them on your machine and everything will render normally.

Disclaimer

  • This whole repository is for educational purposes
  • DO NOT USE ANY OF THE ALGORITHMS IN REAL WORLD APPLICATIONS

Structure?

Notebooks

  • For educational and "ease to follow" purposes I decided to work in notebooks. Notebook are structured as follows:
    • Prerequisites = list of subjects/notebooks that you need to cover before attempting the subject
    • Theory = Mathematical explanation + intuitions
    • Code = Python,Sage or other library
    • Resources = List of resources for further reading

PDF's

  • Some basic theory in the form of pdf's here and there

Directories

Directories are organized by categories (S = Symmetric, P = Public, E = Extra)

Extra

  • Books
    • A collection of books I went through and found helpful
  • Security theory
    • Basic definitions and what to expect (Start with this)
  • Mathematics = Here you will find the basic structures(groups, curves, etc) and algorithms that I studied
    • Number theory - Start with this
    • Abstract algebra - Groups, Rings, Fields, Polynomials
    • Elliptic Curves - Theory
    • Discrete Logarithm Problem
    • Elliptic Curve Discrete Logarithm Problem
    • Factorizations
    • Lattices
    • Primes and primality tests
  • Secret sharing schemes
    • General Idea and SSSS

Public

  • Public Key = Each cryptosystem will have an introduction and a folder with vulnerabilities (NOTE: mathematical vulnerabilities (Ex: factorizations, dlp) will not be covered to avoid monotony. I assume you can connect the dots)
    • RSA + vulnerabilities
    • Diffie Hellman + vulnerabilities
    • Elgamal
  • Digital signatures
    • ECDSA + vulnerabilities
    • RSADSA + vulnerabilities

Symmetric

  • PRNG's
    • Pseudorandom generators, pseudorandom functions,
    • Implementations: chacha20, LFSRs, Geffe (Correlation attack)
  • Block Ciphers
    • AES, DES
    • Block ciphers modes of operation - pdf
    • Cryptanalysis methods
  • Message Integrity
    • MACs and hashes theory - pdf
    • Constructions - Merkle damgard and sponge
    • Length Extension attack
    • HMAC
  • Authenticated Encryption
    • AE and AEAD - pdf
    • GCM and the the forbidden attack

Each directory will have a README.md that will contain the MY difficulty ranking of different subjects, attacks etc.

How to tackle this repository?

Whatever fits your needs (Start with the security theory folder though to know what to expect)

  1. Follow along with a book (There is a book directory)
  2. Depth-first fashion (for people that have good foundations):
    • Pick a bigger subject
    • Study it thoroughly (from the lowest difficulty to the highest)
  3. Breadth-first fashion (for starters):
    • Go through every topic at the lowest difficulty
    • Raise the difficulty and start again
  4. My Take
  • Security theory dir -> Symmetric / Public
  • Symmetric encryption
    • PRGNG -> Block ciphers -> Message Integrity -> Authenticated Encryption
  • Public Encryption
    • Maths/Number Theory -> Public Key Encryption -> Digital Signatures
    • Maths when needed

TODO

Not necessarily in this order
(As of 26 jan 21)

  • Hashes - 26 Dec 20
  • Authenticated Encryption - 1 Jan 21
  • RC4 and FMS
  • Code for DES and Feistel ciphers
  • Block cipher design + Linear cryptanalysis - 27 jun 21
  • Differential cryptanalysis - 29 jun 21
  • Lattice theory - 26 Jan 21
  • SIS, LWE - 4 Feb 21
  • Lattice Cryptosystems
  • Homomorphic encryption
  • Public key theory - 6 Jan 21
  • Zero knowledge proofs
  • Protocols (might make another repo)
  • Reductions
  • Add test vectors for algorithms
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].