分数的乘法逆元和负数的取模运算
1.乘法逆元
A.定義
如果ax≡1 (mod p),且gcd(a,p)=1(a與p互質(zhì)),則稱a關(guān)于模p的乘法逆元為x。
既然有ax≡1 (mod p),那么有ax - py = 1,x是a關(guān)于模p的乘法逆元。
B.分?jǐn)?shù)的乘法逆元
對于實(shí)數(shù)域,一個數(shù)的乘法逆元就是其倒數(shù),所謂乘法逆元就是相乘等于單位元的那個數(shù)。
對于ecc算法的離散曲線域,m的乘法逆元為n,滿足m * n = 1 (mod p),即滿足m*n mod p = 1 mod p,稱作n就是m關(guān)于的p乘法逆元。在離散曲線域中,單位元就是1。如果在離散曲線域碰到一個表達(dá)式2/5,單純的碰到一個表達(dá)式2/5沒有任何意義,要看mod數(shù)是多少,如果是10,那么a=2/5的真正值是求5關(guān)于10的乘法逆元,然后再乘以2 md 10。
2.負(fù)數(shù)的取模運(yùn)算
在整數(shù)范圍內(nèi),自然數(shù)的求余法則并不被很多人所接收,大家大多認(rèn)可的是下面的這個定義2。
如果a與d是整數(shù),d非零,那么余數(shù)r滿足這樣的關(guān)系:a = qd + r,q為整數(shù),且0 <= |r| <|d|
根據(jù)定義. 7 = (-3)*(-2) + 1或7 = (-3)*(-3)-2,所以余數(shù)為1或-2,在ecc算法的離散曲線域中,我們只考慮非負(fù)整數(shù)所以這里余數(shù)會取1。
3.推演
例如:求5關(guān)于模72的乘法逆元。
? ? ? 5X - 72Y = 1
解:72 = 14 *5+2
? ? 5 = 2*2 + 1
? ? ?? 2 = 2*1 + 0
? ? ? ? 所以有1 = 5 - 2*2
? ? ? ? ? ? ? ? ? ? ? = 5 - 2* (72-14*5)
? ? ? ? ? ? ? ? ? ? ? = 5 - 2*72 + 28*5
? ? ? ? ? ? ? ? ? ? ? = 29*5 - 2*72?
? ? ? ? 最后有乘法逆元為29。
例如:求-1/2在離散曲線域(E23(1,1))中的值。
解:首先求2關(guān)于模23的乘法逆元為
? ? ? ? 2X-23Y = 1
? ? ? ? 23 = 11*2 + 1
? ? ? ? 2 = 2*1 +0
? ? ? ? 所以有1 = 23- 2*11 = 23 * (2-1) - 2*11 = 12*2 - 23,得乘法逆元為12
? ? ? ? 然后求 (-1 )*12 mod 23 ,因為有 (-12)*(-1) + 11 = 23,所以得值為11。
5.備注
以上為研究ecc算法推導(dǎo)的基礎(chǔ)知識難點(diǎn),有這些概念才能更好的理解ecc算法。
總結(jié)
以上是生活随笔為你收集整理的分数的乘法逆元和负数的取模运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链读书笔记三
- 下一篇: 如何理解离散傅里叶变换(一)实数形式傅里