第四章 非對稱式金鑰密碼系統.pptx

Download Report

Transcript 第四章 非對稱式金鑰密碼系統.pptx

第四章
非對稱式金鑰系統RSA演算法
4.1 簡介
非對稱式金鑰密碼系統一般概念
2016/8/7
2
4.1 簡介
提供安全性的負擔大多落在接收者身上。
接收者必須建立兩把金鑰,一把為私密金鑰,另
一把為公開金鑰。
傳送者使用接收者的公開金鑰來加密訊息傳送給
接收者。
容易計算
私密金鑰
公開金鑰
Private Key
非常困難
Public Key
(藉由數學工具達成此目的)
2016/8/7
3
4.2 RSA 密碼系統
RSA加密演算法是一種非對稱式加密,在1977年
由Ron Rivest, Adi Shamir與 Leomard Adleman一
起提出的,當時他們三人都在麻省理工學院工作。
RSA使用兩個指數𝑒與𝑑,其中𝑒是公開金鑰, 𝑑是
私密的金鑰。
傳送端使用𝐶 = 𝑃 𝑒 𝑚𝑜𝑑 𝑛從明文𝑃來建立密文𝐶。
接收端使用𝑃 = 𝐶 𝑑 𝑚𝑜𝑑 𝑛來取出傳送端的明文𝑃。
2016/8/7
4
4.2 RSA 密碼系統
數學定義:
對於𝑛 ≥ 1, 𝜙 𝑛 ---小於𝑛且與𝑛互質的正整數總個
數。
範例 4.1
𝜙 1 =1
𝜙 2 =1
𝜙 3 =2
𝜙 4 =2
𝜙 5 =4
𝜙 6 =2
𝜙 7 =6
𝜙 8 =4
2016/8/7
※如果𝑛是質數則𝜙 𝑛 = 𝑛 − 1。
5
4.2 RSA 密碼系統

2016/8/7
6
4.2 RSA 密碼系統
如何產生公鑰𝑒與私鑰𝑑;接收端隨意選擇兩個大
的相異質數𝑝與𝑞,並計算出𝑛 = 𝑝 × 𝑞 。
在小於𝑛且𝑛互質的整數共有𝜙 𝑛 = (𝑝 − 1)(𝑞 −
1)選擇一個𝑒並計算出𝑑使得𝑒𝑑 = 1(𝑚𝑜𝑑(𝑝 −
1)(𝑞 − 1))。
𝑛和𝑒是公鑰,公開給大眾的。𝑑是私鑰,只有接收
端知道。
2016/8/7
7
4.2 RSA 密碼系統
如何選擇𝑒公鑰與𝑑私鑰的條件:
• 1. 𝑒公鑰與𝜙 𝑛 互質(即𝑒不為𝑝 − 1或𝑞 − 1的因數),
且𝑒公鑰小於𝜙 𝑛 。
• 2. 𝑑私鑰與𝑛互質(即𝑑不為𝑝或𝑞的因數)。
• 3. 𝑒公鑰與𝑑私鑰必為質數。
• 4.滿足 𝑒 × 𝑑 𝑚𝑜𝑑 𝜙 𝑛 = 1。
2016/8/7
8
4.2 RSA 密碼系統
範例 4.2
接收端Bob選擇𝑝 =7與𝑞 = 11,並計算𝑛 = 𝑝 × 𝑞 = 77,
則比77小且與77互質共有𝜙 𝑛 = 𝑝 − 1 𝑞 − 1 = 60個。
1,2,3,4,5,6,8,9,10,12,13,15,16,17,18,19,20,23,24,25,26,27,2
9,30,31,32,34,36,37,38,39,40,41,43,45,46,47,48,50,51,52,5
3,54,57,58,59,60,61,62,64,65,67,68,69,71,72,73,74,75,76 。
假設選擇了 𝑒 = 13 則需求出( 𝑒 × 𝑑 )mod 𝑛 =1的私鑰 𝑑 = 37 。
9
4.2 RSA 密碼系統
現在傳送端Alice要將明文5傳給Bob,並且公開金鑰13來加密5。
明文:5
𝐶 = 𝑃𝑒 𝑚𝑜𝑑 𝑛 = 513 𝑚𝑜𝑑 77 = 26 ⟹密文𝐶 = 26
當接收端Bob要將密文26解密時要利用私密金鑰37來解密。
明文:5
𝑃 = 𝐶 𝑑 𝑚𝑜𝑑 𝑛 = 2637 𝑚𝑜𝑑 77 = 26 ⟹明文𝑃 = 5
2016/8/7
10
4.2 RSA 密碼系統
範例 4.3
假設另外一個人John想要傳送訊息給接收端Bob。John只
能使用Bob所公佈的公開金鑰𝑒 = 13將明文63加密。
現在傳送端John要將明文63傳給Bob,並且公開金鑰13來加密63。
明文:63
𝐶 = 𝑃𝑒 𝑚𝑜𝑑 𝑛 = 6313 𝑚𝑜𝑑 77 = 28 ⟹密文𝐶 = 28
當接收端Bob要將密文28解密時要利用私密金鑰37來解密28。
明文:28
𝑃 = 𝐶 𝑑 𝑚𝑜𝑑 𝑛 = 2837 𝑚𝑜𝑑 77 = 63 ⟹明文𝑃 = 63
2016/8/7
11
4.2 RSA 密碼系統
例題. 接收端Bob選擇p=3和q=11的兩個質數,請使
用非對稱性金鑰密碼系統RSA加密明文「USA」。
 1. 當p=3和q=11,先算n=33。
 2. 首先計算𝜙 𝑛 =(p-1)(q-1)=20,或者𝜙 33 為比
33小且與33互質的正整數個數,共有
1,2,4,5,7,8,10,13,14,16,17,19,20,23,25,26,28,29,31
,32共20個。
 3. 令 𝑒 × 𝑑
mod 20 = 1 ,可得𝑒=3, 𝑑=7。
 4. 接收端將金鑰𝑒與𝑛公開,而𝑑為秘密金鑰。
2016/8/7
12
4.2 RSA 密碼系統


5. 加密時首先將明文「USA」轉換為00至25數值,
其計算方式如下:
明文:𝑷
𝑷𝒆 = 𝑷𝟑
𝑪 = 𝑷𝒆 𝐦𝐨𝐝 𝟑𝟑
密文:𝑪
U: 20
8000
14
O
S: 18
5832
24
Y
A: 00
00
00
A
6. 解密時將密文「OYA」轉換為00至25數值,其
計算方式如下:
2016/8/7
密文:𝑪
𝑪𝒅 = 𝑪𝟕
𝑷 = 𝑪𝒅 𝐦𝐨𝐝 𝟑𝟑
明文:𝑷
O: 14
105413504
20
U
Y: 24
4586471424
18
S
A: 00
00
00
A
13
4.3 RSA 簽章
數位簽章(Digital Signature)
秘密性 (confidentiality)
完整性 (Integrity)
2016/8/7
身份鑑別性 (Authentication)
不可否認性 (Non-Repudiation)
14
4.3 RSA 簽章
當收到具有數位簽章的訊息時,接收者可以利用
簽章來得知傳送者的身分,進而確認訊息的內容是
否已遭到竄改。
由於數位簽章具有不可否認的特性,所以若使用
者在訊息上使用了數位簽章,便無法逃避曾經撰寫
過此訊息的事實。
數位簽章在數位訊息中扮演著鑑別的角色,它可
以讓接收者對於訊息的來源及其完整性更有信心。
2016/8/7
15
4.3 RSA 簽章
RSA簽章
1. 選擇兩個大質數 p , q
2. 計算 n = p × q
3. 計算𝜙 𝑛 = 𝑝 − 1 𝑞 − 1
4. 找出一組數值 (e × d) mod n = 1
5. 將(e, n)公開、其他數值保持秘密
2016/8/7
16
4.3 RSA 簽章
RSA簽章
6. 此時任何人交付明文 m要求簽章
7. 用秘密的 d 值,就可簽署明文為
s = m d mod n
8. 用公開的 (e, n),即可驗證簽章
s e mod n = (m d)e mod n = m
所謂簽章就是證明你是你,而如果能做出一件事是只
有你做得出來,那就是最好的證明,而這個過程正是
如此。
2016/8/7
17