Chương trình mô phỏng hệ mã hóa Elgamal, bao gồm Mã hóa Giải mã theo Elgamal và Chữ ký số Elgamal.Ngoài ra còn tích hợp 2 công cụ:Tính phần tử nghịch đảo theo Euclid vàTính lũy thừa số lớn theo Bình phương và nhânDemo + Source code Java ở đính kèm
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐẠI HỌC THÁI NGUYÊN -O0O BÁO CÁO BÀI TẬP LỚN MÔN: An toàn bảo mật thông tin CHỦ ĐỀ 5: Hệ mật mã Elgamal GIẢNG VIÊN : Nguyễn Lan Oanh Nhóm 8: Hà Thị Lan (28/7/1990) Nguyễn Thị Huyền Đào Trung Sơn Nguyễn Thị Thảo Võ Văn Trường Trần Thị Hồng Hạnh Hệ mật mã Elgamal Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page Hệ mật mã Elgamal LỜI NÓI ĐẦU Ta biết tin truyền mạng dễ bị lấy cắp Để đảm bảo việc truyền tin an toàn người ta thường mã hoá thông tin trước truyền Việc mã hoá thường theo quy tắc định gọi hệ mật mã Hiện có hai loại hệ mật mã: mật mã cổ điển mật mã khoá công khai Mật mã cổ điển dễ hiểu, dễ thực thi độ an toàn không cao Vì giới hạn tính toán thực phạm vi bảng chữ sử dụng văn cần mã hoá Với hệ mã cổ điển, biết khoá lập mã hay thuật toán lập mã, người ta "dễ" tìm rõ Ngược lại hệ mật mã khoá công khai cho biết khoá lập mã K hàm lập mã Ck "khó" tìm cách giải mã Hệ mã hóa với khoá công khai Elgamal đề xuất năm 1985, dựa vào độ phức tạp toán lôgarit rời rạc Với chủ đề 5, “cài đặt hệ mã Elgamal”, có nhìn tổng quan hệ mã hóa công khai Elgamal Nhóm MỤC LỤC Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page Hệ mật mã Elgamal Phần I : Lý thuyết 1.1.Cơ sở xây dựng hệ mã Elgamal 1.2 Hệ mã Elgamal 1.3 Ví dụ 1.4 Ưu nhược điểm hệ mật mã Elgamal 1.5 Độ phức tạp hệ mật mã Elgamal 1.6 Thám mã hệ mật mã elgamal 1.6.1.Thuật toán Shank(cân thời gian) 1.6.2.Thuật toán Pohlig-Hellman 1.7 Thuật toán mật mã khóa bất đối xứng tương lai(Advanced Elgamal) 1.7.1 Thuật toán 1.7.2 trình mã hóa 1.7.3 trình giải mã 1.7.4.Chứng minh thuật toán 1.7.5 Đánh giá độ phức tạp thuật toán 1.7.6 Kết luận Phần II : Lập trình (code) Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page Hệ mật mã Elgamal PHẦN I: LÝ THUYẾT 1.1.Cơ sở xây dựng hệ mã Elgamal Hệ mật mã elgamal xây dựng dựa toán logarithm rời rạc Bài toán logarithm phát biểu sau: I={p,α,β} Trong đó: p số nguyên tố α Є Zp là phần tử nguyên thủy β Є Zp* Mục tiêu: Hãy tìm số nguyên a ,0 ≤ a ≤ p-2 : αa ≡ β(mod p) Ta xác định số nguyên a loga β 1.2 Hệ mã Elgamal * Tạo khóa: Cho p số nguyên tố cho toán logarithm rời rạc Zp khó giải Cho α Є Zp * phần tử nguyên thủy Giả sử P= Zp* , C= Zp* x Zp* Ta định nghĩa : K={(p,α,a,β): β ≡ αa (mod p) } Khóa công khai là: (p, α , β) Khóa bí mật : a * Mã hóa: Chọn số ngẫu nhiên bí mật k Є Zp-1 ,(chú ý sau mã hóa xong k bị hủy) ta xác định : ek(x,k)=(y1 , y2 ) Trong đó: y1= αk mod p y2=x.βk mod p * Giải mã: Với y1 , y2 Є Zp* ta xác định : dk(y1 , y2 )= y2(y1a )-1 mod p Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page Hệ mật mã Elgamal 1.3 Ví dụ Cho p= 569 , α = ,a = 109 ,x= 257 , chọn k= 79 β ≡ αa mod p *, tạo khóa: β ≡ 2109 mod 569 x 10 a y=1 54 27 13 16 256 101 528 543 x 32 226 x 407 229 = > β= 229 Vậy: Khóa công khai : (p,α,β)=(569,2,229) Khóa bí mật a=109 * Mã hóa Chọn k ngẫu nhiên k=79 Khi người A gửi tin x=257 cho người B người A mã hóa sau: + y1= αk mod p = 279 mod 569 x 79 39 19 a 16 256 101 528 543 y=1 128 335 x x 394 = > y1= 394 Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page Hệ mật mã Elgamal + y2 = x βk mod p = 257 22979 mod 569 • tính: 22979 mod 569 x a y=1 79 229 229 39 93 244 19 114 504 478 225 315 x 219 x 165 140 = > y2 =257.140 mod 569 = 133 Vậy người A gửi mã (y1,y2) =(394,140) cho người B * Giải mã: Người B nhận mã (y1,y2) tiến hành giải mã : x= y2(y1a )-1 mod p = 140.(394109)-1 mod 569 • Tính 394109 mod 569 x 109 54 27 13 Kq= 140 a 394 468 528 543 107 69 209 y=1 394 x 347 82 x 537 140 Tính (140)-1 mod 569 x 569 140 a 1 -15 16 -31 Chủ đề – Nhóm N03 – An toàn bảo mật thông tin b -4 61 -65 126 y 15 1 Page Hệ mật mã Elgamal Kq = 126 = > x =133.126 mod 569 = 257 Vậy người B sau giải mã nhận rõ x= 257 1.4 Ưu nhược điểm hệ mật mã Elgamal • Ưu điểm: Do xây dựng từ toán logarithm rời rạc nên hệ mã khó tìm loagarithm rời rạc p chọn cẩn thận Để khó công p phải có 150 chữ số (p-1) phải có thừa số nguyên tố lớn • Nhược điểm: Dung lượng nhớ dành cho việc lưu trữ mã lớn gấp đôi so với hệ mã khác Do việc sử dụng số nguyên tố nên việc sinh khóa quản lý khóa khó khăn hệ mã khối 1.5 Độ phức tạp hệ mật mã Elgamal Theo thời gian: O(p) Theo không gian:O(1) 1.6 Thám mã hệ mật mã elgamal 1.6.1.Thuật toán Shank(cân thời gian) Nếu có đủ nhớ sử dụng nhớ để làm giảm thời gian thực toán xuống Input: số nguyên tố p , phần tử nguyên thủy α Zp* , số nguyên β Output : cần tìm a cho αa mod p = β Thuật toán: Gọi m=[(p-1)1/2] (lấy phần nguyên) Bước 1: tính αm.j mod p với 0≤ j≤ m-1 Bước 2: Sắp xếp cặp tj: (j, αm.j mod p ) theo αm.j mod p lưu vào danh sách L1 Bước 3: tính β.α-i mod p với 0≤i≤m-1 Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page Hệ mật mã Elgamal Bước 4: Sắp xếp cặp ti: (I, β.α-i mod p) theo β.α-i mod p lưu vào danh sách L2 Bước 5: Tìm hai danh sách L1và L2 xem có tồn cặp (j, αm.j mod p) (I, β.α-i mod p) mà αm,j mod p= β.α-i mod p (tọa độ thứ hai cặp nhau) Bước 6: a=(m.j+i) mod (p-1) Kết kiểm chứng từ công thức αm.j mod p=β.α-i mod p = > am.j+i mod p = β mod p = > a=(m.j+i) mod (p-1) Độ phức tạp thuật toán: Phụ thuộc vào m=[(p-1)1/2], với giá trị m, cần tính phần tử thuộc danh sách L1 L2 , phép toán lũy thừa phụ thuộc vào j i ; mà j I lại phụ thuộc vào m nên nhận thấy thuật toán áp dụng trường hợp p nhỏ Ví dụ minh họa : Cho p=79, α=2, β=55 Tìm a theo thuật toán Shank Bài giải 1/2 Tính m=[(p-1) ] = B1: Tính t= αm.j mod p với 0≤ j≤ m-1 : 29.j mod 79 với 0≤ j≤8 j =0 => t=1; tj (0,1) j=1=> mod 79 =38; tj (1,38) j=2=>218 mod 79=13; tj (2,22) j=3=>227mod 79=46; tj(3,46) j=4=>236mod 79; x 36 18 => a 16 19 45 50 d=1 x x 16 x x 10 tj(4,10) j=5=>245mod 79 x 45 22 a d=1 x Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page Hệ mật mã Elgamal 11 16 19 45 50 32 55 x 64 a 16 19 45 50 d=1 x 64 x 36 62 a 16 19 45 50 d=1 49 62 25 65 a 16 19 45 50 51 d=1 x x x 19 x x 21 => tj(5,64) J=6 => 254mod 79 x 54 27 13 =>tj(6,62) j =7 => 263mod 79 x 63 31 15 => tj(7,65) j =8 =>272 mod 79 x 72 36 18 =>tj(8,21) Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page 10 Hệ mật mã Elgamal B2: Sắp xếp cặp tj theo hướng tăng dần αm.j mod p (0,1);(4,10);(2,13);(8,21);( 1,38);(3,46);(6,62); (5,64);(7,65) B3: tính β.α-i mod p với 0≤i≤m-1 : 55.(2-i) mod 79 với 0≤i≤8 Hay tính 55.(2i)-1 mod 79 i =0: 20 mod 79 = => 1-1 mod 79=1 => 55.(20)-1 mod 79 =55 = >ti(0,55) i =1:21 mod 79=2 => 2-1mod 79=40(tính theo EuClic) => 55.(21)-1 mod 79 = 55.40 mod 79=67 = >ti(1,67) i =2:22 mod 79 =4 => 4-1 mod 79= 20 =>55.(22)-1 mod 79= 55.20 mod 79=73 = >ti(2,73) i =3: 23 mod 79 =8 => 8-1 mod 79 = 10 => 55.(23)-1 mod 79=55.10 mod 79=76 = >ti(3,76) i =4:24 mod 79=16 => 16-1 mod 79 = => 55.(24)-1 mod 79 = 55.5 mod 79=38 = >ti(4,38) i =5:25mod 79=32=>32-1mod 79=42 = > 55.(25)-1 mod 79=55.42 mod 79= 74 = >ti(5,74) i =6:26 mod 79 =64 =>64-1mod 79= 21 = > 55.(26)-1 mod 79 = 55.21 mod 79=49 = >ti(6,49) i =7:27 mod 79=49 => 49-1 mod 79=50 Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page 11 Hệ mật mã Elgamal = > 55.(27)-1 mod 79=55.50 mod 79= 64 = >ti(7,64) i =8:28 mod 79=19 => 19-1 mod 79 =25 = > 55.(28)-1 mod 79= 55.25 mod 79 = 32 = >ti(8,32) B4: Sắp xếp cặp ti: (I, β.α-i mod p) theo thứ tự tăng β.α-i mod p lưu vào danh sách L2 : ti(8,32) ; ti(4,38) ; ti(6,49) ; ti(0,55) ; ti(7,64) ; ti(1,67) ; ti(4,73) ; ti(5,74) ; ti(3,76) B5: Tìm hai danh sách L1và L2 xem có tồn cặp (j, αm.j mod p) (I, β.α-i mod p) mà αm,j mod p= β.α-i mod p (tọa độ thứ hai cặp nhau) Ta thấy cặp tj(1,38) cặp ti(4,38) có tọa độ thứ 38 cặp tj(5,64) với cặp ti(7,64) có tọa độ thứ 64 = > chon : 1: j=1 ;i=4 ; 2: j=5;i=7 B6: Với 1: a=(m.j+i) mod (p-1) a =(9.1+4) mod (p-1) =13 với 2: a=(9.5+7)mod 78 =52 ( Kiểm tra: ta có β≡αa mod p theo tính a=13 = > β≡ 213 mod 79 x a d=1 13 2 x 16 32 19 55 = > β=55 theo β =55 Tính theo a=52 = > β≡ 252 mod 79 x a d=1 52 x 26 x 13 16 16 19 x 45 Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page 12 Hệ mật mã Elgamal 50 = > β= 55 theo ) 55 1.6.2.Thuật toán Pohlig-Hellman Có trường hợp đặc biệt mà toán Logarithm rời rạc giải với độ phức tạp nhỏ O(p1/2), chẳng hạn (p-1) có ước nguyên tố nhỏ Một thuật toán làm việc với trường hợp Pohlig Hellman đưa vào năm 1978 Giả sử, p-1 = 2n Gọi α phần tử nguyên thủy Z*p, p số lẻ α(p-1)/2 mod p= -1 Gọi m số nguyên thuộc [0,p-2] mà cần tìm để β= α m mod p giả sử, m biểu diễn thành dạng nhị phân m= m0+2m1 +4m2+… + 2n-1mn-1 Khi đó, m0=0 = -1 m0= Việc tính β(p-1)/2 nhiều 2[log2p] bước sẻ cho ta m0 Khi xác định β1=β.α-m0, ta lặp lại thao tác tương tự để tính m1: m1=0 Chủ đề – Nhóm N03 – An toàn bảo mật thông tin Page 13 Hệ mật mã Elgamal = -1 m1=1 Quá trình tính toán tiếp diễn tìm mi Độ phức tạp thuật toán : n.(2[log2p]+2) ~O((log2p)2) 1.7 Thuật toán mật mã khóa bất đối xúng tương lai(Advanced Elgamal) 1.7.1 Thuật toán Thuật toán Elgamal nhược điểm lớn tạo văn mã giống khối văn gốc Điều yếu điểm chung phương pháp mật mã khóa bất đối xứng, làm giảm tính an toàn thuật toán dụng phương pháp thám mã theo xác suất[1,2] Mặt khác, khối liệu sau mã hóa mạng, chủ quan hay khách quan, vài khối bị thêm vào bị thay đổi nội dung Nơi nhận hoàn toàn không phát Thuật toán sau giải vấn đề Cho p số nguyên tố lớn có chiều dài n byte cho việc giải toán miền Zp* đủ khó Có thể chọn 8, 16, 32, 64 128 byte -Khoá công khai K pu = (p,α,β), đó: p: số nguyên tố lớn bất kì; α: số nguyên bất phần tử sinh; β = mod p, với a nguyên thỏa mãn ≤ a ≤ p-2 -Khóa bí mật Kpr = a 1.7.2 trình mã hóa Chia liệu cần mã hóa thành khối X[i] có kích thước n byte Khối cuối có kích thước nhỏ n byte không đưuọc mã hóa Bước 1: Tính A[i] = ( mod p) XOR X[i] K số nguyên thỏa ≤ a ≤ p-2 Bước 2: Thực dịch vòng trái LCS(Left Circular Shift) byte A[i] theo vectơ dịch SV(Shift Vectơ) thu đưoojwc B[i] B[i][j]=A[i][j][...]... sử dụng các phép gần với ngôn ngữ máy(phép dịch vòng, phép XOR) Hiệu quả trong thiết kế phần cứng: Sử dụng chung khoanrg2/3 kiến trúc phần cứng cho quá trình mã hóa và giải mã 1.7.6 Kết luận Tuy tốc độ mã hóa và giải mã được cải thiện rõ nét, nhưng không ngoại lệ, thuật toán Advanced Elgamal cũng giống như các thuật toán thuộc hệ mã công khai, vẫn còn cồng kềnh so với thuật toán hệ bí mật Vì vậy, thuật... ra văn bản mã c gồm và Riêng thuật toán Elgamal, chỉ sinh ra văn bản mã C[i] có kích thước bằng với kích thước văn bản gốc X[i] Chống thám mã theo xác suất xuất hiện Các phương pháp mã hóa theo mô hình khóa đối xứng đều có cùng nhược điểm là tạo ra các khối văn bản mã giống nhau với cùng văn bản gốc Nhờ phép XOR với văn bản mã liền trước, Advanced Elgamal sẽ tạo ra các văn bản mã khác nhau cho dù... danh trước đối tác sử dụng khóa Do đó, khả năng ứng dụng trong thương mại, giao dịch điện tử, thu tín điện tử là rất lớn Chủ đề 5 – Nhóm 8 N03 – An toàn bảo mật thông tin Page 19 Hệ mật mã Elgamal II PHẦN LẬP TRÌNH (CODE) // CODE CHÍNH / /Mã hóa và giải mã Elgamal: //Xử lý mã hóa: public void xulyMahoa(int alpha, int beta, int p, int k, String banRo){ System.out.print( "Mã hóa: \n"); int y1=mod.tinhMod(alpha,... hệ thống siêu mạnh với 1500 máy chủ có thể thực hiện được 20 nghìn tỉ(2 ), phép tính trên giây Với hệ thống siêu mạng này, theo ước tính của tác giả, thời gian để tìm ra chính xác SV bằng phương pháp vét cạn để thám mã là /(2 ) =5 (giây) 1.6 (năm) Rõ ràng độ bảo mật tăng lên vô cùng lớn Kích thước dữ liệu sau mã hóa không thay đổi So với thuật toán Elgamal, ứng với mỗi dữ liệu x sẽ cho ra văn bản mã. .. nayloại bỏ hoàn toàn thám mã theo xác suất Nhận ra sự thay đổi dữ liệu trên đường truyền Một ai đó cố tình phá hoại hệ thống bảo mật bằng cách tạo ra các khối giống với khối văn bản mã, hay cố tình sủa đối nội dung văn bản mã trên đường truyền Theo thuật toán Elgamal và RSA, nơi nhận không phát hiện điều này Kĩ thuật XOR các văn bản mã với nhau trong thuật toán Advanced Elgamal giúp giải quyết triệt để vấn... toán này như sau: Chủ đề 5 – Nhóm 8 N03 – An toàn bảo mật thông tin Page 18 Hệ mật mã Elgamal Độ bảo mật được tăng cường rất lớn so với các thuật toán khóa mã công khai hiện tại Với cùng kích thước bài toán 64byte nhu trên, vectơ dịch SV là ma traanj1x64, mỗi phân của SV có giá trị 0 ddeens7 Đế thám mã thành công thuật toán Elgamal, ngoài việc vượt qua độ khó của bài toán logarit như trên, cần phải... Nhóm 8 N03 – An toàn bảo mật thông tin Page 16 Hệ mật mã Elgamal Đặt : xy mod z = r1v với 0 ≤ r1< z, y mod z = r2vvới 0 ≤ r2< z, x(y mod z)] mod z = xr2mod z = r3v Dễ thấy: xy= nz+ r1 (1’) với 0 ≤ r3< z y=mz + r2 với m, n,k là các số nguyên không âm (2’) x r2=kz + r3 (3’) Rút r2 ở biểu thức (2’) thay vào biểu thức (3’) ta được: xy= (k+mz) + r3 So sánh với biểu thức(1’) ta được: (k + mz)x + r3 = nz... trong Elgama nên vẫn giữ được ưu điểm khó thám mã tương đương với RSA và Elgamal Để thám mã thành công thuật toán Elgamanl độ dài 64 byte, với máy tính đơn có bộ vi xử lý PIV 2.6 GHz, cần thời gian 300000 giờ(khoảng 34 năm) Thế nhưng nếu sử dụng mạng gồm 100000 máy thì thời gian thám mã chỉ còn hơn 3 giờ(theo tài liệu tính toán của RSA Inc) Thuật toán Elgamal giải quyết tốt vấn đề bảo mạt, nhờ sử dụng... số nguyên tố lớn có chiều dài n byte sao cho việc giải bài toán trong miền Zp* là đủ khó Có thể chọn bằng 8, 16, 32, 64 hoặc 128 byte -Khoá công khai K pu = (p,α,β), trong đó: p: một số nguyên tố lớn bất kì; α: số nguyên bất phần tử sinh; β = mod p, với a nguyên bất kì thỏa mãn 1 ≤ a ≤ p-2 -Khóa bí mật Kpr = a 1.7.2 quá trình mã hóa Chia dữ liệu cần mã hóa thành các khối X[i] có kích thước n byte Khối... An toàn bảo mật thông tin Page 12 Hệ mật mã Elgamal 1 50 = > β= 55 đúng theo bài ra ) 55 1.6.2.Thuật toán Pohlig-Hellman Có những trường hợp đặc biệt mà bài toán Logarithm rời rạc có thể giải quyết với độ phức tạp nhỏ hơn O(p1/2), chẳng hạn như khi (p-1) chỉ có các ước nguyên tố nhỏ Một thuật toán làm việc với các trường hợp như vậy đã được Pohlig và Hellman đưa ra vào năm 1978 Giả sử, p-1 = 2n Gọi