RABIN公开金钥密码系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•使用一個processor約11574天可完成,1000個處理機 可在12天完成,故為安全起見,取n=200
•Merkle-Hellman 建議使用多組e,d來重覆處理A=eA。 •雖然0/1 Knapsack 是NP-complete,但不意味著由
RABIN公开金钥密码系 统
2020/9/13
如何解密?
M2+Mb-C 0 (mod n)
(2)
針對(2)式解出M值
(2)式相等於下列(3), (4)兩式
M2+Mb-C 0 (mod p)
(3)
M2+Mb-C 0 (mod q)
(4)
-b/2
(mod p)
M = D(C)= -b/2
(mod q)
函數D所解得的明文,會有下列四種情況:
(a) If (b/2)2+C 0 (mod p),
then (3) has two roots
Mp1 -b/2 + Mp2 -b/2 -
(mod p) (mod p)
(b) If (b/2)2+C 0 (mod p), then (3) has one root Mp -b/2 (mod p)
(c) If (b/2)2+C 0 (mod q),
then (4) has two roots
Mq1 -b/2 + Mq2 -b/2 -
(mod q) (mod q)
(b) If (b/2)2+C 0 (mod q), then (4) has one root Mq -b/2 (mod q)
3. 選一整數e為加密金鑰,e和u互質
4. 計算解密金鑰d,e × d=1 mod u
5. 轉換A為一般的0/1 Knapsack A
6.
A=(e × A) mod u
7.
Public Key = A
8.
Trapdoor = d 和u (A=dA mod u)
9.
密文C = M× AT
Merkle-Hellman Knapsack方法(續)
M M2(3) (mod n)
(3) If (b/2)2+C 0 (mod q) and
If (b/2)2+C 0 (mod p)
M Mp (mod p) M Mq (mod q)
M M1(4) (mod n)
E
M
C
M1(1)
M2(1) 或
M3(1) M4(1)
M1(2)

M2(2)
M1(3)
M M1(1) (mod n) M M2(1) (mod n) M M3(1) (mod n) M M4(1) (mod n)
(2) If (b/2)2+C 0 (mod p) and
If (b/2)2+C 0 (mod q)
M Mp (mod p) M Mq1 (mod q)
M M1(2) (mod n)
M Mp (mod p) M Mq1 (mod q)
M M2(2) (mod n)
(3) If (b/2)2+C 0 (mod q) and
If (b/2)2+C 0 (mod p)
M Mp1 (mod p) M Mq (mod q)
M M1(3) (mod n)
M Mp2 (mod p) M Mq (mod q)
則 m5=0----因14<22 m4=1----因14>10 m3=0----因4<5 m2=1----因4>3 m1=1----因1=1
M=(1,1,0,1,Leabharlann Baidu)
Merkle-Hellman Knapsack
將Simple Knapsack 轉成一般的0/1 Knapsack
1. 選一個Simple Knapsack A=(a1, a2, …, an) 2. 選一整數u,使得 u >
NP-Complete 問題
•到目前為止尚未有好的Algorithm, 可在Polynomial time解決。 •如 0/1-Knapsack
an
0/1 Knapsack problem (sum of subset)
已知一整數C及一向量A=(a1,a2,…,an) 求一A之子集合,其和為C亦即求一二元之向量 M=(m1,m2,…,mn)使得C=M×AT
四種情況分別如下:
(1) If (b/2)2+C 0 (mod p) and
If (b/2)2+C 0 (mod q)
M Mp1 (mod p) M Mq1 (mod q) M Mp2 (mod p) M Mq1 (mod q) M Mp1 (mod p) M Mq2 (mod q) M Mp2 (mod p) M Mq2 (mod q)
或 M1(4)
M2(3)
問題:如何決定那一個才是真正的明文呢? 答:在明文中,包含一些重要的資訊,eg.
sender ID, receiver ID, date and time , etc. 接受者選擇四者之中,資訊正確的。
KNAPSACK公開金鑰密碼學 Algorithms
1. FINITE 2. DEFINITENESS 3. INPUT/OUTPUT 4. GENERALITY 5. EFFECTIVENESS
Example N=5,C=14,及A=(1,10,5,22,3) 則M=(1,1,0,0,1)
Simple Knapsack Problem
•為一特例,其問題之解可以在Linear time求得 •向量A內之元素呈Supper increasing,即
Example
N=5,C=14,及A=(1,3,5,10,22)
•解密步驟 轉換密文C為可用Simple Knapsack求解之值C C=d × C mod u
=d×MAT mod u =d×M×(e×AT) mod u =MAT 因A為Simple Knapsack,故M可以很快求得。
Example: Merkle-Hellman Knapsack
設A=(1, 3, 5, 10),u=20和e=7, 則d=3
A=(7, 1, 15, 10) 設M=13,以二進位法表示(1,1,0,1)
C=M×AT=7+1+10=18 解密
C=3×18 mod 20=14
Merkle-Hellman Knapsack方法的保密性
•原先建議n=100,但Knapsack Problem可在T=0 (2n/2) 時間解決,n=100,250=1015
相关文档
最新文档