| 程序包 | 说明 |
|---|---|
| org.openeuler | |
| org.openeuler.util |
| 限定符和类型 | 字段和说明 |
|---|---|
private SM2P256V1Point[] |
SM2PreComputeInfo.lookupTable |
private SM2P256V1Point |
SM2PreComputeInfo.offset |
private static SM2P256V1Point |
SM2P256V1Point.POINT_INFINITY |
| 限定符和类型 | 方法和说明 |
|---|---|
SM2P256V1Point[] |
SM2PreComputeInfo.getLookupTable() |
SM2P256V1Point |
SM2PreComputeInfo.getOffset() |
static SM2P256V1Point |
SM2P256V1Point.getPointInfinity() |
SM2P256V1Point |
SM2P256V1Point.negate() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
SM2PreComputeInfo.setLookupTable(SM2P256V1Point[] lookupTable) |
void |
SM2PreComputeInfo.setOffset(SM2P256V1Point offset) |
| 限定符和类型 | 方法和说明 |
|---|---|
(专用程序包) static SM2P256V1Point |
GMUtil.add(SM2P256V1Point p1,
SM2P256V1Point p2)
U2 = lambda2
S2 = lambda5
U1 = lambda1
S1 = lambda4
H = U1 - U2 = lambda1 - lambda2 = lambda3
R = S1 - S2 = lambda4 - lambda5 = lambda6
G = H^3 = (lambda3)^3
V = H^2 * U1 = (lambda3)^2 * lambda1
G = -H^3 = -(lambda3)^3
tt1 = S1 * G = lambda4 * (- (lambda3)^3)
G = 2*V + G = 2 * (lambda3^2 * lambda1) + (-(lambda3)^3 )
= lambda3^2 (2 * lambda1 - lambda3)
= lambda3^2 ( 2 * lambda1 - (lambda1 - lambda2))
= lambda3^2 * (lambda1 + lambda2 )
= lambda3^2 * lambda7
X3 = R^2 - G = lambda6^2 - lambda7 *(lambda3)^2
Y3 = (V - X3) * R + tt1 = (lambda1 * (lambda3)^2 - X3) * lambda6 + (lambda4 * (- (lambda3)^3))
= lambda6 * (lambda1 * (lambda3)^2 - X3) - lambda4 * (lambda3)^3
Z3 = H * Z1 * Z2 = lambda3 * Z1 * Z2 = Z1 * Z2 * lambda3
|
(专用程序包) static SM2P256V1Point |
GMUtil.subtract(SM2P256V1Point p1,
SM2P256V1Point p2) |
(专用程序包) static SM2P256V1Point |
GMUtil.timesPow2(SM2P256V1Point p,
int e) |
private static SM2P256V1Point |
GMUtil.twice(SM2P256V1Point p1)
T = (Y1)^4
t2 = (Z1)^2
t1 = X1 - (Z1)^2
M = X1 + (Z1)^2
M = M * t1 = (X1)^2 - (Z1)^4
M = M + M + M = 3 * (X1)^2 - 3 *(Z1)^4 <==> Is it equivalent?
|
| 限定符和类型 | 方法和说明 |
|---|---|
(专用程序包) static SM2P256V1Point |
GMUtil.add(SM2P256V1Point p1,
SM2P256V1Point p2)
U2 = lambda2
S2 = lambda5
U1 = lambda1
S1 = lambda4
H = U1 - U2 = lambda1 - lambda2 = lambda3
R = S1 - S2 = lambda4 - lambda5 = lambda6
G = H^3 = (lambda3)^3
V = H^2 * U1 = (lambda3)^2 * lambda1
G = -H^3 = -(lambda3)^3
tt1 = S1 * G = lambda4 * (- (lambda3)^3)
G = 2*V + G = 2 * (lambda3^2 * lambda1) + (-(lambda3)^3 )
= lambda3^2 (2 * lambda1 - lambda3)
= lambda3^2 ( 2 * lambda1 - (lambda1 - lambda2))
= lambda3^2 * (lambda1 + lambda2 )
= lambda3^2 * lambda7
X3 = R^2 - G = lambda6^2 - lambda7 *(lambda3)^2
Y3 = (V - X3) * R + tt1 = (lambda1 * (lambda3)^2 - X3) * lambda6 + (lambda4 * (- (lambda3)^3))
= lambda6 * (lambda1 * (lambda3)^2 - X3) - lambda4 * (lambda3)^3
Z3 = H * Z1 * Z2 = lambda3 * Z1 * Z2 = Z1 * Z2 * lambda3
|
private static SM2PreComputeInfo |
SM2PreComputeUtil.createPreComputeInfo(SM2P256V1Point p,
int fieldSize) |
(专用程序包) static SM2PreComputeInfo |
SM2PreComputeUtil.getSM2PointPreComputeInfo(SM2Point sm2Point,
int fieldSize,
SM2P256V1Point sm2P256V1Point) |
(专用程序包) static SM2P256V1Point |
GMUtil.subtract(SM2P256V1Point p1,
SM2P256V1Point p2) |
(专用程序包) static SM2P256V1Point |
GMUtil.timesPow2(SM2P256V1Point p,
int e) |
private static SM2P256V1Point |
GMUtil.twice(SM2P256V1Point p1)
T = (Y1)^4
t2 = (Z1)^2
t1 = X1 - (Z1)^2
M = X1 + (Z1)^2
M = M * t1 = (X1)^2 - (Z1)^4
M = M + M + M = 3 * (X1)^2 - 3 *(Z1)^4 <==> Is it equivalent?
|
Copyright © 2024. All rights reserved.