hệ mật mã mekle-hellman

Post on 25-Jan-2017

132 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ĐỀ 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

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ã

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

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.

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.

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

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.

ĐỊ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.

ĐỊ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)

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

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.

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.

THUẬT TOÁN THAM LAM

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

xi = 1elsexi = 0

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.

4. QUÁ TRÌNH MÃ HÓA VÀ GIÃI MÃ TRONG HỆ MẬT MÃ MERKLE-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)

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

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 =

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

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:

•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;

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

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

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

• 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

• 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

• 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ã

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

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

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

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

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.

• 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.

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

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.

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).

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ố.

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.

Để 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)

• 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

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

DÕI

top related