公鑰密碼體制又稱公開密鑰密碼體系,公鑰密碼體制是現代密碼學的最重要的發明和進展,在1976年,Whitfield Diffie和Martin Hellman發表了「New directions in cryptography」這篇劃時代的文章奠基了公鑰密碼系統的基礎。公鑰密碼體制根據其所依據的難題通常分爲三類:大素數分解問題類、離散對數問題類、橢圓曲線類。算法
1:大數因子分解
具體說明:
Ⅰ)給定兩個素數p,q,計算乘積p·q=n很容易;
Ⅱ)給定大整數n,求n的素因素p,q使得n=p·q很是困難.
大數因子分解是國際數學界幾百年來還沒有解決的難題,也是現代密碼學中公開密鑰RSA算法密碼體制創建的基礎。《大數因子分解的合數模式特性》從RSA算法存在的不動點中發現了素數因子的分佈與特性以及它們之間的鏈接機制,據此將大數因子分解問題轉化爲在兩個含有素數因子的數之間求公因子問題,將最困難的大數因子分解問題轉化爲一系列算法的初等數學問題,這無疑是研究大數因子分解的重要成果與進展。安全
2:離散對數
已知有限循環羣G={g∧k∣k=0,1,2,...}及其生成元g和階n=∣G∣.
Ⅰ)給定整數a,計算元素g∧a=h很容易;
Ⅱ)給定元素h,計算整數x,0≤x≤n,使得g∧x=h很是困難,其難度與RSA中因子分解素數之積的難度有相同的數量級。ide
3:橢圓曲線
已知有限域F_p上的橢圓曲線點羣
E(F_p)={(x,y)∈F_p×F_p∣y²=x³+ax+b,a,b∈F_p}∪{O},
點P=(x,y)的階爲一個大素數.
Ⅰ)給定整數a,計算整數x,使得xP=(x_a,y_a)=Q很容易;
Ⅱ)給定點Q,計算整數x,使得xP=Q很是困難.
例3 P=10823是一個素數,有限域F_p=Z/pZ上的橢圓曲線點羣
E(F_p)={(x,y)∈F_p×F_p∣y²=x³+3x+7}∪{O}, ∣E(F_p)∣=100482=2·3·16747.E(F_p)的生成元爲P_0=(1,8811).點P=6P_0=(62046,14962)的階爲素數16747.
Ⅰ)給定a=1007,計算aP=(80726,17229)=Q很容易;
Ⅱ)給定點Q=(80726,17229),求整數x使得xP=Q很困難.
綜上,理解數學原理可能比較燒腦,可是做爲應用者來講,咱們其實不須要徹底掌握原理,咱們只須要記住一點最重要的,即公鑰密鑰體系中,私鑰的安全是最重要的,若是運行環境中沒有相應的安全機制保護私鑰,就必須使用加密芯片來存儲私鑰,包括私鑰運算也要在加密芯片中執行,不然私鑰泄露,整個安全體系就被攻破了。加密
參考資料:
《簡明信息安全數學基礎》,陳恭亮,高等教育出版社,2011年1月1日。數學