Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)Xây dựng và đánh giá hệ mật Affine Elgamal (tt)
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - TRUNG THÀNH PHƯƠNG XÂY DỰNG VÀ ĐÁNH GIÁ HỆ MẬT AFFINE- ELGAMAL CHUYÊN NGÀNH : MÃ SỐ: HỆ THỐNG THÔNG TIN 60.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: GS.TS NGUYỄN BÌNH HÀ NỘI - 2017 Luận văn hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: GS.TS NGUYỄN BÌNH Phản biện 1: ……………………………………………………………… Phản biện 2: …………………………………………………….………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Công nghệ Bưu Viễn thông Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Công nghệ Bưu Viễn thông MỞ ĐẦU 1.1 Tính cấp thiết đề tài Cùng với phát triển công nghệ thông tin truyền thông, mạng máy tính trở thành phương tiện điều hành thiết yếu lĩnh vực hoạt động xã hội Việc trao đổi thông tin liệu môi trường mạng ngày trở nên phổ biến dần thay phương thức truyền tin trực tiếp Khi ngày nhiều thông tin trao đổi nhu cầu bảo mật thông tin vấn đề đặt cho nhiều ngành, lĩnh vực nhiều quốc gia Để bảo vệ thông tin khỏi truy cập trái phép cần phải kiểm soát vấn đề như: thông tin tạo ra, lưu trữ truy nhập nào, đâu, vào thời điểm Giải vấn đề trên, kỹ thuật mật mã đại phải đảm bảo dịch vụ an toàn bản: (1) bí mật (Confidential); (2) xác thực (Authentication); (3) đảm bảo tính toàn vẹn (Integrity) Hệ mật mã đời nhằm đảm bảo dịch vụ an toàn như: hệ mật mã với khóa sở hữu riêng (Private Key Cryptosystems),hệ mã với khóa bí mật (Secret Key Cryptosystems), hệ mã truyền thống (Conventional Cryptosystems) hệ mật mã sử dụng mã khóa đối xứng; hệ mật mã với khóa công khai Hệ mật mã với khóa công khai cho phép người sử dụng trao đổi thông tin mật mà không cần phải trao đổi khóa chung bí mật trước đó; mật mã hóa khóa công khai thiết kế cho khóa sử dụng trình mã hóa khác biệt với khóa sử dụng trình giải mã; khóa sử dụng dùng để mã hóa ngược lại, tức hai khóa có quan hệ với mặt toán học suy diễn Một thuật toán mã khóa công khai phát triển dựa Hệ mật mã Elgamal cho phép giải tốt yêu cầu bảo mật thông tin thực đồng thời việc xác thực nguồn gốc tính toàn vẹn thông tin Luận văn trình bày hệ mật mã kết hợp mã Affine hệ mật mã Elgamal 1.2 Mục tiêu, đối tượng, phạm vi phương pháp nghiên cứu Mục tiêu nghiên cứu: Tìm hiểu hoạt động hệ mật mã khóa công khai sử dụng biến thể thuật toán Elgamal: Hệ mật mã Affine –Elgamal Đánh giá tính bảo mật thông tin, xác thực nguồn gốc thông tin, xác thực tính toàn vẹn thông tin hệ thống Đối tượng phạm vi nghiên cứu Hệ mật mã Elgamal đối tượng nghiên cứu đề tài nhằm phát phương pháp công qua ứng dụng thử nghiệm đánh giá mã hóa với thuật toán Affine –Elgamal Phạm vi nghiên cứu : đề tài nghiên cứu đánh giá hiệu tính an toàn hệ mật Affine –Elgamal Xây dựng cài đặt thuật toán thử nghiệm chữ ký số giúp tăng tính an toàn cho chữ ký số RSA Phương pháp nghiên cứu * Phương pháp lý thuyết - Tìm hiểu nghiên cứu mật mã, sở toán học hệ mật mã - Tìm hiểu toán lôgarith rời rạc hệ mật Elgamal; thủ tục trao đổi khóa Diffic- Hellman; phương pháp che giấu liệu điều kiện lũy đẳng giao hoán hệ mật - Lý thuyết chung hệ mật Affine từ xây dựng biến thể hệ mật Affine- Elgamal * Phương pháp thực nghiệm - Xây dựng hệ mật áp dụng giải thuật Affine- Elgamal - Đánh giá hiệu tính an toàn Hệ mật Affine- Elgamal 1.3 Cấu trúc luận văn Chương : Bài toán lôgarith rời rạc hệ mật elgamal Chương 2: Xây dựng hệ mật affine – elgamal Chương 3: Đánh giá hệ mật mã affine- elgamal CHƯƠNG 1: BÀI TOÁN LÔGARIT RỜI RẠC 1.1 Tổng quan mật mã học Mật mã hóa khóa công khai dạng mật mã hóa cho phép người sử dụng trao đổi thông tin mật mà không cần phải trao đổi khóa chung bí mật trước đó, thực cách sử dụng cặp khóa có quan hệ toán học với khóa công khai khóa cá nhân (hay khóa bí mật) Trong mật mã hóa khóa công khai, khóa cá nhân phải giữ bí mật khóa công khai phổ biến công khai Trong khóa, dùng để mã hóa khóa lại dùng để giải mã Điều quan trọng hệ mật mã tìm khóa bí mật biết khóa công khai Hệ mật mã hóa khóa công khai sử dụng với mục đích: Mã hóa; Tạo chữ ký số; Thỏa thuận khóa, cho phép thiết lập khóa dùng để trao đổi thông tin mật bên Các kỹ thuật mật mã hóa khóa công khai đòi hỏi khối lượng tính toán nhiều kỹ thuật mã hóa khóa đối xứng có nhiều ưu điểm nên áp dụng nhiều ứng dụng Hệ mật mã định nghĩa năm thành phần (P, C, K, E, D), thỏa mãn tính chất sau: P (Plaintext) tập hợp hữu hạn rõ C (Ciphertext) tập hợp hữu hạn mã K (Key) tập hợp khoá E (Encrytion) tập hợp qui tắc mã hoá D (Decrytion) tập hợp qui tắc giải mã Quá trình mã hóa tiến hành cách áp dụng hàm toán học E lên thông tin P, vốn biểu diễn dạng số, để trở thành thông tin mã hóa C Quá trình giải mã tiến hành ngược lại: áp dụng hàm D lên thông tin C để thông tin giải mã Hình 1: Quá trình mã hoá giải mã - Thám mã (phá mã) tìm điểm yếu không an toàn phương thức mật mã hóa Thám mã thực kẻ công, nhằm làm hỏng hệ thống; người thiết kế hệ thống (hoặc người khác) với ý định đánh giá độ an toàn hệ thống Hệ mật bao gồm : Hệ mật mã đối xứng (hay gọi mật mã khóa bí mật): hệ mật dùng chung khoá trình mã hoá liệu giải mã liệu Do khoá phải giữ bí mật tuyệt đối Một số thuật toán tiếng mã hoá đối xứng là: DES, Triple DES (3DES), RC4, AES… Hệ mật mã bất đối xứng (hay gọi mật mã khóa công khai): Các hệ mật dùng khoá để mã hoá sau dùng khoá khác để giải mã, nghĩa khoá để mã hoá giải mã khác Các khoá tạo nên cặp chuyển đổi ngược khoá suy từ khoá Khoá dùng để mã hoá công khai khoá dùng để giải mã phải giữ bí mật Do thuật toán có loại khoá: Khoá để mã hoá gọi khóa công khai-Public Key, khoá để giải mã gọi khóa bí mật - Private Key Một số thuật toán mã hoá công khai tiếng: Diffle-Hellman, RSA, Rabin, Elgamal,… 1.2 Hệ mật mã ElGamal: 1.2.1 Hệ mật mã Elgamal: Hình 5: Hệ mật mã Elgamal Hệ mật mã Elgamal hệ mã hóa bất đối xứng dựa biến thể thủ tục trao đổi khóa Different- Hellman, sở toán lôgarith rời rạc Với thủ tục trao đổi khóa sau: a.Thủ tục tạo khóa Mỗi bên liên lạc A, B tạo cho cặp khóa công khai – bí mật theo bước sau: Bước 1: Chọn số nguyên tố p lớn cho toán lôgarit rời rạc Zp khó giải α phần tử nguyên thủy (α ∈ ¢*p ) Bước 2: Chọn số nguyên a ngẫu nhiên với 1< a < p – tính αa mod p Bước 3: + Khóa công khai số: ( p, α, αa ) người nhận gửi cho người sử dụng cần mã hóa thông tin bí mật gửi cho + Khóa bí mật a b Mã hóa Giả sử B cần gửi tin M cho A, B thực bước sau: Bước 1: B nhận khóa công khai A: ( p, α, αa ) Bước 2: B chọn số nguyên k ngẫu nhiên với 1< k < p – tính giá trị theo công thức Giả sử tin biểu thị dạng số nguyên M dải { 1,… ,p – 1} Phép tính mũ tính thuật toán nhân bình phương theo modulo Bước 3: B gửi mã C = (γ, δ) cho A Ta nhận thấy mã C ghép từ γ δ nên có độ dài bit lần độ dài M, nhược điểm hệ mật c Giải mã A nhận mã C từ B tiến hành giải mã theo bước sau: Bước 1: A sử dụng khóa bí mật a để tính: γp-1-a mod p = α-ak mod p ( Chú ý γp-1-a = (αk)-a = α-ak) Bước 2: A khôi phục rõ cách tính: δ p-1-a mod p = M α-ak α-ak mod p = M Ví dụ : Tạo khóa Bước 1: A chọn p = 17 phần tử nguyên thủy α = ¢*17 Bước 2: A chọn khóa bí mật a = tính αa mod p = 36 mod 17 = 15 Bước 3: + Khóa công khai A số ( p, α, αa) = ( 17,3,15) + Khóa bí mật A : a = 6 Mã hóa Giả sử B cần gửi tin M = cho A Bước 1: B nhận khóa công khai A: (p, α, αa) = (17,3,15) Bước 2: B chọn số nguyên k = tính: 𝛾 = 𝛼 𝑘 𝑚𝑜𝑑 𝑝 = 34 𝑚𝑜𝑑 17 = 13 { 𝛿 = 𝑀 (𝛼 𝑎 )𝑘 𝑚𝑜𝑑 𝑝 = (15)4 𝑚𝑜𝑑 17 = 10 Bước 3: B gửi mã C = (𝛾, 𝛿 ) = (13,10) cho A Giải mã A nhận mã C = (𝛾, 𝛿 ) = (13,10) tiến hành giải mã Bước 1: A sử dụng khóa bí mật a = để tính: 𝛾 𝑝−1−𝑎 mod p = 1310 mod 17 = 16 Bước 2: A khôi phục rõ cách tính 𝛿 𝛾 𝑝−1−𝑎 mod p = 10.16 mod 17 = 7= M Nhận xét: - Để tìm khóa bí mật a ( từ αa ) thám mã phải giải toán logarit rời rạc (tính a = logα αa), với trường hợp p lớn giải được, hệ mật an toàn - Hiệu truyền tin thấp, tốc độ mã đạt Rmã= ½ 1.3.2 Thám mã hệ Elgamal Để thám mã hệ Hệ Elgamal, ta cần phải giải toán logarit rời rạc Chúng ta có thuật toán để giải toán logarit rời rạc là: Thuật toán Shank Thuật toán Pohlig - Hellman Trong thuật toán thám mã Shank sử dụng nhiều nên nhóm trình thuật toán Shank Thuật toán Shank Thuật toán có tên gọi khác thuật toán thời gian - nhớ Tư tưởng thuật toán ta có đủ nhớ sử dụng nhớ để giảm thời gian thực thuật toán Input : Số nguyên tố p, phần tử nguyên thủy a cua Z*p, số nguyên y 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 αmj mod p với 0 1: return keyA, keyB 2.3 Chương trình thực nghiệm hệ mật mã Affine - ElGamal 15 Chức sinh khóa Hình 8: Giao diện sinh khóa Chức sinh khóa chương trình thực qua nút “Generate key” Khi bấm nút chức này, hàm sinh khóa ngẫu nhiên thực thi với tham số mặc định sau: - Độ lớn modulus p: 256 bit - Bảng chữ Affine có độ lớn 95 ký tự Kết sinh khóa: Hình 9: Kết sinh khóa 16 Modulus p có độ dài 256 bit nên thành phần khóa Elgamal sinh có độ dài lớn 78 ký tự Chức mã hóa giải mã Hình 10: Giao diện nhập văn Để sử dụng chức này, trước hết ta cần nhập văn vào khung “Plain text”, ví dụ: “In cryptography, the ElGamal encryption system is an asymmetric key encryption algorithm for public-key cryptography which is based on the Diffie– Hellman key exchange It was described by Taher Elgamal in 1985.” Sau nhập văn bản, nhấn nút “Encrypt” để mã hóa văn khóa Affine: 17 Hình 11: Chức mã hóa Do văn thêm nhiễu trước tiến hành mã hóa, nên độ dài mã lớn kích thước ban đầu Để tiến hành giải mã, ta chọn chức “Decrypt”, kết thu sau giải mã khóa Affine mã trùng với văn ban đầu: Hình 12: Chức mã hóa 18 CHƯƠNG 3: ĐÁNH GIÁ HỆ MẬT MÃ AFFINE- ELGAMAL 3.1 Đánh giá mã Affine Mã Affine nói riêng loại mật mã thay nói chung bị công việc phân tích tần suất ký tự, theo không an toàn cho thông điệp ngắn Đặc biệt trường hợp văn ngắn, kẻ công hoàn toàn sử dụng phương pháp công vét cạn (lần lượt thay ký tự mã tìm văn có ý nghĩa)! Đối với văn dài, việc công vét cạn không khả thi Việc công dựa xác suất phòng tránh việc thêm nhiễu (các ký tự vô nghĩa nội dung văn bản), sử dụng biến thể ngôn ngữ Ví dụ với văn sau: In cryptography, the ElGamal encryption system is an asymmetric key encryption algorithm for public-key cryptography which is based on the Diffie Hellman key exchange It was described by Taher Elgamal in 1985 ElGamal encryption is used in the free GNU Privacy Guard software, recent versions of PGP, and other cryptosystems The DSA (Digital Signature Algorithm) is a variant of the ElGamal signature scheme, which should not be confused with ElGamal encryption Các ký tự có số lần xuất sau: Bảng : Tần suất xuất kí tự văn ) ( - , a c b e d g 15.24 0.21 0.21 0.43 0.86 0.86 0.21 0.21 0.21 0.21 6.87 3.65 1.07 9.01 2.36 3.43 f i h k m l o n p s r u t w v y x 1.72 6.22 4.29 0.64 2.79 3.65 4.08 5.15 2.79 4.94 5.36 1.72 6.01 1.07 0.64 3.65 0.21 19 Thêm vào ký tự gây nhiễu cách ngẫu nhiên: I!n*) "!cry&$!!pto#g(*r(+$#a%&p#'"h*$y(), #"+%t()&'#)h$#!(e'+& (+$E'"!'l#%Gam!al e$*n%$c)ry*p#t+&+#i%o*)$"*n%"+' *sy#(#$%s""%#)('t(e'!$m i**!s !*()"%"'a#n as$%'ym+#m*!e$t$*%&++!ric*$+%)$!)! k"e!$"y(!* $e!nc+r*y$p*#%$&t&"#!%+(i)!(*on& al(&$)g+o&r+#ithm% ()f&(or pu+bli+*c''-k#e+%y $"&*c)&r'#yp'to"g$'#(*%r'a&p$h$)!(y $w+hic'h"+*%&& "'(&!%$%%#is$ ba*'s"%e+d (*%o!+((("n %the$)+) D*+)i!ffie#++ )-$" !!He&l&l)m+"an$$ key* #ex(c!*#*+h#(&)*a"n'$#g)e.$)&%!$+ (+'%I#*$)##t*(& w'a#s *%!"d)(e!&*!'s!&"cr%i!be)&d+ "b%y)$ Ta!&'he!r++ El+$"(ga%$"m+al(#%*+ !"%'in *!"*19&)$&(*$85 &El&)$'&'G!a!m!)(!a'()!++*&l &e*&*nc+r&&"&+%$!)y$+!p!!('ti%#+&o'+n*' i*)$&&&s *us)"ed#)#%)( i%+n(($# "the!)' &'(fr%e*)e'#( $G%$*N$'"'+U+ P+r%#&(i+(!*)#*"*&)"va#cy G$u*a"+&r*d $&s&(+"()of(#tw'a!!re&$,& rece#'n((t) ve(+++r($"s"!i#(ons! )o"f$'! P*(+GP,( an'd ot'he+r&%# cr!yp%to$*+'%sys%te#m)#s" &Th'e D$SA (D$ig(i*tal *#+Signa!t+u!"re +Algo(r)i+t#hm) is a'$" va)riant(* of t*$he (El'Gamal si%&(gnat#ure schem)%e', %whic%h $sh)ould not be confused with ElGamal e&ncryption Các ký tự có tần suất xuất sau: Bảng 7: Tần suất xuất kí tự sau gẫy nhiễu ! # " % $ ' & ) ( + * 5.25 6.77 5.06 4.1 4.48 5.63 4.39 5.63 4.68 5.44 5.73 5.34 - , 0.19 0.38 0.38 0.1 a 0.1 0.1 0.1 3.05 1.62 0.48 4.01 1.05 1.53 20 c b e d g f i h k m l o n p s r u t w v y x 0.76 2.77 1.91 0.29 1.24 1.62 1.81 2.29 1.24 2.19 2.39 0.76 2.67 0.48 0.29 1.62 0.1 Sau thêm nhiễu, rõ ràng việc phân tích đoán nội dung văn gặp khó khăn nhiều Tuy nhiên cách bị công ký tự gây nhiễu thêm vào không hoàn toàn phá vỡ phân bố xác suất ký tự có nghĩa 3.2 Đánh giá Hệ mật Elgamal - Hệ mật ElGamal bị phá vỡ khóa mật x k tính Để tính x k, cần phải giải hai toán logarit rời rạc, chẳng hạn: y = gx mod p hay R = gk mod p Tuy nhiên, việc giải toán logarit rời rạc việc khó - Một điểm yếu bị công hệ mã ElGamal giá trị k bị sử dụng lại Thực vậy, giả sử giá trị k sử dụng để mã hóa hai tin M M* mã tương ứng (C, R) (C*, R*) Khi ta có: 𝐶 × (𝐶 *) −1 −1 ≡ 𝑀 × (𝑔 𝑥 )𝑘 × (𝑀* × (𝑔 𝑥 )𝑘 ) 𝑚𝑜𝑑𝑝 Suy ra: 𝑀* × 𝐶 × (𝐶 * ) −1 ≡ 𝑀𝑚𝑜𝑑𝑝 Nghĩa là, cần biết nội dung hai tin M M* dễ dàng biết nội dung tin Một vấn đề đặt không với hệ ElGamal nói riêng mà với hệ mật khóa công khai nói chung là: Giả sử người gửi A mã hóa tin M mã C gửi C cho người nhận B Sẽ có tình xảy sau: - Người nhận B biết chắn tin nhận (M) có nguồn gốc từ người gửi A 21 - Giả sử mã C bị thay đổi thành người nhận giải mã tin M* Trường hợp này, người nhận khẳng định nội dung tin nhận (M*) bị thay đổi hay không Vấn đề khắc phục cách sử dụng giải thuật chữ ký số Tuy nhiên đồ án không sâu nghiên cứu vấn đề - Tốc độ mã hóa Elgamal chậm văn có kích thước lớn Bảng so sánh tốc độ mã hóa/ giải mã Elgamal RSA [1] Bảng 8: Bảng so sánh tốc độ mã hóa Bảng 9: Bảng so sánh tốc độ giải mã - Đánh giá độ an toàn hệ mật Elgamal: Hệ mã hóa Elgamal áp dụng toán lôgarith rời rạc độ an toàn hệ mã hóa lớn chưa có phương pháp hiệu để tính - Với số p đủ lớn, thuật toán mã hóa Elgamal phương pháp thám mã hiệu 22 3.3 Hệ mật Affine – Elgamal - Một vấn đề hệ mật Affine loại mật mã đối xứng khác việc bảo mật khóa chung trình gửi khóa cho bên nhận Hệ mật Affine - Elgamal đảm bảo việc khóa khó bị lộ trình gửi đến ngưới nhận Do khóa mã hóa khóa công khai Elgamal - Tốc độ thực thi cải thiện Trước hết, văn mã hóa khóa Affine, tính toàn phép toàn logarit, độ lớn khóa Affine không lớn Bảng kết mã hóa Affine Elgamal cho văn có độ dài lớn thực thi máy tính Intel Core i7 2.60GHz, 8GiB DDR3 1600 MHz - Về độ an toàn, hệ thống đảm bảo tính bí mật khóa chung (khóa Affine) cách mã hóa phương pháp Elgamal trước gửi lên kênh truyền - Văn trước mã hóa thêm vào ký tự gây nhiễu để gây khó khăn cho phép phân tích tần suất 23 KẾT LUẬN Kết đạt Luận văn tiến hành nghiên cứu giải toán mã hóa, xây dựng Hệ mật mã đơn Affine - Elgamal Từ việc giải toán Bài toán tảng cho nhiều ứng dụng quan trọng thực tế quảng cáo nhắm mục tiêu, hệ thống cung cấp tiếp thị dịch vụ thương mại điện tử tới người dùng, … Những kết mà đồ án đạt được: Tìm hiểu thuật toán mã hóa công khai, hệ mật mã Tìm hiểu toán Lôgarit rời rạc, Hệ mật mã Elgamal, Hệ mật OmuraMassey Tìm hiểu mã Affine – Xây dựng biến thể hệ mật Elgamal: Hệ mật mã Affine – Elgamal Hạn chế: Nghiên cứu Hệ mã Affine sử dụng ký tự bảng chữ cái, bảng chữ không lớn nên bị giới hạn bảng chữ Dễ bị công cách phân tích tần số khó phòng ngừa Không có khả phục hồi văn gốc Hướng phát triển Ứng dụng chữ ký số, đảm bảo tính toàn vẹn liệu Thay Affine hệ mã đối xứng khác an toàn (AES, DES) 24 ... chung hệ mật Affine từ xây dựng biến thể hệ mật Affine- Elgamal * Phương pháp thực nghiệm - Xây dựng hệ mật áp dụng giải thuật Affine- Elgamal - Đánh giá hiệu tính an toàn Hệ mật Affine- Elgamal. .. khai, hệ mật mã Tìm hiểu toán Lôgarit rời rạc, Hệ mật mã Elgamal, Hệ mật OmuraMassey Tìm hiểu mã Affine – Xây dựng biến thể hệ mật Elgamal: Hệ mật mã Affine – Elgamal Hạn chế: Nghiên cứu Hệ. .. lôgarith rời rạc hệ mật elgamal Chương 2: Xây dựng hệ mật affine – elgamal Chương 3: Đánh giá hệ mật mã affine- elgamal CHƯƠNG 1: BÀI TOÁN LÔGARIT RỜI RẠC 1.1 Tổng quan mật mã học Mật mã hóa khóa