Today Learning elliptic curve cipher (Elliptic Curve CRYPTOGRAPHY,ECC) algorithm, his hand lacks the introduction of the algorithm of professional books, so on the internet to check a lot of blog and books, but most of the blog writing is really ... You know... Really deserves to be ' the world article a big copy ' Ah!
, originally used to encrypt and verify the password of the website user, of course, can also be used in other places!
Import ("bytes" "Compress/gzip" "Crypto/ecdsa" "crypto/elliptic" "Encoding/hex" "Errors" "FMT" "M Ath/big "" Strings "" Github.com/astaxie/beego "" Github.com/astaxie/beego/config ") var (runmode string cfg Config. Configer//Global configur
In the process of Elliptic curve operation, the results of 256-bit addition and subtraction are often outside the interval [0,p], and the operation of +p or-p is required. The 256-bit NIST domain Elliptic curve parameter p is generated in the following formula: p = 2^256?2^224 + 2^192 + 2^96? 1 The formula is broken do
parallel to the MM ', then the four lines constitute a parallelogram area of a constant 4ab.
3. Elliptic equation
Legend
Equation
Vertex, center, focus, long half axis, short half axis
① Standard equation
(a>b>0)
② parameter equation
Vertex:
A,b (±a,0)
C,d (0,±B)
Center: G (0,0)
Focus: F1,f2 (±c,0)
Long Half axis: a
Short half axis: b
①
(a>b>0)
② parameter equation
Vertex:
A,b (G±A,H)
C,d (G,H±B)
Center: G (G,H)
Focus:
F1,F2 (G±C,H)
Long Half a
Asymmetric encryption algorithm has RSA, ECDSA, the difficulty of factoring the maximal integer to determine the reliability of RSA algorithm, ECDSA Elliptic curve encryption algorithm, is based on the elliptic equation formula, so security is higher than RSA. here said to use ECDSA to do signature and check, do not say the principle; Golang package ECDSA curre
Taking p=29 to find out all the solution points of elliptic curve y^2=x^3+4x+20Using the method of poor lifting to find the elliptic curveFirst step: List, find out the results of 0~28 (0Available programs to complete this step:The code is as follows:#include int main (){int i,y,z;printf ("xx^3+4*x+20\n");for (i = 0; i {y = i*i*i + 4 * i + 20;z = y% 29;printf ("%
#设置默认椭圆曲线参数 (P A B N Gx Gy H), set it to state the recommended elliptic curve parameter.#通过改写sm2_p, Sm2_a, Sm2_b, Sm2_n, SM2_GX, Sm2_gy, Sm2_h, you can set the elliptic curve parameters in your own script.##参数PSet Sm2_p fffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff#参数ASet Sm2_a FFFFFFFEFFFFFFFFFFFFFF
This is the generation formula for the 256-bit NIST prime-domain elliptic curve primes p:p256 = (2 ^ 256)?(2 ^ 224) + (2 ^ 192) + (2 ^ 96)? 1The 64-bit section breaks it down into an addition vector as follows:1 0000000000000001 0000000000000000 0000000100000000 0000000000000000-0000000100000000 0000000000000000 0000000000000000 0000000000000001= ffffffff00000001 0000000000000000 00000000ffffffff ffffffffff
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.