Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

SurmountSystems/cryptography-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

32 Commits

Repository files navigation

cryptography-python

This is a tutorial project about cryptography in python. Follow the steps and you will fully understand the magic of elliptic curves from scratch.

  • Each file can be run independently!
  • There are detailed paper references in the comments of the code

Based on this project, I implemented the SDKs of three famous blockchain projects: BTC, ETH and CKB.

secp256k1

paper: https://www.cs.miami.edu/home/burt/learning/Csc609.142/ecdsa-cert.pdf

  • secp256k1.py: implement finite field and secp256k1 curve.
  • secp256k1_generate_public_key.py: calculate bitcoin public key from private key.
  • secp256k1_sign.py: signature messages and verify it.
  • secp256k1_extract_private_key.py: extract the private key by two signatures that use the same k.
  • secp256k1_jacobian: jacobian projective space.

polynomial arith

  • polynomial_numpy.py: polynomial operation by numpy.
  • polynomial.py: polynomial operation by hand writting python.

bn128

  • bn128.py: bn128 curve, implements eip-196, eip-197.
  • bn128_ethereum_api.py: bn128 pairing testsuite.

About

secp256k1 in pure Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%

AltStyle によって変換されたページ (->オリジナル) /