"Test234"의 두 판 사이의 차이

수학노트
둘러보기로 가기 검색하러 가기
1번째 줄: 1번째 줄:
==개요==
+
==메모==
 +
* https://www.lmfdb.org/EllipticCurve/Q/21168/ce/2
  
* j-불변량
 
** 클라인의 absolute j-invariant 라는 이름으로 불리기도 함
 
* 타원 모듈라 함수(elliptic modular function) 로 불리기도 함
 
* 복소 이차 수체의 class field 이론에서 중요한 역할
 
* [[몬스터 군]]의 monstrous moonshine에 등장
 
  
 +
== 노트 ==
  
 +
===말뭉치===
 +
# Note that because secp256k1 is actually defined over the field Z p , its graph will in reality look like random scattered points, not anything like this.<ref name="ref_a7060df7">[https://en.bitcoin.it/wiki/Secp256k1 Bitcoin Wiki]</ref>
 +
# Note that because secp256k1 is actually defined over the field Z, its graph will in reality look like random scattered points, not anything like this.<ref name="ref_a7060df7" />
 +
# Currently Bitcoin uses secp256k1 with the ECDSA algorithm, though the same curve with the same public/private keys can be used in some other algorithms such as Schnorr.<ref name="ref_a7060df7" />
 +
# secp256k1 was almost never used before Bitcoin became popular, but it is now gaining in popularity due to its several nice properties.<ref name="ref_a7060df7" />
 +
# The main difference between secp256k1 and secp256r1 is that secp256k1 is a Koblitz curve which is defined in a characteristic 2 finite field, while secp256r1 is a prime field curve.<ref name="ref_fe9925da">[https://dappworks.com/why-did-satoshi-decide-to-use-secp256k1-instead-of-secp256r1/ Why did Satoshi decide to use secp256k1 instead of secp256r1?]</ref>
 +
# Secp256k1 curves are non-random while secp256r1 is pseudo-randomly structured.<ref name="ref_fe9925da" />
 +
# Secp256k1 is a pure SECG curve, while secp256r1 is a so-called NIST curve.<ref name="ref_fe9925da" />
 +
# Secp256k1 is the name of the elliptic curve used by Bitcoin to implement its public key cryptography.<ref name="ref_b47f1c0e">[https://river.com/learn/terms/s/secp256k1/ River Financial]</ref>
 +
# When a user wishes to generate a public key using their private key, they multiply their private key, a large number, by the Generator Point, a defined point on the secp256k1 curve.<ref name="ref_b47f1c0e" />
 +
# Because the y component of the equation is squared, secp256k1 is symmetric across the x-axis, and for each value of x, there are two values of y, one of which is odd while the other is even.<ref name="ref_b47f1c0e" />
 +
# If it wasn’t for Satoshi Nakamoto, you probably would never have heard of the secp256k1 Elliptic Curve Cryptography (ECC) method.<ref name="ref_4a096d7a">[https://billatnapier.medium.com/a-bluffers-guide-to-secp256k1-404e423e612 A Bluffer’s Guide to secp256k1]</ref>
 +
# Rust bindings for Pieter Wuille’s secp256k1 library, which is used for fast and accurate manipulation of ECDSA signatures on the secp256k1 curve.<ref name="ref_8d6e2d35">[https://docs.rs/secp256k1/ secp256k1]</ref>
 +
# In rust-secp256k1 , this is caught at compile-time; in fact, it is impossible to compile code that will trigger any assertion failures in the upstream library.<ref name="ref_8d6e2d35" />
 +
# This library is intended to be the highest quality publicly available library for cryptography on the secp256k1 curve.<ref name="ref_6b419d52">[https://github.com/bitcoin-core/secp256k1 bitcoin-core/secp256k1: Optimized C library for EC operations on curve secp256k1]</ref>
 +
# Use secp256k1's efficiently-computable endomorphism to split the P multiplicand into 2 half-sized ones.<ref name="ref_6b419d52" />
 +
# The secp256k1 elliptic curve is specified in Standards for Efficient Cryptography 1 (SEC 1) and Standards for Efficient Cryptography 2 (SEC 2).<ref name="ref_356e4efe">[http://www.cs.utexas.edu/users/moore/acl2/manuals/current/manual/index-seo.php/ECURVE____SECP256K1-DOMAIN-PARAMETERS Secp256k1-domain-parameters]</ref>
 +
# Bitcoin uses a specic Koblitz curve secp256k1 dened by the Standards for Efcient Cryptography Group (SECG).<ref name="ref_9f585f4a">[http://koclab.cs.ucsb.edu/teaching/ecc/project/2015Projects/Bjoernsen.pdf Koblitz curves and its practical uses in bitcoin]</ref>
 +
# I want to explore the different dened Koblitz curves from SECG and see why the specic curve secp256k1 was chosen by the creator of Bitcoin.<ref name="ref_9f585f4a" />
 +
# It is believed that because of security reasons the creator of Bitcoin preferred the non-random secp256k1 over the pseudo-randomly structured secp256r1.<ref name="ref_9f585f4a" />
 +
# This module provides native bindings to bitcoin-core/secp256k1.<ref name="ref_f0a4da92">[https://www.npmjs.com/package/secp256k1 secp256k1]</ref>
 +
# randomBytes ( 32 ) let privKey do { privKey = randomBytes ( 32 ) } while ( ! secp256k1 .<ref name="ref_f0a4da92" />
 +
# privateKeyVerify ( privKey ) ) const pubKey = secp256k1 .<ref name="ref_f0a4da92" />
 +
# privateKeyVerify ( privKey ) ) return privKey } } const privKey = getPrivateKey ( ) const pubKey = secp256k1 .<ref name="ref_f0a4da92" />
 +
# This section describes the elliptic curve, E(0,7), also named as secp256k1, and the subgroup parameters, which are used in Bitcoin, Ethereum, and many other cryptocurrency apps.<ref name="ref_c859eab9">[http://www.herongyang.com/EC-Cryptography/EC-Key-Example-secp256k1.html EC Private Key Example]</ref>
 +
# By the way, the named curve, secp256k1, refers to the elliptic curve, E(0,7), and those subgroup parameters together as EC domain parameters.<ref name="ref_c859eab9" />
 +
# This library provides secp256k1 bindings for Swift with Cocoapods, Carthage and Swift Package Manager on macOS and Linux.<ref name="ref_8979412f">[https://cocoapods.org/pods/secp256k1.swift secp256k1.swift]</ref>
 +
# After that you can use all secp256k1 functions as described in the official headers.<ref name="ref_8979412f" />
 +
# How to generate an EC key pair on the secp256k1 curve?<ref name="ref_401bd13d">[https://connect2id.com/products/nimbus-jose-jwt/examples/jwt-with-es256k-signature JSON Web Token (JWT) with ES256K (secp256k1) signature]</ref>
 +
# *; // Generate EC key pair on the secp256k1 curve ECKey ecJWK = new ECKeyGenerator(Curve.<ref name="ref_401bd13d" />
 +
# SECP256k1 ) public_key = secret_key .<ref name="ref_0c908e6d">[https://cryptography.io/en/3.4.7/development/custom-vectors/secp256k1.html SECP256K1 vector creation — Cryptography 3.4.7 documentation]</ref>
 +
# This project contains Haskell bindings for the secp256k1 library.<ref name="ref_c0eeca12">[https://hackage.haskell.org/package/secp256k1-haskell secp256k1-haskell]</ref>
 +
# This procedure explains how to generate a pair of ECDSA keys with the P-256 (secp256k1) curve that you can use to sign and verify your JWTs.<ref name="ref_6ae457d4">[https://learn.akamai.com/en-us/webhelp/iot/jwt-access-control/GUID-C3B1D111-E0B5-4B3B-9FF0-06D48CF40679.html Generate ECDSA keys with the P-256 (secp256k1) curve]</ref>
 +
# This library wrap the secp256k1 EC(DSA) library into an OCaml library.<ref name="ref_d4a01561">[https://opam.ocaml.org/packages/secp256k1/ secp256k1]</ref>
 +
# Bitcoin uses elliptic curve cryptography for its keys and signatures, but the specific secp256k1 curve used is rather unusual.<ref name="ref_a6b41412">[http://ijeecs.iaescore.com/index.php/IJEECS/article/view/15610 A comparison between the secp256r1 and the koblitz secp256k1 bitcoin curves]</ref>
 +
# @staticmethod def new_random (): return Secp256k1PrivateKey ( secp256k1 .<ref name="ref_41841f62">[https://sawtooth.hyperledger.org/docs/sdk-python/nightly/master/_modules/sawtooth_signing/secp256k1.html signing.secp256k1 — Sawtooth latest documentation]</ref>
 +
# catch_warnings (): # squelch secp256k1 warning warnings .<ref name="ref_41841f62" />
 +
# This paper develops an approach for arithmetic (point addition and doubling) on secp256k1 Koblitz curve over finite fields using one variable polynomial based on Euclidean division.<ref name="ref_49570a35">[https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3367674 Arithmetic of Koblitz Curve Secp256k1 Used in Bitcoin Cryptocurrency Based on One Variable Polynomial Division by Santoshi Pote, Virendra Sule, B.K. Lande :: SSRN]</ref>
 +
# The resulting algorithm is tested on realistic secp256k1 Koblitz curve and is shown to be scalable to perform the computations.<ref name="ref_49570a35" />
 +
# Generate public keys from private keys for ed25519, secp256k1 and bls12-381.<ref name="ref_9ee3fc5d">[https://paulmillr.com/ecc/ Paul Miller — Elliptic curve calculator]</ref>
 +
# The elliptic curve C is the secp256k1 curve.<ref name="ref_f352eb6e">[https://davidederosa.com/basic-blockchain-programming/elliptic-curve-keys/ Elliptic-curve keys]</ref>
 +
# For your information, Bitcoin Core developers are slowly moving away from OpenSSL towards their own implementation of secp256k1 crypto.<ref name="ref_f352eb6e" />
 +
# Create a point in the secp256k1 curve.<ref name="ref_800a0408">[https://hexdocs.pm/caustic/0.1.13/Caustic.Secp256k1.html Caustic.Secp256k1 – Caustic v0.1.13]</ref>
 +
# There is no check to confirm that the public key point passed into the derive function actually exists on the secp256k1 curve.<ref name="ref_91769caa">[https://nvd.nist.gov/vuln/detail/CVE-2020-28498 CVE-2020-28498]</ref>
 +
# For the secp256k1 curve, the private key is 256-bit integer (32 bytes) and the compressed public key is 257-bit integer (~ 33 bytes).<ref name="ref_1f8c5ee5">[https://cryptobook.nakov.com/digital-signatures/ecdsa-sign-verify-messages ECDSA: Elliptic Curve Signatures]</ref>
 +
# Was secp256k1 chosen to have better interop with bitcoin and for reuse of bitcoin libraries (like pybitcointools)?<ref name="ref_53a5b547">[https://www.reddit.com/r/ethereum/comments/30k4ry/elliptic_curve_choices_in_ethereum_secp256k1_vs/ Elliptic curve choices in Ethereum: secp256k1 vs Curve25519 : ethereum]</ref>
 +
===소스===
 +
<references />
  
==정의==
+
== 메타데이터 ==
* <math>q=e^{2\pi i\tau},\tau\in \mathbb{H}</math>라 두자
 
* 타원 모듈라 j-함수는 다음과 같이 정의된다
 
:<math>
 
j(\tau)= {E_ 4(\tau)^3\over \Delta(\tau)}=q^{-1}+744+196884q+21493760q^2+\cdots
 
</math> 여기서
 
:<math> E_ 4(\tau)=1+240\sum_{n>0}\sigma_3(n)q^n= 1+240q+2160q^2+\cdots,\quad \sigma_3(n)=\sum_{d|n}d^3</math>는 [[아이젠슈타인 급수(Eisenstein series)]],
 
:<math>\Delta(\tau)= q\prod_{n>0}(1-q^n)^{24}= q-24q+252q^2+\cdots</math> 는 [[판별식 (discriminant) 함수와 라마누잔의 타우 함수(tau function)|판별식 함수]]
 
* 다음과 같이 쓰기도 한다
 
:<math>j(\tau)=1728\frac{g_ 2^3}{g_ 2^3-27g_ 3^2}</math>
 
여기서 <math>g_2,g_3</math>는 [[아이젠슈타인 급수(Eisenstein series)]], [[바이어슈트라스 타원함수 ℘]] 항목 참조
 
 
  
==test==
+
===Spacy 패턴 목록===
working!
+
* [{'LOWER': 'secp256k1'}]

2022년 9월 16일 (금) 01:56 판

메모


노트

말뭉치

  1. Note that because secp256k1 is actually defined over the field Z p , its graph will in reality look like random scattered points, not anything like this.[1]
  2. Note that because secp256k1 is actually defined over the field Z, its graph will in reality look like random scattered points, not anything like this.[1]
  3. Currently Bitcoin uses secp256k1 with the ECDSA algorithm, though the same curve with the same public/private keys can be used in some other algorithms such as Schnorr.[1]
  4. secp256k1 was almost never used before Bitcoin became popular, but it is now gaining in popularity due to its several nice properties.[1]
  5. The main difference between secp256k1 and secp256r1 is that secp256k1 is a Koblitz curve which is defined in a characteristic 2 finite field, while secp256r1 is a prime field curve.[2]
  6. Secp256k1 curves are non-random while secp256r1 is pseudo-randomly structured.[2]
  7. Secp256k1 is a pure SECG curve, while secp256r1 is a so-called NIST curve.[2]
  8. Secp256k1 is the name of the elliptic curve used by Bitcoin to implement its public key cryptography.[3]
  9. When a user wishes to generate a public key using their private key, they multiply their private key, a large number, by the Generator Point, a defined point on the secp256k1 curve.[3]
  10. Because the y component of the equation is squared, secp256k1 is symmetric across the x-axis, and for each value of x, there are two values of y, one of which is odd while the other is even.[3]
  11. If it wasn’t for Satoshi Nakamoto, you probably would never have heard of the secp256k1 Elliptic Curve Cryptography (ECC) method.[4]
  12. Rust bindings for Pieter Wuille’s secp256k1 library, which is used for fast and accurate manipulation of ECDSA signatures on the secp256k1 curve.[5]
  13. In rust-secp256k1 , this is caught at compile-time; in fact, it is impossible to compile code that will trigger any assertion failures in the upstream library.[5]
  14. This library is intended to be the highest quality publicly available library for cryptography on the secp256k1 curve.[6]
  15. Use secp256k1's efficiently-computable endomorphism to split the P multiplicand into 2 half-sized ones.[6]
  16. The secp256k1 elliptic curve is specified in Standards for Efficient Cryptography 1 (SEC 1) and Standards for Efficient Cryptography 2 (SEC 2).[7]
  17. Bitcoin uses a specic Koblitz curve secp256k1 dened by the Standards for Efcient Cryptography Group (SECG).[8]
  18. I want to explore the different dened Koblitz curves from SECG and see why the specic curve secp256k1 was chosen by the creator of Bitcoin.[8]
  19. It is believed that because of security reasons the creator of Bitcoin preferred the non-random secp256k1 over the pseudo-randomly structured secp256r1.[8]
  20. This module provides native bindings to bitcoin-core/secp256k1.[9]
  21. randomBytes ( 32 ) let privKey do { privKey = randomBytes ( 32 ) } while ( ! secp256k1 .[9]
  22. privateKeyVerify ( privKey ) ) const pubKey = secp256k1 .[9]
  23. privateKeyVerify ( privKey ) ) return privKey } } const privKey = getPrivateKey ( ) const pubKey = secp256k1 .[9]
  24. This section describes the elliptic curve, E(0,7), also named as secp256k1, and the subgroup parameters, which are used in Bitcoin, Ethereum, and many other cryptocurrency apps.[10]
  25. By the way, the named curve, secp256k1, refers to the elliptic curve, E(0,7), and those subgroup parameters together as EC domain parameters.[10]
  26. This library provides secp256k1 bindings for Swift with Cocoapods, Carthage and Swift Package Manager on macOS and Linux.[11]
  27. After that you can use all secp256k1 functions as described in the official headers.[11]
  28. How to generate an EC key pair on the secp256k1 curve?[12]
  29. *; // Generate EC key pair on the secp256k1 curve ECKey ecJWK = new ECKeyGenerator(Curve.[12]
  30. SECP256k1 ) public_key = secret_key .[13]
  31. This project contains Haskell bindings for the secp256k1 library.[14]
  32. This procedure explains how to generate a pair of ECDSA keys with the P-256 (secp256k1) curve that you can use to sign and verify your JWTs.[15]
  33. This library wrap the secp256k1 EC(DSA) library into an OCaml library.[16]
  34. Bitcoin uses elliptic curve cryptography for its keys and signatures, but the specific secp256k1 curve used is rather unusual.[17]
  35. @staticmethod def new_random (): return Secp256k1PrivateKey ( secp256k1 .[18]
  36. catch_warnings (): # squelch secp256k1 warning warnings .[18]
  37. This paper develops an approach for arithmetic (point addition and doubling) on secp256k1 Koblitz curve over finite fields using one variable polynomial based on Euclidean division.[19]
  38. The resulting algorithm is tested on realistic secp256k1 Koblitz curve and is shown to be scalable to perform the computations.[19]
  39. Generate public keys from private keys for ed25519, secp256k1 and bls12-381.[20]
  40. The elliptic curve C is the secp256k1 curve.[21]
  41. For your information, Bitcoin Core developers are slowly moving away from OpenSSL towards their own implementation of secp256k1 crypto.[21]
  42. Create a point in the secp256k1 curve.[22]
  43. There is no check to confirm that the public key point passed into the derive function actually exists on the secp256k1 curve.[23]
  44. For the secp256k1 curve, the private key is 256-bit integer (32 bytes) and the compressed public key is 257-bit integer (~ 33 bytes).[24]
  45. Was secp256k1 chosen to have better interop with bitcoin and for reuse of bitcoin libraries (like pybitcointools)?[25]

소스

메타데이터

Spacy 패턴 목록

  • [{'LOWER': 'secp256k1'}]