期末複習:信息安全(六)

公鑰密碼體制

對稱密碼無法解決數字簽名,對稱密碼意味着加密和解密是一樣的,公鑰祕鑰體制加解密密鑰不一樣,但是算法是一樣的。
🐞對稱算法的不足
對稱密碼體制的優點是計算速度快,有較強的保密強度。但是,有三個致命弱點:
1)密鑰管理量的困難
2)密鑰必須通過某一信道協商,對這個信道的安全性的要求比正常的傳送消息的信道的安全性要高
3)數字簽名的問題:傳統加密算法無法實現抗抵賴的需求
密鑰分配的困難、數字簽名的問題
🐞公鑰密碼體制的起源
1976年Diffie和Hellman在IEEE Trans.on IT上發表劃時代的文獻。這一體制的出現爲解決計算機信息網中的安全提供了新的理論和技術基礎,被公認爲現代公鑰密碼學誕生的標誌。1978年。MIT三位數學家R.l.rIVEST,A.Shamir和L.Adleman發明了一種用數論構造雙鑰體制的方法,稱作MIT體制,後來被廣泛稱爲RSA體制
🐞公鑰密碼學與其他密碼學完全不同

  • 公鑰算法基於數學函數而不是基於替換和置換
  • 使用兩個獨立的密鑰,一個公開,另一個私有
  • 公鑰密碼學的提出是爲了解決兩個問題:密鑰分配和數字簽名

🐞公鑰密碼體制的基本原理
💿基本思想和要求:
用戶擁有自己的密鑰對(KU,KR),即(公開密鑰,私有密鑰)
公鑰KU公開,私鑰KR保密 A–>B:Y=EKUb(X)
B:DKRb(Y)= DKRb(EKUb(X))=X
在這裏插入圖片描述
涉及到各方:發送方、接收方、攻擊方
涉及到數據:公鑰、私鑰、明文、密文
💿公鑰體制的主要特點:
1)加密和解密能力分開
2)多個用戶加密的消息只能由一個用戶解讀(用於公共網絡中實現保密通信)
3)只能由一個用戶加密消息而使多個用戶可以解讀(可用於認證系統中對消息進行數字簽名)
4)無需事先分配密鑰
5)密鑰持有量大大減少
6)提供了對稱密碼技術無法或很難提供的服務:如與哈希函數聯合運用可生成數字簽名,可證明的安全僞隨機數發生器的構造,零知識證明等
💿公鑰算法的條件
1)產生一對密鑰是計算可行的
2)一直公鑰和明文,產生密鑰是計算可行的
3)接收方利用私鑰來解密密文是計算可行的
4)對於攻擊者,利用公鑰來推斷私鑰是計算不可行的
5)一直公鑰和密文,恢復明文是計算不可行的
6)(可選)加密和解密的順序可交換
💿如何設計一個公鑰算法
公鑰和私鑰必須相關,而且從公鑰到私鑰不可推斷(必須要找到一個難題,從一個方向走是容易的,從另一個方向走是困難的;如何把這個難題跟加解密結合起來)
一個使用的公開密鑰方案的發展依賴於找到一個陷阱門單向函數
單向陷門函數是滿足下列條件的函數f:
(1)給定x,計算y=fk(x)是容易的;
(2)給定y,計算x使x=fk-1(y)是不可行的。
(3)存在k,已知k時,對給定的任何y,若相應的x存在,則計算x使fk-1(y)是容易的。
💿非對稱密鑰加密的原理
1)使用數學上的理論
2)數學上某些複雜的計算問題:正向計算容易,反向計算困難。計算機不可能在有效的時間內計算出反向結果(從而不可能破解密碼)。
例如:
計算兩個大數的乘積,非常容易。分解一個很大的數(如200多位)非常困難,加入這個大數只含有兩個非常大的素數(各100多位)作爲因子。
💿公鑰密碼所依賴的數學難題

  • 揹包問題
  • 大整數分解問題(RSA體制)
  • 二次剩餘問題
  • 模n的平方根問題
  • 離散對數問題
    有限域的乘法羣上的離散對數問題(ELGamal體制)
    定義在有限域的團圓曲線上的對數問題(類比的ELGamal問題)
    💿公鑰密碼的應用範圍
    加密/解密(保密通訊)、數字簽名(身份鑑別)、密鑰交換
算法 加/解密 數字簽名 密鑰交換
RSA
Diffie-Hellman

🐞一些數學基礎
數論簡介:
數論是密碼學特別是公鑰密碼學的基本工具。研究“離散數字集合”的相關問題。
素數和互素數
稱整數p(p>1)是素數,如果p的因子只有±1,±p。
若滿足下面2個條件,則稱c是兩個整數a、b的最大公因子,表示爲c=gcd(a, b)。
① c是a的因子也是b的因子,即c是a、b的公因子。
② a和b的任一公因子,也是c的因子。
如果gcd(a,b)=1,則稱a和b互素。
模運算:
設n是一正整數,a是整數,如果用n除a,得商爲q,餘數爲r,用a mod n表示餘數r。
如果(a mod n)=(b mod n),則稱兩整數a和b模n同餘,記爲a≡b mod n。
稱與a模n同餘的數的全體爲a的同餘類,記爲[a],稱a爲這個同餘類的表示元素。
注意: 如果a≡0(mod n),則n|a。
同餘有以下性質:
① 若n|(a-b),則a≡b mod n。
② (a mod n)≡(b mod n),則a≡b mod n。
③ a≡b mod n,則b≡a mod n。
④ a≡b mod n,b≡c mod n,則a≡c mod n。

求餘數運算(簡稱求餘運算)a mod n將整數a映射到集合{0,1, …,n-1},稱求餘運算在這個集合上的算術運算爲模運算
模運算有以下性質:
[(a mod n)+(b mod n)] mod n = (a+b) mod n
[(a mod n)- (b mod n)] mod n = (a-b) mod n
[(a mod n)×(b mod n)] mod n = (a×b) mod n
費馬(Fermat)定理:
p素數,a是整數且不能被p整除,則:ap-1  1 mod p
例:a = 7,p = 19,則ap-1 = 718  1 mod p
歐拉(Euler)函數(n):
(n)表示小於n且與n互素的正整數個數。例:(6) = 2
p是素數,§ = p-1 。例:(7) = 6
若n的因子分解爲n=Piai, ai>0,Pi互不相同,則(n) = Piai(1-1/Pi)
若gcd(m,n) = 1,則(mn) = (m)(n),特別地,若pq,且都是素數,(pq)=(p-1)(q-1)。如: (21) = 12 = (3)× (7) = 2×6
Euler定理:
若a與n爲互素的正整數,則a(n)  1 mod n
例:a=3,n=10,(10)=4,34=81  1 mod 10
Euler定理的等價形式:
a(n)+1  a mod n
推論: 若n=pq, pq都是素數, k是任意整數,則
mk(n) + 1=mk(p-1)(q-1)+1  m mod n, 對任意0mn
原根(Primitive root)
Euler定理表明:對兩個互素的整數a,n
a(n)  1 mod n
定義:存在最小正整數m(n) (m|(n)),使得am  1 mod n,若對某個a,m=(n),則稱a是n的一個原根
離散對數
若a是素數p的一個原根,則對任意整數b,b0 mod p,存在唯一的整數i, 1i(p-1),使得:b  ai mod p,i稱爲b以(a modp)的指數(離散對數),記作inda,p(b)。
兩個性質:
inda,p(xy) = [inda,p(x)+inda,p(y)] mod §
inda,p(xr) = [r  inda,p(x)] mod §
離散對數的計算:y  gx mod p,
已知g,x,p,計算y是容易的
已知y,g,p,計算x是困難的


🐞Diffie-Hellman密鑰交換算法
允許兩個用戶可以安全地交換一個祕密信息,用於後續的通訊過程。算法的安全性依賴於計算離散對數的難度。

  1. 雙方選擇素數p以及p的一個原根a
  2. 用戶A選擇一個隨機數Xa < p,計算Ya=aXa mod p
  3. 用戶B選擇一個隨機數Xb < p,計算Yb=aXb mod p
  4. 每一方保密X值,而將Y值交換給對方
  5. 用戶A計算出 K=YbXa mod p
  6. 用戶B計算出 K=YaXb mod p
  7. 雙方獲得一個共享密鑰(aXaXbmod p)
    注:素數p以及p的原根a可由一方選擇後發給對方
    在這裏插入圖片描述
    Diffie-Hellman算法例:
    密鑰交換基於素數q = 97和97的一個原根,在這裏是a = 5。A和B分別選擇祕密密鑰Xa = 36和Xb = 58。每人計算其公開密鑰如下:
    Ya = 536 = 50 mod 97
    Yb = 558 = 44 mod 97
    在他們交換了公開密鑰以後,每人計算共享的祕密密鑰如下:
    A : K = (Yb)Xa mod 97 = 4436 = 75 mod 97
    B : K = (Ya)Xb mod 97 = 5058 = 75 mod 97
    從{50,44}出發,攻擊者要計算出75很不容易
    💿中間人攻擊
    1 雙方選擇素數p以及p的一個原根a(假定攻擊者O知道)
    2 A選擇Xa<p,計算Ya=aXa mod p,AB: Ya
    3 O截獲Ya,選Xo,計算Yo=aXo mod p,冒充AB:Yo
    4 B選擇Xb<p,計算Yb=aXb mod p,BA: Yb
    5 O截獲Yb,冒充BA:Yo
    6 A計算: (Yo)Xa  (aXo)Xa  aXoXa mod p
    7 B計算: (Yo)Xb  (aXo)Xb  aXoXb mod p
    8 O計算: (Ya)XoaXaXo mod p, (Yb)XoaXbXo mod p
    O無法計算出aXaXb mod p ,O永遠必須實時截獲並冒充轉發
    在這裏插入圖片描述
    大量數據加密用對稱密鑰,少量數據(如密鑰本身)加密用公鑰密碼。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章