1. Trang chủ
  2. » Luận Văn - Báo Cáo

trình bày về hệ mã hoá rabin

14 3K 14

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 270,35 KB

Nội dung

trình bày về hệ mã hoá rabin

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

ĐẠI HỌC CÔNG NGHỆ

BÀI TẬP LỚN

AN TOÀN VÀ BẢO MẬT DỮ LIỆU

Trình bày về hệ mã hoá Rabin

Giảng viên: PGS, TS Trịnh Nhật Tiến Học viên: Trần Đại Long

Lớp: Cao học K10T3

Hà Nội 6/2005

Trang 2

Một đặc điểm quan trọng đáng mong muốn của bất kỳ lược đồ mã hoá nào là nó phải được chứng minh là việc phá khoá khó tương đương với việc giải một bài toán nào đó đã biết, mà người ta tin tưởng là rất khó, như việc phân tích ra thừa số hay giải bài toán logarit rời rạc

Hệ mã hoá RSA, mặc dù được người ta tin là việc phá khoá khó tương đương với việc phân tích ra thừa số module n, nhưng sự tương đương đó lại chưa được chứng minh Hệ mã hoá công khai Rabin là một ví dụ đầu tiên về một lược đồ khoá công khai đã được chứng minh về tính an toàn Khó khăn mà một người tấn công thụ động gặp phải khi giải mã là khó tương đương về mặt tính toán với việc phân tích ra thừa số

I Sơ đồ hệ mã hoá Rabin

Sơ đồ hệ mật mã khóa công khai Rabin được cho bởi :

S = (P, C, K, E, D)

Trong đó:

- P = C = Zn, trong đó n là một số nguyên Blum, n = p.q, với p và q là 2 số nguyên tố có tính chất p ≡ 3 mod 4, q ≡ 3 mod 4

- K = {(K’, K”): K’ (khóa công khai) = (n, B), K” (khóa bí mật)

= (p, q), 0 <= B <= n-1}

- Các thuật toán E và D được xác định bởi:

E(K’, x) = y = x (x + B) mod n,

2 4

"

D

2

− +

= ) , Κ

Trong một mạng truyền tin bảo mật với sơ đồ mật mã Rabin, mỗi người tham gia chọn cho mình các yếu tố n, B, p, q để lập nên khoá công khai và khoá bí mật của mình

Thuật toán giải mã dK” = D(K”, ):

Đặt C = B2 / 4 + y, ta có dK”(y) = C B modn

2⎟

⎛ − , do đó ta cần tính C mod , tức cần n

giải phương trình Z 2 ≡ C mod n Theo định lý số dư Trung quốc thì phương trình đó

tương đương hệ hai phương trình sau đây:

Z 2 ≡ C mod p

Z 2 ≡ C mod q (2)

Trang 3

Định lý Fermat: nếu p là số nguyên tố thì: C (p-1) ≡ 1 mod p

Theo tiêu chuẩn Euler: khi p là số nguyên tố thì số a là thặng dư bậc 2 mod p nếu và chỉ

nếu a (p-1)/2 ≡ 1 mod p

Vì p là số nguyên tố và C là thặng dư bậc 2 mod p nên ta có:

C (p-1)/2 ≡ 1 mod p Tuơng tự, vì q là số nguyên tố và C là thặng dư bậc 2 mod q nên ta có:

C (q-1)/2 ≡ 1 mod q

Do đó:

C (p-1)/2+1 =C (p+1)/2 ≡ C mod p

C (q-1)/2+1 = C (q+1)/2 ≡ C mod q

Theo giả thiết, p ≡ 3 mod 4 và q ≡ 3 mod 4 nên (p+1)/4 và (q+1)/4 là các số nguyên, và ta có:

(±C (p+1)/4)2≡ C mod p,

(±C (q+1)/4)2≡ C mod q

Do đó, phương trình Z2 ≡ C mod n, hay hệ phương trình (2) có 4 nghiệm theo mod n, tương ứng với 4 hệ phương trình sau đây:

Z ≡ C(p+1)/4 mod p

Z ≡ C(q+1)/4 mod q (1)

Z ≡ C(p+1)/4 mod p

Z ≡ -C(q+1)/4 mod q (2)

Z ≡ -C(p+1)/4 mod p

Z ≡ C(q+1)/4 mod q (3)

Z ≡ -C(p+1)/4 mod p

Z ≡ -C(q+1)/4 mod q (4)

Cả 4 nghiệm của 4 hệ phương trình đó theo mod n đều được viết chung dưới 1 ký hiệu là

C mod n, vì vậy thuật toán giải mã dK”(y) thực tế sẽ cho ta 4 giá trị khác nhau theo mod n

mà bản rõ là 1 trong 4 giá trị đó Việc chọn giá trị nào trong 4 giá trị tìm được làm bản rõ tuỳ thuộc vào những đặc trưng khác của bản rõ mà người giải mã nhận biết

A Giải thuật tạo khoá cho hệ mã hoá Rabin:

Mỗi bên tạo 1 khoá công khai và 1 khoá bí mật tương ứng Bên A phải làm các việc sau:

1 Tạo 2 số ngẫu nhiên lớn và khác nhau pq, p gần bằng q

2 Tính n = pq

3 Khoá công khai của A là n, khoá bí mật của A là (p, q).

Trang 4

B Giải thuật mã hoá công khai Rabin:

Tóm tắt: B mã hoá 1 thông điệp m gửi cho A, dùng khoá công khai của A để mã hoá, A sẽ giải mã bằng khoá bí mật tương ứng của mình

1 Mã hoá:

B cần làm các việc sau:

a) Nhận khoá công khai đã được xác thực của A là n

b) Giả sử thông điệp là 1 số nguyên m trong khoảng [0, 1, …, n-1]

c) Tính c = m 2 mod n

d) Gửi bản mã hoá c cho A

2 Giải mã:

A có khoá bí mật là p và q, với n= pq, để nhận được bản rõ m từ c, A phải làm các

việc sau:

a) Sử dụng giải thuật 3.44 để tìm 4 căn bậc 2 của c theo module n

là m1, m2, m3, m4

b) Bức thông điệp ban đầu có thể là m1, m2, m3, hoặc m4 Một đặc điểm nào đó sẽ cho biết cái nào là bản rõ

Nếu p và q được chọn để cả p ≡ q ≡ 3 mod 4 thì thuật toán để tìm 4 căn bậc 2 của

c mod n có thể đơn giản như sau:

1 Dùng thuật toán Euclide mở rộng tìm 2 số nguyên ab thoả mãn:

ap + bq = 1

2 Tính r = c(p+1)/4 mod p

3 Tính s = c(q+1)/4 mod q

4 Tính x = (aps + bqr) mod n

5 Tính y = (aps - bqr) mod n

6 Bốn căn bậc 2 của c mod n là x, -x mod n, y –y mod n

C Các giải thuật và định lý có liên quan đến việc tính toán

1 Giải thuật 3.44:

Tìm căn bậc 2 modulo n biết các thừa số nguyên tố của nó là p và q

Trang 5

Input: 1 số nguyên n, các thừa số nguyên tố p và q của nó (n = pq), và 1 số a ∈ Qn

Output: 4 căn bậc 2 của a theo modulo n

1 Sử dụng giải thuật 3.39 ( hoặc giải thuật 3.36 hoặc 3.37, nếu có thể) để tìm 2 căn bậc 2 của a theo modulo p là r và –r

2 Sử dụng giải thuật 3.39 ( hoặc giải thuật 3.36 hoặc 3.37, nếu có thể) để tìm 2

3 Sử dụng giải thuật Euclidean mở rộng để tìm các số nguyên c và d thoả mãn:

cp + dq = 1

4 Đặt x = (rdq + scp) mod n và y = (rdq - scp) mod n

5 Trả về (±x mod n, ±y mod n)

Giải thuật 3.44 có độ phức tạp O((lg p)3)

Giải thuật 3.44 cho thấy nếu n có thể bị phân tích thành các thừa số nguyên tố thì bài toán tìm căn bậc 2 (SQROOT) là dễ Chính xác hơn là SQROOT ≤ ρ FACTORING Điều ngược lại cũng đúng

2 Định lý 3.46 SQROOT ≤ ρ FACTORING

Nghĩa là bài toán FACTORING được đưa về bài toán SQROOT trong thời gian đa thức

Do SQROOT ≤ ρ FACTORING nên bài toán SQROOT và bài toán FACTORING là phức tạp tương đương nhau về mặt tính toán

Chứng minh:

Giả sử có 1 giải thuật thời gian đa thức A để giải bài toán

SQROOT Giải thuật này có thể dùng để phân tích ra thừa số nguyên

tố 1 số nguyên n cho trước như sau:

1 Chọn 1 số nguyên x ngẫu nhiên thoả mãn gcd(x, n) = 1 Tính a = x2 mod n

2 Chạy giải thuật A với input là a và n, tìm được căn bậc 2 của a mod n là y

3 Nếu y ≡ ±x mod n thì phép thử thất bại Thủ tục trên được lặp lại với 1 số x mới được chọn ngẫu nhiên

Trang 6

4 Ngược lại, nếu y ≢ ±x mod n thì gcd(x-y, n) được đảm bảo là 1 thừa

số không tầm thường của n (theo 3.18), gọi là p và q

Vì a có 4 căn bậc 2 modulo n, (±x và ±z, với ±z ≢ ±x mod n), khả năng thành công của mỗi lần thử là ½ Vì vậy số lần thử để tìm ra thừa số của n là 2 Vì vậy giải thuật chạy trong thời gian đa thức

3 Định lý 3.47 Nhấn mạnh 3.46

Việc chứng minh ở mục 3.46 có thể dễ dàng sửa đổi để nhận được kết quả mạnh hơn sau đây:

Gọi c ≥ 1 là 1 hằng số bất kỳ Nếu có 1 giải thuật A mà, cho biết số n, có thể tìm căn bậc

2 modulo n trong thời gian đa thức với 1 tỷ lệ 1/ (lg n) c của tất cả các phần dư bậc 2 a ∈

Qn, thì giải thuật A có thể được dùng để phân tích ra thừa số số n trong thời gian đa thức Kết luận này cũng có nghĩa rằng nếu bài toán phân tích ra thừa số số n là khó thì với phần lớn tất cả a ∈ Qn, bài toán tìm căn bậc 2 modulo n là khó

Sự tương đương về mặt tính toán của bài toán SQROOT và FACTORING là cơ sở của lược đồ chữ ký số và mã hoá công khai “được chứng minh an toàn” đầu tiên

4 Định lý 3.18

Gọi x, y và n là các số nguyên Nếu x2 ≡ y2 mod n nhưng x ≢ ±y mod n

thì gcd(x – y, n) là 1 thừa số không tầm thường của n

Phương pháp bình phương ngẫu nhiên cố gắng tìm các số nguyên x và y 1 cách ngẫu nhiên mà x2 ≡ y2 mod n Như chỉ ra trong 3.19, khả năng 50% là x ≢ ±y mod n , do đó gcd(x-y, n) sẽ sinh ra các thừa số không tầm thường của n

5 Định lý 3.19

Gọi n là 1 hợp số lẻ (n không phải là số nguyên tố) mà có thể chia hết bởi k số nguyên tố

lẻ khác nhau Nếu a ∈ Z*

n thì nhóm đồng dư x2 ≡ a2 mod n có chính xác 2k nghiệm mod

n, 2 trong số đó là x = a và x = -a

3.20 Ví dụ:

Giả sử n = 35 Khi đó có 4 nghiệm với nhóm đồng dư x2 ≡ 4 mod 35 là x1 = 2, x2 = 12, x3

= 23 và x4 = 33

Như vậy y2 = 4 Æ y = 2

gcd(x1 - y, n) = gcd(2 – 2, 35) = gcd(0, 35) = 1 gcd(x2 - y, n) = gcd(12 – 2, 35) = gcd(10, 35) = 5 gcd(x3 - y, n) = gcd(23 – 2, 35) = gcd(21, 35) = 7 gcd(x4 - y, n) = gcd(33 – 2, 35) = gcd(31, 35) = 1

Trang 7

Như vậy 35 đã được phân tích thành 2 thừa số 5 và 7

Có 1 giải thuật để tìm 2 số x và y ngẫu nhiên thoả mãn x2 ≡ y2 mod n

6 Giải thuật 3.39

Tìm căn bậc 2 của số a theo modulo số nguyên tố p

Input: 1 số nguyên tố lẻ p và 1 số nguyên a ∈ Qp

Output: 2 căn bậc 2 của a modulo p

1 Chọn ngẫu nhiên b ∈ Zp cho đến khi b2 – 4a là 1 số không dư bậc 4 modulo p (a quadratic non-residue modulo p), nghĩa là (b2 – 4a) / p = -1

2 Gọi f là 1 đa thức f = x2 – bx + a trong Zp[x]

3 Tính r = x (p+1)/2 mod f (giải thuật 2.227) (r sẽ là 1 số nguyên)

4 Trả lại (r, -r).

7 Giải thuật 3.36

Tìm căn bậc 2 modulo số nguyên tố p của số a trường hợp p ≡ 3 mod 4

Input: 1 số nguyên tố lẻ p thoả p ≡ 3 mod 4 và 1 số nguyên a ∈ Qp

Output: 2 căn bậc 2 của a theo modulo p

1 Tính r = a (p+1)/4 mod p (giải thuật 2.143) (r sẽ là 1 số nguyên)

2 Trả lại (r, -r)

8 Giải thuật 3.37

Tìm căn bậc 2 modulo số nguyên tố p của số a trường hợp p ≡ 5 mod 8

Input: 1 số nguyên tố lẻ p thoả p ≡ 5 mod 8 và 1 số nguyên a ∈ Qp

Output: 2 căn bậc 2 của a modulo p

1 Tính d = a (p-1)/4 mod p (giải thuật 2.143) (r sẽ là 1 số nguyên)

2 Nếu d = 1 thì tính r = a (p+3)/8 mod p

3 Nếu d = p-1 thì tính r = 2a(4a) (p-5)/8 mod p

4 Trả lại (r, -r)

Giải thuật 3.36 và 3.37 có thời gian chạy là O((lg p)3) thao tác bít

9 Giải thuật 3.34

Trang 8

Tìm căn bậc 2 của số a theo modulo số nguyên tố p

Input: 1 số nguyên tố lẻ p và 1 số nguyên a thoả 1 ≤ a ≤ p-1

Output: 2 căn bậc 2 của a theo modulo p, với điều kiện a là số dư bậc 4 theo modulo p (a

is a quadratic residue modulo p)

1 Tính giá trị Legendre (a/p) sử dụng giải thuật 2.149 Nếu (a/p) = -1 thì trở về và kết thúc (a không có căn bậc 2 theo modulo p)

2 Chọn 1 số nguyên b, 1 ≤ b ≤ p-1, ngẫu nhiên cho đến khi (b/p) = -1 (b là số không

dư bậc 4 modulo p) (b is a quadratic non-residue modulo p)

3 Lặp lại phép chia cho 2, có p-1 = 2s t, trong đó t là 1 số lẻ

4 Tính a-1 mod p bằng thuật toán Euclidean mở rộng

5 Đặt c = bt mod p và r = a(t+1)/2 mod p (giải thuật 2.143)

6 For i = 1 to s-1 do{

6.1 Tính d = r2 a-1)t mod p, với t = 2s-i-1 6.2 Nếu d ≡ -1 mod p thì đặt r = r c mod p

6.3 Đặt c = c2 mod p

}

7 Trả lại (r, -r)

Giải thuật 3.34 là 1 giải thuật ngẫu nhiên vì cách b là số không dư bậc 4 modulo p được tìm ở bước 2 Người ta chưa tìm được giải thuật đơn định trong thời gian đa thức nào để tìm b

Giải thuật 3.34 có thời gian chạy là O((lg p)4) thao tác bít

Trang 9

II Các điểm đặc trưng của hệ mã hoá Rabin

1 Tính an toàn của hệ mã hoá Rabin

(i) Một người tấn công bị động cần phục hồi bản rõ m từ bản mã c Đây chính là giải bài toán căn bậc 2 ở mục 3.5.2 Vấn đề phân tích ra thừa số số n và tính căn bậc 2 theo module n là tương đương về mặt tính toán.Vì vậy giả sử việc phân tích ra thừa số số n là

khó về mặt tính toán thì lược đồ mã hoá công khai Rabin được chứng minh là an toàn đối với một người tấn công bị động

(ii) Trong khi được chứng minh là an toàn đối với một người tấn công bị động, lược đồ

mã hoá công khai Rabin lại không chống nổi một cuộc tấn công bản mã lựa chọn (chosen-ciphertext) (xem Note 8.14(ii)) Một cuộc tấn công như vậy có thể mô tả như sau: người tấn công chọn 1 số nguyên m ∈ Z*

nvà tính c = m2 mod n Người tấn công sau đó đưa c đến máy giải mã của A, giải mã c và trả lại 1 bản rõ y nào đó Vì

A không biết m, và m được chọn ngẫu nhiên, bản rõ y không nhất thiết phải giống hệt m Với khả năng ½, y ≢ ± m mod n, khi đó gcd(m-y, n) là một trong các thừa

số của n Nếu y ≡ ±m mod n, người tấn công lại lặp lại với một số m mới

(iii) Lược đồ mã hoá công khai Rabin dễ bị thương tổn bởi những cuộc tấn công tương tự như với các trường hợp của hệ mã hoá RSA mô tả ở mục 8.2.2(ii) Giống như hệ RSA, các cuộc tấn công (ii) và (iii) có thể bị thất bại bằng cách biến đổi (salting) bản rõ, trong khi các cuộc tấn công (v) có thể tránh được bằng cách thêm dư thừa dữ liệu trước khi mã hoá

2 Sử dụng dư thừa dữ liệu

(i) Một nhược điểm của hệ mã hoá công khai Rabin là người nhận phải có nhiệm vụ chọn bản rõ đúng từ 4 khả năng Sự nhầm lẫn trong việc giải mã có thể vượt qua một cách dễ dàng bằng cách thêm dư thừa dữ liệu vào bản rõ gốc một cách xác định trước khi mã hoá (ví dụ: 64 bit cuối cùng của thông điệp có thể được lặp lại) Với khả năng cao, chỉ 1 trong

4 căn bậc 2 của bản mã c là m1, m2, m3, m4 có được dư thừa đó Người giải mã sẽ chọn bản này làm bản rõ Nếu không có căn bậc 2 nào của c có dư thừa này, người nhận sẽ từ chối c, vì nó là giả mạo

(ii) Nếu sử dụng dư thừa dữ liệu như trên, lược đồ Rabin sẽ không còn dễ bị thương tổn bởi các cuộc tấn công bản mã lựa chọn như nói ở trên Nếu người tấn công chọn 1 thông điệp m có dư thừa dữ liệu như yêu cầu và đưa c = m2 mod n vào máy giải mã của

A, khả năng rất cao là máy sẽ trả lại bản rõ m cho người tấn công (vì 3 căn bậc 2 của

c kia sẽ có khả năng rất cao là không chứa dư thừa dữ liệu như yêu cầu), không đưa ra thông tin mới nào Mặt khác, nếu người tấn công chọn một thông điệp m mà không có dư thừa dữ liệu cần thiết, khả năng cao là cả bốn căn bậc 2 của c mod n đều không có dư

Trang 10

thừa dữ liệu cần thiết Trường hợp này máy giải mã sẽ thất bại việc giải mã c và không trả lời người tấn công Chú ý rằng việc chứng minh tính tương đương của việc phá khoá lược đồ cải tiến này bởi một người tấn công thụ động với việc phân tích ra thừa số không còn giá trị nữa Tuy nhiên, nếu giả sử rằng việc giải mã Rabin gồm hai giai đoạn, giai đoạn thứ nhất là tìm bốn căn bậc 2 của c mod n, và giai đoạn thứ hai là lựa chọn căn bậc

2 làm bản rõ thì vẫn chứng minh được tính tương đương Vì vậy lược đồ mã hoá khoá công khai Rabin, được sửa đổi một cách thích hợp bằng cách thêm dư thừa dữ liệu, là rất được quan tâm ứng dụng

3 Tính hiệu quả

Việc mã hoá Rabin là cực kỳ nhanh vì nó chỉ liên quan đến việc tính một bình phương theo module duy nhất Để so sánh, mã hoá của hệ RSA với e = 3 cần một phép nhân module và một phép bình phương module Giải mã Rabin chậm hơn mã hoá, nhưng có thể sánh được với tốc độ giải mã của hệ RSA

Trang 11

III Ví dụ

1 Tạo khóa:

A chọn số nguyên tố p = 331, q = 311 có p ≡ q ≡ 3 mod 4 và tính

n = pq = 102941

Khóa công khai của A là n = 102941, khoá bí mật của A là (p = 331, q = 311)

2 Mã hoá:

Giả sử 6 bít cuối cùng của thông điệp ban đầu cần phải được lặp lại trước khi mã hoá

Để mã hoá thông điệp 10 bit m = 633 (10) = 1001111001 (2), B lặp lại 6 bit cuối cùng của m để nhận được thông điệp 16 bit m = 1001111001111001

Theo hệ 10 thì m = 40569

B sau đó tính:

c = m2 mod n = 405692 mod 102941 = 23053

và gửi c cho A

3 Giải mã:

1 Dùng thuật toán Euclide mở rộng tìm 2 số nguyên ab thoả mãn:

ap + bq = 1

Tìm được a = 140, b = -149

2 Tính r = c(p+1)/4 mod p = 23053 (331+1)/4 mod 331 = 144

3 Tính s = c(q+1)/4 mod q = 23053 (311+1)/4 mod 311 = 139

4 Tính x = (aps + bqr) mod n

x = (140*331*139 + -149*311*144) mod 102941 = -25674

5 Tính y = (aps - bqr) mod n

y = (140*331*139 - -149*311*144) mod 102941 = 40569

Ngày đăng: 19/12/2014, 17:30

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w