有限域椭圆曲线
有限域橢圓曲線
橢圓曲線是連續的,并不適合用于加密;所以,我們必須把橢圓曲線變成離散的點,我們要把橢圓曲線定義在有限域上。
我們給出一個有限域Fp
-
Fp中有p(p為質數)個元素0,1,2,…, p-2,p-1
-
Fp的加法是a+b≡c(mod p)
-
Fp的乘法是a×b≡c(mod p)
-
Fp的除法是a÷b≡c(mod p),即 a×b^(-1)≡c (mod p),b-1也是一個0到p-1之間的整數,但滿足b×b-1≡1 (mod p)
-
Fp的單位元是1,零元是 0
-
Fp域內運算滿足交換律、結合律、分配律
橢圓曲線Ep(a,b),p為質數,x,y∈[0,p-1]
?
y2=x3+ax+b(modp)
?
選擇兩個滿足下列約束條件的小于p的非負整數a、b
?
4a3+27b2≠0(modp)
?
Fp上的橢圓曲線同樣有加法
-
1.無窮遠點 O∞是零元,有O∞+ O∞= O∞,O∞+P=P
-
2.P(x,y)的負元是 (x,-y mod p)= (x,p-y) ,有P+(-P)= O∞
-
3.P(x1,y1),Q(x2,y2)的和R(x3,y3) 有如下關系:
x3≡k2-x1-x2(mod p)
y3≡k(x1-x3)-y1(mod p)
若P=Q 則 k=(3x2+a)/2y1mod p
若P≠Q,則k=(y2-y1)/(x2-x1) mod p
例題橢圓曲線已知E23(1,1)上兩點P(3,10),Q(9,7),求(1)-P,(2)P+Q,(3) 2P
?
(1)?P=(3,?10mod23)=(3,13)(2)k=7?109?3=?2?1mod232?2?1=1mod23?2?1=12k=?12mod23=11P+Q=(112?3?9mod23,11×(3?(?6))mod23)=(17,20)(3)k=3×32+12×10mod23=7?5?1mod235?5?1=1mod23?5?1=14k=7?14mod23=62P=(62?3?3mod23,6×(3?7)?10mod23)=(7,12)
?
補充:
-2^(-1) mod 23 進行兩部分計算
(1) 先算 2^(-1) 對應的數A, 在這里2^(-1)不是2的-1次方,而是2的逆元
(2) 再算-A mod 23
(1) 計算第一步
根據有限域除法規則 2 * 2^(-1) = 1 mod 23
即 2A = 1 mod 23 ==> 2A = 23 + 1 == > A = 12
(2) 計算第二步
-A mod 23 ==> -12 mod 23 即 23 -12 = 11
所以有
-2^(-1) mod 23 = 11
有限域橢圓曲線點的階
如果橢圓曲線上一點P,存在最小的正整數n使得數乘nP=O∞ ,則將n稱為P的階
若n不存在,則P是無限階的
計算可得27P=-P=(3,13)
所以28P=O ∞ P的階為28
這些點做成了一個循環阿貝爾群,其中生成元為P,階數為29。顯然點的分布與順序都是雜亂無章
總結
- 上一篇: prometheus 笔记
- 下一篇: HALCON示例程序clip.hdev曲