南航密碼學某次作業 橢圓曲線的C語言實現

2021-10-04 15:23:21 字數 1011 閱讀 5844

執行結果:

左框中所有點為橢圓曲線

y 2=

x3+x

+28(m

od71)

y^2=x^3+x+28(mod 71)

y2=x3+

x+28

(mod

71)所有的點,隨之計算了每個x對應的第乙個點α的加法值,發現只需計算出2α就能看出所有的2α值存在這樣的點,使得它沒有對應的橢圓曲線上的點,即該集合不滿足封閉性,故不是乙個迴圈群。

#include "iostream"

#include #include #define maxsize 100

using namespace std;

typedef struct node

struct_num;

struct_num a[maxsize];

/*****************求勒讓德符號*****************/

int canonical_decomposition(int m)

a[k].num=i;

a[k].total=j;

k++;

}} }

return k-1;

}int legendre(int m,int p)

else

return sum;

}/***********求a模n的逆元*************/

int x,y;

void ex_eulid(int a,int b)

else

}int contra(int a,int b) { //b是模數

if(a後知後覺演算法其實是有問題的,當這個點落在座標軸上時,因為分母不能為0 ,因此在勒讓德符號會被略過,所以要對「0」進行特判。另外,還要加上乙個無窮遠點。

白話橢圓曲線密碼學

橢圓曲線密碼學是下一代的公鑰密碼學,它比之前的公鑰密碼學系統例如rsa和diffe hellman在安全性方面有顯著提高。橢圓曲線密碼學是目前被廣泛使用的最強大的密碼學演算法之一,但是真正理解其工作原理的開發者並不多。橢圓曲線有一系列滿足特定數學方程的點組成。乙個橢圓曲線的方程看起來像這樣 y x ...

密碼學中的橢圓曲線

密碼學中的橢圓曲線 密碼學中的橢圓曲線不是定義在是實數域上的,我們要把橢圓曲線定義在有限域上 顧名思義,有限域是一種只有由有限個元素組成的域 域的概念是從我們的有理數,實數的運算中抽象出來的,嚴格的定義請參考近世代數方面的數。簡單的說,域中的元素同有理數一樣,有自己得加法 乘法 除法 單位元 1 零...

現代密碼學之橢圓曲線ECC

橢圓曲線乘法 橢圓曲線結合 elgamal cryptosystem計算例子展示 手算帶步驟 判斷乙個橢圓曲線上有幾個點 reference ecc是由victor miller and neal koblitz1985引入的。對於dsa,rsa,我們需要很大的金鑰長度,而ecc只需要特別餓小的金鑰...