hệ mật mã mekle-hellman

41
ĐỀ TÀI THUYẾT TRÌNH VỀ HỆ MẬT MÃ MEKLE-HELLMAN Nhóm: 3 Lớp: VTK37 Môn: Mã hóa thông tin GVHD: Lê Ngọc Luyện

Upload: thanh-pho-da-lat

Post on 25-Jan-2017

151 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Hệ mật mã Mekle-Hellman

ĐỀ TÀI THUYẾT TRÌNH VỀ HỆ MẬT MÃ MEKLE-HELLMAN

Nhóm: 3Lớp: VTK37Môn: Mã hóa thông tinGVHD: Lê Ngọc Luyện

Page 2: Hệ mật mã Mekle-Hellman

NỘI DUNG CHÍNH

1. Lịch sử 2. Một số định nghĩa3. Ý tưởng của hệ mật mã4. Quá trình mã hóa và giải mã trong hệ

mật mã

Page 3: Hệ mật mã Mekle-Hellman

NỘI DUNG CHÍNH

5. Ưu điểm, nhược điểm và ứng dụng6. Các phương pháp phá mã7. Quản lý trao đổi khóa

Page 4: Hệ mật mã Mekle-Hellman

1. LỊCH SỬ

Năm 1976, Diffie-Hellman đã đưa ra ý tưởng về một hệ mật mã mã hóa khóa bất đối xứng.

Page 5: Hệ mật mã Mekle-Hellman

Năm 1978, hệ mật mã ba lô Merkle-Hellman được công bố.

Năm 1982, Adi Shamir đã cơ bản phá giải được hệ mật mã ba lô Mekle-HellMan.

Page 6: Hệ mật mã Mekle-Hellman

2. ĐỊNH NGHĨA MÃ HÓA KHÓA CÔNG KHAI

Page 7: Hệ mật mã Mekle-Hellman

3. Ý TƯỞNG CỦA HỆ MÃ: BÀI TOÁN BA LÔ

Một kẻ trộm đột nhập vào một cửa hiệu tìm thấy có n mặt hàng có trọng lượng và giá trị khác nhau, nhưng hắn chỉ mang theo một cái túi có sức chứa về trọng lượng tối đa là M. Vậy kẻ trộm nên bỏ vào ba lô những món nào và số lượng bao nhiêu để đạt giá trị cao nhất trong khả năng mà hắn có thể mang đi được.

Page 8: Hệ mật mã Mekle-Hellman
Page 9: Hệ mật mã Mekle-Hellman

ĐỊNH NGHĨA BÀI TOÁN

Ta có n loại đồ vật, x1 tới xn. Mỗi đồ vật xj có một giá trị vj và một khối lượng wj. Khối lượng tối đa mà ta có thể mang trong ba lô là M.

Page 10: Hệ mật mã Mekle-Hellman

ĐỊNH NGHĨA BÀI TOÁN TỔNG CÁC TẬP HỢP CON

Cho một tập hợp các số A và một số M, tìm một tập hợp con của A sao cho tổng bằng M.Liên hệ giữa 2 bài toán:A là một ba lô phức tạp (hard knapsack)

Page 11: Hệ mật mã Mekle-Hellman

B là một ba lô đơn giản (easy knapsack) hay một ba lô siêu tăng (superincreasing knapsack)Ba lô B là một ba lô đơn giản khi vetor w (w1, w2, …, wj, …,wn) (trọng lượng của n mặt hàng) tạo thành một chuỗi siêu tăng

wj ≥ với i < j ≤ n

Page 12: Hệ mật mã Mekle-Hellman

Có cực đại hóa Và các mặt hàng x (x1, x2, …,xn) (tồn tại dưới dạng nhị phân) sao cho

M = Khi đó các yếu tố khác gọi là ba lô phức tạp A. Tìm được xi là vấn đề khó của bài toán.

Page 13: Hệ mật mã Mekle-Hellman

GIẢI QUYẾT BÀI TOÁN BẰNG THUẬT TOÁN THAM LAM

Bài toán tổng của các tập hợp con (tìm xi) nếu có kết quả có thể dùng thuật toán tham lam để giải quyết trong miền thời gian đa thức.

Page 14: Hệ mật mã Mekle-Hellman

THUẬT TOÁN THAM LAM

for i = n downto 1 doif M ≥ Ai thenM = M - Ai

xi = 1elsexi = 0

Page 15: Hệ mật mã Mekle-Hellman

THUẬT TOÁN THAM LAM

if then là giải pháp cần tìmelse không tồn tại giải pháp nào.

Page 16: Hệ mật mã Mekle-Hellman

4. QUÁ TRÌNH MÃ HÓA VÀ GIÃI MÃ TRONG HỆ MẬT MÃ MERKLE-HELLMAN

Page 17: Hệ mật mã Mekle-Hellman

a. QUÁ TRÌNH MÃ HÓA • Đầu tiên phải dịch thông điệp sang dạng nhị phân.• Chọn một chuỗi siêu tăng:

B = (B1, B2, ..., Bn) với

Bn > Ví dụ: B = (1,2,4,8,16)

Page 18: Hệ mật mã Mekle-Hellman

QUÁ TRÌNH MÃ HÓA • Chọn một số nguyên ngẫu nhiên q sao cho:

• Chọn một số nguyên ngẫu nhiên r sao cho UCLN(r, q) = 1 (r, q là hai số nguyên tố cùng nhau) và r có phần tử nghịch đảo theo module q

Page 19: Hệ mật mã Mekle-Hellman

QUÁ TRÌNH MÃ HÓA

• Ai = r wi mod q => chuỗi A (A1,A2,…,An)

Khóa công khai là A, các khóa riêng là

B, q, r.• Để mã hóa một thông điệp n bit M (M1,M2,…,Mn): Ci =

Page 20: Hệ mật mã Mekle-Hellman

b. QUÁ TRÌNH GIẢI MÃ

Dùng thuật toán tham lam (Greedy Algorithm) để giải mã.Tìm phần tử nghịch đảo của r theo module q (r -1). Tìm văn bản rõ M = C . r -1 mod q

Page 21: Hệ mật mã Mekle-Hellman

THUẬT TOÁN TÌM PHẦN TỬ NGHỊCH ĐẢO THEO MODULE

• Để tìm phần tử nghịch đảo của r theo module q ta sử dụng giải thuật EUCLID mở rộng, biểu diễn bằng chương trình sau:

Page 22: Hệ mật mã Mekle-Hellman

•Procedure Euclid_Extended (r,q)• int, y0 = 0, y1: = 1;•While r > 0 do •{ a = q mod r • if a = 0 then Break • b = q div r• y = y0 - y1 * b• q = r• r = a• y0 = y1 • y1 = y }•Return y;

Page 23: Hệ mật mã Mekle-Hellman

Ví dụ:• Cho bản rõ P: Hello• Dịch từ “Hello” về dạng nhị phân

H : 1001000e : 1100101l : 1101100o : 1101111

Page 24: Hệ mật mã Mekle-Hellman

QUÁ TRÌNH MÃ HÓA• Chọn dãy số siêu tăng:

B = (3,5,15,25,54,110,225)• Chọn số nguyên q:

q = 437 => q = 439• Chọn số nguyên r = 10• Tính khóa công khai: Ai = r.wi mod q

Page 25: Hệ mật mã Mekle-Hellman

• 3.10 mod 439 = 30• 5.10 mod 439 = 50• 15.10 mod 439 = 150• 25.10 mod 439 = 250• 54.10 mod 439 = 101• 110.10 mod 439 = 222• 225.10 mod 439 = 55

Page 26: Hệ mật mã Mekle-Hellman

• tạo được dãy khóa công khai:

A = (30, 50, 150, 250, 101, 222, 55)

CH = 1 . 30 + 0 . 50 + 0 . 150 + 1 . 250 + 0 . 101 + 0 . 222 + 0 . 55 = 280;•Tương tự ta tính được: Ce = 236, Cl = 431, Co= 708

Page 27: Hệ mật mã Mekle-Hellman

• Tạo được khối mã hóa C = (280, 236, 431, 431, 708)

=> với những người chỉ biết C và A thì vô cùng khó khăn để giải mã.Với những người biết w, q, r thì sẽ dễ dàng giải mã

Page 28: Hệ mật mã Mekle-Hellman

QUÁ TRÌNH GIẢI MÕ Tìm phần tử nghịch đảo của r theo module q:

r -1 = 44 (10 . 44 mod 439 = 1)

Bước i q r a b y0 y1 y

0 439 10 9 43 0 1 -43

1 10 9 1 1 1 -43 44

2 9 1 0 9 -43 44

Page 29: Hệ mật mã Mekle-Hellman

QUÁ TRÌNH GIẢI MÕ MH = CH . r-1 mod q = 280 . 44 mod 439 = 28• 28 > 25 => 28 - 25 = 3;

3 – 3 = 0 => MH =1001000.1 0 0 1 0 0 03 283 5 15 25 54 110 225

Page 30: Hệ mật mã Mekle-Hellman

QUÁ TRÌNH GIẢI MÃ Tương tự như slide trước ta tìm được:

Me = 236 . 44 mod 439 = 287,287 – 225 = 62, 62 – 54 = 8, 8 – 5 = 3, 3 – 3 = 0

1 1 0 0 1 0 13 8 62 2873 5 15 25 54 110 225

Page 31: Hệ mật mã Mekle-Hellman

=>Me = 1100101Tương tự tìm đượcMl = 1101100Mo = 1101111

Page 32: Hệ mật mã Mekle-Hellman

5. ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ ỨNG DỤNG

• Ưu điểm:•Đơn giản hơn các hệ mật mã mã khóa công khai khác.•Nếu chọn r và q đủ lớn thì người thám mã để tìm được r và q phải tốn nhiều thời gian hơn.

Page 33: Hệ mật mã Mekle-Hellman

• Nhược điểm:

Thuật toán mã hóa có khối lượng tính toán nhiều => tốc độ mã hóa chậm.

Thuật toán mã hóa đã bị Adi Shamir phá được nên không còn an toàn.

Page 34: Hệ mật mã Mekle-Hellman

• Ứng dụng:Bảo mật thông tin và truyền tin.Chứng thực và chữ ký điện tử.

Page 35: Hệ mật mã Mekle-Hellman

6. CÁC PHƯƠNG PHÁP PHÁ MÃ

Phương pháp tấn công tổng thể - vét cạn:Nếu quá trình mã hóa và giải mã sử dụng r và q đủ lớn thì phương pháp duyệt tổng thể hay vét cạn khóa là rất khó lên đến 2n trường hợp x có thể xảy ra, do đó thời gian để thực hiện quá trình phá mã là rất lớn => bất khả thi.

Page 36: Hệ mật mã Mekle-Hellman

Thuật toán phá mã của Adi Shamir:Shamir-Adleman đã chỉ ra chỗ yếu của hệ mật mã này này bằng cách đi tìm một cặp (r0, q0) sao cho nó có thể biến đổi ngược A về B (từ Public key về Private key).

Page 37: Hệ mật mã Mekle-Hellman

1984, Brickell tuyên bố sự đổ vỡ của hệ thống Knapsack với dung lượng tính toán khoảng 1 giờ dùng máy Cray -1, với 40 vòng lặp chính và cỡ 100 trọng số.

Page 38: Hệ mật mã Mekle-Hellman

7. QUẢN LÝ TRAO ĐỔI KHÓA

Để trao đổi thông điệp với Bob, Alice gửi khóa công khai của mình cho Bob, Bob dùng khóa công khai của Alice mã hóa thông điệp rồi gửi lại cho Alice. Sau đó Alice giải mã thông điệp bằng khóa riêng của mình. Phương pháp này không an toàn do tính xác thực không cao.

Page 39: Hệ mật mã Mekle-Hellman

Để an toàn và tính xác thực cao Alice có thể trao đổi thông điệp với Bob qua trung tâm chứng thực CA (Certificate Authority)

Page 40: Hệ mật mã Mekle-Hellman

• Tài liệu tham khảo:https://en.wikipedia.org/wiki/Merkle%E2%80%93Hellman_knapsack_cryptosystem

https://en.wikipedia.org/wiki/Superincreasing_sequence

https://vi.wikipedia.org/wiki/B%C3%A0i_to%C3%A1n_x%E1%BA%BFp_ba_l%C3%B4

http://text.123doc.org/document/2237677-trinh-bay-he-ma-hoa-merkle-hellman-knapsack-tieu-luan-mon-an-ninh-he-thong-thong-tin.htm

https://vi.wikipedia.org/wiki/Gi%E1%BA%A3i_thu%E1%BA%ADt_Euclid_m%E1%BB%9F_r%E1%BB%99ng

http://113.171.224.165/videoplayer/merkle-hellman-knapsack-based-public-key-method.pdf?ich_u_r_i=1a6ab00766e5c508f959f510b3758b4b&ich_s_t_a_r_t=0&ich_e_n_d=0&ich_k_e_y=1645058913750963002407&ich_t_y_p_e=1&ich_d_i_s_k_i_d=3&ich_u_n_i_t=1

Page 41: Hệ mật mã Mekle-Hellman

TRÂN TRỌNG CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ LẮNG NGHE VÀ THEO

DÕI