Bài tập kết thúc môn bảo mật thông tin trong máy tính Hệ Elgamal

19 19 0
Bài tập kết thúc môn bảo mật thông tin trong máy tính  Hệ Elgamal

Đ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

hệ mã Elgamal Elgamal là một hệ mật mã công khai. Hệ Elgamal là 1 biến thể của sơ đồ phân phối khóa DiffieHellmal, được đưa ra năm 1984. So với RSA, Hệ Elgamal không có nhiều rắc rối về vấn đề quyền sử dụng. Hệ mật mã elgamal được xây dựng dựa trên bài toán logarithm rời rạc. Tính an toàn của nó phụ thuộc vào độ phức tạp của bài toán logarithm. Bài toán logarithm được phát biểu như sau: I={p,α,β} Trong đó: p là số nguyên tố α Є Zp là là phần tử nguyên thủy β Є Zp¬ Mục tiêu: Hãy tìm một số nguyên duy nhất a ,0 ≤ a ≤ p2 : αa ≡ β(mod p) Ta sẽ xác định số nguyên a bằng loga β

Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân TRƯỜNG ĐẠI HỌC ĐỒNG THÁP LỚP LIÊN THÔNG ĐHSP TIN CÀ MAU - - TIỂU LUẬN KẾT THÚC MÔN BẢO MẬT THÔNG TIN Đề tài: HỆ MẬT MÃ ELGAMAL Giảng viên hướng dẫn: Nguyễn Trọng Nhân Sinh viên thực hiện: Trần Văn Kiếm MSSV: 6120440556 CÀ MAU – 01/2022 SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân MỤC LỤC I CƠ SỞ LÝ THUYẾT Cơ sở xây dựng hệ mã Elgamal Hệ mã Elgamal a Tạo khóa: b Mã hóa: c Giải mã: II BÀI TẬP MINH HỌA Bài tập Bài tập III ƯU, KHUYẾT ĐIỂM VÀ CẢI TIẾN Ưu điểm: Nhược điểm: Độ phức tạp hệ mật mã Elgamal Thám mã hệ mật mã elgamal a Thuật toán Shank (cân thời gian) b Thuật toán Pohlig-Hellman 11 c Thuật toán mật mã khóa bất đối xúng tương lai 12 d Đánh giá độ phức tạp thuật toán 15 e Kết luận 16 III PHẦN LẬP TRÌNH 16 Giới thiệu 16 Code ngôn ngữ Python 17 Ảnh minh họa code 18 a Ảnh chạy chương trình 18 b Ảnh sau mã hóa giải mã 19 SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân I CƠ SỞ LÝ THUYẾT Cơ sở xây dựng hệ mã Elgamal - Elgamal hệ mật mã công khai - Hệ Elgamal biến thể sơ đồ phân phối khóa Diffie-Hellmal, đưa năm 1984 - So với RSA, Hệ Elgamal khơng có nhiều rắc rối vấn đề quyền sử dụng - Hệ mật mã elgamal xây dựng dựa tốn logarithm rời rạc Tính an tồn phụ thuộc vào độ phức tạp toán logarithm 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 β Hệ mã Elgamal a 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 b 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 c Giải mã: Với y1 , y2 Є Zp* ta xác định : dk(y1 , y2 )= y2(y1a )-1 mod p SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân Sơ đồ mã hóa giải mã hệ mật Elgamal II BÀI TẬP MINH HỌA Bài tập Cho p= 569 , α = ,a = 109 ,x= 257 , chọn k= 79 Tạo khóa: β ≡ αa mod p β ≡ 2109 mod 569 x 109 54 27 13 a 16 256 101 528 543 y=1 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 SV thực hiện: Trần Văn Kiếm A MSSV: 6120440556 y=1 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân 79 39 19 2 16 256 101 528 543 128 335 x x 394 A 229 93 114 478 315 219 165 y=1 229 244 504 225 x x 140 = > y1= 394 + y2 = x βk mod p = 257 22979 mod 569 • Tính: 22979 mod 569 x 79 39 19 = > 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 A 394 468 528 543 107 69 209 y=1 394 x 347 82 x 537 140 A b Kq= 140 Tính (140)-1 mod 569 x 569 140 SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 y PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân 1 -15 16 -31 -4 61 -65 126 15 1 Kq = 126 = > x =133.126 mod 569 = 257 Vậy người B sau giải mã nhận rõ x= 257 Bài tập Cho Hệ Elgamal có p = 2579; α = 2; a = 765; chọn k ngẫu nhiêu 853 Bản rõ M = 1299 Tìm khóa hệ mã trên? Mã hóa: Trước hết ta tính: β = α mod p = 2765 mod 2579 = 949 Để mã hóa thơng điệp M = 1299 ta tính theo k =853: C1 = αk mod p = 2853 mod 2579 =435 C2 = (M*βk )mod p = (1299*949853 ) mod 2579 =2396 Vậy mã gửi C = (435, 2396) Giải mã: Với khóa bí mật a= 765: (C1a) -1) mod p = (C1(p-1-a)) mod p = (435(2579-1-765)) mod 2579 = (4351813) mod 2579 = 1980 M = (C2* (C1a) -1) mod p = (2396*1980) mod 2579 = 1299  Kết luận: Xây dựng hệ mã Elgamal khóa: K = (p, α, a, β) = (2579, 2, 765, 949) với: - Thành phần khóa cơng khai: 𝐊 𝐔 = (α, β, p) - Thành phần khóa bí mật: KR = (a, p) = (765, 2579) - Mã hóa M=1299 với C(C1, C2) = (435,2396) III ƯU, KHUYẾT ĐIỂM VÀ CẢI TIẾN SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân Ư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 Độ phức tạp toán logarith lớn nên đọ an toàn cao Bản mã phụ thuộc vào rõ x giá trị ngẫu nhiên nên từ rõ ta có nhiều ma khác 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 Độ phức tạp hệ mật mã Elgamal Theo thời gian: O(p) Theo không gian:O(1) Thám mã hệ mật mã elgamal a 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 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) SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân * Độ 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 tố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 tốn Shank Bài giải Tính m=[(p-1)1/2] = 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=> 29mod 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 a d=1 36 x 18 x 16 16 19 x 45 x 50 10 => tj(4,10) j=5=>245mod 79 x a d=1 45 2 22 x 11 16 32 19 55 45 x 50 64 => tj(5,64) J=6 => 254mod 79 SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân x a d=1 54 x 27 4 13 16 64 19 x 45 36 50 62 x a d=1 63 2 31 15 16 49 19 62 45 25 50 65 x a d=1 72 x 36 x 18 16 x 19 45 50 51 19 x x 21 =>tj(6,62) j =7 => 263mod 79 => tj(7,65) j =8 =>272 mod 79 =>tj(8,21) 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) SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân 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 = > 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 SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE 10 Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân = > 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 50 55 = > β= 55 (đúng theo ra) b Thuật tốn Pohlig-Hellman Có trường hợp đặc biệt mà tố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 SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE 11 Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhâ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 = -1 m1=1 Q trình tính tốn tiếp diễn tìm mi Độ phức tạp thuật toán : n.(2[log2p]+2) ~O((log2p)2) c Thuật tốn mật mã khóa bất đối xúng tương lai * Thuật tốn Thuật tốn Elgamal cịn 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 tồn thuật tố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 tố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 - Khố cơng khai Kpu = (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 * Q 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] SV thực hiện: Trần Văn Kiếm MSSV: 6120440556 PAGE 12 Môn: Bảo mật thông tin GVHD: Nguyễn Trọng Nhân 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]

Ngày đăng: 14/03/2022, 23:00

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan