2018年9月6日 星期四

曲線與直線方程式的聯立方程式解


假設有一組聯立方程式,  由一個個曲線(立方)方程式, 及直線(一次方)方程式組成:
                  y = g( x ) =  x^3  + a *x + b            --- ( 1 )
                  y = h( x )  =  c*x   + d                      --- ( 2 )
將(2)式代入(1)式 , 就可以算出聯立方程式的解, 解出的 x (根)應該有 3 個,將上面兩式在 x, y 平面作圖. 其中的交點假設為 P', Q', R' 共 3 個點, 也就是說曲線與與平面上任何一條直線的交點應該都會有3個, 現在將第 1 式修正改成 y^2 ,那與直線關係式又會如何呢? 也就是:
                  y^2 = g( x ) =  x^3  + a *x + b       --- ( 3 )
                      y = f( x )  =  e*x   + f                    ---( 4 )
將(4)式代入(3)式,可見仍是一個 3 次方程式, 因此還是會解出 x 另外 3 個不同的根,而且因為
(-y )^2 = y^2  的關係, 解出的 3 個根,假設是 (x1,y1),(x2,y2),(x3,y3),一定可以發現 (x1, -y1), (x2, -y2), (x3, -y3) 必定是曲線方程式(3)的解,但不一定滿足方程式(4), 如果我們定義上述3個交點分別稱為 P, Q,R, 那其相對的鏡像點(因為 y 座標軸的值是互相對稱的關係),因此(x1,-y1)定義為 -P, 同理將 (x2,-y2) 叫作 -Q.此外定義一個零點叫作 O,它目的是當本身與其鏡像點相加時會造成消失(y=0)的狀況
                     P + (-P ) = O          --- (5)
                     Q + (-Q) = O          --- (6)
另外將 P + Q 定義成等於 -R , 目的是在於將曲線上兩點相加必須在同一曲線上(的場域), -R 的鏡像點就是 R, R 與 -R 都是曲線中的一員, 且 R 又剛好是與直線的第3個交點(x3,y3),因此:
                     P + Q    = -R           --- (7)
                     R + (-R) = O           --- (8)
將 (7) 與 (8) 相加
                     P + Q + R + (-R ) = -R + O
兩邊同時消去  -R 就可以推導出
                     P + Q + R = O        --- (9)
也就是說當曲線與任一條直線相交的3個點,將它累加在一起時就會等於是零點.

而 O 是什麼呢? 當我們將曲線與直線個交點之一拿來與其鏡像點畫一條直線時,剛好就是平行 y 軸的直線, 我們說直線與曲線會有 3 個交點,顯然這種直線找不到第3個交點,但我們強制將它定義成零點,也就是說這類型直線的第 3 交點就是零點,而且 -O = O 必需符合零的運算法則,且必須滿足是曲線中的一員,應該說它沒有位置點,只是將它稱為零點,規則之一(7)式說當兩點相加時等於第3點的鏡像點, 令 O = 0 ,式(9)就可以很容易推導出這3個交點之間的交換的關係:
                     P + Q = -R
                     Q + R = -P
                     R + P = -Q
接著來看當兩個相加的點是同一點時,也就是說曲線有兩個根在同一點,其實就是該曲線的切點(因為當 Q 逼近 P 時,兩個點(根)就匯聚成一點, 等於是方程式的一次微分點). 該條切線方程式擔任了產生器的角色(因為切點 G, 其兩倍數 G + G = 2G),再由上面推導得知這條切線與曲線第3個交點之鏡像點正是這2倍數(double)點的位置所在地,有點像是時空轉換,將一點自我累加就會轉換到另一交點的鏡像位置.於是一旦知道有一點 G 滿足曲線方程式, 透過該點的切線方程式就可以找到 2 倍點, 也就是 2G(因為 G + G = 2G), 那 3 倍點 = 2G + G,  ... 以此類推就可得出共多點的位置,而 O 零點也就是 0G 加上 1G, 2G, 3G, 4G, 5G ...  就可以產生一條秩序,從而建構出橢圓曲線密碼學(ECC)重要的運算規則


沒有留言: