450 likes | 584 Views
PARTⅡ-06. 公開金鑰系統. 導讀. 公開金鑰密碼系統的概念首先於西元 1976 年 Diffie 與 Hellman 基於離散對數( Discrete Logarithm )的整數解問題提出。 西元 1978 年麻省理工學院 Rivist 、 Shamir 及 Adleman 另提出基於因數分解的公開金鑰密碼系統,稱之為 RSA 系統 發展至今,亦有許多的相關的發展 / 延伸 / 變化,諸如數位簽章 / 橢圓曲線系統 / Elgamal 系統等。. 公開金鑰秘碼系統.
E N D
PARTⅡ-06 公開金鑰系統
導讀 • 公開金鑰密碼系統的概念首先於西元1976年Diffie與Hellman基於離散對數(Discrete Logarithm)的整數解問題提出。 • 西元1978年麻省理工學院 Rivist、Shamir及Adleman另提出基於因數分解的公開金鑰密碼系統,稱之為 RSA 系統 • 發展至今,亦有許多的相關的發展/延伸/變化,諸如數位簽章/橢圓曲線系統/Elgamal系統等。
公開金鑰秘碼系統 • Diffie與 Hellman提出的公開金鑰密碼系統(Public-Key Cryptosystem)概念: • 若數學上的單向暗門函數 (One-way Trapdoor Function)存在,則任何單向暗門函數F均可用來設計公開金鑰密碼系統。
公開金鑰密碼系統的優點 • 加密金鑰可以公開 • 可以達到不可否認性 • 金鑰分配及管理方便
基礎公開金鑰系統(一) • Diffie and Hellman (DH) 公開金鑰系統 • 使用者 UA隱藏一個私鑰 xA,公開一個公鑰 yA • 使用者 UB隱藏一個私鑰 xB,公開一個公鑰 yB • UA和 UB互相不知道對方的秘密私鑰,但是卻能夠共同建立一個 KAB作為加解密之用
Diffie Hellman (DH) 公開金鑰系統 • UA的私鑰是 xA,公鑰是 yA • UB的私鑰是 xB,公鑰是 yB • 其中 g 是 Zp-{0} 的一個生成數 • 共同金鑰 KAB
什麼是生成數(generator)? • 若 p 為質數,Zp-{0} 又記為 Zp*={1,2,…,p-1} • g 為 Zp*的一個生成數,則任何 xZp* 皆有x=gk mod p • 例:3 為 Z7*的一個生成數
Diffie-Hellman (DH) 公開金鑰系統 • 加密: • UA以 xA和 yB製造 KAB • 解密: • UB以 xB與 yA製造 KAB
離散對數問題Discrete Logarithm • 為什麼無法從 yA倒推 xA ? • Z19*={1,2,…,18}, generator g=2
離散對數問題Discrete Logarithm • GF(23) with irreducible poly. p(x)=x3+x+1G=Zn*/p(x)={1,x,x2,1+x,1+x2,x+x2,1+x+x2}n=7, generator g=x
判斷一個數字是否質數有多難? • 假設有一部電腦每秒可以執行 109次除法(不限位數)則一年可以執行的除法次數為:606024365109 =3.15361016次 • 判斷一個數字 n 是否為質數,必須以[2,n-1]之間的數字一一除 n,看看是否能整除 • 判斷一個 20 位數的數字是否為質數需要1020(3.15361016 ) 3170年 • 質因數分解:將一個整數分解為一系列質數的乘積,難度等同判斷質數
RSA (Rivest, Shamir and Adleman’s Scheme) RSA是Rivest, Shamir及 Adleman三位學者在西元1978年共同提出的數學演算法 基於大型因數分解的困難性作為單向暗門函數 基礎公開金鑰系統(二)
RSA 的設定 • 條件 • 兩個大質數 p和 q,n = p q • 通常 n為 1024 位元,相當於 309 位數,p和 q各 512 位元,大約 150 位數 • Ф(n)=(p-1)(q-1) • 計算兩個整數 e和 d使得 e d = 1 mod Ф(n) • 設定: • (n, e) 為公開金鑰,加密用 • (n, d) 為秘密金鑰,解密用
RSA系統定理 • 給定 e, d, M 使得 edmod (n) = 1,M [0, n -1] • gcd(M,n) = 1,則(Me mod n)d mod n = M
RSA 範例 • p=3, q=11, n=pq=33 • Ф(n)=(p-1)(q-1)=20 • ed=1 mod 20, e=3, d=7 • 傳送訊息:USA • U:21 • S:19 • A:01
橢圓曲線密碼系統(Elliptic Curve Cryptosystem, ECC) • 以橢圓曲線所構成的有限群代替RSA所使用的有限群 • 橢圓曲線的方程式一般的表示形式: y2=x3+ax2+bx+c, 其中a, b, c N。輔以GF(q)的概念即可使用於密碼系統的設計
橢圓曲線密碼系統 • 在橢圓曲線上定義一個有限加法群 • 加法單位元素:一個無窮遠點 O • O = -O • 若曲線上的三點共線,其和等於 O • P+O=O+P=P • P+(-P)=O • (s+t)P=sP+tP, s,t,s+tZq • 橢圓曲線對稱於 y=0 的水平線 • 若 R 的座標為 (x, y) 則 -R 的座標為 (x, -y)
橢圓曲線幾何圖 • 不同座標點的加法運算 • 直線 PQ 在橢圓曲線上的交點 -R • P+Q+(-R)=O • P+Q=R y=0
橢圓曲線幾何圖 • 相同座標點的加法運算 • 點 P 的切線與橢圓曲線的交點 –R • P+P+(-R)=O • R=2P
橢圓曲線密碼系統 • 定義:橢圓曲線函數 存在唯一解(沒有重根)
ECC 範例 2 若 kP=(4,5) 則 k = 9
ECC 範例 3 滿足此橢圓曲線的座標點 P 為: (2,4) (2,7) (3,5) (3,6) (5,2) (5,9) (7,2) (7,9) (8,3) (8,8) (10,2) (10,9)
ECC 範例 3 • 若以 P=(2,7) 為基本座標則 2P=P+P=(5,2), 3P=2P+P=(8,3), 4P=(3P+P)=(10,2) 5P=4P+P=(3,6), 6P=5P+P=(7,9), 7P=6P+P=(7,2) 8P=7P+P=(3,5), 9P=8P+P=(10,9), 10P=9P+P=(8,8) 11P=10P+P=(5,9), 12P=11P+P=(2,4), 13P=12P+P=O 14P=13P+P=(2,7)
橢圓曲線密碼系統 • 安全性: • ECC的計算安全性基植於: 若 P,QZq而且nP=Q,其中 n <q 為常數, q來自於GF(q) • 欲由 nP或 Q 中求解 n為即 ECC 基植於加法運算的計算安全問題(問題很難) • 相同安全性時,ECC的金鑰長度遠較目前常用的RSA/DH等公開金鑰密碼系統的長度為短,且執行速度較快
ECC 加解密作法 • 橢圓曲線 y2=x3+ax+b mod q • 橢圓上一點 G • UB公開金鑰 B,私密金鑰 k, B=kG mod q • 明文 M,拆成兩份:M1, M2 • UA: 選擇一個亂數 r,計算 R=rG mod q • C1 = M1+(rB)x, C2=M2+(rB)y • 送出 R, C1, C2 • UB: 計算 M1=C1-(kR)x, M2=C2-(kR)y
ElGamal公開金鑰密碼系統 • 1984 學者 ElGamal所提出 • 在數位簽章的研究與應用上影響極大
ElGamal 公開金鑰密碼系統 • A 傳送訊息 M 給 B • 加密程序 • A 選擇一個隨機數 • A 計算一個金鑰 • 產生一組 (c1,c2) • 傳送 (c1,c2)
ElGamal 公開金鑰密碼系統 • 解密程序
數位簽章(一) • 數位簽章(Digital Signature)對於通訊的雙方(送方與收方)需滿足三項需求 • 收方需能對送方所簽署的訊息進行驗證,以確定傳送源的真實性。 • 對於包含收方在內的任何人皆無法對送方所產生的簽署文件進行偽造。 • 一旦在雙方在通訊上產生簽署訊息上的爭議,無法釐清送/收方的責任時,可由第三者的公正人(機構)解決簽署合法性的爭議。
數位簽章 Digital Signature • 數位簽章應用在數位網路下,即可達到密碼系統所強調的多樣功能 • 完整性(Integrity) • 鑑定性(Authentication) • 不可否認性(Non-repudiation) • 不可偽造性(Unforgeablility) • DSS: Digital Signature Standard 數位簽章標準 • DSA: Digital Signature Algorithm 數位簽章演算法
ElGamal數位簽章 • A 想要對訊息 m 簽章,傳送給 B • A 選擇一個隨機亂數 kZp,使得 gcd(k,p-1)=1 • A 計算 • A 在右式中求解 s • A 以 (r,s) 作為數位簽章連同 m 一齊送給 B • B 進行數位簽章驗證
數位簽章(二) • 訊息M,RSA簽章
數位簽章(三) • DSA簽章
盲簽章 Blind Signature • 簽章者並不知道所簽署內容仍可進行簽章 • 簽章者可不知所簽署文件/訊息之內容 • 當所簽署的資料公布時,無法關連簽章者與文件的關係 • 條件:RSA 的相關參數 n, p, q, e, d , 其中n=pq, e與d 互為反元素 • 通訊的雙方為 Alice 與 Bob, Alice 將送訊息M 給Bob, 過程以盲簽章處理
盲簽章 Blind Signature • 協定: • Alice: 選擇訊息 M與亂數 r,計算S=Mremod n • Alice: 傳送 S給 Bob • Bob: 計算 U=Sd mod n (i.e. Mdrmod n) Bob 將 U 送給 Alice • Alice:計算 V=r-1Umod n (i.e. Mdmod n) 。 • Alice:進行驗證比對Ve= M ?
盲簽章 Blind Signature • 應用: • 電子投票:Alice 為投票人,Bob 為選票中心 • 電子付款
密碼分析模式 • 密文攻擊(Ciphertext-only Attack) : • 由給定的 n 組密文,推導出金鑰 k • 已知明文攻擊(Known-plaintext Attack) • 由給定的 n 組明文與其相對應的密文,推導出金鑰 k
密碼分析模式 • 選擇明文攻擊(Chosen-plaintext Attack) : • 破密者自行選擇適當的明文以推導出金鑰 k • 選擇密文攻擊(Chosen-ciphertext Attack) • 依據可選定的密文所形成的配對,可推導出金鑰 k • 選擇性攻擊(Chosen-Text Attack)
RSA攻擊範例:選擇密文chosen ciphertext attack • I 的密碼分析 • 選擇隨機數 r,rn • 計算 x=re mod n • 計算 y=xC mod n • 計算 t=r-1 mod n • I 要求 A 產生 y的簽章 ss=yd mod n • I 解開 m
RSA攻擊範例:選擇密文chosen ciphertext attack • 若存在簽章訊息配對 (s1,m1), (s2,m2) • s1=m1d mod n, s2=m2d mod n • 密碼分析者設法取得 M=m1m2 • 假造 M的簽章
結論 • 本章介紹公開金鑰系統/非對稱式的金鑰系統,諸如DH/RSA/ECC/ElGamal等為現在各科技應用領域關於資訊與網路安全安全考量的主要技術 • DH/RSA用於電子商務安全 • ECC用於無線通訊安全 • ElGamal用於數位簽章機制 • 凸顯新世紀資訊科技安全得依賴優良密碼機制的技術研發才得以保障資料得隱私與訊息傳遞的真實性。