分送公開金鑰

Download Report

Transcript 分送公開金鑰

密碼學與網路安全
第10章 金鑰管理與
其他的公開金鑰密碼系統
金鑰管理
 公開金鑰加密能解決金鑰分送的問題
 將公開金鑰加密用在金鑰分送的考量:


公開金鑰的分送
利用公開金鑰加密分送秘密金鑰
分送公開金鑰
 分送公開金鑰的技術類型:




公告
公用目錄
公開金鑰管理中心
公開金鑰憑證
公開金鑰的公告
 參與者分送其公開金鑰給其他任何參與者,
或將其金鑰告知天下

例如將公開金鑰附在電子郵件訊息,或貼在新
聞群組、郵寄清單
 最大的弱點是會被偽造


任何人都能偽造這樣的公開金鑰聲明
直到發現被偽造而警告其他使用者之前,偽造
者能夠讀取要給被偽造者A的所有加密訊息,
而且可以使用偽造的金鑰進行認證
公用目錄
維護公用的公開金鑰動態目錄可以達到更好的安
全性
 公用目錄的維護和分送必須由某些被信任的單位
或組織負責:







管理中心以 {名稱、公開金鑰} 的格式為每個參與者維
護目錄
每個參與者都要直接向目錄管理中心註冊公開金鑰
參與者隨時都能以新的金鑰換掉現有的金鑰
目錄會定期公佈
參與者能以電子的方式存取這個目錄
依然有被竄改或偽造的漏洞
公開金鑰管理中心
 以加強控管的目錄分送公開金鑰,能強化
公開金鑰分送的安全性
 由中央管理中心維護所有參與者的公開金
鑰動態目錄
 每個參與者能確切知道管理中心的公開金
鑰
 只有管理中心知道對應的私密金鑰
 使用者應該定期要求通訊對方的最新公開
金鑰,才能維持通訊的順暢
公開金鑰管理中心
公開金鑰憑證



憑證可以讓參與者交換金鑰而不必經由公開金鑰管理中心,
但猶如直接從管理中心取得公開金鑰一樣可靠
憑證包含了公開金鑰和金鑰擁有者的識別碼,而且整個區
塊已由受信任的第三方簽署
第三方通常是憑證管理中心




例如受信任的政府單位或金融機構
使用者可將其公開金鑰以安全的方式送到憑證管理中心以
獲取憑證,然後使用者就能公佈其憑證
需要這位使用者公開金鑰的任何人,都能拿到使用者的憑
證,並且能以附加的信任簽署確認是否有效
參與者也能傳送其憑證而將其金鑰資訊轉送給其他人,其
他參與者可以驗證此憑證是否由管理中心產生
公開金鑰憑證
以公開金鑰密碼學分送秘密金鑰
 只要公開金鑰分送出去或變得能夠存取,
安全通訊就能:

防止竊聽、竄改、或是兩者皆可防止
 但是只有極少數使用者希望能以公開金鑰
加密通訊過程裡的所有訊息

因為這會大幅降低資料傳輸率
 公開金鑰加密也因而用來分送傳統加密所
需的秘密金鑰
簡易秘密金鑰分送法
 是Merkle於1979年提出的方法




A產生一對公開/私密金鑰
A將公開金鑰及身份識別碼傳送給B
B產生連線金鑰,並以A的公開金鑰加密後再傳
送給A
A解密連線金鑰,因為只有A能解開訊息,所以
只有A和B知道這把連線金鑰
 會遭受「駭客居中攻擊」
秘密金鑰的公開金鑰分送
 能在交換秘密金鑰的同時,也達成機密性
與認證
混合架構
 保留了使用金鑰分送中心的作法
 KDC和每個使用者共享一把主金鑰
 以主金鑰分送連線金鑰
 公開金鑰方法在此是用來分送主金鑰
 採用三層式架構的理由:


效能
回溯相容
迪菲-赫爾曼金鑰交換
 最先提出的公開金鑰演算法
 是由迪菲和赫爾曼於1976年提出的公開金
鑰概念

比這時間更早幾個月,英國CESG的
Williamson在一份機密文件發表了完全相同的
方法,並表示早在1970年就發現這個方法
 不少商用軟體使用這種金鑰交換技術
迪菲-赫爾曼金鑰交換
 這個演算法的目的,是讓兩個使用者可以
安全交換金鑰,作為後續通訊的加解密
 這個演算法只能用在交換機密值
 迪菲-赫爾曼演算法與計算離散對數的困難
度有關
迪菲-赫爾曼金鑰交換
 所有使用者選擇:


大的質數或多項式 q
q 的原根 a
 每位使用者(例如 A)產生各自的金鑰


選擇秘密金鑰:xA < q
xA
計算出自己的公開金鑰:yA = a mod q
 每位使用者公佈金鑰
yA
迪菲-赫爾曼金鑰交換
 KAB 是使用者A、B共用的連線金鑰:
xA.xB
KAB = a
mod q
xB
= yA mod q (B 可計算)
xA
= yB mod q (A 可計算)
可當作兩端之間私密金鑰加密架構的連
線金鑰
 若兩端要繼續通訊,除非選用新的公開金
鑰,否則就會使用同前的金鑰
 攻擊者被迫要以離散演算法來找出金鑰
 KAB
迪菲-赫爾曼金鑰交換範例
使用者 A、Bob想要交換金鑰:
 他們協議使用質數 q=353、原根 a=3
 並且選擇亂數秘密金鑰:



計算各自的公開金鑰:
97



A 選擇 xA=97、B 選擇 xB=233
yA=3
mod 353 = 40 (A)
233
yB=3
mod 353 = 248 (B)
計算共用的連線金鑰:


xA
97
KAB= yB mod 353 = 248 = 160
xB
233
KAB= yA mod 353 = 40
= 160
(A)
(B)
金鑰交換協定
橢圓曲線密碼學






大部分的公開金鑰密碼學(RSA、D-H)使用整
數或多項式計算非常大的數值或多項式
為了確保RSA的安全,已經持續增加金鑰長度,
而這加重了採用RSA的負擔
這個負擔尤其對大量安全交易的電子商務站台更
是錯綜複雜
使用橢圓曲線密碼學(ECC)是另一種選擇
ECC只需少量位元就可達到等同於RSA的安全性,
也因此能降低處理的負擔
ECC理論已發展許久,但近期才有相關產品,也
才有弱點及安全性分析報告
實數上的橢圓曲線
 橢圓曲線是由等式裡的兩個變數
及係數所定義
 立方橢圓曲線形式



y2 = x3 + ax + b
X、y、a、b 皆為實數
並且也定義零點 O
 橢圓曲線的加法運算

Q+R 的幾何總和與R相交
x、y以
實數上的橢圓曲線
有線體的橢圓曲線
橢圓曲線密碼學的曲線變數和係數都在有限體
 適合密碼學應用的橢圓曲線立方等式,與GF(2m)
和ZP並不盡相同; GF(2m)的形式為:
y2 + xy = x3 + ax2 + b
 變數x、y與係數a和b是GF(2m)裡的元素,所有的
計算也都在GF(2m)
 滿足上述等式的所有整數數對(x,y)及無限遠點O
所構成的集合:


E2m(a,b)
橢圓曲線密碼學

ECC的加法運算是RSA模數乘法運算的翻版
 多重加法則是RSA模數的指數運算翻版
 若要將橢圓曲線應用在密碼系統,難題是需要找
出相當於分解兩質數乘積或計算離散對數





Q=kP,Q、P 屬於質數曲線
若給定 k、P 就容易算出 Q
但給定 Q、P卻難以找出 k
這就是橢圓曲線的離散對數問題
Certicom 網站的範例:E23(9,17)
ECC與迪菲-赫爾曼金鑰交換
 ECC能以類似D-H的方式交換金鑰
 使用者選擇適當的曲線
 選擇基點

Ep(a,b)
G=(x1,y1)
基點級數是非常大的數值 n,使得 nG=O
nA<n、nB<n
 計算公開金鑰:PA=nAG、PB=nBG
 計算共用金鑰:K=nAPB, K=nBPA
 A、B選擇私密金鑰

K=nAnBG
橢圓曲線的加解密
 已有文獻分析了數種使用橢圓曲線的加解
密法,我們將說明最簡單的方法

要先將送出的明文m編碼成x – y型態的點Pm
如同D-H選擇適當的曲線和點 G as in D-H
每位使用者選擇私密金鑰 nA<n
並計算公開金鑰 PA=nAG
再加密 Pm : Cm={kG, Pm+kPb}, k 亂數

解密 Cm 計算:




Pm+kPb–nB(kG) = Pm+k(nBG)–nB(kG) = Pm
ECC的安全性
 ECC的安全性依靠著給定kP和P而算出k的
困難度
 計算橢圓曲線對數最快的已知技巧則是
Pollard rho法
 比較了數種不同運算方式的金鑰長度,可
發現ECC需要的金鑰比RSA更短
 ECC能以更短的金鑰得到相當於RSA的安
全性,讓ECC擁有計算上的優勢
比較破解各種運算方式計算量的金鑰長度
對稱式方法
ECC方法
RSA/DSA
(單位為位元) (單位為位元) (單位為位元)
56
112
512
80
160
1024
112
224
2048
128
256
3072
192
384
7680
256
512
15360
總結
 公開金鑰的分送
 以公開金鑰分送秘密金鑰
 迪菲-赫爾曼金鑰交換
 橢圓曲線密碼學