0

我正在尝试在 Matlab 中实现基于素数场上的椭圆曲线的身份验证协议。我已经成功完成了点加法和点乘法,但是在计算以下步骤时遇到了问题:(大写字母是曲线上的点,小写字母是整数标量)

((y^-1)T4-T2)(rs^-1) = x1P

((y^-1)T5-x1T3)(rs^-1) = X2

我应该计算

y^-1

作为

ModInverse(y , prime)? % the multiplicative inverse of y mod prime

另外,这就是我应该做的减法吗?

nT2 = T2;
nT2{2} = mod(-nT2{2}, prime);

(否定一个点的y坐标)mod prime,然后在nT2另一个点上做加法

4

1 回答 1

0

我可以帮助您找到 y 的负坐标。我用一个玩具例子来解释:

sum = [673 146] % 现在要转换 sum 的第二个元素,即 y 坐标,请执行以下操作。

sum(1,2) = -sum(1,2) % 这将否定 sum 的第一行的第二个元素并将结果存储到 sum 中。% 现在要执行减法,请执行以下操作。假设您的加数是 N1 = [ 6,5] 并且 augend 是总和,因此,这两者的差是......

差异 = addell(N1,sum,a,b,p) % 其中 a,b 和 p 是 ECC 的参数。%Thaat 是 a,b 是常数,p 是 ECC 的素数模数。例如,ECC 是 y^2=x^3+a*x +b mod p

希望这足以满足您的第二个问题。

于 2015-07-16T05:17:27.530 回答